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

    • PortalCam P1

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

    • Lixel K1

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

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

    • Lixel L2 Pro

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

      • 製品概要
      • デバイスの基本操作
      • デバイスのアクティベーションと接続
      • デバイス収集
      • 絶対座標点群データの取得
      • 付録
  • アクセサリー

    • Stick Light

      • 取り付けガイド
      • 基本操作
      • よくある質問
  • 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 とトラブルシューティング
    • LCC Studio Linux

      • 製品概要説明
      • 基本アーキテクチャマニュアル
      • インストールと展開説明書
      • コンテナ起動パラメータ説明書
      • CodeMeter オフラインライセンス展開説明書
      • APIコマンドセット
      • 付録-開発者データマニュアル
      • 付録-エラーコード一覧
      • シングルノードマルチGPUクラスタ展開QuickStart
    • 活用テクニック

      • 複数の大規模 3DGS モデルの統合ワークフロー
    • バージョン履歴
  • プラグインと SDK

    • Unreal

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

        • LixelStudio メッシュで 3DGS をリライティングする
      • API リファレンス

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

        • v3.4.0
        • 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
    • Unity

      • Unity SDK の概要
      • 技術的特徴
      • 開発環境の要件
      • PC クイックスタートガイド
      • プロジェクト設定の最適化ガイド
      • Pico 4 Ultra 開発ガイド
      • Pico 4 Ultra PC ストリーミングガイド
      • Quest 3 開発ガイド
      • Quest 3 PC ストリーミングガイド
      • OpenXR 開発ガイド
      • Pico 4 Ultra Business Streaming ガイド
      • 用語集
      • FAQ
      • お問い合わせ
      • 機能開発ガイド

        • 複数シーン混合レンダリング開発ガイド
        • 影の受光開発ガイド
        • リアルタイムライティング開発ガイド
        • マルチカメラレンダリング開発ガイド
        • 高解像度画像レンダリング開発ガイド
        • LCC / LCC2 データ形式互換性開発ガイド
        • 読み込みエフェクト開発ガイド
        • Mip レンダリングモード切り替え開発ガイド
        • エッジ・コーナースナップ開発ガイド
        • 投影デカール開発ガイド
        • ビデオ投影デカール開発ガイド
        • ハイライト開発ガイド
        • リアルタイムクリッピング開発ガイド
        • カラー調整開発ガイド
        • シーン Mesh データ取得開発ガイド
        • エディターモード開発ガイド
        • レンダリングパフォーマンスパラメータ設定ガイド
        • アプリケーションとデータの同梱パッケージ開発ガイド
        • コリジョンシステム開発ガイド
        • macOS 開発の権限問題ガイド
        • iOS デバイスのコンパイル・パッケージ化開発ガイド
      • API リファレンス

        • LCCManager
        • Renderer
        • データ型
      • 変更履歴

        • v2.3.0
        • v2.2.10
        • v2.2.0
        • v2.1.19
        • v2.0.14
    • Web

      • はじめに
      • レンダリング性能最適化ガイド
      • グラフィックス設定
      • よくある質問
      • API リファレンス

        • LCCRender::clearIndexDB
        • LCCRender::dispose
        • LCCRender::load
        • LCCRender::setCamera
        • LCCRender::unload
        • LCCRender::update
        • LCCObject::checkRenderNextFrame
        • LCCObject::clearRenderNextFrame
        • LCCObject::ecef2Prj
        • LCCObject::getBounds
        • LCCObject::getEnvInstancedMesh
        • LCCObject::getInstancedMesh
        • LCCObject::getLodInfos
        • LCCObject::getOriginPosition
        • LCCObject::getProjectionCoordinateSystemInfos
        • LCCObject::hasCollision
        • LCCObject::hasEnvironment
        • LCCObject::hasShcoef
        • LCCObject::intersectsCapsule
        • LCCObject::intersectsRayExt
        • LCCObject::intersectsRayFromOriginExt
        • LCCObject::intersectsSphere
        • LCCObject::lowerToBottom
        • LCCObject::prj2Ecef
        • LCCObject::raiseToTop
        • LCCObject::raycast
        • LCCObject::raycastFromOrigin
        • LCCObject::setAlpha
        • LCCObject::setClipBox
        • LCCObject::setClipPlane
        • LCCObject::setEndLod
        • LCCObject::setLodAutoLevelUp
        • LCCObject::setMaxDistance
        • LCCObject::setMaxNodeSplats
        • LCCObject::setMaxSplats
        • LCCObject::setOriginPosition
        • LCCObject::setPointsColor
        • LCCObject::setRenderState
        • LCCObject::setRotation
        • LCCObject::setScale
        • LCCObject::setSemantic
        • LCCObject::setSemanticColor
        • LCCObject::setSmooth
        • LCCObject::setStartLod
        • LCCObject::setTranslation
        • LCCObject::setVisible
        • LCCObject::togglePointsDisplayMode
        • LCCObject::useEnvironment
        • LCCObject::useShcoef
      • 更新履歴

        • v0.6.3
        • v0.6.2
        • v0.6.1
        • v0.6.0
        • v0.5.5
        • v0.5.4
        • v0.5.3
        • v0.5.2
        • v0.5.1
        • v0.5.0
        • v0.4.1
        • v0.4.0
        • v0.3.1
        • v0.3.0
        • v0.2.0

