@woosh/meep-engine 3.47.0 → 3.49.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/bundle-worker-terrain.js +1 -1
- package/editor/particles/effect/ParticleReferenceSimulation.d.ts +1 -2
- package/editor/particles/effect/ParticleReferenceSimulation.d.ts.map +1 -1
- package/editor/particles/effect/ParticleReferenceSimulation.js +2 -4
- package/editor/view/particles/effect/ParticleGraphEditorView.js +1 -1
- package/package.json +1 -1
- package/src/engine/ecs/async/WORKER_SYSTEM_PLAN.md +27 -11
- package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts.map +1 -1
- package/src/engine/ecs/storage/populateEngineSerializationRegistry.js +11 -0
- package/src/engine/graphics/ecs/particles/ParticleEffect.d.ts +2 -2
- package/src/engine/graphics/ecs/particles/ParticleEffect.d.ts.map +1 -1
- package/src/engine/graphics/ecs/particles/ParticleEffect.js +7 -7
- package/src/engine/graphics/ecs/particles/ParticleEffectSerializationAdapter.d.ts +8 -0
- package/src/engine/graphics/ecs/particles/ParticleEffectSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/ecs/particles/ParticleEffectSerializationAdapter.js +11 -3
- package/src/engine/graphics/ecs/particles/ParticleEffectSerializationUpgrader_1_2.d.ts +26 -0
- package/src/engine/graphics/ecs/particles/ParticleEffectSerializationUpgrader_1_2.d.ts.map +1 -0
- package/src/engine/graphics/ecs/particles/ParticleEffectSerializationUpgrader_1_2.js +91 -0
- package/src/engine/graphics3/GPUParticleEmitterSystem.js +2 -2
- package/src/engine/graphics3/GraphicsEngine.d.ts.map +1 -1
- package/src/engine/graphics3/GraphicsEngine.js +8 -1
- package/src/engine/graphics3/ParticipatingMedia.d.ts +84 -1
- package/src/engine/graphics3/ParticipatingMedia.d.ts.map +1 -1
- package/src/engine/graphics3/ParticipatingMedia.js +139 -5
- package/src/engine/graphics3/ParticipatingMediaSerializationAdapter.d.ts +6 -2
- package/src/engine/graphics3/ParticipatingMediaSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics3/ParticipatingMediaSerializationAdapter.js +29 -4
- package/src/engine/graphics3/ParticipatingMediaSerializationUpgrader_0_1.d.ts +10 -0
- package/src/engine/graphics3/ParticipatingMediaSerializationUpgrader_0_1.d.ts.map +1 -0
- package/src/engine/graphics3/ParticipatingMediaSerializationUpgrader_0_1.js +38 -0
- package/src/engine/graphics3/ParticipatingMediaSystem.d.ts.map +1 -1
- package/src/engine/graphics3/ParticipatingMediaSystem.js +46 -3
- package/src/engine/network/NetworkSession.d.ts +16 -5
- package/src/engine/network/NetworkSession.d.ts.map +1 -1
- package/src/engine/network/NetworkSession.js +104 -7
- package/src/engine/network/README.md +27 -1
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts +40 -18
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts.map +1 -1
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.js +180 -190
- package/src/engine/network/replication/Replicator.d.ts +15 -4
- package/src/engine/network/replication/Replicator.d.ts.map +1 -1
- package/src/engine/network/replication/Replicator.js +50 -16
- package/src/engine/network/state/RecordArrivalRing.d.ts +57 -0
- package/src/engine/network/state/RecordArrivalRing.d.ts.map +1 -0
- package/src/engine/network/state/RecordArrivalRing.js +144 -0
- package/src/engine/physics/cloth/MEASUREMENTS.md +354 -0
- package/src/engine/physics/cloth/PLAN.md +85 -5
- package/src/engine/physics/cloth/ecs/ClothInstance.d.ts +0 -12
- package/src/engine/physics/cloth/ecs/ClothInstance.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothInstance.js +0 -13
- package/src/engine/physics/cloth/ecs/ClothSystem.d.ts +2 -1
- package/src/engine/physics/cloth/ecs/ClothSystem.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothSystem.js +7 -1
- package/src/engine/physics/cloth/ecs/ClothWorld.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothWorld.js +4 -15
- package/src/engine/physics/cloth/ecs/WorkerClothSystem.d.ts +2 -1
- package/src/engine/physics/cloth/ecs/WorkerClothSystem.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/WorkerClothSystem.js +6 -1
- package/src/engine/physics/cloth/ecs/cloth_build_rows.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_build_rows.js +20 -10
- package/src/engine/physics/cloth/playground/collide.html +5 -3
- package/src/engine/physics/cloth/playground/collide_main.js +14 -13
- package/src/engine/physics/cloth/solver/ClothState.d.ts +30 -2
- package/src/engine/physics/cloth/solver/ClothState.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/ClothState.js +62 -4
- package/src/engine/physics/cloth/solver/cloth_self_find.d.ts +11 -3
- package/src/engine/physics/cloth/solver/cloth_self_find.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/cloth_self_find.js +52 -11
- package/src/engine/physics/cloth/solver/cloth_self_radius.d.ts +42 -0
- package/src/engine/physics/cloth/solver/cloth_self_radius.d.ts.map +1 -0
- package/src/engine/physics/cloth/solver/cloth_self_radius.js +64 -0
- package/src/engine/physics/cloth/solver/cloth_solver_constants.d.ts +99 -24
- package/src/engine/physics/cloth/solver/cloth_solver_constants.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/cloth_solver_constants.js +102 -25
- package/src/engine/physics/cloth/solver/cloth_step.d.ts +5 -1
- package/src/engine/physics/cloth/solver/cloth_step.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/cloth_step.js +13 -3
- package/src/engine/physics/cloth/solver/cloth_step_instance.d.ts +0 -1
- package/src/engine/physics/cloth/solver/cloth_step_instance.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/cloth_step_instance.js +12 -14
- package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.d.ts +23 -4
- package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.js +36 -8
- package/src/engine/physics/cloth/solver/constraint/cloth_self_row.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/constraint/cloth_self_row.js +4 -2
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
- package/src/shade/device/mock/SoftwareGPUDevice.d.ts +15 -0
- package/src/shade/device/mock/SoftwareGPUDevice.d.ts.map +1 -1
- package/src/shade/device/mock/SoftwareGPUDevice.js +21 -0
- package/src/shade/device/pipeline/ComputePipelineManager.d.ts +20 -0
- package/src/shade/device/pipeline/ComputePipelineManager.d.ts.map +1 -1
- package/src/shade/device/pipeline/ComputePipelineManager.js +80 -6
- package/src/shade/device/pipeline/PipelineEnquiry.d.ts +52 -0
- package/src/shade/device/pipeline/PipelineEnquiry.d.ts.map +1 -0
- package/src/shade/device/pipeline/PipelineEnquiry.js +63 -0
- package/src/shade/device/pipeline/RenderPipelineManager.d.ts +21 -0
- package/src/shade/device/pipeline/RenderPipelineManager.d.ts.map +1 -1
- package/src/shade/device/pipeline/RenderPipelineManager.js +84 -4
- package/src/shade/playground/contact_shadows/ContactShadowLab.d.ts +137 -0
- package/src/shade/playground/contact_shadows/ContactShadowLab.d.ts.map +1 -0
- package/src/shade/playground/contact_shadows/ContactShadowLab.js +654 -0
- package/src/shade/playground/contact_shadows/README.md +126 -0
- package/src/shade/playground/contact_shadows/index.html +191 -0
- package/src/shade/playground/contact_shadows/main.d.ts +2 -0
- package/src/shade/playground/contact_shadows/main.d.ts.map +1 -0
- package/src/shade/playground/contact_shadows/main.js +888 -0
- package/src/shade/playground/contact_shadows/scenes.d.ts +48 -0
- package/src/shade/playground/contact_shadows/scenes.d.ts.map +1 -0
- package/src/shade/playground/contact_shadows/scenes.js +620 -0
- package/src/shade/playground/contact_shadows/shader_contact_lab_composite.d.ts +36 -0
- package/src/shade/playground/contact_shadows/shader_contact_lab_composite.d.ts.map +1 -0
- package/src/shade/playground/contact_shadows/shader_contact_lab_composite.js +245 -0
- package/src/shade/playground/contact_shadows/shader_contact_lab_reference.d.ts +15 -0
- package/src/shade/playground/contact_shadows/shader_contact_lab_reference.d.ts.map +1 -0
- package/src/shade/playground/contact_shadows/shader_contact_lab_reference.js +120 -0
- package/src/shade/playground/contact_shadows/shader_contact_lab_stats.d.ts +55 -0
- package/src/shade/playground/contact_shadows/shader_contact_lab_stats.d.ts.map +1 -0
- package/src/shade/playground/contact_shadows/shader_contact_lab_stats.js +216 -0
- package/src/shade/playground/contact_shadows/shader_contact_lab_view.d.ts +20 -0
- package/src/shade/playground/contact_shadows/shader_contact_lab_view.d.ts.map +1 -0
- package/src/shade/playground/contact_shadows/shader_contact_lab_view.js +114 -0
- package/src/shade/playground/contact_shadows/shader_contact_shadow_march.d.ts +11 -0
- package/src/shade/playground/contact_shadows/shader_contact_shadow_march.d.ts.map +1 -0
- package/src/shade/playground/contact_shadows/shader_contact_shadow_march.js +90 -0
- package/src/shade/playground/contact_shadows/textures.d.ts +16 -0
- package/src/shade/playground/contact_shadows/textures.d.ts.map +1 -0
- package/src/shade/playground/contact_shadows/textures.js +123 -0
- package/src/shade/playground/particle_ecs/README.md +1 -1
- package/src/shade/playground/particle_ecs/effects/flame.json +1932 -1881
- package/src/shade/playground/particle_ecs/effects/smoke.json +99 -1
- package/src/shade/playground/particle_ecs/effects/soot.json +152 -145
- package/src/shade/playground/tonemap_sdr/README.md +90 -0
- package/src/shade/playground/tonemap_sdr/ToneMapCompare.d.ts +105 -0
- package/src/shade/playground/tonemap_sdr/ToneMapCompare.d.ts.map +1 -0
- package/src/shade/playground/tonemap_sdr/ToneMapCompare.js +380 -0
- package/src/shade/playground/tonemap_sdr/chunk_tonemap_gt7_sdr_reference.d.ts +32 -0
- package/src/shade/playground/tonemap_sdr/chunk_tonemap_gt7_sdr_reference.d.ts.map +1 -0
- package/src/shade/playground/tonemap_sdr/chunk_tonemap_gt7_sdr_reference.js +104 -0
- package/src/shade/playground/tonemap_sdr/index.html +90 -0
- package/src/shade/playground/tonemap_sdr/main.d.ts +2 -0
- package/src/shade/playground/tonemap_sdr/main.d.ts.map +1 -0
- package/src/shade/playground/tonemap_sdr/main.js +306 -0
- package/src/shade/playground/tonemap_sdr/scenes.d.ts +26 -0
- package/src/shade/playground/tonemap_sdr/scenes.d.ts.map +1 -0
- package/src/shade/playground/tonemap_sdr/scenes.js +404 -0
- package/src/shade/playground/volumetrics_froxel/main.d.ts.map +1 -1
- package/src/shade/playground/volumetrics_froxel/main.js +85 -4
- package/src/shade/playground/water_refraction/README.md +26 -18
- package/src/shade/playground/water_refraction/index.html +1 -1
- package/src/shade/renderer/Renderer.d.ts +35 -3
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +208 -12
- package/src/shade/renderer/ShadeToneMappingMode.d.ts +14 -0
- package/src/shade/renderer/ShadeToneMappingMode.d.ts.map +1 -0
- package/src/shade/renderer/ShadeToneMappingMode.js +30 -0
- package/src/shade/renderer/animation/GPUAnimationManager.d.ts +9 -0
- package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
- package/src/shade/renderer/animation/GPUAnimationManager.js +14 -0
- package/src/shade/renderer/animation/skinning/shader_meshlet_apply_skinning.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/shader_meshlet_apply_skinning.js +5 -3
- package/src/shade/renderer/buffer/table/GPUDatabase.d.ts +7 -0
- package/src/shade/renderer/buffer/table/GPUDatabase.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/GPUDatabase.js +12 -0
- package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.d.ts +8 -0
- package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.js +12 -0
- package/src/shade/renderer/camera/GPUCameraContext.d.ts.map +1 -1
- package/src/shade/renderer/camera/GPUCameraContext.js +19 -8
- package/src/shade/renderer/deferred/chunk_read_gBuffer_material.d.ts.map +1 -1
- package/src/shade/renderer/deferred/chunk_read_gBuffer_material.js +4 -0
- package/src/shade/renderer/deferred/chunk_shade_standard_material_direct.d.ts.map +1 -1
- package/src/shade/renderer/deferred/chunk_shade_standard_material_direct.js +4 -0
- package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_restir.d.ts.map +1 -1
- package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_restir.js +4 -0
- package/src/shade/renderer/deferred/shader_deferred_main.d.ts.map +1 -1
- package/src/shade/renderer/deferred/shader_deferred_main.js +3 -0
- package/src/shade/renderer/deferred/shader_tonemap_HDR.d.ts +6 -0
- package/src/shade/renderer/deferred/shader_tonemap_HDR.d.ts.map +1 -1
- package/src/shade/renderer/deferred/shader_tonemap_HDR.js +13 -3
- package/src/shade/renderer/deferred/shader_tonemap_HDR_none.d.ts +9 -0
- package/src/shade/renderer/deferred/shader_tonemap_HDR_none.d.ts.map +1 -0
- package/src/shade/renderer/deferred/shader_tonemap_HDR_none.js +63 -0
- package/src/shade/renderer/deferred/shader_tonemap_HDR_pbr_neutral.d.ts +10 -0
- package/src/shade/renderer/deferred/shader_tonemap_HDR_pbr_neutral.d.ts.map +1 -0
- package/src/shade/renderer/deferred/shader_tonemap_HDR_pbr_neutral.js +87 -0
- package/src/shade/renderer/deferred/shader_tonemap_LDR.d.ts +6 -0
- package/src/shade/renderer/deferred/shader_tonemap_LDR.d.ts.map +1 -1
- package/src/shade/renderer/deferred/shader_tonemap_LDR.js +23 -5
- package/src/shade/renderer/deferred/shader_tonemap_LDR_none.d.ts +9 -0
- package/src/shade/renderer/deferred/shader_tonemap_LDR_none.d.ts.map +1 -0
- package/src/shade/renderer/deferred/shader_tonemap_LDR_none.js +68 -0
- package/src/shade/renderer/deferred/shader_tonemap_LDR_pbr_neutral.d.ts +10 -0
- package/src/shade/renderer/deferred/shader_tonemap_LDR_pbr_neutral.d.ts.map +1 -0
- package/src/shade/renderer/deferred/shader_tonemap_LDR_pbr_neutral.js +73 -0
- package/src/shade/renderer/geometry/meshlet/MeshletBatch.d.ts.map +1 -1
- package/src/shade/renderer/geometry/meshlet/MeshletBatch.js +58 -9
- package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.d.ts +35 -25
- package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.js +97 -196
- package/src/shade/renderer/geometry/sdf/shader_build_sdf.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/shader_build_sdf.js +121 -129
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/brick4_bake_basic.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/brick4_bake_basic.js +3 -0
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/shader_brick4_bake_probes.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/shader_brick4_bake_probes.js +4 -0
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_indirect_lighting.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_indirect_lighting.js +4 -0
- package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.js +3 -0
- package/src/shade/renderer/global_illumination/lpv/deprecated/probe_trace_compute_shader_code.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/deprecated/probe_trace_compute_shader_code.js +4 -0
- package/src/shade/renderer/global_illumination/probe/octahedral/graph_sample_light_probes.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/graph_sample_light_probes.js +4 -0
- package/src/shade/renderer/global_illumination/shader_resolve_indirect_lighting.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/shader_resolve_indirect_lighting.js +4 -0
- package/src/shade/renderer/gpu_primitive/bvh/GPU_BVH_BUILD_PLAN.md +131 -1
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_delta.d.ts +7 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_delta.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_delta.js +45 -38
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_determine_range.d.ts +2 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_determine_range.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_determine_range.js +81 -79
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_find_split.d.ts +2 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_find_split.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_find_split.js +5 -3
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_internal_children.d.ts +21 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_internal_children.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_internal_children.js +42 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_morton_code.d.ts +19 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_morton_code.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_morton_code.js +44 -0
- package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.d.ts +23 -5
- package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.js +139 -23
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_build_single_workgroup.d.ts +25 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_build_single_workgroup.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_build_single_workgroup.js +179 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.d.ts +2 -2
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.js +7 -16
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_morton.d.ts +3 -4
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_morton.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_morton.js +6 -23
- package/src/shade/renderer/gpu_primitive/indirect/IndirectComputeCommandBuildPass.d.ts +11 -0
- package/src/shade/renderer/gpu_primitive/indirect/IndirectComputeCommandBuildPass.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/indirect/IndirectComputeCommandBuildPass.js +14 -3
- package/src/shade/renderer/gpu_primitive/indirect/build_indirect_draw_command.d.ts +10 -0
- package/src/shade/renderer/gpu_primitive/indirect/build_indirect_draw_command.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/indirect/build_indirect_draw_command.js +13 -3
- package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdldf.d.ts +10 -0
- package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdldf.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdldf.js +14 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_bitonic_comparator.d.ts +26 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_bitonic_comparator.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_bitonic_comparator.js +52 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_bitonic_workgroup.d.ts +32 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_bitonic_workgroup.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_bitonic_workgroup.js +89 -0
- package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.d.ts +10 -0
- package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.js +20 -1
- package/src/shade/renderer/hiz/HierarchicalZBuffer.d.ts +10 -0
- package/src/shade/renderer/hiz/HierarchicalZBuffer.d.ts.map +1 -1
- package/src/shade/renderer/hiz/HierarchicalZBuffer.js +294 -281
- package/src/shade/renderer/light/GPULightCollection.d.ts +8 -0
- package/src/shade/renderer/light/GPULightCollection.d.ts.map +1 -1
- package/src/shade/renderer/light/GPULightCollection.js +18 -1
- package/src/shade/renderer/light/cluster/cull/graph_cull_lights.d.ts +8 -0
- package/src/shade/renderer/light/cluster/cull/graph_cull_lights.d.ts.map +1 -1
- package/src/shade/renderer/light/cluster/cull/graph_cull_lights.js +234 -218
- package/src/shade/renderer/light/cluster/graph_assign_clsuters.d.ts +7 -0
- package/src/shade/renderer/light/cluster/graph_assign_clsuters.d.ts.map +1 -1
- package/src/shade/renderer/light/cluster/graph_assign_clsuters.js +13 -0
- package/src/shade/renderer/light/cluster/graph_build_light_clusters.d.ts +7 -0
- package/src/shade/renderer/light/cluster/graph_build_light_clusters.d.ts.map +1 -1
- package/src/shade/renderer/light/cluster/graph_build_light_clusters.js +16 -2
- package/src/shade/renderer/light/environment/execute_filter_environment_map.d.ts +10 -0
- package/src/shade/renderer/light/environment/execute_filter_environment_map.d.ts.map +1 -1
- package/src/shade/renderer/light/environment/execute_filter_environment_map.js +13 -0
- package/src/shade/renderer/lightmap/GPULightMap.d.ts.map +1 -1
- package/src/shade/renderer/lightmap/GPULightMap.js +3 -0
- package/src/shade/renderer/lightmap/bake/shader_lightmap_viz_to_irradiance_flat.d.ts.map +1 -1
- package/src/shade/renderer/lightmap/bake/shader_lightmap_viz_to_irradiance_flat.js +4 -0
- package/src/shade/renderer/lightmap/bake/shader_lightmap_viz_to_sh.d.ts.map +1 -1
- package/src/shade/renderer/lightmap/bake/shader_lightmap_viz_to_sh.js +4 -0
- package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
- package/src/shade/renderer/material/GPUMaterialManager.d.ts +16 -4
- package/src/shade/renderer/material/GPUMaterialManager.d.ts.map +1 -1
- package/src/shade/renderer/material/GPUMaterialManager.js +38 -8
- package/src/shade/renderer/particles/DESIGN.md +49 -7
- package/src/shade/renderer/particles/ORIENTATION_PLAN_2026_10_15.md +453 -0
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.d.ts +5 -1
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.js +13 -5
- package/src/shade/renderer/particles/data/particle_emitter_record.js +2 -2
- package/src/shade/renderer/particles/graph/groups/particle_builtin_groups.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/groups/particle_builtin_groups.js +12 -0
- package/src/shade/renderer/particles/graph/groups/particle_groups_geometry.d.ts +60 -0
- package/src/shade/renderer/particles/graph/groups/particle_groups_geometry.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/groups/particle_groups_geometry.js +156 -0
- package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts +2 -2
- package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/ParticleEmitter.js +8 -8
- package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.js +6 -4
- package/src/shade/renderer/particles/shaders/chunk_particle_render_math.d.ts +7 -6
- package/src/shade/renderer/particles/shaders/chunk_particle_render_math.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/chunk_particle_render_math.js +91 -58
- package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.d.ts.map +1 -1
- package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.js +10 -0
- package/src/shade/renderer/path_tracer/accumulating/shader_accumulating_path_tracer.d.ts.map +1 -1
- package/src/shade/renderer/path_tracer/accumulating/shader_accumulating_path_tracer.js +5 -1
- package/src/shade/renderer/path_tracer/graph_path_trace_scene.d.ts.map +1 -1
- package/src/shade/renderer/path_tracer/graph_path_trace_scene.js +6 -0
- package/src/shade/renderer/postprocess/bloom/graph_postprocess_bloom.d.ts +7 -0
- package/src/shade/renderer/postprocess/bloom/graph_postprocess_bloom.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/bloom/graph_postprocess_bloom.js +18 -0
- package/src/shade/renderer/postprocess/denoise/LigmaDenoiser.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/denoise/LigmaDenoiser.js +1 -0
- package/src/shade/renderer/postprocess/denoise/shader_temporal_reprojection_luma.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/denoise/shader_temporal_reprojection_luma.js +6 -4
- package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.d.ts +11 -0
- package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.js +16 -0
- package/src/shade/renderer/postprocess/gtao/GTAO.d.ts +10 -0
- package/src/shade/renderer/postprocess/gtao/GTAO.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/gtao/GTAO.js +16 -0
- package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao.js +32 -10
- package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
- package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_temporal_accumulate.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_temporal_accumulate.js +3 -0
- package/src/shade/renderer/postprocess/ssr/resolve/build_ssr_resolve_shader.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/resolve/build_ssr_resolve_shader.js +6 -3
- package/src/shade/renderer/postprocess/taa/TAA.d.ts +12 -0
- package/src/shade/renderer/postprocess/taa/TAA.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/taa/TAA.js +15 -0
- package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.d.ts +7 -0
- package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.js +13 -0
- package/src/shade/renderer/rasterize/TemplatePassDescriptor.d.ts +31 -3
- package/src/shade/renderer/rasterize/TemplatePassDescriptor.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/TemplatePassDescriptor.js +79 -4
- package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.d.ts +17 -0
- package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.js +35 -4
- package/src/shade/renderer/rasterize/compute/graph_mesh_frustum_cull.d.ts +7 -0
- package/src/shade/renderer/rasterize/compute/graph_mesh_frustum_cull.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/compute/graph_mesh_frustum_cull.js +182 -169
- package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_meshes_classify_buckets.d.ts +10 -0
- package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_meshes_classify_buckets.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_meshes_classify_buckets.js +20 -1
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_extract_meshlets_from_bucket.d.ts +10 -0
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_extract_meshlets_from_bucket.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_extract_meshlets_from_bucket.js +18 -1
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_sort_meshlets_by_bucket_id.d.ts +10 -0
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_sort_meshlets_by_bucket_id.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_sort_meshlets_by_bucket_id.js +20 -1
- package/src/shade/renderer/rasterize/expand/graph_mesh_filter_one_way.d.ts +7 -0
- package/src/shade/renderer/rasterize/expand/graph_mesh_filter_one_way.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/graph_mesh_filter_one_way.js +187 -170
- package/src/shade/renderer/rasterize/expand/graph_meshlets_filter_one_way.d.ts +10 -0
- package/src/shade/renderer/rasterize/expand/graph_meshlets_filter_one_way.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/graph_meshlets_filter_one_way.js +19 -1
- package/src/shade/renderer/rasterize/expand/graph_meshlets_rasterize.d.ts +13 -0
- package/src/shade/renderer/rasterize/expand/graph_meshlets_rasterize.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/graph_meshlets_rasterize.js +25 -1
- package/src/shade/renderer/rasterize/expand/mesh/graph_expand_meshes_to_meshlets.d.ts +10 -0
- package/src/shade/renderer/rasterize/expand/mesh/graph_expand_meshes_to_meshlets.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/mesh/graph_expand_meshes_to_meshlets.js +20 -0
- package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_brick4.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_brick4.js +6 -0
- package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_ibl.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_ibl.js +6 -0
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts +3 -2
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.js +3 -2
- package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts +7 -2
- package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.js +12 -4
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_brick4.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_brick4.js +4 -3
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_ibl.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_ibl.js +4 -3
- package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.d.ts +2 -1
- package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.js +11 -3
- package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments.js +4 -3
- package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments_ibl.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments_ibl.js +4 -3
- package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.d.ts +15 -0
- package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.js +35 -2
- package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.d.ts +14 -0
- package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.js +32 -4
- package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts +17 -0
- package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.js +34 -4
- package/src/shade/renderer/restir/di/chunk_restir_resolve.d.ts +5 -3
- package/src/shade/renderer/restir/di/chunk_restir_resolve.d.ts.map +1 -1
- package/src/shade/renderer/restir/di/chunk_restir_resolve.js +8 -3
- package/src/shade/renderer/restir/di/graph_restir_di.d.ts.map +1 -1
- package/src/shade/renderer/restir/di/graph_restir_di.js +1 -0
- package/src/shade/renderer/restir/di/shader_restir_di_resolve.d.ts.map +1 -1
- package/src/shade/renderer/restir/di/shader_restir_di_resolve.js +5 -1
- package/src/shade/renderer/restir/reservoir/shader.d.ts.map +1 -1
- package/src/shade/renderer/restir/reservoir/shader.js +7 -4
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts +7 -0
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts.map +1 -1
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.js +13 -1
- package/src/shade/renderer/scene/GPUSceneContext.d.ts +10 -0
- package/src/shade/renderer/scene/GPUSceneContext.d.ts.map +1 -1
- package/src/shade/renderer/scene/GPUSceneContext.js +19 -0
- package/src/shade/renderer/scene/SceneManager.d.ts +9 -0
- package/src/shade/renderer/scene/SceneManager.d.ts.map +1 -1
- package/src/shade/renderer/scene/SceneManager.js +11 -0
- package/src/shade/renderer/scene/hierarchy/graph_nodes_update_transform_hierarchy.d.ts +11 -0
- package/src/shade/renderer/scene/hierarchy/graph_nodes_update_transform_hierarchy.d.ts.map +1 -1
- package/src/shade/renderer/scene/hierarchy/graph_nodes_update_transform_hierarchy.js +17 -0
- package/src/shade/renderer/scene/hierarchy/graph_scene_update_transform_hierarchy.d.ts +11 -0
- package/src/shade/renderer/scene/hierarchy/graph_scene_update_transform_hierarchy.d.ts.map +1 -1
- package/src/shade/renderer/scene/hierarchy/graph_scene_update_transform_hierarchy.js +18 -1
- package/src/shade/renderer/shader/ComputeShader.d.ts +12 -0
- package/src/shade/renderer/shader/ComputeShader.d.ts.map +1 -1
- package/src/shade/renderer/shader/ComputeShader.js +53 -0
- package/src/shade/renderer/shader/ImageShader.d.ts +27 -8
- package/src/shade/renderer/shader/ImageShader.d.ts.map +1 -1
- package/src/shade/renderer/shader/ImageShader.js +70 -1
- package/src/shade/renderer/shader/ShaderDescriptor.d.ts +21 -0
- package/src/shade/renderer/shader/ShaderDescriptor.d.ts.map +1 -1
- package/src/shade/renderer/shader/ShaderDescriptor.js +71 -1
- package/src/shade/renderer/shader/chunk/camera/chunk_project_view_position_from_depth.d.ts +17 -0
- package/src/shade/renderer/shader/chunk/camera/chunk_project_view_position_from_depth.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/camera/chunk_project_view_position_from_depth.js +45 -0
- package/src/shade/renderer/shader/chunk/camera/chunk_screen_coordinate_to_view.js +3 -3
- package/src/shade/renderer/shader/chunk/color/iCtCp/chunk_eotf_st2084.d.ts +1 -1
- package/src/shade/renderer/shader/chunk/color/iCtCp/chunk_eotf_st2084.js +62 -62
- package/src/shade/renderer/shader/chunk/color/tonemap/HDR_TONE_MAPPING_FORMS_BRIEF_2026_10_16.md +318 -0
- package/src/shade/renderer/shader/chunk/color/tonemap/SDR_TONE_MAPPING_BRIEF_2026_10_16.md +237 -0
- package/src/shade/renderer/shader/chunk/color/tonemap/chunk_PAPER_WHITE_NITS.d.ts +17 -0
- package/src/shade/renderer/shader/chunk/color/tonemap/chunk_PAPER_WHITE_NITS.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/color/tonemap/chunk_PAPER_WHITE_NITS.js +22 -0
- package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_khronos_pbr.d.ts +14 -1
- package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_khronos_pbr.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_khronos_pbr.js +28 -15
- package/src/shade/renderer/shader/chunk/color/tonemap/gt7/chunk_tonemap_gt7.d.ts +12 -0
- package/src/shade/renderer/shader/chunk/color/tonemap/gt7/chunk_tonemap_gt7.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/color/tonemap/gt7/chunk_tonemap_gt7.js +128 -110
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_offset_ray_from_depth.d.ts +20 -0
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_offset_ray_from_depth.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_offset_ray_from_depth.js +33 -0
- package/src/shade/renderer/shader/chunk/light/chunk_compute_multiscattering_specular.d.ts +4 -0
- package/src/shade/renderer/shader/chunk/light/chunk_compute_multiscattering_specular.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/light/chunk_compute_multiscattering_specular.js +12 -1
- package/src/shade/renderer/shader/chunk/material/MATERIAL_SHADING_INFO_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/material/MATERIAL_SHADING_INFO_STRUCT.js +7 -0
- package/src/shade/renderer/shader/chunk/material/MULTISCATTER.md +108 -0
- package/src/shade/renderer/shader/chunk/material/chunk_compute_indirect_specular.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/material/chunk_compute_indirect_specular.js +23 -4
- package/src/shade/renderer/shader/chunk/material/chunk_re_direct_multiscatter.d.ts +18 -0
- package/src/shade/renderer/shader/chunk/material/chunk_re_direct_multiscatter.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/material/chunk_re_direct_multiscatter.js +56 -0
- package/src/shade/renderer/shader/chunk/material/chunk_re_indirect_specular_physical.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/material/chunk_re_indirect_specular_physical.js +2 -0
- package/src/shade/renderer/shader/chunk/screen_space/chunk_screen_space_linear_ray.d.ts +43 -0
- package/src/shade/renderer/shader/chunk/screen_space/chunk_screen_space_linear_ray.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/screen_space/chunk_screen_space_linear_ray.js +319 -0
- package/src/shade/renderer/shader/compiler/CodeChunk.d.ts +33 -0
- package/src/shade/renderer/shader/compiler/CodeChunk.d.ts.map +1 -1
- package/src/shade/renderer/shader/compiler/CodeChunk.js +140 -0
- package/src/shade/renderer/shader/compiler/CodeChunkChoice.d.ts +74 -0
- package/src/shade/renderer/shader/compiler/CodeChunkChoice.d.ts.map +1 -0
- package/src/shade/renderer/shader/compiler/CodeChunkChoice.js +166 -0
- package/src/shade/renderer/shader/compiler/SHADER_SWITCH_PROPOSAL_2026_10_16.md +680 -0
- package/src/shade/renderer/shader/compiler/ShaderSwitch.d.ts +86 -0
- package/src/shade/renderer/shader/compiler/ShaderSwitch.d.ts.map +1 -0
- package/src/shade/renderer/shader/compiler/ShaderSwitch.js +178 -0
- package/src/shade/renderer/shader/compiler/ShaderSwitchSet.d.ts +67 -0
- package/src/shade/renderer/shader/compiler/ShaderSwitchSet.d.ts.map +1 -0
- package/src/shade/renderer/shader/compiler/ShaderSwitchSet.js +205 -0
- package/src/shade/renderer/shadow/contact/CONTACT_SHADOW_WAVE_SIZE.d.ts +14 -0
- package/src/shade/renderer/shadow/contact/CONTACT_SHADOW_WAVE_SIZE.d.ts.map +1 -0
- package/src/shade/renderer/shadow/contact/CONTACT_SHADOW_WAVE_SIZE.js +13 -0
- package/src/shade/renderer/shadow/contact/ContactShadowDispatchList.d.ts +65 -0
- package/src/shade/renderer/shadow/contact/ContactShadowDispatchList.d.ts.map +1 -0
- package/src/shade/renderer/shadow/contact/ContactShadowDispatchList.js +252 -0
- package/src/shade/renderer/shadow/contact/FINDINGS.md +413 -0
- package/src/shade/renderer/shadow/contact/chunk_contact_shadow_wavefront_extents.d.ts +29 -0
- package/src/shade/renderer/shadow/contact/chunk_contact_shadow_wavefront_extents.d.ts.map +1 -0
- package/src/shade/renderer/shadow/contact/chunk_contact_shadow_wavefront_extents.js +105 -0
- package/src/shade/renderer/shadow/contact/graph_contact_shadow_linear.d.ts +29 -0
- package/src/shade/renderer/shadow/contact/graph_contact_shadow_linear.d.ts.map +1 -0
- package/src/shade/renderer/shadow/contact/graph_contact_shadow_linear.js +39 -0
- package/src/shade/renderer/shadow/contact/graph_contact_shadow_wavefront.d.ts +29 -0
- package/src/shade/renderer/shadow/contact/graph_contact_shadow_wavefront.d.ts.map +1 -0
- package/src/shade/renderer/shadow/contact/graph_contact_shadow_wavefront.js +92 -0
- package/src/shade/renderer/shadow/contact/shader_contact_shadow_linear.d.ts +29 -0
- package/src/shade/renderer/shadow/contact/shader_contact_shadow_linear.d.ts.map +1 -0
- package/src/shade/renderer/shadow/contact/shader_contact_shadow_linear.js +128 -0
- package/src/shade/renderer/shadow/contact/shader_contact_shadow_wavefront.d.ts +52 -0
- package/src/shade/renderer/shadow/contact/shader_contact_shadow_wavefront.d.ts.map +1 -0
- package/src/shade/renderer/shadow/contact/shader_contact_shadow_wavefront.js +358 -0
- package/src/shade/renderer/shadow/map/ShadowDirectionalTechnique.d.ts +10 -0
- package/src/shade/renderer/shadow/map/ShadowDirectionalTechnique.d.ts.map +1 -0
- package/src/shade/renderer/shadow/map/ShadowDirectionalTechnique.js +12 -0
- package/src/shade/renderer/shadow/map/shader/SHADOW_DIRECTIONAL_TECHNIQUE.d.ts +13 -0
- package/src/shade/renderer/shadow/map/shader/SHADOW_DIRECTIONAL_TECHNIQUE.d.ts.map +1 -0
- package/src/shade/renderer/shadow/map/shader/SHADOW_DIRECTIONAL_TECHNIQUE.js +14 -0
- package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_directional.d.ts +14 -8
- package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_directional.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_directional.js +20 -86
- package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_directional_cascades.d.ts +14 -0
- package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_directional_cascades.d.ts.map +1 -0
- package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_directional_cascades.js +79 -0
- package/src/shade/renderer/shadow/ray/shader_ray_shadow_code.d.ts.map +1 -1
- package/src/shade/renderer/shadow/ray/shader_ray_shadow_code.js +12 -12
- package/src/shade/renderer/shadow/ray/staged/gen/shader_generate_rays.d.ts.map +1 -1
- package/src/shade/renderer/shadow/ray/staged/gen/shader_generate_rays.js +153 -151
- package/src/shade/renderer/shadow/vsm/shader/chunk_shadowmap_sample_directional_virtual.d.ts +13 -0
- package/src/shade/renderer/shadow/vsm/shader/chunk_shadowmap_sample_directional_virtual.d.ts.map +1 -0
- package/src/shade/renderer/shadow/vsm/shader/chunk_shadowmap_sample_directional_virtual.js +48 -0
- package/src/shade/renderer/texture/GPUTextureContext.d.ts +10 -0
- package/src/shade/renderer/texture/GPUTextureContext.d.ts.map +1 -1
- package/src/shade/renderer/texture/GPUTextureContext.js +24 -0
- package/src/shade/renderer/texture/atlas/GPUTileAtlas3D.d.ts +219 -0
- package/src/shade/renderer/texture/atlas/GPUTileAtlas3D.d.ts.map +1 -0
- package/src/shade/renderer/texture/atlas/GPUTileAtlas3D.js +671 -0
- package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.d.ts +26 -2
- package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.js +108 -4
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts +5 -1
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +6 -0
- package/src/shade/renderer/volumetrics/NOTES.md +50 -0
- package/src/shade/renderer/volumetrics/PARTICIPATING_MEDIA_VOLUME_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/PARTICIPATING_MEDIA_VOLUME_STRUCT.js +30 -1
- package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.d.ts +51 -13
- package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.js +98 -13
- package/src/shade/renderer/volumetrics/SceneVolumetrics.d.ts +9 -0
- package/src/shade/renderer/volumetrics/SceneVolumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/SceneVolumetrics.js +78 -68
- package/src/shade/renderer/volumetrics/VOLUMETRIC_NOISE_PLAN_2026_10_15.md +326 -0
- package/src/shade/renderer/volumetrics/chunk_participating_media_volume_sample.d.ts +7 -4
- package/src/shade/renderer/volumetrics/chunk_participating_media_volume_sample.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/chunk_participating_media_volume_sample.js +21 -9
- package/src/shade/renderer/volumetrics/chunk_volumetrics_froxel_uvw_from_clip.d.ts +19 -0
- package/src/shade/renderer/volumetrics/chunk_volumetrics_froxel_uvw_from_clip.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/chunk_volumetrics_froxel_uvw_from_clip.js +53 -0
- package/src/shade/renderer/volumetrics/chunk_volumetrics_sample_froxel_extinction.d.ts +12 -3
- package/src/shade/renderer/volumetrics/chunk_volumetrics_sample_froxel_extinction.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/chunk_volumetrics_sample_froxel_extinction.js +85 -48
- package/src/shade/renderer/volumetrics/graph_build_froxel_irradiance.d.ts +4 -1
- package/src/shade/renderer/volumetrics/graph_build_froxel_irradiance.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/graph_build_froxel_irradiance.js +4 -1
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts +4 -1
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.js +21 -1
- package/src/shade/renderer/volumetrics/noise/PARTICIPATING_MEDIA_NOISE.d.ts +98 -0
- package/src/shade/renderer/volumetrics/noise/PARTICIPATING_MEDIA_NOISE.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/noise/PARTICIPATING_MEDIA_NOISE.js +115 -0
- package/src/shade/renderer/volumetrics/noise/VOLUMETRICS_NOISE_TILE_BAKE_SETTINGS_STRUCT.d.ts +9 -0
- package/src/shade/renderer/volumetrics/noise/VOLUMETRICS_NOISE_TILE_BAKE_SETTINGS_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/noise/VOLUMETRICS_NOISE_TILE_BAKE_SETTINGS_STRUCT.js +24 -0
- package/src/shade/renderer/volumetrics/noise/bake_volumetrics_noise_tile.d.ts +27 -0
- package/src/shade/renderer/volumetrics/noise/bake_volumetrics_noise_tile.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/noise/bake_volumetrics_noise_tile.js +91 -0
- package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise.d.ts +35 -0
- package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise.js +92 -0
- package/src/shade/renderer/volumetrics/noise/shader_volumetrics_noise_tile_bake.d.ts +10 -0
- package/src/shade/renderer/volumetrics/noise/shader_volumetrics_noise_tile_bake.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/noise/shader_volumetrics_noise_tile_bake.js +121 -0
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_participating_media.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_participating_media.js +38 -3
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_sun_shadow_volume.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_sun_shadow_volume.js +311 -290
- package/src/shade/renderer/volumetrics/volumetrics_position_world_to_froxel_uvw.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/volumetrics_position_world_to_froxel_uvw.js +28 -49
- package/src/shade/renderer/water/GPUWaterRenderer.d.ts +3 -1
- package/src/shade/renderer/water/GPUWaterRenderer.d.ts.map +1 -1
- package/src/shade/renderer/water/GPUWaterRenderer.js +24 -18
- package/src/shade/renderer/water/chunk_water_transport.d.ts +0 -1
- package/src/shade/renderer/water/chunk_water_transport.d.ts.map +1 -1
- package/src/shade/renderer/water/chunk_water_transport.js +0 -17
- package/src/shade/renderer/water/shader_water.d.ts +4 -2
- package/src/shade/renderer/water/shader_water.d.ts.map +1 -1
- package/src/shade/renderer/water/shader_water.js +27 -16
- package/src/shade/renderer/water/shader_water_avboit.d.ts +0 -4
- package/src/shade/renderer/water/shader_water_avboit.d.ts.map +1 -1
- package/src/shade/renderer/water/shader_water_avboit.js +0 -63
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +43 -9
- package/src/engine/network/transport/Channel.d.ts +0 -85
- package/src/engine/network/transport/Channel.d.ts.map +0 -1
- package/src/engine/network/transport/ReliableCommandPipeline.d.ts +0 -155
- package/src/engine/network/transport/ReliableCommandPipeline.d.ts.map +0 -1
- package/src/engine/network/transport/fragments/FragmentAssembler.d.ts +0 -105
- package/src/engine/network/transport/fragments/FragmentAssembler.d.ts.map +0 -1
- package/src/engine/network/transport/fragments/FragmentRetention.d.ts +0 -103
- package/src/engine/network/transport/fragments/FragmentRetention.d.ts.map +0 -1
- package/src/engine/network/transport/fragments/fragment_send.d.ts +0 -61
- package/src/engine/network/transport/fragments/fragment_send.d.ts.map +0 -1
- package/src/engine/network/transport/fragments/packet_size.d.ts +0 -99
- package/src/engine/network/transport/fragments/packet_size.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/color/sRGB/chunk_RRTAndODTFit.d.ts +0 -6
- package/src/shade/renderer/shader/chunk/color/sRGB/chunk_RRTAndODTFit.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/color/sRGB/chunk_RRTAndODTFit.js +0 -16
- package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_aces.d.ts +0 -7
- package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_aces.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_aces.js +0 -46
- package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_agx.d.ts +0 -10
- package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_agx.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_agx.js +0 -127
- package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_pbr_neutral.d.ts +0 -7
- package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_pbr_neutral.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_pbr_neutral.js +0 -39
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multiple-scattering compensation for the direct specular, once per pixel after the last light.
|
|
3
|
+
*
|
|
4
|
+
* `re_direct_physical` evaluates single-scattering GGX per light, which loses the energy that bounces
|
|
5
|
+
* between microfacets more than once: a rough white metal reflects 0.31 of a uniform sky. Turquin's
|
|
6
|
+
* compensation (2019, eq. 16) scales the single-scattering lobe by the ratio of the lobe's total albedo to its
|
|
7
|
+
* single-scattering albedo, both from the split-sum LUT the indirect path already samples. The ratio depends
|
|
8
|
+
* on N·V, roughness and the material's F0s alone, so one LUT fetch here serves every light the pass
|
|
9
|
+
* accumulated, and the indirect path's `compute_multiscattering_specular` supplies it, so the two paths cannot
|
|
10
|
+
* disagree.
|
|
11
|
+
*
|
|
12
|
+
* Requires `tSplitSum` and `sLinear` in the shader's resources. See `MULTISCATTER.md` beside this chunk.
|
|
13
|
+
*
|
|
14
|
+
* @type {CodeChunk}
|
|
15
|
+
*/
|
|
16
|
+
export const chunk_re_direct_multiscatter: CodeChunk;
|
|
17
|
+
import { CodeChunk } from "../../compiler/CodeChunk.js";
|
|
18
|
+
//# sourceMappingURL=chunk_re_direct_multiscatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk_re_direct_multiscatter.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/shader/chunk/material/chunk_re_direct_multiscatter.js"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;GAcG;AACH,2CAFU,SAAS,CAoCjB;0BAvDwB,6BAA6B"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { CodeChunk } from "../../compiler/CodeChunk.js";
|
|
2
|
+
import { chunk_compute_multiscattering_specular } from "../light/chunk_compute_multiscattering_specular.js";
|
|
3
|
+
import { REFLECTED_LIGHT_STRUCT } from "../light/REFLECTED_LIGHT_STRUCT.js";
|
|
4
|
+
import { GEOMETRIC_SHADING_INFO_STRUCT } from "./GEOMETRIC_SHADING_INFO_STRUCT.js";
|
|
5
|
+
import { MATERIAL_SHADING_INFO_STRUCT } from "./MATERIAL_SHADING_INFO_STRUCT.js";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Multiple-scattering compensation for the direct specular, once per pixel after the last light.
|
|
9
|
+
*
|
|
10
|
+
* `re_direct_physical` evaluates single-scattering GGX per light, which loses the energy that bounces
|
|
11
|
+
* between microfacets more than once: a rough white metal reflects 0.31 of a uniform sky. Turquin's
|
|
12
|
+
* compensation (2019, eq. 16) scales the single-scattering lobe by the ratio of the lobe's total albedo to its
|
|
13
|
+
* single-scattering albedo, both from the split-sum LUT the indirect path already samples. The ratio depends
|
|
14
|
+
* on N·V, roughness and the material's F0s alone, so one LUT fetch here serves every light the pass
|
|
15
|
+
* accumulated, and the indirect path's `compute_multiscattering_specular` supplies it, so the two paths cannot
|
|
16
|
+
* disagree.
|
|
17
|
+
*
|
|
18
|
+
* Requires `tSplitSum` and `sLinear` in the shader's resources. See `MULTISCATTER.md` beside this chunk.
|
|
19
|
+
*
|
|
20
|
+
* @type {CodeChunk}
|
|
21
|
+
*/
|
|
22
|
+
export const chunk_re_direct_multiscatter = CodeChunk.from(
|
|
23
|
+
//language=WGSL
|
|
24
|
+
`
|
|
25
|
+
fn re_direct_multiscatter(
|
|
26
|
+
geometry: ${GEOMETRIC_SHADING_INFO_STRUCT.wgsl_ref},
|
|
27
|
+
material: ${MATERIAL_SHADING_INFO_STRUCT.wgsl_ref},
|
|
28
|
+
reflectedLight: ptr<function, ${REFLECTED_LIGHT_STRUCT.wgsl_ref}>
|
|
29
|
+
) {
|
|
30
|
+
let NoV = saturate( dot( geometry.shading_normal, geometry.view_direction ) );
|
|
31
|
+
|
|
32
|
+
let f_ab = textureSampleLevel( tSplitSum, sLinear, vec2( NoV, material.roughness ), 0.0 ).rg;
|
|
33
|
+
|
|
34
|
+
var single_scattering = vec3<f32>( 0.0 );
|
|
35
|
+
var multi_scattering = vec3<f32>( 0.0 );
|
|
36
|
+
|
|
37
|
+
compute_multiscattering_specular(
|
|
38
|
+
f_ab,
|
|
39
|
+
material.specularF0,
|
|
40
|
+
material.specularF0_dielectric,
|
|
41
|
+
material.specularF0_metal,
|
|
42
|
+
material.specularF90,
|
|
43
|
+
&single_scattering,
|
|
44
|
+
&multi_scattering
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
// single scattering is at least F0 * A, so this guards only an F0 of 0, whose multiple scattering is 0 too
|
|
48
|
+
(*reflectedLight).specular *= 1.0 + multi_scattering / max( single_scattering, vec3<f32>( 1e-4 ) );
|
|
49
|
+
}
|
|
50
|
+
`, [
|
|
51
|
+
GEOMETRIC_SHADING_INFO_STRUCT.declaration_chunk,
|
|
52
|
+
MATERIAL_SHADING_INFO_STRUCT.declaration_chunk,
|
|
53
|
+
REFLECTED_LIGHT_STRUCT.declaration_chunk,
|
|
54
|
+
chunk_compute_multiscattering_specular,
|
|
55
|
+
]
|
|
56
|
+
);
|
package/src/shade/renderer/shader/chunk/material/chunk_re_indirect_specular_physical.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk_re_indirect_specular_physical.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/shader/chunk/material/chunk_re_indirect_specular_physical.js"],"names":[],"mappings":"AAMA;;;GAGG;AACH,kDAFU,SAAS,
|
|
1
|
+
{"version":3,"file":"chunk_re_indirect_specular_physical.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/shader/chunk/material/chunk_re_indirect_specular_physical.js"],"names":[],"mappings":"AAMA;;;GAGG;AACH,kDAFU,SAAS,CAmCZ;0BA3CmB,6BAA6B"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Most linear steps one march takes, whatever it asks for. With bisection, the work of one thread is
|
|
3
|
+
* bounded by 4 depth reads × (this + {@link SCREEN_SPACE_LINEAR_RAY_BISECTION_LIMIT} + 1).
|
|
4
|
+
* @type {number}
|
|
5
|
+
*/
|
|
6
|
+
export const SCREEN_SPACE_LINEAR_RAY_STEP_LIMIT: number;
|
|
7
|
+
/**
|
|
8
|
+
* Most bisection steps refining a hit.
|
|
9
|
+
* @type {number}
|
|
10
|
+
*/
|
|
11
|
+
export const SCREEN_SPACE_LINEAR_RAY_BISECTION_LIMIT: number;
|
|
12
|
+
/**
|
|
13
|
+
* A linear ray march against the depth buffer: a port of Tomasz Stachowiak's `raymarch.hlsl`
|
|
14
|
+
* (https://gist.github.com/h3r2tic/9c8356bdaefbe80b1a22ae0aaee192db, MIT or Apache 2.0), the march
|
|
15
|
+
* Bevy uses for contact shadows, SSR and SSGI. One routine for any screen-space trace that wants a
|
|
16
|
+
* first hit along a segment.
|
|
17
|
+
*
|
|
18
|
+
* **Where the accuracy comes from.**
|
|
19
|
+
* - The segment is clipped to the view frustum in NDC before marching, so every step lands on screen.
|
|
20
|
+
* - Steps are linear in NDC, where a straight 3D line stays straight and device depth is affine along it,
|
|
21
|
+
* so the ray's depth at a step is exact. There is never more than one step per pixel.
|
|
22
|
+
* - Each step reads the depth buffer both point-sampled and bilinear, and claims occlusion only when the ray
|
|
23
|
+
* is behind both. Point samples alone make a surface of stacked bricks that self-shadows; bilinear alone
|
|
24
|
+
* shrink-wraps a continuous surface over every silhouette. Each rejects the other's false hits.
|
|
25
|
+
* - Depth is compared as view distance (`get_view_space_depth`), so the thickness is in world units.
|
|
26
|
+
*
|
|
27
|
+
* **How it is configured** (`ScreenSpaceLinearRay`, from `screen_space_linear_ray_new`):
|
|
28
|
+
* - `linear_steps`: capped at {@link SCREEN_SPACE_LINEAR_RAY_STEP_LIMIT}, and at the segment's length in pixels.
|
|
29
|
+
* - `linear_march_exponent`: 1 for equal steps; above 1 packs them toward the start.
|
|
30
|
+
* - `bisection_steps` and `use_secant`: refine a hit's position, for a trace that samples colour there.
|
|
31
|
+
* - `jitter`: the first step's fraction of a step, in (0, 1]; 1 is none.
|
|
32
|
+
* - `depth_thickness`: how deep behind a depth sample still counts as inside it, view-space units.
|
|
33
|
+
* - `march_behind_surfaces`: carry on past a surface the ray has gone further behind than the thickness,
|
|
34
|
+
* for shadows; it misses surfaces unless `depth_thickness` ≥ the segment's length / `linear_steps`.
|
|
35
|
+
* - `use_sloppy_march`: point samples only.
|
|
36
|
+
*
|
|
37
|
+
* The result's `t` runs over the clipped segment, start to end: the hit, or the furthest the march got.
|
|
38
|
+
*
|
|
39
|
+
* @type {CodeChunk}
|
|
40
|
+
*/
|
|
41
|
+
export const chunk_screen_space_linear_ray: CodeChunk;
|
|
42
|
+
import { CodeChunk } from "../../compiler/CodeChunk.js";
|
|
43
|
+
//# sourceMappingURL=chunk_screen_space_linear_ray.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk_screen_space_linear_ray.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/shader/chunk/screen_space/chunk_screen_space_linear_ray.js"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,iDAFU,MAAM,CAEqC;AAErD;;;GAGG;AACH,sDAFU,MAAM,CAEyC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,4CAFU,SAAS,CA8QjB;0BA7TwB,6BAA6B"}
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
import { CAMERA_UNIFORM_STRUCT } from "../../../camera/CAMERA_UNIFORM_STRUCT.js";
|
|
2
|
+
import { CodeChunk } from "../../compiler/CodeChunk.js";
|
|
3
|
+
import { chunk_get_view_space_depth } from "../depth/chunk_get_view_space_depth.js";
|
|
4
|
+
import { chunk_v3_matrix4_project } from "../geometry/vec3/chunk_v3_matrix4_project.js";
|
|
5
|
+
import { chunk_ndc_to_uv } from "../texture/chunk_ndc_to_uv.js";
|
|
6
|
+
import { chunk_get_bilinear_filter_texel } from "../texture/sample/chunk_get_bilinear_filter_texel.js";
|
|
7
|
+
import { chunk_interpolate_bilinear_f32 } from "../texture/sample/chunk_interpolate_bilinear_f32.js";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Most linear steps one march takes, whatever it asks for. With bisection, the work of one thread is
|
|
11
|
+
* bounded by 4 depth reads × (this + {@link SCREEN_SPACE_LINEAR_RAY_BISECTION_LIMIT} + 1).
|
|
12
|
+
* @type {number}
|
|
13
|
+
*/
|
|
14
|
+
export const SCREEN_SPACE_LINEAR_RAY_STEP_LIMIT = 64;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Most bisection steps refining a hit.
|
|
18
|
+
* @type {number}
|
|
19
|
+
*/
|
|
20
|
+
export const SCREEN_SPACE_LINEAR_RAY_BISECTION_LIMIT = 8;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* A linear ray march against the depth buffer: a port of Tomasz Stachowiak's `raymarch.hlsl`
|
|
24
|
+
* (https://gist.github.com/h3r2tic/9c8356bdaefbe80b1a22ae0aaee192db, MIT or Apache 2.0), the march
|
|
25
|
+
* Bevy uses for contact shadows, SSR and SSGI. One routine for any screen-space trace that wants a
|
|
26
|
+
* first hit along a segment.
|
|
27
|
+
*
|
|
28
|
+
* **Where the accuracy comes from.**
|
|
29
|
+
* - The segment is clipped to the view frustum in NDC before marching, so every step lands on screen.
|
|
30
|
+
* - Steps are linear in NDC, where a straight 3D line stays straight and device depth is affine along it,
|
|
31
|
+
* so the ray's depth at a step is exact. There is never more than one step per pixel.
|
|
32
|
+
* - Each step reads the depth buffer both point-sampled and bilinear, and claims occlusion only when the ray
|
|
33
|
+
* is behind both. Point samples alone make a surface of stacked bricks that self-shadows; bilinear alone
|
|
34
|
+
* shrink-wraps a continuous surface over every silhouette. Each rejects the other's false hits.
|
|
35
|
+
* - Depth is compared as view distance (`get_view_space_depth`), so the thickness is in world units.
|
|
36
|
+
*
|
|
37
|
+
* **How it is configured** (`ScreenSpaceLinearRay`, from `screen_space_linear_ray_new`):
|
|
38
|
+
* - `linear_steps`: capped at {@link SCREEN_SPACE_LINEAR_RAY_STEP_LIMIT}, and at the segment's length in pixels.
|
|
39
|
+
* - `linear_march_exponent`: 1 for equal steps; above 1 packs them toward the start.
|
|
40
|
+
* - `bisection_steps` and `use_secant`: refine a hit's position, for a trace that samples colour there.
|
|
41
|
+
* - `jitter`: the first step's fraction of a step, in (0, 1]; 1 is none.
|
|
42
|
+
* - `depth_thickness`: how deep behind a depth sample still counts as inside it, view-space units.
|
|
43
|
+
* - `march_behind_surfaces`: carry on past a surface the ray has gone further behind than the thickness,
|
|
44
|
+
* for shadows; it misses surfaces unless `depth_thickness` ≥ the segment's length / `linear_steps`.
|
|
45
|
+
* - `use_sloppy_march`: point samples only.
|
|
46
|
+
*
|
|
47
|
+
* The result's `t` runs over the clipped segment, start to end: the hit, or the furthest the march got.
|
|
48
|
+
*
|
|
49
|
+
* @type {CodeChunk}
|
|
50
|
+
*/
|
|
51
|
+
export const chunk_screen_space_linear_ray = CodeChunk.from(
|
|
52
|
+
//language=WGSL
|
|
53
|
+
`
|
|
54
|
+
const SCREEN_SPACE_LINEAR_RAY_STEP_LIMIT = ${SCREEN_SPACE_LINEAR_RAY_STEP_LIMIT}u;
|
|
55
|
+
const SCREEN_SPACE_LINEAR_RAY_BISECTION_LIMIT = ${SCREEN_SPACE_LINEAR_RAY_BISECTION_LIMIT}u;
|
|
56
|
+
|
|
57
|
+
struct ScreenSpaceLinearRay {
|
|
58
|
+
// NDC, after the divide: xy in [-1, 1], z the device depth
|
|
59
|
+
start_ndc: vec3<f32>,
|
|
60
|
+
end_ndc: vec3<f32>,
|
|
61
|
+
linear_steps: u32,
|
|
62
|
+
linear_march_exponent: f32,
|
|
63
|
+
bisection_steps: u32,
|
|
64
|
+
use_secant: bool,
|
|
65
|
+
jitter: f32,
|
|
66
|
+
depth_thickness: f32,
|
|
67
|
+
march_behind_surfaces: bool,
|
|
68
|
+
use_sloppy_march: bool,
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
struct ScreenSpaceLinearRayHit {
|
|
72
|
+
hit: bool,
|
|
73
|
+
// the hit, or on a miss the furthest the march got, from 0 at start_ndc to 1 at end_ndc
|
|
74
|
+
t: f32,
|
|
75
|
+
uv: vec2<f32>,
|
|
76
|
+
// how far behind the depth buffer the hit point is, view-space units; on a miss, undefined
|
|
77
|
+
penetration: f32,
|
|
78
|
+
// ditto, as a fraction of depth_thickness
|
|
79
|
+
penetration_fraction: f32,
|
|
80
|
+
// linear steps taken
|
|
81
|
+
steps: u32,
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// one step's comparison against the depth buffer
|
|
85
|
+
struct ScreenSpaceLinearRaySample {
|
|
86
|
+
// how far in front of the further of the two depth reads the ray is: negative behind both
|
|
87
|
+
distance: f32,
|
|
88
|
+
// false where the ray has gone deeper behind the nearer read than the thickness, marching behind
|
|
89
|
+
valid: bool,
|
|
90
|
+
// how far behind the nearer of the two reads the ray is
|
|
91
|
+
penetration: f32,
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
fn screen_space_linear_ray_new(start_ndc: vec3<f32>) -> ScreenSpaceLinearRay {
|
|
95
|
+
var ray: ScreenSpaceLinearRay;
|
|
96
|
+
|
|
97
|
+
ray.start_ndc = start_ndc;
|
|
98
|
+
ray.end_ndc = start_ndc;
|
|
99
|
+
ray.linear_steps = 4u;
|
|
100
|
+
ray.linear_march_exponent = 1.0;
|
|
101
|
+
ray.bisection_steps = 0u;
|
|
102
|
+
ray.use_secant = false;
|
|
103
|
+
ray.jitter = 1.0;
|
|
104
|
+
ray.depth_thickness = 1.0;
|
|
105
|
+
ray.march_behind_surfaces = false;
|
|
106
|
+
ray.use_sloppy_march = false;
|
|
107
|
+
|
|
108
|
+
return ray;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Point the ray along a clip-space direction from its start, clipping both ends to the view frustum.
|
|
113
|
+
* \`infinite\` extends it to the frustum's edge.
|
|
114
|
+
*/
|
|
115
|
+
fn screen_space_linear_ray_clip(ray: ptr<function, ScreenSpaceLinearRay>, direction_clip: vec4<f32>, infinite: bool) {
|
|
116
|
+
var end_clip = vec4<f32>((*ray).start_ndc, 1.0) + direction_clip;
|
|
117
|
+
|
|
118
|
+
// the divide, keeping clear of zero for a ray heading straight at the eye
|
|
119
|
+
end_clip /= select(-1.0, 1.0, end_clip.w >= 0.0) * max(1e-10, abs(end_clip.w));
|
|
120
|
+
|
|
121
|
+
// the start, onto the frustum
|
|
122
|
+
var delta = end_clip.xyz - (*ray).start_ndc;
|
|
123
|
+
let near_edge = select(vec3<f32>(-1.0, -1.0, 0.0), vec3<f32>(1.0, 1.0, 1.0), delta < vec3<f32>(0.0));
|
|
124
|
+
let to_near_edge = (near_edge - (*ray).start_ndc) / delta;
|
|
125
|
+
|
|
126
|
+
(*ray).start_ndc += delta * max(0.0, max(to_near_edge.x, to_near_edge.y));
|
|
127
|
+
|
|
128
|
+
// the end, onto the frustum
|
|
129
|
+
delta = end_clip.xyz - (*ray).start_ndc;
|
|
130
|
+
let far_edge = select(vec3<f32>(-1.0, -1.0, 0.0), vec3<f32>(1.0, 1.0, 1.0), delta >= vec3<f32>(0.0));
|
|
131
|
+
let to_far_edge = (far_edge - (*ray).start_ndc) / delta;
|
|
132
|
+
let nearest_far_edge = min(min(to_far_edge.x, to_far_edge.y), to_far_edge.z);
|
|
133
|
+
|
|
134
|
+
delta *= select(min(1.0, nearest_far_edge), nearest_far_edge, infinite);
|
|
135
|
+
|
|
136
|
+
(*ray).end_ndc = (*ray).start_ndc + delta;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* March to an NDC point, clipped to the frustum.
|
|
141
|
+
*/
|
|
142
|
+
fn screen_space_linear_ray_to_ndc(ray: ptr<function, ScreenSpaceLinearRay>, end_ndc: vec3<f32>) {
|
|
143
|
+
let direction = vec4<f32>(end_ndc - (*ray).start_ndc, 0.0) * sign(end_ndc.z);
|
|
144
|
+
|
|
145
|
+
screen_space_linear_ray_clip(ray, direction, false);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* March to a world-space point, clipped to the frustum.
|
|
150
|
+
*/
|
|
151
|
+
fn screen_space_linear_ray_to_world(ray: ptr<function, ScreenSpaceLinearRay>, end_ws: vec3<f32>, view_projection: mat4x4<f32>) {
|
|
152
|
+
screen_space_linear_ray_to_ndc(ray, v3_matrix4_project(end_ws, view_projection));
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* March toward a world-space direction, to the frustum's edge.
|
|
157
|
+
*/
|
|
158
|
+
fn screen_space_linear_ray_to_world_direction(ray: ptr<function, ScreenSpaceLinearRay>, direction_ws: vec3<f32>, view_projection: mat4x4<f32>) {
|
|
159
|
+
screen_space_linear_ray_clip(ray, view_projection * vec4<f32>(direction_ws, 0.0), true);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
fn screen_space_linear_ray_sample(
|
|
163
|
+
ray: ptr<function, ScreenSpaceLinearRay>,
|
|
164
|
+
depth: texture_2d<f32>,
|
|
165
|
+
size: vec2<f32>,
|
|
166
|
+
camera: ${CAMERA_UNIFORM_STRUCT.wgsl_ref},
|
|
167
|
+
point_ndc: vec3<f32>,
|
|
168
|
+
) -> ScreenSpaceLinearRaySample {
|
|
169
|
+
let uv = ndc_to_uv(point_ndc.xy);
|
|
170
|
+
|
|
171
|
+
let ray_depth = get_view_space_depth(point_ndc.z, camera);
|
|
172
|
+
|
|
173
|
+
// the four texels around the point, clamped to the edge; the nearest of them is the point sample
|
|
174
|
+
let footprint = get_bilinear_filter_texel(uv * size - 0.5);
|
|
175
|
+
let base = vec2<i32>(footprint.origin);
|
|
176
|
+
let last = vec2<i32>(size) - 1;
|
|
177
|
+
|
|
178
|
+
let d00 = textureLoad(depth, clamp(base, vec2<i32>(0), last), 0).r;
|
|
179
|
+
let d10 = textureLoad(depth, clamp(base + vec2<i32>(1, 0), vec2<i32>(0), last), 0).r;
|
|
180
|
+
let d01 = textureLoad(depth, clamp(base + vec2<i32>(0, 1), vec2<i32>(0), last), 0).r;
|
|
181
|
+
let d11 = textureLoad(depth, clamp(base + vec2<i32>(1, 1), vec2<i32>(0), last), 0).r;
|
|
182
|
+
|
|
183
|
+
let right = footprint.weights.x >= 0.5;
|
|
184
|
+
let nearest = select(select(d00, d10, right), select(d01, d11, right), footprint.weights.y >= 0.5);
|
|
185
|
+
|
|
186
|
+
let unfiltered_depth = get_view_space_depth(nearest, camera);
|
|
187
|
+
var linear_depth = get_view_space_depth(interpolate_bilinear_f32(vec4<f32>(d00, d10, d01, d11), footprint.weights), camera);
|
|
188
|
+
|
|
189
|
+
if ((*ray).use_sloppy_march) {
|
|
190
|
+
linear_depth = unfiltered_depth;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
// relative, so it scales with the depth it pads
|
|
194
|
+
const BIAS = 0.000002;
|
|
195
|
+
|
|
196
|
+
var result: ScreenSpaceLinearRaySample;
|
|
197
|
+
|
|
198
|
+
result.distance = max(linear_depth, unfiltered_depth) * (1.0 + BIAS) - ray_depth;
|
|
199
|
+
result.penetration = ray_depth - min(linear_depth, unfiltered_depth);
|
|
200
|
+
result.valid = !(*ray).march_behind_surfaces || result.penetration < (*ray).depth_thickness;
|
|
201
|
+
|
|
202
|
+
return result;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
fn screen_space_linear_ray_occludes(s: ScreenSpaceLinearRaySample) -> bool {
|
|
206
|
+
return s.distance < 0.0 && s.valid;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* March the ray against \`depth\`, a device-depth buffer under \`camera\`'s projection.
|
|
211
|
+
*/
|
|
212
|
+
fn screen_space_linear_ray_march(
|
|
213
|
+
ray: ptr<function, ScreenSpaceLinearRay>,
|
|
214
|
+
depth: texture_2d<f32>,
|
|
215
|
+
camera: ${CAMERA_UNIFORM_STRUCT.wgsl_ref},
|
|
216
|
+
) -> ScreenSpaceLinearRayHit {
|
|
217
|
+
let size = vec2<f32>(textureDimensions(depth));
|
|
218
|
+
|
|
219
|
+
let start = (*ray).start_ndc;
|
|
220
|
+
let direction = (*ray).end_ndc - start;
|
|
221
|
+
|
|
222
|
+
let start_uv = ndc_to_uv(start.xy);
|
|
223
|
+
let end_uv = ndc_to_uv((*ray).end_ndc.xy);
|
|
224
|
+
|
|
225
|
+
// never more than one step per pixel, nor more than the limit; two at least
|
|
226
|
+
let length_px = length((end_uv - start_uv) * size);
|
|
227
|
+
let step_count = max(2u, min(min((*ray).linear_steps, SCREEN_SPACE_LINEAR_RAY_STEP_LIMIT), u32(floor(length_px))));
|
|
228
|
+
|
|
229
|
+
var min_t = 0.0;
|
|
230
|
+
var max_t = 1.0;
|
|
231
|
+
|
|
232
|
+
var min_sample = ScreenSpaceLinearRaySample(0.0, false, 0.0);
|
|
233
|
+
var max_sample = ScreenSpaceLinearRaySample(0.0, false, 0.0);
|
|
234
|
+
|
|
235
|
+
var intersected = false;
|
|
236
|
+
|
|
237
|
+
var result: ScreenSpaceLinearRayHit;
|
|
238
|
+
|
|
239
|
+
result.hit = false;
|
|
240
|
+
result.steps = 0u;
|
|
241
|
+
|
|
242
|
+
// linear search for the first step behind both depth reads
|
|
243
|
+
for (var step = 0u; step < step_count; step++) {
|
|
244
|
+
let candidate_t = pow((f32(step) + (*ray).jitter) / f32(step_count), (*ray).linear_march_exponent);
|
|
245
|
+
let candidate = screen_space_linear_ray_sample(ray, depth, size, camera, start + direction * candidate_t);
|
|
246
|
+
|
|
247
|
+
result.steps = step + 1u;
|
|
248
|
+
|
|
249
|
+
if (screen_space_linear_ray_occludes(candidate)) {
|
|
250
|
+
max_t = candidate_t;
|
|
251
|
+
max_sample = candidate;
|
|
252
|
+
intersected = true;
|
|
253
|
+
break;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
min_t = candidate_t;
|
|
257
|
+
min_sample = candidate;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
var hit_t = min_t;
|
|
261
|
+
var hit_sample = min_sample;
|
|
262
|
+
|
|
263
|
+
if (intersected) {
|
|
264
|
+
// narrow [min_t, max_t] around the crossing
|
|
265
|
+
let bisection_steps = min((*ray).bisection_steps, SCREEN_SPACE_LINEAR_RAY_BISECTION_LIMIT);
|
|
266
|
+
|
|
267
|
+
for (var i = 0u; i < bisection_steps; i++) {
|
|
268
|
+
let mid_t = (min_t + max_t) * 0.5;
|
|
269
|
+
let candidate = screen_space_linear_ray_sample(ray, depth, size, camera, start + direction * mid_t);
|
|
270
|
+
|
|
271
|
+
if (screen_space_linear_ray_occludes(candidate)) {
|
|
272
|
+
max_t = mid_t;
|
|
273
|
+
max_sample = candidate;
|
|
274
|
+
} else {
|
|
275
|
+
min_t = mid_t;
|
|
276
|
+
min_sample = candidate;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
hit_t = max_t;
|
|
281
|
+
hit_sample = max_sample;
|
|
282
|
+
|
|
283
|
+
if ((*ray).use_secant) {
|
|
284
|
+
// where the line through the bracket's two distances crosses zero; kept only if it is closer
|
|
285
|
+
let mid_t = mix(min_t, max_t, min_sample.distance / (min_sample.distance - max_sample.distance));
|
|
286
|
+
let candidate = screen_space_linear_ray_sample(ray, depth, size, camera, start + direction * mid_t);
|
|
287
|
+
|
|
288
|
+
if (abs(candidate.distance) < min_sample.distance * 0.9 && candidate.valid) {
|
|
289
|
+
hit_t = mid_t;
|
|
290
|
+
hit_sample = candidate;
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
result.t = hit_t;
|
|
296
|
+
result.uv = mix(start_uv, end_uv, hit_t);
|
|
297
|
+
|
|
298
|
+
let thickness = (*ray).depth_thickness;
|
|
299
|
+
|
|
300
|
+
if (intersected && hit_sample.penetration < thickness && hit_sample.distance < thickness) {
|
|
301
|
+
result.hit = true;
|
|
302
|
+
result.penetration = hit_sample.penetration;
|
|
303
|
+
result.penetration_fraction = hit_sample.penetration / thickness;
|
|
304
|
+
} else {
|
|
305
|
+
// the furthest the march got clear
|
|
306
|
+
result.t = min_t;
|
|
307
|
+
result.uv = mix(start_uv, end_uv, min_t);
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
return result;
|
|
311
|
+
}
|
|
312
|
+
`, [
|
|
313
|
+
chunk_v3_matrix4_project,
|
|
314
|
+
chunk_ndc_to_uv,
|
|
315
|
+
chunk_get_view_space_depth,
|
|
316
|
+
chunk_get_bilinear_filter_texel,
|
|
317
|
+
chunk_interpolate_bilinear_f32,
|
|
318
|
+
]
|
|
319
|
+
);
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {import("./ShaderSwitch.js").ShaderSwitch} ShaderSwitch
|
|
3
|
+
* @typedef {import("./ShaderSwitchSet.js").ShaderSwitchSet} ShaderSwitchSet
|
|
4
|
+
*/
|
|
1
5
|
export class CodeChunk {
|
|
2
6
|
/**
|
|
3
7
|
* Special singleton
|
|
@@ -11,6 +15,13 @@ export class CodeChunk {
|
|
|
11
15
|
* @returns {CodeChunk}
|
|
12
16
|
*/
|
|
13
17
|
static from(code: string, dependencies?: CodeChunk[]): CodeChunk;
|
|
18
|
+
/**
|
|
19
|
+
* @param {CodeChunk} chunk
|
|
20
|
+
* @param {ShaderSwitchSet} set
|
|
21
|
+
* @param {Map<CodeChunk, CodeChunk>} memo what each chunk of this call's graph became
|
|
22
|
+
* @returns {CodeChunk}
|
|
23
|
+
*/
|
|
24
|
+
static "__#71@#specialize"(chunk: CodeChunk, set: ShaderSwitchSet, memo: Map<CodeChunk, CodeChunk>): CodeChunk;
|
|
14
25
|
get isCodeChunk(): boolean;
|
|
15
26
|
/**
|
|
16
27
|
*
|
|
@@ -51,6 +62,26 @@ export class CodeChunk {
|
|
|
51
62
|
* @returns {CodeChunk[]}
|
|
52
63
|
*/
|
|
53
64
|
collectDependencies(): CodeChunk[];
|
|
65
|
+
/**
|
|
66
|
+
* Every {@link ShaderSwitch} this chunk's graph decides somewhere, through every alternative of
|
|
67
|
+
* every {@link CodeChunkChoice}, selected or not: the switches a shader built on it depends on.
|
|
68
|
+
* Each appears once, in the order a breadth-first walk from here meets it.
|
|
69
|
+
*
|
|
70
|
+
* @returns {ShaderSwitch[]}
|
|
71
|
+
*/
|
|
72
|
+
collectSwitches(): ShaderSwitch[];
|
|
73
|
+
/**
|
|
74
|
+
* This graph as `set` makes it: every {@link CodeChunkChoice} in it replaced by the alternative
|
|
75
|
+
* `set` selects, so the result holds no choice and links like any other graph.
|
|
76
|
+
*
|
|
77
|
+
* Only what lies above a choice is new. A chunk whose closure holds no choice is returned as it is,
|
|
78
|
+
* and so is this chunk when the whole graph holds none. Within one call each chunk is specialized
|
|
79
|
+
* once, so what two chunks share in this graph they still share in the result.
|
|
80
|
+
*
|
|
81
|
+
* @param {ShaderSwitchSet} set
|
|
82
|
+
* @returns {CodeChunk}
|
|
83
|
+
*/
|
|
84
|
+
specialize(set: ShaderSwitchSet): CodeChunk;
|
|
54
85
|
/**
|
|
55
86
|
* Unroll all dependencies, excluding this chunk, into a single list where all dependencies are in the correct order
|
|
56
87
|
* @return {CodeChunk[]}
|
|
@@ -88,5 +119,7 @@ export class CodeChunk {
|
|
|
88
119
|
equals(other: CodeChunk): boolean;
|
|
89
120
|
#private;
|
|
90
121
|
}
|
|
122
|
+
export type ShaderSwitch = import("./ShaderSwitch.js").ShaderSwitch;
|
|
123
|
+
export type ShaderSwitchSet = import("./ShaderSwitchSet.js").ShaderSwitchSet;
|
|
91
124
|
import { WebGPUExtensionType } from "../../../descriptor/WebGPUExtensionType.js";
|
|
92
125
|
//# sourceMappingURL=CodeChunk.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeChunk.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shader/compiler/CodeChunk.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CodeChunk.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shader/compiler/CodeChunk.js"],"names":[],"mappings":"AAMA;;;GAGG;AAGH;IAMI;;;OAGG;IACH,cAFU,SAAS,SAAS,CAAC,CAEoB;IAkGjD;;;;;OAKG;IACH,kBAHW,MAAM,iBADN,SAAS,EAAE,GAET,SAAS,CAqBrB;IA+JD;;;;;OAKG;IACH,kCALW,SAAS,OACT,eAAe,QACf,IAAI,SAAS,EAAE,SAAS,CAAC,GACvB,SAAS,CAsDrB;IA5VD,2BAEC;IAcD;;;OAGG;IACH,mBAEC;IAeD;;;;OAIG;IACH,wBAHW,mBAAmB,GACjB,OAAO,CAMnB;IAkBD;;;OAGG;IACH,gCAHW,MAAM,GACJ,OAAO,CAMnB;IAED;;;;OAIG;IACH,0BAHW,SAAS,GACP,OAAO,CAmBnB;IAqCD;;;;OAIG;IACH,6CAHW,IAAI,SAAS,CAAC,GACZ,OAAO,CAgBnB;IAED;;;;OAIG;IACH,+BAHW,SAAS,GACP,OAAO,CAqBnB;IAED;;;OAGG;IACH,uBAFa,SAAS,EAAE,CAuCvB;IAED;;;;;;OAMG;IACH,mBAFa,YAAY,EAAE,CA0C1B;IAED;;;;;;;;;;OAUG;IACH,gBAHW,eAAe,GACb,SAAS,CAOrB;IA8DD;;;OAGG;IACH,wBAFY,SAAS,EAAE,CAgDtB;IAED;;OAEG;IACH,WAFa;QAAC,IAAI,EAAC,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,mBAAmB,EAAE,MAAM,EAAE,CAAA;KAAC,CA4C9E;IAED,mBAEC;IAED;;;OAGG;IACH,QAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,YAFW,SAAS,QAOnB;IAED;;;OAGG;IACH,SAFY,SAAS,CAQpB;IAED;;;;OAIG;IACH,cAHW,SAAS,GACP,OAAO,CAgBnB;;CACJ;2BA/fY,OAAO,mBAAmB,EAAE,YAAY;8BACxC,OAAO,sBAAsB,EAAE,eAAe;oCAJvB,4CAA4C"}
|