@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
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { UniformValue } from "./RenderDevice.js";
|
|
2
|
+
export declare const WEBGPU_ATLAS_MAPS: readonly ["baseColor", "normal", "metallicRoughness", "occlusion", "emissive", "clearcoat", "clearcoatRoughness", "clearcoatNormal", "sheenColor", "sheenRoughness", "anisotropy", "iridescence", "iridescenceThickness"];
|
|
3
|
+
/** Layout mirrors AtlasUniforms: 13 map records of five vec4s, then seven vec4s. */
|
|
4
|
+
export declare function webgpuExtensionAtlasUniforms(uniforms?: ReadonlyMap<string, UniformValue>): Float32Array;
|
|
5
|
+
export declare const WEBGPU_EXTENSION_ATLAS_WGSL = "\nstruct AtlasMap {\n transform: vec4<f32>,\n control: vec4<f32>,\n wrapMode: vec4<f32>,\n rect: vec4<f32>,\n filterMode: vec4<f32>,\n};\nstruct AtlasUniforms {\n maps: array<AtlasMap, 13>,\n coat: vec4<f32>,\n sheen: vec4<f32>,\n iridescence: vec4<f32>,\n factors: vec4<f32>,\n emissive: vec4<f32>,\n substrate: vec4<f32>,\n specularColor: vec4<f32>,\n};\n@group(0) @binding(19) var<uniform> u_atlas: AtlasUniforms;\n@group(0) @binding(20) var u_scalarAtlas: texture_2d<f32>;\n@group(0) @binding(21) var u_coatNormalSampler: sampler;\n@group(0) @binding(22) var u_coatNormalTexture: texture_2d<f32>;\n@group(0) @binding(23) var u_sheenSampler: sampler;\n@group(0) @binding(24) var u_sheenTexture: texture_2d<f32>;\n@group(0) @binding(25) var u_anisotropySampler: sampler;\n@group(0) @binding(26) var u_anisotropyTexture: texture_2d<f32>;\n@group(0) @binding(27) var u_emissiveSampler: sampler;\n@group(0) @binding(28) var u_emissiveTexture: texture_2d<f32>;\nfn atlasUv(index: u32, uv0: vec2<f32>, uv1: vec2<f32>) -> vec2<f32> {\n let map = u_atlas.maps[index];\n let uv = select(uv0,uv1,map.control.y > 0.5) * map.transform.zw;\n let cosine = cos(map.control.x); let sine = sin(map.control.x);\n return vec2<f32>(cosine*uv.x-sine*uv.y,sine*uv.x+cosine*uv.y)+map.transform.xy;\n}\nfn atlasWrapIndex(x: i32, size: i32, mode: f32) -> i32 {\n if (mode<0.5) { return clamp(x,0,size-1); }\n let period=select(size,2*size,mode>1.5);\n let index=((x%period)+period)%period;\n return select(index,period-1-index,mode>1.5 && index>=size);\n}\nfn atlasFetch(point: vec2<i32>, size: vec2<i32>, origin: vec2<i32>, wrapMode: vec2<f32>) -> vec4<f32> {\n let wrapped=vec2<i32>(atlasWrapIndex(point.x,size.x,wrapMode.x),atlasWrapIndex(point.y,size.y,wrapMode.y));\n return textureLoad(u_scalarAtlas,origin+wrapped,0);\n}\nfn atlasLevel(uv: vec2<f32>, map: AtlasMap, level: i32, nearestFilter: bool) -> vec4<f32> {\n var size=vec2<i32>(map.rect.yz); var origin=vec2<i32>(i32(map.rect.x),i32(map.control.w));\n for (var i=0;i<16;i=i+1) { if (i>=level) { break; } origin.y=origin.y+size.y; size=max(size/2,vec2<i32>(1)); }\n let pixel=uv*vec2<f32>(size)-0.5;\n if (nearestFilter) { return atlasFetch(vec2<i32>(floor(pixel+0.5)),size,origin,map.wrapMode.xy); }\n let low=vec2<i32>(floor(pixel)); let fraction=fract(pixel);\n return mix(mix(atlasFetch(low,size,origin,map.wrapMode.xy),atlasFetch(low+vec2<i32>(1,0),size,origin,map.wrapMode.xy),fraction.x),\n mix(atlasFetch(low+vec2<i32>(0,1),size,origin,map.wrapMode.xy),atlasFetch(low+vec2<i32>(1,1),size,origin,map.wrapMode.xy),fraction.x),fraction.y);\n}\nfn atlasSample(index: u32, uv0: vec2<f32>, uv1: vec2<f32>) -> vec4<f32> {\n let map=u_atlas.maps[index]; let uv=atlasUv(index,uv0,uv1);\n let dx=dpdx(uv); let dy=dpdy(uv); let lx=length(dx*map.rect.yz); let ly=length(dy*map.rect.yz);\n let major=max(lx,ly); let minor=max(min(lx,ly),0.000001); let magnify=major<=1.0;\n let taps=select(clamp(ceil(major/max(minor,1.0)),1.0,floor(map.filterMode.w)),1.0,magnify);\n let axis=select(dy,dx,lx>=ly);\n var lod=clamp(log2(max(major/taps,1.0)),0.0,map.rect.w);\n if (map.filterMode.z<0.5) { lod=0.0; } else if (map.filterMode.z<1.5) { lod=floor(lod+0.5); }\n let low=i32(floor(lod)); let high=min(low+1,i32(map.rect.w));\n let nearestFilter=select(map.filterMode.y>0.5,map.filterMode.x>0.5,magnify);\n var total=vec4<f32>(0.0);\n for (var i=0;i<16;i=i+1) { if (f32(i)>=taps) { break; }\n let sampleUv=uv+axis*((f32(i)+0.5)/taps-0.5);\n total=total+mix(atlasLevel(sampleUv,map,low,nearestFilter),atlasLevel(sampleUv,map,high,nearestFilter),fract(lod));\n }\n return total/taps;\n}\n/* Spectral thin-film evaluation adapted from three.js iridescence_fragment (MIT).\nThe MIT License\n\nCopyright \u00A9 2010-2026 three.js authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n// Belcour/Barla Fourier-domain CIE XYZ sensitivity, converted to linear Rec.709.\n// Three monochromatic wavelength samples are not RGB tristimulus reflectance.\nfn atlasFilmSensitivity(opd: f32, shift: vec3<f32>) -> vec3<f32> {\n let phase=2.0*3.14159265359*opd*1.0e-9;\n let variance=vec3<f32>(4.3278e9,9.3046e9,6.6121e9);\n var xyz=vec3<f32>(5.4856e-13,4.4201e-13,5.2481e-13)*sqrt(2.0*3.14159265359*variance)\n *cos(vec3<f32>(1.6810e6,1.7953e6,2.2084e6)*phase+shift)*exp(-phase*phase*variance);\n xyz.x=xyz.x+9.7470e-14*sqrt(2.0*3.14159265359*4.5282e9)*cos(2.2399e6*phase+shift.x)*exp(-4.5282e9*phase*phase);\n xyz=xyz/1.0685e-7;\n return mat3x3<f32>(vec3<f32>(3.2404542,-0.9692660,0.0556434),vec3<f32>(-1.5371385,1.8760108,-0.2040259),vec3<f32>(-0.4985314,0.0415560,1.0572252))*xyz;\n}\nfn atlasThinFilm(substrateF0: vec3<f32>, filmIor: f32, thickness: f32, cosine: f32) -> vec3<f32> {\n let c1=clamp(cosine,0.0001,1.0);\n if (thickness<=0.0) { return fresnelSchlick(c1,substrateF0); }\n let n2=mix(1.0,filmIor,smoothstep(0.0,0.03,thickness));\n let c2Squared=1.0-(1.0-c1*c1)/(n2*n2);\n if (c2Squared<0.0) { return vec3<f32>(1.0); }\n let c2=sqrt(c2Squared);\n let f12=(n2-1.0)/(n2+1.0);\n let r12=fresnelSchlick(c1,vec3<f32>(f12*f12)).x;\n let t121=1.0-r12;\n let rootF0=sqrt(clamp(substrateF0,vec3<f32>(0.0),vec3<f32>(0.9999)));\n let n3=(vec3<f32>(1.0)+rootF0)/(vec3<f32>(1.0)-rootF0);\n let f23=(n3-vec3<f32>(n2))/(n3+vec3<f32>(n2));\n let r23=fresnelSchlick(c2,f23*f23);\n let phi21=select(3.14159265359,0.0,n2<1.0);\n let phi=vec3<f32>(phi21)+select(vec3<f32>(0.0),vec3<f32>(3.14159265359),n3<vec3<f32>(n2));\n let opd=2.0*n2*thickness*c2;\n let r123=clamp(r12*r23,vec3<f32>(0.00001),vec3<f32>(0.9999));\n let amplitude=sqrt(r123);\n let rs=t121*t121*r23/(vec3<f32>(1.0)-r123);\n var reflectance=vec3<f32>(r12)+rs;\n var coefficient=rs-vec3<f32>(t121);\n for (var order=1;order<=2;order=order+1) {\n coefficient=coefficient*amplitude;\n reflectance=reflectance+coefficient*2.0*atlasFilmSensitivity(f32(order)*opd,f32(order)*phi);\n }\n return max(reflectance,vec3<f32>(0.0));\n}\n\n// KHR_materials_iridescence: a missing thickness map samples 1.0, and\n// the dielectric base receives inverse-max Fresnel weighting (rgb_mix).\nfn atlasIridescenceFresnel(substrateF0: vec3<f32>, cosine: f32, uv0: vec2<f32>, uv1: vec2<f32>) -> vec3<f32> {\n let strength=clamp(u_atlas.iridescence.y*mix(1.0,atlasSample(11u,uv0,uv1).r,u_atlas.maps[11].control.z),0.0,1.0);\n let thickness=mix(u_atlas.iridescence.w,u_atlas.factors.x,mix(1.0,atlasSample(12u,uv0,uv1).g,u_atlas.maps[12].control.z));\n return mix(fresnelSchlick(cosine,substrateF0),atlasThinFilm(substrateF0,u_atlas.iridescence.z,thickness,cosine),strength);\n}\n\n// Recover the Schlick normal-incidence coefficient before applying the split-sum\n// BRDF LUT. Multiplying an already Fresnel-weighted environment by a Fresnel\n// difference would count Fresnel twice and incorrectly scale the LUT bias term.\nfn atlasIridescenceEnvironmentF0(substrateF0: vec3<f32>, cosine: f32, uv0: vec2<f32>, uv1: vec2<f32>) -> vec3<f32> {\n let strength=clamp(u_atlas.iridescence.y*mix(1.0,atlasSample(11u,uv0,uv1).r,u_atlas.maps[11].control.z),0.0,1.0);\n let thickness=mix(u_atlas.iridescence.w,u_atlas.factors.x,mix(1.0,atlasSample(12u,uv0,uv1).g,u_atlas.maps[12].control.z));\n let grazing=clamp(pow(clamp(1.0-cosine,0.0,1.0),5.0),0.0,0.9999);\n let filmF0=(atlasThinFilm(substrateF0,u_atlas.iridescence.z,thickness,cosine)-vec3<f32>(grazing))/(1.0-grazing);\n return mix(substrateF0,filmF0,strength);\n}\n\nfn atlasExtensionLighting(normal: vec3<f32>, tangent: vec4<f32>, view: vec3<f32>, light: vec3<f32>, uv0: vec2<f32>, uv1: vec2<f32>, shadow: f32, environment: vec3<f32>, substrateF0: vec3<f32>, substrateRoughness: f32) -> vec3<f32> {\n let coatMask=atlasSample(5u,uv0,uv1).r; let coatRoughMask=atlasSample(6u,uv0,uv1).g;\n let sheenRoughMask=atlasSample(9u,uv0,uv1).a; let filmMask=atlasSample(11u,uv0,uv1).r;\n let thicknessMask=atlasSample(12u,uv0,uv1).g;\n let coatNormalSample=textureSample(u_coatNormalTexture,u_coatNormalSampler,atlasUv(7u,uv0,uv1)).rgb;\n let coatNormal=normalize(mix(normal,perturbNormal(normal,tangent,coatNormalSample,u_atlas.coat.z),u_atlas.maps[7].control.z));\n let sheenSample=textureSample(u_sheenTexture,u_sheenSampler,atlasUv(8u,uv0,uv1)).rgb;\n let anisotropySample=textureSample(u_anisotropyTexture,u_anisotropySampler,atlasUv(10u,uv0,uv1));\n let coat=u_atlas.coat.x*mix(1.0,coatMask,u_atlas.maps[5].control.z);\n let coatRough=max(0.045,u_atlas.coat.y*mix(1.0,coatRoughMask,u_atlas.maps[6].control.z));\n let sheen=u_atlas.sheen.rgb*mix(vec3<f32>(1.0),sheenSample,u_atlas.maps[8].control.z);\n let sheenRough=max(0.045,u_atlas.coat.w*mix(1.0,sheenRoughMask,u_atlas.maps[9].control.z));\n let anisotropy=u_atlas.sheen.w*mix(1.0,anisotropySample.b,u_atlas.maps[10].control.z);\n let film=u_atlas.iridescence.y*mix(1.0,filmMask,u_atlas.maps[11].control.z);\n let thickness=mix(u_atlas.iridescence.w,u_atlas.factors.x,mix(1.0,thicknessMask,u_atlas.maps[12].control.z));\n let halfVector=normalize(light+view); let ndl=max(dot(normal,light),0.0); let ndv=max(dot(normal,view),0.001);\n let coatNdl=max(dot(coatNormal,light),0.0); let coatNdv=max(dot(coatNormal,view),0.001); let coatNdh=max(dot(coatNormal,halfVector),0.001);\n let coatBrdf=coat*ggxDistribution(coatNdh,coatRough)*ggxVisibilitySmithCorrelated(coatNdv,coatNdl,coatRough)*fresnelSchlick(max(dot(view,halfVector),0.0),vec3<f32>(0.04));\n let ndh=max(dot(normal,halfVector),0.0); let inverseRoughness=1.0/(sheenRough*sheenRough);\n let charlie=(2.0+inverseRoughness)*pow(max(1.0-ndh*ndh,0.00001),0.5*inverseRoughness)/(2.0*3.14159265);\n let sheenBrdf=sheen*charlie/max(4.0*(ndl+ndv-ndl*ndv),0.0001);\n let tx=normalize(tangent.xyz-normal*dot(tangent.xyz,normal)); let ty=normalize(cross(normal,tx))*tangent.w;\n let mappedDirection=mix(vec2<f32>(1.0,0.0),anisotropySample.rg*2.0-1.0,u_atlas.maps[10].control.z);\n let angle=u_atlas.iridescence.x+atan2(mappedDirection.y,mappedDirection.x);\n let axis=tx*cos(angle)+ty*sin(angle); let crossAxis=-tx*sin(angle)+ty*cos(angle);\n // Anisotropy and iridescence modify the same substrate specular BRDF.\n // KHR anisotropy broadens the tangent alpha; it is not an extra white lobe.\n let alpha=max(substrateRoughness,0.045)*max(substrateRoughness,0.045);\n let ax=mix(alpha,1.0,clamp(anisotropy*anisotropy,0.0,1.0)); let ay=alpha;\n let tangentH=dot(halfVector,axis)/ax; let bitangentH=dot(halfVector,crossAxis)/ay;\n let denominator=tangentH*tangentH+bitangentH*bitangentH+ndh*ndh;\n let anisotropicD=1.0/max(3.14159265*ax*ay*denominator*denominator,0.0000000000000001);\n let lambdaV=ndl*length(vec3<f32>(ax*dot(axis,view),ay*dot(crossAxis,view),ndv));\n let lambdaL=ndv*length(vec3<f32>(ax*dot(axis,light),ay*dot(crossAxis,light),ndl));\n let anisotropicV=0.5/max(lambdaV+lambdaL,0.00001);\n let isotropicDv=ggxDistribution(ndh,substrateRoughness)*ggxVisibilitySmithCorrelated(ndv,ndl,substrateRoughness);\n let substrateDv=select(isotropicDv,anisotropicD*anisotropicV,anisotropy>0.0);\n let vdh=max(dot(view,halfVector),0.0001);\n let substrateFresnel=fresnelSchlick(vdh,substrateF0);\n let anisotropicBrdf=substrateFresnel*(substrateDv-isotropicDv);\n let filmDirect=film*(atlasThinFilm(substrateF0,u_atlas.iridescence.z,thickness,vdh)-substrateFresnel)*substrateDv;\n // Film environment energy is integrated once in shadePbr through the BRDF LUT.\n let filmEnvironment=vec3<f32>(0.0);\n let direct=(coatBrdf*coatNdl+(sheenBrdf+anisotropicBrdf+filmDirect)*ndl)*2.25*shadow;\n return (direct+environment*(coat*0.04+sheen*pow(1.0-ndv,5.0)+filmEnvironment))*u_atlas.factors.z;\n\n}\n";
|
|
6
|
+
//# sourceMappingURL=WebGPUExtensionAtlas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebGPUExtensionAtlas.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/WebGPUExtensionAtlas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,eAAO,MAAM,iBAAiB,2NAA4N,CAAC;AAC3P,oFAAoF;AACpF,wBAAgB,4BAA4B,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,YAAY,CAqBvG;AAED,eAAO,MAAM,2BAA2B,02YAuMvC,CAAC"}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
export const WEBGPU_ATLAS_MAPS = ["baseColor", "normal", "metallicRoughness", "occlusion", "emissive", "clearcoat", "clearcoatRoughness", "clearcoatNormal", "sheenColor", "sheenRoughness", "anisotropy", "iridescence", "iridescenceThickness"];
|
|
2
|
+
/** Layout mirrors AtlasUniforms: 13 map records of five vec4s, then seven vec4s. */
|
|
3
|
+
export function webgpuExtensionAtlasUniforms(uniforms) {
|
|
4
|
+
const out = new Float32Array(13 * 20 + 28);
|
|
5
|
+
const number = (key, fallback = 0) => { const value = uniforms?.get(key); return typeof value === "number" ? value : fallback; };
|
|
6
|
+
const vector = (key, fallback) => { const value = uniforms?.get(key); return Array.isArray(value) || value instanceof Float32Array ? value : fallback; };
|
|
7
|
+
WEBGPU_ATLAS_MAPS.forEach((slot, index) => {
|
|
8
|
+
const offset = index * 20;
|
|
9
|
+
out.set(vector(`u_${slot}TextureOffset`, [0, 0]), offset);
|
|
10
|
+
out.set(vector(`u_${slot}TextureScale`, [1, 1]), offset + 2);
|
|
11
|
+
out.set([number(`u_${slot}TextureRotation`), number(`u_${slot}TextureTexCoord`), number(`u_${slot}TextureEnabled`), number(`u_${slot}AtlasY`)], offset + 4);
|
|
12
|
+
out.set(vector(`u_${slot}TextureWrap`, [0, 0]), offset + 8);
|
|
13
|
+
out.set(vector(`u_${slot}AtlasRect`, [0, 1, 1, 0]), offset + 12);
|
|
14
|
+
out.set(vector(`u_${slot}AtlasFilter`, [0, 0, 0, 1]), offset + 16);
|
|
15
|
+
});
|
|
16
|
+
out.set([number("u_clearcoatFactor"), number("u_clearcoatRoughnessFactor"), number("u_clearcoatNormalScale", 1), number("u_sheenRoughnessFactor")], 260);
|
|
17
|
+
out.set([...vector("u_sheenColorFactor", [0, 0, 0]), number("u_anisotropyStrength")], 264);
|
|
18
|
+
out.set([number("u_anisotropyRotation"), number("u_iridescenceFactor"), number("u_iridescenceIor", 1.3), number("u_iridescenceThicknessMinimum", 100)], 268);
|
|
19
|
+
out.set([number("u_iridescenceThicknessMaximum", 400), number("u_emissiveStrength", 1), number("u_materialEnvironmentSpecularScale", 1), 0], 272);
|
|
20
|
+
out.set([...vector("u_emissiveColor", [0, 0, 0]), 0], 276);
|
|
21
|
+
out.set([number("u_ior", 1.5), number("u_specularFactor", 1), 0, 0], 280);
|
|
22
|
+
out.set([...vector("u_specularColorFactor", [1, 1, 1]), 0], 284);
|
|
23
|
+
return out;
|
|
24
|
+
}
|
|
25
|
+
export const WEBGPU_EXTENSION_ATLAS_WGSL = `
|
|
26
|
+
struct AtlasMap {
|
|
27
|
+
transform: vec4<f32>,
|
|
28
|
+
control: vec4<f32>,
|
|
29
|
+
wrapMode: vec4<f32>,
|
|
30
|
+
rect: vec4<f32>,
|
|
31
|
+
filterMode: vec4<f32>,
|
|
32
|
+
};
|
|
33
|
+
struct AtlasUniforms {
|
|
34
|
+
maps: array<AtlasMap, 13>,
|
|
35
|
+
coat: vec4<f32>,
|
|
36
|
+
sheen: vec4<f32>,
|
|
37
|
+
iridescence: vec4<f32>,
|
|
38
|
+
factors: vec4<f32>,
|
|
39
|
+
emissive: vec4<f32>,
|
|
40
|
+
substrate: vec4<f32>,
|
|
41
|
+
specularColor: vec4<f32>,
|
|
42
|
+
};
|
|
43
|
+
@group(0) @binding(19) var<uniform> u_atlas: AtlasUniforms;
|
|
44
|
+
@group(0) @binding(20) var u_scalarAtlas: texture_2d<f32>;
|
|
45
|
+
@group(0) @binding(21) var u_coatNormalSampler: sampler;
|
|
46
|
+
@group(0) @binding(22) var u_coatNormalTexture: texture_2d<f32>;
|
|
47
|
+
@group(0) @binding(23) var u_sheenSampler: sampler;
|
|
48
|
+
@group(0) @binding(24) var u_sheenTexture: texture_2d<f32>;
|
|
49
|
+
@group(0) @binding(25) var u_anisotropySampler: sampler;
|
|
50
|
+
@group(0) @binding(26) var u_anisotropyTexture: texture_2d<f32>;
|
|
51
|
+
@group(0) @binding(27) var u_emissiveSampler: sampler;
|
|
52
|
+
@group(0) @binding(28) var u_emissiveTexture: texture_2d<f32>;
|
|
53
|
+
fn atlasUv(index: u32, uv0: vec2<f32>, uv1: vec2<f32>) -> vec2<f32> {
|
|
54
|
+
let map = u_atlas.maps[index];
|
|
55
|
+
let uv = select(uv0,uv1,map.control.y > 0.5) * map.transform.zw;
|
|
56
|
+
let cosine = cos(map.control.x); let sine = sin(map.control.x);
|
|
57
|
+
return vec2<f32>(cosine*uv.x-sine*uv.y,sine*uv.x+cosine*uv.y)+map.transform.xy;
|
|
58
|
+
}
|
|
59
|
+
fn atlasWrapIndex(x: i32, size: i32, mode: f32) -> i32 {
|
|
60
|
+
if (mode<0.5) { return clamp(x,0,size-1); }
|
|
61
|
+
let period=select(size,2*size,mode>1.5);
|
|
62
|
+
let index=((x%period)+period)%period;
|
|
63
|
+
return select(index,period-1-index,mode>1.5 && index>=size);
|
|
64
|
+
}
|
|
65
|
+
fn atlasFetch(point: vec2<i32>, size: vec2<i32>, origin: vec2<i32>, wrapMode: vec2<f32>) -> vec4<f32> {
|
|
66
|
+
let wrapped=vec2<i32>(atlasWrapIndex(point.x,size.x,wrapMode.x),atlasWrapIndex(point.y,size.y,wrapMode.y));
|
|
67
|
+
return textureLoad(u_scalarAtlas,origin+wrapped,0);
|
|
68
|
+
}
|
|
69
|
+
fn atlasLevel(uv: vec2<f32>, map: AtlasMap, level: i32, nearestFilter: bool) -> vec4<f32> {
|
|
70
|
+
var size=vec2<i32>(map.rect.yz); var origin=vec2<i32>(i32(map.rect.x),i32(map.control.w));
|
|
71
|
+
for (var i=0;i<16;i=i+1) { if (i>=level) { break; } origin.y=origin.y+size.y; size=max(size/2,vec2<i32>(1)); }
|
|
72
|
+
let pixel=uv*vec2<f32>(size)-0.5;
|
|
73
|
+
if (nearestFilter) { return atlasFetch(vec2<i32>(floor(pixel+0.5)),size,origin,map.wrapMode.xy); }
|
|
74
|
+
let low=vec2<i32>(floor(pixel)); let fraction=fract(pixel);
|
|
75
|
+
return mix(mix(atlasFetch(low,size,origin,map.wrapMode.xy),atlasFetch(low+vec2<i32>(1,0),size,origin,map.wrapMode.xy),fraction.x),
|
|
76
|
+
mix(atlasFetch(low+vec2<i32>(0,1),size,origin,map.wrapMode.xy),atlasFetch(low+vec2<i32>(1,1),size,origin,map.wrapMode.xy),fraction.x),fraction.y);
|
|
77
|
+
}
|
|
78
|
+
fn atlasSample(index: u32, uv0: vec2<f32>, uv1: vec2<f32>) -> vec4<f32> {
|
|
79
|
+
let map=u_atlas.maps[index]; let uv=atlasUv(index,uv0,uv1);
|
|
80
|
+
let dx=dpdx(uv); let dy=dpdy(uv); let lx=length(dx*map.rect.yz); let ly=length(dy*map.rect.yz);
|
|
81
|
+
let major=max(lx,ly); let minor=max(min(lx,ly),0.000001); let magnify=major<=1.0;
|
|
82
|
+
let taps=select(clamp(ceil(major/max(minor,1.0)),1.0,floor(map.filterMode.w)),1.0,magnify);
|
|
83
|
+
let axis=select(dy,dx,lx>=ly);
|
|
84
|
+
var lod=clamp(log2(max(major/taps,1.0)),0.0,map.rect.w);
|
|
85
|
+
if (map.filterMode.z<0.5) { lod=0.0; } else if (map.filterMode.z<1.5) { lod=floor(lod+0.5); }
|
|
86
|
+
let low=i32(floor(lod)); let high=min(low+1,i32(map.rect.w));
|
|
87
|
+
let nearestFilter=select(map.filterMode.y>0.5,map.filterMode.x>0.5,magnify);
|
|
88
|
+
var total=vec4<f32>(0.0);
|
|
89
|
+
for (var i=0;i<16;i=i+1) { if (f32(i)>=taps) { break; }
|
|
90
|
+
let sampleUv=uv+axis*((f32(i)+0.5)/taps-0.5);
|
|
91
|
+
total=total+mix(atlasLevel(sampleUv,map,low,nearestFilter),atlasLevel(sampleUv,map,high,nearestFilter),fract(lod));
|
|
92
|
+
}
|
|
93
|
+
return total/taps;
|
|
94
|
+
}
|
|
95
|
+
/* Spectral thin-film evaluation adapted from three.js iridescence_fragment (MIT).
|
|
96
|
+
The MIT License
|
|
97
|
+
|
|
98
|
+
Copyright © 2010-2026 three.js authors
|
|
99
|
+
|
|
100
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
101
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
102
|
+
in the Software without restriction, including without limitation the rights
|
|
103
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
104
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
105
|
+
furnished to do so, subject to the following conditions:
|
|
106
|
+
|
|
107
|
+
The above copyright notice and this permission notice shall be included in
|
|
108
|
+
all copies or substantial portions of the Software.
|
|
109
|
+
|
|
110
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
111
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
112
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
113
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
114
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
115
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
116
|
+
THE SOFTWARE.
|
|
117
|
+
*/
|
|
118
|
+
// Belcour/Barla Fourier-domain CIE XYZ sensitivity, converted to linear Rec.709.
|
|
119
|
+
// Three monochromatic wavelength samples are not RGB tristimulus reflectance.
|
|
120
|
+
fn atlasFilmSensitivity(opd: f32, shift: vec3<f32>) -> vec3<f32> {
|
|
121
|
+
let phase=2.0*3.14159265359*opd*1.0e-9;
|
|
122
|
+
let variance=vec3<f32>(4.3278e9,9.3046e9,6.6121e9);
|
|
123
|
+
var xyz=vec3<f32>(5.4856e-13,4.4201e-13,5.2481e-13)*sqrt(2.0*3.14159265359*variance)
|
|
124
|
+
*cos(vec3<f32>(1.6810e6,1.7953e6,2.2084e6)*phase+shift)*exp(-phase*phase*variance);
|
|
125
|
+
xyz.x=xyz.x+9.7470e-14*sqrt(2.0*3.14159265359*4.5282e9)*cos(2.2399e6*phase+shift.x)*exp(-4.5282e9*phase*phase);
|
|
126
|
+
xyz=xyz/1.0685e-7;
|
|
127
|
+
return mat3x3<f32>(vec3<f32>(3.2404542,-0.9692660,0.0556434),vec3<f32>(-1.5371385,1.8760108,-0.2040259),vec3<f32>(-0.4985314,0.0415560,1.0572252))*xyz;
|
|
128
|
+
}
|
|
129
|
+
fn atlasThinFilm(substrateF0: vec3<f32>, filmIor: f32, thickness: f32, cosine: f32) -> vec3<f32> {
|
|
130
|
+
let c1=clamp(cosine,0.0001,1.0);
|
|
131
|
+
if (thickness<=0.0) { return fresnelSchlick(c1,substrateF0); }
|
|
132
|
+
let n2=mix(1.0,filmIor,smoothstep(0.0,0.03,thickness));
|
|
133
|
+
let c2Squared=1.0-(1.0-c1*c1)/(n2*n2);
|
|
134
|
+
if (c2Squared<0.0) { return vec3<f32>(1.0); }
|
|
135
|
+
let c2=sqrt(c2Squared);
|
|
136
|
+
let f12=(n2-1.0)/(n2+1.0);
|
|
137
|
+
let r12=fresnelSchlick(c1,vec3<f32>(f12*f12)).x;
|
|
138
|
+
let t121=1.0-r12;
|
|
139
|
+
let rootF0=sqrt(clamp(substrateF0,vec3<f32>(0.0),vec3<f32>(0.9999)));
|
|
140
|
+
let n3=(vec3<f32>(1.0)+rootF0)/(vec3<f32>(1.0)-rootF0);
|
|
141
|
+
let f23=(n3-vec3<f32>(n2))/(n3+vec3<f32>(n2));
|
|
142
|
+
let r23=fresnelSchlick(c2,f23*f23);
|
|
143
|
+
let phi21=select(3.14159265359,0.0,n2<1.0);
|
|
144
|
+
let phi=vec3<f32>(phi21)+select(vec3<f32>(0.0),vec3<f32>(3.14159265359),n3<vec3<f32>(n2));
|
|
145
|
+
let opd=2.0*n2*thickness*c2;
|
|
146
|
+
let r123=clamp(r12*r23,vec3<f32>(0.00001),vec3<f32>(0.9999));
|
|
147
|
+
let amplitude=sqrt(r123);
|
|
148
|
+
let rs=t121*t121*r23/(vec3<f32>(1.0)-r123);
|
|
149
|
+
var reflectance=vec3<f32>(r12)+rs;
|
|
150
|
+
var coefficient=rs-vec3<f32>(t121);
|
|
151
|
+
for (var order=1;order<=2;order=order+1) {
|
|
152
|
+
coefficient=coefficient*amplitude;
|
|
153
|
+
reflectance=reflectance+coefficient*2.0*atlasFilmSensitivity(f32(order)*opd,f32(order)*phi);
|
|
154
|
+
}
|
|
155
|
+
return max(reflectance,vec3<f32>(0.0));
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// KHR_materials_iridescence: a missing thickness map samples 1.0, and
|
|
159
|
+
// the dielectric base receives inverse-max Fresnel weighting (rgb_mix).
|
|
160
|
+
fn atlasIridescenceFresnel(substrateF0: vec3<f32>, cosine: f32, uv0: vec2<f32>, uv1: vec2<f32>) -> vec3<f32> {
|
|
161
|
+
let strength=clamp(u_atlas.iridescence.y*mix(1.0,atlasSample(11u,uv0,uv1).r,u_atlas.maps[11].control.z),0.0,1.0);
|
|
162
|
+
let thickness=mix(u_atlas.iridescence.w,u_atlas.factors.x,mix(1.0,atlasSample(12u,uv0,uv1).g,u_atlas.maps[12].control.z));
|
|
163
|
+
return mix(fresnelSchlick(cosine,substrateF0),atlasThinFilm(substrateF0,u_atlas.iridescence.z,thickness,cosine),strength);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// Recover the Schlick normal-incidence coefficient before applying the split-sum
|
|
167
|
+
// BRDF LUT. Multiplying an already Fresnel-weighted environment by a Fresnel
|
|
168
|
+
// difference would count Fresnel twice and incorrectly scale the LUT bias term.
|
|
169
|
+
fn atlasIridescenceEnvironmentF0(substrateF0: vec3<f32>, cosine: f32, uv0: vec2<f32>, uv1: vec2<f32>) -> vec3<f32> {
|
|
170
|
+
let strength=clamp(u_atlas.iridescence.y*mix(1.0,atlasSample(11u,uv0,uv1).r,u_atlas.maps[11].control.z),0.0,1.0);
|
|
171
|
+
let thickness=mix(u_atlas.iridescence.w,u_atlas.factors.x,mix(1.0,atlasSample(12u,uv0,uv1).g,u_atlas.maps[12].control.z));
|
|
172
|
+
let grazing=clamp(pow(clamp(1.0-cosine,0.0,1.0),5.0),0.0,0.9999);
|
|
173
|
+
let filmF0=(atlasThinFilm(substrateF0,u_atlas.iridescence.z,thickness,cosine)-vec3<f32>(grazing))/(1.0-grazing);
|
|
174
|
+
return mix(substrateF0,filmF0,strength);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
fn atlasExtensionLighting(normal: vec3<f32>, tangent: vec4<f32>, view: vec3<f32>, light: vec3<f32>, uv0: vec2<f32>, uv1: vec2<f32>, shadow: f32, environment: vec3<f32>, substrateF0: vec3<f32>, substrateRoughness: f32) -> vec3<f32> {
|
|
178
|
+
let coatMask=atlasSample(5u,uv0,uv1).r; let coatRoughMask=atlasSample(6u,uv0,uv1).g;
|
|
179
|
+
let sheenRoughMask=atlasSample(9u,uv0,uv1).a; let filmMask=atlasSample(11u,uv0,uv1).r;
|
|
180
|
+
let thicknessMask=atlasSample(12u,uv0,uv1).g;
|
|
181
|
+
let coatNormalSample=textureSample(u_coatNormalTexture,u_coatNormalSampler,atlasUv(7u,uv0,uv1)).rgb;
|
|
182
|
+
let coatNormal=normalize(mix(normal,perturbNormal(normal,tangent,coatNormalSample,u_atlas.coat.z),u_atlas.maps[7].control.z));
|
|
183
|
+
let sheenSample=textureSample(u_sheenTexture,u_sheenSampler,atlasUv(8u,uv0,uv1)).rgb;
|
|
184
|
+
let anisotropySample=textureSample(u_anisotropyTexture,u_anisotropySampler,atlasUv(10u,uv0,uv1));
|
|
185
|
+
let coat=u_atlas.coat.x*mix(1.0,coatMask,u_atlas.maps[5].control.z);
|
|
186
|
+
let coatRough=max(0.045,u_atlas.coat.y*mix(1.0,coatRoughMask,u_atlas.maps[6].control.z));
|
|
187
|
+
let sheen=u_atlas.sheen.rgb*mix(vec3<f32>(1.0),sheenSample,u_atlas.maps[8].control.z);
|
|
188
|
+
let sheenRough=max(0.045,u_atlas.coat.w*mix(1.0,sheenRoughMask,u_atlas.maps[9].control.z));
|
|
189
|
+
let anisotropy=u_atlas.sheen.w*mix(1.0,anisotropySample.b,u_atlas.maps[10].control.z);
|
|
190
|
+
let film=u_atlas.iridescence.y*mix(1.0,filmMask,u_atlas.maps[11].control.z);
|
|
191
|
+
let thickness=mix(u_atlas.iridescence.w,u_atlas.factors.x,mix(1.0,thicknessMask,u_atlas.maps[12].control.z));
|
|
192
|
+
let halfVector=normalize(light+view); let ndl=max(dot(normal,light),0.0); let ndv=max(dot(normal,view),0.001);
|
|
193
|
+
let coatNdl=max(dot(coatNormal,light),0.0); let coatNdv=max(dot(coatNormal,view),0.001); let coatNdh=max(dot(coatNormal,halfVector),0.001);
|
|
194
|
+
let coatBrdf=coat*ggxDistribution(coatNdh,coatRough)*ggxVisibilitySmithCorrelated(coatNdv,coatNdl,coatRough)*fresnelSchlick(max(dot(view,halfVector),0.0),vec3<f32>(0.04));
|
|
195
|
+
let ndh=max(dot(normal,halfVector),0.0); let inverseRoughness=1.0/(sheenRough*sheenRough);
|
|
196
|
+
let charlie=(2.0+inverseRoughness)*pow(max(1.0-ndh*ndh,0.00001),0.5*inverseRoughness)/(2.0*3.14159265);
|
|
197
|
+
let sheenBrdf=sheen*charlie/max(4.0*(ndl+ndv-ndl*ndv),0.0001);
|
|
198
|
+
let tx=normalize(tangent.xyz-normal*dot(tangent.xyz,normal)); let ty=normalize(cross(normal,tx))*tangent.w;
|
|
199
|
+
let mappedDirection=mix(vec2<f32>(1.0,0.0),anisotropySample.rg*2.0-1.0,u_atlas.maps[10].control.z);
|
|
200
|
+
let angle=u_atlas.iridescence.x+atan2(mappedDirection.y,mappedDirection.x);
|
|
201
|
+
let axis=tx*cos(angle)+ty*sin(angle); let crossAxis=-tx*sin(angle)+ty*cos(angle);
|
|
202
|
+
// Anisotropy and iridescence modify the same substrate specular BRDF.
|
|
203
|
+
// KHR anisotropy broadens the tangent alpha; it is not an extra white lobe.
|
|
204
|
+
let alpha=max(substrateRoughness,0.045)*max(substrateRoughness,0.045);
|
|
205
|
+
let ax=mix(alpha,1.0,clamp(anisotropy*anisotropy,0.0,1.0)); let ay=alpha;
|
|
206
|
+
let tangentH=dot(halfVector,axis)/ax; let bitangentH=dot(halfVector,crossAxis)/ay;
|
|
207
|
+
let denominator=tangentH*tangentH+bitangentH*bitangentH+ndh*ndh;
|
|
208
|
+
let anisotropicD=1.0/max(3.14159265*ax*ay*denominator*denominator,0.0000000000000001);
|
|
209
|
+
let lambdaV=ndl*length(vec3<f32>(ax*dot(axis,view),ay*dot(crossAxis,view),ndv));
|
|
210
|
+
let lambdaL=ndv*length(vec3<f32>(ax*dot(axis,light),ay*dot(crossAxis,light),ndl));
|
|
211
|
+
let anisotropicV=0.5/max(lambdaV+lambdaL,0.00001);
|
|
212
|
+
let isotropicDv=ggxDistribution(ndh,substrateRoughness)*ggxVisibilitySmithCorrelated(ndv,ndl,substrateRoughness);
|
|
213
|
+
let substrateDv=select(isotropicDv,anisotropicD*anisotropicV,anisotropy>0.0);
|
|
214
|
+
let vdh=max(dot(view,halfVector),0.0001);
|
|
215
|
+
let substrateFresnel=fresnelSchlick(vdh,substrateF0);
|
|
216
|
+
let anisotropicBrdf=substrateFresnel*(substrateDv-isotropicDv);
|
|
217
|
+
let filmDirect=film*(atlasThinFilm(substrateF0,u_atlas.iridescence.z,thickness,vdh)-substrateFresnel)*substrateDv;
|
|
218
|
+
// Film environment energy is integrated once in shadePbr through the BRDF LUT.
|
|
219
|
+
let filmEnvironment=vec3<f32>(0.0);
|
|
220
|
+
let direct=(coatBrdf*coatNdl+(sheenBrdf+anisotropicBrdf+filmDirect)*ndl)*2.25*shadow;
|
|
221
|
+
return (direct+environment*(coat*0.04+sheen*pow(1.0-ndv,5.0)+filmEnvironment))*u_atlas.factors.z;
|
|
222
|
+
|
|
223
|
+
}
|
|
224
|
+
`;
|
|
225
|
+
//# sourceMappingURL=WebGPUExtensionAtlas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebGPUExtensionAtlas.js","sourceRoot":"","sources":["../../../../packages/rendering/src/WebGPUExtensionAtlas.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,7 +44,7 @@ export interface GPUParticleUpdateResult {
|
|
|
44
44
|
spawnRequests?: Uint32Array;
|
|
45
45
|
/**
|
|
46
46
|
* GPU-evaluated size/color-over-life: count * 2 vec4 entries
|
|
47
|
-
* (rgba, then size in x). Present only when effects requested life
|
|
47
|
+
* (rgba, then size in x, executed-effect mask in y, and contact count in w). Present only when effects requested life
|
|
48
48
|
* curves or lighting. A compute kill is signaled as positions w = -1.
|
|
49
49
|
*/
|
|
50
50
|
attributes?: Float32Array;
|
|
@@ -334,6 +334,8 @@ export declare function createTrailRingInit(positions: Float32Array, count: numb
|
|
|
334
334
|
* slots (wind, windGust, windTurb, fxCounts, 3x plane pairs, sub0, sub1,
|
|
335
335
|
* height0, height1, light0, light1). Kill signaling: positions w = -1.
|
|
336
336
|
*/
|
|
337
|
-
export declare function createEffectsParticleComputeShader(
|
|
337
|
+
export declare function createEffectsParticleComputeShader(options?: {
|
|
338
|
+
preserveTrailBirthAge?: boolean;
|
|
339
|
+
}): string;
|
|
338
340
|
export {};
|
|
339
341
|
//# sourceMappingURL=GPUParticleBackend.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GPUParticleBackend.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/effects/GPUParticleBackend.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"GPUParticleBackend.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/effects/GPUParticleBackend.ts"],"names":[],"mappings":"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"}
|
|
@@ -783,7 +783,7 @@ fn spawn_main(@builtin(global_invocation_id) globalId: vec3<u32>) {
|
|
|
783
783
|
* slots (wind, windGust, windTurb, fxCounts, 3x plane pairs, sub0, sub1,
|
|
784
784
|
* height0, height1, light0, light1). Kill signaling: positions w = -1.
|
|
785
785
|
*/
|
|
786
|
-
export function createEffectsParticleComputeShader() {
|
|
786
|
+
export function createEffectsParticleComputeShader(options = {}) {
|
|
787
787
|
return `
|
|
788
788
|
struct FxParams {
|
|
789
789
|
deltaTime: f32,
|
|
@@ -939,6 +939,8 @@ fn main(@builtin(global_invocation_id) globalId: vec3<u32>) {
|
|
|
939
939
|
var vel = velocities[index].xyz;
|
|
940
940
|
let lifetime = max(velocities[index].w, 0.000001);
|
|
941
941
|
var dead = false;
|
|
942
|
+
var executedEffects = 0u;
|
|
943
|
+
var collisionContacts = 0u;
|
|
942
944
|
|
|
943
945
|
if ((flags & 1u) != 0u) {
|
|
944
946
|
let along = dot(pos, params.windGust.xyz);
|
|
@@ -947,6 +949,7 @@ fn main(@builtin(global_invocation_id) globalId: vec3<u32>) {
|
|
|
947
949
|
}
|
|
948
950
|
|
|
949
951
|
if ((flags & 2u) != 0u) {
|
|
952
|
+
executedEffects = executedEffects | 2u;
|
|
950
953
|
let samplePos = pos * params.windTurb.z + vec3<f32>(params.time * params.windTurb.w, 0.0, 0.0);
|
|
951
954
|
vel = vel + aura_sample_turb(samplePos) * params.windTurb.y * dt;
|
|
952
955
|
}
|
|
@@ -955,10 +958,12 @@ fn main(@builtin(global_invocation_id) globalId: vec3<u32>) {
|
|
|
955
958
|
pos = pos + vel * dt;
|
|
956
959
|
|
|
957
960
|
if ((flags & 4u) != 0u) {
|
|
961
|
+
executedEffects = executedEffects | 4u;
|
|
958
962
|
let planeCount = u32(params.fxCounts.y);
|
|
959
963
|
if (planeCount >= 1u) {
|
|
960
964
|
let d = dot(params.plane0.xyz, pos) + params.plane0.w;
|
|
961
965
|
if (d < 0.0) {
|
|
966
|
+
collisionContacts = collisionContacts + 1u;
|
|
962
967
|
if (params.plane0Misc.y > 0.5) {
|
|
963
968
|
dead = true;
|
|
964
969
|
} else {
|
|
@@ -973,6 +978,7 @@ fn main(@builtin(global_invocation_id) globalId: vec3<u32>) {
|
|
|
973
978
|
if (!dead && planeCount >= 2u) {
|
|
974
979
|
let d = dot(params.plane1.xyz, pos) + params.plane1.w;
|
|
975
980
|
if (d < 0.0) {
|
|
981
|
+
collisionContacts = collisionContacts + 1u;
|
|
976
982
|
if (params.plane1Misc.y > 0.5) {
|
|
977
983
|
dead = true;
|
|
978
984
|
} else {
|
|
@@ -987,6 +993,7 @@ fn main(@builtin(global_invocation_id) globalId: vec3<u32>) {
|
|
|
987
993
|
if (!dead && planeCount >= 3u) {
|
|
988
994
|
let d = dot(params.plane2.xyz, pos) + params.plane2.w;
|
|
989
995
|
if (d < 0.0) {
|
|
996
|
+
collisionContacts = collisionContacts + 1u;
|
|
990
997
|
if (params.plane2Misc.y > 0.5) {
|
|
991
998
|
dead = true;
|
|
992
999
|
} else {
|
|
@@ -1001,8 +1008,10 @@ fn main(@builtin(global_invocation_id) globalId: vec3<u32>) {
|
|
|
1001
1008
|
}
|
|
1002
1009
|
|
|
1003
1010
|
if (!dead && (flags & 8u) != 0u) {
|
|
1011
|
+
executedEffects = executedEffects | 8u;
|
|
1004
1012
|
let ground = aura_height_at(pos.x, pos.z);
|
|
1005
1013
|
if (pos.y < ground) {
|
|
1014
|
+
collisionContacts = collisionContacts + 1u;
|
|
1006
1015
|
if (params.height1.z > 0.5) {
|
|
1007
1016
|
dead = true;
|
|
1008
1017
|
} else {
|
|
@@ -1024,6 +1033,7 @@ fn main(@builtin(global_invocation_id) globalId: vec3<u32>) {
|
|
|
1024
1033
|
}
|
|
1025
1034
|
|
|
1026
1035
|
if (!dead && (flags & 16u) != 0u) {
|
|
1036
|
+
executedEffects = executedEffects | 16u;
|
|
1027
1037
|
let prevAge = age - dt;
|
|
1028
1038
|
let nPrev = prevAge / lifetime;
|
|
1029
1039
|
let nNew = age / lifetime;
|
|
@@ -1043,12 +1053,15 @@ fn main(@builtin(global_invocation_id) globalId: vec3<u32>) {
|
|
|
1043
1053
|
var col = baseAttributes[index * 2u];
|
|
1044
1054
|
var size = baseAttributes[index * 2u + 1u].x;
|
|
1045
1055
|
if ((flags & 32u) != 0u) {
|
|
1056
|
+
executedEffects = executedEffects | 32u;
|
|
1046
1057
|
col = aura_sample_color(t);
|
|
1047
1058
|
}
|
|
1048
1059
|
if ((flags & 256u) != 0u) {
|
|
1060
|
+
executedEffects = executedEffects | 256u;
|
|
1049
1061
|
size = aura_sample_size(t);
|
|
1050
1062
|
}
|
|
1051
1063
|
if ((flags & 64u) != 0u) {
|
|
1064
|
+
executedEffects = executedEffects | 64u;
|
|
1052
1065
|
col = vec4<f32>(aura_apply_light(col.xyz, vel), col.w);
|
|
1053
1066
|
}
|
|
1054
1067
|
attributes[index * 2u] = col;
|
|
@@ -1056,16 +1069,21 @@ fn main(@builtin(global_invocation_id) globalId: vec3<u32>) {
|
|
|
1056
1069
|
}
|
|
1057
1070
|
|
|
1058
1071
|
if ((flags & 128u) != 0u) {
|
|
1072
|
+
executedEffects = executedEffects | 128u;
|
|
1059
1073
|
let k = u32(params.fxCounts.x);
|
|
1060
1074
|
let base = index * k;
|
|
1061
1075
|
var s = k - 1u;
|
|
1062
1076
|
while (s >= 1u) {
|
|
1063
|
-
trailRing[base + s] = trailRing[base + s - 1u] + vec4<f32>(0.0, 0.0, 0.0, dt);
|
|
1077
|
+
trailRing[base + s] = trailRing[base + s - 1u]${options.preserveTrailBirthAge ? "" : " + vec4<f32>(0.0, 0.0, 0.0, dt)"};
|
|
1064
1078
|
s = s - 1u;
|
|
1065
1079
|
}
|
|
1066
1080
|
trailRing[base] = vec4<f32>(pos, age);
|
|
1067
1081
|
}
|
|
1068
1082
|
|
|
1083
|
+
// Spare attribute lanes retain executed branches and actual contact events.
|
|
1084
|
+
// Written by this invocation after every effect, not inferred from CPU options.
|
|
1085
|
+
attributes[index * 2u + 1u].y = f32(executedEffects);
|
|
1086
|
+
attributes[index * 2u + 1u].w = f32(collisionContacts);
|
|
1069
1087
|
if (dead) {
|
|
1070
1088
|
age = -1.0;
|
|
1071
1089
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GPUParticleBackend.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/effects/GPUParticleBackend.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GPUParticleBackend.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/effects/GPUParticleBackend.ts"],"names":[],"mappings":"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"}
|