XGRIDSドキュメント
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • PortalCam

    • 製品概要
    • デバイスの基本操作
    • LCC Scan App の使用
    • メンテナンスとお手入れ
    • FAQ
  • Lixel K シリーズ

    • Lixel K1

      • 製品概要
      • デバイスの基本操作
      • デバイスのアクティベーションと接続
      • デバイス収集
      • 絶対座標のポイントクラウドデータを取得する
      • マップフュージョン
      • 典型的なシーンにおける経路計画の推奨
      • 注意事項
      • FAQ
    • Lixel K2

      • 製品概要
      • デバイスの基本操作
      • デバイスのアクティベーションと接続
      • デバイス収集
      • 絶対座標のポイントクラウドデータを取得
      • マップフュージョン
      • 典型的なシーンにおける経路計画の推奨
      • 注意事項
      • FAQ
  • Lixel L シリーズ

    • Lixel L2 Pro

      • 製品概要
      • デバイスの基本操作
      • デバイスのアクティベーションと接続
      • デバイス収集
      • 絶対座標のポイントクラウドデータを取得する
      • 実時計測機能
      • 付録
      • FAQ
  • Lixel Studio

    • バージョンと著作権
    • インストールとアクティベーション
    • ソフトウェアインターフェース
    • ファイル操作
    • プロジェクト処理
    • ツール
    • 2D 作図
    • 業界応用
    • 設定
    • デバイス接続
  • Lixel CyberColor

    • LCC Studio

      • はじめに
      • バージョンと更新
      • ダウンロードとインストール
      • インターフェース概要とナビゲーション
      • 再構築前の準備
      • モデル再構築
      • 単一モデル再構築
      • 地図合成
      • 空地融合
      • 航空撮影再構築
      • マイモデル
      • その他の機能
      • 設定とアカウント
      • Converter
      • 動画再構築
      • よくある質問 / FAQ
    • LCC Scene Editor

      • バージョンと更新
      • アカウントとサインイン
      • 製品概要とホーム画面
      • エディター画面
      • ナビゲーションモード
      • ファイル
      • 設定
      • 編集
      • ウィンドウ
      • グローバルツールバー
      • アセットとプロパティ
      • 左ツールバー
      • ビューポイント
      • ポータル
      • スカイボックス
      • アノテーション
      • 測定
      • フライスルー
      • シーンレポート
      • 3D レイアウト
      • ミニマップ
      • プレビューモード(Viewer)
      • ヘルプ
      • よくある質問(FAQ)
      • スポーンポイント
    • LCC Model Editor

      • バージョンと更新
      • ユーザーガイド
      • 概要とインターフェース
      • ファイル操作
      • セレクター
      • モデルの編集
      • 測定
      • カラーグレーディング
      • アセット管理
      • 設定とヘルプ
      • よくある質問
    • Capture Guide

      • 概要
      • 撮影デバイス概要
      • 一般的な撮影の原則
      • 屋内シーンの撮影
      • 屋外シーンの撮影
      • 大規模撮影(マップフュージョン)
      • 空地マップフュージョン撮影
      • オブジェクト撮影
      • 人物撮影
      • ビデオ再構築撮影
      • HD Enhancement
      • 制御点(Lixel P1)
      • FAQ とトラブルシューティング
    • バージョン履歴
  • プラグインと SDK

    • Unreal

      • 概要
      • クイックスタート - Windows
      • クイックスタート - Linux
      • クイックスタート - Quest3
      • エディションとライセンス
      • レンダリング
      • 画面調節
      • 法線とライティング
      • シーン編集
      • パフォーマンスパラメーター
      • パフォーマンス最適化ガイド
      • サードパーティおよびエンジンプラグインとの連携
      • プロキシメッシュ
      • 読み込みアニメーション
      • コリジョン
      • ナビゲーションシステム対応
      • Single layer water 対応
      • ローカライズ
      • よくある質問
      • トラブルシューティング
      • ログと診断
      • お問い合わせ
      • API リファレンス

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • SOG / SPZ / PLY Actors
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ULCCUtilLibrary
        • Enums
        • Structs
      • 更新履歴

        • v3.3.1
        • v3.0.0
        • v2.2.1
        • v1.0.0
        • v0.9.0
        • v0.8.0
        • v0.7.1
        • v0.6.1
        • v0.5.2
        • v0.4.1
        • v0.4.0
        • v0.3.0
        • v0.0.5
        • v0.0.4
        • v0.0.3
        • v0.0.2
        • v0.0.1

