LCCRender::load
LCC データを読み込み、LCCObject を返します。
Web SDK は Three.js と CesiumJS エンジンに対応しています。対応するエンジンパラメータを渡して LCC モデルを読み込みます。
バージョン要件
SDK v0.2.0+
エンジンサポート
Three.js / CesiumJS
API
LCCRender::load(param: LoadOptions, successFunc: SuccessFunc, progressFunc: ProgressFunc, failureFunc: FailureFunc, preProcessFunc?: PreProcessFunc): LCCObject
パラメータ
param (Three.js)
| パラメータ | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
param.camera | THREE.PerspectiveCamera / THREE.OrthographicCamera | はい | - | Three.js カメラオブジェクト。 |
param.scene | THREE.Scene | はい | - | Three.js シーンオブジェクト。 |
param.renderLib | THREE | はい | - | Three.js ライブラリ参照。例: import * as THREE from 'three'。 |
param.renderLibWebgpu | typeof import('three/webgpu') | いいえ | - | Three.js WebGPU モジュール参照。例: import * as THREE_WEBGPU from 'three/webgpu'。 |
param.renderLibTSL | typeof import('three/tsl') | いいえ | - | Three.js TSL モジュール参照。例: import * as TSL from 'three/tsl'。 |
param.renderer | THREE.WebGLRenderer | はい | - | Three.js レンダラー。 |
param.dataPath | String / Object | はい | - | LCC データパス。文字列パス(.lcc / .lcc2 / トークン付き meta.lcc)またはパス記述オブジェクトに対応。 |
param.canvas | HTMLCanvasElement | はい | - | レンダリング用 Canvas 要素。renderer.domElement で取得可能。 |
param.appKey | String | いいえ | - | ウォーターマーク除去用の AppKey。 |
param.useEnv | Boolean | いいえ | - | 環境データを表示するかどうか。 |
param.useIndexDB | Boolean | いいえ | true | ローカルデータキャッシュを有効にするかどうか。SDK v0.5.0+ |
param.useLoadingEffect | Boolean | いいえ | false | ローディングエフェクトを有効にするかどうか。SDK v0.5.1+ |
param.loadingEffectCenter | { x: number, y: number, z: number } | いいえ | - | ローディングエフェクトの中心位置。SDK v0.5.1+ |
param.pointsColor | String | いいえ | 'default' | ポイントクラウドの表示スタイル:'default'(元の色)または 'rainbow'(標高色)。 |
param.modelMatrix | THREE.Matrix4 | いいえ | - | モデルマトリックス。SDK v0.5.2+ |
param.maxHostCacheSize | number | いいえ | - | ホストキャッシュサイズ。SDK v0.5.4+ |
param.maxGpuCacheSize | number | いいえ | - | GPU キャッシュサイズ。SDK v0.5.4+ |
param.usePrecisionRaycast | Boolean | いいえ | true(PC) | 高精度レイキャストを有効にする。PC ではデフォルト有効。モバイルでは非対応。SDK v0.6.3+ |
param (CesiumJS)
| パラメータ | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
param.camera | Cesium.Camera | はい | - | Cesium カメラオブジェクト。 |
param.scene | Cesium.Scene | はい | - | Cesium シーンオブジェクト。 |
param.renderLib | Cesium | はい | - | CesiumJS ライブラリ参照。例: import * as Cesium from 'cesium'。 |
param.dataPath | String / Object | はい | - | LCC データパス。文字列パス(.lcc / .lcc2 / トークン付き meta.lcc)またはパス記述オブジェクトに対応。 |
param.canvas | HTMLCanvasElement | はい | - | レンダリング用 Canvas 要素。viewer.scene.canvas で取得可能。 |
param.modelMatrix | Cesium.Matrix4 | いいえ | - | モデル変換マトリックス。RTK 測位データの場合は不要。 |
param.appKey | String | いいえ | - | ウォーターマーク除去用の AppKey。 |
param.useEnv | Boolean | いいえ | - | 環境データを表示するかどうか。 |
param.useIndexDB | Boolean | いいえ | true | ローカルデータキャッシュを有効にするかどうか。SDK v0.5.0+ |
param.useLoadingEffect | Boolean | いいえ | false | ローディングエフェクトを有効にするかどうか。SDK v0.5.1+ |
param.loadingEffectCenter | { x: number, y: number, z: number } | いいえ | - | ローディングエフェクトの中心位置。SDK v0.5.1+ |
param.pointsColor | String | いいえ | 'default' | ポイントクラウドの表示スタイル:'default'(元の色)または 'rainbow'(標高色)。 |
param.maxHostCacheSize | number | いいえ | - | ホストキャッシュサイズ。SDK v0.5.4+ |
param.maxGpuCacheSize | number | いいえ | - | GPU キャッシュサイズ。SDK v0.5.4+ |
param.usePrecisionRaycast | Boolean | いいえ | true(PC) | 高精度レイキャストを有効にする。PC ではデフォルト有効。モバイルでは非対応。SDK v0.6.3+ |
コールバック関数
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
successFunc | (model: any) => void | はい | モデル読み込み成功コールバック。パラメータは構築された mesh。 |
progressFunc | (progress: number) => void | はい | モデル読み込み進捗コールバック。パラメータは進捗率(0〜1)。 |
failureFunc | () => void | はい | モデル読み込み失敗コールバック。 |
preProcessFunc | (buffer: ArrayBuffer, filename: string) => Promise<{ data: ArrayBuffer; rawData: ArrayBuffer }> | いいえ | データ前処理コールバック。レンダリング前にデータを処理するために使用。SDK v0.5.0+ |
dataPath フォーマット
dataPath は 2 つの形式に対応しています:
方法 1:文字列パス(推奨)
LCC データパスを直接文字列で指定します:
.lccファイルのフルパス。例:http://example.com/data/xxxx.lcc。SDK v0.4.1+(推奨).lcc2ファイルのフルパス。例:http://example.com/data/xxxx.lcc2。SDK v0.6.0+(推奨)- トークン付きの
meta.lccファイルパス(暗号化データ用)。例:https://example.com/data/meta.lcc?token=xxx&other=xxx - ディレクトリパス(ディレクトリ内に
meta.lccファイルが必要)。例:https://example.com/data(非推奨)
const lccObject = LCCRender.load({
// ...other params
dataPath: 'http://example.com/data/xxxx.lcc',
}, successFunc, progressFunc, failureFunc);
方法 2:パス記述オブジェクト(SDK v0.5.0+)
オブジェクトを使用してすべてのファイルパスをカスタマイズし、暗号化に対応します。LCC フォーマットに適用されます。
ファイルパス記述フォーマット:
{
"fileName": {
"url": "xxxxxxxxxxxx",
"header": { "field1": "xxx", "field2": "yyy" } // Optional, added to HTTP request headers
}
}
例:
const dataPath = {
meta: { url: 'http://example.com/xxx/meta.lcc' },
index: { url: 'http://example.com/xxx/index.bin' },
data: { url: 'http://example.com/xxx/data.bin' },
environment: { url: 'http://example.com/xxx/environment.bin' },
collision: { url: 'http://example.com/xxx/collision.lci' },
shcoef: { url: 'http://example.com/xxx/shcoef.bin' },
};
const lccObject = LCCRender.load({
// ...other params
dataPath: dataPath,
}, successFunc, progressFunc, failureFunc);
戻り値
LCCObject — LCC モデルオブジェクト。レイキャスト、クリッピング、レンダリング制御などのインターフェースを提供します。
注意事項
- Three.js エンジンではレンダーループ内で
LCCRender.update()を呼び出す必要があります。 param.useSHパラメータは非推奨です。代わりにLCCObject.useShcoef()メソッドを使用してください。param.gpuAccelerationパラメータは非推奨です。- dataPath は
.lccフォーマット(SDK v0.4.1+)と.lcc2フォーマット(SDK v0.6.0+)に対応しています。
関連 API
LCCRender::unload()LCCRender::update()LCCRender::dispose()