So I was trying to reproduce this tutorial for Lightwave on Blender: http://iaian7.com/lightwave/SoapFoamSurfacing

Basically the guy uses a node setup to get procedural Black&White bubbles which he then uses to generate Normal Maps using a custom setup. You can get the same B&W bubbles using a Voronoi texture on Blender then using a Minimum(Math) node to isolate the shapes (or use a Color Ramp instead).

The problem is, if you feed the result of the B&W bubbles directly into a normal map node you get pure black, which is wrong.

When you input it firstly into a Bump node to convert B&W to normal values, then into a Normal Map node, the result is too dark, is as if you were using a normal image without selecting Non-Color-Data.

For comparison, this is the result using the following normal map image: enter image description here Here is the same, but with Non-Color-Data selected, and Color selected on the right: enter image description here As you can see, left is correct, right is wrong.

Then here is the node setup for procedural bubbles: enter image description here The result is not exactly the same pallette as a normal map image would be, but I tried keep going anyway. This is the result of that bump node going into a glass shader: enter image description here As you can see, no "bubbliness" is present, they are kind of flat. If you feed the Bump node into a Normal Map node, this is the result: enter image description here

So I'm not being capable to reach a result similar to what I'd get with a regular normal map image. I wanted it to be procedural so that I could put it in any object instantly, without repetition no matter the size and shape.

At first I thought that the output of a Bump node was being interpreted as being Color Data, instead of Non-Color Data, so these are the things that I tried:

1) follow this node setup to convert from sRGB to Linear (and the inverse as well):https://blenderartists.org/forum/showthread.php?251208-sRGB-lt-gt-Linear-Nodegroup

These are the terrible results: enter image description here enter image description here

2)Then I tried using this node setup which is apparently for Procedural baking of normal maps on cycles: https://blenderartists.org/forum/showthread.php?348799-Baking-Cycles-Procedural-Normals-to-Texture

This was the result: enter image description here Still too dark... apparently the node setup did nothing to "fix" the output of the bump map.

Anyone have any ideas? This is the blend file: http://pasteall.org/blend/index.php?id=46983



1 Answer 1



I think that everything should be ok with just Bump node. There is a method to convert Height Map (B&W) to the same Normal Map as in your first image, but this produce the same results.


First my node setup:


Bump_to_normal group is not mine, see Credits at the bottom.

In Texture Group Node there is Height Map created from Voronoi Texture.

Bump node:


Bump_to_normal node:


As you can see there is no difference at all, no matter from what map you feed Normal input in Glass node.


I think your problem lays just in Distance value in Bump node. It's to high.

About Bump to Normal:

I can't tell you how this node setup is working, there is little to none info from the author (check Credits). But I'll show you how to set it up:

bump to norm

  1. In Texture Node Group > Height Map Image set your Height map. It could be any B&W input. Image Texture, Texture Paint, Procedural, you name it.
  2. Connect Bump_to_normal Node Group to Normal Map and then just to any Normal input you want.

Blend file:


First of all this is not my work, it's from riceart41 on BlendSwap (download this file to make all of this to work). You can find more information on YouTube and on BlenderArtists.

  • $\begingroup$ Thanks! I guess I was not making proper use of the Bump node... anyway that node setup bump_to_normal can be really useful in other situations, thanks for sharing! $\endgroup$
    – Arkhangels
    Commented Jun 23, 2017 at 23:13
  • $\begingroup$ @Arkhangels Check my answer here for other use option: blender.stackexchange.com/questions/77088/… It wasn't accepted though... $\endgroup$
    – cgslav
    Commented Jun 23, 2017 at 23:45

You must log in to answer this question.

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