Ir al contenido principal

XR8.HandController.pipelineModule()

XR8.HandController.pipelineModule()

Descripción

Crea un módulo de canalización de cámara que, cuando se instala, recibe llamadas de retorno sobre cuándo se ha iniciado la cámara, eventos de proceso de cámara y otros cambios de estado. Se utilizan para calcular la posición de la cámara.

Parámetros

Ninguno

Devuelve

El valor devuelto es un objeto puesto a disposición de onUpdate como:

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

PropiedadTipoDescripción
rotación{w, x, y, z}La orientación (cuaternión) de la cámara en la escena.
posición{x, y, z}La posición de la cámara en la escena.
intrínsecos[Número]Una matriz de proyección 4x4 de 16 dimensiones de columna mayor que proporciona a la cámara de la escena el mismo campo de visión que la alimentación de la cámara renderizada.
cameraFeedTextureWebGLTextureLa textura que contiene los datos de alimentación de la cámara.

Eventos enviados

Carga manual: Se dispara cuando comienza la carga para obtener recursos adicionales de AR manual.

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

PropiedadTipoDescripción
maxDeteccionesNúmeroEl número máximo de manos que se pueden procesar simultáneamente.
puntosPorDetecciónNúmeroNúmero de vértices que se extraerán por mano.
rightIndices[{a, b, c}]Índices en la matriz de vértices que forman los triángulos de la malla de la mano.
leftIndices[{a, b, c}]Índices en la matriz de vértices que forman los triángulos de la malla de la mano.

Escaneado manual: Se dispara cuando se han cargado todos los recursos AR manuales y ha comenzado la exploración.

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

PropiedadTipoDescripción
maxDeteccionesNúmeroEl número máximo de manos que se pueden procesar simultáneamente.
puntosPorDetecciónNúmeroNúmero de vértices que se extraerán por mano.
rightIndices[{a, b, c}]Índices en la matriz de vértices que forman los triángulos de la malla de la mano.
leftIndices[{a, b, c}]Índices en la matriz de vértices que forman los triángulos de la malla de la mano.

Mano encontrada: Se activa cuando se encuentra una mano por primera vez.

`handfound.detail : {id, transform, vertices, normales, attachmentPoints}``

PropiedadTipoDescripción
idNúmeroId numérico de la mano localizada.
transformar{position, rotation, scale}Transformar información de la mano localizada.
vértices[{x, y, z}]Posición de los puntos de la mano, relativa a la transformación.
normales[{x, y, z}]Dirección normal de los vértices, relativa a la transformación.
handKindNúmeroRepresentación numérica de la lateralidad de la mano localizada. Los valores válidos son 0 (sin especificar), 1 (izquierda) y 2 (derecha).
attachmentPoints{nombre, posición: {x,y,z}}Véase XR8.HandController.AttachmentPoints para consultar la lista de puntos de fijación disponibles. La posición es relativa a la transformación.

transform es un objeto con las siguientes propiedades:

PropiedadTipoDescripción
posición{x, y, z}La posición 3d de la mano localizada.
rotación{w, x, y, z}La orientación local 3d de la mano localizada.
escalaNúmeroFactor de escala que debe aplicarse a los objetos unidos a esta mano.

attachmentPoints es un objeto con las siguientes propiedades:

PropiedadTipoDescripción
nombreCadenaNombre del punto de fijación. Véase XR8.HandController.AttachmentPoints para consultar la lista de puntos de fijación disponibles.
posición{x, y, z}La posición 3d del punto de enganche en la mano localizada.
rotación{w, x, y, z}El cuaternión de rotación que rota el vector Y positivo al vector óseo del punto de fijación.
innerPoint{x, y, z}Punto interior de un punto de enganche. (ej. mano palma lado)
outerPoint{x, y, z}Punto exterior de un punto de enganche. (ej. dorso de la mano)
radioNúmeroEl radio de los puntos de fijación de los dedos.
minorRadiusNúmeroEl radio más corto desde la superficie de la mano hasta el punto de fijación de la muñeca.
majorRadiusNúmeroEl radio más largo desde la superficie de la mano hasta el punto de fijación de la muñeca.

manoactualizada: Se activa cuando se encuentra una mano.

`handupdated.detail : {id, transform, vertices, normales, attachmentPoints}``

PropiedadTipoDescripción
idNúmeroId numérico de la mano localizada.
transformar{position, rotation, scale}Transformar información de la mano localizada.
vértices[{x, y, z}]Posición de los puntos de la mano, relativa a la transformación.
normales[{x, y, z}]Dirección normal de los vértices, relativa a la transformación.
handKindNúmeroRepresentación numérica de la lateralidad de la mano localizada. Los valores válidos son 0 (sin especificar), 1 (izquierda) y 2 (derecha).
attachmentPoints{nombre, posición: {x,y,z}}Véase XR8.HandController.AttachmentPoints para consultar la lista de puntos de fijación disponibles. La posición es relativa a la transformación.

transform es un objeto con las siguientes propiedades:

PropiedadTipoDescripción
posición{x, y, z}La posición 3d de la mano localizada.
rotación{w, x, y, z}La orientación local 3d de la mano localizada.
escalaNúmeroFactor de escala que debe aplicarse a los objetos unidos a esta mano.

**Mano perdida: Se dispara cuando una mano deja de ser rastreada.

handlost.detail : { id }

PropiedadTipoDescripción
idNúmeroId numérico de la mano localizada.

Ejemplo: añadir el módulo

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