@woosh/meep-engine 3.11.2 → 3.12.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/README.md +14 -18
- package/build/bundle-worker-terrain.js +1 -1
- package/editor/SelectionVisualizer.js +127 -127
- package/editor/entity_world_bounds.js +27 -27
- package/editor/particles/rebuildParticleEmitter.js +31 -31
- package/editor/process/SymbolicDisplayProcess.js +1 -1
- package/editor/process/symbolic/CameraSymbolicDisplay.js +146 -146
- package/editor/process/symbolic/LightSymbolicDisplay.js +172 -172
- package/editor/prototypeEditorShell.js +156 -156
- package/editor/selection/editor_pick.js +130 -130
- package/editor/selection/screen_rect_frustum.js +119 -119
- package/editor/tools/v2/TransformControls.js +971 -971
- package/package.json +1 -1
- package/src/engine/Engine.d.ts +3 -3
- package/src/engine/Engine.d.ts.map +1 -1
- package/src/engine/Engine.js +726 -726
- package/src/engine/EngineHarness.d.ts +1 -1
- package/src/engine/EngineHarness.js +590 -590
- package/src/engine/ecs/HIERARCHY_REVIEW.md +717 -717
- package/src/engine/ecs/terrain/ecs/BuildLightTexture.d.ts +1 -1
- package/src/engine/ecs/terrain/ecs/BuildLightTexture.js +27 -27
- package/src/engine/ecs/terrain/ecs/Terrain.d.ts +1 -5
- package/src/engine/ecs/terrain/ecs/Terrain.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/Terrain.js +790 -790
- package/src/engine/ecs/terrain/util/loadVisibleTerrainTiles.js +129 -129
- package/src/engine/graphics/ecs/camera/camera_find_active.d.ts +1 -1
- package/src/engine/graphics/ecs/camera/camera_find_active.js +28 -28
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.d.ts +1 -1
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.js +428 -428
- package/src/engine/graphics/ecs/water/Water.d.ts +1 -1
- package/src/engine/graphics/ecs/water/Water.js +104 -104
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.d.ts +1 -1
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.js +1 -1
- package/src/engine/graphics3/AnimationGraphSystem.d.ts +65 -0
- package/src/engine/graphics3/AnimationGraphSystem.d.ts.map +1 -0
- package/src/engine/graphics3/AnimationGraphSystem.js +329 -0
- package/src/engine/graphics3/AnimationGraphSystem3.d.ts +6 -61
- package/src/engine/graphics3/AnimationGraphSystem3.d.ts.map +1 -1
- package/src/engine/graphics3/AnimationGraphSystem3.js +6 -325
- package/src/engine/graphics3/AnimationSystem.d.ts +76 -0
- package/src/engine/graphics3/AnimationSystem.d.ts.map +1 -0
- package/src/engine/graphics3/AnimationSystem.js +352 -0
- package/src/engine/graphics3/AnimationSystem3.d.ts +6 -72
- package/src/engine/graphics3/AnimationSystem3.d.ts.map +1 -1
- package/src/engine/graphics3/AnimationSystem3.js +6 -348
- package/src/engine/graphics3/CameraSystem.d.ts +49 -0
- package/src/engine/graphics3/CameraSystem.d.ts.map +1 -0
- package/src/engine/graphics3/CameraSystem.js +170 -0
- package/src/engine/graphics3/CameraSystem3.d.ts +6 -45
- package/src/engine/graphics3/CameraSystem3.d.ts.map +1 -1
- package/src/engine/graphics3/CameraSystem3.js +6 -166
- package/src/engine/graphics3/DebugDrawSystem.d.ts +72 -0
- package/src/engine/graphics3/DebugDrawSystem.d.ts.map +1 -0
- package/src/engine/graphics3/DebugDrawSystem.js +205 -0
- package/src/engine/graphics3/DebugDrawSystem3.d.ts +6 -68
- package/src/engine/graphics3/DebugDrawSystem3.d.ts.map +1 -1
- package/src/engine/graphics3/DebugDrawSystem3.js +6 -201
- package/src/engine/graphics3/DecalSystem.d.ts +81 -0
- package/src/engine/graphics3/DecalSystem.d.ts.map +1 -0
- package/src/engine/graphics3/DecalSystem.js +441 -0
- package/src/engine/graphics3/DecalSystem3.d.ts +6 -77
- package/src/engine/graphics3/DecalSystem3.d.ts.map +1 -1
- package/src/engine/graphics3/DecalSystem3.js +6 -437
- package/src/engine/graphics3/FogOfWarSystem.d.ts +74 -0
- package/src/engine/graphics3/FogOfWarSystem.d.ts.map +1 -0
- package/src/engine/graphics3/FogOfWarSystem.js +265 -0
- package/src/engine/graphics3/FogOfWarSystem3.d.ts +6 -70
- package/src/engine/graphics3/FogOfWarSystem3.d.ts.map +1 -1
- package/src/engine/graphics3/FogOfWarSystem3.js +6 -261
- package/src/engine/graphics3/GraphicsEngine.d.ts +340 -0
- package/src/engine/graphics3/GraphicsEngine.d.ts.map +1 -0
- package/src/engine/graphics3/GraphicsEngine.js +790 -0
- package/src/engine/graphics3/GraphicsEngine3.d.ts +6 -336
- package/src/engine/graphics3/GraphicsEngine3.d.ts.map +1 -1
- package/src/engine/graphics3/GraphicsEngine3.js +6 -786
- package/src/engine/graphics3/HighlightSystem.d.ts +82 -0
- package/src/engine/graphics3/HighlightSystem.d.ts.map +1 -0
- package/src/engine/graphics3/HighlightSystem.js +241 -0
- package/src/engine/graphics3/HighlightSystem3.d.ts +6 -78
- package/src/engine/graphics3/HighlightSystem3.d.ts.map +1 -1
- package/src/engine/graphics3/HighlightSystem3.js +6 -237
- package/src/engine/graphics3/LightSystem.d.ts +40 -0
- package/src/engine/graphics3/LightSystem.d.ts.map +1 -0
- package/src/engine/graphics3/LightSystem.js +211 -0
- package/src/engine/graphics3/LightSystem3.d.ts +6 -36
- package/src/engine/graphics3/LightSystem3.d.ts.map +1 -1
- package/src/engine/graphics3/LightSystem3.js +6 -207
- package/src/engine/graphics3/MeshSystem.d.ts +106 -0
- package/src/engine/graphics3/MeshSystem.d.ts.map +1 -0
- package/src/engine/graphics3/MeshSystem.js +647 -0
- package/src/engine/graphics3/MeshSystem3.d.ts +6 -102
- package/src/engine/graphics3/MeshSystem3.d.ts.map +1 -1
- package/src/engine/graphics3/MeshSystem3.js +6 -642
- package/src/engine/graphics3/ParticipatingMedia.d.ts +2 -2
- package/src/engine/graphics3/ParticipatingMedia.js +203 -203
- package/src/engine/graphics3/ParticipatingMediaSystem.d.ts +87 -0
- package/src/engine/graphics3/ParticipatingMediaSystem.d.ts.map +1 -0
- package/src/engine/graphics3/ParticipatingMediaSystem.js +184 -0
- package/src/engine/graphics3/ParticipatingMediaSystem3.d.ts +6 -83
- package/src/engine/graphics3/ParticipatingMediaSystem3.d.ts.map +1 -1
- package/src/engine/graphics3/ParticipatingMediaSystem3.js +6 -180
- package/src/engine/graphics3/ParticleEmitterSystem.d.ts +76 -0
- package/src/engine/graphics3/ParticleEmitterSystem.d.ts.map +1 -0
- package/src/engine/graphics3/ParticleEmitterSystem.js +289 -0
- package/src/engine/graphics3/ParticleEmitterSystem3.d.ts +6 -72
- package/src/engine/graphics3/ParticleEmitterSystem3.d.ts.map +1 -1
- package/src/engine/graphics3/ParticleEmitterSystem3.js +6 -285
- package/src/engine/graphics3/PathDisplaySystem.d.ts +70 -0
- package/src/engine/graphics3/PathDisplaySystem.d.ts.map +1 -0
- package/src/engine/graphics3/PathDisplaySystem.js +309 -0
- package/src/engine/graphics3/PathDisplaySystem3.d.ts +6 -66
- package/src/engine/graphics3/PathDisplaySystem3.d.ts.map +1 -1
- package/src/engine/graphics3/PathDisplaySystem3.js +6 -305
- package/src/engine/graphics3/Pickable.d.ts +1 -1
- package/src/engine/graphics3/Pickable.js +65 -65
- package/src/engine/graphics3/PickingQuery.d.ts +1 -1
- package/src/engine/graphics3/PickingQuery.js +48 -48
- package/src/engine/graphics3/PickingSystem.d.ts +67 -0
- package/src/engine/graphics3/PickingSystem.d.ts.map +1 -0
- package/src/engine/graphics3/PickingSystem.js +273 -0
- package/src/engine/graphics3/PickingSystem3.d.ts +6 -63
- package/src/engine/graphics3/PickingSystem3.d.ts.map +1 -1
- package/src/engine/graphics3/PickingSystem3.js +6 -269
- package/src/engine/graphics3/ShadedGeometrySystem.d.ts +47 -0
- package/src/engine/graphics3/ShadedGeometrySystem.d.ts.map +1 -0
- package/src/engine/graphics3/ShadedGeometrySystem.js +169 -0
- package/src/engine/graphics3/ShadedGeometrySystem3.d.ts +6 -43
- package/src/engine/graphics3/ShadedGeometrySystem3.d.ts.map +1 -1
- package/src/engine/graphics3/ShadedGeometrySystem3.js +6 -165
- package/src/engine/graphics3/TerrainSystem.d.ts +80 -0
- package/src/engine/graphics3/TerrainSystem.d.ts.map +1 -0
- package/src/engine/graphics3/TerrainSystem.js +566 -0
- package/src/engine/graphics3/TerrainSystem3.d.ts +6 -76
- package/src/engine/graphics3/TerrainSystem3.d.ts.map +1 -1
- package/src/engine/graphics3/TerrainSystem3.js +6 -562
- package/src/engine/graphics3/TooltipComponentSystem.d.ts +65 -0
- package/src/engine/graphics3/TooltipComponentSystem.d.ts.map +1 -0
- package/src/engine/graphics3/TooltipComponentSystem.js +328 -0
- package/src/engine/graphics3/TooltipComponentSystem3.d.ts +6 -61
- package/src/engine/graphics3/TooltipComponentSystem3.d.ts.map +1 -1
- package/src/engine/graphics3/TooltipComponentSystem3.js +6 -324
- package/src/engine/graphics3/Trail3DSystem.d.ts +73 -0
- package/src/engine/graphics3/Trail3DSystem.d.ts.map +1 -0
- package/src/engine/graphics3/Trail3DSystem.js +221 -0
- package/src/engine/graphics3/Trail3DSystem3.d.ts +6 -69
- package/src/engine/graphics3/Trail3DSystem3.d.ts.map +1 -1
- package/src/engine/graphics3/Trail3DSystem3.js +6 -217
- package/src/engine/graphics3/VolumetricLightMap.d.ts +2 -2
- package/src/engine/graphics3/VolumetricLightMap.js +2 -2
- package/src/engine/graphics3/VolumetricLightMapSystem.d.ts +98 -0
- package/src/engine/graphics3/VolumetricLightMapSystem.d.ts.map +1 -0
- package/src/engine/graphics3/VolumetricLightMapSystem.js +261 -0
- package/src/engine/graphics3/VolumetricLightMapSystem3.d.ts +6 -94
- package/src/engine/graphics3/VolumetricLightMapSystem3.d.ts.map +1 -1
- package/src/engine/graphics3/VolumetricLightMapSystem3.js +10 -261
- package/src/engine/graphics3/WaterSystem.d.ts +59 -0
- package/src/engine/graphics3/WaterSystem.d.ts.map +1 -0
- package/src/engine/graphics3/WaterSystem.js +293 -0
- package/src/engine/graphics3/WaterSystem3.d.ts +6 -55
- package/src/engine/graphics3/WaterSystem3.d.ts.map +1 -1
- package/src/engine/graphics3/WaterSystem3.js +6 -289
- package/src/engine/graphics3/animation/AnimationGraphController.d.ts +1 -1
- package/src/engine/graphics3/animation/AnimationGraphController.js +518 -518
- package/src/engine/graphics3/animation/ClipListPlayer.d.ts +1 -1
- package/src/engine/graphics3/animation/ClipListPlayer.js +263 -263
- package/src/engine/graphics3/animation/ClipPlayback.d.ts +2 -2
- package/src/engine/graphics3/animation/ClipPlayback.js +84 -84
- package/src/engine/graphics3/decal/graph_build_decal_clusters.d.ts.map +1 -1
- package/src/engine/graphics3/decal/graph_build_decal_clusters.js +6 -8
- package/src/engine/graphics3/decal/shader_cluster_assign_decals.d.ts +0 -7
- package/src/engine/graphics3/decal/shader_cluster_assign_decals.d.ts.map +1 -1
- package/src/engine/graphics3/decal/shader_cluster_assign_decals.js +1 -1
- package/src/engine/graphics3/decal/shader_cull_decals_frustum.d.ts +0 -4
- package/src/engine/graphics3/decal/shader_cull_decals_frustum.d.ts.map +1 -1
- package/src/engine/graphics3/decal/shader_cull_decals_frustum.js +1 -1
- package/src/engine/graphics3/highlight/pack_highlight_table.d.ts +2 -2
- package/src/engine/graphics3/highlight/pack_highlight_table.d.ts.map +1 -1
- package/src/engine/graphics3/highlight/pack_highlight_table.js +74 -74
- package/src/engine/graphics3/pose/query_entity_node_world_pose.d.ts +1 -1
- package/src/engine/graphics3/pose/query_entity_node_world_pose.js +101 -101
- package/src/engine/graphics3/preview/make_model_thumbnail.d.ts +3 -3
- package/src/engine/graphics3/preview/make_model_thumbnail.d.ts.map +1 -1
- package/src/engine/graphics3/preview/make_model_thumbnail.js +48 -48
- package/src/engine/graphics3/shade_camera_projection_ray.d.ts +1 -1
- package/src/engine/graphics3/shade_camera_projection_ray.js +77 -77
- package/src/engine/graphics3/shade_node_to_entity_composition.d.ts +1 -1
- package/src/engine/graphics3/shade_node_to_entity_composition.js +84 -84
- package/src/shade/descriptor/pipeline/PipelineLayoutDescriptor.d.ts +16 -2
- package/src/shade/descriptor/pipeline/PipelineLayoutDescriptor.d.ts.map +1 -1
- package/src/shade/descriptor/pipeline/PipelineLayoutDescriptor.js +28 -4
- package/src/shade/descriptor/pipeline/compute/ComputePipelineDescriptor.d.ts +1 -1
- package/src/shade/descriptor/pipeline/compute/ComputePipelineDescriptor.d.ts.map +1 -1
- package/src/shade/descriptor/pipeline/compute/ComputePipelineDescriptor.js +5 -2
- package/src/shade/device/IMMEDIATE_DATA_PLAN_2026_08_28.md +564 -451
- package/src/shade/device/ShadeGPUCommandContext.d.ts +18 -2
- package/src/shade/device/ShadeGPUCommandContext.d.ts.map +1 -1
- package/src/shade/device/ShadeGPUCommandContext.js +994 -940
- package/src/shade/device/immediate_data_supported.d.ts +33 -0
- package/src/shade/device/immediate_data_supported.d.ts.map +1 -0
- package/src/shade/device/immediate_data_supported.js +53 -0
- package/src/shade/device/mock/SoftwareGPUCommandEncoder.d.ts +18 -0
- package/src/shade/device/mock/SoftwareGPUCommandEncoder.d.ts.map +1 -1
- package/src/shade/device/mock/SoftwareGPUCommandEncoder.js +24 -0
- package/src/shade/device/mock/SoftwareGPUComputePassEncoder.d.ts +7 -0
- package/src/shade/device/mock/SoftwareGPUComputePassEncoder.d.ts.map +1 -1
- package/src/shade/device/mock/SoftwareGPUComputePassEncoder.js +49 -1
- package/src/shade/device/mock/SoftwareGPUDevice.d.ts.map +1 -1
- package/src/shade/device/mock/SoftwareGPUDevice.js +20 -2
- package/src/shade/device/mock/SoftwareGPUImmediateData.d.ts +65 -0
- package/src/shade/device/mock/SoftwareGPUImmediateData.d.ts.map +1 -0
- package/src/shade/device/mock/SoftwareGPUImmediateData.js +160 -0
- package/src/shade/device/mock/SoftwareGPURenderPassEncoder.d.ts +7 -0
- package/src/shade/device/mock/SoftwareGPURenderPassEncoder.d.ts.map +1 -1
- package/src/shade/device/mock/SoftwareGPURenderPassEncoder.js +50 -0
- package/src/shade/device/mock/pipeline_immediate_size.d.ts +11 -0
- package/src/shade/device/mock/pipeline_immediate_size.d.ts.map +1 -0
- package/src/shade/device/mock/pipeline_immediate_size.js +18 -0
- package/src/shade/device/pipeline/PipelineLayoutManager.d.ts.map +1 -1
- package/src/shade/device/pipeline/PipelineLayoutManager.js +1 -0
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.js +0 -1
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_points.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_points.js +0 -1
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_visibility.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_visibility.js +133 -134
- package/src/shade/playground/skinned_blas_refit/verify_leaf_triangles.js +202 -202
- package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.js +249 -249
- package/src/shade/renderer/GraphicsContext.d.ts +9 -2
- package/src/shade/renderer/GraphicsContext.d.ts.map +1 -1
- package/src/shade/renderer/GraphicsContext.js +13 -1
- package/src/shade/renderer/STATIC_GRAPHICS_ENGINE_ASSETS.js +1 -1
- package/src/shade/renderer/animation/pose/PosePlayback.d.ts +2 -1
- package/src/shade/renderer/animation/pose/PosePlayback.d.ts.map +1 -1
- package/src/shade/renderer/animation/pose/PosePlayback.js +2 -1
- package/src/shade/renderer/animation/shader_animation_apply.d.ts.map +1 -1
- package/src/shade/renderer/animation/shader_animation_apply.js +128 -129
- package/src/shade/renderer/animation/shader_animation_pose_resolve.d.ts.map +1 -1
- package/src/shade/renderer/animation/shader_animation_pose_resolve.js +176 -177
- package/src/shade/renderer/animation/shader_animation_tick.d.ts.map +1 -1
- package/src/shade/renderer/animation/shader_animation_tick.js +125 -126
- package/src/shade/renderer/animation/skinning/bounds_refresh/shader_geometry_sphere_derive.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/bounds_refresh/shader_geometry_sphere_derive.js +98 -99
- package/src/shade/renderer/animation/skinning/bounds_refresh/shader_meshlet_bounds_reduce.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/bounds_refresh/shader_meshlet_bounds_reduce.js +212 -213
- package/src/shade/renderer/animation/skinning/bounds_refresh/shader_meshlet_bounds_scatter.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/bounds_refresh/shader_meshlet_bounds_scatter.js +120 -121
- package/src/shade/renderer/animation/skinning/bounds_refresh/shader_skinned_mesh_bounds_refresh.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/bounds_refresh/shader_skinned_mesh_bounds_refresh.js +75 -76
- 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 +371 -372
- package/src/shade/renderer/animation/skinning/shader_skin_matrix_prep.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/shader_skin_matrix_prep.js +104 -105
- package/src/shade/renderer/atmosphere/GPUSky.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/GPUSky.js +145 -142
- package/src/shade/renderer/atmosphere/MULTISCATTER_LUT_CONFIG.d.ts +34 -0
- package/src/shade/renderer/atmosphere/MULTISCATTER_LUT_CONFIG.d.ts.map +1 -0
- package/src/shade/renderer/atmosphere/MULTISCATTER_LUT_CONFIG.js +36 -0
- package/src/shade/renderer/atmosphere/SAMPLER_SKY_LUT.d.ts +20 -0
- package/src/shade/renderer/atmosphere/SAMPLER_SKY_LUT.d.ts.map +1 -0
- package/src/shade/renderer/atmosphere/SAMPLER_SKY_LUT.js +25 -0
- package/src/shade/renderer/atmosphere/chunk_get_multiscatter_values.d.ts +14 -1
- package/src/shade/renderer/atmosphere/chunk_get_multiscatter_values.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/chunk_get_multiscatter_values.js +163 -177
- package/src/shade/renderer/atmosphere/chunk_multiscatter_sample_direction.d.ts +20 -0
- package/src/shade/renderer/atmosphere/chunk_multiscatter_sample_direction.d.ts.map +1 -0
- package/src/shade/renderer/atmosphere/chunk_multiscatter_sample_direction.js +46 -0
- package/src/shade/renderer/atmosphere/chunk_sample_multiscatter_lut.d.ts +11 -1
- package/src/shade/renderer/atmosphere/chunk_sample_multiscatter_lut.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/chunk_sample_multiscatter_lut.js +57 -27
- package/src/shade/renderer/atmosphere/chunk_sample_transmittance_lut.d.ts +19 -1
- package/src/shade/renderer/atmosphere/chunk_sample_transmittance_lut.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/chunk_sample_transmittance_lut.js +69 -33
- package/src/shade/renderer/atmosphere/chunk_sky_lut_compute_uv.d.ts +13 -0
- package/src/shade/renderer/atmosphere/chunk_sky_lut_compute_uv.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/chunk_sky_lut_compute_uv.js +35 -35
- package/src/shade/renderer/atmosphere/chunk_sky_lut_params.d.ts +13 -0
- package/src/shade/renderer/atmosphere/chunk_sky_lut_params.d.ts.map +1 -0
- package/src/shade/renderer/atmosphere/chunk_sky_lut_params.js +38 -0
- package/src/shade/renderer/atmosphere/chunk_sky_lut_texel_to_unit.d.ts +17 -0
- package/src/shade/renderer/atmosphere/chunk_sky_lut_texel_to_unit.d.ts.map +1 -0
- package/src/shade/renderer/atmosphere/chunk_sky_lut_texel_to_unit.js +29 -0
- package/src/shade/renderer/atmosphere/chunk_sky_lut_uv.d.ts +21 -0
- package/src/shade/renderer/atmosphere/chunk_sky_lut_uv.d.ts.map +1 -0
- package/src/shade/renderer/atmosphere/chunk_sky_lut_uv.js +42 -0
- package/src/shade/renderer/atmosphere/shader_multiscatter_lut.d.ts +2 -2
- package/src/shade/renderer/atmosphere/shader_multiscatter_lut.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/shader_multiscatter_lut.js +164 -84
- package/src/shade/renderer/atmosphere/shader_sky_irradiance_lut.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/shader_sky_irradiance_lut.js +215 -204
- package/src/shade/renderer/atmosphere/shader_transmittance_lut.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/shader_transmittance_lut.js +79 -67
- package/src/shade/renderer/buffer/graph_inspect_gpu_buffer.js +136 -136
- package/src/shade/renderer/buffer/table/GPUDatabase.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/GPUDatabase.js +2 -3
- package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.js +319 -319
- package/src/shade/renderer/buffer/util/shader_buffer_copy_storage_to_storage.d.ts.map +1 -1
- package/src/shade/renderer/buffer/util/shader_buffer_copy_storage_to_storage.js +41 -42
- package/src/shade/renderer/buffer/util/shader_buffer_intra_copy_regions.d.ts.map +1 -1
- package/src/shade/renderer/buffer/util/shader_buffer_intra_copy_regions.js +83 -84
- package/src/shade/renderer/dynamic/shader_dynamic_mesh.d.ts.map +1 -1
- package/src/shade/renderer/dynamic/shader_dynamic_mesh.js +177 -170
- package/src/shade/renderer/extension/RENDER_EXTENSION_DESIGN.md +918 -918
- package/src/shade/renderer/geometry/bvh/record_blas_refit.js +4 -4
- package/src/shade/renderer/geometry/bvh/shader_blas_refit_leaf_bounds.d.ts.map +1 -1
- package/src/shade/renderer/geometry/bvh/shader_blas_refit_leaf_bounds.js +121 -122
- package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.js +774 -774
- package/src/shade/renderer/geometry/meshlet/shader_meshlet_metadata_address_patch.d.ts +1 -1
- package/src/shade/renderer/geometry/meshlet/shader_meshlet_metadata_address_patch.d.ts.map +1 -1
- package/src/shade/renderer/geometry/meshlet/shader_meshlet_metadata_address_patch.js +69 -70
- package/src/shade/renderer/global_illumination/lpv/placement/graph_generate_probe_locations.js +367 -367
- package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.js +184 -184
- package/src/shade/renderer/gpu_primitive/bvh/GPU_BVH_BUILD_PLAN.md +1115 -1115
- package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.js +217 -217
- 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 +142 -143
- 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 +0 -1
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.js +140 -141
- package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_histogram.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_histogram.js +0 -1
- package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_scatter.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_scatter.js +0 -1
- 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 +191 -198
- package/src/shade/renderer/light/cluster/cull/shader_cull_lights_frustum.d.ts +0 -6
- package/src/shade/renderer/light/cluster/cull/shader_cull_lights_frustum.d.ts.map +1 -1
- package/src/shade/renderer/light/cluster/cull/shader_cull_lights_frustum.js +120 -120
- package/src/shade/renderer/light/cluster/cull/shader_cull_lights_hzb.d.ts +0 -4
- package/src/shade/renderer/light/cluster/cull/shader_cull_lights_hzb.d.ts.map +1 -1
- package/src/shade/renderer/light/cluster/cull/shader_cull_lights_hzb.js +112 -112
- package/src/shade/renderer/light/cluster/graph_assign_clsuters.d.ts.map +1 -1
- package/src/shade/renderer/light/cluster/graph_assign_clsuters.js +10 -9
- package/src/shade/renderer/light/cluster/shader_cluster_assign_lights.d.ts +0 -6
- package/src/shade/renderer/light/cluster/shader_cluster_assign_lights.d.ts.map +1 -1
- package/src/shade/renderer/light/cluster/shader_cluster_assign_lights.js +1 -1
- package/src/shade/renderer/lightmap/bake/raster/shader_lightmap_to_viz_buffer.js +222 -222
- package/src/shade/renderer/lightmap/bake/tile/shader_lightmap_tile_composit.js +81 -81
- package/src/shade/renderer/material/GPUMaterialContext.js +380 -380
- package/src/shade/renderer/material/standard/fragment_gbuffer_vt.js +169 -169
- package/src/shade/renderer/object_property/shader_object_property_process.d.ts.map +1 -1
- package/src/shade/renderer/object_property/shader_object_property_process.js +83 -84
- package/src/shade/renderer/object_property/shader_refresh_all_mesh_bounds.d.ts.map +1 -1
- package/src/shade/renderer/object_property/shader_refresh_all_mesh_bounds.js +57 -58
- package/src/shade/renderer/particles/prototypeParticleSystem.js +2 -3
- package/src/shade/renderer/particles/shaders/shader_particle_emit.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_emit.js +117 -118
- package/src/shade/renderer/particles/shaders/shader_particle_finalize.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_finalize.js +77 -79
- package/src/shade/renderer/particles/shaders/shader_particle_render.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_render.js +190 -183
- package/src/shade/renderer/particles/shaders/shader_particle_simulate.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_simulate.js +99 -100
- package/src/shade/renderer/particles/sort/shader_particle_sort.d.ts.map +1 -1
- package/src/shade/renderer/particles/sort/shader_particle_sort.js +158 -161
- package/src/shade/renderer/path_tracer/graph_path_trace_scene.js +184 -184
- package/src/shade/renderer/postprocess/denoise/graph_atorus_denoise_luma.js +119 -119
- package/src/shade/renderer/postprocess/dof/raymarch/graph_postprocess_dof.js +3 -4
- package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_raymarch_compute.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_raymarch_compute.js +266 -267
- package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_slice_compute.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_slice_compute.js +270 -271
- package/src/shade/renderer/postprocess/gtao/GTAO.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/gtao/GTAO.js +4 -0
- package/src/shade/renderer/postprocess/nss/shader_nss_concat.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/nss/shader_nss_concat.js +68 -69
- package/src/shade/renderer/postprocess/nss/shader_nss_conv_layer.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/nss/shader_nss_conv_layer.js +225 -226
- package/src/shade/renderer/postprocess/nss/shader_nss_extract_feedback.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/nss/shader_nss_extract_feedback.js +49 -50
- package/src/shade/renderer/postprocess/nss/shader_nss_postprocess.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/nss/shader_nss_postprocess.js +291 -292
- package/src/shade/renderer/postprocess/nss/shader_nss_preprocess.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/nss/shader_nss_preprocess.js +230 -231
- package/src/shade/renderer/postprocess/ssr/reproject/shader_ffx_denoiser_reflections_reproject.d.ts +16 -2
- package/src/shade/renderer/postprocess/ssr/reproject/shader_ffx_denoiser_reflections_reproject.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/reproject/shader_ffx_denoiser_reflections_reproject.js +12 -12
- package/src/shade/renderer/rasterize/bucket/prepare_meshlet_draw_commands_by_material.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/bucket/prepare_meshlet_draw_commands_by_material.js +341 -345
- package/src/shade/renderer/rasterize/bucket/shader_count_meshlets_by_material.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/bucket/shader_count_meshlets_by_material.js +68 -69
- package/src/shade/renderer/rasterize/bucket/shader_make_meshlet_indirect_draw_commands_by_material.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/bucket/shader_make_meshlet_indirect_draw_commands_by_material.js +59 -60
- package/src/shade/renderer/rasterize/bucket/shader_read_out_bucket.d.ts +0 -2
- package/src/shade/renderer/rasterize/bucket/shader_read_out_bucket.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/bucket/shader_read_out_bucket.js +57 -57
- package/src/shade/renderer/rasterize/bucket/shader_sort_meshlets_by_material.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/bucket/shader_sort_meshlets_by_material.js +64 -65
- 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 +168 -169
- package/src/shade/renderer/rasterize/compute/graph_mesh_sphere_cull.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/compute/graph_mesh_sphere_cull.js +160 -161
- package/src/shade/renderer/rasterize/cull/hzb/shader_hzb_mesh_filter_2way.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/cull/hzb/shader_hzb_mesh_filter_2way.js +109 -110
- package/src/shade/renderer/rasterize/cull/hzb/shader_hzb_meshlet_filter_1way_full.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/cull/hzb/shader_hzb_meshlet_filter_1way_full.js +115 -116
- package/src/shade/renderer/rasterize/expand/bucket/mesh/shader_instances_classify_bucket.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/bucket/mesh/shader_instances_classify_bucket.js +139 -140
- package/src/shade/renderer/rasterize/expand/bucket/mesh/shader_instances_count_by_rasterization_bucket.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/bucket/mesh/shader_instances_count_by_rasterization_bucket.js +91 -92
- package/src/shade/renderer/rasterize/expand/bucket/mesh/shader_instances_rasterization_bucket_sort.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/bucket/mesh/shader_instances_rasterization_bucket_sort.js +88 -89
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/shader_meshlets_count_by_rasterization_bucket.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/shader_meshlets_count_by_rasterization_bucket.js +90 -91
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/shader_meshlets_extract_bucket.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/shader_meshlets_extract_bucket.js +65 -66
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/shader_meshlets_rasterization_bucket_sort.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/shader_meshlets_rasterization_bucket_sort.js +89 -90
- 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 +169 -170
- 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 +7 -3
- package/src/shade/renderer/rasterize/expand/mesh/shader_mesh_expand_to_meshlets_prefix.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/mesh/shader_mesh_expand_to_meshlets_prefix.js +89 -90
- package/src/shade/renderer/rasterize/expand/mesh/shader_meshes_to_meshlet_counts.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/mesh/shader_meshes_to_meshlet_counts.js +61 -62
- package/src/shade/renderer/rasterize/expand/pass1/filter_meshlets.2-way.compute.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/pass1/filter_meshlets.2-way.compute.js +153 -154
- package/src/shade/renderer/rasterize/fast/graph_extract_meshes_from_bucket.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/fast/graph_extract_meshes_from_bucket.js +77 -81
- package/src/shade/renderer/rasterize/native/depth/shadow_rasterization_alpha_tested_pass_descriptor.js +144 -144
- package/src/shade/renderer/rasterize/native/depth/shadow_rasterization_pass_descriptor.js +88 -88
- package/src/shade/renderer/rasterize/native/oit/shader_oit_generate_moments.js +217 -217
- package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments.js +179 -179
- package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments_ibl.js +178 -178
- package/src/shade/renderer/rasterize/native/viz/viz_rasterization_alpha_tested_pass_descriptor.js +194 -194
- package/src/shade/renderer/rasterize/native/viz/viz_rasterization_opaque_pass_descriptor.js +76 -76
- package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.js +5 -1
- package/src/shade/renderer/restir/di/shader_restir_di_denoise.d.ts.map +1 -1
- package/src/shade/renderer/restir/di/shader_restir_di_denoise.js +136 -137
- package/src/shade/renderer/restir/di/shader_restir_di_resample.d.ts.map +1 -1
- package/src/shade/renderer/restir/di/shader_restir_di_resample.js +129 -130
- 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 +99 -100
- package/src/shade/renderer/restir/di/shader_restir_di_spatial.d.ts.map +1 -1
- package/src/shade/renderer/restir/di/shader_restir_di_spatial.js +116 -117
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.js +383 -383
- package/src/shade/renderer/scene/hierarchy/graph_scene_update_transform_hierarchy_naive.js +123 -123
- package/src/shade/renderer/scene/hierarchy/shader_nodes_record_input_positions.d.ts.map +1 -1
- package/src/shade/renderer/scene/hierarchy/shader_nodes_record_input_positions.js +64 -65
- package/src/shade/renderer/scene/hierarchy/shader_nodes_update_transform_hierarchy.d.ts.map +1 -1
- package/src/shade/renderer/scene/hierarchy/shader_nodes_update_transform_hierarchy.js +372 -373
- package/src/shade/renderer/scene/hierarchy/shader_nodes_update_transform_hierarchy_naive.d.ts.map +1 -1
- package/src/shade/renderer/scene/hierarchy/shader_nodes_update_transform_hierarchy_naive.js +111 -112
- package/src/shade/renderer/scene/shader_bvh_extract_instance_leaves.d.ts.map +1 -1
- package/src/shade/renderer/scene/shader_bvh_extract_instance_leaves.js +0 -1
- package/src/shade/renderer/shader/ComputeShader.d.ts +24 -3
- package/src/shade/renderer/shader/ComputeShader.d.ts.map +1 -1
- package/src/shade/renderer/shader/ComputeShader.js +350 -292
- package/src/shade/renderer/shader/ImageShader.d.ts.map +1 -1
- package/src/shade/renderer/shader/ImageShader.js +217 -214
- package/src/shade/renderer/shader/ShaderDescriptor.d.ts +5 -0
- package/src/shade/renderer/shader/ShaderDescriptor.d.ts.map +1 -1
- package/src/shade/renderer/shader/ShaderDescriptor.js +46 -0
- package/src/shade/renderer/shader/chunk/atmosphere/ATMOSPHERE_RADII_DECLARATION.d.ts +18 -0
- package/src/shade/renderer/shader/chunk/atmosphere/ATMOSPHERE_RADII_DECLARATION.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/atmosphere/ATMOSPHERE_RADII_DECLARATION.js +32 -0
- package/src/shade/renderer/shader/chunk/atmosphere/PLANET_CENTER_DECLARATION.d.ts +7 -0
- package/src/shade/renderer/shader/chunk/atmosphere/PLANET_CENTER_DECLARATION.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/atmosphere/PLANET_CENTER_DECLARATION.js +17 -6
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_atmosphere_ray_bounds.d.ts +21 -0
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_atmosphere_ray_bounds.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_atmosphere_ray_bounds.js +69 -0
- package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_contains_aabb3.d.ts +9 -0
- package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_contains_aabb3.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_contains_aabb3.js +22 -0
- package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_from_transformed_corners.d.ts +16 -0
- package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_from_transformed_corners.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_from_transformed_corners.js +41 -0
- package/src/shade/renderer/shader/chunk/geometry/frustum/chunk_frustum_transform_m4.d.ts +11 -0
- package/src/shade/renderer/shader/chunk/geometry/frustum/chunk_frustum_transform_m4.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/frustum/chunk_frustum_transform_m4.js +15 -19
- package/src/shade/renderer/shader/chunk/geometry/frustum/chunk_frustum_transform_plane_matrix.d.ts +23 -0
- package/src/shade/renderer/shader/chunk/geometry/frustum/chunk_frustum_transform_plane_matrix.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/geometry/frustum/chunk_frustum_transform_plane_matrix.js +44 -0
- package/src/shade/renderer/shader/chunk/geometry/octahedron/chunk_uv_octahedral_unit_decode.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/octahedron/chunk_uv_octahedral_unit_decode.js +1 -4
- package/src/shade/renderer/shader/compiler/CodeChunk.d.ts +7 -1
- package/src/shade/renderer/shader/compiler/CodeChunk.d.ts.map +1 -1
- package/src/shade/renderer/shader/compiler/CodeChunk.js +37 -2
- package/src/shade/renderer/shader/graph/compute/compute_binding_read_names.d.ts.map +1 -1
- package/src/shade/renderer/shader/graph/compute/compute_binding_read_names.js +6 -0
- package/src/shade/renderer/shader/graph/compute/graph_compute_indirect_pass.js +1 -1
- package/src/shade/renderer/shader/graph/compute/graph_compute_pass.js +1 -1
- package/src/shade/renderer/shader/graph/graph_image_pass.js +1 -1
- package/src/shade/renderer/shader/graph/graph_prepare_bindings.d.ts.map +1 -1
- package/src/shade/renderer/shader/graph/graph_prepare_bindings.js +7 -0
- package/src/shade/renderer/shader/graph/graph_prepare_pass_input_data.d.ts +3 -1
- package/src/shade/renderer/shader/graph/graph_prepare_pass_input_data.d.ts.map +1 -1
- package/src/shade/renderer/shader/graph/graph_prepare_pass_input_data.js +12 -1
- package/src/shade/renderer/shader/pass/RenderPassDescriptor.d.ts.map +1 -1
- package/src/shade/renderer/shader/pass/RenderPassDescriptor.js +1 -0
- package/src/shade/renderer/shader/resource/IMMEDIATE_DATA.d.ts +21 -0
- package/src/shade/renderer/shader/resource/IMMEDIATE_DATA.d.ts.map +1 -0
- package/src/shade/renderer/shader/resource/IMMEDIATE_DATA.js +21 -0
- package/src/shade/renderer/shader/resource/ShaderResourceSetDescriptor.d.ts +59 -1
- package/src/shade/renderer/shader/resource/ShaderResourceSetDescriptor.d.ts.map +1 -1
- package/src/shade/renderer/shader/resource/ShaderResourceSetDescriptor.js +195 -2
- package/src/shade/renderer/shader/type/type_has_arrays.d.ts +14 -0
- package/src/shade/renderer/shader/type/type_has_arrays.d.ts.map +1 -0
- package/src/shade/renderer/shader/type/type_has_arrays.js +33 -0
- package/src/shade/renderer/shader/util/compute_infer_workgroup_size_from_source.d.ts +47 -0
- package/src/shade/renderer/shader/util/compute_infer_workgroup_size_from_source.d.ts.map +1 -0
- package/src/shade/renderer/shader/util/compute_infer_workgroup_size_from_source.js +448 -0
- package/src/shade/renderer/shadow/map/csm/graph_csm_setup_cascades.js +3 -3
- package/src/shade/renderer/shadow/ray/staged/gen/graph_gen_rays.js +3 -3
- package/src/shade/renderer/shadow/ray/staged/trace/graph_trace_rays.js +2 -2
- package/src/shade/renderer/shadow/sdf/cascade/CascadedSceneSDF.js +4 -4
- package/src/shade/renderer/texture/virtual/build_shader_vt_feedback.d.ts.map +1 -1
- package/src/shade/renderer/texture/virtual/build_shader_vt_feedback.js +231 -232
- package/src/shade/renderer/view/GPUViewSkyContext.d.ts.map +1 -1
- package/src/shade/renderer/view/GPUViewSkyContext.js +169 -173
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +1 -1
- package/src/shade/renderer/volumetrics/NOTES.md +238 -0
- package/src/shade/renderer/volumetrics/chunk_volumetrics_local_light_shadow.js +145 -145
- package/src/shade/renderer/volumetrics/chunk_volumetrics_sun_optical_depth.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/chunk_volumetrics_sun_optical_depth.js +38 -15
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts +14 -2
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.js +591 -577
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.d.ts +17 -0
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.js +20 -2
- 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 +29 -18
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_scattering_lut.js +260 -260
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_sun_shadow_volume.d.ts +53 -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 +175 -59
- package/src/shade/renderer/volumetrics/taa/shader_volumetrics_taa.d.ts +0 -2
- package/src/shade/renderer/volumetrics/taa/shader_volumetrics_taa.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/taa/shader_volumetrics_taa.js +17 -6
- package/src/shade/renderer/water/shader_water.js +246 -246
- package/src/shade/vitest.setup.mjs +1 -1
- package/src/shade/wgsl/emulator/ComputeShaderEmulator.js +291 -291
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +8 -1
- package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/WGSLLanguageCore.js +1325 -1297
- package/src/view/minimap/Minimap.d.ts +2 -2
- package/src/view/minimap/Minimap.d.ts.map +1 -1
- package/src/view/minimap/Minimap.js +225 -225
- package/src/view/minimap/dom/MinimapCameraView.d.ts +3 -3
- package/src/view/minimap/dom/MinimapCameraView.d.ts.map +1 -1
- package/src/view/minimap/dom/MinimapCameraView.js +206 -206
- package/src/shade/renderer/shadow/map/csm/shader/shader_setup_cascades.d.ts +0 -3
- package/src/shade/renderer/shadow/map/csm/shader/shader_setup_cascades.d.ts.map +0 -1
- package/src/shade/renderer/shadow/map/csm/shader/shader_setup_cascades.js +0 -20
- package/src/shade/renderer/volumetrics/VOLUMETRICS_WORKGROUP_RESOLUTION.d.ts +0 -2
- package/src/shade/renderer/volumetrics/VOLUMETRICS_WORKGROUP_RESOLUTION.d.ts.map +0 -1
- package/src/shade/renderer/volumetrics/VOLUMETRICS_WORKGROUP_RESOLUTION.js +0 -1
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { CodeChunk } from "../../compiler/CodeChunk.js";
|
|
2
|
+
import { ATMOSPHERE_RADII_DECLARATION } from "./ATMOSPHERE_RADII_DECLARATION.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* How far a ray inside the atmosphere may be marched, and whether it ends on the surface.
|
|
6
|
+
*
|
|
7
|
+
* The ground and the atmosphere shell are concentric on the planet and the ray is shared, so
|
|
8
|
+
* one quadratic setup serves both intersections — only the radius term differs. Calling a
|
|
9
|
+
* general sphere-intersection routine twice instead recomputes the ray-origin offset and all
|
|
10
|
+
* three dot products for the second sphere, and re-derives a leading coefficient that is 1
|
|
11
|
+
* for a unit direction.
|
|
12
|
+
*
|
|
13
|
+
* `origin_rel` is relative to the planet centre and assumed to be inside the atmosphere and
|
|
14
|
+
* at or above the surface, which is what makes the shell's far root the exit point.
|
|
15
|
+
* `ray_direction` must be normalised.
|
|
16
|
+
*
|
|
17
|
+
* `ground_distance` is negative when the ray never meets the surface, which includes looking
|
|
18
|
+
* up from above it: both roots are behind the origin there.
|
|
19
|
+
*
|
|
20
|
+
* @type {CodeChunk}
|
|
21
|
+
*/
|
|
22
|
+
export const chunk_atmosphere_ray_bounds = CodeChunk.from(
|
|
23
|
+
//language=WGSL
|
|
24
|
+
`
|
|
25
|
+
struct AtmosphereRayBounds {
|
|
26
|
+
// as far as a march may go: the surface when the ray meets it, the shell otherwise
|
|
27
|
+
t_max: f32,
|
|
28
|
+
// distance to the surface, negative when there is no hit ahead
|
|
29
|
+
ground_distance: f32,
|
|
30
|
+
hits_ground: bool,
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
fn atmosphere_ray_bounds(
|
|
34
|
+
origin_rel: vec3<f32>,
|
|
35
|
+
ray_direction: vec3<f32>
|
|
36
|
+
) -> AtmosphereRayBounds {
|
|
37
|
+
|
|
38
|
+
// ray_direction is a unit vector, so the leading coefficient is 1 and the factors of two
|
|
39
|
+
// divide out of both roots
|
|
40
|
+
let b = dot(origin_rel, ray_direction);
|
|
41
|
+
let r2 = dot(origin_rel, origin_rel);
|
|
42
|
+
let b2 = b * b;
|
|
43
|
+
|
|
44
|
+
// inside the shell, so its constant term is negative, the discriminant is positive, and
|
|
45
|
+
// the far root is where the ray leaves
|
|
46
|
+
let atmosphere_distance = -b + sqrt(max(b2 - (r2 - ATMOSPHERE_TOP_RADIUS_SQUARED), 0.0));
|
|
47
|
+
|
|
48
|
+
// the ground is the near root, and only when that root is ahead of us
|
|
49
|
+
let ground_discriminant = b2 - (r2 - ATMOSPHERE_GROUND_RADIUS_SQUARED);
|
|
50
|
+
let ground_distance = select(
|
|
51
|
+
-1.0,
|
|
52
|
+
-b - sqrt(max(ground_discriminant, 0.0)),
|
|
53
|
+
ground_discriminant >= 0.0
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
let hits_ground = ground_distance > 0.0;
|
|
57
|
+
|
|
58
|
+
var result: AtmosphereRayBounds;
|
|
59
|
+
|
|
60
|
+
result.t_max = select(atmosphere_distance, ground_distance, hits_ground);
|
|
61
|
+
result.ground_distance = ground_distance;
|
|
62
|
+
result.hits_ground = hits_ground;
|
|
63
|
+
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
`, [
|
|
67
|
+
ATMOSPHERE_RADII_DECLARATION,
|
|
68
|
+
]
|
|
69
|
+
);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether `inner` lies entirely within `outer`. Closed on both sides: touching faces count as
|
|
3
|
+
* contained, matching {@link chunk_aabb3_intersects_point}'s treatment of the boundary.
|
|
4
|
+
*
|
|
5
|
+
* @type {CodeChunk}
|
|
6
|
+
*/
|
|
7
|
+
export const chunk_aabb3_contains_aabb3: CodeChunk;
|
|
8
|
+
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
9
|
+
//# sourceMappingURL=chunk_aabb3_contains_aabb3.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk_aabb3_contains_aabb3.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_contains_aabb3.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,yCAFU,SAAS,CAcZ;0BArBmB,gCAAgC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
2
|
+
import { AABB3_STRUCT } from "./AABB3_STRUCT.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Whether `inner` lies entirely within `outer`. Closed on both sides: touching faces count as
|
|
6
|
+
* contained, matching {@link chunk_aabb3_intersects_point}'s treatment of the boundary.
|
|
7
|
+
*
|
|
8
|
+
* @type {CodeChunk}
|
|
9
|
+
*/
|
|
10
|
+
export const chunk_aabb3_contains_aabb3 = CodeChunk.from(
|
|
11
|
+
//language=WGSL
|
|
12
|
+
`
|
|
13
|
+
fn aabb3_contains_aabb3(
|
|
14
|
+
outer: ${AABB3_STRUCT.wgsl_ref},
|
|
15
|
+
inner: ${AABB3_STRUCT.wgsl_ref}
|
|
16
|
+
) -> bool{
|
|
17
|
+
|
|
18
|
+
return all(inner.min >= outer.min) && all(inner.max <= outer.max);
|
|
19
|
+
|
|
20
|
+
}`, [
|
|
21
|
+
AABB3_STRUCT.declaration_chunk
|
|
22
|
+
]);
|
package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_from_transformed_corners.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bounds of 8 corner points after a point transform.
|
|
3
|
+
*
|
|
4
|
+
* The corners are transformed and *then* bounded, so the result is the tight bound of the
|
|
5
|
+
* transformed hull rather than the transform of a bound — no inflation under rotation. That
|
|
6
|
+
* distinction is the reason this exists instead of transforming an existing AABB3.
|
|
7
|
+
*
|
|
8
|
+
* Written out rather than looped: the corner array stays register-resident this way, and a
|
|
9
|
+
* dynamically indexed local array is the classic route to a scratch-memory spill in a kernel that
|
|
10
|
+
* runs once per froxel.
|
|
11
|
+
*
|
|
12
|
+
* @type {CodeChunk}
|
|
13
|
+
*/
|
|
14
|
+
export const chunk_aabb3_from_transformed_corners: CodeChunk;
|
|
15
|
+
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
16
|
+
//# sourceMappingURL=chunk_aabb3_from_transformed_corners.d.ts.map
|
package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_from_transformed_corners.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk_aabb3_from_transformed_corners.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_from_transformed_corners.js"],"names":[],"mappings":"AAGA;;;;;;;;;;;;GAYG;AACH,mDAFU,SAAS,CA0BZ;0BAxCmB,gCAAgC"}
|
package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_from_transformed_corners.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
2
|
+
import { AABB3_STRUCT } from "./AABB3_STRUCT.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Bounds of 8 corner points after a point transform.
|
|
6
|
+
*
|
|
7
|
+
* The corners are transformed and *then* bounded, so the result is the tight bound of the
|
|
8
|
+
* transformed hull rather than the transform of a bound — no inflation under rotation. That
|
|
9
|
+
* distinction is the reason this exists instead of transforming an existing AABB3.
|
|
10
|
+
*
|
|
11
|
+
* Written out rather than looped: the corner array stays register-resident this way, and a
|
|
12
|
+
* dynamically indexed local array is the classic route to a scratch-memory spill in a kernel that
|
|
13
|
+
* runs once per froxel.
|
|
14
|
+
*
|
|
15
|
+
* @type {CodeChunk}
|
|
16
|
+
*/
|
|
17
|
+
export const chunk_aabb3_from_transformed_corners = CodeChunk.from(
|
|
18
|
+
//language=WGSL
|
|
19
|
+
`
|
|
20
|
+
fn aabb3_from_transformed_corners(
|
|
21
|
+
corners: array<vec3<f32>, 8>,
|
|
22
|
+
transform: mat4x4<f32>
|
|
23
|
+
) -> ${AABB3_STRUCT.wgsl_ref}{
|
|
24
|
+
|
|
25
|
+
let p0 = (transform * vec4<f32>(corners[0], 1.0)).xyz;
|
|
26
|
+
let p1 = (transform * vec4<f32>(corners[1], 1.0)).xyz;
|
|
27
|
+
let p2 = (transform * vec4<f32>(corners[2], 1.0)).xyz;
|
|
28
|
+
let p3 = (transform * vec4<f32>(corners[3], 1.0)).xyz;
|
|
29
|
+
let p4 = (transform * vec4<f32>(corners[4], 1.0)).xyz;
|
|
30
|
+
let p5 = (transform * vec4<f32>(corners[5], 1.0)).xyz;
|
|
31
|
+
let p6 = (transform * vec4<f32>(corners[6], 1.0)).xyz;
|
|
32
|
+
let p7 = (transform * vec4<f32>(corners[7], 1.0)).xyz;
|
|
33
|
+
|
|
34
|
+
let lo = min(min(min(p0, p1), min(p2, p3)), min(min(p4, p5), min(p6, p7)));
|
|
35
|
+
let hi = max(max(max(p0, p1), max(p2, p3)), max(max(p4, p5), max(p6, p7)));
|
|
36
|
+
|
|
37
|
+
return ${AABB3_STRUCT.make({ min: "lo", max: "hi" })};
|
|
38
|
+
|
|
39
|
+
}`, [
|
|
40
|
+
AABB3_STRUCT.declaration_chunk
|
|
41
|
+
]);
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transforms a frustum's 6 planes by a point transform, deriving the plane matrix from it.
|
|
3
|
+
*
|
|
4
|
+
* The derivation costs a generic 4x4 inverse. When the caller already holds the inverse of the
|
|
5
|
+
* transform it is passing — which is the usual shape, since object structs tend to carry both
|
|
6
|
+
* directions — `transpose(inverse(M)) == transpose(other_direction)` and
|
|
7
|
+
* {@link chunk_frustum_transform_plane_matrix} should be called directly with that transpose
|
|
8
|
+
* instead. Nothing is approximated by doing so; it removes a round-trip.
|
|
9
|
+
*
|
|
10
|
+
* @type {CodeChunk}
|
|
11
|
+
*/
|
|
1
12
|
export const chunk_frustum_transform_m4: CodeChunk;
|
|
2
13
|
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
3
14
|
//# sourceMappingURL=chunk_frustum_transform_m4.d.ts.map
|
package/src/shade/renderer/shader/chunk/geometry/frustum/chunk_frustum_transform_m4.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk_frustum_transform_m4.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shade/renderer/shader/chunk/geometry/frustum/chunk_frustum_transform_m4.js"],"names":[],"mappings":"AAIA,
|
|
1
|
+
{"version":3,"file":"chunk_frustum_transform_m4.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shade/renderer/shader/chunk/geometry/frustum/chunk_frustum_transform_m4.js"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AACH,yCAFU,SAAS,CAelB;0BA5ByB,gCAAgC"}
|
|
@@ -1,33 +1,29 @@
|
|
|
1
1
|
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
2
2
|
import { chunk_mat4_inverse } from "../mat4/chunk_mat4_inverse.js";
|
|
3
|
-
import {
|
|
3
|
+
import { chunk_frustum_transform_plane_matrix } from "./chunk_frustum_transform_plane_matrix.js";
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Transforms a frustum's 6 planes by a point transform, deriving the plane matrix from it.
|
|
7
|
+
*
|
|
8
|
+
* The derivation costs a generic 4x4 inverse. When the caller already holds the inverse of the
|
|
9
|
+
* transform it is passing — which is the usual shape, since object structs tend to carry both
|
|
10
|
+
* directions — `transpose(inverse(M)) == transpose(other_direction)` and
|
|
11
|
+
* {@link chunk_frustum_transform_plane_matrix} should be called directly with that transpose
|
|
12
|
+
* instead. Nothing is approximated by doing so; it removes a round-trip.
|
|
13
|
+
*
|
|
14
|
+
* @type {CodeChunk}
|
|
15
|
+
*/
|
|
5
16
|
export const chunk_frustum_transform_m4 = CodeChunk.from(
|
|
6
17
|
//language=WGSL
|
|
7
18
|
`
|
|
8
19
|
fn frustum_transform_m4(frustum: array<vec4<f32>, 6>, transform: mat4x4<f32>) -> array<vec4<f32>, 6> {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
// 1. Compute the "Normal Matrix"
|
|
12
|
-
// The mathematical rule for transforming planes (or normals) is:
|
|
20
|
+
// The mathematical rule for transforming planes is
|
|
13
21
|
// NewPlane = Transpose(Inverse(Transform)) * OldPlane
|
|
14
22
|
// This automatically handles rotation, translation, AND non-uniform scaling correctly.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
for (var i = 0u; i < 6u; i++) {
|
|
18
|
-
// 2. Transform the plane equation
|
|
19
|
-
// We treat the plane (a,b,c,d) as a 4D vector.
|
|
20
|
-
var p = normal_matrix * frustum[i];
|
|
21
|
-
|
|
22
|
-
// 3. Re-normalize the plane
|
|
23
|
-
result[i] = plane_normalize(p);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
return result;
|
|
23
|
+
return frustum_transform_plane_matrix(frustum, transpose(mat4_inverse(transform)));
|
|
27
24
|
}
|
|
28
25
|
`, [
|
|
29
26
|
chunk_mat4_inverse,
|
|
30
|
-
|
|
27
|
+
chunk_frustum_transform_plane_matrix,
|
|
31
28
|
]
|
|
32
29
|
)
|
|
33
|
-
|
package/src/shade/renderer/shader/chunk/geometry/frustum/chunk_frustum_transform_plane_matrix.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transforms a frustum's 6 planes by an already-built plane matrix.
|
|
3
|
+
*
|
|
4
|
+
* A plane `p` satisfies `dot(p, x) == 0` for points `x` on it, so if points move by `x' = T x` the
|
|
5
|
+
* plane must move by `p' = inverse(transpose(T)) p` to describe the same surface. `T` and its
|
|
6
|
+
* transpose-inverse are therefore *different* matrices, and this function takes the second one
|
|
7
|
+
* ready-made — {@link chunk_frustum_transform_m4} is the wrapper that derives it from the first.
|
|
8
|
+
*
|
|
9
|
+
* The matrix is a full 4x4, not a 3x3 basis: its last row carries the translation, and that is
|
|
10
|
+
* exactly what produces the transformed plane's distance term. Rotating the normals alone would
|
|
11
|
+
* leave every plane at its original offset from the origin.
|
|
12
|
+
*
|
|
13
|
+
* Callers that already hold the transpose-inverse should use this directly. The common case is
|
|
14
|
+
* mapping a frustum into an object's local space: points go world -> local through
|
|
15
|
+
* `inverse(transform)`, so planes go through `transpose(inverse(inverse(transform)))`, which is just
|
|
16
|
+
* `transpose(transform)` — no inverse to compute at all when the object's forward transform is at
|
|
17
|
+
* hand.
|
|
18
|
+
*
|
|
19
|
+
* @type {CodeChunk}
|
|
20
|
+
*/
|
|
21
|
+
export const chunk_frustum_transform_plane_matrix: CodeChunk;
|
|
22
|
+
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
23
|
+
//# sourceMappingURL=chunk_frustum_transform_plane_matrix.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk_frustum_transform_plane_matrix.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shade/renderer/shader/chunk/geometry/frustum/chunk_frustum_transform_plane_matrix.js"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,mDAFU,SAAS,CAsBlB;0BA3CyB,gCAAgC"}
|
package/src/shade/renderer/shader/chunk/geometry/frustum/chunk_frustum_transform_plane_matrix.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
2
|
+
import { chunk_plane_normalize } from "../plane/chunk_plane_normalize.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Transforms a frustum's 6 planes by an already-built plane matrix.
|
|
6
|
+
*
|
|
7
|
+
* A plane `p` satisfies `dot(p, x) == 0` for points `x` on it, so if points move by `x' = T x` the
|
|
8
|
+
* plane must move by `p' = inverse(transpose(T)) p` to describe the same surface. `T` and its
|
|
9
|
+
* transpose-inverse are therefore *different* matrices, and this function takes the second one
|
|
10
|
+
* ready-made — {@link chunk_frustum_transform_m4} is the wrapper that derives it from the first.
|
|
11
|
+
*
|
|
12
|
+
* The matrix is a full 4x4, not a 3x3 basis: its last row carries the translation, and that is
|
|
13
|
+
* exactly what produces the transformed plane's distance term. Rotating the normals alone would
|
|
14
|
+
* leave every plane at its original offset from the origin.
|
|
15
|
+
*
|
|
16
|
+
* Callers that already hold the transpose-inverse should use this directly. The common case is
|
|
17
|
+
* mapping a frustum into an object's local space: points go world -> local through
|
|
18
|
+
* `inverse(transform)`, so planes go through `transpose(inverse(inverse(transform)))`, which is just
|
|
19
|
+
* `transpose(transform)` — no inverse to compute at all when the object's forward transform is at
|
|
20
|
+
* hand.
|
|
21
|
+
*
|
|
22
|
+
* @type {CodeChunk}
|
|
23
|
+
*/
|
|
24
|
+
export const chunk_frustum_transform_plane_matrix = CodeChunk.from(
|
|
25
|
+
//language=WGSL
|
|
26
|
+
`
|
|
27
|
+
fn frustum_transform_plane_matrix(
|
|
28
|
+
frustum: array<vec4<f32>, 6>,
|
|
29
|
+
plane_matrix: mat4x4<f32>
|
|
30
|
+
) -> array<vec4<f32>, 6> {
|
|
31
|
+
var result: array<vec4<f32>, 6>;
|
|
32
|
+
|
|
33
|
+
for (var i = 0u; i < 6u; i++) {
|
|
34
|
+
// Re-normalize: the plane's normal picks up the transform's scale, and consumers that
|
|
35
|
+
// interpolate plane pairs (frustum_sample_point, frustum_slice) weight by normal length.
|
|
36
|
+
result[i] = plane_normalize(plane_matrix * frustum[i]);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
`, [
|
|
42
|
+
chunk_plane_normalize,
|
|
43
|
+
]
|
|
44
|
+
)
|
package/src/shade/renderer/shader/chunk/geometry/octahedron/chunk_uv_octahedral_unit_decode.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk_uv_octahedral_unit_decode.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shade/renderer/shader/chunk/geometry/octahedron/chunk_uv_octahedral_unit_decode.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chunk_uv_octahedral_unit_decode.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shade/renderer/shader/chunk/geometry/octahedron/chunk_uv_octahedral_unit_decode.js"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,8CAFU,SAAS,CAiBb;0BAzBoB,gCAAgC"}
|
package/src/shade/renderer/shader/chunk/geometry/octahedron/chunk_uv_octahedral_unit_decode.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
2
|
-
import { chunk_sign_not_zero } from "../../math/chunk_sign_not_zero.js";
|
|
3
2
|
|
|
4
3
|
/**
|
|
5
4
|
*
|
|
@@ -24,6 +23,4 @@ fn uv_octahedral_unit_decode( uv: vec2<f32> ) -> vec3<f32>{
|
|
|
24
23
|
|
|
25
24
|
return normalize( nor );
|
|
26
25
|
}
|
|
27
|
-
`,[
|
|
28
|
-
chunk_sign_not_zero
|
|
29
|
-
])
|
|
26
|
+
`, [])
|
|
@@ -23,6 +23,11 @@ export class CodeChunk {
|
|
|
23
23
|
* @returns {boolean} true iff added, false if already present
|
|
24
24
|
*/
|
|
25
25
|
addExtension(extension: WebGPUExtensionType): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* @param {string} extension a WGSL language extension name, e.g. `immediate_address_space`
|
|
28
|
+
* @returns {boolean} true iff added, false if already present
|
|
29
|
+
*/
|
|
30
|
+
addLanguageExtension(extension: string): boolean;
|
|
26
31
|
/**
|
|
27
32
|
*
|
|
28
33
|
* @param {CodeChunk} dependency
|
|
@@ -52,11 +57,12 @@ export class CodeChunk {
|
|
|
52
57
|
*/
|
|
53
58
|
coalesceDependencies(): CodeChunk[];
|
|
54
59
|
/**
|
|
55
|
-
* @returns {{text:string, extensions: string[]}}
|
|
60
|
+
* @returns {{text:string, extensions: string[], language_extensions: string[]}}
|
|
56
61
|
*/
|
|
57
62
|
compile(): {
|
|
58
63
|
text: string;
|
|
59
64
|
extensions: string[];
|
|
65
|
+
language_extensions: string[];
|
|
60
66
|
};
|
|
61
67
|
toString(): string;
|
|
62
68
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeChunk.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shader/compiler/CodeChunk.js"],"names":[],"mappings":"AAOA;IAMI;;;OAGG;IACH,cAFU,SAAS,SAAS,CAAC,CAEoB;
|
|
1
|
+
{"version":3,"file":"CodeChunk.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shader/compiler/CodeChunk.js"],"names":[],"mappings":"AAOA;IAMI;;;OAGG;IACH,cAFU,SAAS,SAAS,CAAC,CAEoB;IAkGjD;;;;;OAKG;IACH,kBAHW,MAAM,iBADN,SAAS,EAAE,GAET,SAAS,CAqBrB;IAnID,2BAEC;IAcD;;;OAGG;IACH,mBAEC;IAeD;;;;OAIG;IACH,wBAHW,mBAAmB,GACjB,OAAO,CAMnB;IAkBD;;;OAGG;IACH,gCAHW,MAAM,GACJ,OAAO,CAMnB;IAED;;;;OAIG;IACH,0BAHW,SAAS,GACP,OAAO,CAmBnB;IAqCD;;;;OAIG;IACH,6CAHW,IAAI,SAAS,CAAC,GACZ,OAAO,CAgBnB;IAED;;;;OAIG;IACH,+BAHW,SAAS,GACP,OAAO,CAqBnB;IAED;;;OAGG;IACH,uBAFa,SAAS,EAAE,CAoCvB;IAED;;;OAGG;IACH,wBAFY,SAAS,EAAE,CAgDtB;IAED;;OAEG;IACH;cAFmB,MAAM;oBAAc,MAAM,EAAE;6BAAuB,MAAM,EAAE;MA4C7E;IAED,mBAEC;IAED;;;OAGG;IACH,QAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,YAFW,SAAS,QAOnB;IAED;;;OAGG;IACH,SAFY,SAAS,CAQpB;IAED;;;;OAIG;IACH,cAHW,SAAS,GACP,OAAO,CAWnB;;CACJ;oCAtXmC,4CAA4C"}
|
|
@@ -55,6 +55,32 @@ export class CodeChunk {
|
|
|
55
55
|
return array_push_if_unique(this.#extensions, extension);
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
/**
|
|
59
|
+
* WGSL language extensions this chunk uses, emitted as `requires`.
|
|
60
|
+
*
|
|
61
|
+
* A separate channel from {@link #extensions} on purpose. WGSL has two kinds of extension and
|
|
62
|
+
* they take different directives: an *enable-extension* is a device capability negotiated
|
|
63
|
+
* through `GPUFeatureName` and written `enable f16;`, while a *language extension* is available
|
|
64
|
+
* whenever the implementation supports it, is not a `GPUFeatureName` at all, and is written
|
|
65
|
+
* `requires immediate_address_space;`. Putting a language extension through
|
|
66
|
+
* {@link addExtension} would fail its {@link WebGPUExtensionType} assert, and if it somehow got
|
|
67
|
+
* past that it would emit the wrong directive and be looked for in the wrong namespace.
|
|
68
|
+
*
|
|
69
|
+
* @see https://www.w3.org/TR/WGSL/#language-extensions
|
|
70
|
+
* @type {string[]}
|
|
71
|
+
*/
|
|
72
|
+
#language_extensions = [];
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* @param {string} extension a WGSL language extension name, e.g. `immediate_address_space`
|
|
76
|
+
* @returns {boolean} true iff added, false if already present
|
|
77
|
+
*/
|
|
78
|
+
addLanguageExtension(extension) {
|
|
79
|
+
assert.isString(extension, 'extension');
|
|
80
|
+
|
|
81
|
+
return array_push_if_unique(this.#language_extensions, extension);
|
|
82
|
+
}
|
|
83
|
+
|
|
58
84
|
/**
|
|
59
85
|
*
|
|
60
86
|
* @param {CodeChunk} dependency
|
|
@@ -254,7 +280,7 @@ export class CodeChunk {
|
|
|
254
280
|
}
|
|
255
281
|
|
|
256
282
|
/**
|
|
257
|
-
* @returns {{text:string, extensions: string[]}}
|
|
283
|
+
* @returns {{text:string, extensions: string[], language_extensions: string[]}}
|
|
258
284
|
*/
|
|
259
285
|
compile() {
|
|
260
286
|
|
|
@@ -262,6 +288,7 @@ export class CodeChunk {
|
|
|
262
288
|
queue.push(this);
|
|
263
289
|
|
|
264
290
|
const extension_hash = {};
|
|
291
|
+
const language_extension_hash = {};
|
|
265
292
|
|
|
266
293
|
/**
|
|
267
294
|
*
|
|
@@ -279,16 +306,23 @@ export class CodeChunk {
|
|
|
279
306
|
for (let j = 0; j < ext.length; j++) {
|
|
280
307
|
extension_hash[ext[j]] = true;
|
|
281
308
|
}
|
|
309
|
+
|
|
310
|
+
const lang_ext = chunk.#language_extensions;
|
|
311
|
+
for (let j = 0; j < lang_ext.length; j++) {
|
|
312
|
+
language_extension_hash[lang_ext[j]] = true;
|
|
313
|
+
}
|
|
282
314
|
}
|
|
283
315
|
|
|
284
316
|
// Enable required extensions
|
|
285
317
|
const extensions = Object.keys(extension_hash).sort();
|
|
318
|
+
const language_extensions = Object.keys(language_extension_hash).sort();
|
|
286
319
|
|
|
287
320
|
const text = result_parts.join('\n');
|
|
288
321
|
|
|
289
322
|
return {
|
|
290
323
|
text,
|
|
291
|
-
extensions
|
|
324
|
+
extensions,
|
|
325
|
+
language_extensions
|
|
292
326
|
};
|
|
293
327
|
}
|
|
294
328
|
|
|
@@ -312,6 +346,7 @@ export class CodeChunk {
|
|
|
312
346
|
this.#text = other.#text;
|
|
313
347
|
this.#dependencies = other.#dependencies.slice();
|
|
314
348
|
this.#extensions = other.#extensions.slice();
|
|
349
|
+
this.#language_extensions = other.#language_extensions.slice();
|
|
315
350
|
}
|
|
316
351
|
|
|
317
352
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compute_binding_read_names.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/shader/graph/compute/compute_binding_read_names.js"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,+GAFY,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"compute_binding_read_names.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/shader/graph/compute/compute_binding_read_names.js"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,+GAFY,MAAM,EAAE,CA6BnB"}
|
|
@@ -14,6 +14,12 @@ export function compute_binding_read_names(binding_names, shader_resources) {
|
|
|
14
14
|
const binding_names_read = [];
|
|
15
15
|
|
|
16
16
|
for (const binding_name of binding_names) {
|
|
17
|
+
if (shader_resources.isImmediateName(binding_name)) {
|
|
18
|
+
// immediate data is immutable, so it is always a read
|
|
19
|
+
binding_names_read.push(binding_name);
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
|
|
17
23
|
const resource = shader_resources.getResourceByName(binding_name);
|
|
18
24
|
|
|
19
25
|
if (resource === undefined) {
|
|
@@ -58,7 +58,7 @@ export function graph_compute_indirect_pass({
|
|
|
58
58
|
|
|
59
59
|
command_handle = pass.read(command);
|
|
60
60
|
|
|
61
|
-
graph_prepare_pass_input_data(binding_names_read, bindings, pass, pass_data);
|
|
61
|
+
graph_prepare_pass_input_data(binding_names_read, bindings, pass, pass_data, shader_resources);
|
|
62
62
|
|
|
63
63
|
return graph_prepare_compute_resources(
|
|
64
64
|
shader_resources,
|
|
@@ -56,7 +56,7 @@ export function graph_compute_pass({
|
|
|
56
56
|
|
|
57
57
|
const pass = graph.add(shader_descriptor.label, pass_data, execute);
|
|
58
58
|
|
|
59
|
-
graph_prepare_pass_input_data(binding_names_read, bindings, pass, pass_data);
|
|
59
|
+
graph_prepare_pass_input_data(binding_names_read, bindings, pass, pass_data, shader_resources);
|
|
60
60
|
|
|
61
61
|
return graph_prepare_compute_resources(
|
|
62
62
|
shader_resources,
|
|
@@ -152,7 +152,7 @@ export function graph_image_pass({
|
|
|
152
152
|
const pass = graph.add(shader_descriptor.label, pass_data, execute);
|
|
153
153
|
|
|
154
154
|
// parse inputs
|
|
155
|
-
graph_prepare_pass_input_data(input_names, inputs, pass, pass_data);
|
|
155
|
+
graph_prepare_pass_input_data(input_names, inputs, pass, pass_data, shader_descriptor.resources);
|
|
156
156
|
|
|
157
157
|
if (input_depth !== -1) {
|
|
158
158
|
pass_data[DEPTH_TEXTURE_NAME] = pass.read(input_depth);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph_prepare_bindings.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shader/graph/graph_prepare_bindings.js"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,yFANW,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"graph_prepare_bindings.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shader/graph/graph_prepare_bindings.js"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,yFANW,MAAM,EAAE,oFA0DlB"}
|
|
@@ -27,6 +27,13 @@ export function graph_prepare_bindings(
|
|
|
27
27
|
for (let i = 0; i < input_name_count; i++) {
|
|
28
28
|
const input_key = input_names[i];
|
|
29
29
|
|
|
30
|
+
if (resources_descriptor.isImmediateName(input_key)) {
|
|
31
|
+
// hand the value on unchanged — ComputeShader/ImageShader serialise it through
|
|
32
|
+
// ShaderResourceSetDescriptor#writeImmediate, and it never becomes a binding
|
|
33
|
+
bindings[input_key] = data[input_key];
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
|
|
30
37
|
const resource_spec = resources_descriptor.getResourceByName(input_key);
|
|
31
38
|
|
|
32
39
|
if (resource_spec === undefined) {
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
* @param {Object} inputs
|
|
5
5
|
* @param {FrameGraphBuilder} pass
|
|
6
6
|
* @param {Object} pass_data
|
|
7
|
+
* @param {ShaderResourceSetDescriptor} [shader_resources] when given, its immediate data is carried
|
|
8
|
+
* through verbatim instead of being read as a graph resource
|
|
7
9
|
*/
|
|
8
|
-
export function graph_prepare_pass_input_data(input_names: string[], inputs: any, pass: FrameGraphBuilder, pass_data: any): void;
|
|
10
|
+
export function graph_prepare_pass_input_data(input_names: string[], inputs: any, pass: FrameGraphBuilder, pass_data: any, shader_resources?: ShaderResourceSetDescriptor): void;
|
|
9
11
|
//# sourceMappingURL=graph_prepare_pass_input_data.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph_prepare_pass_input_data.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shader/graph/graph_prepare_pass_input_data.js"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"graph_prepare_pass_input_data.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shader/graph/graph_prepare_pass_input_data.js"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,2DAPW,MAAM,EAAE,8GA0ClB"}
|
|
@@ -4,12 +4,15 @@
|
|
|
4
4
|
* @param {Object} inputs
|
|
5
5
|
* @param {FrameGraphBuilder} pass
|
|
6
6
|
* @param {Object} pass_data
|
|
7
|
+
* @param {ShaderResourceSetDescriptor} [shader_resources] when given, its immediate data is carried
|
|
8
|
+
* through verbatim instead of being read as a graph resource
|
|
7
9
|
*/
|
|
8
10
|
export function graph_prepare_pass_input_data(
|
|
9
11
|
input_names,
|
|
10
12
|
inputs,
|
|
11
13
|
pass,
|
|
12
|
-
pass_data
|
|
14
|
+
pass_data,
|
|
15
|
+
shader_resources
|
|
13
16
|
) {
|
|
14
17
|
const input_count = input_names.length;
|
|
15
18
|
for (let i = 0; i < input_count; i++) {
|
|
@@ -17,6 +20,14 @@ export function graph_prepare_pass_input_data(
|
|
|
17
20
|
|
|
18
21
|
const input_field_value = inputs[input_key];
|
|
19
22
|
|
|
23
|
+
// An immediate is a value, not a resource the graph owns — and a `u32` immediate is a
|
|
24
|
+
// number, which the branch below would otherwise take for a graph resource id and read as
|
|
25
|
+
// one. Nothing to declare to the graph, so it passes straight through.
|
|
26
|
+
if (shader_resources !== undefined && shader_resources.isImmediateName(input_key)) {
|
|
27
|
+
pass_data[input_key] = input_field_value;
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
|
|
20
31
|
let pass_input_value;
|
|
21
32
|
|
|
22
33
|
const input_field_type = typeof input_field_value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderPassDescriptor.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shader/pass/RenderPassDescriptor.js"],"names":[],"mappings":"AAIA;;GAEG;AACH;IACI;;OAEG;IACH,mCAAQ;IAER;;OAEG;IACH,uCAAS;IAET;;;OAGG;IACH,kBAFU,qCAAqC,CAEzB;IAEtB;;;OAGG;IACH,wBAFU,0CAA0C,CAEsB;IAG1E;;;;;;;;;;OAUG;IACH,8GAVW,mBAAmB,2BA+E7B;IAED;;;;;;;;;;OAUG;IACH,
|
|
1
|
+
{"version":3,"file":"RenderPassDescriptor.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shader/pass/RenderPassDescriptor.js"],"names":[],"mappings":"AAIA;;GAEG;AACH;IACI;;OAEG;IACH,mCAAQ;IAER;;OAEG;IACH,uCAAS;IAET;;;OAGG;IACH,kBAFU,qCAAqC,CAEzB;IAEtB;;;OAGG;IACH,wBAFU,0CAA0C,CAEsB;IAG1E;;;;;;;;;;OAUG;IACH,8GAVW,mBAAmB,2BA+E7B;IAED;;;;;;;;;;OAUG;IACH,yIAkCC;IAED;;;;;;;OAOG;IACH,0GAcC;IAGL;;;OAGG;IACH,iCAFU,OAAO,CAEoC;CANpD;2DArL0D,iDAAiD"}
|
|
@@ -152,6 +152,7 @@ export class RenderPassDescriptor {
|
|
|
152
152
|
return encoder.constructRenderPass({
|
|
153
153
|
pipeline,
|
|
154
154
|
bindings: this.resources.generateBindings(bindings),
|
|
155
|
+
immediate: encoder.writeImmediate(this.resources, bindings),
|
|
155
156
|
colorAttachments: gpu_descriptor.colorAttachments,
|
|
156
157
|
depthStencilAttachment: gpu_descriptor.depthStencilAttachment,
|
|
157
158
|
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The WGSL language extension the `immediate` address space lives behind.
|
|
3
|
+
*
|
|
4
|
+
* Written with `requires`, not `enable` — it is a *language* extension, available whenever the
|
|
5
|
+
* implementation supports it, and it is not a `GPUFeatureName`.
|
|
6
|
+
*
|
|
7
|
+
* @see https://www.w3.org/TR/WGSL/#language_extension-immediate_address_space
|
|
8
|
+
* @type {string}
|
|
9
|
+
*/
|
|
10
|
+
export const IMMEDIATE_ADDRESS_SPACE_EXTENSION: string;
|
|
11
|
+
/**
|
|
12
|
+
* The `maxImmediateSize` every conformant WebGPU device reports at minimum — a `maximum`-class limit
|
|
13
|
+
* whose default is 64 bytes, with no separate compatibility-mode value.
|
|
14
|
+
*
|
|
15
|
+
* Declaring more than this would compile on whichever machine happened to offer more and fail
|
|
16
|
+
* everywhere else, so it is refused where the declaration is written rather than where it breaks.
|
|
17
|
+
*
|
|
18
|
+
* @type {number}
|
|
19
|
+
*/
|
|
20
|
+
export const IMMEDIATE_SIZE_FLOOR: number;
|
|
21
|
+
//# sourceMappingURL=IMMEDIATE_DATA.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IMMEDIATE_DATA.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shader/resource/IMMEDIATE_DATA.js"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,gDAFU,MAAM,CAE2D;AAE3E;;;;;;;;GAQG;AACH,mCAFU,MAAM,CAEuB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The WGSL language extension the `immediate` address space lives behind.
|
|
3
|
+
*
|
|
4
|
+
* Written with `requires`, not `enable` — it is a *language* extension, available whenever the
|
|
5
|
+
* implementation supports it, and it is not a `GPUFeatureName`.
|
|
6
|
+
*
|
|
7
|
+
* @see https://www.w3.org/TR/WGSL/#language_extension-immediate_address_space
|
|
8
|
+
* @type {string}
|
|
9
|
+
*/
|
|
10
|
+
export const IMMEDIATE_ADDRESS_SPACE_EXTENSION = 'immediate_address_space';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* The `maxImmediateSize` every conformant WebGPU device reports at minimum — a `maximum`-class limit
|
|
14
|
+
* whose default is 64 bytes, with no separate compatibility-mode value.
|
|
15
|
+
*
|
|
16
|
+
* Declaring more than this would compile on whichever machine happened to offer more and fail
|
|
17
|
+
* everywhere else, so it is refused where the declaration is written rather than where it breaks.
|
|
18
|
+
*
|
|
19
|
+
* @type {number}
|
|
20
|
+
*/
|
|
21
|
+
export const IMMEDIATE_SIZE_FLOOR = 64;
|