@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,298 @@
|
|
|
1
|
+
import { FaceImageLandmark } from './faceReprojection';
|
|
2
|
+
import * as THREE from "three";
|
|
3
|
+
/**
|
|
4
|
+
* Skin colour statistics of a face (FACE-2 face swap; meant to serve FACE-1
|
|
5
|
+
* makeup's skin probe too). Everything is in the face atlas
|
|
6
|
+
* (`FACE_ATLAS_UVS`), linear light, premultiplied by skin coverage:
|
|
7
|
+
*
|
|
8
|
+
* - **skin pass** (`FaceSkinPass`, 128²): the unwrap mesh draws the image ×
|
|
9
|
+
* the eroded skin mask × how squarely each point faces the camera ×
|
|
10
|
+
* in-frame, so only skin that was really seen counts. Every face with
|
|
11
|
+
* landmarks (live or a photo) takes this path: `updateFromImage`.
|
|
12
|
+
* - **full map** (`update` with `mask: true`): a face map that has no
|
|
13
|
+
* landmarks (a painted face) is read at `faceStatsInputLod(mapSize)` with
|
|
14
|
+
* the mask applied instead. Everything with alpha counts as seen there,
|
|
15
|
+
* mirror-filled and padded texels included, so never use it for a live
|
|
16
|
+
* face's map.
|
|
17
|
+
* - **H** (64²): a 13-tap horizontal Gaussian (σ 0.8 cm of face, taps one
|
|
18
|
+
* texel apart). Each tap reads the 2×2 input texels it covers at their
|
|
19
|
+
* centres and weighs each against the previous local skin (a robust weight
|
|
20
|
+
* that rejects speculars, beard, glasses frames, hair), so a highlight's
|
|
21
|
+
* rim is not blended into skin before it is judged. The coverage itself is
|
|
22
|
+
* never down-weighted, so real shading is kept.
|
|
23
|
+
* - **V** (64², `low`): the vertical Gaussian, blended into the persistent
|
|
24
|
+
* `low` over time (`ConstantAlpha`, k = 1 − e^(−dt/τ), τ 250 ms; k = 1 on a
|
|
25
|
+
* reset). `low.rgb / low.a` is the local skin colour, the features filled
|
|
26
|
+
* from the skin around them (normalised convolution); `low.a` is how much
|
|
27
|
+
* skin was seen there.
|
|
28
|
+
* - **M** (1×1, `mean`): the coverage-weighted mean of `low` (so it is
|
|
29
|
+
* smoothed over time exactly like `low`); its alpha is the share of the
|
|
30
|
+
* face's skin that was seen.
|
|
31
|
+
*
|
|
32
|
+
* Targets are RGBA16F when the GPU renders to half floats, else SRGB8_ALPHA8
|
|
33
|
+
* (WebGL2 blends and filters sRGB targets in linear light). They are never
|
|
34
|
+
* mipmapped, so no float mipmap generation is needed. Nothing is read back.
|
|
35
|
+
*/
|
|
36
|
+
export declare const FACE_TEXTURE_STATS: {
|
|
37
|
+
/** The skin pass (px, square). */
|
|
38
|
+
readonly skinSize: 128;
|
|
39
|
+
/** `low` (px, square). */
|
|
40
|
+
readonly size: 64;
|
|
41
|
+
/** σ of the `low` Gaussian, cm of face. */
|
|
42
|
+
readonly sigmaCm: 0.8;
|
|
43
|
+
/** Taps per direction (odd), one `low` texel apart: ±6 texels = ±2.75 σ at 64². */
|
|
44
|
+
readonly taps: 13;
|
|
45
|
+
/** Robust weight `exp(−((lum − ref) / (spread · ref))²)`, ref = the previous local skin. */
|
|
46
|
+
readonly robustSpread: 0.35;
|
|
47
|
+
/**
|
|
48
|
+
* Share of the robust weight left in a tap window (robust / plain) below
|
|
49
|
+
* which the plain average is used instead (every tap an outlier: the
|
|
50
|
+
* reference is stale, e.g. the light changed), blended between the two.
|
|
51
|
+
*/
|
|
52
|
+
readonly robustKeep: readonly [0.05, 0.15];
|
|
53
|
+
/** Time constant of the smoothing, ms. */
|
|
54
|
+
readonly tauMs: 250;
|
|
55
|
+
/** The mean reads a grid of this many taps per side of `low`. */
|
|
56
|
+
readonly meanGrid: 16;
|
|
57
|
+
/** The skin pass's `facing` (cosines, as `FaceUnwrapFrameOptions.facing`). */
|
|
58
|
+
readonly facing: readonly [0.1, 0.4];
|
|
59
|
+
};
|
|
60
|
+
/** The statistics targets' format: `"float"` RGBA16F, `"srgb8"` SRGB8_ALPHA8. */
|
|
61
|
+
export type FaceStatsFormat = "float" | "srgb8";
|
|
62
|
+
/** `low`'s Gaussian: tap offsets (in `low` texels) and normalised weights. */
|
|
63
|
+
export type FaceStatsKernel = {
|
|
64
|
+
offsets: Float32Array;
|
|
65
|
+
weights: Float32Array;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* The Gaussian of a `low` of `size` px: σ = `sigmaCm` of face, `taps` taps
|
|
69
|
+
* at whole texels (so each tap covers whole input texels at twice the size).
|
|
70
|
+
*/
|
|
71
|
+
export declare const faceStatsKernel: (size?: number) => FaceStatsKernel;
|
|
72
|
+
/**
|
|
73
|
+
* The share of a new measurement in the smoothed statistics:
|
|
74
|
+
* `1 − e^(−dt/τ)`, 1 on a reset, 0 for no time step.
|
|
75
|
+
*/
|
|
76
|
+
export declare const faceStatsBlend: (dtMs: number, reset?: boolean, tauMs?: number) => number;
|
|
77
|
+
/**
|
|
78
|
+
* The mip level to read a full face map of `mapSize` px at, so it matches
|
|
79
|
+
* the skin pass (twice `low`'s `size`: 128² by default). Whole levels only:
|
|
80
|
+
* the map must be that size times a power of two (128, 256, 512, 1024,
|
|
81
|
+
* 2048), so every sample of the H pass lands on one texel's centre. Bake any
|
|
82
|
+
* other size into such a target first. Throws otherwise.
|
|
83
|
+
*/
|
|
84
|
+
export declare const faceStatsInputLod: (mapSize: number, size?: number) => number;
|
|
85
|
+
/** The robust weight of a sample of luminance `lum` against the reference `ref` (1 without a reference). */
|
|
86
|
+
export declare const faceStatsRobustWeight: (lum: number, ref: number) => number;
|
|
87
|
+
/**
|
|
88
|
+
* Whether this renderer can render (and blend) into RGBA16F:
|
|
89
|
+
* `EXT_color_buffer_float` or `EXT_color_buffer_half_float`, and a 1×1
|
|
90
|
+
* half-float target that is framebuffer-complete. Checked once per context.
|
|
91
|
+
*/
|
|
92
|
+
export declare const canRenderHalfFloat: (renderer: THREE.WebGLRenderer) => boolean;
|
|
93
|
+
/** `"float"` when wanted and renderable, else `"srgb8"`. */
|
|
94
|
+
export declare const resolveFaceStatsFormat: (renderer: THREE.WebGLRenderer, float: boolean) => FaceStatsFormat;
|
|
95
|
+
/** The statistics shaders (GLSL ES 3.00, for `glslVersion: THREE.GLSL3` ShaderMaterials). */
|
|
96
|
+
export declare const FACE_TEXTURE_STATS_GLSL: {
|
|
97
|
+
readonly quadVertex: "\nout vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = vec4(position.xy, 0.0, 1.0);\n}\n";
|
|
98
|
+
readonly skinVertex: "\nin vec2 cameraUv;\nin float weight;\nout vec2 vCameraUv;\nout float vWeight;\nout vec2 vAtlasUv;\nvoid main() {\n vCameraUv = cameraUv;\n vWeight = weight;\n vAtlasUv = position.xy;\n gl_Position = vec4(position.xy * 2.0 - 1.0, 0.0, 1.0);\n}\n";
|
|
99
|
+
readonly skinFragment: string;
|
|
100
|
+
readonly horizontal: string;
|
|
101
|
+
readonly vertical: string;
|
|
102
|
+
readonly mean: string;
|
|
103
|
+
};
|
|
104
|
+
export type FaceSkinPassOptions = {
|
|
105
|
+
/** Size of the pass (px, square). Default 128. */
|
|
106
|
+
size?: number;
|
|
107
|
+
/** RGBA16F when the GPU renders to it (default), else SRGB8_ALPHA8. */
|
|
108
|
+
float?: boolean;
|
|
109
|
+
/** How squarely skin must face the camera to count (cosines). Default `FACE_TEXTURE_STATS.facing`. */
|
|
110
|
+
facing?: readonly [number, number];
|
|
111
|
+
/**
|
|
112
|
+
* Which atlas texels count: a single-channel mask in the face atlas (read
|
|
113
|
+
* `.r`, rows from v = 0). Default the eroded skin mask
|
|
114
|
+
* (`getFaceSkinMaskTexture`). A lips or brows mask
|
|
115
|
+
* (`createFaceAtlasMaskTexture`) measures those instead.
|
|
116
|
+
*/
|
|
117
|
+
mask?: THREE.Texture | null;
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* The direct skin pass: the face unwrapped into the face atlas at 128²,
|
|
121
|
+
* premultiplied `(image × w, w)` with `w` = mask × facing × in-frame, so
|
|
122
|
+
* texels that were not seen are transparent. It works on any image with its
|
|
123
|
+
* landmarks: the camera, a photo, a video frame. No React needed.
|
|
124
|
+
*/
|
|
125
|
+
export declare class FaceSkinPass {
|
|
126
|
+
readonly target: THREE.WebGLRenderTarget;
|
|
127
|
+
private readonly geometry;
|
|
128
|
+
private readonly material;
|
|
129
|
+
private readonly scene;
|
|
130
|
+
private readonly camera;
|
|
131
|
+
private readonly state;
|
|
132
|
+
private readonly uniforms;
|
|
133
|
+
private options;
|
|
134
|
+
/** The unwrap frame options (one object, reused): landmarks outside the image are not skin. */
|
|
135
|
+
private readonly frame;
|
|
136
|
+
private resolvedFormat;
|
|
137
|
+
constructor(options?: FaceSkinPassOptions);
|
|
138
|
+
/** The last pass: atlas layout, linear, premultiplied by the skin weight. */
|
|
139
|
+
get texture(): THREE.Texture;
|
|
140
|
+
/** The format in use (`null` before the first `render`). */
|
|
141
|
+
get format(): FaceStatsFormat | null;
|
|
142
|
+
setOptions(options: FaceSkinPassOptions): void;
|
|
143
|
+
/**
|
|
144
|
+
* Unwraps `image` (sRGB images are read in linear light) at `landmarks`
|
|
145
|
+
* (≥ 468, normalized image space, y down; as the tracker or
|
|
146
|
+
* `detectFaceImage` gives them). `aspect` defaults to the image's own.
|
|
147
|
+
* Leaves the renderer's target, clear colour and `autoClear` as they were.
|
|
148
|
+
*/
|
|
149
|
+
render(renderer: THREE.WebGLRenderer, image: THREE.Texture, landmarks: ArrayLike<FaceImageLandmark>, aspect?: number): void;
|
|
150
|
+
dispose(): void;
|
|
151
|
+
}
|
|
152
|
+
export type FaceTextureStatsOptions = {
|
|
153
|
+
/** `low`'s size (px, square). Default 64. */
|
|
154
|
+
size?: number;
|
|
155
|
+
/** RGBA16F when the GPU renders to it (default), else SRGB8_ALPHA8. */
|
|
156
|
+
float?: boolean;
|
|
157
|
+
/** Smoothing time constant, ms. Default 250. */
|
|
158
|
+
tauMs?: number;
|
|
159
|
+
};
|
|
160
|
+
export type FaceTextureStatsUpdate = {
|
|
161
|
+
/** ms since the previous update (the smoothing's time step). */
|
|
162
|
+
dtMs: number;
|
|
163
|
+
/**
|
|
164
|
+
* Restart the smoothing (k = 1): a face (re)acquired, the camera texture
|
|
165
|
+
* replaced, a jump. The first update always restarts.
|
|
166
|
+
*/
|
|
167
|
+
reset?: boolean;
|
|
168
|
+
/**
|
|
169
|
+
* The input is a full face map rather than a skin pass: multiply it by the
|
|
170
|
+
* eroded skin mask. Default `false`. For maps without landmarks only (a
|
|
171
|
+
* painted face): everything with alpha counts as seen skin, mirror-filled
|
|
172
|
+
* and padded texels included, and nothing is gated by facing or the image
|
|
173
|
+
* edge. A face with landmarks (live or a photo) uses `updateFromImage`.
|
|
174
|
+
*/
|
|
175
|
+
mask?: boolean;
|
|
176
|
+
/**
|
|
177
|
+
* The input's mip level, a whole number: `faceStatsInputLod(mapSize)` for a
|
|
178
|
+
* full map (mipmapped, 128 × 2^k px). The level read must be twice `low`'s
|
|
179
|
+
* size (128² by default). Default 0.
|
|
180
|
+
*/
|
|
181
|
+
lod?: number;
|
|
182
|
+
};
|
|
183
|
+
/**
|
|
184
|
+
* The skin statistics of one face (see the module comment): `low` (64²) and
|
|
185
|
+
* `mean` (1×1), linear light, premultiplied by skin coverage, in the face
|
|
186
|
+
* atlas, smoothed over time in place. The textures keep their identity for
|
|
187
|
+
* the object's life, so bind them once. Run `update` at the statistics rate
|
|
188
|
+
* (and only on new landmarks); there is no readback. No React needed.
|
|
189
|
+
*/
|
|
190
|
+
export declare class FaceTextureStats {
|
|
191
|
+
/** Local skin colour: `rgb / a`, filled across the features; `a` = skin seen there. */
|
|
192
|
+
readonly low: THREE.Texture;
|
|
193
|
+
/** Mean skin colour: `rgb / a`; `a` = the share of the face's skin seen. */
|
|
194
|
+
readonly mean: THREE.Texture;
|
|
195
|
+
private readonly lowTarget;
|
|
196
|
+
private readonly meanTarget;
|
|
197
|
+
private readonly horizontalTarget;
|
|
198
|
+
private skinPass;
|
|
199
|
+
private readonly scene;
|
|
200
|
+
private readonly quad;
|
|
201
|
+
private readonly camera;
|
|
202
|
+
private readonly state;
|
|
203
|
+
private readonly horizontalUniforms;
|
|
204
|
+
private readonly verticalUniforms;
|
|
205
|
+
private readonly meanUniforms;
|
|
206
|
+
private readonly horizontal;
|
|
207
|
+
private readonly vertical;
|
|
208
|
+
private readonly meanMaterial;
|
|
209
|
+
private size;
|
|
210
|
+
private float;
|
|
211
|
+
private tauMs;
|
|
212
|
+
private resolvedFormat;
|
|
213
|
+
/** Statistics exist (bound textures hold a result). */
|
|
214
|
+
private valid;
|
|
215
|
+
/** `reset()` was called: the next update restarts the smoothing. */
|
|
216
|
+
private restartPending;
|
|
217
|
+
/** `updateFromImage`'s update (one object, reused). */
|
|
218
|
+
private readonly imageUpdate;
|
|
219
|
+
constructor(options?: FaceTextureStatsOptions);
|
|
220
|
+
/** The format in use (`null` before the first update). */
|
|
221
|
+
get format(): FaceStatsFormat | null;
|
|
222
|
+
/**
|
|
223
|
+
* True once statistics have been computed (since construction or a format
|
|
224
|
+
* change). `reset()` keeps it: the last statistics stay bound and usable
|
|
225
|
+
* until the next update restarts them.
|
|
226
|
+
*/
|
|
227
|
+
get ready(): boolean;
|
|
228
|
+
/** The size the input is read at (px, square): twice `low`'s, the skin pass's size. */
|
|
229
|
+
get readSize(): number;
|
|
230
|
+
/** The last skin pass of `updateFromImage` (`null` before one). */
|
|
231
|
+
get skinTexture(): THREE.Texture | null;
|
|
232
|
+
/** `float` (re-made on next update if the format changes) and `tauMs`. */
|
|
233
|
+
setOptions(options: Pick<FaceTextureStatsOptions, "float" | "tauMs">): void;
|
|
234
|
+
/**
|
|
235
|
+
* The next update restarts the smoothing (k = 1). `ready` stays as it is:
|
|
236
|
+
* the last statistics stay bound until then.
|
|
237
|
+
*/
|
|
238
|
+
reset(): void;
|
|
239
|
+
/**
|
|
240
|
+
* Updates the statistics from `input`: a skin pass (`FaceSkinPass`) or,
|
|
241
|
+
* with `mask: true`, a full face map in the face atlas (premultiplied,
|
|
242
|
+
* read at `lod`). Leaves the renderer's target, clear colour and
|
|
243
|
+
* `autoClear` as they were. Throws when `lod` is not a whole level, or
|
|
244
|
+
* when the input (its size known) is not `readSize` px at that level or is
|
|
245
|
+
* read below level 0 without mipmaps.
|
|
246
|
+
*/
|
|
247
|
+
update(renderer: THREE.WebGLRenderer, input: THREE.Texture, update: FaceTextureStatsUpdate): void;
|
|
248
|
+
/**
|
|
249
|
+
* A skin pass of `image` at `landmarks` (see `FaceSkinPass.render`), then
|
|
250
|
+
* `update` from it. The path for every face with landmarks, live or a
|
|
251
|
+
* photo: only skin that was seen (facing the camera, inside the image)
|
|
252
|
+
* counts.
|
|
253
|
+
*/
|
|
254
|
+
updateFromImage(renderer: THREE.WebGLRenderer, image: THREE.Texture, landmarks: ArrayLike<FaceImageLandmark>, update: Omit<FaceTextureStatsUpdate, "mask" | "lod"> & {
|
|
255
|
+
aspect?: number;
|
|
256
|
+
}): void;
|
|
257
|
+
private checkInput;
|
|
258
|
+
private ensureFormat;
|
|
259
|
+
private passes;
|
|
260
|
+
dispose(): void;
|
|
261
|
+
}
|
|
262
|
+
/** A float image, rows from v = 0 (as a render target reads back). */
|
|
263
|
+
export type FaceStatsImage = {
|
|
264
|
+
width: number;
|
|
265
|
+
height: number;
|
|
266
|
+
/** 1 (a mask: `.r`) or 4 (premultiplied RGBA). */
|
|
267
|
+
channels: 1 | 4;
|
|
268
|
+
data: Float32Array;
|
|
269
|
+
};
|
|
270
|
+
/** Bilinear, clamped to the edge, as `texture()` with linear filtering samples it. */
|
|
271
|
+
export declare const sampleFaceStatsImage: (image: FaceStatsImage, u: number, v: number, out?: [number, number, number, number]) => [number, number, number, number];
|
|
272
|
+
export type FaceTextureStatsReferenceInput = {
|
|
273
|
+
/** The skin pass or full map (premultiplied RGBA), read at LOD 0. */
|
|
274
|
+
input: FaceStatsImage;
|
|
275
|
+
/** The eroded skin mask (1 channel), e.g. `createFaceSkinMask(128, "bottom")` / 255. */
|
|
276
|
+
skinMask: FaceStatsImage;
|
|
277
|
+
/** Multiply the input by the mask (a full map). */
|
|
278
|
+
mask?: boolean;
|
|
279
|
+
/** The previous `low` and `mean`, or null for a restart (plain, then robust). */
|
|
280
|
+
previous: {
|
|
281
|
+
low: FaceStatsImage;
|
|
282
|
+
mean: readonly [number, number, number, number];
|
|
283
|
+
} | null;
|
|
284
|
+
/** The blend of the new measurement (ignored on a restart). */
|
|
285
|
+
k?: number;
|
|
286
|
+
/** `low`'s size. Default 64. */
|
|
287
|
+
size?: number;
|
|
288
|
+
};
|
|
289
|
+
/**
|
|
290
|
+
* The statistics passes on the CPU: `{ horizontal, low, mean }` as
|
|
291
|
+
* `FaceTextureStats.update` computes them (a restart runs the plain pass,
|
|
292
|
+
* then the robust pass against it).
|
|
293
|
+
*/
|
|
294
|
+
export declare const faceTextureStatsReference: ({ input, skinMask, mask, previous, k, size, }: FaceTextureStatsReferenceInput) => {
|
|
295
|
+
horizontal: FaceStatsImage;
|
|
296
|
+
low: FaceStatsImage;
|
|
297
|
+
mean: [number, number, number, number];
|
|
298
|
+
};
|