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