3DGS パフォーマンスパラメーターの項目別説明

本編では各パラメーターの働き、値、調整後の実際の効果を項目ごとに説明する。個別のパラメーターの意味を調べるときに使う。手順を追ってボトルネックを特定しチューニングする流れは パフォーマンス最適化ガイド を参照する。

各パラメーターの見出しの下の表に、所属グループ、値の範囲、既定値、対象パイプライン、反映方法を示す。対象パイプラインが「LCC」または「LCC2」の場合、そのパラメーターは対応するパイプラインでのみ有効になる。「共通」と記したものは両方のパイプラインで使用できる。パイプラインの概念は 概要 を参照する。

Actor パネルのパラメーター

Actor の Details パネルの Performance カテゴリーにあり、適用範囲でグループ分けされている。

  • Base グループ:両パイプライン共通。すべての LCC Actor がこのグループを持つ
  • パイプライン固有グループ:対応するパイプラインの Actor にのみ表示され、グループ名はパイプライン名と同じ。現在のバージョンでは LCC パイプラインのみ固有グループを持ち(グループ名 LCC)、LCC2 パイプラインの Actor は Base グループのみ表示する
Performance カテゴリーの Base グループのパラメーター

Base グループ:両パイプライン共通のパフォーマンスパラメーター

Performance カテゴリーの LCC グループのパラメーター

LCC グループ:LCC パイプラインの Actor のみこのグループを表示する

注:Performance カテゴリーの各パラメーターの左側にはチェックボックスがある。チェックしていない場合そのパラメーターはプラグイン内蔵の既定値を使い、入力した数値は反映されない。調整しても効果がないときは、まずチェックボックスがオンになっているか確認する。

Max Distance

グループ値の範囲既定値対象パイプライン反映方法
Base任意の正の整数300共通即時

最大レンダリング距離。単位はメートル。この距離を超えたノードはレンダリングに参加せず、読み込まれもしない。もっとも効果が直接的なパラメーターで、小さくするとトラバース、読み込み、アップロード、レンダリングのコストが同時に下がる。

小さくするとフレームレートが大きく向上し、メモリとビデオメモリの使用量も下がる。引き換えに遠くの内容が消え、境界部分で明らかな途切れが生じる。Range For Level と合わせて見る必要がある。最大距離がある Level に対応する距離より小さい場合、その Level とそれより遠い階層は使われない。

Max Splat Num

グループ値の範囲既定値対象パイプライン反映方法
Base0 ~ 10000(単位:万)3000共通即時

1 フレームあたりの最大レンダリング点数。トラバース終了後、遠い側から順に間引いて総点数をこの上限内に収める。これはハードなゲートであり、視野内にどれだけ内容があっても 1 フレームのレンダリング量がこの値を超えることはない。

小さくするとフレームレートの上限を固定でき、視界が開けたときのフレーム落ちを避けられる。引き換えに遠くのノードが破棄され、視点を回したときに遠景が欠けて見えることがある。大きすぎる値を入力すると、1 フレームで実際にレンダリングできる上限に自動的に制限される。

Level Factor

グループ値の範囲既定値対象パイプライン反映方法
Base0.01 ~ 201共通即時

