@woosh/meep-engine 3.52.0 → 3.53.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/package.json +1 -1
- package/src/engine/ecs/animation/Animation.d.ts +4 -25
- package/src/engine/ecs/animation/Animation.d.ts.map +1 -1
- package/src/engine/ecs/animation/Animation.js +9 -41
- package/src/engine/ecs/ik/IKGoalSystem.d.ts +4 -5
- package/src/engine/ecs/ik/IKGoalSystem.d.ts.map +1 -1
- package/src/engine/ecs/ik/IKGoalSystem.js +4 -6
- package/src/engine/graphics/ecs/mesh/assetTypeByPath.js +1 -1
- package/src/engine/graphics3/AnimationGraphSystem.d.ts +9 -22
- package/src/engine/graphics3/AnimationGraphSystem.d.ts.map +1 -1
- package/src/engine/graphics3/AnimationGraphSystem.js +58 -203
- package/src/engine/graphics3/AnimationSystem.d.ts +7 -18
- package/src/engine/graphics3/AnimationSystem.d.ts.map +1 -1
- package/src/engine/graphics3/AnimationSystem.js +62 -243
- package/src/engine/graphics3/FoliageWindSystem.d.ts +67 -0
- package/src/engine/graphics3/FoliageWindSystem.d.ts.map +1 -0
- package/src/engine/graphics3/FoliageWindSystem.js +257 -0
- package/src/engine/graphics3/GPUFluidSystem.d.ts +7 -0
- package/src/engine/graphics3/GPUFluidSystem.d.ts.map +1 -1
- package/src/engine/graphics3/GPUFluidSystem.js +39 -1
- package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts +0 -1
- package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts.map +1 -1
- package/src/engine/graphics3/GPUParticleEmitterSystem.js +19 -5
- package/src/engine/graphics3/animation/AnimationClips.d.ts +107 -13
- package/src/engine/graphics3/animation/AnimationClips.d.ts.map +1 -1
- package/src/engine/graphics3/animation/AnimationClips.js +207 -10
- package/src/engine/graphics3/animation/AnimationClipsSink.d.ts +89 -0
- package/src/engine/graphics3/animation/AnimationClipsSink.d.ts.map +1 -0
- package/src/engine/graphics3/animation/AnimationClipsSink.js +205 -0
- package/src/engine/graphics3/animation/FoliageWindRigs.d.ts +43 -0
- package/src/engine/graphics3/animation/FoliageWindRigs.d.ts.map +1 -0
- package/src/engine/graphics3/animation/FoliageWindRigs.js +69 -0
- package/src/engine/graphics3/animation/write_clip_playback.d.ts +17 -11
- package/src/engine/graphics3/animation/write_clip_playback.d.ts.map +1 -1
- package/src/engine/graphics3/animation/write_clip_playback.js +36 -27
- package/src/engine/graphics3/decal/GPUDecalRenderer.d.ts.map +1 -1
- package/src/engine/graphics3/decal/GPUDecalRenderer.js +8 -6
- package/src/engine/graphics3/decal/shader_decal_composite.d.ts.map +1 -1
- package/src/engine/graphics3/decal/shader_decal_composite.js +11 -5
- package/src/engine/graphics3/pose/collect_entity_playbacks.d.ts +7 -7
- package/src/engine/graphics3/pose/collect_entity_playbacks.d.ts.map +1 -1
- package/src/engine/graphics3/pose/collect_entity_playbacks.js +14 -15
- package/src/engine/graphics3/prefab/Prefab.d.ts +6 -0
- package/src/engine/graphics3/prefab/Prefab.d.ts.map +1 -1
- package/src/engine/graphics3/prefab/Prefab.js +169 -162
- package/src/engine/graphics3/prefab/prefab_compile.d.ts.map +1 -1
- package/src/engine/graphics3/prefab/prefab_compile.js +369 -334
- package/src/engine/graphics3/prefab/prefab_instantiate.d.ts.map +1 -1
- package/src/engine/graphics3/prefab/prefab_instantiate.js +43 -2
- package/src/engine/graphics3/terrain/chunk_terrain_material_surface.js +2 -2
- package/src/engine/physics/ecs/ContactProbeSystem.d.ts +2 -3
- package/src/engine/physics/ecs/ContactProbeSystem.d.ts.map +1 -1
- package/src/engine/physics/ecs/ContactProbeSystem.js +2 -4
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
- package/src/engine/sound/simulation/PROBE_PLACEMENT.md +4 -4
- package/src/engine/sound/simulation/README.md +1 -1
- package/src/engine/sound/simulation/probe/bakeProbeField.d.ts +22 -8
- package/src/engine/sound/simulation/probe/bakeProbeField.d.ts.map +1 -1
- package/src/engine/sound/simulation/probe/bakeProbeField.js +60 -15
- package/src/engine/sound/simulation/probe/bakeProbeReflectors.d.ts.map +1 -1
- package/src/engine/sound/simulation/probe/bakeProbeReflectors.js +19 -23
- package/src/engine/sound/simulation/probe/probe_sdf_grid.d.ts +63 -17
- package/src/engine/sound/simulation/probe/probe_sdf_grid.d.ts.map +1 -1
- package/src/engine/sound/simulation/probe/probe_sdf_grid.js +67 -17
- package/src/generation/foliage/FOLIAGE_DESIGN.md +318 -0
- package/src/generation/foliage/FOLIAGE_PLAN.md +198 -0
- package/src/generation/foliage/animation/build_tree_wind_rig.d.ts +20 -0
- package/src/generation/foliage/animation/build_tree_wind_rig.d.ts.map +1 -0
- package/src/generation/foliage/animation/build_tree_wind_rig.js +108 -0
- package/src/generation/foliage/asset/TreeAsset.d.ts +86 -0
- package/src/generation/foliage/asset/TreeAsset.d.ts.map +1 -0
- package/src/generation/foliage/asset/TreeAsset.js +111 -0
- package/src/generation/foliage/asset/TreeLODAsset.d.ts +115 -0
- package/src/generation/foliage/asset/TreeLODAsset.d.ts.map +1 -0
- package/src/generation/foliage/asset/TreeLODAsset.js +346 -0
- package/src/generation/foliage/asset/generate_tree.d.ts +15 -0
- package/src/generation/foliage/asset/generate_tree.d.ts.map +1 -0
- package/src/generation/foliage/asset/generate_tree.js +93 -0
- package/src/generation/foliage/asset/place_tree.d.ts +82 -0
- package/src/generation/foliage/asset/place_tree.d.ts.map +1 -0
- package/src/generation/foliage/asset/place_tree.js +194 -0
- package/src/generation/foliage/config/BarkMaterialConfig.d.ts +120 -0
- package/src/generation/foliage/config/BarkMaterialConfig.d.ts.map +1 -0
- package/src/generation/foliage/config/BarkMaterialConfig.js +250 -0
- package/src/generation/foliage/config/BranchLevelConfig.d.ts +288 -0
- package/src/generation/foliage/config/BranchLevelConfig.d.ts.map +1 -0
- package/src/generation/foliage/config/BranchLevelConfig.js +536 -0
- package/src/generation/foliage/config/CrownConfig.d.ts +100 -0
- package/src/generation/foliage/config/CrownConfig.d.ts.map +1 -0
- package/src/generation/foliage/config/CrownConfig.js +186 -0
- package/src/generation/foliage/config/CrownEnvelopeType.d.ts +16 -0
- package/src/generation/foliage/config/CrownEnvelopeType.d.ts.map +1 -0
- package/src/generation/foliage/config/CrownEnvelopeType.js +17 -0
- package/src/generation/foliage/config/FoliageCardType.d.ts +12 -0
- package/src/generation/foliage/config/FoliageCardType.d.ts.map +1 -0
- package/src/generation/foliage/config/FoliageCardType.js +18 -0
- package/src/generation/foliage/config/FoliageConfig.d.ts +151 -0
- package/src/generation/foliage/config/FoliageConfig.d.ts.map +1 -0
- package/src/generation/foliage/config/FoliageConfig.js +283 -0
- package/src/generation/foliage/config/FoliageMaterialConfig.d.ts +90 -0
- package/src/generation/foliage/config/FoliageMaterialConfig.d.ts.map +1 -0
- package/src/generation/foliage/config/FoliageMaterialConfig.js +181 -0
- package/src/generation/foliage/config/PhyllotaxisMode.d.ts +13 -0
- package/src/generation/foliage/config/PhyllotaxisMode.d.ts.map +1 -0
- package/src/generation/foliage/config/PhyllotaxisMode.js +20 -0
- package/src/generation/foliage/config/TreeLODConfig.d.ts +87 -0
- package/src/generation/foliage/config/TreeLODConfig.d.ts.map +1 -0
- package/src/generation/foliage/config/TreeLODConfig.js +211 -0
- package/src/generation/foliage/config/TreePreset.d.ts +16 -0
- package/src/generation/foliage/config/TreePreset.d.ts.map +1 -0
- package/src/generation/foliage/config/TreePreset.js +17 -0
- package/src/generation/foliage/config/TreeSpeciesConfig.d.ts +109 -0
- package/src/generation/foliage/config/TreeSpeciesConfig.d.ts.map +1 -0
- package/src/generation/foliage/config/TreeSpeciesConfig.js +400 -0
- package/src/generation/foliage/config/TreeWindConfig.d.ts +84 -0
- package/src/generation/foliage/config/TreeWindConfig.d.ts.map +1 -0
- package/src/generation/foliage/config/TreeWindConfig.js +157 -0
- package/src/generation/foliage/index.d.ts +38 -0
- package/src/generation/foliage/index.d.ts.map +1 -0
- package/src/generation/foliage/index.js +43 -0
- package/src/generation/foliage/material/make_bark_material.d.ts +37 -0
- package/src/generation/foliage/material/make_bark_material.d.ts.map +1 -0
- package/src/generation/foliage/material/make_bark_material.js +802 -0
- package/src/generation/foliage/material/make_foliage_material.d.ts +14 -0
- package/src/generation/foliage/material/make_foliage_material.d.ts.map +1 -0
- package/src/generation/foliage/material/make_foliage_material.js +359 -0
- package/src/generation/foliage/mesh/branch_collar_project.d.ts +42 -0
- package/src/generation/foliage/mesh/branch_collar_project.d.ts.map +1 -0
- package/src/generation/foliage/mesh/branch_collar_project.js +203 -0
- package/src/generation/foliage/mesh/branch_ring_triangulate.d.ts +35 -0
- package/src/generation/foliage/mesh/branch_ring_triangulate.d.ts.map +1 -0
- package/src/generation/foliage/mesh/branch_ring_triangulate.js +72 -0
- package/src/generation/foliage/mesh/foliage_collect_attachments.d.ts +80 -0
- package/src/generation/foliage/mesh/foliage_collect_attachments.d.ts.map +1 -0
- package/src/generation/foliage/mesh/foliage_collect_attachments.js +502 -0
- package/src/generation/foliage/mesh/tree_mesh_apply_canopy_ao.d.ts +19 -0
- package/src/generation/foliage/mesh/tree_mesh_apply_canopy_ao.d.ts.map +1 -0
- package/src/generation/foliage/mesh/tree_mesh_apply_canopy_ao.js +150 -0
- package/src/generation/foliage/mesh/tree_mesh_build_bark.d.ts +55 -0
- package/src/generation/foliage/mesh/tree_mesh_build_bark.d.ts.map +1 -0
- package/src/generation/foliage/mesh/tree_mesh_build_bark.js +1047 -0
- package/src/generation/foliage/mesh/tree_mesh_build_foliage.d.ts +21 -0
- package/src/generation/foliage/mesh/tree_mesh_build_foliage.d.ts.map +1 -0
- package/src/generation/foliage/mesh/tree_mesh_build_foliage.js +415 -0
- package/src/generation/foliage/presets/make_tree_species_preset.d.ts +13 -0
- package/src/generation/foliage/presets/make_tree_species_preset.d.ts.map +1 -0
- package/src/generation/foliage/presets/make_tree_species_preset.js +837 -0
- package/src/generation/foliage/skeleton/TreeSkeleton.d.ts +443 -0
- package/src/generation/foliage/skeleton/TreeSkeleton.d.ts.map +1 -0
- package/src/generation/foliage/skeleton/TreeSkeleton.js +1100 -0
- package/src/generation/foliage/skeleton/crown_envelope_evaluate.d.ts +27 -0
- package/src/generation/foliage/skeleton/crown_envelope_evaluate.d.ts.map +1 -0
- package/src/generation/foliage/skeleton/crown_envelope_evaluate.js +121 -0
- package/src/generation/foliage/skeleton/spine_frame_double_reflection.d.ts +32 -0
- package/src/generation/foliage/skeleton/spine_frame_double_reflection.d.ts.map +1 -0
- package/src/generation/foliage/skeleton/spine_frame_double_reflection.js +87 -0
- package/src/generation/foliage/skeleton/tree_skeleton_assign_skin_joints.d.ts +33 -0
- package/src/generation/foliage/skeleton/tree_skeleton_assign_skin_joints.d.ts.map +1 -0
- package/src/generation/foliage/skeleton/tree_skeleton_assign_skin_joints.js +205 -0
- package/src/generation/foliage/skeleton/tree_skeleton_compute_pipe_radii.d.ts +14 -0
- package/src/generation/foliage/skeleton/tree_skeleton_compute_pipe_radii.d.ts.map +1 -0
- package/src/generation/foliage/skeleton/tree_skeleton_compute_pipe_radii.js +179 -0
- package/src/generation/foliage/skeleton/tree_skeleton_grow.d.ts +18 -0
- package/src/generation/foliage/skeleton/tree_skeleton_grow.d.ts.map +1 -0
- package/src/generation/foliage/skeleton/tree_skeleton_grow.js +1104 -0
- package/src/shade/playground/additive_blending/index.html +197 -0
- package/src/shade/playground/additive_blending/main.d.ts +2 -0
- package/src/shade/playground/additive_blending/main.d.ts.map +1 -0
- package/src/shade/playground/additive_blending/main.js +529 -0
- package/src/shade/playground/foliage_wind/README.md +18 -0
- package/src/shade/playground/foliage_wind/foliage_world.d.ts +127 -0
- package/src/shade/playground/foliage_wind/foliage_world.d.ts.map +1 -0
- package/src/shade/playground/foliage_wind/foliage_world.js +593 -0
- package/src/shade/playground/foliage_wind/index.html +254 -0
- package/src/shade/playground/foliage_wind/main.d.ts +2 -0
- package/src/shade/playground/foliage_wind/main.d.ts.map +1 -0
- package/src/shade/playground/foliage_wind/main.js +263 -0
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +45 -16
- package/src/shade/renderer/animation/ADDITIVE_BLENDING_PLAN.md +145 -0
- package/src/shade/renderer/animation/ANIMATION_DATABASE_SPEC.d.ts +9 -1
- package/src/shade/renderer/animation/ANIMATION_DATABASE_SPEC.d.ts.map +1 -1
- package/src/shade/renderer/animation/ANIMATION_DATABASE_SPEC.js +53 -1
- package/src/shade/renderer/animation/ANIMATION_FOLIAGE_JOINT_STRUCT.d.ts +8 -0
- package/src/shade/renderer/animation/ANIMATION_FOLIAGE_JOINT_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/animation/ANIMATION_FOLIAGE_JOINT_STRUCT.js +71 -0
- package/src/shade/renderer/animation/ANIMATION_FOLIAGE_RIG_STRUCT.d.ts +11 -0
- package/src/shade/renderer/animation/ANIMATION_FOLIAGE_RIG_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/animation/ANIMATION_FOLIAGE_RIG_STRUCT.js +32 -0
- package/src/shade/renderer/animation/GPUAnimationManager.d.ts +30 -3
- package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
- package/src/shade/renderer/animation/GPUAnimationManager.js +532 -79
- package/src/shade/renderer/animation/POSE_ACCUMULATOR_LAYOUT.d.ts +19 -12
- package/src/shade/renderer/animation/POSE_ACCUMULATOR_LAYOUT.d.ts.map +1 -1
- package/src/shade/renderer/animation/POSE_ACCUMULATOR_LAYOUT.js +20 -13
- package/src/shade/renderer/animation/ShadeAnimationClip.d.ts +35 -8
- package/src/shade/renderer/animation/ShadeAnimationClip.d.ts.map +1 -1
- package/src/shade/renderer/animation/ShadeAnimationClip.js +433 -2
- package/src/shade/renderer/animation/chunk_pose_accumulator.d.ts.map +1 -1
- package/src/shade/renderer/animation/chunk_pose_accumulator.js +40 -32
- package/src/shade/renderer/animation/foliage/FoliageWindJoint.d.ts +97 -0
- package/src/shade/renderer/animation/foliage/FoliageWindJoint.d.ts.map +1 -0
- package/src/shade/renderer/animation/foliage/FoliageWindJoint.js +161 -0
- package/src/shade/renderer/animation/foliage/FoliageWindRig.d.ts +65 -0
- package/src/shade/renderer/animation/foliage/FoliageWindRig.d.ts.map +1 -0
- package/src/shade/renderer/animation/foliage/FoliageWindRig.js +89 -0
- package/src/shade/renderer/animation/foliage/chunk_foliage_wind_step.d.ts +19 -0
- package/src/shade/renderer/animation/foliage/chunk_foliage_wind_step.d.ts.map +1 -0
- package/src/shade/renderer/animation/foliage/chunk_foliage_wind_step.js +143 -0
- package/src/shade/renderer/animation/foliage/shader_foliage_wind_apply.d.ts +14 -0
- package/src/shade/renderer/animation/foliage/shader_foliage_wind_apply.d.ts.map +1 -0
- package/src/shade/renderer/animation/foliage/shader_foliage_wind_apply.js +116 -0
- package/src/shade/renderer/animation/pose/pose_evaluate_local.d.ts.map +1 -1
- package/src/shade/renderer/animation/pose/pose_evaluate_local.js +39 -29
- package/src/shade/renderer/animation/shader_animation_pose_resolve.js +37 -37
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +2 -2
- package/src/shade/renderer/extension/RenderExtension.d.ts +7 -0
- package/src/shade/renderer/extension/RenderExtension.d.ts.map +1 -1
- package/src/shade/renderer/extension/RenderExtension.js +9 -0
- package/src/shade/renderer/extension/RenderExtensionRegistry.d.ts +6 -0
- package/src/shade/renderer/extension/RenderExtensionRegistry.d.ts.map +1 -1
- package/src/shade/renderer/extension/RenderExtensionRegistry.js +15 -0
- package/src/shade/renderer/fluid/GPUFluidCascade.d.ts +7 -0
- package/src/shade/renderer/fluid/GPUFluidCascade.d.ts.map +1 -1
- package/src/shade/renderer/fluid/GPUFluidCascade.js +15 -0
- package/src/shade/renderer/fluid/GPUFluidCascadeStack.d.ts +7 -0
- package/src/shade/renderer/fluid/GPUFluidCascadeStack.d.ts.map +1 -1
- package/src/shade/renderer/fluid/GPUFluidCascadeStack.js +11 -0
- package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_parent.d.ts.map +1 -1
- package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_parent.js +51 -48
- package/src/shade/renderer/fluid/mac/FluidMacPasses.d.ts +6 -0
- package/src/shade/renderer/fluid/mac/FluidMacPasses.d.ts.map +1 -1
- package/src/shade/renderer/fluid/mac/FluidMacPasses.js +16 -0
- package/src/shade/renderer/fluid/mac/chunk_fluid_mac_seams.d.ts.map +1 -1
- package/src/shade/renderer/fluid/mac/chunk_fluid_mac_seams.js +15 -3
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_lattice_corners.d.ts.map +1 -1
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_lattice_corners.js +102 -96
- package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_correct.js +12 -12
- package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_predict.js +12 -12
- package/src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.d.ts +7 -0
- package/src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.d.ts.map +1 -1
- package/src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.js +16 -0
- package/src/shade/renderer/fluid/publish/FluidWindPublish.d.ts +7 -0
- package/src/shade/renderer/fluid/publish/FluidWindPublish.d.ts.map +1 -1
- package/src/shade/renderer/fluid/publish/FluidWindPublish.js +10 -0
- package/src/shade/renderer/geometry/bvh/GPUBLASRefitBatch.js +2 -2
- package/src/shade/renderer/loader/SceneBundle.d.ts +7 -0
- package/src/shade/renderer/loader/SceneBundle.d.ts.map +1 -1
- package/src/shade/renderer/loader/SceneBundle.js +119 -111
- package/src/shade/renderer/material/standard/fragment_gbuffer.d.ts +4 -0
- package/src/shade/renderer/material/standard/fragment_gbuffer.d.ts.map +1 -1
- package/src/shade/renderer/material/standard/fragment_gbuffer.js +6 -5
- package/src/shade/renderer/object_property/chunk_write_object_property_node3d.d.ts +8 -7
- package/src/shade/renderer/object_property/chunk_write_object_property_node3d.d.ts.map +1 -1
- package/src/shade/renderer/object_property/chunk_write_object_property_node3d.js +9 -8
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
- package/src/shade/renderer/particles/GPUParticleSystem.js +3 -1
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.js +9 -4
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader.js +9 -7
- package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment.js +15 -7
- package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.js +6 -4
- package/src/shade/renderer/rasterize/native/oit/oit_resolve_fragment_body.js +3 -3
- package/src/shade/renderer/rasterize/native/oit/shader_oit_generate_moments.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/oit/shader_oit_generate_moments.js +8 -5
- package/src/shade/renderer/rasterize/native/viz/viz_rasterization_alpha_tested_pass_descriptor.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/viz/viz_rasterization_alpha_tested_pass_descriptor.js +4 -3
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.js +1 -1
- package/src/shade/renderer/texture/SAMPLER_ANISOTROPIC_CLAMP.d.ts +9 -0
- package/src/shade/renderer/texture/SAMPLER_ANISOTROPIC_CLAMP.d.ts.map +1 -0
- package/src/shade/renderer/texture/SAMPLER_ANISOTROPIC_CLAMP.js +17 -0
- package/src/shade/renderer/texture/SAMPLER_LINEAR_UPSCALE.d.ts +8 -0
- package/src/shade/renderer/texture/SAMPLER_LINEAR_UPSCALE.d.ts.map +1 -1
- package/src/shade/renderer/texture/SAMPLER_LINEAR_UPSCALE.js +28 -20
- package/src/shade/renderer/texture/SAMPLER_TRILINEAR_CLAMP.d.ts +8 -0
- package/src/shade/renderer/texture/SAMPLER_TRILINEAR_CLAMP.d.ts.map +1 -0
- package/src/shade/renderer/texture/SAMPLER_TRILINEAR_CLAMP.js +15 -0
- package/src/shade/renderer/view/chunk_view_mip_bias.d.ts +21 -0
- package/src/shade/renderer/view/chunk_view_mip_bias.d.ts.map +1 -0
- package/src/shade/renderer/view/chunk_view_mip_bias.js +44 -0
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +1 -1
- package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/WGSLLanguageCore.js +105 -26
- package/src/engine/graphics/composit/CompositingStages.d.ts +0 -6
- package/src/engine/graphics/composit/CompositingStages.d.ts.map +0 -1
- package/src/engine/graphics/composit/CompositingStages.js +0 -8
- package/src/engine/graphics/geometry/buffered/computeBufferAttributeHash.d.ts +0 -7
- package/src/engine/graphics/geometry/buffered/computeBufferAttributeHash.d.ts.map +0 -1
- package/src/engine/graphics/geometry/buffered/computeBufferAttributeHash.js +0 -24
- package/src/engine/graphics/geometry/buffered/computeGeometryBoundingSphereMiniball.d.ts +0 -8
- package/src/engine/graphics/geometry/buffered/computeGeometryBoundingSphereMiniball.d.ts.map +0 -1
- package/src/engine/graphics/geometry/buffered/computeGeometryBoundingSphereMiniball.js +0 -17
- package/src/engine/graphics/geometry/buffered/computeGeometryEquality.d.ts +0 -8
- package/src/engine/graphics/geometry/buffered/computeGeometryEquality.d.ts.map +0 -1
- package/src/engine/graphics/geometry/buffered/computeGeometryEquality.js +0 -60
- package/src/engine/graphics/geometry/buffered/computeGeometryHash.d.ts +0 -7
- package/src/engine/graphics/geometry/buffered/computeGeometryHash.d.ts.map +0 -1
- package/src/engine/graphics/geometry/buffered/computeGeometryHash.js +0 -26
- package/src/engine/graphics/geometry/buffered/compute_buffer_geometry_byte_size.d.ts +0 -7
- package/src/engine/graphics/geometry/buffered/compute_buffer_geometry_byte_size.d.ts.map +0 -1
- package/src/engine/graphics/geometry/buffered/compute_buffer_geometry_byte_size.js +0 -23
- package/src/engine/graphics/geometry/instancing/geometry_copy.d.ts +0 -7
- package/src/engine/graphics/geometry/instancing/geometry_copy.d.ts.map +0 -1
- package/src/engine/graphics/geometry/instancing/geometry_copy.js +0 -15
- package/src/engine/graphics/geometry/instancing/rewriteMaterial.d.ts +0 -2
- package/src/engine/graphics/geometry/instancing/rewriteMaterial.d.ts.map +0 -1
- package/src/engine/graphics/geometry/instancing/rewriteMaterial.js +0 -57
- package/src/engine/graphics/geometry/ribbon/Quad.d.ts +0 -96
- package/src/engine/graphics/geometry/ribbon/Quad.d.ts.map +0 -1
- package/src/engine/graphics/geometry/ribbon/Quad.js +0 -213
- package/src/engine/graphics/geometry/ribbon/copyAttributeV3.d.ts +0 -9
- package/src/engine/graphics/geometry/ribbon/copyAttributeV3.d.ts.map +0 -1
- package/src/engine/graphics/geometry/ribbon/copyAttributeV3.js +0 -12
- package/src/engine/graphics/geometry/ribbon/copyAttributeValue.d.ts +0 -10
- package/src/engine/graphics/geometry/ribbon/copyAttributeValue.d.ts.map +0 -1
- package/src/engine/graphics/geometry/ribbon/copyAttributeValue.js +0 -17
- package/src/engine/graphics/geometry/ribbon/equalAttributeV3.d.ts +0 -10
- package/src/engine/graphics/geometry/ribbon/equalAttributeV3.d.ts.map +0 -1
- package/src/engine/graphics/geometry/ribbon/equalAttributeV3.js +0 -13
- package/src/engine/graphics/geometry/ribbon/equalAttributeValue.d.ts +0 -11
- package/src/engine/graphics/geometry/ribbon/equalAttributeValue.d.ts.map +0 -1
- package/src/engine/graphics/geometry/ribbon/equalAttributeValue.js +0 -24
- package/src/engine/graphics/geometry/ribbon/rotateRibbon.d.ts +0 -6
- package/src/engine/graphics/geometry/ribbon/rotateRibbon.d.ts.map +0 -1
- package/src/engine/graphics/geometry/ribbon/rotateRibbon.js +0 -37
- package/src/engine/graphics/geometry/ribbon/updateTipPosition.d.ts +0 -9
- package/src/engine/graphics/geometry/ribbon/updateTipPosition.d.ts.map +0 -1
- package/src/engine/graphics/geometry/ribbon/updateTipPosition.js +0 -52
- package/src/engine/graphics/geometry/skining/computeSkinnedMeshVertices.d.ts +0 -8
- package/src/engine/graphics/geometry/skining/computeSkinnedMeshVertices.d.ts.map +0 -1
- package/src/engine/graphics/geometry/skining/computeSkinnedMeshVertices.js +0 -54
- package/src/engine/graphics/render/RenderPassType.d.ts +0 -6
- package/src/engine/graphics/render/RenderPassType.d.ts.map +0 -1
- package/src/engine/graphics/render/RenderPassType.js +0 -8
- package/src/engine/graphics/render/layers/RenderLayer.d.ts +0 -78
- package/src/engine/graphics/render/layers/RenderLayer.d.ts.map +0 -1
- package/src/engine/graphics/render/layers/RenderLayer.js +0 -95
- package/src/engine/graphics/render/layers/RenderLayerManager.d.ts +0 -72
- package/src/engine/graphics/render/layers/RenderLayerManager.d.ts.map +0 -1
- package/src/engine/graphics/render/layers/RenderLayerManager.js +0 -160
- package/src/engine/graphics/render/layers/RenderLayerManagerState.d.ts +0 -18
- package/src/engine/graphics/render/layers/RenderLayerManagerState.d.ts.map +0 -1
- package/src/engine/graphics/render/layers/RenderLayerManagerState.js +0 -48
- package/src/engine/graphics/render/layers/RenderLayerState.d.ts +0 -18
- package/src/engine/graphics/render/layers/RenderLayerState.d.ts.map +0 -1
- package/src/engine/graphics/render/layers/RenderLayerState.js +0 -27
- package/src/engine/graphics/render/layers/RenderLayerUtils.d.ts +0 -8
- package/src/engine/graphics/render/layers/RenderLayerUtils.d.ts.map +0 -1
- package/src/engine/graphics/render/layers/RenderLayerUtils.js +0 -103
- package/src/engine/graphics/render/make_bvh_visibility_builder.d.ts +0 -10
- package/src/engine/graphics/render/make_bvh_visibility_builder.d.ts.map +0 -1
- package/src/engine/graphics/render/make_bvh_visibility_builder.js +0 -64
- package/src/engine/graphics/render/view/CameraViewFlags.d.ts +0 -7
- package/src/engine/graphics/render/view/CameraViewFlags.d.ts.map +0 -1
- package/src/engine/graphics/render/view/CameraViewFlags.js +0 -9
- package/src/engine/graphics/render/visibility/IncrementalDeltaSet.d.ts +0 -143
- package/src/engine/graphics/render/visibility/IncrementalDeltaSet.d.ts.map +0 -1
- package/src/engine/graphics/render/visibility/IncrementalDeltaSet.js +0 -328
- package/src/engine/graphics/render/visibility/VisibilityComputer.d.ts +0 -39
- package/src/engine/graphics/render/visibility/VisibilityComputer.d.ts.map +0 -1
- package/src/engine/graphics/render/visibility/VisibilityComputer.js +0 -80
- package/src/engine/graphics/render/visibility/VisibilityFilter.d.ts +0 -29
- package/src/engine/graphics/render/visibility/VisibilityFilter.d.ts.map +0 -1
- package/src/engine/graphics/render/visibility/VisibilityFilter.js +0 -37
- package/src/engine/graphics3/animation/write_graph_playback.d.ts +0 -24
- package/src/engine/graphics3/animation/write_graph_playback.d.ts.map +0 -1
- package/src/engine/graphics3/animation/write_graph_playback.js +0 -48
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GPUFluidPressureSolve.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.js"],"names":[],"mappings":"AAwEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH;
|
|
1
|
+
{"version":3,"file":"GPUFluidPressureSolve.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.js"],"names":[],"mappings":"AAwEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH;IACI;;;;;OAKG;IACH,iCAFW,OAAO,6CAA6C,EAAE,eAAe,QAU/E;IAiKD;;;;OAIG;IACH,+BAJW;QAAC,KAAK,EAAE,qBAAqB,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,wBAAwB,CAAA;KAAC,4BAE5F;QAAC,OAAO,EAAE,sBAAsB,CAAA;KAAC,QAI3C;IAzID;;;;OAIG;IACH,6BAEC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH;QAdsG,KAAK,EAAhG,OAAO,8DAA8D,EAAE,UAAU;QAC9D,QAAQ;QAEiG,MAAM,EAAlI;YAAC,MAAM,EAAE,UAAU,MAAM,CAAC,CAAC;YAAC,cAAc,EAAE,UAAU,MAAM,CAAC,CAAC;YAAC,IAAI,EAAE,UAAU,MAAM,CAAC,CAAC;YAAC,MAAM,EAAE,UAAU,MAAM,CAAC,CAAA;SAAC;QAG/F,GAAG;QACH,KAAK;QACR,CAAC,EAAjB,MAAM;QACa,cAAc;QAGjB,MAAM,EAAtB,MAAM;aAMhB;IAED;;;;;;;OAOG;IACH,yBAHW,sBAAsB,UACtB,wBAAwB,QASlC;IAED;;;;;;OAMG;IACH,oBAHW,sBAAsB,UACtB,wBAAwB,QASlC;IAED;;;;;;;;;;;;;OAaG;IACH;QATsG,KAAK,EAAhG,OAAO,8DAA8D,EAAE,UAAU;QAC9D,QAAQ;QACiG,MAAM,EAAlI;YAAC,MAAM,EAAE,UAAU,MAAM,CAAC,CAAC;YAAC,cAAc,EAAE,UAAU,MAAM,CAAC,CAAC;YAAC,IAAI,EAAE,UAAU,MAAM,CAAC,CAAC;YAAC,MAAM,EAAE,UAAU,MAAM,CAAC,CAAA;SAAC;QAC/F,GAAG;QACH,KAAK;QACR,CAAC,EAAjB,MAAM;QACa,cAAc;QACjB,MAAM,EAAtB,MAAM;aAMhB;IA0RD;;OAEG;IACH,gBA0BC;;CACJ;qCA7gBY,OAAO,2CAA2C,EAAE,sBAAsB;;;;;uCAO1E;IAAC,QAAQ,YAAY;IAAC,MAAM,EAAE;QAAC,MAAM,EAAE,UAAU,MAAM,CAAC,CAAC;QAAC,cAAc,EAAE,UAAU,MAAM,CAAC,CAAC;QAAC,IAAI,EAAE,UAAU,MAAM,CAAC,CAAC;QAAC,MAAM,EAAE,UAAU,MAAM,CAAC,CAAA;KAAC,CAAC;IAAC,GAAG,YAAY;IAAC,KAAK,YAAY;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,YAAY;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAC"}
|
|
@@ -101,6 +101,22 @@ function set_linear(corner_storage, period, size) {
|
|
|
101
101
|
* the far field, a parent with no window, reads 0.
|
|
102
102
|
*/
|
|
103
103
|
export class GPUFluidPressureSolve {
|
|
104
|
+
/**
|
|
105
|
+
* Offer the compute pipelines the multigrid and SOR pressure solvers dispatch — see
|
|
106
|
+
* {@link PipelineEnquiry}.
|
|
107
|
+
*
|
|
108
|
+
* @param {import("../../../device/pipeline/PipelineEnquiry.js").PipelineEnquiry} enquiry
|
|
109
|
+
*/
|
|
110
|
+
static enquirePipelines(enquiry) {
|
|
111
|
+
enquiry.compute.push(
|
|
112
|
+
shader_fluid_mg_smooth.pipeline,
|
|
113
|
+
shader_fluid_mg_residual_restrict.pipeline,
|
|
114
|
+
shader_fluid_mg_coarsest.pipeline,
|
|
115
|
+
shader_fluid_mg_level0_weights.pipeline,
|
|
116
|
+
shader_fluid_mg_coarse_weights.pipeline,
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
|
|
104
120
|
/** @type {GPUDevice|null} */
|
|
105
121
|
#device = null;
|
|
106
122
|
/** @type {number[][]} the cells of every level, finest first */
|
|
@@ -12,6 +12,13 @@
|
|
|
12
12
|
* cannot change what an earlier one reads, and nothing is allocated once the first has been recorded.
|
|
13
13
|
*/
|
|
14
14
|
export class FluidWindPublish {
|
|
15
|
+
/**
|
|
16
|
+
* Offer the compute pipeline that publishes a cascade's tile into the wind field — see
|
|
17
|
+
* {@link PipelineEnquiry}.
|
|
18
|
+
*
|
|
19
|
+
* @param {import("../../../device/pipeline/PipelineEnquiry.js").PipelineEnquiry} enquiry
|
|
20
|
+
*/
|
|
21
|
+
static enquirePipelines(enquiry: import("../../../device/pipeline/PipelineEnquiry.js").PipelineEnquiry): void;
|
|
15
22
|
/**
|
|
16
23
|
* Write a cascade's tile from its velocity: the deviation from `far_velocity` at every cell centre
|
|
17
24
|
* and the skirt around them. The tile's content is the cascade's window: `atlas.content_size` is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FluidWindPublish.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/fluid/publish/FluidWindPublish.js"],"names":[],"mappings":"AAQA;;;;GAIG;AAEH;;;;;;;GAOG;AACH;
|
|
1
|
+
{"version":3,"file":"FluidWindPublish.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/fluid/publish/FluidWindPublish.js"],"names":[],"mappings":"AAQA;;;;GAIG;AAEH;;;;;;;GAOG;AACH;IACI;;;;;OAKG;IACH,iCAFW,OAAO,6CAA6C,EAAE,eAAe,QAI/E;IAmCD;;;;;;;;;;;;;;;;;;OAkBG;IACH;QAb2C,OAAO,EAAvC,sBAAsB;QACS,QAAQ,EAAvC,qBAAqB;QACM,MAAM,EAAjC,UAAU,MAAM,CAAC;QACU,YAAY,EAAvC,UAAU,MAAM,CAAC;QAED,MAAM,EAAtB,MAAM;QAGyB,YAAY,EAA3C,qBAAqB;QAEG,KAAK,EAA7B,cAAc;QACE,IAAI,EAApB,MAAM;aA6DhB;;CACJ;qCAxIY,OAAO,2CAA2C,EAAE,sBAAsB;oCAC1E,OAAO,0BAA0B,EAAE,qBAAqB;6BACxD,OAAO,uCAAuC,EAAE,cAAc"}
|
|
@@ -21,6 +21,16 @@ import { FLUID_WIND_PUBLISH_GROUP_SIZE, shader_fluid_wind_publish } from "./shad
|
|
|
21
21
|
* cannot change what an earlier one reads, and nothing is allocated once the first has been recorded.
|
|
22
22
|
*/
|
|
23
23
|
export class FluidWindPublish {
|
|
24
|
+
/**
|
|
25
|
+
* Offer the compute pipeline that publishes a cascade's tile into the wind field — see
|
|
26
|
+
* {@link PipelineEnquiry}.
|
|
27
|
+
*
|
|
28
|
+
* @param {import("../../../device/pipeline/PipelineEnquiry.js").PipelineEnquiry} enquiry
|
|
29
|
+
*/
|
|
30
|
+
static enquirePipelines(enquiry) {
|
|
31
|
+
enquiry.compute.push(shader_fluid_wind_publish.pipeline);
|
|
32
|
+
}
|
|
33
|
+
|
|
24
34
|
/** The value of {@link FLUID_MAC_STEP_STRUCT}, rewritten in place; the publish reads the windows and the far field. */
|
|
25
35
|
#step = {
|
|
26
36
|
cells: fluid_cascade_window_value(),
|
|
@@ -55,8 +55,8 @@ const LOOKUP_PAIR_WORDS = 2;
|
|
|
55
55
|
* by call order. A refit recorded across one of those updates would submit a destroyed buffer, and
|
|
56
56
|
* the software device cannot catch it, since it executes nothing at submit.
|
|
57
57
|
*/
|
|
58
|
-
export class GPUBLASRefitBatch {
|
|
59
|
-
|
|
58
|
+
export class GPUBLASRefitBatch {
|
|
59
|
+
|
|
60
60
|
/** @type {GPUDevice} */
|
|
61
61
|
#device;
|
|
62
62
|
|
|
@@ -39,6 +39,13 @@ export class SceneBundle {
|
|
|
39
39
|
* @type {ShadeAnimationClip[]}
|
|
40
40
|
*/
|
|
41
41
|
clips: ShadeAnimationClip[];
|
|
42
|
+
/**
|
|
43
|
+
* Aeroelastic foliage wind rigs extracted from or generated for the asset.
|
|
44
|
+
* Each rig's `root` and each joint's `target` is an index into {@link nodes}.
|
|
45
|
+
*
|
|
46
|
+
* @type {import("../animation/foliage/FoliageWindRig.js").FoliageWindRig[]}
|
|
47
|
+
*/
|
|
48
|
+
foliage_rigs: import("../animation/foliage/FoliageWindRig.js").FoliageWindRig[];
|
|
42
49
|
/**
|
|
43
50
|
* Punctual lights extracted from the asset, each with the index of the node it sits on. A
|
|
44
51
|
* light is not a node and has no place of its own; the node's transform is where it is,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SceneBundle.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/loader/SceneBundle.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AAEH;;;;;;;;;;;;;GAaG;AACH;IACI;;;;OAIG;IACH,OAFU,SAAS,EAAE,CAEV;IAEX;;;;;OAKG;IACH,OAFU,IAAI,EAAE,CAEL;IAEX;;;;;OAKG;IACH,OAFU,kBAAkB,EAAE,CAEnB;IAEX;;;;;;OAMG;IACH,QAFU;QAAC,KAAK,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,EAAE,CAE5B;IAEZ;;;;;;OAMG;IACH,eAHW,SAAS,GACP,MAAM,CAalB;IAED;;;;;OAKG;IACH,0BAFa,YAAY,EAAE,CAsB1B;IAGL;;;OAGG;IACH,wBAFU,OAAO,CAEkB;CANlC;
|
|
1
|
+
{"version":3,"file":"SceneBundle.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/loader/SceneBundle.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AAEH;;;;;;;;;;;;;GAaG;AACH;IACI;;;;OAIG;IACH,OAFU,SAAS,EAAE,CAEV;IAEX;;;;;OAKG;IACH,OAFU,IAAI,EAAE,CAEL;IAEX;;;;;OAKG;IACH,OAFU,kBAAkB,EAAE,CAEnB;IAEX;;;;;OAKG;IACH,cAFU,OAAO,wCAAwC,EAAE,cAAc,EAAE,CAEzD;IAElB;;;;;;OAMG;IACH,QAFU;QAAC,KAAK,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,EAAE,CAE5B;IAEZ;;;;;;OAMG;IACH,eAHW,SAAS,GACP,MAAM,CAalB;IAED;;;;;OAKG;IACH,0BAFa,YAAY,EAAE,CAsB1B;IAGL;;;OAGG;IACH,wBAFU,OAAO,CAEkB;CANlC;wBA5GY,OAAO,gBAAgB,EAAE,SAAS;mBAClC,OAAO,sBAAsB,EAAE,IAAI;iCACnC,OAAO,oCAAoC,EAAE,kBAAkB;oBAC/D,OAAO,yBAAyB,EAAE,KAAK"}
|
|
@@ -1,111 +1,119 @@
|
|
|
1
|
-
import { assert } from "../../../core/assert.js";
|
|
2
|
-
import { m4_multiply } from "../../../core/geom/3d/mat4/m4_multiply.js";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* @typedef {import("./SceneNode.js").SceneNode} SceneNode
|
|
6
|
-
* @typedef {import("../animation/Skin.js").Skin} Skin
|
|
7
|
-
* @typedef {import("../animation/ShadeAnimationClip.js").ShadeAnimationClip} ShadeAnimationClip
|
|
8
|
-
* @typedef {import("../light/model/Light.js").Light} Light
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* What came out of a loader: a model as a flat list of {@link SceneNode}s in pre-order, with the
|
|
13
|
-
* skins, clips and lights the same file carried, each addressing nodes by index.
|
|
14
|
-
*
|
|
15
|
-
* Not glTF-specific by design — the bundle describes "what a loader produced", not "what was in
|
|
16
|
-
* a file", and every loader ({@link load_gltf}, {@link load_usd}, {@link deserialize_scene})
|
|
17
|
-
* produces one. It is pure data with no lifecycle: a model compiles from it once into a
|
|
18
|
-
* {@link Prefab} (`prefab_compile`), and a prefab is what gets placed — as entities, each holding
|
|
19
|
-
* a row — however many times the model appears. The bundle is read by that compile and never
|
|
20
|
-
* written, so one bundle is shared by every placement, which is what the asset manager hands out.
|
|
21
|
-
*
|
|
22
|
-
* Pre-order is the one structural promise: a node's parent has a lower index. {@link add_node}
|
|
23
|
-
* refuses anything else, so a reader composes world transforms in a single forward pass.
|
|
24
|
-
*/
|
|
25
|
-
export class SceneBundle {
|
|
26
|
-
/**
|
|
27
|
-
* Every node of the model, parents before children.
|
|
28
|
-
*
|
|
29
|
-
* @type {SceneNode[]}
|
|
30
|
-
*/
|
|
31
|
-
nodes = [];
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Skins extracted from the asset. A skin's `joints` and `meshes` are indices into
|
|
35
|
-
* {@link nodes}. Empty if the asset has no skinned meshes.
|
|
36
|
-
*
|
|
37
|
-
* @type {Skin[]}
|
|
38
|
-
*/
|
|
39
|
-
skins = [];
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Animation clips extracted from the asset. Each channel's `target` is an index into
|
|
43
|
-
* {@link nodes}. Empty if the asset has no animations.
|
|
44
|
-
*
|
|
45
|
-
* @type {ShadeAnimationClip[]}
|
|
46
|
-
*/
|
|
47
|
-
clips = [];
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* @
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
1
|
+
import { assert } from "../../../core/assert.js";
|
|
2
|
+
import { m4_multiply } from "../../../core/geom/3d/mat4/m4_multiply.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @typedef {import("./SceneNode.js").SceneNode} SceneNode
|
|
6
|
+
* @typedef {import("../animation/Skin.js").Skin} Skin
|
|
7
|
+
* @typedef {import("../animation/ShadeAnimationClip.js").ShadeAnimationClip} ShadeAnimationClip
|
|
8
|
+
* @typedef {import("../light/model/Light.js").Light} Light
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* What came out of a loader: a model as a flat list of {@link SceneNode}s in pre-order, with the
|
|
13
|
+
* skins, clips and lights the same file carried, each addressing nodes by index.
|
|
14
|
+
*
|
|
15
|
+
* Not glTF-specific by design — the bundle describes "what a loader produced", not "what was in
|
|
16
|
+
* a file", and every loader ({@link load_gltf}, {@link load_usd}, {@link deserialize_scene})
|
|
17
|
+
* produces one. It is pure data with no lifecycle: a model compiles from it once into a
|
|
18
|
+
* {@link Prefab} (`prefab_compile`), and a prefab is what gets placed — as entities, each holding
|
|
19
|
+
* a row — however many times the model appears. The bundle is read by that compile and never
|
|
20
|
+
* written, so one bundle is shared by every placement, which is what the asset manager hands out.
|
|
21
|
+
*
|
|
22
|
+
* Pre-order is the one structural promise: a node's parent has a lower index. {@link add_node}
|
|
23
|
+
* refuses anything else, so a reader composes world transforms in a single forward pass.
|
|
24
|
+
*/
|
|
25
|
+
export class SceneBundle {
|
|
26
|
+
/**
|
|
27
|
+
* Every node of the model, parents before children.
|
|
28
|
+
*
|
|
29
|
+
* @type {SceneNode[]}
|
|
30
|
+
*/
|
|
31
|
+
nodes = [];
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Skins extracted from the asset. A skin's `joints` and `meshes` are indices into
|
|
35
|
+
* {@link nodes}. Empty if the asset has no skinned meshes.
|
|
36
|
+
*
|
|
37
|
+
* @type {Skin[]}
|
|
38
|
+
*/
|
|
39
|
+
skins = [];
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Animation clips extracted from the asset. Each channel's `target` is an index into
|
|
43
|
+
* {@link nodes}. Empty if the asset has no animations.
|
|
44
|
+
*
|
|
45
|
+
* @type {ShadeAnimationClip[]}
|
|
46
|
+
*/
|
|
47
|
+
clips = [];
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Aeroelastic foliage wind rigs extracted from or generated for the asset.
|
|
51
|
+
* Each rig's `root` and each joint's `target` is an index into {@link nodes}.
|
|
52
|
+
*
|
|
53
|
+
* @type {import("../animation/foliage/FoliageWindRig.js").FoliageWindRig[]}
|
|
54
|
+
*/
|
|
55
|
+
foliage_rigs = [];
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Punctual lights extracted from the asset, each with the index of the node it sits on. A
|
|
59
|
+
* light is not a node and has no place of its own; the node's transform is where it is,
|
|
60
|
+
* already turned to shine along the engine's +Z. Empty if the asset has no lights.
|
|
61
|
+
*
|
|
62
|
+
* @type {{light: Light, node: number}[]}
|
|
63
|
+
*/
|
|
64
|
+
lights = [];
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Append a node. Its parent, if it has one, must already be in the bundle — which is what
|
|
68
|
+
* keeps the list in pre-order.
|
|
69
|
+
*
|
|
70
|
+
* @param {SceneNode} node
|
|
71
|
+
* @returns {number} the node's index, what a child, a skin, a clip or a light names it by
|
|
72
|
+
*/
|
|
73
|
+
add_node(node) {
|
|
74
|
+
assert.defined(node, 'node');
|
|
75
|
+
assert.equal(node.isSceneNode, true, 'node.isSceneNode !== true');
|
|
76
|
+
|
|
77
|
+
const index = this.nodes.length;
|
|
78
|
+
|
|
79
|
+
assert.lessThan(node.parent, index, `node ${index} (${node.name}) names parent ${node.parent}, which is not in the bundle yet — add parents before children`);
|
|
80
|
+
|
|
81
|
+
this.nodes.push(node);
|
|
82
|
+
|
|
83
|
+
return index;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* The world matrix of every node, composed root-first in double precision — what a reader
|
|
88
|
+
* that wants where things are in the model's own space asks for, once.
|
|
89
|
+
*
|
|
90
|
+
* @returns {Float64Array[]} one 4x4 per node, column-major
|
|
91
|
+
*/
|
|
92
|
+
compute_world_matrices() {
|
|
93
|
+
const nodes = this.nodes;
|
|
94
|
+
const count = nodes.length;
|
|
95
|
+
const worlds = new Array(count);
|
|
96
|
+
|
|
97
|
+
for (let i = 0; i < count; i++) {
|
|
98
|
+
const node = nodes[i];
|
|
99
|
+
const world = new Float64Array(16);
|
|
100
|
+
const local = node.local.matrix;
|
|
101
|
+
|
|
102
|
+
if (node.parent === -1) {
|
|
103
|
+
world.set(local);
|
|
104
|
+
} else {
|
|
105
|
+
m4_multiply(world, worlds[node.parent], local);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
worlds[i] = world;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return worlds;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* @readonly
|
|
117
|
+
* @type {boolean}
|
|
118
|
+
*/
|
|
119
|
+
SceneBundle.prototype.isSceneBundle = true;
|
|
@@ -45,6 +45,10 @@ export function build_gbuffer_pipeline_descriptor({ label, material_group, surfa
|
|
|
45
45
|
* @returns {RenderPipelineDescriptor}
|
|
46
46
|
*/
|
|
47
47
|
export function gbuffer_pipeline_descriptor_for_shader(label: string, shader: ShaderDescriptor): RenderPipelineDescriptor;
|
|
48
|
+
/**
|
|
49
|
+
*
|
|
50
|
+
* @type {number}
|
|
51
|
+
*/
|
|
48
52
|
/**
|
|
49
53
|
* Group 1 of every material's G-buffer pipeline: the visibility buffer and the view that drew it.
|
|
50
54
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fragment_gbuffer.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/material/standard/fragment_gbuffer.js"],"names":[],"mappings":"AAkGA;;;;;;;;GAQG;AACH,+DAHW,6BAA6B,GAC3B,2BAA2B,CAUvC;AASD;;;;;;;;;;;GAWG;AACH,qDAHW,SAAS,GACP,SAAS,
|
|
1
|
+
{"version":3,"file":"fragment_gbuffer.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/material/standard/fragment_gbuffer.js"],"names":[],"mappings":"AAkGA;;;;;;;;GAQG;AACH,+DAHW,6BAA6B,GAC3B,2BAA2B,CAUvC;AASD;;;;;;;;;;;GAWG;AACH,qDAHW,SAAS,GACP,SAAS,CA+OrB;AAED;;;;;;;;;GASG;AACH;IAL2B,KAAK,EAArB,MAAM;IACiC,cAAc,EAArD,6BAA6B;IACV,OAAO,EAA1B,SAAS;IACP,wBAAwB,CAUpC;AAED;;;;;;;GAOG;AACH,8DAJW,MAAM,UACN,gBAAgB,GACd,wBAAwB,CA4BpC;AA1XD;;;GAGG;AAGH;;;;;;;;;GASG;AACH,qCAFU,6BAA6B,CAEmC;AAa1E;;;;GAIG;AACH,uCAFU,6BAA6B,CAEqC;AAgC5E;;;;GAIG;AACH,wCAFU,2BAA2B,CAEoE;AAqTzG;;;;GAIG;AACH,6BAFU,gBAAgB,CAMvB;8CA9Y2C,wDAAwD;4CAC1D,sDAAsD;0BAFxE,oCAAoC;yCAxCrB,iEAAiE;iCA2CzE,kCAAkC"}
|
|
@@ -9,7 +9,7 @@ import { GEOMETRY_METADATA_STRUCT } from "../../geometry/GEOMETRY_METADATA_STRUC
|
|
|
9
9
|
import { MESHLET_METADATA_STRUCT } from "../../geometry/meshlet/encoding/MESHLET_METADATA_STRUCT.js";
|
|
10
10
|
import { chunk_node3d_flags } from "../../scene/chunk_node3d_flags.js";
|
|
11
11
|
import { chunk_scene_database_access } from "../../scene/chunk_scene_database_access.js";
|
|
12
|
-
import {
|
|
12
|
+
import { chunk_view_mip_bias } from "../../view/chunk_view_mip_bias.js";
|
|
13
13
|
import { chunk_barycentric_full } from "../../shader/chunk/geometry/triangle/chunk_barycentric_full.js";
|
|
14
14
|
import { chunk_barycentric_interpolate_uv } from "../../shader/chunk/geometry/triangle/chunk_barycentric_interpolate_uv.js";
|
|
15
15
|
import { chunk_compute_normal_matrix_from_m4 } from "../../shader/chunk/geometry/mat4/chunk_compute_normal_matrix_from_m4.js";
|
|
@@ -53,7 +53,7 @@ import { SHADING_MATERIAL_RESOURCE_GROUP } from "./SHADING_MATERIAL_RESOURCE_GRO
|
|
|
53
53
|
*
|
|
54
54
|
* @type {number}
|
|
55
55
|
*/
|
|
56
|
-
|
|
56
|
+
|
|
57
57
|
|
|
58
58
|
/**
|
|
59
59
|
* Group 1 of every material's G-buffer pipeline: the visibility buffer and the view that drew it.
|
|
@@ -146,7 +146,7 @@ struct GBufferOutput {
|
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
// this is a multiplies applies to gradients before invoking texture sampling
|
|
149
|
-
|
|
149
|
+
|
|
150
150
|
|
|
151
151
|
@fragment
|
|
152
152
|
fn main(
|
|
@@ -228,7 +228,7 @@ fn main(
|
|
|
228
228
|
var uv_info = barycentric_interpolate_uv(barycentric, geometry_vertex_uv_0, geometry_vertex_uv_1, geometry_vertex_uv_2);
|
|
229
229
|
|
|
230
230
|
// figure out final mip bias
|
|
231
|
-
let uv_derivative_bias =
|
|
231
|
+
let uv_derivative_bias = view_uv_derivative_bias(view.upscale_ratio);
|
|
232
232
|
|
|
233
233
|
// bias UV derivatives to supersample textures
|
|
234
234
|
uv_info.ddx *= uv_derivative_bias.x;
|
|
@@ -367,7 +367,8 @@ fn main(
|
|
|
367
367
|
chunk_rgbe9995_encode,
|
|
368
368
|
chunk_dither_color_8bit_triangle_noise,
|
|
369
369
|
chunk_scene_database_access,
|
|
370
|
-
chunk_node3d_flags,
|
|
370
|
+
chunk_node3d_flags,
|
|
371
|
+
chunk_view_mip_bias,
|
|
371
372
|
]
|
|
372
373
|
);
|
|
373
374
|
}
|
|
@@ -31,13 +31,14 @@
|
|
|
31
31
|
* only to tell a missing `w` curve from an authored zero.
|
|
32
32
|
*
|
|
33
33
|
* `weight` is the clip weight `value` has already been multiplied by.
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* `rest_rotation`
|
|
39
|
-
*
|
|
40
|
-
*
|
|
34
|
+
* All three properties use it to subtract `rest * weight` (`value - rest * weight`),
|
|
35
|
+
* and Rotation also uses it because the identity it substitutes for a missing
|
|
36
|
+
* `w` channel must carry the same weight as the authored channels.
|
|
37
|
+
*
|
|
38
|
+
* `rest_rotation` carries the target's rest value for the bound property
|
|
39
|
+
* (`rest.translation` in `.xyz` for Translation, `rest.rotation` in `.xyzw`
|
|
40
|
+
* for Rotation, `rest.scale` in `.xyz` for Scale). It rides into the slot
|
|
41
|
+
* with the contribution so the resolve pass can reconstruct `rest + delta`.
|
|
41
42
|
*
|
|
42
43
|
* @type {CodeChunk}
|
|
43
44
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk_write_object_property_node3d.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/object_property/chunk_write_object_property_node3d.js"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"chunk_write_object_property_node3d.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/object_property/chunk_write_object_property_node3d.js"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,iDAFU,SAAS,CA8Bb;0BA3EoB,iCAAiC"}
|
|
@@ -35,13 +35,14 @@ import { Node3DProperty } from "./Node3DProperty.js";
|
|
|
35
35
|
* only to tell a missing `w` curve from an authored zero.
|
|
36
36
|
*
|
|
37
37
|
* `weight` is the clip weight `value` has already been multiplied by.
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
38
|
+
* All three properties use it to subtract `rest * weight` (`value - rest * weight`),
|
|
39
|
+
* and Rotation also uses it because the identity it substitutes for a missing
|
|
40
|
+
* `w` channel must carry the same weight as the authored channels.
|
|
41
41
|
*
|
|
42
|
-
* `rest_rotation`
|
|
43
|
-
*
|
|
44
|
-
*
|
|
42
|
+
* `rest_rotation` carries the target's rest value for the bound property
|
|
43
|
+
* (`rest.translation` in `.xyz` for Translation, `rest.rotation` in `.xyzw`
|
|
44
|
+
* for Rotation, `rest.scale` in `.xyz` for Scale). It rides into the slot
|
|
45
|
+
* with the contribution so the resolve pass can reconstruct `rest + delta`.
|
|
45
46
|
*
|
|
46
47
|
* @type {CodeChunk}
|
|
47
48
|
*/
|
|
@@ -60,13 +61,13 @@ fn write_object_property_node3d(
|
|
|
60
61
|
|
|
61
62
|
switch(property){
|
|
62
63
|
case ${Node3DProperty.Translation}u: {
|
|
63
|
-
pose_accumulator_add_translation(node_index, value.xyz, mask);
|
|
64
|
+
pose_accumulator_add_translation(node_index, value.xyz, mask, weight, rest_rotation.xyz);
|
|
64
65
|
}
|
|
65
66
|
case ${Node3DProperty.Rotation}u: {
|
|
66
67
|
pose_accumulator_add_rotation(node_index, value, mask, weight, rest_rotation);
|
|
67
68
|
}
|
|
68
69
|
case ${Node3DProperty.Scale}u: {
|
|
69
|
-
pose_accumulator_add_scale(node_index, value.xyz, mask);
|
|
70
|
+
pose_accumulator_add_scale(node_index, value.xyz, mask, weight, rest_rotation.xyz);
|
|
70
71
|
}
|
|
71
72
|
default: {}
|
|
72
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GPUParticleSystem.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/particles/GPUParticleSystem.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"GPUParticleSystem.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/particles/GPUParticleSystem.js"],"names":[],"mappings":"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"}
|
|
@@ -1120,7 +1120,9 @@ export class GPUParticleSystem {
|
|
|
1120
1120
|
this.atlas_sampler = device.createSampler({
|
|
1121
1121
|
label: "particles/atlas_sampler",
|
|
1122
1122
|
magFilter: "linear",
|
|
1123
|
-
minFilter: "linear",
|
|
1123
|
+
minFilter: "linear",
|
|
1124
|
+
mipmapFilter: "linear",
|
|
1125
|
+
maxAnisotropy: 16,
|
|
1124
1126
|
addressModeU: "clamp-to-edge",
|
|
1125
1127
|
addressModeV: "clamp-to-edge",
|
|
1126
1128
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shader_particle_avboit_draw.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/particles/shaders/shader_particle_avboit_draw.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shader_particle_avboit_draw.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/particles/shaders/shader_particle_avboit_draw.js"],"names":[],"mappings":"AAyMA,2EAAsI;AACtI,8EAA2I;AAC3I,6EAA8I;AAE9I,mEAAmE;AACnE,yEAAwD;AAExD,mDAAmD;AACnD,2DAAsD;yCAjNb,iEAAiE;4CAa9D,sDAAsD;iCAFjE,kCAAkC"}
|
|
@@ -13,7 +13,8 @@ import { ShaderDescriptor } from "../../shader/ShaderDescriptor.js";
|
|
|
13
13
|
import { CodeChunk } from "../../shader/compiler/CodeChunk.js";
|
|
14
14
|
import { ShaderResourceSetDescriptor } from "../../shader/resource/ShaderResourceSetDescriptor.js";
|
|
15
15
|
import { SAMPLER_LINEAR_UPSCALE } from "../../texture/SAMPLER_LINEAR_UPSCALE.js";
|
|
16
|
-
import { VIEW_UNIFORM_STRUCT } from "../../view/VIEW_UNIFORM_STRUCT.js";
|
|
16
|
+
import { VIEW_UNIFORM_STRUCT } from "../../view/VIEW_UNIFORM_STRUCT.js";
|
|
17
|
+
import { chunk_view_mip_bias } from "../../view/chunk_view_mip_bias.js";
|
|
17
18
|
import { VOLUMETRICS_METADATA_STRUCT } from "../../volumetrics/VOLUMETRICS_METADATA_STRUCT.js";
|
|
18
19
|
import { EMITTER_FLAG } from "../data/PARTICLE_EMITTER_STRUCT.js";
|
|
19
20
|
import { PARTICLE_SOFT_FADE_RANGE } from "../ParticleConstants.js";
|
|
@@ -110,7 +111,10 @@ fn vs_general(@builtin(vertex_index) vi : u32, @builtin(instance_index) ii : u32
|
|
|
110
111
|
|
|
111
112
|
@fragment
|
|
112
113
|
fn fs_main(in : ParticleVertexOut) -> ParticleAVBOITDrawOutput {
|
|
113
|
-
let screen_uv = in.clip.xy / vec2<f32>(f32(view.width), f32(view.height));
|
|
114
|
+
let screen_uv = in.clip.xy / vec2<f32>(f32(view.width), f32(view.height));
|
|
115
|
+
let uv_bias = view_uv_derivative_bias(view.upscale_ratio);
|
|
116
|
+
let uv_ddx = dpdx(in.uv) * uv_bias.x;
|
|
117
|
+
let uv_ddy = dpdy(in.uv) * uv_bias.y;
|
|
114
118
|
|
|
115
119
|
// a billboard, stretched or not, is built from the camera's right and up and lies in the view plane,
|
|
116
120
|
// so its footprint is zero; a horizontal, vertical or world-facing quad seen at an angle runs
|
|
@@ -130,7 +134,7 @@ fn fs_main(in : ParticleVertexOut) -> ParticleAVBOITDrawOutput {
|
|
|
130
134
|
discard;
|
|
131
135
|
}
|
|
132
136
|
|
|
133
|
-
var color =
|
|
137
|
+
var color = textureSampleGrad(atlas, atlas_sampler, in.uv, uv_ddx, uv_ddy) * in.color;
|
|
134
138
|
|
|
135
139
|
if ((in.flags & PARTICLE_FLAG_SOFT_DEPTH) != 0u) {
|
|
136
140
|
let scene_vd = particle_scene_view_depth(textureLoad(scene_depth, vec2<i32>(in.clip.xy), 0).r, camera);
|
|
@@ -166,7 +170,8 @@ fn fs_main(in : ParticleVertexOut) -> ParticleAVBOITDrawOutput {
|
|
|
166
170
|
chunk_sample_volumetrics,
|
|
167
171
|
chunk_avboit_view_depth_to_virtual,
|
|
168
172
|
chunk_avboit_footprint_bias,
|
|
169
|
-
chunk_avboit_sample_transmittance,
|
|
173
|
+
chunk_avboit_sample_transmittance,
|
|
174
|
+
chunk_view_mip_bias,
|
|
170
175
|
]);
|
|
171
176
|
|
|
172
177
|
const descriptor = ShaderDescriptor.from({ label: "Particle AVBOIT Draw", body, resources });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssr_resolve_shader.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ssr_resolve_shader.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader.js"],"names":[],"mappings":"AAmWA;;;;;;;GAOG;AACH,iCAFU,WAAW,CAgBlB;4BAtWyB,gCAAgC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { chunk_ssr_metadata } from "../chunk_ssr_metadata.js";
|
|
2
2
|
import { chunk_is_on_screen_i32 } from "../../../shader/chunk/texture/chunk_is_on_screen_i32.js";
|
|
3
|
-
import {
|
|
3
|
+
import { SAMPLER_TRILINEAR_CLAMP } from "../../../texture/SAMPLER_TRILINEAR_CLAMP.js";
|
|
4
4
|
import { u32 } from "../../../shader/type/WEBGPU_WGSL_PRIMITIVE_TYPES.js";
|
|
5
5
|
import { WebGPUStruct } from "../../../shader/type/WebGPUStruct.js";
|
|
6
6
|
import { CAMERA_UNIFORM_STRUCT } from "../../../camera/CAMERA_UNIFORM_STRUCT.js";
|
|
@@ -62,12 +62,14 @@ resources.createGroup()
|
|
|
62
62
|
.addTexture("tNormal", "uint")
|
|
63
63
|
.addTexture("tColor", "float")
|
|
64
64
|
.addTexture("tAlbedoAO", "unfilterable-float")
|
|
65
|
-
.addSampler("sLinear", "filtering",
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
65
|
+
.addSampler("sLinear", "filtering", SAMPLER_TRILINEAR_CLAMP)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
71
73
|
.addUniform("camera", CAMERA_UNIFORM_STRUCT)
|
|
72
74
|
;
|
|
73
75
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk_forward_shade_standard_fragment.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chunk_forward_shade_standard_fragment.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment.js"],"names":[],"mappings":"AAyCA;;;;;;GAMG;AACH,8DAsKC;0BA/LyB,oCAAoC"}
|