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
- Set the frame and the Final render settings as for F12.
- Moray menu (top bar) > Export RDLA Package, then choose an empty folder. (The Moray menu appears while the scene's render engine is Moray.)
- 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:
| Item | What it is |
|---|---|
scene.rdla | The scene, MoonRay's text format, with package-relative paths |
scene.rdlb | Heavy 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.sh | Launcher for Linux and macOS nodes |
render.bat | Launcher for Windows nodes |
package.json | Size, 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.jsonin 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.