You could have used a Separate XYZ node on the diffuse and baked the Z Channel instead of using a noisy brick height map. I'd also recommend looking into swapping out some of your RGB Nodes, it will optimize your project and prevent any weird issues you can get from mixing tons of color nodes on top of each other.
Thanks for the tips! I always appreciate a more efficient workflow. Only case Separate XYZ doesn't seem particularly good for is diffuse textures in a full PBR set since they're missing most of the depth information. What do you think would be a more optimized configuration for the Mix Color nodes?
@@NovanByworks Apologies, I had already written a reply but it included an imgur link which seemingly deleted the comment. I agree with you, you defenitely need the right Diffuse Texture with the Separate XYZ method, you can't just use any, but you still can get decent results, I speed a good 40 or so minutes messing around with an optimized method. If you care enough to check, the imgur link ends in /a/ dpPUL8e, I can't directly link as I've already tried. Anyways, I plugged the brick texture into a separate XYZ node, crunched it with a bunch of different math nodes to remove most of the detail and just leave the cracks. I then used a greater than and set it to 1 so ensure the values aren't exceeding 1, I used a map range to invert it, I then created the mask portion of the graph, it's essentially just the base black and white image combined with the mask texture inputted into a map range to control the strength of the texture overlaying the bricks. I then packed the cavity map and paint mask into a Combine RGB node, this is not entirely necessary but I put it there for potential baking, I then just merged both textures with 2 MixRGB nodes. It's not entirely perfect, there are definitely areas that I can refactor but for the most part it works. Next step would probably be a way of adding noise to the Paint Mask.
Looks close but not exactly how the source engine does it. What they do is take the blend modulate value from the texture, then add and subtract a "sharpness" value from it (for example 0.5), which gives a min and max value. They then clamp these from 0 to 1. Next they feed the input alpha from the vertices to a smoothstep function (map range in blender) with the edges being the min and max value from above. This is used as the lerp between the 2 color textures.
Interesting. The problem is there isn't a lot of accessible documentation for this feature. My method is basically an approximation that could be built off of, since nobody else seems to have done something similar.
You could have used a Separate XYZ node on the diffuse and baked the Z Channel instead of using a noisy brick height map. I'd also recommend looking into swapping out some of your RGB Nodes, it will optimize your project and prevent any weird issues you can get from mixing tons of color nodes on top of each other.
Thanks for the tips! I always appreciate a more efficient workflow. Only case Separate XYZ doesn't seem particularly good for is diffuse textures in a full PBR set since they're missing most of the depth information.
What do you think would be a more optimized configuration for the Mix Color nodes?
@@NovanByworks Apologies, I had already written a reply but it included an imgur link which seemingly deleted the comment.
I agree with you, you defenitely need the right Diffuse Texture with the Separate XYZ method, you can't just use any, but you still can get decent results, I speed a good 40 or so minutes messing around with an optimized method. If you care enough to check, the imgur link ends in /a/ dpPUL8e, I can't directly link as I've already tried.
Anyways, I plugged the brick texture into a separate XYZ node, crunched it with a bunch of different math nodes to remove most of the detail and just leave the cracks. I then used a greater than and set it to 1 so ensure the values aren't exceeding 1, I used a map range to invert it, I then created the mask portion of the graph, it's essentially just the base black and white image combined with the mask texture inputted into a map range to control the strength of the texture overlaying the bricks.
I then packed the cavity map and paint mask into a Combine RGB node, this is not entirely necessary but I put it there for potential baking, I then just merged both textures with 2 MixRGB nodes. It's not entirely perfect, there are definitely areas that I can refactor but for the most part it works. Next step would probably be a way of adding noise to the Paint Mask.
The trick that you shown is an really rare kind of information that's very useful but extremely hard to find.
Thank you!
The texture blending is nice and all (actually amazing), but those add-ons are really gonna help me out
Gosh, thanks for the Dream UV. It was hell to use Blender after Hammer Editor
Awesome tutorial. I can already think of some cases where this would be useful for my blender stuff.
Great video, thank you
Looks close but not exactly how the source engine does it. What they do is take the blend modulate value from the texture, then add and subtract a "sharpness" value from it (for example 0.5), which gives a min and max value. They then clamp these from 0 to 1. Next they feed the input alpha from the vertices to a smoothstep function (map range in blender) with the edges being the min and max value from above. This is used as the lerp between the 2 color textures.
Interesting. The problem is there isn't a lot of accessible documentation for this feature. My method is basically an approximation that could be built off of, since nobody else seems to have done something similar.
how do you know all that 😭
can you tell me what addon you are using to see texture in node graph
"Node Preview", a little pricey but a must-have if you work with shaders often. You can get it here:
blendermarket.com/products/node-preview
You should have more views than this!
hammer is superior than blender for simple envs and block manipulation
But it is also neither pleasant to use nor practical for anything outside of Source mapping.