Passer au contenu principal

XR8.FaceController.pipelineModule()

XR8.FaceController.pipelineModule()

Description

Crée un module de pipeline de caméra qui, lorsqu'il est installé, reçoit des rappels sur le démarrage de la caméra, les événements d'essai de la caméra et d'autres changements d'état. Ils sont utilisés pour calculer la position de la caméra.

Paramètres

Aucun

Retours

La valeur de retour est un objet mis à la disposition de onUpdate en tant que :

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

PropriétéTypeDescription
rotation{w, x, y, z}L'orientation (quaternion) de la caméra dans la scène.
position{x, y, z}Position de la caméra dans la scène.
intrinsèques[Number]Matrice de projection 4x4 à 16 dimensions avec colonne majeure qui donne à la caméra de la scène le même champ de vision que celui de la caméra rendue.
cameraFeedTextureWebGLTextureLa texture contenant les données d'alimentation de la caméra.

Événements distribués

faceloading: Se déclenche lorsque le chargement commence pour des ressources face AR supplémentaires.

faceloading.detail : {maxDetections, pointsPerDetection, indices, uvs}

PropriétéTypeDescription
maxDetectionsNombreNombre maximal de visages pouvant être traités simultanément.
pointsParDetectionNombreNombre de sommets qui seront extraits par visage.
indices[{a, b, c}]La liste des index dans le tableau des sommets qui forment les triangles du maillage demandé, comme spécifié avec meshGeometry dans XR8.FaceController.configure().
uvs[{u, v}]La liste des positions uv dans une carte de texture correspondant aux points de vertex renvoyés.

facescanning : Se déclenche lorsque toutes les ressources AR des visages ont été chargées et que le scan a commencé.

facescanning.detail : {maxDetections, pointsPerDetection, indices, uvs}

PropriétéTypeDescription
maxDetectionsNombreNombre maximal de visages pouvant être traités simultanément.
pointsParDetectionNombreNombre de sommets qui seront extraits par visage.
indices[{a, b, c}]La liste des index dans le tableau des sommets qui forment les triangles du maillage demandé, comme spécifié avec meshGeometry dans XR8.FaceController.configure().
uvs[{u, v}]La liste des positions uv dans une carte de texture correspondant aux points de vertex renvoyés.

facefound : Se déclenche lorsqu'un visage est trouvé pour la première fois.

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

PropriétéTypeDescription
idNombreUn identifiant numérique du visage localisé.
transformer{position, rotation, scale, scaledWidth, scaledHeight, scaledDepth}Informations sur la transformation du visage localisé.
sommets[{x, y, z}]Position des points du visage par rapport à la transformation.
normales[{x, y, z}]Direction normale des sommets, par rapport à la transformation.
points d'attachement{name, position: {x,y,z}}Voir XR8.FaceController.AttachmentPoints pour la liste des points d'attache disponibles. position est relative à la transformation.
uvsInCameraFrame[{u, v}]La liste des positions uv dans l'image de la caméra correspondant aux points de vertex renvoyés.

transform est un objet ayant les propriétés suivantes :

PropriétéTypeDescription
position{x, y, z}La position 3D du visage situé.
rotation{w, x, y, z}L'orientation locale en 3D du visage localisé.
échelleNombreFacteur d'échelle à appliquer aux objets attachés à ce visage.
largeur mise à l'échelleNombreLargeur approximative de la tête dans la scène, multipliée par l'échelle.
hauteur mise à l'échelleNombreHauteur approximative de la tête dans la scène, multipliée par l'échelle.
profondeur mise à l'échelleNombreProfondeur approximative de la tête dans la scène, multipliée par l'échelle.

faceupdated : Se déclenche lorsqu'un visage est trouvé ultérieurement.

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

PropriétéTypeDescription
idNombreUn identifiant numérique du visage localisé.
transformer{position, rotation, scale, scaledWidth, scaledHeight, scaledDepth}Informations sur la transformation du visage localisé.
sommets[{x, y, z}]Position des points du visage par rapport à la transformation.
normales[{x, y, z}]Direction normale des sommets, par rapport à la transformation.
points d'attachement{name, position: {x,y,z}}Voir XR8.FaceController.AttachmentPoints pour la liste des points d'attache disponibles. position est relative à la transformation.
uvsInCameraFrame[{u, v}]La liste des positions uv dans l'image de la caméra correspondant aux points de vertex renvoyés.

transform est un objet ayant les propriétés suivantes :