Level 選択のスケール係数で、「どのくらい遠くから精度を落とし始めるか」を制御する。2 つのパイプラインで実装の仕組みが異なる。LCC パイプラインではグローバルな Range For Level の距離テーブルをスケールし、LCC2 パイプラインではスクリーンスペース誤差のしきい値をスケールする。効果の方向は同じである。

1 より大きくすると低精度の階層へ早めに切り替わり、ディテールが減ってパフォーマンスが上がる。1 より小さくすると精度を落とすのが遅くなり、画面は鮮明になるがコストが上がる。1 のままにしておくことを推奨し、パフォーマンスに実際の圧力があるときに小刻みに上げる。

Start Level

グループ値の範囲既定値対象パイプライン反映方法
Base0 ~ 200共通即時

開始 Level。使用できる最高精度を制限する。既定値 0 は最も精度の高い階層まで使えることを意味する。

1 以上に設定すると、近づいて観察しても最も細かい階層は読み込まれない。近くの画面はぼやけるが、読み込み量とビデオメモリ使用量が明らかに下がる。低スペックの端末やモバイルでは上げることを検討する。

End Level

グループ値の範囲既定値対象パイプライン反映方法
Base0 ~ 2020共通即時

終了 Level。使用できる最も粗い階層を制限する。既定値 20 は制限しないことを意味し、実際にはデータ自体の最も粗い階層まで使える。

小さくすると、データにより粗い階層があっても使われなくなり、遠くは EndLevel の階層に留まる。画面が欠けることはないが、実際に必要な量より多くの点をレンダリングするため、かえってパフォーマンスが下がる。したがって高速化の手段ではなく、通常は既定値 20 のままにする。

Max Load Collision Distance

グループ値の範囲既定値対象パイプライン反映方法
Base任意の正の整数300共通即時

コリジョンデータの最大読み込み距離。単位はメートル。コリジョンを有効にした場合のみ効く。

両パイプラインのコリジョンデータはいずれも分割読み込みである。カメラ周辺のこの距離内のコリジョンブロックのみを読み込み、カメラの移動に応じて動的に入れ替える。したがってこの値が、任意の時点で常駐するコリジョンデータ量を決める。

小さくすると Collision Data Usage のメモリ使用量と Update Collision の処理時間を直接下げられる。引き換えに遠くにコリジョンがなくなる。

ナビゲーションシステムと併用する場合は通常は大きくして、対象領域のコリジョンを一度にすべて読み込ませる。そうしないと実行時にコリジョンがカメラの移動に応じて更新され続け、ナビゲーションデータの再構築が継続的にトリガーされて明らかなカクつきの原因になる。詳しくは ナビゲーションシステム対応 を参照する。

Use Full Load

グループ値の範囲既定値対象パイプライン反映方法
Baseオン / オフオン共通データを再読み込み

全量レンダリングを許可するか。オンの場合、Level 0 の点数が Full Load Splat Number を超えなければ、データ全体を一度に読み込んでビデオメモリに常駐させ、フレームごとのトラバースとアップロードをスキップする。超える場合は必要に応じた読み込みにフォールバックする。

オンにすると小規模シーンのフレームレートがより安定し、ノードの境界やディテールの飛びがなくなる。引き換えにデータ全体がビデオメモリに常駐する。オフにすると常に必要に応じた読み込みになる。

オフにしたときのビデオメモリの挙動は 2 つのパイプラインで異なる。

  • LCC パイプラインはノードごとに個別にビデオメモリを割り当てるため、使用量が可視範囲に応じて変化する
  • LCC2 パイプラインのビデオメモリ buffer は予算に基づいて事前に割り当てられるため、使用量は可視範囲によって変化せず、変わるのは buffer 内に実際に詰め込まれるデータ量だけである

詳しくは レンダリング を参照する。

Full Load Splat Number

グループ値の範囲既定値対象パイプライン反映方法
Base任意の正の整数(単位:万)1500共通データを再読み込み

全量レンダリングを許可する Level 0 の点数の上限。

