@zephyr3d/scene 0.9.26 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -27
- package/dist/animation/animation_bank.js +634 -0
- package/dist/animation/animation_bank.js.map +1 -0
- package/dist/animation/animation_bank_gpu.js +256 -0
- package/dist/animation/animation_bank_gpu.js.map +1 -0
- package/dist/animation/animationset.js +146 -30
- package/dist/animation/animationset.js.map +1 -1
- package/dist/animation/cloth/gpu_cloth_component.js +406 -0
- package/dist/animation/cloth/gpu_cloth_component.js.map +1 -0
- package/dist/animation/cloth/gpu_cloth_system.js +332 -202
- package/dist/animation/cloth/gpu_cloth_system.js.map +1 -1
- package/dist/animation/gpu_animation_driver.js +289 -0
- package/dist/animation/gpu_animation_driver.js.map +1 -0
- package/dist/animation/joint_dynamics/collision.js +112 -1
- package/dist/animation/joint_dynamics/collision.js.map +1 -1
- package/dist/animation/joint_dynamics/controller.js +6 -0
- package/dist/animation/joint_dynamics/controller.js.map +1 -1
- package/dist/animation/joint_dynamics/joint_dynamics_system.js +11 -0
- package/dist/animation/joint_dynamics/joint_dynamics_system.js.map +1 -1
- package/dist/animation/joint_dynamics/solver.js +50 -12
- package/dist/animation/joint_dynamics/solver.js.map +1 -1
- package/dist/animation/joint_dynamics/types.js.map +1 -1
- package/dist/animation/skeleton.js +300 -56
- package/dist/animation/skeleton.js.map +1 -1
- package/dist/animation/skin_palette_atlas.js +252 -0
- package/dist/animation/skin_palette_atlas.js.map +1 -0
- package/dist/animation/spring/multi_chain_spring_system.js +298 -38
- package/dist/animation/spring/multi_chain_spring_system.js.map +1 -1
- package/dist/animation/spring/spring_chain.js +2 -0
- package/dist/animation/spring/spring_chain.js.map +1 -1
- package/dist/animation/spring/spring_collider.js +159 -21
- package/dist/animation/spring/spring_collider.js.map +1 -1
- package/dist/animation/spring/spring_particle.js +1 -0
- package/dist/animation/spring/spring_particle.js.map +1 -1
- package/dist/animation/spring/spring_solver.js +173 -0
- package/dist/animation/spring/spring_solver.js.map +1 -0
- package/dist/animation/spring/spring_system.js +249 -24
- package/dist/animation/spring/spring_system.js.map +1 -1
- package/dist/animation/spring_modifier.js +32 -1
- package/dist/animation/spring_modifier.js.map +1 -1
- package/dist/app/app.js +26 -0
- package/dist/app/app.js.map +1 -1
- package/dist/app/engine.js +86 -15
- package/dist/app/engine.js.map +1 -1
- package/dist/app/gamepad.js +191 -0
- package/dist/app/gamepad.js.map +1 -0
- package/dist/app/inputactions.js +271 -0
- package/dist/app/inputactions.js.map +1 -0
- package/dist/app/inputmgr.js +331 -22
- package/dist/app/inputmgr.js.map +1 -1
- package/dist/app/loading.js +138 -0
- package/dist/app/loading.js.map +1 -0
- package/dist/app/pipelinecache.js +209 -0
- package/dist/app/pipelinecache.js.map +1 -0
- package/dist/app/runtimescript.js +25 -0
- package/dist/app/runtimescript.js.map +1 -1
- package/dist/app/scriptingsystem.js +54 -0
- package/dist/app/scriptingsystem.js.map +1 -1
- package/dist/app/scriptregistry.js +7 -2
- package/dist/app/scriptregistry.js.map +1 -1
- package/dist/asset/asset_manifest.js +59 -0
- package/dist/asset/asset_manifest.js.map +1 -0
- package/dist/asset/asset_preload.js +258 -0
- package/dist/asset/asset_preload.js.map +1 -0
- package/dist/asset/assetmanager.js +117 -65
- package/dist/asset/assetmanager.js.map +1 -1
- package/dist/asset/loaders/ktx2/basis/LICENSE +201 -0
- package/dist/asset/loaders/ktx2/basis/basis_transcoder.js +2 -0
- package/dist/asset/loaders/ktx2/basis/basis_transcoder.wasm +0 -0
- package/dist/asset/loaders/ktx2/basis_location.js +17 -0
- package/dist/asset/loaders/ktx2/basis_location.js.map +1 -0
- package/dist/asset/loaders/ktx2/ktx2_loader.js +88 -0
- package/dist/asset/loaders/ktx2/ktx2_loader.js.map +1 -0
- package/dist/asset/loaders/ktx2/ktx2_targets.js +118 -0
- package/dist/asset/loaders/ktx2/ktx2_targets.js.map +1 -0
- package/dist/asset/loaders/ktx2/transcoder_pool.js +259 -0
- package/dist/asset/loaders/ktx2/transcoder_pool.js.map +1 -0
- package/dist/asset/mesh_lod_builder.js +104 -0
- package/dist/asset/mesh_lod_builder.js.map +1 -0
- package/dist/asset/mesh_settings.js +111 -0
- package/dist/asset/mesh_settings.js.map +1 -0
- package/dist/asset/meshopt_decoder.js +18 -0
- package/dist/asset/meshopt_decoder.js.map +1 -0
- package/dist/asset/meshopt_simplifier.js +26 -0
- package/dist/asset/meshopt_simplifier.js.map +1 -0
- package/dist/asset/model.js +177 -3
- package/dist/asset/model.js.map +1 -1
- package/dist/asset/texture_settings.js +231 -0
- package/dist/asset/texture_settings.js.map +1 -0
- package/dist/asset/zmsh_binary.js +131 -0
- package/dist/asset/zmsh_binary.js.map +1 -0
- package/dist/asset/zsdf_binary.js +111 -0
- package/dist/asset/zsdf_binary.js.map +1 -0
- package/dist/blitter/bilateralblur.js +1 -2
- package/dist/blitter/bilateralblur.js.map +1 -1
- package/dist/blitter/gaussianblur.js +1 -6
- package/dist/blitter/gaussianblur.js.map +1 -1
- package/dist/camera/base.js +31 -10
- package/dist/camera/base.js.map +1 -1
- package/dist/camera/camera.js +178 -200
- package/dist/camera/camera.js.map +1 -1
- package/dist/camera/follow.js +342 -0
- package/dist/camera/follow.js.map +1 -0
- package/dist/camera/fps.js +9 -7
- package/dist/camera/fps.js.map +1 -1
- package/dist/camera/orbit.js +46 -19
- package/dist/camera/orbit.js.map +1 -1
- package/dist/index.d.ts +30475 -19865
- package/dist/index.js +67 -12
- package/dist/index.js.map +1 -1
- package/dist/material/blinn.js +3 -0
- package/dist/material/blinn.js.map +1 -1
- package/dist/material/eye.js +1 -1
- package/dist/material/eye.js.map +1 -1
- package/dist/material/hair.js +2 -3
- package/dist/material/hair.js.map +1 -1
- package/dist/material/hairstrand.js +235 -235
- package/dist/material/hairstrand.js.map +1 -1
- package/dist/material/lambert.js +4 -1
- package/dist/material/lambert.js.map +1 -1
- package/dist/material/material.js +362 -300
- package/dist/material/material.js.map +1 -1
- package/dist/material/meshmaterial.js +118 -45
- package/dist/material/meshmaterial.js.map +1 -1
- package/dist/material/mixins/lightmodel/blinnphong.js +1 -1
- package/dist/material/mixins/lightmodel/blinnphong.js.map +1 -1
- package/dist/material/mixins/lightmodel/lambert.js +1 -1
- package/dist/material/mixins/lightmodel/lambert.js.map +1 -1
- package/dist/material/mixins/lightmodel/pbrblueprintmixin.js +34 -61
- package/dist/material/mixins/lightmodel/pbrblueprintmixin.js.map +1 -1
- package/dist/material/mixins/lightmodel/pbrmetallicroughness.js +16 -2
- package/dist/material/mixins/lightmodel/pbrmetallicroughness.js.map +1 -1
- package/dist/material/mixins/lightmodel/pbrspecularglossness.js +2 -1
- package/dist/material/mixins/lightmodel/pbrspecularglossness.js.map +1 -1
- package/dist/material/mixins/lit.js +223 -83
- package/dist/material/mixins/lit.js.map +1 -1
- package/dist/material/mixins/pbr/common.js +31 -206
- package/dist/material/mixins/pbr/common.js.map +1 -1
- package/dist/material/mtoon.js +1 -1
- package/dist/material/mtoon.js.map +1 -1
- package/dist/material/pbrmr.js +3 -0
- package/dist/material/pbrmr.js.map +1 -1
- package/dist/material/pbrsg.js +3 -0
- package/dist/material/pbrsg.js.map +1 -1
- package/dist/material/sdf_debug.js +78 -0
- package/dist/material/sdf_debug.js.map +1 -0
- package/dist/material/shader/helper.js +733 -190
- package/dist/material/shader/helper.js.map +1 -1
- package/dist/material/shader/terrain_blend.js +204 -43
- package/dist/material/shader/terrain_blend.js.map +1 -1
- package/dist/material/skin.js +331 -297
- package/dist/material/skin.js.map +1 -1
- package/dist/material/skinprofile.js +1058 -0
- package/dist/material/skinprofile.js.map +1 -0
- package/dist/material/sss.js +353 -0
- package/dist/material/sss.js.map +1 -0
- package/dist/material/sss_kernel.js +265 -0
- package/dist/material/sss_kernel.js.map +1 -0
- package/dist/material/sssprofile.js +879 -0
- package/dist/material/sssprofile.js.map +1 -0
- package/dist/material/subsurfaceprofile.js +4 -8
- package/dist/material/subsurfaceprofile.js.map +1 -1
- package/dist/material/terrain-cm.js +464 -188
- package/dist/material/terrain-cm.js.map +1 -1
- package/dist/material/unlit.js +3 -0
- package/dist/material/unlit.js.map +1 -1
- package/dist/material/water.js +2009 -201
- package/dist/material/water.js.map +1 -1
- package/dist/node_modules/meshoptimizer/LICENSE +21 -0
- package/dist/node_modules/meshoptimizer/meshopt_decoder.js +197 -0
- package/dist/node_modules/meshoptimizer/meshopt_decoder.js.map +1 -0
- package/dist/node_modules/meshoptimizer/meshopt_simplifier.js +677 -0
- package/dist/node_modules/meshoptimizer/meshopt_simplifier.js.map +1 -0
- package/dist/physics/character.js +226 -0
- package/dist/physics/character.js.map +1 -0
- package/dist/physics/collider.js +209 -0
- package/dist/physics/collider.js.map +1 -0
- package/dist/physics/events.js +79 -0
- package/dist/physics/events.js.map +1 -0
- package/dist/physics/joint.js +272 -0
- package/dist/physics/joint.js.map +1 -0
- package/dist/physics/node_physics.js +234 -0
- package/dist/physics/node_physics.js.map +1 -0
- package/dist/physics/part.js +91 -0
- package/dist/physics/part.js.map +1 -0
- package/dist/physics/rigid_body.js +379 -0
- package/dist/physics/rigid_body.js.map +1 -0
- package/dist/physics/vehicle.js +335 -0
- package/dist/physics/vehicle.js.map +1 -0
- package/dist/physics/world.js +25 -0
- package/dist/physics/world.js.map +1 -0
- package/dist/posteffect/bloom.js +49 -14
- package/dist/posteffect/bloom.js.map +1 -1
- package/dist/posteffect/motionblur.js +668 -63
- package/dist/posteffect/motionblur.js.map +1 -1
- package/dist/posteffect/posteffect.js +12 -1
- package/dist/posteffect/posteffect.js.map +1 -1
- package/dist/posteffect/postsss.js +572 -0
- package/dist/posteffect/postsss.js.map +1 -0
- package/dist/posteffect/sao.js +48 -50
- package/dist/posteffect/sao.js.map +1 -1
- package/dist/posteffect/skinsss.js +605 -355
- package/dist/posteffect/skinsss.js.map +1 -1
- package/dist/posteffect/ssgi.js +91 -162
- package/dist/posteffect/ssgi.js.map +1 -1
- package/dist/posteffect/ssr.js +3 -11
- package/dist/posteffect/ssr.js.map +1 -1
- package/dist/posteffect/sss.js +34 -15
- package/dist/posteffect/sss.js.map +1 -1
- package/dist/posteffect/taa.js +1 -0
- package/dist/posteffect/taa.js.map +1 -1
- package/dist/render/abuffer_oit.js +40 -39
- package/dist/render/abuffer_oit.js.map +1 -1
- package/dist/render/clipmap.js +328 -62
- package/dist/render/clipmap.js.map +1 -1
- package/dist/render/cluster_light.js +958 -224
- package/dist/render/cluster_light.js.map +1 -1
- package/dist/render/cull_visitor.js +26 -5
- package/dist/render/cull_visitor.js.map +1 -1
- package/dist/render/debug_views.js +37 -0
- package/dist/render/debug_views.js.map +1 -0
- package/dist/render/depthpass.js +5 -1
- package/dist/render/depthpass.js.map +1 -1
- package/dist/render/drawable_mixin.js +53 -6
- package/dist/render/drawable_mixin.js.map +1 -1
- package/dist/render/dualdepthpeeling_oit.js +53 -53
- package/dist/render/dualdepthpeeling_oit.js.map +1 -1
- package/dist/render/envlight.js +196 -113
- package/dist/render/envlight.js.map +1 -1
- package/dist/render/fbm_wavegenerator.js +8 -13
- package/dist/render/fbm_wavegenerator.js.map +1 -1
- package/dist/render/fft_wavegenerator.js +268 -136
- package/dist/render/fft_wavegenerator.js.map +1 -1
- package/dist/render/gerstner_wavegenerator.js +113 -28
- package/dist/render/gerstner_wavegenerator.js.map +1 -1
- package/dist/render/gi/probe_volume.js +1334 -0
- package/dist/render/gi/probe_volume.js.map +1 -0
- package/dist/render/gi/scene_gi.js +282 -0
- package/dist/render/gi/scene_gi.js.map +1 -0
- package/dist/render/gi/voxel_atlas.js +198 -0
- package/dist/render/gi/voxel_atlas.js.map +1 -0
- package/dist/render/gi/voxel_lighting.js +652 -0
- package/dist/render/gi/voxel_lighting.js.map +1 -0
- package/dist/render/gi/voxel_scene.js +642 -0
- package/dist/render/gi/voxel_scene.js.map +1 -0
- package/dist/render/gi/voxelize_pass.js +223 -0
- package/dist/render/gi/voxelize_pass.js.map +1 -0
- package/dist/render/globalbindgroup_allocator.js +3 -2
- package/dist/render/globalbindgroup_allocator.js.map +1 -1
- package/dist/render/gpu_picking.js +9 -36
- package/dist/render/gpu_picking.js.map +1 -1
- package/dist/render/hzb.js +80 -22
- package/dist/render/hzb.js.map +1 -1
- package/dist/render/instance_culling.js +499 -0
- package/dist/render/instance_culling.js.map +1 -0
- package/dist/render/lightpass.js +23 -9
- package/dist/render/lightpass.js.map +1 -1
- package/dist/render/lod.js +46 -0
- package/dist/render/lod.js.map +1 -0
- package/dist/render/oit.js +11 -11
- package/dist/render/oit.js.map +1 -1
- package/dist/render/primitive.js +301 -9
- package/dist/render/primitive.js.map +1 -1
- package/dist/render/primitive_readback.js +209 -0
- package/dist/render/primitive_readback.js.map +1 -0
- package/dist/render/render_queue.js +198 -11
- package/dist/render/render_queue.js.map +1 -1
- package/dist/render/renderer.js +14 -7
- package/dist/render/renderer.js.map +1 -1
- package/dist/render/rendergraph/blackboard.js +15 -1
- package/dist/render/rendergraph/blackboard.js.map +1 -1
- package/dist/render/rendergraph/executor.js +136 -0
- package/dist/render/rendergraph/executor.js.map +1 -1
- package/dist/render/rendergraph/forward_plus_builder.js +585 -59
- package/dist/render/rendergraph/forward_plus_builder.js.map +1 -1
- package/dist/render/rendergraph/frame_resource_requirements.js +1 -0
- package/dist/render/rendergraph/frame_resource_requirements.js.map +1 -1
- package/dist/render/rendergraph/history_resources.js +8 -1
- package/dist/render/rendergraph/history_resources.js.map +1 -1
- package/dist/render/rendergraph/scene_render_context.js +31 -2
- package/dist/render/rendergraph/scene_render_context.js.map +1 -1
- package/dist/render/rendergraph/types.js.map +1 -1
- package/dist/render/renderpass.js +28 -5
- package/dist/render/renderpass.js.map +1 -1
- package/dist/render/sdf/box_allocator.js +98 -0
- package/dist/render/sdf/box_allocator.js.map +1 -0
- package/dist/render/sdf/global_sdf.js +865 -0
- package/dist/render/sdf/global_sdf.js.map +1 -0
- package/dist/render/sdf/scene_sdf.js +562 -0
- package/dist/render/sdf/scene_sdf.js.map +1 -0
- package/dist/render/sdf/sdf_atlas.js +227 -0
- package/dist/render/sdf/sdf_atlas.js.map +1 -0
- package/dist/render/sdf/sdf_programs.js +42 -0
- package/dist/render/sdf/sdf_programs.js.map +1 -0
- package/dist/render/sdf/sdf_view.js +199 -0
- package/dist/render/sdf/sdf_view.js.map +1 -0
- package/dist/render/sdf/waterline.js +610 -0
- package/dist/render/sdf/waterline.js.map +1 -0
- package/dist/render/shadow_mask_pass.js +142 -25
- package/dist/render/shadow_mask_pass.js.map +1 -1
- package/dist/render/shore_wave_generator.js +1193 -0
- package/dist/render/shore_wave_generator.js.map +1 -0
- package/dist/render/sky.js +516 -86
- package/dist/render/sky.js.map +1 -1
- package/dist/render/transmission_thickness_pass.js +477 -0
- package/dist/render/transmission_thickness_pass.js.map +1 -0
- package/dist/render/underwater.js +524 -0
- package/dist/render/underwater.js.map +1 -0
- package/dist/render/virtualtexture/virtual_texture.js +1214 -0
- package/dist/render/virtualtexture/virtual_texture.js.map +1 -0
- package/dist/render/volumetric_cloud/cloud_common.js +472 -0
- package/dist/render/volumetric_cloud/cloud_common.js.map +1 -0
- package/dist/render/volumetric_cloud/cloud_noise.js +189 -0
- package/dist/render/volumetric_cloud/cloud_noise.js.map +1 -0
- package/dist/render/volumetric_cloud/debug_view.js +131 -0
- package/dist/render/volumetric_cloud/debug_view.js.map +1 -0
- package/dist/render/volumetric_cloud/resources.js +380 -0
- package/dist/render/volumetric_cloud/resources.js.map +1 -0
- package/dist/render/volumetric_cloud/sky_cache.js +380 -0
- package/dist/render/volumetric_cloud/sky_cache.js.map +1 -0
- package/dist/render/volumetric_cloud/volumetric_cloud.js +318 -0
- package/dist/render/volumetric_cloud/volumetric_cloud.js.map +1 -0
- package/dist/render/water_caustics.js +1195 -0
- package/dist/render/water_caustics.js.map +1 -0
- package/dist/render/water_foam.js +627 -0
- package/dist/render/water_foam.js.map +1 -0
- package/dist/render/water_interaction.js +1795 -0
- package/dist/render/water_interaction.js.map +1 -0
- package/dist/render/weightedblended_oit.js +36 -36
- package/dist/render/weightedblended_oit.js.map +1 -1
- package/dist/scene/basesprite.js +9 -4
- package/dist/scene/basesprite.js.map +1 -1
- package/dist/scene/batchgroup.js +108 -12
- package/dist/scene/batchgroup.js.map +1 -1
- package/dist/scene/environment.js +28 -7
- package/dist/scene/environment.js.map +1 -1
- package/dist/scene/foliage.js +1020 -0
- package/dist/scene/foliage.js.map +1 -0
- package/dist/scene/foliage_buckets.js +147 -0
- package/dist/scene/foliage_buckets.js.map +1 -0
- package/dist/scene/foliage_mask.js +358 -0
- package/dist/scene/foliage_mask.js.map +1 -0
- package/dist/scene/hair.js +15 -4
- package/dist/scene/hair.js.map +1 -1
- package/dist/scene/light.js +179 -13
- package/dist/scene/light.js.map +1 -1
- package/dist/scene/mesh.js +327 -45
- package/dist/scene/mesh.js.map +1 -1
- package/dist/scene/meshdrawable.js +6 -0
- package/dist/scene/meshdrawable.js.map +1 -1
- package/dist/scene/msdftext.js +9 -3
- package/dist/scene/msdftext.js.map +1 -1
- package/dist/scene/msdftextsprite.js +9 -3
- package/dist/scene/msdftextsprite.js.map +1 -1
- package/dist/scene/particlesys.js +8 -2
- package/dist/scene/particlesys.js.map +1 -1
- package/dist/scene/physics_settings.js +157 -0
- package/dist/scene/physics_settings.js.map +1 -0
- package/dist/scene/scene.js +190 -44
- package/dist/scene/scene.js.map +1 -1
- package/dist/scene/scene_node.js +147 -6
- package/dist/scene/scene_node.js.map +1 -1
- package/dist/scene/terrain-cm/bladegrassmaterial.js +735 -0
- package/dist/scene/terrain-cm/bladegrassmaterial.js.map +1 -0
- package/dist/scene/terrain-cm/grass.js +881 -42
- package/dist/scene/terrain-cm/grass.js.map +1 -1
- package/dist/scene/terrain-cm/grass_gpu.js +929 -0
- package/dist/scene/terrain-cm/grass_gpu.js.map +1 -0
- package/dist/scene/terrain-cm/grassmaterial.js +180 -9
- package/dist/scene/terrain-cm/grassmaterial.js.map +1 -1
- package/dist/scene/terrain-cm/terrain-cm.js +465 -36
- package/dist/scene/terrain-cm/terrain-cm.js.map +1 -1
- package/dist/scene/terrain-cm/terrain_gi_albedo.js +257 -0
- package/dist/scene/terrain-cm/terrain_gi_albedo.js.map +1 -0
- package/dist/scene/terrain-cm/terrain_rvt.js +395 -0
- package/dist/scene/terrain-cm/terrain_rvt.js.map +1 -0
- package/dist/scene/update_queue.js +54 -0
- package/dist/scene/update_queue.js.map +1 -0
- package/dist/scene/water.js +997 -96
- package/dist/scene/water.js.map +1 -1
- package/dist/scene/water_surface_sampler.js +324 -0
- package/dist/scene/water_surface_sampler.js.map +1 -0
- package/dist/scene/wind.js +317 -0
- package/dist/scene/wind.js.map +1 -0
- package/dist/shaders/atmosphere.js +388 -166
- package/dist/shaders/atmosphere.js.map +1 -1
- package/dist/shaders/fog.js +100 -32
- package/dist/shaders/fog.js.map +1 -1
- package/dist/shaders/gi.js +365 -0
- package/dist/shaders/gi.js.map +1 -0
- package/dist/shaders/ltc_rect.js +202 -0
- package/dist/shaders/ltc_rect.js.map +1 -0
- package/dist/shaders/misc.js +1 -10
- package/dist/shaders/misc.js.map +1 -1
- package/dist/shaders/noise.js +5 -1
- package/dist/shaders/noise.js.map +1 -1
- package/dist/shaders/probes.js +309 -0
- package/dist/shaders/probes.js.map +1 -0
- package/dist/shaders/sdf.js +537 -0
- package/dist/shaders/sdf.js.map +1 -0
- package/dist/shaders/shadow.js +104 -70
- package/dist/shaders/shadow.js.map +1 -1
- package/dist/shaders/skin_brdf.js +243 -0
- package/dist/shaders/skin_brdf.js.map +1 -0
- package/dist/shaders/ssr.js +6 -159
- package/dist/shaders/ssr.js.map +1 -1
- package/dist/shaders/temporal.js +38 -27
- package/dist/shaders/temporal.js.map +1 -1
- package/dist/shaders/water.js +40 -87
- package/dist/shaders/water.js.map +1 -1
- package/dist/shaders/water_medium.js +42 -0
- package/dist/shaders/water_medium.js.map +1 -0
- package/dist/shadow/dom.js +110 -19
- package/dist/shadow/dom.js.map +1 -1
- package/dist/shadow/esm.js +3 -3
- package/dist/shadow/esm.js.map +1 -1
- package/dist/shadow/pcf_opt.js +15 -48
- package/dist/shadow/pcf_opt.js.map +1 -1
- package/dist/shadow/pcf_pd.js +15 -53
- package/dist/shadow/pcf_pd.js.map +1 -1
- package/dist/shadow/pcss.js +34 -9
- package/dist/shadow/pcss.js.map +1 -1
- package/dist/shadow/shadow_impl.js +3 -8
- package/dist/shadow/shadow_impl.js.map +1 -1
- package/dist/shadow/shadow_region.js +87 -49
- package/dist/shadow/shadow_region.js.map +1 -1
- package/dist/shadow/shadowmapper.js +93 -53
- package/dist/shadow/shadowmapper.js.map +1 -1
- package/dist/shadow/ssm.js +18 -72
- package/dist/shadow/ssm.js.map +1 -1
- package/dist/shadow/vsm.js +3 -3
- package/dist/shadow/vsm.js.map +1 -1
- package/dist/shapes/shape.js +44 -1
- package/dist/shapes/shape.js.map +1 -1
- package/dist/utility/buoyancy.js +287 -0
- package/dist/utility/buoyancy.js.map +1 -0
- package/dist/utility/physical.js +10 -1
- package/dist/utility/physical.js.map +1 -1
- package/dist/utility/pmrem.js +17 -43
- package/dist/utility/pmrem.js.map +1 -1
- package/dist/utility/sdf/bake.js +435 -0
- package/dist/utility/sdf/bake.js.map +1 -0
- package/dist/utility/sdf/bvh.js +576 -0
- package/dist/utility/sdf/bvh.js.map +1 -0
- package/dist/utility/serialization/manager.js +36 -6
- package/dist/utility/serialization/manager.js.map +1 -1
- package/dist/utility/serialization/scene/animation.js +77 -7
- package/dist/utility/serialization/scene/animation.js.map +1 -1
- package/dist/utility/serialization/scene/batch.js +11 -4
- package/dist/utility/serialization/scene/batch.js.map +1 -1
- package/dist/utility/serialization/scene/camera.js +140 -279
- package/dist/utility/serialization/scene/camera.js.map +1 -1
- package/dist/utility/serialization/scene/cloth.js +25 -0
- package/dist/utility/serialization/scene/cloth.js.map +1 -0
- package/dist/utility/serialization/scene/common.js +14 -6
- package/dist/utility/serialization/scene/common.js.map +1 -1
- package/dist/utility/serialization/scene/foliage.js +821 -0
- package/dist/utility/serialization/scene/foliage.js.map +1 -0
- package/dist/utility/serialization/scene/hair.js +11 -4
- package/dist/utility/serialization/scene/hair.js.map +1 -1
- package/dist/utility/serialization/scene/light.js +115 -7
- package/dist/utility/serialization/scene/light.js.map +1 -1
- package/dist/utility/serialization/scene/material.js +388 -220
- package/dist/utility/serialization/scene/material.js.map +1 -1
- package/dist/utility/serialization/scene/mesh.js +69 -4
- package/dist/utility/serialization/scene/mesh.js.map +1 -1
- package/dist/utility/serialization/scene/node.js +140 -5
- package/dist/utility/serialization/scene/node.js.map +1 -1
- package/dist/utility/serialization/scene/node_physics.js +1318 -0
- package/dist/utility/serialization/scene/node_physics.js.map +1 -0
- package/dist/utility/serialization/scene/particle.js +11 -4
- package/dist/utility/serialization/scene/particle.js.map +1 -1
- package/dist/utility/serialization/scene/physics.js +120 -0
- package/dist/utility/serialization/scene/physics.js.map +1 -0
- package/dist/utility/serialization/scene/primitive.js +124 -10
- package/dist/utility/serialization/scene/primitive.js.map +1 -1
- package/dist/utility/serialization/scene/scene.js +1687 -51
- package/dist/utility/serialization/scene/scene.js.map +1 -1
- package/dist/utility/serialization/scene/sprite.js +11 -4
- package/dist/utility/serialization/scene/sprite.js.map +1 -1
- package/dist/utility/serialization/scene/terrain.js +163 -33
- package/dist/utility/serialization/scene/terrain.js.map +1 -1
- package/dist/utility/serialization/scene/text.js +11 -4
- package/dist/utility/serialization/scene/text.js.map +1 -1
- package/dist/utility/serialization/scene/water.js +2473 -114
- package/dist/utility/serialization/scene/water.js.map +1 -1
- package/dist/utility/serialization/types.js.map +1 -1
- package/dist/utility/shprojector.js +97 -109
- package/dist/utility/shprojector.js.map +1 -1
- package/dist/utility/textures/foam.js +170 -0
- package/dist/utility/textures/foam.js.map +1 -0
- package/dist/utility/textures/ggxlut.js +17 -43
- package/dist/utility/textures/ggxlut.js.map +1 -1
- package/dist/utility/textures/ltcdata.js +4 -4
- package/dist/utility/textures/ltcdata.js.map +1 -1
- package/dist/utility/textures/ltclut.js +16 -6
- package/dist/utility/textures/ltclut.js.map +1 -1
- package/dist/utility/unsupported.js +24 -0
- package/dist/utility/unsupported.js.map +1 -0
- package/dist/values.js +13 -1
- package/dist/values.js.map +1 -1
- package/package.json +25 -12
- package/src/asset/loaders/ktx2/basis/LICENSE +201 -0
- package/src/asset/loaders/ktx2/basis/basis_transcoder.js +2 -0
- package/src/asset/loaders/ktx2/basis/basis_transcoder.wasm +0 -0
- package/src/asset/meshoptimizer/LICENSE +21 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bvh.js","sources":["../../../src/utility/sdf/bvh.ts"],"sourcesContent":["/** Most triangles a leaf holds. */\r\nconst LEAF_SIZE = 4;\r\n/** Split candidates per axis for the surface area heuristic. */\r\nconst SAH_BINS = 12;\r\n\r\n/**\r\n * Immutable BVH over a triangle soup for CPU closest-point and ray queries. Nodes are flattened\r\n * depth first (left child follows its parent, `offset` holds the right); a leaf has `count > 0`\r\n * and covers `[first, first + count)` of {@link TriangleBVH.order}.\r\n *\r\n * @public\r\n */\r\nexport class TriangleBVH {\r\n /** Vertex positions, xyz per vertex. */\r\n readonly positions: Float32Array;\r\n /** Three vertex indices per triangle. */\r\n readonly indices: Uint32Array;\r\n /** Triangle indices in leaf order. */\r\n readonly order: Uint32Array;\r\n /** Node bounds, minX minY minZ maxX maxY maxZ per node. */\r\n readonly bounds: Float32Array;\r\n /** Per node: right child for an interior node, first triangle for a leaf. */\r\n readonly offset: Uint32Array;\r\n /** Per node: triangles in a leaf, 0 for an interior node. */\r\n readonly count: Uint32Array;\r\n private _numNodes: number;\r\n\r\n constructor(positions: Float32Array, indices: Uint32Array) {\r\n this.positions = positions;\r\n this.indices = indices;\r\n const numTris = Math.floor(indices.length / 3);\r\n this.order = new Uint32Array(numTris);\r\n const maxNodes = Math.max(1, 2 * numTris);\r\n this.bounds = new Float32Array(maxNodes * 6);\r\n this.offset = new Uint32Array(maxNodes);\r\n this.count = new Uint32Array(maxNodes);\r\n this._numNodes = 0;\r\n const centroids = new Float32Array(numTris * 3);\r\n const triBounds = new Float32Array(numTris * 6);\r\n for (let t = 0; t < numTris; t++) {\r\n this.order[t] = t;\r\n let minX = Infinity;\r\n let minY = Infinity;\r\n let minZ = Infinity;\r\n let maxX = -Infinity;\r\n let maxY = -Infinity;\r\n let maxZ = -Infinity;\r\n for (let k = 0; k < 3; k++) {\r\n const v = indices[t * 3 + k] * 3;\r\n const x = positions[v];\r\n const y = positions[v + 1];\r\n const z = positions[v + 2];\r\n minX = Math.min(minX, x);\r\n minY = Math.min(minY, y);\r\n minZ = Math.min(minZ, z);\r\n maxX = Math.max(maxX, x);\r\n maxY = Math.max(maxY, y);\r\n maxZ = Math.max(maxZ, z);\r\n }\r\n triBounds.set([minX, minY, minZ, maxX, maxY, maxZ], t * 6);\r\n centroids[t * 3] = (minX + maxX) * 0.5;\r\n centroids[t * 3 + 1] = (minY + maxY) * 0.5;\r\n centroids[t * 3 + 2] = (minZ + maxZ) * 0.5;\r\n }\r\n if (numTris > 0) {\r\n this._build(0, numTris, centroids, triBounds);\r\n } else {\r\n this._numNodes = 1;\r\n this.bounds.set([0, 0, 0, 0, 0, 0]);\r\n }\r\n }\r\n /** Nodes in the tree. */\r\n get numNodes() {\r\n return this._numNodes;\r\n }\r\n /** Triangles in the tree. */\r\n get numTriangles() {\r\n return this.order.length;\r\n }\r\n /**\r\n * Squared distance from a point to the nearest triangle, or `maxDistSq` when\r\n * none is nearer than that.\r\n * @param out - Receives the closest point when one is found nearer than `maxDistSq`.\r\n */\r\n closestDistanceSq(px: number, py: number, pz: number, maxDistSq = Infinity, out?: Float32Array) {\r\n if (this.order.length === 0) {\r\n return maxDistSq;\r\n }\r\n let best = maxDistSq;\r\n const stack = this._stack;\r\n let sp = 0;\r\n stack[sp++] = 0;\r\n while (sp > 0) {\r\n const node = stack[--sp];\r\n if (boxDistSq(this.bounds, node, px, py, pz) >= best) {\r\n continue;\r\n }\r\n const count = this.count[node];\r\n if (count > 0) {\r\n const first = this.offset[node];\r\n for (let i = first; i < first + count; i++) {\r\n const d = this._triangleDistSq(this.order[i], px, py, pz);\r\n if (d < best) {\r\n best = d;\r\n if (out) {\r\n out[0] = this._closest[0];\r\n out[1] = this._closest[1];\r\n out[2] = this._closest[2];\r\n }\r\n }\r\n }\r\n } else {\r\n // Nearer child last, so it is popped first and tightens `best` early\r\n const left = node + 1;\r\n const right = this.offset[node];\r\n const dl = boxDistSq(this.bounds, left, px, py, pz);\r\n const dr = boxDistSq(this.bounds, right, px, py, pz);\r\n if (dl < dr) {\r\n stack[sp++] = right;\r\n stack[sp++] = left;\r\n } else {\r\n stack[sp++] = left;\r\n stack[sp++] = right;\r\n }\r\n }\r\n }\r\n return best;\r\n }\r\n /**\r\n * Every ray parameter `t > 0` at which a ray crosses a triangle, unsorted.\r\n * @param dir - Ray direction; need not be unit length, `t` is in its units.\r\n * @returns Number of hits written to `hits`, at most its length.\r\n */\r\n rayHits(ox: number, oy: number, oz: number, dx: number, dy: number, dz: number, hits: Float32Array) {\r\n if (this.order.length === 0) {\r\n return 0;\r\n }\r\n const ix = 1 / dx;\r\n const iy = 1 / dy;\r\n const iz = 1 / dz;\r\n const stack = this._stack;\r\n let sp = 0;\r\n let n = 0;\r\n stack[sp++] = 0;\r\n while (sp > 0) {\r\n const node = stack[--sp];\r\n if (!rayHitsBox(this.bounds, node, ox, oy, oz, ix, iy, iz)) {\r\n continue;\r\n }\r\n const count = this.count[node];\r\n if (count > 0) {\r\n const first = this.offset[node];\r\n for (let i = first; i < first + count && n < hits.length; i++) {\r\n const t = this._rayTriangle(this.order[i], ox, oy, oz, dx, dy, dz);\r\n if (t > 0) {\r\n hits[n++] = t;\r\n }\r\n }\r\n } else {\r\n stack[sp++] = node + 1;\r\n stack[sp++] = this.offset[node];\r\n }\r\n }\r\n return n;\r\n }\r\n /**\r\n * The nearest triangle a ray crosses within `tMax`.\r\n * @param dir - Unit ray direction.\r\n * @returns The hit's ray parameter, negated for a back face (winding normal along `dir`);\r\n * 0 when nothing is hit within `tMax`.\r\n */\r\n rayNearestHit(ox: number, oy: number, oz: number, dx: number, dy: number, dz: number, tMax: number) {\r\n if (this.order.length === 0) {\r\n return 0;\r\n }\r\n const ix = 1 / dx;\r\n const iy = 1 / dy;\r\n const iz = 1 / dz;\r\n const stack = this._stack;\r\n let sp = 0;\r\n let best = tMax;\r\n let back = false;\r\n stack[sp++] = 0;\r\n while (sp > 0) {\r\n const node = stack[--sp];\r\n if (rayBoxEntry(this.bounds, node, ox, oy, oz, ix, iy, iz) > best) {\r\n continue;\r\n }\r\n const count = this.count[node];\r\n if (count > 0) {\r\n const first = this.offset[node];\r\n for (let i = first; i < first + count; i++) {\r\n const t = this._rayTriangle(this.order[i], ox, oy, oz, dx, dy, dz);\r\n if (t > 0 && t <= best) {\r\n best = t;\r\n back = this._lastHitBack;\r\n }\r\n }\r\n } else {\r\n stack[sp++] = node + 1;\r\n stack[sp++] = this.offset[node];\r\n }\r\n }\r\n return best < tMax ? (back ? -best : best) : 0;\r\n }\r\n private readonly _stack = new Uint32Array(256);\r\n private readonly _closest = new Float32Array(3);\r\n /** Whether the last triangle `_rayTriangle` hit faced away from the ray. */\r\n private _lastHitBack = false;\r\n /** @internal */\r\n private _build(first: number, count: number, centroids: Float32Array, triBounds: Float32Array): number {\r\n const node = this._numNodes++;\r\n const b = this.bounds;\r\n let minX = Infinity;\r\n let minY = Infinity;\r\n let minZ = Infinity;\r\n let maxX = -Infinity;\r\n let maxY = -Infinity;\r\n let maxZ = -Infinity;\r\n let cMinX = Infinity;\r\n let cMinY = Infinity;\r\n let cMinZ = Infinity;\r\n let cMaxX = -Infinity;\r\n let cMaxY = -Infinity;\r\n let cMaxZ = -Infinity;\r\n for (let i = first; i < first + count; i++) {\r\n const t = this.order[i];\r\n minX = Math.min(minX, triBounds[t * 6]);\r\n minY = Math.min(minY, triBounds[t * 6 + 1]);\r\n minZ = Math.min(minZ, triBounds[t * 6 + 2]);\r\n maxX = Math.max(maxX, triBounds[t * 6 + 3]);\r\n maxY = Math.max(maxY, triBounds[t * 6 + 4]);\r\n maxZ = Math.max(maxZ, triBounds[t * 6 + 5]);\r\n cMinX = Math.min(cMinX, centroids[t * 3]);\r\n cMinY = Math.min(cMinY, centroids[t * 3 + 1]);\r\n cMinZ = Math.min(cMinZ, centroids[t * 3 + 2]);\r\n cMaxX = Math.max(cMaxX, centroids[t * 3]);\r\n cMaxY = Math.max(cMaxY, centroids[t * 3 + 1]);\r\n cMaxZ = Math.max(cMaxZ, centroids[t * 3 + 2]);\r\n }\r\n b[node * 6] = minX;\r\n b[node * 6 + 1] = minY;\r\n b[node * 6 + 2] = minZ;\r\n b[node * 6 + 3] = maxX;\r\n b[node * 6 + 4] = maxY;\r\n b[node * 6 + 5] = maxZ;\r\n const extents = [cMaxX - cMinX, cMaxY - cMinY, cMaxZ - cMinZ];\r\n const cMin = [cMinX, cMinY, cMinZ];\r\n const split =\r\n count > LEAF_SIZE\r\n ? this._findSplit(first, count, centroids, triBounds, cMin, extents, [\r\n minX,\r\n minY,\r\n minZ,\r\n maxX,\r\n maxY,\r\n maxZ\r\n ])\r\n : null;\r\n if (!split) {\r\n this.offset[node] = first;\r\n this.count[node] = count;\r\n return node;\r\n }\r\n // Partition in place around the chosen bin boundary\r\n const { axis, pos } = split;\r\n let i = first;\r\n let j = first + count - 1;\r\n while (i <= j) {\r\n if (centroids[this.order[i] * 3 + axis] < pos) {\r\n i++;\r\n } else {\r\n const tmp = this.order[i];\r\n this.order[i] = this.order[j];\r\n this.order[j] = tmp;\r\n j--;\r\n }\r\n }\r\n let leftCount = i - first;\r\n if (leftCount === 0 || leftCount === count) {\r\n leftCount = count >> 1;\r\n }\r\n this.count[node] = 0;\r\n this._build(first, leftCount, centroids, triBounds);\r\n this.offset[node] = this._build(first + leftCount, count - leftCount, centroids, triBounds);\r\n return node;\r\n }\r\n /** Binned SAH; null when no split beats a leaf. @internal */\r\n private _findSplit(\r\n first: number,\r\n count: number,\r\n centroids: Float32Array,\r\n triBounds: Float32Array,\r\n cMin: number[],\r\n extents: number[],\r\n nodeBounds: number[]\r\n ) {\r\n let bestCost = count;\r\n let bestAxis = -1;\r\n let bestPos = 0;\r\n const binCount = new Uint32Array(SAH_BINS);\r\n const binBounds = new Float32Array(SAH_BINS * 6);\r\n const rightArea = new Float32Array(SAH_BINS);\r\n for (let axis = 0; axis < 3; axis++) {\r\n if (extents[axis] <= 1e-12) {\r\n continue;\r\n }\r\n binCount.fill(0);\r\n for (let k = 0; k < SAH_BINS; k++) {\r\n binBounds.set([Infinity, Infinity, Infinity, -Infinity, -Infinity, -Infinity], k * 6);\r\n }\r\n const scale = SAH_BINS / extents[axis];\r\n for (let i = first; i < first + count; i++) {\r\n const t = this.order[i];\r\n const k = Math.min(SAH_BINS - 1, Math.floor((centroids[t * 3 + axis] - cMin[axis]) * scale));\r\n binCount[k]++;\r\n for (let c = 0; c < 3; c++) {\r\n binBounds[k * 6 + c] = Math.min(binBounds[k * 6 + c], triBounds[t * 6 + c]);\r\n binBounds[k * 6 + 3 + c] = Math.max(binBounds[k * 6 + 3 + c], triBounds[t * 6 + 3 + c]);\r\n }\r\n }\r\n // Sweep from the right for the area of everything past each boundary\r\n const acc = [Infinity, Infinity, Infinity, -Infinity, -Infinity, -Infinity];\r\n let accCount = 0;\r\n const rightCount = new Uint32Array(SAH_BINS);\r\n for (let k = SAH_BINS - 1; k > 0; k--) {\r\n grow(acc, binBounds, k);\r\n accCount += binCount[k];\r\n rightArea[k] = area(acc);\r\n rightCount[k] = accCount;\r\n }\r\n const left = [Infinity, Infinity, Infinity, -Infinity, -Infinity, -Infinity];\r\n let leftCount = 0;\r\n const parentArea = Math.max(area(nodeBounds), 1e-12);\r\n for (let k = 1; k < SAH_BINS; k++) {\r\n grow(left, binBounds, k - 1);\r\n leftCount += binCount[k - 1];\r\n if (leftCount === 0 || rightCount[k] === 0) {\r\n continue;\r\n }\r\n const cost = 0.125 + (area(left) * leftCount + rightArea[k] * rightCount[k]) / parentArea;\r\n if (cost < bestCost) {\r\n bestCost = cost;\r\n bestAxis = axis;\r\n bestPos = cMin[axis] + (k * extents[axis]) / SAH_BINS;\r\n }\r\n }\r\n }\r\n return bestAxis < 0 ? null : { axis: bestAxis, pos: bestPos };\r\n }\r\n /** @internal */\r\n private _triangleDistSq(t: number, px: number, py: number, pz: number) {\r\n const p = this.positions;\r\n const ia = this.indices[t * 3] * 3;\r\n const ib = this.indices[t * 3 + 1] * 3;\r\n const ic = this.indices[t * 3 + 2] * 3;\r\n closestPointOnTriangle(\r\n px,\r\n py,\r\n pz,\r\n p[ia],\r\n p[ia + 1],\r\n p[ia + 2],\r\n p[ib],\r\n p[ib + 1],\r\n p[ib + 2],\r\n p[ic],\r\n p[ic + 1],\r\n p[ic + 2],\r\n this._closest\r\n );\r\n const dx = this._closest[0] - px;\r\n const dy = this._closest[1] - py;\r\n const dz = this._closest[2] - pz;\r\n return dx * dx + dy * dy + dz * dz;\r\n }\r\n /** Möller-Trumbore, both faces; 0 for a miss. @internal */\r\n private _rayTriangle(t: number, ox: number, oy: number, oz: number, dx: number, dy: number, dz: number) {\r\n const p = this.positions;\r\n const ia = this.indices[t * 3] * 3;\r\n const ib = this.indices[t * 3 + 1] * 3;\r\n const ic = this.indices[t * 3 + 2] * 3;\r\n const ax = p[ia];\r\n const ay = p[ia + 1];\r\n const az = p[ia + 2];\r\n const e1x = p[ib] - ax;\r\n const e1y = p[ib + 1] - ay;\r\n const e1z = p[ib + 2] - az;\r\n const e2x = p[ic] - ax;\r\n const e2y = p[ic + 1] - ay;\r\n const e2z = p[ic + 2] - az;\r\n const qx = dy * e2z - dz * e2y;\r\n const qy = dz * e2x - dx * e2z;\r\n const qz = dx * e2y - dy * e2x;\r\n const det = e1x * qx + e1y * qy + e1z * qz;\r\n if (Math.abs(det) < 1e-20) {\r\n return 0;\r\n }\r\n // det = -dir . (e1 x e2): negative when the ray runs along the winding normal\r\n this._lastHitBack = det < 0;\r\n const inv = 1 / det;\r\n const sx = ox - ax;\r\n const sy = oy - ay;\r\n const sz = oz - az;\r\n const u = (sx * qx + sy * qy + sz * qz) * inv;\r\n if (u < 0 || u > 1) {\r\n return 0;\r\n }\r\n const rx = sy * e1z - sz * e1y;\r\n const ry = sz * e1x - sx * e1z;\r\n const rz = sx * e1y - sy * e1x;\r\n const v = (dx * rx + dy * ry + dz * rz) * inv;\r\n if (v < 0 || u + v > 1) {\r\n return 0;\r\n }\r\n const tt = (e2x * rx + e2y * ry + e2z * rz) * inv;\r\n return tt > 0 ? tt : 0;\r\n }\r\n}\r\n\r\nfunction nanTo(v: number, fallback: number) {\r\n return v !== v ? fallback : v;\r\n}\r\n\r\nfunction grow(acc: number[], b: Float32Array, k: number) {\r\n if (b[k * 6] > b[k * 6 + 3]) {\r\n return;\r\n }\r\n for (let c = 0; c < 3; c++) {\r\n acc[c] = Math.min(acc[c], b[k * 6 + c]);\r\n acc[3 + c] = Math.max(acc[3 + c], b[k * 6 + 3 + c]);\r\n }\r\n}\r\n\r\nfunction area(b: number[]) {\r\n const x = b[3] - b[0];\r\n const y = b[4] - b[1];\r\n const z = b[5] - b[2];\r\n return x < 0 || y < 0 || z < 0 ? 0 : 2 * (x * y + y * z + z * x);\r\n}\r\n\r\nfunction boxDistSq(b: Float32Array, node: number, px: number, py: number, pz: number) {\r\n const o = node * 6;\r\n const dx = Math.max(b[o] - px, 0, px - b[o + 3]);\r\n const dy = Math.max(b[o + 1] - py, 0, py - b[o + 4]);\r\n const dz = Math.max(b[o + 2] - pz, 0, pz - b[o + 5]);\r\n return dx * dx + dy * dy + dz * dz;\r\n}\r\n\r\n/** Ray parameter at which a ray enters node bounds, Infinity when it misses them. */\r\nfunction rayBoxEntry(\r\n b: Float32Array,\r\n node: number,\r\n ox: number,\r\n oy: number,\r\n oz: number,\r\n ix: number,\r\n iy: number,\r\n iz: number\r\n) {\r\n const o = node * 6;\r\n let t0x = (b[o] - ox) * ix;\r\n let t1x = (b[o + 3] - ox) * ix;\r\n if (t0x > t1x) {\r\n const t = t0x;\r\n t0x = t1x;\r\n t1x = t;\r\n }\r\n let t0y = (b[o + 1] - oy) * iy;\r\n let t1y = (b[o + 4] - oy) * iy;\r\n if (t0y > t1y) {\r\n const t = t0y;\r\n t0y = t1y;\r\n t1y = t;\r\n }\r\n let t0z = (b[o + 2] - oz) * iz;\r\n let t1z = (b[o + 5] - oz) * iz;\r\n if (t0z > t1z) {\r\n const t = t0z;\r\n t0z = t1z;\r\n t1z = t;\r\n }\r\n const tNear = Math.max(nanTo(t0x, -Infinity), nanTo(t0y, -Infinity), nanTo(t0z, -Infinity), 0);\r\n const tFar = Math.min(nanTo(t1x, Infinity), nanTo(t1y, Infinity), nanTo(t1z, Infinity));\r\n return tNear <= tFar ? tNear : Infinity;\r\n}\r\n\r\nfunction rayHitsBox(\r\n b: Float32Array,\r\n node: number,\r\n ox: number,\r\n oy: number,\r\n oz: number,\r\n ix: number,\r\n iy: number,\r\n iz: number\r\n) {\r\n const o = node * 6;\r\n let t0x = (b[o] - ox) * ix;\r\n let t1x = (b[o + 3] - ox) * ix;\r\n if (t0x > t1x) {\r\n const t = t0x;\r\n t0x = t1x;\r\n t1x = t;\r\n }\r\n let t0y = (b[o + 1] - oy) * iy;\r\n let t1y = (b[o + 4] - oy) * iy;\r\n if (t0y > t1y) {\r\n const t = t0y;\r\n t0y = t1y;\r\n t1y = t;\r\n }\r\n let t0z = (b[o + 2] - oz) * iz;\r\n let t1z = (b[o + 5] - oz) * iz;\r\n if (t0z > t1z) {\r\n const t = t0z;\r\n t0z = t1z;\r\n t1z = t;\r\n }\r\n // NaN from 0 * Infinity (origin on a slab face of an axis-parallel ray) is no constraint\r\n const tNear = Math.max(nanTo(t0x, -Infinity), nanTo(t0y, -Infinity), nanTo(t0z, -Infinity), 0);\r\n const tFar = Math.min(nanTo(t1x, Infinity), nanTo(t1y, Infinity), nanTo(t1z, Infinity));\r\n return tNear <= tFar;\r\n}\r\n\r\n/**\r\n * Closest point on triangle abc to p (Ericson, Real-Time Collision Detection 5.1.5).\r\n * @internal\r\n */\r\nexport function closestPointOnTriangle(\r\n px: number,\r\n py: number,\r\n pz: number,\r\n ax: number,\r\n ay: number,\r\n az: number,\r\n bx: number,\r\n by: number,\r\n bz: number,\r\n cx: number,\r\n cy: number,\r\n cz: number,\r\n out: Float32Array\r\n) {\r\n const abx = bx - ax;\r\n const aby = by - ay;\r\n const abz = bz - az;\r\n const acx = cx - ax;\r\n const acy = cy - ay;\r\n const acz = cz - az;\r\n const apx = px - ax;\r\n const apy = py - ay;\r\n const apz = pz - az;\r\n const d1 = abx * apx + aby * apy + abz * apz;\r\n const d2 = acx * apx + acy * apy + acz * apz;\r\n if (d1 <= 0 && d2 <= 0) {\r\n out[0] = ax;\r\n out[1] = ay;\r\n out[2] = az;\r\n return;\r\n }\r\n const bpx = px - bx;\r\n const bpy = py - by;\r\n const bpz = pz - bz;\r\n const d3 = abx * bpx + aby * bpy + abz * bpz;\r\n const d4 = acx * bpx + acy * bpy + acz * bpz;\r\n if (d3 >= 0 && d4 <= d3) {\r\n out[0] = bx;\r\n out[1] = by;\r\n out[2] = bz;\r\n return;\r\n }\r\n const vc = d1 * d4 - d3 * d2;\r\n if (vc <= 0 && d1 >= 0 && d3 <= 0) {\r\n const v = d1 / (d1 - d3);\r\n out[0] = ax + v * abx;\r\n out[1] = ay + v * aby;\r\n out[2] = az + v * abz;\r\n return;\r\n }\r\n const cpx = px - cx;\r\n const cpy = py - cy;\r\n const cpz = pz - cz;\r\n const d5 = abx * cpx + aby * cpy + abz * cpz;\r\n const d6 = acx * cpx + acy * cpy + acz * cpz;\r\n if (d6 >= 0 && d5 <= d6) {\r\n out[0] = cx;\r\n out[1] = cy;\r\n out[2] = cz;\r\n return;\r\n }\r\n const vb = d5 * d2 - d1 * d6;\r\n if (vb <= 0 && d2 >= 0 && d6 <= 0) {\r\n const w = d2 / (d2 - d6);\r\n out[0] = ax + w * acx;\r\n out[1] = ay + w * acy;\r\n out[2] = az + w * acz;\r\n return;\r\n }\r\n const va = d3 * d6 - d5 * d4;\r\n if (va <= 0 && d4 - d3 >= 0 && d5 - d6 >= 0) {\r\n const w = (d4 - d3) / (d4 - d3 + (d5 - d6));\r\n out[0] = bx + w * (cx - bx);\r\n out[1] = by + w * (cy - by);\r\n out[2] = bz + w * (cz - bz);\r\n return;\r\n }\r\n const denom = 1 / (va + vb + vc);\r\n const v = vb * denom;\r\n const w = vc * denom;\r\n out[0] = ax + abx * v + acx * w;\r\n out[1] = ay + aby * v + acy * w;\r\n out[2] = az + abz * v + acz * w;\r\n}\r\n"],"names":["LEAF_SIZE","SAH_BINS","TriangleBVH","_numNodes","positions","indices","numTris","Math","floor","length","order","Uint32Array","maxNodes","max","bounds","Float32Array","offset","count","centroids","triBounds","t","minX","Infinity","minY","minZ","maxX","maxY","maxZ","k","v","x","y","z","min","set","_build","numNodes","numTriangles","closestDistanceSq","px","py","pz","maxDistSq","out","best","stack","_stack","sp","node","boxDistSq","first","i","d","_triangleDistSq","_closest","left","right","dl","dr","rayHits","ox","oy","oz","dx","dy","dz","hits","ix","iy","iz","n","rayHitsBox","_rayTriangle","rayNearestHit","tMax","back","rayBoxEntry","_lastHitBack","b","cMinX","cMinY","cMinZ","cMaxX","cMaxY","cMaxZ","extents","cMin","split","_findSplit","axis","pos","j","tmp","leftCount","nodeBounds","bestCost","bestAxis","bestPos","binCount","binBounds","rightArea","fill","scale","c","acc","accCount","rightCount","grow","area","parentArea","cost","p","ia","ib","ic","closestPointOnTriangle","ax","ay","az","e1x","e1y","e1z","e2x","e2y","e2z","qx","qy","qz","det","abs","inv","sx","sy","sz","u","rx","ry","rz","tt","nanTo","fallback","o","t0x","t1x","t0y","t1y","t0z","t1z","tNear","tFar","bx","by","bz","cx","cy","cz","abx","aby","abz","acx","acy","acz","apx","apy","apz","d1","d2","bpx","bpy","bpz","d3","d4","vc","cpx","cpy","cpz","d5","d6","vb","w","va","denom"],"mappings":"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"}
|
|
@@ -1,34 +1,39 @@
|
|
|
1
1
|
import { DWeakRef, ASSERT, DRef, randomUUID } from '@zephyr3d/base';
|
|
2
2
|
import { getAABBClass } from './scene/misc.js';
|
|
3
|
+
import { getScenePhysicsSettingsClass } from './scene/physics.js';
|
|
4
|
+
import { getNodePhysicsClass, getRigidBodyClass, getColliderClass, getJointClass, getCharacterControllerClass, getVehicleClass, getWheelClass } from './scene/node_physics.js';
|
|
3
5
|
import { getSceneNodeClass, getGraphNodeClass } from './scene/node.js';
|
|
6
|
+
import { getGPUClothComponentClass } from './scene/cloth.js';
|
|
4
7
|
import { getBatchGroupClass } from './scene/batch.js';
|
|
5
8
|
import { getCameraClass, getPerspectiveCameraClass, getOrthoCameraClass } from './scene/camera.js';
|
|
6
9
|
import { getPunctualLightClass, getDirectionalLightClass, getSpotLightClass, getPointLightClass, getRectLightClass } from './scene/light.js';
|
|
7
|
-
import { getSubsurfaceProfileClass, getMeshMaterialClass, getPBRBluePrintMaterialClass, getPBRBluePrintMaterialInstanceClass, getSpriteBlueprintMaterialClass, getUnlitMaterialClass, getMToonMaterialClass, getLambertMaterialClass, getBlinnMaterialClass, getHairMaterialClass, getSkinMaterialClass, getEyeMaterialClass, getPBRMetallicRoughnessMaterialClass, getPBRSpecularGlossinessMaterialClass, getParticleMaterialClass, getSpriteMaterialClass, getStandardSpriteMaterialClass } from './scene/material.js';
|
|
10
|
+
import { getSubsurfaceProfileClass, getSSSProfileClass, getMeshMaterialClass, getPBRBluePrintMaterialClass, getPBRBluePrintMaterialInstanceClass, getSpriteBlueprintMaterialClass, getUnlitMaterialClass, getMToonMaterialClass, getLambertMaterialClass, getBlinnMaterialClass, getHairMaterialClass, getSkinMaterialClass, getEyeMaterialClass, getPBRMetallicRoughnessMaterialClass, getPBRSpecularGlossinessMaterialClass, getParticleMaterialClass, getSpriteMaterialClass, getStandardSpriteMaterialClass } from './scene/material.js';
|
|
8
11
|
import { getMeshClass } from './scene/mesh.js';
|
|
9
12
|
import { getParticleNodeClass } from './scene/particle.js';
|
|
10
13
|
import { getBoxShapeClass, getBoxFrameShapeClass, getCapsuleShapeClass, getSphereShapeClass, getTorusShapeClass, getCylinderShapeClass, getPlaneShapeClass, getTetrahedronShapeClass } from './scene/primitive.js';
|
|
11
14
|
import { getSceneClass } from './scene/scene.js';
|
|
12
15
|
import { getTerrainClass } from './scene/terrain.js';
|
|
13
|
-
import {
|
|
16
|
+
import { getFoliageSystemClass, getFoliageLayerClass } from './scene/foliage.js';
|
|
17
|
+
import { getWaterClass, getFFTWaveGeneratorClass, getFBMWaveGeneratorClass, getGerstnerWaveGeneratorClass, getGerstnerWaveClass, getWaterInteractionClass, getWaterDisturberClass } from './scene/water.js';
|
|
14
18
|
import { getHairNodeClass } from './scene/hair.js';
|
|
15
19
|
import { getTextSpriteClass, getMSDFTextSpriteClass, getMSDFTextClass } from './scene/text.js';
|
|
16
20
|
import { getInterpolatorClass, getInterpolatorScalarClass, getSkeletonClass, getSkeletonRigClass, getSkinBindingClass, getJointDynamicsModifierClass, getSpringModifierClass, getAnimationClass, getPropTrackClass, getNodeRotationTrackClass, getNodeScaleTrackClass, getNodeTranslationTrackClass, getNodeEulerRotationTrackClass, getFixedGeometryCacheTrackClass, getPCAGeometryCacheTrackClass, getMorphTrackClass, getMorphTargetGroupTrackClass } from './scene/animation.js';
|
|
17
21
|
import '../../scene/scene.js';
|
|
18
|
-
import '../../values.js';
|
|
19
|
-
import '../../render/render_queue.js';
|
|
20
22
|
import '../../render/primitive.js';
|
|
21
23
|
import '@zephyr3d/device';
|
|
24
|
+
import '../../values.js';
|
|
25
|
+
import '../../render/render_queue.js';
|
|
22
26
|
import '../../material/shader/helper.js';
|
|
23
27
|
import '../../material/lambert.js';
|
|
24
28
|
import '../../material/blinn.js';
|
|
25
29
|
import '../../material/unlit.js';
|
|
30
|
+
import '../../material/meshmaterial.js';
|
|
26
31
|
import '../../material/particle.js';
|
|
27
32
|
import '../../material/subsurfaceprofile.js';
|
|
28
|
-
import '../../material/
|
|
33
|
+
import '../../material/sssprofile.js';
|
|
34
|
+
import '../../material/sss.js';
|
|
29
35
|
import '../../material/eye.js';
|
|
30
36
|
import { Material } from '../../material/material.js';
|
|
31
|
-
import '../../material/meshmaterial.js';
|
|
32
37
|
import '../../material/hair.js';
|
|
33
38
|
import '../../material/hairstrand.js';
|
|
34
39
|
import '../../material/grassmaterial.js';
|
|
@@ -50,9 +55,14 @@ import '../../render/lightpass.js';
|
|
|
50
55
|
import '../../render/sky.js';
|
|
51
56
|
import '../../render/clipmap.js';
|
|
52
57
|
import '../../render/envlight.js';
|
|
58
|
+
import '../../render/lod.js';
|
|
53
59
|
import '../../render/dualdepthpeeling_oit.js';
|
|
54
60
|
import '../../shaders/atmosphere.js';
|
|
61
|
+
import '../../render/water_interaction.js';
|
|
55
62
|
import '../../render/rendergraph/scene_render_context.js';
|
|
63
|
+
import '../../render/sdf/scene_sdf.js';
|
|
64
|
+
import '../../render/sdf/global_sdf.js';
|
|
65
|
+
import '../../render/gi/voxelize_pass.js';
|
|
56
66
|
import { SceneNode } from '../../scene/scene_node.js';
|
|
57
67
|
import '../../shadow/shadowmapper.js';
|
|
58
68
|
import '../../scene/mesh.js';
|
|
@@ -66,13 +76,17 @@ import '../../scene/batchgroup.js';
|
|
|
66
76
|
import '../../scene/terrain-cm/terrain-cm.js';
|
|
67
77
|
import '../../scene/terrain-cm/grass.js';
|
|
68
78
|
import '../../scene/raycast_visitor.js';
|
|
79
|
+
import '../../scene/foliage.js';
|
|
69
80
|
import { AssetManager } from '../../asset/assetmanager.js';
|
|
81
|
+
import '../../node_modules/meshoptimizer/meshopt_simplifier.js';
|
|
70
82
|
import '../../animation/skeleton.js';
|
|
71
83
|
import '../../animation/animationset.js';
|
|
72
84
|
import '../../animation/eulerrotationtrack.js';
|
|
85
|
+
import '../../animation/animation_bank.js';
|
|
73
86
|
import '../../animation/joint_dynamics/collision.js';
|
|
74
87
|
import '../../animation/joint_dynamics/solver.js';
|
|
75
88
|
import '../../animation/joint_dynamics/joint_dynamics_system.js';
|
|
89
|
+
import '../../node_modules/meshoptimizer/meshopt_decoder.js';
|
|
76
90
|
import { getJSONPropClass, getJSONNumberClass, getJSONStringClass, getJSONBoolClass, getJSONObjectClass, getJSONArrayClass } from './json.js';
|
|
77
91
|
import { getScriptAttachmentClass } from './scene/script.js';
|
|
78
92
|
import { getSpriteClass } from './scene/sprite.js';
|
|
@@ -185,6 +199,14 @@ const defaultValues = {
|
|
|
185
199
|
getJSONArrayClass(),
|
|
186
200
|
getScriptAttachmentClass(),
|
|
187
201
|
getAABBClass(),
|
|
202
|
+
getScenePhysicsSettingsClass(),
|
|
203
|
+
getNodePhysicsClass(),
|
|
204
|
+
getRigidBodyClass(),
|
|
205
|
+
getColliderClass(),
|
|
206
|
+
getJointClass(),
|
|
207
|
+
getCharacterControllerClass(),
|
|
208
|
+
getVehicleClass(),
|
|
209
|
+
getWheelClass(),
|
|
188
210
|
getInterpolatorClass(),
|
|
189
211
|
getInterpolatorScalarClass(),
|
|
190
212
|
getSkeletonClass(),
|
|
@@ -192,6 +214,7 @@ const defaultValues = {
|
|
|
192
214
|
getSkinBindingClass(),
|
|
193
215
|
getJointDynamicsModifierClass(),
|
|
194
216
|
getSpringModifierClass(),
|
|
217
|
+
getGPUClothComponentClass(),
|
|
195
218
|
getAnimationClass(this),
|
|
196
219
|
getPropTrackClass(this),
|
|
197
220
|
getNodeRotationTrackClass(),
|
|
@@ -212,8 +235,14 @@ const defaultValues = {
|
|
|
212
235
|
getWaterClass(this),
|
|
213
236
|
getHairNodeClass(),
|
|
214
237
|
getTerrainClass(this),
|
|
238
|
+
getFoliageSystemClass(this),
|
|
239
|
+
getFoliageLayerClass(),
|
|
215
240
|
getFFTWaveGeneratorClass(),
|
|
216
241
|
getFBMWaveGeneratorClass(),
|
|
242
|
+
getGerstnerWaveGeneratorClass(),
|
|
243
|
+
getGerstnerWaveClass(),
|
|
244
|
+
getWaterInteractionClass(),
|
|
245
|
+
getWaterDisturberClass(),
|
|
217
246
|
getParticleNodeClass(),
|
|
218
247
|
getPunctualLightClass(),
|
|
219
248
|
getDirectionalLightClass(),
|
|
@@ -226,6 +255,7 @@ const defaultValues = {
|
|
|
226
255
|
getBatchGroupClass(),
|
|
227
256
|
getSceneClass(this),
|
|
228
257
|
getSubsurfaceProfileClass(),
|
|
258
|
+
getSSSProfileClass(),
|
|
229
259
|
...getMeshMaterialClass(),
|
|
230
260
|
...getPBRBluePrintMaterialClass(),
|
|
231
261
|
...getPBRBluePrintMaterialInstanceClass(),
|