可识别以下语义,并支持将其用于 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 | 帧 |