@woosh/meep-engine 3.11.3 → 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/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/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/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/shader_multiscatter_lut.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/shader_multiscatter_lut.js +0 -1
- 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 +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/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/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.js +2 -2
- 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 +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/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/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/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 -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/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/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 +12 -15
- 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/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
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* One entry of an {@link Animation} component's clip list, while it is being played.
|
|
3
|
-
*
|
|
4
|
-
* The `Animation` component says *what* to play — a name, a repeat count, a weight, a time scale —
|
|
5
|
-
* and holds no clock of its own, because it is data that a level authors and a save round-trips.
|
|
6
|
-
* This is the running half: where that clip is, how strongly it is contributing, and whether it has
|
|
7
|
-
* run out. {@link
|
|
8
|
-
* pose a gameplay query has to answer from is exactly this (I-4) — never a readback.
|
|
9
|
-
*/
|
|
10
|
-
export class ClipPlayback {
|
|
11
|
-
/**
|
|
12
|
-
* The list entry being played. Its `weight`, `timeScale` and `repeatCount` are read every
|
|
13
|
-
* frame, so changing one takes effect without removing and re-adding the clip.
|
|
14
|
-
*
|
|
15
|
-
* @type {AnimationClip}
|
|
16
|
-
*/
|
|
17
|
-
clip = null;
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Which of the model instance's clips this is, by index — the same order the animation
|
|
21
|
-
* manager's registration uses, which is what makes it the lookup for both.
|
|
22
|
-
*
|
|
23
|
-
* @type {number}
|
|
24
|
-
*/
|
|
25
|
-
slot = -1;
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Seconds the clip runs for, taken from the model when the playback was created rather than
|
|
29
|
-
* read per frame: `ShadeAnimationClip.duration` walks every channel and every curve.
|
|
30
|
-
*
|
|
31
|
-
* @type {number}
|
|
32
|
-
*/
|
|
33
|
-
duration = 0;
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Time played since the clip was added to the list, scaled by {@link clip}'s time scale and
|
|
37
|
-
* **not** folded into the clip's own span — this is what says how many repeats have gone by.
|
|
38
|
-
*
|
|
39
|
-
* @type {number}
|
|
40
|
-
*/
|
|
41
|
-
elapsed = 0;
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Where the clip is playing, in seconds from its own start: wrapped while it is repeating and
|
|
45
|
-
* held at the end once it has run out. Directly what the renderer's clip record wants.
|
|
46
|
-
*
|
|
47
|
-
* @type {number}
|
|
48
|
-
*/
|
|
49
|
-
time = 0;
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* The share of the pose this clip is contributing, normalized across every clip in the list —
|
|
53
|
-
* see {@link
|
|
54
|
-
*
|
|
55
|
-
* @type {number}
|
|
56
|
-
*/
|
|
57
|
-
weight = 0;
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Whether the clip has played out its repeat count. A looping clip never does.
|
|
61
|
-
*
|
|
62
|
-
* The clip goes on contributing afterwards, holding its last frame; what this marks is the
|
|
63
|
-
* moment `animation-event-clip-ended` was fired for it.
|
|
64
|
-
*
|
|
65
|
-
* @type {boolean}
|
|
66
|
-
*/
|
|
67
|
-
finished = false;
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* @param {AnimationClip} clip
|
|
71
|
-
* @param {number} slot
|
|
72
|
-
* @param {number} duration
|
|
73
|
-
* @returns {ClipPlayback}
|
|
74
|
-
*/
|
|
75
|
-
static from(clip, slot, duration) {
|
|
76
|
-
const r = new ClipPlayback();
|
|
77
|
-
|
|
78
|
-
r.clip = clip;
|
|
79
|
-
r.slot = slot;
|
|
80
|
-
r.duration = duration;
|
|
81
|
-
|
|
82
|
-
return r;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* One entry of an {@link Animation} component's clip list, while it is being played.
|
|
3
|
+
*
|
|
4
|
+
* The `Animation` component says *what* to play — a name, a repeat count, a weight, a time scale —
|
|
5
|
+
* and holds no clock of its own, because it is data that a level authors and a save round-trips.
|
|
6
|
+
* This is the running half: where that clip is, how strongly it is contributing, and whether it has
|
|
7
|
+
* run out. {@link AnimationSystem} owns one per clip in the list and hands them out, because the
|
|
8
|
+
* pose a gameplay query has to answer from is exactly this (I-4) — never a readback.
|
|
9
|
+
*/
|
|
10
|
+
export class ClipPlayback {
|
|
11
|
+
/**
|
|
12
|
+
* The list entry being played. Its `weight`, `timeScale` and `repeatCount` are read every
|
|
13
|
+
* frame, so changing one takes effect without removing and re-adding the clip.
|
|
14
|
+
*
|
|
15
|
+
* @type {AnimationClip}
|
|
16
|
+
*/
|
|
17
|
+
clip = null;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Which of the model instance's clips this is, by index — the same order the animation
|
|
21
|
+
* manager's registration uses, which is what makes it the lookup for both.
|
|
22
|
+
*
|
|
23
|
+
* @type {number}
|
|
24
|
+
*/
|
|
25
|
+
slot = -1;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Seconds the clip runs for, taken from the model when the playback was created rather than
|
|
29
|
+
* read per frame: `ShadeAnimationClip.duration` walks every channel and every curve.
|
|
30
|
+
*
|
|
31
|
+
* @type {number}
|
|
32
|
+
*/
|
|
33
|
+
duration = 0;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Time played since the clip was added to the list, scaled by {@link clip}'s time scale and
|
|
37
|
+
* **not** folded into the clip's own span — this is what says how many repeats have gone by.
|
|
38
|
+
*
|
|
39
|
+
* @type {number}
|
|
40
|
+
*/
|
|
41
|
+
elapsed = 0;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Where the clip is playing, in seconds from its own start: wrapped while it is repeating and
|
|
45
|
+
* held at the end once it has run out. Directly what the renderer's clip record wants.
|
|
46
|
+
*
|
|
47
|
+
* @type {number}
|
|
48
|
+
*/
|
|
49
|
+
time = 0;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* The share of the pose this clip is contributing, normalized across every clip in the list —
|
|
53
|
+
* see {@link AnimationSystem}.
|
|
54
|
+
*
|
|
55
|
+
* @type {number}
|
|
56
|
+
*/
|
|
57
|
+
weight = 0;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Whether the clip has played out its repeat count. A looping clip never does.
|
|
61
|
+
*
|
|
62
|
+
* The clip goes on contributing afterwards, holding its last frame; what this marks is the
|
|
63
|
+
* moment `animation-event-clip-ended` was fired for it.
|
|
64
|
+
*
|
|
65
|
+
* @type {boolean}
|
|
66
|
+
*/
|
|
67
|
+
finished = false;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* @param {AnimationClip} clip
|
|
71
|
+
* @param {number} slot
|
|
72
|
+
* @param {number} duration
|
|
73
|
+
* @returns {ClipPlayback}
|
|
74
|
+
*/
|
|
75
|
+
static from(clip, slot, duration) {
|
|
76
|
+
const r = new ClipPlayback();
|
|
77
|
+
|
|
78
|
+
r.clip = clip;
|
|
79
|
+
r.slot = slot;
|
|
80
|
+
r.duration = duration;
|
|
81
|
+
|
|
82
|
+
return r;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph_build_decal_clusters.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics3/decal/graph_build_decal_clusters.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graph_build_decal_clusters.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics3/decal/graph_build_decal_clusters.js"],"names":[],"mappings":"AA+FA;;;;;;;;;;;;;;;GAeG;AACH;YAFsB,MAAM;UAAQ,MAAM;gBAAc,MAAM;EAoG7D"}
|
|
@@ -16,12 +16,10 @@ import {
|
|
|
16
16
|
} from "./DECAL_CLUSTER.js";
|
|
17
17
|
import {
|
|
18
18
|
DECAL_CLUSTER_ASSIGNMENT_SETTINGS,
|
|
19
|
-
DECAL_CLUSTER_WORKGROUP_SIZE,
|
|
20
19
|
shader_cluster_assign_decals
|
|
21
20
|
} from "./shader_cluster_assign_decals.js";
|
|
22
21
|
import {
|
|
23
22
|
DECAL_CULL_SETTINGS,
|
|
24
|
-
SHADER_CULL_DECALS_WORKGROUP_SIZE,
|
|
25
23
|
shader_cull_decals_frustum
|
|
26
24
|
} from "./shader_cull_decals_frustum.js";
|
|
27
25
|
|
|
@@ -75,7 +73,7 @@ function graph_cull_decals({ graph, camera, decals, decal_count }) {
|
|
|
75
73
|
const output = resources.get(data.output);
|
|
76
74
|
const settings = resources.get(data.settings);
|
|
77
75
|
|
|
78
|
-
shader_cull_decals_frustum.
|
|
76
|
+
shader_cull_decals_frustum.dispatchThreads({
|
|
79
77
|
encoder: context.encoder,
|
|
80
78
|
bindings: {
|
|
81
79
|
camera: camera.buffer,
|
|
@@ -83,7 +81,7 @@ function graph_cull_decals({ graph, camera, decals, decal_count }) {
|
|
|
83
81
|
decal_data: decals.buffer,
|
|
84
82
|
output,
|
|
85
83
|
},
|
|
86
|
-
|
|
84
|
+
thread_count_x: decal_count,
|
|
87
85
|
});
|
|
88
86
|
}
|
|
89
87
|
|
|
@@ -170,12 +168,12 @@ export function graph_build_decal_clusters({ graph, camera, decals, decal_count,
|
|
|
170
168
|
const cluster_data = resources.get(data.cluster_data);
|
|
171
169
|
const settings = resources.get(data.settings);
|
|
172
170
|
|
|
173
|
-
shader_cluster_assign_decals.
|
|
171
|
+
shader_cluster_assign_decals.dispatchThreads({
|
|
174
172
|
encoder: context.encoder,
|
|
175
173
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
174
|
+
thread_count_x: cluster_count_x,
|
|
175
|
+
thread_count_y: cluster_count_y,
|
|
176
|
+
thread_count_z: DECAL_CLUSTER_RESOLUTION_Z,
|
|
179
177
|
|
|
180
178
|
bindings: {
|
|
181
179
|
camera: camera.buffer,
|
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
export const DECAL_CLUSTER_ASSIGNMENT_SETTINGS: WebGPUStruct;
|
|
2
2
|
export const DECAL_CLUSTER_LOOKUP_STRUCT: WebGPUArray;
|
|
3
|
-
/**
|
|
4
|
-
* Matching the light assignment's own reasoning: this shader uses a great many registers, and larger
|
|
5
|
-
* workgroups mostly fail to get an allocation and sit idle.
|
|
6
|
-
*
|
|
7
|
-
* @type {number[]}
|
|
8
|
-
*/
|
|
9
|
-
export const DECAL_CLUSTER_WORKGROUP_SIZE: number[];
|
|
10
3
|
/**
|
|
11
4
|
* Which decals cover which froxel.
|
|
12
5
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shader_cluster_assign_decals.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics3/decal/shader_cluster_assign_decals.js"],"names":[],"mappings":"AAuCA,6DAMG;AAiBH,sDAAoF;
|
|
1
|
+
{"version":3,"file":"shader_cluster_assign_decals.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics3/decal/shader_cluster_assign_decals.js"],"names":[],"mappings":"AAuCA,6DAMG;AAiBH,sDAAoF;AAmIpF;;;;;;;;GAQG;AACH,2CAFU,aAAa,CAMpB;6BAjL0B,qDAAqD;4BADtD,oDAAoD;8BALlD,iDAAiD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shader_cull_decals_frustum.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics3/decal/shader_cull_decals_frustum.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shader_cull_decals_frustum.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics3/decal/shader_cull_decals_frustum.js"],"names":[],"mappings":"AAyFA;;;;;;;;GAQG;AACH,yCAFU,aAAa,CAMpB;AAEH;;GAEG;AACH,kCAFU,YAAY,CAE6B;8BAtGrB,iDAAiD;6BAMlD,qDAAqD"}
|
|
@@ -16,7 +16,7 @@ import { DECAL_RECORD_OFFSET_TRANSFORM, DECAL_RECORD_WORD_COUNT } from "./DECAL_
|
|
|
16
16
|
/**
|
|
17
17
|
* @type {number}
|
|
18
18
|
*/
|
|
19
|
-
|
|
19
|
+
const SHADER_CULL_DECALS_WORKGROUP_SIZE = COMPUTE_SHADER_DEFAULT_GROUP_SIZE;
|
|
20
20
|
|
|
21
21
|
const OUTPUT_STRUCT = WebGPUStruct.from({
|
|
22
22
|
offset: atomic_u32,
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*
|
|
14
14
|
* @param {object} args
|
|
15
15
|
* @param {Array<{entity: number, highlight: Highlight}>} args.entries
|
|
16
|
-
* @param {
|
|
16
|
+
* @param {MeshSystem} args.meshes resolves an entity to the nodes it has in the scene
|
|
17
17
|
* @param {GPUSceneContext} args.scene resolves a node to its row
|
|
18
18
|
* @param {Uint32Array} args.table reused between frames; replaced when it is too small
|
|
19
19
|
* @returns {{table: Uint32Array, size: number}} `size` is one past the highest row written, and is
|
|
@@ -24,7 +24,7 @@ export function pack_highlight_table({ entries, meshes, scene, table }: {
|
|
|
24
24
|
entity: number;
|
|
25
25
|
highlight: Highlight;
|
|
26
26
|
}>;
|
|
27
|
-
meshes:
|
|
27
|
+
meshes: MeshSystem;
|
|
28
28
|
scene: GPUSceneContext;
|
|
29
29
|
table: Uint32Array;
|
|
30
30
|
}): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack_highlight_table.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics3/highlight/pack_highlight_table.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH;IAP+D,OAAO,EAA3D,MAAM;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,YAAW;KAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"pack_highlight_table.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics3/highlight/pack_highlight_table.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH;IAP+D,OAAO,EAA3D,MAAM;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,YAAW;KAAC,CAAC;IAC5B,MAAM;IACD,KAAK;IACT,KAAK,EAAvB,WAAW;;WACD,WAAW;UAAQ,MAAM;EAqD7C"}
|
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
import { pack_highlight_color } from "./pack_highlight_color.js";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Build the lookup the outline shader reads: one packed colour per mesh row, addressed by the row
|
|
5
|
-
* the visibility buffer writes.
|
|
6
|
-
*
|
|
7
|
-
* **The scene decides the indices.** A highlight is attached to an entity, an entity's model is
|
|
8
|
-
* several nodes, and each node that carries geometry has a row — so the walk is entity → nodes →
|
|
9
|
-
* rows, and an entity whose model has not loaded contributes none and needs no special case.
|
|
10
|
-
*
|
|
11
|
-
* Rebuilt every frame, which is the cheaper arrangement and not a concession: the game's highlights
|
|
12
|
-
* animate colour and alpha continuously, so nothing is saved by watching for changes — and a
|
|
13
|
-
* `Color`'s change signal does not fire for alpha-only edits, which is precisely what the animation
|
|
14
|
-
* is.
|
|
15
|
-
*
|
|
16
|
-
* @param {object} args
|
|
17
|
-
* @param {Array<{entity: number, highlight: Highlight}>} args.entries
|
|
18
|
-
* @param {
|
|
19
|
-
* @param {GPUSceneContext} args.scene resolves a node to its row
|
|
20
|
-
* @param {Uint32Array} args.table reused between frames; replaced when it is too small
|
|
21
|
-
* @returns {{table: Uint32Array, size: number}} `size` is one past the highest row written, and is
|
|
22
|
-
* zero when nothing highlighted is in the scene
|
|
23
|
-
*/
|
|
24
|
-
export function pack_highlight_table({ entries, meshes, scene, table }) {
|
|
25
|
-
let highest = -1;
|
|
26
|
-
|
|
27
|
-
/*
|
|
28
|
-
Two sweeps, because the table has to be as long as the highest row before anything can be
|
|
29
|
-
written into it and the rows are not known until the scene is asked. Asking twice is cheaper
|
|
30
|
-
than growing a typed array mid-walk, and the walk is over the handful of things highlighted
|
|
31
|
-
rather than over the scene.
|
|
32
|
-
*/
|
|
33
|
-
for (let i = 0; i < entries.length; i++) {
|
|
34
|
-
meshes.traverse_meshes(entries[i].entity, node => {
|
|
35
|
-
const row = scene.mesh_row_of(node);
|
|
36
|
-
|
|
37
|
-
if (row > highest) {
|
|
38
|
-
highest = row;
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const size = highest + 1;
|
|
44
|
-
|
|
45
|
-
let result = table;
|
|
46
|
-
|
|
47
|
-
if (result.length < size) {
|
|
48
|
-
result = new Uint32Array(size);
|
|
49
|
-
} else {
|
|
50
|
-
result.fill(0, 0, size);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
for (let i = 0; i < entries.length; i++) {
|
|
54
|
-
const entry = entries[i];
|
|
55
|
-
|
|
56
|
-
const packed = pack_highlight_color(entry.highlight.elements);
|
|
57
|
-
|
|
58
|
-
if (packed === 0) {
|
|
59
|
-
// a highlight faded to nothing is not a highlight, and zero is what the shader reads
|
|
60
|
-
// as "no outline" anyway
|
|
61
|
-
continue;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
meshes.traverse_meshes(entry.entity, node => {
|
|
65
|
-
const row = scene.mesh_row_of(node);
|
|
66
|
-
|
|
67
|
-
if (row >= 0) {
|
|
68
|
-
result[row] = packed;
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
return { table: result, size };
|
|
74
|
-
}
|
|
1
|
+
import { pack_highlight_color } from "./pack_highlight_color.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Build the lookup the outline shader reads: one packed colour per mesh row, addressed by the row
|
|
5
|
+
* the visibility buffer writes.
|
|
6
|
+
*
|
|
7
|
+
* **The scene decides the indices.** A highlight is attached to an entity, an entity's model is
|
|
8
|
+
* several nodes, and each node that carries geometry has a row — so the walk is entity → nodes →
|
|
9
|
+
* rows, and an entity whose model has not loaded contributes none and needs no special case.
|
|
10
|
+
*
|
|
11
|
+
* Rebuilt every frame, which is the cheaper arrangement and not a concession: the game's highlights
|
|
12
|
+
* animate colour and alpha continuously, so nothing is saved by watching for changes — and a
|
|
13
|
+
* `Color`'s change signal does not fire for alpha-only edits, which is precisely what the animation
|
|
14
|
+
* is.
|
|
15
|
+
*
|
|
16
|
+
* @param {object} args
|
|
17
|
+
* @param {Array<{entity: number, highlight: Highlight}>} args.entries
|
|
18
|
+
* @param {MeshSystem} args.meshes resolves an entity to the nodes it has in the scene
|
|
19
|
+
* @param {GPUSceneContext} args.scene resolves a node to its row
|
|
20
|
+
* @param {Uint32Array} args.table reused between frames; replaced when it is too small
|
|
21
|
+
* @returns {{table: Uint32Array, size: number}} `size` is one past the highest row written, and is
|
|
22
|
+
* zero when nothing highlighted is in the scene
|
|
23
|
+
*/
|
|
24
|
+
export function pack_highlight_table({ entries, meshes, scene, table }) {
|
|
25
|
+
let highest = -1;
|
|
26
|
+
|
|
27
|
+
/*
|
|
28
|
+
Two sweeps, because the table has to be as long as the highest row before anything can be
|
|
29
|
+
written into it and the rows are not known until the scene is asked. Asking twice is cheaper
|
|
30
|
+
than growing a typed array mid-walk, and the walk is over the handful of things highlighted
|
|
31
|
+
rather than over the scene.
|
|
32
|
+
*/
|
|
33
|
+
for (let i = 0; i < entries.length; i++) {
|
|
34
|
+
meshes.traverse_meshes(entries[i].entity, node => {
|
|
35
|
+
const row = scene.mesh_row_of(node);
|
|
36
|
+
|
|
37
|
+
if (row > highest) {
|
|
38
|
+
highest = row;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const size = highest + 1;
|
|
44
|
+
|
|
45
|
+
let result = table;
|
|
46
|
+
|
|
47
|
+
if (result.length < size) {
|
|
48
|
+
result = new Uint32Array(size);
|
|
49
|
+
} else {
|
|
50
|
+
result.fill(0, 0, size);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
for (let i = 0; i < entries.length; i++) {
|
|
54
|
+
const entry = entries[i];
|
|
55
|
+
|
|
56
|
+
const packed = pack_highlight_color(entry.highlight.elements);
|
|
57
|
+
|
|
58
|
+
if (packed === 0) {
|
|
59
|
+
// a highlight faded to nothing is not a highlight, and zero is what the shader reads
|
|
60
|
+
// as "no outline" anyway
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
meshes.traverse_meshes(entry.entity, node => {
|
|
65
|
+
const row = scene.mesh_row_of(node);
|
|
66
|
+
|
|
67
|
+
if (row >= 0) {
|
|
68
|
+
result[row] = packed;
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return { table: result, size };
|
|
74
|
+
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* where does this projectile leave from, where does that effect anchor, where does the floating UI
|
|
6
6
|
* hang. **The answer is computed, never read back** — GPU readback is a frame late and asynchronous,
|
|
7
7
|
* so an outcome that depended on it would depend on frame pacing, and determinism and replay would
|
|
8
|
-
* go with it
|
|
8
|
+
* go with it: no GPU readback on a gameplay-affecting path.
|
|
9
9
|
*
|
|
10
10
|
* The pose is {@link pose_evaluate_world} over the clips the animation systems are driving: a pure
|
|
11
11
|
* function of (clip set, time, weights), off the same clock the renderer is written from, which is
|