Dynamics 365 Guides または Power Apps で作成されたアプリに含まれる Mixed Reality コンポーネントで使用するための、リアルタイム 3D オブジェクトの変換と最適化を行うためのベスト プラクティス

このトピックでは、Dynamics 365 Guides および Power Apps で作成された Mixed Reality コンポーネントを含むアプリのために、3D オブジェクトを変換して最適化するためのベスト プラクティスについて説明します。

マテリアルとサーフェスを減らす

  • 3D オブジェクトのソースとコンテンツの表現方法によっては、物理ベース レンダリング (PBR) システムの全機能を使用するができます。 PBR システムでは、カラー、粗さ、バンプを視覚的に表現するために、テクスチャ マップを作成します。3D オブジェクトに多数のさまざまなマテリアルや、複雑なサーフェスを含む必要がありません。

  • 単にアセットが存在する必要があり、PBR システムが提供する詳細は必要ない場合には、単一色のみを適用することにより、パフォーマンスを大幅に向上できます。 これにより、さまざまなカラー、反射、バンプなどの、必要のないテクスチャ データとサーフェス情報が除外されます。

    単一色。

    A. PBR システムを使用しない、高パフォーマンスの単一色の 3D オブジェクト
    B. PBR システムを使用した、高品質な表現の 3D オブジェクト

テクスチャを減らす

  • 粗さマップを減らすと、モデルのパフォーマンスを向上できます。

    粗さマップを減らす。

    A. 粗さマップ テクスチャが 2048 x 2048 のモデル
    B. 粗さマップ テクスチャが 1024 x 1024 のモデル

  • 解像度とテクスチャの量を減らすと、メモリ消費とファイル サイズに最大の影響があります。

  • 視覚的な影響に基づいて、テクスチャを減らします。 たとえば、多くの場合、メタリック粗さマップをベース カラー マップと法線マップの半分の解像度にしても、認識できる品質の低下はありません。

  • JPG 圧縮と PNG 量子化によってファイル サイズをさらに削減できますが、実行時のモデルの読み込み時に必要なメモリには影響しません。

非表示データと不使用データの削除

  • 3D オブジェクトの表現に必要のないデータは必ず削除します。 必要のないノード、メッシュ、マテリアル、テクスチャが、多数追加されていることがあります。 たとえば、次の 3D オブジェクトでは、非表示のモーター パーツを削除すると、三角形の数が減り、階層が単純化され、3D オブジェクトのパフォーマンスが向上します。

    非表示データの削除。

    Autodesk Inventor でビジュアル化されたワイヤーフレームとシェード モデル。

三角形を減らす

  • 三角形または頂点の数が多いと、パフォーマンスが低下する可能性があります。これは特にパフォーマンスに制約のあるデバイスで発生します。

  • モデルの使用法が事前にわかっている場合は、三角形を減らすことができます。 重要性の低いエリアで集中的に減らし、重要なエリアではメッシュ密度を高くします。

  • 詳細なジオメトリ サーフェスとマテリアルのカラーは、多くの場合、法線マップ、カラー マップ、ORM (オクルージョン、粗さ、メタリック) マップにベイク処理して置き換えることができます。これにより、三角形を大幅に減らすことができます。

    三角形を減らす。

    A. ネイティブ CAD 3D オブジェクト
    B. 法線マップを使用して三角形の数を減らしたポリゴン モデル
    C. 法線マップで最適化されたモデル

ドロー コールを減らす

  • ドロー コールとは、フレームごとのグラフィック命令の数を指します。これは、画面上のマテリアルの数です。 オブジェクトのマテリアルを減らすか、統合すると、ドロー コールを減らすことができます。

    ドロー コールを減らす。

    この例では、複数のテクスチャを 1 つのテクスチャに統合して、ドロー コールが 22 から 1 に減少しました。

  • 最も一般的な実行時のパフォーマンスのボトルネックは、多数のドロー コールが原因であることがあります。

  • 複数のマテリアルからテクスチャ アトラスを作成し、メッシュをマージすると、ドロー コールを統合できます。

階層の複雑さを減らす

  • グループ化、ペアレンティング、多数のノード (ヌル、ロケーター、生の曲線、メッシュ、ジョイントなど) は、実行時のパフォーマンスの低下につながることがあります。

  • 可能な場合には、階層を簡素化し、不要なノードを削除して、メッシュを結合します。

    階層の複雑さを減らす。

    メッシュを結合してドロー コールを減らします。 Autodesk 3DS Max でビジュアル化されています。

    A. 元の階層
    B. 最適化された階層

  • glTF は、マテリアルとアトラス マテリアルごとに 1 つのメッシュを作成して、ノード数とドロー コールを減らします。

ジオメトリ面の間の距離を増やす

  • ジオメトリ面が同一平面上またはほぼ同一平面上にある場合、フリッカーが発生する可能性があります。特に、モデルがアニメーション化されている場合や、アプリケーション内で移動する場合によく発生します。 これは、ジオメトリ面が重複していることを意味し、いわゆる Z ファイティングが発生します。

    ジオメトリ面の間の距離を増やす。

    2 つの形状がほぼ重複し、Zファイティング効果が発生しています。

  • 多くの場合、ジオメトリ面の間の距離を少し増やすと、フリッカーの問題は解消します。

反転の面の法線を反転する

  • 反転面の法線により、モデルが正しくシェーディングされない場合があります。

  • 正しくシェーディングされていない面の法線を反転すると、レンダリングの問題が解決されます。

    反転の面の法線を反転する。

    Blender でビジュアル化された面の法線。

    A. 法線が反転した 3D オブジェクト
    B. 法線を修正した 3D オブジェクト

接線ベースの競合

  • 接線ベースが競合すると、法線マップが反転して表示される場合があります。

    接線ベースの競合。

    Autodesk Maya でビジュアル化された接線ベース。

    A. 3D オブジェクトからベイク処理した法線マップと法線反転ネジ
    B. 法線反転したオブジェクトでベイク処理した表示結果

  • 接線とモデルをエクスポートしない場合、glTF とリアルタイム レンダラーは右利きであると想定します。

  • 左利きの設定で接線空間の法線マップをベイク処理する場合は、接線とモデルをエクスポートします。 または、法線マップの緑のチャネル (Y 軸) を反転することもできます。

関連項目