Skip to content
renderStacks by quasiKrystal

RPManager Migration Tool

Warning

This feature is exclusive to the commercial version.

The RPManager Migration Tool converts an RPManager pass setup into renderStacks passes — without RPManager installed and without opening the original scene. Point it at the original .max file and it reads RPManager's pass data straight out of the file and recreates each pass in the current scene.

Requirements

  • A licensed (commercial) renderStacks. This tool is in the commercial build only.
  • The original .max file that you set up with RPManager. The tool reads the file directly. You do not need RPManager installed.
  • The pass cameras should exist in the current scene under the same names, so each pass can bind to its camera.
  • The layers and objects an RPManager visibility set names should exist in the current scene under the same names. Each pass then binds to its set.

How It Works

A .max file is an OLE compound document, and RPManager stores its render-pass list inside it as text. The tool opens the file through Windows' structured-storage API, reads the pass data, and rebuilds each pass in renderStacks. RPManager is never loaded and the scene is never opened.

For every RPManager pass it creates a renderStacks pass with these pmodifiers:

  • Camera — bound to the scene camera of the same name, with the pass aperture width.
  • Resolution — width, height and pixel aspect.
  • FrameRange — the pass Time Output mode, and the range when the mode is Range.
  • RenderElement — every render element RPManager drives, on or off for each pass.
  • RenderElementParams (reP) — one for each render element whose parameters differ between passes.
  • Visibility — the layer set, layer or visibility set the pass renders.

Time Output

RPManager stores a Time Output mode for each pass, and renderStacks uses the same four modes. The tool converts the mode, then the values that mode needs.

RPManager mode What the tool writes
Single the mode only
Active Time Segment the mode, plus the stored start and end
Range the mode, plus the stored start and end
Frames the mode, plus the Frames box

Only Range stores a real start and end. The other modes leave the Range boxes at RPManager's own defaults, so the tool never reads them as a range. A single-frame pass therefore stays a single frame.

Visibility

RPManager names what each pass renders in one of three ways, and the tool converts all three.

RPManager renderStacks
a layer set a LayerSet named RPMVisSet_<name>
a single layer that Layer
a visibility set a SelectionSet named RPMVisSet_<name>

RPManager records layer set membership on each node, never on the set. The tool rebuilds a layer set by inverting that: the set holds a layer when a node on that layer names the set. An empty layer is lost this way. A layer that holds no object writes nothing to invert.

The tool resolves every layer and object name against the current scene, so migrate a scene from its own file. The tool drops a name the scene does not hold, and writes a warning naming the pass and the count. A pass whose set resolves to nothing gets no Visibility pmodifier, so that pass renders everything instead of the wrong subset.

Confirm the member count of a converted visibility set before you render. RPManager stores the objects of a set apart from its lights. In one 174-pass test scene, 25 of 107 sets held nothing but the lights. The objects of those sets are not in the data the tool can read.

Render Elements

RPManager holds a render element list for each pass. The tool converts that list in two parts.

The RenderElement pmodifier lists every render element RPManager drives in any pass. Each pass turns on the elements its own list holds. Each pass turns off the elements its list omits. This stops a pass from inheriting the elements of the pass before it.

A reP pmodifier carries a parameter only when its value differs between passes. A parameter with the same value in every pass needs no pmodifier, because the scene already holds that value.

The render elements must exist in the current scene under the same names. The tool writes a warning for each element it cannot find.

Notes

  • Open it from the Utilities menu: RPManager Migration Tool. Select the original .max. Confirm the pass count.
  • The tool adds the passes to the current renderStacks setup. The tool keeps your existing passes. Reset renderStacks first for a clean start.
  • RPManager writes a header before its live pass list. The header holds one name per pass. The tool reads the pass names from it, and counts the passes from it.
  • RPManager also keeps copies of every pass elsewhere in the file. Some copies hold an empty output path. The header bounds the list to the live passes, so a copy never becomes a pass.
  • If a pass camera is not found in the scene by name, the pass is still created and a warning lists the missing camera.
  • The tool reads renderer settings but does not recreate them in this version.
  • The tool does not convert per-element output paths. Use the output token on the RenderOutput pmodifier instead.
  • The tool does not convert the per-element file flag.
  • A reP pmodifier carries numbers, booleans and strings. The tool skips an array parameter and a node reference, and writes a warning.
  • RPManager stores each render element group under its own pass name. That name is often only part of the pass output filename. The tool matches by exact name first. The tool then matches by order, but only when the group count equals the pass count. The tool then matches by partial name, and writes a warning naming the group it used.
  • Each pass keeps the name RPManager gave it. Rename it afterwards if needed.
  • The tool reads the frame range from the RPManager Range boxes. It uses the Frames box only when somebody typed a frame list there. RPManager leaves 1,3,5-12 in that box by default, so an earlier version of this tool gave every pass that list.
  • An earlier version of this tool also set every pass to Range. A still became a 100-frame render. The tool now reads the Time Output mode for each pass.
  • RPManager Every Nth frame becomes Skip Frame, type Nth. The tool writes a warning, because no test scene uses it. Confirm the result.
  • A file saved by a very old RPManager version may hold no header. The tool then names each pass after its output filename, and writes a warning. The tool never invents a name silently.
  • The tool seeds the ::base RenderElement pmodifier with every usable render element, each one off. A pass you add by hand copies the base, so it starts with the full element list.