Search and browse the Moray docs

Farm rendering

Moray can export a scene as a self-contained package: a folder a render node renders without Blender. The package holds exactly what F12 would render (the Final settings, view layer, AOVs, denoising and EXR output) for the current frame.

Export a package

  1. Set the frame and the Final render settings as for F12.
  2. Moray menu (top bar) > Export RDLA Package, then choose an empty folder. (The Moray menu appears while the scene's render engine is Moray.)
  3. Read the report. Warnings (a missing texture, a VDB or other file left on this machine, an output outside the package) are listed in the report and in package.json.

The package folder:

ItemWhat it is
scene.rdlaThe scene, MoonRay's text format, with package-relative paths
scene.rdlbHeavy geometry (meshes, hair) in binary
textures/Every texture the frame uses, as .tx (UDIM tiles included)
aovs/Denoiser guide outputs (albedo, normal) when denoising is on
render/Where the frame's EXRs are written: {scene}_{view_layer}.####.exr and its _data file
render.shLauncher for Linux and macOS nodes
render.batLauncher for Windows nodes
package.jsonSize, texture list, warnings and the environment each launcher needs

Paths inside the package are relative; run the launcher from any working directory. Your scene's own output paths are restored after the export.

For an animation, export one package per frame.

Set up a render node

Each node needs a Moray install for its platform: the same Moray version, unpacked from the extension zip (or installed in Blender on that node). Point MOONRAY_ROOT at the folder under the extension's native directory that contains bin/ and rdl2dso/ (REZ_MOONRAY_ROOT works too).

GPU nodes need a supported NVIDIA GPU and driver (see the system requirements). The package keeps the Execution Mode you chose; with Auto, each node uses its GPU if it has a supported one and its CPU otherwise. Images match between CPU and GPU within noise.

Linux and macOS: render.sh

export MOONRAY_ROOT=/opt/moray/native
cd /path/to/package
./render.sh

render.sh runs the moonray command-line renderer from the Moray install. Extra arguments are passed on to it.

Windows: render.bat

set MOONRAY_ROOT=D:\moray\native
set MORAY_LICENSE_KEY=<your key>
set MORAY_LICENSE_CACHE=<path to the node's moonray_license_cache.json>
cd /d D:\path\to\package
render.bat

render.bat runs moonray_worker --render. It writes files only with a paid licence:

  • Activate Moray once on each Windows node, in Blender, under the user account that runs the render jobs. Each activation uses one seat of your key.
  • The activation cache is moonray_license_cache.json in that account's Blender config folder (on Windows, %APPDATA%\Blender Foundation\Blender\5.2\config\). It is tied to the machine and the account, so a copy from another machine does not work.
  • The node renders offline from the cache for 7 days after its last online check. Open Blender on the node with a connection (or reactivate) to refresh it.

render.bat exits with an error code when the licence is missing or the render fails.

Denoising on the farm

When Denoise is set to Engine (MoonRay), or Denoise Light AOVs is on, the launchers denoise after the render with MoonRay's denoise tool and the albedo / normal guides in aovs/. If denoising fails, the raw file is kept and a warning is printed.

This needs the Per AOV EXR layout: in a multi-layer file the beauty and light AOVs are layers that the tool cannot rewrite, and the export warns.

Shadow catchers and holdouts

The renderer itself writes the held-out beauty (with Film Transparent) and the derived ShadowCatcherShadow / ShadowDiff layers, so a farm frame matches F12. See Shadow catcher.

Troubleshooting

  • error: set MOONRAY_ROOT or REZ_MOONRAY_ROOT: the variable is not set on the node.
  • file outputs need a paid Moray license (MORAY_LICENSE_KEY + MORAY_LICENSE_CACHE) (Windows): set both variables, and activate on that node under the account that runs the job.
  • Missing textures or other files: check the warnings in package.json. Files that were not copied (VDBs, for example) must be reachable from the node at the same path.