I really love the 3D look development process — taking raw scenes or models and refining them into their final visual form. It can be a very detailed process involving both surfacing and lighting. On the surfacing side, layering textures and/or materials is very common as you build up the visual detail of a form.
Ideally, you want to start with a super clean mesh and properly unwrapped UVs — but hey, if you're a working motion designer in advertising, who's got time for that? 🙂
Here's my basic approach to layering textures and materials, the quick 'n procedural way.
1 Linear Height UVW Mask: Quickly create this super useful utility mask for blending in your textures and materials.
2 Basic Texture Layering With Noise Variations: Create better looking texture blending by layering custom noises and vertex maps into your mask.
3 Layering Materials With Displacements: Combine it all into an RS "ubermaterial" to blend in different surfaces and along with their displacements.
Linear Height UVW Mask
One of my favorite little hacks for layering textures over complex meshes the lazy way is to create a flat UVW projection onto a second UVW tag. I'll generate a linear height gradient from this to use many times over as a blending utility mask.
1. Ctrl+drag the existing UVW map on your editable mesh to create a copy and rename it to UVWLinearHeight.
2. With the new UVW map selected, right-click the mesh in Object Manager and select the options (gear icon) from Materials > Set UVW From Projection. Set the projection type to Flat.
3. If you inspect this secondary UV set, they should be laid out in a flat, profile view like so:
4. Add a new Redshift Material and throw down a Ramp node. Drag your UVWLinearHeight UVW map into the Texture Space field and set the Source to UV Map.
5. The Ramp node's gradient should now be mapped linearly to the vertical object space of your mesh. Adjust it to your needs by tightening and loosening or adding and removing gradient knots.
Basic Texture Layering With Noise Variations
With this little utility mask in place, you can start layering in different texture elements (images, colors, gradients, etc) by combining them in other nodes like a Color Layer node.
For a more natural, organic look you'll want to add noise variation to your linear gradient UVW mask. While you could add the default basic noise that's in the Ramp node, you'll get a much better looking result if you combine a few custom Noise nodes and layer those together against your mask for a more interesting gradient.
Below, I'm doing just that by multiplying two C4D Noises (Fire & FBM) onto our utility mask, then I'm crushing the results in another ramp node to adjust to my liking.
For bonus points, mix in a vertex map!
With your mesh selected (and in an edit mode like Point/Edge/Polygon), go to Select > Set Vertex Weight and set it to 0. That should add a vertex map tag to your mesh. With it selected, click Use Fields in the Attribute Editor for the vertex map. In the Fields object manager, add the secondary mesh that you want to use to create a contact/collision vertex map from and set its Layer Controls Mode to Volume.
That's great, except the vertex map has a rough, abrupt transition that I'd like to soften up a bit. Duplicate the original vertex map tag by Ctrl+dragging in the object manager. In the Fields object manager of the new vertex map, remove the secondary mesh and instead drag in the original vertex map. In Layer Controls Mode choose Average and adjust the Radius to control the amount of softness in the transition.
In your RS Material, add a C4D Vertex Map node and drag 'n drop the new vertex map tag into the Vertex Map field. You can use this to blend onto your existing, custom noisy linear height mask or as a separate mask to drive other parameters like Reflection Roughness to create a "wet map". Just remember to drive it through a Ramp node first and set the Source mode to Alt — plus, play with the gradient ramp here for further fine-tuning.
Layering Materials With Displacements
The workflow I've laid out for layering textures also works for blending materials and displacement maps.
In a new RS Material, drag in two or more existing RS Materials and combine them using a Material Blender node. Like with the textures, bring your Linear Height UVW Mask, collision Vertex Map or any other noise/texture to drive the blending from the Blend Color input node.
Duplicate those RS Materials and in their node properties select Displacement as the Source — this pulls the displacement information from within each Material (as opposed to defaulting to Surface info). You can combine these in a Displacement Blender. Control their blending by inputting same utility maps you generated previously into the Displace Weight inputs.
Connect the Material Blender output to the Surface input and the Displacement Blender output to the Displacement input of the material's Output node. After that mouthful, you should have a working ubermaterial that respects both the surface and displacement values of multiple combined materials.
Holy Peak! Breakdown
Here's a glimpse into the different layers of texturing and materials that went into the making of the cover image.
Feel free to drop me a message if something's not clear, you've got any feedback or you just need a friend to talk to.