请在以下情况下遵循这些提示来查看您的自定义 mental 着色器:
有关用于编写自定义 mental Ray 着色器的语法的详细信息,请参见 mental Ray 着色器语言扩展。
着色节点的分类字符串确定了该样例是文件样例还是交互式样例。文件样例作为静态图标显示在“Hypershade”中,而交互式样例会动态更新。
启动 Maya 时,注册着色节点时也会注册分类字符串。为了更改特定着色节点的分类字符串,必须在启动 Maya 之前编辑 mentalrayCustomNodeClass.mel 文件。可以在 <maya directory>/scripts/others 中找到该文件。
getClassification <nodeType>
getClassification mib_illum_lambert;
有关如何导入自定义着色器库的信息,请参见加载着色器。
此外,如果着色器针对 mayabase.lib 进行链接,那么 mayabase.dll 必须在 PATH 环境变量中。将下面一行添加到 Maya.env 文件:
PATH = $MAYA_LOCATION/mentalray/shaders;$PATH
编辑 mentalrayCustomNodeClass.mel 文件(位于 $MAYA_LOCATION/scripts/others/)并添加着色器。该文件定义了 mental ray 着色器的分类字符串。确保着色器的分类字符串包括 swatch/mentalRaySwatchGen。mental ray 用于渲染着色器的样例。如果定义自定义 AE 模板,该样例将显示在 Hypershade 和属性编辑器中。
场景视图将尝试实现简单的 Phong 着色模型以显示自定义着色器。硬件着色器将查找特定属性以符合 Phong 模型的要求。至少应满足漫反射通道的要求。
如果着色器上存在以下属性(如果存在多个属性,那么将使用列表中的第一个属性),则 Phong 模型的漫反射通道将由其中的任何一个属性驱动。属性类型必须为颜色。
如果着色器上存在以下属性(如果存在多个属性,那么将使用列表中的第一个属性),则 Phong 模型的镜面反射通道将由其中的任何一个属性驱动。属性类型必须为颜色。
如果着色器上存在以下属性(如果存在多个属性,那么将使用列表中的第一个属性),则 Phong 模型的指数将由其中的任何一个属性驱动。这些属性必须是标量(浮点)属性。
Phong 模型的 Alpha 值将由该属性(如果存在)驱动。它必须为标量(浮点值)。
若要在着色器上启用纹理,需要为着色器节点创建自定义属性编辑器。若要在自定义属性编辑器中添加自定义控件,请按如下所示调用 MEL 程序:
AEhardwareTextureTemplate(string $nodeName, string $attrTokens)