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

      • 製品概要
      • デバイスの基本操作
      • デバイスのアクティベーションと接続
      • デバイス収集
      • 絶対座標点群データの取得
      • 付録
  • 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

Renderer:レンダリングインスタンス

LCC のレンダリングインスタンスで、単一の 3DGS シーンのデータ読み込みとレンダリング制御を担当します。LCCManager.GetRender() で作成し、直接インスタンス化することはできません。

名前空間LCCCore

プロパティ

プロパティ型アクセス説明
TransformTransform読み取り専用レンダリングインスタンスがアタッチされている Transform コンポーネント
IsEnablebool読み取り専用レンダリングインスタンスがアクティブかどうか。デフォルト true
IsRenderAllbool読み取り専用全 LOD0 データをレンダリング中かどうか(ストリーミング / LOD 走査モードとの対比)。デフォルト false

メソッド

メソッドは目的別にグループ化されています。

  • データ読み込みとライフサイクル
  • ランタイム制御とクエリ

データ読み込みとライフサイクル

Load

public void Load(string _filePath, Action<float> _onProgress, Action _onComplete, Action<string> _onError = null)

3DGS データファイルを読み込みます。.lcc2(ローカルファイルまたは HTTP リモート)とネイティブ形式 .ply / .sog / .spz / .splat / .ksplat(ローカルファイルのみ)に対応します。

パラメータ型説明
_filePathstringデータファイルパス(ローカルパスまたは HTTP URL)
_onProgressAction<float>読み込み進捗コールバック。null 可
_onCompleteAction読み込み完了コールバック。null 可
_onErrorAction<string>読み込み失敗コールバック(省略可)。エラー説明をパラメータとして受け取ります

注:

  • _onComplete コールバックはデータが実際に GPU に載った後に発火します。
  • 影受光やエフェクト発動などの操作は _onComplete コールバック内で呼び出す必要があります。
  • ネイティブ形式は常に SingleRender 全量読み込みパス(LOD チャンクなし)を使用します。進捗は _onProgress、失敗は _onError で報告されます。
  • MultiRender モードでは HTTP データソースとネイティブ形式は許可されません。
  • HTTP は .lcc2 のみ対応します。ネイティブ形式はローカルパスのみ、かつ SingleRender モードのみです。
  • SetPlatformType() / SwitchRenderPass() / SetMainCamera() などの前提条件を先に完了する必要があります。
  • Load() を再度呼び出す前に Unload() または Dispose() を呼び出す必要があります。読み込み進行中に Load() を呼び出すと拒否され、_onError がトリガーされます。

例:

renderer.Load("D:/data/scene.lcc2",
    p => Debug.Log($"読み込み中 {p:P0}"),
    () => {
        Debug.Log("読み込み完了");
        lccManager.SetShadowReceive(true);
    });

Unload

public void Unload()

現在読み込み済みのデータを解放し、「作成済みだが未読み込み」の状態に戻します。インスタンスのマネージャー登録は保持されます。同じ Renderer インスタンスを Load → Unload → Load と繰り返し循環させて再利用できます。

注:

  • Dispose() との違い:マネージャー登録が削除されず、インスタンスを再利用できます。
  • Unload() 後、IsEnable は false です。Load() を再度呼び出すとすべてのデータ状態がリセットされます。
  • データ読み込み完了時にのみ実行されます。未読み込みまたは既に Dispose() 済みの場合は即座に戻ります。

例:

renderer.Unload();
renderer.Load(newFilePath, null, () => Debug.Log("再読み込みしました"));

Dispose

public void Dispose()

レンダリングインスタンスを破棄し、すべての GPU リソースとメモリを解放します。破棄後のインスタンスは使用できず、すべての公開メソッドが自動的に無効になります。

注:

  • 呼び出し後に LCCManager へ参照の削除を自動通知します。

例:

renderer.Dispose();
renderer = null;

ランタイム制御とクエリ

SetEnable

public void SetEnable(bool _enable)

レンダリングインスタンスのアクティブ状態を設定します。無効にするとレンダリングや LOD 選択に参加しません。

パラメータ型説明
_enableboolアクティブにするかどうか

