@woosh/meep-engine 3.46.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/actions/concrete/TransformModifyAction.d.ts.map +1 -1
- package/editor/actions/concrete/TransformModifyAction.js +10 -2
- package/editor/ecs/component/FieldDescriptor.js +15 -0
- package/editor/ecs/component/createObjectEditor.js +41 -12
- package/editor/ecs/component/editors/ecs/Transform64Editor.d.ts.map +1 -1
- package/editor/ecs/component/editors/ecs/Transform64Editor.js +77 -70
- 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/tools/TransformToolV2.d.ts.map +1 -1
- package/editor/tools/TransformToolV2.js +4 -0
- package/editor/tools/v2/TransformControls.d.ts.map +1 -1
- package/editor/tools/v2/TransformControls.js +7 -0
- package/editor/view/ecs/EntityEditor.d.ts.map +1 -1
- package/editor/view/ecs/EntityEditor.js +4 -2
- package/editor/view/particles/effect/ParticleGraphEditorView.js +1 -1
- package/package.json +1 -1
- package/src/core/collection/array/array_insert_at.d.ts +16 -0
- package/src/core/collection/array/array_insert_at.d.ts.map +1 -0
- package/src/core/collection/array/array_insert_at.js +32 -0
- package/src/core/collection/array/array_remove_at.d.ts +15 -0
- package/src/core/collection/array/array_remove_at.d.ts.map +1 -0
- package/src/core/collection/array/array_remove_at.js +30 -0
- package/src/core/geom/3d/quaternion/quat3_look_rotation.d.ts +37 -0
- package/src/core/geom/3d/quaternion/quat3_look_rotation.d.ts.map +1 -0
- package/src/core/geom/3d/quaternion/quat3_look_rotation.js +172 -0
- package/src/core/geom/Quaternion.d.ts +1 -0
- package/src/core/geom/Quaternion.d.ts.map +1 -1
- package/src/core/geom/Quaternion.js +12 -48
- package/src/engine/Engine.d.ts.map +1 -1
- package/src/engine/Engine.js +9 -4
- 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 +21 -0
- package/src/engine/ecs/transform/t64_look_rotation.d.ts +4 -4
- package/src/engine/ecs/transform/t64_look_rotation.d.ts.map +1 -1
- package/src/engine/ecs/transform/t64_look_rotation.js +7 -18
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.js +30 -1
- 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.d.ts +6 -0
- package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts.map +1 -1
- package/src/engine/graphics3/GPUParticleEmitterSystem.js +72 -29
- 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/input/devices/KeyboardDevice.d.ts +1 -0
- package/src/engine/input/devices/KeyboardDevice.d.ts.map +1 -1
- package/src/engine/input/devices/KeyboardDevice.js +7 -6
- package/src/engine/navigation/ecs/path_following/PathFollowingSystem.d.ts.map +1 -1
- package/src/engine/navigation/ecs/path_following/PathFollowingSystem.js +15 -2
- package/src/engine/network/CONGESTION_CONTROL.md +9 -9
- package/src/engine/network/MESSAGE_TRANSPORT.md +364 -0
- package/src/engine/network/NetworkSession.d.ts +47 -16
- package/src/engine/network/NetworkSession.d.ts.map +1 -1
- package/src/engine/network/NetworkSession.js +556 -292
- package/src/engine/network/README.md +104 -28
- package/src/engine/network/SMOOTHNESS_DESIGN.md +13 -5
- package/src/engine/network/diagnostics/BandwidthMeter.d.ts +1 -1
- package/src/engine/network/diagnostics/BandwidthMeter.js +1 -1
- package/src/engine/network/orchestrator/HostJoin.d.ts +111 -0
- package/src/engine/network/orchestrator/HostJoin.d.ts.map +1 -0
- package/src/engine/network/orchestrator/HostJoin.js +271 -0
- package/src/engine/network/orchestrator/NetworkPeer.d.ts +151 -112
- package/src/engine/network/orchestrator/NetworkPeer.d.ts.map +1 -1
- package/src/engine/network/orchestrator/NetworkPeer.js +450 -499
- package/src/engine/network/orchestrator/PendingSlices.d.ts +30 -0
- package/src/engine/network/orchestrator/PendingSlices.d.ts.map +1 -0
- package/src/engine/network/orchestrator/PendingSlices.js +83 -0
- package/src/engine/network/orchestrator/ReliableFrames.d.ts +34 -0
- package/src/engine/network/orchestrator/ReliableFrames.d.ts.map +1 -0
- package/src/engine/network/orchestrator/ReliableFrames.js +96 -0
- package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts +77 -10
- package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts.map +1 -1
- package/src/engine/network/orchestrator/ServerAuthoritativeClient.js +236 -61
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts +59 -23
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts.map +1 -1
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.js +213 -198
- 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 +57 -17
- package/src/engine/network/sim/ActionLog.d.ts +32 -5
- package/src/engine/network/sim/ActionLog.d.ts.map +1 -1
- package/src/engine/network/sim/ActionLog.js +47 -5
- package/src/engine/network/sim/SimActionExecutor.d.ts +42 -2
- package/src/engine/network/sim/SimActionExecutor.d.ts.map +1 -1
- package/src/engine/network/sim/SimActionExecutor.js +100 -4
- package/src/engine/network/sim/Snapshotter.d.ts +12 -0
- package/src/engine/network/sim/Snapshotter.d.ts.map +1 -1
- package/src/engine/network/sim/Snapshotter.js +43 -0
- package/src/engine/network/state/Baseline.d.ts +1 -1
- package/src/engine/network/state/Baseline.js +1 -1
- package/src/engine/network/state/FrameBufferRing.d.ts +25 -6
- package/src/engine/network/state/FrameBufferRing.d.ts.map +1 -1
- package/src/engine/network/state/FrameBufferRing.js +51 -6
- package/src/engine/network/state/InputRing.d.ts +4 -0
- package/src/engine/network/state/InputRing.d.ts.map +1 -1
- package/src/engine/network/state/InputRing.js +7 -0
- 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/network/transport/DeferredTransport.d.ts.map +1 -1
- package/src/engine/network/transport/DeferredTransport.js +1 -0
- package/src/engine/network/transport/LoopbackTransport.d.ts.map +1 -1
- package/src/engine/network/transport/LoopbackTransport.js +4 -2
- package/src/engine/network/transport/Transport.d.ts +7 -0
- package/src/engine/network/transport/Transport.d.ts.map +1 -1
- package/src/engine/network/transport/Transport.js +8 -0
- package/src/engine/network/transport/adapters/NodeUDPTransport.d.ts.map +1 -1
- package/src/engine/network/transport/adapters/NodeUDPTransport.js +20 -5
- package/src/engine/network/transport/adapters/WebRTCDataChannelTransport.d.ts.map +1 -1
- package/src/engine/network/transport/adapters/WebRTCDataChannelTransport.js +8 -0
- package/src/engine/network/transport/adapters/WebTransportTransport.d.ts.map +1 -1
- package/src/engine/network/transport/adapters/WebTransportTransport.js +6 -0
- package/src/engine/network/transport/connection/Connection.d.ts +191 -0
- package/src/engine/network/transport/connection/Connection.d.ts.map +1 -0
- package/src/engine/network/transport/connection/Connection.js +1262 -0
- package/src/engine/network/transport/connection/RangeSet.d.ts +94 -0
- package/src/engine/network/transport/connection/RangeSet.d.ts.map +1 -0
- package/src/engine/network/transport/connection/RangeSet.js +260 -0
- package/src/engine/network/transport/connection/RxStream.d.ts +48 -0
- package/src/engine/network/transport/connection/RxStream.d.ts.map +1 -0
- package/src/engine/network/transport/connection/RxStream.js +211 -0
- package/src/engine/network/transport/connection/TxStream.d.ts +90 -0
- package/src/engine/network/transport/connection/TxStream.d.ts.map +1 -0
- package/src/engine/network/transport/connection/TxStream.js +243 -0
- package/src/engine/network/transport/connection/bytes_copy.d.ts +17 -0
- package/src/engine/network/transport/connection/bytes_copy.d.ts.map +1 -0
- package/src/engine/network/transport/connection/bytes_copy.js +34 -0
- package/src/engine/network/transport/connection/varint.d.ts +46 -0
- package/src/engine/network/transport/connection/varint.d.ts.map +1 -0
- package/src/engine/network/transport/connection/varint.js +107 -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/engine/sound/ecs/audio/AudioEmitter.d.ts +38 -7
- package/src/engine/sound/ecs/audio/AudioEmitter.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/AudioEmitter.js +35 -7
- package/src/engine/sound/ecs/audio/AudioEmitterSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/AudioEmitterSerializationAdapter.js +5 -1
- package/src/engine/sound/ecs/audio/AudioEmitterSerializationUpgrader_0_1.d.ts +18 -0
- package/src/engine/sound/ecs/audio/AudioEmitterSerializationUpgrader_0_1.d.ts.map +1 -0
- package/src/engine/sound/ecs/audio/AudioEmitterSerializationUpgrader_0_1.js +48 -0
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts +12 -2
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.js +173 -9
- package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts +9 -3
- package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/LiveEmitterSet.js +28 -8
- package/src/engine/sound/ecs/trigger/AudioEventTrigger.d.ts +8 -0
- package/src/engine/sound/ecs/trigger/AudioEventTrigger.d.ts.map +1 -1
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationAdapter.js +5 -1
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationUpgrader_0_1.d.ts +18 -0
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationUpgrader_0_1.d.ts.map +1 -0
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationUpgrader_0_1.js +51 -0
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.js +15 -1
- package/src/engine/sound/sopra/README.md +768 -644
- package/src/engine/sound/sopra/SopraEngine.d.ts +104 -8
- package/src/engine/sound/sopra/SopraEngine.d.ts.map +1 -1
- package/src/engine/sound/sopra/SopraEngine.js +327 -12
- package/src/engine/sound/sopra/definition/EventDescription.d.ts +28 -2
- package/src/engine/sound/sopra/definition/EventDescription.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/EventDescription.js +55 -5
- package/src/engine/sound/sopra/definition/EventDescriptionSerializationAdapter.d.ts +10 -0
- package/src/engine/sound/sopra/definition/EventDescriptionSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/EventDescriptionSerializationAdapter.js +77 -55
- package/src/engine/sound/sopra/definition/EventDescriptionSerializationUpgrader_0_1.d.ts +31 -0
- package/src/engine/sound/sopra/definition/EventDescriptionSerializationUpgrader_0_1.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/EventDescriptionSerializationUpgrader_0_1.js +75 -0
- package/src/engine/sound/sopra/definition/effect/AbstractAudioEffect.d.ts +38 -9
- package/src/engine/sound/sopra/definition/effect/AbstractAudioEffect.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/effect/AbstractAudioEffect.js +34 -5
- package/src/engine/sound/sopra/definition/effect/CompressorEffect.d.ts +7 -2
- package/src/engine/sound/sopra/definition/effect/CompressorEffect.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/effect/CompressorEffect.js +137 -122
- package/src/engine/sound/sopra/definition/effect/EqEffect.d.ts +3 -1
- package/src/engine/sound/sopra/definition/effect/EqEffect.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/effect/EqEffect.js +146 -131
- package/src/engine/sound/sopra/definition/effect/ReverbEffect.d.ts +1 -0
- package/src/engine/sound/sopra/definition/effect/ReverbEffect.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/effect/ReverbEffect.js +6 -1
- package/src/engine/sound/sopra/runtime/BusGraph.d.ts +44 -2
- package/src/engine/sound/sopra/runtime/BusGraph.d.ts.map +1 -1
- package/src/engine/sound/sopra/runtime/BusGraph.js +83 -43
- package/src/engine/sound/sopra/runtime/EffectChain.d.ts +96 -0
- package/src/engine/sound/sopra/runtime/EffectChain.d.ts.map +1 -0
- package/src/engine/sound/sopra/runtime/EffectChain.js +286 -0
- package/src/engine/sound/sopra/runtime/EffectParamOverrides.d.ts +123 -0
- package/src/engine/sound/sopra/runtime/EffectParamOverrides.d.ts.map +1 -0
- package/src/engine/sound/sopra/runtime/EffectParamOverrides.js +320 -0
- package/src/engine/sound/sopra/runtime/EventInstance.d.ts +55 -5
- package/src/engine/sound/sopra/runtime/EventInstance.d.ts.map +1 -1
- package/src/engine/sound/sopra/runtime/EventInstance.js +201 -26
- package/src/engine/sound/sopra/serialization/populateSopraSerializationRegistry.d.ts +2 -1
- package/src/engine/sound/sopra/serialization/populateSopraSerializationRegistry.d.ts.map +1 -1
- package/src/engine/sound/sopra/serialization/populateSopraSerializationRegistry.js +6 -1
- package/src/engine/sound/sopra/serialization/sopraSerializationHarness.d.ts +15 -0
- package/src/engine/sound/sopra/serialization/sopraSerializationHarness.d.ts.map +1 -1
- package/src/engine/sound/sopra/serialization/sopraSerializationHarness.js +32 -0
- package/src/engine/sound/sopra/util/MockAudioContext.d.ts.map +1 -1
- package/src/engine/sound/sopra/util/MockAudioContext.js +3 -0
- package/src/engine/sound/sopra/util/fadeOutAndStop.d.ts +13 -3
- package/src/engine/sound/sopra/util/fadeOutAndStop.d.ts.map +1 -1
- package/src/engine/sound/sopra/util/fadeOutAndStop.js +25 -13
- package/src/shade/RENDERER_CONTRACT.md +6 -3
- package/src/shade/device/SHADE_DEVICE_FLOOR.d.ts +24 -0
- package/src/shade/device/SHADE_DEVICE_FLOOR.d.ts.map +1 -0
- package/src/shade/device/SHADE_DEVICE_FLOOR.js +34 -0
- package/src/shade/device/ShadeDeviceFailure.d.ts +12 -5
- package/src/shade/device/ShadeDeviceFailure.d.ts.map +1 -1
- package/src/shade/device/ShadeDeviceFailure.js +17 -8
- package/src/shade/device/ShadeDeviceFailureReason.d.ts +1 -1
- package/src/shade/device/ShadeDeviceFailureReason.js +2 -2
- 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/device/shade_device_floor_unmet.d.ts +13 -0
- package/src/shade/device/shade_device_floor_unmet.d.ts.map +1 -0
- package/src/shade/device/shade_device_floor_unmet.js +32 -0
- 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 +37 -3
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +237 -67
- 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/GPUBufferAllocator.d.ts.map +1 -1
- package/src/shade/renderer/buffer/GPUBufferAllocator.js +9 -0
- package/src/shade/renderer/buffer/buffer_pool_ops.d.ts +21 -12
- package/src/shade/renderer/buffer/buffer_pool_ops.d.ts.map +1 -1
- package/src/shade/renderer/buffer/buffer_pool_ops.js +18 -19
- 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/gpu_primitive/test/gpu_test.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/test/gpu_test.js +8 -11
- 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/pool/TransientResourcePool.d.ts +24 -0
- package/src/shade/renderer/pool/TransientResourcePool.d.ts.map +1 -1
- package/src/shade/renderer/pool/TransientResourcePool.js +41 -10
- 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 +71 -2
- 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 +299 -218
- 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/view/graphics/GraphicsContextFailureView.d.ts +1 -2
- package/src/view/graphics/GraphicsContextFailureView.d.ts.map +1 -1
- package/src/view/graphics/GraphicsContextFailureView.js +1 -2
- 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/Channel.js +0 -336
- 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/ReliableCommandPipeline.js +0 -335
- 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/FragmentAssembler.js +0 -350
- 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/FragmentRetention.js +0 -191
- 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/fragment_send.js +0 -157
- 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/engine/network/transport/fragments/packet_size.js +0 -107
- 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
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Send a logical payload through a callback, splitting into fragment
|
|
3
|
-
* packets if it exceeds the channel's single-packet capacity.
|
|
4
|
-
*
|
|
5
|
-
* Layout of each emitted fragment packet (before the Channel adds its
|
|
6
|
-
* 8-byte header):
|
|
7
|
-
*
|
|
8
|
-
* uint8 FRAGMENT_PACKET_TYPE
|
|
9
|
-
* uint16 message_id (little-endian)
|
|
10
|
-
* uint8 chunk_index
|
|
11
|
-
* uint8 total_chunks
|
|
12
|
-
* bytes chunk_payload
|
|
13
|
-
*
|
|
14
|
-
* The chunk_payload bytes are slices of the original logical payload,
|
|
15
|
-
* concatenated in chunk_index order they reconstruct the original
|
|
16
|
-
* payload byte-for-byte. The logical payload's own packet-type byte is
|
|
17
|
-
* the first byte of chunk 0 and is preserved by the reassembly.
|
|
18
|
-
*
|
|
19
|
-
* Single-packet messages (payload <= MAX_CHANNEL_PAYLOAD_BYTES) are sent
|
|
20
|
-
* as-is with NO fragmentation header — the receiver dispatches them
|
|
21
|
-
* normally via the FIRST byte. Fragmentation overhead only applies when
|
|
22
|
-
* the payload genuinely doesn't fit.
|
|
23
|
-
*
|
|
24
|
-
* @param {Uint8Array} payload
|
|
25
|
-
* @param {number} payload_length
|
|
26
|
-
* @param {number} message_id sender-assigned, unique per logical message
|
|
27
|
-
* @param {number} fragment_packet_type packet-type byte for fragment packets
|
|
28
|
-
* @param {Uint8Array} scratch reusable scratch buffer; must be >= MAX_CHANNEL_PAYLOAD_BYTES
|
|
29
|
-
* @param {function(Uint8Array, number): void} send_fn
|
|
30
|
-
* invoked once per emitted packet — single send for non-fragmented case,
|
|
31
|
-
* N sends for fragmented case
|
|
32
|
-
*/
|
|
33
|
-
export function send_fragmented(payload: Uint8Array, payload_length: number, message_id: number, fragment_packet_type: number, scratch: Uint8Array, send_fn: (arg0: Uint8Array, arg1: number) => void): void;
|
|
34
|
-
/**
|
|
35
|
-
* Number of chunks {@link send_fragmented} splits a payload of `payload_length` bytes into — the
|
|
36
|
-
* chunk indices a receiver may ask to have re-sent are `[0, count)`.
|
|
37
|
-
*
|
|
38
|
-
* @param {number} payload_length
|
|
39
|
-
* @returns {number}
|
|
40
|
-
*/
|
|
41
|
-
export function fragment_chunk_count(payload_length: number): number;
|
|
42
|
-
/**
|
|
43
|
-
* Re-emit a single fragment chunk for a previously-sent fragmented
|
|
44
|
-
* message. Used by the NACK retransmit path: the sender's
|
|
45
|
-
* {@link FragmentRetention} keeps the source bytes so any chunk can be
|
|
46
|
-
* deterministically rebuilt.
|
|
47
|
-
*
|
|
48
|
-
* The wire layout matches what {@link send_fragmented} would have
|
|
49
|
-
* produced for the same `(message_id, chunk_index, total_chunks)` —
|
|
50
|
-
* receivers can't tell a retransmit from an original.
|
|
51
|
-
*
|
|
52
|
-
* @param {Uint8Array} payload retained source bytes
|
|
53
|
-
* @param {number} payload_length
|
|
54
|
-
* @param {number} message_id
|
|
55
|
-
* @param {number} chunk_index must be < derived total_chunks; silently ignored otherwise
|
|
56
|
-
* @param {number} fragment_packet_type
|
|
57
|
-
* @param {Uint8Array} scratch reusable scratch; must be >= MAX_CHANNEL_PAYLOAD_BYTES
|
|
58
|
-
* @param {function(Uint8Array, number): void} send_fn
|
|
59
|
-
*/
|
|
60
|
-
export function resend_fragment_chunk(payload: Uint8Array, payload_length: number, message_id: number, chunk_index: number, fragment_packet_type: number, scratch: Uint8Array, send_fn: (arg0: Uint8Array, arg1: number) => void): void;
|
|
61
|
-
//# sourceMappingURL=fragment_send.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fragment_send.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/network/transport/fragments/fragment_send.js"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,yCATW,UAAU,kBACV,MAAM,cACN,MAAM,wBACN,MAAM,WACN,UAAU,kBACD,UAAU,QAAE,MAAM,KAAG,IAAI,QAkD5C;AAED;;;;;;GAMG;AACH,qDAHW,MAAM,GACJ,MAAM,CAQlB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,+CARW,UAAU,kBACV,MAAM,cACN,MAAM,eACN,MAAM,wBACN,MAAM,WACN,UAAU,kBACD,UAAU,QAAE,MAAM,KAAG,IAAI,QAqC5C"}
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
import { assert } from "../../../../core/assert.js";
|
|
2
|
-
import {
|
|
3
|
-
FRAGMENT_HEADER_BYTES,
|
|
4
|
-
MAX_CHANNEL_PAYLOAD_BYTES,
|
|
5
|
-
MAX_CHUNKS_PER_MESSAGE,
|
|
6
|
-
MAX_FRAGMENT_CHUNK_BYTES,
|
|
7
|
-
} from "./packet_size.js";
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Send a logical payload through a callback, splitting into fragment
|
|
11
|
-
* packets if it exceeds the channel's single-packet capacity.
|
|
12
|
-
*
|
|
13
|
-
* Layout of each emitted fragment packet (before the Channel adds its
|
|
14
|
-
* 8-byte header):
|
|
15
|
-
*
|
|
16
|
-
* uint8 FRAGMENT_PACKET_TYPE
|
|
17
|
-
* uint16 message_id (little-endian)
|
|
18
|
-
* uint8 chunk_index
|
|
19
|
-
* uint8 total_chunks
|
|
20
|
-
* bytes chunk_payload
|
|
21
|
-
*
|
|
22
|
-
* The chunk_payload bytes are slices of the original logical payload,
|
|
23
|
-
* concatenated in chunk_index order they reconstruct the original
|
|
24
|
-
* payload byte-for-byte. The logical payload's own packet-type byte is
|
|
25
|
-
* the first byte of chunk 0 and is preserved by the reassembly.
|
|
26
|
-
*
|
|
27
|
-
* Single-packet messages (payload <= MAX_CHANNEL_PAYLOAD_BYTES) are sent
|
|
28
|
-
* as-is with NO fragmentation header — the receiver dispatches them
|
|
29
|
-
* normally via the FIRST byte. Fragmentation overhead only applies when
|
|
30
|
-
* the payload genuinely doesn't fit.
|
|
31
|
-
*
|
|
32
|
-
* @param {Uint8Array} payload
|
|
33
|
-
* @param {number} payload_length
|
|
34
|
-
* @param {number} message_id sender-assigned, unique per logical message
|
|
35
|
-
* @param {number} fragment_packet_type packet-type byte for fragment packets
|
|
36
|
-
* @param {Uint8Array} scratch reusable scratch buffer; must be >= MAX_CHANNEL_PAYLOAD_BYTES
|
|
37
|
-
* @param {function(Uint8Array, number): void} send_fn
|
|
38
|
-
* invoked once per emitted packet — single send for non-fragmented case,
|
|
39
|
-
* N sends for fragmented case
|
|
40
|
-
*/
|
|
41
|
-
export function send_fragmented(
|
|
42
|
-
payload,
|
|
43
|
-
payload_length,
|
|
44
|
-
message_id,
|
|
45
|
-
fragment_packet_type,
|
|
46
|
-
scratch,
|
|
47
|
-
send_fn,
|
|
48
|
-
) {
|
|
49
|
-
assert.isNonNegativeInteger(payload_length, 'payload_length');
|
|
50
|
-
assert.isNonNegativeInteger(message_id, 'message_id');
|
|
51
|
-
assert.ok(message_id <= 0xFFFF, 'message_id must fit in uint16');
|
|
52
|
-
assert.ok(scratch.length >= MAX_CHANNEL_PAYLOAD_BYTES,
|
|
53
|
-
'scratch buffer must be at least MAX_CHANNEL_PAYLOAD_BYTES');
|
|
54
|
-
|
|
55
|
-
if (payload_length <= MAX_CHANNEL_PAYLOAD_BYTES) {
|
|
56
|
-
// Fits in one packet; send as-is.
|
|
57
|
-
send_fn(payload, payload_length);
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
const total_chunks = Math.ceil(payload_length / MAX_FRAGMENT_CHUNK_BYTES);
|
|
62
|
-
if (total_chunks > MAX_CHUNKS_PER_MESSAGE) {
|
|
63
|
-
throw new Error(
|
|
64
|
-
`send_fragmented: payload of ${payload_length} bytes would require ` +
|
|
65
|
-
`${total_chunks} chunks, exceeding the ${MAX_CHUNKS_PER_MESSAGE}-chunk wire limit`
|
|
66
|
-
);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
for (let i = 0; i < total_chunks; i++) {
|
|
70
|
-
const chunk_offset = i * MAX_FRAGMENT_CHUNK_BYTES;
|
|
71
|
-
const remaining = payload_length - chunk_offset;
|
|
72
|
-
const chunk_size = remaining < MAX_FRAGMENT_CHUNK_BYTES ? remaining : MAX_FRAGMENT_CHUNK_BYTES;
|
|
73
|
-
|
|
74
|
-
// Build the fragment packet inside scratch.
|
|
75
|
-
scratch[0] = fragment_packet_type;
|
|
76
|
-
scratch[1] = message_id & 0xFF;
|
|
77
|
-
scratch[2] = (message_id >> 8) & 0xFF;
|
|
78
|
-
scratch[3] = i;
|
|
79
|
-
scratch[4] = total_chunks;
|
|
80
|
-
scratch.set(
|
|
81
|
-
payload.subarray(chunk_offset, chunk_offset + chunk_size),
|
|
82
|
-
FRAGMENT_HEADER_BYTES,
|
|
83
|
-
);
|
|
84
|
-
|
|
85
|
-
send_fn(scratch, FRAGMENT_HEADER_BYTES + chunk_size);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Number of chunks {@link send_fragmented} splits a payload of `payload_length` bytes into — the
|
|
91
|
-
* chunk indices a receiver may ask to have re-sent are `[0, count)`.
|
|
92
|
-
*
|
|
93
|
-
* @param {number} payload_length
|
|
94
|
-
* @returns {number}
|
|
95
|
-
*/
|
|
96
|
-
export function fragment_chunk_count(payload_length) {
|
|
97
|
-
// Payloads short enough to not fragment in the first place are never
|
|
98
|
-
// retained, so the 1 is defensive consistency rather than a real case.
|
|
99
|
-
return payload_length <= MAX_FRAGMENT_CHUNK_BYTES
|
|
100
|
-
? 1
|
|
101
|
-
: Math.ceil(payload_length / MAX_FRAGMENT_CHUNK_BYTES);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Re-emit a single fragment chunk for a previously-sent fragmented
|
|
106
|
-
* message. Used by the NACK retransmit path: the sender's
|
|
107
|
-
* {@link FragmentRetention} keeps the source bytes so any chunk can be
|
|
108
|
-
* deterministically rebuilt.
|
|
109
|
-
*
|
|
110
|
-
* The wire layout matches what {@link send_fragmented} would have
|
|
111
|
-
* produced for the same `(message_id, chunk_index, total_chunks)` —
|
|
112
|
-
* receivers can't tell a retransmit from an original.
|
|
113
|
-
*
|
|
114
|
-
* @param {Uint8Array} payload retained source bytes
|
|
115
|
-
* @param {number} payload_length
|
|
116
|
-
* @param {number} message_id
|
|
117
|
-
* @param {number} chunk_index must be < derived total_chunks; silently ignored otherwise
|
|
118
|
-
* @param {number} fragment_packet_type
|
|
119
|
-
* @param {Uint8Array} scratch reusable scratch; must be >= MAX_CHANNEL_PAYLOAD_BYTES
|
|
120
|
-
* @param {function(Uint8Array, number): void} send_fn
|
|
121
|
-
*/
|
|
122
|
-
export function resend_fragment_chunk(
|
|
123
|
-
payload,
|
|
124
|
-
payload_length,
|
|
125
|
-
message_id,
|
|
126
|
-
chunk_index,
|
|
127
|
-
fragment_packet_type,
|
|
128
|
-
scratch,
|
|
129
|
-
send_fn,
|
|
130
|
-
) {
|
|
131
|
-
assert.isNonNegativeInteger(payload_length, 'payload_length');
|
|
132
|
-
assert.isNonNegativeInteger(message_id, 'message_id');
|
|
133
|
-
assert.ok(message_id <= 0xFFFF, 'message_id must fit in uint16');
|
|
134
|
-
assert.isNonNegativeInteger(chunk_index, 'chunk_index');
|
|
135
|
-
assert.ok(scratch.length >= MAX_CHANNEL_PAYLOAD_BYTES,
|
|
136
|
-
'scratch buffer must be at least MAX_CHANNEL_PAYLOAD_BYTES');
|
|
137
|
-
|
|
138
|
-
// Recover total_chunks from the retained payload length.
|
|
139
|
-
const total_chunks = fragment_chunk_count(payload_length);
|
|
140
|
-
if (chunk_index >= total_chunks) return;
|
|
141
|
-
|
|
142
|
-
const chunk_offset = chunk_index * MAX_FRAGMENT_CHUNK_BYTES;
|
|
143
|
-
const remaining = payload_length - chunk_offset;
|
|
144
|
-
const chunk_size = remaining < MAX_FRAGMENT_CHUNK_BYTES ? remaining : MAX_FRAGMENT_CHUNK_BYTES;
|
|
145
|
-
|
|
146
|
-
scratch[0] = fragment_packet_type;
|
|
147
|
-
scratch[1] = message_id & 0xFF;
|
|
148
|
-
scratch[2] = (message_id >> 8) & 0xFF;
|
|
149
|
-
scratch[3] = chunk_index;
|
|
150
|
-
scratch[4] = total_chunks;
|
|
151
|
-
scratch.set(
|
|
152
|
-
payload.subarray(chunk_offset, chunk_offset + chunk_size),
|
|
153
|
-
FRAGMENT_HEADER_BYTES,
|
|
154
|
-
);
|
|
155
|
-
|
|
156
|
-
send_fn(scratch, FRAGMENT_HEADER_BYTES + chunk_size);
|
|
157
|
-
}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Packet-size constants for the fragmentation layer.
|
|
3
|
-
*
|
|
4
|
-
* The target transport MTU is 1200 bytes (Quake / Source / Glenn Fiedler's
|
|
5
|
-
* Networked Physics recommend ~1200 to stay under typical PMTU after IP/UDP
|
|
6
|
-
* headers; ethernet 1500 - 40 IPv6 - 8 UDP = 1452 in the best case, but
|
|
7
|
-
* intermediate hops with tunnelling, IPv6 extension headers, or DSLite
|
|
8
|
-
* routinely shave this down — 1200 is the safe number).
|
|
9
|
-
*
|
|
10
|
-
* Above this, the application's logical payload must be split into chunks
|
|
11
|
-
* via {@link send_fragmented} and reassembled on the receiver via
|
|
12
|
-
* {@link FragmentAssembler}.
|
|
13
|
-
*
|
|
14
|
-
* Header overhead breakdown for a fragment packet, from the transport's
|
|
15
|
-
* point of view:
|
|
16
|
-
* - {@link Channel} adds 9 bytes (seq + ack_latest + ack_bitfield + ack_present).
|
|
17
|
-
* - The FRAGMENT packet type byte = 1 byte.
|
|
18
|
-
* - Fragment header (message_id uint16 + chunk_index uint8 + total_chunks
|
|
19
|
-
* uint8) = 4 bytes.
|
|
20
|
-
* Total overhead per fragment = 14 bytes; payload capacity per fragment =
|
|
21
|
-
* 1200 - 14 = 1186 bytes.
|
|
22
|
-
*
|
|
23
|
-
* For a logical message that fits in a single packet (no fragmentation
|
|
24
|
-
* needed), only the Channel header overhead applies — the payload starts
|
|
25
|
-
* with its own packet-type byte (e.g. ACTION_STREAM) and is sent directly.
|
|
26
|
-
*
|
|
27
|
-
* @author Alex Goldring
|
|
28
|
-
* @copyright Company Named Limited (c) 2026
|
|
29
|
-
*/
|
|
30
|
-
/** Target transport MTU. */
|
|
31
|
-
export const MTU_BYTES: 1200;
|
|
32
|
-
/** Channel layer's per-packet header size. Must match {@link Channel}'s HEADER_SIZE. */
|
|
33
|
-
export const CHANNEL_HEADER_BYTES: 9;
|
|
34
|
-
/**
|
|
35
|
-
* Bytes the Channel reserves for the actual payload (no fragmentation):
|
|
36
|
-
* MTU minus the channel header.
|
|
37
|
-
*/
|
|
38
|
-
export const MAX_CHANNEL_PAYLOAD_BYTES: number;
|
|
39
|
-
/**
|
|
40
|
-
* Fragment header bytes within the channel payload:
|
|
41
|
-
* - 1 byte for the FRAGMENT packet-type marker
|
|
42
|
-
* - 2 bytes for message_id (uint16)
|
|
43
|
-
* - 1 byte for chunk_index (uint8)
|
|
44
|
-
* - 1 byte for total_chunks (uint8)
|
|
45
|
-
*/
|
|
46
|
-
export const FRAGMENT_HEADER_BYTES: 5;
|
|
47
|
-
/** Maximum number of payload bytes per fragment packet. */
|
|
48
|
-
export const MAX_FRAGMENT_CHUNK_BYTES: number;
|
|
49
|
-
/** Maximum number of chunks in a single logical message (limited by uint8 total_chunks). */
|
|
50
|
-
export const MAX_CHUNKS_PER_MESSAGE: 255;
|
|
51
|
-
/** Largest single logical payload supportable by this fragmentation scheme. */
|
|
52
|
-
export const MAX_LOGICAL_MESSAGE_BYTES: number;
|
|
53
|
-
/**
|
|
54
|
-
* NACK retransmit timing.
|
|
55
|
-
*
|
|
56
|
-
* FRAGMENT_NACK_INITIAL_DELAY_MS — how long the receiver waits after the
|
|
57
|
-
* first chunk of a message arrives before NACKing the missing chunks.
|
|
58
|
-
* Trades off latency-of-recovery against premature NACKs for chunks
|
|
59
|
-
* that were just slightly late.
|
|
60
|
-
* FRAGMENT_NACK_RESEND_INTERVAL_MS — period between NACK retries when a
|
|
61
|
-
* message remains incomplete.
|
|
62
|
-
* FRAGMENT_NACK_MAX_ROUNDS — after this many NACK rounds without
|
|
63
|
-
* completion, the receiver drops the message; the sender's retention
|
|
64
|
-
* ages out independently.
|
|
65
|
-
*
|
|
66
|
-
* 75 ms initial delay is sized for the consumer mobile RTT bands measured
|
|
67
|
-
* across US / EU / China in 2024–2025: 5G median 15–45 ms, 4G median
|
|
68
|
-
* 30–55 ms, per-path jitter <10 ms for the majority of long-lived
|
|
69
|
-
* connections. 75 ms sits comfortably above worst-case (4G median + jitter
|
|
70
|
-
* + wire time for a small burst) so legitimate stragglers land before the
|
|
71
|
-
* NACK fires, while keeping recovery latency on real loss to ~75 ms + 1
|
|
72
|
-
* RTT. On worst-case paths the receiver may occasionally NACK chunks
|
|
73
|
-
* still in transit; the receiver-side dedup absorbs the duplicate
|
|
74
|
-
* retransmits.
|
|
75
|
-
*/
|
|
76
|
-
export const FRAGMENT_NACK_INITIAL_DELAY_MS: 75;
|
|
77
|
-
export const FRAGMENT_NACK_RESEND_INTERVAL_MS: 75;
|
|
78
|
-
export const FRAGMENT_NACK_MAX_ROUNDS: 3;
|
|
79
|
-
/**
|
|
80
|
-
* Sender-side retention bounds. The sender keeps a copy of each fragmented
|
|
81
|
-
* message's bytes so it can satisfy NACK retransmits. Retention is
|
|
82
|
-
* FIFO-evicted at `FRAGMENT_RETENTION_MAX_MESSAGES` and age-evicted at
|
|
83
|
-
* `FRAGMENT_RETENTION_MAX_AGE_MS`.
|
|
84
|
-
*
|
|
85
|
-
* Worst-case memory per peer: `FRAGMENT_RETENTION_MAX_MESSAGES *
|
|
86
|
-
* max_message_size` bytes. With the FragmentAssembler default of 64 KiB,
|
|
87
|
-
* that's 1 MiB per peer at saturation; steady-state retention is empty
|
|
88
|
-
* because steady traffic fits in one packet and bypasses fragmentation.
|
|
89
|
-
*
|
|
90
|
-
* `FRAGMENT_RETENTION_MAX_RETRIES` is how many NACKs a retained message is
|
|
91
|
-
* repaired for. A NACK re-sends each chunk of the message at most once, so
|
|
92
|
-
* whatever a peer asks, repair costs at most this many copies of a message
|
|
93
|
-
* the sender chose to send. It matches the receiver's
|
|
94
|
-
* `FRAGMENT_NACK_MAX_ROUNDS`: an honest receiver never asks more often.
|
|
95
|
-
*/
|
|
96
|
-
export const FRAGMENT_RETENTION_MAX_AGE_MS: 1500;
|
|
97
|
-
export const FRAGMENT_RETENTION_MAX_MESSAGES: 16;
|
|
98
|
-
export const FRAGMENT_RETENTION_MAX_RETRIES: 3;
|
|
99
|
-
//# sourceMappingURL=packet_size.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"packet_size.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/network/transport/fragments/packet_size.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,4BAA4B;AAC5B,6BAA8B;AAE9B,wFAAwF;AACxF,qCAAsC;AAEtC;;;GAGG;AACH,+CAA0E;AAE1E;;;;;;GAMG;AACH,sCAAuC;AAEvC,2DAA2D;AAC3D,8CAA0F;AAE1F,4FAA4F;AAC5F,yCAA0C;AAE1C,+EAA+E;AAC/E,+CAA2F;AAE3F;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,gDAAiD;AACjD,kDAAmD;AACnD,yCAA0C;AAE1C;;;;;;;;;;;;;;;;GAgBG;AACH,iDAAkD;AAClD,iDAAkD;AAClD,+CAAgD"}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Packet-size constants for the fragmentation layer.
|
|
3
|
-
*
|
|
4
|
-
* The target transport MTU is 1200 bytes (Quake / Source / Glenn Fiedler's
|
|
5
|
-
* Networked Physics recommend ~1200 to stay under typical PMTU after IP/UDP
|
|
6
|
-
* headers; ethernet 1500 - 40 IPv6 - 8 UDP = 1452 in the best case, but
|
|
7
|
-
* intermediate hops with tunnelling, IPv6 extension headers, or DSLite
|
|
8
|
-
* routinely shave this down — 1200 is the safe number).
|
|
9
|
-
*
|
|
10
|
-
* Above this, the application's logical payload must be split into chunks
|
|
11
|
-
* via {@link send_fragmented} and reassembled on the receiver via
|
|
12
|
-
* {@link FragmentAssembler}.
|
|
13
|
-
*
|
|
14
|
-
* Header overhead breakdown for a fragment packet, from the transport's
|
|
15
|
-
* point of view:
|
|
16
|
-
* - {@link Channel} adds 9 bytes (seq + ack_latest + ack_bitfield + ack_present).
|
|
17
|
-
* - The FRAGMENT packet type byte = 1 byte.
|
|
18
|
-
* - Fragment header (message_id uint16 + chunk_index uint8 + total_chunks
|
|
19
|
-
* uint8) = 4 bytes.
|
|
20
|
-
* Total overhead per fragment = 14 bytes; payload capacity per fragment =
|
|
21
|
-
* 1200 - 14 = 1186 bytes.
|
|
22
|
-
*
|
|
23
|
-
* For a logical message that fits in a single packet (no fragmentation
|
|
24
|
-
* needed), only the Channel header overhead applies — the payload starts
|
|
25
|
-
* with its own packet-type byte (e.g. ACTION_STREAM) and is sent directly.
|
|
26
|
-
*
|
|
27
|
-
* @author Alex Goldring
|
|
28
|
-
* @copyright Company Named Limited (c) 2026
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
/** Target transport MTU. */
|
|
32
|
-
export const MTU_BYTES = 1200;
|
|
33
|
-
|
|
34
|
-
/** Channel layer's per-packet header size. Must match {@link Channel}'s HEADER_SIZE. */
|
|
35
|
-
export const CHANNEL_HEADER_BYTES = 9;
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Bytes the Channel reserves for the actual payload (no fragmentation):
|
|
39
|
-
* MTU minus the channel header.
|
|
40
|
-
*/
|
|
41
|
-
export const MAX_CHANNEL_PAYLOAD_BYTES = MTU_BYTES - CHANNEL_HEADER_BYTES;
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Fragment header bytes within the channel payload:
|
|
45
|
-
* - 1 byte for the FRAGMENT packet-type marker
|
|
46
|
-
* - 2 bytes for message_id (uint16)
|
|
47
|
-
* - 1 byte for chunk_index (uint8)
|
|
48
|
-
* - 1 byte for total_chunks (uint8)
|
|
49
|
-
*/
|
|
50
|
-
export const FRAGMENT_HEADER_BYTES = 5;
|
|
51
|
-
|
|
52
|
-
/** Maximum number of payload bytes per fragment packet. */
|
|
53
|
-
export const MAX_FRAGMENT_CHUNK_BYTES = MAX_CHANNEL_PAYLOAD_BYTES - FRAGMENT_HEADER_BYTES;
|
|
54
|
-
|
|
55
|
-
/** Maximum number of chunks in a single logical message (limited by uint8 total_chunks). */
|
|
56
|
-
export const MAX_CHUNKS_PER_MESSAGE = 255;
|
|
57
|
-
|
|
58
|
-
/** Largest single logical payload supportable by this fragmentation scheme. */
|
|
59
|
-
export const MAX_LOGICAL_MESSAGE_BYTES = MAX_FRAGMENT_CHUNK_BYTES * MAX_CHUNKS_PER_MESSAGE;
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* NACK retransmit timing.
|
|
63
|
-
*
|
|
64
|
-
* FRAGMENT_NACK_INITIAL_DELAY_MS — how long the receiver waits after the
|
|
65
|
-
* first chunk of a message arrives before NACKing the missing chunks.
|
|
66
|
-
* Trades off latency-of-recovery against premature NACKs for chunks
|
|
67
|
-
* that were just slightly late.
|
|
68
|
-
* FRAGMENT_NACK_RESEND_INTERVAL_MS — period between NACK retries when a
|
|
69
|
-
* message remains incomplete.
|
|
70
|
-
* FRAGMENT_NACK_MAX_ROUNDS — after this many NACK rounds without
|
|
71
|
-
* completion, the receiver drops the message; the sender's retention
|
|
72
|
-
* ages out independently.
|
|
73
|
-
*
|
|
74
|
-
* 75 ms initial delay is sized for the consumer mobile RTT bands measured
|
|
75
|
-
* across US / EU / China in 2024–2025: 5G median 15–45 ms, 4G median
|
|
76
|
-
* 30–55 ms, per-path jitter <10 ms for the majority of long-lived
|
|
77
|
-
* connections. 75 ms sits comfortably above worst-case (4G median + jitter
|
|
78
|
-
* + wire time for a small burst) so legitimate stragglers land before the
|
|
79
|
-
* NACK fires, while keeping recovery latency on real loss to ~75 ms + 1
|
|
80
|
-
* RTT. On worst-case paths the receiver may occasionally NACK chunks
|
|
81
|
-
* still in transit; the receiver-side dedup absorbs the duplicate
|
|
82
|
-
* retransmits.
|
|
83
|
-
*/
|
|
84
|
-
export const FRAGMENT_NACK_INITIAL_DELAY_MS = 75;
|
|
85
|
-
export const FRAGMENT_NACK_RESEND_INTERVAL_MS = 75;
|
|
86
|
-
export const FRAGMENT_NACK_MAX_ROUNDS = 3;
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Sender-side retention bounds. The sender keeps a copy of each fragmented
|
|
90
|
-
* message's bytes so it can satisfy NACK retransmits. Retention is
|
|
91
|
-
* FIFO-evicted at `FRAGMENT_RETENTION_MAX_MESSAGES` and age-evicted at
|
|
92
|
-
* `FRAGMENT_RETENTION_MAX_AGE_MS`.
|
|
93
|
-
*
|
|
94
|
-
* Worst-case memory per peer: `FRAGMENT_RETENTION_MAX_MESSAGES *
|
|
95
|
-
* max_message_size` bytes. With the FragmentAssembler default of 64 KiB,
|
|
96
|
-
* that's 1 MiB per peer at saturation; steady-state retention is empty
|
|
97
|
-
* because steady traffic fits in one packet and bypasses fragmentation.
|
|
98
|
-
*
|
|
99
|
-
* `FRAGMENT_RETENTION_MAX_RETRIES` is how many NACKs a retained message is
|
|
100
|
-
* repaired for. A NACK re-sends each chunk of the message at most once, so
|
|
101
|
-
* whatever a peer asks, repair costs at most this many copies of a message
|
|
102
|
-
* the sender chose to send. It matches the receiver's
|
|
103
|
-
* `FRAGMENT_NACK_MAX_ROUNDS`: an honest receiver never asks more often.
|
|
104
|
-
*/
|
|
105
|
-
export const FRAGMENT_RETENTION_MAX_AGE_MS = 1500;
|
|
106
|
-
export const FRAGMENT_RETENTION_MAX_MESSAGES = 16;
|
|
107
|
-
export const FRAGMENT_RETENTION_MAX_RETRIES = 3;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunk_RRTAndODTFit.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shade/renderer/shader/chunk/color/sRGB/chunk_RRTAndODTFit.js"],"names":[],"mappings":"AAEA;;GAEG;AACH,2CAUI;0BAfsB,gCAAgC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* source: https://github.com/selfshadow/ltc_code/blob/master/webgl/shaders/ltc/ltc_blit.fs
|
|
5
|
-
*/
|
|
6
|
-
export const chunk_RRTAndODTFit = CodeChunk.from(
|
|
7
|
-
// language=WGSL
|
|
8
|
-
`
|
|
9
|
-
fn RRTAndODTFit( color: vec3<f32> ) -> vec3<f32> {
|
|
10
|
-
|
|
11
|
-
let a = color * ( color + 0.0245786 ) - 0.000090537;
|
|
12
|
-
let b = color * ( 0.983729 * color + 0.4329510 ) + 0.238081;
|
|
13
|
-
|
|
14
|
-
return a / b;
|
|
15
|
-
|
|
16
|
-
}`);
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* this implementation of ACES is modified to accommodate a brighter viewing environment.
|
|
3
|
-
* the scale factor of 1/0.6 is subjective. see discussion in #19621.
|
|
4
|
-
*/
|
|
5
|
-
export const chunk_tonemap_aces: CodeChunk;
|
|
6
|
-
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
7
|
-
//# sourceMappingURL=chunk_tonemap_aces.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunk_tonemap_aces.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_aces.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,2CAqCE;0BA5CwB,gCAAgC"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
2
|
-
import { chunk_RRTAndODTFit } from "../sRGB/chunk_RRTAndODTFit.js";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* this implementation of ACES is modified to accommodate a brighter viewing environment.
|
|
6
|
-
* the scale factor of 1/0.6 is subjective. see discussion in #19621.
|
|
7
|
-
*/
|
|
8
|
-
export const chunk_tonemap_aces = CodeChunk.from(
|
|
9
|
-
// language=WGSL
|
|
10
|
-
`
|
|
11
|
-
|
|
12
|
-
fn tonemap_aces( in_color:vec3<f32> ) ->vec3<f32> {
|
|
13
|
-
|
|
14
|
-
// Fitted by Stephen Hill
|
|
15
|
-
// sRGB => XYZ => D65_2_D60 => AP1 => RRT_SAT
|
|
16
|
-
const RGB_to_ACES = mat3x3(
|
|
17
|
-
vec3( 0.59719, 0.07600, 0.02840 ), // transposed from source
|
|
18
|
-
vec3( 0.35458, 0.90834, 0.13383 ),
|
|
19
|
-
vec3( 0.04823, 0.01566, 0.83777 )
|
|
20
|
-
);
|
|
21
|
-
|
|
22
|
-
// ODT_SAT => XYZ => D60_2_D65 => sRGB
|
|
23
|
-
const ACES_to_RGB = mat3x3(
|
|
24
|
-
vec3( 1.60475, -0.10208, -0.00327 ), // transposed from source
|
|
25
|
-
vec3( -0.53108, 1.10813, -0.07276 ),
|
|
26
|
-
vec3( -0.07367, -0.00605, 1.07602 )
|
|
27
|
-
);
|
|
28
|
-
|
|
29
|
-
var color = in_color;
|
|
30
|
-
|
|
31
|
-
color = RGB_to_ACES * color;
|
|
32
|
-
|
|
33
|
-
// Apply RRT and ODT curve fitting
|
|
34
|
-
color = RRTAndODTFit( color );
|
|
35
|
-
|
|
36
|
-
color = ACES_to_RGB * color;
|
|
37
|
-
|
|
38
|
-
// Clamp to [0, 1]
|
|
39
|
-
return saturate( color );
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
`, [
|
|
43
|
-
chunk_RRTAndODTFit,
|
|
44
|
-
]
|
|
45
|
-
);
|
|
46
|
-
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AgX Tone Mapping implementation based on Filament, which in turn is based
|
|
3
|
-
* on Blender's implementation using rec 2020 primaries
|
|
4
|
-
* @see https://github.com/google/filament/pull/7236
|
|
5
|
-
* @see https://github.com/google/filament/blob/2456299337f2205db5c1dd038213a46679b4cd77/filament/src/ToneMapper.cpp#L332
|
|
6
|
-
* Inputs and outputs are encoded as Linear-sRGB.
|
|
7
|
-
*/
|
|
8
|
-
export const chunk_tonemap_agx: CodeChunk;
|
|
9
|
-
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
10
|
-
//# sourceMappingURL=chunk_tonemap_agx.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunk_tonemap_agx.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_agx.js"],"names":[],"mappings":"AAqDA;;;;;;GAMG;AACH,0CAkEE;0BA9HwB,gCAAgC"}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
2
|
-
import { chunk_CRM_FROM_REC2020_TO_REC709 } from "../conversion/chunk_CRM_FROM_REC2020_TO_REC709.js";
|
|
3
|
-
import { chunk_CRM_FROM_REC709_TO_REC2020 } from "../conversion/chunk_CRM_FROM_REC709_TO_REC2020.js";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* 8th degree polynomial approximation
|
|
7
|
-
* Mean error^2: 1.85907662e-06
|
|
8
|
-
* Adapted from https://iolite-engine.com/blog_posts/minimal_agx_implementation
|
|
9
|
-
* @type {CodeChunk}
|
|
10
|
-
*/
|
|
11
|
-
const chunk_agxDefaultContrastApprox8 = CodeChunk.from(
|
|
12
|
-
//language=WGSL
|
|
13
|
-
`
|
|
14
|
-
fn agxDefaultContrastApprox( x: vec3<f32> ) -> vec3<f32> {
|
|
15
|
-
let x2 = x * x;
|
|
16
|
-
let x4 = x2 * x2;
|
|
17
|
-
let x6 = x4 * x2;
|
|
18
|
-
|
|
19
|
-
return - 17.86f * x6 * x
|
|
20
|
-
+ 78.01f * x6
|
|
21
|
-
- 126.7f * x4 * x
|
|
22
|
-
+ 92.06f * x4
|
|
23
|
-
- 28.72f * x2 * x
|
|
24
|
-
+ 4.361f * x2
|
|
25
|
-
- 0.1718f * x
|
|
26
|
-
+ 0.002857f;
|
|
27
|
-
}
|
|
28
|
-
`);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* 6th degree polynomial approximation
|
|
33
|
-
* Mean error^2: 3.6705141e-06
|
|
34
|
-
* Adapted from https://iolite-engine.com/blog_posts/minimal_agx_implementation
|
|
35
|
-
* @type {CodeChunk}
|
|
36
|
-
*/
|
|
37
|
-
const chunk_agxDefaultContrastApprox6 = CodeChunk.from(
|
|
38
|
-
//language=WGSL
|
|
39
|
-
`
|
|
40
|
-
fn agxDefaultContrastApprox( x:vec3<f32>)->vec3<f32> {
|
|
41
|
-
let x2 = x * x;
|
|
42
|
-
let x4 = x2 * x2;
|
|
43
|
-
|
|
44
|
-
return 15.5 * x4 * x2
|
|
45
|
-
- 40.14 * x4 * x
|
|
46
|
-
+ 31.96 * x4
|
|
47
|
-
- 6.868 * x2 * x
|
|
48
|
-
+ 0.4298 * x2
|
|
49
|
-
+ 0.1191 * x
|
|
50
|
-
- 0.00232;;
|
|
51
|
-
}
|
|
52
|
-
`);
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* AgX Tone Mapping implementation based on Filament, which in turn is based
|
|
56
|
-
* on Blender's implementation using rec 2020 primaries
|
|
57
|
-
* @see https://github.com/google/filament/pull/7236
|
|
58
|
-
* @see https://github.com/google/filament/blob/2456299337f2205db5c1dd038213a46679b4cd77/filament/src/ToneMapper.cpp#L332
|
|
59
|
-
* Inputs and outputs are encoded as Linear-sRGB.
|
|
60
|
-
*/
|
|
61
|
-
export const chunk_tonemap_agx = CodeChunk.from(
|
|
62
|
-
//language=WGSL
|
|
63
|
-
`
|
|
64
|
-
fn tonemap_agx( in_color : vec3<f32> ) ->vec3<f32> {
|
|
65
|
-
|
|
66
|
-
// AgX constants
|
|
67
|
-
const AgXInsetMatrix = mat3x3(
|
|
68
|
-
vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),
|
|
69
|
-
vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),
|
|
70
|
-
vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )
|
|
71
|
-
);
|
|
72
|
-
|
|
73
|
-
// explicit AgXOutsetMatrix generated from Filaments AgXOutsetMatrixInv
|
|
74
|
-
// https://github.com/EaryChow/AgX_LUT_Gen/blob/main/AgXBaseRec2020.py
|
|
75
|
-
const AgXOutsetMatrix = mat3x3(
|
|
76
|
-
vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),
|
|
77
|
-
vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),
|
|
78
|
-
vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )
|
|
79
|
-
);
|
|
80
|
-
|
|
81
|
-
// LOG2_MIN = -10.0
|
|
82
|
-
// LOG2_MAX = +6.5
|
|
83
|
-
// MIDDLE_GRAY = 0.18
|
|
84
|
-
const AgxMinEv = - 12.47393; // log2( pow( 2, LOG2_MIN ) * MIDDLE_GRAY )
|
|
85
|
-
const AgxMaxEv = 4.026069; // log2( pow( 2, LOG2_MAX ) * MIDDLE_GRAY )
|
|
86
|
-
|
|
87
|
-
var color = in_color;
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
color = CRM_FROM_REC709_TO_REC2020 * color;
|
|
91
|
-
|
|
92
|
-
color = AgXInsetMatrix * color;
|
|
93
|
-
|
|
94
|
-
// Log2 encoding
|
|
95
|
-
color = max( color, vec3(1e-10) ); // avoid 0 or negative numbers for log2
|
|
96
|
-
color = log2( color );
|
|
97
|
-
color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );
|
|
98
|
-
|
|
99
|
-
color = saturate( color );
|
|
100
|
-
|
|
101
|
-
// Apply sigmoid
|
|
102
|
-
color = agxDefaultContrastApprox( color );
|
|
103
|
-
|
|
104
|
-
// Apply AgX look
|
|
105
|
-
// v = agxLook(v, look);
|
|
106
|
-
|
|
107
|
-
color = AgXOutsetMatrix * color;
|
|
108
|
-
|
|
109
|
-
// convert to output color space
|
|
110
|
-
color = CRM_FROM_REC2020_TO_REC709 * color;
|
|
111
|
-
|
|
112
|
-
// Linearize
|
|
113
|
-
color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );
|
|
114
|
-
|
|
115
|
-
// Gamut mapping. Simple clamp for now.
|
|
116
|
-
color = saturate( color );
|
|
117
|
-
|
|
118
|
-
return color;
|
|
119
|
-
|
|
120
|
-
}
|
|
121
|
-
`,
|
|
122
|
-
[
|
|
123
|
-
chunk_agxDefaultContrastApprox6,
|
|
124
|
-
chunk_CRM_FROM_REC709_TO_REC2020,
|
|
125
|
-
chunk_CRM_FROM_REC2020_TO_REC709
|
|
126
|
-
]
|
|
127
|
-
);
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @see filament https://github.com/google/filament/blob/7d80975c3cec617c274640fe2813f726770696bb/filament/src/ToneMapper.cpp#L237
|
|
3
|
-
* PBR Tone Mapping, https://modelviewer.dev/examples/tone-mapping.html
|
|
4
|
-
*/
|
|
5
|
-
export const chunk_tonemap_pbr_neutral: CodeChunk;
|
|
6
|
-
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
7
|
-
//# sourceMappingURL=chunk_tonemap_pbr_neutral.d.ts.map
|