MODO Kits

Render Monkey 2

RenderMonkey 2 adds easy progressive rendering, batch rendering, rendering arbitrary frame ranges, and combining pass groups to MODO. In short: it saves boat loads of time.

Requirements: MODO 902 or later


Features:

  • Progressive Rendering UI makes rendering easy-peasy in MODO: no settings, no fuss, no muss.
  • Batch Rendering UI lets you set up multiple jobs to render automatically. Set it and forget it. You can control every aspect of your renders, from frame ranges to pass groups to render outputs to render quality settings to custom commands to run before each job. It's an incredibly sophisticated tool, yes, but it's also easy to install, and even easier to use.
  • Render any range of frames. For example, enter "1-3, 5, 10-8, 20-30:2" to render frames [1,2,3,5,10,9,8,20,22,24,26,28,30] in that order. Neat, right?
  • Combine pass groups to see every possible combination. In the example (pictured above), we combine every camera angle for every material type for every car model in the scene, rendering them all in one fell swoop. This is quite possibly our favorite feature.

Render Monkey 2 represents and enormous effort. Hundreds of hours over many months were spent designing, building, testing, and tweaking it to make it as fast and seamless as possible. Thanks for helping make it possible.

 
 

Changelog

  • 901.2.15 – Fresh as a new born babe.
  • 901.2.17 - Added pre-task and pre-frame commands, render command override, bug fixes, and GL Animation export window.
  • 902.1.2 - Fixed several advanced feature bugs, a performance bug for 902 and later, and allow for 1001 usage.

Wishlist

Is there a feature you’d like to see in a future version? Let us know


Installation



Manually installing kits in MODO is ridiculously simple.

Install a Kit

  1. Open MODO
  2. Menubar > System > Open Content Folder
  3. Drop kit folder into the ‘Kits’ folder
  4. Restart MODO

Disable a Kit (temporarily)

  1. Open MODO
  2. Menubar > System > Kit Toggle Enable > (Kit Name)
  3. Restart MODO

Uninstall a Kit

  1. Open MODO
  2. Menubar > System > Open Content Folder
  3. Open ‘Kits’ folder
  4. Remove kit from Kits folder
  5. Restart MODO

Batch Rendering Quick Start

RM is designed so that simple jobs are simple to set up, and setup complexity increases with job complexity.

Simple Job:

  1. Menu Bar > Monkey > Batch Render
    (renderMonkey Batch UI appears.)
  2. Batch Window > Batch > (add task...) > navigate to LXO file of choice
    (Repeat for each file to render.)
  3. Batch Window > Render

In the above example, each file in the batch is opened, configured to the default RM settings, and rendered. 

Save a Job:

All RM jobs are stored as batch files on disk. By default, the batch file is saved within the kit directory itself, saving the user of explicitly saving the kit. Rest assured that even if you don't explicitly save your batch, it's being saved to disk.

To save a job to run again later:

  • Batch Window > Batch File popup > Save As > navigate to a location to save

To open a previously saved batch file:

  • Batch Window > Batch File popup > Open > navigate to batch file to open

Running tests:

It's a good idea to test complex jobs before running them overnight, just to be sure you're getting what you want. For this you have two options: 

  1. Dry Run: To make sure your batch will do what you expect, it's a good idea to use Batch Window > click+hold on the Render button > Dry Run. This will run the actual batch code, performing everything except the actual render itself. The result will be spit out to a text file and presented to you for review at the end. Look through it for errors before committing to a long batch.
  2. Low-Res Preview: After a dry run, it can be helpful to run a low-res preview batch to insure that all of the proper outputs are spitting out to all of the appropriate places. Run Batch Window > click+hold on the Render button > Render 1/16 res. This will render an extremely low-resolution preview (1/16th of the final resolution) and spit those files out to their final locations for testing purposes.

Managing Tasks:

To re-order tasks, select a task and do either of the following:

  • RMB > Up/Down/Top/Bottom
  • ctrl+up / ctrl+down / ctrl+shift+up / ctrl+shift+down

To delete a task, select it and do either of the following:

  • RMB > Delete Taks
  • hit delete / backspace

Managing Parameters:

The RMB context menu provides several helpful utilities for editing, resetting, and deleting parameters. Note that you can also use the delete/backspace keys to delete parameters.

Advanced Editing

File path parameters like Scene and Destination present OS dialogs for open or save as appropriate. To override this behavior, you can alt+double-click on a parameter or RMB > Edit Parameter as String. This will allow you to edit the parameter as text in advanced situations.

For full and complete control over the batch file, it can be edited using any text editor. The syntax is YAML, chosen because of it's human-readability. It should be very easy to understand. To view a batch's YAML file, use Batch Window > Batch File > Open In External Editor. A text editor that supports YAML is highly recommended. (Notepad++ and Brackets.io are good options.)

It is possible to write an entire batch file by hand using YAML, though most users will want to create the batch using the GUI and then edit that batch for advanced features.

A full reference of all available parameters and their complete syntax is available as a commented block at the bottom of each batch file. Read this for more detailed information on syntax.

Batch Rendering Reference

Default RM Render Parameters:

In the absence of explicit parameters in the batch file, RM uses the following parameters for each job:

Format: JPG
Frames: 1
Destination: ./frames (e.g. path/to/LXO/frames/filename.jpg)
Width/Height: (from LXO)
Output Pattern: [<pass>]_[<output>]_<FFFF>

All other render parameters are blank by default.

Setting Parameters:

A RM batch is comprised of tasks, each task representing a file to be rendered. Each task is comprised of a series of parameters. Parameters modify the behavior of each render task. Enormous flexibility is available through the clever use of task parameters.

