Editing the maya.rayrc file is optional.
The maya.rayrc file does not create custom nodes in Maya. Instead, it should be used in conjunction with the MI_CUSTOM_SHADER_PATH and MI_LIBRARY_PATH environment variables. See Load shaders.
Upon startup, it is directly read by the integrated mental ray bypassing Maya.
The file uses regular .mi syntax, and can be used to customize mental ray internal settings such as search paths. Custom shader packages that are directly loaded in this file are not recognized by Maya. Use the node factory mechanism instead to make your shaders visible as Maya nodes and get them automatically loaded into mental ray.
By default, mental ray for Maya looks for shader libraries in the default install directory.
...\Autodesk\Maya2012\mentalray
.../files/Applications/Autodesk/maya2012/Maya.app/Contents/mentalray
.../files/usr/autodesk/maya2012/mentalray
If certain shader packages need to be pre-loaded into mental ray for rendering, you may add them to the maya.rayrc.
Editing the maya.rayrc requires you to restart Maya. Alternatively, you can type the following in the script editor (see Mayatomr MEL documentation for more details):
The following is an example of how to edit the maya.rayrc file.
Assuming the declaration file is myshader.mi and the shader file is myshader.dll/so, do the following:
link "SHADER_FILE_DIRECTORY/myshader.{DSO}" $include "MI_FILE_DIRECTORY/myshader.mi"
# define some useful registry variables registry "{MAYABASE}" value "C:/Program Files/Autodesk/Maya2012/mentalray" end registry registry "{SYSTEM}" value "windows" end registry registry "{DSO}" value "dll" end registry # adjust mental ray library search path to look for # shader binaries in my local directory first registry "{_MI_REG_LIBRARY}" value "C:/myshader/Release;{MAYABASE}/lib" end registry # execute expensive commands upon rendering only registry "{_MI_MAYA_STARTUP}" value "mental ray startup upon first render" # force some standard shaders into mental ray hidden to Maya # (not using explicit directory path here when using network rendering) link “myshader.{DSO}” # force the declaration of my shaders into mental ray, in case # it was not loaded with mental ray for Maya Node Factory mi "C:/myshader/include/myshader.mi" echo "mental ray for Maya - custom startup done" end registry