モデル変換のパラメータを構成する

この記事では、モデル変換のパラメータを構成する方法について説明します。

設定ファイル

<modelName>.ConversionSettings.json という名前のファイルが入力モデル <modelName>.<ext> の横にある入力コンテナー内にある場合、そのファイルはモデル変換プロセスに追加の構成を提供するために使用されます。 たとえば、box.gltf を変換する場合は、box.ConversionSettings.json を使用してモデル変換のパラメータを設定します。

JSON 変換設定ファイルの内容には、次のスキーマが必要です。

{
    "$schema" : "http://json-schema.org/schema#",
    "description" : "ARR ConversionSettings Schema",
    "type" : "object",
    "definitions" : 
    {
        "position_attribute" : {"type" : "string", "description" : "Destination format of the position attribute", "enum" : [ "32_32_32_FLOAT", "16_16_16_16_FLOAT" ]},
        "color_attribute" : {"type" : "string", "description" : "Destination format of the color attribute", "enum" : [ "NONE", "8_8_8_8_UNSIGNED_NORMALIZED" ]},
        "vector_attribute" : {"type" : "string", "description" : "Destination format of the normals, tangents and binormals attributes", "enum" : [ "NONE", "8_8_8_8_SIGNED_NORMALIZED", "16_16_16_16_FLOAT" ]},
        "texcoord_attribute" : {"type" : "string", "description" : "Destination format of the texture coordinates attribute", "enum" : [ "NONE", "32_32_FLOAT", "16_16_FLOAT" ]}
    },
    "properties" : 
    {
        "scaling" : { "type" : "number", "exclusiveMinimum" : 0, "default" : 1.0 },
        "recenterToOrigin" : { "type" : "boolean", "default" : false },
        "opaqueMaterialDefaultSidedness" : {" type" : "string", "enum" : [ "SingleSided", "DoubleSided" ], "default" : "DoubleSided" },
        "material-override" : { "type" : "string", "default" : "" },
        "gammaToLinearMaterial" : { "type" : "boolean", "default" : false },
        "gammaToLinearVertex" : { "type" : "boolean", "default" : false },
        "sceneGraphMode" : { "type" : "string", "enum" : [ "none", "static", "dynamic" ], "default" : "dynamic" },
        "generateCollisionMesh" : { "type" : "boolean", "default" : true },
        "unlitMaterials" : { "type" : "boolean", "default" : false },
        "deduplicateMaterials" : {"type" : "boolean", "default" : true },
        "fbxAssumeMetallic" : {"type" : "boolean", "default" : true },
        "axis" : {
            "type" : "array",
            "items" : {
                "type" : "string",
                "enum" : [ "default", "+x", "-x", "+y", "-y", "+z", "-z" ]
            },
            "minItems" : 3,
            "maxItems" : 3
        },
        "vertex" : {
            "type" : "object",
            "properties" : {
                "position" : { "$ref" : "#/definitions/position_attribute" },
                "color0" : { "$ref" : "#/definitions/color_attribute" },
                "color1" : { "$ref" : "#/definitions/color_attribute" },
                "normal" : { "$ref" : "#/definitions/vector_attribute" },
                "tangent" : { "$ref" : "#/definitions/vector_attribute" },
                "binormal" : { "$ref" : "#/definitions/vector_attribute" },
                "texcoord0" : { "$ref" : "#/definitions/texcoord_attribute" },
                "texcoord1" : { "$ref" : "#/definitions/texcoord_attribute" }
            },
            "additionalProperties" : false
        },
        "metadataKeys" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
        }
    },
    "additionalProperties" : false
}

box.ConversionSettings.json ファイルは、次の例のようになります。

{
    "scaling" : 0.01,
    "recenterToOrigin" : true,
    "material-override" : "box_materials_override.json"
}

三角形メッシュと点群を変換する場合のスキーマは同じです。 ただし、点群の変換では、三角形メッシュの変換と比べると、機能の厳密なサブセットが使用されます。

