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 に実際の法線を与える

概要

ProxyMesh は LCC4Unreal の Pro 版の機能で、プロキシメッシュを配置することで実際の深度と法線の情報を与える。実際の形状シェーディングを持つ唯一の法線モードである。LCC2 パイプラインのすべての形式(.lcc2 / .sog / .spz / .ply)に適用できる。ライセンスの説明は エディションとライセンス を参照する。

注:ProxyMesh には有効なライセンスが必要である。未ライセンスの場合は自動的に Fixed モードにフォールバックする。

プロキシメッシュとは

3DGS データ自体は表面の法線を持たず、GBuffer にも書き込まないため、通常のライティング計算に参加できない。プロキシメッシュの役割は、3DGS と形状が一致するジオメトリを用意することである。プラグインはそこから深度、法線、および GBuffer 内のマテリアル属性を取得し、エンジンのライティングと後処理に渡す。このメッシュ自体は最終画面には現れない。

        3DGS データ                  プロキシメッシュ
   (カラー、不透明度)        (深度、法線、マテリアル属性)
           │                              │
           │                              ▼
           │                       GBuffer に書き込む
           │                              │
           │              ┌───────────────┴───────────────┐
           │              ▼                               ▼
           │      エンジンのライティング計算        GBuffer に依存する
           │  (ディレクショナルライト、ポイントライト、影)  後処理(反射、屈折など)
           │              │                               │
           │              └───────────────┬───────────────┘
           ▼                              ▼
       カラーの供給元  ──────────────▶  最終画面を合成
                                          │
                                          ▼
                              プロキシメッシュ自体は見えない

言い換えると、画面で見えるカラーは 3DGS に由来し、ライティングの表現はプロキシメッシュに由来する。

メッシュの入手方法に制限はない。プラグインはそのレンダリング結果だけを読み取り、どうやって作られたかは問わない。よくあるのは次のいくつかである。

入手方法説明
3DGS と一緒に生成された近似メッシュ撮影のワークフローで出力されるメッシュ。形状の一致度が最も高く、第一候補になる
3DGS から変換したメッシュサードパーティのツールで 3DGS から再構築したメッシュ
自分でモデリングしたメッシュDCC ソフトウェアで 3DGS の形状に合わせてモデリングしたもの。精密な制御が必要な場面に適する
基本ジオメトリの組み合わせCube や Plane などの基本メッシュで大まかな塊を作ったもの。建物や地面のような規則的な形状に適する

唯一の要件は、メッシュが 3DGS と空間的に形状が合っていることである。合っているほどライティングの表現が実際に近づく。ずれが大きすぎると、ライティングの方向が画面で見える形状と合わなくなる。

メッシュの精度は高くなくてよい。塊と向きが正しければ、面数の少ない簡略化したジオメトリで十分である。

マテリアルの役割

プロキシメッシュのマテリアル属性は GBuffer と一緒に読み取られるため、3DGS の表面がライティングにどう応答するかを決める。

基本的なライティングだけが必要な場合はホワイトボックスのマテリアルで足り、テクスチャは不要である。マテリアル属性に依存する効果を作る場合は、メッシュの該当箇所に対応する PBR マテリアルを使う必要がある。たとえば次のようなものである。

  • 水面の反射と屈折:水域の位置にメタリックとラフネスが適切な水面マテリアルを使う
  • 金属のハイライト:金属構造の位置に対応する Metallic と Roughness を与える
  • 粗い表面:高い Roughness で出るべきでないハイライトを抑える

マテリアル属性と実際の形状が合っていない場合、ライティングの結果が画面で見える 3DGS の見た目と合わなくなる。たとえば粗いはずの壁面に鏡面ハイライトが出るなどである。

素早い設定

ステップ 1:ProxyMesh Actor を配置する

  1. エディターで LCC4Unreal プラグインのパネルから ALCC2ProxyMesh Actor を追加する
  2. その StaticMeshComponent に StaticMesh を割り当てる(入手方法は問わない。前節を参照)
  3. ProxyMesh の位置を調整し、3DGS の内容と空間的に重なるようにする
ALCC2ProxyMesh Actor を配置する

シーンに ALCC2ProxyMesh Actor を配置する

