Ambient Occlusion
I feel that, often, the details get lost in the automation of the processes we do in our programs. There are plug-ins, settings, kits and scripts we use on a day to day basis to achieve the work we do. Nothing wrong with that, but at what point does it hinder our actual learning and advancement? It’s tough to come to understand the underlying structure of all the virtual tools we use to do 3D, because it is such a deep pool of knowledge. No one person should be expected to know every last one of Maxwell’s equations when lighting a scene, but I would argue that we should try to grasp the underlying concepts so we know when, where, and why to use them.
Ambient Occlusion
At this point, all of us know something about ambient occlusion. We know that checking the box in our 3D application of choice, toying with the sampling, fixing the size, and clicking render will improve our scenes. Just a few boxes to tick and we now have something that is much more visually appealing and realistic, should that be our goal, but do you know why it works?
Ambient Occlusion is a virtual recreation of a specific phenomenon of light and its properties. AO exposes detail in textures and shape using shading. Often times, in computer software, AO is simply a grey scale map based on the distance of objects from one another. The map is calculated using rays, just like shadows and global illumination.
Breaking down the term Ambient Occlusion helps a little:
“Ambient” or ambiance is a type of lighting that envelope something in near equal intensity. If you toy around with an ambient light you will notice that it flattens depth and removes details. This light can often be used to simply brighten a scene, but if you were to ask me, I would say it’s almost pointless unless in specific cases or artistic styles. The best way to see ambiance in real life is to look around outside on an overcast day, when the clouds scatter light, removing any harsh shadows from the ground.
“Occlusion” is the act of Occluding, which means to stop, close up, or obstruct.
So Ambient Occlusion is the obstruction of ambient light. Now we can start to understand what is really happening here. As geometry begins to have less and less space in-between one another light gradually becomes occluded. This occlusion is calculated using randomly shot rays from surfaces to measure distance between polygons and outputs a gray scale map that is multiplied on your render. A ray that is shot and never intersects with geometry will be 100% white, the rest will gradually be a darker value as distance is reduced.
All 3D applications have a very simple method of applying AO, along with multiple parameters that are editable to achieve the desired effects. A short while ago these features were not built in, and there was an interesting trick to achieving Ambient Occlusion that when illustrated helps me personally understand how it works.
This technique uses a spherical array of lights casting light and shadows all with the same parameters. Rays are shot in all directions and the areas where the least amount of rays reach ends up being shaded.
I hope I got that all right; I did enjoy doing the research. If you guys have any input on this, or if I missed anything, tell me in the comments!
Here are some links to check out!
- http://http.developer.nvidia.com/GPUGems/gpugems_ch17.html
- http://www.gamasutra.com/view/feature/2042/hardware_accelerating_art_.php
- http://www.andrew-whitehurst.net/amb_occlude.html
- http://zj.deathfall.com/depthbasedOcc.htm
- http://www.cs.unc.edu/~coombe/research/ao/
- http://en.wikipedia.org/wiki/Ambient_occlusion
Hey guys! I like to play with 3 dimensions of space and 1 dimension of time, but unlike Einstein, I only make motion art. So I spend most of my time expressing myself in some abstract, visual way, and I have really latched onto Motion Graphics. I am a newbie here in the field, but I have a passion for the work. Feel free to if you are also a newbie or someone just looking into this awesome form of art, I always enjoy helping people out.
No CommentsNo Reactions