Archive for December, 2009


December 4, 2009

After spending most of this term concentrating on rendering synthetic objects into real spaces I felt an interest to return to fully simulated environments in an attempt to see how the context and simulation is altered, allowing objects to be presented and questioned in a different light. By recording live-action and integrating CGI, my main objectives became to create a sense of illusion so that both elements became unified and indistinguishable from each other. However once the synthetic objects are returned to a fully simulated scene, the physical boundaries of the real world are no longer applied, allowing time and space to become infinitely manipulable.

With this in mind I was excited about retaining the elements of reality within my 3D scene. I found myself wanting to challenge this notion by creating a physically accurate and believable simulation of two balls colliding. In particular I tried to create something that would not have been possible to shoot on video due to the fact I couldn’t get my hands on a high speed camera. To put this into practice I was keen to create a scene in which the models used shaders and lighting setups that were as physically accurate to real life as possible. Firstly custom mia_material shaders were implemented on both balls with subtle bump mapped textures. To fully simulate light in an accurate way I was about to use my in depth knowledge of HDRI and image based lighting to pull this off. However I remembered that Mental Ray rendering software also carried a physical_light shader that when connected to area and point lights simulate accurate real world lighting data. As with real illumination values the light intensity falls off with the inverse square of the distance. The image below shows the physical_light node connected to 3 area lights.

Here are the main attributes that control the light’s direction, spread, and exponent parameterst;

specifies the light energy. Since this shader is physically correct, its energy is distance-dependent and not normally in the range 0…1. This is normally a copy of the light source energy, but keeping it separate makes it possible to adjust direct and indirect illumination separately.

is the cosine of the opening angle of the inner solid cone, if the shader is attached to a spot light source.

is for optimization: if the illumination is less than threshold, the illumination can be discarded and no shadow rays need to be cast. The default is 0.

is for flat area lights only (rectangle and disc): the default cosine illumination distribution is made more narrow by taking cosine to the cos_exp power. The default is 1.

I spoke with some colleagues at work about this shader to see if it was currently used within the 3D animation industry. Most of them said it wasn’t because of the lack of manipulation and control you have in the compositing process i.e, separating the shadow, occlusion, beauty and specular passes to tweak them all individually.
When doing some further research I came across a very thorough critique of this light shader outlining it’s uses and flaws that helped me better understand its value.

However, for now I was very interested in using it within my 3D environment as the results were particularly rewarding.