大きくするとより大きなシーンで全量レンダリングを使えるようになるが、ビデオメモリが足りることを確認する必要がある。小さくするとより多くのシーンが必要に応じた読み込みにフォールバックする。

Sort Factor

グループ値の範囲既定値対象パイプライン反映方法
LCC0.2 ~ 51LCC のみ即時

ソート頻度のスケール係数。グローバルな Sort Frequency For Level のテーブルに作用し、各 Level のノードをどのくらいの間隔で再ソートするかを制御する。

大きくするとソート回数が減ってパフォーマンスが上がるが、視点が変化したときの半透明の重なり順の更新が遅れ、一時的に前後関係が誤ることがある。小さくするとソートがより素早く反映されるがコストが上がる。1 のままにしておくことを推奨する。

Add Extra Preload Nodes

グループ値の範囲既定値対象パイプライン反映方法
LCCオン / オフオンLCC のみ即時

読み込みキューに追加のプリロードノードを加えるか。オンにすると視錐台の外側の一部のノードを事前に読み込む。

オンにすると視点を素早く回したときの画面端の穴が緩和されるが、引き換えにレンダリングが必要なノード数が増える。オフにするとノード数は少なくなるが、素早く回したときに端の欠けが見えやすくなる。

ProjectSettings のグローバル設定

ProjectSettings > Plugins > LCC4Unreal にある。これらの設定はシーン内のすべての LCC Actor に効き、Actor ごとに個別に設定することはできない。

LCC4Unreal のプロジェクトグローバル設定

ProjectSettings で LCC4Unreal のグローバルパラメーターを設定する

Language

カテゴリー値の範囲既定値対象パイプライン反映方法
GeneralFollow Editor / Always EnglishFollow Editor共通即時

プラグインの UI 言語。Follow Editor はエディターの言語設定に従い、Always English は常に英語にする。詳しくは ローカライズ を参照する。

AutoExposure Enable

カテゴリー値の範囲既定値対象パイプライン反映方法
LCCオン / オフオフ共通エディターの再起動が必要

自動露出を有効にするか。既定でオフになっているのは、自動露出によって 3DGS の明るさが視野の内容に応じて変動するためである。オンにすると画面の明るさがカメラの移動に応じて自動調整される。

SceneCaptureComponent Support

カテゴリー値の範囲既定値対象パイプライン反映方法
LCCオン / オフオンLCC のみ即時

SceneCapture で LCC の内容をレンダリングできるようにするか。

オンにすると SceneCapture 内で 3DGS が見えるようになるが、引き換えに Capture ごとに独立した視点として数えられ、トラバースのコストが増える。プロジェクトで SceneCapture を使わない場合はオフにするとこのコストを節約できる。

SingleLayerWater Support

カテゴリー値の範囲既定値対象パイプライン反映方法
LCCオン / オフオフLCC2 のみエディターの再起動が必要

3DGS が単層水マテリアルに遮られる場合に有効にする。

オンにすると水面で 3DGS が正しく表示されるようになるが、引き換えに水面のピクセルは Virtual Shadow Map による影の品質を失う。この項目はプロジェクトの DefaultEngine.ini に r.Water.SingleLayer.DepthPrepass を書き込む。詳しくは Single layer water 対応 を参照する。

Splat Number For Discard Per Node

カテゴリー値の範囲既定値対象パイプライン反映方法
LCC任意の正の整数5LCC のみデータを再読み込み

ノード内の点数がこの値を下回る場合、そのノードのデータを破棄する。index.bin を解析してノードを構築する際に判定する。データによっては点が 1 個か 2 個しかない断片的なノードが大量に存在し、これらのノードのスケジューリングコストはレンダリング上の価値をはるかに上回る。

大きくするとノードの総数が減り、トラバースと読み込みのコストが下がる。引き換えに破棄される点が増え、疎な領域で欠けが生じることがある。

アンチエイリアスの方式

カテゴリー値の範囲既定値対象パイプライン反映方法
AntiAliasingエンジンが対応するアンチエイリアスの方式下表を参照共通即時

