ビューポート 2.0 でサポートされるシェーダのセマンティック

ビューポート 2.0 では次のセマンティックが認識され、シェーダと併用することができます。これらのセマンティックは、MShaderManager クラスを使用して MShaderInstance オブジェクトとしてアクセスされる全エフェクトをオーサリングするときに使用できます。また、MFragmentManager を使用して登録されているフラグメントのパラメータに適用されることもあります。

注: dx11Shader.mllglslShader.mll プラグインは、どちらも MPxShaderOverride です。したがって、それぞれエフェクトを解析してセマンティックを手動で特定し、バインドする必要があります。一方、フラグメント システムと MShaderInstance はどちらもこのすべての処理を自動で行いますが、制限は多くなります。

ワールド座標系を、それぞれが異なる原点を持つ別のロケールにさらに分割することができます。その後、これらのロケールでノードを指定することができます。これにより、ワールド座標系で定義するよりも高い精度でノードの配置を決定できます。

現在のノードのロケールが前のノードのロケールと異なる場合、FrameLocale グループに属するすべての行列が再適用されます。レンダリング時に、カメラとライトが現在のノードのロケールに変換され、オブジェクト、カメラ、ライトがすべて同じロケール座標空間で表されるようになり、単精度浮動小数点値で格納と表現ができるようになります。

セマンティック使用法グループ
ワールドワールド トランスフォームMatrix

Item FL

WorldTransposeワールド トランスフォーム、位置変更Matrix

Item FL

WorldInverseワールド トランスフォーム、反転Matrix

Item FL

WorldInverseTransposeワールド トランスフォーム、反転および位置変更Matrix

Item FL

PreviousWorld前のワールド トランスフォームMatrix項目
NextWorld次のワールド トランスフォームMatrix項目
    
Viewビュー トランスフォームMatrixFrameLocale
ViewTransposeビュー トランスフォーム、位置変更MatrixFrameLocale
ViewInverseビュー トランスフォーム、反転MatrixFrameLocale
ViewInverseTransposeビュー トランスフォーム、反転および位置変更MatrixFrameLocale
    
Projection投影トランスフォームMatrixフレーム
ProjectionTranspose投影トランスフォーム、位置変更Matrixフレーム
ProjectionInverse投影トランスフォーム、反転Matrixフレーム
ProjectionInverseTranspose投影トランスフォーム、反転および位置変更Matrixフレーム

ProjectionZSense

投影マトリックスが、変換時にポイントの Z コンポーネントを反転するかどうかを示します。反転する場合は -1.0、しない場合は 1.0。Floatフレーム
    
WorldViewワールドビュー トランスフォームMatrix

Item FL

WorldViewTransposeワールドビュー トランスフォーム、位置変更Matrix

Item FL

WorldViewInverseワールドビュー トランスフォーム、反転Matrix

Item FL

WorldViewInverseTransposeワールドビュー トランスフォーム、反転および位置変更Matrix

Item FL

WorldLocaleOrigin

オフセットをロケール変換行列に適用し、真の(グローバル)ワールド変換行列を取得します。

このオフセットを適用することで、大きい座標系での正確な位置を表すために倍精度が必要な場合には、精度が不足する場合があります。

Float3

FrameLocale

    
ViewProjectionビュー投影トランスフォームMatrixFrameLocale
ViewProjectionTransposeビュー投影トランスフォーム、位置変更MatrixFrameLocale
ViewProjectionInverseビュー投影トランスフォーム、反転MatrixFrameLocale
ViewProjectionInverseTransposeビュー投影トランスフォーム、反転および位置変更MatrixFrameLocale
PreviousViewProjection前のビュー投影トランスフォームMatrixFrameLocale
    
WorldViewProjectionワールドビュー投影トランスフォームMatrix

Item FL

WorldViewProjectionTransposeワールドビュー投影トランスフォーム、位置変更Matrix

Item FL

WorldViewProjectionInverseワールドビュー投影トランスフォーム、反転Matrix

Item FL

WorldViewProjectionInverseTransposeワールドビュー投影トランスフォーム、反転および位置変更Matrix

Item FL

次に示すのは、他のセマンティックの MultiDraw バージョンであり、MPxShaderOverride::supportsMultiDraw() が true を返すようにオーバーライドされている場合に、MultiDraw 統合のレンダリングの代替手段として使用されます。

WorldMDワールド トランスフォームの MultiDraw 配列Matrix[64]

Item FL

WorldTMD位置変更するワールド トランスフォームの MultiDraw 配列Matrix[64]

Item FL

WorldIMD反転するワールド トランスフォームの MultiDraw 配列Matrix[64]

Item FL

WorldITMD反転および位置変更するワールド トランスフォームの MultiDraw 配列Matrix[64]

