@aura3d/engine 3.0.0 → 3.0.1
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 +24 -5
- package/dist/animation/AnimationMixer.d.ts +4 -1
- package/dist/animation/AnimationMixer.d.ts.map +1 -1
- package/dist/animation/AnimationMixer.js +36 -29
- package/dist/animation/AnimationMixer.js.map +1 -1
- package/dist/animation/FootIk.d.ts +9 -0
- package/dist/animation/FootIk.d.ts.map +1 -1
- package/dist/animation/FootIk.js +22 -8
- package/dist/animation/FootIk.js.map +1 -1
- package/dist/animation/HumanoidRetargeting.d.ts +6 -2
- package/dist/animation/HumanoidRetargeting.d.ts.map +1 -1
- package/dist/animation/HumanoidRetargeting.js +18 -8
- package/dist/animation/HumanoidRetargeting.js.map +1 -1
- package/dist/animation/LocomotionEvidence.d.ts +34 -0
- package/dist/animation/LocomotionEvidence.d.ts.map +1 -0
- package/dist/animation/LocomotionEvidence.js +48 -0
- package/dist/animation/LocomotionEvidence.js.map +1 -0
- package/dist/animation/RootMotion.d.ts +13 -4
- package/dist/animation/RootMotion.d.ts.map +1 -1
- package/dist/animation/RootMotion.js +21 -1
- package/dist/animation/RootMotion.js.map +1 -1
- package/dist/animation/index.d.ts +1 -0
- package/dist/animation/index.d.ts.map +1 -1
- package/dist/animation/index.js +1 -0
- package/dist/animation/index.js.map +1 -1
- package/dist/assets/GLTFAnimationRuntime.d.ts +84 -4
- package/dist/assets/GLTFAnimationRuntime.d.ts.map +1 -1
- package/dist/assets/GLTFAnimationRuntime.js +308 -23
- package/dist/assets/GLTFAnimationRuntime.js.map +1 -1
- package/dist/assets/GLTFCompressionDecoders.d.ts +1 -0
- package/dist/assets/GLTFCompressionDecoders.d.ts.map +1 -1
- package/dist/assets/GLTFCompressionDecoders.js +20 -5
- package/dist/assets/GLTFCompressionDecoders.js.map +1 -1
- package/dist/assets/GLTFLoader.d.ts.map +1 -1
- package/dist/assets/GLTFLoader.js +21 -7
- package/dist/assets/GLTFLoader.js.map +1 -1
- package/dist/assets/KTX2BasisTextureTranscoder.d.ts.map +1 -1
- package/dist/assets/KTX2BasisTextureTranscoder.js +8 -0
- package/dist/assets/KTX2BasisTextureTranscoder.js.map +1 -1
- package/dist/controls/MapControls.d.ts +1 -1
- package/dist/controls/MapControls.d.ts.map +1 -1
- package/dist/controls/MapControls.js +3 -3
- package/dist/controls/MapControls.js.map +1 -1
- package/dist/controls/OrbitControls.d.ts +17 -3
- package/dist/controls/OrbitControls.d.ts.map +1 -1
- package/dist/controls/OrbitControls.js +24 -7
- package/dist/controls/OrbitControls.js.map +1 -1
- package/dist/controls/TrackballControls.d.ts.map +1 -1
- package/dist/controls/TrackballControls.js +2 -0
- package/dist/controls/TrackballControls.js.map +1 -1
- package/dist/create-aura3d/index.js +1 -1
- package/dist/engine/agent-api/AnimationController.d.ts +5 -1
- package/dist/engine/agent-api/AnimationController.d.ts.map +1 -1
- package/dist/engine/agent-api/AnimationController.js +5 -0
- package/dist/engine/agent-api/AnimationController.js.map +1 -1
- package/dist/engine/agent-api/CameraProjection.d.ts +2 -0
- package/dist/engine/agent-api/CameraProjection.d.ts.map +1 -0
- package/dist/engine/agent-api/CameraProjection.js +2 -0
- package/dist/engine/agent-api/CameraProjection.js.map +1 -0
- package/dist/engine/agent-api/DeferredFrameResources.d.ts +2 -0
- package/dist/engine/agent-api/DeferredFrameResources.d.ts.map +1 -0
- package/dist/engine/agent-api/DeferredFrameResources.js +2 -0
- package/dist/engine/agent-api/DeferredFrameResources.js.map +1 -0
- package/dist/engine/agent-api/FootPlanting.d.ts +6 -0
- package/dist/engine/agent-api/FootPlanting.d.ts.map +1 -1
- package/dist/engine/agent-api/FootPlanting.js +2 -1
- package/dist/engine/agent-api/FootPlanting.js.map +1 -1
- package/dist/engine/agent-api/GameCameraRigs.d.ts.map +1 -1
- package/dist/engine/agent-api/GameCameraRigs.js +7 -2
- package/dist/engine/agent-api/GameCameraRigs.js.map +1 -1
- package/dist/engine/agent-api/LabelTelemetry.d.ts +8 -2
- package/dist/engine/agent-api/LabelTelemetry.d.ts.map +1 -1
- package/dist/engine/agent-api/LabelTelemetry.js +18 -4
- package/dist/engine/agent-api/LabelTelemetry.js.map +1 -1
- package/dist/engine/agent-api/ModelInstanceMatrices.d.ts +2 -0
- package/dist/engine/agent-api/ModelInstanceMatrices.d.ts.map +1 -0
- package/dist/engine/agent-api/ModelInstanceMatrices.js +2 -0
- package/dist/engine/agent-api/ModelInstanceMatrices.js.map +1 -0
- package/dist/engine/agent-api/NavigationCrowds.d.ts +28 -0
- package/dist/engine/agent-api/NavigationCrowds.d.ts.map +1 -1
- package/dist/engine/agent-api/NavigationCrowds.js +73 -1
- package/dist/engine/agent-api/NavigationCrowds.js.map +1 -1
- package/dist/engine/agent-api/PngTexturePixels.d.ts +9 -0
- package/dist/engine/agent-api/PngTexturePixels.d.ts.map +1 -0
- package/dist/engine/agent-api/PngTexturePixels.js +53 -0
- package/dist/engine/agent-api/PngTexturePixels.js.map +1 -0
- package/dist/engine/agent-api/RootDiagnosticSnapshot.d.ts +2 -0
- package/dist/engine/agent-api/RootDiagnosticSnapshot.d.ts.map +1 -0
- package/dist/engine/agent-api/RootDiagnosticSnapshot.js +2 -0
- package/dist/engine/agent-api/RootDiagnosticSnapshot.js.map +1 -0
- package/dist/engine/agent-api/RootFrameClock.d.ts +2 -0
- package/dist/engine/agent-api/RootFrameClock.d.ts.map +1 -0
- package/dist/engine/agent-api/RootFrameClock.js +2 -0
- package/dist/engine/agent-api/RootFrameClock.js.map +1 -0
- package/dist/engine/agent-api/RootPerformanceQuality.d.ts +2 -0
- package/dist/engine/agent-api/RootPerformanceQuality.d.ts.map +1 -0
- package/dist/engine/agent-api/RootPerformanceQuality.js +2 -0
- package/dist/engine/agent-api/RootPerformanceQuality.js.map +1 -0
- package/dist/engine/agent-api/RootRuntimeSupport.d.ts +61 -0
- package/dist/engine/agent-api/RootRuntimeSupport.d.ts.map +1 -0
- package/dist/engine/agent-api/RootRuntimeSupport.js +127 -0
- package/dist/engine/agent-api/RootRuntimeSupport.js.map +1 -0
- package/dist/engine/agent-api/RuntimeNodeHandle.d.ts +22 -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/WorldLabelRenderer.d.ts +13 -2
- package/dist/engine/agent-api/WorldLabelRenderer.d.ts.map +1 -1
- package/dist/engine/agent-api/WorldLabelRenderer.js +58 -26
- package/dist/engine/agent-api/WorldLabelRenderer.js.map +1 -1
- package/dist/engine/agent-api/index.d.ts +103 -8
- package/dist/engine/agent-api/index.d.ts.map +1 -1
- package/dist/engine/agent-api/index.js +750 -242
- 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/production-runtime/RootGpuParticleWorkload.d.ts +34 -0
- package/dist/engine/production-runtime/RootGpuParticleWorkload.d.ts.map +1 -0
- package/dist/engine/production-runtime/RootGpuParticleWorkload.js +117 -0
- package/dist/engine/production-runtime/RootGpuParticleWorkload.js.map +1 -0
- package/dist/engine/production-runtime/RootRenderSourceBridge.d.ts +2 -0
- package/dist/engine/production-runtime/RootRenderSourceBridge.d.ts.map +1 -0
- package/dist/engine/production-runtime/RootRenderSourceBridge.js +2 -0
- package/dist/engine/production-runtime/RootRenderSourceBridge.js.map +1 -0
- package/dist/engine/production-runtime/TypedGLBActor.d.ts +6 -0
- package/dist/engine/production-runtime/TypedGLBActor.d.ts.map +1 -1
- package/dist/engine/production-runtime/TypedGLBActor.js +13 -0
- package/dist/engine/production-runtime/TypedGLBActor.js.map +1 -1
- package/dist/engine/production-runtime/index.d.ts +2 -0
- package/dist/engine/production-runtime/index.d.ts.map +1 -1
- package/dist/engine/production-runtime/index.js +2 -0
- package/dist/engine/production-runtime/index.js.map +1 -1
- package/dist/input/Haptics.d.ts +1 -1
- package/dist/input/Haptics.js +1 -1
- package/dist/input/InputSystem.d.ts.map +1 -1
- package/dist/input/InputSystem.js +1 -0
- package/dist/input/InputSystem.js.map +1 -1
- package/dist/input/PointerDevice.d.ts +1 -0
- package/dist/input/PointerDevice.d.ts.map +1 -1
- package/dist/input/PointerDevice.js +1 -1
- package/dist/input/PointerDevice.js.map +1 -1
- package/dist/input/controls/OrbitControls.d.ts +44 -1
- package/dist/input/controls/OrbitControls.d.ts.map +1 -1
- package/dist/input/controls/OrbitControls.js +151 -12
- package/dist/input/controls/OrbitControls.js.map +1 -1
- package/dist/lean/base.d.ts +1 -1
- package/dist/lean/base.d.ts.map +1 -1
- package/dist/lean/base.js +1 -1
- package/dist/lean/base.js.map +1 -1
- package/dist/lean/index.js +1 -1
- package/dist/lean/index.js.map +1 -1
- package/dist/navigation-recast/index.d.ts +116 -0
- package/dist/navigation-recast/index.d.ts.map +1 -0
- package/dist/navigation-recast/index.js +247 -0
- package/dist/navigation-recast/index.js.map +1 -0
- package/dist/physics-rapier/HeightfieldLayout.d.ts +12 -0
- package/dist/physics-rapier/HeightfieldLayout.d.ts.map +1 -0
- package/dist/physics-rapier/HeightfieldLayout.js +19 -0
- package/dist/physics-rapier/HeightfieldLayout.js.map +1 -0
- package/dist/physics-rapier/index.d.ts.map +1 -1
- package/dist/physics-rapier/index.js +2 -1
- package/dist/physics-rapier/index.js.map +1 -1
- package/dist/rendering/CascadedShadowMaps.d.ts.map +1 -1
- package/dist/rendering/CascadedShadowMaps.js +3 -1
- package/dist/rendering/CascadedShadowMaps.js.map +1 -1
- package/dist/rendering/ExtensionScalarAtlas.d.ts +18 -0
- package/dist/rendering/ExtensionScalarAtlas.d.ts.map +1 -0
- package/dist/rendering/ExtensionScalarAtlas.js +107 -0
- package/dist/rendering/ExtensionScalarAtlas.js.map +1 -0
- package/dist/rendering/LeanWebGL2Device.d.ts +265 -0
- package/dist/rendering/LeanWebGL2Device.d.ts.map +1 -0
- package/dist/rendering/LeanWebGL2Device.js +4001 -0
- package/dist/rendering/LeanWebGL2Device.js.map +1 -0
- package/dist/rendering/MaterialBinding.js +1 -1
- package/dist/rendering/MaterialBinding.js.map +1 -1
- package/dist/rendering/PlanarReflection.d.ts +2 -2
- package/dist/rendering/PlanarReflection.js +3 -3
- package/dist/rendering/PlanarReflection.js.map +1 -1
- package/dist/rendering/PostProcessPass.d.ts +19 -0
- package/dist/rendering/PostProcessPass.d.ts.map +1 -1
- package/dist/rendering/PostProcessPass.js +64 -32
- package/dist/rendering/PostProcessPass.js.map +1 -1
- package/dist/rendering/ProjectionMath.d.ts +3 -0
- package/dist/rendering/ProjectionMath.d.ts.map +1 -0
- package/dist/rendering/ProjectionMath.js +26 -0
- package/dist/rendering/ProjectionMath.js.map +1 -0
- package/dist/rendering/ReflectionSurfaces.d.ts +4 -1
- package/dist/rendering/ReflectionSurfaces.d.ts.map +1 -1
- package/dist/rendering/ReflectionSurfaces.js +10 -1
- package/dist/rendering/ReflectionSurfaces.js.map +1 -1
- package/dist/rendering/RenderDevice.d.ts +5 -0
- package/dist/rendering/RenderDevice.d.ts.map +1 -1
- package/dist/rendering/RenderDevice.js.map +1 -1
- package/dist/rendering/Renderer.d.ts +9 -0
- package/dist/rendering/Renderer.d.ts.map +1 -1
- package/dist/rendering/Renderer.js +94 -8
- package/dist/rendering/Renderer.js.map +1 -1
- package/dist/rendering/RendererPostprocessPlan.d.ts +16 -3
- package/dist/rendering/RendererPostprocessPlan.d.ts.map +1 -1
- package/dist/rendering/RendererPostprocessPlan.js +16 -2
- package/dist/rendering/RendererPostprocessPlan.js.map +1 -1
- package/dist/rendering/ScreenSpaceReflectionPass.d.ts +43 -0
- package/dist/rendering/ScreenSpaceReflectionPass.d.ts.map +1 -0
- package/dist/rendering/ScreenSpaceReflectionPass.js +58 -0
- package/dist/rendering/ScreenSpaceReflectionPass.js.map +1 -0
- package/dist/rendering/ShaderLibrary.d.ts.map +1 -1
- package/dist/rendering/ShaderLibrary.js +168 -197
- package/dist/rendering/ShaderLibrary.js.map +1 -1
- package/dist/rendering/ShaderLibraryCore.d.ts +3 -0
- package/dist/rendering/ShaderLibraryCore.d.ts.map +1 -1
- package/dist/rendering/ShaderLibraryCore.js +3 -0
- package/dist/rendering/ShaderLibraryCore.js.map +1 -1
- package/dist/rendering/TemporalHistory.d.ts +37 -0
- package/dist/rendering/TemporalHistory.d.ts.map +1 -0
- package/dist/rendering/TemporalHistory.js +135 -0
- package/dist/rendering/TemporalHistory.js.map +1 -0
- package/dist/rendering/TemporalMath.d.ts +3 -0
- package/dist/rendering/TemporalMath.d.ts.map +1 -0
- package/dist/rendering/TemporalMath.js +9 -0
- package/dist/rendering/TemporalMath.js.map +1 -0
- package/dist/rendering/TexturedPBRMaterial.d.ts +3 -0
- package/dist/rendering/TexturedPBRMaterial.d.ts.map +1 -1
- package/dist/rendering/TexturedPBRMaterial.js +65 -3
- package/dist/rendering/TexturedPBRMaterial.js.map +1 -1
- package/dist/rendering/WebGL2Device.d.ts +15 -0
- package/dist/rendering/WebGL2Device.d.ts.map +1 -1
- package/dist/rendering/WebGL2Device.js +328 -90
- package/dist/rendering/WebGL2Device.js.map +1 -1
- package/dist/rendering/WebGPUDevice.d.ts +16 -5
- package/dist/rendering/WebGPUDevice.d.ts.map +1 -1
- package/dist/rendering/WebGPUDevice.js +357 -58
- package/dist/rendering/WebGPUDevice.js.map +1 -1
- package/dist/rendering/WebGPUExtensionAtlas.d.ts +6 -0
- package/dist/rendering/WebGPUExtensionAtlas.d.ts.map +1 -0
- package/dist/rendering/WebGPUExtensionAtlas.js +225 -0
- package/dist/rendering/WebGPUExtensionAtlas.js.map +1 -0
- package/dist/rendering/effects/GPUParticleBackend.d.ts +4 -2
- package/dist/rendering/effects/GPUParticleBackend.d.ts.map +1 -1
- package/dist/rendering/effects/GPUParticleBackend.js +20 -2
- package/dist/rendering/effects/GPUParticleBackend.js.map +1 -1
- package/dist/rendering/effects/ResidentGPUParticleRenderer.d.ts +158 -0
- package/dist/rendering/effects/ResidentGPUParticleRenderer.d.ts.map +1 -0
- package/dist/rendering/effects/ResidentGPUParticleRenderer.js +576 -0
- package/dist/rendering/effects/ResidentGPUParticleRenderer.js.map +1 -0
- package/dist/rendering/extension-scalar-atlas.d.ts +3 -0
- package/dist/rendering/extension-scalar-atlas.d.ts.map +1 -0
- package/dist/rendering/extension-scalar-atlas.js +2 -0
- package/dist/rendering/extension-scalar-atlas.js.map +1 -0
- package/dist/rendering/index.d.ts +1 -0
- package/dist/rendering/index.d.ts.map +1 -1
- package/dist/rendering/index.js +1 -0
- package/dist/rendering/index.js.map +1 -1
- package/dist/rendering/lean/LeanProductionRenderer.d.ts.map +1 -1
- package/dist/rendering/lean/LeanProductionRenderer.js +2 -2
- package/dist/rendering/lean/LeanProductionRenderer.js.map +1 -1
- package/dist/rendering/lean-core-runtime.d.ts +13 -0
- package/dist/rendering/lean-core-runtime.d.ts.map +1 -0
- package/dist/rendering/lean-core-runtime.js +10 -0
- package/dist/rendering/lean-core-runtime.js.map +1 -0
- package/dist/rendering/postprocess/NativeBloomPyramid.d.ts +17 -1
- package/dist/rendering/postprocess/NativeBloomPyramid.d.ts.map +1 -1
- package/dist/rendering/postprocess/NativeBloomPyramid.js +31 -1
- package/dist/rendering/postprocess/NativeBloomPyramid.js.map +1 -1
- package/dist/rendering/production-runtime/ProductionRendererTypes.d.ts +1 -0
- package/dist/rendering/production-runtime/ProductionRendererTypes.d.ts.map +1 -1
- package/dist/rendering/production-runtime/ProductionRendererTypes.js.map +1 -1
- package/dist/rendering/production-runtime/ProductionRuntimeRenderer.d.ts +3 -0
- package/dist/rendering/production-runtime/ProductionRuntimeRenderer.d.ts.map +1 -1
- package/dist/rendering/production-runtime/ProductionRuntimeRenderer.js +8 -1
- package/dist/rendering/production-runtime/ProductionRuntimeRenderer.js.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGL2Renderer.d.ts +4 -0
- package/dist/rendering/production-runtime/ProductionWebGL2Renderer.d.ts.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGL2Renderer.js +15 -0
- package/dist/rendering/production-runtime/ProductionWebGL2Renderer.js.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.d.ts +7 -1
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.d.ts.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.js +28 -2
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.js.map +1 -1
- package/dist/rendering/production-runtime/framegraph/FrameGraph.d.ts +4 -2
- package/dist/rendering/production-runtime/framegraph/FrameGraph.d.ts.map +1 -1
- package/dist/rendering/production-runtime/framegraph/FrameGraph.js +62 -4
- package/dist/rendering/production-runtime/framegraph/FrameGraph.js.map +1 -1
- package/dist/rendering/production-runtime/framegraph/NativeFrameGraphBindings.d.ts +32 -0
- package/dist/rendering/production-runtime/framegraph/NativeFrameGraphBindings.d.ts.map +1 -0
- package/dist/rendering/production-runtime/framegraph/NativeFrameGraphBindings.js +111 -0
- package/dist/rendering/production-runtime/framegraph/NativeFrameGraphBindings.js.map +1 -0
- package/dist/rendering/production-runtime/framegraph/RenderPass.d.ts +23 -0
- package/dist/rendering/production-runtime/framegraph/RenderPass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/framegraph/RenderPass.js +87 -1
- package/dist/rendering/production-runtime/framegraph/RenderPass.js.map +1 -1
- package/dist/rendering/production-runtime/index.d.ts +2 -0
- package/dist/rendering/production-runtime/index.d.ts.map +1 -1
- package/dist/rendering/production-runtime/index.js +1 -0
- package/dist/rendering/production-runtime/index.js.map +1 -1
- package/dist/rendering/production-runtime/passes/DepthPrepass.d.ts +4 -12
- package/dist/rendering/production-runtime/passes/DepthPrepass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/DepthPrepass.js +3 -11
- package/dist/rendering/production-runtime/passes/DepthPrepass.js.map +1 -1
- package/dist/rendering/production-runtime/passes/FramegraphTopology.js +1 -1
- package/dist/rendering/production-runtime/passes/FramegraphTopology.js.map +1 -1
- package/dist/rendering/production-runtime/passes/OpaquePass.d.ts +3 -8
- package/dist/rendering/production-runtime/passes/OpaquePass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/OpaquePass.js +3 -1
- package/dist/rendering/production-runtime/passes/OpaquePass.js.map +1 -1
- package/dist/rendering/production-runtime/passes/ShadowPass.d.ts +3 -8
- package/dist/rendering/production-runtime/passes/ShadowPass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/ShadowPass.js +2 -0
- package/dist/rendering/production-runtime/passes/ShadowPass.js.map +1 -1
- package/dist/rendering/production-runtime/passes/SkyboxPass.d.ts +3 -7
- package/dist/rendering/production-runtime/passes/SkyboxPass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/SkyboxPass.js +2 -0
- package/dist/rendering/production-runtime/passes/SkyboxPass.js.map +1 -1
- package/dist/rendering/production-runtime/passes/ToneMappingPass.d.ts +7 -10
- package/dist/rendering/production-runtime/passes/ToneMappingPass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/ToneMappingPass.js +9 -0
- package/dist/rendering/production-runtime/passes/ToneMappingPass.js.map +1 -1
- package/dist/rendering/production-runtime/passes/TransparentPass.d.ts +4 -9
- package/dist/rendering/production-runtime/passes/TransparentPass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/TransparentPass.js +6 -1
- package/dist/rendering/production-runtime/passes/TransparentPass.js.map +1 -1
- package/dist/rendering/reflection-surfaces.d.ts +5 -0
- package/dist/rendering/reflection-surfaces.d.ts.map +1 -0
- package/dist/rendering/reflection-surfaces.js +3 -0
- package/dist/rendering/reflection-surfaces.js.map +1 -0
- package/dist/rendering/webgpu/WebGPUPostShaders.d.ts +2 -3
- package/dist/rendering/webgpu/WebGPUPostShaders.d.ts.map +1 -1
- package/dist/rendering/webgpu/WebGPUPostShaders.js +2 -3
- package/dist/rendering/webgpu/WebGPUPostShaders.js.map +1 -1
- package/dist/rendering/webgpu/WebGPUTemporal.d.ts +17 -0
- package/dist/rendering/webgpu/WebGPUTemporal.d.ts.map +1 -0
- package/dist/rendering/webgpu/WebGPUTemporal.js +64 -0
- package/dist/rendering/webgpu/WebGPUTemporal.js.map +1 -0
- package/dist/rendering/webgpu.d.ts +6 -0
- package/dist/rendering/webgpu.d.ts.map +1 -1
- package/dist/rendering/webgpu.js +4 -0
- package/dist/rendering/webgpu.js.map +1 -1
- package/package.json +37 -24
- package/templates/cinematic-scene/package.json +2 -2
- package/templates/cinematic-scene/src/main.ts +14 -2
- package/templates/mini-game/package.json +2 -2
- package/templates/product-viewer/package.json +2 -2
- package/templates/production-asset-inspector/package.json +1 -1
- package/templates/production-material-studio/package.json +1 -1
- package/templates/production-product-configurator/package.json +1 -1
- package/templates/production-product-viewer/package.json +1 -1
- package/templates/cinematic-scene/node_modules/.vite/deps/_metadata.json +0 -8
- package/templates/cinematic-scene/node_modules/.vite/deps/package.json +0 -3
- package/templates/cinematic-scene/test-results/.last-run.json +0 -6
- package/templates/cinematic-scene/test-results/route-health-Aura3D-cinematic-scene-reaches-ready-state/error-context.md +0 -64
- package/templates/product-viewer/node_modules/.vite/deps/_metadata.json +0 -8
- package/templates/product-viewer/node_modules/.vite/deps/package.json +0 -3
|
@@ -11,7 +11,7 @@ import {} from "./MorphTarget.js";
|
|
|
11
11
|
import { computeSkinnedGeometryBounds, computeSkinnedMorphTargetWeightedBounds } from "./SkinningBounds.js";
|
|
12
12
|
import { RenderGraph } from "./RenderGraph.js";
|
|
13
13
|
import { BloomPass, FXAAPass, ToneMappingPass, bloomFloatPixels, bloomPixels, chromaticAberrationPixels, colorGradePixels, contactShadowPixels, createDepthTextureBinding, depthOfFieldPixels, filmGrainPixels, fusedLdrPostprocessPixels, fxaaPixels, motionBlurPixels, outlinePixels, ssaoPixels, ssrPixels, taaPixels, toneMapFloatPixels, toneMapPixels, volumetricLightPixels, writePostProcessPixels } from "./PostProcessPass.js";
|
|
14
|
-
import { createRendererPostprocessPasses, createRendererPostprocessPlanDiagnostics } from "./RendererPostprocessPlan.js";
|
|
14
|
+
import { bindRendererSsrProjection, createRendererPostprocessPasses, createRendererPostprocessPlanDiagnostics } from "./RendererPostprocessPlan.js";
|
|
15
15
|
import { ShadowMap } from "./ShadowMap.js";
|
|
16
16
|
import { ShadowPass } from "./ShadowPass.js";
|
|
17
17
|
import { Sampler } from "./Sampler.js";
|
|
@@ -78,6 +78,10 @@ export class Renderer {
|
|
|
78
78
|
* still reallocates exactly once.
|
|
79
79
|
*/
|
|
80
80
|
shadowDepthTarget = null;
|
|
81
|
+
lastShadowEvidence = null;
|
|
82
|
+
submittedShadowFrameId = 0;
|
|
83
|
+
/** Actual shadow resources selected for the most recent submitted forward pass. */
|
|
84
|
+
getShadowEvidence() { return this.lastShadowEvidence; }
|
|
81
85
|
/**
|
|
82
86
|
* Forward-color target reused by the postprocess path across frames.
|
|
83
87
|
*
|
|
@@ -94,8 +98,10 @@ export class Renderer {
|
|
|
94
98
|
disposed = false;
|
|
95
99
|
animationLoop = null;
|
|
96
100
|
fusedLdrPostprocessScratch = {};
|
|
97
|
-
constructor(device, options) {
|
|
101
|
+
constructor(device, options, temporalHistory) {
|
|
98
102
|
this.device = device;
|
|
103
|
+
this.temporalHistory = temporalHistory;
|
|
104
|
+
this.unsubscribeTemporalDeviceLoss = device.onDeviceLost?.(() => this.temporalHistory.dispose());
|
|
99
105
|
this.canvas = options.canvas;
|
|
100
106
|
this.width = options.width ?? inferInitialCanvasDimension(options.canvas, "width");
|
|
101
107
|
this.height = options.height ?? inferInitialCanvasDimension(options.canvas, "height");
|
|
@@ -110,7 +116,11 @@ export class Renderer {
|
|
|
110
116
|
}
|
|
111
117
|
const shaderLibrary = options.shaderLibrary
|
|
112
118
|
?? (await import("./ShaderLibrary.js")).createDefaultShaderLibrary();
|
|
113
|
-
|
|
119
|
+
// Temporal history is an optional runtime subsystem. Keep it behind the
|
|
120
|
+
// asynchronous renderer factory so non-temporal apps do not place its
|
|
121
|
+
// shaders, materials, and target owner on their critical download path.
|
|
122
|
+
const { TemporalHistory } = await import("./TemporalHistory.js");
|
|
123
|
+
return new Renderer(device, { ...options, shaderLibrary }, new TemporalHistory());
|
|
114
124
|
}
|
|
115
125
|
getFeatureReport() {
|
|
116
126
|
return createRendererFeatureReport(this.device);
|
|
@@ -120,6 +130,8 @@ export class Renderer {
|
|
|
120
130
|
if (width <= 0 || height <= 0 || !Number.isInteger(width) || !Number.isInteger(height)) {
|
|
121
131
|
throw new RenderDeviceError("Renderer dimensions must be positive integers", "INVALID_FRAME_SIZE", { width, height });
|
|
122
132
|
}
|
|
133
|
+
if (this.width !== width || this.height !== height)
|
|
134
|
+
this.temporalHistory.dispose();
|
|
123
135
|
this.width = width;
|
|
124
136
|
this.height = height;
|
|
125
137
|
this.resizeCanvas(width, height);
|
|
@@ -155,6 +167,9 @@ export class Renderer {
|
|
|
155
167
|
loop.start();
|
|
156
168
|
return loop;
|
|
157
169
|
}
|
|
170
|
+
temporalHistory;
|
|
171
|
+
unsubscribeTemporalDeviceLoss;
|
|
172
|
+
resetTemporalHistory(_reason = "explicit-reset") { this.temporalHistory.reset(); }
|
|
158
173
|
render(sourceOrInput, camera) {
|
|
159
174
|
this.assertAlive();
|
|
160
175
|
const { source, camera: inputCamera } = normalizeRendererInput(sourceOrInput, camera);
|
|
@@ -190,7 +205,9 @@ export class Renderer {
|
|
|
190
205
|
cameraPosition = sourceCameraPosition ?? autoFrame.cameraPosition;
|
|
191
206
|
}
|
|
192
207
|
}
|
|
193
|
-
|
|
208
|
+
let postprocess = collectPostprocess(source);
|
|
209
|
+
if (!postprocess?.temporal || (!postprocess.motionBlur && !postprocess.taa))
|
|
210
|
+
this.temporalHistory.reset();
|
|
194
211
|
const ownedTargets = [];
|
|
195
212
|
const ownedShadowPasses = [];
|
|
196
213
|
this.graph.clear();
|
|
@@ -221,7 +238,10 @@ export class Renderer {
|
|
|
221
238
|
backend: this.device.kind
|
|
222
239
|
});
|
|
223
240
|
}
|
|
224
|
-
|
|
241
|
+
// Temporal AA owns subpixel coverage. Pre-resolving MSAA before tone
|
|
242
|
+
// mapping gives it nonlinear mixed-coverage colors while velocity remains
|
|
243
|
+
// single-sample, biasing moving silhouettes and filtering them twice.
|
|
244
|
+
const sampleCount = postprocess.sampleCount ?? (postprocess.taa && postprocess.temporal ? 1 : this.device.kind === "webgpu" && requiresDepthTexture ? 1 : 4);
|
|
225
245
|
// Reused across frames. It still occupies `ownedTargets[0]`, because the postprocess chain and
|
|
226
246
|
// the diagnostics builder both read the forward target from that slot; the end-of-frame
|
|
227
247
|
// disposal loop skips it via `isReusedTarget` so the reuse is safe.
|
|
@@ -231,6 +251,7 @@ export class Renderer {
|
|
|
231
251
|
}
|
|
232
252
|
this.device.beginFrame(this.width, this.height);
|
|
233
253
|
try {
|
|
254
|
+
this.lastShadowEvidence = null;
|
|
234
255
|
const rendererShadowMap = explicitShadowMap ?? this.executeRendererShadowMap({
|
|
235
256
|
shadowOptions,
|
|
236
257
|
source,
|
|
@@ -240,6 +261,14 @@ export class Renderer {
|
|
|
240
261
|
ownedShadowPasses,
|
|
241
262
|
camera: resolvedCamera?.camera
|
|
242
263
|
});
|
|
264
|
+
this.lastShadowEvidence = rendererShadowMap ? {
|
|
265
|
+
lightMatrix: Array.from(rendererShadowMap.lightMatrix),
|
|
266
|
+
cascades: rendererShadowMap.cascades?.map(c => ({ index: c.index, near: c.near, far: c.far, lightMatrix: Array.from(c.shadowMap.lightMatrix) })) ?? [],
|
|
267
|
+
pointFaceMatrices: rendererShadowMap.pointLight ? Array.from(rendererShadowMap.pointLight.faceMatrices) : [],
|
|
268
|
+
pointFaceRects: rendererShadowMap.pointLight ? Array.from(rendererShadowMap.pointLight.faceRects) : [],
|
|
269
|
+
stabilize: shadowOptions?.stabilize !== false,
|
|
270
|
+
shadowRenderTargetsAllocated: this.device.getDiagnostics().shadowRenderTargetsAllocated ?? null,
|
|
271
|
+
} : null;
|
|
243
272
|
if (postprocess) {
|
|
244
273
|
const forwardTarget = ownedTargets[0];
|
|
245
274
|
if (!forwardTarget) {
|
|
@@ -259,6 +288,14 @@ export class Renderer {
|
|
|
259
288
|
shaderLibrary: this.shaderLibrary
|
|
260
289
|
}));
|
|
261
290
|
}
|
|
291
|
+
if (postprocess?.temporal && (postprocess.motionBlur || postprocess.taa)) {
|
|
292
|
+
if (postprocess.execution === "cpu-deterministic" || !this.device.presentLdrPostprocess)
|
|
293
|
+
throw new RenderDeviceError("Renderer temporal effects require native GPU presentation", "TEMPORAL_NATIVE_REQUIRED");
|
|
294
|
+
const temporal = this.temporalHistory.prepare(this.device, this.width, this.height, items, cameraViewProjection, { ...postprocess.temporal, jitter: Boolean(postprocess.taa) });
|
|
295
|
+
items = this.temporalHistory.renderItems;
|
|
296
|
+
postprocess = { ...postprocess, ...(postprocess.motionBlur ? { motionBlur: { ...postprocess.motionBlur, temporal } } : {}), ...(postprocess.taa ? { taa: { ...postprocess.taa, temporal } } : {}) };
|
|
297
|
+
this.device.setRenderTarget(ownedTargets[0]);
|
|
298
|
+
}
|
|
262
299
|
this.graph.addPass(new ForwardPass({
|
|
263
300
|
items,
|
|
264
301
|
lights,
|
|
@@ -274,9 +311,18 @@ export class Renderer {
|
|
|
274
311
|
}));
|
|
275
312
|
this.graph.execute({ device: this.device, width: this.width, height: this.height });
|
|
276
313
|
if (postprocess) {
|
|
314
|
+
postprocess = bindRendererSsrProjection(postprocess, cameraViewProjection ?? identityMat4());
|
|
277
315
|
this.executePostprocess(postprocess, ownedTargets, explicitRenderTarget);
|
|
316
|
+
if (postprocess.temporal && (postprocess.motionBlur || postprocess.taa))
|
|
317
|
+
this.temporalHistory.commit();
|
|
278
318
|
}
|
|
279
319
|
}
|
|
320
|
+
catch (error) {
|
|
321
|
+
this.lastShadowEvidence = null;
|
|
322
|
+
if (postprocess?.temporal)
|
|
323
|
+
this.temporalHistory.reset();
|
|
324
|
+
throw error;
|
|
325
|
+
}
|
|
280
326
|
finally {
|
|
281
327
|
this.device.endFrame();
|
|
282
328
|
for (const shadowPass of ownedShadowPasses) {
|
|
@@ -290,6 +336,9 @@ export class Renderer {
|
|
|
290
336
|
target.dispose();
|
|
291
337
|
}
|
|
292
338
|
}
|
|
339
|
+
this.submittedShadowFrameId += 1;
|
|
340
|
+
if (this.lastShadowEvidence)
|
|
341
|
+
this.lastShadowEvidence = { ...this.lastShadowEvidence, submissionFrameId: this.submittedShadowFrameId };
|
|
293
342
|
return withRendererFrameDiagnostics(this.device.getDiagnostics(), collectionDiagnostics, createPostprocessDiagnostics(postprocess, ownedTargets, this.width, this.height, {
|
|
294
343
|
targetFormat: postprocessTargetFormat,
|
|
295
344
|
nativeLdrPostprocess: Boolean(this.device.presentLdrPostprocess),
|
|
@@ -331,7 +380,9 @@ export class Renderer {
|
|
|
331
380
|
cameraPosition = sourceCameraPosition ?? autoFrame.cameraPosition;
|
|
332
381
|
}
|
|
333
382
|
}
|
|
334
|
-
|
|
383
|
+
let postprocess = collectPostprocess(source);
|
|
384
|
+
if (!postprocess?.temporal || (!postprocess.motionBlur && !postprocess.taa))
|
|
385
|
+
this.temporalHistory.reset();
|
|
335
386
|
const ownedTargets = [];
|
|
336
387
|
const ownedShadowPasses = [];
|
|
337
388
|
this.graph.clear();
|
|
@@ -362,7 +413,10 @@ export class Renderer {
|
|
|
362
413
|
backend: this.device.kind
|
|
363
414
|
});
|
|
364
415
|
}
|
|
365
|
-
|
|
416
|
+
// Temporal AA owns subpixel coverage. Pre-resolving MSAA before tone
|
|
417
|
+
// mapping gives it nonlinear mixed-coverage colors while velocity remains
|
|
418
|
+
// single-sample, biasing moving silhouettes and filtering them twice.
|
|
419
|
+
const sampleCount = postprocess.sampleCount ?? (postprocess.taa && postprocess.temporal ? 1 : this.device.kind === "webgpu" && requiresDepthTexture ? 1 : 4);
|
|
366
420
|
// Reused across frames. It still occupies `ownedTargets[0]`, because the postprocess chain and
|
|
367
421
|
// the diagnostics builder both read the forward target from that slot; the end-of-frame
|
|
368
422
|
// disposal loop skips it via `isReusedTarget` so the reuse is safe.
|
|
@@ -372,6 +426,7 @@ export class Renderer {
|
|
|
372
426
|
}
|
|
373
427
|
this.device.beginFrame(this.width, this.height);
|
|
374
428
|
try {
|
|
429
|
+
this.lastShadowEvidence = null;
|
|
375
430
|
const rendererShadowMap = explicitShadowMap ?? this.executeRendererShadowMap({
|
|
376
431
|
shadowOptions,
|
|
377
432
|
source,
|
|
@@ -381,6 +436,14 @@ export class Renderer {
|
|
|
381
436
|
ownedShadowPasses,
|
|
382
437
|
camera: resolvedCamera?.camera
|
|
383
438
|
});
|
|
439
|
+
this.lastShadowEvidence = rendererShadowMap ? {
|
|
440
|
+
lightMatrix: Array.from(rendererShadowMap.lightMatrix),
|
|
441
|
+
cascades: rendererShadowMap.cascades?.map(c => ({ index: c.index, near: c.near, far: c.far, lightMatrix: Array.from(c.shadowMap.lightMatrix) })) ?? [],
|
|
442
|
+
pointFaceMatrices: rendererShadowMap.pointLight ? Array.from(rendererShadowMap.pointLight.faceMatrices) : [],
|
|
443
|
+
pointFaceRects: rendererShadowMap.pointLight ? Array.from(rendererShadowMap.pointLight.faceRects) : [],
|
|
444
|
+
stabilize: shadowOptions?.stabilize !== false,
|
|
445
|
+
shadowRenderTargetsAllocated: this.device.getDiagnostics().shadowRenderTargetsAllocated ?? null,
|
|
446
|
+
} : null;
|
|
384
447
|
if (postprocess) {
|
|
385
448
|
const forwardTarget = ownedTargets[0];
|
|
386
449
|
if (!forwardTarget) {
|
|
@@ -400,6 +463,14 @@ export class Renderer {
|
|
|
400
463
|
shaderLibrary: this.shaderLibrary
|
|
401
464
|
}));
|
|
402
465
|
}
|
|
466
|
+
if (postprocess?.temporal && (postprocess.motionBlur || postprocess.taa)) {
|
|
467
|
+
if (postprocess.execution === "cpu-deterministic" || !this.device.presentLdrPostprocess)
|
|
468
|
+
throw new RenderDeviceError("Renderer temporal effects require native GPU presentation", "TEMPORAL_NATIVE_REQUIRED");
|
|
469
|
+
const temporal = this.temporalHistory.prepare(this.device, this.width, this.height, items, cameraViewProjection, { ...postprocess.temporal, jitter: Boolean(postprocess.taa) });
|
|
470
|
+
items = this.temporalHistory.renderItems;
|
|
471
|
+
postprocess = { ...postprocess, ...(postprocess.motionBlur ? { motionBlur: { ...postprocess.motionBlur, temporal } } : {}), ...(postprocess.taa ? { taa: { ...postprocess.taa, temporal } } : {}) };
|
|
472
|
+
this.device.setRenderTarget(ownedTargets[0]);
|
|
473
|
+
}
|
|
403
474
|
this.graph.addPass(new ForwardPass({
|
|
404
475
|
items,
|
|
405
476
|
lights,
|
|
@@ -415,9 +486,18 @@ export class Renderer {
|
|
|
415
486
|
}));
|
|
416
487
|
this.graph.execute({ device: this.device, width: this.width, height: this.height });
|
|
417
488
|
if (postprocess) {
|
|
489
|
+
postprocess = bindRendererSsrProjection(postprocess, cameraViewProjection ?? identityMat4());
|
|
418
490
|
await this.executePostprocessAsync(postprocess, ownedTargets, explicitRenderTarget);
|
|
491
|
+
if (postprocess.temporal && (postprocess.motionBlur || postprocess.taa))
|
|
492
|
+
this.temporalHistory.commit();
|
|
419
493
|
}
|
|
420
494
|
}
|
|
495
|
+
catch (error) {
|
|
496
|
+
this.lastShadowEvidence = null;
|
|
497
|
+
if (postprocess?.temporal)
|
|
498
|
+
this.temporalHistory.reset();
|
|
499
|
+
throw error;
|
|
500
|
+
}
|
|
421
501
|
finally {
|
|
422
502
|
this.device.endFrame();
|
|
423
503
|
for (const shadowPass of ownedShadowPasses) {
|
|
@@ -431,6 +511,9 @@ export class Renderer {
|
|
|
431
511
|
target.dispose();
|
|
432
512
|
}
|
|
433
513
|
}
|
|
514
|
+
this.submittedShadowFrameId += 1;
|
|
515
|
+
if (this.lastShadowEvidence)
|
|
516
|
+
this.lastShadowEvidence = { ...this.lastShadowEvidence, submissionFrameId: this.submittedShadowFrameId };
|
|
434
517
|
return withRendererFrameDiagnostics(this.device.getDiagnostics(), collectionDiagnostics, createPostprocessDiagnostics(postprocess, ownedTargets, this.width, this.height, {
|
|
435
518
|
targetFormat: postprocessTargetFormat,
|
|
436
519
|
nativeLdrPostprocess: Boolean(this.device.presentLdrPostprocess),
|
|
@@ -465,12 +548,15 @@ export class Renderer {
|
|
|
465
548
|
return this.device.getDiagnostics();
|
|
466
549
|
}
|
|
467
550
|
dispose() {
|
|
551
|
+
this.lastShadowEvidence = null;
|
|
468
552
|
this.animationLoop?.stop();
|
|
469
553
|
this.animationLoop = null;
|
|
470
554
|
this.shadowDepthTarget?.dispose();
|
|
471
555
|
this.shadowDepthTarget = null;
|
|
472
556
|
this.forwardColorTarget?.target.dispose();
|
|
473
557
|
this.forwardColorTarget = null;
|
|
558
|
+
this.unsubscribeTemporalDeviceLoss?.();
|
|
559
|
+
this.temporalHistory.dispose();
|
|
474
560
|
this.device.dispose();
|
|
475
561
|
this.disposed = true;
|
|
476
562
|
}
|
|
@@ -990,7 +1076,7 @@ export class Renderer {
|
|
|
990
1076
|
casters: [],
|
|
991
1077
|
receivers: [],
|
|
992
1078
|
padding: options.shadowOptions.cascadePadding ?? 0.25,
|
|
993
|
-
stabilize:
|
|
1079
|
+
stabilize: options.shadowOptions.stabilize !== false
|
|
994
1080
|
});
|
|
995
1081
|
const lightMatrices = fits.map(shadowCameraFitViewProjectionMatrix);
|
|
996
1082
|
const cascadePass = new CascadedShadowPass({
|