I have a trim sheet with normal map information. I want to reuse the trimsheet as much as possible, therefor it only contains normal information and no unique color, roughness etc.
I have multiple props using this trim sheet for their normals, such as the one above.
Then I have 3 materials I would like to apply to my models. For example Plastic, rubber and metal.
The grime, dust and scratches is coming from a seperate mask for the UV1 of the models.
I want every model to use this trim sheet for it's normalmap, but I want different parts of it to be different materials depending on the models. So that I have some way of controling which part is what material via the Material Instance Parameters.
Something like this
I have tried doing it as a normal material and using Layered Materiels, but I haven't been able to do it in a satisfying way.
Any ideas or tips on how to go about this?
Sorry if i'm explaining it in a confusing way, not sure how to describe it 😥
Please tell me if there is any other info I can provide to help.
Replies
My current shader setup WIP
This would work if I only want a single material, like only plastic.
But i'm wondering what if I want specific materials on specific portions like mentioned on original post?
If I want to reuse this trim normal texture for the door, floor, ceiling, table as well. I would maybe need a wooden material on top instead of the rubber.
Isn't there some way for me to have a material library that overrides the materials but keeps the normal map from the trim sheet?
Oh god, i'm so bad at explaining this😅
Maybe use vertex color to swap between the three materials?
That could work but only if I have sufficient vertexes at the right places, and I would have to manually paint it on a per model basis I assume, instead of it just being a standard look "out of the box".
Just feels like i'm doing something wrong, i'm pretty sure i've seen footage of people being able to swap materials on their models from plastic to rubber etc on the fly.
Only way I can think of, is having different parts of the model have their own material slot. Not sure if that is the right way to do it though.
Sure, that's a valid way to do it. Are you aware of material instances and how they work? If not, google up on that - its pretty critical to working efficiently in Unreal.
The only reason to avoid multiple materials on an object is the increase in drawcalls, but drawcalls aren't the bottleneck they used to be.
Yes I was thinking I guess i'll have to have 2-4 material slots on my models, and then have a few material instances for a tilable rubber, plastic, wood etc that I can then apply on each surface that needs it. They would each have their own normal map for small details, while the model has a unique normal map or from the trim sheet. So I would be utilizing 2UV sets for every model that isn't using a unique baked texture.
Not sure how heavy that would end up being or if it's the right way to go about it but it's all i've got right now xD
I did try out Material Layers, but you need a mask to tell the Material Layer which material to apply where. Which seems like I would end up having a lots of masks and i'm not sure of efficient the Material Layering is when you end up having lots of materials with lots of shader nodes.
This is for a portfolio piece? Perf essentially doesn’t matter, it only matters that it looks awesome. Bonus points for being game-like in technique, but that’s a distant second to visual quality.
Yes, i'm working on a small game environment for UE5. It's for a portfolio piece though, but I wanted to do it as correctly as possible. So when I show it of, including parts of the process, textures etc it wouldn't be seen as bad form or tecnique.
I think I kind of got the hang of it though, not sure but this seems to work.
I esentially made my normal map trim sheet and reusing it for all the material instances.
I used it to create a bunch of material instances, such as metal, rubber, plastic.
Then I gave the models a few extra edge loops so I could insert a few material slots.
So now I have like 4 material slots on the model, and I can apply the plastic version on X space or the metal for example.
Awesome!