@aura3d/rendering 2.0.4 → 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/dist/AtmosphereWetness.d.ts +61 -0
- package/dist/AtmosphereWetness.d.ts.map +1 -0
- package/dist/AtmosphereWetness.js +99 -0
- package/dist/AtmosphereWetness.js.map +1 -0
- package/dist/CascadedShadowMaps.d.ts.map +1 -1
- package/dist/CascadedShadowMaps.js +3 -1
- package/dist/CascadedShadowMaps.js.map +1 -1
- package/dist/ClusteredForwardLighting.d.ts +25 -1
- package/dist/ClusteredForwardLighting.d.ts.map +1 -1
- package/dist/ClusteredForwardLighting.js +80 -3
- package/dist/ClusteredForwardLighting.js.map +1 -1
- package/dist/DayNightSky.d.ts +63 -0
- package/dist/DayNightSky.d.ts.map +1 -0
- package/dist/DayNightSky.js +156 -0
- package/dist/DayNightSky.js.map +1 -0
- package/dist/EnvironmentPresetPack.d.ts +30 -0
- package/dist/EnvironmentPresetPack.d.ts.map +1 -0
- package/dist/EnvironmentPresetPack.js +49 -0
- package/dist/EnvironmentPresetPack.js.map +1 -0
- package/dist/ExtensionScalarAtlas.d.ts +18 -0
- package/dist/ExtensionScalarAtlas.d.ts.map +1 -0
- package/dist/ExtensionScalarAtlas.js +107 -0
- package/dist/ExtensionScalarAtlas.js.map +1 -0
- package/dist/ForwardPass.d.ts +65 -0
- package/dist/ForwardPass.d.ts.map +1 -1
- package/dist/ForwardPass.js +196 -2
- package/dist/ForwardPass.js.map +1 -1
- package/dist/InstancedPBRMaterial.d.ts +1 -0
- package/dist/InstancedPBRMaterial.d.ts.map +1 -1
- package/dist/InstancedPBRMaterial.js +3 -0
- package/dist/InstancedPBRMaterial.js.map +1 -1
- package/dist/InstancingDiagnostics.d.ts +69 -0
- package/dist/InstancingDiagnostics.d.ts.map +1 -0
- package/dist/InstancingDiagnostics.js +98 -0
- package/dist/InstancingDiagnostics.js.map +1 -0
- package/dist/LeanWebGL2Device.d.ts +265 -0
- package/dist/LeanWebGL2Device.d.ts.map +1 -0
- package/dist/LeanWebGL2Device.js +4001 -0
- package/dist/LeanWebGL2Device.js.map +1 -0
- package/dist/LightingRig.d.ts +19 -1
- package/dist/LightingRig.d.ts.map +1 -1
- package/dist/LightingRig.js +61 -1
- package/dist/LightingRig.js.map +1 -1
- package/dist/MaterialBinding.js +1 -1
- package/dist/MaterialBinding.js.map +1 -1
- package/dist/MeshConsolidation.d.ts +12 -0
- package/dist/MeshConsolidation.d.ts.map +1 -1
- package/dist/MeshConsolidation.js +28 -0
- package/dist/MeshConsolidation.js.map +1 -1
- package/dist/MorphTargetPlan.d.ts +29 -2
- package/dist/MorphTargetPlan.d.ts.map +1 -1
- package/dist/MorphTargetPlan.js +23 -4
- package/dist/MorphTargetPlan.js.map +1 -1
- package/dist/NormalMappedPBRMaterial.d.ts.map +1 -1
- package/dist/NormalMappedPBRMaterial.js +22 -2
- package/dist/NormalMappedPBRMaterial.js.map +1 -1
- package/dist/OceanSurface.d.ts +75 -0
- package/dist/OceanSurface.d.ts.map +1 -1
- package/dist/OceanSurface.js +211 -0
- package/dist/OceanSurface.js.map +1 -1
- package/dist/PBRMaterial.d.ts +1 -0
- package/dist/PBRMaterial.d.ts.map +1 -1
- package/dist/PBRMaterial.js +23 -2
- package/dist/PBRMaterial.js.map +1 -1
- package/dist/PbrReference.d.ts +48 -0
- package/dist/PbrReference.d.ts.map +1 -1
- package/dist/PbrReference.js +126 -0
- package/dist/PbrReference.js.map +1 -1
- package/dist/PlanarReflection.d.ts +221 -0
- package/dist/PlanarReflection.d.ts.map +1 -0
- package/dist/PlanarReflection.js +541 -0
- package/dist/PlanarReflection.js.map +1 -0
- package/dist/PostProcessPass.d.ts +32 -0
- package/dist/PostProcessPass.d.ts.map +1 -1
- package/dist/PostProcessPass.js +79 -36
- package/dist/PostProcessPass.js.map +1 -1
- package/dist/ProjectionMath.d.ts +3 -0
- package/dist/ProjectionMath.d.ts.map +1 -0
- package/dist/ProjectionMath.js +26 -0
- package/dist/ProjectionMath.js.map +1 -0
- package/dist/ReflectionSurfaces.d.ts +17 -0
- package/dist/ReflectionSurfaces.d.ts.map +1 -1
- package/dist/ReflectionSurfaces.js +103 -1
- package/dist/ReflectionSurfaces.js.map +1 -1
- package/dist/RenderDevice.d.ts +92 -0
- package/dist/RenderDevice.d.ts.map +1 -1
- package/dist/RenderDevice.js +85 -0
- package/dist/RenderDevice.js.map +1 -1
- package/dist/Renderer.d.ts +9 -0
- package/dist/Renderer.d.ts.map +1 -1
- package/dist/Renderer.js +97 -9
- package/dist/Renderer.js.map +1 -1
- package/dist/RendererPostprocessPlan.d.ts +64 -3
- package/dist/RendererPostprocessPlan.d.ts.map +1 -1
- package/dist/RendererPostprocessPlan.js +116 -12
- package/dist/RendererPostprocessPlan.js.map +1 -1
- package/dist/RendererVisualPipelineReport.d.ts.map +1 -1
- package/dist/RendererVisualPipelineReport.js +3 -1
- package/dist/RendererVisualPipelineReport.js.map +1 -1
- package/dist/Sampler.d.ts +29 -0
- package/dist/Sampler.d.ts.map +1 -1
- package/dist/Sampler.js +47 -0
- package/dist/Sampler.js.map +1 -1
- package/dist/ScreenSpaceReflectionPass.d.ts +43 -0
- package/dist/ScreenSpaceReflectionPass.d.ts.map +1 -0
- package/dist/ScreenSpaceReflectionPass.js +58 -0
- package/dist/ScreenSpaceReflectionPass.js.map +1 -0
- package/dist/SdfText.d.ts +250 -0
- package/dist/SdfText.d.ts.map +1 -0
- package/dist/SdfText.js +551 -0
- package/dist/SdfText.js.map +1 -0
- package/dist/ShaderChunks.d.ts.map +1 -1
- package/dist/ShaderChunks.js +30 -12
- package/dist/ShaderChunks.js.map +1 -1
- package/dist/ShaderLibrary.d.ts.map +1 -1
- package/dist/ShaderLibrary.js +601 -186
- package/dist/ShaderLibrary.js.map +1 -1
- package/dist/ShaderLibraryCore.d.ts +3 -0
- package/dist/ShaderLibraryCore.d.ts.map +1 -1
- package/dist/ShaderLibraryCore.js +73 -12
- package/dist/ShaderLibraryCore.js.map +1 -1
- package/dist/ShadowMap.d.ts +24 -0
- package/dist/ShadowMap.d.ts.map +1 -1
- package/dist/ShadowMap.js +43 -0
- package/dist/ShadowMap.js.map +1 -1
- package/dist/SkinnedLitMaterial.d.ts.map +1 -1
- package/dist/SkinnedLitMaterial.js +2 -0
- package/dist/SkinnedLitMaterial.js.map +1 -1
- package/dist/SkinningBounds.d.ts +10 -0
- package/dist/SkinningBounds.d.ts.map +1 -1
- package/dist/SkinningBounds.js +27 -0
- package/dist/SkinningBounds.js.map +1 -1
- package/dist/SpriteFlipbook.d.ts +60 -0
- package/dist/SpriteFlipbook.d.ts.map +1 -0
- package/dist/SpriteFlipbook.js +128 -0
- package/dist/SpriteFlipbook.js.map +1 -0
- package/dist/TemporalHistory.d.ts +37 -0
- package/dist/TemporalHistory.d.ts.map +1 -0
- package/dist/TemporalHistory.js +135 -0
- package/dist/TemporalHistory.js.map +1 -0
- package/dist/TemporalMath.d.ts +3 -0
- package/dist/TemporalMath.d.ts.map +1 -0
- package/dist/TemporalMath.js +9 -0
- package/dist/TemporalMath.js.map +1 -0
- package/dist/TerrainTiles.d.ts +120 -0
- package/dist/TerrainTiles.d.ts.map +1 -0
- package/dist/TerrainTiles.js +221 -0
- package/dist/TerrainTiles.js.map +1 -0
- package/dist/TexturedPBRMaterial.d.ts +4 -0
- package/dist/TexturedPBRMaterial.d.ts.map +1 -1
- package/dist/TexturedPBRMaterial.js +88 -5
- package/dist/TexturedPBRMaterial.js.map +1 -1
- package/dist/TexturedUnlitMaterial.d.ts.map +1 -1
- package/dist/TexturedUnlitMaterial.js +20 -2
- package/dist/TexturedUnlitMaterial.js.map +1 -1
- package/dist/UnlitMaterial.d.ts.map +1 -1
- package/dist/UnlitMaterial.js +20 -2
- package/dist/UnlitMaterial.js.map +1 -1
- package/dist/VertexFormat.d.ts +6 -0
- package/dist/VertexFormat.d.ts.map +1 -1
- package/dist/VertexFormat.js +12 -0
- package/dist/VertexFormat.js.map +1 -1
- package/dist/VolumetricFog.d.ts +55 -0
- package/dist/VolumetricFog.d.ts.map +1 -0
- package/dist/VolumetricFog.js +91 -0
- package/dist/VolumetricFog.js.map +1 -0
- package/dist/WaterSurface.d.ts +77 -0
- package/dist/WaterSurface.d.ts.map +1 -0
- package/dist/WaterSurface.js +133 -0
- package/dist/WaterSurface.js.map +1 -0
- package/dist/WebGL2Device.d.ts +73 -0
- package/dist/WebGL2Device.d.ts.map +1 -1
- package/dist/WebGL2Device.js +836 -79
- package/dist/WebGL2Device.js.map +1 -1
- package/dist/WebGPUDevice.d.ts +62 -1
- package/dist/WebGPUDevice.d.ts.map +1 -1
- package/dist/WebGPUDevice.js +844 -51
- package/dist/WebGPUDevice.js.map +1 -1
- package/dist/WebGPUExtensionAtlas.d.ts +6 -0
- package/dist/WebGPUExtensionAtlas.d.ts.map +1 -0
- package/dist/WebGPUExtensionAtlas.js +225 -0
- package/dist/WebGPUExtensionAtlas.js.map +1 -0
- package/dist/WebGPUSkinningLimits.d.ts +40 -0
- package/dist/WebGPUSkinningLimits.d.ts.map +1 -1
- package/dist/WebGPUSkinningLimits.js +32 -0
- package/dist/WebGPUSkinningLimits.js.map +1 -1
- package/dist/effects/CollisionModule.d.ts +9 -0
- package/dist/effects/CollisionModule.d.ts.map +1 -1
- package/dist/effects/CollisionModule.js +10 -0
- package/dist/effects/CollisionModule.js.map +1 -1
- package/dist/effects/ColorModule.d.ts +7 -0
- package/dist/effects/ColorModule.d.ts.map +1 -1
- package/dist/effects/ColorModule.js +23 -0
- package/dist/effects/ColorModule.js.map +1 -1
- package/dist/effects/ForceModule.d.ts +35 -0
- package/dist/effects/ForceModule.d.ts.map +1 -1
- package/dist/effects/ForceModule.js +49 -0
- package/dist/effects/ForceModule.js.map +1 -1
- package/dist/effects/GPUParticleBackend.d.ts +188 -0
- package/dist/effects/GPUParticleBackend.d.ts.map +1 -1
- package/dist/effects/GPUParticleBackend.js +710 -1
- package/dist/effects/GPUParticleBackend.js.map +1 -1
- package/dist/effects/HeightfieldModule.d.ts +58 -0
- package/dist/effects/HeightfieldModule.d.ts.map +1 -0
- package/dist/effects/HeightfieldModule.js +129 -0
- package/dist/effects/HeightfieldModule.js.map +1 -0
- package/dist/effects/LightingModule.d.ts +34 -0
- package/dist/effects/LightingModule.d.ts.map +1 -0
- package/dist/effects/LightingModule.js +54 -0
- package/dist/effects/LightingModule.js.map +1 -0
- package/dist/effects/ParticleDiagnostics.d.ts +8 -0
- package/dist/effects/ParticleDiagnostics.d.ts.map +1 -1
- package/dist/effects/ParticleDiagnostics.js +3 -0
- package/dist/effects/ParticleDiagnostics.js.map +1 -1
- package/dist/effects/ParticleModule.d.ts +8 -0
- package/dist/effects/ParticleModule.d.ts.map +1 -1
- package/dist/effects/ParticleModule.js.map +1 -1
- package/dist/effects/ParticleRenderer.d.ts +20 -0
- package/dist/effects/ParticleRenderer.d.ts.map +1 -1
- package/dist/effects/ParticleRenderer.js +57 -7
- package/dist/effects/ParticleRenderer.js.map +1 -1
- package/dist/effects/ParticleSystem.d.ts +45 -1
- package/dist/effects/ParticleSystem.d.ts.map +1 -1
- package/dist/effects/ParticleSystem.js +373 -4
- package/dist/effects/ParticleSystem.js.map +1 -1
- package/dist/effects/ResidentGPUParticleRenderer.d.ts +158 -0
- package/dist/effects/ResidentGPUParticleRenderer.d.ts.map +1 -0
- package/dist/effects/ResidentGPUParticleRenderer.js +576 -0
- package/dist/effects/ResidentGPUParticleRenderer.js.map +1 -0
- package/dist/effects/SizeModule.d.ts +4 -0
- package/dist/effects/SizeModule.d.ts.map +1 -1
- package/dist/effects/SizeModule.js +16 -0
- package/dist/effects/SizeModule.js.map +1 -1
- package/dist/effects/SubEmitterModule.d.ts +61 -0
- package/dist/effects/SubEmitterModule.d.ts.map +1 -0
- package/dist/effects/SubEmitterModule.js +119 -0
- package/dist/effects/SubEmitterModule.js.map +1 -0
- package/dist/effects/TrailModule.d.ts +38 -0
- package/dist/effects/TrailModule.d.ts.map +1 -1
- package/dist/effects/TrailModule.js +95 -2
- package/dist/effects/TrailModule.js.map +1 -1
- package/dist/effects/TurbulenceModule.d.ts +43 -0
- package/dist/effects/TurbulenceModule.d.ts.map +1 -0
- package/dist/effects/TurbulenceModule.js +130 -0
- package/dist/effects/TurbulenceModule.js.map +1 -0
- package/dist/effects/index.d.ts +4 -0
- package/dist/effects/index.d.ts.map +1 -1
- package/dist/effects/index.js +4 -0
- package/dist/effects/index.js.map +1 -1
- package/dist/extension-scalar-atlas.d.ts +3 -0
- package/dist/extension-scalar-atlas.d.ts.map +1 -0
- package/dist/extension-scalar-atlas.js +2 -0
- package/dist/extension-scalar-atlas.js.map +1 -0
- package/dist/index.d.ts +58 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -10
- package/dist/index.js.map +1 -1
- package/dist/lean/LeanProductionRenderer.d.ts.map +1 -1
- package/dist/lean/LeanProductionRenderer.js +2 -2
- package/dist/lean/LeanProductionRenderer.js.map +1 -1
- package/dist/lean-core-runtime.d.ts +13 -0
- package/dist/lean-core-runtime.d.ts.map +1 -0
- package/dist/lean-core-runtime.js +10 -0
- package/dist/lean-core-runtime.js.map +1 -0
- package/dist/materials/MaterialExtensions.js +3 -3
- package/dist/materials/MaterialExtensions.js.map +1 -1
- package/dist/postprocess/NativeBloomPyramid.d.ts +44 -0
- package/dist/postprocess/NativeBloomPyramid.d.ts.map +1 -0
- package/dist/postprocess/NativeBloomPyramid.js +84 -0
- package/dist/postprocess/NativeBloomPyramid.js.map +1 -0
- package/dist/postprocess/NativeLdrEffectLuts.d.ts +10 -1
- package/dist/postprocess/NativeLdrEffectLuts.d.ts.map +1 -1
- package/dist/postprocess/NativeLdrEffectLuts.js +19 -2
- package/dist/postprocess/NativeLdrEffectLuts.js.map +1 -1
- package/dist/postprocess/index.d.ts +2 -0
- package/dist/postprocess/index.d.ts.map +1 -1
- package/dist/postprocess/index.js +1 -0
- package/dist/postprocess/index.js.map +1 -1
- package/dist/production-runtime/PBRHDRPipeline.d.ts +22 -0
- package/dist/production-runtime/PBRHDRPipeline.d.ts.map +1 -1
- package/dist/production-runtime/PBRHDRPipeline.js +125 -0
- package/dist/production-runtime/PBRHDRPipeline.js.map +1 -1
- package/dist/production-runtime/ProductionRendererTypes.d.ts +1 -0
- package/dist/production-runtime/ProductionRendererTypes.d.ts.map +1 -1
- package/dist/production-runtime/ProductionRendererTypes.js.map +1 -1
- package/dist/production-runtime/ProductionRuntimeRenderer.d.ts +3 -0
- package/dist/production-runtime/ProductionRuntimeRenderer.d.ts.map +1 -1
- package/dist/production-runtime/ProductionRuntimeRenderer.js +8 -1
- package/dist/production-runtime/ProductionRuntimeRenderer.js.map +1 -1
- package/dist/production-runtime/ProductionWebGL2Renderer.d.ts +4 -0
- package/dist/production-runtime/ProductionWebGL2Renderer.d.ts.map +1 -1
- package/dist/production-runtime/ProductionWebGL2Renderer.js +15 -0
- package/dist/production-runtime/ProductionWebGL2Renderer.js.map +1 -1
- package/dist/production-runtime/ProductionWebGPURenderer.d.ts +58 -0
- package/dist/production-runtime/ProductionWebGPURenderer.d.ts.map +1 -1
- package/dist/production-runtime/ProductionWebGPURenderer.js +127 -0
- package/dist/production-runtime/ProductionWebGPURenderer.js.map +1 -1
- package/dist/production-runtime/framegraph/FrameGraph.d.ts +4 -2
- package/dist/production-runtime/framegraph/FrameGraph.d.ts.map +1 -1
- package/dist/production-runtime/framegraph/FrameGraph.js +62 -4
- package/dist/production-runtime/framegraph/FrameGraph.js.map +1 -1
- package/dist/production-runtime/framegraph/NativeFrameGraphBindings.d.ts +32 -0
- package/dist/production-runtime/framegraph/NativeFrameGraphBindings.d.ts.map +1 -0
- package/dist/production-runtime/framegraph/NativeFrameGraphBindings.js +111 -0
- package/dist/production-runtime/framegraph/NativeFrameGraphBindings.js.map +1 -0
- package/dist/production-runtime/framegraph/RenderPass.d.ts +23 -0
- package/dist/production-runtime/framegraph/RenderPass.d.ts.map +1 -1
- package/dist/production-runtime/framegraph/RenderPass.js +87 -1
- package/dist/production-runtime/framegraph/RenderPass.js.map +1 -1
- package/dist/production-runtime/index.d.ts +7 -4
- package/dist/production-runtime/index.d.ts.map +1 -1
- package/dist/production-runtime/index.js +4 -2
- package/dist/production-runtime/index.js.map +1 -1
- package/dist/production-runtime/passes/DepthPrepass.d.ts +18 -1
- package/dist/production-runtime/passes/DepthPrepass.d.ts.map +1 -1
- package/dist/production-runtime/passes/DepthPrepass.js +41 -2
- package/dist/production-runtime/passes/DepthPrepass.js.map +1 -1
- package/dist/production-runtime/passes/FramegraphTopology.d.ts +13 -0
- package/dist/production-runtime/passes/FramegraphTopology.d.ts.map +1 -0
- package/dist/production-runtime/passes/FramegraphTopology.js +59 -0
- package/dist/production-runtime/passes/FramegraphTopology.js.map +1 -0
- package/dist/production-runtime/passes/OpaquePass.d.ts +19 -1
- package/dist/production-runtime/passes/OpaquePass.d.ts.map +1 -1
- package/dist/production-runtime/passes/OpaquePass.js +43 -2
- package/dist/production-runtime/passes/OpaquePass.js.map +1 -1
- package/dist/production-runtime/passes/ShadowPass.d.ts +19 -1
- package/dist/production-runtime/passes/ShadowPass.d.ts.map +1 -1
- package/dist/production-runtime/passes/ShadowPass.js +45 -2
- package/dist/production-runtime/passes/ShadowPass.js.map +1 -1
- package/dist/production-runtime/passes/SkyboxPass.d.ts +17 -1
- package/dist/production-runtime/passes/SkyboxPass.d.ts.map +1 -1
- package/dist/production-runtime/passes/SkyboxPass.js +41 -2
- package/dist/production-runtime/passes/SkyboxPass.js.map +1 -1
- package/dist/production-runtime/passes/ToneMappingPass.d.ts +26 -1
- package/dist/production-runtime/passes/ToneMappingPass.d.ts.map +1 -1
- package/dist/production-runtime/passes/ToneMappingPass.js +62 -2
- package/dist/production-runtime/passes/ToneMappingPass.js.map +1 -1
- package/dist/production-runtime/passes/TransparentPass.d.ts +19 -1
- package/dist/production-runtime/passes/TransparentPass.d.ts.map +1 -1
- package/dist/production-runtime/passes/TransparentPass.js +47 -2
- package/dist/production-runtime/passes/TransparentPass.js.map +1 -1
- package/dist/reflection-surfaces.d.ts +5 -0
- package/dist/reflection-surfaces.d.ts.map +1 -0
- package/dist/reflection-surfaces.js +3 -0
- package/dist/reflection-surfaces.js.map +1 -0
- package/dist/shadows/CascadeHysteresis.d.ts +67 -0
- package/dist/shadows/CascadeHysteresis.d.ts.map +1 -0
- package/dist/shadows/CascadeHysteresis.js +104 -0
- package/dist/shadows/CascadeHysteresis.js.map +1 -0
- package/dist/shadows/ContactShadows.d.ts +52 -0
- package/dist/shadows/ContactShadows.d.ts.map +1 -1
- package/dist/shadows/ContactShadows.js +122 -0
- package/dist/shadows/ContactShadows.js.map +1 -1
- package/dist/shadows/SpotShadowMaps.d.ts +77 -0
- package/dist/shadows/SpotShadowMaps.d.ts.map +1 -0
- package/dist/shadows/SpotShadowMaps.js +106 -0
- package/dist/shadows/SpotShadowMaps.js.map +1 -0
- package/dist/webgpu/WebGPUPostProcess.d.ts +2 -0
- package/dist/webgpu/WebGPUPostProcess.d.ts.map +1 -1
- package/dist/webgpu/WebGPUPostProcess.js +1 -0
- package/dist/webgpu/WebGPUPostProcess.js.map +1 -1
- package/dist/webgpu/WebGPUPostShaders.d.ts +77 -0
- package/dist/webgpu/WebGPUPostShaders.d.ts.map +1 -0
- package/dist/webgpu/WebGPUPostShaders.js +261 -0
- package/dist/webgpu/WebGPUPostShaders.js.map +1 -0
- package/dist/webgpu/WebGPUTemporal.d.ts +17 -0
- package/dist/webgpu/WebGPUTemporal.d.ts.map +1 -0
- package/dist/webgpu/WebGPUTemporal.js +64 -0
- package/dist/webgpu/WebGPUTemporal.js.map +1 -0
- package/dist/webgpu.d.ts +6 -0
- package/dist/webgpu.d.ts.map +1 -1
- package/dist/webgpu.js +4 -0
- package/dist/webgpu.js.map +1 -1
- package/package.json +15 -3
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* D3 rendered water material descriptor (PRD D3 box 3).
|
|
3
|
+
*
|
|
4
|
+
* NEW `WaterSurface.ts` rendered material: layered depth-tinted bands for a
|
|
5
|
+
* bounded refraction look, a fresnel-weighted environment reflection tint, a
|
|
6
|
+
* shore-foam mask mapped from `OceanFoamPatch` discs, and a boat-wake hook.
|
|
7
|
+
*
|
|
8
|
+
* Hard boundaries (do not move them into this module):
|
|
9
|
+
* - NO planar reflection/refraction targets. The "refraction" here is a
|
|
10
|
+
* bounded color look only — depth-tinted bands, no render targets, no
|
|
11
|
+
* sampling of scene color. Live planar-target water lives in
|
|
12
|
+
* `OceanSurface.ts` (`WaterReflectionRefractionCapture`, B4) and is the
|
|
13
|
+
* only path `ReflectionSurfaces.ts` promotes to implemented water.
|
|
14
|
+
* - Buoyancy queries stay on the fixture: use
|
|
15
|
+
* `sampleOceanFixture(...).buoyancy` for telemetry. This module implements
|
|
16
|
+
* no buoyancy physics.
|
|
17
|
+
*/
|
|
18
|
+
import { type OceanFixturePreset } from "./OceanSurface.js";
|
|
19
|
+
export type WaterSurfacePreset = OceanFixturePreset;
|
|
20
|
+
export interface WaterSurfaceBoat {
|
|
21
|
+
readonly x?: number;
|
|
22
|
+
readonly z?: number;
|
|
23
|
+
readonly headingRadians?: number;
|
|
24
|
+
/** Boat speed in m/s; 0 (or omitted) disables the wake trail. */
|
|
25
|
+
readonly speed?: number;
|
|
26
|
+
}
|
|
27
|
+
export interface WaterSurfaceOptions {
|
|
28
|
+
readonly preset?: WaterSurfacePreset;
|
|
29
|
+
readonly seed?: number;
|
|
30
|
+
readonly elapsedSeconds?: number;
|
|
31
|
+
readonly bandCount?: number;
|
|
32
|
+
readonly boat?: WaterSurfaceBoat;
|
|
33
|
+
readonly wakeSegmentCount?: number;
|
|
34
|
+
}
|
|
35
|
+
/** One opaque depth-tinted band; `depthT` 0 = shallow edge, 1 = open water. */
|
|
36
|
+
export interface WaterDepthBand {
|
|
37
|
+
readonly depthT: number;
|
|
38
|
+
readonly color: string;
|
|
39
|
+
/** Fresnel-weighted sky-tint mix already baked into `color`, in [0, 1]. */
|
|
40
|
+
readonly fresnelMix: number;
|
|
41
|
+
}
|
|
42
|
+
export interface WaterFoamMask {
|
|
43
|
+
readonly x: number;
|
|
44
|
+
readonly z: number;
|
|
45
|
+
readonly radius: number;
|
|
46
|
+
readonly intensity: number;
|
|
47
|
+
readonly sourcePatchId: string;
|
|
48
|
+
}
|
|
49
|
+
export interface WaterWakeSegment {
|
|
50
|
+
readonly x: number;
|
|
51
|
+
readonly z: number;
|
|
52
|
+
readonly width: number;
|
|
53
|
+
/** 1 at the stern fading to 0 at the trail end. */
|
|
54
|
+
readonly alpha: number;
|
|
55
|
+
}
|
|
56
|
+
export interface WaterSurfaceState {
|
|
57
|
+
readonly preset: WaterSurfacePreset;
|
|
58
|
+
readonly seed: number;
|
|
59
|
+
readonly elapsedSeconds: number;
|
|
60
|
+
readonly deepColor: string;
|
|
61
|
+
readonly shallowColor: string;
|
|
62
|
+
readonly skyTintColor: string;
|
|
63
|
+
readonly bands: readonly WaterDepthBand[];
|
|
64
|
+
readonly foam: readonly WaterFoamMask[];
|
|
65
|
+
readonly averageFoam: number;
|
|
66
|
+
readonly maxFoam: number;
|
|
67
|
+
readonly wake: readonly WaterWakeSegment[];
|
|
68
|
+
readonly wakeActive: boolean;
|
|
69
|
+
readonly buoyancySource: string;
|
|
70
|
+
readonly planarReflectionDependency: string;
|
|
71
|
+
readonly claimBoundary: string;
|
|
72
|
+
readonly hash: string;
|
|
73
|
+
}
|
|
74
|
+
export declare const WATER_SURFACE_CLAIM_BOUNDARY: string;
|
|
75
|
+
export declare const WATER_SURFACE_PLANAR_DEPENDENCY: string;
|
|
76
|
+
export declare function createWaterSurface(options?: WaterSurfaceOptions): WaterSurfaceState;
|
|
77
|
+
//# sourceMappingURL=WaterSurface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WaterSurface.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/WaterSurface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAsB,KAAK,kBAAkB,EAAuB,MAAM,gBAAgB,CAAC;AAElG,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,iEAAiE;IACjE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,+EAA+E;AAC/E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,SAAS,aAAa,EAAE,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,4BAA4B,QAGgB,CAAC;AAE1D,eAAO,MAAM,+BAA+B,QAG2C,CAAC;AASxF,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,iBAAiB,CA0EvF"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* D3 rendered water material descriptor (PRD D3 box 3).
|
|
3
|
+
*
|
|
4
|
+
* NEW `WaterSurface.ts` rendered material: layered depth-tinted bands for a
|
|
5
|
+
* bounded refraction look, a fresnel-weighted environment reflection tint, a
|
|
6
|
+
* shore-foam mask mapped from `OceanFoamPatch` discs, and a boat-wake hook.
|
|
7
|
+
*
|
|
8
|
+
* Hard boundaries (do not move them into this module):
|
|
9
|
+
* - NO planar reflection/refraction targets. The "refraction" here is a
|
|
10
|
+
* bounded color look only — depth-tinted bands, no render targets, no
|
|
11
|
+
* sampling of scene color. Live planar-target water lives in
|
|
12
|
+
* `OceanSurface.ts` (`WaterReflectionRefractionCapture`, B4) and is the
|
|
13
|
+
* only path `ReflectionSurfaces.ts` promotes to implemented water.
|
|
14
|
+
* - Buoyancy queries stay on the fixture: use
|
|
15
|
+
* `sampleOceanFixture(...).buoyancy` for telemetry. This module implements
|
|
16
|
+
* no buoyancy physics.
|
|
17
|
+
*/
|
|
18
|
+
import { sampleOceanFixture } from "./OceanSurface.js";
|
|
19
|
+
export const WATER_SURFACE_CLAIM_BOUNDARY = "Layered depth-tinted water material with fresnel-weighted environment tint, " +
|
|
20
|
+
"shore-foam mask, and boat-wake hook. Bounded refraction look only: no planar " +
|
|
21
|
+
"reflection/refraction targets are created or sampled.";
|
|
22
|
+
export const WATER_SURFACE_PLANAR_DEPENDENCY = "B4 dependency: planar reflection/refraction targets (ReflectionSurfaces.ts " +
|
|
23
|
+
"water-refraction, currently unsupported) are required before any planar water " +
|
|
24
|
+
"reflection or true scene-color refraction claim. This material must not claim them.";
|
|
25
|
+
const presetColors = {
|
|
26
|
+
calm: { deep: "#0b3b5e", shallow: "#2e8fb8", sky: "#9fd4ef" },
|
|
27
|
+
moderate: { deep: "#0a3454", shallow: "#2a86ae", sky: "#8fc6e8" },
|
|
28
|
+
rough: { deep: "#082c48", shallow: "#2578a0", sky: "#7fb2d9" },
|
|
29
|
+
storm: { deep: "#061f33", shallow: "#1d5f86", sky: "#5f87a3" }
|
|
30
|
+
};
|
|
31
|
+
export function createWaterSurface(options = {}) {
|
|
32
|
+
const preset = options.preset ?? "moderate";
|
|
33
|
+
if (!(preset in presetColors))
|
|
34
|
+
throw new RangeError(`Water surface preset must be calm|moderate|rough|storm, got "${preset}".`);
|
|
35
|
+
const seed = Math.floor(options.seed ?? 0xaa7e5);
|
|
36
|
+
if (!Number.isInteger(seed))
|
|
37
|
+
throw new RangeError("Water surface seed must be an integer.");
|
|
38
|
+
const elapsedSeconds = Math.max(0, options.elapsedSeconds ?? 0);
|
|
39
|
+
if (!Number.isFinite(elapsedSeconds))
|
|
40
|
+
throw new RangeError("Water surface elapsedSeconds must be finite.");
|
|
41
|
+
const bandCount = options.bandCount ?? 5;
|
|
42
|
+
if (!Number.isInteger(bandCount) || bandCount < 2 || bandCount > 12) {
|
|
43
|
+
throw new RangeError("Water surface bandCount must be an integer in [2, 12].");
|
|
44
|
+
}
|
|
45
|
+
const wakeSegmentCount = options.wakeSegmentCount ?? 8;
|
|
46
|
+
if (!Number.isInteger(wakeSegmentCount) || wakeSegmentCount < 0 || wakeSegmentCount > 32) {
|
|
47
|
+
throw new RangeError("Water surface wakeSegmentCount must be an integer in [0, 32].");
|
|
48
|
+
}
|
|
49
|
+
const palette = presetColors[preset];
|
|
50
|
+
const bands = Array.from({ length: bandCount }, (_, index) => {
|
|
51
|
+
const depthT = bandCount === 1 ? 1 : index / (bandCount - 1);
|
|
52
|
+
// Fresnel look: grazing angles (shallow edge, low depthT) reflect more sky.
|
|
53
|
+
const fresnelMix = Number((0.12 + 0.55 * Math.pow(1 - depthT, 2.2)).toFixed(4));
|
|
54
|
+
const base = mixHex(palette.shallow, palette.deep, depthT);
|
|
55
|
+
return { depthT: Number(depthT.toFixed(4)), color: mixHex(base, palette.sky, fresnelMix), fresnelMix };
|
|
56
|
+
});
|
|
57
|
+
// Foam mask is mapped 1:1 from the deterministic fixture discs.
|
|
58
|
+
const fixture = sampleOceanFixture({ preset, seed, elapsedSeconds });
|
|
59
|
+
const foam = fixture.foamPatches.map((patch) => ({
|
|
60
|
+
x: patch.x,
|
|
61
|
+
z: patch.z,
|
|
62
|
+
radius: patch.radius,
|
|
63
|
+
intensity: Number(clamp(patch.intensity, 0, 1).toFixed(4)),
|
|
64
|
+
sourcePatchId: patch.id
|
|
65
|
+
}));
|
|
66
|
+
const boat = options.boat;
|
|
67
|
+
const speed = Math.max(0, boat?.speed ?? 0);
|
|
68
|
+
const wakeActive = speed > 0.05 && wakeSegmentCount > 0;
|
|
69
|
+
const wake = wakeActive
|
|
70
|
+
? Array.from({ length: wakeSegmentCount }, (_, index) => {
|
|
71
|
+
const t = (index + 1) / wakeSegmentCount;
|
|
72
|
+
const heading = boat?.headingRadians ?? 0;
|
|
73
|
+
const backX = (boat?.x ?? 0) - Math.sin(heading) * t * (1.2 + speed * 0.35);
|
|
74
|
+
const backZ = (boat?.z ?? 0) - Math.cos(heading) * t * (1.2 + speed * 0.35);
|
|
75
|
+
return {
|
|
76
|
+
x: Number(backX.toFixed(4)),
|
|
77
|
+
z: Number(backZ.toFixed(4)),
|
|
78
|
+
width: Number((0.12 + t * 0.5).toFixed(4)),
|
|
79
|
+
alpha: Number((Math.pow(1 - t, 1.6)).toFixed(4))
|
|
80
|
+
};
|
|
81
|
+
})
|
|
82
|
+
: [];
|
|
83
|
+
const hash = hashValues([
|
|
84
|
+
bandCount, fixture.averageFoam, fixture.maxFoam, foam.length, wake.length, speed, elapsedSeconds
|
|
85
|
+
]);
|
|
86
|
+
return {
|
|
87
|
+
preset,
|
|
88
|
+
seed,
|
|
89
|
+
elapsedSeconds,
|
|
90
|
+
deepColor: palette.deep,
|
|
91
|
+
shallowColor: palette.shallow,
|
|
92
|
+
skyTintColor: palette.sky,
|
|
93
|
+
bands,
|
|
94
|
+
foam,
|
|
95
|
+
averageFoam: fixture.averageFoam,
|
|
96
|
+
maxFoam: fixture.maxFoam,
|
|
97
|
+
wake,
|
|
98
|
+
wakeActive,
|
|
99
|
+
buoyancySource: "sampleOceanFixture().buoyancy (fixture-side telemetry only; no buoyancy physics in this module)",
|
|
100
|
+
planarReflectionDependency: WATER_SURFACE_PLANAR_DEPENDENCY,
|
|
101
|
+
claimBoundary: WATER_SURFACE_CLAIM_BOUNDARY,
|
|
102
|
+
hash
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
function mixHex(a, b, t) {
|
|
106
|
+
const ra = parseHex(a);
|
|
107
|
+
const rb = parseHex(b);
|
|
108
|
+
const k = clamp(t, 0, 1);
|
|
109
|
+
const toHex = (v) => Math.max(0, Math.min(255, Math.round(v))).toString(16).padStart(2, "0");
|
|
110
|
+
return `#${toHex(ra[0] + (rb[0] - ra[0]) * k)}${toHex(ra[1] + (rb[1] - ra[1]) * k)}${toHex(ra[2] + (rb[2] - ra[2]) * k)}`;
|
|
111
|
+
}
|
|
112
|
+
function parseHex(hex) {
|
|
113
|
+
const match = /^#([0-9a-fA-F]{6})$/.exec(hex.trim());
|
|
114
|
+
if (!match?.[1])
|
|
115
|
+
throw new RangeError(`Water color must be a #rrggbb hex string, got "${hex}".`);
|
|
116
|
+
const value = match[1];
|
|
117
|
+
return [parseInt(value.slice(0, 2), 16), parseInt(value.slice(2, 4), 16), parseInt(value.slice(4, 6), 16)];
|
|
118
|
+
}
|
|
119
|
+
function clamp(value, min, max) {
|
|
120
|
+
return Math.max(min, Math.min(max, value));
|
|
121
|
+
}
|
|
122
|
+
function hashValues(values) {
|
|
123
|
+
let hash = 0x811c9dc5;
|
|
124
|
+
for (const value of values) {
|
|
125
|
+
const scaled = Math.round(value * 10_000);
|
|
126
|
+
hash ^= scaled & 0xff;
|
|
127
|
+
hash = Math.imul(hash, 0x01000193) >>> 0;
|
|
128
|
+
hash ^= (scaled >>> 8) & 0xff;
|
|
129
|
+
hash = Math.imul(hash, 0x01000193) >>> 0;
|
|
130
|
+
}
|
|
131
|
+
return hash.toString(16).padStart(8, "0");
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=WaterSurface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WaterSurface.js","sourceRoot":"","sources":["../../../../packages/rendering/src/WaterSurface.ts"],"names":[],"mappings":"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"}
|
package/dist/WebGL2Device.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type BufferUsage, type DrawCommand, type LdrPostprocessPresentationOptions, type RenderBuffer, type RenderDevice, type RenderDeviceDiagnostics, type RenderDeviceInfo, type RenderShaderProgram, type RenderTarget, type RenderTargetDescriptor, type ShaderSources } from "./RenderDevice.js";
|
|
2
|
+
import { type BloomQualityPreset } from "./postprocess/NativeBloomPyramid.js";
|
|
2
3
|
export interface WebGL2DeviceOptions {
|
|
3
4
|
readonly canvas: HTMLCanvasElement | OffscreenCanvas;
|
|
4
5
|
readonly antialias?: boolean;
|
|
@@ -7,6 +8,18 @@ export interface WebGL2DeviceOptions {
|
|
|
7
8
|
readonly errorCheckMode?: WebGL2ErrorCheckMode;
|
|
8
9
|
}
|
|
9
10
|
export type WebGL2ErrorCheckMode = "strict" | "frame";
|
|
11
|
+
export interface WebGL2BloomDiagnostics {
|
|
12
|
+
readonly quality: BloomQualityPreset;
|
|
13
|
+
readonly mipCount: number;
|
|
14
|
+
readonly targetCount: number;
|
|
15
|
+
readonly targetBytes: number;
|
|
16
|
+
readonly compositeGain: number;
|
|
17
|
+
readonly threshold: number;
|
|
18
|
+
readonly intensity: number;
|
|
19
|
+
readonly softKnee: number;
|
|
20
|
+
readonly shoulder: number;
|
|
21
|
+
readonly halfFloat: boolean;
|
|
22
|
+
}
|
|
10
23
|
export declare class WebGL2Device implements RenderDevice {
|
|
11
24
|
private readonly errorCheckMode;
|
|
12
25
|
readonly kind = "webgl2";
|
|
@@ -16,6 +29,8 @@ export declare class WebGL2Device implements RenderDevice {
|
|
|
16
29
|
private readonly gl;
|
|
17
30
|
private nextId;
|
|
18
31
|
private drawCalls;
|
|
32
|
+
private nativeTemporalPasses;
|
|
33
|
+
private nativeTemporalBindings;
|
|
19
34
|
private buffers;
|
|
20
35
|
private shaders;
|
|
21
36
|
private renderTargets;
|
|
@@ -30,19 +45,27 @@ export declare class WebGL2Device implements RenderDevice {
|
|
|
30
45
|
private bloomBrightExtractProgram;
|
|
31
46
|
private bloomBlurProgram;
|
|
32
47
|
private bloomCompositeProgram;
|
|
48
|
+
private bloomDownsampleProgram;
|
|
49
|
+
private bloomAccumulateProgram;
|
|
50
|
+
private bloomPyramidResources;
|
|
33
51
|
private outlineProgram;
|
|
34
52
|
private ssaoProgram;
|
|
35
53
|
private ssrProgram;
|
|
36
54
|
private depthOfFieldProgram;
|
|
37
55
|
private motionBlurProgram;
|
|
38
56
|
private motionBlurVelocityTexture;
|
|
57
|
+
private motionBlurVelocitySize;
|
|
39
58
|
private taaProgram;
|
|
59
|
+
private taaPresentationProgram;
|
|
40
60
|
private taaHistoryTexture;
|
|
61
|
+
private taaHistorySize;
|
|
41
62
|
private bloomPingPongResources;
|
|
42
63
|
private bloomBrightLutTexture;
|
|
43
64
|
private bloomBrightLutThreshold;
|
|
44
65
|
private bloomCompositeLutTexture;
|
|
45
66
|
private bloomCompositeLutIntensity;
|
|
67
|
+
private bloomCompositeLutShoulder;
|
|
68
|
+
private lastBloomDiagnostics;
|
|
46
69
|
private outlineBlendLutTexture;
|
|
47
70
|
private outlineBlendLutKey;
|
|
48
71
|
private depthReadbackProgram;
|
|
@@ -110,6 +133,15 @@ export declare class WebGL2Device implements RenderDevice {
|
|
|
110
133
|
private resolveMultisampleTarget;
|
|
111
134
|
writeRenderTargetPixels(target: RenderTarget, pixels: Uint8Array): void;
|
|
112
135
|
presentRenderTarget(source: RenderTarget): void;
|
|
136
|
+
/** Executes the same native SSR kernel used by postprocessing into an owned target. */
|
|
137
|
+
executeReflectionSurfaceSsr(source: RenderTarget, normalMask: RenderTarget, output: RenderTarget, options: {
|
|
138
|
+
projection: Float32Array;
|
|
139
|
+
inverseProjection: Float32Array;
|
|
140
|
+
maxSteps: number;
|
|
141
|
+
maxDistance: number;
|
|
142
|
+
thickness: number;
|
|
143
|
+
intensity: number;
|
|
144
|
+
}): void;
|
|
113
145
|
presentLdrPostprocess(source: RenderTarget, options: LdrPostprocessPresentationOptions): void;
|
|
114
146
|
readPixels(x: number, y: number, width: number, height: number): Uint8Array;
|
|
115
147
|
readFloatPixels(x: number, y: number, width: number, height: number): Float32Array;
|
|
@@ -132,14 +164,52 @@ export declare class WebGL2Device implements RenderDevice {
|
|
|
132
164
|
private ensureTaaHistoryTexture;
|
|
133
165
|
private drawNativeLdrStage;
|
|
134
166
|
private executeNativeBloomPasses;
|
|
167
|
+
/**
|
|
168
|
+
* Balanced/cinematic bloom: bright-extract once, then a half-resolution mip
|
|
169
|
+
* chain where every level is downsampled, separably blurred, and accumulated
|
|
170
|
+
* with its energy-preserving weight. Returns a full-resolution bloom texture
|
|
171
|
+
* holding the weighted sum, ready for the existing composite program.
|
|
172
|
+
*/
|
|
173
|
+
private executeNativeBloomPyramidPasses;
|
|
135
174
|
private executeNativeOutlinePasses;
|
|
136
175
|
private executeNativeSsaoPass;
|
|
137
176
|
private executeNativeSsrPass;
|
|
177
|
+
private drawSsrKernel;
|
|
138
178
|
private executeNativeDepthOfFieldPass;
|
|
139
179
|
private executeNativeMotionBlurPass;
|
|
140
180
|
private executeNativeTaaPass;
|
|
181
|
+
private requireTemporalTarget;
|
|
141
182
|
private bindFullscreenTexture;
|
|
142
183
|
private disposeBloomPingPongResources;
|
|
184
|
+
/**
|
|
185
|
+
* Diagnostics for the most recent native bloom execution (muse3jsparity-PRD
|
|
186
|
+
* A1). Null when no native bloom pass has run yet on this device.
|
|
187
|
+
*/
|
|
188
|
+
getBloomDiagnostics(): WebGL2BloomDiagnostics | null;
|
|
189
|
+
private recordBloomDiagnostics;
|
|
190
|
+
/**
|
|
191
|
+
* PART U: every live GPU allocation with bytes + lane owner — registry
|
|
192
|
+
* render targets (B1 shadow maps arrive labeled, B4 captures arrive as
|
|
193
|
+
* `-mirror-target`/`-scene-color-target`) plus the raw-handle residents the
|
|
194
|
+
* registry set cannot see: the A1 bloom pyramid (two targets per mip plus
|
|
195
|
+
* two level-0 accumulators), the legacy bloom ping-pong pair, the A1/A3
|
|
196
|
+
* lookup textures, and the motion-blur/taa history textures. The
|
|
197
|
+
* depth-readback scratch pair is intentionally absent: it is allocated and
|
|
198
|
+
* deleted inside one synchronous call, so it is never live at a diagnostics
|
|
199
|
+
* boundary. A5 volumetric light, C4 decals, and the G1 SDF atlas own no GPU
|
|
200
|
+
* target (forward uniforms + CPU kernel, CPU geometry, CPU atlas data), so
|
|
201
|
+
* no entry is emitted for them; a target appearing under their owner would
|
|
202
|
+
* be the signal that the lane grew one.
|
|
203
|
+
*/
|
|
204
|
+
private describeGpuTargetInventory;
|
|
205
|
+
private disposeBloomPyramidResources;
|
|
206
|
+
/**
|
|
207
|
+
* Mip-chain targets for the balanced/cinematic bloom pyramid. Each level is a
|
|
208
|
+
* single texture+framebuffer at the planned size with linear filtering so the
|
|
209
|
+
* downsample and accumulate passes can sample across levels. Half-float backs
|
|
210
|
+
* the chain when the source is HDR or the cinematic preset requests it.
|
|
211
|
+
*/
|
|
212
|
+
private ensureBloomPyramidResources;
|
|
143
213
|
private captureTextureUnit0;
|
|
144
214
|
private restoreTextureUnit0;
|
|
145
215
|
private captureTextureUnitBinding;
|
|
@@ -152,12 +222,15 @@ export declare class WebGL2Device implements RenderDevice {
|
|
|
152
222
|
private ensureBloomBrightExtractProgram;
|
|
153
223
|
private ensureBloomBlurProgram;
|
|
154
224
|
private ensureBloomCompositeProgram;
|
|
225
|
+
private ensureBloomDownsampleProgram;
|
|
226
|
+
private ensureBloomAccumulateProgram;
|
|
155
227
|
private ensureOutlineProgram;
|
|
156
228
|
private ensureSsaoProgram;
|
|
157
229
|
private ensureSsrProgram;
|
|
158
230
|
private ensureDepthOfFieldProgram;
|
|
159
231
|
private ensureMotionBlurProgram;
|
|
160
232
|
private ensureTaaProgram;
|
|
233
|
+
private ensureTaaPresentationProgram;
|
|
161
234
|
private createFullscreenProgram;
|
|
162
235
|
private ensureLdrPostprocessProgram;
|
|
163
236
|
private compileShader;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebGL2Device.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/WebGL2Device.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WebGL2Device.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/WebGL2Device.ts"],"names":[],"mappings":"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"}
|