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\Maya2014\mentalray
.../files/Applications/Autodesk/maya2014/Maya.app/Contents/mentalray
.../files/usr/autodesk/maya2014/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/Maya2014/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