レンダリングパフォーマンスパラメータ設定ガイド

概要

性能レベルの異なるデバイスに適応するため、LCC Unity SDK は複数のレンダリングパフォーマンス設定パラメータを提供しています。これらは LCCManager クラスと Renderer クラスに分散しており、主に以下のメソッドが関係します。

クラスメソッド目的呼び出しタイミング
LCCManagerSetMaxBufferSplat最大 Buffer 容量を設定(GPU 上で一度だけ割り当て)任意の Renderer.Load() より前でなければならない
LCCManagerSetFullRenderSplat全量 / チャンクレンダリングの Splat 数閾値を設定Load() より前でなければならない
LCCManagerSetMaxRenderSplatsチャンクレンダリングで画面にレンダリングされる Splat 総数を設定チャンクレンダリング中はいつでも可
LCCManagerSetStartLod開始 LOD レベルを設定Load() 後の実行時に有効
LCCManagerSetDetailLevelレンダリング詳細レベルを設定(レンダリング精度の微調整)実行時に動的調整可
RendererSetRenderAll全量レンダリングを強制するかどうかを設定Load() より前でなければならない

注:

上記パラメータのうち、Splat 数関連のメソッド(SetMaxBufferSplat、SetFullRenderSplat、SetMaxRenderSplats)の単位はすべて 万 です。つまり渡した値 × 10000 = 実際の Splat 数です。

注:

SetMaxBufferSplat はレンダリングに利用可能な CPU メモリと GPU ビデオメモリの最大バッファ空間を設定し、SetMaxRenderSplats はチャンクストリーミングレンダリング中に画面にレンダリングされる Splat プリミティブの数を設定します。したがって、SetMaxRenderSplats で設定した値が SetMaxBufferSplat で設定した値を超えると、切り詰められます。

SDK のレンダリングモード

さまざまなデータとプラットフォームに適応するため、SDK には 3 つの主要なレンダリングモードがあります。パフォーマンスパラメータを正しく設定する前提として、レンダリングモードの理解が必要です。異なるパラメータは特定のモードでのみ有効になるためです。

  • SingleRender モード(デフォルト):主に PC/Mac で使用します。このモードでは複数の Renderer を作成できません。つまり一度にレンダリングできる LCC シーンは 1 つだけです。データ量が小さく要件を満たす場合、データは 全量レンダリング されます(全 LOD0 データが読み込まれ、動的 LOD 切り替えなし、最高のレンダリング品質)。LOD0 Splat プリミティブが全量レンダリング可能な総量を超える場合、データは チャンクレンダリング され、ランタイム動的 LOD ストリーミングレンダリング機構で超大規模シーンのレンダリングに適応します。
  • MultiRender モード:主に PC/Mac で使用します。このモードでは複数の LCC シーンのリアルタイム混合レンダリングが可能で、すべてのシーンデータが動的 LOD 機構で チャンクレンダリング されます。
  • チャンクレンダリングパス:モバイル(iOS / Android)、VR(Pico 4 / Quest 3)プラットフォーム、および PC/Mac の HTTP データソースでは、動的 LOD 機構を用いたチャンクレンダリングパスが使用されます。
SDK の 3 つのレンダリングモードと全量 / チャンクレンダリングパスの関係

SDK の 3 つのレンダリングモードと全量 / チャンクレンダリングパスの関係

