请在以下情况下遵循这些提示来查看您的自定义 mental 着色器:
渲染时
在 Hypershade 或属性编辑器中作为样例
在场景视图中
在启用硬件纹理的场景视图中
有关用于编写自定义 mental Ray 着色器的语法的详细信息,请参见 mental Ray 着色器语言扩展。
文件样例与交互式样例
着色节点的分类字符串确定了该样例是文件样例还是交互式样例。文件样例作为静态图标显示在“Hypershade”中,而交互式样例会动态更新。
| ||||||
|
启动 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 模型的漫反射通道将由其中的任何一个属性驱动。属性类型必须为颜色。
diffuse
base_color
material
环境光通道将由以下属性(如果存在)驱动。该属性必须为颜色。
ambient
环境系数属性用于缩放环境光值。该属性必须为颜色。
ambience
如果着色器上存在以下属性(如果存在多个属性,那么将使用列表中的第一个属性),则 Phong 模型的镜面反射通道将由其中的任何一个属性驱动。属性类型必须为颜色。
glossy
specular
spec
primary_spec_color
如果着色器上存在以下属性(如果存在多个属性,那么将使用列表中的第一个属性),则 Phong 模型的指数将由其中的任何一个属性驱动。这些属性必须是标量(浮点)属性。
shiny
exponent
roughness
Phong 模型的 Alpha 值将由该属性(如果存在)驱动。它必须为标量(浮点值)。
transp
在启用硬件纹理的场景视图中查看自定义 mental ray 着色器
若要在着色器上启用纹理,需要为着色器节点创建自定义属性编辑器。若要在自定义属性编辑器中添加自定义控件,请按如下所示调用 MEL 程序:
AEhardwareTextureTemplate(string $nodeName, string $attrTokens)
使用以下参数:
$nodeName = 节点的名称
$attrTokens = 以空格分隔的属性名称(可以向这些名称应用纹理)列表
该程序会向属性编辑器中添加控件,从而允许您选择一个通道以使用硬件纹理。
示例着色器
有关可实现上述所有过程的着色器示例,请参考:$MAYA_LOCATION/mentalray/devkit/docs/writingShaders/lightlink
相关主题
mental ray for Maya 自定义着色器
mental ray for Maya 中的样例渲染
mental Ray 着色器语言扩展