在 Viewport 2.0 中 DirectX 11 所支持的语义和注释

 
 
 

如果您为 Viewport 2.0 中的 DirectX 11 编写自己的自定义着色器,支持的语义和注释如下。

支持的参数注释

dx11ShaderNode 类在参数上查找以下注释并在创建时将相关信息发送给 MUniformParameter 类:

名称 类型 描述
UIOrder int 允许在“属性编辑器”(Attribute Editor)中重新排序参数,由于编译器返回的参数顺序并不是始终遵循 FX 文件中的声明顺序,因此尤其有用。UIOrder 最小的参数放在 AE 的顶部,其他参数按 UIOrder 递增顺序添加。
UVEditorOrder int 允许在“UV 纹理编辑器”(UV Texture Editor)中重新排序纹理。“纹理”(Textures)菜单中首先显示 UVEditorOrder 最低的纹理参数。
UIGroup string 具有相同 UIGroup 属性的所有参数放在单独的可收拢面板上,其标签为 UIGroup 值。这些面板将插入 UIOrder 最低的组参数所在的位置。
Object string 允许定义灯光的所有参数。在“属性编辑器”(Attribute Editor)参数布局级别,除了面板默认情况下处于收拢状态以外,其行为与 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   查看灯光的变换矩阵

支持的技术注释

名称 类型 描述
index_buffer_type string

允许通过索引缓冲区生成器和转变器插件指定自定义基本体类型。使用以下值“PNAEN9”:三角形和相邻边以及“PNAEN18”:三角形、相邻边、主边和主顶点时,dx11Shader 项目将包含一个转变器,该转变器可以使用相邻边法线 (PN AEN) 索引缓冲区生成点法线三角形。

texture_mipmaplevels

int

指定使用此技术时,用于生成/加载纹理的 Mipmap 级别。

值为 0 表示加载所有可能的级别。

isTransparent int 指定效果的不透明度,允许 Maya 使用正确的过程和消隐。支持的值如下:

0:技术始终是不透明的

1:技术始终是透明的

2:技术的不透明度与具有“不透明度”语义的浮点参数相关,且在不透明度值小于 1.0 时为透明状态。

纹理特定注释

名称 类型 描述
mipmaplevels int

指定用于生成/加载已设计纹理的 Mipmap 级别。

该值优先于为技术设定的值。

支持的过程注释

效果可以请求在特定上下文中激活技术中的某些过程,例如绘制阴影深度贴图时。通过添加名为“drawContext”的字符串注释(用于指定激活过程的上下文)完成此操作。

支持的上下文如下:“colorPass”、“shadowPass”、“depthPass”和“normalDepthPass”。

全局语义

名称 类型 描述
MayaSwatchRender bool

标识当前渲染过程何时绘制样例。

允许用户在绘制样例时处理特定路径。