So I’m working on an environment and have been trying different methods for texturing/shading. Im using unique textures for my assets with a detail normal pluged in to a DetailTexturing node.
For one of my assets with multiple materials (metal,stone,crystal) this works fine since i can assign a different detail normal for each material. However for other assets with one material i need to be able to apply different detail normals depending on the surface, is there a way of using masks or color id to do this? any help is appreciated.
Heres a screenshot of my material network right now. and the surface that i need to mask.
Yeah, you would paint 1 surface all white and all other surfaces all black. So you save out that black&white image and import to engine. Do this for every surface you need separated. Once in engine, you multiply the normal map by that mask then add by any other masked maps. Then plug into detail normal plug.
For the sake of saving file size, you can actually mask one surface in 1 red, 0 green , 0 blue, another surface in 0r, 1g, 0b, and another 0r, 0g 1b, and even mask with 0r, 0g, 0b, 1 alpha. If need more than 4 masks, just save out another rgba mask, depending on your software, you should add a new layer and hide last one for easy back and forth editing. Then in engine, you multiply each mask by either the red, green, blue, or alpha wire instead of the color wire then add all masked maps together before plugging into detail normal plug.
Another option is to use a vertex color node to make your masks instead. You paint vertex color with the paint mode next to the geometry and the terrain tab on the main screen.
All of this also works for any other channel.