Autodesk Maya 2013 Extension (拡張機能)
ビューポート 2.0 API ガイド
Maya 2013 Extension(拡張機能)の変更の多くは、ビューポート 2.0 API の変更に関連しています。詳細については、「ビューポート 2.0 API」の『Maya ビューポート 2.0 API ガイド』を参照してください。
OpenMaya レンダー
描画モードの機能強化
- MDrawContext: 表示スタイルおよびライティング モードの照会のサポートが強化されています(DisplayStyles、LightingMode enum)。
- MHWGeometry: テクスチャに対してシェーディングとしてレンダー項目をマークするためのサポートが強化されています(DrawMode enum)。
ライティング情報
ジオメトリの機能強化
- ミューテータの導入とデータ ジェネレータに対する機能強化
- インデックスと頂点バッファ
- MIndexBuffer および MVertexBuffer クラスに、バッファ コンテンツへの読み取り専用アクセスを提供する map() および unmap() メソッドが追加されました。
- MIndexBuffer および MVertexBuffer クラスに、ハードウェア バッファへのグラフィック デバイス依存ハンドルを設定および取得するための resourceHandle メソッドが追加されました。hasCustomResourceHandle() メソッドは、カスタム リソースハンドルが設定されているかどうかを判断するために使用できます。
- EXT_frame_buffer_object のサポート
- EXT_frame_buffer_object のサポートが MGLdefinitions に追加されています。
- 柔軟性のあるデータ形式の変更:
- データ ストリームのカスタム インデックス作成の導入:
シェーダのオーバーライドの機能強化
- MPxShaderOverride: boundingBoxExtraScale() メソッドが追加され、ディスプレイスメントを実行するシェーダでオブジェクトのバウンディング ボックスをスケーリングできるようになりました。プラグイン シェーダでパスのコンテキスト情報に基づいて描画をオーバーライドするための
handlesDraw() メソッドも追加されました。
シェーダ インスタンスの機能強化
- MShaderInstance: 透明度フラグの指定と設定が追加されました。
- MShaderManager: 新しいストック シェーダが追加されました。
- 新しいバインド、パス アクティベーション、バインド解除のインタフェースで MRenderItems と関係なく、シェーダ インスタンスをバインドおよびバインド解除できるようなりました。効率性を高めるためにバインドとバインド解除内でパラメータを更新する機能も提供されています。
- メモリに格納されているバッファを使用して MShaderInstance を取得できます(デバイス固有のソース コード(char*)、またはデバイス固有のコンパイル済みエフェクト(FXO))。
- シェーダ インスタンスは直接削除することができなくなりました。シェーダを削除するには、MShaderManager::releaseShader() メソッドを使用する必要があります。これにより、プラグインが Maya とは異なるコンパイラ構成を使用してコンパイルされるときに発生するメモリ境界の問題が解決されます。
- MShaderInstance で、新しい bind() および unbind() メソッドを使用してシェーダ エフェクトのバインド(cgfx ファイルや fx ファイルなど)を明示的にコントロールできるようになりました。getPassCount() および activatePass() を使用して、エフェクトで有効なパスを確認し、updateParameters() を使用して再バインドのオーバーヘッドでパラメータを更新できます。
- getEffectsBufferShader() が MShaderManager クラスに追加されています。これは、エフェクトのソース コードがファイルではなくメモリ バッファに含まれている点を除き、getEffectsFileShader() と同じ機能を実行します。
テクスチャリングの機能強化
レンダー項目の機能強化
- MRenderItem: 複数のオブジェクトに互換性がある場合は、インデックスと頂点バッファを連結してこのジオメトリを 1 つの MRenderItem に統合し、パフォーマンスを向上させることができます。isConsolidated() 関数は、MRenderItem に複数のオブジェクトが含まれる場合 true を返します。また、sourceIndexMapping() は、バッファへのオブジェクトの統合方法を表す MGeometryIndexMapping インスタンスを返します。
- MRenderItem でシャドウを投影するか、受像するかを指定できます。レンダー項目がシャドウを投影しているかどうかを修正および照会するための castsShadows() メソッドが MRenderItem に追加されています。シャドウを受像するのと同じ機能を提供する receivesShadows() メソッドが追加されています。
レンダー ターゲットの機能強化
状態の機能強化
パス コンテキスト情報
レンダーのオーバーライドの機能強化
- MViewportRenderer: 追加の表示モードとライティング モードのオーバーライド用にレンダー オーバーライド シーン操作が強化されました。
- MSceneRender: 追加のオブジェクト タイプ フィルタ オプションが提供されます。不透明オブジェクトと透明オブジェクトを別の描画に分割できるようになりました。
- modelEditor コマンドでレンダー オーバーライドをサポートします。オーバーライドで、3D ビューポート パネルのメニューに表示されます。
- カラーのオーバーライドでスワップされた1 番目と 2 番目のカラーの設定を修正します。
- レンダー操作で、操作に指定されたレンダー ターゲットに対して sRGB の書き込み(ハードウェア ベースの 2.2 ガンマ補正)が有効かどうかを示すことができます。これは、シーン、クワッド、およびユーザ操作に適用されます。MRenderOperation::enableSRGBWrite() から派生させて、有効状態を示すことができます。これは DirectX でのみ使用できます。
- シーンおよびクアッドのレンダー操作では、複数のレンダー ターゲット(MRT)をサポートします。MRenderTargetDescription::compatibleWithDescription() ユーティリティ メソッドを使用して、互換性のあるターゲットの説明を確認できます。
- HUD 操作は、レンダー ターゲットのオーバーライドで適切に動作し、操作の順序に従うようになりました。HUD 操作は、最後および最終的なターゲットにレンダリングされなくなりました。HUD
操作は、シーン操作の一部として誤ってレンダリングされることもなくなりました。例については、立体視プラグインの変更点を参照してください。
ジオメトリ ユーティリティ
レンダー ユーティリティ
- MRenderUtilities: スウォッチのバックグラウンド カラーの設定、スウォッチとテクスチャ エディタの描画コンテキストの取得、OpenGL または MImage へのターゲットの転送など、ビューポート レンダリングのさまざまなユーティリティ機能を提供する新しいクラスです。
DirectX 11 全般
プラグインの除外フィルタリング
- MPxSurfaceShape: プラグイン シェイプのタイプ フィルタリングがサポートされます。
- 登録時におけるプラグイン タイプのタイプ除外のサポートが追加されています。適切な分類を指定して、フィルタを追加することができます。
- 分類文字列 drawdb/geometry/lights を含むプラグイン ノードは、ライト がフィルタされるときにフィルタされます。
カスタム表示フィルタ
一般的なメタデータの新しい API(ブラインド データ)
Uniform Resource Identifier (URI)の新しい API
- MPxFileResolver: 特定の URI スキームを解決するカスタム ハンドラを作成することができます。
- MURI クラスは、URI の作成に加え、URI のさまざまなコンポーネントの照会と修正にも使用できます。
その他
- 接続を介して渡すことができる配列データ型のセットを補完する MFnFloatArrayData が追加されました。
- MLibrary::cleanup() メソッドは、オプションの exitWhenDone パラメータを取得するようになりました。このパラメータを false に設定すると、アプリケーションを強制終了するのではなく、コール側にコントロールを戻すことができます。
新しいまたは更新されたサンプル
- dx11Shader: DX11 で HLSL エフェクトをサポートするための新しいプラグイン。
- dx11ShaderNode: 複数のストリーム宣言のサポートが改善されています。クライアントでは、複数のテクスチャ座標、カラー、接線、および複接線ストリームを宣言し、AE を使用してそれらのストリームをジオメトリ
データに名前別にバインドできるようになりました。
- vertexBufferGenerator: カスタムの頂点バッファの新しいプラグイン例です。
- vertexBufferMutator: ミューテータの新しいプラグイン例です。
- customPrimitiveGenerator: MPxPrimitiveGenerator の例です。
- crackFreePrimitiveGenerator: MPxIndexBufferMutator の例です。
- gpuCacheDrawOverride: 表示モード、ライティング モードの露出、および除外フィルタリングの変更を組み込んで更新されました。
- footPrintNode :シャドウ パス用に最適化された描画を実行するよう強化されました。
- hwPhong: 新しいストック シェーダ(MShaderInstance)を使用してカスタムのシャドウ パスとビューティ パス レンダリングが実行されるように更新されました。プラグインでは、DX11 または OpenGL でレンダリングができるようになりました。
- squareScaleManip: MPxDrawOverride を使用して、カスタムのマニピュレータ(MPxManipulatorNode)をサポートする例です。
- swissArmyManip: コードを追加せずに VP2.0 で MPxManipContainer をサポートする方法の例です。このプラグインに追加されているのは、マニピュレータが影響を与えるカスタム ロケータをサポートするための MPxDrawOverride だけです。
- customTextureShader: 独自のカスタム テクスチャ形式を生成および解釈する(MPxShaderOverride を使用する)カスタム シェーダの例です。DX11 でのみ使用されます。