全量レンダリングとチャンクレンダリング:

  • 全量レンダリング:全 LOD0 データを一度に読み込み・レンダリングし、最高の画質を実現します。PC/Mac の SingleRender モードで、LOD0 データ量が条件を満たす場合のみ有効になります。
  • チャンクレンダリング:レンダリングカメラのフラスタムに応じて LOD レベルデータを動的に読み込み、オンスクリーン Splat 数を制御し、ビデオメモリと性能が限られたハードウェア環境に適応します。

SDK のデフォルト値

各プラットフォームのデフォルト値、最小許容値、最大許容値は以下のとおりです(単位:万)。

項目デフォルト値最小許容値最大許容値備考
グローバル BufferPC/Mac: 3000
モバイル: 300
VR: 100
100PC/Mac: 4450
モバイル: 600
VR: 200
SetMaxBufferSplat() で制御
全量レンダリング閾値25001004450SetFullRenderSplat() で制御。PC/Mac SingleRender モードのみ有効
チャンクオンスクリーンレンダリング数PC/Mac: 2000
モバイル: 200
VR: 60
10——SetMaxRenderSplats() で制御。最大値はグローバル Buffer 量に制限
全量強制の有無なし————PC/Mac のみ有効、かつ SingleRender モードのみ

PC/Mac の構成方針

PC/Mac では、以下の品質階層に従ってパラメータを構成することを推奨します(Splat 数単位:万)。

階層グローバル Buffer全量レンダリング閾値チャンクオンスクリーン数StartLOD全量強制
極低3003003002なし
低1000100010001なし
中3000190019001なし
高3000250025000なし
極高3000300030000なし

実行時の階層切り替えに関する注意

  • 中 / 高 / 極高 の階層間で切り替える場合は、グローバル Buffer を変更せずに維持 でき、処理ロジックは非常にシンプルです。全量レンダリング閾値、オンスクリーンレンダリング数、StartLOD を設定するだけです。
  • 極低 / 低 の階層と他の階層の間で切り替える場合は、状況がより複雑です。グローバル Buffer が既に割り当てられている可能性があるため、元のグローバル Buffer を破棄してから新しい Buffer を作成する必要があります。この操作では、Dispose() ですべての Renderer を破棄して Buffer を解放し、その後 GetRender() で Renderer を再取得する必要があります。
  • 現時点の推奨:デフォルト階層を 高 に設定し、階層切り替え時はグローバル Buffer を変更せずに維持しますが、全量 / チャンクレンダリングの切り替えは処理します。

注意事項

  1. SetMaxBufferSplat() は最初、理想的には GetRender() の前に設定する必要があります。シーン実行後にこの値を設定した場合は、Dispose() ですべての Renderer を破棄してから Renderer を再取得しないと有効になりません。
  2. SetFullRenderSplat() は PC/Mac SingleRender モードのみ有効で、Load() の前に設定する必要があります。
  3. SetMaxRenderSplats() はすべてのチャンクレンダリングに適用され、いつでも設定できますが、SetMaxBufferSplat() より後でなければなりません(そのメソッドを呼び出す場合)。

レンダリングパフォーマンス API

SetMaxBufferSplat

// 戻り値: void
public void SetMaxBufferSplat(int _count)

最大 GPU Buffer 容量(Splat 数)を設定します。RenderCore パス(MultiRender / SingleRender チャンク)では、共有グローバル Buffer サイズを決定します。SingleRender の Full Load モードでは、実際のデータ量に応じて割り当てられ、この値を参照しません。一度だけ割り当て され、動的に変更できません。

パラメータ型説明
_countintグローバル統一 Buffer サイズ。3DGS Splat 数単位、単位:万

使用例:

lccManager.SetMaxBufferSplat(3000); // 3000 万ポイント(PC/Mac デフォルト)
lccManager.SetMaxBufferSplat(4450); // 4450 万ポイント(PC/Mac 最大)

説明:

  • 単位は「万」です。渡した値 × 10000 = 実際の Splat 数。
  • 任意の Renderer.Load() の前に呼び出す必要があります。さもないとエラーになり戻ります。
  • 先に SetPlatformType を呼び出す必要があります。
  • 容量が大きいほどビデオメモリ使用量が高くなります。必要に応じて設定してください。
  • プラットフォーム制限:PC/Mac 4450 万、Android/iOS 600 万、VR 200 万。最小 100 万。
  • デフォルト値:PC/Mac 3000 万、Android/iOS 300 万、VR 100 万。

SetFullRenderSplat

// 戻り値: void
public void SetFullRenderSplat(int _count)

