@woosh/meep-engine 3.23.0 → 3.24.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/editor/entity_world_bounds.d.ts +9 -3
- package/editor/entity_world_bounds.d.ts.map +1 -1
- package/editor/entity_world_bounds.js +61 -4
- package/package.json +1 -1
- package/src/core/binary/allocator/OffsetAllocator.d.ts +40 -2
- package/src/core/binary/allocator/OffsetAllocator.d.ts.map +1 -1
- package/src/core/binary/allocator/OffsetAllocator.js +124 -29
- package/src/core/collection/map/u32_index.d.ts +83 -0
- package/src/core/collection/map/u32_index.d.ts.map +1 -0
- package/src/core/collection/map/u32_index.js +247 -0
- package/src/engine/asset/loaders/GLTFSceneBundleAssetLoader.d.ts +2 -2
- package/src/engine/asset/loaders/GLTFSceneBundleAssetLoader.js +2 -2
- package/src/engine/asset/loaders/USDSceneBundleAssetLoader.d.ts +1 -2
- package/src/engine/asset/loaders/USDSceneBundleAssetLoader.d.ts.map +1 -1
- package/src/engine/asset/loaders/USDSceneBundleAssetLoader.js +4 -12
- package/src/engine/ecs/gpu/GPUStateAuthority.d.ts +55 -0
- package/src/engine/ecs/gpu/GPUStateAuthority.d.ts.map +1 -0
- package/src/engine/ecs/gpu/GPUStateAuthority.js +72 -0
- package/src/engine/ecs/gpu/GPUStateAuthorityFlags.d.ts +40 -0
- package/src/engine/ecs/gpu/GPUStateAuthorityFlags.d.ts.map +1 -0
- package/src/engine/ecs/gpu/GPUStateAuthorityFlags.js +79 -0
- package/src/engine/ecs/gpu/gpu_authority_assert_cpu.d.ts +18 -0
- package/src/engine/ecs/gpu/gpu_authority_assert_cpu.d.ts.map +1 -0
- package/src/engine/ecs/gpu/gpu_authority_assert_cpu.js +27 -0
- package/src/engine/ecs/gpu/gpu_authority_declare.d.ts +23 -0
- package/src/engine/ecs/gpu/gpu_authority_declare.d.ts.map +1 -0
- package/src/engine/ecs/gpu/gpu_authority_declare.js +39 -0
- package/src/engine/ecs/gpu/gpu_authority_grant.d.ts +15 -0
- package/src/engine/ecs/gpu/gpu_authority_grant.d.ts.map +1 -0
- package/src/engine/ecs/gpu/gpu_authority_grant.js +38 -0
- package/src/engine/ecs/gpu/gpu_authority_has.d.ts +18 -0
- package/src/engine/ecs/gpu/gpu_authority_has.d.ts.map +1 -0
- package/src/engine/ecs/gpu/gpu_authority_has.js +28 -0
- package/src/engine/ecs/gpu/gpu_authority_revoke.d.ts +24 -0
- package/src/engine/ecs/gpu/gpu_authority_revoke.d.ts.map +1 -0
- package/src/engine/ecs/gpu/gpu_authority_revoke.js +49 -0
- package/src/engine/ecs/ik/IKProblem.d.ts +14 -0
- package/src/engine/ecs/ik/IKProblem.d.ts.map +1 -1
- package/src/engine/ecs/ik/IKProblem.js +16 -0
- package/src/engine/ecs/ik/InverseKinematicsSystem.d.ts.map +1 -1
- package/src/engine/ecs/ik/InverseKinematicsSystem.js +19 -0
- package/src/engine/ecs/ik/OneBoneSurfaceAlignmentSolver.js +2 -2
- package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.js +2 -2
- package/src/engine/ecs/ik/ik_bone_chain.d.ts +11 -2
- package/src/engine/ecs/ik/ik_bone_chain.d.ts.map +1 -1
- package/src/engine/ecs/ik/ik_bone_chain.js +47 -2
- package/src/engine/ecs/ik/ik_write_local_rotation.d.ts.map +1 -1
- package/src/engine/ecs/ik/ik_write_local_rotation.js +6 -0
- package/src/engine/ecs/speaker/VoiceSystem.d.ts.map +1 -1
- package/src/engine/ecs/speaker/VoiceSystem.js +6 -0
- package/src/engine/ecs/transform/T64WorldCache.d.ts +50 -0
- package/src/engine/ecs/transform/T64WorldCache.d.ts.map +1 -0
- package/src/engine/ecs/transform/T64WorldCache.js +139 -0
- package/src/engine/ecs/transform/t64_evaluate_world.d.ts +31 -0
- package/src/engine/ecs/transform/t64_evaluate_world.d.ts.map +1 -0
- package/src/engine/ecs/transform/t64_evaluate_world.js +126 -0
- package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.d.ts +8 -0
- package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.d.ts.map +1 -1
- package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.js +59 -30
- package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.js +4 -11
- package/src/engine/graphics/ecs/mesh-v2/SHADED_GEOMETRY_EVENT_CHANGE.d.ts +14 -0
- package/src/engine/graphics/ecs/mesh-v2/SHADED_GEOMETRY_EVENT_CHANGE.d.ts.map +1 -0
- package/src/engine/graphics/ecs/mesh-v2/SHADED_GEOMETRY_EVENT_CHANGE.js +13 -0
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.d.ts +2 -14
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.d.ts.map +1 -1
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.js +11 -21
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometryFlags.d.ts +1 -0
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometryFlags.js +7 -0
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshHighlightSystem.d.ts +5 -6
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshHighlightSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshHighlightSystem.js +13 -11
- package/src/engine/graphics/ecs/mesh-v2/shaded_geometry_announce_change.d.ts +14 -0
- package/src/engine/graphics/ecs/mesh-v2/shaded_geometry_announce_change.d.ts.map +1 -0
- package/src/engine/graphics/ecs/mesh-v2/shaded_geometry_announce_change.js +21 -0
- package/src/engine/graphics/ecs/particles/ParticleEffect.d.ts +1 -1
- package/src/engine/graphics/ecs/particles/ParticleEffect.js +1 -1
- package/src/engine/graphics/sh3/path_tracer/populate_path_traced_scene_from_ecd.d.ts +1 -1
- package/src/engine/graphics/sh3/path_tracer/populate_path_traced_scene_from_ecd.js +1 -1
- package/src/engine/graphics3/AnimationGraphSystem.js +3 -3
- package/src/engine/graphics3/AnimationSystem.js +2 -2
- package/src/engine/graphics3/DebugDrawSystem.d.ts.map +1 -1
- package/src/engine/graphics3/DebugDrawSystem.js +2 -4
- package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts +34 -27
- package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts.map +1 -1
- package/src/engine/graphics3/GPUParticleEmitterSystem.js +185 -85
- package/src/engine/graphics3/HighlightOutlineSystem.d.ts +4 -3
- package/src/engine/graphics3/HighlightOutlineSystem.d.ts.map +1 -1
- package/src/engine/graphics3/HighlightOutlineSystem.js +7 -9
- package/src/engine/graphics3/LightSystem.d.ts +7 -5
- package/src/engine/graphics3/LightSystem.d.ts.map +1 -1
- package/src/engine/graphics3/LightSystem.js +36 -22
- package/src/engine/graphics3/MeshSystem.d.ts +43 -39
- package/src/engine/graphics3/MeshSystem.d.ts.map +1 -1
- package/src/engine/graphics3/MeshSystem.js +324 -331
- package/src/engine/graphics3/PathDisplaySystem.d.ts.map +1 -1
- package/src/engine/graphics3/PathDisplaySystem.js +2 -4
- package/src/engine/graphics3/PickingQuery.d.ts +15 -21
- package/src/engine/graphics3/PickingQuery.d.ts.map +1 -1
- package/src/engine/graphics3/PickingQuery.js +21 -25
- package/src/engine/graphics3/PickingSystem.d.ts +60 -31
- package/src/engine/graphics3/PickingSystem.d.ts.map +1 -1
- package/src/engine/graphics3/PickingSystem.js +416 -273
- package/src/engine/graphics3/ShadedGeometrySystem.d.ts +22 -12
- package/src/engine/graphics3/ShadedGeometrySystem.d.ts.map +1 -1
- package/src/engine/graphics3/ShadedGeometrySystem.js +309 -174
- package/src/engine/graphics3/TerrainSystem.d.ts +19 -11
- package/src/engine/graphics3/TerrainSystem.d.ts.map +1 -1
- package/src/engine/graphics3/TerrainSystem.js +102 -53
- package/src/engine/graphics3/TooltipComponentSystem.d.ts.map +1 -1
- package/src/engine/graphics3/TooltipComponentSystem.js +2 -14
- package/src/engine/graphics3/Trail3DSystem.d.ts.map +1 -1
- package/src/engine/graphics3/Trail3DSystem.js +2 -4
- package/src/engine/graphics3/animation/ClipListPlayer.d.ts +4 -4
- package/src/engine/graphics3/animation/ClipListPlayer.d.ts.map +1 -1
- package/src/engine/graphics3/animation/ClipListPlayer.js +2 -2
- package/src/engine/graphics3/highlight/pack_highlight_table.d.ts +9 -11
- package/src/engine/graphics3/highlight/pack_highlight_table.d.ts.map +1 -1
- package/src/engine/graphics3/highlight/pack_highlight_table.js +11 -18
- package/src/engine/graphics3/pose/query_entity_node_world_pose.d.ts +4 -3
- package/src/engine/graphics3/pose/query_entity_node_world_pose.d.ts.map +1 -1
- package/src/engine/graphics3/pose/query_entity_node_world_pose.js +75 -74
- package/src/engine/graphics3/prefab/Prefab.d.ts +130 -0
- package/src/engine/graphics3/prefab/Prefab.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/Prefab.js +162 -0
- package/src/engine/graphics3/prefab/PrefabInstance.d.ts +72 -0
- package/src/engine/graphics3/prefab/PrefabInstance.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/PrefabInstance.js +80 -0
- package/src/engine/graphics3/prefab/prefab_compile.d.ts +23 -0
- package/src/engine/graphics3/prefab/prefab_compile.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/prefab_compile.js +334 -0
- package/src/engine/graphics3/prefab/prefab_instantiate.d.ts +46 -0
- package/src/engine/graphics3/prefab/prefab_instantiate.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/prefab_instantiate.js +230 -0
- package/src/engine/graphics3/prefab/prefab_normalize_skin_frames.d.ts +70 -0
- package/src/engine/graphics3/prefab/prefab_normalize_skin_frames.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/prefab_normalize_skin_frames.js +210 -0
- package/src/engine/graphics3/prefab/prefab_place.d.ts +60 -0
- package/src/engine/graphics3/prefab/prefab_place.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/prefab_place.js +130 -0
- package/src/engine/graphics3/prefab/prefab_skin_clip_scale_conflicts.d.ts +60 -0
- package/src/engine/graphics3/prefab/prefab_skin_clip_scale_conflicts.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/prefab_skin_clip_scale_conflicts.js +128 -0
- package/src/engine/graphics3/prefab/prefab_skin_frame.d.ts +40 -0
- package/src/engine/graphics3/prefab/prefab_skin_frame.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/prefab_skin_frame.js +116 -0
- package/src/engine/graphics3/preview/make_model_preview_scene.d.ts +16 -14
- package/src/engine/graphics3/preview/make_model_preview_scene.d.ts.map +1 -1
- package/src/engine/graphics3/preview/make_model_preview_scene.js +126 -154
- package/src/engine/graphics3/preview/make_model_thumbnail.js +1 -1
- package/src/engine/graphics3/register_instance_animation.d.ts +6 -6
- package/src/engine/graphics3/register_instance_animation.d.ts.map +1 -1
- package/src/engine/graphics3/register_instance_animation.js +4 -4
- package/src/engine/graphics3/shade_bundle_bounds.d.ts +2 -6
- package/src/engine/graphics3/shade_bundle_bounds.d.ts.map +1 -1
- package/src/engine/graphics3/shade_bundle_bounds.js +47 -55
- package/src/engine/graphics3/terrain/pack_terrain_row_table.d.ts +11 -18
- package/src/engine/graphics3/terrain/pack_terrain_row_table.d.ts.map +1 -1
- package/src/engine/graphics3/terrain/pack_terrain_row_table.js +48 -53
- package/src/engine/physics/cloth/build/cloth_proxy_from_joints.d.ts +17 -2
- package/src/engine/physics/cloth/build/cloth_proxy_from_joints.d.ts.map +1 -1
- package/src/engine/physics/cloth/build/cloth_proxy_from_joints.js +284 -256
- package/src/engine/physics/cloth/ecs/ClothInstance.d.ts +13 -15
- package/src/engine/physics/cloth/ecs/ClothInstance.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothInstance.js +12 -14
- package/src/engine/physics/cloth/ecs/ClothRig.d.ts +7 -8
- package/src/engine/physics/cloth/ecs/ClothRig.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothRig.js +7 -8
- package/src/engine/physics/cloth/ecs/ClothSystem.d.ts +5 -4
- package/src/engine/physics/cloth/ecs/ClothSystem.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothSystem.js +11 -12
- package/src/engine/physics/cloth/ecs/cloth_seed_rig.d.ts +19 -23
- package/src/engine/physics/cloth/ecs/cloth_seed_rig.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_seed_rig.js +201 -199
- package/src/engine/physics/cloth/ecs/cloth_seed_subtree.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_seed_subtree.js +8 -0
- package/src/engine/physics/cloth/ecs/cloth_write_back_rig.d.ts +18 -34
- package/src/engine/physics/cloth/ecs/cloth_write_back_rig.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_write_back_rig.js +58 -115
- package/src/engine/physics/cloth/playground/README.md +11 -11
- package/src/engine/physics/cloth/playground/garment_build.d.ts +0 -1
- package/src/engine/physics/cloth/playground/garment_build.d.ts.map +1 -1
- package/src/engine/physics/cloth/playground/garment_build.js +64 -58
- package/src/engine/physics/cloth/playground/garment_main.js +59 -33
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
- package/src/shade/RENDERER_CONTRACT.md +85 -53
- package/src/shade/device/ShadeGPUCommandContext.d.ts +23 -0
- package/src/shade/device/ShadeGPUCommandContext.d.ts.map +1 -1
- package/src/shade/device/ShadeGPUCommandContext.js +36 -0
- package/src/shade/playground/add_random_meshes.d.ts +4 -4
- package/src/shade/playground/add_random_meshes.d.ts.map +1 -1
- package/src/shade/playground/add_random_meshes.js +20 -16
- package/src/shade/playground/avboit/main.d.ts +1 -0
- package/src/shade/playground/avboit/main.d.ts.map +1 -1
- package/src/shade/playground/avboit/main.js +916 -875
- package/src/shade/playground/basis_textures/main.d.ts.map +1 -1
- package/src/shade/playground/basis_textures/main.js +22 -8
- package/src/shade/playground/basis_textures/texture_inventory.d.ts +2 -2
- package/src/shade/playground/basis_textures/texture_inventory.d.ts.map +1 -1
- package/src/shade/playground/basis_textures/texture_inventory.js +6 -7
- package/src/shade/playground/ground_seam/main.d.ts.map +1 -1
- package/src/shade/playground/ground_seam/main.js +13 -4
- package/src/shade/playground/ground_seam/make_ground.d.ts +13 -4
- package/src/shade/playground/ground_seam/make_ground.d.ts.map +1 -1
- package/src/shade/playground/ground_seam/make_ground.js +21 -16
- package/src/shade/playground/particle_ecs/bonfire_editor.js +3 -3
- package/src/shade/playground/particle_system/main.js +11 -10
- package/src/shade/playground/particle_system/particle_prototype.d.ts +15 -10
- package/src/shade/playground/particle_system/particle_prototype.d.ts.map +1 -1
- package/src/shade/playground/particle_system/particle_prototype.js +56 -15
- package/src/shade/playground/particle_system/particle_scene.d.ts +68 -28
- package/src/shade/playground/particle_system/particle_scene.d.ts.map +1 -1
- package/src/shade/playground/particle_system/particle_scene.js +149 -53
- package/src/shade/playground/readback_crossover/index.html +41 -0
- package/src/shade/playground/readback_crossover/main.d.ts +2 -0
- package/src/shade/playground/readback_crossover/main.d.ts.map +1 -0
- package/src/shade/playground/readback_crossover/main.js +372 -0
- package/src/shade/playground/skinned_blas_refit/README.md +11 -7
- package/src/shade/playground/skinned_blas_refit/add_floor.d.ts +13 -44
- package/src/shade/playground/skinned_blas_refit/add_floor.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/add_floor.js +19 -59
- package/src/shade/playground/skinned_blas_refit/main.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/main.js +67 -58
- package/src/shade/playground/skinned_blas_refit/place_character.d.ts +40 -54
- package/src/shade/playground/skinned_blas_refit/place_character.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/place_character.js +47 -74
- package/src/shade/playground/skinned_blas_refit/sweep_views.d.ts +3 -3
- package/src/shade/playground/skinned_blas_refit/sweep_views.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/sweep_views.js +4 -3
- package/src/shade/playground/skinned_blas_refit/verify_clone_leaves.d.ts +3 -3
- package/src/shade/playground/skinned_blas_refit/verify_clone_leaves.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/verify_clone_leaves.js +11 -4
- package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.js +38 -9
- package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.d.ts +3 -3
- package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.js +9 -6
- package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.d.ts +3 -3
- package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.js +3 -3
- package/src/shade/playground/skinned_mesh_soup/README.md +6 -6
- package/src/shade/playground/skinned_mesh_soup/main.d.ts.map +1 -1
- package/src/shade/playground/skinned_mesh_soup/main.js +44 -102
- package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.d.ts +5 -5
- package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.d.ts.map +1 -1
- package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.js +42 -33
- package/src/shade/playground/sponza_path_trace/main.d.ts +1 -0
- package/src/shade/playground/sponza_path_trace/main.d.ts.map +1 -1
- package/src/shade/playground/sponza_path_trace/main.js +393 -363
- package/src/shade/playground/ssr_reprojection/main.js +11 -9
- package/src/shade/playground/ssr_reprojection/scene.d.ts +15 -4
- package/src/shade/playground/ssr_reprojection/scene.d.ts.map +1 -1
- package/src/shade/playground/ssr_reprojection/scene.js +32 -11
- package/src/shade/playground/ssr_variance/main.js +1 -1
- package/src/shade/playground/ssr_variance/scene.d.ts +10 -4
- package/src/shade/playground/ssr_variance/scene.d.ts.map +1 -1
- package/src/shade/playground/ssr_variance/scene.js +39 -15
- package/src/shade/playground/vgeo_viewer/main.js +6 -2
- package/src/shade/playground/volumetrics_froxel/main.d.ts.map +1 -1
- package/src/shade/playground/volumetrics_froxel/main.js +936 -922
- package/src/shade/renderer/GraphicsContext.d.ts +7 -0
- package/src/shade/renderer/GraphicsContext.d.ts.map +1 -1
- package/src/shade/renderer/GraphicsContext.js +11 -0
- package/src/shade/renderer/Renderer.d.ts +3 -2
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +3 -2
- package/src/shade/renderer/animation/GPUAnimationManager.d.ts +39 -47
- package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
- package/src/shade/renderer/animation/GPUAnimationManager.js +319 -256
- package/src/shade/renderer/animation/ShadeAnimationChannel.d.ts +26 -22
- package/src/shade/renderer/animation/ShadeAnimationChannel.d.ts.map +1 -1
- package/src/shade/renderer/animation/ShadeAnimationChannel.js +28 -23
- package/src/shade/renderer/animation/ShadeAnimationClip.d.ts +14 -6
- package/src/shade/renderer/animation/ShadeAnimationClip.d.ts.map +1 -1
- package/src/shade/renderer/animation/ShadeAnimationClip.js +20 -8
- package/src/shade/renderer/animation/Skin.d.ts +19 -19
- package/src/shade/renderer/animation/Skin.d.ts.map +1 -1
- package/src/shade/renderer/animation/Skin.js +15 -13
- package/src/shade/renderer/animation/pose/pose_evaluate_local.d.ts +6 -5
- package/src/shade/renderer/animation/pose/pose_evaluate_local.d.ts.map +1 -1
- package/src/shade/renderer/animation/pose/pose_evaluate_local.js +9 -9
- package/src/shade/renderer/animation/skin_clip_scale_conflicts.d.ts +5 -59
- package/src/shade/renderer/animation/skin_clip_scale_conflicts.d.ts.map +1 -1
- package/src/shade/renderer/animation/skin_clip_scale_conflicts.js +8 -132
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts +65 -62
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +148 -194
- package/src/shade/renderer/animation/skinning/SKINNING_BINDING_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/SKINNING_BINDING_STRUCT.js +4 -7
- package/src/shade/renderer/animation/skinning/chunk_skin_blend_mesh_local.d.ts +2 -2
- package/src/shade/renderer/animation/skinning/chunk_skin_blend_mesh_local.js +2 -2
- package/src/shade/renderer/buffer/GPUBufferReadbackAllocator.d.ts +74 -0
- package/src/shade/renderer/buffer/GPUBufferReadbackAllocator.d.ts.map +1 -0
- package/src/shade/renderer/buffer/GPUBufferReadbackAllocator.js +240 -0
- package/src/shade/renderer/buffer/table/GPUDatabase.d.ts +14 -0
- package/src/shade/renderer/buffer/table/GPUDatabase.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/GPUDatabase.js +64 -6
- package/src/shade/renderer/buffer/table/GPUDatabaseReadback.d.ts +190 -0
- package/src/shade/renderer/buffer/table/GPUDatabaseReadback.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/GPUDatabaseReadback.js +1323 -0
- package/src/shade/renderer/buffer/table/GPUPageMetadata.d.ts +10 -0
- package/src/shade/renderer/buffer/table/GPUPageMetadata.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/GPUPageMetadata.js +12 -0
- package/src/shade/renderer/buffer/table/GPUReadbackStagingRing.d.ts +96 -0
- package/src/shade/renderer/buffer/table/GPUReadbackStagingRing.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/GPUReadbackStatus.d.ts +15 -0
- package/src/shade/renderer/buffer/table/GPUReadbackStatus.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/GPUReadbackStatus.js +34 -0
- package/src/shade/renderer/buffer/table/GPUTypedTable.d.ts +75 -7
- package/src/shade/renderer/buffer/table/GPUTypedTable.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/GPUTypedTable.js +518 -135
- package/src/shade/renderer/buffer/table/GPU_TABLE_GATHER_DESCRIPTOR_WORDS.d.ts +19 -0
- package/src/shade/renderer/buffer/table/GPU_TABLE_GATHER_DESCRIPTOR_WORDS.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/GPU_TABLE_GATHER_DESCRIPTOR_WORDS.js +18 -0
- package/src/shade/renderer/buffer/table/WordViews.d.ts +39 -0
- package/src/shade/renderer/buffer/table/WordViews.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/WordViews.js +62 -0
- package/src/shade/renderer/buffer/table/gpu_table_gather_shader.d.ts +27 -0
- package/src/shade/renderer/buffer/table/gpu_table_gather_shader.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/gpu_table_gather_shader.js +117 -0
- package/src/shade/renderer/buffer/table/serde/generate_record_writer.d.ts +121 -0
- package/src/shade/renderer/buffer/table/serde/generate_record_writer.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/serde/generate_record_writer.js +395 -0
- package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.js +70 -20
- package/src/shade/renderer/dynamic/GPUDynamicMeshResidency.js +1 -1
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.js +6 -5
- package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.d.ts +3 -3
- package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.js +15 -11
- package/src/shade/renderer/global_illumination/brick4/cpu/brick4_bake_for_scene.d.ts +1 -1
- package/src/shade/renderer/global_illumination/brick4/cpu/brick4_bake_for_scene.js +4 -4
- package/src/shade/renderer/global_illumination/brick4/cpu/brick4_generate_tree_from_scene.d.ts +1 -3
- package/src/shade/renderer/global_illumination/brick4/cpu/brick4_generate_tree_from_scene.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/cpu/brick4_generate_tree_from_scene.js +5 -4
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/brick4_bake_basic.js +1 -1
- package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.js +1 -4
- package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.d.ts +8 -3
- package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.js +19 -14
- package/src/shade/renderer/global_illumination/lpv/placement/graph_generate_probe_locations.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/placement/graph_generate_probe_locations.js +9 -1
- package/src/shade/renderer/global_illumination/lpv/placement/software/lpv_generate_probe_locations2.d.ts +3 -3
- package/src/shade/renderer/global_illumination/lpv/placement/software/lpv_generate_probe_locations2.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/placement/software/lpv_generate_probe_locations2.js +12 -5
- package/src/shade/renderer/global_illumination/probe/octahedral/GPUProbeAtlas.js +1 -1
- package/src/shade/renderer/light/GPULightCollection.d.ts +29 -0
- package/src/shade/renderer/light/GPULightCollection.d.ts.map +1 -1
- package/src/shade/renderer/light/GPULightCollection.js +444 -329
- package/src/shade/renderer/light/LIGHT_DATABASE_SPEC.d.ts.map +1 -1
- package/src/shade/renderer/light/LIGHT_DATABASE_SPEC.js +7 -1
- package/src/shade/renderer/light/LightCollection.d.ts +29 -1
- package/src/shade/renderer/light/LightCollection.d.ts.map +1 -1
- package/src/shade/renderer/light/LightCollection.js +50 -1
- package/src/shade/renderer/light/make_sunlight.js +2 -2
- package/src/shade/renderer/light/model/Light.d.ts +29 -2
- package/src/shade/renderer/light/model/Light.d.ts.map +1 -1
- package/src/shade/renderer/light/model/Light.js +30 -2
- package/src/shade/renderer/light/model/io/light_record_directional.d.ts +3 -1
- package/src/shade/renderer/light/model/io/light_record_directional.d.ts.map +1 -1
- package/src/shade/renderer/light/model/io/light_record_directional.js +8 -5
- package/src/shade/renderer/light/model/io/light_record_point.d.ts +3 -1
- package/src/shade/renderer/light/model/io/light_record_point.d.ts.map +1 -1
- package/src/shade/renderer/light/model/io/light_record_point.js +5 -2
- package/src/shade/renderer/light/model/io/light_record_spot.d.ts +4 -1
- package/src/shade/renderer/light/model/io/light_record_spot.d.ts.map +1 -1
- package/src/shade/renderer/light/model/io/light_record_spot.js +10 -6
- package/src/shade/renderer/light/place_light.d.ts +16 -0
- package/src/shade/renderer/light/place_light.d.ts.map +1 -0
- package/src/shade/renderer/light/place_light.js +36 -0
- package/src/shade/renderer/light/shader_refresh_light_poses.d.ts +44 -0
- package/src/shade/renderer/light/shader_refresh_light_poses.d.ts.map +1 -0
- package/src/shade/renderer/light/shader_refresh_light_poses.js +154 -0
- package/src/shade/renderer/lightmap/GPULightMap.js +1 -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 +12 -14
- package/src/shade/renderer/loader/SceneBundle.d.ts +53 -28
- package/src/shade/renderer/loader/SceneBundle.d.ts.map +1 -1
- package/src/shade/renderer/loader/SceneBundle.js +111 -56
- package/src/shade/renderer/loader/SceneNode.d.ts +81 -0
- package/src/shade/renderer/loader/SceneNode.d.ts.map +1 -0
- package/src/shade/renderer/loader/SceneNode.js +114 -0
- package/src/shade/renderer/loader/gltf/load_gltf.d.ts +3 -2
- package/src/shade/renderer/loader/gltf/load_gltf.d.ts.map +1 -1
- package/src/shade/renderer/loader/gltf/load_gltf.js +110 -142
- package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
- package/src/shade/renderer/loader/usd/UsdExtensionRegistry.d.ts +4 -4
- package/src/shade/renderer/loader/usd/UsdExtensionRegistry.d.ts.map +1 -1
- package/src/shade/renderer/loader/usd/UsdExtensionRegistry.js +2 -2
- package/src/shade/renderer/loader/usd/load_usd.d.ts +3 -2
- package/src/shade/renderer/loader/usd/load_usd.d.ts.map +1 -1
- package/src/shade/renderer/loader/usd/load_usd.js +4 -5
- package/src/shade/renderer/loader/usd/usd_build_scene.d.ts +3 -3
- package/src/shade/renderer/loader/usd/usd_build_scene.d.ts.map +1 -1
- package/src/shade/renderer/loader/usd/usd_build_scene.js +47 -55
- package/src/shade/renderer/material/GPUMaterialManager.js +1 -1
- package/src/shade/renderer/material/resident/GPUResidentMaterialContext.d.ts +5 -4
- package/src/shade/renderer/material/resident/GPUResidentMaterialContext.d.ts.map +1 -1
- package/src/shade/renderer/material/resident/GPUResidentMaterialContext.js +8 -15
- package/src/shade/renderer/object_property/shader_refresh_all_mesh_bounds.d.ts +15 -13
- 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 +40 -21
- package/src/shade/renderer/particles/DESIGN.md +53 -50
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts +31 -17
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
- package/src/shade/renderer/particles/GPUParticleSystem.js +54 -91
- package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts +12 -11
- package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/EmitterRegistry.js +12 -11
- package/src/shade/renderer/particles/runtime/GPUParticleEmitterContext.d.ts +13 -19
- package/src/shade/renderer/particles/runtime/GPUParticleEmitterContext.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/GPUParticleEmitterContext.js +19 -25
- package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts +34 -24
- package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/ParticleEmitter.js +53 -40
- package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.js +1 -1
- package/src/shade/renderer/path_tracer/graph_path_trace_scene.js +1 -1
- package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
- package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_meshes_classify_buckets.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_meshes_classify_buckets.js +2 -1
- package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_scene_meshes_cull_and_classify_buckets.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_scene_meshes_cull_and_classify_buckets.js +5 -2
- package/src/shade/renderer/rasterize/fast/graph_rasterize_scene_fast.js +1 -1
- package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.js +1 -1
- package/src/shade/renderer/rasterize/native/graph_rasterize_meshes_alpha_tested.js +1 -1
- package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.js +1 -1
- package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.js +1 -1
- package/src/shade/renderer/scene/DynamicMesh.d.ts +13 -4
- package/src/shade/renderer/scene/DynamicMesh.d.ts.map +1 -1
- package/src/shade/renderer/scene/DynamicMesh.js +14 -4
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts +38 -18
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts.map +1 -1
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.js +112 -60
- package/src/shade/renderer/scene/GPUSceneContext.d.ts +55 -48
- package/src/shade/renderer/scene/GPUSceneContext.d.ts.map +1 -1
- package/src/shade/renderer/scene/GPUSceneContext.js +594 -928
- package/src/shade/renderer/scene/NODE3D_STRUCT.d.ts +5 -5
- package/src/shade/renderer/scene/NODE3D_STRUCT.js +5 -5
- package/src/shade/renderer/scene/Node3D.d.ts +27 -8
- package/src/shade/renderer/scene/Node3D.d.ts.map +1 -1
- package/src/shade/renderer/scene/Node3DDirtyList.d.ts +59 -0
- package/src/shade/renderer/scene/Node3DDirtyList.d.ts.map +1 -0
- package/src/shade/renderer/scene/Scene.d.ts +18 -60
- package/src/shade/renderer/scene/Scene.d.ts.map +1 -1
- package/src/shade/renderer/scene/Scene.js +53 -146
- package/src/shade/renderer/scene/SkinnedMesh.d.ts +10 -93
- package/src/shade/renderer/scene/SkinnedMesh.d.ts.map +1 -1
- package/src/shade/renderer/scene/bvh/StaticSceneBVH.d.ts +24 -3
- package/src/shade/renderer/scene/bvh/StaticSceneBVH.d.ts.map +1 -1
- package/src/shade/renderer/scene/bvh/StaticSceneBVH.js +53 -13
- package/src/shade/renderer/scene/hierarchy/graph_scene_update_transform_hierarchy.d.ts +5 -6
- package/src/shade/renderer/scene/hierarchy/graph_scene_update_transform_hierarchy.d.ts.map +1 -1
- package/src/shade/renderer/scene/hierarchy/graph_scene_update_transform_hierarchy.js +5 -6
- package/src/shade/renderer/scene/optimization/scene_optimize.d.ts +10 -2
- package/src/shade/renderer/scene/optimization/scene_optimize.d.ts.map +1 -1
- package/src/shade/renderer/scene/optimization/scene_optimize.js +266 -230
- package/src/shade/renderer/scene/rows/GPUEntityBoundsReadback.d.ts +53 -0
- package/src/shade/renderer/scene/rows/GPUEntityBoundsReadback.d.ts.map +1 -0
- package/src/shade/renderer/scene/rows/GPUEntityBoundsReadback.js +144 -0
- package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts +227 -0
- package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts.map +1 -0
- package/src/shade/renderer/scene/rows/GPUSceneRows.js +1136 -0
- package/src/shade/renderer/scene/rows/place_primitive.d.ts +48 -0
- package/src/shade/renderer/scene/rows/place_primitive.d.ts.map +1 -0
- package/src/shade/renderer/scene/rows/place_primitive.js +98 -0
- package/src/shade/renderer/scene/serialization/deserialize_scene.d.ts +10 -8
- package/src/shade/renderer/scene/serialization/deserialize_scene.d.ts.map +1 -1
- package/src/shade/renderer/scene/serialization/deserialize_scene.js +24 -27
- package/src/shade/renderer/scene/serialization/serialize_scene.d.ts +9 -2
- package/src/shade/renderer/scene/serialization/serialize_scene.d.ts.map +1 -1
- package/src/shade/renderer/scene/serialization/serialize_scene.js +25 -4
- package/src/shade/renderer/scene/verify_gpu_tlas_build.js +2 -2
- package/src/shade/renderer/shader/chunk/light/DIRECTIONAL_LIGHT_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/light/DIRECTIONAL_LIGHT_STRUCT.js +5 -0
- package/src/shade/renderer/shader/chunk/light/POINT_LIGHT_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/light/POINT_LIGHT_STRUCT.js +5 -0
- package/src/shade/renderer/shader/chunk/light/SPOT_LIGHT_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/light/SPOT_LIGHT_STRUCT.js +5 -0
- package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.d.ts +39 -0
- package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.js +112 -64
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts +7 -0
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.js +1541 -1352
- package/src/shade/renderer/shadow/map/PointLightShadowmap.js +1 -1
- package/src/shade/renderer/shadow/map/SpotLightShadowmap.js +1 -1
- package/src/shade/renderer/shadow/map/TetrahedronPointLightShadowmap.js +1 -1
- package/src/shade/renderer/shadow/map/csm/CSM_CASTER_RANGE_STRUCT.d.ts +29 -0
- package/src/shade/renderer/shadow/map/csm/CSM_CASTER_RANGE_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/shadow/map/csm/CSM_CASTER_RANGE_STRUCT.js +43 -0
- package/src/shade/renderer/shadow/map/csm/SHADOWMAP_CSM_CASTER_RANGE_MARGIN_FRACTION.d.ts +13 -0
- package/src/shade/renderer/shadow/map/csm/SHADOWMAP_CSM_CASTER_RANGE_MARGIN_FRACTION.d.ts.map +1 -0
- package/src/shade/renderer/shadow/map/csm/SHADOWMAP_CSM_CASTER_RANGE_MARGIN_FRACTION.js +12 -0
- package/src/shade/renderer/shadow/map/csm/shader/shader_csm_caster_range.d.ts +49 -0
- package/src/shade/renderer/shadow/map/csm/shader/shader_csm_caster_range.d.ts.map +1 -0
- package/src/shade/renderer/shadow/map/csm/shader/shader_csm_caster_range.js +194 -0
- package/src/shade/renderer/shadow/map/csm_debug_draw_preview.js +1 -1
- package/src/shade/renderer/shadow/map/shadowmap_update_score.js +1 -1
- package/src/shade/renderer/shadow/ray/RTXShadows.js +1 -1
- package/src/shade/renderer/shadow/ray/staged/trace/graph_trace_rays.js +1 -1
- package/src/shade/renderer/shadow/sdf/cascade/CascadedSceneSDF.d.ts.map +1 -1
- package/src/shade/renderer/shadow/sdf/cascade/CascadedSceneSDF.js +3 -1
- package/src/shade/renderer/texture/bindless/GPUBindlessTextureManager.js +8 -8
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +4 -3
- package/src/engine/graphics3/instantiate_scene_bundle.js +0 -164
- package/src/engine/graphics3/shade_node_to_entity_composition.js +0 -88
- package/src/shade/renderer/animation/compute_skin_world_bounds.js +0 -146
- package/src/shade/renderer/animation/compute_skinned_mesh_clip_bounding_sphere.js +0 -531
- package/src/shade/renderer/animation/pose/pose_evaluate_world.js +0 -76
- package/src/shade/renderer/animation/skin_bind_transform.js +0 -33
- package/src/shade/renderer/animation/skin_frame_defect.js +0 -132
- package/src/shade/renderer/animation/skin_joint_matrix.js +0 -46
- package/src/shade/renderer/animation/skin_normalize_mesh_frame.js +0 -216
- package/src/shade/renderer/scene/InstanceBatch.js +0 -235
- package/src/shade/renderer/scene/Mesh.js +0 -168
- package/src/shade/renderer/scene/Node3D.js +0 -263
- package/src/shade/renderer/scene/SceneNodeBinding.js +0 -56
- package/src/shade/renderer/scene/SkinnedMesh.js +0 -170
- package/src/shade/renderer/scene/TransformAuthority.js +0 -33
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {import("../GPUSceneContext.js").GPUSceneContext} GPUSceneContext
|
|
3
|
+
* @typedef {import("../../geometry/MeshletGeometry.js").MeshletGeometry} MeshletGeometry
|
|
4
|
+
* @typedef {import("../../material/ShadeMaterial.js").ShadeMaterial} ShadeMaterial
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Put one primitive into a scene that has no systems: a playground's floor, a backdrop, a probe
|
|
8
|
+
* marker, a scattered box.
|
|
9
|
+
*
|
|
10
|
+
* A game does this in `ShadedGeometrySystem`, which takes a mesh row for every entity carrying a
|
|
11
|
+
* `ShadedGeometry` as the component appears. A scene bound to a bare dataset has no such system,
|
|
12
|
+
* so this does the same by hand: an entity of the scene's dataset carrying the transform, a
|
|
13
|
+
* `ShadedGeometry` naming what it draws — so a tool can read it back — and a `Name` when given;
|
|
14
|
+
* then its `meshes` row, which takes the `transforms` row with it. The rows write on the scene
|
|
15
|
+
* context's next build.
|
|
16
|
+
*
|
|
17
|
+
* @param {GPUSceneContext} scene_context the scene's context — its rows are where the primitive goes
|
|
18
|
+
* @param {MeshletGeometry} geometry
|
|
19
|
+
* @param {ShadeMaterial} material
|
|
20
|
+
* @param {Transform64} transform where it stands; copied
|
|
21
|
+
* @param {object} [options]
|
|
22
|
+
* @param {string} [options.name]
|
|
23
|
+
* @returns {number} the entity
|
|
24
|
+
*/
|
|
25
|
+
export function place_primitive(scene_context: GPUSceneContext, geometry: MeshletGeometry, material: ShadeMaterial, transform: Transform64, { name }?: {
|
|
26
|
+
name?: string;
|
|
27
|
+
}): number;
|
|
28
|
+
/**
|
|
29
|
+
* Move a placed primitive: its transform takes `transform`, and its row is marked so the next
|
|
30
|
+
* build writes it.
|
|
31
|
+
*
|
|
32
|
+
* @param {GPUSceneContext} scene_context
|
|
33
|
+
* @param {number} entity what {@link place_primitive} answered
|
|
34
|
+
* @param {Transform64} transform copied
|
|
35
|
+
*/
|
|
36
|
+
export function move_primitive(scene_context: GPUSceneContext, entity: number, transform: Transform64): void;
|
|
37
|
+
/**
|
|
38
|
+
* Take a placed primitive out: its rows given back, its entity removed.
|
|
39
|
+
*
|
|
40
|
+
* @param {GPUSceneContext} scene_context
|
|
41
|
+
* @param {number} entity what {@link place_primitive} answered
|
|
42
|
+
*/
|
|
43
|
+
export function remove_primitive(scene_context: GPUSceneContext, entity: number): void;
|
|
44
|
+
export type GPUSceneContext = import("../GPUSceneContext.js").GPUSceneContext;
|
|
45
|
+
export type MeshletGeometry = import("../../geometry/MeshletGeometry.js").MeshletGeometry;
|
|
46
|
+
export type ShadeMaterial = import("../../material/ShadeMaterial.js").ShadeMaterial;
|
|
47
|
+
import { Transform64 } from "../../../../engine/ecs/transform/Transform64.js";
|
|
48
|
+
//# sourceMappingURL=place_primitive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"place_primitive.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/scene/rows/place_primitive.js"],"names":[],"mappings":"AAKA;;;;GAIG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,+CARW,eAAe,YACf,eAAe,YACf,aAAa,aACb,WAAW;IAEM,IAAI,GAArB,MAAM;IACJ,MAAM,CAgClB;AAED;;;;;;;GAOG;AACH,8CAJW,eAAe,UACf,MAAM,aACN,WAAW,QAerB;AAED;;;;;GAKG;AACH,gDAHW,eAAe,UACf,MAAM,QAQhB;8BA3FY,OAAO,uBAAuB,EAAE,eAAe;8BAC/C,OAAO,mCAAmC,EAAE,eAAe;4BAC3D,OAAO,iCAAiC,EAAE,aAAa;4BANxC,iDAAiD"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { assert } from "../../../../core/assert.js";
|
|
2
|
+
import { Name } from "../../../../engine/ecs/name/Name.js";
|
|
3
|
+
import { Transform64 } from "../../../../engine/ecs/transform/Transform64.js";
|
|
4
|
+
import { ShadedGeometry } from "../../../../engine/graphics/ecs/mesh-v2/ShadedGeometry.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @typedef {import("../GPUSceneContext.js").GPUSceneContext} GPUSceneContext
|
|
8
|
+
* @typedef {import("../../geometry/MeshletGeometry.js").MeshletGeometry} MeshletGeometry
|
|
9
|
+
* @typedef {import("../../material/ShadeMaterial.js").ShadeMaterial} ShadeMaterial
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Put one primitive into a scene that has no systems: a playground's floor, a backdrop, a probe
|
|
14
|
+
* marker, a scattered box.
|
|
15
|
+
*
|
|
16
|
+
* A game does this in `ShadedGeometrySystem`, which takes a mesh row for every entity carrying a
|
|
17
|
+
* `ShadedGeometry` as the component appears. A scene bound to a bare dataset has no such system,
|
|
18
|
+
* so this does the same by hand: an entity of the scene's dataset carrying the transform, a
|
|
19
|
+
* `ShadedGeometry` naming what it draws — so a tool can read it back — and a `Name` when given;
|
|
20
|
+
* then its `meshes` row, which takes the `transforms` row with it. The rows write on the scene
|
|
21
|
+
* context's next build.
|
|
22
|
+
*
|
|
23
|
+
* @param {GPUSceneContext} scene_context the scene's context — its rows are where the primitive goes
|
|
24
|
+
* @param {MeshletGeometry} geometry
|
|
25
|
+
* @param {ShadeMaterial} material
|
|
26
|
+
* @param {Transform64} transform where it stands; copied
|
|
27
|
+
* @param {object} [options]
|
|
28
|
+
* @param {string} [options.name]
|
|
29
|
+
* @returns {number} the entity
|
|
30
|
+
*/
|
|
31
|
+
export function place_primitive(scene_context, geometry, material, transform, { name = "" } = {}) {
|
|
32
|
+
assert.defined(scene_context, 'scene_context');
|
|
33
|
+
assert.defined(geometry, 'geometry');
|
|
34
|
+
assert.equal(geometry.isMeshletGeometry, true, 'geometry.isMeshletGeometry !== true');
|
|
35
|
+
assert.defined(material, 'material');
|
|
36
|
+
assert.defined(transform, 'transform');
|
|
37
|
+
assert.isString(name, 'name');
|
|
38
|
+
|
|
39
|
+
const dataset = scene_context.scene.dataset;
|
|
40
|
+
|
|
41
|
+
assert.ok(dataset !== null && dataset !== undefined, 'the scene names no dataset, and a primitive is an entity of one');
|
|
42
|
+
|
|
43
|
+
dataset.registerManyComponentTypes([Transform64, ShadedGeometry, Name]);
|
|
44
|
+
|
|
45
|
+
const entity = dataset.createEntity();
|
|
46
|
+
const world = new Transform64();
|
|
47
|
+
|
|
48
|
+
world.copy(transform);
|
|
49
|
+
world.updateMatrix();
|
|
50
|
+
|
|
51
|
+
dataset.addComponentToEntity(entity, world);
|
|
52
|
+
dataset.addComponentToEntity(entity, ShadedGeometry.from(geometry, material));
|
|
53
|
+
|
|
54
|
+
if (name !== "") {
|
|
55
|
+
dataset.addComponentToEntity(entity, new Name(name));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
scene_context.rows.attach_mesh(entity, geometry, material);
|
|
59
|
+
|
|
60
|
+
return entity;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Move a placed primitive: its transform takes `transform`, and its row is marked so the next
|
|
65
|
+
* build writes it.
|
|
66
|
+
*
|
|
67
|
+
* @param {GPUSceneContext} scene_context
|
|
68
|
+
* @param {number} entity what {@link place_primitive} answered
|
|
69
|
+
* @param {Transform64} transform copied
|
|
70
|
+
*/
|
|
71
|
+
export function move_primitive(scene_context, entity, transform) {
|
|
72
|
+
assert.defined(scene_context, 'scene_context');
|
|
73
|
+
assert.isNonNegativeInteger(entity, 'entity');
|
|
74
|
+
assert.defined(transform, 'transform');
|
|
75
|
+
|
|
76
|
+
const world = scene_context.scene.dataset.getComponent(entity, Transform64);
|
|
77
|
+
|
|
78
|
+
assert.defined(world, `entity ${entity} carries no Transform64 — was it placed with place_primitive?`);
|
|
79
|
+
|
|
80
|
+
world.copy(transform);
|
|
81
|
+
world.updateMatrix();
|
|
82
|
+
|
|
83
|
+
scene_context.rows.mark_world(entity);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Take a placed primitive out: its rows given back, its entity removed.
|
|
88
|
+
*
|
|
89
|
+
* @param {GPUSceneContext} scene_context
|
|
90
|
+
* @param {number} entity what {@link place_primitive} answered
|
|
91
|
+
*/
|
|
92
|
+
export function remove_primitive(scene_context, entity) {
|
|
93
|
+
assert.defined(scene_context, 'scene_context');
|
|
94
|
+
assert.isNonNegativeInteger(entity, 'entity');
|
|
95
|
+
|
|
96
|
+
scene_context.rows.detach_mesh(entity);
|
|
97
|
+
scene_context.scene.dataset.removeEntity(entity);
|
|
98
|
+
}
|
|
@@ -2,18 +2,20 @@
|
|
|
2
2
|
* Deserialize a scene from a BinaryBuffer that was produced by {@link serialize_scene}.
|
|
3
3
|
*
|
|
4
4
|
* @param {BinaryBuffer} buffer positioned at the start of the serialized data
|
|
5
|
-
* @param {Scene} scene
|
|
6
|
-
* @returns {Promise<
|
|
5
|
+
* @param {Scene} scene takes the file's lights, at entities of its dataset, and its environment
|
|
6
|
+
* @returns {Promise<SceneBundle>} the file's meshes, as a model to compile and place — each a root
|
|
7
|
+
* at its world transform, the format being flat
|
|
7
8
|
*/
|
|
8
|
-
export function deserialize_scene(buffer: BinaryBuffer, scene: Scene): Promise<
|
|
9
|
+
export function deserialize_scene(buffer: BinaryBuffer, scene: Scene): Promise<SceneBundle>;
|
|
9
10
|
/**
|
|
10
|
-
* Fetch a serialized scene binary from a URL and deserialize it
|
|
11
|
-
*
|
|
11
|
+
* Fetch a serialized scene binary from a URL and deserialize it: the lights and the environment
|
|
12
|
+
* into the given scene, the meshes as a bundle to compile and place.
|
|
12
13
|
*
|
|
13
14
|
* @param {string} url URL pointing to the binary blob produced by serialize_scene
|
|
14
|
-
* @param {Scene} scene
|
|
15
|
-
* @returns {Promise<
|
|
15
|
+
* @param {Scene} scene takes the file's lights and environment
|
|
16
|
+
* @returns {Promise<SceneBundle>}
|
|
16
17
|
*/
|
|
17
|
-
export function load_scene_from_url(url: string, scene: Scene): Promise<
|
|
18
|
+
export function load_scene_from_url(url: string, scene: Scene): Promise<SceneBundle>;
|
|
18
19
|
import { BinaryBuffer } from "../../../../core/binary/BinaryBuffer.js";
|
|
20
|
+
import { SceneBundle } from "../../loader/SceneBundle.js";
|
|
19
21
|
//# sourceMappingURL=deserialize_scene.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserialize_scene.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/scene/serialization/deserialize_scene.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deserialize_scene.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/scene/serialization/deserialize_scene.js"],"names":[],"mappings":"AAkNA;;;;;;;GAOG;AACH,0CALW,YAAY,iBAEV,QAAQ,WAAW,CAAC,CAyRhC;AAED;;;;;;;GAOG;AACH,yCAJW,MAAM,iBAEJ,QAAQ,WAAW,CAAC,CAuBhC;6BA9gB4B,yCAAyC;4BAW1C,6BAA6B"}
|
|
@@ -6,10 +6,12 @@ import { Sampler2D } from "../../../../engine/graphics/texture/sampler/Sampler2D
|
|
|
6
6
|
import { MeshletGeometry } from "../../geometry/MeshletGeometry.js";
|
|
7
7
|
import { MeshletGeometrySerializationAdapter } from "../../geometry/MeshletGeometrySerializationAdapter.js";
|
|
8
8
|
import { DirectionalLight } from "../../light/model/DirectionalLight.js";
|
|
9
|
+
import { place_light } from "../../light/place_light.js";
|
|
9
10
|
import { PointLight } from "../../light/model/PointLight.js";
|
|
10
11
|
import { SpotLight } from "../../light/model/SpotLight.js";
|
|
11
12
|
import { StandardShadeMaterial } from "../../material/StandardShadeMaterial.js";
|
|
12
|
-
import {
|
|
13
|
+
import { SceneBundle } from "../../loader/SceneBundle.js";
|
|
14
|
+
import { SceneNode } from "../../loader/SceneNode.js";
|
|
13
15
|
import { ShadeTexture } from "../../texture/ShadeTexture.js";
|
|
14
16
|
import { ShadeImage } from "../../texture/source/ShadeImage.js";
|
|
15
17
|
import { avif_to_sampler2d } from "../../../../engine/graphics/texture/sampler/avif_to_sampler2d.js";
|
|
@@ -183,7 +185,7 @@ function deserialize_light(buffer) {
|
|
|
183
185
|
|
|
184
186
|
const light_matrix = new Float32Array(16);
|
|
185
187
|
buffer.readFloat32Array(light_matrix, 0, 16);
|
|
186
|
-
light.
|
|
188
|
+
light.transform.fromMatrix(light_matrix);
|
|
187
189
|
|
|
188
190
|
light.intensity = buffer.readFloat32();
|
|
189
191
|
|
|
@@ -210,8 +212,9 @@ function deserialize_light(buffer) {
|
|
|
210
212
|
* Deserialize a scene from a BinaryBuffer that was produced by {@link serialize_scene}.
|
|
211
213
|
*
|
|
212
214
|
* @param {BinaryBuffer} buffer positioned at the start of the serialized data
|
|
213
|
-
* @param {Scene} scene
|
|
214
|
-
* @returns {Promise<
|
|
215
|
+
* @param {Scene} scene takes the file's lights, at entities of its dataset, and its environment
|
|
216
|
+
* @returns {Promise<SceneBundle>} the file's meshes, as a model to compile and place — each a root
|
|
217
|
+
* at its world transform, the format being flat
|
|
215
218
|
*/
|
|
216
219
|
export async function deserialize_scene(buffer, scene) {
|
|
217
220
|
|
|
@@ -469,43 +472,37 @@ export async function deserialize_scene(buffer, scene) {
|
|
|
469
472
|
scene.lights.environment = textures[environment_index];
|
|
470
473
|
}
|
|
471
474
|
|
|
472
|
-
// Light elements
|
|
475
|
+
// Light elements — each at an entity of the scene's dataset, which the scene has to name
|
|
473
476
|
const light_count = buffer.readUint32();
|
|
474
477
|
for (let i = 0; i < light_count; i++) {
|
|
475
478
|
const light = deserialize_light(buffer);
|
|
476
|
-
scene
|
|
479
|
+
place_light(scene, light);
|
|
477
480
|
}
|
|
478
481
|
|
|
479
|
-
// ── Assemble
|
|
482
|
+
// ── Assemble the model: one root per mesh, at its world transform ──
|
|
483
|
+
const bundle = new SceneBundle();
|
|
480
484
|
|
|
481
485
|
for (const record of mesh_records) {
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
mesh.transform_local.fromMatrix(record.transform);
|
|
491
|
-
mesh.updateMatrices();
|
|
492
|
-
|
|
493
|
-
// Compute world-space bounds from geometry bounds + transform
|
|
494
|
-
mesh.updateBoundsBasic();
|
|
495
|
-
|
|
496
|
-
scene.instances.add(mesh);
|
|
486
|
+
bundle.add_node(SceneNode.from({
|
|
487
|
+
name: record.name,
|
|
488
|
+
// serialized transforms are world-space, and a mesh comes back as a root — so its
|
|
489
|
+
// local is its world
|
|
490
|
+
matrix: record.transform,
|
|
491
|
+
geometry: geometries[record.geometry_index],
|
|
492
|
+
material: materials[record.material_index],
|
|
493
|
+
}));
|
|
497
494
|
}
|
|
498
495
|
|
|
499
|
-
return
|
|
496
|
+
return bundle;
|
|
500
497
|
}
|
|
501
498
|
|
|
502
499
|
/**
|
|
503
|
-
* Fetch a serialized scene binary from a URL and deserialize it
|
|
504
|
-
*
|
|
500
|
+
* Fetch a serialized scene binary from a URL and deserialize it: the lights and the environment
|
|
501
|
+
* into the given scene, the meshes as a bundle to compile and place.
|
|
505
502
|
*
|
|
506
503
|
* @param {string} url URL pointing to the binary blob produced by serialize_scene
|
|
507
|
-
* @param {Scene} scene
|
|
508
|
-
* @returns {Promise<
|
|
504
|
+
* @param {Scene} scene takes the file's lights and environment
|
|
505
|
+
* @returns {Promise<SceneBundle>}
|
|
509
506
|
*/
|
|
510
507
|
export async function load_scene_from_url(url, scene) {
|
|
511
508
|
assert.defined(scene, 'scene');
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {import("../../loader/SceneBundle.js").SceneBundle} SceneBundle
|
|
3
|
+
*/
|
|
1
4
|
/**
|
|
2
5
|
*
|
|
3
6
|
* @param {BinaryBuffer} buffer
|
|
@@ -8,12 +11,16 @@ export function material_write_standard(buffer: BinaryBuffer, material: Standard
|
|
|
8
11
|
/**
|
|
9
12
|
*
|
|
10
13
|
* @param {Object} options
|
|
11
|
-
* @param {
|
|
14
|
+
* @param {SceneBundle} options.bundle the meshes, as a loader or the deserializer describes them —
|
|
15
|
+
* written flat, each primitive at its world transform
|
|
16
|
+
* @param {Scene} options.scene the lights and the environment
|
|
12
17
|
* @param {boolean} [options.include_blas] BLAS BVH takes up a lot of space, but it is optimal and will save processing time
|
|
13
18
|
*/
|
|
14
|
-
export function serialize_scene({ scene, include_blas, }: {
|
|
19
|
+
export function serialize_scene({ bundle, scene, include_blas, }: {
|
|
20
|
+
bundle: SceneBundle;
|
|
15
21
|
scene: Scene;
|
|
16
22
|
include_blas?: boolean;
|
|
17
23
|
}): Promise<BinaryBuffer>;
|
|
24
|
+
export type SceneBundle = import("../../loader/SceneBundle.js").SceneBundle;
|
|
18
25
|
import { BinaryBuffer } from "../../../../core/binary/BinaryBuffer.js";
|
|
19
26
|
//# sourceMappingURL=serialize_scene.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize_scene.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/scene/serialization/serialize_scene.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serialize_scene.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/scene/serialization/serialize_scene.js"],"names":[],"mappings":"AAOA;;GAEG;AAGH;;;;;GAKG;AACH,gDAJW,YAAY,mDAEZ,kBAAkB,MAAM,CAAC,QAsDnC;AAwJD;;;;;;;GAOG;AACH;IALgC,MAAM,EAA3B,WAAW;IAEI,KAAK;IACF,YAAY,GAA9B,OAAO;0BAiQjB;0BA7dY,OAAO,6BAA6B,EAAE,WAAW;6BAPjC,yCAAyC"}
|
|
@@ -5,6 +5,10 @@ import { MeshletGeometrySerializationAdapter } from "../../geometry/MeshletGeome
|
|
|
5
5
|
import { LightTypeSerializationIndex } from "./LightTypeSerializationIndex.js";
|
|
6
6
|
import { write_image_source } from "./write_image_source.js";
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* @typedef {import("../../loader/SceneBundle.js").SceneBundle} SceneBundle
|
|
10
|
+
*/
|
|
11
|
+
|
|
8
12
|
|
|
9
13
|
/**
|
|
10
14
|
*
|
|
@@ -197,7 +201,7 @@ function serialize_light(buffer, light) {
|
|
|
197
201
|
const light_type = LightTypeSerializationIndex[light.type];
|
|
198
202
|
buffer.writeUint8(light_type);
|
|
199
203
|
|
|
200
|
-
buffer.writeFloat32Array(light.
|
|
204
|
+
buffer.writeFloat32Array(light.transform.matrix, 0, 16);
|
|
201
205
|
buffer.writeFloat32(light.intensity);
|
|
202
206
|
buffer.writeUint32(light.color.toUint32());
|
|
203
207
|
buffer.writeFloat32(light.radius);
|
|
@@ -219,13 +223,19 @@ function serialize_light(buffer, light) {
|
|
|
219
223
|
/**
|
|
220
224
|
*
|
|
221
225
|
* @param {Object} options
|
|
222
|
-
* @param {
|
|
226
|
+
* @param {SceneBundle} options.bundle the meshes, as a loader or the deserializer describes them —
|
|
227
|
+
* written flat, each primitive at its world transform
|
|
228
|
+
* @param {Scene} options.scene the lights and the environment
|
|
223
229
|
* @param {boolean} [options.include_blas] BLAS BVH takes up a lot of space, but it is optimal and will save processing time
|
|
224
230
|
*/
|
|
225
231
|
export async function serialize_scene({
|
|
232
|
+
bundle,
|
|
226
233
|
scene,
|
|
227
234
|
include_blas = true,
|
|
228
235
|
}) {
|
|
236
|
+
assert.defined(bundle, 'bundle');
|
|
237
|
+
assert.equal(bundle.isSceneBundle, true, 'bundle.isSceneBundle !== true');
|
|
238
|
+
|
|
229
239
|
/**
|
|
230
240
|
*
|
|
231
241
|
* @type {Set<MeshletGeometry>}
|
|
@@ -260,7 +270,18 @@ export async function serialize_scene({
|
|
|
260
270
|
*/
|
|
261
271
|
const images = new Set();
|
|
262
272
|
|
|
263
|
-
|
|
273
|
+
// every primitive at its world transform: the format is flat, and a node that only places
|
|
274
|
+
// others is composed away
|
|
275
|
+
const worlds = bundle.compute_world_matrices();
|
|
276
|
+
const meshes = [];
|
|
277
|
+
|
|
278
|
+
for (let i = 0; i < bundle.nodes.length; i++) {
|
|
279
|
+
const node = bundle.nodes[i];
|
|
280
|
+
|
|
281
|
+
if (node.geometry !== null) {
|
|
282
|
+
meshes.push({ name: node.name, geometry: node.geometry, material: node.material, world: worlds[i] });
|
|
283
|
+
}
|
|
284
|
+
}
|
|
264
285
|
for (const mesh of meshes) {
|
|
265
286
|
|
|
266
287
|
// extract geometries
|
|
@@ -353,7 +374,7 @@ export async function serialize_scene({
|
|
|
353
374
|
|
|
354
375
|
// TODO add scene node graph
|
|
355
376
|
|
|
356
|
-
buffer.writeFloat32Array(mesh.
|
|
377
|
+
buffer.writeFloat32Array(mesh.world, 0, 16);
|
|
357
378
|
}
|
|
358
379
|
|
|
359
380
|
// write geometries
|
|
@@ -280,7 +280,7 @@ export async function verify_gpu_tlas_build(graphics) {
|
|
|
280
280
|
rows.push(row);
|
|
281
281
|
boxes_by_row[row] = box;
|
|
282
282
|
|
|
283
|
-
tlas.instance_add(row
|
|
283
|
+
tlas.instance_add(row);
|
|
284
284
|
}
|
|
285
285
|
|
|
286
286
|
flush(graphics, database);
|
|
@@ -300,7 +300,7 @@ export async function verify_gpu_tlas_build(graphics) {
|
|
|
300
300
|
boxes_by_row[row] = box;
|
|
301
301
|
|
|
302
302
|
meshes.set(row, make_mesh_record(box));
|
|
303
|
-
tlas.instance_update(row
|
|
303
|
+
tlas.instance_update(row);
|
|
304
304
|
}
|
|
305
305
|
|
|
306
306
|
flush(graphics, database);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DIRECTIONAL_LIGHT_STRUCT.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/shader/chunk/light/DIRECTIONAL_LIGHT_STRUCT.js"],"names":[],"mappings":"AAGA,
|
|
1
|
+
{"version":3,"file":"DIRECTIONAL_LIGHT_STRUCT.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/shader/chunk/light/DIRECTIONAL_LIGHT_STRUCT.js"],"names":[],"mappings":"AAGA,oDA6B8B;6BA/BD,4BAA4B"}
|
|
@@ -25,4 +25,9 @@ export const DIRECTIONAL_LIGHT_STRUCT = WebGPUStruct.from({
|
|
|
25
25
|
* Pointer into the shadow table for directional lights
|
|
26
26
|
*/
|
|
27
27
|
shadow_id: u32,
|
|
28
|
+
/**
|
|
29
|
+
* The `transforms` row of the light's entity, one on. `shader_refresh_light_poses` writes the
|
|
30
|
+
* pose above from this row's `global` every frame, after the hierarchy pass.
|
|
31
|
+
*/
|
|
32
|
+
node: u32,
|
|
28
33
|
}, "DirectionalLight").pack();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"POINT_LIGHT_STRUCT.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/shader/chunk/light/POINT_LIGHT_STRUCT.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,iCAFU,YAAY,
|
|
1
|
+
{"version":3,"file":"POINT_LIGHT_STRUCT.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/shader/chunk/light/POINT_LIGHT_STRUCT.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,iCAFU,YAAY,CAgCE;6BApCK,4BAA4B"}
|
|
@@ -30,4 +30,9 @@ export const POINT_LIGHT_STRUCT = WebGPUStruct.from({
|
|
|
30
30
|
* Pointer into the shadow table for point lights
|
|
31
31
|
*/
|
|
32
32
|
shadow_id: u32,
|
|
33
|
+
/**
|
|
34
|
+
* The `transforms` row of the light's entity, one on. `shader_refresh_light_poses` writes the
|
|
35
|
+
* pose above from this row's `global` every frame, after the hierarchy pass.
|
|
36
|
+
*/
|
|
37
|
+
node: u32,
|
|
33
38
|
}, "PointLight").pack();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SPOT_LIGHT_STRUCT.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/shader/chunk/light/SPOT_LIGHT_STRUCT.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,gCAFU,YAAY,
|
|
1
|
+
{"version":3,"file":"SPOT_LIGHT_STRUCT.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/shader/chunk/light/SPOT_LIGHT_STRUCT.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,gCAFU,YAAY,CAgCZ;6BApCmB,4BAA4B"}
|
|
@@ -30,4 +30,9 @@ export const SPOT_LIGHT_STRUCT = WebGPUStruct.from({
|
|
|
30
30
|
* Pointer into the shadow table for the spot lights
|
|
31
31
|
*/
|
|
32
32
|
shadow_id: u32,
|
|
33
|
+
/**
|
|
34
|
+
* The `transforms` row of the light's entity, one on. `shader_refresh_light_poses` writes the
|
|
35
|
+
* pose above from this row's `global` every frame, after the hierarchy pass.
|
|
36
|
+
*/
|
|
37
|
+
node: u32,
|
|
33
38
|
}).pack();
|
|
@@ -10,8 +10,47 @@ export class DirectionalLightShadowmap extends Shadowmap {
|
|
|
10
10
|
*/
|
|
11
11
|
distance_max: number;
|
|
12
12
|
splits: Float32Array;
|
|
13
|
+
/**
|
|
14
|
+
* The row of the light database's `shadow_csm_caster_range` table this map's caster range is
|
|
15
|
+
* published into, claimed by the shadow context with the map; -1 until then.
|
|
16
|
+
*
|
|
17
|
+
* @type {number}
|
|
18
|
+
*/
|
|
19
|
+
caster_row: number;
|
|
20
|
+
/**
|
|
21
|
+
* Per cascade, the nearest caster along the light's axis that the GPU measured — from the
|
|
22
|
+
* world origin, the previous frame's cascade frusta — as the readback delivered it. NaN until
|
|
23
|
+
* the first delivery, which is what {@link caster_range_valid} reads: the readback writes these
|
|
24
|
+
* bytes only when a request lands, and a request that was dropped leaves them as they were.
|
|
25
|
+
*
|
|
26
|
+
* @type {Float32Array}
|
|
27
|
+
*/
|
|
28
|
+
caster_range: Float32Array;
|
|
29
|
+
/**
|
|
30
|
+
* Whether {@link caster_range} has ever been delivered.
|
|
31
|
+
*
|
|
32
|
+
* @type {boolean}
|
|
33
|
+
*/
|
|
34
|
+
caster_range_valid: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* What the accumulate pass measures this frame's casters against: the light's axis and each
|
|
37
|
+
* cascade's four side planes, as {@link update} fitted them. `base` is the shadow context's.
|
|
38
|
+
*
|
|
39
|
+
* `planes` is what is marshalled — a vec4 per plane — and `planes_words` the one buffer those
|
|
40
|
+
* are views over, which {@link update} writes.
|
|
41
|
+
*
|
|
42
|
+
* @type {{z_axis: Float32Array, planes: Float32Array[], planes_words: Float32Array, base: number, cascade_count: number}}
|
|
43
|
+
*/
|
|
44
|
+
caster_settings: {
|
|
45
|
+
z_axis: Float32Array;
|
|
46
|
+
planes: Float32Array[];
|
|
47
|
+
planes_words: Float32Array;
|
|
48
|
+
base: number;
|
|
49
|
+
cascade_count: number;
|
|
50
|
+
};
|
|
13
51
|
update(main_camera: any, scene_ctx: any): void;
|
|
14
52
|
make_record(): any[];
|
|
53
|
+
#private;
|
|
15
54
|
}
|
|
16
55
|
import { Shadowmap } from "./Shadowmap.js";
|
|
17
56
|
//# sourceMappingURL=DirectionalLightShadowmap.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectionalLightShadowmap.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shadow/map/DirectionalLightShadowmap.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DirectionalLightShadowmap.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shadow/map/DirectionalLightShadowmap.js"],"names":[],"mappings":"AAiGA;IACI;;;OAGG;IACH,cAFU,MAAM,CAEC;IAEjB;;;OAGG;IACH,cAFU,MAAM,CAEC;IAEjB,qBAAuD;IAEvD;;;;;OAKG;IACH,YAFU,MAAM,CAEA;IAEhB;;;;;;;OAOG;IACH,cAFU,YAAY,CAEiD;IASvE;;;;OAIG;IACH,oBAFU,OAAO,CAEU;IAE3B;;;;;;;;OAQG;IACH,iBAFU;QAAC,MAAM,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,YAAY,EAAE,CAAC;QAAC,YAAY,EAAE,YAAY,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAC,CAYpH;IAEL,+CAiQC;IAED,qBAYC;;CAEJ;0BA5ZyB,gBAAgB"}
|