mental ray for Maya 能够加载并使用自定义着色器库进行渲染。将声明文件放置在 include 目录中还会使用 mental ray for Maya 来解析文件并创建与库中声明的着色器相对应的新 Maya 节点类型。
使用 mental ray“着色器管理器”(Shader Manager)
使用“着色器管理器”(Shader Manager)能够以交互方式加载和卸载 mental ray 着色器库,并在 Maya 会话中使用这些着色器库(无需先关机,且无需设定环境变量 MI_CUSTOM_SHADER_PATH)。
可以从包含 mental ray 着色器声明的 .mi 库文件列表中选择。选定的 .mi 库文件中包含的着色器会自动显示在“Hypershade”中,就像 Maya 和 mental ray for Maya 基础着色器节点一样。mental ray for Maya 基础着色器现在完全集成到“Hypershade”和“创建渲染节点”(Create Render Node)面板中
(无需设定环境变量 MAYA_MRFM_SHOW_CUSTOM_SHADERS 即可在“Hypershade”中显示自定义着色器)。
使用 MI_CUSTOM_SHADER_PATH 和 MI_LIBRARY_PATH 环境变量
需要将 .mi 文件添加到 MI_CUSTOM_SHADER_PATH 环境变量路径(除非使用着色器管理器),才能加载要成为渲染的 mental ray for Maya 的任何着色器。
还需要将着色器库二进制文件添加到 MI_LIBRARY_PATH 环境变量。
如果在多个目录中包含着色器库二进制文件,则必须将 maya.rayrc 文件与 MI_CUSTOM_SHADER_PATH 和 MI_LIBRARY_PATH 环境变量一起使用。有关详细信息,请参见编辑 maya.rayrc 文件。
该变量会将 .mi 文件所在的目录告知 mental ray for Maya。在插件加载时将解析位于 MI_CUSTOM_SHADER_PATH 中的每个 .mi 文件。
应在加载插件之前设定该环境变量。mental ray for Maya 以不同的方式解释该变量。如果该变量不为空,但没有指向某个现有文件或目录,那么在(自动)加载 mental ray for Maya 插件时,将打开文件对话框。应该选定某个 .mi 文件,该文件包含 mental ray 着色器/现象声明,工厂应为这些着色器/现象声明创建 Maya 节点类型。文件对话框将在一个循环中再次出现,以允许加载多个 .mi 文件。按“取消”(Cancel)按钮将停止加载。
如果工厂应该自动加载所有需要的文件,那么应在环境变量中提供包含 .mi 文件的一个文件或目录。加载单个文件时,请按如下所示设定 MI_CUSTOM_SHADER_PATH:
setenv MI_CUSTOM_SHADER_PATH /usr/local//autodesk/Maya2013/mentalray/shaders/include/base.mi
set MI_CUSTOM_SHADER_PATH=C:/Program Files/Autodesk/Maya2013/mentalray/shaders/include/base.mi
解析目录中的所有文件时,可以使用(在这种情况下将不会显示任何文件对话框)以下命令:
MI_CUSTOM_SHADER_PATH 的默认值为 Maya2013/mentalray/include。
可以修改 Maya.env 以将自己的目录添加到路径中。例如,Maya.env 中的以下行会将 C:\myshader\include 附加到路径中:
MI_CUSTOM_SHADER_PATH = C:\myshader\include
若要确保默认情况下加载您的着色器,可以将相应的目录添加到路径,或者将文件放置到路径中。
加载 mental ray 插件,解析 base.mi、contour.mi 和 physics.mi 时,将为在 .mi 文件中声明的每个着色器创建节点。请参见要创建的节点对应的“脚本编辑器”(Script Editor)。
对于着色器,也是如此。如果 .mi 文件位于 MI_CUSTOM_SHADER_PATH 中,那么应该能够在“脚本编辑器”(Script Editor)中找到着色器的名称。例如,我的“脚本编辑器”(Script Editor)包含下列行(如果 optionVar miFactoryVerbosity 设定为 4 或更大)。(myshader1 和 myshader2 是在 myshader.mi 中声明的)
// generating nodes ... // parsing C:/myshader/include/myshader.mi // myshader1 // myshader2
该变量告知 mental ray for Maya 在何处查找着色器库二进制文件。
加载单个文件时,请按如下所示设定 MI_LIBRARY_PATH:
setenv MI_LIBRARY_PATH /usr/local//autodesk/Maya2013/shaders/base.so
set MI_LIBRARY_PATH=C:/Program Files/Autodesk/Maya2013/mentalray/shaders/base.dll
解析目录中的所有文件时,可以使用(在这种情况下将不会显示任何文件对话框)以下命令:
可以修改 Maya.env 以将自己的目录添加到路径中。例如,Maya.env 中的以下行会将 C:\myshader\lib 附加到路径中: