Autodesk Maya 2014

OpenMaya レンダー

UI 描画の機能強化

詳細は「3.9 UI 作成マネージャ」のセクションを参照してください。

ジオメトリの機能強化

シェーダのオーバーライドの機能強化

シェーダ インスタンスの機能強化

次の例では、テクスチャ座標を変更します。

float4 gUVTransform : RelativeViewportDimensions; In.UV * gUVTransform.zw + gUVTransform.xy”

次のシェーダは新しいセマンティックを使用するように修正されました。

テクスチャリングの機能強化

ライティングの機能強化

レンダー項目の機能強化

状態の機能強化

パス情報の機能強化

レンダーのオーバーライドの機能強化

開発キットの viewImageBlitOverride プラグインは、深度書き込み状態のオーバーライドの例を提供します。

変更管理の機能強化

描画オーバーライドの機能強化

virtual MUserData* prepareForDraw( const MDagPath& objPath, const MDagPath& cameraPath, const MFrameContext& frameContext, MUserData* oldData) = 0

ジオメトリのオーバーライドの機能強化

Maya コールバックの機能強化

MFrameContext

MFrameContext は Maya 2014 の新しいインタフェースです。フレーム レンダーごとに使用可能な情報を提供するように設計されています。これには、レンダー ターゲット、ビューポート サイズ、カメラ情報などが含まれます。

相対スコープに関しては、MFrameContext は、1 つまたは複数の「パス」の期間(MPassContext)と実際の描画の期間(MDrawContext)を含むものとみなすことができます。

MDrawContextMFrameContext から派生し、すべての仮想メソッドの実装を提供します。これらのメソッドから返される値は、MFrameContextMDrawContext とで若干異なります。MFrameContext は Maya から値を取得し、MDrawContext は GPU デバイスの状態から値を取得するからです。また、MFrameContext::getMatrix() は、オブジェクトからワールドへの行列を必要とする行列タイプの値を返すことができません。この情報は描画時にしか使用できないからです。

フレーム コンテキスト情報には次の情報が含まれます。

MPxSubSceneOverride

MPxSubSceneOverride は Maya 2014 の新しいインタフェースです。MPxDrawOverride および MPxGeometryOverride に代わるインタフェースで、多数の独立した描画可能オブジェクトを生成する必要があるビューポート 2.0 のプラグイン DAG オブジェクトを表すために特別に最適化されています。たとえば、サブシーン全体を定義できるプラグイン ノード(gpuCache プラグインなど)はこのインタフェースによく適合します。単一ノードは何万もの描画可能オブジェクトを生成しなければならない場合があるからです。

MPxSubSceneOverride は、実装に与えられるコントロールの量に関して、MPxDrawOverrideMPxGeometryOverride の間に位置します。MPxDrawOverride はオブジェクト全体の描画を完全にコントロールできますが、結果として実装は描画についてのすべての責任を負います。MPxGeometryOverride は、比較的簡単に使用できますが、結果として使用できる描画のコントロールは制限されます。MPxSubSceneOverride はすべてのレンダー項目、ジオメトリ、シェーダを完全に定義し、高度なコントロールを提供できます。ただし、この定義はハードウェアの描画 API から抽象化されます。そのため、DirectX と OpenGL の両方のサポートを得るための実装が 1 つで済みます。さらに、レンダー項目の描画は Maya によって処理されるため、項目は Maya レンダリング パイプラインに完全に参加できます(スクリーンスペース アンビエント オクルージョン、透明度のソート、影付け/影受けなどのスクリーンスペース エフェクトを含む)。

ゴースト化のサポート

Maya 2014 API は、ゴースト化オブジェクトをレンダリングする際に、レンダー オーバーライドを明示的に呼び出しません。

以前は、オーバーライドがアタッチされている DAG オブジェクトがゴースト化に設定されている場合に、レンダー項目または描画コードをゴーストごとに 1 回ずつ複数回呼び出すことができました。

これはもうできません。そのため、プラグインの独自のゴースト化を実行するコードは、プラグインの作成者が記述する必要があります。

影響を受けるクラスは MPxDrawOverrideMPxGeometryOverride、および MPxSubSceneOverride です。

.NET API

MetaData C++ API の .NET API へのポートが次のように大幅に修正および改良されました。

詳細については、「MetaData」を参照してください。

リファレンス編集の新しい API

一般的なメタデータの新しい API (ブラインド データ)

新しい外部コンテンツ API

その他

マニュアル

プラグインの変換

// Classify the node as a transform. This causes Viewport // 2.0 to treat the node the same way it treats a regular // transform node. const MString classification = "drawdb/geometry/transform"; status = plugin.registerTransform("rockingTransform", rockingTransformNode::id, &rockingTransformNode::creator, &rockingTransformNode::initialize, &rockingTransformMatrix::creator, rockingTransformMatrix::id, &classification);

この機能は Maya 2012 から使用できるようになりました。

Maya 2014 では、registerTransform() が更新され、他の drawdb 分類が指定されていない場合に drawdb/geometry/transform 分類が自動的に追加されるようになりました。getClassification コマンドのマニュアルも更新され、ビューポート 2.0 によって認識される分類の一覧が追加されました。

「ビューポート 2.0 API」の章の更新