@zephyr3d/scene 0.9.27 → 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 +54 -0
- 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 +279 -55
- 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 +171 -1
- 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 +104 -178
- 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 +25436 -15990
- package/dist/index.js +65 -11
- 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/lambert.js +4 -1
- package/dist/material/lambert.js.map +1 -1
- package/dist/material/material.js +66 -4
- 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 +191 -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 +333 -191
- 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 +1261 -1438
- 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 +106 -106
- package/dist/posteffect/motionblur.js.map +1 -1
- package/dist/posteffect/postsss.js +572 -0
- package/dist/posteffect/postsss.js.map +1 -0
- package/dist/posteffect/sao.js +2 -6
- 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 +4 -13
- 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 +3 -2
- package/dist/render/abuffer_oit.js.map +1 -1
- package/dist/render/clipmap.js +179 -64
- 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 +25 -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 +5 -5
- 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 +5 -10
- package/dist/render/fbm_wavegenerator.js.map +1 -1
- package/dist/render/fft_wavegenerator.js +247 -157
- package/dist/render/fft_wavegenerator.js.map +1 -1
- package/dist/render/gerstner_wavegenerator.js +16 -38
- 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/instance_culling.js +499 -0
- package/dist/render/instance_culling.js.map +1 -0
- package/dist/render/lightpass.js +19 -8
- 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/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 +162 -11
- package/dist/render/render_queue.js.map +1 -1
- package/dist/render/renderer.js +10 -7
- package/dist/render/renderer.js.map +1 -1
- package/dist/render/rendergraph/blackboard.js +14 -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 +272 -55
- package/dist/render/rendergraph/forward_plus_builder.js.map +1 -1
- package/dist/render/rendergraph/frame_graph_context.js +41 -0
- package/dist/render/rendergraph/frame_graph_context.js.map +1 -0
- 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 +58 -158
- package/dist/render/underwater.js.map +1 -1
- 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 +134 -319
- package/dist/render/water_caustics.js.map +1 -1
- 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 +3 -3
- 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 +633 -268
- 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/ssgi.js +63 -0
- package/dist/shaders/ssgi.js.map +1 -0
- package/dist/shaders/ssgi_reprojection.js +118 -0
- package/dist/shaders/ssgi_reprojection.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 +32 -82
- package/dist/shaders/water.js.map +1 -1
- package/dist/shaders/water_medium.js +7 -21
- package/dist/shaders/water_medium.js.map +1 -1
- 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 +40 -2
- 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 +34 -6
- package/dist/utility/serialization/manager.js.map +1 -1
- package/dist/utility/serialization/scene/animation.js +46 -5
- 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 +87 -254
- 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 +1543 -264
- package/dist/utility/serialization/scene/water.js.map +1 -1
- package/dist/utility/serialization/types.js.map +1 -1
- package/dist/utility/shprojector.js +10 -22
- 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
- package/dist/animation/joint_dynamics/convex_collider.js +0 -320
- package/dist/animation/joint_dynamics/convex_collider.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ltcdata.js","sources":["../../../src/utility/textures/ltcdata.ts"],"sourcesContent":["export const LTC_LUT_SIZE = 64;\r\nexport const LTC_MAT_LUT_BASE64 =\r\n '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';\r\nexport const LTC_AMP_LUT_BASE64 =\r\n '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0wsAq9IKALDQCgC1zwkAus4JAL/MCADFywgAyskIANDHBwDVxgcA28QHAOLCBgDowAYA774GAPe9BQD//50AAP+dAAD/nQAB/5wAAv+cAAT+mwAG/ZoACfuXAAv5lAAO9pAAEfKLABTuhQAX6n8AGud4AB3jcQAg4WsAJN9kACfdXgAq3FkALtxTADHcTgA13EkAOdxEADzcQABA3TwARN04AEfeNQBL3jEAT98uAFPfKwBX3ygAW+AmAF/gIwBj4CEAZ+AfAGvgHQBv4BsAdOAaAHjgGAB83xcAgN8VAIXfFACJ3hMAjt4SAJLdEQCX3RAAm9wPAKDbDgCk2g0AqdkNAK7YDACz1wsAuNYLAL3VCgDC1AoAx9MJAMzRCQDS0AgA188IAN3NCADjzAcA6csHAPDJBwD3yAYA//+5AAD/uQAA/7kAAf+4AAP+twAG/bYACPuzAAv3rgAO86kAEe+iABTqmgAX5ZIAGuKJAB3fggAh3XoAJNxzACjcbAAr3GYAL9xgADLdWgA23VUAOd5QAD3fSwBB4EYAReBCAEjhPQBM4ToAUOI2AFTiMwBY4y8AXOMsAGDkKgBk5CcAaOQlAGzkIgBw5CAAdOQeAHjkHAB95BsAgeQZAIXkGACJ4xYAjuMVAJLjFACX4hMAm+ISAJ/hEQCk4RAAqeAPAK3gDgCy3w4Att4NALveDADA3QwAxdwLAMrbCwDP2goA1NoKANnZCQDf2AkA5NcJAOrWCADw1QgA99QIAP//2QAA/9kAAf/ZAAP+2AAF+9UACPfQAAvxyAAO6r4AEeS0ABXgqwAY3aIAG9yaAB/ckgAi3YsAJt6DACnffAAt4HUAMeFvADTiaAA442IAPONcAEDkVwBE5VEAR+VMAEvmSABP5kMAU+c/AFfnOwBb6DcAX+g0AGPoMQBn6C4Aa+krAG/pKQBz6SYAd+kkAHvpIgB/6SAAg+keAIjpHACM6RsAkOkZAJToGACZ6BcAnegWAKHoFQCl6BMAqucTAK7nEgCz5xEAt+YQALzmDwDA5g8AxeUOAMnlDQDO5A0A0+QMANjjDADd4wsA4uILAOfiCwDs4QoA8uEKAPjgCQD///4AAO/uAATd2gAI490ADOfcABDp2QAU69MAGOzNABzsxQAg7b0AJO20ACjtqwAt7aIAMe2ZADXtkQA57ogAPe6AAEHueQBF7nIASe5rAE3uZABR7l4AVe5ZAFnuUwBd7k4AYe5JAGXuRQBp7kEAbe49AHHuOQB17jYAee4zAH3uMACC7i0Ahu4qAIruKACO7iYAku4kAJbuIgCa7iAAnu4eAKLuHQCm7hsAqu4aAK7uGQCy7hcAtu4WALruFQC+7hQAwu4UAMbuEwDK7hIAzu4RANLuEQDX7hAA2+4PAN/uDwDj7g4A5+4OAOvuDgDv7g0A8+4NAPfuDAD77gwA/w==';\r\n"],"names":["LTC_LUT_SIZE","LTC_MAT_LUT_BASE64","LTC_AMP_LUT_BASE64"],"mappings":"AAAO,MAAMA,eAAe;AACrB,MAAMC,qBACX;AACK,MAAMC,qBACX;;;;"}
|
|
1
|
+
{"version":3,"file":"ltcdata.js","sources":["../../../src/utility/textures/ltcdata.ts"],"sourcesContent":["/** Heitz et al. 2016 GGX LTC tables (64x64 RGBA), stored as little-endian float16. */\r\nexport const LTC_LUT_SIZE = 64;\r\n/** Inverse LTC matrix coefficients; the shader builds mat3((x,0,y),(0,1,0),(z,0,w)). Signed, can exceed 1. */\r\nexport const LTC_MAT_LUT_F16_BASE64 =\r\n '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';\r\n/** x: BRDF norm, y: Fresnel term, w: sphere horizon-clipping term. */\r\nexport const LTC_AMP_LUT_F16_BASE64 =\r\n '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';\r\n"],"names":["LTC_LUT_SIZE","LTC_MAT_LUT_F16_BASE64","LTC_AMP_LUT_F16_BASE64"],"mappings":"AAAA,uFACaA,MAAAA,YAAAA,GAAe;AAC5B,+GACaC,MAAAA,sBAAAA,GACX;AACF,uEACaC,MAAAA,sBAAAA,GACX;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getDevice } from '../../app/api.js';
|
|
2
|
-
import {
|
|
2
|
+
import { LTC_MAT_LUT_F16_BASE64, LTC_AMP_LUT_F16_BASE64, LTC_LUT_SIZE } from './ltcdata.js';
|
|
3
3
|
|
|
4
4
|
const LUT_SIZE = LTC_LUT_SIZE;
|
|
5
5
|
let ltcMatLut = null;
|
|
@@ -27,13 +27,23 @@ function decodeBase64(base64) {
|
|
|
27
27
|
}
|
|
28
28
|
return new Uint8Array(out);
|
|
29
29
|
}
|
|
30
|
+
// The LTC coefficients are signed and exceed 1 (the inverse matrix's z scale reaches ~1.66, and
|
|
31
|
+
// grazing angles need negative skew terms), and near-mirror roughness needs values around 1e-5, so
|
|
32
|
+
// the tables must stay floating point: an 8-bit unorm copy clamps the negatives, saturates at 1 and
|
|
33
|
+
// quantizes the low-roughness column to a singular matrix, which zeroes glossy reflections.
|
|
30
34
|
function createTexture(base64, name) {
|
|
31
|
-
const
|
|
32
|
-
if (
|
|
35
|
+
const bytes = decodeBase64(base64);
|
|
36
|
+
if (bytes.byteLength !== LUT_SIZE * LUT_SIZE * 4 * 2) {
|
|
33
37
|
throw new Error(`createTexture(): invalid LTC LUT size for ${name}`);
|
|
34
38
|
}
|
|
39
|
+
// Rebuild the halves from explicit little-endian byte pairs rather than aliasing the buffer,
|
|
40
|
+
// so the result does not depend on host endianness or the byte offset of the decoded array.
|
|
41
|
+
const data = new Uint16Array(LUT_SIZE * LUT_SIZE * 4);
|
|
42
|
+
for(let i = 0; i < data.length; i++){
|
|
43
|
+
data[i] = bytes[i * 2] | bytes[i * 2 + 1] << 8;
|
|
44
|
+
}
|
|
35
45
|
const device = getDevice();
|
|
36
|
-
const tex = device.createTexture2D('
|
|
46
|
+
const tex = device.createTexture2D('rgba16f', LUT_SIZE, LUT_SIZE, {
|
|
37
47
|
mipmapping: false
|
|
38
48
|
});
|
|
39
49
|
tex.update(data, 0, 0, LUT_SIZE, LUT_SIZE);
|
|
@@ -41,8 +51,8 @@ function createTexture(base64, name) {
|
|
|
41
51
|
return tex;
|
|
42
52
|
}
|
|
43
53
|
function createLTCTextures() {
|
|
44
|
-
ltcMatLut = createTexture(
|
|
45
|
-
ltcAmpLut = createTexture(
|
|
54
|
+
ltcMatLut = createTexture(LTC_MAT_LUT_F16_BASE64, 'LTC_Mat');
|
|
55
|
+
ltcAmpLut = createTexture(LTC_AMP_LUT_F16_BASE64, 'LTC_Amp');
|
|
46
56
|
}
|
|
47
57
|
function getLTCMatLUT() {
|
|
48
58
|
if (!ltcMatLut) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ltclut.js","sources":["../../../src/utility/textures/ltclut.ts"],"sourcesContent":["import type { Texture2D } from '@zephyr3d/device';\r\nimport { getDevice } from '../../app/api';\r\nimport {
|
|
1
|
+
{"version":3,"file":"ltclut.js","sources":["../../../src/utility/textures/ltclut.ts"],"sourcesContent":["import type { Texture2D } from '@zephyr3d/device';\r\nimport { getDevice } from '../../app/api';\r\nimport { LTC_AMP_LUT_F16_BASE64, LTC_LUT_SIZE, LTC_MAT_LUT_F16_BASE64 } from './ltcdata';\r\n\r\nconst LUT_SIZE = LTC_LUT_SIZE;\r\nlet ltcMatLut: Texture2D | null = null;\r\nlet ltcAmpLut: Texture2D | null = null;\r\n\r\nfunction decodeBase64(base64: string) {\r\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\n const clean = base64.replace(/[^A-Za-z0-9+/=]/g, '');\r\n const out: number[] = [];\r\n let i = 0;\r\n while (i < clean.length) {\r\n const enc1 = chars.indexOf(clean.charAt(i++));\r\n const enc2 = chars.indexOf(clean.charAt(i++));\r\n const enc3 = chars.indexOf(clean.charAt(i++));\r\n const enc4 = chars.indexOf(clean.charAt(i++));\r\n const chr1 = (enc1 << 2) | (enc2 >> 4);\r\n const chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\r\n const chr3 = ((enc3 & 3) << 6) | enc4;\r\n out.push(chr1);\r\n if (enc3 !== 64) {\r\n out.push(chr2);\r\n }\r\n if (enc4 !== 64) {\r\n out.push(chr3);\r\n }\r\n }\r\n return new Uint8Array(out);\r\n}\r\n\r\n// The LTC coefficients are signed and exceed 1 (the inverse matrix's z scale reaches ~1.66, and\r\n// grazing angles need negative skew terms), and near-mirror roughness needs values around 1e-5, so\r\n// the tables must stay floating point: an 8-bit unorm copy clamps the negatives, saturates at 1 and\r\n// quantizes the low-roughness column to a singular matrix, which zeroes glossy reflections.\r\nfunction createTexture(base64: string, name: string) {\r\n const bytes = decodeBase64(base64);\r\n if (bytes.byteLength !== LUT_SIZE * LUT_SIZE * 4 * 2) {\r\n throw new Error(`createTexture(): invalid LTC LUT size for ${name}`);\r\n }\r\n // Rebuild the halves from explicit little-endian byte pairs rather than aliasing the buffer,\r\n // so the result does not depend on host endianness or the byte offset of the decoded array.\r\n const data = new Uint16Array(LUT_SIZE * LUT_SIZE * 4);\r\n for (let i = 0; i < data.length; i++) {\r\n data[i] = bytes[i * 2] | (bytes[i * 2 + 1] << 8);\r\n }\r\n const device = getDevice();\r\n const tex = device.createTexture2D('rgba16f', LUT_SIZE, LUT_SIZE, { mipmapping: false })!;\r\n tex.update(data, 0, 0, LUT_SIZE, LUT_SIZE);\r\n tex.name = name;\r\n return tex;\r\n}\r\n\r\nfunction createLTCTextures() {\r\n ltcMatLut = createTexture(LTC_MAT_LUT_F16_BASE64, 'LTC_Mat');\r\n ltcAmpLut = createTexture(LTC_AMP_LUT_F16_BASE64, 'LTC_Amp');\r\n}\r\n\r\nexport function getLTCMatLUT() {\r\n if (!ltcMatLut) {\r\n createLTCTextures();\r\n }\r\n return ltcMatLut!;\r\n}\r\n\r\nexport function getLTCAmpLUT() {\r\n if (!ltcAmpLut) {\r\n createLTCTextures();\r\n }\r\n return ltcAmpLut!;\r\n}\r\n"],"names":["LUT_SIZE","LTC_LUT_SIZE","ltcMatLut","ltcAmpLut","decodeBase64","base64","chars","clean","replace","out","i","length","enc1","indexOf","charAt","enc2","enc3","enc4","chr1","chr2","chr3","push","Uint8Array","createTexture","name","bytes","byteLength","Error","data","Uint16Array","device","getDevice","tex","createTexture2D","mipmapping","update","createLTCTextures","LTC_MAT_LUT_F16_BASE64","LTC_AMP_LUT_F16_BASE64","getLTCMatLUT","getLTCAmpLUT"],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
const warned = new Set();
|
|
2
|
+
/**
|
|
3
|
+
* Warns, once per feature, that a feature the scene asked for does not run on
|
|
4
|
+
* the current backend.
|
|
5
|
+
*
|
|
6
|
+
* Used wherever such a feature degrades instead of failing, so that what is on
|
|
7
|
+
* screen never differs from WebGPU without the console saying why. Features
|
|
8
|
+
* whose fallback renders the same image - only computed elsewhere, or more
|
|
9
|
+
* slowly - do not warn; they are listed in the backend support documentation.
|
|
10
|
+
*
|
|
11
|
+
* @param feature - What was asked for, e.g. `A-buffer OIT (Camera.oitMode 'abuffer')`.
|
|
12
|
+
* @param requirement - What it needs, e.g. `WebGPU`.
|
|
13
|
+
* @param consequence - What happens instead, e.g. `falling back to sorted alpha blending`.
|
|
14
|
+
*
|
|
15
|
+
* @internal
|
|
16
|
+
*/ function warnUnsupported(feature, requirement, consequence) {
|
|
17
|
+
if (!warned.has(feature)) {
|
|
18
|
+
warned.add(feature);
|
|
19
|
+
console.warn(`[zephyr3d] ${feature} requires ${requirement}; ${consequence}.`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export { warnUnsupported };
|
|
24
|
+
//# sourceMappingURL=unsupported.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unsupported.js","sources":["../../src/utility/unsupported.ts"],"sourcesContent":["const warned = new Set<string>();\r\n\r\n/**\r\n * Warns, once per feature, that a feature the scene asked for does not run on\r\n * the current backend.\r\n *\r\n * Used wherever such a feature degrades instead of failing, so that what is on\r\n * screen never differs from WebGPU without the console saying why. Features\r\n * whose fallback renders the same image - only computed elsewhere, or more\r\n * slowly - do not warn; they are listed in the backend support documentation.\r\n *\r\n * @param feature - What was asked for, e.g. `A-buffer OIT (Camera.oitMode 'abuffer')`.\r\n * @param requirement - What it needs, e.g. `WebGPU`.\r\n * @param consequence - What happens instead, e.g. `falling back to sorted alpha blending`.\r\n *\r\n * @internal\r\n */\r\nexport function warnUnsupported(feature: string, requirement: string, consequence: string) {\r\n if (!warned.has(feature)) {\r\n warned.add(feature);\r\n console.warn(`[zephyr3d] ${feature} requires ${requirement}; ${consequence}.`);\r\n }\r\n}\r\n"],"names":["warned","Set","warnUnsupported","feature","requirement","consequence","has","add","console","warn"],"mappings":"AAAA,MAAMA,SAAS,IAAIC,GAAAA,EAAAA;AAEnB;;;;;;;;;;;;;;AAcC,IACM,SAASC,eAAAA,CAAgBC,OAAe,EAAEC,WAAmB,EAAEC,WAAmB,EAAA;AACvF,IAAA,IAAI,CAACL,MAAAA,CAAOM,GAAG,CAACH,OAAU,CAAA,EAAA;AACxBH,QAAAA,MAAAA,CAAOO,GAAG,CAACJ,OAAAA,CAAAA;AACXK,QAAAA,OAAAA,CAAQC,IAAI,CAAC,CAAC,WAAW,EAAEN,OAAAA,CAAQ,UAAU,EAAEC,WAAY,CAAA,EAAE,EAAEC,WAAAA,CAAY,CAAC,CAAC,CAAA;AAC/E;AACF;;;;"}
|
package/dist/values.js
CHANGED
|
@@ -16,6 +16,12 @@ import { Vector3 } from '@zephyr3d/base';
|
|
|
16
16
|
* Object color render pass type
|
|
17
17
|
* @public
|
|
18
18
|
*/ const RENDER_PASS_TYPE_OBJECT_COLOR = 3;
|
|
19
|
+
/**
|
|
20
|
+
* Voxelize render pass type: a mesh is rasterized along three axes into a 3D
|
|
21
|
+
* material atlas, its fragments storing albedo and emissive rather than a
|
|
22
|
+
* shaded colour. Used by the global illumination's voxel scene.
|
|
23
|
+
* @public
|
|
24
|
+
*/ const RENDER_PASS_TYPE_VOXELIZE = 4;
|
|
19
25
|
/**
|
|
20
26
|
* Builtin texture name for sheen LUT
|
|
21
27
|
* @public
|
|
@@ -53,6 +59,11 @@ import { Vector3 } from '@zephyr3d/base';
|
|
|
53
59
|
* cap fall back to being lit without a mask-backed shadow.
|
|
54
60
|
* @public
|
|
55
61
|
*/ const MAX_SHADOW_MASK_LIGHTS = 32;
|
|
62
|
+
/**
|
|
63
|
+
* Max number of directional lights shaded outside the light clusters, so they do not
|
|
64
|
+
* take one of the few slots in each. Any beyond this are listed in every cluster.
|
|
65
|
+
* @internal
|
|
66
|
+
*/ const MAX_GLOBAL_LIGHTS = 4;
|
|
56
67
|
/**
|
|
57
68
|
* Opaque render queue type
|
|
58
69
|
* @public
|
|
@@ -136,6 +147,7 @@ let skinInfluenceLimit = DEFAULT_SKIN_INFLUENCE_LIMIT;
|
|
|
136
147
|
MaterialVaryingFlags[MaterialVaryingFlags["SCENE_STORE_NORMAL"] = 128] = "SCENE_STORE_NORMAL";
|
|
137
148
|
MaterialVaryingFlags[MaterialVaryingFlags["SSS_STORE_TRANSMISSION"] = 256] = "SSS_STORE_TRANSMISSION";
|
|
138
149
|
MaterialVaryingFlags[MaterialVaryingFlags["SKIN_SSS_STORE"] = 512] = "SKIN_SSS_STORE";
|
|
150
|
+
MaterialVaryingFlags[MaterialVaryingFlags["SKIN_PROFILE_ID_STORE"] = 1024] = "SKIN_PROFILE_ID_STORE";
|
|
139
151
|
return MaterialVaryingFlags;
|
|
140
152
|
}({});
|
|
141
153
|
/**
|
|
@@ -218,5 +230,5 @@ let skinInfluenceLimit = DEFAULT_SKIN_INFLUENCE_LIMIT;
|
|
|
218
230
|
return Fog;
|
|
219
231
|
}({});
|
|
220
232
|
|
|
221
|
-
export { ATMOSPHERIC_FOG_BIT, BUILTIN_ASSET_TEST_CUBEMAP, BUILTIN_ASSET_TEXTURE_SHEEN_LUT, DEFAULT_ACTIVE_MORPH_TARGET_LIMIT, DEFAULT_MORPH_TARGET_LIMIT, DEFAULT_SKIN_INFLUENCE_LIMIT, Fog, HEIGHT_FOG_BIT, LIGHT_TYPE_DIRECTIONAL, LIGHT_TYPE_NONE, LIGHT_TYPE_POINT, LIGHT_TYPE_RECT, LIGHT_TYPE_SPOT, MAX_GERSTNER_WAVE_COUNT, MAX_MORPH_ATTRIBUTES, MAX_MORPH_TARGETS, MAX_SHADOW_MASK_LIGHTS, MAX_SKIN_EXTRA_INFLUENCE_PAIRS, MAX_SKIN_INFLUENCES, MAX_TERRAIN_MIPMAP_LEVELS, MORPH_ATTRIBUTE_VECTOR_COUNT, MORPH_TARGET_COLOR, MORPH_TARGET_NORMAL, MORPH_TARGET_POSITION, MORPH_TARGET_TANGENT, MORPH_TARGET_TEX0, MORPH_TARGET_TEX1, MORPH_TARGET_TEX2, MORPH_TARGET_TEX3, MORPH_WEIGHTS_VECTOR_COUNT, MaterialVaryingFlags, QUEUE_OPAQUE, QUEUE_TRANSPARENT, RENDER_PASS_TYPE_DEPTH, RENDER_PASS_TYPE_LIGHT, RENDER_PASS_TYPE_OBJECT_COLOR, RENDER_PASS_TYPE_SHADOWMAP, getActiveMorphTargetLimit, getMorphTargetLimit, getSkinInfluenceLimit, normalizeActiveMorphTargetLimit, normalizeMorphTargetLimit, normalizeSkinInfluenceLimit, setActiveMorphTargetLimit, setMorphTargetLimit, setSkinInfluenceLimit, uniformSphereSamples };
|
|
233
|
+
export { ATMOSPHERIC_FOG_BIT, BUILTIN_ASSET_TEST_CUBEMAP, BUILTIN_ASSET_TEXTURE_SHEEN_LUT, DEFAULT_ACTIVE_MORPH_TARGET_LIMIT, DEFAULT_MORPH_TARGET_LIMIT, DEFAULT_SKIN_INFLUENCE_LIMIT, Fog, HEIGHT_FOG_BIT, LIGHT_TYPE_DIRECTIONAL, LIGHT_TYPE_NONE, LIGHT_TYPE_POINT, LIGHT_TYPE_RECT, LIGHT_TYPE_SPOT, MAX_GERSTNER_WAVE_COUNT, MAX_GLOBAL_LIGHTS, MAX_MORPH_ATTRIBUTES, MAX_MORPH_TARGETS, MAX_SHADOW_MASK_LIGHTS, MAX_SKIN_EXTRA_INFLUENCE_PAIRS, MAX_SKIN_INFLUENCES, MAX_TERRAIN_MIPMAP_LEVELS, MORPH_ATTRIBUTE_VECTOR_COUNT, MORPH_TARGET_COLOR, MORPH_TARGET_NORMAL, MORPH_TARGET_POSITION, MORPH_TARGET_TANGENT, MORPH_TARGET_TEX0, MORPH_TARGET_TEX1, MORPH_TARGET_TEX2, MORPH_TARGET_TEX3, MORPH_WEIGHTS_VECTOR_COUNT, MaterialVaryingFlags, QUEUE_OPAQUE, QUEUE_TRANSPARENT, RENDER_PASS_TYPE_DEPTH, RENDER_PASS_TYPE_LIGHT, RENDER_PASS_TYPE_OBJECT_COLOR, RENDER_PASS_TYPE_SHADOWMAP, RENDER_PASS_TYPE_VOXELIZE, getActiveMorphTargetLimit, getMorphTargetLimit, getSkinInfluenceLimit, normalizeActiveMorphTargetLimit, normalizeMorphTargetLimit, normalizeSkinInfluenceLimit, setActiveMorphTargetLimit, setMorphTargetLimit, setSkinInfluenceLimit, uniformSphereSamples };
|
|
222
234
|
//# sourceMappingURL=values.js.map
|
package/dist/values.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"values.js","sources":["../src/values.ts"],"sourcesContent":["import { Vector3 } from '@zephyr3d/base';\r\n\r\n/**\r\n * Forward render pass type\r\n * @public\r\n */\r\nexport const RENDER_PASS_TYPE_LIGHT = 0;\r\n/**\r\n * Shadow map render pass type\r\n * @public\r\n */\r\nexport const RENDER_PASS_TYPE_SHADOWMAP = 1;\r\n/**\r\n * Depth only render pass type\r\n * @public\r\n */\r\nexport const RENDER_PASS_TYPE_DEPTH = 2;\r\n/**\r\n * Object color render pass type\r\n * @public\r\n */\r\nexport const RENDER_PASS_TYPE_OBJECT_COLOR = 3;\r\n\r\n/**\r\n * Builtin texture name for sheen LUT\r\n * @public\r\n */\r\nexport const BUILTIN_ASSET_TEXTURE_SHEEN_LUT = 'LUT_Sheen';\r\n\r\n/**\r\n * Builtin cube texture for test\r\n * @public\r\n */\r\nexport const BUILTIN_ASSET_TEST_CUBEMAP = 'TEST_Cubemap';\r\n\r\n/**\r\n * No light\r\n * @public\r\n */\r\nexport const LIGHT_TYPE_NONE = 0;\r\n\r\n/**\r\n * Directional light type\r\n * @public\r\n */\r\nexport const LIGHT_TYPE_DIRECTIONAL = 1;\r\n\r\n/**\r\n * Point light type\r\n * @public\r\n */\r\nexport const LIGHT_TYPE_POINT = 2;\r\n\r\n/**\r\n * Spot light type\r\n * @public\r\n */\r\nexport const LIGHT_TYPE_SPOT = 3;\r\n/**\r\n * Rectangular area light type\r\n * @public\r\n */\r\nexport const LIGHT_TYPE_RECT = 4;\r\n\r\n/**\r\n * Max number of shadow-casting lights backed by the screen-space shadow mask.\r\n *\r\n * Each mask layer packs 4 lights (one per RGBA8 channel), so this maps to\r\n * `MAX_SHADOW_MASK_LIGHTS / 4` texture array layers. Shadow-casting lights are\r\n * placed at the head of the clustered light buffer. Shadow lights beyond this\r\n * cap fall back to being lit without a mask-backed shadow.\r\n * @public\r\n */\r\nexport const MAX_SHADOW_MASK_LIGHTS = 32;\r\n\r\n/**\r\n * Opaque render queue type\r\n * @public\r\n */\r\nexport const QUEUE_OPAQUE = 1;\r\n\r\n/**\r\n * Transparent render queue type\r\n * @public\r\n */\r\nexport const QUEUE_TRANSPARENT = 2;\r\n\r\n/** @public */\r\nexport const MORPH_TARGET_POSITION = 0;\r\n/** @public */\r\nexport const MORPH_TARGET_NORMAL = 1;\r\n/** @public */\r\nexport const MORPH_TARGET_TANGENT = 2;\r\n/** @public */\r\nexport const MORPH_TARGET_COLOR = 3;\r\n/** @public */\r\nexport const MORPH_TARGET_TEX0 = 4;\r\n/** @public */\r\nexport const MORPH_TARGET_TEX1 = 5;\r\n/** @public */\r\nexport const MORPH_TARGET_TEX2 = 6;\r\n/** @public */\r\nexport const MORPH_TARGET_TEX3 = 7;\r\n/** @public */\r\nexport const MAX_MORPH_ATTRIBUTES = 8;\r\n/** @public */\r\nexport const DEFAULT_MORPH_TARGET_LIMIT = 256;\r\n/** @public */\r\nexport const DEFAULT_ACTIVE_MORPH_TARGET_LIMIT = 64;\r\n/** @public */\r\nexport const MAX_MORPH_TARGETS = 1024;\r\n/** @public */\r\nexport const DEFAULT_SKIN_INFLUENCE_LIMIT = 4;\r\n/** @public */\r\nexport const MAX_SKIN_INFLUENCES = 12;\r\n/** @public */\r\nexport const MAX_SKIN_EXTRA_INFLUENCE_PAIRS = Math.ceil(Math.max(0, MAX_SKIN_INFLUENCES - 4) / 2);\r\n/** @public */\r\nexport const MORPH_WEIGHTS_VECTOR_COUNT = (MAX_MORPH_TARGETS + 3) >> 2;\r\n/** @public */\r\nexport const MORPH_ATTRIBUTE_VECTOR_COUNT = (MAX_MORPH_ATTRIBUTES + 3) >> 2;\r\n\r\nlet morphTargetLimit = DEFAULT_MORPH_TARGET_LIMIT;\r\nlet activeMorphTargetLimit = DEFAULT_ACTIVE_MORPH_TARGET_LIMIT;\r\nlet skinInfluenceLimit = DEFAULT_SKIN_INFLUENCE_LIMIT;\r\n\r\n/** @public */\r\nexport function normalizeMorphTargetLimit(value: number | null | undefined): number {\r\n if (typeof value !== 'number' || !Number.isFinite(value)) {\r\n return DEFAULT_MORPH_TARGET_LIMIT;\r\n }\r\n return Math.min(MAX_MORPH_TARGETS, Math.max(1, Math.trunc(value)));\r\n}\r\n\r\n/** @public */\r\nexport function getMorphTargetLimit(): number {\r\n return morphTargetLimit;\r\n}\r\n\r\n/** @public */\r\nexport function setMorphTargetLimit(value: number | null | undefined): number {\r\n morphTargetLimit = normalizeMorphTargetLimit(value);\r\n return morphTargetLimit;\r\n}\r\n\r\n/** @public */\r\nexport function normalizeActiveMorphTargetLimit(value: number | null | undefined): number {\r\n if (typeof value !== 'number' || !Number.isFinite(value)) {\r\n return DEFAULT_ACTIVE_MORPH_TARGET_LIMIT;\r\n }\r\n return Math.min(MAX_MORPH_TARGETS, Math.max(1, Math.trunc(value)));\r\n}\r\n\r\n/** @public */\r\nexport function getActiveMorphTargetLimit(): number {\r\n return activeMorphTargetLimit;\r\n}\r\n\r\n/** @public */\r\nexport function setActiveMorphTargetLimit(value: number | null | undefined): number {\r\n activeMorphTargetLimit = normalizeActiveMorphTargetLimit(value);\r\n return activeMorphTargetLimit;\r\n}\r\n\r\n/** @public */\r\nexport function normalizeSkinInfluenceLimit(value: number | null | undefined): number {\r\n if (typeof value !== 'number' || !Number.isFinite(value)) {\r\n return DEFAULT_SKIN_INFLUENCE_LIMIT;\r\n }\r\n return Math.min(MAX_SKIN_INFLUENCES, Math.max(1, Math.trunc(value)));\r\n}\r\n\r\n/** @public */\r\nexport function getSkinInfluenceLimit(): number {\r\n return skinInfluenceLimit;\r\n}\r\n\r\n/** @public */\r\nexport function setSkinInfluenceLimit(value: number | null | undefined): number {\r\n skinInfluenceLimit = normalizeSkinInfluenceLimit(value);\r\n return skinInfluenceLimit;\r\n}\r\n\r\n/** @public */\r\nexport const MAX_TERRAIN_MIPMAP_LEVELS = 64;\r\n\r\n/** @public */\r\nexport const MAX_GERSTNER_WAVE_COUNT = 16;\r\n\r\n/**\r\n * Material varying flags\r\n * @public\r\n */\r\nexport const enum MaterialVaryingFlags {\r\n MORPH_ANIMATION = 1 << 0,\r\n SKIN_ANIMATION = 1 << 1,\r\n INSTANCING = 1 << 2,\r\n SCENE_STORE_ROUGHNESS = 1 << 3,\r\n APPLY_FOG = 1 << 4,\r\n SSS_STORE_PROFILE = 1 << 5,\r\n SSS_STORE_DIFFUSE = 1 << 6,\r\n SCENE_STORE_NORMAL = 1 << 7,\r\n SSS_STORE_TRANSMISSION = 1 << 8,\r\n SKIN_SSS_STORE = 1 << 9\r\n}\r\n\r\n/**\r\n * Atmospheric Fog flag\r\n * @public\r\n */\r\nexport const ATMOSPHERIC_FOG_BIT = 1 << 0;\r\n/**\r\n * Exponential Fog flag\r\n * @public\r\n */\r\nexport const HEIGHT_FOG_BIT = 1 << 1;\r\n\r\n/** @internal */\r\nexport const uniformSphereSamples = [\r\n new Vector3(-0.7838, -0.620933, 0.00996137),\r\n new Vector3(0.106751, 0.965982, 0.235549),\r\n new Vector3(-0.215177, -0.687115, -0.693954),\r\n new Vector3(0.318002, 0.0640084, -0.945927),\r\n new Vector3(0.357396, 0.555673, 0.750664),\r\n new Vector3(0.866397, -0.19756, 0.458613),\r\n new Vector3(0.130216, 0.232736, -0.963783),\r\n new Vector3(-0.00174431, 0.376657, 0.926351),\r\n new Vector3(0.663478, 0.704806, -0.251089),\r\n new Vector3(0.0327851, 0.110534, -0.993331),\r\n new Vector3(0.0561973, 0.0234288, 0.998145),\r\n new Vector3(0.0905264, -0.169771, 0.981317),\r\n new Vector3(0.26694, 0.95222, -0.148393),\r\n new Vector3(-0.812874, -0.559051, -0.163393),\r\n new Vector3(-0.323378, -0.25855, -0.910263),\r\n new Vector3(-0.1333, 0.591356, -0.795317),\r\n new Vector3(0.480876, 0.408711, 0.775702),\r\n new Vector3(-0.332263, -0.533895, -0.777533),\r\n new Vector3(-0.0392473, -0.704457, -0.708661),\r\n new Vector3(0.427015, 0.239811, 0.871865),\r\n new Vector3(-0.416624, -0.563856, 0.713085),\r\n new Vector3(0.12793, 0.334479, -0.933679),\r\n new Vector3(-0.0343373, -0.160593, -0.986423),\r\n new Vector3(0.580614, 0.0692947, 0.811225),\r\n new Vector3(-0.459187, 0.43944, 0.772036),\r\n new Vector3(0.215474, -0.539436, -0.81399),\r\n new Vector3(-0.378969, -0.31988, -0.868366),\r\n new Vector3(-0.279978, -0.0109692, 0.959944),\r\n new Vector3(0.692547, 0.690058, 0.210234),\r\n new Vector3(0.53227, -0.123044, -0.837585),\r\n new Vector3(-0.772313, -0.283334, -0.568555),\r\n new Vector3(-0.0311218, 0.995988, -0.0838977),\r\n new Vector3(-0.366931, -0.276531, -0.888196),\r\n new Vector3(0.488778, 0.367878, -0.791051),\r\n new Vector3(-0.885561, -0.453445, 0.100842),\r\n new Vector3(0.71656, 0.443635, 0.538265),\r\n new Vector3(0.645383, -0.152576, -0.748466),\r\n new Vector3(-0.171259, 0.91907, 0.354939),\r\n new Vector3(-0.0031122, 0.9457, 0.325026),\r\n new Vector3(0.731503, 0.623089, -0.276881),\r\n new Vector3(-0.91466, 0.186904, 0.358419),\r\n new Vector3(0.15595, 0.828193, -0.538309),\r\n new Vector3(0.175396, 0.584732, 0.792038),\r\n new Vector3(-0.0838381, -0.943461, 0.320707),\r\n new Vector3(0.305876, 0.727604, 0.614029),\r\n new Vector3(0.754642, -0.197903, -0.62558),\r\n new Vector3(0.217255, -0.0177771, -0.975953),\r\n new Vector3(0.140412, -0.844826, 0.516287),\r\n new Vector3(-0.549042, 0.574859, -0.606705),\r\n new Vector3(0.570057, 0.17459, 0.802841),\r\n new Vector3(-0.0330304, 0.775077, 0.631003),\r\n new Vector3(-0.938091, 0.138937, 0.317304),\r\n new Vector3(0.483197, -0.726405, -0.48873),\r\n new Vector3(0.485263, 0.52926, 0.695991),\r\n new Vector3(0.224189, 0.742282, -0.631472),\r\n new Vector3(-0.322429, 0.662214, -0.676396),\r\n new Vector3(0.625577, -0.12711, 0.769738),\r\n new Vector3(-0.714032, -0.584461, -0.385439),\r\n new Vector3(-0.0652053, -0.892579, -0.446151),\r\n new Vector3(0.408421, -0.912487, 0.0236566),\r\n new Vector3(0.0900381, 0.319983, 0.943135),\r\n new Vector3(-0.708553, 0.483646, 0.513847),\r\n new Vector3(0.803855, -0.0902273, 0.587942),\r\n new Vector3(-0.0555802, -0.374602, -0.925519)\r\n];\r\n\r\n/** @internal */\r\nexport enum Fog {\r\n FOG_TYPE_NONE = 0,\r\n FOG_TYPE_HEIGHT = 4\r\n}\r\n"],"names":["RENDER_PASS_TYPE_LIGHT","RENDER_PASS_TYPE_SHADOWMAP","RENDER_PASS_TYPE_DEPTH","RENDER_PASS_TYPE_OBJECT_COLOR","BUILTIN_ASSET_TEXTURE_SHEEN_LUT","BUILTIN_ASSET_TEST_CUBEMAP","LIGHT_TYPE_NONE","LIGHT_TYPE_DIRECTIONAL","LIGHT_TYPE_POINT","LIGHT_TYPE_SPOT","LIGHT_TYPE_RECT","MAX_SHADOW_MASK_LIGHTS","QUEUE_OPAQUE","QUEUE_TRANSPARENT","MORPH_TARGET_POSITION","MORPH_TARGET_NORMAL","MORPH_TARGET_TANGENT","MORPH_TARGET_COLOR","MORPH_TARGET_TEX0","MORPH_TARGET_TEX1","MORPH_TARGET_TEX2","MORPH_TARGET_TEX3","MAX_MORPH_ATTRIBUTES","DEFAULT_MORPH_TARGET_LIMIT","DEFAULT_ACTIVE_MORPH_TARGET_LIMIT","MAX_MORPH_TARGETS","DEFAULT_SKIN_INFLUENCE_LIMIT","MAX_SKIN_INFLUENCES","MAX_SKIN_EXTRA_INFLUENCE_PAIRS","Math","ceil","max","MORPH_WEIGHTS_VECTOR_COUNT","MORPH_ATTRIBUTE_VECTOR_COUNT","morphTargetLimit","activeMorphTargetLimit","skinInfluenceLimit","normalizeMorphTargetLimit","value","Number","isFinite","min","trunc","getMorphTargetLimit","setMorphTargetLimit","normalizeActiveMorphTargetLimit","getActiveMorphTargetLimit","setActiveMorphTargetLimit","normalizeSkinInfluenceLimit","getSkinInfluenceLimit","setSkinInfluenceLimit","MAX_TERRAIN_MIPMAP_LEVELS","MAX_GERSTNER_WAVE_COUNT","MaterialVaryingFlags","ATMOSPHERIC_FOG_BIT","HEIGHT_FOG_BIT","uniformSphereSamples","Vector3","Fog"],"mappings":";;AAEA;;;IAIaA,MAAAA,sBAAAA,GAAyB;AACtC;;;IAIaC,MAAAA,0BAAAA,GAA6B;AAC1C;;;IAIaC,MAAAA,sBAAAA,GAAyB;AACtC;;;IAIaC,MAAAA,6BAAAA,GAAgC;AAE7C;;;IAIaC,MAAAA,+BAAAA,GAAkC;AAE/C;;;IAIaC,MAAAA,0BAAAA,GAA6B;AAE1C;;;IAIaC,MAAAA,eAAAA,GAAkB;AAE/B;;;IAIaC,MAAAA,sBAAAA,GAAyB;AAEtC;;;IAIaC,MAAAA,gBAAAA,GAAmB;AAEhC;;;IAIaC,MAAAA,eAAAA,GAAkB;AAC/B;;;IAIaC,MAAAA,eAAAA,GAAkB;AAE/B;;;;;;;;IASaC,MAAAA,sBAAAA,GAAyB;AAEtC;;;IAIaC,MAAAA,YAAAA,GAAe;AAE5B;;;IAIaC,MAAAA,iBAAAA,GAAoB;AAEjC,eACaC,MAAAA,qBAAAA,GAAwB;AACrC,eACaC,MAAAA,mBAAAA,GAAsB;AACnC,eACaC,MAAAA,oBAAAA,GAAuB;AACpC,eACaC,MAAAA,kBAAAA,GAAqB;AAClC,eACaC,MAAAA,iBAAAA,GAAoB;AACjC,eACaC,MAAAA,iBAAAA,GAAoB;AACjC,eACaC,MAAAA,iBAAAA,GAAoB;AACjC,eACaC,MAAAA,iBAAAA,GAAoB;AACjC,eACaC,MAAAA,oBAAAA,GAAuB;AACpC,eACaC,MAAAA,0BAAAA,GAA6B;AAC1C,eACaC,MAAAA,iCAAAA,GAAoC;AACjD,eACaC,MAAAA,iBAAAA,GAAoB;AACjC,eACaC,MAAAA,4BAAAA,GAA+B;AAC5C,eACaC,MAAAA,mBAAAA,GAAsB;AACnC,eACaC,MAAAA,8BAAAA,GAAiCC,IAAKC,CAAAA,IAAI,CAACD,IAAAA,CAAKE,GAAG,CAAC,CAAGJ,EAAAA,mBAAAA,GAAsB,KAAK,CAAG;AAClG,eACO,MAAMK,6BAA6B,iBAACP,GAAoB,KAAM;AACrE,eACO,MAAMQ,+BAA+B,oBAACX,GAAuB,KAAM;AAE1E,IAAIY,gBAAmBX,GAAAA,0BAAAA;AACvB,IAAIY,sBAAyBX,GAAAA,iCAAAA;AAC7B,IAAIY,kBAAqBV,GAAAA,4BAAAA;AAEzB,eACO,SAASW,yBAAAA,CAA0BC,KAAgC,EAAA;AACxE,IAAA,IAAI,OAAOA,KAAU,KAAA,QAAA,IAAY,CAACC,MAAOC,CAAAA,QAAQ,CAACF,KAAQ,CAAA,EAAA;QACxD,OAAOf,0BAAAA;AACT;IACA,OAAOM,IAAAA,CAAKY,GAAG,CAAChB,iBAAmBI,EAAAA,IAAAA,CAAKE,GAAG,CAAC,CAAA,EAAGF,IAAKa,CAAAA,KAAK,CAACJ,KAAAA,CAAAA,CAAAA,CAAAA;AAC5D;AAEA,eACO,SAASK,mBAAAA,GAAAA;IACd,OAAOT,gBAAAA;AACT;AAEA,eACO,SAASU,mBAAAA,CAAoBN,KAAgC,EAAA;AAClEJ,IAAAA,gBAAAA,GAAmBG,yBAA0BC,CAAAA,KAAAA,CAAAA;IAC7C,OAAOJ,gBAAAA;AACT;AAEA,eACO,SAASW,+BAAAA,CAAgCP,KAAgC,EAAA;AAC9E,IAAA,IAAI,OAAOA,KAAU,KAAA,QAAA,IAAY,CAACC,MAAOC,CAAAA,QAAQ,CAACF,KAAQ,CAAA,EAAA;QACxD,OAAOd,iCAAAA;AACT;IACA,OAAOK,IAAAA,CAAKY,GAAG,CAAChB,iBAAmBI,EAAAA,IAAAA,CAAKE,GAAG,CAAC,CAAA,EAAGF,IAAKa,CAAAA,KAAK,CAACJ,KAAAA,CAAAA,CAAAA,CAAAA;AAC5D;AAEA,eACO,SAASQ,yBAAAA,GAAAA;IACd,OAAOX,sBAAAA;AACT;AAEA,eACO,SAASY,yBAAAA,CAA0BT,KAAgC,EAAA;AACxEH,IAAAA,sBAAAA,GAAyBU,+BAAgCP,CAAAA,KAAAA,CAAAA;IACzD,OAAOH,sBAAAA;AACT;AAEA,eACO,SAASa,2BAAAA,CAA4BV,KAAgC,EAAA;AAC1E,IAAA,IAAI,OAAOA,KAAU,KAAA,QAAA,IAAY,CAACC,MAAOC,CAAAA,QAAQ,CAACF,KAAQ,CAAA,EAAA;QACxD,OAAOZ,4BAAAA;AACT;IACA,OAAOG,IAAAA,CAAKY,GAAG,CAACd,mBAAqBE,EAAAA,IAAAA,CAAKE,GAAG,CAAC,CAAA,EAAGF,IAAKa,CAAAA,KAAK,CAACJ,KAAAA,CAAAA,CAAAA,CAAAA;AAC9D;AAEA,eACO,SAASW,qBAAAA,GAAAA;IACd,OAAOb,kBAAAA;AACT;AAEA,eACO,SAASc,qBAAAA,CAAsBZ,KAAgC,EAAA;AACpEF,IAAAA,kBAAAA,GAAqBY,2BAA4BV,CAAAA,KAAAA,CAAAA;IACjD,OAAOF,kBAAAA;AACT;AAEA,eACae,MAAAA,yBAAAA,GAA4B;AAEzC,eACaC,MAAAA,uBAAAA,GAA0B;AAEvC;;;IAIO,IAAWC,oBAAAA,iBAAAA,SAAAA,oBAAAA,EAAAA;;;;;;;;;;;AAAAA,IAAAA,OAAAA,oBAAAA;AAWjB,CAAA,CAAA,EAAA;AAED;;;AAGC,IACM,MAAMC,mBAAsB,GAAA,CAAA,IAAK;AACxC;;;AAGC,IACM,MAAMC,cAAiB,GAAA,CAAA,IAAK;AAEnC,iBACO,MAAMC,oBAAuB,GAAA;AAClC,IAAA,IAAIC,OAAQ,CAAA,OAAS,EAAA,SAAW,EAAA,UAAA,CAAA;IAChC,IAAIA,OAAAA,CAAQ,UAAU,QAAU,EAAA,QAAA,CAAA;AAChC,IAAA,IAAIA,OAAQ,CAAA,SAAW,EAAA,WAAW,SAAC,CAAA;IACnC,IAAIA,OAAAA,CAAQ,QAAU,EAAA,SAAA,EAAW,SAAC,CAAA;IAClC,IAAIA,OAAAA,CAAQ,UAAU,QAAU,EAAA,QAAA,CAAA;IAChC,IAAIA,OAAAA,CAAQ,QAAU,EAAA,QAAU,EAAA,QAAA,CAAA;IAChC,IAAIA,OAAAA,CAAQ,QAAU,EAAA,QAAA,EAAU,SAAC,CAAA;IACjC,IAAIA,OAAAA,CAAQ,UAAC,EAAY,QAAU,EAAA,QAAA,CAAA;IACnC,IAAIA,OAAAA,CAAQ,QAAU,EAAA,QAAA,EAAU,SAAC,CAAA;IACjC,IAAIA,OAAAA,CAAQ,SAAW,EAAA,QAAA,EAAU,SAAC,CAAA;IAClC,IAAIA,OAAAA,CAAQ,WAAW,SAAW,EAAA,QAAA,CAAA;IAClC,IAAIA,OAAAA,CAAQ,SAAW,EAAA,SAAW,EAAA,QAAA,CAAA;IAClC,IAAIA,OAAAA,CAAQ,OAAS,EAAA,OAAA,EAAS,SAAC,CAAA;AAC/B,IAAA,IAAIA,OAAQ,CAAA,SAAW,EAAA,WAAW,SAAC,CAAA;AACnC,IAAA,IAAIA,OAAQ,CAAA,SAAW,EAAA,UAAU,SAAC,CAAA;AAClC,IAAA,IAAIA,OAAQ,CAAA,OAAS,EAAA,QAAA,EAAU,SAAC,CAAA;IAChC,IAAIA,OAAAA,CAAQ,UAAU,QAAU,EAAA,QAAA,CAAA;AAChC,IAAA,IAAIA,OAAQ,CAAA,SAAW,EAAA,WAAW,SAAC,CAAA;AACnC,IAAA,IAAIA,OAAQ,CAAA,UAAY,EAAA,WAAW,SAAC,CAAA;IACpC,IAAIA,OAAAA,CAAQ,UAAU,QAAU,EAAA,QAAA,CAAA;AAChC,IAAA,IAAIA,OAAQ,CAAA,SAAW,EAAA,SAAW,EAAA,QAAA,CAAA;IAClC,IAAIA,OAAAA,CAAQ,OAAS,EAAA,QAAA,EAAU,SAAC,CAAA;AAChC,IAAA,IAAIA,OAAQ,CAAA,UAAY,EAAA,WAAW,SAAC,CAAA;IACpC,IAAIA,OAAAA,CAAQ,UAAU,SAAW,EAAA,QAAA,CAAA;IACjC,IAAIA,OAAAA,CAAQ,SAAC,EAAU,OAAS,EAAA,QAAA,CAAA;AAChC,IAAA,IAAIA,OAAQ,CAAA,QAAA,EAAU,SAAC,EAAU,QAAC,CAAA;AAClC,IAAA,IAAIA,OAAQ,CAAA,SAAW,EAAA,UAAU,SAAC,CAAA;AAClC,IAAA,IAAIA,OAAQ,CAAA,SAAW,EAAA,UAAY,EAAA,QAAA,CAAA;IACnC,IAAIA,OAAAA,CAAQ,UAAU,QAAU,EAAA,QAAA,CAAA;AAChC,IAAA,IAAIA,OAAQ,CAAA,OAAA,EAAS,SAAC,EAAU,SAAC,CAAA;AACjC,IAAA,IAAIA,OAAQ,CAAA,SAAW,EAAA,WAAW,SAAC,CAAA;AACnC,IAAA,IAAIA,OAAQ,CAAA,UAAY,EAAA,QAAA,EAAU,UAAC,CAAA;AACnC,IAAA,IAAIA,OAAQ,CAAA,SAAW,EAAA,WAAW,SAAC,CAAA;IACnC,IAAIA,OAAAA,CAAQ,QAAU,EAAA,QAAA,EAAU,SAAC,CAAA;AACjC,IAAA,IAAIA,OAAQ,CAAA,SAAW,EAAA,SAAW,EAAA,QAAA,CAAA;IAClC,IAAIA,OAAAA,CAAQ,SAAS,QAAU,EAAA,QAAA,CAAA;AAC/B,IAAA,IAAIA,OAAQ,CAAA,QAAA,EAAU,SAAC,EAAU,SAAC,CAAA;IAClC,IAAIA,OAAAA,CAAQ,SAAC,EAAU,OAAS,EAAA,QAAA,CAAA;IAChC,IAAIA,OAAAA,CAAQ,SAAC,EAAW,MAAQ,EAAA,QAAA,CAAA;IAChC,IAAIA,OAAAA,CAAQ,QAAU,EAAA,QAAA,EAAU,SAAC,CAAA;IACjC,IAAIA,OAAAA,CAAQ,QAAC,EAAS,QAAU,EAAA,QAAA,CAAA;IAChC,IAAIA,OAAAA,CAAQ,OAAS,EAAA,QAAA,EAAU,SAAC,CAAA;IAChC,IAAIA,OAAAA,CAAQ,UAAU,QAAU,EAAA,QAAA,CAAA;AAChC,IAAA,IAAIA,OAAQ,CAAA,UAAY,EAAA,SAAW,EAAA,QAAA,CAAA;IACnC,IAAIA,OAAAA,CAAQ,UAAU,QAAU,EAAA,QAAA,CAAA;AAChC,IAAA,IAAIA,OAAQ,CAAA,QAAA,EAAU,SAAC,EAAU,QAAC,CAAA;AAClC,IAAA,IAAIA,OAAQ,CAAA,QAAA,EAAU,UAAC,EAAW,SAAC,CAAA;IACnC,IAAIA,OAAAA,CAAQ,QAAU,EAAA,SAAW,EAAA,QAAA,CAAA;AACjC,IAAA,IAAIA,OAAQ,CAAA,SAAW,EAAA,QAAA,EAAU,SAAC,CAAA;IAClC,IAAIA,OAAAA,CAAQ,UAAU,OAAS,EAAA,QAAA,CAAA;IAC/B,IAAIA,OAAAA,CAAQ,UAAC,EAAW,QAAU,EAAA,QAAA,CAAA;IAClC,IAAIA,OAAAA,CAAQ,SAAC,EAAU,QAAU,EAAA,QAAA,CAAA;AACjC,IAAA,IAAIA,OAAQ,CAAA,QAAA,EAAU,SAAC,EAAU,QAAC,CAAA;IAClC,IAAIA,OAAAA,CAAQ,UAAU,OAAS,EAAA,QAAA,CAAA;IAC/B,IAAIA,OAAAA,CAAQ,QAAU,EAAA,QAAA,EAAU,SAAC,CAAA;AACjC,IAAA,IAAIA,OAAQ,CAAA,SAAW,EAAA,QAAA,EAAU,SAAC,CAAA;IAClC,IAAIA,OAAAA,CAAQ,QAAU,EAAA,QAAU,EAAA,QAAA,CAAA;AAChC,IAAA,IAAIA,OAAQ,CAAA,SAAW,EAAA,WAAW,SAAC,CAAA;AACnC,IAAA,IAAIA,OAAQ,CAAA,UAAY,EAAA,WAAW,SAAC,CAAA;IACpC,IAAIA,OAAAA,CAAQ,QAAU,EAAA,SAAW,EAAA,SAAA,CAAA;IACjC,IAAIA,OAAAA,CAAQ,WAAW,QAAU,EAAA,QAAA,CAAA;IACjC,IAAIA,OAAAA,CAAQ,SAAC,EAAU,QAAU,EAAA,QAAA,CAAA;IACjC,IAAIA,OAAAA,CAAQ,QAAU,EAAA,UAAY,EAAA,QAAA,CAAA;AAClC,IAAA,IAAIA,OAAQ,CAAA,UAAY,EAAA,WAAW,SAAC;;AAGtC,iBACO,IAAKC,GAAAA,iBAAAA,SAAAA,GAAAA,EAAAA;;;AAAAA,IAAAA,OAAAA,GAAAA;AAGX,CAAA,CAAA,EAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"values.js","sources":["../src/values.ts"],"sourcesContent":["import { Vector3 } from '@zephyr3d/base';\r\n\r\n/**\r\n * Forward render pass type\r\n * @public\r\n */\r\nexport const RENDER_PASS_TYPE_LIGHT = 0;\r\n/**\r\n * Shadow map render pass type\r\n * @public\r\n */\r\nexport const RENDER_PASS_TYPE_SHADOWMAP = 1;\r\n/**\r\n * Depth only render pass type\r\n * @public\r\n */\r\nexport const RENDER_PASS_TYPE_DEPTH = 2;\r\n/**\r\n * Object color render pass type\r\n * @public\r\n */\r\nexport const RENDER_PASS_TYPE_OBJECT_COLOR = 3;\r\n/**\r\n * Voxelize render pass type: a mesh is rasterized along three axes into a 3D\r\n * material atlas, its fragments storing albedo and emissive rather than a\r\n * shaded colour. Used by the global illumination's voxel scene.\r\n * @public\r\n */\r\nexport const RENDER_PASS_TYPE_VOXELIZE = 4;\r\n\r\n/**\r\n * Builtin texture name for sheen LUT\r\n * @public\r\n */\r\nexport const BUILTIN_ASSET_TEXTURE_SHEEN_LUT = 'LUT_Sheen';\r\n\r\n/**\r\n * Builtin cube texture for test\r\n * @public\r\n */\r\nexport const BUILTIN_ASSET_TEST_CUBEMAP = 'TEST_Cubemap';\r\n\r\n/**\r\n * No light\r\n * @public\r\n */\r\nexport const LIGHT_TYPE_NONE = 0;\r\n\r\n/**\r\n * Directional light type\r\n * @public\r\n */\r\nexport const LIGHT_TYPE_DIRECTIONAL = 1;\r\n\r\n/**\r\n * Point light type\r\n * @public\r\n */\r\nexport const LIGHT_TYPE_POINT = 2;\r\n\r\n/**\r\n * Spot light type\r\n * @public\r\n */\r\nexport const LIGHT_TYPE_SPOT = 3;\r\n/**\r\n * Rectangular area light type\r\n * @public\r\n */\r\nexport const LIGHT_TYPE_RECT = 4;\r\n\r\n/**\r\n * Max number of shadow-casting lights backed by the screen-space shadow mask.\r\n *\r\n * Each mask layer packs 4 lights (one per RGBA8 channel), so this maps to\r\n * `MAX_SHADOW_MASK_LIGHTS / 4` texture array layers. Shadow-casting lights are\r\n * placed at the head of the clustered light buffer. Shadow lights beyond this\r\n * cap fall back to being lit without a mask-backed shadow.\r\n * @public\r\n */\r\nexport const MAX_SHADOW_MASK_LIGHTS = 32;\r\n\r\n/**\r\n * Max number of directional lights shaded outside the light clusters, so they do not\r\n * take one of the few slots in each. Any beyond this are listed in every cluster.\r\n * @internal\r\n */\r\nexport const MAX_GLOBAL_LIGHTS = 4;\r\n\r\n/**\r\n * Opaque render queue type\r\n * @public\r\n */\r\nexport const QUEUE_OPAQUE = 1;\r\n\r\n/**\r\n * Transparent render queue type\r\n * @public\r\n */\r\nexport const QUEUE_TRANSPARENT = 2;\r\n\r\n/** @public */\r\nexport const MORPH_TARGET_POSITION = 0;\r\n/** @public */\r\nexport const MORPH_TARGET_NORMAL = 1;\r\n/** @public */\r\nexport const MORPH_TARGET_TANGENT = 2;\r\n/** @public */\r\nexport const MORPH_TARGET_COLOR = 3;\r\n/** @public */\r\nexport const MORPH_TARGET_TEX0 = 4;\r\n/** @public */\r\nexport const MORPH_TARGET_TEX1 = 5;\r\n/** @public */\r\nexport const MORPH_TARGET_TEX2 = 6;\r\n/** @public */\r\nexport const MORPH_TARGET_TEX3 = 7;\r\n/** @public */\r\nexport const MAX_MORPH_ATTRIBUTES = 8;\r\n/** @public */\r\nexport const DEFAULT_MORPH_TARGET_LIMIT = 256;\r\n/** @public */\r\nexport const DEFAULT_ACTIVE_MORPH_TARGET_LIMIT = 64;\r\n/** @public */\r\nexport const MAX_MORPH_TARGETS = 1024;\r\n/** @public */\r\nexport const DEFAULT_SKIN_INFLUENCE_LIMIT = 4;\r\n/** @public */\r\nexport const MAX_SKIN_INFLUENCES = 12;\r\n/** @public */\r\nexport const MAX_SKIN_EXTRA_INFLUENCE_PAIRS = Math.ceil(Math.max(0, MAX_SKIN_INFLUENCES - 4) / 2);\r\n/** @public */\r\nexport const MORPH_WEIGHTS_VECTOR_COUNT = (MAX_MORPH_TARGETS + 3) >> 2;\r\n/** @public */\r\nexport const MORPH_ATTRIBUTE_VECTOR_COUNT = (MAX_MORPH_ATTRIBUTES + 3) >> 2;\r\n\r\nlet morphTargetLimit = DEFAULT_MORPH_TARGET_LIMIT;\r\nlet activeMorphTargetLimit = DEFAULT_ACTIVE_MORPH_TARGET_LIMIT;\r\nlet skinInfluenceLimit = DEFAULT_SKIN_INFLUENCE_LIMIT;\r\n\r\n/** @public */\r\nexport function normalizeMorphTargetLimit(value: number | null | undefined): number {\r\n if (typeof value !== 'number' || !Number.isFinite(value)) {\r\n return DEFAULT_MORPH_TARGET_LIMIT;\r\n }\r\n return Math.min(MAX_MORPH_TARGETS, Math.max(1, Math.trunc(value)));\r\n}\r\n\r\n/** @public */\r\nexport function getMorphTargetLimit(): number {\r\n return morphTargetLimit;\r\n}\r\n\r\n/** @public */\r\nexport function setMorphTargetLimit(value: number | null | undefined): number {\r\n morphTargetLimit = normalizeMorphTargetLimit(value);\r\n return morphTargetLimit;\r\n}\r\n\r\n/** @public */\r\nexport function normalizeActiveMorphTargetLimit(value: number | null | undefined): number {\r\n if (typeof value !== 'number' || !Number.isFinite(value)) {\r\n return DEFAULT_ACTIVE_MORPH_TARGET_LIMIT;\r\n }\r\n return Math.min(MAX_MORPH_TARGETS, Math.max(1, Math.trunc(value)));\r\n}\r\n\r\n/** @public */\r\nexport function getActiveMorphTargetLimit(): number {\r\n return activeMorphTargetLimit;\r\n}\r\n\r\n/** @public */\r\nexport function setActiveMorphTargetLimit(value: number | null | undefined): number {\r\n activeMorphTargetLimit = normalizeActiveMorphTargetLimit(value);\r\n return activeMorphTargetLimit;\r\n}\r\n\r\n/** @public */\r\nexport function normalizeSkinInfluenceLimit(value: number | null | undefined): number {\r\n if (typeof value !== 'number' || !Number.isFinite(value)) {\r\n return DEFAULT_SKIN_INFLUENCE_LIMIT;\r\n }\r\n return Math.min(MAX_SKIN_INFLUENCES, Math.max(1, Math.trunc(value)));\r\n}\r\n\r\n/** @public */\r\nexport function getSkinInfluenceLimit(): number {\r\n return skinInfluenceLimit;\r\n}\r\n\r\n/** @public */\r\nexport function setSkinInfluenceLimit(value: number | null | undefined): number {\r\n skinInfluenceLimit = normalizeSkinInfluenceLimit(value);\r\n return skinInfluenceLimit;\r\n}\r\n\r\n/** @public */\r\nexport const MAX_TERRAIN_MIPMAP_LEVELS = 64;\r\n\r\n/** @public */\r\nexport const MAX_GERSTNER_WAVE_COUNT = 16;\r\n\r\n/**\r\n * Material varying flags\r\n * @public\r\n */\r\nexport const enum MaterialVaryingFlags {\r\n MORPH_ANIMATION = 1 << 0,\r\n SKIN_ANIMATION = 1 << 1,\r\n INSTANCING = 1 << 2,\r\n SCENE_STORE_ROUGHNESS = 1 << 3,\r\n APPLY_FOG = 1 << 4,\r\n SSS_STORE_PROFILE = 1 << 5,\r\n SSS_STORE_DIFFUSE = 1 << 6,\r\n SCENE_STORE_NORMAL = 1 << 7,\r\n SSS_STORE_TRANSMISSION = 1 << 8,\r\n SKIN_SSS_STORE = 1 << 9,\r\n SKIN_PROFILE_ID_STORE = 1 << 10\r\n}\r\n\r\n/**\r\n * Atmospheric Fog flag\r\n * @public\r\n */\r\nexport const ATMOSPHERIC_FOG_BIT = 1 << 0;\r\n/**\r\n * Exponential Fog flag\r\n * @public\r\n */\r\nexport const HEIGHT_FOG_BIT = 1 << 1;\r\n\r\n/** @internal */\r\nexport const uniformSphereSamples = [\r\n new Vector3(-0.7838, -0.620933, 0.00996137),\r\n new Vector3(0.106751, 0.965982, 0.235549),\r\n new Vector3(-0.215177, -0.687115, -0.693954),\r\n new Vector3(0.318002, 0.0640084, -0.945927),\r\n new Vector3(0.357396, 0.555673, 0.750664),\r\n new Vector3(0.866397, -0.19756, 0.458613),\r\n new Vector3(0.130216, 0.232736, -0.963783),\r\n new Vector3(-0.00174431, 0.376657, 0.926351),\r\n new Vector3(0.663478, 0.704806, -0.251089),\r\n new Vector3(0.0327851, 0.110534, -0.993331),\r\n new Vector3(0.0561973, 0.0234288, 0.998145),\r\n new Vector3(0.0905264, -0.169771, 0.981317),\r\n new Vector3(0.26694, 0.95222, -0.148393),\r\n new Vector3(-0.812874, -0.559051, -0.163393),\r\n new Vector3(-0.323378, -0.25855, -0.910263),\r\n new Vector3(-0.1333, 0.591356, -0.795317),\r\n new Vector3(0.480876, 0.408711, 0.775702),\r\n new Vector3(-0.332263, -0.533895, -0.777533),\r\n new Vector3(-0.0392473, -0.704457, -0.708661),\r\n new Vector3(0.427015, 0.239811, 0.871865),\r\n new Vector3(-0.416624, -0.563856, 0.713085),\r\n new Vector3(0.12793, 0.334479, -0.933679),\r\n new Vector3(-0.0343373, -0.160593, -0.986423),\r\n new Vector3(0.580614, 0.0692947, 0.811225),\r\n new Vector3(-0.459187, 0.43944, 0.772036),\r\n new Vector3(0.215474, -0.539436, -0.81399),\r\n new Vector3(-0.378969, -0.31988, -0.868366),\r\n new Vector3(-0.279978, -0.0109692, 0.959944),\r\n new Vector3(0.692547, 0.690058, 0.210234),\r\n new Vector3(0.53227, -0.123044, -0.837585),\r\n new Vector3(-0.772313, -0.283334, -0.568555),\r\n new Vector3(-0.0311218, 0.995988, -0.0838977),\r\n new Vector3(-0.366931, -0.276531, -0.888196),\r\n new Vector3(0.488778, 0.367878, -0.791051),\r\n new Vector3(-0.885561, -0.453445, 0.100842),\r\n new Vector3(0.71656, 0.443635, 0.538265),\r\n new Vector3(0.645383, -0.152576, -0.748466),\r\n new Vector3(-0.171259, 0.91907, 0.354939),\r\n new Vector3(-0.0031122, 0.9457, 0.325026),\r\n new Vector3(0.731503, 0.623089, -0.276881),\r\n new Vector3(-0.91466, 0.186904, 0.358419),\r\n new Vector3(0.15595, 0.828193, -0.538309),\r\n new Vector3(0.175396, 0.584732, 0.792038),\r\n new Vector3(-0.0838381, -0.943461, 0.320707),\r\n new Vector3(0.305876, 0.727604, 0.614029),\r\n new Vector3(0.754642, -0.197903, -0.62558),\r\n new Vector3(0.217255, -0.0177771, -0.975953),\r\n new Vector3(0.140412, -0.844826, 0.516287),\r\n new Vector3(-0.549042, 0.574859, -0.606705),\r\n new Vector3(0.570057, 0.17459, 0.802841),\r\n new Vector3(-0.0330304, 0.775077, 0.631003),\r\n new Vector3(-0.938091, 0.138937, 0.317304),\r\n new Vector3(0.483197, -0.726405, -0.48873),\r\n new Vector3(0.485263, 0.52926, 0.695991),\r\n new Vector3(0.224189, 0.742282, -0.631472),\r\n new Vector3(-0.322429, 0.662214, -0.676396),\r\n new Vector3(0.625577, -0.12711, 0.769738),\r\n new Vector3(-0.714032, -0.584461, -0.385439),\r\n new Vector3(-0.0652053, -0.892579, -0.446151),\r\n new Vector3(0.408421, -0.912487, 0.0236566),\r\n new Vector3(0.0900381, 0.319983, 0.943135),\r\n new Vector3(-0.708553, 0.483646, 0.513847),\r\n new Vector3(0.803855, -0.0902273, 0.587942),\r\n new Vector3(-0.0555802, -0.374602, -0.925519)\r\n];\r\n\r\n/** @internal */\r\nexport enum Fog {\r\n FOG_TYPE_NONE = 0,\r\n FOG_TYPE_HEIGHT = 4\r\n}\r\n"],"names":["RENDER_PASS_TYPE_LIGHT","RENDER_PASS_TYPE_SHADOWMAP","RENDER_PASS_TYPE_DEPTH","RENDER_PASS_TYPE_OBJECT_COLOR","RENDER_PASS_TYPE_VOXELIZE","BUILTIN_ASSET_TEXTURE_SHEEN_LUT","BUILTIN_ASSET_TEST_CUBEMAP","LIGHT_TYPE_NONE","LIGHT_TYPE_DIRECTIONAL","LIGHT_TYPE_POINT","LIGHT_TYPE_SPOT","LIGHT_TYPE_RECT","MAX_SHADOW_MASK_LIGHTS","MAX_GLOBAL_LIGHTS","QUEUE_OPAQUE","QUEUE_TRANSPARENT","MORPH_TARGET_POSITION","MORPH_TARGET_NORMAL","MORPH_TARGET_TANGENT","MORPH_TARGET_COLOR","MORPH_TARGET_TEX0","MORPH_TARGET_TEX1","MORPH_TARGET_TEX2","MORPH_TARGET_TEX3","MAX_MORPH_ATTRIBUTES","DEFAULT_MORPH_TARGET_LIMIT","DEFAULT_ACTIVE_MORPH_TARGET_LIMIT","MAX_MORPH_TARGETS","DEFAULT_SKIN_INFLUENCE_LIMIT","MAX_SKIN_INFLUENCES","MAX_SKIN_EXTRA_INFLUENCE_PAIRS","Math","ceil","max","MORPH_WEIGHTS_VECTOR_COUNT","MORPH_ATTRIBUTE_VECTOR_COUNT","morphTargetLimit","activeMorphTargetLimit","skinInfluenceLimit","normalizeMorphTargetLimit","value","Number","isFinite","min","trunc","getMorphTargetLimit","setMorphTargetLimit","normalizeActiveMorphTargetLimit","getActiveMorphTargetLimit","setActiveMorphTargetLimit","normalizeSkinInfluenceLimit","getSkinInfluenceLimit","setSkinInfluenceLimit","MAX_TERRAIN_MIPMAP_LEVELS","MAX_GERSTNER_WAVE_COUNT","MaterialVaryingFlags","ATMOSPHERIC_FOG_BIT","HEIGHT_FOG_BIT","uniformSphereSamples","Vector3","Fog"],"mappings":"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"}
|