集成自定义 mental ray 着色器

 
 
 

请在以下情况下遵循这些提示来查看您的自定义 mental 着色器:

有关用于编写自定义 mental ray 着色器的语法的详细信息,请参见 mental ray 着色器语言扩展

文件样例与交互式样例

着色节点的分类字符串确定了该样例是文件样例还是交互式样例。文件样例作为静态图标显示在“Hypershade”中,而交互式样例会动态更新。

样例类型 分类字符串包含...

文件样例

mentalRaySwatchGen

交互式样例

swatch/mentalRaySwatchGen

启动 Maya 时,注册着色节点时也会注册分类字符串。为了更改特定着色节点的分类字符串,必须在启动 Maya 之前编辑 mentalrayCustomNodeClass.mel 文件。可以在 <maya directory>/scripts/others 中找到该文件。

若要检查着色节点的分类字符串,请使用以下 MEL 命令:

getClassification <nodeType>

其中,<nodeType> 是要检查的着色节点。例如:

getClassification mib_illum_lambert;

在渲染时查看自定义 mental ray 着色器

有关如何导入自定义着色器库的信息,请参见加载着色器

此外,如果着色器针对 mayabase.lib 进行链接,那么 mayabase.dll 必须在 PATH 环境变量中。将下面一行添加到 Maya.env 文件:

PATH = $MAYA_LOCATION/mentalray/shaders;$PATH

在 Hypershade 或属性编辑器中作为样例查看自定义 mental ray 着色器

编辑 mentalrayCustomNodeClass.mel 文件(位于 $MAYA_LOCATION/scripts/others/)并添加着色器。该文件定义了 mental ray 着色器的分类字符串。确保着色器的分类字符串包括 swatch/mentalRaySwatchGen。mental ray 用于渲染着色器的样例。如果定义自定义 AE 模板,该样例将显示在 Hypershade 和属性编辑器中。

在着色模式下查看场景视图中的自定义 mental ray 着色器

场景视图将尝试实现简单的 Phong 着色模型以显示自定义着色器。硬件着色器将查找特定属性以符合 Phong 模型的要求。至少应满足漫反射通道的要求。

如果着色器上存在以下属性(如果存在多个属性,那么将使用列表中的第一个属性),则 Phong 模型的漫反射通道将由其中的任何一个属性驱动。属性类型必须为颜色。

环境光通道将由以下属性(如果存在)驱动。该属性必须为颜色。

环境系数属性用于缩放环境光值。该属性必须为颜色。

如果着色器上存在以下属性(如果存在多个属性,那么将使用列表中的第一个属性),则 Phong 模型的镜面反射通道将由其中的任何一个属性驱动。属性类型必须为颜色。

如果着色器上存在以下属性(如果存在多个属性,那么将使用列表中的第一个属性),则 Phong 模型的指数将由其中的任何一个属性驱动。这些属性必须是标量(浮点)属性。

Phong 模型的 Alpha 值将由该属性(如果存在)驱动。它必须为标量(浮点值)。

在启用硬件纹理的场景视图中查看自定义 mental ray 着色器

若要在着色器上启用纹理,需要为着色器节点创建自定义属性编辑器。若要在自定义属性编辑器中添加自定义控件,请按如下所示调用 MEL 程序:

AEhardwareTextureTemplate(string $nodeName, string $attrTokens)

使用以下参数:

该程序会向属性编辑器中添加控件,从而允许您选择一个通道以使用硬件纹理。

示例着色器

有关可实现上述所有过程的着色器示例,请参考:$MAYA_LOCATION/mentalray/devkit/docs/writingShaders/lightlink

相关主题