Expanding the carrot to the left of a task reveals the task's current parameters. By default, only Frames and Scene are displayed. For many users, these are the only parameters you need: the LXO file to be rendered, and the specific frames to render.

To add new parameters:

  1. Batch Window > Batch > Expand a task (i.e. click the carrot to the left)
  2. Task > (add parameter...) > Select parameter to add
  3. Repeat for all required parameters

Basic Parameters:

  • Scene: The LXO file to be rendered.
  • Frames: Frames to be rendered. Defaults to 1. This is a string that supports intelligent and discontinuous frame ranges. For example, enter "1, 5, 10" to render frames [1, 5, 10] in that order. Enter "10-12, 100-98" to render [10, 11, 12, 100, 99, 98] in that order. Enter "1, 3, 10-20:2" to render frames one, three, and ten to twenty by twos (i.e. frame step of 2).
  • Destination: Path and filename for rendered images. Defaults to "./frames".
  • Format: Image format for rendered image. Defaults to JPG.
  • Output Pattern: Suffix to be appended to individual image files. Defaults to "[<pass>]_[<output>]_<FFFF>".
  • Width / Height: Width and height of resulting image in pixels. Defaults to zero (0), meaning RM will use whatever resolution is defined in the LXO file's Render Item properties. Setting either width or height alone will scale the image proportionally, but setting both will force both to be set, potentially changing the image's aspect ratio.
  • Outputs: List of render outputs to save, by name. To render only an output called "My Great Final Color Output", for example, add an Outputs parameter > (add...) > "My Great Final Color Output". You can add as few or as many outputs as you like, and these (and only these) outputs will be saved to disk for the task. (See note about Alpha Outputs below.)
  • Camera: Camera to use for render, by name. In a scene containing multiple cameras, add a Camera parameter > "My Great Render Camera". This insures that this is the camera to be used for rendering. (Note: If the render camera channel is animated to switch between cameras over the course of an animation, leave this parameter blank.)
  • Pass Groups: Pass groups to render, by name. Groups are combined prior to rendering so that each pass in each group is multiplied by each pass in each other group. This is a powerful concept, but a fairly advanced one. Add a Pass Groups parameter > (add...) > "My Great Pass Group", and each frame in the task will be run for each pass in the designated pass group or combination of pass groups.

Advanced Parameters

  • Pre-Task Commands: A list of MODO commands to run before a given task. For example, in some cases it may be useful to run a few preparatory commands before running a render, like hiding or showing specific items, selecting an object for baking, etc. These commands can be entered as strings here, and will be executed in order prior to the render command being run.

  • Pre-Frame Commands: A list of MODO commands to run before each frame of a given task. It's very important to note the distinction between pre-task commands and pre-frame commands. Pre-frame commands will be run before each and every frame of a command. This has some very esoteric uses, but most users will never need this. If you're tempted to use this one, use it with caution.

  • Render Channels: A list of key/value pairs specifying specific Render Item channels to set prior to rendering, by channel ID (not name). To find a channel's ID, hit F5 to bring up the Command History > History tab > then change any Render Item property. For example, changing the Antialiasing to 16 Samples/Pixel results in the command "item.channel polyRender$aa s16". The ID of the channel, in this case, is "aa", and the value is "s16". So your Render Channel key/value pair will be "aa" / "s16". Once this is set in the task, it will force the file to use 16 Samples/Pixel at render time. This works for any channel on the Render Item: Antialiasing, Refinement Shading, Reflection Depth, Global Illumination settings, anything. It's very powerful if you need fine control over the render quality of a given file, but can't guarantee that a given artist will have set them properly prior to saving.

  • Render Command Override: A single MODO command to run instead of the default render command. This parameter effectively overrides the Frames, Destination, and Format parameters above, as these would have been included in the default render command. This is useful if, instead of rendering an animation, you want to perform some other action such as baking. For example, some RM users use Pre-Task Commands to select a low and high poly mesh in a scene, then use a Render Command Override to run the Bake From Object to Render Outputs command. In this way RM can be used not only for batch rendering of typical MODO scenes, but for all parts of the production pipeline.

Note about Alpha Outputs:

MODO's default behavior is to save all render outputs to disk except for alphas, assuming that any alphas will be contained within the other files to be saved. In the case of EXR files, for example, there is no need to save a separate alpha since any and all alpha outputs will be supplied as alpha channels within the EXR data. This is a problem, however, for users who want to use "flat" file formats like JPG. When rendering to JPG, the alpha channels are not included in the output files, and yet they are also not stored to disk as separate files. This means that, when saving to JPG, alpha outputs are effectively ignored entirely.

RM takes a light-touch approach to MODO's rendering tools, essentially changing only what the user explicitly requests through parameters, but leaving most things to be handled however MODO sees fit. Alphas are no different. The default behavior in RM is exactly the same as that of MODO: save alpha outputs as channels within other output files, but ignore them in the case of formats, like JPG, that do not support alpha.

As a workaround, RM now has the ability to force MODO to save alpha outputs to separate files. To do this, add an Outputs parameter > (add...) > And add the names of each and every output you wish to save, one by one. For example, if you want to save both "Final Color Output" and "Alpha Output" as separate files, enter each of these as Outputs in the output parameter. If these are explicitly set in this way, RM will force MODO to save them all as separate files, regardless of output format.

(Note that in the case of EXR, for example, both "Final Color Output" and "Alpha Output" will be saved as separate EXR files in the above example, but the alpha output will also be included as a channel in the Final Color Output EXR file.)