メインコンテンツへスキップ

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の射影変換行列です。
cameraFeedTextureWebGLTextureカメラフィードデータを含むテクスチャーです。
layersRecord<String, LayerOutput>Keyはレイヤー名で、LayerOutputはそのレイヤーに対するセマンティックレイヤー検出結果を含みます。

LayerOutputは、以下のプロパティを持つオブジェクトです。

プロパティタイプ説明
textureWebGLTextureレイヤーデータを含むテクスチャーです。 r、g、bチャンネルは、このピクセルにレイヤーが存在するかどうかの信頼度を示しています。 0.0はレイヤーが存在しないことを示し、1.0は存在することを示します。 なお、invertLayerMaskがtrueに設定されている場合は、この値が反転されます。
textureWidthNumber返されたテクスチャの幅をピクセルで表します。
textureHeightNumber返されたテクスチャの高さをピクセルで表します。
percentageNumberレイヤーに関連付けられているピクセルの割合を表します。 [0, 1]の範囲内の値を取ります。

ディスパッチされたイベント

layerloading: 追加のレイヤーセグメンテーションリソースの読み込みが開始したときに発生します。

layerloading.detail : {}

layerscanning: すべてのレイヤーセグメンテーションリソースが読み込まれ、スキャンが開始したときに発生します。 スキャン中のレイヤーごとに、1つのイベントがディスパッチされます。

layerscanning.detail : {name}

プロパティタイプ説明
nameStringスキャン中のレイヤーの名前です。

layerfound: レイヤーが初めて見つかったときにディスパッチされます。

layerfound.detail : {name, percentage}

プロパティタイプ説明
nameString見つかったレイヤーの名前です。
percentageNumberレイヤーに関連付けられているピクセルの割合を表します。

例)パイプラインモジュールの追加

XR8.addCameraPipelineModule(XR8.LayersController.pipelineModule())