XR8.FaceController.pipelineModule()
XR8.FaceController.pipelineModule()
Description​
Creates a camera pipeline module that, when installed, receives callbacks on when the camera has started, camera proessing events, and other state changes. These are used to calculate the camera's position.
Parameters​
None
Returns​
Return value is an object made available to onUpdate
as:
processCpuResult.facecontroller: { rotation, position, intrinsics, cameraFeedTexture }
Property | Type | Description |
---|---|---|
rotation | {w, x, y, z} | The orientation (quaternion) of the camera in the scene. |
position | {x, y, z} | The position of the camera in the scene. |
intrinsics | [Number] | A 16 dimensional column-major 4x4 projection matrix that gives the scene camera the same field of view as the rendered camera feed. |
cameraFeedTexture | WebGLTexture | The texture containing camera feed data. |
Dispatched Events​
faceloading: Fires when loading begins for additional face AR resources.
faceloading.detail : {maxDetections, pointsPerDetection, indices, uvs}
Property | Type | Description |
---|---|---|
maxDetections | Number | The maximum number of faces that can be simultaneously processed. |
pointsPerDetection | Number | Number of vertices that will be extracted per face. |
indices | [{a, b, c}] | The list of indexes into the vertices array that form the triangles of the requested mesh, as specified with meshGeometry in XR8.FaceController.configure() . |
uvs | [{u, v}] | The list of uv positions into a texture map corresponding to the returned vertex points. |
facescanning: Fires when all face AR resources have been loaded and scanning has begun.
facescanning.detail : {maxDetections, pointsPerDetection, indices, uvs}
Property | Type | Description |
---|---|---|
maxDetections | Number | The maximum number of faces that can be simultaneously processed. |
pointsPerDetection | Number | Number of vertices that will be extracted per face. |
indices | [{a, b, c}] | The list of indexes into the vertices array that form the triangles of the requested mesh, as specified with meshGeometry in XR8.FaceController.configure() . |
uvs | [{u, v}] | The list of uv positions into a texture map corresponding to the returned vertex points. |
facefound: Fires when a face first found.
facefound.detail : {id, transform, vertices, normals, attachmentPoints}
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located face. |
transform | {position, rotation, scale, scaledWidth, scaledHeight, scaledDepth} | Transform information of the located face. |
vertices | [{x, y, z}] | Position of face points, relative to transform. |
normals | [{x, y, z}] | Normal direction of vertices, relative to transform. |
attachmentPoints | {name, position: {x,y,z}} | See XR8.FaceController.AttachmentPoints for list of available attachment points. position is relative to the transform. |
uvsInCameraFrame | [{u, v}] | The list of uv positions in the camera frame corresponding to the returned vertex points. |
transform
is an object with the following properties:
Property | Type | Description |
---|---|---|
position | {x, y, z} | The 3d position of the located face. |
rotation | {w, x, y, z} | The 3d local orientation of the located face. |
scale | Number | A scale factor that should be applied to objects attached to this face. |
scaledWidth | Number | Approximate width of the head in the scene when multiplied by scale. |
scaledHeight | Number | Approximate height of the head in the scene when multiplied by scale. |
scaledDepth | Number | Approximate depth of the head in the scene when multiplied by scale. |
faceupdated: Fires when a face is subsequently found.
faceupdated.detail : {id, transform, vertices, normals, attachmentPoints}
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located face. |
transform | {position, rotation, scale, scaledWidth, scaledHeight, scaledDepth} | Transform information of the located face. |
vertices | [{x, y, z}] | Position of face points, relative to transform. |
normals | [{x, y, z}] | Normal direction of vertices, relative to transform. |
attachmentPoints | {name, position: {x,y,z}} | See XR8.FaceController.AttachmentPoints for list of available attachment points. position is relative to the transform. |
uvsInCameraFrame | [{u, v}] | The list of uv positions in the camera frame corresponding to the returned vertex points. |
transform
is an object with the following properties:
Property | Type | Description |
---|---|---|
position | {x, y, z} | The 3d position of the located face. |
rotation | {w, x, y, z} | The 3d local orientation of the located face. |
scale | Number | A scale factor that should be applied to objects attached to this face. |
scaledWidth | Number | Approximate width of the head in the scene when multiplied by scale. |
scaledHeight | Number | Approximate height of the head in the scene when multiplied by scale. |
scaledDepth | Number | Approximate depth of the head in the scene when multiplied by scale. |
facelost: Fires when a face is no longer being tracked.
facelost.detail : { id }
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located face. |
mouthopened: Fires when a tracked face's mouth opens.
mouthopened.detail : { id }
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located face. |
mouthclosed: Fires when a tracked face's mouth closes.
mouthclosed.detail : { id }
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located face. |
lefteyeopened: Fires when a tracked face's left eye opens.
lefteyeopened.detail : { id }
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located face. |
lefteyeclosed: Fires when a tracked face's left eye closes.
lefteyeclosed.detail : { id }
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located face. |
righteyeopened: Fires when a tracked face's right eye opens.
righteyeopened.detail : { id }
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located face. |
righteyeclosed: Fires when a tracked face's right eye closes.
righteyeclosed.detail : { id }
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located face. |
lefteyebrowraised: Fires when a tracked face's left eyebrow is raised from its initial position when the face was found.
lefteyebrowraised.detail : { id }
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located face. |
lefteyebrowlowered: Fires when a tracked face's left eyebrow is lowered to its initial position when the face was found.
lefteyebrowlowered.detail : { id }
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located face. |
righteyebrowraised: Fires when a tracked face's right eyebrow is raised from its position when the face was found.
righteyebrowraised.detail : { id }
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located face. |
righteyebrowlowered: Fires when a tracked face's right eyebrow is lowered to its initial position when the face was found.
righteyebrowlowered.detail : { id }
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located face. |
lefteyewinked: Fires when a tracked face's left eye closes and opens within 750ms while the right eye remains open.
lefteyewinked.detail : { id }
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located face. |
righteyewinked: Fires when a tracked face's right eye closes and opens within 750ms while the left eye remains open.
righteyewinked.detail : { id }
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located face. |
blinked: Fires when a tracked face's eyes blink.
blinked.detail : { id }
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located face. |
interpupillarydistance: Fires when a tracked face's distance in millimeters between the centers of each pupil is first detected.
interpupillarydistance.detail : {id, interpupillaryDistance}
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located face. |
interpupillaryDistance | Number | Approximate distance in millimeters between the centers of each pupil. |
When enableEars:true
ear detection runs simultaneously with Face Effects and dispatches the following events:
earfound: Fires when an ear is first found.
earfound.detail : {id, ear}
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located face which the ear is attached to. |
ear | String | Can be either left or right . |
earpointfound: Fires when an ear attachmentPoint is first found.
earpointfound.detail : {id, point}
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located face which the ear attachmentPoints is attached to. |
point | String | Can be either leftHelix , leftCanal , leftLobe , rightHelix , rightCanal , or rightLobe . |
earlost: Fires when an ear is no longer being tracked.
earlost.detail : {id, ear}
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located face which the ear is attached to. |
ear | String | Can be either left or right . |
earpointlost: Fires when an ear attachmentPoint is no longer being tracked.
earpointlost.detail : {id, point}
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located face which the ear attachmentPoints is attached to. |
point | String | Can be either leftHelix , leftCanal , leftLobe , rightHelix , rightCanal , or rightLobe . |
Example - adding pipeline module​
XR8.addCameraPipelineModule(XR8.FaceController.pipelineModule())