About MoonRay


DreamWorks’ in-house Monte Carlo Path Tracer, MoonRay, was designed from the start with a focus on efficiency and scalability, with the mantra to “...keep all the vector lanes of all the cores of all the machines busy all the time with meaningful work”, as well as provide modern features for full artistic expression. It can deliver a broad range of images from photorealistic to strongly stylized. MoonRay is built on a leading-edge, highly-scalable architecture with no prior legacy code, allowing quick, feature-film quality artistic iteration using familiar tools. Additional high-performance features include support for distributed rendering, a pixel matching XPU mode that offers improved performance by processing bundles of rays on the GPU as well as the CPU, and bundled path tracing. MoonRay includes a Hydra Render Delegate for integration into content creation tools that support the standard.

Features

Distributed Rendering

Arras is our cloud-based framework that we use for distributing rendering tasks to a cluster or cloud. Client programs make use of an extremely thin and portable Arras SDK to connect to an Arras rendering session, which is a cluster of one or more computation nodes. In the cluster there is a single MoonRay merge node which is responsible for sending final rendering results back to the client.

 

In addition to enabling distributed rendering, this architecture makes it extremely simple to integrate MoonRay in a wide variety of client applications. Much easier than if the entire core rendering libraries needed integration with a client application.

Display Filters

MoonRay provides a set of Display Filters which can serve as compositing nodes that can be piped from AOVs in Moonray along with other Display Filters, which allows progressive refinement in an artist's interactive render session. Useful for non-photoreal and compositing workflows.

XPU Mode

MoonRay's XPU mode is a pixel-matching, production capable GPU accelerated renderer. XPU mode achieves 100% output matching with non-GPU modes and incorporates a graceful fallback-to-CPU mechanism if the GPU has insufficient memory for the scene or other GPU error occurs. XPU treats the GPU like an additional co-processor, submitting work to it while load-balancing the work with the CPU cores.

Hydra Render Delegate

MoonRay comes with a Hydra Render Delegate that is compatible with any DCC tool with Hydra support, for interactive preview rendering. Upon finalization of the Hydra API specification, MoonRay will provide support for final frame batch rendering, and its Hydra Render Delegate will be the supported path to transform USD into MoonRay's internal RDL scene format.


Layerable Materials

A full suite of DreamWorks' efficient, layerable production materials. These include canonical material types for common use cases such as metals, dielectrics, skin, fabric, hair and more. Additionally included is a flexible, general-purpose shader for more complex materials and adapting existing workflows. These materials can be combined using an arbitrary number of layers to represent significantly more complex material types. MoonRay's flexible material shading API allows for easy development of customized material shaders and supports many popular shading models.

Checkpoint / Resume Rendering

MoonRay supports time, quality and signal based checkpoint rendering, to provide maximal control in many common scenarios. These options allow for stopping a render process deliberately in order to control rendering time and cost. MoonRay additionally supports resume of a checkpoint for either adding more samples into the previously rendered image if more samples are needed in order to reduce the noise level, or to recover from unintended job stoppage.

Volume Rendering

MoonRay supports rendering of participating media such as fog, fire, smoke, clouds, and dust. Features include homogenous and heterogenous media, decoupled ray marching, equiangular sampling, importance sampled emission, art-directable multiple scattering, overlapping volumes, linear and frustum transforms, motion blur, anisotropic scattering, and OpenVDB file input and baking.

Profiling Viewer

The standalone Profiling Viewer helps track render performance across a set of canonical tests over time. This tool provides a graphical overview of multiple render logs with flexible options for filtering the results, allowing developers to easily track changes in performance and pinpoint which stages of the render process are impacted.

Deep Images / Cryptomatte

MoonRay supports full deep image output, supporting both the standard .EXR deep format and the coverage-mask based OpenDCX extension. Deep image output is supported for both hard surfaces and volumes in the scene, enabling sophisticated compositing workflows. MoonRay also supports output of Cryptomatte files for generation of ID mattes.

