OSL Patterns for Three Renderers

28 Jun 2015

Blender could soon be the main tool for OSL shader development. The application supports OSL for quiet some time for it's internal global illumination renderer Cycles. But it's getting more and more interesting since Pixar released a non-commercial RenderMan version, which does not only implement uni-directional and bi-directional path tracing but also supports OSL for writing shaders or patterns (using e.g. PxrOSL). At the same time another popular, production ready, and widely used renderer, Arnold, will soon support OSL. Arnold is already using OSL in a special version being used at Sony Picture Imageworks, but the publicly available version will follow soon. Here some early tests:

Blender being used for OSL shader development.

Above you see a screenshot of Blender, with a piece of an OSL shader being visible in the lower part. Not only can the shader source code be changed and automatically be compiled, but the result can be watched in real-time in a Cycles render preview directly within the 3D viewport. That's extremely useful during shader or pattern development. You obviously can also change the values for all the shader parameters and see the effect in real-time. Once you are happy with the result you can export to PRMan (Pixar's RenderMan implementation) an/or Arnold and render the resulting scene description files (.rib for PRMan, and .ass for Arnold). The results will differ slightly for global illumination, because of different rendering algorithms being used and non-compatible base shaders, but at least the OSL based patterns will look exactly the same.