注:

  • リソースを解放せず、いつでも再アクティブ化できます。

例:

renderer.SetEnable(false); // 非表示
renderer.SetEnable(true);  // 表示

SetAlpha

public void SetAlpha(float alpha)

現在の Renderer の独立した不透明度を設定します。プロセスレベルのグローバルアルファである LCCManager.SetAlpha() と異なり、この API は現在の Renderer にのみ影響します。最終アルファ = Splat カバレッジ × LCCManager のグローバルアルファ × この Renderer のアルファです。

パラメータ型説明
alphafloat現在の Renderer の独立不透明度。範囲 [0, 1]、超えた場合は自動でクランプ

注:

  • MultiRender / RenderCore パス(PC / Mac)でのみ有効です。そのパスでは各 Splat が renderID を持ち、シェーダーが renderID で Renderer ごとのアルファ配列をインデックスします。
  • FullRender / Mobile パスには renderID がないため、この API はそこで何もしません(値はキャッシュされ、後で RenderCore パスに切り替えた際に自動適用されます)。

例:

renderer.SetAlpha(0.5f);

SetRenderAll

public void SetRenderAll(bool _renderAll)

全量レンダリングモード(LOD0 データの全量レンダリング)を使用するかどうかを設定します。次の Load() 呼び出しで有効になり、現在読み込み済みのデータセットには影響しません。

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

注:

  • PC / Mac プラットフォームのみ対応。モバイル / VR では効果がありません。
  • 現在の状態は IsRenderAll プロパティで照会できます。

例:

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

SetColliderEnable

// 戻り値: bool。true=正常に設定、false=データにコライダーがないかインスタンスが非アクティブ
public bool SetColliderEnable(bool _enable)

コライダー機能を切り替えます。有効化すると、IntersectsSphere() / IntersectsCapsule() と RaycastMesh() が利用可能になります。

パラメータ型説明
_enableboolコライダーを有効にするかどうか

注:

  • データに Collider ノードが含まれている必要があります。含まれていない場合は false を返します。
  • Renderer がアクティブである必要があります。

例:

bool ok = renderer.SetColliderEnable(true);
if (!ok) Debug.LogWarning("データにコライダーが含まれていません");

SetEnvironment

public void SetEnvironment(bool _env)

環境データレンダリングを切り替えます。環境データは遠景を埋めるために使われる低精度の背景点群です。

パラメータ型説明
_envbool環境データをレンダリングするかどうか

注:

  • データに環境ノードが含まれている必要があります。
  • 環境データはメインデータの LOD システムから独立しています。

例:

renderer.SetEnvironment(true);

GetBounds

public void GetBounds(out Vector3 max, out Vector3 min)

レンダリング済みデータの軸平行バウンディングボックス(ワールド座標)を取得します。

パラメータ型説明
maxout Vector3バウンディングボックスの最大点(ワールド座標)
minout Vector3バウンディングボックスの最小点(ワールド座標)

注:

  • データが完全に読み込まれていない場合は Vector3.zero を返します。
  • カメラ配置や視野角計算に使用できます。

例:

renderer.GetBounds(out Vector3 max, out Vector3 min);
Vector3 center = (max + min) / 2f;
Vector3 size = max - min;

GetSourceType

// 戻り値: SourceType
public SourceType GetSourceType()

読み込み済みデータのソースタイプを取得します。SourceType を参照してください。

注:

  • データ未読み込み時は SourceType.None を返します。

GetDataType

// 戻り値: DataType
public DataType GetDataType()

読み込み済みデータのフォーマットタイプを取得します。DataType を参照してください。

注:

  • データ未読み込み時は DataType.None を返します。

GetMeta(ファイルパスから)

// 戻り値: bool。true=正常に読み取り
public bool GetMeta(string _filePath, out SplatMeta _metaData)

データを完全に読み込まずに、指定したファイルパスから 3DGS データのメタデータを読み取ります。

パラメータ型説明
_filePathstringデータファイルパス
_metaDataout SplatMeta出力メタデータ

