Page tree


In production, it's desirable to create and add your own patterns and C++ plugins (materials, lights, patterns, and more) to the user interface in Maya, having them load when RenderMan is loaded. This gives artists access to these nodes in a Maya session. Users wanting to do this must obtain a Maya Node ID from Autodesk (these are often assigned in blocks). This allows Maya to assign unique IDs and identify nodes.

Below we have two examples, one for OSL patterns and another for C++ Plu-ins.


Since we do not recommend changing the shipped .ini files, you may use a system environment variable, RMS_SCRIPT_PATHS, to source your custom versions.


OSL Shaders

In your custom RenderMan_for_Maya.ini file, you can specify a location for OSL shaders under the preference: RISOSLSearchPath

Node IDs for Patterns are embedded in the metadata. Below is an example from the PxrLayer OSL shader.

shader PxrLayer
   [[int rfm_nodeid=1053299, string 
    int rfc_nodeid=1037674, string rfc_description="Xpxrlayer",         
    string help = "An OSL pattern for layerable parameters for PxrSurface or "
            "input layer to PxrLayerMixer."


C++ Plug-ins

In your custom RenderMan_for_Maya.ini file, you can load your .args files like the below example, where /path/to... is your path to the stored .args files followed by the name of the args file:

LoadExtension args "/path/to/args/foo.args"

In your custom RMSWorkspace.ini, you need to make sure it has the correct location to load and use the plug in. Replace /path/to/custom/shaders with your location.

SetPref WSSearchPaths.rixplugin [list \\\${RMSTREE}/lib/shaders/ /path/to/custom/shaders @]


Node IDs for these are included in the .args file. The order doesn't matter but it must be in the first level of the tags. The below example is for a light.

<rfmdata nodeid="1053261"