How to diplace parts of the material without displacing the other ones?

Hi everyone,
I want to create a ground material that contains wet parts that are reflecting and the usual ground material which is not reflecting. It should look realistic so I also used a simple displacement node with the texture that I also created for the basic color. Since there are supposed to be wet parts on the ground I somehow need to only use the displacement on the parts of the material which are not supposed to be water and because of that reflecting. For the areas that are glossy like water, I used a Musgrave texture. So white parts will be glossy, black ones will have the other ground texture. If I displace with the ground texture I also displace the glossy part of the texture. Basically, I want to create a ground material with displacement but also with puddles that are then not reacting to the displacement.

How can I then make such puddles on a displacement using material so that the puddles then don’t have any displacement but the rest of the material does?

(First render has the material that is on the image with no reflecting water but diplacements, second one would be how it would look like with the displacement part disconnected - so there is reflecting water and but no displacement)

Hey there…

well this is an easy one.

The “trick” is, that you just duplicate the ground-mesh, but do not move it, so the location is just the same (for the start).
Then You just “kill” the displacments and probably further existing mesh modifiers. Then unlink the material and create just a new one. BaseColour for the start up = black plus a glossy-shader.
Then, by adjusting the z-position, you are able to ‘fill’ the displacment-objects-‘valleys’ with ‘water’ .

Within this tutorial:


at about 32:40 this is shown on an example.

Happy blending

The more general answer is, mix your displacement value with some fixed value (maybe your displacement mid-level) on the basis of your water map.

Here, you’re doing something a little weird, because it looks like you’re adding a glossy to represent your water. The more physically accurate method would be to use a mix shader instead of an add shader. (And the more physically accurate as well would be to use your displacement to drive your water level, rather than the other way around. And, really, the most physically accurate would be to use two meshes, one with water, the other ground, so that you’re ground underneath the water can get displaced.)

In your nodes, the only part of the material that isn’t getting a glossy added is the part where the musgrave returns 0. So you can take the same color you’re feeding into your glossy, see if it’s greater than 0, and multiply the value feeding displacement by that. Then, if your glossy is black (no water), there will be no displacement.