How to create procedural surface defects with Cycles similar to this image?

  • 1
    $\begingroup$ To fake them and reduce render times use a normal or bump map with procedural texture plugged into; to make defects real add Displacement modifier and feed it with again procedural texture. Or use Displacement feature from Experimental set, like here $\endgroup$
    – Mr Zak
    Commented Apr 25, 2016 at 21:53

3 Answers 3


The simplest way is with a bump map. You can use a mixture of various procedural noise textures and a Bump node to create one quickly:

enter image description here

It's up to you to make come up with a texture that you like. I recommend this talk for some tips on generating realistic patterns with procedural textures.

enter image description here

This probably isn't necessary in your case, but if you want the bump mapping to affect the actual geometry you can use the Displacement output with Experimental Features enabled. See What is the difference between the displace socket and a bump map?


A real flintstone way of doing it would be to take a noise node, feed that into a heightmap/normal node, and then feed that into your shader. You could take the noise map and and run that through a math:multiply node to scale the intensity of the bumps. For that image, a scale of .2 or less would be likely what you want.


To truly get the result you desire, you have to go beyond just texturing. If you follow the procedure described here, you should achieve something like this:

enter image description here

Creating the Mesh

Shift + A to add a sphere, Tab into edit mode, key Z to enter Wifeframe mode, press B to box select the center two rows of faces while in Face Select selection mode, and key E, S, and Shift + Z to scale the new vertices on the x and y axes. Tab out of edit mode and add a cylinder. Scale and transform until it reaches the desired width and height. Make sure some of it is inside the lollipop.

Adding Object Modifiers

With the cylinder still selected, key T to open the tools panel and select Shading: Smooth. Do this to both meshes. Select the sphere and add a Subdivision Surface Object modifier. Set both the Subdivisions: View: and Render: to 4. Also add a Displace Object modifier. Set the Strength: value to 0.03. Click to add a new texture. Click over to the Texture tab in the Properties panel. If the Displace modifier's texture is not displayed, click on the top dropdown menu and mouse over to it. Set the type to Voronoi, change the Voronoi: Noise: Size: value to 0.01, and the Colors: Adjust: Brightness: value to 0.7. The farther away from 1, the less bumps.

Assigning Materials

Select the sphere and add a material to it in the Materials* tab. Change the default Diffuse BSDF Surface type to Glass BSDF. Set the Color to hex EF9A4A. Set the Roughness to 0.05. Leave the IOR at 1.45. Select the cylinder and add another material. Leave all the default settings, but up the color to full white. Go to the World tab and change the color to hex 8C8C8C.

Lighting the Scene

Press X to delete the default point lamp, and add a plane. Move it up 3 units on the Z axis. Add an Emission shader material to it and set the Emission: value to 20. Duplicate the plane three times until there is a loose square of four of them above the lollipop. The scene should now look like this:

enter image description here

Preparing for Render

Go to the render tab and change the settings as follows: Dimensions: Resolution: 570x748; 100%, Sampling: Clamp Indirect: 3, Sampling: Samples: Render: 300, Light Paths: Filter Gloss: 0.5, check Film: Transparent. Roughly:

enter image description here

You can change the Light Paths: Bounces if you choose. Click the Render button.


Go to the Compositing Screen layout. Click the Use Nodes button. In between the Render Layers node and the Composite node, add an Alpha Over node. Connect the Render Layers output to the Alpha Over bottom color input. Set the hex in the top color input to 80FFFF. The nodes should look like this:

enter image description here

Click the Render button once more.

  • $\begingroup$ please look at the formatting edits made to your answer. Also read: meta.blender.stackexchange.com/a/251/1853 $\endgroup$
    – user1853
    Commented Apr 26, 2016 at 0:52
  • 3
    $\begingroup$ Not the best answer, but still a valid way of doing it. $\endgroup$
    – Pharap
    Commented Apr 26, 2016 at 3:33

You must log in to answer this question.

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