三角形メッシュの設定

たとえば .fbx ファイルから三角形メッシュを変換する場合、前のセクションで示したスキーマ例のすべてのパラメータが変換結果に影響します。 次のセクションでは、パラメータの詳細について説明します。

ジオメトリ パラメーター

  • scaling: このパラメータを指定すると、モデルは一様に拡大縮小されます。 拡大縮小を使用すると、たとえば、テーブル トップに建築モデルを表示するために、モデルを拡大または縮小できます。 拡大縮小は、モデルがメートル以外の単位で定義されている場合にも重要です。これは、レンダリング エンジンではメートルを想定しているためです。 たとえば、モデルがセンチメートルで定義されている場合、0.01 のスケールを適用すると、モデルが適切なサイズでレンダリングされます。 一部のソース データ形式 (.fbx ファイルなど) では、単位の拡大縮小ヒントが提供されます。 この場合、変換によってモデルがメートル単位で暗黙的に拡大縮小します。 ソース形式によって提供される暗黙的な拡大縮小は、scaling パラメータに加えて適用されます。 最終的なスケール ファクターは、ジオメトリ頂点と、シーン グラフ ノードのローカル変換に対して適用されます。 ルート エンティティの変換に対するスケーリングは変更されません。

    重要

    Showcase と Quickstart には、それぞれ自動拡大縮小機能が組み込まれているため、変換時の拡大縮小が補正される場合があります。 詳細については、トラブルシューティング ガイドを参照してください。

  • recenterToOrigin: このパラメータは、境界ボックスの中心が原点に配置されるようにモデルを変換する必要があることを示します。 ソース モデルが原点から遠く外れている場合、浮動小数点の精度の問題によってレンダリング アーティファクトが発生する可能性があります。 モデルを中心に置くと、このシナリオで役立つ場合があります。

  • opaqueMaterialDefaultSidedness: レンダリング エンジンでは、不透明な素材は両面であると想定されます。 その想定が特定のモデルでは正しくない場合は、このパラメータを SingleSided に設定する必要があります。 詳細については、「片面レンダリング」を参照してください。

素材の重複除去

  • deduplicateMaterials: このパラメータは、同じプロパティとテクスチャを共有する素材の自動重複除去を有効または無効にします。 重複除去は、素材のオーバーライドが処理された後に実行されます。 既定では有効になっています。

  • 重複除去の後でも、モデルの素材が 65,535 個を超える場合、サービスによって、同様のプロパティを含む素材のマージが試行されます。 最後の手段として、制限を超える素材があれば、赤いエラー素材に置き換えられます。

次の図は、68,921 色の三角形の 2 つの立方体を示しています。 左の例は重複除去の前で、色素材は 68,921 個です。 右の例は重複除去の後で、色素材は 64,000 個です。 上限は 65,535 個のマテリアルです 素材の制限の詳細については、制限に関する記事を参照してください。

Screenshot that shows two cubes of 68,921 colored triangles and the effect of deduplication.

色空間のパラメーター

レンダリング エンジンでは、色の値は線形空間内であるものと想定されています。 ガンマ空間を使用してモデルを定義されている場合は、次の各オプションを true に設定する必要があります。

  • gammaToLinearMaterial: 素材の色をガンマ空間から線形空間に変換します。
  • gammaToLinearVertex: 頂点の色をガンマ空間から線形空間に変換します。

Note

FBX、E57、PLY、LAS、LAZ、XYZ の各ファイル形式では、これらの設定が既定で true に設定されます。 その他のすべてのファイル形式では、既定値は false です。

