本文へスキップ

XR8.XrController.pipelineModule()

XR8.XrController.pipelineModule()`。

説明

カメラパイプラインモジュールを作成し、インストールすると、カメラの起動時、カメラプロセッシングイベント、その他の状態変化に関するコールバックを受け取ります。 これらはカメラの位置を計算するために使用される。

パラメータ

なし

{#returns}を返す。

戻り値は、onUpdate として利用可能なオブジェクトである:

processCpuResult.reality: { rotation, position, intrinsics, trackingStatus, trackingReason, worldPoints, realityTexture, lighting }.

プロパティタイプ説明
ローテーションw, x, y, z}`.シーン内のカメラの向き(クォータニオン)。
位置{x, y, z}`シーン内のカメラの位置。
インプリンシックス数字レンダリングされたカメラフィードと同じ視野をシーンカメラに与える、16次元の列長4x4の投影行列。
トラッキングステータス文字列LIMITED'またはNORMAL'`のいずれか。
トラッキング理由文字列UNSPECIFIED'またはINITIALIZING'`のいずれか。
ワールドポイントid、confidence、position: {x, y, z}}][{id、confidence、position: }]シーン内の位置で検出されたワールド内の点の配列。 XrControllerがワールドポイントを返すように設定されていて、trackingReason != 'INITIALIZING'`の場合のみ満たされる。
リアリティ・テクスチャWebGLTexture`カメラフィードデータを含むテクスチャ。
照明{exposure, temperature}`あなたの環境の照明の露出。 注:temperatureはまだ実装されていない。

派遣イベント

trackingStatus:XrController`が起動し、トラッキングステータスや理由が変更されたときに発生します。

reality.trackingstatus : { status, reason }.

プロパティタイプ説明
ステータス文字列LIMITED'またはNORMAL'`のいずれか。
理由文字列INITIALIZING' または 'UNDEFINED' のいずれか。

imageloading:検出画像のロードが開始されたときに発生します。

imageloading.detail : { imageTargets: {name, type, metadata} }

プロパティタイプ説明
名称文字列画像の名前。
タイプ文字列FLAT'、'CYLINDRICAL'、'CONICAL'`のいずれか。
メタデータオブジェクトユーザーのメタデータ。

imagescanning:すべての検出画像がロードされ、スキャンが開始されると発生します。

imagescanning.detail : { imageTargets:{名前、タイプ、メタデータ、ジオメトリ}。}

プロパティタイプ説明
名称文字列画像の名前。
タイプ文字列FLAT'、'CYLINDRICAL'、'CONICAL'`のいずれか。
メタデータオブジェクトユーザーのメタデータ。
ジオメトリーオブジェクトジオメトリデータを含むオブジェクト。 type=FLAT の場合:{scaledWidth, scaledHeight}, else if type=CYLINDRICAL or type=CONICAL: {height, radiusTop, radiusBottom, arcStartRadians, arcLengthRadians}`.

type = FLAT の場合、ジオメトリ:

プロパティタイプ説明
拡大幅番号シーン内の画像の幅(scaleを掛けた場合)。
スケールドハイト番号Scaleを掛けたときのシーン内の画像の高さ。

type= CYLINDRICAL または CONICAL の場合、ジオメトリ:

プロパティタイプ説明
高さ番号カーブしたターゲットの高さ。
半径トップ番号上部のカーブしたターゲットの半径。
底半径番号下部のカーブしたターゲットの半径。
アーク開始ラジアン番号ラジアン単位の開始角度。
弧長ラジアン番号ラジアン単位の中心角。

imagefound:画像ターゲットが最初に見つかったときに発生します。

imagefound.detail : { name、type、position、rotation、scale、scaledWidth、scaledHeight、height、radiusTop、radiusBottom、arcStartRadians、arcLengthRadians }

プロパティタイプ説明
名称文字列画像の名前。
タイプ番号FLAT'、'CYLINDRICAL'、'CONICAL'`のいずれか。
位置{x, y, z}`配置された画像の3次元位置。
ローテーションw, x, y, z}`.配置された画像の3次元の局所的な向き。
スケール番号この画像に添付されているオブジェクトに適用されるスケールファクター。

type = FLAT の場合:

プロパティタイプ説明
拡大幅番号シーン内の画像の幅(scaleを掛けた場合)。
スケールドハイト番号Scaleを掛けたときのシーン内の画像の高さ。

type= CYLINDRICAL または CONICAL の場合:

プロパティタイプ説明
高さ番号カーブしたターゲットの高さ。
半径トップ番号上部のカーブしたターゲットの半径。
底半径番号下部のカーブしたターゲットの半径。
アーク開始ラジアン番号ラジアン単位の開始角度。
弧長ラジアン番号ラジアン単位の中心角。

imageupdated:イメージターゲットの位置、回転、スケールが変更されたときに発生します。

imageupdated.detail : { name、type、position、rotation、scale、scaledWidth、scaledHeight、height、radiusTop、radiusBottom、arcStartRadians、arcLengthRadians }

プロパティタイプ説明
名称文字列画像の名前。
タイプ番号FLAT'、'CYLINDRICAL'、'CONICAL'`のいずれか。
位置{x, y, z}`配置された画像の3次元位置。
ローテーションw, x, y, z}`.配置された画像の3次元の局所的な向き。
スケール番号この画像に添付されているオブジェクトに適用されるスケールファクター。

type = FLAT の場合:

プロパティタイプ説明
拡大幅番号シーン内の画像の幅(scaleを掛けた場合)。
スケールドハイト番号Scaleを掛けたときのシーン内の画像の高さ。