Light Filters

MoonRay supports a set of advanced light filters for full artistic expression, including Barn Door, Cookie (both isometric and projective modes), Gobo, Rod and more. Multiple light filters may be combined together with multiply, min, max, add, or subtract operations.

Adaptive and Uniform Sampling

MoonRay supports uniform and adaptive sampling. Adaptive sampling measures the error in the frame buffer to determine when to stop generating primary samples, taking an efficient non-local view of the frame buffer to eliminate artifacts.

Vectorization

MoonRay was designed from the beginning to fully leverage Single Instruction/Multiple Data (SIMD) vector units throughout. To achieve high SIMD efficiency, we employ Embree for tracing rays and vectorize the remaining compute-intensive components of the renderer: the integrator, the shading system and shaders, and the texturing engine. Queuing is used to help keep all vector lanes full and improve data coherency.

Light Path Expressions / AOVs

All light path expression based AOVs are associated with radiance values. MoonRay supports basic outputs, which describe the differential geometry at the primary ray intersection point, as State AOVs. MoonRay also supports custom outputs such as HeatMap (time per pixel) and wireframe which is used for tessellation diagnostic purposes.

 

Additionally, Material AOVs provide detailed diagnostics about the materials and are extremely helpful to surfacing and lighting artists when verifying material correctness and standards conformance. MoonRay's Material AOV syntax (intentionally similar to LPE syntax) complements light path expressions, which concern themselves with how a ray travels through the scene. Material AOV syntax focuses on extracting properties of a bsdf at an intersection.

MoonRay and Arras Contributors

DreamWorks Animation

  • Ryan Amundson
  • Alan Blevins
  • Kevin Beason
  • Ron Bridger-Woods
  • Scott Cegielski
  • Harrison McKenzie Chapter
  • Xinling Chen
  • Mike Day
  • Ramiro Del Corro
  • Dustin Delmer
  • Priyamvad Deshmukh
  • David Doepp
  • Conrad Egan
  • Sebastian Fernandez
  • Barry Fowler
  • David Gardner
  • Alex Gerveshi
  • Brian Green
  • Joel Gross
  • Ningfeng Huang
  • Wei-Feng Huang
  • Keith Jeffery
  • Toshi Kato
  • Jerome Ko
  • Jon Lanz
  • Ashley Lee
  • Mark Lee
  • Matt Mackey
  • Jeffrey Mahovsky
  • Mark Matthews
  • Daniel McCann
  • Krishna Mullia
  • Marianna Neubauer
  • David Otte
  • Brian Pawlina
  • Paul Ramsey
  • Karl Rasche
  • Nate Reid
  • Evan Smyth
  • Andrea Solis
  • Bill Spitzak
  • Bret Stastny
  • Bob Somers
  • Eric Tabellion
  • Bruce Tartaglia
  • Anoop Thomas
  • Brian Walters
  • Trey White
  • Martin Watt
  • Rob Wilson
  • Feng Xie
  • Cheng-Jui Yu

Comcast

  • Kevin Li
  • Vincent Santillo

Intel

  • Louis Feng
  • Sheng Fu
  • Greg Junker
  • Matt Walsh

Interns

  • Xiaoting Bi
  • Gizem Dal
  • Yuzhu Dong
  • Dennis van Ee
  • Sarah Forcier
  • Shenyao Ke
  • Han-wei Kung
  • Matteo Mannino
  • Cindy Vu
  • Yuxiang Wang

Allies

  • William Ballew
  • Jeffrey Bradley
  • Sarah Counnas
  • Paul DiLorenzo
  • Mitch Dobrowner
  • Ron Henderson
  • Mark Jackels
  • Robert Knaack
  • Frankie Liu
  • Matthew Low
  • John McStravik
  • Randy Packer
  • Andrew Pearce
  • Marie Scanlan
  • Matt Titus
  • Lincoln Wallen
  • Dave Walvoord
  • Jeffrey Wike

Special Thanks

DreamWorks Animation