アンチエイリアスはオブジェクトの縁の階段状のジャギーを取り除くために使う。通常のメッシュには明確なジオメトリの縁があってジャギーが目立つため、アンチエイリアスの処理が必要になる。3DGS は大量の半透明な splat が重なって構成されており、縁そのものがグラデーションになっているため、ジャギーはあまり目立たない。

4 つの設定は 2 つのパイプラインの 3DGS モードと点群モードにそれぞれ対応し、Actor 側の bAffectAntiAliasingMethod を有効にするとプラグインが自動的に適用する。

設定既定値対象
LCC1 Splat Anti-aliasing MethodFXAALCC パイプラインの 3DGS モード(深度なし)
LCC2 Splat Anti-aliasing MethodTSRLCC2 パイプラインの 3DGS モード(深度あり)
LCC1 Point Cloud Anti-aliasing MethodMSAALCC パイプラインの点群モード
LCC2 Point Cloud Anti-aliasing MethodTSRLCC2 パイプラインの点群モード

LCC パイプラインが既定で TSR / TAA を使わないのは、深度情報がない状態ではこの 2 つの方式がカメラの移動時に残像を生じさせるためである。

アンチエイリアスの GPU コストは低くなく、TSR は特に顕著である。シーンに 3DGS しかなく通常のメッシュがない場合は、対応する設定を None に変更してアンチエイリアスをオフにできる。多くの場合画質の損失はわずかで、フレームレートの改善はかなり大きい。シーンに通常のモデル、UI、ワイヤーフレームが混在する場合、オフにするとこれらの内容の縁に明らかなジャギーが出る。

各方式の実際のコスト差は ProfileGPU で対象シーン上で実測する必要がある。解像度やハードウェアによって差が大きい。

注:両パイプラインの Actor がシーンに同時に存在する場合、最終的に効く方式は実行順序で決まるため、手動で一致させる必要がある。詳しくは 画面調節 を参照する。

Enable Post Process

カテゴリー値の範囲既定値対象パイプライン反映方法
Renderingオン / オフオン共通即時

LCC のピクセルをエンジンの後処理パイプラインに参加させるか。

オンの場合、3DGS がシーン内の通常のオブジェクトと一緒にトーンマッピング、Bloom、露出などの後処理を受け、見え方が統一される。オフの場合、3DGS は元のカラーを保ち、トーンマッピングおよびそれ以降の処理の影響を受けない。オフにするにはエンジン側で Alpha チャンネルの出力を有効にする必要がある。詳しくは 画面調節 を参照する。

Apply Tonemap Inverse

カテゴリー値の範囲既定値対象パイプライン反映方法
Renderingオン / オフオフ共通即時

カラースペース変換時に FilmToneMapInverse を適用するか。

オンにするとエンジンのトーンマッピングを先に打ち消し、最終画面でデータ本来のコントラストとカラーを復元する。オフにすると 3DGS と通常のオブジェクトが同じトーンマッピングを通る。

Quad Extent Threshold

カテゴリー値の範囲既定値対象パイプライン反映方法
Rendering0.001 ~ 0.10.006LCC2 のみ即時

splat のクアッドがガウスの中心から外側へ広がる距離を制御する。各 splat は 1 つのクアッドにラスタライズされ、クアッドが大きいほど覆われるピクセルが増える。

大きくするとクアッドがよりコンパクトになり、overdraw が減ってピクセルフィルのコストが下がる。ただし半透明な splat の縁が切り取られ、輪郭が硬くなったり縁が欠けたりすることがある。小さくすると縁がより完全になるが、フィルのコストが上がる。

Small Splat Threshold

カテゴリー値の範囲既定値対象パイプライン反映方法
Rendering0.0 ~ 4.00(オフ)LCC2 のみ即時

画面上のサイズがこのピクセル値より小さい splat を 1 ピクセルに折りたたみ、SH の計算をスキップする。

