We present a new domain-specific programming language suitable for extending both interactive and non-interactive ray tracing systems. This language, called 驴ray tracing shading language驴 (RTSL), builds on the GLSL language that is a part of the OpenGL specification and familiar to GPU programmers. This language allows a programmer to implement new cameras, primitives, textures, lights, and materials that can be used in multiple rendering systems. RTSL presents a single-ray interface that is easy to program for novice programmers. Through an advanced compiler, packet-based SIMD-optimized code can be generated that is performance competitive with hand-optimized code. This language and compiler combination allows sophisticated primitives, materials and textures to realize the performance gains possible by SIMD and ray packets without the low-level programming burden. In addition to the packet-based Manta system, the compiler targets two additional rendering systems to exercise this flexibility: the PBRT system and the batch Monte Carlo renderer Galileo.
展开▼