シーンのパラメーター

  • sceneGraphMode: ソース ファイルのシーン グラフの変換方法を定義します。
    • dynamic (既定値): ファイル内のすべてのオブジェクトが API でエンティティとして公開され、任意に変換し、親を再指定することができます。 実行時、ノード階層は、ソース ファイルでの構造と同じです。
    • static: dynamic と同様ですが、シーン グラフ内のオブジェクトの親を実行時に動的に他のオブジェクトに再指定することはできません。 展開ビューなど、多数の移動パーツを含む動的モデルの場合、dynamic オプションを使用するとレンダリング効率の高いモデルが生成されますが、static モードでも個々のパーツの変換が可能です。 動的な親の再指定が必要ない場合は、static オプションが、多数の個別のパーツを含むモデルに最適です。
    • none: シーン グラフは、1 つのオブジェクトに折りたたまれます。

モードによって実行時のパフォーマンスが異なります。 dynamic モードでは、パーツが移動されない場合でも、パフォーマンス コストはグラフ内のエンティティの数に比例して増減します。 dynamic モードは、多数のパーツまたは大きなサブグラフを同時に移動する必要がある場合にのみ使用してください。 たとえば、展開ビュー アニメーションなどです。

static モードでも、完全なシーン グラフがエクスポートされます。 空間クエリでは個々のパーツが返され、各パーツは状態のオーバーライドを使用して変更できます。 このモードでは、オブジェクトごとの実行時のオーバーヘッドはごくわずかです。 このモードは、オブジェクトごとの検査と、不定期の個々のパーツに対する変換の変更が必要だが、オブジェクトの親の再指定は必要ない、大規模なシーンに最適です。

none モードでは、実行時のオーバーヘッドが最小限に抑えられ、読み込み時間も若干向上します。 このモードでは、単一のオブジェクトを検査または変換することはできません。 ユース ケースとしては、たとえば、意味のあるシーン グラフから開始しない写真測量モデルなどがあります。

ヒント

多くのアプリケーションでは、複数のモデルが読み込まれます。 モデルごとに、その使用方法に応じて、変換パラメータを最適化する必要があります。 たとえば、ユーザーが分解して詳しく調べられるように車のモデルを表示する場合は、まず、dynamic モードを使用してそれを変換します。 ただし、さらに車をショー ルーム環境に配置する場合は、static または none に設定した sceneGraphMode を使用してそのモデルを変換できます。

物理パラメーター

  • generateCollisionMesh: モデルで空間クエリをサポートする必要がある場合は、このオプションを有効にする必要があります。 衝突メッシュの生成により、変換時間が長くなることはなく、出力ファイルのサイズも増加しません。 衝突メッシュを含むモデルの読み込み時間と実行時コストが、わずかに増えるだけです。 空間クエリからモデルを除外する特定の理由がない限り、このフラグは既定値 (有効) のままでかまいません。

照明なしの素材

  • unlitMaterials: 既定では、変換によって物理ベース レンダリング (PBR) 素材が作成されます。 このオプションを設定すると、コンバーターは代わりにすべての素材を色素材として扱います。 写真測量法によって作成されたモデルなど、照明が既に組み込まれているデータがある場合、このオプションを使用すると、すべての素材に対して適切な変換を迅速に適用できます。 個別に各素材をオーバーライドする必要はありません。

以前の FBX 形式と Phong 素材モデルからの変換

  • fbxAssumeMetallic: 以前のバージョンの FBX 形式では、Phong 素材モデルを使用して素材が定義されています。 変換プロセスでは、これらの素材をレンダラーの PBR モデルにマップする方法を推定する必要があります。 通常、このマッピングは問題なく機能しますが、素材にテクスチャがなく、反射値が高く、アルベド カラーがグレーでない場合は、あいまいさが発生する可能性があります。 このシナリオでは、変換において、高い反射値を優先し、アルベド カラーがディゾルブする場所で反射率の高いメタリック素材を定義するか、またはアルベド カラーを優先し、光沢のあるカラフルなプラスチックのようなものを定義するかを選択する必要があります。 既定では、変換プロセスで、あいまいなシナリオにおける高い反射値はメタリック素材を意味すると見なされます。 このパラメータを false に設定すると、反対の効果を出すことができます。

