So I have created a basic concrete floor by applying a displacement modifier, using an image for the displacement map.

I then, used a noise texture in the material to generate the random puddles. The issue is that where the floor is glossy (water/puddle) the displacement is still active and therefore makes the puddle lumpy when it should be flat.

My work-around was going to be to use the generated noise texture and overlay that on the displacement map so that wherever the puddles are, the map would be 50% gray.

Is it possible to bake the generated noise texture to an image file that I would be able to composite in photoshop?

I would like to avoid making the noise texture in photoshop to begin with because I like being able to modify it in blender to get puddles that fit seamlessly into the scene.

I have attached an image that illustrates the issue. Hope there is a better work-around for this! Thanks in advance.

enter image description here


1 Answer 1


Using generated textures with the Displacement Modifier in blender is kind of outdated, because it relies on the old blender internal textures. You can't mix these textures using Cycles nodes and therefore also won't be able to bake them using Cycles. While there probably is a way of achieving this switching over to blender internal i would recommend you not to use Texture Displacement Modifier but rather to do it the native Cycles way:

The Tools:

Cycles "Displacement" output socket

By default it affects the normals and the angle based shading math and (not the geometry itself like the Displacement Modifier). So it's an efficient way to fake roughness/displacement similar to using a normal map. Because the floor is very flat and even you probably won't see great difference to real geometry displacement like in your screenshot.

Experimental: Cycles Microdisplacements + Adaptive Subdivision Modifier

If real geometry displacement is needed Cycles offers a new (still experimental) technique introducing real geometry (micro-)displacement. It is very handy and memory/performance efficient because the actual subdivision and displacement only happens in the renderengine while the object stays lowpoly while editing. This video by Andrew Price gives a good overview. Here is how to enable it in three steps:

  1. Enable Experimental Cycles in the Render-Tab:
    enter image description here

  2. Switch to Geometry Displacement in the objects material:
    enter image description here

  3. Add Subdivision Modifier "Simple" and "Adaptive": A dicing scale of 1 means the mesh gets subdivided pixeldense - there will be at least one "sub-vertex" per rendered pixel.
    enter image description here

The Setup:

Option 1: Using one object/material

So this is how you could setup one cycles material for both concrete and puddles:

enter image description here

Option 2: Two separate objects/materials

The setup above has the disadvantage that if the water is semitransparent the concrete shining through doesn't have displacement. Another solution would be to add a second plane below the concrete that serves as the water level and use the puddles mask to dig holes in the concrete material. This requires micro-displacement. In this screen I have exaggerated the effect for demonstration purpose:

enter image description here

Also check out the other cycles procedural texture nodes. As an alternative you could also create the holes using sculpt mode...


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .