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
  • アクセサリー

    • 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
    • バージョン履歴
  • プラグインと 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
    • 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

Tiled ラスタライズ:LCC2 のもう 1 つのラスタライズのパス

LCC2 パイプラインには 2 種類のラスタライズの方式があり、Actor の Rasterizer プロパティで選択する。既定の Pipeline はエンジン自身のレンダリングパイプラインを使い、Tiled はプラグインが実装したタイル単位の compute のパスを使う。

Tiled は現時点では実験的機能であり、Pro 版に属する。App Key を登録して初めて有効になる。エディションとライセンス を参照する。

密度の高いシーンではフレームレートが明らかに向上するが、その効果は画面の内容とボトルネックの位置によって変わる。効果がわずかなシーンもあり、まったく変化しないシーンもある。有効にした後は 効果があるかを判断する の方法で実測して結果を確認する。常に速くなると思い込まないこと。

注:ここでいう「タイル」は画面ピクセルのタイルを指す。レンダリング にあるカメラの可視性でノードを読み込む「分割レンダリング」とは別のものである。前者はすでにビデオメモリにあるデータをどう描画するかを決め、後者はデータがどうビデオメモリに入るかを決める。両者は互いに独立しており、同時に有効にできる。

2 つのラスタライズ方式の違い

Pipeline(既定)Tiled
ラスタライズエンジンのレンダリングパイプラインに委ね、splat ごとにクアッドへ展開してエンジンがピクセルを塗るプラグイン独自の compute dispatch。可視 splat をまず画面のタイルに振り分け、タイル単位でシェーディングして合成する
ソートすべての可視 splat に対するグローバルソートを 1 回行う画面のタイルごとのセグメントソート。各セグメントはそのタイルに入る splat のみをソートする
成熟度長く使われてきた既定のパス実験的機能
ライセンス無償版で使用できるPro 版

効果は 2 か所から生まれる。ソートの範囲がグローバルから画面のタイル 1 つに狭まること、そしてピクセルが実際にそれを覆うタイルの中でのみ処理されるため、重なりのある領域での無駄なフィルが減ることである。

したがって効果は画面の内容と結びついている。splat の密度が高く画面上の重なりが多い場合は明らかであり、画面が疎な場合、あるいはフレームレートのボトルネックがそもそもソートとピクセルフィルにない場合は、観測できる変化がない。

見え方はどちらの方式でも同一である。Rasterizer の切り替えに他のパラメーターの変更は不要で、データの読み込み、LOD、クリッピングボリューム、ライティング、カラー設定には影響しない。

有効にする方法

Actor の Details パネルの XGrids カテゴリーで Rasterizer を Tiled に設定する。このプロパティは Render Mode の直後にあり、Render Mode が 3DGS のときのみ表示される。

Blueprint または C++ からセッターを呼ぶ。

LCC2Component->SetRasterizer(ELCC2Rasterizer::Tiled);

ゲッターは 2 つあり、用途が異なる。

メソッド返す値
GetRasterizer()パネルに保存されている選択
GetEffectiveRasterizer()ライセンスの判定を適用した後、実際に効いているラスタライズ

レンダリングのパスが本当に Tiled を通っているかを確認するには GetEffectiveRasterizer() を使う。

効果があるかを判断する

効果が保証されないため、切り替えの前後で実測する。方法は パフォーマンス最適化ガイド と同じである。

  1. テスト条件を固定する。同じ視点またはカメラ経路、同じ解像度と Screen Percentage、それ以外のパラメーターはすべて変更しない。
  2. 先にウォームアップを一度走らせ、初回のシェーダーコンパイルと初回のディスク読み取りを数値に混ぜ込まない。
  3. Pipeline の状態で stat unit の GPU フレーム時間を記録し、基準値にする。
  4. Rasterizer だけを変更し、同じ視点をもう一度測る。
  5. 代表的な視点をいくつか繰り返して測る。特に splat の密度がもっとも高く重なりがもっとも多い画面を測る。

GPU フレーム時間が下がらない場合、現在のボトルネックはこのパスが対象とする範囲の外にある。Pipeline のままにして、パフォーマンス最適化ガイドで本当のボトルネックの特定を続ける。

適用範囲

項目説明
パイプラインLCC2 パイプラインのみ。ALCCActor(.lcc)にはこのプロパティがない
形式.lcc2 / .sog / .spz / .ply のいずれでも使用できる
レンダリングモード3DGS モードのみ。点群モードはこのプロパティを無視し、常に Pipeline を使う
エンジンと RHIプラグイン自体と同じ対応範囲。D3D12 と Vulkan のどちらでも使用できる
複数ビューVR のステレオレンダリング、nDisplay、分割画面、SceneCapture のいずれにも対応する

ライセンスがない場合の動作

App Key を登録していない状態で Rasterizer を Tiled に設定しても、エラーにはならず読み込みが失敗することもない。レンダリングのパスが自動的に Pipeline にフォールバックする。パネルに保存された選択は上書きされないため、ライセンスを登録すればそのまま有効になり、設定し直す必要はない。

Tiled が本当に使われているかを見分けるには GetEffectiveRasterizer() の戻り値を読む。フォールバック時は Pipeline を返し、GetRasterizer() は依然として Tiled を返す。

注:パッケージ化してリリースする前にライセンスが有効であることを確認する。無効な場合、パッケージ出力物は無償版の動作に従い Pipeline を使う。

Pipeline のままにする場面

  • 点群レンダリングモードを使っている場合。このプロパティは効かないので設定する必要がない。
  • .lcc データを読み込んでいる場合。LCC パイプラインにはこのパスがない。
  • 無償版のプロジェクト。Tiled に設定してもフォールバックするので、既定のままのほうが分かりやすい。
  • 実測してフレーム時間が改善しない場合。
  • プロジェクトが納品検証の段階に入っている場合。実験的機能のパスは避けたほうがよい。

Tiled はレンダリング段階のコストを下げるものであり、読み込みとトラバースの処理を減らすものではない。ボトルネックがデータの読み込み側にある場合は、パフォーマンス最適化ガイド で先に読み込みと LOD に対処する。

前へ
レンダリング
次へ
画面調節