座標系のオーバーライド

  • axis: 座標系の単位ベクトルをオーバーライドするには、このパラメータを使用します。 既定値は ["+x", "+y", "+z"] です。 理論的には、FBX 形式にはこれらのベクトルが定義されているヘッダーが含まれ、変換ではその情報を使用してシーンを変換します。 GLTF 形式では、固定座標系も定義されています。 実際には、ヘッダーの情報が正しくない資産や、別の座標系規則を使用して保存された資産もあります。 このオプションを使用すると、座標系をオーバーライドして補正できます。 たとえば、"axis" : ["+x", "+z", "-y"] では、Z 軸と Y 軸が入れ替えられ、Y 軸の方向を反転することによって座標系の掌性が維持されます。

ノード メタデータ

  • metadataKeys: 変換結果に保持するノード メタデータのプロパティのキーを指定するには、このパラメータを使用します。 正確なキーまたはワイルドカードのキーを指定できます。 ワイルドカードのキーは、形式が ABC* であり、ABC で始まるすべてのキーと一致します。 サポートされているメタデータ値の型は、boolintfloatstring です。

    GLTF ファイルの場合、このデータはノードの extras オブジェクトから取得されます。 FBX ファイルの場合、このデータは Model nodesProperties70 データから取得されます。 詳細については、お使いの 3D アセット ツールのドキュメントを参照してください。

メタ データを有効にしてモデルを読み込むと、特定のエンティティのメタ データ エントリの一覧を 非同期 QueryMetadataAsync 関数を使用して取得できます。

頂点の形式

メッシュの頂点形式を調整して、精度を低くする代わりにメモリを節約できます。 モデルのメモリ占有領域が小さい場合は、より大きなモデルを読み込んだり、パフォーマンスを向上させたりできます。 ただし、データによっては、形式を誤るとレンダリング品質に大きく影響する可能性があります。

注意事項

頂点形式の変更は、モデルがメモリに収まらなくなった場合や、パフォーマンスを可能な限り最適化する場合の、最後の手段とする必要があります。 変更により、明らかなものと微妙なもの両方のレンダリング アーティファクトが簡単に発生する可能性があります。 気を付ける点が不明な場合は、既定値を変更しないでください。

次の調整を行うことができます。

  • 特定のデータ ストリームを明示的に含めるか、除外する。
  • データ ストリームの精度を下げて、メモリ占有領域を減らす。

JSON ファイルの次の vertex セクションは省略可能です。 明示的に指定されていない部分については、変換サービスの既定の設定が使用されます。

{
    ...
    "vertex" : {
        "position"  : "32_32_32_FLOAT",
        "color0"    : "NONE",
        "color1"    : "NONE",
        "normal"    : "NONE",
        "tangent"   : "NONE",
        "binormal"  : "NONE",
        "texcoord0" : "32_32_FLOAT",
        "texcoord1" : "NONE"
    },
    ...
}

コンポーネントを強制的に NONE にすることにより、出力メッシュに対応するストリームが含まれないことが保証されます。

頂点ストリームごとのコンポーネントの形式

次の表では、各コンポーネントで使用できる形式について説明します。

頂点のコンポーネント サポートされるフォーマット 素材の使用法
position 32_32_32_FLOAT ("既定値")、16_16_16_16_FLOAT 頂点の位置。 必ず存在する必要があります。
color0 8_8_8_8_UNSIGNED_NORMALIZED ("既定値")、NONE 頂点の色。 「色素材」と「PBR 素材」の両方で useVertexColor プロパティについて、「色素材」で vertexMix プロパティについて参照してください。
color1 8_8_8_8_UNSIGNED_NORMALIZEDNONE ("既定値") 未使用。 既定値 NONE のままにします。
normal 8_8_8_8_SIGNED_NORMALIZED ("既定値")、16_16_16_16_FLOATNONE PBR 素材の照明に使用されます。
tangent 8_8_8_8_SIGNED_NORMALIZED ("既定値")、16_16_16_16_FLOATNONE PBR 素材の法線マップを使用した照明に使用されます。
binormal 8_8_8_8_SIGNED_NORMALIZED ("既定値")、16_16_16_16_FLOATNONE PBR 素材の法線マップを使用した照明に使用されます。
texcoord0 32_32_FLOAT ("既定値")、16_16_FLOATNONE テクスチャ座標の最初のスロット。 アルベドや法線マップなどの個々のテクスチャでは、ソース ファイルで定義されているスロット 0 または 1 を使用できます。
texcoord1 32_32_FLOAT ("既定値")、16_16_FLOATNONE テクスチャ座標の 2 番目のスロット。 アルベドや法線マップなどの個々のテクスチャでは、ソース ファイルで定義されているスロット 0 または 1 を使用できます。

