Zum Hauptinhalt springen

XR8.XrController.pipelineModule()

XR8.XrController.pipelineModule()`

Beschreibung

Erstellt ein Kamera-Pipeline-Modul, das, wenn es installiert ist, Rückrufe empfängt, wenn die Kamera gestartet wurde, Ereignisse zur Kameraprozessierung und andere Zustandsänderungen. Diese werden verwendet, um die Position der Kamera zu berechnen.

Parameter

Keine

Rückgabe

Rückgabewert ist ein Objekt, das für onUpdate als zur Verfügung gestellt wird:

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

EigentumTypBeschreibung
Rotation{w, x, y, z}Die Ausrichtung (Quaternion) der Kamera in der Szene.
Position{x, y, z}Die Position der Kamera in der Szene.
Intrinsics[Zahl]Eine 16-dimensionale spaltengroße 4x4-Projektionsmatrix, die der Szenekamera das gleiche Sichtfeld wie dem gerenderten Kamerabild gibt.
trackingStatusStringEine der Optionen 'LIMITED' oder 'NORMAL'.
trackingReasonStringEines von "UNSPECIFIED" oder "INITIALIZING".
worldPoints[{id, confidence, position: {x, y, z}}]`Ein Array von erkannten Punkten in der Welt an ihrer Position in der Szene. Nur ausgefüllt, wenn XrController so konfiguriert ist, dass er Weltpunkte zurückgibt und trackingReason != 'INITIALIZING'.
realitätTexturWebGLTexturDie Textur, die die Kamerafeed-Daten enthält.
Beleuchtung{exposure, temperature}Belichtung der Beleuchtung in Ihrer Umgebung. Anmerkung: Die Option "Temperatur" wurde noch nicht eingeführt.

Versendete Ereignisse

TrackingStatus: Wird ausgelöst, wenn "XrController" startet und sich der Status oder der Grund für die Verfolgung ändert.

reality.trackingstatus : { status, reason }`

EigentumTypBeschreibung
StatusStringEine der Optionen 'LIMITED' oder 'NORMAL'.
GrundStringEines von 'INITIALIZING' oder 'UNDEFINED'.

Bildladen: Wird ausgelöst, wenn das Laden des Erkennungsbildes beginnt.

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

EigentumTypBeschreibung
NameStringDer Name des Bildes.
TypStringEines von 'FLAT', 'CYLINDRICAL', 'CONICAL'.
MetadatenObjektBenutzer-Metadaten.

Bilder scannen: Wird ausgelöst, wenn alle Erkennungsbilder geladen wurden und das Scannen begonnen hat.

Imagescanning.detail : { imageTargets: {Name, Typ, Metadaten, Geometrie} }`

EigentumTypBeschreibung
NameStringDer Name des Bildes.
TypStringEines von 'FLAT', 'CYLINDRICAL', 'CONICAL'.
MetadatenObjektBenutzer-Metadaten.
GeometrieObjektObjekt mit Geometriedaten. Wenn type=FLAT:{scaledWidth, scaledHeight}, sonst bei type=CYLINDRICAL oder type=CONICAL: {Höhe, RadiusOben, RadiusUnten, arcStartRadians, arcLengthRadians}}

Wenn Typ = FLAT, Geometrie:

EigentumTypBeschreibung
skalierteBreiteNummerDie Breite des Bildes in der Szene, multipliziert mit dem Maßstab.
scaledHeightNummerDie Höhe des Bildes in der Szene, wenn sie mit dem Maßstab multipliziert wird.

Wenn type= CYLINDRICAL oder CONICAL, Geometrie:

EigentumTypBeschreibung
HöheNummerHöhe der gekrümmten Zielscheibe.
radiusTopNummerRadius der gekrümmten Zielscheibe am oberen Rand.
radiusBottomNummerRadius der gekrümmten Zielscheibe am unteren Rand.
arcStartRadianNummerStartwinkel in Radiant.
arcLengthRadiansNummerZentralwinkel in Radiant.