PC/Mac SingleRender モードにおける全量レンダリングとチャンクレンダリングの Splat 数閾値を設定します。データの LOD0 Splat 数がこの値未満の場合、全量レンダリングパス(専用 GPU Buffer)を使用し、それ以外はチャンクレンダリングパスを使用します。

パラメータ型説明
_countint3DGS Splat 数。単位:万

使用例:

lccManager.SetFullRenderSplat(2500); // 2500 万ポイント

説明:

  • 単位は「万」です。
  • PC/Mac プラットフォームのみ対応。他のプラットフォームで呼び出すとエラーになり、直接戻ります。
  • 任意の Renderer.Load() の前に呼び出す必要があります。
  • 先に SetPlatformType を呼び出す必要があります。
  • 値の範囲 [100, 4450](つまり 100 万〜4450 万)。

SetMaxRenderSplats

// 戻り値: void
public void SetMaxRenderSplats(int _count)

チャンクレンダリングで毎フレーム画面にレンダリングされる Splat の最大数を設定します。Load() 後に動的に呼び出せ、SetMaxBufferSplat で設定した上限でクランプされます。SingleRender 全量レンダリングモードで呼び出しても効果はありません(警告をログ出力して直接戻ります)。

パラメータ型説明
_countint3DGS Splat 数。単位:万。最小 10 万、最大は SetMaxBufferSplat() で設定した Buffer サイズ以下

使用例:

lccManager.SetMaxRenderSplats(2000); // 2000 万ポイント

説明:

  • 単位は「万」です。渡した値 × 10000 = 実際の Splat 数。
  • 実行時に動的に調整できます。
  • SetMaxBufferSplat で設定した容量上限を超えてはいけません(超えた場合は自動でクランプされ、警告をログ出力します)。
  • SingleRender 全量レンダリングモードでは実行時調整に対応していません。

SetStartLod

// 戻り値: void
public void SetStartLod(int lod)

LOD 展開の開始点を設定します(0 始まり)。0 が最も細かく、数値が大きいほど粗いレベルになります。このメソッドは実行時に有効で、Load() 後に呼び出す必要があります。

パラメータ型説明
lodint開始 LOD レベル。範囲 [0, 10]、0 が最も細かい

使用例:

lccManager.SetStartLod(0);

説明:

  • チャンクレンダリングのみ有効。範囲 [0, 10]、超えた場合は自動でクランプされます。
  • 実際の有効上限はデータの totalLevels によって制限されます。
  • SDK は呼び出し後に即時反映します。

SetDetailLevel

// 戻り値: void
public void SetDetailLevel(float sse)

レンダリング詳細レベルを設定し、レンダリング精度の微調整に使用します。値が大きいほどレンダリングは細かくなり、パフォーマンスコストが高くなります。

パラメータ型説明
ssefloat細分割係数。範囲 [1, 100]。1 = 最も粗い(近距離でも細分化なし)、100 = 最も細かい(全レベルを最低まで細分化)

使用例:

lccManager.SetDetailLevel(50f); // 中精度

説明:

  • このパラメータはシーンの詳細を微調整するために使用され、チャンクレンダリングにのみ適用されます。デフォルトは 40、範囲 [1, 100]、超えた場合は自動でクランプされます。
  • 対数マッピングを使用します。低値域は変化に敏感で、高値域は緩やかに変化します。
  • 実行時に動的に調整できます。

SetRenderAll

// 戻り値: void
public void SetRenderAll(bool _renderAll)

Renderer クラスのメソッドです。この Renderer が全量レンダリングを強制するかどうかを設定し、Load() の前に呼び出す必要があります。PC/Mac SingleRender モードでのみ使用します。実行時に LOD0 データ量を 4450 万の上限と比較し、LOD0 < 4450 万なら LOD0 全データを直接レンダリングに使用します。LOD0 > 4450 万の場合、この設定は無効になり(Unity の最大 GBuffer に制限)、代わりにチャンクレンダリングを使用します。

パラメータ型説明
_renderAllbool全量レンダリングを強制するかどうか

使用例:

renderer.SetRenderAll(true);
renderer.Load(filePath, null, () => Debug.Log("全量読み込み完了"));

説明:

  • PC/Mac プラットフォームのみ対応。モバイル / VR で呼び出すと警告をログ出力して戻ります。
  • 設定は次の Load() 呼び出しで有効になり、現在読み込み済みのデータセットには影響しません。
  • IsRenderAll プロパティと併用して現在の状態を照会できます。