大きくすると遠くの細かい splat のシェーディング計算を大量にスキップでき、GPU コストが明らかに下がる。引き換えに遠景が視点に依存したカラーの変化を失い、粒状感やわずかなちらつきが出ることがある。

Frustum Cull Margin

カテゴリー値の範囲既定値対象パイプライン反映方法
Rendering1.0 ~ 2.01.2LCC2 のみ即時

splat 単位の視錐台カリングのマージン係数。

1.0 より大きくすると視錐台が外側に広がり、画面端の splat がカメラの回転時に突然現れるのを避けられる。値が大きいほど端の splat が多く残り、コストがわずかに上がる。1.0 に設定すると視錐台に厳密に従ってカリングされ、端で飛び出すような感じが出ることがある。

Max CPU Usage Percetage For Free

カテゴリー値の範囲既定値対象パイプライン反映方法
Usage50 ~ 10090共通即時

メモリ使用量がこの割合に達したときにノードの解放をトリガーする。

低くすると早めに解放が始まり、メモリ使用量はより控えめになるが、入れ替えが頻繁になる。高くするとより多くのメモリを使い、システムの上限に近づくとクラッシュのリスクがある。

CPU Release Percetage

カテゴリー値の範囲既定値対象パイプライン反映方法
Usage10 ~ 10030共通即時

解放がトリガーされるたびにクリアするデータの割合。

大きくすると 1 回で解放する量が増えてトリガー回数が減るが、解放されたデータは再度読み込む必要があるため、一度に大きなカクつきが生じやすい。100 に設定することは推奨しない。

Max GPU Usage Percetage For Free

カテゴリー値の範囲既定値対象パイプライン反映方法
Usage50 ~ 10080共通即時

ビデオメモリ使用量がこの割合に達したときに解放をトリガーする。解放時は最終レンダリング時刻、アクセス頻度、データサイズ、Level を総合してソートし、最も長く使われていないノードから解放する。高い Level のノードは保護される。

低くするほうが安全である。グラフィックスカードの使用可能なビデオメモリを超えると、ドライバーがデータをシステムメモリにスワップし、入れ替えよりはるかに深刻にフレームレートが下がる。

GPU Release Percetage

カテゴリー値の範囲既定値対象パイプライン反映方法
Usage10 ~ 10030共通即時

トリガーごとに解放するビデオメモリのデータの割合。判断の基準は CPU Release Percetage と同じ。

LCC2 GPU Memory Budget

カテゴリー値の範囲既定値対象パイプライン反映方法
Usage2048 ~ 81922048LCC2 のみエディターの再起動が必要

1 つのモデルの splat データのビデオメモリ予算。ソート buffer はこの予算に含まれず、視点ごとに常駐する splat 1 個あたり 16 バイトを追加で消費する。

大きくするとより多くのデータを同時にビデオメモリに常駐させられ、入れ替えによる穴やぼやけが減る。ただし予算はプラグインが要求する上限にすぎず、グラフィックスカードの実際に使えるビデオメモリを超えるとかえって遅くなる。単一ファイル形式で読み込める量は 4096 MB の時点で上限に達しており、それ以上上げても効果がない。詳しくは レンダリング を参照する。

Range For Level

カテゴリー値の範囲既定値対象パイプライン反映方法
Level固定 11 項目の浮動小数点配列15, 50, 80, 110, 140, 170, 190, 220, 250, 280, 350LCC のみ即時

各 Level に対応する距離範囲。単位はメートル。N 番目の項目は Level N が有効になる距離の境界を示す。

これは LOD の基準テーブルであり、直接変更するとすべての LCC Actor に影響する。通常はこれを直接変更せず、Actor 側の Level Factor で全体をスケールする。最大レンダリング距離とこのテーブルの関係には注意する。最大距離がある項目の数値より小さい場合、対応する Level は使われない。

Sort Frequency For Level