ステップ 2:ProxyMesh モードを有効にする

  1. LCC2 パイプラインの Actor(ALCC2Actor / ASogActor / ASpzActor / APlyActor)を選択する
  2. Details パネルで LightMode を見つけて Lit モードに変更する
  3. Details パネルで LCC2Component の Lighting カテゴリーを見つける
  4. NormalMode を ProxyMesh に設定する
Lit を有効にして ProxyMesh 法線モードを選択する

Lit を有効にして NormalMode を ProxyMesh に設定する

ステップ 3:検証する

  • シーンのライティングの方向を変え、3DGS にセルフシャドウの効果が出るか観察する
  • プロキシメッシュが最終画面で非表示になっていることを確認する
ProxyMesh の実際の法線によるライティング効果

ProxyMesh が実際の法線を与えた後のライティング効果

ProxyMesh の使用例

ProxyMesh の設定とライティング効果のデモ

ProxyMesh の設定の流れとライティング効果

ALCC2ProxyMesh

プロキシ用の Actor で、LCC2 パイプラインの Actor と NormalMode = ProxyMesh の状態でペアにして使う。

プロパティ

プロパティ説明
StaticMeshComponentシーンの深度と法線を提供するスタティックメッシュ

既定のトランスフォーム

  • スケール (100, 100, 100):メッシュの既定の単位はメートル、UE はセンチメートル
  • 回転 (0, 180, 0):メッシュ生成のパイプラインと UE の前方軸の向きが逆であることを補正する

動作

  • StaticMesh が有効な場合、CustomDepth のレンダリングを自動的に有効にする
  • StaticMesh が空の場合、警告を記録して CustomDepth を無効にする

ライセンスの判定

ProxyMesh モードには Pro 版のライセンスが必要である。詳しくは エディションとライセンス を参照する。未ライセンスの場合は自動的に Fixed モードにフォールバックし、保存されているプロパティの値は変更されない。

実行時の切り替え

NormalMode は実行時に Blueprint または C++ から変更でき、次のフレームで反映される。

Blueprint での使い方

ProxyMesh を生成する

SpawnActor->Class: ALCC2ProxyMesh
→ StaticMeshComponent の StaticMesh を設定する
→ 位置を調整して 3DGS の内容に合わせる

モードを切り替える

LCC2Component->NormalMode = ProxyMesh

ベストプラクティス

  1. メッシュの被覆:プロキシメッシュが 3DGS の内容と同じ空間領域を覆うようにする。
  2. メッシュの精度:シーンジオメトリの簡略化した近似で足り、高い面数は不要である。
  3. 複数の Actor:複数の ALCC2ProxyMesh Actor を配置して異なる領域を覆える。
  4. 明示的なバインドは不要:ProxyMesh を特定の Actor にリンクする必要はなく、ペアリングは自動で行われる。
  5. 後方互換性:ProxyMesh を使わないプロジェクトの動作はアップグレード前とまったく同じで、追加のコストはない。

トラブルシューティング

ProxyMesh の効果が出ない

  • NormalMode が ProxyMesh に設定されているか確認する
  • ライセンスが有効であるか確認する
  • ProxyMesh Actor に有効な StaticMesh が割り当てられているか確認する
  • ProxyMesh が空間的に 3DGS の内容と重なっているか確認する

警告:"has a null StaticMesh"

ALCC2ProxyMesh Actor に StaticMesh を割り当てれば解決する。警告はスロットリングされ、インスタンスごとに 1 回だけ出力される。

最終画面にホワイトボックスのカラーが見える

  • 少なくとも 1 つの LCC2Component が ProxyMesh モードになっているか確認する
  • 深度の一致が厳しすぎる場合は LCC2.ProxyMeshDepthEpsilon を調整する

ライティングの結果が正しくない

  • プロキシメッシュの法線が実際のシーンジオメトリの妥当な近似になっているか検証する

影が近くにしか出ず、遠くで途切れる

エンジン自体の問題である。ProxyMesh Actor を選択し、StaticMeshComponent の Far Shadow をオフにしてから再度オンにすると、影が完全な状態に戻る。

前へ
サードパーティおよびエンジンプラグインとの連携
次へ
読み込みアニメーション