Normal to Height Map with Geometry Nodes + File Download

Normal map to height map conversion using numerical integration in Geometry Nodes.




Normal map in first video painted by Freya Holmer

22 Likes

Great work! I’ve been following the progress on Freya’s work, and it’s been really interesting!
One thing I do wonder, is it possible to flatten any fully blue sections as a final step? I believe the somewhat warpy nature of those parts is probably because of precision issues, but it could improve the results even more.

Yeah should be possible. But that only works with very simple normal maps. The stepping is due to the accuracy of numerical integration. More steps will make it better, but also slower to compute.

1 Like

It’s not the stepping I’m referring to specifically, it’s the warping on the background of the first one, the stones. It’s all completely flat in the source, but probably also owing to it being handpainted (so the source can stray into ‘impossible’ shapes) the end result has quite a bumpy background plane.

Oh that’s what you meant. I also think its because of hand painting. You can even notice them in Freya’s solution.

1 Like

File download!
normaltoheight.blend (1.1 MB)

2 Likes

This is crazy cool, I’m impressed.
I think I’ll have to look under the hood and play around with it sometime (if just to satisfy my curiosity and maybe stresstest geometry nodes a bit).


Well, other than that, you know what I’m gonna ask now:
The Great Collective Geo Nodes Thread
pretty please? :pleading_face: :pray:

greetings, Kologe

Done! I was gonna post it there anyways but it just slipped off my mind due to all the coding stuff.

Oh, too cool ! I was following Freya’s posts too ! so I assume you followed her approach. Thanks a bunch for providing this, it’s invaluable. :grinning: :vulcan_salute:

(I absolutely love that you can see it working and approximating ever so close)

1 Like

I don’t know what her approach exactly is, but is more technical than mine.

Anyway to output this as an attribute to a shader, wondering if this can be used as a bump map generator

Or some other way to generate a height map from a normal map to use as a height map texture

How is the first video alot smoother when the one in the download is very bumpy and has alot of artefacts?

Idk why you would want to use bump instead of normal, but there are tons of tools available online to do the conversion. The first video is smoother because the slopes are not as steep.

I was actually wondering if it could be used with your parallax shader
If I can turn a mesh with normal into a heightmap via GN then send that into the shader and use as parallax

I have lots of assets that use procedural normal maps, this is more of a curiosity about making everything procedurally inside blender

I would recommended using a dedicated program