Saturday, January 14, 2006

Differential Adaptive Light Masking and Integral Transform Extrusion

We have had enough posts about MS and the computer industry, now it's time to talk about some fun stuff. What kind of title is that do you wonder? Well, I just got finished watching Revenge of the Sith for the 5th time on DVD and it reminds of my heady days as a "probably never gonna get paid for it" FX designer.

Back before NBA Live, I thought the best thing to do would be what is now called "skinning" or the process of applying an outer texture combined with an inverse kinematic derived from a filmed subject. This is then placed onto "body" matrix consisting of the vertexes ofnthe human body ( fingers, knees, elbows, necks, etc).
Nowadays, movie or pre-rendered graphics can almost create lifelike faces. Almost. The biggest prblem facing FX designers i show to model skin textures. Even though skin appears smooth, it consists of millions of small irregularly shaped "patches" placed between millions of nonlinear vertexes. As lisght shines on skin at different camera radii, the amount of light absorption and reflection changes as per the billions of data points existent with these huge irregular matrices.

This problem is compounded by the flexible nature of skin which causes lines and wrinkles when certain movements are performed. How will it be possible to then show the difference between a freckle at 180 degrees from camera and a freckle 90 degrees from camera? The answer is Adaptive Light Masking. Rather than trying to force the textures to mimic the extremely complex bump mapping of a freckle, light sources can be differentated over a complex surface using simple ray-tracing. I this way, it is possible to show the difference in shadow between a young person whose skin is tighter and an older person whose face is showing the effects of weather and exposure to the sun.

Hairs are even more susceptible to the complexity of the skin model. As hairs are shorter they behave differently as per shadow then longer hairs, which can be used to cover impending absortion differences. Even complex Alpha blending becomes too "plastic" in close up views as is evidenced by certainfight scenes in the Matrix where it is clear that "Neo" is a CGI construct. ILM has done a fabulous job though with their blend of live action and CGI. It seems that they have found one of the secrets to FX - "fake it, as long as it looks like what it should it doesn't matter how you do it." Take for example the creature ObiWan rode, it was much improved from the one Anakin rode in Attack Of The Clones. It looked as though a "mechanical bull" was used and then skinned onto a CGI extension. Or on Kaashyyk when the light didn't move along the helmet as the Storm Trooper turned his head. There were some points where they didn't use integrals for the legs of the Troopers and they seemed slightly cylindrical. Even the complexity of Yoda's face had to be tempered by the use of a rougher texture. This is necessary because it is very difficult to create light that perfectly filters like sunlight. Many FX shops are now using overly-muted tones and heavy "greenish-brown" filters to even the distribution of light between CGI generated light and sunlight or "actual light."
I have been looking at using colored lenses to filter light and so far the concept is proving sound. Maybe I'll make some money at it yet.

No comments: