トラブルシューティング: CgFX シェーダでの作業

CgFX シェーダは、ハードウェア レンダラに対するビューポート 2.0 によって異なって表示されます。

既定のレンダラ、ハードウェア レンダラ、ビューポート 2.0 レンダラの動作では、CgFX 状態割り当てに違いがあります。DepthMask 状態の既定値は異なります。既定値はCgFX シェーダで指定されていない場合に使用される値で、レンダラによって以下のようになります。

したがって、CgFX シェーダは、ハードウェア レンダラを使用すると適切に動作するように見えますが、既定のレンダラとビューポート 2.0 レンダラでは適切な結果が得られません。この場合、DepthMask = false 状態の割り当てをシェーダ パスの一部に追加すると、問題を解決できる場合があります。

ローカルの頂点の位置によって異なる CgFx プラグインが期待どおりに動作しない

ビューポート 2.0 を使用する場合、ビューポート 2.0 オプションの統合ワールド(Consolidate world)オプションを有効にすると、ローカルの頂点の位置によって異なる CgFx プラグインが思い通りに動作しないことがあります。

以下の例では、check3d.cgfx シェーダが、オブジェクトのローカル空間のサーフェスの位置に相対的に 3D チェッカボード パターンをオブジェクトに適用しているため、ビューポート 2.0 で予期せぬ結果が生じています。同じシェーダが両方の球に適用されていますが、統合ワールド(Consolidate world)をオンにしてシーンをタンブルしたり球を選択すると、チェッカボード パターンは移動します。

統合ワールド(Consolidate world)を有効または無効にするには、レンダラ > ビューポート 2.0 (Renderer > Viewport 2.0) > を選択して、ハードウェア レンダラ 2.0 設定(Har ware Renderer 2.0 Settings)ウィンドウを開くか、レンダー設定(Render Settings)ウィンドウを開いてMaya ハードウェア 2.0 (Maya Hardware 2.0)タブをクリックします。詳細については、ビューポート 2.0 オプション(Viewport 2.0 options)を参照してください。