type= CYLINDRICAL または CONICAL の場合:

プロパティタイプ説明
高さ番号カーブしたターゲットの高さ。
半径トップ番号上部のカーブしたターゲットの半径。
底半径番号下部のカーブしたターゲットの半径。
アーク開始ラジアン番号ラジアン単位の開始角度。
弧長ラジアン番号ラジアン単位の中心角。

imagelost:画像ターゲットが追跡されなくなったときに発生します。

imagelost.detail : { name, type, position, rotation, scale, scaledWidth, scaledHeight, height, radiusTop, radiusBottom, arcStartRadians, arcLengthRadians }.

プロパティタイプ説明
名称文字列画像の名前。
タイプ番号FLAT'、'CYLINDRICAL'、'CONICAL'`のいずれか。
位置{x, y, z}`配置された画像の3次元位置。
ローテーションw, x, y, z}`.配置された画像の3次元の局所的な向き。
スケール番号この画像に添付されているオブジェクトに適用されるスケールファクター。

type = FLAT の場合:

プロパティタイプ説明
拡大幅番号シーン内の画像の幅(scaleを掛けた場合)。
スケールドハイト番号Scaleを掛けたときのシーン内の画像の高さ。

type= CYLINDRICAL または CONICAL の場合:

プロパティタイプ説明
高さ番号カーブしたターゲットの高さ。
半径トップ番号上部のカーブしたターゲットの半径。
底半径番号下部のカーブしたターゲットの半径。
アーク開始ラジアン番号ラジアン単位の開始角度。
弧長ラジアン番号ラジアン単位の中心角。

meshfound:開始後またはrecenter()後にメッシュが最初に見つかったときに発生します。

xrmeshfound.detail : { id, position, rotation, geometry }.

プロパティタイプ説明
アイドル文字列セッション内で安定したメッシュのID。
位置{x, y, z}`配置されたメッシュの3次元位置。
ローテーションw, x, y, z}`.配置されたメッシュの3次元ローカル方向(クォータニオン)。
ジオメトリー{index, attributes}`生のメッシュ形状データを含むオブジェクト。 属性には位置と色の属性が含まれる。

ジオメトリ`は以下のプロパティを持つオブジェクトである:

プロパティタイプ説明
インデックスUint32Array`連続する3つの頂点が三角形を構成するメッシュの頂点。
属性[{name: 'position', array:Float32Array(), itemSize: 3}, {name: 'color', array:Float32Array(), itemSize: 3}].生のメッシュ形状データ。

meshupdated:最初に見つかったメッシュの位置や回転が変更されたときに発生します。

meshupdated.detail : { id, position, rotation }.

プロパティタイプ説明
アイドル文字列セッション内で安定したメッシュのID。
位置{x, y, z}`配置されたメッシュの3次元位置。
ローテーションw, x, y, z}`.配置されたメッシュの3次元ローカル方向(クォータニオン)。

meshlost:recelerが呼び出されたときに発生します。

xrmeshlost.detail : { id }.

プロパティタイプ説明
アイドル文字列セッション内で安定したメッシュのID。

projectwayspotscanning:すべてのプロジェクト場所がスキャン用にロードされたときに発生します。

projectwayspotscanning.detail : { ウェイスポット:[] }

プロパティタイプ説明
ウェイスポットオブジェクト位置情報を含む配列オブジェクト。

wayspots`は以下のプロパティを持つオブジェクトの配列である:

プロパティタイプ説明
アイドル文字列セッション内で安定している、このプロジェクトロケ地のID。
名称文字列プロジェクト・ロケーション名
イメージURL文字列このプロジェクトの場所の代表的な画像のURL。
タイトル文字列プロジェクト・ロケーションのタイトル
ラット番号このプロジェクトの場所の緯度
lng番号このプロジェクトの場所の経度。

projectwayspotfound:プロジェクト ロケーションが最初に見つかったときに発生します。

projectwayspotfound.detail : { name, position, rotation }.

プロパティタイプ説明
名称文字列プロジェクトの場所名。
位置{x, y, z}`プロジェクト・ロケーションの3Dポジション。
ローテーションw, x, y, z}`.プロジェクト位置の 3 次元ローカル方位(四元数)。

projectwayspotupdated:プロジェクト ロケーションの位置または回転が変更されたときに発生します。

projectwayspotupdated.detail : { name, position, rotation }.

プロパティタイプ説明
名称文字列プロジェクトの場所名。
位置{x, y, z}`プロジェクト・ロケーションの3Dポジション。
ローテーションw, x, y, z}`.プロジェクト位置の 3 次元ローカル方位(四元数)。

projectwayspotlost:プロジェクトの場所が追跡されなくなったときに発生します。

projectwayspotlost.detail : { name, position, rotation }.

プロパティタイプ説明
名称文字列プロジェクトの場所名。
位置{x, y, z}`プロジェクト・ロケーションの3Dポジション。
ローテーションw, x, y, z}`.プロジェクト位置の 3 次元ローカル方位(四元数)。

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

XR8.addCameraPipelineModule(XR8.XrController.pipelineModule())

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

const logEvent = ({name, detail}) => {
console.log(`Handling event ${name}, got detail, ${JSON.stringify(detail)}`).
}

XR8.addCameraPipelineModule({
name: 'eventlogger',
listeners: [
{event: 'reality.imageloading', process: logEvent},
{event: 'reality.imagescanning', process: logEvent},
{event: 'reality.imagefound', process: logEvent},
{event: 'reality.imageupdated', process: logEvent},
{event: 'reality.imagelost', process: logEvent},
],
})