カテゴリー値の範囲既定値対象パイプライン反映方法
Level固定 11 項目の浮動小数点配列5, 15, 25, 40, 50, 70, 90, 110, 130, 150, 170LCC のみ即時

各 Level のソート頻度。Level が高く距離が遠いほど、再ソートの間隔が長くなる。

全体を大きくするとソートのコストが減るが、引き換えに遠くのノードの半透明の順序の更新がより遅れる。通常はこのテーブルを直接変更せず、Actor 側の Sort Factor で全体をスケールする。

注:LCC2 パイプラインはスクリーンスペース誤差で Level を選択するため Range For Level を使わない。またそのソートは統一 Buffer 内での splat 単位のグローバルソートであり、Sort Frequency For Level を使わない。

Default Traversal Type

カテゴリー値の範囲既定値対象パイプライン反映方法
TraversalSector / CircleSector共通エディターの再起動が必要

ノードのトラバース方式。Sector は視錐台で可視ノードを絞り込み、Circle は距離で円形に絞り込む。

Sector は視野内のノードのみを処理するためコストが低く、推奨値である。Circle はカメラ周囲一帯のノードをすべて計算に入れるためコストが高いが、カメラを素早く回したときにノードが視錐台に入った直後で読み込みが間に合わないという事態が起きない。複数ビューポートや高速に回転するシーンでは Circle を試してもよい。

スレッドプールの設定

カテゴリー値の範囲既定値対象パイプライン反映方法
Loader / Traversal / Sort / Exporter下表を参照下表を参照LCC のみエディターの再起動が必要

これらのスレッドプールは LCC パイプラインの読み込み、トラバース、ソートのモジュールが使う。LCC2 パイプラインのデータ読み込みはエンジン自身のスレッドプールを使うため、これらの設定の影響を受けない。例外はコリジョンデータの読み込みで、両パイプラインが Loader スレッドの設定を共有する。

スレッドプールはモジュールの初期化時に設定に従って作られるため、変更後はエディターを再起動しないと反映されない。

4 種類のスレッドにはそれぞれ「最大スレッド数」と「事前作成スレッド数」の 2 つの設定がある。

設定値の範囲既定値用途
Max Loader Thread Number5 ~ 10020データ読み込み
Pre-Create Loader Thread Number0 ~ 1005読み込みスレッドの事前作成
Max Traversal Thread Number5 ~ 10020ノードのトラバース
Pre-Create Traversal Thread Number0 ~ 1005トラバーススレッドの事前作成
Max Sort Thread Number5 ~ 10020ソート
Pre-Create Sort Thread Number0 ~ 1005ソートスレッドの事前作成
Max Exporter Thread Number5 ~ 10020データのエクスポート。実行時のレンダリングとは無関係
Pre-Create Exporter Thread Number0 ~ 1005エクスポートスレッドの事前作成

スレッド数は多ければよいわけではない。ボトルネックがディスク IO にある場合、読み込みスレッドを増やしても役に立たず、むしろ競合を悪化させる。stat xgrids で該当スレッドのキューが継続的に滞留していて、かつ CPU に余裕があるときにのみ上げることを検討する。

事前作成スレッドは実行時にその場でスレッドを作るコストを避けられるため、大きくするとシーンの読み込み開始直後の遅延を減らせる。

統計データ

コンソールコマンド stat xgrids で統計パネルを開く。または Actor パネルの Developer カテゴリーで Stats をクリックする。

stat xgrids のリアルタイムパフォーマンス統計パネル

stat xgrids でリアルタイムのパフォーマンス統計を確認する

パネルは 3 つのセクションに分かれる。

セクション列意味
Cycle counters (flat)CallCount、InclusiveAvg、InclusiveMax、ExclusiveAvg、ExclusiveMax処理時間の項目。Inclusive は子の呼び出しを含み、Exclusive は自身のみを計上する
Memory CountersUsedMax、Mem%、MemPool、Pool Capacityメモリとビデオメモリの使用量。Physical は物理メモリプールを示す
CountersAverage、Max、Min数量の項目

