XR8.LayersController.pipelineModule()
XR8.LayersController.pipelineModule()
概要
セマンティックレイヤー検出機能を提供する、カメラパイプラインモジュールを作成します。
パラメータ
なし
戻り値
戻り値は、onUpdate
で次のように利用できます。
processCpuResult.layerscontroller: { rotation, position, intrinsics, cameraFeedTexture, layers }
プロパティ | タイプ | 説明 |
---|---|---|
rotation | {w, x, y, z} | シーン内のカメラの向き(クォータニオン)です。 |
position | {x, y, z} | シーン内のカメラの位置です。 |
intrinsics | [Number] | レンダリングされたカメラフィードと同じ視野をシーンカメラに与える、16次元の4x4の射影変換行列です。 |
cameraFeedTexture | WebGLTexture | カメラフィードデータを含むテクスチャーです。 |
layers | Record<String, LayerOutput> | Keyはレイヤー名で、LayerOutputはそのレイヤーに対するセマンティックレイヤー検出結果を含みます。 |
LayerOutput
は、以下のプロパティを持つオブジェクトです。
プロパティ | タイプ | 説明 |
---|---|---|
texture | WebGLTexture | レイヤーデータを含むテクスチャーです。 r、g、bチャンネルは、このピクセルにレイヤーが存在するかどうかの信頼度を示しています。 0.0はレイヤーが存在しないことを示し、1.0は存在することを示します。 なお、invertLayerMask がtrueに設定されている場合は、この値が反転されます。 |
textureWidth | Number | 返されたテクスチャの幅をピクセルで表します。 |
textureHeight | Number | 返されたテクスチャの高さをピクセルで表します。 |
percentage | Number | レイヤーに関連付けられているピクセルの割合を表します。 [0, 1]の範囲内の値を取ります。 |
ディスパッチされたイベント
layerloading: 追加のレイヤーセグメンテーションリソースの読み込みが開始したときに発生します。
layerloading.detail : {}
layerscanning: すべてのレイヤーセグメンテーションリソースが読み込まれ、スキャンが開始したときに発生します。 スキャン中のレイヤーごとに、1つのイベントがディスパッチされます。
layerscanning.detail : {name}
プロパティ | タイプ | 説明 |
---|---|---|
name | String | スキャン中のレイヤーの名前です。 |
layerfound: レイヤーが初めて見つかったときにディスパッチされます。
layerfound.detail : {name, percentage}
プロパティ | タイプ | 説明 |
---|---|---|
name | String | 見つかったレイヤーの名前です。 |
percentage | Number | レイヤーに関連付けられているピクセルの割合を表します。 |
例)パイプラインモジュールの追加
XR8.addCameraPipelineModule(XR8.LayersController.pipelineModule())