A renderer is the software that takes all of the models, animations, textures as well as lights and other scene objects and produces the final image that make up an animated movie by calculating how the light bounces around a virtual scene and shades the objects. Hyperion is our in-house renderer and is a physically-based path tracer.

Path-traced GI promises many benefits for production rendering: it can produce richer, more plausible results with far fewer lights, and avoids the data-management burden associated with huge point clouds and deep shadow maps. While this often results in better images and higher productivity, rendering performance degrades significantly as unique geometric and texture detail scales beyond the capacity of main memory. Hence, existing production renderers focus on tracing fewer rays and shading fewer points, and encourage the use of lighting and shading caches and geometric instancing. Such measures compromise artistic intent.

Disney Path Tracing

Disney Path Tracing

As ray-tracing research improves raw geometry intersection, incoherent shading becomes a relatively larger problem. In particular, incoherent access to productionscale texture data incurs frequent cache-misses, leading to memory, disk and network delays that dominate run-time. Irradiance and radiosity caches  attempt to mitigate this, though their inherent non-directionality makes them suitable only for perfectly diffuse surfaces. Consequently, common practice separates integration strategies for diffuse rays, specular rays, and caustics, re-complicating artist workflow.

Disney Path Tracing

Disney Path Tracing

Worse, these approaches are difficult to scale to multi-core architectures because of synchronization, NUMA effects and load-balancing. Thus, it is desirable to avoid caches and instead seek to ensure coherent shading. In this paper, we present a streaming ray-tracer, capable of performing multi-bounce GI on production-scale scenes without resorting to shading caches or instancing. To achieve this, we introduce a novel two-stage ray sorting framework. First, we sort large, potentially out-of-core ray batches to ensure coherence. Working with large batches is essential to extract coherent ray groups from complex scenes. Second, we sort ray hits for deferred shading with out-ofcore textures.

Disney Path Tracing

Disney Path Tracing

For each batch we achieve perfectly coherent shading with sequential texture reads, eliminating the need for a texture cache. Our approach is simple to implement and compatible with most scene traversal strategies. We demonstrate the effectiveness of our two-stage sorting with out-ofcore ray batches and compare our results with two state-ofthe-art production ray tracers, Pixar’s PhotoRealistic RenderMan and Solid Angle’s Arnold.

Why path tracing?

The technique is capable of producing a high degree of realism. Because all of the interactions between lights and objects in the virtual scene are simulated, we can capture effects such as refraction and glossy surfaces. Most importantly, we can produce images with indirect illumination where light reflecting off virtual objects is accounted for. Even light that reflects several times (called multi-bounce light) has an impact on the scene, incorporating subtle and not-so-subtle lighting effects.

Download the Full Document here

Disney Path Tracing

Disney Path Tracing

0

Your Cart