可识别以下语义,并支持将其用于 Viewport 2.0 中的着色器。可使用这些语义创作完整效果,然后使用 MShaderManager 类作为 MShaderInstance 对象来访问。还可将其应用于使用 MFragmentManager 注册的碎片的参数。
注意dx11Shader.mll 插件是 MPxShaderOverride。因此,它必须解析效果才能确定并手动绑定语义。相比之下,碎片系统和 MShaderInstance 都可自动执行所有这些操作;但是,它们也都更具限制性。
| 语义 | 用法 | 类型 | 组 |
| World | 世界变换 | 矩阵 | 项目 |
| WorldTranspose | 世界变换,已转置 | 矩阵 | 项目 |
| WorldInverse | 世界变换,已反转 | 矩阵 | 项目 |
| WorldInverseTranspose | 世界变换,已反转并已转置 | 矩阵 | 项目 |
| View | 视图变换 | 矩阵 | 帧 |
| ViewTranspose | 视图变换,已转置 | 矩阵 | 帧 |
| ViewInverse | 视图变换,已反转 | 矩阵 | 帧 |
| ViewInverseTranspose | 视图变换,已反转并已转置 | 矩阵 | 帧 |
| Projection | 投影变换 | 矩阵 | 帧 |
| ProjectionTranspose | 投影变换,已转置 | 矩阵 | 帧 |
| ProjectionInverse | 投影变换,已反转 | 矩阵 | 帧 |
| ProjectionInverseTranspose | 投影变换,已反转并已转置 | 矩阵 | 帧 |
| WorldView | 世界视图变换 | 矩阵 | 项目 |
| WorldViewTranspose | 世界视图变换,已转置 | 矩阵 | 项目 |
| WorldViewInverse | 世界视图变换,已反转 | 矩阵 | 项目 |
| WorldViewInverseTranspose | 世界视图变换,已反转并已转置 | 矩阵 | 项目 |
| ViewProjection | 视图投影变换 | 矩阵 | 帧 |
| ViewProjectionTranspose | 视图投影变换,已转置 | 矩阵 | 帧 |
| ViewProjectionInverse | 视图投影变换,已反转 | 矩阵 | 帧 |
| ViewProjectionInverseTranspose | 视图投影变换,已反转并已转置 | 矩阵 | 帧 |
| WorldViewProjection | 世界视图投影变换 | 矩阵 | 项目 |
| WorldViewProjectionTranspose | 世界视图投影变换,已转置 | 矩阵 | 项目 |
| WorldViewProjectionInverse | 世界视图投影变换,已反转 | 矩阵 | 项目 |
| WorldViewProjectionInverseTranspose | 世界视图投影变换,已反转并已转置 | 矩阵 | 项目 |
| ViewDirection | 视图(摄影机)的世界空间方向 | Float3 | 帧 |
| ViewPosition | 视图(摄影机)的世界空间位置 | Float3 | 帧 |
| LocalViewer | 是要使用局部视图方向还是要使用非局部视图方向 | 布尔 | 帧 |
| ViewportPixelSize | 当前视口的尺寸(以像素为单位),即宽度和高度 | Float2 | 帧 |
| ClippingPlanes | 活动剪裁平面的系数,每平面一个 float4 | Float4 数组 | 剪裁 |
| ClippingPlaneCount | 活动剪裁平面的数量 | 整数 | 剪裁 |
| AlphaTestFunction | Alpha 测试比较函数 1 = 从不 2 = 小于 3 = 等于 4 = 小于或等于 5 = 大于 6 = 不等于 7 = 大于或等于 8 = 始终 | 整数 | Alpha 测试 |
| AlphaTestReference | Alpha 测试引用值,范围为 (0.0, 1.0) | 浮点 | Alpha 测试 |
| RelativeViewportDimensions | 指定相对视口尺寸 | Float2 | 帧 |