Zum Hauptinhalt springen

XR8.HandController.pipelineModule()

XR8.HandController.pipelineModule()

Beschreibung​

Erstellt ein Kamera-Pipelinemodul, das nach der Installierung Rückrufe empfängt, wenn die Kamera gestartet wurde, Ereignisse der Kameraprozessierung und andere Statusänderungen. Diese werden verwendet, um die Position der Kamera zu berechnen.

Parameter​

Keine

Returns​

Return-Wert ist ein Objekt, das onUpdate als zur VerfĂĽgung gestellt wird:

processCpuResult.handcontroller: { rotation, position, intrinsics, cameraFeedTexture }

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.
intrinsisch[Nummer]Eine 16-dimensionale 4x4-Spalten-Projektionsmatrix, die der Szenekamera das gleiche Sichtfeld wie dem gerenderten Kamerabild gibt.
cameraFeedTextureWebGLTexturDie Textur, die die Kamerafeed-Daten enthält.

Versendete Ereignisse​

handloading: Wird ausgelöst, wenn der Ladevorgang für zusätzliche Hand-AR-Ressourcen beginnt.

handloading.detail : {maxDetections, pointsPerDetection, rightIndices, leftIndices}

EigentumTypBeschreibung
maxDetectionsNummerDie maximale Anzahl von Händen, die gleichzeitig bearbeitet werden können.
pointsPerDetectionNummerAnzahl der Scheitelpunkte, die pro Hand extrahiert werden.
rightIndices[{a, b, c}]Indiziert das Scheitelpunkt-Array, das die Dreiecke des Handnetzes bildet.
leftIndices[{a, b, c}]Indiziert das Scheitelpunkt-Array, das die Dreiecke des Handnetzes bildet.

handscan: Wird ausgelöst, wenn alle Hand-AR-Ressourcen geladen wurden und das Scannen begonnen hat.

handscanning.detail : {maxDetections, pointsPerDetection, rightIndices, leftIndices}

EigentumTypBeschreibung
maxDetectionsNummerDie maximale Anzahl von Händen, die gleichzeitig bearbeitet werden können.
pointsPerDetectionNummerAnzahl der Scheitelpunkte, die pro Hand extrahiert werden.
rightIndices[{a, b, c}]Indiziert das Scheitelpunkt-Array, das die Dreiecke des Handnetzes bildet.
leftIndices[{a, b, c}]Indiziert das Scheitelpunkt-Array, das die Dreiecke des Handnetzes bildet.

handfound: Wird ausgelöst, wenn eine Hand zum ersten Mal gefunden wird.

handfound.detail : {id, transform, vertices, normals, attachmentPoints}

EigentumTypBeschreibung
idNummerEine numerische ID der gefundenen Hand.
transform{position, rotation, scale}Transformieren Sie die Informationen der gefundenen Hand.
vertices[{x, y, z}]Position der Handpunkte, relativ zur Transformation.
normals[{x, y, z}]Normale Richtung der Scheitelpunkte, relativ zur Transformation.
handKindNummerEine numerische Darstellung der Händigkeit der gefundenen Hand. Gültige Werte sind 0 (nicht spezifiziert), 1 (links) und 2 (rechts).
attachmentPoints{{>_head.html}}Siehe XR8.HandController.AttachmentPoints fĂĽr eine Liste der verfĂĽgbaren Befestigungspunkte. die Position ist relativ zur Transformation.

transform ist ein Objekt mit den folgenden Eigenschaften:

EigentumTypBeschreibung
position{x, y, z}Die 3d-Position der liegenden Hand.
rotation{w, x, y, z}Die lokale 3d-Ausrichtung der georteten Hand.
scaleNummerEin Skalierungsfaktor, der auf Objekte angewendet werden soll, die an dieser Hand befestigt sind.

attachmentPoints ist ein Objekt mit den folgenden Eigenschaften:

EigentumTypBeschreibung
nameStringDer Name des AnknĂĽpfungspunkts. Siehe XR8.HandController.AttachmentPoints fĂĽr eine Liste der verfĂĽgbaren Befestigungspunkte.
position{x, y, z}Die 3d-Position des Befestigungspunktes an der gefundenen Hand.
rotation{w, x, y, z}Die Rotations-Quaternion, die den positiven Y-Vektor zum Bone-Vektor des Anheftungspunkts dreht.
innerPoint{x, y, z}Der innere Punkt eines Befestigungspunktes. (z.B. Handflächenseite)
outerPoint{x, y, z}Der äußere Punkt eines Befestigungspunktes. (z. B. Handrücken)
radiusNummerDer Radius der Fingerbefestigungspunkte.
minorRadiusNummerDer kürzeste Radius von der Handoberfläche bis zum Befestigungspunkt am Handgelenk.
majorRadiusNummerDer längste Radius von der Handoberfläche bis zum Befestigungspunkt am Handgelenk.

handupdated: Wird ausgelöst, wenn eine Hand nachträglich gefunden wird.

handupdated.detail : {id, transform, vertices, normals, attachmentPoints}

EigentumTypBeschreibung
idNummerEine numerische ID der gefundenen Hand.
transform{position, rotation, scale}Transformieren Sie die Informationen der gefundenen Hand.
vertices[{x, y, z}]Position der Handpunkte, relativ zur Transformation.
normals[{x, y, z}]Normale Richtung der Scheitelpunkte, relativ zur Transformation.
handKindNummerEine numerische Darstellung der Händigkeit der gefundenen Hand. Gültige Werte sind 0 (nicht spezifiziert), 1 (links) und 2 (rechts).
attachmentPoints{{>_head.html}}Siehe XR8.HandController.AttachmentPoints fĂĽr eine Liste der verfĂĽgbaren Befestigungspunkte. die Position ist relativ zur Transformation.

transform ist ein Objekt mit den folgenden Eigenschaften:

EigentumTypBeschreibung
position{x, y, z}Die 3d-Position der liegenden Hand.
rotation{w, x, y, z}Die lokale 3d-Ausrichtung der georteten Hand.
scaleNummerEin Skalierungsfaktor, der auf Objekte angewendet werden soll, die an dieser Hand befestigt sind.

handlost: Wird ausgelöst, wenn eine Hand nicht mehr geortet wird.

handlost.detail : { id }

EigentumTypBeschreibung
idNummerEine numerische ID der gefundenen Hand.

Beispiel - Hinzufügen eines Pipeline-Moduls​

XR8.addCameraPipelineModule(XR8.HandController.pipelineModule())