サポートされているコンポーネントの形式

次の表では、サポートされているコンポーネント形式のメモリ 占有領域について説明します。

書式 説明 頂点あたりのバイト数
32_32_FLOAT 2 つのコンポーネントの完全浮動小数点数精度 8
16_16_FLOAT 2 つのコンポーネントの半浮動小数点数精度 4
32_32_32_FLOAT 3 つのコンポーネントの完全浮動小数点数精度 12
16_16_16_16_FLOAT 4 つのコンポーネントの半浮動小数点数精度 8
8_8_8_8_UNSIGNED_NORMALIZED [0; 1] の範囲に正規化された 4 つのコンポーネントのバイト 4
8_8_8_8_SIGNED_NORMALIZED [-1; 1] の範囲に正規化された 4 つのコンポーネントのバイト 4

コンポーネント形式の変更についてのベスト プラクティス

  • position: 低下した精度でも十分であることはほとんどありません。 16_16_16_16_FLOAT では、小さなモデルでも、顕著な量子化アーティファクトが発生します。
  • normaltangentbinormal: 通常、これらの値はまとめて変更されます。 通常の量子化の結果として顕著な照明アーティファクトが発生するのでない限り、精度を上げる理由はありません。 ただし、場合によっては、これらのコンポーネントを NONE に設定できます。
    • normaltangentbinormal は、モデル内の少なくとも 1 つの素材に照明を当てる必要がある場合にのみ必要です。 Azure Remote Rendering では、このシナリオは PBR 素材がモデルでいつでも使用される場合に発生します。
    • tangentbinormal は、照明ありの素材のいずれかで法線マップ テクスチャが使用されている場合にのみ必要です。
  • texcoord0texcoord1 : テクスチャ座標では、これらの値が [0; 1] の範囲内にあり、指定されたテクスチャの最大サイズが 2,048 x 2,048 ピクセルの場合に、低い精度 (16_16_FLOAT) を使用できます。 これらの制限を超えた場合、テクスチャ マッピングの品質が低下します。

テクスチャに照明が組み込まれている写真測量モデルを使用しているものとします。 モデルをレンダリングするために必要なのは、頂点位置とテクスチャ座標だけです。

既定では、ある時点でモデルに対して PBR 素材を使用する可能性をコンバーターで想定する必要があるので、normaltangentbinormal データが自動的に生成されます。 そのため、頂点ごとのメモリ使用量は position (12 バイト) + texcoord0 (8 バイト) + normal (4 バイト) + tangent (4 バイト) + binormal (4 バイト) = 32 バイトになります。 この種のモデルがさらに大きくなると、頂点の数は簡単に数百万になり、モデルで複数ギガバイトのメモリが使用される可能性があります。 そのような大量のデータはパフォーマンスに影響を与え、メモリが不足する可能性もあります。

モデルで動的な照明が全く不要で、すべてのテクスチャ座標が [0; 1] の範囲内にあることがわかっている場合は、normaltangentbinormalNONE に設定し、texcoord0 を半精度 (16_16_FLOAT) に設定することで、頂点あたり 16 バイトだけにすることができます。 メッシュ データが半減すると、より大きなモデルを読み込むことができるので、パフォーマンスが向上する可能性があります。

