• 3D
  • Composite Materials on GoDot Engine

Just need to know if GoDot supports composite materials at all or have an alternative method to accomplish the same result and use. If not will future version 4 will have such feature?

This is one option of a short list of items I need the game engine to handle.

I have different characters, where each character's mesh it's modular (legs, head, torso, arms, hands, etc.. [ each it's an individual mesh ]). So by applying a composite material to it I could offer a high level of character customization. The composite material will have a collection of masks elements, so the diffuse/albedo color could be assign in real-time. So if I replace the composite material at any moment, I could change the way the character looks.

The other option I have been trying to accomplish it's a way to let the user in real-time to change how tall the character is, the length of its feet, how long or short are the arms, fat or even slim. This I don't know if it is even possible right now. but for the time been Im focusing on finding out about GoDot and Composite Materials support.

If anybody knows any way to accomplish this in any other way, please let me know.

Thank you in advance.

Just to let everyone knows, with out any knowledge on Unreal Engine, I was able to re-create composite materials within a few hours of experimenting. I think I can even maybe compress/optimize my approach a little more. But I'm happy with the results so far.

I really hope GoDot in a near future enables support for composite materials. Let's say by an Import in any way or local implementation.

I will post a screenshot later !

You might want to define what exactly you mean by 'composite materials'

@Megalomaniak said: You might want to define what exactly you mean by 'composite materials'

Here is the 3d Studio Max composite materials option... https://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2020/ENU/3DSMax-Lighting-Shading/files/GUID-8932C808-B96A-4C3A-BBCC-1B24A578CC4F-htm.html

Here are some insides for Unreal Engine... https://docs.unrealengine.com/4.26/en-US/WorkingWithMedia/Composure/

Unity's composite materials creation tool... https://assetstore.unity.com/packages/tools/painting/composit-mix-composite-materials-creation-tool-59714

Basically one good use for composite materials it's when you want to apply decals to the mesh/object.

@Megalomaniak said: You might want to define what exactly you mean by 'composite materials'

Just think it this way.

A composite Material it's like a Photoshop file. you have the layers where the first layer will be the base texture/color, then any layer above will visually merge with each other and the first layer. So you can move/edit the content of each layer independently, even the base layer (layer 1), so at the end the final visual result could be different each time.

I don't know if that analogy actually did helped or not.

Here is an example done with Unreal Engine's Material Editor

@Megalomaniak said: If you are looking to do decals heres one solution: https://github.com/Master-J/DecalCo

That wont do because in that solution, the elements that are treated as decals are independent.

For my project they need to be part of the main material that it's applied into the mesh. This case will be a character.

A good example for the use I'm looking for it's just like GTA 5 handle tattoos for the characters, same basic idea. Meaning the elements needs to part of the final material, a.k.a. , a composite material.

Then the positioning of each element will be controlled by the UVW map.

Also the "DecalCo" option it's a trick to emulate a decal on a simple level and it's also projected into the final mesh while using a different mesh for the projection. Applying this concept on a character with multiple elements (decals) will be a massive nightmare to create and control. Another reason why a composite material needs to be used.

Here is an example while using 3D Studio max Material Editor...

I'm not just limited to change the decal's color, I can also use an image as a texture and use the decal as a mask.

So at the end I want to change the decal images, texture images, colors and the base parameters if needed using the script language, in this case GDscript.

I could go into deeper details of my project if needed.

So, you could either look into writing a custom shader or you could try using material passes and have extra materials for each of the UV/texture decals. Latter would be easier to use probably but cost extra draw calls.

@Megalomaniak said: So, you could either look into writing a custom shader or you could try using material passes and have extra materials for each of the UV/texture decals. Latter would be easier to use probably but cost extra draw calls.

Oh ok... I will read more about those options and see where it takes me. I will update the post with my findings.

Also I will post a basic visual idea of what I want to accomplish in a later post.