Maya 2017 Update 3 の API の新機能

レンダリング

一般

  • ポイント ライトおよびポイント ライト シャドウに関するライト情報の書き出しをサポートするための列挙子が MLightParameterInformation クラスに追加されました。更新内容は次のとおりです。
    • StockParameterSemantic 列挙メンバーに kDepthRange 列挙子が追加されました。

      kDepthRange は、ポイント ライト シャドウがポイント ライト カメラのファーおよびニア クリッピング深度を示すために使用されます。viewRenderOverridePointLightShadow.cpp プラグインを参照してください。

    • parameterType 列挙メンバーに kTextureCube 列挙子が追加されました。

    これらの列挙子を含むように dx11ShaderglslShader、および viewRenderOverridePointLightShadows 開発キット サンプル プラグインが更新されました。

  • MStockShader 列挙メンバーに k3dPointLightShadowerShader が追加され、ポイント ライト シャドウ マップをレンダリングするときに使用できるストック シェーダ インスタンスを取得できるようになりました。次のメソッドを使用します。

    MShaderInstance* MShaderManager::getStockShader( MStockShader name, MShaderInstance::DrawCallback preCb, MShaderInstance::DrawCallback postCb)const;

    この列挙子をサポートするように hwPhongShader 開発キット サンプル プラグインが更新されました。

ライティング

  • Maya API を使用してポイント ライトおよびポイント ライト シャドウを実装できるようになりました。新しい viewRenderOverridePointLightShadows 開発キット サンプル プラグインは、ビューポート 2.0 レンダリングのオーバーライド方法を示します。このプラグインの目的は、オンデマンドで要求され、シーン レンダー内で選択的なライティングおよびシャドウイングを行う場合に使用されるポイント シャドウ ライトのマッピング方法(立方体マップ)を紹介することです。この例では単一のポイント ライトを作成しますが、これは完全にサポートされているレンダー オーバーライドの例ではありません。複数のポイント ライトを作成するには、パラメータを設定するときに次の行を修正します。

    status = shaderInstance->setParameter("mayaPointLight_position", &( lightPosition[0] ));

    ポイント ライトのサポートが含まれるように dx11ShaderglslShader、および hwPhongShader 開発キット サンプル プラグインが更新されました。

モデリング

MFnMesh の機能強化:

  • ソフト エッジおよびハード エッジの処理パフォーマンスを改善する MFnMesh::setEdgeSmoothings() 関数が追加されました。エッジをハードにするかスムーズ(ソフト)にするかを指定する場合に、この方法を使用します。
  • 指定したポリゴンの UV テクスチャ座標の巻上げ方向が逆向き(時計回り)であるかどうかを判別する MFnMesh::isPolygonUVReversed() メソッドが追加されました。このメソッドは、テクスチャ座標が逆向きの場合は true、逆向きでない(反時計回り)場合は false を返します。
  • 指定したセットおよび座標に基づいてサーフェス上の最も近い UV を返す MFnMesh::getClosestUVs() 関数が追加されました。
  • メッシュ上の指定した UV 値にあるポイントの位置を返す MFnMesh::getPointsAtUV() 関数が追加されました。

    UV 座標上のポイントを取得する場合は、この関数の方が MItMeshPolygon::pointAtUV() よりも高いパフォーマンスを実現できます。

MItMeshPolygon の機能強化:

  • 反復中のポリゴンのフェースの UV 巻上げ方向を確認する MItMeshPolygon::isUVReversed() メソッドが追加されました。このメソッドは、フェースの UV が逆向き(時計回り)の場合は true、逆向きでない(反時計回り)場合は false を返します。

パフォーマンス

  • 新しい footPrintNode_SubSceneOverride 開発キット サンプルは、ロケータ オブジェクトのサブシーン オーバーライドの実装方法を示します。