Forum: Poser - OFFICIAL


Subject: Is there any advantage in using a normal map for Poser?

Paloth opened this issue on Feb 17, 2011 · 50 posts


bagginsbill posted Fri, 18 February 2011 at 8:30 AM

> Quote - BB.. have you ever decided if you prefer normal maps over displacement maps? I recall a debate about them a while back, but not the end results.

Sorry I took a couple days to answer. I wanted to do some research first so I have some data from which to make a judgement.

SHORT ANSWER: Bump map wins, hands down. Normal maps are less detailed and the time savings versus bump map is tiny. I have the option to use a bump map as displacement. Bump maps are adjustable, normal maps are not.

LONG ANSWER:

I rendered a Fractal Sum node to produce a 300x300 bump map image which I saved. 

I loaded the bump map, and using the N node and a little math, I rendered an equivalent normal map. I saved that as normal map image.

I then made two squares, one with the bump map, one with the normal map, and rendered them side by side, to verify that they produce the same appearance.

While they look similar, the normal map looked softer. The attached images shows the results - bump is on the left. Perhaps the results would be different if I had generated the normal map from the procedural directly, instead of from the first bump map. But when I'm given a bump map, this is the only method possible, so it's not valid to justify some other tactic for producing the normal map.

So my first tentative conclusion is that pixel-for-pixel, a bump map is more detailed in Poser. Perhaps that's due to my method, but here you have the information about what is the outcome using this workflow and can judge for yourself. I will not be converting bump maps to normal maps for the purpose of an improvement in detail, since the opposite happens using this workflow.

Now all that remains to justify the normal map is speed. What's the speed difference?

I fill the preview with the square and render at 600 x 600 on my MacBook Pro in Poser Pro 2010. I used two lights - an IBL with no image and no AO, and a single infinite with raytraced shadows. I used the Render Firefly script for timing the render. I rendered three cases - using the bump map as displacement, using it as bump, and using the normal map.

Displacement - 18.4 seconds

Bump - 14.7 seconds

Normal - 14.2 seconds

The displacement surely takes longer, and for brick walls and other such generally flat things, is not visually different enough to justify the time. However, if something really sticks out, this is what I use.

Obviously, the normal map saved 1/2 second.

Now in my typical render, I am not just rendering a stucco or brick wall, and the render is usually bigger. But in this test, 360,000 pixels (360 KP) were of the wall, and we can presume that in a larger image with other stuff, we still might have about 300 to 500 KP of normal-mapped content being rendered. So in such an image, I will still save about 1/2 second on the render, even if the rest of the stuff makes the render take a couple minutes.

Is this worth the effort? Not in my opinion. If conversion of a single bump map to normal map format takes me just 2 minutes, I have to render the image 240 times just to get back to even.

When I also take into account that the quality of the details is somewhat reduced, and that I no longer have the ability to tweak the bump depth when using normal maps, my conclusion is I will never use them unless they already are given to me.

Edited to add:

Sometimes people say normal maps save a lot of time, but when they say this, they do not mean save a lot of time compared to bump maps. They mean save a lot of time versus using real geometry. Bump also saves a lot of time versus using real geometry. Keep the comparison clear in your mind when reading posted opinions. Displacement is much faster than geometry. Bump is slightly faster than displacement. Normal is just a tiny bit faster than bump.


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)