@aura3d/engine 2.0.3 → 3.0.0
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/README.md +37 -46
- package/dist/animation/AnimationAction.d.ts.map +1 -1
- package/dist/animation/AnimationAction.js +20 -2
- package/dist/animation/AnimationAction.js.map +1 -1
- package/dist/animation/AnimationLayer.d.ts +1 -0
- package/dist/animation/AnimationLayer.d.ts.map +1 -1
- package/dist/animation/AnimationLayer.js +24 -3
- package/dist/animation/AnimationLayer.js.map +1 -1
- package/dist/animation/AnimationMixer.d.ts +3 -0
- package/dist/animation/AnimationMixer.d.ts.map +1 -1
- package/dist/animation/AnimationMixer.js +69 -5
- package/dist/animation/AnimationMixer.js.map +1 -1
- package/dist/animation/AnimationTrack.d.ts.map +1 -1
- package/dist/animation/AnimationTrack.js +13 -0
- package/dist/animation/AnimationTrack.js.map +1 -1
- package/dist/animation/FootIk.d.ts +10 -0
- package/dist/animation/FootIk.d.ts.map +1 -1
- package/dist/animation/FootIk.js +95 -3
- package/dist/animation/FootIk.js.map +1 -1
- package/dist/animation/HumanoidRetargeting.d.ts +29 -0
- package/dist/animation/HumanoidRetargeting.d.ts.map +1 -1
- package/dist/animation/HumanoidRetargeting.js +41 -1
- package/dist/animation/HumanoidRetargeting.js.map +1 -1
- package/dist/animation/LocomotionKit.d.ts +6 -0
- package/dist/animation/LocomotionKit.d.ts.map +1 -1
- package/dist/animation/LocomotionKit.js +6 -0
- package/dist/animation/LocomotionKit.js.map +1 -1
- package/dist/animation/RootMotion.d.ts +27 -0
- package/dist/animation/RootMotion.d.ts.map +1 -1
- package/dist/animation/RootMotion.js +38 -0
- package/dist/animation/RootMotion.js.map +1 -1
- package/dist/animation/SpringBones.d.ts +28 -0
- package/dist/animation/SpringBones.d.ts.map +1 -1
- package/dist/animation/SpringBones.js +24 -0
- package/dist/animation/SpringBones.js.map +1 -1
- package/dist/assets/GLTFAnimationRuntime.d.ts +95 -2
- package/dist/assets/GLTFAnimationRuntime.d.ts.map +1 -1
- package/dist/assets/GLTFAnimationRuntime.js +328 -3
- package/dist/assets/GLTFAnimationRuntime.js.map +1 -1
- package/dist/assets/GLTFExtensionSupport.js +2 -2
- package/dist/assets/GLTFExtensionSupport.js.map +1 -1
- package/dist/assets/GLTFLoader.d.ts +360 -1
- package/dist/assets/GLTFLoader.d.ts.map +1 -1
- package/dist/assets/GLTFLoader.js +197 -1
- package/dist/assets/GLTFLoader.js.map +1 -1
- package/dist/assets/KTX2BasisTextureTranscoder.d.ts +39 -0
- package/dist/assets/KTX2BasisTextureTranscoder.d.ts.map +1 -1
- package/dist/assets/KTX2BasisTextureTranscoder.js +70 -0
- package/dist/assets/KTX2BasisTextureTranscoder.js.map +1 -1
- package/dist/assets/TexturePipeline.d.ts +20 -0
- package/dist/assets/TexturePipeline.d.ts.map +1 -1
- package/dist/assets/TexturePipeline.js +20 -0
- package/dist/assets/TexturePipeline.js.map +1 -1
- package/dist/assets/TextureStreaming.d.ts +30 -0
- package/dist/assets/TextureStreaming.d.ts.map +1 -1
- package/dist/assets/TextureStreaming.js +53 -0
- package/dist/assets/TextureStreaming.js.map +1 -1
- package/dist/assets/browser-index.d.ts +7 -3
- package/dist/assets/browser-index.d.ts.map +1 -1
- package/dist/assets/browser-index.js +3 -1
- package/dist/assets/browser-index.js.map +1 -1
- package/dist/assets/gltf-runtime.d.ts +1 -1
- package/dist/assets/gltf-runtime.d.ts.map +1 -1
- package/dist/assets/gltf-runtime.js.map +1 -1
- package/dist/assets/index.d.ts +7 -7
- package/dist/assets/index.d.ts.map +1 -1
- package/dist/assets/index.js +3 -3
- package/dist/assets/index.js.map +1 -1
- package/dist/assets/loaders/HDRLoader.d.ts +40 -0
- package/dist/assets/loaders/HDRLoader.d.ts.map +1 -1
- package/dist/assets/loaders/HDRLoader.js +158 -0
- package/dist/assets/loaders/HDRLoader.js.map +1 -1
- package/dist/audio/AudioSource.d.ts +2 -0
- package/dist/audio/AudioSource.d.ts.map +1 -1
- package/dist/audio/AudioSource.js +7 -0
- package/dist/audio/AudioSource.js.map +1 -1
- package/dist/audio/Footsteps.d.ts +47 -0
- package/dist/audio/Footsteps.d.ts.map +1 -0
- package/dist/audio/Footsteps.js +73 -0
- package/dist/audio/Footsteps.js.map +1 -0
- package/dist/audio/GameMixer.d.ts +69 -0
- package/dist/audio/GameMixer.d.ts.map +1 -0
- package/dist/audio/GameMixer.js +141 -0
- package/dist/audio/GameMixer.js.map +1 -0
- package/dist/audio/PositionalEmitter.d.ts +95 -0
- package/dist/audio/PositionalEmitter.d.ts.map +1 -0
- package/dist/audio/PositionalEmitter.js +199 -0
- package/dist/audio/PositionalEmitter.js.map +1 -0
- package/dist/audio/index.d.ts +6 -0
- package/dist/audio/index.d.ts.map +1 -1
- package/dist/audio/index.js +3 -0
- package/dist/audio/index.js.map +1 -1
- package/dist/aura3d-cli/asset-core-types.d.ts +19 -0
- package/dist/aura3d-cli/asset-core-types.d.ts.map +1 -1
- package/dist/aura3d-cli/asset-manifest.d.ts.map +1 -1
- package/dist/aura3d-cli/asset-manifest.js +2 -1
- package/dist/aura3d-cli/asset-manifest.js.map +1 -1
- package/dist/aura3d-cli/cli-help.d.ts.map +1 -1
- package/dist/aura3d-cli/cli-help.js +2 -0
- package/dist/aura3d-cli/cli-help.js.map +1 -1
- package/dist/aura3d-cli/cli.js +24 -1
- package/dist/aura3d-cli/cli.js.map +1 -1
- package/dist/aura3d-cli/index.d.ts +5 -1
- package/dist/aura3d-cli/index.d.ts.map +1 -1
- package/dist/aura3d-cli/index.js +5 -1
- package/dist/aura3d-cli/index.js.map +1 -1
- package/dist/aura3d-cli/meshy/admission.d.ts +40 -0
- package/dist/aura3d-cli/meshy/admission.d.ts.map +1 -0
- package/dist/aura3d-cli/meshy/admission.js +126 -0
- package/dist/aura3d-cli/meshy/admission.js.map +1 -0
- package/dist/aura3d-cli/meshy/evidence.d.ts +12 -0
- package/dist/aura3d-cli/meshy/evidence.d.ts.map +1 -0
- package/dist/aura3d-cli/meshy/evidence.js +37 -0
- package/dist/aura3d-cli/meshy/evidence.js.map +1 -0
- package/dist/aura3d-cli/meshy/import.d.ts +25 -0
- package/dist/aura3d-cli/meshy/import.d.ts.map +1 -0
- package/dist/aura3d-cli/meshy/import.js +104 -0
- package/dist/aura3d-cli/meshy/import.js.map +1 -0
- package/dist/aura3d-cli/meshy/index.d.ts +10 -0
- package/dist/aura3d-cli/meshy/index.d.ts.map +1 -0
- package/dist/aura3d-cli/meshy/index.js +6 -0
- package/dist/aura3d-cli/meshy/index.js.map +1 -0
- package/dist/aura3d-cli/meshy/metadata.d.ts +22 -0
- package/dist/aura3d-cli/meshy/metadata.d.ts.map +1 -0
- package/dist/aura3d-cli/meshy/metadata.js +176 -0
- package/dist/aura3d-cli/meshy/metadata.js.map +1 -0
- package/dist/aura3d-cli/meshy/provenance.d.ts +4 -0
- package/dist/aura3d-cli/meshy/provenance.d.ts.map +1 -0
- package/dist/aura3d-cli/meshy/provenance.js +21 -0
- package/dist/aura3d-cli/meshy/provenance.js.map +1 -0
- package/dist/aura3d-cli/meshy/thumbnail.d.ts +19 -0
- package/dist/aura3d-cli/meshy/thumbnail.d.ts.map +1 -0
- package/dist/aura3d-cli/meshy/thumbnail.js +59 -0
- package/dist/aura3d-cli/meshy/thumbnail.js.map +1 -0
- package/dist/aura3d-cli/meshy/validation.d.ts +5 -0
- package/dist/aura3d-cli/meshy/validation.d.ts.map +1 -0
- package/dist/aura3d-cli/meshy/validation.js +64 -0
- package/dist/aura3d-cli/meshy/validation.js.map +1 -0
- package/dist/aura3d-cli/pull-bridge/profiles.d.ts +12 -2
- package/dist/aura3d-cli/pull-bridge/profiles.d.ts.map +1 -1
- package/dist/aura3d-cli/pull-bridge/profiles.js +35 -4
- package/dist/aura3d-cli/pull-bridge/profiles.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge/provenance.d.ts +15 -1
- package/dist/aura3d-cli/pull-bridge/provenance.d.ts.map +1 -1
- package/dist/aura3d-cli/pull-bridge/provenance.js +60 -1
- package/dist/aura3d-cli/pull-bridge/provenance.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge/scoring.d.ts +10 -1
- package/dist/aura3d-cli/pull-bridge/scoring.d.ts.map +1 -1
- package/dist/aura3d-cli/pull-bridge/scoring.js +9 -1
- package/dist/aura3d-cli/pull-bridge/scoring.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge/search.js +2 -2
- package/dist/aura3d-cli/pull-bridge/search.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge.d.ts +15 -3
- package/dist/aura3d-cli/pull-bridge.d.ts.map +1 -1
- package/dist/aura3d-cli/pull-bridge.js +68 -5
- package/dist/aura3d-cli/pull-bridge.js.map +1 -1
- package/dist/controls/ArcballControls.d.ts +92 -0
- package/dist/controls/ArcballControls.d.ts.map +1 -0
- package/dist/controls/ArcballControls.js +286 -0
- package/dist/controls/ArcballControls.js.map +1 -0
- package/dist/controls/DragControls.d.ts +13 -0
- package/dist/controls/DragControls.d.ts.map +1 -1
- package/dist/controls/DragControls.js +24 -1
- package/dist/controls/DragControls.js.map +1 -1
- package/dist/controls/FlyControls.d.ts +9 -0
- package/dist/controls/FlyControls.d.ts.map +1 -1
- package/dist/controls/FlyControls.js +20 -2
- package/dist/controls/FlyControls.js.map +1 -1
- package/dist/controls/FocusFrame.d.ts +34 -0
- package/dist/controls/FocusFrame.d.ts.map +1 -0
- package/dist/controls/FocusFrame.js +82 -0
- package/dist/controls/FocusFrame.js.map +1 -0
- package/dist/controls/HoverOutline.d.ts +46 -0
- package/dist/controls/HoverOutline.d.ts.map +1 -0
- package/dist/controls/HoverOutline.js +87 -0
- package/dist/controls/HoverOutline.js.map +1 -0
- package/dist/controls/InteractionControls.d.ts +7 -0
- package/dist/controls/InteractionControls.d.ts.map +1 -1
- package/dist/controls/InteractionControls.js +12 -1
- package/dist/controls/InteractionControls.js.map +1 -1
- package/dist/controls/NativeControlTypes.d.ts +17 -0
- package/dist/controls/NativeControlTypes.d.ts.map +1 -1
- package/dist/controls/NativeControlTypes.js.map +1 -1
- package/dist/controls/OrbitControls.d.ts +9 -0
- package/dist/controls/OrbitControls.d.ts.map +1 -1
- package/dist/controls/OrbitControls.js +26 -6
- package/dist/controls/OrbitControls.js.map +1 -1
- package/dist/controls/Picking.d.ts +15 -0
- package/dist/controls/Picking.d.ts.map +1 -1
- package/dist/controls/Picking.js +62 -23
- package/dist/controls/Picking.js.map +1 -1
- package/dist/controls/PointerLockControls.d.ts.map +1 -1
- package/dist/controls/PointerLockControls.js +4 -0
- package/dist/controls/PointerLockControls.js.map +1 -1
- package/dist/controls/SelectionManager.d.ts +8 -0
- package/dist/controls/SelectionManager.d.ts.map +1 -1
- package/dist/controls/SelectionManager.js +11 -0
- package/dist/controls/SelectionManager.js.map +1 -1
- package/dist/controls/TrackballControls.d.ts +7 -0
- package/dist/controls/TrackballControls.d.ts.map +1 -1
- package/dist/controls/TrackballControls.js +19 -5
- package/dist/controls/TrackballControls.js.map +1 -1
- package/dist/controls/TransformControls.d.ts +8 -0
- package/dist/controls/TransformControls.d.ts.map +1 -1
- package/dist/controls/TransformControls.js +15 -2
- package/dist/controls/TransformControls.js.map +1 -1
- package/dist/controls/index.d.ts +6 -0
- package/dist/controls/index.d.ts.map +1 -1
- package/dist/controls/index.js +3 -0
- package/dist/controls/index.js.map +1 -1
- package/dist/create-aura3d/index.js +1 -1
- package/dist/create-aura3d/showcase-spec-game-geometry-extractor.d.ts.map +1 -1
- package/dist/create-aura3d/showcase-spec-game-geometry-extractor.js +86 -4
- package/dist/create-aura3d/showcase-spec-game-geometry-extractor.js.map +1 -1
- package/dist/editor-runtime/RootEditorSurface.d.ts +65 -0
- package/dist/editor-runtime/RootEditorSurface.d.ts.map +1 -0
- package/dist/editor-runtime/RootEditorSurface.js +62 -0
- package/dist/editor-runtime/RootEditorSurface.js.map +1 -0
- package/dist/editor-runtime/index.d.ts +2 -0
- package/dist/editor-runtime/index.d.ts.map +1 -1
- package/dist/editor-runtime/index.js +1 -0
- package/dist/editor-runtime/index.js.map +1 -1
- package/dist/engine/agent-api/AnimationController.d.ts +9 -1
- package/dist/engine/agent-api/AnimationController.d.ts.map +1 -1
- package/dist/engine/agent-api/AnimationController.js +5 -1
- package/dist/engine/agent-api/AnimationController.js.map +1 -1
- package/dist/engine/agent-api/AnimationDebugOverlay.d.ts +56 -0
- package/dist/engine/agent-api/AnimationDebugOverlay.d.ts.map +1 -0
- package/dist/engine/agent-api/AnimationDebugOverlay.js +148 -0
- package/dist/engine/agent-api/AnimationDebugOverlay.js.map +1 -0
- package/dist/engine/agent-api/AnimationMixerBuilders.d.ts +41 -0
- package/dist/engine/agent-api/AnimationMixerBuilders.d.ts.map +1 -0
- package/dist/engine/agent-api/AnimationMixerBuilders.js +146 -0
- package/dist/engine/agent-api/AnimationMixerBuilders.js.map +1 -0
- package/dist/engine/agent-api/AssetDecoders.d.ts +17 -0
- package/dist/engine/agent-api/AssetDecoders.d.ts.map +1 -0
- package/dist/engine/agent-api/AssetDecoders.js +18 -0
- package/dist/engine/agent-api/AssetDecoders.js.map +1 -0
- package/dist/engine/agent-api/Decals.d.ts +174 -0
- package/dist/engine/agent-api/Decals.d.ts.map +1 -0
- package/dist/engine/agent-api/Decals.js +350 -0
- package/dist/engine/agent-api/Decals.js.map +1 -0
- package/dist/engine/agent-api/FootPlanting.d.ts +75 -0
- package/dist/engine/agent-api/FootPlanting.d.ts.map +1 -0
- package/dist/engine/agent-api/FootPlanting.js +60 -0
- package/dist/engine/agent-api/FootPlanting.js.map +1 -0
- package/dist/engine/agent-api/GameAppRuntime.d.ts +19 -0
- package/dist/engine/agent-api/GameAppRuntime.d.ts.map +1 -1
- package/dist/engine/agent-api/GameAppRuntime.js +37 -1
- package/dist/engine/agent-api/GameAppRuntime.js.map +1 -1
- package/dist/engine/agent-api/GameCameraRigs.d.ts +185 -0
- package/dist/engine/agent-api/GameCameraRigs.d.ts.map +1 -0
- package/dist/engine/agent-api/GameCameraRigs.js +414 -0
- package/dist/engine/agent-api/GameCameraRigs.js.map +1 -0
- package/dist/engine/agent-api/GameFeel.d.ts +100 -0
- package/dist/engine/agent-api/GameFeel.d.ts.map +1 -0
- package/dist/engine/agent-api/GameFeel.js +226 -0
- package/dist/engine/agent-api/GameFeel.js.map +1 -0
- package/dist/engine/agent-api/GameGenreKits.d.ts.map +1 -1
- package/dist/engine/agent-api/GameGenreKits.js +26 -3
- package/dist/engine/agent-api/GameGenreKits.js.map +1 -1
- package/dist/engine/agent-api/LabelTelemetry.d.ts +108 -0
- package/dist/engine/agent-api/LabelTelemetry.d.ts.map +1 -0
- package/dist/engine/agent-api/LabelTelemetry.js +116 -0
- package/dist/engine/agent-api/LabelTelemetry.js.map +1 -0
- package/dist/engine/agent-api/NavigationCrowds.d.ts +146 -0
- package/dist/engine/agent-api/NavigationCrowds.d.ts.map +1 -0
- package/dist/engine/agent-api/NavigationCrowds.js +104 -0
- package/dist/engine/agent-api/NavigationCrowds.js.map +1 -0
- package/dist/engine/agent-api/PhysicsRuntime.d.ts +61 -5
- package/dist/engine/agent-api/PhysicsRuntime.d.ts.map +1 -1
- package/dist/engine/agent-api/PhysicsRuntime.js +53 -21
- package/dist/engine/agent-api/PhysicsRuntime.js.map +1 -1
- package/dist/engine/agent-api/RootGeometry.d.ts +16 -1
- package/dist/engine/agent-api/RootGeometry.d.ts.map +1 -1
- package/dist/engine/agent-api/RootGeometry.js.map +1 -1
- package/dist/engine/agent-api/RuntimeNodeHandle.d.ts +6 -0
- package/dist/engine/agent-api/RuntimeNodeHandle.d.ts.map +1 -1
- package/dist/engine/agent-api/RuntimeNodeHandle.js.map +1 -1
- package/dist/engine/agent-api/Scatter.d.ts +18 -0
- package/dist/engine/agent-api/Scatter.d.ts.map +1 -0
- package/dist/engine/agent-api/Scatter.js +18 -0
- package/dist/engine/agent-api/Scatter.js.map +1 -0
- package/dist/engine/agent-api/TouchControlBinding.d.ts +32 -0
- package/dist/engine/agent-api/TouchControlBinding.d.ts.map +1 -1
- package/dist/engine/agent-api/TouchControlBinding.js +36 -0
- package/dist/engine/agent-api/TouchControlBinding.js.map +1 -1
- package/dist/engine/agent-api/VehicleChassis.d.ts.map +1 -1
- package/dist/engine/agent-api/VehicleChassis.js +76 -13
- package/dist/engine/agent-api/VehicleChassis.js.map +1 -1
- package/dist/engine/agent-api/index.d.ts +723 -6
- package/dist/engine/agent-api/index.d.ts.map +1 -1
- package/dist/engine/agent-api/index.js +1805 -137
- package/dist/engine/agent-api/index.js.map +1 -1
- package/dist/engine/agent-api/product-viewer-runtime.d.ts.map +1 -1
- package/dist/engine/game/GameAudio.d.ts +66 -0
- package/dist/engine/game/GameAudio.d.ts.map +1 -1
- package/dist/engine/game/GameAudio.js +179 -44
- package/dist/engine/game/GameAudio.js.map +1 -1
- package/dist/engine/instances-model/InstancedModel.d.ts +111 -0
- package/dist/engine/instances-model/InstancedModel.d.ts.map +1 -0
- package/dist/engine/instances-model/InstancedModel.js +108 -0
- package/dist/engine/instances-model/InstancedModel.js.map +1 -0
- package/dist/engine/material-physical/PhysicalMaterialSpec.d.ts +72 -0
- package/dist/engine/material-physical/PhysicalMaterialSpec.d.ts.map +1 -0
- package/dist/engine/material-physical/PhysicalMaterialSpec.js +95 -0
- package/dist/engine/material-physical/PhysicalMaterialSpec.js.map +1 -0
- package/dist/engine/production-runtime/GameAppRuntime.d.ts +1 -1
- package/dist/engine/production-runtime/GameAppRuntime.d.ts.map +1 -1
- package/dist/engine/production-runtime/GameRenderPreset.d.ts +76 -0
- package/dist/engine/production-runtime/GameRenderPreset.d.ts.map +1 -1
- package/dist/engine/production-runtime/GameRenderPreset.js +167 -0
- package/dist/engine/production-runtime/GameRenderPreset.js.map +1 -1
- package/dist/engine/production-runtime/TypedGLBActor.d.ts +36 -2
- package/dist/engine/production-runtime/TypedGLBActor.d.ts.map +1 -1
- package/dist/engine/production-runtime/TypedGLBActor.js +92 -5
- package/dist/engine/production-runtime/TypedGLBActor.js.map +1 -1
- package/dist/engine/production-runtime/index.d.ts +4 -4
- package/dist/engine/production-runtime/index.d.ts.map +1 -1
- package/dist/engine/production-runtime/index.js +5 -3
- package/dist/engine/production-runtime/index.js.map +1 -1
- package/dist/input/ActionMap.d.ts +40 -0
- package/dist/input/ActionMap.d.ts.map +1 -1
- package/dist/input/ActionMap.js +179 -0
- package/dist/input/ActionMap.js.map +1 -1
- package/dist/input/ComboDetector.d.ts +49 -0
- package/dist/input/ComboDetector.d.ts.map +1 -0
- package/dist/input/ComboDetector.js +102 -0
- package/dist/input/ComboDetector.js.map +1 -0
- package/dist/input/Haptics.d.ts +46 -0
- package/dist/input/Haptics.d.ts.map +1 -0
- package/dist/input/Haptics.js +67 -0
- package/dist/input/Haptics.js.map +1 -0
- package/dist/input/TouchLayouts.d.ts +35 -0
- package/dist/input/TouchLayouts.d.ts.map +1 -0
- package/dist/input/TouchLayouts.js +88 -0
- package/dist/input/TouchLayouts.js.map +1 -0
- package/dist/input/WebXRSessionController.d.ts +53 -0
- package/dist/input/WebXRSessionController.d.ts.map +1 -1
- package/dist/input/WebXRSessionController.js +88 -2
- package/dist/input/WebXRSessionController.js.map +1 -1
- package/dist/input/index.d.ts +8 -2
- package/dist/input/index.d.ts.map +1 -1
- package/dist/input/index.js +3 -0
- package/dist/input/index.js.map +1 -1
- package/dist/lean/game.d.ts +98 -0
- package/dist/lean/game.d.ts.map +1 -1
- package/dist/lean/game.js +192 -0
- package/dist/lean/game.js.map +1 -1
- package/dist/materials/GameReadyMaterialLibrary.d.ts +39 -0
- package/dist/materials/GameReadyMaterialLibrary.d.ts.map +1 -0
- package/dist/materials/GameReadyMaterialLibrary.js +253 -0
- package/dist/materials/GameReadyMaterialLibrary.js.map +1 -0
- package/dist/materials/MaterialValidation.d.ts +21 -0
- package/dist/materials/MaterialValidation.d.ts.map +1 -1
- package/dist/materials/MaterialValidation.js +105 -0
- package/dist/materials/MaterialValidation.js.map +1 -1
- package/dist/materials/browser-index.d.ts +2 -0
- package/dist/materials/browser-index.d.ts.map +1 -1
- package/dist/materials/browser-index.js +1 -0
- package/dist/materials/browser-index.js.map +1 -1
- package/dist/materials/node.d.ts +2 -2
- package/dist/materials/node.d.ts.map +1 -1
- package/dist/materials/node.js +1 -1
- package/dist/materials/node.js.map +1 -1
- package/dist/physics/CollisionVolumes.d.ts +59 -0
- package/dist/physics/CollisionVolumes.d.ts.map +1 -1
- package/dist/physics/CollisionVolumes.js +87 -0
- package/dist/physics/CollisionVolumes.js.map +1 -1
- package/dist/physics/PhysicsDebugDraw.d.ts +37 -0
- package/dist/physics/PhysicsDebugDraw.d.ts.map +1 -1
- package/dist/physics/PhysicsDebugDraw.js +38 -1
- package/dist/physics/PhysicsDebugDraw.js.map +1 -1
- package/dist/physics/PhysicsWorld.d.ts +15 -0
- package/dist/physics/PhysicsWorld.d.ts.map +1 -1
- package/dist/physics/PhysicsWorld.js +8 -1
- package/dist/physics/PhysicsWorld.js.map +1 -1
- package/dist/physics/solverless.d.ts +1 -1
- package/dist/physics/solverless.d.ts.map +1 -1
- package/dist/physics/solverless.js.map +1 -1
- package/dist/physics-rapier/index.d.ts +7 -1
- package/dist/physics-rapier/index.d.ts.map +1 -1
- package/dist/physics-rapier/index.js +1 -1
- package/dist/physics-rapier/index.js.map +1 -1
- package/dist/react/index.d.ts +136 -2
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +251 -10
- package/dist/react/index.js.map +1 -1
- package/dist/rendering/AtmosphereWetness.d.ts +61 -0
- package/dist/rendering/AtmosphereWetness.d.ts.map +1 -0
- package/dist/rendering/AtmosphereWetness.js +99 -0
- package/dist/rendering/AtmosphereWetness.js.map +1 -0
- package/dist/rendering/ClusteredForwardLighting.d.ts +25 -1
- package/dist/rendering/ClusteredForwardLighting.d.ts.map +1 -1
- package/dist/rendering/ClusteredForwardLighting.js +80 -3
- package/dist/rendering/ClusteredForwardLighting.js.map +1 -1
- package/dist/rendering/DayNightSky.d.ts +63 -0
- package/dist/rendering/DayNightSky.d.ts.map +1 -0
- package/dist/rendering/DayNightSky.js +156 -0
- package/dist/rendering/DayNightSky.js.map +1 -0
- package/dist/rendering/EnvironmentPresetPack.d.ts +30 -0
- package/dist/rendering/EnvironmentPresetPack.d.ts.map +1 -0
- package/dist/rendering/EnvironmentPresetPack.js +49 -0
- package/dist/rendering/EnvironmentPresetPack.js.map +1 -0
- package/dist/rendering/ForwardPass.d.ts +67 -0
- package/dist/rendering/ForwardPass.d.ts.map +1 -1
- package/dist/rendering/ForwardPass.js +196 -2
- package/dist/rendering/ForwardPass.js.map +1 -1
- package/dist/rendering/InstancedPBRMaterial.d.ts +1 -0
- package/dist/rendering/InstancedPBRMaterial.d.ts.map +1 -1
- package/dist/rendering/InstancedPBRMaterial.js +3 -0
- package/dist/rendering/InstancedPBRMaterial.js.map +1 -1
- package/dist/rendering/InstancingDiagnostics.d.ts +69 -0
- package/dist/rendering/InstancingDiagnostics.d.ts.map +1 -0
- package/dist/rendering/InstancingDiagnostics.js +98 -0
- package/dist/rendering/InstancingDiagnostics.js.map +1 -0
- package/dist/rendering/LightingRig.d.ts +19 -1
- package/dist/rendering/LightingRig.d.ts.map +1 -1
- package/dist/rendering/LightingRig.js +61 -1
- package/dist/rendering/LightingRig.js.map +1 -1
- package/dist/rendering/MeshConsolidation.d.ts +12 -0
- package/dist/rendering/MeshConsolidation.d.ts.map +1 -1
- package/dist/rendering/MeshConsolidation.js +28 -0
- package/dist/rendering/MeshConsolidation.js.map +1 -1
- package/dist/rendering/MorphTargetPlan.d.ts +29 -2
- package/dist/rendering/MorphTargetPlan.d.ts.map +1 -1
- package/dist/rendering/MorphTargetPlan.js +23 -4
- package/dist/rendering/MorphTargetPlan.js.map +1 -1
- package/dist/rendering/NormalMappedPBRMaterial.d.ts.map +1 -1
- package/dist/rendering/NormalMappedPBRMaterial.js +22 -2
- package/dist/rendering/NormalMappedPBRMaterial.js.map +1 -1
- package/dist/rendering/OceanSurface.d.ts +75 -0
- package/dist/rendering/OceanSurface.d.ts.map +1 -1
- package/dist/rendering/OceanSurface.js +211 -0
- package/dist/rendering/OceanSurface.js.map +1 -1
- package/dist/rendering/PBRMaterial.d.ts +1 -0
- package/dist/rendering/PBRMaterial.d.ts.map +1 -1
- package/dist/rendering/PBRMaterial.js +23 -2
- package/dist/rendering/PBRMaterial.js.map +1 -1
- package/dist/rendering/PbrReference.d.ts +48 -0
- package/dist/rendering/PbrReference.d.ts.map +1 -1
- package/dist/rendering/PbrReference.js +126 -0
- package/dist/rendering/PbrReference.js.map +1 -1
- package/dist/rendering/PlanarReflection.d.ts +221 -0
- package/dist/rendering/PlanarReflection.d.ts.map +1 -0
- package/dist/rendering/PlanarReflection.js +541 -0
- package/dist/rendering/PlanarReflection.js.map +1 -0
- package/dist/rendering/PostProcessPass.d.ts +13 -0
- package/dist/rendering/PostProcessPass.d.ts.map +1 -1
- package/dist/rendering/PostProcessPass.js +15 -4
- package/dist/rendering/PostProcessPass.js.map +1 -1
- package/dist/rendering/ReflectionSurfaces.d.ts +14 -0
- package/dist/rendering/ReflectionSurfaces.d.ts.map +1 -1
- package/dist/rendering/ReflectionSurfaces.js +93 -0
- package/dist/rendering/ReflectionSurfaces.js.map +1 -1
- package/dist/rendering/RenderDevice.d.ts +87 -0
- package/dist/rendering/RenderDevice.d.ts.map +1 -1
- package/dist/rendering/RenderDevice.js +85 -0
- package/dist/rendering/RenderDevice.js.map +1 -1
- package/dist/rendering/Renderer.js +8 -5
- package/dist/rendering/Renderer.js.map +1 -1
- package/dist/rendering/RendererPostprocessPlan.d.ts +48 -0
- package/dist/rendering/RendererPostprocessPlan.d.ts.map +1 -1
- package/dist/rendering/RendererPostprocessPlan.js +101 -11
- package/dist/rendering/RendererPostprocessPlan.js.map +1 -1
- package/dist/rendering/RendererVisualPipelineReport.d.ts.map +1 -1
- package/dist/rendering/RendererVisualPipelineReport.js +3 -1
- package/dist/rendering/RendererVisualPipelineReport.js.map +1 -1
- package/dist/rendering/Sampler.d.ts +29 -0
- package/dist/rendering/Sampler.d.ts.map +1 -1
- package/dist/rendering/Sampler.js +47 -0
- package/dist/rendering/Sampler.js.map +1 -1
- package/dist/rendering/SceneOptimization.d.ts +1 -0
- package/dist/rendering/SceneOptimization.d.ts.map +1 -1
- package/dist/rendering/SceneOptimization.js +4 -2
- package/dist/rendering/SceneOptimization.js.map +1 -1
- package/dist/rendering/SdfText.d.ts +250 -0
- package/dist/rendering/SdfText.d.ts.map +1 -0
- package/dist/rendering/SdfText.js +551 -0
- package/dist/rendering/SdfText.js.map +1 -0
- package/dist/rendering/ShaderChunks.d.ts.map +1 -1
- package/dist/rendering/ShaderChunks.js +30 -12
- package/dist/rendering/ShaderChunks.js.map +1 -1
- package/dist/rendering/ShaderLibrary.d.ts.map +1 -1
- package/dist/rendering/ShaderLibrary.js +478 -34
- package/dist/rendering/ShaderLibrary.js.map +1 -1
- package/dist/rendering/ShaderLibraryCore.d.ts.map +1 -1
- package/dist/rendering/ShaderLibraryCore.js +70 -12
- package/dist/rendering/ShaderLibraryCore.js.map +1 -1
- package/dist/rendering/ShadowMap.d.ts +24 -0
- package/dist/rendering/ShadowMap.d.ts.map +1 -1
- package/dist/rendering/ShadowMap.js +43 -0
- package/dist/rendering/ShadowMap.js.map +1 -1
- package/dist/rendering/SkinnedLitMaterial.d.ts.map +1 -1
- package/dist/rendering/SkinnedLitMaterial.js +2 -0
- package/dist/rendering/SkinnedLitMaterial.js.map +1 -1
- package/dist/rendering/SkinningBounds.d.ts +10 -0
- package/dist/rendering/SkinningBounds.d.ts.map +1 -1
- package/dist/rendering/SkinningBounds.js +27 -0
- package/dist/rendering/SkinningBounds.js.map +1 -1
- package/dist/rendering/SpriteFlipbook.d.ts +60 -0
- package/dist/rendering/SpriteFlipbook.d.ts.map +1 -0
- package/dist/rendering/SpriteFlipbook.js +128 -0
- package/dist/rendering/SpriteFlipbook.js.map +1 -0
- package/dist/rendering/TerrainTiles.d.ts +120 -0
- package/dist/rendering/TerrainTiles.d.ts.map +1 -0
- package/dist/rendering/TerrainTiles.js +221 -0
- package/dist/rendering/TerrainTiles.js.map +1 -0
- package/dist/rendering/TexturedPBRMaterial.d.ts +1 -0
- package/dist/rendering/TexturedPBRMaterial.d.ts.map +1 -1
- package/dist/rendering/TexturedPBRMaterial.js +23 -2
- package/dist/rendering/TexturedPBRMaterial.js.map +1 -1
- package/dist/rendering/TexturedUnlitMaterial.d.ts.map +1 -1
- package/dist/rendering/TexturedUnlitMaterial.js +20 -2
- package/dist/rendering/TexturedUnlitMaterial.js.map +1 -1
- package/dist/rendering/UnlitMaterial.d.ts.map +1 -1
- package/dist/rendering/UnlitMaterial.js +20 -2
- package/dist/rendering/UnlitMaterial.js.map +1 -1
- package/dist/rendering/VertexFormat.d.ts +6 -0
- package/dist/rendering/VertexFormat.d.ts.map +1 -1
- package/dist/rendering/VertexFormat.js +12 -0
- package/dist/rendering/VertexFormat.js.map +1 -1
- package/dist/rendering/VolumetricFog.d.ts +55 -0
- package/dist/rendering/VolumetricFog.d.ts.map +1 -0
- package/dist/rendering/VolumetricFog.js +91 -0
- package/dist/rendering/VolumetricFog.js.map +1 -0
- package/dist/rendering/WaterSurface.d.ts +77 -0
- package/dist/rendering/WaterSurface.d.ts.map +1 -0
- package/dist/rendering/WaterSurface.js +133 -0
- package/dist/rendering/WaterSurface.js.map +1 -0
- package/dist/rendering/WebGL2Device.d.ts +58 -0
- package/dist/rendering/WebGL2Device.d.ts.map +1 -1
- package/dist/rendering/WebGL2Device.js +536 -17
- package/dist/rendering/WebGL2Device.js.map +1 -1
- package/dist/rendering/WebGPUDevice.d.ts +50 -0
- package/dist/rendering/WebGPUDevice.d.ts.map +1 -1
- package/dist/rendering/WebGPUDevice.js +504 -10
- package/dist/rendering/WebGPUDevice.js.map +1 -1
- package/dist/rendering/WebGPUSkinningLimits.d.ts +40 -0
- package/dist/rendering/WebGPUSkinningLimits.d.ts.map +1 -1
- package/dist/rendering/WebGPUSkinningLimits.js +32 -0
- package/dist/rendering/WebGPUSkinningLimits.js.map +1 -1
- package/dist/rendering/effects/CollisionModule.d.ts +9 -0
- package/dist/rendering/effects/CollisionModule.d.ts.map +1 -1
- package/dist/rendering/effects/CollisionModule.js +10 -0
- package/dist/rendering/effects/CollisionModule.js.map +1 -1
- package/dist/rendering/effects/ColorModule.d.ts +7 -0
- package/dist/rendering/effects/ColorModule.d.ts.map +1 -1
- package/dist/rendering/effects/ColorModule.js +23 -0
- package/dist/rendering/effects/ColorModule.js.map +1 -1
- package/dist/rendering/effects/ForceModule.d.ts +35 -0
- package/dist/rendering/effects/ForceModule.d.ts.map +1 -1
- package/dist/rendering/effects/ForceModule.js +49 -0
- package/dist/rendering/effects/ForceModule.js.map +1 -1
- package/dist/rendering/effects/GPUParticleBackend.d.ts +186 -0
- package/dist/rendering/effects/GPUParticleBackend.d.ts.map +1 -1
- package/dist/rendering/effects/GPUParticleBackend.js +692 -1
- package/dist/rendering/effects/GPUParticleBackend.js.map +1 -1
- package/dist/rendering/effects/HeightfieldModule.d.ts +58 -0
- package/dist/rendering/effects/HeightfieldModule.d.ts.map +1 -0
- package/dist/rendering/effects/HeightfieldModule.js +129 -0
- package/dist/rendering/effects/HeightfieldModule.js.map +1 -0
- package/dist/rendering/effects/LightingModule.d.ts +34 -0
- package/dist/rendering/effects/LightingModule.d.ts.map +1 -0
- package/dist/rendering/effects/LightingModule.js +54 -0
- package/dist/rendering/effects/LightingModule.js.map +1 -0
- package/dist/rendering/effects/ParticleDiagnostics.d.ts +8 -0
- package/dist/rendering/effects/ParticleDiagnostics.d.ts.map +1 -1
- package/dist/rendering/effects/ParticleDiagnostics.js +3 -0
- package/dist/rendering/effects/ParticleDiagnostics.js.map +1 -1
- package/dist/rendering/effects/ParticleModule.d.ts +8 -0
- package/dist/rendering/effects/ParticleModule.d.ts.map +1 -1
- package/dist/rendering/effects/ParticleModule.js.map +1 -1
- package/dist/rendering/effects/ParticleRenderer.d.ts +20 -0
- package/dist/rendering/effects/ParticleRenderer.d.ts.map +1 -1
- package/dist/rendering/effects/ParticleRenderer.js +57 -7
- package/dist/rendering/effects/ParticleRenderer.js.map +1 -1
- package/dist/rendering/effects/ParticleSystem.d.ts +45 -1
- package/dist/rendering/effects/ParticleSystem.d.ts.map +1 -1
- package/dist/rendering/effects/ParticleSystem.js +373 -4
- package/dist/rendering/effects/ParticleSystem.js.map +1 -1
- package/dist/rendering/effects/SizeModule.d.ts +4 -0
- package/dist/rendering/effects/SizeModule.d.ts.map +1 -1
- package/dist/rendering/effects/SizeModule.js +16 -0
- package/dist/rendering/effects/SizeModule.js.map +1 -1
- package/dist/rendering/effects/SubEmitterModule.d.ts +61 -0
- package/dist/rendering/effects/SubEmitterModule.d.ts.map +1 -0
- package/dist/rendering/effects/SubEmitterModule.js +119 -0
- package/dist/rendering/effects/SubEmitterModule.js.map +1 -0
- package/dist/rendering/effects/TrailModule.d.ts +38 -0
- package/dist/rendering/effects/TrailModule.d.ts.map +1 -1
- package/dist/rendering/effects/TrailModule.js +95 -2
- package/dist/rendering/effects/TrailModule.js.map +1 -1
- package/dist/rendering/effects/TurbulenceModule.d.ts +43 -0
- package/dist/rendering/effects/TurbulenceModule.d.ts.map +1 -0
- package/dist/rendering/effects/TurbulenceModule.js +130 -0
- package/dist/rendering/effects/TurbulenceModule.js.map +1 -0
- package/dist/rendering/effects/index.d.ts +4 -0
- package/dist/rendering/effects/index.d.ts.map +1 -1
- package/dist/rendering/effects/index.js +4 -0
- package/dist/rendering/effects/index.js.map +1 -1
- package/dist/rendering/index.d.ts +57 -19
- package/dist/rendering/index.d.ts.map +1 -1
- package/dist/rendering/index.js +31 -10
- package/dist/rendering/index.js.map +1 -1
- package/dist/rendering/materials/MaterialExtensions.js +3 -3
- package/dist/rendering/materials/MaterialExtensions.js.map +1 -1
- package/dist/rendering/postprocess/NativeBloomPyramid.d.ts +28 -0
- package/dist/rendering/postprocess/NativeBloomPyramid.d.ts.map +1 -0
- package/dist/rendering/postprocess/NativeBloomPyramid.js +54 -0
- package/dist/rendering/postprocess/NativeBloomPyramid.js.map +1 -0
- package/dist/rendering/postprocess/NativeLdrEffectLuts.d.ts +10 -1
- package/dist/rendering/postprocess/NativeLdrEffectLuts.d.ts.map +1 -1
- package/dist/rendering/postprocess/NativeLdrEffectLuts.js +19 -2
- package/dist/rendering/postprocess/NativeLdrEffectLuts.js.map +1 -1
- package/dist/rendering/postprocess/index.d.ts +2 -0
- package/dist/rendering/postprocess/index.d.ts.map +1 -1
- package/dist/rendering/postprocess/index.js +1 -0
- package/dist/rendering/postprocess/index.js.map +1 -1
- package/dist/rendering/production-runtime/PBRHDRPipeline.d.ts +22 -0
- package/dist/rendering/production-runtime/PBRHDRPipeline.d.ts.map +1 -1
- package/dist/rendering/production-runtime/PBRHDRPipeline.js +125 -0
- package/dist/rendering/production-runtime/PBRHDRPipeline.js.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.d.ts +52 -0
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.d.ts.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.js +101 -0
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.js.map +1 -1
- package/dist/rendering/production-runtime/index.d.ts +5 -4
- package/dist/rendering/production-runtime/index.d.ts.map +1 -1
- package/dist/rendering/production-runtime/index.js +3 -2
- package/dist/rendering/production-runtime/index.js.map +1 -1
- package/dist/rendering/production-runtime/passes/DepthPrepass.d.ts +26 -1
- package/dist/rendering/production-runtime/passes/DepthPrepass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/DepthPrepass.js +49 -2
- package/dist/rendering/production-runtime/passes/DepthPrepass.js.map +1 -1
- package/dist/rendering/production-runtime/passes/FramegraphTopology.d.ts +13 -0
- package/dist/rendering/production-runtime/passes/FramegraphTopology.d.ts.map +1 -0
- package/dist/rendering/production-runtime/passes/FramegraphTopology.js +59 -0
- package/dist/rendering/production-runtime/passes/FramegraphTopology.js.map +1 -0
- package/dist/rendering/production-runtime/passes/OpaquePass.d.ts +24 -1
- package/dist/rendering/production-runtime/passes/OpaquePass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/OpaquePass.js +41 -2
- package/dist/rendering/production-runtime/passes/OpaquePass.js.map +1 -1
- package/dist/rendering/production-runtime/passes/ShadowPass.d.ts +24 -1
- package/dist/rendering/production-runtime/passes/ShadowPass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/ShadowPass.js +43 -2
- package/dist/rendering/production-runtime/passes/ShadowPass.js.map +1 -1
- package/dist/rendering/production-runtime/passes/SkyboxPass.d.ts +21 -1
- package/dist/rendering/production-runtime/passes/SkyboxPass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/SkyboxPass.js +39 -2
- package/dist/rendering/production-runtime/passes/SkyboxPass.js.map +1 -1
- package/dist/rendering/production-runtime/passes/ToneMappingPass.d.ts +29 -1
- package/dist/rendering/production-runtime/passes/ToneMappingPass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/ToneMappingPass.js +53 -2
- package/dist/rendering/production-runtime/passes/ToneMappingPass.js.map +1 -1
- package/dist/rendering/production-runtime/passes/TransparentPass.d.ts +24 -1
- package/dist/rendering/production-runtime/passes/TransparentPass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/TransparentPass.js +42 -2
- package/dist/rendering/production-runtime/passes/TransparentPass.js.map +1 -1
- package/dist/rendering/shadows/CascadeHysteresis.d.ts +67 -0
- package/dist/rendering/shadows/CascadeHysteresis.d.ts.map +1 -0
- package/dist/rendering/shadows/CascadeHysteresis.js +104 -0
- package/dist/rendering/shadows/CascadeHysteresis.js.map +1 -0
- package/dist/rendering/shadows/ContactShadows.d.ts +52 -0
- package/dist/rendering/shadows/ContactShadows.d.ts.map +1 -1
- package/dist/rendering/shadows/ContactShadows.js +122 -0
- package/dist/rendering/shadows/ContactShadows.js.map +1 -1
- package/dist/rendering/shadows/SpotShadowMaps.d.ts +77 -0
- package/dist/rendering/shadows/SpotShadowMaps.d.ts.map +1 -0
- package/dist/rendering/shadows/SpotShadowMaps.js +106 -0
- package/dist/rendering/shadows/SpotShadowMaps.js.map +1 -0
- package/dist/rendering/webgpu/WebGPUPostProcess.d.ts +2 -0
- package/dist/rendering/webgpu/WebGPUPostProcess.d.ts.map +1 -1
- package/dist/rendering/webgpu/WebGPUPostProcess.js +1 -0
- package/dist/rendering/webgpu/WebGPUPostProcess.js.map +1 -1
- package/dist/rendering/webgpu/WebGPUPostShaders.d.ts +78 -0
- package/dist/rendering/webgpu/WebGPUPostShaders.d.ts.map +1 -0
- package/dist/rendering/webgpu/WebGPUPostShaders.js +262 -0
- package/dist/rendering/webgpu/WebGPUPostShaders.js.map +1 -0
- package/dist/scene/Scene.d.ts +8 -1
- package/dist/scene/Scene.d.ts.map +1 -1
- package/dist/scene/Scene.js +12 -2
- package/dist/scene/Scene.js.map +1 -1
- package/dist/scripting/VisualGraphContext.d.ts +31 -0
- package/dist/scripting/VisualGraphContext.d.ts.map +1 -1
- package/dist/scripting/VisualGraphExecutor.d.ts.map +1 -1
- package/dist/scripting/VisualGraphExecutor.js +110 -0
- package/dist/scripting/VisualGraphExecutor.js.map +1 -1
- package/dist/scripting/VisualNodeCatalog.d.ts +1 -1
- package/dist/scripting/VisualNodeCatalog.d.ts.map +1 -1
- package/dist/scripting/VisualNodeCatalog.js +20 -0
- package/dist/scripting/VisualNodeCatalog.js.map +1 -1
- package/dist/scripting/VisualScriptingRoot.d.ts +96 -0
- package/dist/scripting/VisualScriptingRoot.d.ts.map +1 -0
- package/dist/scripting/VisualScriptingRoot.js +150 -0
- package/dist/scripting/VisualScriptingRoot.js.map +1 -0
- package/dist/scripting/index.d.ts +3 -1
- package/dist/scripting/index.d.ts.map +1 -1
- package/dist/scripting/index.js +1 -0
- package/dist/scripting/index.js.map +1 -1
- package/package.json +30 -23
- package/templates/cinematic-scene/package.json +1 -1
- package/templates/mini-game/package.json +1 -1
- package/templates/product-viewer/package.json +1 -1
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Root gameplay-decals builder (PART C4).
|
|
3
|
+
*
|
|
4
|
+
* The projection geometry is package-level and real
|
|
5
|
+
* (`createProjectedDecalGeometry` / `createRaycastProjectedDecalGeometry` in
|
|
6
|
+
* `@aura3d/rendering`): clipped, normal-offset, UV-mapped triangles. This
|
|
7
|
+
* module is the missing public root surface: `decals.project({ texture, size,
|
|
8
|
+
* fade })` shapes those projections into ordinary root scene nodes so a
|
|
9
|
+
* `createAuraApp` route can author bullet holes, scorch marks, and spray tags
|
|
10
|
+
* without deep-importing the renderer.
|
|
11
|
+
*
|
|
12
|
+
* How a root decal survives the frame:
|
|
13
|
+
* - Geometry carries a normal offset (default 0.012 world units) baked into
|
|
14
|
+
* the projected vertices, so the decal surface sits provably off its target.
|
|
15
|
+
* - The material is transparent (opacity < 1), which the root production
|
|
16
|
+
* bridge already maps to blend-on, depthWrite-off, cull-none render state.
|
|
17
|
+
* - The descriptor records the intended polygon offset ({ factor: -2,
|
|
18
|
+
* units: -2 }) alongside the fade envelope. Root has no native
|
|
19
|
+
* polygon-offset/depth-fade sampler yet, so grazing-angle z-fighting is
|
|
20
|
+
* defeated the portable way: the angle fade drives opacity to zero before
|
|
21
|
+
* the view goes edge-on (see `resolveDecalFadeOpacity`), exactly where
|
|
22
|
+
* coplanar flicker would appear.
|
|
23
|
+
*
|
|
24
|
+
* Deferred-decal budget note: root renders decals forward as transparent
|
|
25
|
+
* geometry — one draw call per decal. There is no deferred decal pass at
|
|
26
|
+
* root; `AURA_DECAL_MAX_DECALS` (32) is the authoring budget and
|
|
27
|
+
* `decals.telemetry()` reports the live count against it. Exceeding the
|
|
28
|
+
* budget never drops decals silently: telemetry flags `overBudget` and the
|
|
29
|
+
* route decides (fade far decals, recycle, or accept the cost).
|
|
30
|
+
*/
|
|
31
|
+
import { createProjectedDecalGeometry, createRaycastProjectedDecalGeometry } from "../../rendering/index.js";
|
|
32
|
+
import { AuraNodeBuilder } from "./index.js";
|
|
33
|
+
import { defineAuraCustomGeometry } from "./RootGeometry.js";
|
|
34
|
+
/** Root authoring budget: forward-rendered transparent decals, one draw each. */
|
|
35
|
+
export const AURA_DECAL_MAX_DECALS = 32;
|
|
36
|
+
/**
|
|
37
|
+
* Deferred-decal budget note, kept next to the constant so routes quote the
|
|
38
|
+
* same sentence as telemetry. Root has no deferred decal pass; decals are
|
|
39
|
+
* forward transparent geometry until one lands.
|
|
40
|
+
*/
|
|
41
|
+
export const AURA_DECAL_BUDGET_NOTE = "Root decals render forward as transparent geometry (one draw call per decal); " +
|
|
42
|
+
`author at most ${AURA_DECAL_MAX_DECALS} live decals per route. A deferred decal pass is roadmap, ` +
|
|
43
|
+
"not a root feature — telemetry flags over-budget scenes instead of dropping decals.";
|
|
44
|
+
const DEFAULT_FADE = { angleStart: 55, angleEnd: 80, near: 0, far: Number.POSITIVE_INFINITY };
|
|
45
|
+
const DEFAULT_POLYGON_OFFSET = { factor: -2, units: -2 };
|
|
46
|
+
const DEFAULT_NORMAL_OFFSET = 0.012;
|
|
47
|
+
const DEFAULT_OPACITY = 0.85;
|
|
48
|
+
let maxObservedDecals = 0;
|
|
49
|
+
function isFiniteVec3(value, label) {
|
|
50
|
+
if (value.length !== 3 || value.some((component) => !Number.isFinite(component))) {
|
|
51
|
+
throw new Error(`Aura3D decal ${label} must be a finite vec3.`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function resolveSize(size) {
|
|
55
|
+
const pair = typeof size === "number" ? [size, size] : [...size];
|
|
56
|
+
if (pair.length !== 2 || pair.some((component) => !Number.isFinite(component) || component <= 0)) {
|
|
57
|
+
throw new Error("Aura3D decal size must be a positive number or [width, height] pair.");
|
|
58
|
+
}
|
|
59
|
+
return [pair[0], pair[1]];
|
|
60
|
+
}
|
|
61
|
+
function resolveProjectorSize(size) {
|
|
62
|
+
const triple = typeof size === "number" ? [size, size, 0.18] : size.length === 2 ? [size[0], size[1], 0.18] : [...size];
|
|
63
|
+
if (triple.length !== 3 || triple.some((component) => !Number.isFinite(component) || component <= 0)) {
|
|
64
|
+
throw new Error("Aura3D decal projector size must be positive ([width, height] or [width, height, depth]).");
|
|
65
|
+
}
|
|
66
|
+
return [triple[0], triple[1], triple[2]];
|
|
67
|
+
}
|
|
68
|
+
function resolveOpacity(opacity) {
|
|
69
|
+
const value = opacity ?? DEFAULT_OPACITY;
|
|
70
|
+
if (!Number.isFinite(value) || value <= 0 || value >= 1) {
|
|
71
|
+
throw new Error("Aura3D decal opacity must be in the open interval (0, 1) so the bridge submits transparent depth-safe state.");
|
|
72
|
+
}
|
|
73
|
+
return value;
|
|
74
|
+
}
|
|
75
|
+
function resolveFade(fade) {
|
|
76
|
+
const angleStart = fade?.angleStart ?? DEFAULT_FADE.angleStart;
|
|
77
|
+
const angleEnd = fade?.angleEnd ?? DEFAULT_FADE.angleEnd;
|
|
78
|
+
const near = fade?.near ?? DEFAULT_FADE.near;
|
|
79
|
+
const far = fade?.far ?? DEFAULT_FADE.far;
|
|
80
|
+
if (!Number.isFinite(angleStart) || !Number.isFinite(angleEnd) || angleStart < 0 || angleEnd <= angleStart || angleEnd > 90) {
|
|
81
|
+
throw new Error("Aura3D decal fade requires 0 <= angleStart < angleEnd <= 90 degrees.");
|
|
82
|
+
}
|
|
83
|
+
if (!Number.isFinite(near) || near < 0) {
|
|
84
|
+
throw new Error("Aura3D decal fade near must be finite and non-negative.");
|
|
85
|
+
}
|
|
86
|
+
if (!(far > near)) {
|
|
87
|
+
throw new Error("Aura3D decal fade far must be greater than near.");
|
|
88
|
+
}
|
|
89
|
+
return { angleStart, angleEnd, near, far };
|
|
90
|
+
}
|
|
91
|
+
function resolveNormal(normal) {
|
|
92
|
+
const value = normal ?? [0, 0, 1];
|
|
93
|
+
isFiniteVec3(value, "normal");
|
|
94
|
+
const length = Math.hypot(value[0], value[1], value[2]);
|
|
95
|
+
if (length <= 1e-8)
|
|
96
|
+
throw new Error("Aura3D decal normal must be non-zero.");
|
|
97
|
+
return [value[0] / length, value[1] / length, value[2] / length];
|
|
98
|
+
}
|
|
99
|
+
function resolvePolygonOffset(offset) {
|
|
100
|
+
const value = offset ?? DEFAULT_POLYGON_OFFSET;
|
|
101
|
+
if (!Number.isFinite(value.factor) || !Number.isFinite(value.units)) {
|
|
102
|
+
throw new Error("Aura3D decal polygonOffset factor and units must be finite.");
|
|
103
|
+
}
|
|
104
|
+
return { factor: value.factor, units: value.units };
|
|
105
|
+
}
|
|
106
|
+
function resolveNormalOffset(offset) {
|
|
107
|
+
const value = offset ?? DEFAULT_NORMAL_OFFSET;
|
|
108
|
+
if (!Number.isFinite(value) || value < 0) {
|
|
109
|
+
throw new Error("Aura3D decal normalOffset must be finite and non-negative.");
|
|
110
|
+
}
|
|
111
|
+
return value;
|
|
112
|
+
}
|
|
113
|
+
function decalMaterial(options, opacity) {
|
|
114
|
+
return {
|
|
115
|
+
...(options.texture ? { texture: options.texture } : {}),
|
|
116
|
+
...(options.color ? { color: options.color } : { color: "#f5f5f5" }),
|
|
117
|
+
opacity,
|
|
118
|
+
roughness: options.roughness ?? 0.5,
|
|
119
|
+
metallic: options.metallic ?? 0,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Author a free-floating root decal quad. Transparent, depth-write-off by
|
|
124
|
+
* bridge convention (opacity < 1), normal-offset intent recorded on the
|
|
125
|
+
* descriptor for the projected path.
|
|
126
|
+
*/
|
|
127
|
+
export function projectDecal(options) {
|
|
128
|
+
const size = resolveSize(options.size);
|
|
129
|
+
const baseOpacity = resolveOpacity(options.opacity);
|
|
130
|
+
const fade = resolveFade(options.fade);
|
|
131
|
+
const normal = resolveNormal(options.normal);
|
|
132
|
+
const polygonOffset = resolvePolygonOffset(options.polygonOffset);
|
|
133
|
+
const normalOffset = resolveNormalOffset(options.normalOffset);
|
|
134
|
+
if (options.position)
|
|
135
|
+
isFiniteVec3(options.position, "position");
|
|
136
|
+
if (options.rotation)
|
|
137
|
+
isFiniteVec3(options.rotation, "rotation");
|
|
138
|
+
const textureUrl = options.texture?.url;
|
|
139
|
+
// The root plane primitive spans XZ ±0.5 facing +Y, so world size maps to
|
|
140
|
+
// scale directly; the descriptor keeps the authored size for telemetry.
|
|
141
|
+
const builder = new AuraNodeBuilder({
|
|
142
|
+
kind: "primitive",
|
|
143
|
+
primitive: "plane",
|
|
144
|
+
name: options.name ?? "aura decal",
|
|
145
|
+
position: options.position,
|
|
146
|
+
rotation: options.rotation,
|
|
147
|
+
scale: [size[0], 1, size[1]],
|
|
148
|
+
material: decalMaterial(options, baseOpacity),
|
|
149
|
+
castShadow: false,
|
|
150
|
+
receiveShadow: false,
|
|
151
|
+
decal: {
|
|
152
|
+
size,
|
|
153
|
+
baseOpacity,
|
|
154
|
+
fade,
|
|
155
|
+
polygonOffset,
|
|
156
|
+
normalOffset,
|
|
157
|
+
normal,
|
|
158
|
+
...(textureUrl ? { textureUrl } : {}),
|
|
159
|
+
},
|
|
160
|
+
});
|
|
161
|
+
return builder;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Project a decal onto a source mesh through the real package-level
|
|
165
|
+
* projector and return it as a root `custom` primitive node. The clipped
|
|
166
|
+
* geometry (with baked normal offset + UVs) becomes the node's custom
|
|
167
|
+
* geometry spec; the descriptor matches `projectDecal`.
|
|
168
|
+
*/
|
|
169
|
+
export function projectDecalOntoMesh(options) {
|
|
170
|
+
const size = resolveProjectorSize(options.size);
|
|
171
|
+
const baseOpacity = resolveOpacity(options.opacity);
|
|
172
|
+
const fade = resolveFade(options.fade);
|
|
173
|
+
const polygonOffset = resolvePolygonOffset(options.polygonOffset);
|
|
174
|
+
const normalOffset = resolveNormalOffset(options.normalOffset);
|
|
175
|
+
isFiniteVec3(options.ray.origin, "ray origin");
|
|
176
|
+
isFiniteVec3(options.ray.direction, "ray direction");
|
|
177
|
+
if (options.upHint)
|
|
178
|
+
isFiniteVec3(options.upHint, "upHint");
|
|
179
|
+
const raycastOptions = {
|
|
180
|
+
size,
|
|
181
|
+
normalOffset,
|
|
182
|
+
...(options.maxDistance === undefined ? {} : { maxDistance: options.maxDistance }),
|
|
183
|
+
...(options.includeBackfaces === undefined ? {} : { includeBackfaces: options.includeBackfaces }),
|
|
184
|
+
...(options.upHint === undefined ? {} : { upHint: options.upHint }),
|
|
185
|
+
...(options.shape === undefined ? {} : { shape: options.shape }),
|
|
186
|
+
...(options.ellipseSegments === undefined ? {} : { ellipseSegments: options.ellipseSegments }),
|
|
187
|
+
};
|
|
188
|
+
const projected = createRaycastProjectedDecalGeometry(options.mesh, options.ray, raycastOptions);
|
|
189
|
+
const vertexCount = projected.geometry.vertexBuffer.vertexCount;
|
|
190
|
+
const positions = [];
|
|
191
|
+
const normals = [];
|
|
192
|
+
for (let index = 0; index < vertexCount; index += 1) {
|
|
193
|
+
const position = projected.geometry.vertexBuffer.getAttribute(index, "position");
|
|
194
|
+
const normal = projected.geometry.vertexBuffer.getAttribute(index, "normal");
|
|
195
|
+
positions.push([position[0], position[1], position[2]]);
|
|
196
|
+
normals.push([normal[0], normal[1], normal[2]]);
|
|
197
|
+
}
|
|
198
|
+
const geometry = defineAuraCustomGeometry({
|
|
199
|
+
positions,
|
|
200
|
+
normals,
|
|
201
|
+
indices: projected.geometry.indexBuffer ? Array.from(projected.geometry.indexBuffer.data) : [],
|
|
202
|
+
});
|
|
203
|
+
const textureUrl = options.texture?.url;
|
|
204
|
+
return new AuraNodeBuilder({
|
|
205
|
+
kind: "primitive",
|
|
206
|
+
primitive: "custom",
|
|
207
|
+
geometry,
|
|
208
|
+
name: options.name ?? "aura projected decal",
|
|
209
|
+
material: decalMaterial(options, baseOpacity),
|
|
210
|
+
castShadow: false,
|
|
211
|
+
receiveShadow: false,
|
|
212
|
+
decal: {
|
|
213
|
+
size: [size[0], size[1]],
|
|
214
|
+
baseOpacity,
|
|
215
|
+
fade,
|
|
216
|
+
polygonOffset,
|
|
217
|
+
normalOffset,
|
|
218
|
+
normal: [...projected.hit.normal],
|
|
219
|
+
...(textureUrl ? { textureUrl } : {}),
|
|
220
|
+
},
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
/** Box-projected variant for callers that already solved placement (no raycast). */
|
|
224
|
+
export function projectDecalIntoBox(mesh, box, options = {}) {
|
|
225
|
+
const baseOpacity = resolveOpacity(options.opacity);
|
|
226
|
+
const fade = resolveFade(options.fade);
|
|
227
|
+
const polygonOffset = resolvePolygonOffset(options.polygonOffset);
|
|
228
|
+
const normalOffset = resolveNormalOffset(options.normalOffset);
|
|
229
|
+
const projected = createProjectedDecalGeometry(mesh, {
|
|
230
|
+
...box,
|
|
231
|
+
normalOffset: box.normalOffset ?? normalOffset,
|
|
232
|
+
});
|
|
233
|
+
const vertexCount = projected.geometry.vertexBuffer.vertexCount;
|
|
234
|
+
const positions = [];
|
|
235
|
+
const normals = [];
|
|
236
|
+
for (let index = 0; index < vertexCount; index += 1) {
|
|
237
|
+
const position = projected.geometry.vertexBuffer.getAttribute(index, "position");
|
|
238
|
+
const normal = projected.geometry.vertexBuffer.getAttribute(index, "normal");
|
|
239
|
+
positions.push([position[0], position[1], position[2]]);
|
|
240
|
+
normals.push([normal[0], normal[1], normal[2]]);
|
|
241
|
+
}
|
|
242
|
+
const geometry = defineAuraCustomGeometry({
|
|
243
|
+
positions,
|
|
244
|
+
normals,
|
|
245
|
+
indices: projected.geometry.indexBuffer ? Array.from(projected.geometry.indexBuffer.data) : [],
|
|
246
|
+
});
|
|
247
|
+
const textureUrl = options.texture?.url;
|
|
248
|
+
return new AuraNodeBuilder({
|
|
249
|
+
kind: "primitive",
|
|
250
|
+
primitive: "custom",
|
|
251
|
+
geometry,
|
|
252
|
+
name: options.name ?? "aura projected decal",
|
|
253
|
+
material: decalMaterial(options, baseOpacity),
|
|
254
|
+
castShadow: false,
|
|
255
|
+
receiveShadow: false,
|
|
256
|
+
decal: {
|
|
257
|
+
size: [box.size[0], box.size[1]],
|
|
258
|
+
baseOpacity,
|
|
259
|
+
fade,
|
|
260
|
+
polygonOffset,
|
|
261
|
+
normalOffset: box.normalOffset ?? normalOffset,
|
|
262
|
+
normal: box.basis ? [...box.basis.normal] : [0, 0, 1],
|
|
263
|
+
...(textureUrl ? { textureUrl } : {}),
|
|
264
|
+
},
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
function smoothstep(edge0, edge1, value) {
|
|
268
|
+
const t = Math.max(0, Math.min(1, (value - edge0) / (edge1 - edge0)));
|
|
269
|
+
return t * t * (3 - 2 * t);
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Evaluate the decal fade envelope for one camera sample. Head-on and near
|
|
273
|
+
* is `baseOpacity`; past `angleEnd` incidence or `far` distance is 0. Pure
|
|
274
|
+
* and unit-tested; the browser proof probes this against live pixels.
|
|
275
|
+
*/
|
|
276
|
+
export function resolveDecalFadeOpacity(sample) {
|
|
277
|
+
const fade = resolveFade(sample.fade);
|
|
278
|
+
const baseOpacity = sample.baseOpacity ?? DEFAULT_OPACITY;
|
|
279
|
+
if (!Number.isFinite(baseOpacity) || baseOpacity < 0 || baseOpacity > 1) {
|
|
280
|
+
throw new Error("Aura3D decal fade baseOpacity must be in [0, 1].");
|
|
281
|
+
}
|
|
282
|
+
isFiniteVec3(sample.normal, "fade normal");
|
|
283
|
+
isFiniteVec3(sample.cameraPosition, "fade cameraPosition");
|
|
284
|
+
isFiniteVec3(sample.decalPosition, "fade decalPosition");
|
|
285
|
+
const toCamera = [
|
|
286
|
+
sample.cameraPosition[0] - sample.decalPosition[0],
|
|
287
|
+
sample.cameraPosition[1] - sample.decalPosition[1],
|
|
288
|
+
sample.cameraPosition[2] - sample.decalPosition[2],
|
|
289
|
+
];
|
|
290
|
+
const distance = sample.distance ?? Math.hypot(toCamera[0], toCamera[1], toCamera[2]);
|
|
291
|
+
if (!Number.isFinite(distance) || distance < 0) {
|
|
292
|
+
throw new Error("Aura3D decal fade distance must be finite and non-negative.");
|
|
293
|
+
}
|
|
294
|
+
if (distance <= 1e-8)
|
|
295
|
+
return baseOpacity;
|
|
296
|
+
const normalLength = Math.hypot(sample.normal[0], sample.normal[1], sample.normal[2]);
|
|
297
|
+
if (normalLength <= 1e-8)
|
|
298
|
+
throw new Error("Aura3D decal fade normal must be non-zero.");
|
|
299
|
+
const alignment = Math.max(0, Math.min(1, (sample.normal[0] * toCamera[0] + sample.normal[1] * toCamera[1] + sample.normal[2] * toCamera[2]) /
|
|
300
|
+
(normalLength * distance)));
|
|
301
|
+
const incidenceDegrees = Math.acos(alignment) * (180 / Math.PI);
|
|
302
|
+
const angleOpacity = 1 - smoothstep(fade.angleStart, fade.angleEnd, incidenceDegrees);
|
|
303
|
+
const depthOpacity = fade.far === Number.POSITIVE_INFINITY
|
|
304
|
+
? 1
|
|
305
|
+
: 1 - smoothstep(fade.near, fade.far, distance);
|
|
306
|
+
return Math.max(0, Math.min(1, baseOpacity * angleOpacity * depthOpacity));
|
|
307
|
+
}
|
|
308
|
+
function isDecalNode(node) {
|
|
309
|
+
return node.kind === "primitive" && "decal" in node && typeof node.decal === "object";
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Max-decal telemetry over a flattened scene (or any node list). Counts
|
|
313
|
+
* decal nodes, compares against `AURA_DECAL_MAX_DECALS`, and records the
|
|
314
|
+
* session max. Never throws on foreign nodes.
|
|
315
|
+
*/
|
|
316
|
+
export function collectDecalBudgetTelemetry(nodes, maxDecals = AURA_DECAL_MAX_DECALS) {
|
|
317
|
+
if (!Number.isInteger(maxDecals) || maxDecals <= 0) {
|
|
318
|
+
throw new Error("Aura3D decal telemetry maxDecals must be a positive integer.");
|
|
319
|
+
}
|
|
320
|
+
const decals = nodes.filter(isDecalNode);
|
|
321
|
+
const decalCount = decals.length;
|
|
322
|
+
maxObservedDecals = Math.max(maxObservedDecals, decalCount);
|
|
323
|
+
return {
|
|
324
|
+
kind: "aura-decal-budget",
|
|
325
|
+
decalCount,
|
|
326
|
+
maxDecals,
|
|
327
|
+
overBudget: decalCount > maxDecals,
|
|
328
|
+
estimatedDrawCalls: decalCount,
|
|
329
|
+
note: AURA_DECAL_BUDGET_NOTE,
|
|
330
|
+
allPolygonOffset: decals.every((node) => Number.isFinite(node.decal.polygonOffset.factor) && Number.isFinite(node.decal.polygonOffset.units)),
|
|
331
|
+
angleFadeDecals: decals.filter((node) => node.decal.fade.angleEnd < 90).length,
|
|
332
|
+
depthFadeDecals: decals.filter((node) => node.decal.fade.far < Number.POSITIVE_INFINITY).length,
|
|
333
|
+
maxObservedDecals,
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
/** Reset the session max-observed counter (tests only). */
|
|
337
|
+
export function resetDecalTelemetry() {
|
|
338
|
+
maxObservedDecals = 0;
|
|
339
|
+
}
|
|
340
|
+
export const decals = {
|
|
341
|
+
project: projectDecal,
|
|
342
|
+
projectOntoMesh: projectDecalOntoMesh,
|
|
343
|
+
projectIntoBox: projectDecalIntoBox,
|
|
344
|
+
resolveFadeOpacity: resolveDecalFadeOpacity,
|
|
345
|
+
telemetry: collectDecalBudgetTelemetry,
|
|
346
|
+
resetTelemetry: resetDecalTelemetry,
|
|
347
|
+
maxDecals: AURA_DECAL_MAX_DECALS,
|
|
348
|
+
budgetNote: AURA_DECAL_BUDGET_NOTE,
|
|
349
|
+
};
|
|
350
|
+
//# sourceMappingURL=Decals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Decals.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/Decals.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { type GroundRaycaster } from "../../animation/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Root foot-planting bridge (muse3jsparity-PRD E2 box 2).
|
|
4
|
+
*
|
|
5
|
+
* `@aura3d/animation` is a regular engine dependency (unlike the optional Recast peer),
|
|
6
|
+
* so the ground builders below are plain re-exporting wrappers. The planting post-pass
|
|
7
|
+
* itself lives in `GLTFSceneAnimationRuntime.setFootPlanting`; this module shapes the
|
|
8
|
+
* root-facing options, and the animation-controller binding carries the resolved config
|
|
9
|
+
* (in-memory; ground functions never serialize) to the typed GLB actor.
|
|
10
|
+
*
|
|
11
|
+
* Units: the runtime skeleton lives in import units (glTF centimeters are common) while
|
|
12
|
+
* `ground` speaks world meters. At apply time the engine attaches the actor's live model
|
|
13
|
+
* matrix as the post-pass `worldFromLocal`, so the solve happens in the same world space
|
|
14
|
+
* the renderer draws — normalized model nodes included. Refreshing the matrix never
|
|
15
|
+
* resets foot locks; only a new leg set, ground, or solve parameter does.
|
|
16
|
+
*/
|
|
17
|
+
export type AuraFootSide = "left" | "right";
|
|
18
|
+
export type AuraFootVec3 = readonly [number, number, number];
|
|
19
|
+
export interface AuraFootPlantingLegOptions {
|
|
20
|
+
readonly side: AuraFootSide;
|
|
21
|
+
/** glTF node names of the hip (root), knee (mid), and ankle (end) of the leg chain. */
|
|
22
|
+
readonly hip: string;
|
|
23
|
+
readonly knee: string;
|
|
24
|
+
readonly ankle: string;
|
|
25
|
+
readonly pole?: AuraFootVec3;
|
|
26
|
+
}
|
|
27
|
+
export interface AuraHeightfieldSpec {
|
|
28
|
+
readonly heightAt: (x: number, z: number) => {
|
|
29
|
+
height: number;
|
|
30
|
+
normal?: AuraFootVec3;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export interface AuraMovingPlatformSpec {
|
|
34
|
+
readonly base: AuraFootPlantingGroundLike | AuraHeightfieldSpec;
|
|
35
|
+
readonly platformHeightAt: (x: number, z: number) => number | undefined;
|
|
36
|
+
}
|
|
37
|
+
/** Structural ground surface: the real `GroundRaycaster` satisfies this. */
|
|
38
|
+
export interface AuraFootPlantingGroundLike {
|
|
39
|
+
raycastDown(origin: AuraFootVec3, maxDistance: number): {
|
|
40
|
+
point: AuraFootVec3;
|
|
41
|
+
normal: AuraFootVec3;
|
|
42
|
+
distance: number;
|
|
43
|
+
} | undefined;
|
|
44
|
+
}
|
|
45
|
+
export type AuraFootPlantingGround = AuraHeightfieldSpec | AuraMovingPlatformSpec | AuraFootPlantingGroundLike;
|
|
46
|
+
export interface AuraFootPlantingOptions {
|
|
47
|
+
readonly legs: readonly AuraFootPlantingLegOptions[];
|
|
48
|
+
readonly ground: AuraFootPlantingGround;
|
|
49
|
+
readonly ankleHeight?: number;
|
|
50
|
+
readonly rayStartHeight?: number;
|
|
51
|
+
readonly maxRayDistance?: number;
|
|
52
|
+
readonly plantThreshold?: number;
|
|
53
|
+
readonly hipDropFactor?: number;
|
|
54
|
+
}
|
|
55
|
+
export interface AuraResolvedFootPlanting {
|
|
56
|
+
readonly legs: readonly AuraFootPlantingLegOptions[];
|
|
57
|
+
readonly ground: GroundRaycaster;
|
|
58
|
+
readonly ankleHeight?: number | undefined;
|
|
59
|
+
readonly rayStartHeight?: number | undefined;
|
|
60
|
+
readonly maxRayDistance?: number | undefined;
|
|
61
|
+
readonly plantThreshold?: number | undefined;
|
|
62
|
+
readonly hipDropFactor?: number | undefined;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Resolves root foot-planting options into the runtime config. Heightfield and
|
|
66
|
+
* moving-platform specs become live raycasters here; an already-built raycaster
|
|
67
|
+
* (structural `raycastDown`) passes through untouched.
|
|
68
|
+
*/
|
|
69
|
+
export declare function resolveFootPlanting(options: AuraFootPlantingOptions): AuraResolvedFootPlanting;
|
|
70
|
+
export declare const footPlanting: {
|
|
71
|
+
readonly heightfieldGround: (heightAt: AuraHeightfieldSpec["heightAt"]) => GroundRaycaster;
|
|
72
|
+
readonly movingPlatformGround: (base: AuraFootPlantingGroundLike | AuraHeightfieldSpec, platformHeightAt: (x: number, z: number) => number | undefined) => GroundRaycaster;
|
|
73
|
+
readonly resolve: typeof resolveFootPlanting;
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=FootPlanting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FootPlanting.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/FootPlanting.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;AAC5C,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE7D,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,uFAAuF;IACvF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,YAAY,CAAA;KAAE,CAAC;CACxF;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,0BAA0B,GAAG,mBAAmB,CAAC;IAChE,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CACzE;AAED,4EAA4E;AAC5E,MAAM,WAAW,0BAA0B;IACzC,WAAW,CACT,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,GAClB;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,YAAY,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CAChF;AAED,MAAM,MAAM,sBAAsB,GAAG,mBAAmB,GAAG,sBAAsB,GAAG,0BAA0B,CAAC;AAE/G,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,SAAS,0BAA0B,EAAE,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,SAAS,0BAA0B,EAAE,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7C;AAWD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,uBAAuB,GAAG,wBAAwB,CAwB9F;AAYD,eAAO,MAAM,YAAY;2CACK,mBAAmB,CAAC,UAAU,CAAC,KAAG,eAAe;0CAIrE,0BAA0B,GAAG,mBAAmB,oBACpC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,KAC7D,eAAe;;CAIV,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { createHeightFieldGround, createMovingPlatformGround } from "../../animation/index.js";
|
|
2
|
+
function isMovingPlatformSpec(ground) {
|
|
3
|
+
const candidate = ground;
|
|
4
|
+
return typeof candidate.platformHeightAt === "function" && typeof candidate.base === "object";
|
|
5
|
+
}
|
|
6
|
+
function isRaycaster(ground) {
|
|
7
|
+
return typeof ground.raycastDown === "function";
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Resolves root foot-planting options into the runtime config. Heightfield and
|
|
11
|
+
* moving-platform specs become live raycasters here; an already-built raycaster
|
|
12
|
+
* (structural `raycastDown`) passes through untouched.
|
|
13
|
+
*/
|
|
14
|
+
export function resolveFootPlanting(options) {
|
|
15
|
+
if (options.legs.length === 0) {
|
|
16
|
+
throw new Error("footPlanting requires at least one leg.");
|
|
17
|
+
}
|
|
18
|
+
const ground = options.ground;
|
|
19
|
+
let raycaster;
|
|
20
|
+
if (isMovingPlatformSpec(ground)) {
|
|
21
|
+
raycaster = createMovingPlatformGround(toRaycaster(ground.base), ground.platformHeightAt);
|
|
22
|
+
}
|
|
23
|
+
else if (isRaycaster(ground)) {
|
|
24
|
+
raycaster = ground;
|
|
25
|
+
}
|
|
26
|
+
else if (typeof ground.heightAt === "function") {
|
|
27
|
+
raycaster = createHeightFieldGround(ground.heightAt);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
throw new Error("footPlanting.ground must be a heightfield spec, a moving-platform spec, or a raycaster.");
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
legs: options.legs.map((leg) => ({ ...leg })),
|
|
34
|
+
ground: raycaster,
|
|
35
|
+
...(options.ankleHeight !== undefined ? { ankleHeight: options.ankleHeight } : {}),
|
|
36
|
+
...(options.rayStartHeight !== undefined ? { rayStartHeight: options.rayStartHeight } : {}),
|
|
37
|
+
...(options.maxRayDistance !== undefined ? { maxRayDistance: options.maxRayDistance } : {}),
|
|
38
|
+
...(options.plantThreshold !== undefined ? { plantThreshold: options.plantThreshold } : {}),
|
|
39
|
+
...(options.hipDropFactor !== undefined ? { hipDropFactor: options.hipDropFactor } : {})
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function toRaycaster(ground) {
|
|
43
|
+
if (isRaycaster(ground)) {
|
|
44
|
+
return ground;
|
|
45
|
+
}
|
|
46
|
+
if (typeof ground.heightAt === "function") {
|
|
47
|
+
return createHeightFieldGround(ground.heightAt);
|
|
48
|
+
}
|
|
49
|
+
throw new Error("footPlanting platform base must be a heightfield spec or a raycaster.");
|
|
50
|
+
}
|
|
51
|
+
export const footPlanting = {
|
|
52
|
+
heightfieldGround(heightAt) {
|
|
53
|
+
return createHeightFieldGround(heightAt);
|
|
54
|
+
},
|
|
55
|
+
movingPlatformGround(base, platformHeightAt) {
|
|
56
|
+
return createMovingPlatformGround(toRaycaster(base), platformHeightAt);
|
|
57
|
+
},
|
|
58
|
+
resolve: resolveFootPlanting
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=FootPlanting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FootPlanting.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/FootPlanting.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAE3B,MAAM,mBAAmB,CAAC;AAqE3B,SAAS,oBAAoB,CAAC,MAA8B;IAC1D,MAAM,SAAS,GAAG,MAAyC,CAAC;IAC5D,OAAO,OAAO,SAAS,CAAC,gBAAgB,KAAK,UAAU,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC;AAChG,CAAC;AAED,SAAS,WAAW,CAAC,MAA8B;IACjD,OAAO,OAAQ,MAA8C,CAAC,WAAW,KAAK,UAAU,CAAC;AAC3F,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgC;IAClE,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,IAAI,SAA0B,CAAC;IAC/B,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,SAAS,GAAG,0BAA0B,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC5F,CAAC;SAAM,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,SAAS,GAAG,MAAyB,CAAC;IACxC,CAAC;SAAM,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACjD,SAAS,GAAG,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC,CAAC;IAC7G,CAAC;IACD,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;QAC7C,MAAM,EAAE,SAAS;QACjB,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,MAAwD;IAC3E,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,MAAyB,CAAC;IACnC,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC1C,OAAO,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,iBAAiB,CAAC,QAAyC;QACzD,OAAO,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IACD,oBAAoB,CAClB,IAAsD,EACtD,gBAA8D;QAE9D,OAAO,0BAA0B,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,EAAE,mBAAmB;CACpB,CAAC"}
|
|
@@ -2,6 +2,7 @@ import type { AuraAppFrameCallback, AuraAppHandle, AuraAppScreenshot } from "./A
|
|
|
2
2
|
import type { GameInputController, GameInputOptions } from "./GameRuntime.js";
|
|
3
3
|
import type { GameRuntimeEvidence, GameRuntimeEvidenceOptions } from "./GameEvidence.js";
|
|
4
4
|
import { type FrameLoopOptions, type FrameLoopSnapshot } from "./FrameLoop.js";
|
|
5
|
+
import { type GamePerFramePerfTelemetry, type GamePerformanceGovernorMode, type GamePerformanceGovernorSettings, type SideViewGamePerformanceBudget } from "../production-runtime/GameRenderPreset.js";
|
|
5
6
|
export type GameAppRuntimeStatus = "idle" | "running" | "paused" | "disposed";
|
|
6
7
|
export interface GameAppRuntimeLoopOptions extends Omit<FrameLoopOptions, "autoStart"> {
|
|
7
8
|
}
|
|
@@ -31,12 +32,28 @@ export interface GameAppRuntimeEvidence {
|
|
|
31
32
|
readonly lastResize?: GameAppRuntimeResize;
|
|
32
33
|
readonly loop: FrameLoopSnapshot;
|
|
33
34
|
readonly app: GameRuntimeEvidence;
|
|
35
|
+
readonly perf?: GameAppRuntimePerformanceSnapshot;
|
|
36
|
+
}
|
|
37
|
+
export interface GameAppRuntimePerformanceSnapshot {
|
|
38
|
+
readonly mode: GamePerformanceGovernorMode;
|
|
39
|
+
readonly telemetry: GamePerFramePerfTelemetry;
|
|
40
|
+
readonly settings: GamePerformanceGovernorSettings;
|
|
41
|
+
readonly degraded: readonly string[];
|
|
42
|
+
readonly polls: number;
|
|
43
|
+
}
|
|
44
|
+
export interface GameAppRuntimePerformanceBudgetOptions {
|
|
45
|
+
readonly mode: GamePerformanceGovernorMode;
|
|
46
|
+
readonly budget: SideViewGamePerformanceBudget;
|
|
47
|
+
readonly sample?: () => GamePerFramePerfTelemetry;
|
|
48
|
+
readonly apply?: (settings: GamePerformanceGovernorSettings) => void;
|
|
49
|
+
readonly initial?: GamePerformanceGovernorSettings;
|
|
34
50
|
}
|
|
35
51
|
export interface GameAppRuntimeOptions {
|
|
36
52
|
readonly autoStart?: boolean;
|
|
37
53
|
readonly loop?: GameAppRuntimeLoopOptions;
|
|
38
54
|
readonly input?: GameInputOptions | readonly GameInputOptions[];
|
|
39
55
|
readonly evidence?: GameRuntimeEvidenceOptions;
|
|
56
|
+
readonly performanceBudget?: GameAppRuntimePerformanceBudgetOptions;
|
|
40
57
|
}
|
|
41
58
|
export interface GameAppRuntime<TApp extends AuraAppHandle = AuraAppHandle> {
|
|
42
59
|
readonly kind: "aura-game-app-runtime";
|
|
@@ -47,10 +64,12 @@ export interface GameAppRuntime<TApp extends AuraAppHandle = AuraAppHandle> {
|
|
|
47
64
|
readonly paused: boolean;
|
|
48
65
|
readonly disposed: boolean;
|
|
49
66
|
readonly evidence: GameAppRuntimeEvidence;
|
|
67
|
+
readonly perf: GameAppRuntimePerformanceSnapshot | undefined;
|
|
50
68
|
start(): GameAppRuntimeEvidence;
|
|
51
69
|
pause(): GameAppRuntimeEvidence;
|
|
52
70
|
resume(): GameAppRuntimeEvidence;
|
|
53
71
|
step(dt?: number): GameAppRuntimeEvidence;
|
|
72
|
+
pollPerformance(telemetry?: GamePerFramePerfTelemetry): GameAppRuntimePerformanceSnapshot | undefined;
|
|
54
73
|
resize(width: number, height: number, pixelRatio?: number): GameAppRuntimeEvidence;
|
|
55
74
|
onFrame(callback: AuraAppFrameCallback): () => void;
|
|
56
75
|
offFrame(callback: AuraAppFrameCallback): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GameAppRuntime.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/GameAppRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,mBAAmB,EACnB,0BAA0B,EAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"GameAppRuntime.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/GameAppRuntime.ts"],"names":[],"mappings":"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"}
|