Sony Pictures Imageworks Releases Open Source Shading Language
Press Release from Sony Pictures Imageworks
CULVER CITY, Calif. -- Sony Pictures Imageworks, the award-winning visual effects and digital character animation unit of Sony Pictures Digital Productions, released the Alpha version of its source code for OSL, its Open Shading Language, it was announced today by Rob Bredow, Chief Technology Officer of Sony Pictures Imageworks.
OSL is a fundamentally different approach to shader languages for visual effects and computer animation rendering. OSL was designed to enable and support the latest developments in rendering technology. Unlike previous shader languages, OSL assumes a rendering system that can perform ray tracing, and provides for natural global illumination and a demand for physical accuracy. All of which is significantly different from the assumptions made years ago when most of the current shader languages were first developed.
Sony Pictures Imageworks initially developed OSL for use with its in-house renderer in the production of animated feature films and visual effects. The language specification released today was developed with input by other visual effects and animation studios, including Rhythm & Hues, who also wish to use it. The code is now available through Imageworks' Open Source website at http://opensource.imageworks.com
Imageworks announced its Open Source program last August and has spent the past several months preparing OSL for use on its upcoming films.
This early release of code follows the model of the most successful open source programs in which development from this point forward will be done "in the open" for others to watch, use and contribute to as desired. OSL is licensed under a "production friendly" open source license. Imageworks is optimistic that OSL will be adopted broadly by those needing a modern shading language for production needs.
"We're excited to be sharing OSL with the world," said Rob Bredow. "Our goal is to follow the model of the most successful open source software by making our development public. This provides the very best opportunities for collaboration and adoption. Even though it's in its early stages, there is a lot of sophisticated groundwork already laid in OSL. We look forward to the response from the computer graphics community"
OSL TAKES A DIFFERENT APPROACH
According to Imageworks' OSL lead developer Larry Gritz, one of the industry's foremost experts in shading and rendering, shaders in other languages compute the color of an object as viewed from a particular direction. In this way, the shader is a black box to the renderer -- all the renderer can do is execute the shader, for a particular direction, and get the result.
What distinguishes OSL from prior languages is that the material properties of surfaces, explicit descriptions of how light is scattered by them, are treated as a first-class concept that the shaders compute and that the renderer can then manipulate and reason about. The renderer can evaluate these properties, i.e., figure out the outgoing radiance in any particular direction. This is just one of many things OSL can do. It also "importance samples" these surfaces, which is helpful for efficient global illumination because it lets the renderer send the rays in the places that count the most, instead of just groping around in the hopes of finding important light paths. Because sampling and evaluation are de-coupled from the shader execution, OSL allows a renderer to reorder computations in really interesting ways that could greatly improve speed and/or image quality.
Also, OSL is very consistent with physical units throughout, which not only improves the ability to accurately simulate materials and lights, but it also solves some longstanding problems in production, such as matching results between area light sources, emissive geometry visible to GI, and HDRI environment maps. These matches are now possible with OSL.
About OSL (Open Shading Language)
Open Shading Language (OSL) is a small but rich language for programmable shading in advanced renderers and other applications. OSL is similar to C, as well as other shading languages; however, it is specifically designed for advanced rendering algorithms with features such as radiance closures, BRDFs, and deferred ray tracing as first-class concepts.