Bild gefunden: Wird ausgelöst, wenn ein Bildziel zum ersten Mal gefunden wird.

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

EigentumTypBeschreibung
NameStringDer Name des Bildes.
TypNummerEine von "FLAT", "CYLINDRICAL", "CONICAL".
Position{x, y, z}Die 3d-Position des georteten Bildes.
Rotation{w, x, y, z}Die lokale 3D-Ausrichtung des georteten Bildes.
SkalaNummerEin Skalierungsfaktor, der auf das an dieses Bild angehängte Objekt angewendet werden soll.

Wenn Typ = FLAT:

EigentumTypBeschreibung
skalierteBreiteNummerDie Breite des Bildes in der Szene, multipliziert mit dem Maßstab.
scaledHeightNummerDie Höhe des Bildes in der Szene, wenn sie mit dem Maßstab multipliziert wird.

Wenn type= CYLINDRICAL oder CONICAL:

EigentumTypBeschreibung
HöheNummerHöhe der gekrümmten Zielscheibe.
radiusTopNummerRadius der gekrümmten Zielscheibe am oberen Rand.
radiusBottomNummerRadius der gekrümmten Zielscheibe am unteren Rand.
arcStartRadianNummerStartwinkel in Radiant.
arcLengthRadiansNummerZentralwinkel in Radiant.

imageupdated: Wird ausgelöst, wenn ein Bildziel seine Position, Drehung oder Skalierung ändert.

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

EigentumTypBeschreibung
NameStringDer Name des Bildes.
TypNummerEine von "FLAT", "CYLINDRICAL", "CONICAL".
Position{x, y, z}Die 3d-Position des georteten Bildes.
Rotation{w, x, y, z}Die lokale 3D-Ausrichtung des georteten Bildes.
SkalaNummerEin Skalierungsfaktor, der auf das an dieses Bild angehängte Objekt angewendet werden soll.

Wenn Typ = FLAT:

EigentumTypBeschreibung
skalierteBreiteNummerDie Breite des Bildes in der Szene, multipliziert mit dem Maßstab.
scaledHeightNummerDie Höhe des Bildes in der Szene, wenn sie mit dem Maßstab multipliziert wird.

Wenn type= CYLINDRICAL oder CONICAL:

EigentumTypBeschreibung
HöheNummerHöhe der gekrümmten Zielscheibe.
radiusTopNummerRadius der gekrümmten Zielscheibe am oberen Rand.
radiusBottomNummerRadius der gekrümmten Zielscheibe am unteren Rand.
arcStartRadianNummerStartwinkel in Radiant.
arcLengthRadiansNummerZentralwinkel in Radiant.

Bildverlust: Wird ausgelöst, wenn ein Bildziel nicht mehr verfolgt wird.

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

EigentumTypBeschreibung
NameStringDer Name des Bildes.
TypNummerEine von "FLAT", "CYLINDRICAL", "CONICAL".
Position{x, y, z}Die 3d-Position des georteten Bildes.
Rotation{w, x, y, z}Die lokale 3D-Ausrichtung des georteten Bildes.
SkalaNummerEin Skalierungsfaktor, der auf das an dieses Bild angehängte Objekt angewendet werden soll.

Wenn Typ = FLAT:

EigentumTypBeschreibung
skalierteBreiteNummerDie Breite des Bildes in der Szene, multipliziert mit dem Maßstab.
scaledHeightNummerDie Höhe des Bildes in der Szene, wenn sie mit dem Maßstab multipliziert wird.

Wenn type= CYLINDRICAL oder CONICAL:

EigentumTypBeschreibung
HöheNummerHöhe der gekrümmten Zielscheibe.
radiusTopNummerRadius der gekrümmten Zielscheibe am oberen Rand.
radiusBottomNummerRadius der gekrümmten Zielscheibe am unteren Rand.
arcStartRadianNummerStartwinkel in Radiant.
arcLengthRadiansNummerZentralwinkel in Radiant.

