Cycles and normalmaps - Somehow works. + realistic materials.

Hello blenderheads! Do you like normalmaps? And do you like Cycles? If yes then read on:

Lately i found out that normalmaps actually works in cycles. (Thanks to Hiddenus)
///////
(EDIT: Normal maps don’t work as supposed to, we can only get mediocre results, sorry)
//////

Here is my test:


How it works:


can we have a complete set of all the nodes, and how do you have the multiply node?

Are you sure that this is really working as a normal map should ? And not simply converting the color data to black and white and then using it as a bump map ? I mean, i suppose it is more subtle than that. But i don’t have a clue about normal maps any way…

Now I am not entirely sure what the Normal node does in Cycles (especially with an input) but you definitely cannot reconstruct the bump that way and this is not the intended use of the Normal node. If you look at the resulting image, it doesn’t look anything like the normal map would make you expect.
From what I can read from the docs, I believe you are performing a dot product between the vector sampled from the texture and the vector specified from the “ball”, which is not the same as the bump value. In fact, it is impossible to accurately reconstruct the bump value from a normal map because that information simply isn’t encoded in it. Even if you did it by some heuristic, that would have to be a neighborhood-operation and you cannot do those in a shader.

Regardless of if it’s right or not, his method does provide better results when using a normal map than just plugging it into the displacement socket.

Im sorry for raining on your parade but normal node does nothing in your setup
Its only doing what blender does automatically, turns the image into black and white then uses it as bump map

well that was the coolest idea that doesn’t work so far with cycles :slight_smile:

Been using normal maps in cycles for awhile now…
You dont need the normal node or to use the non color data function.

can we have a complete set of all the nodes, and how do you have the multiply node?
Maybe later. And how do i have the multiply node?

Are you sure that this is really working as a normal map should ? And node simply converting the color data to black and white and then using it as a bump map ? I mean, i suppose it is more sbttle than that. But i don’t have a clue about normal maps any way…
This method proved to be mediocre at best. I had my suspicions but thought it kind of work (and it does… kind of)
However it is not simply converted to B/W as this test shows:


@ Zalamander:

You are absolutely right, i changed the title to not confuse further.

Regardless of if it’s right or not, his method does provide better results when using a normal map than just plugging it into the displacement socket.
Exactly, but still not satisfying for a normalmap-head like me :smiley:

Im sorry for raining on your parade but normal node does nothing in your setup
Its only doing what blender does automatically, turns the image into black and white then uses it as bump map
Not at all, look at the test above. It does something…

well that was the coolest idea that doesn’t work so far with cycles :slight_smile:
Thx lol!

Been using normal maps in cycles for awhile now…
You dont need the normal node or to use the non color data function.
I would love to see your setup.

And actually yes you need to use Non-Color function with Bump, Spec, Nor and so forth (unless you would like your maps gamma corrected, giving incorrect results)

Besides if you don’t use normal node, your results my be even worse than my setup!

/////

Final test, to show Normal map (wrong result) vs Bump map (Correct)


These materials are beautiful. Where’d you get the textures?

Left: Image -> displacement. Right: Image -> normal -> displacement

http://www.pasteall.org/pic/show.php?id=31977

@Graphix

These materials are beautiful. Where’d you get the textures?

The textures are from cgtextures.com (the best texture site in the world) And i created custom reflection maps, and normal maps. The real challenge lies in replicating real world materials. I plan a tutorial series about materials soon!

@ldh1109

Left: Image -> displacement. Right: Image -> normal -> displacement

Interesting test, but i need more info as i don’t get your point?

Are you using normal map? bump map?

@Guiseppe Normal map
From my test the setup without the normal node gives me better results

Normal maps as bumps then?
What will happen near UV seams is another story. It won’t work.
A way to turn normal maps to bumps is via crazybumps app. Again, near seams areas, something ugly is waiting. LOL
I have the feeling that normal maps implementation in cycles will come sooner than expected.

Does Blender produce “normal” normal maps ?
I mean, I’ve baked a normal texture to a 1024x1024 file and it seems the greenish colour comes from the top and the redish one from underneath… Isn’t it usually the other way round ?

Isn’t there a simple way to convert them into bump maps, i mean in an image editor, by separating the channels, etc… ?)

EDIT: oh apparently there are different flavours of them…

There’s no standard normal map. It depends on each application as to how they handle them. Some may require flipping colour channels to work correctly

Do you mean swapping the R and G channels, or inverting one of the channels ?

EDIT: After a bit of experimenting, it seems that i get consistent results by inverting the G channel only. Crazybumps seems to use another standard than Blender then…

Can an experimented user confirm ? Michalis, you seem to work with crazybumps…

Thanks Richard !

@Richard Marklew
An opportunity to ask another zb-blender user.
How do you bake compatible nor-maps to blender BI in zbrush?
I know how to do this in 3dcoat only.

From my test the setup without the normal node gives me better results

Ok then, i think with normal node is better, but since this is suboptimal it doesn’t really matter anyway :smiley: But your test proves your point!

Does Blender produce “normal” normal maps ?
I mean, I’ve baked a normal texture to a 1024x1024 file and it seems the greenish colour comes from the top and the redish one from underneath… Isn’t it usually the other way round ?

Since normal maps have no real standard, it will differ from application to application. Besides there are several different implementations (object space, tangent space, and so forth) so it is quite a mess. However tangent space is by far superior for most uses.

Isn’t there a simple way to convert them into bump maps, i mean in an image editor, by separating the channels, etc… ?)

This free program will do it perfectly!

http://charles.hollemeersch.net/njob
This free program will do it perfectly!

Nice one Giuseppe ! Thanks !