以下为 节点的属性,指定了 AutodeskUberShader.fxo 着色器文件。
要使用该着色器,您必须在 DirectX 11 环境中工作,并启用 dx11shader.mll 插件。有关详细信息,请参见将 DirectX 11 与 Viewport 2.0 结合使用。
您可以在 “创建”(Create)栏中找到 。创建着色器后,会自动加载 AutodeskUberShader.fxo 文件。
dx11Shader.mll 插件可用于在 Maya Viewport 2.0 中加载和查看自己的 HLSL 着色器。使用创建 DirectX 11 着色器时,AutodeskUberShader.fxo 文件将自动连接;但是,也可以加载自定义的 HLSL 着色器。此外,<maya directory>\presets\HLSL11\examples\ 中提供了其他示例 HLSL 着色器。
已提供 dx11Shader_defaults 预设。您可以使用该预设将参数还原到使用着色器最初编译的值。
提示
如果从使用 MayaUberShader.fx 或 .fxo 着色器的 Extension 1 或 2 for Maya 2013 加载旧场景,着色器设置将丢失,所有值将重置为默认值。
若要解决此问题,您可以通过将下列注释添加到着色器技术来编辑着色器代码:bool VariableNameAsAttributeName = False;
或者,也可以使用 Maya 2014 随附的 MayaUberShader.fx/.fxo 版本替换 dx11Shader 文件,以恢复着色器属性值。
Gamma 校正
如果启用选项卡下的,并启用 dx11Shader下的 ,Gamma 将只应用一次,着色也将会正确渲染。
如果 Gamma 已在视口中启用,您可以使用语义 MayaGammaCorrection 进行查询。
使用 _MAYA_ 宏
如果您与其他应用程序共享 HLSL 文件,但需要包括 Maya 特定的代码,可以将 HLSL 代码包含在 _MAYA_ 宏中,类似于以下示例:
#ifdef _MAYA_
float2 UV = float2(U, 1.0-V);
#endif
提示若要覆盖 AutodeskUberShader.fxo 文件的自动加载,可以转到,然后设置要默认加载的效果文件。
注意以下列出了 AutodeskUberShader.fxo 文件的属性。在的部分下存在所有 DirectX 11 Shader 对应的属性。但是,可用选项可能会不同。例如,所有 DirectX 11 Shader 都具有灯光属性,但对灯光数量或类型的选择可能会不同。部分下的属性特定于 AutodeskUberShader.fxo 文件。
着色器
-
-
导航到着色器文件,以便将其指定给 。
采用以下顺序在下列位置搜索 .fx 文件:
- `workspace -q -rd`
- `workspace -q -rd` + "/renderData/shaders"
- `workspace -fre shaders`
- `getenv("DX11SHADER_ROOT")`
- `getenv("DX11SHADER_ROOT")` + "/shaders"
- ${MAYA_LOCATION}/presets/HLSL11/examples
` 表示执行 MEL 或 C 函数来获取所需的值。
注意在 <maya directory>\presets\HLSL11\examples\ 中提供了 AutodeskUberShader.fxo 文件以及其他示例 HLSL11 着色器。
单击 以重新加载 .fx 文件,然后单击 在默认的文本编辑器中对其进行编辑。
-
-
这些选项在相同的着色材质内提供不同的着色方法。
注意下面列出了用于 AutodeskUberShader 的不同技术。不同的着色器具有不同的技术来实现各种效果。
提示您可以使用或设置中的值,通过一个步骤为多个 dx11Shader 更改技术。使用整数来设置中的值。 = 0, = 1,以及 = 2。该快捷方式仅适用于更改同一 fx 着色器的多个实例。
-
:这是默认选项,并且仅在工作区显示网格,无需任何细分。
-
:该选项使用着色级别细分以提供更平滑的模型,而无需额外的几何体。
-
:该选项提供细分网格的线框版本,便于您查看 功能的细分。
灯光绑定
- / /
-
如果您选择选项,Maya 会自动将场景中的灯光指定给着色器。如果场景中的灯光少于三个,除非创建新的灯光,否则 Light 1 和/或 Light 2 处于未绑定状态。如果选择了该选项,则 Maya 会指示为 / / 中的每个绑定的灯光。
使用导航图标 可访问已连接灯光形状的。
您还可以选择以避免绑定灯光。这样,您可以通过 DirectX 11 Shader 的中的 / / 属性调整灯光属性。
您还可以手动绑定灯光。从下拉列表中选择要将着色器绑定到的场景灯光。
当前,AutodeskUberShader 支持 3 点光源、聚光灯、环境光或平行光。
重要信息绑定灯光之后,您无法在 dx11Shader 的中更改其参数。相反,您必须从灯光的进行更改。
注意加载 后,Maya 会自动绑定设置为的灯光。共享相同 Object 属性的所有参数都将被视为定义一个灯光。如果在 Object 属性字符串中找到一个特定的灯光关键字(即 ambient/point/spot/directional),则 Maya 将连接场景中找到的该类型的第一个灯光。完成该操作后,任何未连接的灯光会根据位置/方向参数的兼容性连接到其余场景灯光。
提示
如果您选择下的,并且您的场景中有一个以上的环境光,则场景中的所有环境光将合并为一个以进行视口渲染,其结果是//中仅有一个最终指示环境光。
如果您手动绑定环境光,则手动绑定的每个单个灯光都会在//下指定。
参数
Lighting
-
-
禁用该选项可避免校正纹理中的 Gamma。启用该选项会假定纹理已应用 Gamma,因此将移除该 Gamma 并在稍后重新应用。
-
-
-
-
-
-
有时,由于阴影贴图中的精度有限或场景比例的差异,实时阴影可能会导致对象出现瑕疵。使用该属性可移除对象上的阴影瑕疵。
-
-
选择该选项可反转双面、透明对象的背面法线以改善其照明。
注意启用此选项时,由负缩放引起的背面多边形可能会变为黑色。负缩放后应当反转顶点法线。
- / /
-
使用这些选项可在场景中模拟边缘光以亮显对象的边。使用 和 可设置从明到暗的衰减。 是与衰减开始时边缘的距离。 是与衰减结束时边缘的距离。
Light 0
-
-
选择该选项可启用着色器中指定的灯光。
注意针对 Light 0、Light 1 和 Light 2 重复以下参数。
-
-
选择灯光类型,如聚光灯、点光源、平行光或环境光。
dx11Shader.mll 插件可在内部使用 和 选项。选择这两个选项之一将最终生成一个点光源。
-
-
使用该属性可设置灯光的位置。
注意如果灯光未绑定到 Maya 灯光,可以单击鼠标右键 (
) 手动将现有灯光、摄影机、定位器等连接到该属性。
-
-
自定义灯光的颜色。单击样例可在中更改灯光的颜色或将纹理映射到灯光。
-
-
使用该属性可设置灯光的亮度。强度值为 0 的灯光不发光。强度值为负数的灯光将从受灯光影响区域的场景中移除灯光。
-
-
-
-
使用该属性可设置聚光灯的圆锥体角度。这是聚光灯光束的边到边的角度(以度为单位)。
-
-
使用该属性可设置聚光灯的半影角度。这是聚光灯光束的边的角度(以度为单位),在该边上,聚光灯的强度以线性方式下降到零。
-
-
使用该属性可控制灯光强度随距离而减弱的速度。有关详细信息,请参见
衰退速率。
Ambient and Emissive
-
-
启用该选项并将文件纹理连接到 ,可以应用如光源般明亮的放射性纹理。若要停止使用纹理,请禁用 。
-
-
- /
-
使用这些选项可以通过模拟来自地面或天空的灯光使对象变亮。
-
-
选择此选项可向场景添加环境光遮挡。连接仅影响着色器中环境光的预烘焙贴图。
Diffuse
-
-
在三个漫反射着色方法中进行选择,具体取决于您的对象。选择 ,以便在模拟皮肤时使对象上的漫反射照明更加逼真。选择 可模拟头发的漫反射照明。对于其他模型,选择 。
- /
-
选择 可将漫反射纹理应用到对象对其进行染色。将纹理连接到 属性。选择 可将纹理的 Alpha 信息应用到对象的不透明度。
-
-
-
-
选择 可应用烘焙的阴影贴图。然后,阴影贴图与漫反射结合以创建烘焙阴影。
-
-
使用该选项可将不同数量的混合法线漫反射应用到对象的不同部分。
-
-
该选项是混合的法线漫反射。增加该值可创建灯光反弹效果,从而软化蒙皮的外观。
-
-
使用此功能可以为场景添加基于图像的照明。您可以连接 .dds 立方体贴图或 2D 球面或 latlong 贴图,或者立方体贴图与 2D 贴图的组合。
此功能允许您快速塑造不同光照环境中的原型角色。
-
-
-
-
选择此选项可连接 2D 球面或 latlong 贴图。
-
-
从下拉列表中选择要连接的 IBL 贴图类型。您可以连接
.dds 立方体贴图或 2D 球面或 latlong 贴图,或者立方体贴图与 2D 贴图的组合。
-
-
-
-
-
-
使用此滑块可旋转 IBL 贴图;例如,如果希望 IBL 贴图中的太阳可以显示在对象上的其他位置。
-
-
调整此属性可减少某些球面贴图上可能发生的收缩瑕疵。
Opacity
-
-
-
-
-
-
使用该属性可设定阈值,低于该阈值,不透明遮罩中的像素将变为完全透明状态。例如,如果设置为 0.5,则不透明度遮罩中值小于 0.5 的所有像素将完全不可见。
- /
-
使用这些属性可调整基于观察角度的对象的不透明度。使用 可调整平行于摄影机的面的不透明度,使用 可调整垂直于摄影机的面的不透明度。
Specular
-
-
在三个镜面反射着色方法中进行选择,具体取决于您的模型。选择 可执行 Kelemen Szirmaykalos 镜面反射计算以更好地模拟人的皮肤。选择 来添加各向异性镜面光源来模拟金属或头发。对于其他模型,选择 着色。
-
-
选择 可根据纹理中的值增加或减少对象的镜面反射量。镜面反射贴图中的 RGB 通道控制 ,而镜面反射贴图中的 Alpha 通道控制 。
-
-
-
-
-
-
如果选择 下的 选项,您可以选择性添加方向贴图来控制各向异性高光的方向。如果不选择此选项,仍可以使用 和 选项来控制镜面反射高光的颜色和形状。
-
-
-
-
-
-
-
-
选择此选项可混合 Blinn 和基于方向贴图中的 Alpha 通道的各向异性镜面反射照明。
Normal
-
-
选择 可从烘焙到法线贴图中的详细信息模拟凹凸和缩进的照明。
-
-
-
-
选择此选项可正确显示已应用非均匀缩放的对象的法线。
- /
-
使用这些选项可设置法线贴图的红色和绿色通道为正值或负值。
重要信息为了使此选项正常工作,必须确保在形状节点下设置为。
Reflection
-
-
-
-
您可以连接
.dds 立方体贴图或 2D 球面或 latlong 贴图,或者立方体贴图与 2D 贴图的组合。从下拉列表中选择要使用的贴图类型。
-
-
选择 选项可在场景中包含反射。 可使您创建更逼真的预烘焙反射。使用此选项可连接 .dds 立方体贴图。
-
-
选择此选项可连接 2D 球面或 latlong 贴图。
提示IBL 贴图和反射贴图应采用与其他输入纹理相同的颜色空间。在 AutodeskUberShader 中使用 设置时,输入纹理应位于 sRGB 显示空间中;因此,不在 sRGB 颜色空间中的 IBL 贴图和反射贴图应通过图像编辑软件转换到该空间中。
-
-
-
-
使用该选项可创建模糊的反射效果。该选项可使您进一步控制要尝试模拟的金属或材质的类型。
-
-
-
-
使用球形反射贴图时,可以使用此选项来减少有些球面贴图可能会显示的收缩瑕疵。
- /
-
使用 和 可以根据面平行于还是垂直于摄影机来调整反射量。
使用 可将更多反射添加到对象的面(朝向摄影机)。
使用 可将更多反射添加到对象的面(与摄影机垂直)。
这些选项最适用于曲线型对象。
-
-
使用这些选项可将纹理应用于遮罩区域以防止其接收反射。
-
-
启用该选项可使用镜面反射纹理的 Alpha 通道来确定模糊对象部分所需的反射量。禁用该选项可在对象上各处均匀地模糊反射。
-
-
启用该选项可使用镜面反射颜色对反射贴图进行染色。如果该选项处于禁用状态,则反射贴图不会染色。
-
-
选择此选项后,具备反射或镜面反射度的对象区域将不会变得完全透明(类似于肥皂泡)。禁用后,反射和镜面反射照明不会影响不透明度(例如,使用头发等半透明对象)。
Tessellation and Displacement
注意您可以采用以下格式将纹理贴图从 Mudbox 导出到 Maya:PNG、JPG、BMP、TIF、TGA、EXR。
注意当使用变形网格时,如果遇到三角形/面片翻转,将形状节点区域下的属性设置为或可以解决此问题。
-
-
从下拉列表中选择是否使用灰度置换贴图或切线向量贴图。您可以在 Mudbox 中创建向量置换贴图。但是,在 Maya 中使用的低多边形模型必须与 Mudbox 中使用的相同。
使用向量置换贴图时,您通常在向量置换贴图移动顶点之后,还想将法线贴图提供给着色器以提供正确的法线。
注意
在 Maya 2014/Maya 2013 Extension 2 中创建新场景时,如果对灰度置换贴图使用 .exr 文件,不需要调整 或 值,会自动使用默认设置。如果对切线向量置换贴图使用 .exr 文件,应将 设置为 0 并将 设置为 1。
但是,如果您已有一个旧版场景,则必须调整高度和偏移值才能获得与 Maya 2013 Extension 1 中相同的结果。通常,对于切线向量置换贴图, 应设置为 1, 应设置为 0;对于灰度置换贴图, 应设置为 1, 应设置为 0.5。
这不适用于 .tif 文件。因此,当在 Maya 2014/Maya 2013 Extension 2 中创建新场景时,必须手动调整 或 值。但是,如果您已有一个旧版场景,则 Maya 2013 Extension 1 中的相同设置也适用于 Maya 2014/Maya 2013 Extension 2。
注意如果从 Mudbox 输出法线贴图,请选择 作为 。如果从 Mudbox 输出向量置换贴图,请选择 作为 。
-
-
选择 可使用置换贴图。置换贴图会挤出或缩进网格的顶点。与细分结合使用以生成对象中其他细节时,置换贴图尤其有用。
置换贴图优于法线贴图之处在于:阴影可以拾取置换贴图的新细节。
-
-
为向量置换贴图选择正确的置换轴。轴由生成向量置换贴图的应用程序决定,如 Mudbox。
-
-
-
-
使用该属性可控制置换的基础值。
例如,如果将偏移设置为 0.5,则不会置换灰色部分。偏移为 0 将产生缩进。偏移为 1 会挤出。
同样,如果偏移设置为 0,则不会置换黑色部分。偏移为 0.5 时挤出的量是偏移为 1.0 时的一半。不发生缩进。
-
-
在极端置换的情况下,Maya 可能会意外剪裁掉面。这可能会出现在带有横向或又长又宽对象的场景中。使用该属性可设置“最大置换”以确定何时从视图中剪裁对象的面。您还可以使用 来避免意外剪裁对象。
-
-
置换已使用时,可以使用该选项来控制边界框以避免意外剪裁对象。
-
-
设置该属性时,根据对象距离摄影机的远近来控制细分。
-
-
整个网格中细分的值是恒定的。值为 1 表示无细分。
增加 的值可提高分辨率。
-
-
选择该选项可将点法线细分(可使对象的边平滑)与 (仅可细分对象,无法使对象平滑)混合。将该值设置为 1 可禁用平滑。
Translucency
-
-
功能模拟灯光穿过对象。例如,如果模拟人的蒙皮,蒙皮将变得更红。选择该属性可使用以下选项。
注意使用这些选项可将半透明添加到对象。该选项模拟灯光穿过对象,以赋予它更逼真的外观。
-
-
是渲染以控制穿过蒙皮特定区域灯光量的纹理。例如,使用薄蒙皮(例如鼻子)的无骨区域会略带红色,因为有大量的半透明穿过。相比之下,厚度纹理中的有骨区域会有较深的颜色。
-
-
使用该值可设置法线(每像素)影响半透明的程度。
如果设置为 0,则整个对象的半透明度是一致的。
如果设置为大于 0(例如 0.5),半透明效果不再一致,而是基于法线断开和扭曲。结果显得更为自然。
-
-
-
-
使用该选项可调整对象后面的灯光所创建的半透明程度。将滑块调整为 0 时,对象中没有半透明度。
-
-
该属性可设置对象始终具有的半透明程度,即使它后面没有灯光。
- / /
-
使用这些选项可更改蒙皮半透明颜色;例如,对于具有不同颜色蒙皮的动物。
默认纹理数据
当 UV 集已选定时,使用这些选项可以选择中显示的默认纹理。例如,如果 UV map1 映射到 ,且 映射到 ,则当您在中选择 UV map1 时,将显示 纹理。
支持的图像格式
Viewport 2.0 中的 DX11 Shader 支持下列图像格式:
- Bmp
- Cals
- DDS
对于 DX11:请参见 2010 年 6 月版本的 Microsoft DirectX SDK 文档,查看支持的格式列表。
注意在加载某些 .dds 文件时可能会出现错误消息,因为 Maya 软件渲染器无法渲染样例。但是,上面提及的 DirectX SDK 文档上列出的格式会在 Maya 中以 DX11 模式进行渲染。
- Exr
纹理节点可将浮点值映射到 0 到 1 之间的值用于其样例显示和 DG 求值。但是,Viewport 2.0 中可能会直接支持浮点值,而无需色调映射。对于连接到映射到 DirectX 11 Shader 的属性的 纹理节点的 .exr 和 .dds 文件,视口会支持浮点位深度。
- Flic
- Gif
- HDR
- Ig4
- Jfif
- Pcx
- Pict
- Png
- PSD
- Rlc
- 聚光灯
- Targa
- TIF
对于 TIF 文件,仅支持固定点位深度。对于浮点置换贴图,改为使用 EXR 文件。
- 上述未列出的所有其他图像格式在 DirectX 11 Shader 节点中都被读取为固定点位深度。