@woosh/meep-engine 3.11.3 → 3.13.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/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/GPUDecalRenderer.js +3 -3
- 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/decal/shader_decal_composite.d.ts.map +1 -1
- package/src/engine/graphics3/decal/shader_decal_composite.js +4 -2
- package/src/engine/graphics3/highlight/GPUHighlightRenderer.d.ts.map +1 -1
- package/src/engine/graphics3/highlight/GPUHighlightRenderer.js +2 -3
- 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/highlight/shader_highlight_outline.js +150 -150
- 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/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
- package/src/shade/RENDERER_CONTRACT.md +2 -1
- package/src/shade/descriptor/pipeline/compute/ComputePipelineDescriptor.d.ts +18 -0
- package/src/shade/descriptor/pipeline/compute/ComputePipelineDescriptor.d.ts.map +1 -1
- package/src/shade/descriptor/pipeline/compute/ComputePipelineDescriptor.js +73 -0
- package/src/shade/device/PASS_ENCODER_PROPOSAL_2026_08_31.md +750 -0
- package/src/shade/device/ShadeGPUCommandContext.d.ts +10 -16
- package/src/shade/device/ShadeGPUCommandContext.d.ts.map +1 -1
- package/src/shade/device/ShadeGPUCommandContext.js +801 -994
- package/src/shade/device/pass/ShadeGPUComputePassEncoder.d.ts +107 -0
- package/src/shade/device/pass/ShadeGPUComputePassEncoder.d.ts.map +1 -0
- package/src/shade/device/pass/ShadeGPUComputePassEncoder.js +222 -0
- package/src/shade/device/pass/ShadeGPURenderPassEncoder.d.ts +168 -0
- package/src/shade/device/pass/ShadeGPURenderPassEncoder.d.ts.map +1 -0
- package/src/shade/device/pass/ShadeGPURenderPassEncoder.js +317 -0
- package/src/shade/device/timing/GPUTimerArray.d.ts +4 -9
- package/src/shade/device/timing/GPUTimerArray.d.ts.map +1 -1
- package/src/shade/device/timing/GPUTimerArray.js +261 -289
- package/src/shade/device/timing/GPU_PROFILER_PROPOSAL_2026_08_28.md +20 -2
- package/src/shade/device/timing/ShadeGPUContextProfiler.d.ts +59 -0
- package/src/shade/device/timing/ShadeGPUContextProfiler.d.ts.map +1 -0
- package/src/shade/device/timing/ShadeGPUContextProfiler.js +182 -0
- package/src/shade/device/timing/profile/GPUProfileSession.d.ts +4 -4
- package/src/shade/device/timing/profile/GPUProfileSession.js +4 -4
- 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 +3 -2
- 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 +3 -2
- 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 +135 -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/Renderer.d.ts +0 -6
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +0 -29
- package/src/shade/renderer/STATIC_GRAPHICS_ENGINE_ASSETS.js +1 -1
- package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
- package/src/shade/renderer/animation/GPUAnimationManager.js +1 -3
- 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 +4 -2
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +8 -18
- 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 +3 -2
- 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 +4 -2
- package/src/shade/renderer/animation/skinning/bounds_refresh/shader_meshlet_bounds_scatter.d.ts +1 -1
- 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 +24 -10
- 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 +3 -2
- 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 -2
- 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/shader_multiscatter_lut.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/shader_multiscatter_lut.js +0 -1
- package/src/shade/renderer/atmosphere/shader_transmittance_lut.js +3 -3
- 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 +16 -22
- package/src/shade/renderer/buffer/table/gpu_table_element_upload_shader.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/gpu_table_element_upload_shader.js +7 -2
- package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.js +11 -5
- 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 +43 -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/deferred/shader_tonemap_HDR.d.ts.map +1 -1
- package/src/shade/renderer/deferred/shader_tonemap_HDR.js +4 -1
- package/src/shade/renderer/dynamic/GPUDynamicMeshResidency.d.ts +2 -2
- package/src/shade/renderer/dynamic/GPUDynamicMeshResidency.d.ts.map +1 -1
- package/src/shade/renderer/dynamic/GPUDynamicMeshResidency.js +167 -167
- 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/fow/GPUFogOfWarRenderer.js +3 -3
- package/src/shade/renderer/fow/shader_fog_of_war.d.ts.map +1 -1
- package/src/shade/renderer/fow/shader_fog_of_war.js +3 -1
- package/src/shade/renderer/geometry/bvh/record_blas_refit.js +102 -102
- 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 +5 -2
- package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.js +3 -11
- 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 +6 -4
- package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.js +5 -10
- package/src/shade/renderer/geometry/sdf/shader_build_sdf.js +129 -129
- package/src/shade/renderer/geometry/sdf/shader_sdf_visualize.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/shader_sdf_visualize.js +5 -3
- 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 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/shader_brick4_bake_resolve_probes.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/shader_brick4_bake_resolve_probes.js +3 -1
- package/src/shade/renderer/global_illumination/clipmap/shader_update_clipmap_cascade.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/clipmap/shader_update_clipmap_cascade.js +114 -112
- 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_lpv_store_sh.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lpv_store_sh.js +4 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.js +9 -6
- package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_reduce_atlas_to_sh.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_reduce_atlas_to_sh.js +4 -1
- package/src/shade/renderer/global_illumination/sharc/SpatialHashRadianceCache.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/sharc/SpatialHashRadianceCache.js +6 -8
- package/src/shade/renderer/global_illumination/sharc/shader/shader_sharc_evict.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/sharc/shader/shader_sharc_evict.js +3 -1
- package/src/shade/renderer/global_illumination/sharc/shader/shader_sharc_update.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/sharc/shader/shader_sharc_update.js +3 -1
- package/src/shade/renderer/gpu_primitive/bvh/GPU_BVH_BUILD_PLAN.md +1115 -1115
- package/src/shade/renderer/gpu_primitive/bvh/PHASE1_HANDOVER.md +3 -3
- package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.js +10 -10
- 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 +4 -2
- 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 +87 -83
- 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 +4 -2
- package/src/shade/renderer/gpu_primitive/bvh/verify_gpu_bvh_build.d.ts +2 -2
- package/src/shade/renderer/gpu_primitive/bvh/verify_gpu_bvh_build.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/bvh/verify_gpu_bvh_build.js +43 -8
- 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 +4 -5
- 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 +88 -85
- 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 +194 -192
- package/src/shade/renderer/hiz/HierarchicalZBuffer.d.ts.map +1 -1
- package/src/shade/renderer/hiz/HierarchicalZBuffer.js +33 -69
- package/src/shade/renderer/hiz/shader_hzb_reduce_any.d.ts.map +1 -1
- package/src/shade/renderer/hiz/shader_hzb_reduce_any.js +6 -1
- package/src/shade/renderer/hiz/shader_hzb_reduce_mip0_clip.d.ts.map +1 -1
- package/src/shade/renderer/hiz/shader_hzb_reduce_mip0_clip.js +23 -7
- 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 +4 -7
- 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/light/environment/execute_filter_environment_map.d.ts.map +1 -1
- package/src/shade/renderer/light/environment/execute_filter_environment_map.js +1 -2
- package/src/shade/renderer/light/environment/shader_convolve_reflection_map.d.ts.map +1 -1
- package/src/shade/renderer/light/environment/shader_convolve_reflection_map.js +6 -1
- package/src/shade/renderer/lightmap/bake/raster/graph_draw_lightmap_viz_buffer.d.ts.map +1 -1
- package/src/shade/renderer/lightmap/bake/raster/graph_draw_lightmap_viz_buffer.js +234 -219
- package/src/shade/renderer/lightmap/bake/raster/shader_lightmap_to_viz_buffer.js +222 -222
- package/src/shade/renderer/lightmap/bake/shader_lightmap_denoise_sh.js +191 -191
- package/src/shade/renderer/lightmap/bake/tile/shader_lightmap_accummulate_tile.d.ts.map +1 -1
- package/src/shade/renderer/lightmap/bake/tile/shader_lightmap_accummulate_tile.js +85 -82
- 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/graph_particles.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph_particles.js +5 -3
- package/src/shade/renderer/particles/prototypeParticleSystem.js +5 -7
- package/src/shade/renderer/particles/shaders/shader_particle_emit.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_emit.js +27 -13
- package/src/shade/renderer/particles/shaders/shader_particle_finalize.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_finalize.js +4 -4
- 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 +18 -7
- package/src/shade/renderer/particles/sort/shader_particle_sort.d.ts.map +1 -1
- package/src/shade/renderer/particles/sort/shader_particle_sort.js +47 -21
- package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.d.ts.map +1 -1
- package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.js +7 -10
- 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 +4 -1
- package/src/shade/renderer/path_tracer/graph_path_trace_scene.js +184 -184
- package/src/shade/renderer/postprocess/bloom/shader_bloom_mix.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/bloom/shader_bloom_mix.js +3 -1
- package/src/shade/renderer/postprocess/cas/shader_ffx_rcas.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/cas/shader_ffx_rcas.js +4 -2
- package/src/shade/renderer/postprocess/denoise/fragment_shader_denoise_ao.js +147 -147
- package/src/shade/renderer/postprocess/denoise/graph_atorus_denoise_luma.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/denoise/graph_atorus_denoise_luma.js +19 -17
- package/src/shade/renderer/postprocess/dof/gather/graph_postprocess_dof2.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/gather/graph_postprocess_dof2.js +1 -2
- package/src/shade/renderer/postprocess/dof/gather/shader_dof2_gather_far.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/gather/shader_dof2_gather_far.js +4 -1
- package/src/shade/renderer/postprocess/dof/gather/shader_dof2_gather_near.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/gather/shader_dof2_gather_near.js +4 -1
- package/src/shade/renderer/postprocess/dof/gather/shader_dof2_recombine.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/gather/shader_dof2_recombine.js +4 -1
- package/src/shade/renderer/postprocess/dof/gather/shader_dof2_setup.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/gather/shader_dof2_setup.js +4 -1
- package/src/shade/renderer/postprocess/dof/raymarch/graph_postprocess_dof.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/raymarch/graph_postprocess_dof.js +5 -8
- package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_composite.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_composite.js +4 -1
- package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_prefilter.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_prefilter.js +4 -1
- package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_raymarch.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_raymarch.js +4 -1
- 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 +4 -2
- 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 +4 -2
- package/src/shade/renderer/postprocess/dof/shader_dof_autofocus.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/shader_dof_autofocus.js +4 -1
- package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.js +8 -11
- package/src/shade/renderer/postprocess/eye/shader_autoexposure_adapt.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/eye/shader_autoexposure_adapt.js +5 -1
- package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao.js +11 -8
- package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao_with_irradiance.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao_with_irradiance.js +7 -8
- package/src/shade/renderer/postprocess/motion_blur/shader_motion_blur_reconstruct.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/motion_blur/shader_motion_blur_reconstruct.js +3 -1
- package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
- package/src/shade/renderer/postprocess/nss/shader_nss_concat.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/nss/shader_nss_concat.js +3 -2
- 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/depth_max_shader.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/depth_max_shader.js +70 -68
- 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/postprocess/ssr/resolve/ssr_resolve_shader_IBL.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_IBL.js +3 -1
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_LPV.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_LPV.js +4 -1
- package/src/shade/renderer/postprocess/ssr/shader_downsample_encoded_normal.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/shader_downsample_encoded_normal.js +103 -101
- package/src/shade/renderer/postprocess/ssr/ssr_spatial_denoise_shader.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/ssr_spatial_denoise_shader.js +4 -2
- package/src/shade/renderer/postprocess/ssr/ssr_trace_shader.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/ssr_trace_shader.js +3 -1
- package/src/shade/renderer/postprocess/taa/shader_taa.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/taa/shader_taa.js +4 -1
- package/src/shade/renderer/postprocess/upscale-dither/fragment_shader_upscale_dither.js +5 -5
- 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 +339 -341
- 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.map +1 -1
- package/src/shade/renderer/rasterize/bucket/shader_read_out_bucket.js +0 -1
- 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 +6 -2
- 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 +4 -2
- 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 +5 -2
- 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/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/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/graph_rasterize_meshes_transparent_oit.js +722 -722
- 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_partial_opaque.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.js +1 -9
- 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 +1 -6
- package/src/shade/renderer/restir/di/graph_restir_di.d.ts.map +1 -1
- package/src/shade/renderer/restir/di/graph_restir_di.js +2 -3
- package/src/shade/renderer/restir/di/graph_restir_di_denoise.d.ts.map +1 -1
- package/src/shade/renderer/restir/di/graph_restir_di_denoise.js +1 -2
- 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 +5 -3
- 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 +4 -3
- 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 +4 -3
- 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.d.ts.map +1 -1
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.js +3 -7
- 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 +147 -145
- package/src/shade/renderer/shader/ComputeShader.d.ts +26 -5
- package/src/shade/renderer/shader/ComputeShader.d.ts.map +1 -1
- package/src/shade/renderer/shader/ComputeShader.js +347 -296
- package/src/shade/renderer/shader/ImageShader.js +217 -217
- 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 +20 -0
- package/src/shade/renderer/shader/pass/RenderPassDescriptor.d.ts +2 -2
- package/src/shade/renderer/shader/pass/RenderPassDescriptor.d.ts.map +1 -1
- package/src/shade/renderer/shader/pass/RenderPassDescriptor.js +189 -189
- package/src/shade/renderer/shader/resource/ShaderResourceSetDescriptor.d.ts.map +1 -1
- package/src/shade/renderer/shader/resource/ShaderResourceSetDescriptor.js +3 -1
- 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/GPUSceneShadowmapContext.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.js +14 -18
- package/src/shade/renderer/shadow/map/csm/graph_csm_setup_cascades.js +3 -3
- package/src/shade/renderer/shadow/map/shader/shader_shadowmap_remap_cube_to_octahedral.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/shader/shader_shadowmap_remap_cube_to_octahedral.js +5 -1
- package/src/shade/renderer/shadow/ray/shader_shadow_upscale.d.ts.map +1 -1
- package/src/shade/renderer/shadow/ray/shader_shadow_upscale.js +3 -1
- package/src/shade/renderer/shadow/ray/staged/gen/graph_gen_rays.js +73 -73
- 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 +151 -148
- package/src/shade/renderer/shadow/ray/staged/trace/graph_trace_rays.d.ts.map +1 -1
- package/src/shade/renderer/shadow/ray/staged/trace/graph_trace_rays.js +6 -4
- package/src/shade/renderer/shadow/ray/staged/trace/shader_trace_rays.d.ts.map +1 -1
- package/src/shade/renderer/shadow/ray/staged/trace/shader_trace_rays.js +18 -4
- package/src/shade/renderer/shadow/sdf/cascade/CascadedSceneSDF.d.ts.map +1 -1
- package/src/shade/renderer/shadow/sdf/cascade/CascadedSceneSDF.js +11 -12
- package/src/shade/renderer/shadow/sdf/cascade/shader_build_scene_sdf_f32.d.ts.map +1 -1
- package/src/shade/renderer/shadow/sdf/cascade/shader_build_scene_sdf_f32.js +6 -2
- package/src/shade/renderer/shadow/sdf/cascade/shader_scene_sdf_debug_viz.d.ts.map +1 -1
- package/src/shade/renderer/shadow/sdf/cascade/shader_scene_sdf_debug_viz.js +129 -127
- package/src/shade/renderer/shadow/sdf/graph_draw_sdf_shadows.d.ts.map +1 -1
- package/src/shade/renderer/shadow/sdf/graph_draw_sdf_shadows.js +5 -3
- package/src/shade/renderer/texture/virtual/VirtualTextureManager.d.ts.map +1 -1
- package/src/shade/renderer/texture/virtual/VirtualTextureManager.js +2 -5
- 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 +3 -2
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +1 -1
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.js +14 -19
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.d.ts +3 -2
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.js +3 -2
- 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/validate_wgsl_source.d.ts.map +1 -1
- package/src/shade/wgsl/validate_wgsl_source.js +8 -3
- 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/device/timing/profile/make_profiling_pass_encoder.d.ts +0 -21
- package/src/shade/device/timing/profile/make_profiling_pass_encoder.d.ts.map +0 -1
- package/src/shade/device/timing/profile/make_profiling_pass_encoder.js +0 -114
- package/src/shade/device/timing/profile/parse_workgroup_size.d.ts +0 -20
- package/src/shade/device/timing/profile/parse_workgroup_size.d.ts.map +0 -1
- package/src/shade/device/timing/profile/parse_workgroup_size.js +0 -43
- 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
|
@@ -1,77 +1,77 @@
|
|
|
1
|
-
import { m4_invert } from "../../core/geom/3d/mat4/m4_invert.js";
|
|
2
|
-
import { v3_matrix4_multiply } from "../../core/geom/vec3/v3_matrix4_multiply.js";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* @type {Float32Array}
|
|
6
|
-
*/
|
|
7
|
-
const SCRATCH_INVERSE = new Float32Array(16);
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* @type {Float32Array}
|
|
11
|
-
*/
|
|
12
|
-
const SCRATCH_CLIP = new Float32Array(3);
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* @type {Float32Array}
|
|
16
|
-
*/
|
|
17
|
-
const SCRATCH_WORLD = new Float32Array(3);
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Where along the ray the unprojected point is taken.
|
|
21
|
-
*
|
|
22
|
-
* Any depth strictly inside the frustum names a point on the same ray, so this only has to avoid the
|
|
23
|
-
* two ends. It matters that it avoids them: the perspective camera projects with an **infinite
|
|
24
|
-
* reverse-Z**, where clip depth 0 is the far plane at infinity and unprojecting it divides by zero.
|
|
25
|
-
* Half-way is finite under that projection and under a conventional one alike, which is what keeps
|
|
26
|
-
* this a single expression rather than a branch on {@link Camera#isReverseZ}.
|
|
27
|
-
*
|
|
28
|
-
* @type {number}
|
|
29
|
-
*/
|
|
30
|
-
const SAMPLE_DEPTH = 0.5;
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* A ray from the eye through a point on the viewport, in world space.
|
|
34
|
-
*
|
|
35
|
-
* The camera's matrices are read as they stand, so they have to be current — `camera.update()` is
|
|
36
|
-
* what composes the view-projection this inverts, and a camera moved since then produces a ray for
|
|
37
|
-
* where it used to be.
|
|
38
|
-
*
|
|
39
|
-
* `x` and `y` are **clip-space**, in −1…1 with +Y up, which is what
|
|
40
|
-
* `
|
|
41
|
-
*
|
|
42
|
-
* The origin is the camera's own position, which is right for a perspective camera and is also what
|
|
43
|
-
* the three-based engine did for both kinds. A true orthographic pick wants parallel rays from the
|
|
44
|
-
* near plane instead; nothing asks for one, and this would quietly answer the perspective question if
|
|
45
|
-
* something did.
|
|
46
|
-
*
|
|
47
|
-
* @param {Camera} camera Shade's
|
|
48
|
-
* @param {number} x clip space, −1…1
|
|
49
|
-
* @param {number} y clip space, −1…1, +Y up
|
|
50
|
-
* @param {Vector3} out_source written with the ray's origin
|
|
51
|
-
* @param {Vector3} out_direction written with a unit direction
|
|
52
|
-
*/
|
|
53
|
-
export function shade_camera_projection_ray(camera, x, y, out_source, out_direction) {
|
|
54
|
-
m4_invert(SCRATCH_INVERSE, camera.view_projection_matrix);
|
|
55
|
-
|
|
56
|
-
SCRATCH_CLIP[0] = x;
|
|
57
|
-
SCRATCH_CLIP[1] = y;
|
|
58
|
-
SCRATCH_CLIP[2] = SAMPLE_DEPTH;
|
|
59
|
-
|
|
60
|
-
v3_matrix4_multiply(SCRATCH_WORLD, 0, SCRATCH_CLIP, 0, SCRATCH_INVERSE);
|
|
61
|
-
|
|
62
|
-
const position = camera.transform.position;
|
|
63
|
-
|
|
64
|
-
const origin_x = position.x;
|
|
65
|
-
const origin_y = position.y;
|
|
66
|
-
const origin_z = position.z;
|
|
67
|
-
|
|
68
|
-
out_source.set(origin_x, origin_y, origin_z);
|
|
69
|
-
|
|
70
|
-
out_direction.set(
|
|
71
|
-
SCRATCH_WORLD[0] - origin_x,
|
|
72
|
-
SCRATCH_WORLD[1] - origin_y,
|
|
73
|
-
SCRATCH_WORLD[2] - origin_z
|
|
74
|
-
);
|
|
75
|
-
|
|
76
|
-
out_direction.normalize();
|
|
77
|
-
}
|
|
1
|
+
import { m4_invert } from "../../core/geom/3d/mat4/m4_invert.js";
|
|
2
|
+
import { v3_matrix4_multiply } from "../../core/geom/vec3/v3_matrix4_multiply.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @type {Float32Array}
|
|
6
|
+
*/
|
|
7
|
+
const SCRATCH_INVERSE = new Float32Array(16);
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @type {Float32Array}
|
|
11
|
+
*/
|
|
12
|
+
const SCRATCH_CLIP = new Float32Array(3);
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @type {Float32Array}
|
|
16
|
+
*/
|
|
17
|
+
const SCRATCH_WORLD = new Float32Array(3);
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Where along the ray the unprojected point is taken.
|
|
21
|
+
*
|
|
22
|
+
* Any depth strictly inside the frustum names a point on the same ray, so this only has to avoid the
|
|
23
|
+
* two ends. It matters that it avoids them: the perspective camera projects with an **infinite
|
|
24
|
+
* reverse-Z**, where clip depth 0 is the far plane at infinity and unprojecting it divides by zero.
|
|
25
|
+
* Half-way is finite under that projection and under a conventional one alike, which is what keeps
|
|
26
|
+
* this a single expression rather than a branch on {@link Camera#isReverseZ}.
|
|
27
|
+
*
|
|
28
|
+
* @type {number}
|
|
29
|
+
*/
|
|
30
|
+
const SAMPLE_DEPTH = 0.5;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* A ray from the eye through a point on the viewport, in world space.
|
|
34
|
+
*
|
|
35
|
+
* The camera's matrices are read as they stand, so they have to be current — `camera.update()` is
|
|
36
|
+
* what composes the view-projection this inverts, and a camera moved since then produces a ray for
|
|
37
|
+
* where it used to be.
|
|
38
|
+
*
|
|
39
|
+
* `x` and `y` are **clip-space**, in −1…1 with +Y up, which is what
|
|
40
|
+
* `GraphicsEngine.normalizeViewportPoint` produces from pixels.
|
|
41
|
+
*
|
|
42
|
+
* The origin is the camera's own position, which is right for a perspective camera and is also what
|
|
43
|
+
* the three-based engine did for both kinds. A true orthographic pick wants parallel rays from the
|
|
44
|
+
* near plane instead; nothing asks for one, and this would quietly answer the perspective question if
|
|
45
|
+
* something did.
|
|
46
|
+
*
|
|
47
|
+
* @param {Camera} camera Shade's
|
|
48
|
+
* @param {number} x clip space, −1…1
|
|
49
|
+
* @param {number} y clip space, −1…1, +Y up
|
|
50
|
+
* @param {Vector3} out_source written with the ray's origin
|
|
51
|
+
* @param {Vector3} out_direction written with a unit direction
|
|
52
|
+
*/
|
|
53
|
+
export function shade_camera_projection_ray(camera, x, y, out_source, out_direction) {
|
|
54
|
+
m4_invert(SCRATCH_INVERSE, camera.view_projection_matrix);
|
|
55
|
+
|
|
56
|
+
SCRATCH_CLIP[0] = x;
|
|
57
|
+
SCRATCH_CLIP[1] = y;
|
|
58
|
+
SCRATCH_CLIP[2] = SAMPLE_DEPTH;
|
|
59
|
+
|
|
60
|
+
v3_matrix4_multiply(SCRATCH_WORLD, 0, SCRATCH_CLIP, 0, SCRATCH_INVERSE);
|
|
61
|
+
|
|
62
|
+
const position = camera.transform.position;
|
|
63
|
+
|
|
64
|
+
const origin_x = position.x;
|
|
65
|
+
const origin_y = position.y;
|
|
66
|
+
const origin_z = position.z;
|
|
67
|
+
|
|
68
|
+
out_source.set(origin_x, origin_y, origin_z);
|
|
69
|
+
|
|
70
|
+
out_direction.set(
|
|
71
|
+
SCRATCH_WORLD[0] - origin_x,
|
|
72
|
+
SCRATCH_WORLD[1] - origin_y,
|
|
73
|
+
SCRATCH_WORLD[2] - origin_z
|
|
74
|
+
);
|
|
75
|
+
|
|
76
|
+
out_direction.normalize();
|
|
77
|
+
}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*
|
|
13
13
|
* **Geometry and material are shared, not copied.** Two entities placing the same model name the
|
|
14
14
|
* same `MeshletGeometry` and the same `ShadeMaterial`; what is per-entity is the row each one gets
|
|
15
|
-
* in the scene, which is `
|
|
15
|
+
* in the scene, which is `ShadedGeometrySystem`'s business. That is the whole reason a static model
|
|
16
16
|
* needs no clone of the bundle at all.
|
|
17
17
|
*
|
|
18
18
|
* **A skinned mesh is not expanded, and that is a boundary rather than an omission.** Its vertices
|
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
import { Name } from "../ecs/name/Name.js";
|
|
2
|
-
import { EntityNode } from "../ecs/parent/EntityNode.js";
|
|
3
|
-
import { Transform } from "../ecs/transform/Transform.js";
|
|
4
|
-
import { transform_copy_from_t64 } from "../ecs/transform/transform_copy_from_t64.js";
|
|
5
|
-
import { DrawMode } from "../graphics/ecs/mesh-v2/DrawMode.js";
|
|
6
|
-
import { ShadedGeometry } from "../graphics/ecs/mesh-v2/ShadedGeometry.js";
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Turn a loaded model's node tree into entities.
|
|
10
|
-
*
|
|
11
|
-
* **This is what a hierarchy is in an ECS** (D47). meep has no scene graph to hand a model to: it
|
|
12
|
-
* has entities, `EntityNode` to parent them, and `ShadedGeometry` for the ones that draw. A model
|
|
13
|
-
* file is therefore not a thing an entity *holds* — it is a shape an entity's descendants take, and
|
|
14
|
-
* this function is where the file stops being the renderer's tree and becomes the dataset's.
|
|
15
|
-
*
|
|
16
|
-
* It is `three_object_to_entity_composition` with the source swapped: the same output, built from
|
|
17
|
-
* Shade's `Node3D`s instead of three's `Object3D`s. The two exist side by side for as long as both
|
|
18
|
-
* renderers do.
|
|
19
|
-
*
|
|
20
|
-
* **Geometry and material are shared, not copied.** Two entities placing the same model name the
|
|
21
|
-
* same `MeshletGeometry` and the same `ShadeMaterial`; what is per-entity is the row each one gets
|
|
22
|
-
* in the scene, which is `
|
|
23
|
-
* needs no clone of the bundle at all.
|
|
24
|
-
*
|
|
25
|
-
* **A skinned mesh is not expanded, and that is a boundary rather than an omission.** Its vertices
|
|
26
|
-
* are deformed against a skeleton the renderer owns and the GPU poses, and making those joints
|
|
27
|
-
* entities is a design this program does not do (D47). A `SkinnedMesh` node therefore contributes
|
|
28
|
-
* its transform and its name and no geometry, and whatever placed the model keeps drawing it the way
|
|
29
|
-
* Phase 4 built.
|
|
30
|
-
*
|
|
31
|
-
* @param {Node3D} node
|
|
32
|
-
* @returns {EntityNode}
|
|
33
|
-
*/
|
|
34
|
-
export function shade_node_to_entity_composition(node) {
|
|
35
|
-
const result = new EntityNode();
|
|
36
|
-
|
|
37
|
-
// the hierarchy's own transform: what this node is, relative to its parent
|
|
38
|
-
transform_copy_from_t64(result.transform, node.transform_local);
|
|
39
|
-
|
|
40
|
-
const entity = result.entity;
|
|
41
|
-
|
|
42
|
-
entity.add(transform_copy_from_t64(new Transform(), node.transform_global));
|
|
43
|
-
entity.add(new Name(node.name));
|
|
44
|
-
|
|
45
|
-
if (node.isMesh === true && node.isSkinnedMesh !== true) {
|
|
46
|
-
entity.add(ShadedGeometry.from(node.geometry, node.material, DrawMode.Triangles));
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const children = node.children;
|
|
50
|
-
|
|
51
|
-
for (let i = 0; i < children.length; i++) {
|
|
52
|
-
result.addChild(shade_node_to_entity_composition(children[i]));
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
return result;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* The same, for everything a loader produced.
|
|
60
|
-
*
|
|
61
|
-
* A bundle can carry more than one scene — glTF allows it — and the entity that placed the file owns
|
|
62
|
-
* all of them, so they become children of one root rather than several compositions nobody joins.
|
|
63
|
-
*
|
|
64
|
-
* @param {SceneBundle} bundle
|
|
65
|
-
* @returns {EntityNode}
|
|
66
|
-
*/
|
|
67
|
-
export function shade_bundle_to_entity_composition(bundle) {
|
|
68
|
-
const scenes = bundle.scenes;
|
|
69
|
-
|
|
70
|
-
if (scenes.length === 1) {
|
|
71
|
-
return shade_node_to_entity_composition(scenes[0]);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
const root = new EntityNode();
|
|
75
|
-
|
|
76
|
-
root.entity.add(new Transform());
|
|
77
|
-
root.entity.add(new Name(""));
|
|
78
|
-
|
|
79
|
-
for (let i = 0; i < scenes.length; i++) {
|
|
80
|
-
root.addChild(shade_node_to_entity_composition(scenes[i]));
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
return root;
|
|
84
|
-
}
|
|
1
|
+
import { Name } from "../ecs/name/Name.js";
|
|
2
|
+
import { EntityNode } from "../ecs/parent/EntityNode.js";
|
|
3
|
+
import { Transform } from "../ecs/transform/Transform.js";
|
|
4
|
+
import { transform_copy_from_t64 } from "../ecs/transform/transform_copy_from_t64.js";
|
|
5
|
+
import { DrawMode } from "../graphics/ecs/mesh-v2/DrawMode.js";
|
|
6
|
+
import { ShadedGeometry } from "../graphics/ecs/mesh-v2/ShadedGeometry.js";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Turn a loaded model's node tree into entities.
|
|
10
|
+
*
|
|
11
|
+
* **This is what a hierarchy is in an ECS** (D47). meep has no scene graph to hand a model to: it
|
|
12
|
+
* has entities, `EntityNode` to parent them, and `ShadedGeometry` for the ones that draw. A model
|
|
13
|
+
* file is therefore not a thing an entity *holds* — it is a shape an entity's descendants take, and
|
|
14
|
+
* this function is where the file stops being the renderer's tree and becomes the dataset's.
|
|
15
|
+
*
|
|
16
|
+
* It is `three_object_to_entity_composition` with the source swapped: the same output, built from
|
|
17
|
+
* Shade's `Node3D`s instead of three's `Object3D`s. The two exist side by side for as long as both
|
|
18
|
+
* renderers do.
|
|
19
|
+
*
|
|
20
|
+
* **Geometry and material are shared, not copied.** Two entities placing the same model name the
|
|
21
|
+
* same `MeshletGeometry` and the same `ShadeMaterial`; what is per-entity is the row each one gets
|
|
22
|
+
* in the scene, which is `ShadedGeometrySystem`'s business. That is the whole reason a static model
|
|
23
|
+
* needs no clone of the bundle at all.
|
|
24
|
+
*
|
|
25
|
+
* **A skinned mesh is not expanded, and that is a boundary rather than an omission.** Its vertices
|
|
26
|
+
* are deformed against a skeleton the renderer owns and the GPU poses, and making those joints
|
|
27
|
+
* entities is a design this program does not do (D47). A `SkinnedMesh` node therefore contributes
|
|
28
|
+
* its transform and its name and no geometry, and whatever placed the model keeps drawing it the way
|
|
29
|
+
* Phase 4 built.
|
|
30
|
+
*
|
|
31
|
+
* @param {Node3D} node
|
|
32
|
+
* @returns {EntityNode}
|
|
33
|
+
*/
|
|
34
|
+
export function shade_node_to_entity_composition(node) {
|
|
35
|
+
const result = new EntityNode();
|
|
36
|
+
|
|
37
|
+
// the hierarchy's own transform: what this node is, relative to its parent
|
|
38
|
+
transform_copy_from_t64(result.transform, node.transform_local);
|
|
39
|
+
|
|
40
|
+
const entity = result.entity;
|
|
41
|
+
|
|
42
|
+
entity.add(transform_copy_from_t64(new Transform(), node.transform_global));
|
|
43
|
+
entity.add(new Name(node.name));
|
|
44
|
+
|
|
45
|
+
if (node.isMesh === true && node.isSkinnedMesh !== true) {
|
|
46
|
+
entity.add(ShadedGeometry.from(node.geometry, node.material, DrawMode.Triangles));
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const children = node.children;
|
|
50
|
+
|
|
51
|
+
for (let i = 0; i < children.length; i++) {
|
|
52
|
+
result.addChild(shade_node_to_entity_composition(children[i]));
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return result;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* The same, for everything a loader produced.
|
|
60
|
+
*
|
|
61
|
+
* A bundle can carry more than one scene — glTF allows it — and the entity that placed the file owns
|
|
62
|
+
* all of them, so they become children of one root rather than several compositions nobody joins.
|
|
63
|
+
*
|
|
64
|
+
* @param {SceneBundle} bundle
|
|
65
|
+
* @returns {EntityNode}
|
|
66
|
+
*/
|
|
67
|
+
export function shade_bundle_to_entity_composition(bundle) {
|
|
68
|
+
const scenes = bundle.scenes;
|
|
69
|
+
|
|
70
|
+
if (scenes.length === 1) {
|
|
71
|
+
return shade_node_to_entity_composition(scenes[0]);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const root = new EntityNode();
|
|
75
|
+
|
|
76
|
+
root.entity.add(new Transform());
|
|
77
|
+
root.entity.add(new Name(""));
|
|
78
|
+
|
|
79
|
+
for (let i = 0; i < scenes.length; i++) {
|
|
80
|
+
root.addChild(shade_node_to_entity_composition(scenes[i]));
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return root;
|
|
84
|
+
}
|
|
@@ -64,11 +64,11 @@ export class FluidObstacleSystem extends System<any> {
|
|
|
64
64
|
/**
|
|
65
65
|
* @param {FluidComponent} fluid
|
|
66
66
|
*/
|
|
67
|
-
static "__#
|
|
67
|
+
static "__#360@#refresh_masks"(fluid: FluidComponent): void;
|
|
68
68
|
/**
|
|
69
69
|
* @param {FluidComponent} fluid
|
|
70
70
|
*/
|
|
71
|
-
static "__#
|
|
71
|
+
static "__#360@#clear_field"(fluid: FluidComponent): void;
|
|
72
72
|
/**
|
|
73
73
|
* Mark every cell of `fluid` whose centre lies within `inflation` of the
|
|
74
74
|
* posed shape as solid. Iteration is clipped to the shape's world AABB
|
|
@@ -80,7 +80,7 @@ export class FluidObstacleSystem extends System<any> {
|
|
|
80
80
|
* @param {number} inflation world-units SDF threshold
|
|
81
81
|
* @param {Float64Array} point length-3 scratch
|
|
82
82
|
*/
|
|
83
|
-
static "__#
|
|
83
|
+
static "__#360@#voxelize"(fluid: FluidComponent, posed: PosedShape3D, aabb: Float64Array, inflation: number, point: Float64Array): void;
|
|
84
84
|
/**
|
|
85
85
|
* Write the obstacle's translation velocity onto every face of every cell
|
|
86
86
|
* it voxelized — the moving-wall boundary condition. Runs AFTER the mask
|
|
@@ -100,7 +100,7 @@ export class FluidObstacleSystem extends System<any> {
|
|
|
100
100
|
* @param {number} wvy
|
|
101
101
|
* @param {number} wvz
|
|
102
102
|
*/
|
|
103
|
-
static "__#
|
|
103
|
+
static "__#360@#stamp_wall_velocity"(fluid: FluidComponent, posed: PosedShape3D, aabb: Float64Array, inflation: number, point: Float64Array, wvx: number, wvy: number, wvz: number): void;
|
|
104
104
|
constructor();
|
|
105
105
|
dependencies: (typeof FluidObstacle)[];
|
|
106
106
|
components_used: (ResourceAccessSpecification<typeof Transform> | ResourceAccessSpecification<typeof RigidBody> | ResourceAccessSpecification<typeof Collider> | ResourceAccessSpecification<typeof FluidComponent> | ResourceAccessSpecification<typeof FluidObstacle>)[];
|
|
@@ -541,7 +541,8 @@ frame or is removed and re-added keeps its buffers.
|
|
|
541
541
|
| `internal_resolution_scale` | render internally below output resolution; `DynamicResolutionScaling` drives it from frame time |
|
|
542
542
|
| `pixel_ratio`, `output_resolution`, `aspect_ratio`, `resize(x, y)` | |
|
|
543
543
|
| `motion_blur`, `dof`, `dof_unreal`, `nss`, `restir_di`, `path_tracer` | sub-objects with their own settings |
|
|
544
|
-
| `frame_count
|
|
544
|
+
| `frame_count` | |
|
|
545
|
+
| `profile_session` | assign a `GPUProfileSession` to record GPU timings; null when nothing is profiling |
|
|
545
546
|
|
|
546
547
|
---
|
|
547
548
|
|
|
@@ -19,6 +19,23 @@ export class ComputePipelineDescriptor extends PipelineDescriptorBase {
|
|
|
19
19
|
*/
|
|
20
20
|
static fromJSON(json: GPUComputePipelineDescriptor): ComputePipelineDescriptor;
|
|
21
21
|
compute: ProgrammableStage;
|
|
22
|
+
/**
|
|
23
|
+
* `[x, y, z]` of this pipeline's `@workgroup_size`.
|
|
24
|
+
*
|
|
25
|
+
* Read once, when the code is set, and kept — the source cannot change under a descriptor
|
|
26
|
+
* without going back through one of the factories, each of which reads it again. So every
|
|
27
|
+
* consumer downstream, a profile capture included, gets the number for free.
|
|
28
|
+
*
|
|
29
|
+
* Frozen, because it is handed out by reference to per-pass profile records and a descriptor
|
|
30
|
+
* that outlives a whole capture must not be mutable through one of them.
|
|
31
|
+
*
|
|
32
|
+
* Takes no part in {@link equals} or {@link hash}: it is derived from `compute.module`, which
|
|
33
|
+
* both already cover, and a cache key computed two ways is a cache that can disagree with
|
|
34
|
+
* itself.
|
|
35
|
+
*
|
|
36
|
+
* @returns {readonly number[]}
|
|
37
|
+
*/
|
|
38
|
+
get workgroup_size(): readonly number[];
|
|
22
39
|
/**
|
|
23
40
|
*
|
|
24
41
|
* @param {GPUComputePipelineDescriptor} json
|
|
@@ -35,6 +52,7 @@ export class ComputePipelineDescriptor extends PipelineDescriptorBase {
|
|
|
35
52
|
* @type {boolean}
|
|
36
53
|
*/
|
|
37
54
|
readonly isComputePipelineDescriptor: boolean;
|
|
55
|
+
#private;
|
|
38
56
|
}
|
|
39
57
|
import { PipelineDescriptorBase } from "../PipelineDescriptorBase.js";
|
|
40
58
|
import { ProgrammableStage } from "../ProgrammableStage.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComputePipelineDescriptor.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/descriptor/pipeline/compute/ComputePipelineDescriptor.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ComputePipelineDescriptor.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/descriptor/pipeline/compute/ComputePipelineDescriptor.js"],"names":[],"mappings":"AAqBA;IAuDI;;;;;OAKG;IACH,mBAJW,MAAM,QACN,MAAM,UACN,wBAAwB,6BAelC;IAED;;;;;OAKG;IACH,wEALW,MAAM,6BA2BhB;IAED;;;OAGG;IACH,+EAMC;IAnHD,2BAAkC;IAOlC;;;;;;;;;;;;;;;OAeG;IACH,wCAEC;IA4FD;;;OAGG;IACH,mDAUC;IAED;;;;OAIG;IACH,cAHW,yBAAyB,GACxB,OAAO,CAMlB;IAUL;;;OAGG;IACH,sCAFU,OAAO,CAE8C;;CAN9D;uCAtKsC,8BAA8B;kCAEnC,yBAAyB;yCADlB,gCAAgC"}
|
|
@@ -1,14 +1,79 @@
|
|
|
1
1
|
import { assert } from "../../../../core/assert.js";
|
|
2
2
|
import { combine_hash } from "../../../../core/collection/array/combine_hash.js";
|
|
3
|
+
import {
|
|
4
|
+
compute_infer_workgroup_size_from_source
|
|
5
|
+
} from "../../../renderer/shader/util/compute_infer_workgroup_size_from_source.js";
|
|
3
6
|
import { GPUShaderStage } from "../../GPUShaderStage.js";
|
|
4
7
|
import { PipelineDescriptorBase } from "../PipelineDescriptorBase.js";
|
|
5
8
|
import { PipelineLayoutDescriptor } from "../PipelineLayoutDescriptor.js";
|
|
6
9
|
import { ProgrammableStage } from "../ProgrammableStage.js";
|
|
7
10
|
import { ShaderModuleDescriptor } from "../ShaderModuleDescriptor.js";
|
|
8
11
|
|
|
12
|
+
/**
|
|
13
|
+
* What {@link ComputePipelineDescriptor#workgroup_size} reads before any code has been set.
|
|
14
|
+
*
|
|
15
|
+
* Not a fallback for unreadable source — that throws. This is the value of a descriptor that has
|
|
16
|
+
* been constructed and not yet given a shader, which is a state only `new` produces.
|
|
17
|
+
*
|
|
18
|
+
* @type {readonly number[]}
|
|
19
|
+
*/
|
|
20
|
+
const WORKGROUP_SIZE_UNSET = Object.freeze([0, 0, 0]);
|
|
21
|
+
|
|
9
22
|
export class ComputePipelineDescriptor extends PipelineDescriptorBase {
|
|
10
23
|
compute = new ProgrammableStage();
|
|
11
24
|
|
|
25
|
+
/**
|
|
26
|
+
* @type {readonly number[]}
|
|
27
|
+
*/
|
|
28
|
+
#workgroup_size = WORKGROUP_SIZE_UNSET;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* `[x, y, z]` of this pipeline's `@workgroup_size`.
|
|
32
|
+
*
|
|
33
|
+
* Read once, when the code is set, and kept — the source cannot change under a descriptor
|
|
34
|
+
* without going back through one of the factories, each of which reads it again. So every
|
|
35
|
+
* consumer downstream, a profile capture included, gets the number for free.
|
|
36
|
+
*
|
|
37
|
+
* Frozen, because it is handed out by reference to per-pass profile records and a descriptor
|
|
38
|
+
* that outlives a whole capture must not be mutable through one of them.
|
|
39
|
+
*
|
|
40
|
+
* Takes no part in {@link equals} or {@link hash}: it is derived from `compute.module`, which
|
|
41
|
+
* both already cover, and a cache key computed two ways is a cache that can disagree with
|
|
42
|
+
* itself.
|
|
43
|
+
*
|
|
44
|
+
* @returns {readonly number[]}
|
|
45
|
+
*/
|
|
46
|
+
get workgroup_size() {
|
|
47
|
+
return this.#workgroup_size;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Read the workgroup size out of the code just assigned to {@link compute}, and **throw** if it
|
|
52
|
+
* cannot be read.
|
|
53
|
+
*
|
|
54
|
+
* Loud, and at construction. Every consumer of this number divides a thread count by it, so a
|
|
55
|
+
* guess that is wrong silently dispatches the wrong fraction of the workload — and a descriptor
|
|
56
|
+
* that cannot state its own workgroup size is one nobody downstream can use correctly. Better
|
|
57
|
+
* that it cannot be built than that it be built and dealt with.
|
|
58
|
+
*
|
|
59
|
+
* @returns {void}
|
|
60
|
+
*/
|
|
61
|
+
#read_workgroup_size() {
|
|
62
|
+
const code = this.compute.module.code;
|
|
63
|
+
|
|
64
|
+
try {
|
|
65
|
+
this.#workgroup_size = Object.freeze(compute_infer_workgroup_size_from_source(code));
|
|
66
|
+
} catch (e) {
|
|
67
|
+
const error = new Error(
|
|
68
|
+
`Compute pipeline '${this.label}' has no readable workgroup size: ${e.message}`
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
error.cause = e;
|
|
72
|
+
|
|
73
|
+
throw error;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
12
77
|
/**
|
|
13
78
|
*
|
|
14
79
|
* @param {string} label
|
|
@@ -24,6 +89,8 @@ export class ComputePipelineDescriptor extends PipelineDescriptorBase {
|
|
|
24
89
|
r.label = label;
|
|
25
90
|
r.compute.module = ShaderModuleDescriptor.fromCode(code);
|
|
26
91
|
|
|
92
|
+
r.#read_workgroup_size();
|
|
93
|
+
|
|
27
94
|
return r;
|
|
28
95
|
|
|
29
96
|
}
|
|
@@ -53,6 +120,8 @@ export class ComputePipelineDescriptor extends PipelineDescriptorBase {
|
|
|
53
120
|
r.compute.constants = constants;
|
|
54
121
|
}
|
|
55
122
|
|
|
123
|
+
r.#read_workgroup_size();
|
|
124
|
+
|
|
56
125
|
return r;
|
|
57
126
|
}
|
|
58
127
|
|
|
@@ -78,6 +147,10 @@ export class ComputePipelineDescriptor extends PipelineDescriptorBase {
|
|
|
78
147
|
assert.isObject(json.compute, 'json.compute');
|
|
79
148
|
|
|
80
149
|
this.compute.fromJSON(json.compute);
|
|
150
|
+
|
|
151
|
+
// `fromJSON` replaces the module in place, so the size read for whatever was here before is
|
|
152
|
+
// now the wrong shader's. Read it again rather than leaving a stale divisor behind.
|
|
153
|
+
this.#read_workgroup_size();
|
|
81
154
|
}
|
|
82
155
|
|
|
83
156
|
/**
|