maya.rayrc 文件不会在 Maya 中创建自定义节点。而是应该与 MI_CUSTOM_SHADER_PATH 和 MI_LIBRARY_PATH 环境变量一起使用。请参见加载着色器。
启动之后,它由绕过 Maya 的集成的 mental Ray 直接读取。
该文件使用常规 .mi 语法,且可以用于自定义 mental Ray 内部设置(如搜索路径)。Maya 无法识别在该文件中直接加载的自定义着色器软件包。请改用节点工厂机制,以使着色器作为 Maya 节点可见,并使其自动加载到 mental Ray 中。
默认情况下,mental Ray for Maya 会在默认安装目录中查找着色器库。
...\Autodesk\Maya2013\mentalray
.../files/Applications/Autodesk/maya2013/Maya.app/Contents/mentalray
.../files/usr/autodesk/maya2013/mentalray
如果某些着色器软件包需要预先加载到 mental Ray 中以进行渲染,那么可以将其添加到 maya.rayrc。
编辑 maya.rayrc 需要重新启动 Maya。或者,可以在脚本编辑器中键入以下内容(请参见 Mayatomr MEL 文档获得更多详细信息):
假设声明文件为 myshader.mi,且着色器文件为 myshader.dll/so,请执行以下操作:
link "SHADER_FILE_DIRECTORY/myshader.{DSO}" $include "MI_FILE_DIRECTORY/myshader.mi"
# define some useful registry variables registry "{MAYABASE}" value "C:/Program Files/Autodesk/Maya2013/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