@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
|
@@ -9,6 +9,7 @@ export interface InstancedPBRMaterialOptions {
|
|
|
9
9
|
readonly roughness?: number;
|
|
10
10
|
readonly environmentColor?: readonly [number, number, number];
|
|
11
11
|
readonly environmentIntensity?: number;
|
|
12
|
+
readonly envMapIntensity?: number;
|
|
12
13
|
readonly proceduralEnvironmentMap?: InstancedPBRProceduralEnvironmentMapOptions;
|
|
13
14
|
readonly environmentMapTexture?: TextureBinding;
|
|
14
15
|
readonly environmentMapIntensity?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstancedPBRMaterial.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/InstancedPBRMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAGxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/D,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,2CAA2C,CAAC;IAChF,QAAQ,CAAC,qBAAqB,CAAC,EAAE,cAAc,CAAC;IAChD,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,+BAA+B,CAAC,EAAE,MAAM,CAAC;IAClD,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,cAAc,CAAC;IACpD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,2CAA2C;IAC1D,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzD,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACxD,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,qBAAa,oBAAqB,SAAQ,QAAQ;gBACpC,OAAO,GAAE,2BAAgC;
|
|
1
|
+
{"version":3,"file":"InstancedPBRMaterial.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/InstancedPBRMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAGxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/D,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,2CAA2C,CAAC;IAChF,QAAQ,CAAC,qBAAqB,CAAC,EAAE,cAAc,CAAC;IAChD,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,+BAA+B,CAAC,EAAE,MAAM,CAAC;IAClD,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,cAAc,CAAC;IACpD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,2CAA2C;IAC1D,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzD,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACxD,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,qBAAa,oBAAqB,SAAQ,QAAQ;gBACpC,OAAO,GAAE,2BAAgC;CA4FtD"}
|
|
@@ -20,6 +20,7 @@ export class InstancedPBRMaterial extends Material {
|
|
|
20
20
|
validateUnit(options.metallic ?? 0, "metallic");
|
|
21
21
|
validateUnit(options.roughness ?? 0.5, "roughness");
|
|
22
22
|
validateNonNegative(options.environmentIntensity ?? DEFAULT_PBR_ENVIRONMENT_INTENSITY, "environmentIntensity");
|
|
23
|
+
validateNonNegative(options.envMapIntensity ?? 1, "envMapIntensity");
|
|
23
24
|
validateNonNegative(options.emissiveStrength ?? 1, "emissiveStrength");
|
|
24
25
|
super({
|
|
25
26
|
name: options.name ?? "instanced-pbr",
|
|
@@ -32,6 +33,7 @@ export class InstancedPBRMaterial extends Material {
|
|
|
32
33
|
u_roughness: options.roughness ?? 0.5,
|
|
33
34
|
u_environmentColor: environmentColor,
|
|
34
35
|
u_environmentIntensity: options.environmentIntensity ?? DEFAULT_PBR_ENVIRONMENT_INTENSITY,
|
|
36
|
+
u_materialEnvironmentIntensity: options.envMapIntensity ?? 1,
|
|
35
37
|
u_environmentSkyColor: proceduralEnvironmentMap.skyColor,
|
|
36
38
|
u_environmentHorizonColor: proceduralEnvironmentMap.horizonColor,
|
|
37
39
|
u_environmentGroundColor: proceduralEnvironmentMap.groundColor,
|
|
@@ -65,6 +67,7 @@ export class InstancedPBRMaterial extends Material {
|
|
|
65
67
|
{ name: "u_roughness", kind: "float" },
|
|
66
68
|
{ name: "u_environmentColor", kind: "vec3" },
|
|
67
69
|
{ name: "u_environmentIntensity", kind: "float" },
|
|
70
|
+
{ name: "u_materialEnvironmentIntensity", kind: "float" },
|
|
68
71
|
{ name: "u_environmentSkyColor", kind: "vec3" },
|
|
69
72
|
{ name: "u_environmentHorizonColor", kind: "vec3" },
|
|
70
73
|
{ name: "u_environmentGroundColor", kind: "vec3" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstancedPBRMaterial.js","sourceRoot":"","sources":["../../../../packages/rendering/src/InstancedPBRMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,iCAAiC,EAAE,sCAAsC,EAAE,MAAM,uBAAuB,CAAC;AAClH,OAAO,EAAE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"InstancedPBRMaterial.js","sourceRoot":"","sources":["../../../../packages/rendering/src/InstancedPBRMaterial.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { type StaticBatchInput, type StaticBatchOptions } from "./SceneOptimization.js";
|
|
2
|
+
/**
|
|
3
|
+
* D1 instancing diagnostics (muse3jsparity-PRD).
|
|
4
|
+
*
|
|
5
|
+
* Kills the silent 4096-draw fallback class: when a batch expands to N
|
|
6
|
+
* draws, the material + reason are logged once per material. Also owns the
|
|
7
|
+
* instancing path matrix (skinned / normal-mapped / emissive) and the
|
|
8
|
+
* BatchedMesh-equivalent consolidator with draw-call + memory telemetry.
|
|
9
|
+
*/
|
|
10
|
+
export type InstancingFallbackReason = "instance-count-exceeds-device-limit" | "per-instance-attribute-missing" | "material-rejects-instancing" | "mixed-material-batch-split" | "skinned-palette-overflow-cpu-fallback";
|
|
11
|
+
export interface InstancingFallbackReport {
|
|
12
|
+
readonly material: string;
|
|
13
|
+
readonly requestedInstances: number;
|
|
14
|
+
readonly drawnBatches: number;
|
|
15
|
+
readonly reason: InstancingFallbackReason;
|
|
16
|
+
readonly warned: boolean;
|
|
17
|
+
readonly diagnostic: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function warnOnInstancingFallback(options: {
|
|
20
|
+
readonly material: string;
|
|
21
|
+
readonly requestedInstances: number;
|
|
22
|
+
readonly drawnBatches: number;
|
|
23
|
+
readonly reason: InstancingFallbackReason;
|
|
24
|
+
readonly onWarning?: (message: string) => void;
|
|
25
|
+
}): InstancingFallbackReport;
|
|
26
|
+
/** Clears the once-per-material warning memory (tests + device reset). */
|
|
27
|
+
export declare function resetInstancingFallbackWarnings(): void;
|
|
28
|
+
export type InstancingPathSupport = "supported" | "unsupported";
|
|
29
|
+
export interface InstancingPathEntry {
|
|
30
|
+
readonly path: "skinned" | "normal-mapped" | "emissive" | "unlit" | "textured-pbr";
|
|
31
|
+
readonly support: InstancingPathSupport;
|
|
32
|
+
readonly notes: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Instancing-aware variant matrix. Skinned instancing is unsupported
|
|
36
|
+
* (per-instance joint palettes have no GPU path — E1 owns rigs); every
|
|
37
|
+
* other game path instances through the shared instance-matrix attributes.
|
|
38
|
+
*/
|
|
39
|
+
export declare function instancingPathMatrix(): readonly InstancingPathEntry[];
|
|
40
|
+
export interface BatchedMeshTelemetry {
|
|
41
|
+
readonly inputMeshes: number;
|
|
42
|
+
readonly outputDraws: number;
|
|
43
|
+
readonly drawsSaved: number;
|
|
44
|
+
readonly indexBytes: number;
|
|
45
|
+
readonly vertexBytes: number;
|
|
46
|
+
/**
|
|
47
|
+
* Instanced-memory view (D1 shootout): bytes for the UNIQUE geometries
|
|
48
|
+
* actually uploaded once, plus the per-instance transform buffer
|
|
49
|
+
* (`admittedInstances × 16 × 4` bytes). `indexBytes`/`vertexBytes` keep
|
|
50
|
+
* the legacy summed-over-inputs meaning (the naive-scene cost); these
|
|
51
|
+
* fields describe what the consolidated scene uploads.
|
|
52
|
+
*/
|
|
53
|
+
readonly sharedIndexBytes: number;
|
|
54
|
+
readonly sharedVertexBytes: number;
|
|
55
|
+
readonly instanceTransformBytes: number;
|
|
56
|
+
readonly consolidatedBytes: number;
|
|
57
|
+
readonly diagnostic: string;
|
|
58
|
+
}
|
|
59
|
+
export interface BatchedMeshResult {
|
|
60
|
+
readonly draws: number;
|
|
61
|
+
readonly telemetry: BatchedMeshTelemetry;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* BatchedMesh-equivalent static-geometry consolidator over
|
|
65
|
+
* `MeshConsolidation.ts` (`batchStaticRenderItems`), with draw-call +
|
|
66
|
+
* memory telemetry for the three.js `BatchedMesh` comparison.
|
|
67
|
+
*/
|
|
68
|
+
export declare function consolidateBatchedMeshes(items: readonly StaticBatchInput[], options?: StaticBatchOptions): BatchedMeshResult;
|
|
69
|
+
//# sourceMappingURL=InstancingDiagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstancingDiagnostics.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/InstancingDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE7G;;;;;;;GAOG;AAEH,MAAM,MAAM,wBAAwB,GAChC,qCAAqC,GACrC,gCAAgC,GAChC,6BAA6B,GAC7B,4BAA4B,GAC5B,uCAAuC,CAAC;AAE5C,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAID,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD,GAAG,wBAAwB,CAyB3B;AAMD,0EAA0E;AAC1E,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD;AAED,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,aAAa,CAAC;AAEhE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,eAAe,GAAG,UAAU,GAAG,OAAO,GAAG,cAAc,CAAC;IACnF,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,SAAS,mBAAmB,EAAE,CAYrE;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;CAC1C;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,SAAS,gBAAgB,EAAE,EAClC,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CAsCnB"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { batchStaticRenderItems } from "./SceneOptimization.js";
|
|
2
|
+
const warnedMaterials = new Set();
|
|
3
|
+
export function warnOnInstancingFallback(options) {
|
|
4
|
+
if (!options.material.trim())
|
|
5
|
+
throw new Error("Instancing fallback material name is required.");
|
|
6
|
+
if (!Number.isInteger(options.requestedInstances) || options.requestedInstances <= 0) {
|
|
7
|
+
throw new RangeError("Instancing fallback requestedInstances must be a positive integer.");
|
|
8
|
+
}
|
|
9
|
+
if (!Number.isInteger(options.drawnBatches) || options.drawnBatches <= 0) {
|
|
10
|
+
throw new RangeError("Instancing fallback drawnBatches must be a positive integer.");
|
|
11
|
+
}
|
|
12
|
+
const key = `${options.material}::${options.reason}`;
|
|
13
|
+
const warned = warnedMaterials.has(key);
|
|
14
|
+
const diagnostic = `Instancing fallback for material "${options.material}": ` +
|
|
15
|
+
`${options.requestedInstances} instances expanded to ${options.drawnBatches} draws (${options.reason}).`;
|
|
16
|
+
if (!warned) {
|
|
17
|
+
warnedMaterials.add(key);
|
|
18
|
+
(options.onWarning ?? defaultWarn)(diagnostic);
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
material: options.material,
|
|
22
|
+
requestedInstances: options.requestedInstances,
|
|
23
|
+
drawnBatches: options.drawnBatches,
|
|
24
|
+
reason: options.reason,
|
|
25
|
+
warned: !warned,
|
|
26
|
+
diagnostic,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function defaultWarn(message) {
|
|
30
|
+
if (typeof console !== "undefined" && typeof console.warn === "function")
|
|
31
|
+
console.warn(message);
|
|
32
|
+
}
|
|
33
|
+
/** Clears the once-per-material warning memory (tests + device reset). */
|
|
34
|
+
export function resetInstancingFallbackWarnings() {
|
|
35
|
+
warnedMaterials.clear();
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Instancing-aware variant matrix. Skinned instancing is unsupported
|
|
39
|
+
* (per-instance joint palettes have no GPU path — E1 owns rigs); every
|
|
40
|
+
* other game path instances through the shared instance-matrix attributes.
|
|
41
|
+
*/
|
|
42
|
+
export function instancingPathMatrix() {
|
|
43
|
+
return [
|
|
44
|
+
{ path: "unlit", support: "supported", notes: "Instance-matrix attributes on the unlit program." },
|
|
45
|
+
{ path: "textured-pbr", support: "supported", notes: "Per-instance matrix + color on the textured PBR program." },
|
|
46
|
+
{ path: "normal-mapped", support: "supported", notes: "Normal path re-orthogonalizes against the instance rotation." },
|
|
47
|
+
{ path: "emissive", support: "supported", notes: "Emissive term is per-material; instances share it." },
|
|
48
|
+
{
|
|
49
|
+
path: "skinned",
|
|
50
|
+
support: "unsupported",
|
|
51
|
+
notes: "Skinned instancing has no GPU path: joint palettes are per-mesh. Split skinned crowds into individual draws (E1).",
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* BatchedMesh-equivalent static-geometry consolidator over
|
|
57
|
+
* `MeshConsolidation.ts` (`batchStaticRenderItems`), with draw-call +
|
|
58
|
+
* memory telemetry for the three.js `BatchedMesh` comparison.
|
|
59
|
+
*/
|
|
60
|
+
export function consolidateBatchedMeshes(items, options = {}) {
|
|
61
|
+
const result = batchStaticRenderItems(items, options);
|
|
62
|
+
const inputMeshes = items.length;
|
|
63
|
+
const draws = result.submittedItems;
|
|
64
|
+
let indexBytes = 0;
|
|
65
|
+
let vertexBytes = 0;
|
|
66
|
+
const seenGeometries = new Set();
|
|
67
|
+
let sharedIndexBytes = 0;
|
|
68
|
+
let sharedVertexBytes = 0;
|
|
69
|
+
for (const item of items) {
|
|
70
|
+
indexBytes += (item.geometry.indexBuffer?.count ?? 0) * 4;
|
|
71
|
+
vertexBytes += item.geometry.vertexBuffer.vertexCount * item.geometry.vertexBuffer.format.stride;
|
|
72
|
+
if (!seenGeometries.has(item.geometry)) {
|
|
73
|
+
seenGeometries.add(item.geometry);
|
|
74
|
+
sharedIndexBytes += (item.geometry.indexBuffer?.count ?? 0) * 4;
|
|
75
|
+
sharedVertexBytes += item.geometry.vertexBuffer.vertexCount * item.geometry.vertexBuffer.format.stride;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
const instanceTransformBytes = inputMeshes * 16 * 4;
|
|
79
|
+
const consolidatedBytes = sharedIndexBytes + sharedVertexBytes + instanceTransformBytes;
|
|
80
|
+
return {
|
|
81
|
+
draws,
|
|
82
|
+
telemetry: {
|
|
83
|
+
inputMeshes,
|
|
84
|
+
outputDraws: draws,
|
|
85
|
+
drawsSaved: result.drawCallReduction,
|
|
86
|
+
indexBytes,
|
|
87
|
+
vertexBytes,
|
|
88
|
+
sharedIndexBytes,
|
|
89
|
+
sharedVertexBytes,
|
|
90
|
+
instanceTransformBytes,
|
|
91
|
+
consolidatedBytes,
|
|
92
|
+
diagnostic: `Batched ${inputMeshes} static meshes into ${draws} draws ` +
|
|
93
|
+
`(saved ${result.drawCallReduction}); ~${indexBytes} index bytes + ~${vertexBytes} vertex bytes naive, ` +
|
|
94
|
+
`~${consolidatedBytes} bytes consolidated (shared ${sharedIndexBytes + sharedVertexBytes} + ${instanceTransformBytes} instance transforms).`,
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=InstancingDiagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstancingDiagnostics.js","sourceRoot":"","sources":["../../../../packages/rendering/src/InstancingDiagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,265 @@
|
|
|
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";
|
|
3
|
+
export interface LeanWebGL2DeviceOptions {
|
|
4
|
+
readonly canvas: HTMLCanvasElement | OffscreenCanvas;
|
|
5
|
+
readonly antialias?: boolean;
|
|
6
|
+
readonly alpha?: boolean;
|
|
7
|
+
readonly preserveDrawingBuffer?: boolean;
|
|
8
|
+
readonly errorCheckMode?: LeanWebGL2ErrorCheckMode;
|
|
9
|
+
}
|
|
10
|
+
export type LeanWebGL2ErrorCheckMode = "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
|
+
}
|
|
23
|
+
export declare class LeanWebGL2Device implements RenderDevice {
|
|
24
|
+
private readonly errorCheckMode;
|
|
25
|
+
readonly kind = "webgl2";
|
|
26
|
+
readonly info: RenderDeviceInfo;
|
|
27
|
+
disposed: boolean;
|
|
28
|
+
contextLost: boolean;
|
|
29
|
+
private readonly gl;
|
|
30
|
+
private nextId;
|
|
31
|
+
private drawCalls;
|
|
32
|
+
private buffers;
|
|
33
|
+
private shaders;
|
|
34
|
+
private renderTargets;
|
|
35
|
+
private activeRenderTarget;
|
|
36
|
+
private textures;
|
|
37
|
+
private textureUploadModes;
|
|
38
|
+
private fallbackTexture;
|
|
39
|
+
private fallbackCubeTexture;
|
|
40
|
+
private readonly samplerObjectCache;
|
|
41
|
+
private presentationProgram;
|
|
42
|
+
private ldrPostprocessProgram;
|
|
43
|
+
private bloomBrightExtractProgram;
|
|
44
|
+
private bloomBlurProgram;
|
|
45
|
+
private bloomCompositeProgram;
|
|
46
|
+
private bloomDownsampleProgram;
|
|
47
|
+
private bloomAccumulateProgram;
|
|
48
|
+
private bloomPyramidResources;
|
|
49
|
+
private outlineProgram;
|
|
50
|
+
private ssaoProgram;
|
|
51
|
+
private ssrProgram;
|
|
52
|
+
private depthOfFieldProgram;
|
|
53
|
+
private motionBlurProgram;
|
|
54
|
+
private motionBlurVelocityTexture;
|
|
55
|
+
private motionBlurVelocitySize;
|
|
56
|
+
private taaProgram;
|
|
57
|
+
private taaHistoryTexture;
|
|
58
|
+
private taaHistorySize;
|
|
59
|
+
private bloomPingPongResources;
|
|
60
|
+
private bloomBrightLutTexture;
|
|
61
|
+
private bloomBrightLutThreshold;
|
|
62
|
+
private bloomCompositeLutTexture;
|
|
63
|
+
private bloomCompositeLutIntensity;
|
|
64
|
+
private bloomCompositeLutShoulder;
|
|
65
|
+
private lastBloomDiagnostics;
|
|
66
|
+
private outlineBlendLutTexture;
|
|
67
|
+
private outlineBlendLutKey;
|
|
68
|
+
private depthReadbackProgram;
|
|
69
|
+
private readonly uniformLocationCache;
|
|
70
|
+
private readonly textureSamplerParameterCache;
|
|
71
|
+
private readonly stateCache;
|
|
72
|
+
private readonly textureUnitBindings;
|
|
73
|
+
private readonly vertexArrayCache;
|
|
74
|
+
private readonly vertexFormatIds;
|
|
75
|
+
private presentationVertexArray;
|
|
76
|
+
private activeTextureUnitIndex;
|
|
77
|
+
private shaderProgramCreateCount;
|
|
78
|
+
private uniformLocationLookupCount;
|
|
79
|
+
private bufferUpdateCount;
|
|
80
|
+
private textureBindCount;
|
|
81
|
+
private samplerParameterUploadCount;
|
|
82
|
+
private samplerAnisotropyUploadCount;
|
|
83
|
+
private vertexArrayCreateCount;
|
|
84
|
+
private nativeInstancedSubmissions;
|
|
85
|
+
private nextVertexFormatId;
|
|
86
|
+
private releasedTextureHandles;
|
|
87
|
+
private nativeEnvironmentBindings;
|
|
88
|
+
private nativeShadowMapBindings;
|
|
89
|
+
private shadowRenderTargetsAllocated;
|
|
90
|
+
private lastError;
|
|
91
|
+
private frameActive;
|
|
92
|
+
private viewportWidth;
|
|
93
|
+
private viewportHeight;
|
|
94
|
+
private readonly maxVertexAttributes;
|
|
95
|
+
private readonly anisotropicFilteringExtension;
|
|
96
|
+
private readonly maxTextureAnisotropy;
|
|
97
|
+
/**
|
|
98
|
+
* WS-2.6 — subscribers for context loss and restoration.
|
|
99
|
+
*
|
|
100
|
+
* The device has tracked `contextLost` since before 1.6 and acted on it internally, but nothing
|
|
101
|
+
* could *observe* it: there was no callback, so a consumer could only poll `diagnostics()`. That is
|
|
102
|
+
* why the parity table listed context-loss recovery as a gap while the listeners existed — the
|
|
103
|
+
* device layer was never the gap, the absence of a public signal was.
|
|
104
|
+
*/
|
|
105
|
+
private readonly deviceLostListeners;
|
|
106
|
+
private readonly deviceRestoredListeners;
|
|
107
|
+
private readonly contextLostListener?;
|
|
108
|
+
private readonly contextRestoredListener?;
|
|
109
|
+
private readonly canvas?;
|
|
110
|
+
static create(options: LeanWebGL2DeviceOptions): LeanWebGL2Device;
|
|
111
|
+
private constructor();
|
|
112
|
+
/**
|
|
113
|
+
* Subscribe to WebGL context loss. Returns an unsubscribe function.
|
|
114
|
+
*
|
|
115
|
+
* A lost context is not an error a caller can prevent — the browser reclaims GPU resources under
|
|
116
|
+
* memory pressure, on driver reset, or when a tab is backgrounded too long. What a caller can do is
|
|
117
|
+
* be told, so it can recreate resources rather than render nothing.
|
|
118
|
+
*/
|
|
119
|
+
onDeviceLost(listener: () => void): () => void;
|
|
120
|
+
/** Subscribe to context restoration. Returns an unsubscribe function. */
|
|
121
|
+
onDeviceRestored(listener: () => void): () => void;
|
|
122
|
+
/** True while the WebGL context is lost. Polling alternative to {@link onDeviceLost}. */
|
|
123
|
+
isDeviceLost(): boolean;
|
|
124
|
+
createBuffer(usage: BufferUsage, byteLength: number, initialData?: ArrayBufferView): RenderBuffer;
|
|
125
|
+
updateBuffer(buffer: RenderBuffer, byteOffset: number, data: ArrayBufferView): void;
|
|
126
|
+
readBuffer(buffer: RenderBuffer, byteOffset?: number, byteLength?: number): Uint8Array;
|
|
127
|
+
createShaderProgram(sources: ShaderSources): RenderShaderProgram;
|
|
128
|
+
createRenderTarget(descriptor: RenderTargetDescriptor): RenderTarget;
|
|
129
|
+
setRenderTarget(target: RenderTarget | null): void;
|
|
130
|
+
private resolveMultisampleTarget;
|
|
131
|
+
writeRenderTargetPixels(target: RenderTarget, pixels: Uint8Array): void;
|
|
132
|
+
presentRenderTarget(source: RenderTarget): void;
|
|
133
|
+
presentLdrPostprocess(source: RenderTarget, options: LdrPostprocessPresentationOptions): void;
|
|
134
|
+
readPixels(x: number, y: number, width: number, height: number): Uint8Array;
|
|
135
|
+
readFloatPixels(x: number, y: number, width: number, height: number): Float32Array;
|
|
136
|
+
readDepthPixels(x: number, y: number, width: number, height: number): Float32Array;
|
|
137
|
+
beginFrame(width: number, height: number): void;
|
|
138
|
+
clear(color: readonly [number, number, number, number]): void;
|
|
139
|
+
clearRenderTarget(color: readonly [number, number, number, number]): void;
|
|
140
|
+
draw(command: DrawCommand): void;
|
|
141
|
+
endFrame(): void;
|
|
142
|
+
captureState(): ReadonlyMap<string, string | number | boolean | null>;
|
|
143
|
+
getDiagnostics(): RenderDeviceDiagnostics;
|
|
144
|
+
dispose(): void;
|
|
145
|
+
private copyDepthTextureToBytes;
|
|
146
|
+
private drawRenderTargetToBackbuffer;
|
|
147
|
+
private ensureBloomPingPongResources;
|
|
148
|
+
private ensureBloomLutTextures;
|
|
149
|
+
private createNativeBloomDataTexture;
|
|
150
|
+
private ensureOutlineBlendLutTexture;
|
|
151
|
+
private ensureMotionBlurVelocityTexture;
|
|
152
|
+
private ensureTaaHistoryTexture;
|
|
153
|
+
private drawNativeLdrStage;
|
|
154
|
+
private executeNativeBloomPasses;
|
|
155
|
+
/**
|
|
156
|
+
* Balanced/cinematic bloom: bright-extract once, then a half-resolution mip
|
|
157
|
+
* chain where every level is downsampled, separably blurred, and accumulated
|
|
158
|
+
* with its energy-preserving weight. Returns a full-resolution bloom texture
|
|
159
|
+
* holding the weighted sum, ready for the existing composite program.
|
|
160
|
+
*/
|
|
161
|
+
private executeNativeBloomPyramidPasses;
|
|
162
|
+
private executeNativeOutlinePasses;
|
|
163
|
+
private executeNativeSsaoPass;
|
|
164
|
+
private executeNativeSsrPass;
|
|
165
|
+
private executeNativeDepthOfFieldPass;
|
|
166
|
+
private executeNativeMotionBlurPass;
|
|
167
|
+
private executeNativeTaaPass;
|
|
168
|
+
private bindFullscreenTexture;
|
|
169
|
+
private disposeBloomPingPongResources;
|
|
170
|
+
/**
|
|
171
|
+
* Diagnostics for the most recent native bloom execution (muse3jsparity-PRD
|
|
172
|
+
* A1). Null when no native bloom pass has run yet on this device.
|
|
173
|
+
*/
|
|
174
|
+
getBloomDiagnostics(): WebGL2BloomDiagnostics | null;
|
|
175
|
+
private recordBloomDiagnostics;
|
|
176
|
+
/**
|
|
177
|
+
* PART U: every live GPU allocation with bytes + lane owner — registry
|
|
178
|
+
* render targets (B1 shadow maps arrive labeled, B4 captures arrive as
|
|
179
|
+
* `-mirror-target`/`-scene-color-target`) plus the raw-handle residents the
|
|
180
|
+
* registry set cannot see: the A1 bloom pyramid (two targets per mip plus
|
|
181
|
+
* two level-0 accumulators), the legacy bloom ping-pong pair, the A1/A3
|
|
182
|
+
* lookup textures, and the motion-blur/taa history textures. The
|
|
183
|
+
* depth-readback scratch pair is intentionally absent: it is allocated and
|
|
184
|
+
* deleted inside one synchronous call, so it is never live at a diagnostics
|
|
185
|
+
* boundary. A5 volumetric light, C4 decals, and the G1 SDF atlas own no GPU
|
|
186
|
+
* target (forward uniforms + CPU kernel, CPU geometry, CPU atlas data), so
|
|
187
|
+
* no entry is emitted for them; a target appearing under their owner would
|
|
188
|
+
* be the signal that the lane grew one.
|
|
189
|
+
*/
|
|
190
|
+
private describeGpuTargetInventory;
|
|
191
|
+
private disposeBloomPyramidResources;
|
|
192
|
+
/**
|
|
193
|
+
* Mip-chain targets for the balanced/cinematic bloom pyramid. Each level is a
|
|
194
|
+
* single texture+framebuffer at the planned size with linear filtering so the
|
|
195
|
+
* downsample and accumulate passes can sample across levels. Half-float backs
|
|
196
|
+
* the chain when the source is HDR or the cinematic preset requests it.
|
|
197
|
+
*/
|
|
198
|
+
private ensureBloomPyramidResources;
|
|
199
|
+
private captureTextureUnit0;
|
|
200
|
+
private restoreTextureUnit0;
|
|
201
|
+
private captureTextureUnitBinding;
|
|
202
|
+
private restoreTextureUnitBinding;
|
|
203
|
+
private prepareFullscreenPresentation;
|
|
204
|
+
private restoreFullscreenPresentationState;
|
|
205
|
+
private ensurePresentationVertexArray;
|
|
206
|
+
private ensureDepthReadbackProgram;
|
|
207
|
+
private ensurePresentationProgram;
|
|
208
|
+
private ensureBloomBrightExtractProgram;
|
|
209
|
+
private ensureBloomBlurProgram;
|
|
210
|
+
private ensureBloomCompositeProgram;
|
|
211
|
+
private ensureBloomDownsampleProgram;
|
|
212
|
+
private ensureBloomAccumulateProgram;
|
|
213
|
+
private ensureOutlineProgram;
|
|
214
|
+
private ensureSsaoProgram;
|
|
215
|
+
private ensureSsrProgram;
|
|
216
|
+
private ensureDepthOfFieldProgram;
|
|
217
|
+
private ensureMotionBlurProgram;
|
|
218
|
+
private ensureTaaProgram;
|
|
219
|
+
private createFullscreenProgram;
|
|
220
|
+
private ensureLdrPostprocessProgram;
|
|
221
|
+
private compileShader;
|
|
222
|
+
private reflectProgram;
|
|
223
|
+
private uploadUniforms;
|
|
224
|
+
private getUniformLocation;
|
|
225
|
+
private uploadTextureUniform;
|
|
226
|
+
private activateTextureUnit;
|
|
227
|
+
private bindTextureForUnit;
|
|
228
|
+
private setTextureParameterIfNeeded;
|
|
229
|
+
private applySamplerAnisotropy;
|
|
230
|
+
private getSamplerHandle;
|
|
231
|
+
private samplerKey;
|
|
232
|
+
private getFallbackTextureHandle;
|
|
233
|
+
private getFallbackCubeTextureHandle;
|
|
234
|
+
private getTextureHandle;
|
|
235
|
+
private uploadCubeTexture;
|
|
236
|
+
private uploadRgba8FallbackTexture;
|
|
237
|
+
private cubeFaceTarget;
|
|
238
|
+
private rgba8TextureInternalFormat;
|
|
239
|
+
private textureUploadFormat;
|
|
240
|
+
private resolveRenderTargetFormat;
|
|
241
|
+
private releaseDisposedTextureHandles;
|
|
242
|
+
private resolveCompressedTextureFormat;
|
|
243
|
+
private magFilter;
|
|
244
|
+
private minFilter;
|
|
245
|
+
private addressMode;
|
|
246
|
+
private bindVertexFormat;
|
|
247
|
+
private bindVertexArrayForCommand;
|
|
248
|
+
private bindNoVertexArray;
|
|
249
|
+
private vertexArrayCacheKey;
|
|
250
|
+
private vertexFormatId;
|
|
251
|
+
private bindInstanceAttributes;
|
|
252
|
+
private resolveAttributeLocation;
|
|
253
|
+
private applyDefaultAttributes;
|
|
254
|
+
private disableUnboundVertexAttributes;
|
|
255
|
+
private primitive;
|
|
256
|
+
private applyRenderState;
|
|
257
|
+
private requireBuffer;
|
|
258
|
+
private stencilCompare;
|
|
259
|
+
private stencilOperation;
|
|
260
|
+
private requireShader;
|
|
261
|
+
private assertAlive;
|
|
262
|
+
private assertFrame;
|
|
263
|
+
private readError;
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=LeanWebGL2Device.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LeanWebGL2Device.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/LeanWebGL2Device.ts"],"names":[],"mappings":"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"}
|