PropriétéTypeDescription
position{x, y, z}La position 3D du visage situé.
rotation{w, x, y, z}L'orientation locale en 3D du visage localisé.
échelleNombreFacteur d'échelle à appliquer aux objets attachés à ce visage.
largeur mise à l'échelleNombreLargeur approximative de la tête dans la scène, multipliée par l'échelle.
hauteur mise à l'échelleNombreHauteur approximative de la tête dans la scène, multipliée par l'échelle.
profondeur mise à l'échelleNombreProfondeur approximative de la tête dans la scène, multipliée par l'échelle.

facelost : Se déclenche lorsqu'un visage n'est plus suivi.

facelost.detail : { id }

PropriétéTypeDescription
idNombreUn identifiant numérique du visage localisé.

mouthopened : Se déclenche lorsque la bouche d'un visage suivi s'ouvre.

détail.mouthopened : { id }

PropriétéTypeDescription
idNombreUn identifiant numérique du visage localisé.

mouthclosed: Se déclenche lorsque la bouche d'un visage suivi se ferme.

détail de la bouche : { id }

PropriétéTypeDescription
idNombreUn identifiant numérique du visage localisé.

lefteyeopened: Se déclenche lorsque l'œil gauche d'un visage suivi s'ouvre.

lefteyeopened.detail : { id }

PropriétéTypeDescription
idNombreUn identifiant numérique du visage localisé.

lefteyeclosed: Se déclenche lorsque l'œil gauche d'un visage suivi se ferme.

lefteyeclosed.detail : { id }

PropriétéTypeDescription
idNombreUn identifiant numérique du visage localisé.

righteyeopened: Se déclenche lorsque l'œil droit d'un visage suivi s'ouvre.

righteyeopened.detail : { id }

PropriétéTypeDescription
idNombreUn identifiant numérique du visage localisé.

righteyeclosed: Se déclenche lorsque l'œil droit d'un visage suivi se ferme.

righteyeclosed.detail : { id }

PropriétéTypeDescription
idNombreUn identifiant numérique du visage localisé.

lefteyebrowraised: Se déclenche lorsque le sourcil gauche d'un visage suivi est relevé par rapport à sa position initiale lorsque le visage a été trouvé.

lefteyebrowraised.detail : { id }

PropriétéTypeDescription
idNombreUn identifiant numérique du visage localisé.

lefteyebrowlowered: Se déclenche lorsque le sourcil gauche d'un visage suivi est abaissé à sa position initiale lorsque le visage a été trouvé.

lefteyebrowlowered.detail : { id }

PropriétéTypeDescription
idNombreUn identifiant numérique du visage localisé.

righteyebrowraised: Se déclenche lorsque le sourcil droit d'un visage suivi est relevé par rapport à sa position lors de la recherche du visage.

righteyebrowraised.detail : { id }

PropriétéTypeDescription
idNombreUn identifiant numérique du visage localisé.

righteyebrowlowered: Se déclenche lorsque le sourcil droit d'un visage suivi est abaissé à sa position initiale lorsque le visage a été trouvé.

righteyebrowlowered.detail : { id }

PropriétéTypeDescription
idNombreUn identifiant numérique du visage localisé.

lefteyewinked: Se déclenche lorsque l'œil gauche d'un visage suivi se ferme et s'ouvre dans un délai de 750 ms alors que l'œil droit reste ouvert.

lefteyewinked.detail : { id }

PropriétéTypeDescription
idNombreUn identifiant numérique du visage localisé.

righteyewinked: Se déclenche lorsque l'œil droit d'un visage suivi se ferme et s'ouvre dans un délai de 750 ms alors que l'œil gauche reste ouvert.

righteyewinked.detail : { id }

PropriétéTypeDescription
idNombreUn identifiant numérique du visage localisé.

blinked: Se déclenche lorsque les yeux d'un visage suivi clignotent.

blinked.detail : { id }

PropriétéTypeDescription
idNombreUn identifiant numérique du visage localisé.

interpupillarydistance: Se déclenche lorsque la distance en millimètres entre les centres de chaque pupille d'un visage suivi est détectée pour la première fois.

distance interpupillaire.détail : {id, interpupillaryDistance}

PropriétéTypeDescription
idNombreUn identifiant numérique du visage localisé.
distance interpupillaireNombreDistance approximative en millimètres entre les centres de chaque pupille.

Exemple - ajout d'un module de pipeline

XR8.addCameraPipelineModule(XR8.FaceController.pipelineModule())