在 Viewport 2.0 中,可识别并支持以下语义以与着色器一起使用。在创作使用 MShaderManager 类作为 MShaderInstance 对象访问的完整效果时,可以使用它们。还可以将其应用于使用 MFragmentManager 注册的碎片的参数。
世界坐标系可以进一步分为不同的区域设置,每个区域设置具有不同的原点。然后可以在其中任一区域设置中指定节点。这样,建立的节点位置比在世界坐标系中定义的精度更高。
当前节点的区域设置与以前节点的区域设置不同时,将重新应用属于 FrameLocale 组的所有矩阵。在渲染时,摄影机和灯光将变换到当前节点的区域设置空间中,以便对象、摄影机和灯光都在同一局部坐标空间中表示,并可以用单精度浮点值存储和表示。
| 语义 | 用法 | 类型 | 组 |
| World | 世界变换 | 矩阵 |
项目 FL |
| WorldTranspose | 世界变换,已转置 | 矩阵 |
项目 FL |
| WorldInverse | 世界变换,已反转 | 矩阵 |
项目 FL |
| WorldInverseTranspose | 世界变换,已反转并已转置 | 矩阵 |
项目 FL |
| PreviousWorld | 上一世界变换 | 矩阵 | 项目 |
| NextWorld | 下一世界变换 | 矩阵 | 项目 |
| View | 视图变换 | 矩阵 | FrameLocale |
| ViewTranspose | 视图变换,已转置 | 矩阵 | FrameLocale |
| ViewInverse | 视图变换,已反转 | 矩阵 | FrameLocale |
| ViewInverseTranspose | 视图变换,已反转并已转置 | 矩阵 | FrameLocale |
| Projection | 投影变换 | 矩阵 | 帧 |
| ProjectionTranspose | 投影变换,已转置 | 矩阵 | 帧 |
| ProjectionInverse | 投影变换,已反转 | 矩阵 | 帧 |
| ProjectionInverseTranspose | 投影变换,已反转并已转置 | 矩阵 | 帧 |
|
ProjectionZSense |
指示投影矩阵在变换时是否翻转点的 Z 分量。如果翻转,则为 -1.0 ,否则为 1.0。 | 浮点 | 帧 |
| WorldView | 世界视图变换 | 矩阵 |
项目 FL |
| WorldViewTranspose | 世界视图变换,已转置 | 矩阵 |
项目 FL |
| WorldViewInverse | 世界视图变换,已反转 | 矩阵 |
项目 FL |
| WorldViewInverseTranspose | 世界视图变换,已反转并已转置 | 矩阵 |
项目 FL |
|
WorldLocaleOrigin |
将偏移应用于区域设置变换矩阵,以获取真实的(全局的)世界变换矩阵。
如果需要双精度来表示大坐标系中的精确位置,则应用此偏移可能会导致精度不足。 |
Float3 |
FrameLocale |
| ViewProjection | 视图投影变换 | 矩阵 | FrameLocale |
| ViewProjectionTranspose | 视图投影变换,已转置 | 矩阵 | FrameLocale |
| ViewProjectionInverse | 视图投影变换,已反转 | 矩阵 | FrameLocale |
| ViewProjectionInverseTranspose | 视图投影变换,已反转并已转置 | 矩阵 | FrameLocale |
| PreviousViewProjection | 上一视图投影变换 | 矩阵 | FrameLocale |
| WorldViewProjection | 世界视图投影变换 | 矩阵 |
项目 FL |
| WorldViewProjectionTranspose | 世界视图投影变换,已转置 | 矩阵 |
项目 FL |
| WorldViewProjectionInverse | 世界视图投影变换,已反转 | 矩阵 |
项目 FL |
| WorldViewProjectionInverseTranspose | 世界视图投影变换,已反转并已转置 | 矩阵 |
项目 FL |
|
以下是其他语义的 MultiDraw 版本,当 MPxShaderOverride::supportsMultiDraw() 被覆盖以返回 true·时用作渲染 MultiDraw 整合的替代项。 |
|||
| WorldMD | 世界变换的 MultiDraw 数组 | Matrix[64] |
项目 FL |
| WorldTMD | 世界变换的 MultiDraw 数组,已转置 | Matrix[64] |
项目 FL |
| WorldIMD | 世界变换的 MultiDraw 数组,已反转 | Matrix[64] |
项目 FL |
| WorldITMD | 世界变换的 MultiDraw 数组,已反转并已转置 | Matrix[64] |
项目 FL |
| WorldViewMD | 世界视图变换的 MultiDraw 数组 | Matrix[64] |
项目 FL |
| WorldViewTMD | 世界视图变换的 MultiDraw 数组,已转置 | Matrix[64] |
项目 FL |
| WorldViewIMD | 世界视图变换的 MultiDraw 数组,已反转 | Matrix[64] |
项目 FL |
| WorldViewITMD | 世界视图变换的 MultiDraw 数组,已反转并已转置 | Matrix[64] |
项目 FL |
| WorldViewProjMD | 世界视图投影变换的 MultiDraw 数组 | Matrix[64] |
项目 FL |
| WorldViewProjTMD | 世界视图投影变换的 MultiDraw 数组,已转置 | Matrix[64] |
项目 FL |
| WorldViewProjIMD | 世界视图投影变换的 MultiDraw 数组,已反转 | Matrix[64] |
项目 FL |
| WorldViewProjITMD | 世界视图投影变换的 MultiDraw 数组,已反转并已转置 | Matrix[64] |
项目 FL |
| ViewDirection | 视图(摄影机)的世界空间方向 | Float3 | FrameLocale |
| ViewPosition | 视图(摄影机)的世界空间位置 | Float3 | FrameLocale |
| LocalViewer | 表示要使用局部视图方向还是要使用非局部视图方向 | 布尔 | 帧 |
| IsOrthoGraphic | 表示投影矩阵是否为正交 | 布尔 | 帧 |
| ViewportPixelSize | 当前视口的尺寸(以像素为单位),即宽度和高度 | Float2 | 帧 |
| ClippingPlanes | 活动剪裁平面的系数,每平面一个 float4 | Float4 数组 | 剪裁 |
| ClippingPlaneCount | 活动剪裁平面的数量 | 整数 | 剪裁 |
| NearClipPlane | 摄影机的近剪裁平面 | 浮点 | 帧 |
|
Time AnimationTime Sas.Time.Now |
时间(秒) 注:
仅适用于使用 MPxShaderOverride 创建的着色替代。MPxShaderOverride 必须支持将 MUniformParameter 自动绑定到着色器一致参数。 即,MPxShaderOverride 必须为每个一致参数创建 MUniformParameter,根据关联语义检索每个 MUniformParameter 值,并将此值绑定到着色器一致参数。 此操作由 dx11Shader 和 glslShader 插件自动完成。 此外,仅当已从 glslShader 插件加载效果文件时,“时间”(Time)和“帧”(Frame)才可用。 |
浮点 | 帧 |
|
Frame FrameNumber |
在帧单位中框显 注:
仅适用于使用 MPxShaderOverride 创建的着色替代。MPxShaderOverride 必须支持将 MUniformParameter 自动绑定到着色器一致参数。 即,MPxShaderOverride 必须为每个一致参数创建 MUniformParameter,根据关联语义检索每个 MUniformParameter 值,并将此值绑定到着色器一致参数。 此操作由 dx11Shader 和 glslShader 插件自动完成。 |
整数 | 帧 |
| AlphaTestFunction | Alpha 测试比较函数
1 = 从不 2 = 小于 3 = 等于 4 = 小于或等于 5 = 大于 6 = 不等于 7 = 大于或等于 8 = 始终 |
整数 | Alpha 测试 |
| AlphaTestReference | Alpha 测试引用值,范围为 (0.0, 1.0) | 浮点 | Alpha 测试 |
| RelativeViewportDimensions | 指定相对视口尺寸 | Float2 | 帧 |
| MayaReceivesShadowOn | 表示对象是否接收阴影 | 布尔 | 项目 |
| EnableXRayComp | 表示是否已启用 X 射线组件模式 | 布尔 | 帧 |
| MayaViewportModes | 视口模式
0 = 不包含边界框 1 = 包含边界框 |
整数 | 帧 |
| FogEnabled | 表示是否已启用硬件雾 | 布尔 | 帧 |
| FogMode | 硬件雾衰减模式
0 = 线性 1 = 指数 2 = 指数平方 |
整数 | 帧 |
| FogStart | 视图空间中的硬件雾开始 z 距离 | 浮点 | 帧 |
| FogEnd | 视图空间中的硬件雾结束 z 距离 | 浮点 | 帧 |
| FogDensity | 硬件雾密度 | 浮点 | 帧 |
| FogColor | 硬件雾颜色 | Float4 | 帧 |