Meshfound: Wird ausgelöst, wenn ein Netz zum ersten Mal gefunden wird, entweder nach dem Start oder nach einem recenter().

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

EigentumTypBeschreibung
idStringEine ID für dieses Netz, die innerhalb einer Sitzung stabil ist
Position{x, y, z}Die 3D-Position des lokalisierten Netzes.
Rotation{w, x, y, z}Die lokale 3D-Orientierung (Quaternion) des lokalisierten Netzes.
Geometrie{index, attributes}Ein Objekt, das rohe Netzgeometriedaten enthält. Attribute enthalten Positions- und Farbattribute.

Geometrie" ist ein Objekt mit den folgenden Eigenschaften:

EigentumTypBeschreibung
IndexUint32ArrayDie Scheitelpunkte des Netzes, wenn 3 zusammenhängende Scheitelpunkte ein Dreieck bilden.
Eigenschaften[{Name: 'Position', array: Float32Array(), itemSize: 3}, {name: 'color', array: Float32Array(), itemSize: 3}]Die Rohdaten der Netzgeometrie.

Meshupdated: Wird ausgelöst, wenn das erste Netz, das wir gefunden haben, seine Position oder Rotation ändert.

meshupdated.detail : { id, position, rotation }

EigentumTypBeschreibung
idStringEine ID für dieses Netz, die innerhalb einer Sitzung stabil ist
Position{x, y, z}Die 3D-Position des lokalisierten Netzes.
Rotation{w, x, y, z}Die lokale 3D-Orientierung (Quaternion) des lokalisierten Netzes.

Meshlost: Wird ausgelöst, wenn recenter aufgerufen wird.

xrmeshlost.detail : { id }`

EigentumTypBeschreibung
idStringEine ID für dieses Netz, die innerhalb einer Sitzung stabil ist

projectwayspotscanning: Wird ausgelöst, wenn alle Projektstandorte zum Scannen geladen wurden.

projectwayspotscanning.detail : { wayspots: [] }

EigentumTypBeschreibung
Wegweiser[Objekt]Ein Array von Objekten mit Standortinformationen.

wayspots" ist eine Reihe von Objekten mit den folgenden Eigenschaften:

EigentumTypBeschreibung
idStringEine ID für diesen Projektstandort, die innerhalb einer Sitzung stabil ist
NameStringName des Projektstandorts.
imageUrlStringURL zu einem repräsentativen Bild für diesen Projektstandort.
TitelStringTitel des Projektstandorts.
latNummerBreitengrad dieses Projektstandorts.
lngNummerLängengrad dieses Projektstandorts.

projectwayspotfound: Wird ausgelöst, wenn ein Projektstandort zum ersten Mal gefunden wird.

projektwayspotfound.detail : { name, position, rotation }`

EigentumTypBeschreibung
NameStringDer Name des Projektstandorts.
Position{x, y, z}Die 3d-Position des Projektstandorts.
Rotation{w, x, y, z}Die lokale 3D-Orientierung (Quaternion) des Projektstandorts.

projectwayspotupdated: Wird ausgelöst, wenn ein Projektstandort seine Position oder Drehung ändert.

projektwegspotupdated.detail : { name, position, rotation }`

EigentumTypBeschreibung
NameStringDer Name des Projektstandorts.
Position{x, y, z}Die 3d-Position des Projektstandorts.
Rotation{w, x, y, z}Die lokale 3D-Orientierung (Quaternion) des Projektstandorts.

projectwayspotlost: Wird ausgelöst, wenn ein Projektstandort nicht mehr verfolgt wird.

projektwayspotlost.detail : { name, position, rotation }`

EigentumTypBeschreibung
NameStringDer Name des Projektstandorts.
Position{x, y, z}Die 3d-Position des Projektstandorts.
Rotation{w, x, y, z}Die lokale 3D-Orientierung (Quaternion) des Projektstandorts.

Beispiel - Hinzufügen eines Pipeline-Moduls

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

Beispiel - versendete Ereignisse

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},
],
})