AI 生成された 3D モデルは空白のシーンから認識可能な prop、Build、またはクリーチャーにすぐに得ることができます。それらはまた密接なトポロジー、断片材料、特大なテクスチャ、無名のノード、またはターンテーブルで無害に見える幾何学に着目しても、ゲームレベルを繰り返すと高価になるとき、高価になることができます。
最適化は、生産終了時にボタンを1つだけではありません。シーケンスです。アセットが何をすべきかを定義し、そのアセットを代表的なシーンで測定し、廃棄物を取り除き、カメラが報酬を失い、配信ファイルを圧縮し、実際のデバイスで再びテストするのを簡素化します。
目標は、最も小さいファイルではありません。目標は、十分な速度をロードする信頼できる資産であり、シーン予算内でレンダリングし、デバッグが容易であり、意図したシルエットとマテリアル言語を通信します。
クイックリード
要点
- 隔離で見られるポリゴン数ではなく、完全なシーンのコンテキストでアセット予算を設定します。
- 圧縮を加える前に幾何学、隠された表面、過度な材料、変形および質の無駄を重複する修正して下さい。
- 幾何学の圧縮は移動サイズを減らします、しかしそれはオーバーリー複雑なメッシュを描画するランタイムのコストを取除いません。
- 編集可能なソースコードモデルを保ち、安全に交換できる別の配信GLBをエクスポートします。
最適化する前にブラウザーの読み込みを定義する
アセットのジョブから始まります。カメラに近いヒーローキャラクターは、背景のロックから異なる幾何学的およびテクスチャー処理を必要とするため、繰り返した50回繰り返されます。静的なランドマークは、すべてのフレームを変形させる必要がある、皮膚の敵よりも、より複雑なシルエットを許容することができます。
メッシュに触れる前に小さな受入シートを記述します。プロジェクト固有のガードレールとしてのみ範囲を使用して、プロファイリング後にそれらを精製します。これにより、チームは品質の普遍的な定義として任意の三角形のカウントを処理し、チームを維持します。
| 予算の区域 | 回答への質問 | 記録への証拠 |
|---|---|---|
| ビジュアルロール | カメラがどれだけ近いか、読みやすくなるか? | ほぼ、典型的な、遠く離れた場所の参照のスクリーンショット |
| シーン密度 | コピーや類似資産はいくつ表示されますか? | 代表的な最悪のシーン |
| レンダリング | メッシュとマテリアルが1つのインスタンスを追加して何回か渡しますか? | 呼び出しとレンダラの統計を前後に描画する |
| メモリ | ターゲットデバイス上のデコードされたテクスチャとジオメトリはどれくらい大きいですか? | テクスチャの寸法、フォーマット、およびデバイスメモリの観察 |
| 配達の配達 | プレイヤーがやり取りできる前にダウンロードしなければならないものは何ですか? | GLBサイズ、テクスチャペイロード、およびロードトレース |
実際のシーンでオリジナルモデルを測定
モデリングビューポートだけでは最適化しないでください。 タッチされていないアセットを同じレンダラー、照明設定、カメラ範囲、オブジェクト密度にインポートします。 自身がうまく機能するモデルは、予算を超えてクラウド化されたシーンをプッシュする可能性があります。
ベースラインを録音:ファイルサイズ、メッシュ、プリミティブカウント、素材のカウント、テクスチャ数、寸法、アニメーションクリップ、および表示されたレンダリング統計。3.jsは、描画コール、三角形、ポイント、ライン、幾何学、およびレンダリング情報を介してテクスチャーを明示します。これらの値は、すべてのデバイスレベルのコストを説明しない場合でも、リビジョンを比較するのに便利です。
数字と一緒に2つまたは3つのスクリーンショットをキャプチャします。 パフォーマンス測定は、変更されたことを伝えますが、ペアリングされた画像は、シルエット、シェーディング、UVシーム、または認識可能な機能が損傷するかどうかを明らかにします。
- コピー1枚と予想されるコピーの最大数をテストします。
- アニメーション、透明、影、ポスト加工を生産に使用して含める。
- 開発ノートパソコンだけに依存するのではなく、少なくとも1つの低電力のターゲットデバイスを使用してください。
- ベースラインGLBを続けて、後退を再現できます。
きれいな幾何学とシーン階層ファースト
生成モデルは、多くの場合、構造廃棄物の同じ種類を組み込まれている手動資産:モデル内の緩い部分、重複した表面、小さな切断されたコンポーネント、空のノード、非適用トランス、形状が要求するよりも遠いデンザー。 決定前の廃棄物を除去するので、単純に解決するクリーナーの問題があります。
アイデンティティを運ぶ機能を保護します。建物のために、それらは屋根線、戸方、および窓のリズムであるかもしれません。クリーチャーのために、それらはヘッド プロフィール、手、または付属品の形であるかもしれません。スクリーンに平らにとどまる区域は通常空を渡る輪郭よりより多くの幾何学を失います。
アセットがアニメーション化したら、すべてのメジャーな削減後に変形を検証します。メッシュは、バインドポーズで変更されず、ショルダー、膝、指、または顔の関節でまだ崩壊することができます。関節の周りの余分なサポートを予約し、実際のアニメーションクリップをテストしてください。回転プレビューだけでなく、。
作品の方向を平らにすることなく、ドローコールを削減
ブラウザシーンは、レンダラーが送信しなければならない部分を、単に三角形の数だけに分ける方法によって制限されます。 10個の材料を持つ10個の小さなメッシュは、同じ目に見える形状でメッシュに慎重に結合したよりも、より悪い配送資産になることができます。
常に一緒に移動するときに、同じ形状をインスタンス化し、同じシェーディングモデルを共有する材料を連結します。 もはや可視面に影響を与えない材料スロットを削除します。 これらの変更は、シーンの動作に従うべきです:ゲームプレイが独立して開く必要がある場合は、建物にドアを結合しないでください。
マテリアルリダクションは、アートの決定です。あらゆる面を1つのアトラスに組み合わせることで、投稿を保存したり、作者をしたり、アクションを移動したり、将来のバリアントを硬化させることもできます。透明ガラスやエンジャマイブサインなどの実際のレンダリングの必要性を伝え、生成されたファイルが断片化されたためだけ存在する分離を取り除きます。
テキストをランタイムの予算として扱います, だけでなく、単にイメージファイル
圧縮されたイメージは、ディスク上で小さく見えることができ、デコード後に実質的なGPUメモリを占める。 監査ピクセルの寸法、チャンネルの使用量、アルファ、カラースペース、そして実際にテクスチャがカバーするスクリーン領域の量。 背景のプロップは、クローズアップ文字と同じ解像度からほとんど恩恵を受けません。
ターゲットカメラの最も有用な詳細レベルにテクスチャをリサイズします。 互換性のあるグレースケールチャンネルをパックし、未使用のマップを削除し、材料が完全に不透明であるときにアルファを避け、繰り返しが許容されるタイルの材料を再使用します。 propsの家族にとって、共有されたアトラスまたはマテリアルライブラリは、一貫性とバッチを改善することができます。
KTX2/Basis のテクスチャデリバリーは、パイプラインとターゲットブラウザーがサポートしたときにネットワークと GPU コストを削減できます。 変換を視覚的な QA ステップとして扱います。 結果承認する前に、グラデーション、通常の詳細、透明エッジ、およびゲームプレイ距離で色のシフトを比較します。
ビジュアルQA後の納品GLBを圧縮
幾何学的、階層、材料、およびテクスチャが意図的である場合、配達圧縮を適用します。3.js GLTFLoaderは、対応するデコーダが構成されるとき、Draco圧縮幾何学、Meshopt圧縮されたメッシュ、およびKTX2のテクスチャを含む一般的なgTFパスをサポートしています。
完全なローディングの経験に基づいて圧縮を選択してください。より小さいダウンロードはデコーダーコードとCPU時間を必要とするので、ファイルサイズを単独で祝うのではなく、最初の有用なフレームに時間を比較します。メッシュの簡素化とジオメトリの圧縮は、異なる問題を解決します。単純化は、GPUプロセスを削減し、圧縮は主にそれらのデータがどのように移動し、保存されるかを削減します。
glTF Transform は、検査、検証、重複、プルーン、単純化、サイズ変更、テクスチャ変換、圧縮コマンドを提供します。そのドキュメントは、デフォルトの最適化パスがすべてのシーンにとって理想的ではないことを警告しています。これは、生産プリセットがバージョンアップされ、盲目ではなく見直しされるべき理由です。
ターゲットブラウザとデバイスで検証
グラフィブ検証パスを実行し、ゲームで使用される同じ生産パスを介して配送アセットをロードします。 コンソール警告、欠落したテクスチャ、フラップされたノーマル、壊れたアニメーション、色空間の違い、透明なソート、およびプレーヤーがシーンを離れるときに処分をチェックしてください。
サポートされているパフォーマンス層ごとに代表的なレベルをプロファイルします。安定したフレーム体験を観るだけでなく、繰り返したシーン変化後のメモリ成長、複数のモデルが一緒に表示されるときにスパイクを検査します。正しい結果は、明らかな視覚的損失なしでプロジェクトターゲットを満たすバージョンです。
交換テストで完了: アセットをゲームプレイコードを変更することなく新しいリビジョンに交換します。予測可能なノード名、ピボット、スケール、マテリアル慣習、およびコリジョンプロキシは、将来のAI生成されたバリアントをはるかに少なくして統合します。
- 出荷バンドの外側に編集可能な高デリテージソースを保持します。
- アセットでエクスポートと最適化の設定をバージョンアップします。
- ベースラインと最適化されたスクリーンショットをゲームプレイカメラ距離で比較します。
- 目に見えるアーティファクトや初期のやり取りを遅くする際、より小さいファイルを取り出します。
- 承認されたデリバリーモデルを次のアセットファミリーのテンプレートとしてドキュメント化します。
よくある質問
ブラウザゲームモデルの最高のポリゴンカウントは何ですか?
シーン密度、素材、アニメーション、影、ターゲットデバイスによりコストがかかっているため、ユニバーサルナンバーはありません。代表的なシーンからプロジェクト予算を設定し、各アセットをそのコンテキストに対して測定します。
Dracoの圧縮はフレームレートを改善しますか?
Dracoは主に幾何学の移動サイズを減らし、ダウンロードコストを向上することができます。モデルが解読した後、メッシュの簡素化や描画呼び出しの数を交換しません。
あらゆるAI生成モデルをGLBに変換すべきですか?
GLBは、ブラウザランタイム用の便利なデリバリーコンテナで、gTFをサポートしているが、選択はまだエンジンとパイプラインに依存します。 編集可能なソースフォーマットを別々に保持して、出荷されたファイルは生産のマスターになりません。
最初に最適化すべき点:ポリゴンやテクスチャ?
選択する前に両方を測定します。 いくつかのシーンでは、テクスチャメモリと材料のカウントドミナート、他の皮膚化された幾何学、影、または繰り返しメッシュがより大きなコストを作成します。
メッシュをひとつのオブジェクトにマージできますか?
動き、可視性、材料ニーズを共有する部品だけをマージします。 ドア、武器、破壊的な部分、およびアニメーションコンポーネントは、多くの場合、ゲームプレイのために独立していなければならない。
生成された3Dモデルのスタイルを維持するにはどうすればよいですか?
シンプルにモデルを認めるシルエット、比例、カラーブロック、およびマテリアルキューを特定します。 クローズアップレンダリングだけを判断するのではなく、実際のゲームプレイカメラでのリビジョンを比較します。
圧縮されたテクスチャはいつも悪化していますか?
いいえ、しかし、すべてのフォーマットと品質設定は異なるトレードオフを作成します。変換を承認する前に、ターゲットデバイス上の通常の、勾配、透明性、および小さな高コントラストの詳細を確認します。
最適化されたモデルをテストするにはどうすればよいですか?
最悪の代表的なシーンにロードし、配信サイズ、レンダリング統計、メモリ動作、およびベースラインでビジュアル出力を比較します。 サポートされている範囲で少なくとも1つの低電力デバイスでテストを繰り返します。
出典と参考資料
- 3.js GLTFLoader のドキュメント
Draco、Meshopt、KTX2パスを含む、gTF拡張とデコーダーの統合をサポート。
- 3.js WebGLレンダードキュメンテーション
コール、三角形、ポイント、ライン、幾何学、テクスチャなどのレンダー情報フィールド。
- glTF トランスフォーム CLI ドキュメント
検査、検証、剪定、簡素化、テクスチャ処理、およびgTFアセットの圧縮コマンド。
次のステップ

