About MoonRay

MoonRay is DreamWorks Animation’s path-tracing production renderer, developed in-house and open-sourced in 2023. It is easy to use and provides artists with fast iterations. It can be integrated into wide variety of tools such as Houdini, Maya, Katana, Blender, in-house lighting tools, etc., with an appropriate plugin or via the hdMoonray Hydra render delegate. MoonRay is provided as a service to our internal clients via our in-house cloud framework Arras. Not only does this simplify application integration, but it also allows MoonRay to take advantage of massive machine scale distributed rendering.

MoonRay has rendered all of DreamWork’s in-house features and shorts since How To Train Your Dragon: The Hidden World.

Structure

MoonRay was developed from scratch, leveraging state of the art open source components where appropriate. No studio legacy code was used. The architecture is cleanly divided across three different APIs:

  • The rendering API for clients to initiate rendering,
  • The shading API for the development of pluggable shaders or materials, and
  • The procedural API for the development of geometry generators.

MoonRay uses best-in-class open source libraries.

  • Embree acts as MoonRay’s ray-intersection engine
  • OpenImageIO generically handles different image file formats
  • OpenSubdiv is an open source geometry library
  • OpenVDB is a volumetric representational format that we open sourced at DreamWorks
  • OpenColorIO acts as MoonRay’s color management library
  • OpenImageDenoise acts as one of MoonRay’s denoising tools
  • OpenEXR is a deep image format
  • USD is a scene description format we use (alongside our own rdl)

Goals

Keep all the lanes of all the cores of all the machines busy all the time with meaningful work

MoonRay saturating worker threads

All renderers have personalities, and “Keep all the lanes…“ is MoonRay’s mantra and our personality. This is our guiding principle for development.

Our goal was to achieve scalability up to real-time rendering leveraging all of the available hardware. The need to trace and shade billions of rays implied thin interfaces and no data structure redundancy. We embraced “Data Oriented Design”, which is a methodology that first grew in the games industry, but we applied it with great success in MoonRay.

With MoonRay, we range between 92 - 154 million core-hours for rendering a DreamWorks Feature.