点群の設定

点群が変換される場合、スキーマのプロパティの小さなサブセットのみが使用されます。 他のプロパティは、指定されていない限り無視されます。

点群変換に影響を与えるプロパティは次のとおりです。

  • scaling: 三角形メッシュの場合と同じ意味です。
  • recenterToOrigin: 三角形メッシュの場合と同じ意味です。
  • axis: 三角形メッシュの場合と同じ意味です。 既定値は ["+x", "+y", "+z"] ですが、ほとんどの点群データはレンダラー独自の座標系と比較して回転されます。 補正するために、ほとんどの場合、["+x", "+z", "-y"] によって回転が修正されます。
  • gammaToLinearVertex: 三角形メッシュと同様に、このフラグは点の色をガンマ空間から線形空間に変換する必要があるかどうかを示します。 点群形式 (E57、PLY、LAS、LAZ、および XYZ ファイル) の既定値は、true です。
  • generateCollisionMesh: 三角形メッシュと同様に、空間クエリをサポートするには、このフラグを有効にする必要があります。

メモリの最適化

読み込まれたコンテンツのメモリ消費が、レンダリング システムのボトルネックになる場合があります。 メモリ ペイロードが大きくなりすぎると、レンダリングのパフォーマンスが低下したり、モデルが完全に読み込まれなくなる可能性があります。 この段落では、メモリ占有領域を削減するためのいくつかの重要な戦略について説明します。

Note

次の最適化は、三角形メッシュに適用されます。 変換設定を構成して点群の出力を最適化することはできません。

インスタンス化

インスタンス化では、メッシュは、独自の一意のジオメトリを参照する各パーツではなく、個別の空間変換を備えたパーツに再利用されます。 インスタンス化は、メモリ占有領域に大きく影響します。

インスタンス化のユースケースの例には、エンジン モデルのネジや建築モデルの椅子があります。

Note

インスタンス化によって、メモリ消費量 (および読み込み回数) を大幅に減らすことができますが、レンダリングのパフォーマンスは大幅には向上しません。

変換サービスでは、パーツをインスタンス化するようにソース ファイルでマークアップされている場合は、それに従います。 ただし、変換では、再利用可能なパーツを識別するためのメッシュ データの追加の詳細分析は実行されません。 インスタンス化を適切に設定するための決定的な条件は、コンテンツ作成ツールとそのエクスポート パイプラインです。

インスタンス化情報が変換中に保持されるかどうかをテストする簡単な方法は、出力統計を調べることです。 具体的には、numMeshPartsInstanced 値を確認します。 numMeshPartsInstanced の値が 0 より大きい場合は、メッシュがインスタンス間で共有されています。

例: 3ds Max でのインスタンス化の設定

Autodesk 3ds Max には、コピーインスタンス参照と呼ばれる個別のオブジェクト複製モードがあります。 各モードで、エクスポートされた .fbx ファイルでのインスタンス化の動作が異なります。

Screenshot that shows an example of cloning an object by using Autodesk 3ds Max.

  • コピー: このモードではメッシュが複製されるため、インスタンス化は使用されません (numMeshPartsInstanced = 0)。
  • インスタンス: 2 つのオブジェクトで同じメッシュが共有されるため、インスタンス化が使用されます (numMeshPartsInstanced = 1)。
  • 参照 : ジオメトリに Distinct 修飾子を適用できるため、エクスポーターでは保守的なアプローチが選択され、インスタンス化は使用されません (numMeshPartsInstanced = 0)。

深度ベースのコンポジション モード

メモリが重要な場合は、深度ベースのコンポジション モードを使用してレンダラーを構成します。 このモードでは、複数の GPU に GPU ペイロードが分散されます。

頂点サイズを縮小する

コンポーネント形式の変更についてのベスト プラクティス」で説明したように、頂点形式を調整すると、メモリ占有領域を削減できます。 ただし、このオプションは、最後の手段にする必要があります。

