New methods for realistic surface rendering in computer games
Overturning cars, flying missiles, and airplanes speeding across the screen – on modern computers, 3D objects can be calculated in a flash. However, many surfaces still look unnatural. Whether it is skin, stone or wax – on the computer screen, all materials look alike, as if the objects had all been cut out of the same kind of opaque material. This is about to change: TU Wien (Vienna), the University of Zaragoza and the video game company Activision-Blizzard have developed a new mathematical method which makes surfaces appear much more realistic by taking into account light scattering which occurs below the surface.
The Light from Down Below
When we hold our hand against the sun, it looks red along the edges, because light enters our skin. The appearance of an object is strongly influenced by scattering of light inside the material. "It is called subsurface scattering", says Christian Freude, who works on the new rendering method together with Károly Zsolnai, Thomas Auzinger and Michael Wimmer. "This scattering inside the object is the main reason why different surfaces can look so different. Skin does not look like wax and a plant does not look like a stone surface", says Christian Freude.
Skin is particularly tricky. A face can be rendered in high resolution, with ultra-realistic details, down to single pores and tiny impurities; but this does not mean that it looks realistic. When subsurface scattering is not taken into account, even a perfectly modelled face looks as if it has been chiselled out of a dull, opaque, skin-coloured stone.
It's About Computing Time
"In principle, we could simulate the physics of light scattering below the surface", says Christian Freude. "But to do that, we would have to simulate countless light rays, and it would take hours to render a single picture." Therefore, the research team looked for a method to achieve a similar effect in fractions of a second. This is how the "SSSS-method" (separable subsurface scattering) was developed.
Jorge Jimenez from Activision-Blizzard came up with the basic idea and went on to develop a similar method especially for skin. "Based on that, we have worked out the mathematical basis for displaying arbitrary materials, for example marble, wax or plants", says Professor Michael Wimmer.
"We start by calculating the scattering of a single beam of light below the surface. With this result we can create a simple filter profile, which can then be applied to the images again and again", says Christian Freude. "The computer image is still created with conventional methods, then we modify it with our SSSS-technique, improving the appearance of the surfaces."
"We sought an elegant solution that can be applied to a picture that has already been rendered. The final version of our method only takes half a millisecond per image in full-HD-resolution, on standard commodity hardware", says Károly Zsolnai. This means that the smoothness of the motion is not affected.
"Attempts to include subsurface scattering in real-time rendering have been made before, but up until now, the computing time has always been too long for practical purposes", says Christian Freude. "We have now been able to reduce the modification of a two dimensional image to two one dimensional calculations. This saves computing time but still yields very convincing results."
"This reduction of the dimensionality has been achieved using various mathematical methods, ranging from exact integration and numerical optimization to user-driven color profile modelling", says Thomas Auzinger.
Activision-Blizzard is already using this method. The team is confident that the SSSS-method will soon be used in many other applications too. The new method will be presented in the journal "Computer Graphics Forum", so all developers will be free to use the new approach.