Autodesk Maya 2013 Extension
Maya 2013 Extension(拡張機能)の変更の多くは、ビューポート 2.0 API の変更に関連しています。詳細については、「ビューポート 2.0 API」セクションにある「Maya ビューポート 2.0 API ガイド」を参照してください。
描画モードの機能強化
- MDrawContext: 表示スタイルおよびライティング モードの照会のサポートが強化されています(DisplayStyles、LightingMode enum)。
- MHWGeometry: テクスチャに対してシェーディングとしてレンダー項目をマークするためのサポートが強化されています(DrawMode enum)。
ライティング情報
ジオメトリの機能強化
- ミューテータの導入とデータ ジェネレータに対する機能強化**
- MPxVertexBufferMutator: 既存のストリーム(頂点バッファ)の修正(変異)、またはスウィズリングなど、データのカスタム パッキングの作成が可能な新しいクラスです。
- MDrawRegistry: ミューテータとジェネレータを受け入れるように登録が変更されました。
- MHWGeometry: MVertexBufferArray の説明が追加されました(MPxVertexBufferGenerator クラスの場合)。
- MPxVertexBufferGenerator: 既に作成されているストリーム(カスタム ストリームである場合があります)を組み合わせるか使用して、新しいストリームを作成できるように強化されました。getSourceStreams() 関数はソースとして使用するストリームの名前を一覧表示します。名前のリストに基づき、頂点バッファのリストがパラメータ(sourceStreams)として関数の createVertexStreams() に提供されます。createVertexStreams() のシグネチャが変更されています。
- インデックスと頂点バッファ
- MIndexBuffer および MVertexBuffer クラスに、バッファ コンテンツへの読み取り専用アクセスを提供する map() および unmap() メソッドが追加されました。
- MIndexBuffer および MVertexBuffer クラスに、ハードウェア バッファへのグラフィックス デバイス依存ハンドルを設定および取得するための resourceHandle() メソッドが追加されました。hasCustomResourceHandle() メソッドは、カスタム リソースハンドルが設定されているかどうかを判断するために使用できます。
- EXT_frame_buffer_object support
- EXT_frame_buffer_object のサポートが MGLdefinitions に追加されました。
- 柔軟性のあるデータ形式の変更:
- MVaryingParameter: 変更パラメータの宣言で型の制限が緩和され、整数型、倍精度型などがサポートされるようになりました。
- MGeometryRequirements: 位置、法線、接線、複接線などのさまざまなストリームの要素サイズの制限が緩和されています。たとえば、3 つの浮動小数を使用して表われる UV 座標がサポートされるようになりました。
- データ ストリームのカスタム インデックス作成の導入:
- MPxPrimitiveGenerator: プラグインでカスタム インデックス バッファを生成できます。
- MComponentDataIndexing: コンポーネントのインデックス作成を表すサポート クラスです。
MPxIndexBufferMutator: Crack-Free Point-Normal Triangles using Adjacent Edge Normals (PN AEN)パッチ リストの生成などで、インデックス データのカスタム パッキングを許可するための既存のインデックス バッファの修正(変異)を可能にする新しいクラスです。
- 新しいプリミティブ タイプ
MPxPrimitiveGenerator: MPxShaderOverride クラスで、またはカスタム レンダラで使用できる新しいプリミティブ タイプを作成できます。
シェーダのオーバーライドの機能強化
- 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** コマンドでレンダー オーバーライドをサポートします。オーバーライドが UI 名をサポートし、3D ビューポート パネルのレンダラ(Renderer)メニューに表示されるようになりました。
- カラーのオーバーライドでスワップされた1 番目と 2 番目のカラーの設定を修正します。
- レンダー操作で、操作に指定されたレンダー ターゲットに対して **sRGB の書き込み(ハードウェア ベースの 2.2 ガンマ補正)が有効かどうかを示すことができます。これは、シーン、クワッド、およびユーザ操作に適用されます。MRenderOperation::enableSRGBWrite() から派生させて、有効状態を示すことができます。これは DirectX でのみ使用できます。
- シーンおよびクアッドのレンダー操作では、複数のレンダー ターゲット(MRT)をサポートします。MRenderTargetDescription::compatibleWithDescription() ユーティリティ メソッドを使用して、互換性のあるターゲットの説明を確認できます。
- HUD 操作は、レンダー ターゲットのオーバーライドで適切に動作し、操作の順序に従うようになりました。HUD 操作は、最後および最終的なターゲットにレンダリングされなくなりました。HUD 操作は、シーン操作の一部として誤ってレンダリングされることもなくなりました。例については、立体視プラグインの変更点を参照してください。
ジオメトリ ユーティリティ
レンダー ユーティリティ
- MRenderUtilities: スウォッチのバックグラウンド カラーの設定、スウォッチとテクスチャ エディタの描画コンテキストの取得、OpenGL または MImage. へのターゲットの転送など、ビューポート レンダリングのさまざまなユーティリティ機能を提供する新しいクラスです。
DirectX 11 全般
プラグインの除外フィルタリング
- MPxSurfaceShape: プラグイン シェイプのタイプ フィルタリングがサポートされます。
- 登録時におけるプラグイン タイプのタイプ除外のサポートが追加されています。適切な分類を指定して、フィルタを追加することができます。
- 分類文字列 drawdb/geometry/lights を含むプラグイン ノードは、ライト** がフィルタされるときにフィルタされます。
カスタム表示フィルタ
一般的なメタデータの新しい 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 でのみ使用されます。