Item FL

    
WorldViewMDワールドビュー トランスフォームの MultiDraw 配列Matrix[64]

Item FL

WorldViewTMD位置変更するワールドビュー トランスフォームの MultiDraw 配列Matrix[64]

Item FL

WorldViewIMD反転するワールドビュー トランスフォームの MultiDraw 配列Matrix[64]

Item FL

WorldViewITMD反転および位置変更するワールドビュー トランスフォームの MultiDraw 配列Matrix[64]

Item FL

    
WorldViewProjMDワールドビュー投影トランスフォームの MultiDraw 配列Matrix[64]

Item FL

WorldViewProjTMD位置変更するワールドビュー投影トランスフォームの MultiDraw 配列Matrix[64]

Item FL

WorldViewProjIMD反転するワールドビュー投影トランスフォームの MultiDraw 配列Matrix[64]

Item FL

WorldViewProjITMD反転および位置変更するワールドビュー投影トランスフォームの MultiDraw 配列Matrix[64]

Item FL

    
ViewDirectionビューのワールド空間方向(カメラ)Float3FrameLocale
ViewPositionビューのワールド空間位置(カメラ)Float3FrameLocale
LocalViewerローカルまたは非ローカルのビュー方向を使用するかどうかを示しますBoolフレーム
    
IsOrthoGraphic投影マトリックスが正投影かどうかを示しますBoolフレーム
    
ViewportPixelSizeピクセル単位での現在のビューポートの寸法、幅および高さFloat2フレーム
    
ClippingPlanesアクティブなクリップ プレーンの係数、プレーンごとに 1 つのfloat4Float4 Arrayクリッピング
ClippingPlaneCountアクティブなクリップ プレーンの数intクリッピング
NearClipPlaneカメラのニア クリップ プレーンFloatフレーム
    

Time

AnimationTime

Sas.Time.Now

秒単位の時間

注:

MPxShaderOverride を使用して作成されたオーバーライドのシェーディングのみに適用可能です。 MPxShaderOverride は、均一パラメータをシェーダするために MUniformParameter の自動バインドをサポートする必要があります。

つまり、MPxShaderOverride は、各均一パラメータについて MUniformParameter を作成し、関連付けられているセマンティックに基づいた各 MUniformParameter の値の取得して、シェーダの均一パラメータにこの値をバインドする必要があります。

これは dx11Shader および glslShader プラグインによって自動的に行われます。

さらに、時間とフレームは、エフェクト ファイルが glslShader プラグインからロードされている場合にのみ使用できます。

Floatフレーム

Frame

FrameNumber

フレーム単位でのフレーム

注:

MPxShaderOverride を使用して作成されたオーバーライドのシェーディングのみに適用可能です。 MPxShaderOverride は、均一パラメータをシェーダするために MUniformParameter の自動バインドをサポートする必要があります。

つまり、MPxShaderOverride は、各均一パラメータについて MUniformParameter を作成し、関連付けられているセマンティックに基づいた各 MUniformParameter の値の取得して、シェーダの均一パラメータにこの値をバインドする必要があります。

これは dx11Shader および glslShader プラグインによって自動的に行われます。

intフレーム
    
AlphaTestFunctionアルファ テスト比較関数

1 = 常にオフ(Never)

2 = 小さい(Less)

3 = 等しい(Equal)

4 = 以下(Less or Equal)

5 = 大きい(Greater)

6 = 等しくない(Not Equal)

7 = 以上(Greater or Equal)

8 = 常時(Always)

intアルファ テスト
AlphaTestReferenceアルファ テスト リファレンス値、(0.0, 1.0) の範囲内Floatアルファ テスト
    
RelativeViewportDimensions相対的なビューポートの寸法を指定します。Float2フレーム
    
MayaReceivesShadowOnオブジェクトがシャドウを受けるかどうかを示しますBool項目
    
EnableXRayCompX 線コンポーネント モードが有効かどうかを示しますBoolフレーム
    
MayaViewportModesビューポート モード

0 = バウンディング ボックスが含まれません

1 = バウンディング ボックスが含まれます

intフレーム
    
FogEnabledハードウェア フォグが有効かどうかを示しますBoolフレーム
FogModeハードウェア フォグの減衰モード

0 = 一次

1 = 指数関数

2 = 指数関数の二乗

intフレーム
FogStartビュー空間でのハードウェア フォグの開始 Z 距離Floatフレーム
FogEndビュー空間でのハードウェア フォグの終了 Z 距離Floatフレーム
FogDensityハードウェア フォグの密度Floatフレーム
FogColorハードウェア フォグのカラーFloat4フレーム

注: FL は、セマンティックがフレーム ロケールにも依存することを示します。