Welcome to RenderMan for Maya 22!
This new release of RenderMan for Maya 22 (RfM), includes a number of new features to address feedback as well as many improvements to RenderMan for Maya workflow and performance. Many parts of the plugin have been completely rewritten to improve integration into Maya and simplify workflow.
Please see the release notes below for all the new capabilities and known issues! You may also wish to visit the migration page for selected highlights.
Current support for Maya 2018 only extends to 2018.2, other versions may have errors as the API was changed.
Now you can render through all stages of your pipeline! From modeling to final renders, RenderMan is designed to give you immediate feedback from inside Maya. By skipping the export of a scene to RIB, artists can get an immediate look at their work in full ray traced mode and continue to interact and make changes without needing to restart the render.
Interactive grooming in Xgen is now supported. You can see your updates during IPR.
The Render Settings menu now contains most everything you need to create LPEs, change options for final renders, and more.
Render to Viewport 2.0
Render to the same window where you work! Move objects, make modeling changes, add and alter materials and lights, even import and update asserts without needing to stop the render. RenderMan becomes your viewport at all stages!
Scene courtesy of Julien Duval
Better organization, smart exposure of options and attributes, and more-native workflows mark this overhaul of the RenderMan for Maya plugin.
Added per-face shader assignment for SubDivs and Polygon meshes
Improved Layering Logic
PxrLayerSurface and PxrLayer handle lobe disabling and enabling more intuitively.
Miscellaneous and Important Changes
- Lights are no longer visible in refraction by default. Enable "visible in refraction" in your lights for the old behavior.
- Imported older PxrDomeLights now match RenderMan For Katana (but will now be reversed). To correct this, remove the negative scale from the X axis.
- All TCL code has been removed.
- Xpath has been removed, use the new Dynamic Rules for assigning materials and creating RLF files.
- Configuration files are now provided in JSON format.
- The projection editor is removed, native Maya projections are supported.
- Alembic Workflow relies on the standard Maya Cache menu.
Changed the default bucket order to circular, for a better user experience.
Xgen : Xgen will crash during live rendering unless you set Window > Preferences > Xgen > Multithreading to "off" (unchecked). See Known Limitations below.
PxrImagePlane sample filter now pays attention to the alpha channel of the "plate" image and writes its newly computed alpha into beautyAlpha, added a txmake preset for image planes to the txmanager
Trace sets work interactively, however, simple toggling on/off does not work during IPR alone, another geometry edit must happen.
Instance Attributes and PrimVars are now split between the transform node and shape node respectively to denote their operation and inheritance.
Mesh nodes now have a section under the RenderMan extension attributes called "Reference Object" with checkboxes for which data is desired: __Pref, __WPref, __Nref, and __WNref. This data gets emitted for the mesh when a reference object is present (created by the user in Maya with the Texturing > Create Texture Reference Object menu). Maya's place3dTexture node automatically will look for __WPref or __Pref. When using Pxr manifolds like PxrManifold3D, the user needs to set up parameters on that node to make use of the Pref data. This workflow may evolve and simplify further.
OSL in RfM 22 does not support osl shaders of type "surface" please use "shader" instead ("Surface" implies a closure which is not supported)
The attribute spreadsheet will now show RenderMan attributes, eliminating the need for custom UIs
User controls have been added as an option for VP 2.0 rendering: snapshots, restart, and start/stop
The PxrRamp UI has been overhauled
Maya File Node has linearization improvements
LPE syntax highlighting has been added
<shape.frame>: the value of the 'frame' attribute on the current shape.
Attribute Lookups: This syntax accepts a colon-separated python formatting string, when you need to format a numeric value: if frame == 12.25, <shape.frame:%04d> -> '0012'
Added a control for displacementbound:CoordinateSystem, please see the documentation.
We now check OpenVDB data to see if it's a volume or mesh when ingesting the VDB file
Added PxrMarschnerHair hair lobe names to default lpe option strings
Xgen procedural and Xgen groom (non-procedural) now support turning normals on and off (for tubes vs ribbons).
NOTE: we no longer support always-facing-camera curves.
Alpha and RGBA color sets are now supported. RGBA color sets are emitted as "color colorSetName" and "float colorSetNameA" to allow for ease of shader binding
Parameter help can be passed as an attribute in args files
An arbitrary node type in Maya can be mapped to an args file with params for a procedural. As an example, locator nodes now have a couple extension attrs (for dso name and data) and they're mapped to an args file called PxrProcedural.args. This can actually be used much like the RenderManProcedural node, and it serves as an example of how to set up an args file and mapping in mayaTranslation.json
There's a new RenderManProcedural node that can be created via RenderMan->Archive->Create Procedural Node. This node has fields for dso name and a data string (useful for the older style of procedurals). It supports a preShapeScript that can be used for whatever setup is necessary before translating the procedural, like caching or setting up the data attr.
You can find a useful Doxygenated developer documentation in the Developers' Guide under RfM2
Helpful Migration Scripts
Old scenes may have issues with migration, areas of note are the PxrRamp, subdivision settings, and AOVs. The following python script can correct these or they can be run individually depending on your scene's needs or included features from RenderMan 21
import rfm2.utils.scene_updater rfm2.utils.scene_updater.update_scene()
Older Maya scenes that had PxrRamp nodes in it may break. To fix, you can run this python script in the script editor –
import rfm2.utils.scene_updater rfm2.utils.scene_updater.update_pxrramp_nodes()
Older scenes may have incorrect geometry settings and can be updated specifically using the below python script –
import rfm2.utils.scene_updater rfm2.utils.scene_updater.convert_subdivs()
Older scenes with AOVs may fail to show in the new UI, the following script can solve this issue –
import rfm2.utils.scene_updater rfm2.utils.scene_updater.convert_displays()
RenderMan for Maya
- Deselecting "Receive Shadows" does not work.
- Light Linking volumes is not currently supported
- The Holdout shelf button fails to operate, use the shape node render stat setting Maya to create the holdout object.
- Creating a mesh light from existing geometry during IPR will duplicate the geometry in-render. Restart the render to remove the duplicate.
- We do not support Camera Facing Curves in Xgen
- Xgen will not reflect changes in the Collection
- Maya Fur Feedback is not supported
Xgen : Xgen will crash during live rendering unless you set Window > Preferences > Xgen > Multithreading to "off" (unchecked).