PDA

View Full Version : What exactly are bent normals for?


Throbberwocky
12-16-2004, 10:05 AM
Hi there,

everybody talks about ambient occlusion and bent normals. But can anyone tell me what exactly bent normals are for? I know what ambient occlusion is and what it is for. I use it every day. But what are those strange looking bent normal renderings useful for? What have bent normals to do with ambient occlusion?

I'd love to get some easy to understand examples on how to use those in our every day work.

Thanks for any help in advance ...
gumboYaYa

swag
12-16-2004, 02:10 PM
i think what you use every day ist occlusion - the ambient ist the surrounding light it can be a hdri or nice lightsetup - the bend normals splits the light information in coordinate vectors red being the X axis, green the Y and blue Z so you can change in compositing the ambient light position and save a rerender if the set-lighting changes

leuey
12-17-2004, 07:11 AM
Do you make use of the bent normals image in a compositing app (if so, how?) - or as info in the 3D app to somehow save render time? Forgive my ignorance.


-Greg

playmesumch00ns
12-17-2004, 09:38 AM
i think what you use every day ist occlusion - the ambient ist the surrounding light it can be a hdri or nice lightsetup - the bend normals splits the light information in coordinate vectors red being the X axis, green the Y and blue Z so you can change in compositing the ambient light position and save a rerender if the set-lighting changes
That's not correct.

Bent normals show the average unoccluded direction. That is to say, given a uniform ambient environment, the bent normal is the direction along which most light reaches a point. i.e., if you were standing at the bottom of a deep canyon, your bent normal would point staight up out of the canyon.

It's basically a fudge for doing diffuse environment lighting with a blurred environment map. Using the bent normal instead of the surface normal for lighting from this map will give you a slightly more realistic result (but still not as good as true raytraced IBL)

Chadrik
12-23-2004, 12:04 AM
when you use image based lighting for an ambient lookup, you want a diffuse look, meaning that you want to average many samples for every point on an object's surface. every ray that strikes an object spawns many more samples that shoot off into the environment in a hemisphere about that point. every time that one of these probes strikes the environment (i.e. hit's nothing) it returns the color at that point on the env map and all of these colors are added up and averaged to give the average ambient lighting for that point.
the idea behind bent normals is this: instead of doing hundreds of environment samples per surface point, why not just blur the environment map itself and do a single lookup in the direction of the greatest light contribution. in essence, you are precomputing your averages right into the map by adding blur, and then you assume that the single ray that points in the direction of greatest light contribution will return a color from that map that closely estimates the calculated average that you would get in the more expensive method described above. the problem with this is that you must still shoot many samples into the environment in order to determine the direction of greatest light contribution - you save mainly on reducing the image map lookup to only one.
the main advantage of bent normals (which i've yet to see implemented in a publicly released shader) is the ability to output these bent normals to file (one per frame) and then read them in during subsequent renders to do the environment lookup. instead of calculating the direction of greatest light contribution, which is the most expensive part of the ambient lookup, you reuse these calculations from your bent normal file and your ambient lookup becomes incredibly fast.
all in all, you're really better off using the old-fashioned brute force method.

Throbberwocky
12-23-2004, 08:42 AM
Thank you very much for the detailed answers! I feel enlightened ;)

misha_mk
12-23-2004, 10:11 AM
Chadrik what a great explanationhttp://cgtalk.com/images/smilies/thumbsup.gif
cheers
misha

CGTalk Moderation
01-20-2006, 05:00 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.