Monday, June 25, 2018 - 10:00am to 11:30am
Location:8102 Gates Hillman Centers
Speaker:YONG HE, Ph.D. Student http://www.csyong.net/
To produce compelling images, a real-time renderer is responsible for simulating many real-world visual effects. These effects range from modeling the material properties of surfaces to evaluating complex lighting conditions, to the animation of surfaces. Production real-time renderers contain hundreds of thousands of lines of code that define these shading effects. Like any complex software system, it is desirable for these code bases to be implemented in a flexible and extensible framework that embodies the key rendering concepts. In addition, authoring real-time renderers is particularly challenging because of the need to meet extreme performance goals, which involves efficiently using the massively parallel GPUs, and highly specializing code that executes in various GPU pipeline stages. In response to these challenges, we contribute a shading system design pattern called shader components, that serve as a guideline to authoring shading systems in a modular fashion that is consistent with developers' mental organization of rendering concepts, while retaining key optimizations required to achieve the desired performance goal. We present the design of the Slang shading language and its compilation system, which extends HLSL with a minimal set of general-purpose language features, including generics with interface constraints, associated types, and interface/structure extensions, to facilitate implementation of the shader components while providing an incremental path of adoption for current HLSL developers. We demonstrate how to rearchitect a large open source renderer to adopt shader components using Slang's compiler services, and show via a thorough evaluation that the resulting shading system is substantially simpler, easier to extend with new features, and achieves higher rendering performance than the original HLSL-based implementation.
Kayvon Fatahalian (Chair)
Tim Foley (NVIDIA Corporation)