Cycle counters(処理時間の項目)

指標意味と使い方
Update Collisionコリジョンデータの更新にかかる時間。コリジョンを有効にした場合のみ値が出る。値が高い場合はコリジョンが頻繁に再構築されているので、コリジョンの読み込み距離を縮める
Update Camera Infoフレームごとにカメラ情報を収集する時間。ビューの数が多いほどこの項目が高くなるので、Camera Num と照らし合わせる
Component Updateコンポーネントのフレームごとの更新にかかる時間で、Game スレッドのコストに当たる。同一シーンに複数の LCC Actor があると積み上がる
Get Physics Trimesh Data物理システムにコリジョンの三角メッシュを提供する時間。物理のベイク中にのみ現れ、コリジョンによるカクつきの直接的な原因になる
Get From Cacheキャッシュヒットからデータを取得する時間。ディスク読み取りに比べると高速なパスなので、この項目の比率が高いのはむしろ良い兆候である

Memory Counters(メモリとビデオメモリ)

指標意味と使い方
CPU UsageLCC が使用するシステムメモリ。CPU Occupy Percentage と合わせて解放のしきい値に近づいているかを判断する
Collision Data Usageコリジョンデータが使用するメモリ。コリジョン距離が大きいほどこの項目が高くなり、コリジョンをオフにしたときにもっとも直接的に効く項目である
Position Data(For Raycast) Usageレイキャストに使う位置データのメモリ。レイキャストを行わない場合は 0 になる
GPU UsageLCC が使用するビデオメモリ。集計の基準は GPU Occupy Percentage とは異なる

Counters(数量の項目)

指標意味と使い方
Total Splatsデータセットの総点数。固定値
Level0 SplatsLevel 0 の点数。全量レンダリングの条件を満たすかを決める
Current Render Main Splats現在のフレームでレンダリングしている主体の点数。Max Splat Num と照らし合わせて点数の上限に達したかを判断できる
Current Render Nodes現在のフレームでレンダリングしているノード数
Total Nodesデータセットの総ノード数。固定値
Released GPU Node Numビデオメモリから解放済みのノード数。増え続けている場合は頻繁に入れ替えが起きており、通常はビデオメモリ予算の不足を意味する
Released CPU Node Numメモリから解放済みのノード数。判断の基準は上と同じ
GPU Occupy Percentageビデオメモリ使用率。Max GPU Usage のしきい値に近づくと解放が起きる
CPU Occupy Percentageメモリ使用率
Loader Thread Num読み込みスレッド数。キューが滞留していて CPU に余裕があるときにのみ上限を上げることを検討する
Pre-Loader Thread Numプリロードスレッド数
Collision Loader Thread Numコリジョン読み込みスレッド数
Sort Thread Numソートスレッド数
Traversal Thread Numトラバーススレッド数
Exporter Thread Numエクスポートスレッド数。実行時のレンダリングとは無関係
Camera Num更新に参加するカメラ数
Camera Num(Render)レンダリングに参加するビュー数。SceneCapture、分割画面、nDisplay のコストを判断する直接的な材料になる
Node Vector Pool Numノードベクタープール内のオブジェクト数。内部のオブジェクト再利用の統計に当たる
Valid Node Num有効なノード数。内部状態の統計に当たる

デバッグツール

ツール説明
Debug Node Bound八分木ノードの境界を可視化する。カラーが Level を示す(赤が最高精度、白が最低)。LOD パラメーターが期待どおりに効いているかを確認するのに使う
Statsリアルタイムのレンダリング統計を表示する。stat xgrids と同じ
FreezeRendering現在のレンダリング状態を凍結する。凍結後はカメラを動かしてもトラバースがトリガーされないため、現在のフレームで実際にどのノードが送信されたかを調べられる
前へ
シーン編集
次へ
パフォーマンス最適化ガイド