テクスチャのサイズ

シナリオの種類によっては、テクスチャ データの量がメッシュ データのために使用されるメモリを上回る可能性があります。 写真測量モデルにその可能性があります。 変換構成には、テクスチャを自動的にスケールダウンする方法は用意されていません。 必要であれば、クライアント側の処理前の手順として、テクスチャの拡大縮小を実行する必要があります。 ただし、変換手順では、適切なテクスチャ圧縮形式が選択されます。

  • 不透明な色テクスチャの BC1 ファイル形式
  • アルファ チャネルが指定されたたソース 色テクスチャの BC7 ファイル形式

BC7 ファイル形式は BC1 ファイル形式の 2 倍のメモリ占有領域を持つため、入力テクスチャで不要なアルファ チャネルが提供されないようにすることが重要です。

一般的なユース ケース

特定のユース ケースに対して適切なインポート設定を見つけることは、面倒なプロセスになる可能性があります。 一方で、変換の設定は、実行時のパフォーマンスに大きな影響を与える可能性があります。

ユース ケースの一部の特定のクラスは、特定の最適化に適しています。 以降のセクションで、いくつかの例について説明します。

ユース ケース: 建築の視覚化または大規模な屋外マップ

建築の視覚化または大規模な屋外マップを含むシナリオでは、次の要因を考慮してください。

  • これらの種類のシーンは静的である傾向があります。 それらに可動パーツは必要ありません。 したがって、sceneGraphModestatic または none に設定し、実行時のパフォーマンスを向上させることができます。 static モードでは、シーンのルート ノードは依然として移動、回転、拡大縮小できます。 たとえば、1:1 のスケール (一人称視点の場合) とテーブル トップ ビューを動的に切り替えることができます。

  • アプリケーションで切断面が使用されていない場合は、opaqueMaterialDefaultSidedness フラグをオフにする必要があります。 通常、パフォーマンスが 20 パーセントから 30 パーセント向上します。 切断面は引き続き使用できますが、オブジェクトの内部を見ると背面がなく、直感に反するように見えます。 詳細については、「片面レンダリング」を参照してください。

ユース ケース: 写真測量モデル

写真測量モデルをレンダリングする場合、通常、シーン グラフは必要ありません。 このシナリオでは、sceneGraphModenone に設定することができます。 それらのモデルには複雑なシーン グラフが含まれることはほとんどないため、このオプションを選択しても、おそらく影響はあまりありません。 照明はテクスチャに既に組み込まれているため、動的な照明は必要ありません。 このシナリオでは:

  • unlitMaterials フラグを true に設定して、すべての素材を照明なしのカラー素材に変換します。
  • 頂点形式から不要なデータを削除します。 前のを参照してください。

ユース ケース: コンパクトなマシンなどの視覚化

これらのユース ケースのモデルでは、多くの場合、小さいボリュームに高度な詳細が含まれます。 レンダラーは、これらのケースを処理するためにかなり最適化されています。 ただし、前のユース ケースで説明した最適化のほとんどは、ここでは適用されません。 最適化には以下が含まれます。

  • 個々のパーツは選択可能かつ移動可能でなければならないため、sceneGraphModedynamic に設定される必要があります。
  • 通常、アプリケーションにはレイ キャストが不可欠であるため、衝突メッシュを生成する必要があります。
  • opaqueMaterialDefaultSidedness フラグが有効になっていると、切断面の見栄えがよくなります。

非推奨の機能

モデル固有ではない conversionSettings.json ファイル名を使用したモデル変換パラメータの設定は引き続きサポートされますが、非推奨です。 代わりに、モデル固有の <modelName>.ConversionSettings.json ファイル名を使用してください。

変換設定ファイルでの素材のオーバーライド ファイルを識別するために material-override 設定を使用することは引き続きサポートされますが、非推奨です。 代わりに、モデル固有の <modelName>.MaterialOverrides.json ファイル名を使用してください。

次のステップ