注:

  • ローカルパスと HTTP URL に対応します。
  • ファイルヘッダーのメタデータのみを読み取り、点群データは読み込みません。
  • パスが空またはファイルが存在しない場合は false を返します。

例:

if (renderer.GetMeta(filePath, out SplatMeta meta))
{
    Debug.Log(meta.source);
    Debug.Log(meta.dataType);
}

GetMeta(読み込み済みデータから)

// 戻り値: bool。true=正常に読み取り
public bool GetMeta(out SplatMeta _metaData)

現在読み込み済みデータのメタデータを取得します。データの読み込みが完了していない場合は、ファイルパスからの読み取りを試みます。

パラメータ型説明
_metaDataout SplatMeta出力メタデータ

例:

if (renderer.GetMeta(out SplatMeta meta))
{
    Debug.Log(meta.source);
}

GetMeshBlockInfos

// 戻り値: List<LCCMeshBlockInfo>。コリジョン Mesh ブロックのメタデータ。Mesh がないか取得不可の場合は null
public List<LCCMeshBlockInfo> GetMeshBlockInfos()

全コリジョン Mesh ブロックのメタデータ(ID、ワールド / ローカルバウンディングボックス、頂点数、面数)を返します。ゼロ I/O・ゼロ解析で、メモリ上に既にあるメタデータのみを読み取ります。LCCMeshBlockInfo を参照してください。

注:

  • PC / Mac プラットフォーム + ローカルデータソースのみ。メインスレッドで呼び出す必要があります。
  • 典型的な使い方:まず各ブロックのワールドバウンディングボックスを取得し、必要な ID を選び、GetMeshes(ids) でそれらのブロックのみを読み取ります。
  • ネイティブ形式(PLY / SOG / SPZ / splat / ksplat)には Mesh がなく、null を返します(正常、ログなし)。

例:

var infos = renderer.GetMeshBlockInfos();
foreach (var info in infos)
{
    Debug.Log($"{info.id}: verts={info.vertexCount}, faces={info.faceCount}");
}

GetMeshes

// 戻り値: List<LCCMeshBlock>。全コリジョン Mesh ジオメトリデータ。取得不可の場合は null
public List<LCCMeshBlock> GetMeshes()

全コリジョン Mesh ブロックのジオメトリデータ(頂点 + 三角形インデックス、ローカル座標)を同期的に返します。これは重い操作(同期ディスク読み取り + 解析 + 割り当て)なので、一度呼び出して自分でキャッシュしてください。毎フレーム呼び出さないでください。LCCMeshBlock を参照してください。

注:

  • PC / Mac プラットフォーム + ローカルデータソースのみ。メインスレッドで呼び出す必要があります。
  • 大規模シーンでは、一度に大量のマネージメモリを割り当てるのを避けるため、GetMeshBlockInfos() で ID を選び + GetMeshes(ids) を使用します。
  • 1 ブロックの頂点数は 65535 を超える場合があるため、Mesh 構築前に mesh.indexFormat = IndexFormat.UInt32 を設定する必要があります。

例:

var meshes = renderer.GetMeshes();
foreach (var block in meshes)
{
    // block.vertices / block.triangles はオブジェクトのローカル座標系
}

GetMeshes(ID 指定)

// 戻り値: List<LCCMeshBlock>。指定 ID のコリジョン Mesh ジオメトリデータ。ヒットがない場合は null
public List<LCCMeshBlock> GetMeshes(IEnumerable<string> _ids)

指定した ID のコリジョン Mesh ブロックのジオメトリデータ(ローカル座標)を同期的に返します。ID は GetMeshBlockInfos() が提供します。

パラメータ型説明
_idsIEnumerable<string>対象ブロック ID の集合(GetMeshBlockInfos() が提供)

注:

  • 不明な ID は警告付きでスキップされます。重複 ID は重複排除されます(ディスクを繰り返し読み取りません)。戻り順は ID の走査順(重複排除後)です。
  • 入力が null、空、またはヒットなしの場合は警告付きで null を返します。
  • その他の制約は GetMeshes() と同じです。

例:

var ids = new List<string> { "block-0", "block-3" };
var meshes = renderer.GetMeshes(ids);