@vincentt-xr/sdk 2.0.0-alpha.7 → 2.0.0-alpha.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/GROUNDING.md +5651 -82
- package/README.md +1 -0
- package/dist/CanonicalHeadFrame-BHcWyaiK.js +1506 -0
- package/dist/CanonicalHeadFrame-D-_T1OMU.cjs +1 -0
- package/dist/DebuggerUI-7ngnJsBe.js +275 -0
- package/dist/DebuggerUI-CoglgKdO.cjs +1 -0
- package/dist/FaceRetouch-CLoTfrcs.js +1071 -0
- package/dist/FaceRetouch-J1lC1WbS.cjs +134 -0
- package/dist/FaceSurface-CHAMEeG1.cjs +1 -0
- package/dist/FaceSurface-DmP9AEeC.js +27 -0
- package/dist/SegmentationOverlay-D_FWkcyP.cjs +35 -0
- package/dist/SegmentationOverlay-vn5x_knv.js +6237 -0
- package/dist/SkeletonUtils-C2r90MtN.js +21 -0
- package/dist/SkeletonUtils-CddIup1F.cjs +1 -0
- package/dist/TextLabel-XE0rQSDn.cjs +2 -0
- package/dist/TextLabel-c9BCucOI.js +961 -0
- package/dist/assets/cache.d.ts +99 -0
- package/dist/assets/estimate.d.ts +11 -0
- package/dist/assets/gltfLoader.d.ts +16 -0
- package/dist/assets/index.d.ts +7 -0
- package/dist/assets/loaders.d.ts +43 -0
- package/dist/assets/react.d.ts +33 -0
- package/dist/body-pose/index.d.ts +521 -0
- package/dist/body-trigger/__fixtures__/syntheticBody.d.ts +83 -0
- package/dist/body-trigger/frame.d.ts +88 -0
- package/dist/body-trigger/index.d.ts +6 -0
- package/dist/body-trigger/moves.d.ts +235 -0
- package/dist/body-trigger/trigger.d.ts +75 -0
- package/dist/calibration/calibration.d.ts +75 -0
- package/dist/calibration/index.d.ts +6 -0
- package/dist/calibration/storage.d.ts +13 -0
- package/dist/calibration/types.d.ts +53 -0
- package/dist/calibration/useXRCalibration.d.ts +46 -0
- package/dist/camera/CameraPermissionGate.d.ts +26 -0
- package/dist/camera/devices.d.ts +26 -0
- package/dist/camera/index.d.ts +8 -0
- package/dist/camera/permission.d.ts +86 -0
- package/dist/camera/useCameraPermission.d.ts +35 -0
- package/dist/canonicalFace-BHwyCx1c.js +9 -0
- package/dist/canonicalFace-C83I225R.cjs +1 -0
- package/dist/capabilities/detect.d.ts +45 -0
- package/dist/capabilities/index.d.ts +5 -0
- package/dist/capabilities/types.d.ts +120 -0
- package/dist/capabilities/useXRCapabilities.d.ts +18 -0
- package/dist/compat/environment.d.ts +5 -0
- package/dist/compat/index.d.ts +4 -0
- package/dist/compat/run.d.ts +18 -0
- package/dist/compat/scenarios.d.ts +10 -0
- package/dist/compat/types.d.ts +101 -0
- package/dist/components/BodyInstruction/BodyPoseHint.d.ts +63 -0
- package/dist/components/BodyInstruction/index.d.ts +69 -0
- package/dist/components/BodyInstruction/useBodyPose.d.ts +23 -0
- package/dist/components/BodyTracker/index.d.ts +17 -0
- package/dist/components/BodyTrigger/index.d.ts +49 -0
- package/dist/components/Debugger/DebuggerProvider.d.ts +14 -1
- package/dist/components/Debugger/DebuggerUI.d.ts +3 -1
- package/dist/components/FaceAtlas/FaceAtlasLayer.d.ts +114 -0
- package/dist/components/FaceAtlas/MadeUpCamera.d.ts +80 -0
- package/dist/components/FaceAtlas/constants.d.ts +8 -0
- package/dist/components/FaceAtlas/index.d.ts +7 -0
- package/dist/components/FaceAtlas/useFaceAtlasSurface.d.ts +84 -0
- package/dist/components/FaceAtlas/useFaceSkin.d.ts +84 -0
- package/dist/components/FaceCharacter/ExternalFaceMesh.d.ts +109 -0
- package/dist/components/FaceCharacter/FaceExpressionController.d.ts +53 -0
- package/dist/components/FaceCharacter/FaceMorph.d.ts +71 -0
- package/dist/components/FaceCharacter/FacePiercing.d.ts +65 -0
- package/dist/components/FaceCharacter/FaceReprojection.d.ts +85 -0
- package/dist/components/FaceCharacter/FaceRig.d.ts +38 -0
- package/dist/components/FaceCharacter/FaceSurface.d.ts +49 -0
- package/dist/components/FaceCharacter/FaceSurfaceOccluder.d.ts +39 -0
- package/dist/components/FaceCharacter/PinToFaceMesh.d.ts +68 -0
- package/dist/components/FaceCharacter/index.d.ts +18 -0
- package/dist/components/FaceCharacter/useFaceReprojector.d.ts +10 -0
- package/dist/components/FaceInset/FaceInset.d.ts +68 -0
- package/dist/components/FaceInset/frame.d.ts +94 -0
- package/dist/components/FaceInset/index.d.ts +6 -0
- package/dist/components/FaceInset/material.d.ts +40 -0
- package/dist/components/FaceInset/useFaceInsetTexture.d.ts +37 -0
- package/dist/components/FaceInstruction/FaceExpressionHint.d.ts +43 -0
- package/dist/components/FaceInstruction/index.d.ts +56 -0
- package/dist/components/FaceInstruction/useFaceExpression.d.ts +20 -0
- package/dist/components/FaceLiquify/FaceLiquify.d.ts +49 -0
- package/dist/components/FaceLiquify/debug.d.ts +37 -0
- package/dist/components/FaceLiquify/frame.d.ts +55 -0
- package/dist/components/FaceLiquify/index.d.ts +10 -0
- package/dist/components/FaceLiquify/material.d.ts +39 -0
- package/dist/components/FaceLiquify/pass.d.ts +49 -0
- package/dist/components/FaceLiquify/presence.d.ts +25 -0
- package/dist/components/FaceLiquify/presets.d.ts +82 -0
- package/dist/components/FaceLiquify/selfTest.d.ts +66 -0
- package/dist/components/FaceLiquify/target.d.ts +85 -0
- package/dist/components/FaceLiquify/warp.d.ts +72 -0
- package/dist/components/FaceMesh/canonical/CanonicalFaceMeshRenderer.d.ts +37 -5
- package/dist/components/FaceMesh/canonical/geometryGroups.d.ts +21 -0
- package/dist/components/FaceMesh/canonical/parseCanonicalFaceModel.d.ts +21 -0
- package/dist/components/FaceMesh/canonical/shaders.d.ts +1 -1
- package/dist/components/FaceMesh/index.d.ts +2 -2
- package/dist/components/FaceRetouch/Background.d.ts +3 -1
- package/dist/components/FaceRetouch/FaceRetouch.d.ts +5 -0
- package/dist/components/FaceRetouch/renderState.d.ts +19 -0
- package/dist/components/FaceSwap/FaceMirror.d.ts +46 -0
- package/dist/components/FaceSwap/FaceSwap.d.ts +58 -0
- package/dist/components/FaceSwap/FaceTextureLayer.d.ts +72 -0
- package/dist/components/FaceSwap/faceSwapPlan.d.ts +91 -0
- package/dist/components/FaceSwap/index.d.ts +13 -0
- package/dist/components/FaceSwap/settings.d.ts +300 -0
- package/dist/components/FaceSwap/useFaceTexture.d.ts +35 -0
- package/dist/components/FaceSwap/useLiveFace.d.ts +38 -0
- package/dist/components/FaceSwap/useLiveFaceTexture.d.ts +31 -0
- package/dist/components/FaceWarp3D/FaceWarp3D.d.ts +50 -0
- package/dist/components/FaceWarp3D/index.d.ts +2 -3
- package/dist/components/Faceless/Faceless.d.ts +51 -0
- package/dist/components/Faceless/index.d.ts +2 -0
- package/dist/components/GestureListener/index.d.ts +11 -0
- package/dist/components/HairLock/HairLock.d.ts +39 -0
- package/dist/components/HairLock/index.d.ts +2 -0
- package/dist/components/HairLock/lockGeometry.d.ts +15 -0
- package/dist/components/HandCutout/index.d.ts +35 -0
- package/dist/components/HandInstruction/HandGestureHint.d.ts +70 -0
- package/dist/components/HandInstruction/index.d.ts +74 -0
- package/dist/components/HandInstruction/useHandGesture.d.ts +22 -0
- package/dist/components/HandRig/ForearmOccluder.d.ts +29 -0
- package/dist/components/HandRig/HandAttachment.d.ts +34 -0
- package/dist/components/HandRig/HandOccluder.d.ts +55 -0
- package/dist/components/HandRig/HandTattoo.d.ts +61 -0
- package/dist/components/HandRig/WristAttachment.d.ts +34 -0
- package/dist/components/HandRig/index.d.ts +101 -0
- package/dist/components/HandRig/useArmMask.d.ts +29 -0
- package/dist/components/HandRig/wristSolve.d.ts +69 -0
- package/dist/components/HandTouch/HandTouch.d.ts +62 -0
- package/dist/components/HandTouch/Touchable.d.ts +36 -0
- package/dist/components/HandTouch/index.d.ts +2 -0
- package/dist/components/HandTracker/index.d.ts +10 -0
- package/dist/components/HeadBinding/index.d.ts +14 -0
- package/dist/components/HeadOccluder/CanonicalHeadFrame.d.ts +22 -0
- package/dist/components/HeadOccluder/Earrings.d.ts +55 -0
- package/dist/components/HeadOccluder/HeadAttachment.d.ts +38 -0
- package/dist/components/HeadOccluder/NeckOccluder.d.ts +64 -0
- package/dist/components/HeadOccluder/earringPlacement.d.ts +31 -0
- package/dist/components/HeadOccluder/headAttachmentPoints.d.ts +69 -0
- package/dist/components/HeadOccluder/index.d.ts +57 -3
- package/dist/components/HeadOccluder/useCanonicalHeadFit.d.ts +36 -0
- package/dist/components/HeadOccluder/useLandmarkPoseFit.d.ts +80 -0
- package/dist/components/HolisticTracker/index.d.ts +69 -0
- package/dist/components/HolisticTracker/settings.d.ts +58 -0
- package/dist/components/HolisticTracker/signals.d.ts +49 -0
- package/dist/components/Instruction/HintStage.d.ts +29 -0
- package/dist/components/Instruction/InstructionCue.d.ts +126 -0
- package/dist/components/Instruction/gestureHold.d.ts +20 -0
- package/dist/components/Instruction/ghost.d.ts +129 -0
- package/dist/components/Instruction/hintBlend.d.ts +19 -0
- package/dist/components/Instruction/hintLook.d.ts +81 -0
- package/dist/components/Instruction/hintLoop.d.ts +36 -0
- package/dist/components/Instruction/index.d.ts +41 -0
- package/dist/components/Instruction/useGhostModel.d.ts +33 -0
- package/dist/components/Instruction/useInstructionHold.d.ts +72 -0
- package/dist/components/IrisEffect/IrisMaterial.d.ts +73 -0
- package/dist/components/IrisEffect/index.d.ts +51 -0
- package/dist/components/IrisEffect/settings.d.ts +117 -0
- package/dist/components/LipEffect/LipEffect.d.ts +27 -1
- package/dist/components/LipEffect/LipEffectMaterial.d.ts +95 -7
- package/dist/components/LipEffect/LipEffects.d.ts +12 -0
- package/dist/components/LipEffect/defaults.d.ts +46 -4
- package/dist/components/LipEffect/index.d.ts +11 -3
- package/dist/components/LipEffect/lipShading.d.ts +73 -0
- package/dist/components/LipEffect/settings.d.ts +375 -0
- package/dist/components/LipEffect/shader.d.ts +39 -0
- package/dist/components/LipEffect/types.d.ts +128 -9
- package/dist/components/LipEffect/useLipDesignTextures.d.ts +17 -0
- package/dist/components/LipEffect/uvGuide.d.ts +74 -0
- package/dist/components/Makeup/Blush.d.ts +18 -0
- package/dist/components/Makeup/Brows.d.ts +20 -0
- package/dist/components/Makeup/Contour.d.ts +17 -0
- package/dist/components/Makeup/Eyeliner.d.ts +20 -0
- package/dist/components/Makeup/Eyeshadow.d.ts +20 -0
- package/dist/components/Makeup/Highlighter.d.ts +18 -0
- package/dist/components/Makeup/MakeupDesign.d.ts +37 -0
- package/dist/components/Makeup/MakeupRegion.d.ts +132 -0
- package/dist/components/Makeup/constants.d.ts +44 -0
- package/dist/components/Makeup/design.d.ts +106 -0
- package/dist/components/Makeup/designSamples.d.ts +42 -0
- package/dist/components/Makeup/eyes.d.ts +114 -0
- package/dist/components/Makeup/fields.d.ts +10 -0
- package/dist/components/Makeup/geometry.d.ts +106 -0
- package/dist/components/Makeup/index.d.ts +26 -0
- package/dist/components/Makeup/looks.d.ts +28 -0
- package/dist/components/Makeup/material.d.ts +239 -0
- package/dist/components/Makeup/settings.d.ts +54 -0
- package/dist/components/Makeup/shades.d.ts +143 -0
- package/dist/components/Makeup/shapes.d.ts +27 -0
- package/dist/components/Makeup/skinTone.d.ts +135 -0
- package/dist/components/Makeup/types.d.ts +110 -0
- package/dist/components/Makeup/useMakeupSkinTone.d.ts +40 -0
- package/dist/components/Necklace/Necklace.d.ts +44 -0
- package/dist/components/Necklace/index.d.ts +1 -0
- package/dist/components/ParticleEmitter/ParticleEmitter.d.ts +69 -0
- package/dist/components/ParticleEmitter/index.d.ts +1 -0
- package/dist/components/PersonCutout/index.d.ts +50 -0
- package/dist/components/PersonCutout/personCutout.d.ts +16 -0
- package/dist/components/ScreenImage/components/ScreenImageBody.d.ts +1 -1
- package/dist/components/ScreenImage/index.d.ts +3 -1
- package/dist/components/ScreenImage/materials/ScreenImageBlendMaterial.d.ts +1 -1
- package/dist/components/ScreenImage/materials/ScreenImageMaskMaterial.d.ts +11 -0
- package/dist/components/ScreenImage/source.d.ts +6 -0
- package/dist/components/ScreenImage/types.d.ts +18 -0
- package/dist/components/SegmentationOverlay/SegmentationOverlay.d.ts +37 -0
- package/dist/components/SegmentationOverlay/SegmentationOverlayMaterial.d.ts +31 -0
- package/dist/components/SegmentationOverlay/index.d.ts +9 -0
- package/dist/components/SegmentationOverlay/maskTexture.d.ts +23 -0
- package/dist/components/SegmentationOverlay/providers.d.ts +72 -0
- package/dist/components/SegmentationOverlay/settings.d.ts +65 -0
- package/dist/components/ShoulderOccluder/index.d.ts +43 -0
- package/dist/components/ShoulderOccluder/useCanonicalTorsoFit.d.ts +24 -0
- package/dist/components/SpringSwing/SpringSwing.d.ts +22 -0
- package/dist/components/SpringSwing/index.d.ts +1 -0
- package/dist/components/XRProvider/index.d.ts +16 -2
- package/dist/components/XRScene/renderOutputTarget.d.ts +12 -0
- package/dist/components/XRViewport/hooks/useViewportExternalFaces.d.ts +1 -1
- package/dist/components/XRViewport/hooks/useViewportMediaSource.d.ts +1 -1
- package/dist/components/XRViewport/hooks/useViewportPipeline.d.ts +1 -1
- package/dist/components/index.d.ts +11 -0
- package/dist/config/index.d.ts +0 -1
- package/dist/constants/index.d.ts +4 -1
- package/dist/context-DTxSQvp4.js +13 -0
- package/dist/context-hA0Rb2Xa.cjs +1 -0
- package/dist/contexts-BH7PdKFS.cjs +1 -0
- package/dist/contexts-jak8-tND.js +667 -0
- package/dist/coordinates/feed.d.ts +52 -0
- package/dist/coordinates/index.d.ts +7 -0
- package/dist/coordinates/side.d.ts +40 -0
- package/dist/coordinates/spaces.d.ts +49 -0
- package/dist/coordinates/viewport.d.ts +22 -0
- package/dist/coordinates/world.d.ts +15 -0
- package/dist/debug-ui/default-setting.cjs +2 -2
- package/dist/debug-ui/face-swap-settings/index.d.ts +22 -0
- package/dist/debug-ui/gesture-settings/index.d.ts +14 -0
- package/dist/debug-ui/hierarchy-panel/index.d.ts +3 -2
- package/dist/debug-ui/holistic-tracker-settings/index.d.ts +16 -0
- package/dist/debug-ui/index.d.ts +18 -3
- package/dist/debug-ui/iris-effect-settings/index.d.ts +12 -0
- package/dist/debug-ui/lip-effect-settings/index.d.ts +15 -0
- package/dist/debug-ui/media-source/index.d.ts +1 -1
- package/dist/debug-ui/media-source/session.d.ts +30 -2
- package/dist/debug-ui/media-source.cjs +1 -1
- package/dist/debug-ui/media-source.js +1 -1
- package/dist/debug-ui/object-inspector-panel/index.d.ts +3 -2
- package/dist/debug-ui/product-hotspots/index.d.ts +25 -0
- package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +3 -1
- package/dist/debug-ui/scene-editor/inspector-panel.d.ts +3 -1
- package/dist/debug-ui/screen-image-settings/index.d.ts +3 -1
- package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +1 -1
- package/dist/debug-ui/screen-text-settings/types.d.ts +2 -0
- package/dist/debug-ui/segmentation-overlay-settings/index.d.ts +12 -0
- package/dist/debug-ui/settings-panel/index.d.ts +6 -1
- package/dist/debug-ui/shared/debugWindow.d.ts +51 -0
- package/dist/debug-ui/xr-diagnostics/index.d.ts +26 -0
- package/dist/debug-ui.cjs +3 -3
- package/dist/debug-ui.js +2695 -2547
- package/dist/detector-K8aej4MB.js +59 -0
- package/dist/detector-ijypGtse.cjs +1 -0
- package/dist/entries/all.d.ts +3 -1
- package/dist/entries/core.d.ts +20 -2
- package/dist/entries/face-effects.d.ts +123 -9
- package/dist/entries/instructions.d.ts +48 -0
- package/dist/entries/internal.d.ts +2 -1
- package/dist/entries/low-level.d.ts +49 -3
- package/dist/entries/particles.d.ts +11 -0
- package/dist/entries/product.d.ts +11 -0
- package/dist/entries/tracking.d.ts +60 -2
- package/dist/face-atlas/attributes.d.ts +30 -0
- package/dist/face-atlas/eyes.d.ts +272 -0
- package/dist/face-atlas/faceAtlas.generated.d.ts +46 -0
- package/dist/face-atlas/glsl/atlasVertex.d.ts +46 -0
- package/dist/face-atlas/glsl/common.d.ts +55 -0
- package/dist/face-atlas/glsl/design.d.ts +49 -0
- package/dist/face-atlas/glsl/eyes.d.ts +73 -0
- package/dist/face-atlas/glsl/finish.d.ts +24 -0
- package/dist/face-atlas/glsl/format.d.ts +4 -0
- package/dist/face-atlas/glsl/index.d.ts +59 -0
- package/dist/face-atlas/glsl/shading.d.ts +15 -0
- package/dist/face-atlas/glsl/shapes.d.ts +66 -0
- package/dist/face-atlas/glsl/sparkle.d.ts +19 -0
- package/dist/face-atlas/glsl/uniforms.d.ts +106 -0
- package/dist/face-atlas/guide.d.ts +51 -0
- package/dist/face-atlas/index.d.ts +25 -0
- package/dist/face-atlas/lead.d.ts +117 -0
- package/dist/face-atlas/madeUpCamera.d.ts +125 -0
- package/dist/face-atlas/masks.d.ts +53 -0
- package/dist/face-atlas/obj.d.ts +69 -0
- package/dist/face-atlas/polylines.d.ts +63 -0
- package/dist/face-atlas/probe/FaceSkinProbe.d.ts +208 -0
- package/dist/face-atlas/probe/__fixtures__/emulate.d.ts +9 -0
- package/dist/face-atlas/probe/__fixtures__/face.d.ts +24 -0
- package/dist/face-atlas/probe/constants.d.ts +137 -0
- package/dist/face-atlas/probe/glsl.d.ts +43 -0
- package/dist/face-atlas/probe/lightFit.d.ts +108 -0
- package/dist/face-atlas/probe/schedule.d.ts +44 -0
- package/dist/face-atlas/probe/selfTest.d.ts +87 -0
- package/dist/face-atlas/probe/stats.d.ts +143 -0
- package/dist/face-atlas/probe/targets.d.ts +70 -0
- package/dist/face-atlas/probe/unwrap.d.ts +76 -0
- package/dist/face-atlas/quality.d.ts +28 -0
- package/dist/face-atlas/regions.d.ts +31 -0
- package/dist/face-atlas/registry.d.ts +252 -0
- package/dist/face-atlas/renderState.d.ts +86 -0
- package/dist/face-atlas/selfOcclusion.d.ts +62 -0
- package/dist/face-atlas/shading.d.ts +406 -0
- package/dist/face-atlas/shapes.d.ts +86 -0
- package/dist/face-atlas/sides.d.ts +41 -0
- package/dist/face-atlas/skinMask.d.ts +35 -0
- package/dist/face-atlas/surface.d.ts +155 -0
- package/dist/face-atlas/topology.d.ts +44 -0
- package/dist/face-character/__fixtures__/faceImageDetections.d.ts +25 -0
- package/dist/face-character/__fixtures__/faceNode.d.ts +22 -0
- package/dist/face-character/bindFaceModel.d.ts +106 -0
- package/dist/face-character/canonicalFace.d.ts +17 -0
- package/dist/face-character/canonicalFaceGeometry.d.ts +11 -0
- package/dist/face-character/canonicalFacePositions.d.ts +7 -0
- package/dist/face-character/driveFaceModel.d.ts +57 -0
- package/dist/face-character/expressionOutputs.d.ts +45 -0
- package/dist/face-character/faceExpressions.d.ts +104 -0
- package/dist/face-character/faceImageLandmarker.d.ts +93 -0
- package/dist/face-character/faceMeshBinding.d.ts +62 -0
- package/dist/face-character/faceMorph.d.ts +77 -0
- package/dist/face-character/faceMorphs.d.ts +46 -0
- package/dist/face-character/facePhoto.d.ts +138 -0
- package/dist/face-character/facePiercings.d.ts +116 -0
- package/dist/face-character/facePin.d.ts +131 -0
- package/dist/face-character/faceReprojection.d.ts +273 -0
- package/dist/face-character/faceReprojector.d.ts +171 -0
- package/dist/face-character/faceRig.d.ts +176 -0
- package/dist/face-character/faceSwapPresence.d.ts +85 -0
- package/dist/face-character/faceTexture.d.ts +169 -0
- package/dist/face-character/faceTextureBaker.d.ts +86 -0
- package/dist/face-character/faceTextureGuide.d.ts +106 -0
- package/dist/face-character/faceTextureStats.d.ts +298 -0
- package/dist/face-character/faceTransfer.d.ts +396 -0
- package/dist/face-character/faceTransferGeometry.d.ts +109 -0
- package/dist/face-character/faceTransferSelfTest.d.ts +94 -0
- package/dist/face-character/faceWarp3D.d.ts +101 -0
- package/dist/face-character/faceless.d.ts +79 -0
- package/dist/face-character/featureWarp.d.ts +28 -0
- package/dist/face-character/liveFaceRegistry.d.ts +370 -0
- package/dist/face-character/liveValue.d.ts +12 -0
- package/dist/face-character/memo.d.ts +15 -0
- package/dist/face-effects.cjs +2324 -1
- package/dist/face-effects.js +14208 -2268
- package/dist/face-expression/index.d.ts +182 -0
- package/dist/face-info/landmarks.d.ts +17 -3
- package/dist/face-info/types.d.ts +20 -3
- package/dist/gestures/definitions.d.ts +98 -0
- package/dist/gestures/detector.d.ts +87 -0
- package/dist/gestures/index.d.ts +8 -0
- package/dist/gestures/measures.d.ts +114 -0
- package/dist/gestures/settings.d.ts +49 -0
- package/dist/getFaceInfo-B1otSDMX.cjs +1 -0
- package/dist/getFaceInfo-Cu4xDWiL.js +62 -0
- package/dist/hand/armFit.d.ts +46 -0
- package/dist/hand/armMask.d.ts +178 -0
- package/dist/hand/handCutout.d.ts +23 -0
- package/dist/hand/handCutoutRegistry.d.ts +7 -0
- package/dist/hand/handGestures.d.ts +524 -0
- package/dist/hand/handPose.d.ts +98 -0
- package/dist/hand/handRigSolver.d.ts +159 -0
- package/dist/hand/handTattoo.d.ts +81 -0
- package/dist/hand/handTouch.d.ts +240 -0
- package/dist/hand/wrist.d.ts +44 -0
- package/dist/hand/wristFilter.d.ts +44 -0
- package/dist/hooks/selectors.d.ts +76 -1
- package/dist/hooks/useCalibrationFaceTracker.d.ts +1 -1
- package/dist/hooks/useFaceInfo.d.ts +13 -1
- package/dist/hooks/useFaceInfos.d.ts +1 -1
- package/dist/hooks/useFaceModelAcquisition.d.ts +38 -0
- package/dist/hooks/useGesture.d.ts +32 -0
- package/dist/hooks/useIrisTracking.d.ts +45 -0
- package/dist/hooks/useTrackerContext.d.ts +6 -0
- package/dist/hooks/useXRDiagnostics.d.ts +81 -0
- package/dist/hooks/useXRModel.d.ts +7 -0
- package/dist/hooks/useXRSession/facade.d.ts +42 -2
- package/dist/hooks/useXRSession/index.d.ts +2 -2
- package/dist/hooks/useXRSession/reason.d.ts +3 -1
- package/dist/hooks/useXRSession/registry.d.ts +14 -0
- package/dist/hooks/useXRSession/store.d.ts +52 -3
- package/dist/index-B1_TzJaI.js +1104 -0
- package/dist/index-BavF06C6.js +190 -0
- package/dist/index-BfFmpddl.cjs +21 -0
- package/dist/index-BuBzneeW.cjs +46 -0
- package/dist/index-CGsQWodV.cjs +1 -0
- package/dist/index-CIe7eCMH.js +3200 -0
- package/dist/index-CfSF8LXa.cjs +1 -0
- package/dist/index-D5GTzOzD.cjs +1 -0
- package/dist/index-DBhQzvVa.js +314 -0
- package/dist/index-DE17y0ZI.cjs +1 -0
- package/dist/index-JII7huPk.js +442 -0
- package/dist/index-tpCr9CLj.cjs +1 -0
- package/dist/index-w1S7fI2B.js +1432 -0
- package/dist/index-zGaqrz_K.js +188 -0
- package/dist/instructions.cjs +30 -0
- package/dist/instructions.js +1507 -0
- package/dist/{internal-Dmk1cTXq.js → internal-B90P-clC.js} +138 -119
- package/dist/internal-Cjinca64.cjs +1 -0
- package/dist/internal.cjs +1 -1
- package/dist/internal.js +15 -10
- package/dist/iris/compute.d.ts +27 -0
- package/dist/iris/index.d.ts +4 -0
- package/dist/iris/lead.d.ts +19 -0
- package/dist/iris/types.d.ts +89 -0
- package/dist/landmarkMask-BFDyBnKM.js +224 -0
- package/dist/landmarkMask-u7es2k4X.cjs +1 -0
- package/dist/landmarks-BlUqf5MZ.cjs +1 -0
- package/dist/landmarks-bftdwq6Z.js +76 -0
- package/dist/loaders-BGAUACsd.js +363 -0
- package/dist/loaders-BJ1_QCHt.cjs +1 -0
- package/dist/low-level.cjs +1 -1
- package/dist/low-level.js +1190 -675
- package/dist/main.cjs +1 -1
- package/dist/main.js +1190 -452
- package/dist/models/Base/index.d.ts +49 -0
- package/dist/models/Body/index.d.ts +3 -1
- package/dist/models/Face/constants.d.ts +8 -0
- package/dist/models/Face/index.d.ts +4 -12
- package/dist/models/Face/rotation.d.ts +18 -3
- package/dist/models/Hand/GestureTracking.d.ts +1 -1
- package/dist/models/Hand/HandTracking.d.ts +17 -1
- package/dist/models/Holistic/index.d.ts +49 -0
- package/dist/models/Holistic/result.d.ts +68 -0
- package/dist/models/Segmentation/index.d.ts +2 -0
- package/dist/models/SemanticSegmentation/index.d.ts +31 -0
- package/dist/models/SemanticSegmentation/presets.d.ts +28 -0
- package/dist/models/index.d.ts +2 -0
- package/dist/models/nodeSource.d.ts +9 -0
- package/dist/particles/emission.d.ts +24 -0
- package/dist/particles/eyes.d.ts +24 -0
- package/dist/particles/glsl.d.ts +14 -0
- package/dist/particles/index.d.ts +10 -0
- package/dist/particles/motion.d.ts +42 -0
- package/dist/particles/presets.d.ts +12 -0
- package/dist/particles/ring.d.ts +58 -0
- package/dist/particles/selfTest.d.ts +53 -0
- package/dist/particles/settings.d.ts +127 -0
- package/dist/particles/shapes.d.ts +29 -0
- package/dist/particles/spawner.d.ts +60 -0
- package/dist/particles/system.d.ts +64 -0
- package/dist/particles.cjs +122 -0
- package/dist/particles.js +774 -0
- package/dist/product/ProductDimensions.d.ts +16 -0
- package/dist/product/ProductHotspot.d.ts +16 -0
- package/dist/product/ProductViewer.d.ts +9 -0
- package/dist/product/details.d.ts +53 -0
- package/dist/product/index.d.ts +14 -0
- package/dist/product/loadModelViewer.d.ts +4 -0
- package/dist/product/types.d.ts +71 -0
- package/dist/product/useProductAr.d.ts +37 -0
- package/dist/product/useProductDetails.d.ts +60 -0
- package/dist/product.cjs +1 -0
- package/dist/product.js +414 -0
- package/dist/providers-C8rE26Uf.js +366 -0
- package/dist/providers-DHsrhDI2.cjs +62 -0
- package/dist/quality/XRQualityController.d.ts +25 -0
- package/dist/quality/controller.d.ts +33 -0
- package/dist/quality/index.d.ts +6 -0
- package/dist/quality/types.d.ts +100 -0
- package/dist/quality/useXRQuality.d.ts +28 -0
- package/dist/render/renderPasses.d.ts +8 -0
- package/dist/render/sceneBeforeRender.d.ts +12 -0
- package/dist/{renderGroups-KZk6eRiY.js → renderGroups-B38pUaX2.js} +1 -1
- package/dist/{renderGroups-80H3DpTl.cjs → renderGroups-Cb_4Ar1Q.cjs} +1 -1
- package/dist/renderPasses-B6l8IpJv.js +1290 -0
- package/dist/renderPasses-dqmkft4P.cjs +158 -0
- package/dist/renderState-CJNmj5jz.js +39 -0
- package/dist/renderState-apSfg4eR.cjs +1 -0
- package/dist/scene-object.cjs +1 -1
- package/dist/scene-object.js +2 -2
- package/dist/segmentation-Cb3ouK6Z.js +1758 -0
- package/dist/segmentation-D9pYO6aR.cjs +1 -0
- package/dist/segmentation2d/faceMemory.d.ts +28 -0
- package/dist/segmentation2d/faceRegions.d.ts +24 -0
- package/dist/segmentation2d/index.d.ts +9 -0
- package/dist/segmentation2d/maskUv.d.ts +23 -0
- package/dist/segmentation2d/rasterize.d.ts +14 -0
- package/dist/segmentation2d/types.d.ts +52 -0
- package/dist/select-Ck5LGz-J.cjs +1 -0
- package/dist/select-pYRo_win.js +233 -0
- package/dist/selectors-C4X71aoD.cjs +1 -0
- package/dist/selectors-DmNaKIwE.js +196 -0
- package/dist/session-BrH8G7iJ.cjs +31 -0
- package/dist/session-DgA_z6O1.js +418 -0
- package/dist/settings-BJ7FMBsO.js +111 -0
- package/dist/settings-C63FMBlF.cjs +1 -0
- package/dist/similarityFit-BFqHND2e.cjs +1 -0
- package/dist/similarityFit-Bbz-R8AY.js +91 -0
- package/dist/spring/index.d.ts +2 -0
- package/dist/spring/spring.d.ts +69 -0
- package/dist/spring/swing.d.ts +54 -0
- package/dist/subjects/index.d.ts +2 -0
- package/dist/subjects/select.d.ts +62 -0
- package/dist/subjects/types.d.ts +55 -0
- package/dist/tracking-config/apply.d.ts +57 -0
- package/dist/tracking-config/index.d.ts +7 -0
- package/dist/tracking-config/resolve.d.ts +25 -0
- package/dist/tracking-config/storage.d.ts +8 -0
- package/dist/tracking-config/types.d.ts +106 -0
- package/dist/tracking-config/useXRTrackingConfig.d.ts +38 -0
- package/dist/tracking.cjs +10 -1
- package/dist/tracking.js +1326 -506
- package/dist/trigger-D0Pm9noT.cjs +49 -0
- package/dist/trigger-IQeys0oS.js +2128 -0
- package/dist/types/compositor.d.ts +21 -0
- package/dist/types/face.d.ts +20 -1
- package/dist/types/hand-tracking.d.ts +9 -0
- package/dist/types/holistic.d.ts +121 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/model.d.ts +22 -2
- package/dist/types/nodes.d.ts +47 -3
- package/dist/types/segmentation.d.ts +24 -0
- package/dist/types/session.d.ts +41 -3
- package/dist/updateThrottle-BseecYag.js +4 -0
- package/dist/updateThrottle-Of5Y4SVa.cjs +1 -0
- package/dist/useFaceInfo-BHDNCvsJ.cjs +1 -0
- package/dist/useFaceInfo-J4x7LsqL.js +76 -0
- package/dist/useFaceResultReader-BvEo5REG.js +61 -0
- package/dist/useFaceResultReader-DuaL1KJG.cjs +1 -0
- package/dist/useInstructionHold-DOu-RpCM.js +53 -0
- package/dist/useInstructionHold-DwJY1Alr.cjs +1 -0
- package/dist/useLandmarkPoseFit-Bg-h9BPb.cjs +1 -0
- package/dist/useLandmarkPoseFit-Bmb3h6Mw.js +87 -0
- package/dist/useXRCapabilities-Cr3RzuAW.cjs +1 -0
- package/dist/useXRCapabilities-Cxmlmpbd.js +30 -0
- package/dist/utils/canonicalRigidLandmarks.d.ts +8 -0
- package/dist/utils/fns.d.ts +6 -3
- package/dist/utils/headOccluderFit.d.ts +42 -0
- package/dist/utils/integrity.d.ts +21 -1
- package/dist/utils/resolveNumFaces.d.ts +13 -0
- package/dist/utils/shoulderOccluderFit.d.ts +38 -0
- package/dist/utils/similarityFit.d.ts +23 -0
- package/dist/utils/updateThrottle.d.ts +2 -0
- package/dist/utils/useStableUniforms.d.ts +18 -0
- package/dist/uv-BMFt19bg.cjs +1 -0
- package/dist/{index-ByoNj0QP.js → uv-DJU_XfmN.js} +15 -247
- package/docs/SDK_DOCUMENTATION.md +1 -2
- package/docs/api/adaptive-quality.mdx +104 -0
- package/docs/api/asset-lifecycle.mdx +78 -0
- package/docs/api/body-instructions.mdx +285 -0
- package/docs/api/body-triggers.mdx +234 -0
- package/docs/api/camera-permission.mdx +142 -0
- package/docs/api/coordinate-spaces.mdx +168 -0
- package/docs/api/cross-camera.mdx +89 -0
- package/docs/api/debug-ui-scene-editor.mdx +23 -2
- package/docs/api/diagnostics-calibration.mdx +97 -0
- package/docs/api/external-face-mesh.mdx +231 -0
- package/docs/api/face-actions.mdx +20 -16
- package/docs/api/face-attribute-expression.mdx +1 -1
- package/docs/api/face-binding-anchors.mdx +4 -2
- package/docs/api/face-character.mdx +157 -0
- package/docs/api/face-effects.mdx +9 -0
- package/docs/api/face-expression-controller.mdx +153 -0
- package/docs/api/face-info.mdx +17 -11
- package/docs/api/face-inset.mdx +204 -0
- package/docs/api/face-instructions.mdx +183 -0
- package/docs/api/face-liquify.mdx +196 -0
- package/docs/api/face-mesh.mdx +8 -9
- package/docs/api/face-morph.mdx +117 -0
- package/docs/api/face-painting.mdx +7 -0
- package/docs/api/face-reprojection.mdx +154 -0
- package/docs/api/face-retouching.mdx +18 -10
- package/docs/api/face-swap.mdx +350 -0
- package/docs/api/face-warp-3d.mdx +166 -0
- package/docs/api/faceless.mdx +143 -0
- package/docs/api/gestures.mdx +209 -0
- package/docs/api/hair.mdx +97 -0
- package/docs/api/hand-instructions.mdx +222 -0
- package/docs/api/hand-rig.mdx +535 -0
- package/docs/api/hand-touch.mdx +162 -0
- package/docs/api/head-occluder.mdx +563 -0
- package/docs/api/holistic-tracker.mdx +164 -0
- package/docs/api/instructions.mdx +323 -0
- package/docs/api/iris-tracking.mdx +247 -0
- package/docs/api/made-up-camera.mdx +131 -0
- package/docs/api/makeup-skin-tone.mdx +135 -0
- package/docs/api/makeup.mdx +353 -0
- package/docs/api/multi-subject.mdx +98 -0
- package/docs/api/particles.mdx +155 -0
- package/docs/api/person-cutout.mdx +136 -0
- package/docs/api/pin-to-face-mesh.mdx +274 -0
- package/docs/api/product-ar.mdx +114 -0
- package/docs/api/product-details.mdx +78 -0
- package/docs/api/screen-space-coordinates.mdx +4 -1
- package/docs/api/segmentation-overlay.mdx +301 -0
- package/docs/api/session-lifecycle.mdx +136 -0
- package/docs/api/trackers.mdx +5 -0
- package/docs/api/tracking-config.mdx +108 -0
- package/docs/docs.json +51 -1
- package/docs/examples/lip-shaders.mdx +273 -0
- package/docs/guides/face-atlas-template.svg +1 -0
- package/docs/guides/face-atlas-textures.mdx +186 -0
- package/docs/guides/face-texture-template.svg +1 -0
- package/docs/guides/harness-debug-ui.mdx +4 -4
- package/docs/guides/lip-effect-textures.mdx +368 -0
- package/docs/guides/lip-uv-template.png +0 -0
- package/docs/guides/lip-uv-template.svg +1 -0
- package/docs/guides/makeup-design-textures.mdx +109 -0
- package/docs/introduction.mdx +1 -2
- package/package.json +23 -1
- package/dist/DebuggerUI-B6bP6P9r.cjs +0 -1
- package/dist/DebuggerUI-BjOMr8q_.js +0 -269
- package/dist/FaceMeshRenderer-C5l6VLdO.cjs +0 -155
- package/dist/FaceMeshRenderer-wjAHrJzP.js +0 -1270
- package/dist/FaceRetouch-BkJzoA79.cjs +0 -134
- package/dist/FaceRetouch-DwbKQJAN.js +0 -551
- package/dist/components/FaceWarp3D/FaceWarp3DHead.d.ts +0 -15
- package/dist/components/FaceWarp3D/defaults.d.ts +0 -37
- package/dist/components/FaceWarp3D/warp.d.ts +0 -13
- package/dist/contexts-ByhzppYl.js +0 -663
- package/dist/contexts-Dr62It_K.cjs +0 -1
- package/dist/debug-ui/face-warp-3d/index.d.ts +0 -6
- package/dist/getFaceInfo-C4QpCQIY.js +0 -118
- package/dist/getFaceInfo-fA1bFBub.cjs +0 -1
- package/dist/index-9dlAQAhy.js +0 -1462
- package/dist/index-BjmTe9eM.cjs +0 -1
- package/dist/index-BpEf2BBb.cjs +0 -1
- package/dist/index-CyUUurQT.cjs +0 -1
- package/dist/index-DCiMbxC3.cjs +0 -1
- package/dist/index-DXT3WccE.js +0 -2089
- package/dist/index-DpI-qo5X.cjs +0 -17
- package/dist/index-DyVF4vEW.js +0 -111
- package/dist/index-VJ0SJwmG.js +0 -214
- package/dist/internal-Cq-TEQ5Y.cjs +0 -1
- package/dist/renderLayers-lDtL0_43.cjs +0 -1
- package/dist/renderLayers-zrK2pv5O.js +0 -13
- package/dist/renderPasses-BOoBSr8z.cjs +0 -21
- package/dist/renderPasses-BcquyVtu.js +0 -1500
- package/dist/selectors-B8H97CKA.js +0 -59
- package/dist/selectors-CZLKT2Iv.cjs +0 -1
- package/dist/session-CpkiK5YA.cjs +0 -31
- package/dist/session-DLFN_VII.js +0 -363
- package/dist/useFaceInfo-BJ8-_MOs.cjs +0 -1
- package/dist/useFaceInfo-Dk426LTu.js +0 -62
- package/dist/useFaceResults-CtetsO9M.js +0 -19
- package/dist/useFaceResults-wBJF3zyp.cjs +0 -1
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
import { FaceRigDriver, FaceRigOptions, FaceRigState } from '../face-character/faceRig';
|
|
2
|
+
import { XRModelNodeFaceTracking } from '../types/nodes';
|
|
3
|
+
import { FaceAtlasSurface } from './surface';
|
|
4
|
+
import * as THREE from "three";
|
|
5
|
+
/**
|
|
6
|
+
* The face-atlas registry: one live surface per face and per R3F root,
|
|
7
|
+
* shared by every layer drawn on that face (makeup regions, LipEffect, face
|
|
8
|
+
* swap, faceless, custom `FaceAtlasLayer`s), refcounted.
|
|
9
|
+
*
|
|
10
|
+
* An entry either BORROWS a rig (the layers are nested in a `FaceRig`,
|
|
11
|
+
* `FaceWarp3D` or `FaceMorph`: they ride that face, with its lead and its
|
|
12
|
+
* moved surface) or OWNS one (no rig above: it steps a rig of its own from
|
|
13
|
+
* the face model with `stepFaceRigFromModel`). Its per-frame work runs once
|
|
14
|
+
* per frame whichever layer asks first (frame-stamped), so N layers on a
|
|
15
|
+
* face cost one rig step and one surface update.
|
|
16
|
+
*
|
|
17
|
+
* Each entry owns a pose group (added to the scene root while in use): the
|
|
18
|
+
* layers' meshes and the self-occlusion pre-pass / restore live in it, posed
|
|
19
|
+
* by the rig, out of any tracker group's render order.
|
|
20
|
+
*/
|
|
21
|
+
/** A ref to something published per frame (a `FaceRig`'s state, a face surface's offsets). */
|
|
22
|
+
export type FaceAtlasRef<T> = {
|
|
23
|
+
current: T;
|
|
24
|
+
};
|
|
25
|
+
/** The moved surface a `FaceWarp3D` / `FaceMorph` publishes (`FaceSurfaceState`). */
|
|
26
|
+
export type FaceAtlasOffsetsSource = FaceAtlasRef<{
|
|
27
|
+
offsets: Float32Array;
|
|
28
|
+
active: boolean;
|
|
29
|
+
}>;
|
|
30
|
+
/** How an entry is found: by the rig it borrows (and the surface it rides), or by face index. */
|
|
31
|
+
export type FaceAtlasEntryKey = {
|
|
32
|
+
kind: "owned";
|
|
33
|
+
faceIndex: number;
|
|
34
|
+
} | {
|
|
35
|
+
kind: "borrowed";
|
|
36
|
+
rig: FaceAtlasRef<FaceRigState>;
|
|
37
|
+
offsets: FaceAtlasOffsetsSource | null;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Uniforms every face-atlas layer of one face shares (the same `{ value }`
|
|
41
|
+
* objects), updated once per frame. Spread them into a layer's material.
|
|
42
|
+
*/
|
|
43
|
+
export type FaceAtlasUniforms = {
|
|
44
|
+
/** The camera feed (sample it at `basePosition`'s screen point). */
|
|
45
|
+
uCameraMap: {
|
|
46
|
+
value: THREE.Texture | null;
|
|
47
|
+
};
|
|
48
|
+
/** 0..1: fades in when the face is found, out once it is lost. */
|
|
49
|
+
uPresence: {
|
|
50
|
+
value: number;
|
|
51
|
+
};
|
|
52
|
+
/** #298 `personLeftSign(mirrored)`: +1 unmirrored, −1 on the mirrored webcam (set per layer). */
|
|
53
|
+
uPersonLeftSign: {
|
|
54
|
+
value: number;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* The skin probe's statistics (`FACE_SKIN_STATS_TEXELS`): copied each
|
|
58
|
+
* frame from the face's probe while one runs (a makeup region, or a
|
|
59
|
+
* `useFaceSkin` call for this face); `null` while none does.
|
|
60
|
+
*/
|
|
61
|
+
uSkinStats: {
|
|
62
|
+
value: THREE.Texture | null;
|
|
63
|
+
};
|
|
64
|
+
/** 1 when `uSkinStats` is the packed RGBA8 layout, 0 for float stats. */
|
|
65
|
+
uSkinStatsPacked: {
|
|
66
|
+
value: number;
|
|
67
|
+
};
|
|
68
|
+
/** The skin probe's atlas skin map; `null` while no probe runs. */
|
|
69
|
+
uSkinMap: {
|
|
70
|
+
value: THREE.Texture | null;
|
|
71
|
+
};
|
|
72
|
+
/** The skin map's low-pass mip. */
|
|
73
|
+
uSkinLod: {
|
|
74
|
+
value: number;
|
|
75
|
+
};
|
|
76
|
+
/** 1 when the skin map uses the RGBA8 square-root fallback. */
|
|
77
|
+
uSkinSqrt: {
|
|
78
|
+
value: number;
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
/** The skin probe's uniform values an entry copies (`FaceSkinProbe.uniforms`). */
|
|
82
|
+
export type FaceAtlasSkinSource = {
|
|
83
|
+
uSkinStats: {
|
|
84
|
+
value: THREE.Texture | null;
|
|
85
|
+
};
|
|
86
|
+
uSkinStatsPacked: {
|
|
87
|
+
value: number;
|
|
88
|
+
};
|
|
89
|
+
uSkinMap: {
|
|
90
|
+
value: THREE.Texture | null;
|
|
91
|
+
};
|
|
92
|
+
uSkinLod: {
|
|
93
|
+
value: number;
|
|
94
|
+
};
|
|
95
|
+
uSkinSqrt: {
|
|
96
|
+
value: number;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
export declare const createFaceAtlasUniforms: () => FaceAtlasUniforms;
|
|
100
|
+
/** What a layer hands the entry each frame. */
|
|
101
|
+
export type FaceAtlasFrameInput = {
|
|
102
|
+
/** The frame's stamp: the same value for every caller in one frame (R3F's `clock.elapsedTime`). */
|
|
103
|
+
stamp: number;
|
|
104
|
+
nowMs: number;
|
|
105
|
+
/** The camera feed texture (`useXRCameraTexture()`); a new one is a new face source. */
|
|
106
|
+
cameraTexture: THREE.Texture | null;
|
|
107
|
+
/** Whether the quality tier allows the self-occlusion passes. */
|
|
108
|
+
selfOcclusion: boolean;
|
|
109
|
+
/** For `faceUv`: the scene camera (projection × view). */
|
|
110
|
+
camera?: THREE.Camera;
|
|
111
|
+
};
|
|
112
|
+
/** One face's shared surface. Created by `FaceAtlasRegistry`; never construct it yourself. */
|
|
113
|
+
export declare class FaceAtlasEntry {
|
|
114
|
+
readonly key: FaceAtlasEntryKey;
|
|
115
|
+
readonly surface: FaceAtlasSurface;
|
|
116
|
+
/** The pose group: layer meshes go in here (a portal target). */
|
|
117
|
+
readonly group: THREE.Group<THREE.Object3DEventMap>;
|
|
118
|
+
/** The rig the surface follows (borrowed, or this entry's own). */
|
|
119
|
+
readonly rig: FaceAtlasRef<FaceRigState>;
|
|
120
|
+
readonly uniforms: FaceAtlasUniforms;
|
|
121
|
+
/** Layers holding the entry (`retain` / `release`). */
|
|
122
|
+
refs: number;
|
|
123
|
+
/** The owned rig's driver; `null` when borrowing. */
|
|
124
|
+
readonly driver: FaceRigDriver | null;
|
|
125
|
+
readonly prepass: THREE.Mesh;
|
|
126
|
+
readonly restore: THREE.Mesh;
|
|
127
|
+
private rigStamp;
|
|
128
|
+
private surfaceStamp;
|
|
129
|
+
private lastNowMs;
|
|
130
|
+
private selfOcclusionRequests;
|
|
131
|
+
/** Each layer's `holdMs` (keyed by its request token), and their largest. */
|
|
132
|
+
private readonly holdRequests;
|
|
133
|
+
private requestedHoldMs;
|
|
134
|
+
/** The options `stepRig` hands the rig: the caller's, with the shared hold (no allocation per frame). */
|
|
135
|
+
private readonly stepOptions;
|
|
136
|
+
private scene;
|
|
137
|
+
/** The last camera feed seen (never set back to `null`). */
|
|
138
|
+
private lastCameraTexture;
|
|
139
|
+
constructor(key: FaceAtlasEntryKey);
|
|
140
|
+
/** Whether this entry steps a rig of its own. */
|
|
141
|
+
get owned(): boolean;
|
|
142
|
+
/** The face this entry follows. */
|
|
143
|
+
get faceIndex(): number;
|
|
144
|
+
/** Whether some layer asked for the self-occlusion passes. */
|
|
145
|
+
get wantsSelfOcclusion(): boolean;
|
|
146
|
+
/** Counts a layer that wants the self-occlusion passes; returns its release. */
|
|
147
|
+
requestSelfOcclusion(): () => void;
|
|
148
|
+
/**
|
|
149
|
+
* The hold of the owned rig through dropouts: the largest `holdMs` any
|
|
150
|
+
* layer on the face asks for (`requestHold`), or `undefined` (the rig's
|
|
151
|
+
* default, 250 ms) when none does. A borrowed rig keeps its own hold.
|
|
152
|
+
*/
|
|
153
|
+
get holdMs(): number | undefined;
|
|
154
|
+
/**
|
|
155
|
+
* Counts a layer's `holdMs` (ms, at least 0) toward the face's shared
|
|
156
|
+
* hold, where the largest value wins; returns its release. A value that
|
|
157
|
+
* is not a finite number counts as no request.
|
|
158
|
+
*/
|
|
159
|
+
requestHold(holdMs: number): () => void;
|
|
160
|
+
private updateHold;
|
|
161
|
+
/**
|
|
162
|
+
* The owned rig's step (frame priority -1): `stepFaceRigFromModel` once per
|
|
163
|
+
* `stamp`, whoever calls first. A no-op when borrowing (the `FaceRig` steps
|
|
164
|
+
* its own). `cameraTexture` is the camera feed (`useXRCameraTexture()`):
|
|
165
|
+
* a new feed restarts the rig first (`followCameraTexture`). The hold is
|
|
166
|
+
* the face's shared one (`holdMs`) when a layer asked for one, else
|
|
167
|
+
* `options.holdMs`. Returns the tracking edge of this frame's step, if it ran.
|
|
168
|
+
*/
|
|
169
|
+
stepRig(stamp: number, node: XRModelNodeFaceTracking | null | undefined, camera: THREE.Camera, nowMs: number, options?: FaceRigOptions, cameraTexture?: THREE.Texture | null): "found" | "lost" | null;
|
|
170
|
+
/**
|
|
171
|
+
* The surface update (frame priority -0.4, after the rig and after warps
|
|
172
|
+
* publish their offsets): positions, normals, presence, the pose group and
|
|
173
|
+
* the shared uniforms, once per `stamp`. Returns false when it already ran.
|
|
174
|
+
*/
|
|
175
|
+
update({ stamp, nowMs, cameraTexture, selfOcclusion, camera }: FaceAtlasFrameInput): boolean;
|
|
176
|
+
/**
|
|
177
|
+
* Copies the face's skin probe values into the shared uniforms (each
|
|
178
|
+
* frame, after the probe's update), or clears them with `null` (no probe
|
|
179
|
+
* runs for this face).
|
|
180
|
+
*/
|
|
181
|
+
updateSkin(source: FaceAtlasSkinSource | null): void;
|
|
182
|
+
/**
|
|
183
|
+
* A new camera feed (another camera, another video) is another face, maybe
|
|
184
|
+
* another person: an owned rig restarts (`resetFaceRigDriver`: the neutral
|
|
185
|
+
* is captured again, the pose and the landmark lead snap), as `FaceRig`
|
|
186
|
+
* does for its own, and the surface's normals snap instead of blending
|
|
187
|
+
* from the old face. The first feed, and a feed briefly gone (`null`),
|
|
188
|
+
* restart nothing.
|
|
189
|
+
*/
|
|
190
|
+
private followCameraTexture;
|
|
191
|
+
/** Adds the pose group to `scene` (the R3F root) while the entry is in use. */
|
|
192
|
+
attach(scene: THREE.Object3D): void;
|
|
193
|
+
detach(): void;
|
|
194
|
+
/** Frees the GPU resources; the entry is unusable after. */
|
|
195
|
+
dispose(): void;
|
|
196
|
+
/** The pose group's matrix = the rig's pose (canonical cm → world), under any scene transform. */
|
|
197
|
+
private pose;
|
|
198
|
+
private depthMesh;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* The entries of one R3F root. `get` finds or creates an entry (not yet
|
|
202
|
+
* counted); `retain` / `release` count the layers using it, and the last
|
|
203
|
+
* release disposes it.
|
|
204
|
+
*/
|
|
205
|
+
export declare class FaceAtlasRegistry {
|
|
206
|
+
private readonly owned;
|
|
207
|
+
private readonly borrowed;
|
|
208
|
+
/** The entry for `key`, created on first use. Count it with `retain` (in an effect). */
|
|
209
|
+
get(key: FaceAtlasEntryKey): FaceAtlasEntry;
|
|
210
|
+
/** Counts one more layer on `entry`, and puts its pose group in `scene`. */
|
|
211
|
+
retain(entry: FaceAtlasEntry, scene: THREE.Object3D): void;
|
|
212
|
+
/** One layer fewer; the last one disposes the entry. */
|
|
213
|
+
release(entry: FaceAtlasEntry): void;
|
|
214
|
+
/** The callback `forEachEntry` hands the borrowed entries to (no closure per call). */
|
|
215
|
+
private visit;
|
|
216
|
+
private readonly visitBorrowed;
|
|
217
|
+
/** Calls `visit` for every entry (owned, then borrowed). */
|
|
218
|
+
forEachEntry(visit: (entry: FaceAtlasEntry) => void): void;
|
|
219
|
+
/** Entries in use or created (for tests and diagnostics). */
|
|
220
|
+
get size(): number;
|
|
221
|
+
}
|
|
222
|
+
/** Where a face-atlas layer sits, for `resolveFaceAtlasBinding`. */
|
|
223
|
+
export type FaceAtlasBindingInput = {
|
|
224
|
+
/** The `faceIndex` prop, if given (any value; resolved like `FaceRetouch`'s). */
|
|
225
|
+
faceIndex?: unknown;
|
|
226
|
+
/** The `numFaces` prop, if given. */
|
|
227
|
+
numFaces?: unknown;
|
|
228
|
+
/** The face of the nearest `FaceRig` (`FaceWarp3D`, `FaceMorph`) above, or `null` without one. */
|
|
229
|
+
rigFaceIndex: number | null;
|
|
230
|
+
/** The enclosing `FaceTracker`'s face, or `null` outside a face tracker. */
|
|
231
|
+
trackerFaceIndex: number | null;
|
|
232
|
+
};
|
|
233
|
+
/** How a layer binds to a face: which face, whether it rides the rig above, whether it starts the model. */
|
|
234
|
+
export type FaceAtlasBinding = {
|
|
235
|
+
faceIndex: number;
|
|
236
|
+
/** Ride the `FaceRig` above (its pose, lead and warp offsets). */
|
|
237
|
+
borrow: boolean;
|
|
238
|
+
/** Start the face model itself: only with no face tracker and no rig above. */
|
|
239
|
+
acquire: boolean;
|
|
240
|
+
/** The face count to start the model with (`resolveNumFaces`). */
|
|
241
|
+
numFaces: number;
|
|
242
|
+
};
|
|
243
|
+
/**
|
|
244
|
+
* A layer rides the `FaceRig` above when it asks for no face or for that
|
|
245
|
+
* rig's face; otherwise it owns a rig for its face (the `faceIndex` prop,
|
|
246
|
+
* else the `FaceTracker`'s, else 0). It starts the face model only when no
|
|
247
|
+
* tracker or rig above does: a tracker starts it with its own `numFaces`,
|
|
248
|
+
* and a child acquiring first would set the count (effects run child-first).
|
|
249
|
+
*/
|
|
250
|
+
export declare const resolveFaceAtlasBinding: ({ faceIndex, numFaces, rigFaceIndex, trackerFaceIndex, }: FaceAtlasBindingInput) => FaceAtlasBinding;
|
|
251
|
+
/** The registry of an R3F root, keyed by any per-root object (its scene). */
|
|
252
|
+
export declare const getFaceAtlasRegistry: (root: object) => FaceAtlasRegistry;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Draw order and blending of everything drawn on the face atlas surface
|
|
3
|
+
* (makeup, LipEffect, custom face-atlas layers) and of `FaceRetouch`.
|
|
4
|
+
* Re-exported from `@vincentt-xr/sdk/face-effects`.
|
|
5
|
+
*
|
|
6
|
+
* | Order | Pass |
|
|
7
|
+
* | --- | --- |
|
|
8
|
+
* | -1000 | camera background |
|
|
9
|
+
* | -900 | `HandCutout` (depth at the near plane) |
|
|
10
|
+
* | -2.5 | `FaceRetouch` (opaque, blended, depth-tested) |
|
|
11
|
+
* | -2 | the face itself: `FaceWarp3D`, `FaceMorph`, characters, face swap |
|
|
12
|
+
* | -1.99 | face pre-pass: depth + stencil bit 0x80, colour off |
|
|
13
|
+
* | -1.9 … -1.64 | makeup regions, then lips |
|
|
14
|
+
* | -1.55 | restore: depth back to the far plane where the pre-pass wrote, bit 0x80 cleared |
|
|
15
|
+
* | -1.5 | `FaceInset` |
|
|
16
|
+
* | -1 | head occluder |
|
|
17
|
+
* | 0+ | accessories |
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Draw order of `FaceRetouch`: in the opaque face layer, after the camera
|
|
21
|
+
* background (-1000) and `HandCutout` (-900, so hands over the face stay
|
|
22
|
+
* sharp), before everything that is the face (`FACE_SURFACE_RENDER_ORDER`,
|
|
23
|
+
* -2) and the makeup.
|
|
24
|
+
*/
|
|
25
|
+
export declare const FACE_RETOUCH_RENDER_ORDER = -2.5;
|
|
26
|
+
/**
|
|
27
|
+
* Draw orders of the makeup layers, inside the face layer: after the face
|
|
28
|
+
* effects (`FACE_SURFACE_RENDER_ORDER`, -2), before `FaceInset` (-1.5), the
|
|
29
|
+
* head occluder (-1) and accessories, so hands (`HandCutout`) and glasses
|
|
30
|
+
* draw over makeup.
|
|
31
|
+
*
|
|
32
|
+
* - `prepass`: the face's depth and the face stencil bit (self-occlusion),
|
|
33
|
+
* colour off; high and medium quality tiers only.
|
|
34
|
+
* - `contour` … `lips`: the region layers, back to front.
|
|
35
|
+
* - `restore`: puts the depth back where the pre-pass wrote it (far plane)
|
|
36
|
+
* and clears the stencil bit, so later layers see the depth as before.
|
|
37
|
+
*
|
|
38
|
+
* Put a custom layer between two regions with a small offset:
|
|
39
|
+
* `MAKEUP_RENDER_ORDER.blush + 0.01`.
|
|
40
|
+
*/
|
|
41
|
+
export declare const MAKEUP_RENDER_ORDER: Readonly<{
|
|
42
|
+
prepass: -1.99;
|
|
43
|
+
contour: -1.9;
|
|
44
|
+
blush: -1.86;
|
|
45
|
+
highlighter: -1.83;
|
|
46
|
+
eyeshadow: -1.8;
|
|
47
|
+
eyeliner: -1.76;
|
|
48
|
+
brows: -1.72;
|
|
49
|
+
design: -1.68;
|
|
50
|
+
lips: -1.64;
|
|
51
|
+
restore: -1.55;
|
|
52
|
+
}>;
|
|
53
|
+
/**
|
|
54
|
+
* Whether a face-atlas layer gains from the self-occlusion passes: it is
|
|
55
|
+
* shown and draws between `MAKEUP_RENDER_ORDER.prepass` and `.restore`. A
|
|
56
|
+
* layer before the pre-pass (a face swap at -2) or after the restore never
|
|
57
|
+
* sees the face's depth, so the passes would only cost two draws.
|
|
58
|
+
*/
|
|
59
|
+
export declare const faceAtlasLayerSelfOccludes: (renderOrder: number, visible?: boolean) => boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Blending for makeup and other face-atlas layers: premultiplied "over"
|
|
62
|
+
* (`rgb·1 + dst·(1 − a)`), applied in the opaque pass (`transparent: false`)
|
|
63
|
+
* so the render order above holds against the head occluder. The canvas
|
|
64
|
+
* alpha stays opaque. Spread it into a custom material:
|
|
65
|
+
* `<shaderMaterial {...MAKEUP_BLENDING} depthWrite={false} … />`, and write
|
|
66
|
+
* premultiplied colour from the fragment shader.
|
|
67
|
+
*/
|
|
68
|
+
export declare const MAKEUP_BLENDING: Readonly<{
|
|
69
|
+
readonly blending: 5;
|
|
70
|
+
readonly blendEquation: 100;
|
|
71
|
+
readonly blendSrc: 201;
|
|
72
|
+
readonly blendDst: 205;
|
|
73
|
+
readonly blendSrcAlpha: 201;
|
|
74
|
+
readonly blendDstAlpha: 205;
|
|
75
|
+
readonly transparent: false;
|
|
76
|
+
}>;
|
|
77
|
+
/**
|
|
78
|
+
* Stencil bits the face layers reserve. `mouth` (0x01): the mouth interior,
|
|
79
|
+
* written and tested by `LipEffect`'s mask modes. `surface` (0x80): the face
|
|
80
|
+
* pre-pass marks the face's visible pixels and the restore clears them.
|
|
81
|
+
* Custom stencil effects should use other bits (`stencilWriteMask`).
|
|
82
|
+
*/
|
|
83
|
+
export declare const FACE_ATLAS_STENCIL: Readonly<{
|
|
84
|
+
mouth: 1;
|
|
85
|
+
surface: 128;
|
|
86
|
+
}>;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import * as THREE from "three";
|
|
2
|
+
/** Material state of the face pre-pass (tests check it; `createFaceAtlasPrepassMaterial` uses it). */
|
|
3
|
+
export declare const FACE_ATLAS_PREPASS_STATE: Readonly<{
|
|
4
|
+
colorWrite: false;
|
|
5
|
+
depthTest: true;
|
|
6
|
+
depthWrite: true;
|
|
7
|
+
depthFunc: 3;
|
|
8
|
+
polygonOffset: true;
|
|
9
|
+
polygonOffsetFactor: 1;
|
|
10
|
+
polygonOffsetUnits: 1;
|
|
11
|
+
stencilWrite: true;
|
|
12
|
+
stencilRef: 128;
|
|
13
|
+
stencilFunc: 519;
|
|
14
|
+
stencilFuncMask: 255;
|
|
15
|
+
stencilWriteMask: 128;
|
|
16
|
+
stencilFail: 7680;
|
|
17
|
+
stencilZFail: 7680;
|
|
18
|
+
stencilZPass: 7681;
|
|
19
|
+
side: 0;
|
|
20
|
+
toneMapped: false;
|
|
21
|
+
}>;
|
|
22
|
+
/** Material state of the face restore. */
|
|
23
|
+
export declare const FACE_ATLAS_RESTORE_STATE: Readonly<{
|
|
24
|
+
colorWrite: false;
|
|
25
|
+
depthTest: true;
|
|
26
|
+
depthWrite: true;
|
|
27
|
+
depthFunc: 1;
|
|
28
|
+
polygonOffset: false;
|
|
29
|
+
stencilWrite: true;
|
|
30
|
+
stencilRef: 128;
|
|
31
|
+
stencilFunc: 514;
|
|
32
|
+
stencilFuncMask: 128;
|
|
33
|
+
stencilWriteMask: 128;
|
|
34
|
+
stencilFail: 7680;
|
|
35
|
+
stencilZFail: 7680;
|
|
36
|
+
stencilZPass: 0;
|
|
37
|
+
side: 0;
|
|
38
|
+
toneMapped: false;
|
|
39
|
+
}>;
|
|
40
|
+
/** The face pre-pass material: depth and stencil bit 0x80, no colour. */
|
|
41
|
+
export declare const createFaceAtlasPrepassMaterial: () => THREE.ShaderMaterial;
|
|
42
|
+
/** The face restore material: far-plane depth where bit 0x80 is set, which it clears. */
|
|
43
|
+
export declare const createFaceAtlasRestoreMaterial: () => THREE.ShaderMaterial;
|
|
44
|
+
/** The shader sources, for the static tests. */
|
|
45
|
+
export declare const FACE_ATLAS_SELF_OCCLUSION_GLSL: Readonly<{
|
|
46
|
+
prepassVertex: "\nvoid main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n";
|
|
47
|
+
restoreVertex: "\nvoid main() {\n vec4 clip = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n // On the far plane: depth 1, the cleared value, with no gl_FragDepth.\n clip.z = clip.w;\n gl_Position = clip;\n}\n";
|
|
48
|
+
fragment: "\nvoid main() {\n gl_FragColor = vec4(0.0);\n}\n";
|
|
49
|
+
}>;
|
|
50
|
+
/**
|
|
51
|
+
* Whether the renderer's current target has a stencil buffer: the canvas
|
|
52
|
+
* (its context attributes, read once) or the bound render target (a stencil
|
|
53
|
+
* renderbuffer, or a `DepthStencilFormat` depth texture).
|
|
54
|
+
*/
|
|
55
|
+
export declare const faceAtlasTargetHasStencil: (renderer: THREE.WebGLRenderer) => boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Makes a pre-pass or restore mesh draw nothing on a target without a
|
|
58
|
+
* stencil buffer (its depth function becomes `Never` for that draw): without
|
|
59
|
+
* the stencil the restore could not tell the face from a hand and would wipe
|
|
60
|
+
* the hand cut-out's depth. Installs an `onBeforeRender` on `mesh`.
|
|
61
|
+
*/
|
|
62
|
+
export declare const guardFaceAtlasStencilDraw: (mesh: THREE.Mesh, depthFunc: THREE.DepthModes) => void;
|