如果您编写自己的自定义着色器以便与 Viewport 2.0 中的 dx11Shader 插件配合使用,以下是支持的语义和注释。
支持的参数注释
dx11ShaderNode 类在参数上查找以下注释并在创建时将相关信息发送给 MUniformParameter 类:
名称(Name)
|
类型
|
描述
|
UIOrder |
int |
允许在中重新排序参数,由于编译器返回的参数顺序并不是始终遵循 FX 文件中的声明顺序,因此尤其有用。UIOrder 最小的参数放在 AE 的顶部,其他参数按 UIOrder 递增顺序添加。
|
UVEditorOrder |
int |
允许在中重新排序纹理。菜单中首先显示 UVEditorOrder 最低的纹理参数。
|
UIGroup |
string |
具有相同 UIGroup 属性的所有参数放在单独的可收拢面板上,其标签为 UIGroup 值。这些面板将插入 UIOrder 最低的组参数所在的位置。 |
Object |
string |
允许定义灯光的所有参数。在参数布局级别,除了面板默认情况下处于收拢状态以外,其行为与 UIGroup 注释完全相同。为每个不同对象创建一个下拉菜单,以轻松连接到现有 Maya 场景灯光。
|
UIName |
string |
允许重命名 UI 的参数。默认情况下,显示变量名称。 |
SasUiVisible UIType UIWidget
|
bool 字符串 字符串
|
控制 UI 中变量的可见性。对于这两个字符串注释,值为“无”(None)时隐藏变量,这是 UIType 注释当前可以识别的唯一值。
|
SasUiMin UIMin uimin
|
float/int (与参数相同)
|
最小范围值。
|
SasUiMax UIMax uimax
|
float/int (与参数相同)
|
最大范围值。
|
UISoftMin uisoftmin
|
float/int (与参数相同)
|
范围的最小滑块值。可以在参数的数值输入中输入小于 UISoftMin 但大于 UIMin(如果已指定)的值。
|
UISoftMax uisoftmax
|
float/int (与参数相同)
|
范围的最大滑块值。可以在参数的数值输入中输入大于 UISoftMax 但小于 UIMax(如果已指定)的值。
|
UIFieldNames |
int |
使用属性值中的字符串为整型参数创建下拉菜单。 格式与 MEL 命令 `attributeQuery -listEnum` 相同,该字符串中用冒号“:”分隔场名称,用等号“=”分隔索引值。索引从零开始,如果未明确指定,项目的索引值等于前一项(如果有)的索引加一。 例如:“着色:线框=8:边界框”定义 3 项,值分别为 0、8 和 9。
|
ResourceName SasResourceAddress
|
string |
默认纹理文件名。在设置效果时插件自动加载并连接纹理。
|
TextureType ResourceType
|
string |
如果变量被描述为不明确纹理,而不是纹理[1D|2D|3D|立方体],则此注释将允许您指定纹理类型。有效值为“1D”、“2D”、“3D”和“立方体(Cube)”。
|
Space |
string |
允许为位置和方向语义指定默认空间。有效值为“对象(Object)”、“世界(World)”、“视图(View)”和“摄影机(Camera)”。
|
灯光特定语义
除 MUniformParameter 类当前支持的所有语义外,dx11ShaderNode 还添加额外的光源特定注释。在灯光受 Maya 驱动时,所有支持的参数值将使用绘图上下文中的灯光信息写入。不支持的参数保留着色器中发现的值。这意味着连接点光源将驱动位置参数,而不是方向参数。
语义
|
类型
|
Maya 灯光参数
|
描述
|
LightColor、Color、 LightDiffuseColor、Diffuse、 LightAmbientColor、Ambient、 LightSpecularColor、Specular
|
float3 |
颜色(Color) |
值没有预乘灯光强度。 |
LightIntensity |
float |
强度(Intensity) |
|
LightEnable |
bool |
照明(Illuminate)(默认) |
遵循灯光可见性,包括全局灯光设置。如果为 true,则 Maya 灯光处于活动状态且可见。 |
LightType |
int |
类型(Type) |
允许写入连接到任何灯光类型时能正确反应的常规照明代码。有效值为: 2- 聚光灯(2- Spot) 3- 点光源(3- Point) 4- 平行光(4- Directional) 5- 环境光(5- Ambient) 6- 体积光(6- Volume) 7- 区域光(7- Area)
|
Position |
float3 |
|
点光源、聚光灯、区域光和体积光的位置。可以使用注释指定引用空间。 |
Direction |
float3 |
|
平行光和聚光灯的方向。可以使用注释指定引用空间。 |
Hotspot |
float |
圆锥体角度(Cone Angle)/半影角度(Penumbra Angle) |
对于聚光灯,一半角度(以弧度为单位)。Hotspot 等于 ConeAngle 和 (ConeAngle+PenumbraAngle) 之中的最小值。 |
LightFalloff Falloff
|
float |
圆锥体角度(Cone Angle)/半影角度(Penumbra Angle) |
对于聚光灯,一半角度(以弧度为单位)。Falloff 等于 ConeAngle 和 (ConeAngle+PenumbraAngle) 之中的最大值。 |
DecayRate |
float |
衰退速率(Decay Rate) |
对于聚光灯、点光源、区域光和体积光,表示为指数。 Maya 提供了以下值: 0.0 – 无衰退(0.0 – No Decay) 1.0 – 线性(1.0 – Linear) 2.0 – 二次方(2.0 – Quadratic) 3.0 – 立方(3.0 – Cubic)
|
ShadowFlag |
bool |
视情况而定 |
如果为 true,灯光将投射曲面可接收的阴影。仅当全局“阴影”(Shadows)处于启用状态,灯光启用“使用深度贴图阴影”(Use Depth Map Shadows),且曲面启用“接收阴影”(Receive Shadows)时,该值才为 true。
|
ShadowColor |
float3 |
阴影颜色(Shadow Color) |
|
ShadowMap |
Texture2D |
|
包含由 Maya 计算出的深度贴图阴影纹理。 |
ShadowMapBias |
float |
深度贴图偏移(dmapBias) |
|
ShadowMapMatrix ShadowMapXForm
|
float4x4 |
|
查看灯光的变换矩阵 |
支持的技术注释
名称(Name)
|
类型
|
描述
|
index_buffer_type |
string |
允许通过索引缓冲区生成器和转变器插件指定自定义基本体类型。使用以下值“PNAEN9”:三角形和相邻边以及“PNAEN18”:三角形、相邻边、主边和主顶点时,dx11Shader 项目将包含一个转变器,该转变器可以使用相邻边法线 (PN AEN)
索引缓冲区生成点法线三角形。
|
texture_mipmaplevels
|
int |
指定使用此技术时,用于生成/加载纹理的 Mipmap 级别。 值为 0 表示加载所有可能的级别。
|
isTransparent |
int |
指定效果的不透明度,允许 Maya 使用正确的过程和消隐。支持的值如下: 0:技术始终是不透明的 1:技术始终是透明的 2:技术的不透明度与具有“不透明度”语义的浮点参数相关,且在不透明度值小于 1.0 时为透明状态。
|
纹理特定注释
名称(Name)
|
类型
|
描述
|
mipmaplevels |
int |
指定用于生成/加载已设计纹理的 Mipmap 级别。 该值优先于为技术设定的值。
|
支持的过程注释
效果可以请求在特定上下文中激活技术中的某些过程,例如绘制阴影深度贴图时。通过添加名为“drawContext”的字符串注释(用于指定激活过程的上下文)完成此操作。
支持的上下文如下:“colorPass”、“shadowPass”、“depthPass”和“normalDepthPass”。
全局语义
名称(Name)
|
类型
|
描述
|
MayaSwatchRender |
bool |
标识当前渲染过程何时绘制样例。 允许用户在绘制样例时处理特定路径。
|