@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
package/dist/camera/camera.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { halton23, Matrix4x4, Vector4, DEPTH_CLEAR_VALUE, DRef, Vector2, REVERSE_Z, Vector3, Ray, Frustum } from '@zephyr3d/base';
|
|
1
|
+
import { halton23, Matrix4x4, Vector4, DEPTH_CLEAR_VALUE, DRef, Vector2, DEBUG_VIEWS, REVERSE_Z, Vector3, Ray, Frustum } from '@zephyr3d/base';
|
|
2
2
|
import { SceneNode } from '../scene/scene_node.js';
|
|
3
3
|
import { Compositor } from '../posteffect/compositor.js';
|
|
4
4
|
import { TAA } from '../posteffect/taa.js';
|
|
5
5
|
import { SSGI } from '../posteffect/ssgi.js';
|
|
6
6
|
import { SSR } from '../posteffect/ssr.js';
|
|
7
7
|
import { SSS } from '../posteffect/sss.js';
|
|
8
|
-
import {
|
|
9
|
-
import { SubsurfaceProfile } from '../material/subsurfaceprofile.js';
|
|
8
|
+
import { PostSSS } from '../posteffect/postsss.js';
|
|
10
9
|
import { Tonemap } from '../posteffect/tonemap.js';
|
|
11
10
|
import { FXAA } from '../posteffect/fxaa.js';
|
|
12
11
|
import { Bloom } from '../posteffect/bloom.js';
|
|
@@ -20,6 +19,7 @@ import { WeightedBlendedOIT } from '../render/weightedblended_oit.js';
|
|
|
20
19
|
import { DualDepthPeelingOIT } from '../render/dualdepthpeeling_oit.js';
|
|
21
20
|
import { RGHistoryResources } from '../render/rendergraph/history_resources.js';
|
|
22
21
|
import { calculateEV100, calculatePhysicalExposure } from '../utility/physical.js';
|
|
22
|
+
import { checkDebugViews } from '../render/debug_views.js';
|
|
23
23
|
|
|
24
24
|
const SSGI_QUALITY_PRESET_SETTINGS = {
|
|
25
25
|
quality: {
|
|
@@ -123,9 +123,13 @@ const SSS_QUALITY_PRESET_SETTINGS = {
|
|
|
123
123
|
/** @internal Whether to perform a depth pre-pass. */ _depthPrePass;
|
|
124
124
|
/** @internal Render path selection for scene renderer. */ _renderPath;
|
|
125
125
|
/** @internal Whether command buffers may be reused for optimization. */ _commandBufferReuse;
|
|
126
|
+
/** @internal Scale of mesh level of detail screen sizes. */ _lodDistanceScale;
|
|
127
|
+
/** @internal Whether meshes are drawn as wireframes in this view. */ _wireframe;
|
|
128
|
+
/** @internal Whether meshes are colored by their level of detail in this view. */ _lodColoration;
|
|
126
129
|
/** @internal Hi-Z acceleration enable (primarily for SSR). */ _HiZ;
|
|
127
130
|
_HiZNearest;
|
|
128
131
|
/** @internal Screen-space shadow mask enable (Forward+ deferred shadows). */ _screenSpaceShadowMask;
|
|
132
|
+
/** @internal */ _contactShadows;
|
|
129
133
|
/** @internal If true, a float point backbuffer will be used. The default value is true */ _HDR;
|
|
130
134
|
/** @internal Tonemap enable flag (via post effect). */ _toneMap;
|
|
131
135
|
/** @internal Tonemap post effect reference. */ _postEffectTonemap;
|
|
@@ -200,19 +204,8 @@ const SSS_QUALITY_PRESET_SETTINGS = {
|
|
|
200
204
|
/** @internal SSS multi-scatter energy compensation. */ _sssMultiScatter;
|
|
201
205
|
/** @internal Cached runtime SSS settings after applying the quality preset. */ _sssResolvedSettings;
|
|
202
206
|
/** @internal SSS debug visualization mode. */ _sssDebugView;
|
|
203
|
-
/** @internal Skin SSS
|
|
204
|
-
|
|
205
|
-
/** @internal Skin SSS final blend strength. */ _skinSSSStrength;
|
|
206
|
-
/** @internal Skin SSS mask opacity bias. */ _skinSSSOpacity;
|
|
207
|
-
/** @internal Skin SSS maximum blur tap spacing in pixels. */ _skinSSSSampleStep;
|
|
208
|
-
/** @internal Skin SSS world-space scatter radius. */ _skinSSSScatterRadius;
|
|
209
|
-
/** @internal Skin SSS smoothing ("beauty filter") amount. */ _skinSSSSmoothness;
|
|
210
|
-
/** @internal Skin SSS depth rejection scale. */ _skinSSSDepthScale;
|
|
211
|
-
/** @internal Skin SSS blurred multiplier boost. */ _skinSSSColorBoost;
|
|
212
|
-
_skinSSSGlow;
|
|
213
|
-
_skinSSSProfilePreset;
|
|
214
|
-
_skinSSSProfile;
|
|
215
|
-
_skinSSSScatterTint;
|
|
207
|
+
/** @internal Skin SSS post effect reference. */ _postEffectPostSSS;
|
|
208
|
+
_SSSDebugOutput;
|
|
216
209
|
/** @internal SSAO enable flag (via post effect). */ _SSAO;
|
|
217
210
|
/** @internal SSAO post effect reference. */ _postEffectSSAO;
|
|
218
211
|
/** @internal SSAO scale (sampling radius multiplier). */ _SSAOOcclusionRadius;
|
|
@@ -274,6 +267,7 @@ const SSS_QUALITY_PRESET_SETTINGS = {
|
|
|
274
267
|
this._HiZ = false;
|
|
275
268
|
this._HiZNearest = false;
|
|
276
269
|
this._screenSpaceShadowMask = true;
|
|
270
|
+
this._contactShadows = true;
|
|
277
271
|
this._HDR = true;
|
|
278
272
|
this._toneMap = true;
|
|
279
273
|
this._postEffectTonemap = new DRef();
|
|
@@ -359,19 +353,8 @@ const SSS_QUALITY_PRESET_SETTINGS = {
|
|
|
359
353
|
};
|
|
360
354
|
this.updateSSSResolvedSettings();
|
|
361
355
|
this._sssDebugView = 'none';
|
|
362
|
-
this.
|
|
363
|
-
this.
|
|
364
|
-
this._skinSSSStrength = 1;
|
|
365
|
-
this._skinSSSOpacity = 0.18;
|
|
366
|
-
this._skinSSSSampleStep = 2;
|
|
367
|
-
this._skinSSSScatterRadius = 0.02;
|
|
368
|
-
this._skinSSSSmoothness = 0;
|
|
369
|
-
this._skinSSSDepthScale = 80;
|
|
370
|
-
this._skinSSSColorBoost = 1;
|
|
371
|
-
this._skinSSSGlow = 0;
|
|
372
|
-
this._skinSSSProfilePreset = 'skin_default';
|
|
373
|
-
this._skinSSSProfile = null;
|
|
374
|
-
this._skinSSSScatterTint = new Vector4(1, 1, 1, 1);
|
|
356
|
+
this._postEffectPostSSS = new DRef();
|
|
357
|
+
this._SSSDebugOutput = 'none';
|
|
375
358
|
this._SSAO = false;
|
|
376
359
|
this._postEffectSSAO = new DRef();
|
|
377
360
|
this._SSAOOcclusionRadius = 0.25;
|
|
@@ -380,6 +363,9 @@ const SSS_QUALITY_PRESET_SETTINGS = {
|
|
|
380
363
|
this._SSAOBlurDepthCutoff = 2;
|
|
381
364
|
this._pickResult = null;
|
|
382
365
|
this._commandBufferReuse = true;
|
|
366
|
+
this._lodDistanceScale = 1;
|
|
367
|
+
this._wireframe = false;
|
|
368
|
+
this._lodColoration = false;
|
|
383
369
|
this._jitteredVPMatrix = new Matrix4x4();
|
|
384
370
|
this._jitteredInvVPMatrix = new Matrix4x4();
|
|
385
371
|
this._jitterValue = new Vector2(0, 0);
|
|
@@ -457,7 +443,7 @@ const SSS_QUALITY_PRESET_SETTINGS = {
|
|
|
457
443
|
* Materials that query it - water's shoreline foam - turn it on by themselves,
|
|
458
444
|
* the way a transmissive material turns on the scene colour copy, so this only
|
|
459
445
|
* has to be set to force the channel on for something the renderer cannot see
|
|
460
|
-
* coming.
|
|
446
|
+
* coming.
|
|
461
447
|
*/ get HiZNearest() {
|
|
462
448
|
return this._HiZNearest;
|
|
463
449
|
}
|
|
@@ -478,6 +464,18 @@ const SSS_QUALITY_PRESET_SETTINGS = {
|
|
|
478
464
|
this._screenSpaceShadowMask = !!val;
|
|
479
465
|
}
|
|
480
466
|
/**
|
|
467
|
+
* Whether lights with a non-zero {@link PunctualLight.contactShadowLength}
|
|
468
|
+
* trace contact shadows.
|
|
469
|
+
*
|
|
470
|
+
* Contact shadows are traced inside the screen-space shadow mask, so they
|
|
471
|
+
* also require {@link Camera.screenSpaceShadowMask}.
|
|
472
|
+
*/ get contactShadows() {
|
|
473
|
+
return this._contactShadows;
|
|
474
|
+
}
|
|
475
|
+
set contactShadows(val) {
|
|
476
|
+
this._contactShadows = !!val;
|
|
477
|
+
}
|
|
478
|
+
/**
|
|
481
479
|
* Render path used by the scene renderer.
|
|
482
480
|
*/ get renderPath() {
|
|
483
481
|
return this._renderPath;
|
|
@@ -635,7 +633,8 @@ const SSS_QUALITY_PRESET_SETTINGS = {
|
|
|
635
633
|
*
|
|
636
634
|
* @remarks
|
|
637
635
|
* See {@link Bloom.karisAverage}. On by default; costs a little halo reach in exchange for
|
|
638
|
-
* stability on high-frequency speculars.
|
|
636
|
+
* stability on high-frequency speculars. Legacy lighting only: physical lighting always averages
|
|
637
|
+
* linearly.
|
|
639
638
|
*/ get bloomKarisAverage() {
|
|
640
639
|
return this._bloomKarisAverage;
|
|
641
640
|
}
|
|
@@ -920,7 +919,7 @@ const SSS_QUALITY_PRESET_SETTINGS = {
|
|
|
920
919
|
this.invalidateSSGIHistory();
|
|
921
920
|
}
|
|
922
921
|
}
|
|
923
|
-
/** Pixel stride
|
|
922
|
+
/** Pixel stride of the linear ray marcher, used when no Hi-Z pyramid is available. */ get ssgiStride() {
|
|
924
923
|
return this._ssgiStride;
|
|
925
924
|
}
|
|
926
925
|
set ssgiStride(val) {
|
|
@@ -940,7 +939,7 @@ const SSS_QUALITY_PRESET_SETTINGS = {
|
|
|
940
939
|
this.invalidateSSGIHistory();
|
|
941
940
|
}
|
|
942
941
|
}
|
|
943
|
-
/** Whether SSGI temporal accumulation is enabled.
|
|
942
|
+
/** Whether SSGI temporal accumulation is enabled. */ get ssgiTemporal() {
|
|
944
943
|
return this._ssgiTemporal;
|
|
945
944
|
}
|
|
946
945
|
set ssgiTemporal(val) {
|
|
@@ -1146,143 +1145,34 @@ const SSS_QUALITY_PRESET_SETTINGS = {
|
|
|
1146
1145
|
set sssDebugView(val) {
|
|
1147
1146
|
this._sssDebugView = val ?? 'none';
|
|
1148
1147
|
}
|
|
1149
|
-
/** Gets whether the dedicated Skin SSS post effect is enabled. */ get skinSSS() {
|
|
1150
|
-
return this._postEffectSkinSSS.get().enabled;
|
|
1151
|
-
}
|
|
1152
|
-
set skinSSS(val) {
|
|
1153
|
-
this._postEffectSkinSSS.get().enabled = !!val;
|
|
1154
|
-
}
|
|
1155
|
-
/** Final blend strength for the dedicated Skin SSS post effect. */ get skinSSSStrength() {
|
|
1156
|
-
return this._skinSSSStrength;
|
|
1157
|
-
}
|
|
1158
|
-
set skinSSSStrength(val) {
|
|
1159
|
-
this._skinSSSStrength = Math.max(0, val ?? 0);
|
|
1160
|
-
if (this._postEffectSkinSSS.get()) {
|
|
1161
|
-
this._postEffectSkinSSS.get().strength = this._skinSSSStrength;
|
|
1162
|
-
}
|
|
1163
|
-
}
|
|
1164
|
-
/** Bias subtracted from the blurred skin mask before compositing. */ get skinSSSOpacity() {
|
|
1165
|
-
return this._skinSSSOpacity;
|
|
1166
|
-
}
|
|
1167
|
-
set skinSSSOpacity(val) {
|
|
1168
|
-
this._skinSSSOpacity = Math.max(0, Math.min(1, val ?? 0));
|
|
1169
|
-
if (this._postEffectSkinSSS.get()) {
|
|
1170
|
-
this._postEffectSkinSSS.get().opacity = this._skinSSSOpacity;
|
|
1171
|
-
}
|
|
1172
|
-
}
|
|
1173
|
-
/** Maximum pixel spacing between blur taps. Caps the projected scatter radius for close-ups. */ get skinSSSSampleStep() {
|
|
1174
|
-
return this._skinSSSSampleStep;
|
|
1175
|
-
}
|
|
1176
|
-
set skinSSSSampleStep(val) {
|
|
1177
|
-
this._skinSSSSampleStep = Math.max(0.25, val ?? 0.25);
|
|
1178
|
-
if (this._postEffectSkinSSS.get()) {
|
|
1179
|
-
this._postEffectSkinSSS.get().sampleStep = this._skinSSSSampleStep;
|
|
1180
|
-
}
|
|
1181
|
-
}
|
|
1182
|
-
/** World-space scatter radius. The blur width shrinks with distance to keep this constant. */ get skinSSSScatterRadius() {
|
|
1183
|
-
return this._skinSSSScatterRadius;
|
|
1184
|
-
}
|
|
1185
|
-
set skinSSSScatterRadius(val) {
|
|
1186
|
-
this._skinSSSScatterRadius = Math.max(0, val ?? 0);
|
|
1187
|
-
if (this._postEffectSkinSSS.get()) {
|
|
1188
|
-
this._postEffectSkinSSS.get().scatterRadius = this._skinSSSScatterRadius;
|
|
1189
|
-
}
|
|
1190
|
-
}
|
|
1191
|
-
/** Skin smoothing ("beauty filter") amount for the dedicated Skin SSS post effect. */ get skinSSSSmoothness() {
|
|
1192
|
-
return this._skinSSSSmoothness;
|
|
1193
|
-
}
|
|
1194
|
-
set skinSSSSmoothness(val) {
|
|
1195
|
-
this._skinSSSSmoothness = Math.max(0, Math.min(1, val ?? 0));
|
|
1196
|
-
if (this._postEffectSkinSSS.get()) {
|
|
1197
|
-
this._postEffectSkinSSS.get().smoothness = this._skinSSSSmoothness;
|
|
1198
|
-
}
|
|
1199
|
-
}
|
|
1200
|
-
/** Depth rejection scale. The reference shader uses 80. */ get skinSSSDepthScale() {
|
|
1201
|
-
return this._skinSSSDepthScale;
|
|
1202
|
-
}
|
|
1203
|
-
set skinSSSDepthScale(val) {
|
|
1204
|
-
this._skinSSSDepthScale = Math.max(0, val ?? 0);
|
|
1205
|
-
if (this._postEffectSkinSSS.get()) {
|
|
1206
|
-
this._postEffectSkinSSS.get().depthScale = this._skinSSSDepthScale;
|
|
1207
|
-
}
|
|
1208
|
-
}
|
|
1209
|
-
/** Multiplier applied to the blurred skin lighting multiplier before compositing. */ get skinSSSColorBoost() {
|
|
1210
|
-
return this._skinSSSColorBoost;
|
|
1211
|
-
}
|
|
1212
|
-
set skinSSSColorBoost(val) {
|
|
1213
|
-
this._skinSSSColorBoost = Math.max(0, val ?? 0);
|
|
1214
|
-
if (this._postEffectSkinSSS.get()) {
|
|
1215
|
-
this._postEffectSkinSSS.get().colorBoost = this._skinSSSColorBoost;
|
|
1216
|
-
}
|
|
1217
|
-
}
|
|
1218
|
-
/**
|
|
1219
|
-
* Additive, deliberately non-conserving bleed for the Skin SSS post effect.
|
|
1220
|
-
*
|
|
1221
|
-
* @remarks
|
|
1222
|
-
* 0 (the default) keeps the effect energy conserving: light added to the dark
|
|
1223
|
-
* side of the terminator is light removed from the lit side. Raising it adds
|
|
1224
|
-
* the diffused term again without subtracting anything, for skin that reads as
|
|
1225
|
-
* lit from within; around 1 approximates the look the effect had before it
|
|
1226
|
-
* conserved energy.
|
|
1227
|
-
*/ get skinSSSGlow() {
|
|
1228
|
-
return this._skinSSSGlow;
|
|
1229
|
-
}
|
|
1230
|
-
set skinSSSGlow(val) {
|
|
1231
|
-
this._skinSSSGlow = Math.max(0, val ?? 0);
|
|
1232
|
-
if (this._postEffectSkinSSS.get()) {
|
|
1233
|
-
this._postEffectSkinSSS.get().glow = this._skinSSSGlow;
|
|
1234
|
-
}
|
|
1235
|
-
}
|
|
1236
1148
|
/**
|
|
1237
|
-
*
|
|
1149
|
+
* Switches the skin diffusion on or off for the coming frame.
|
|
1238
1150
|
*
|
|
1239
1151
|
* @remarks
|
|
1240
|
-
*
|
|
1241
|
-
*
|
|
1242
|
-
*
|
|
1243
|
-
* ratio, so `wax` and `jade` are the same code path rather than special cases;
|
|
1244
|
-
* {@link Camera.skinSSSScatterRadius} still sets how far the light reaches.
|
|
1152
|
+
* Driven by the render graph from whether the frame actually draws a skin
|
|
1153
|
+
* material, not by the application: an effect with nothing to scatter would
|
|
1154
|
+
* only cost a blit.
|
|
1245
1155
|
*
|
|
1246
|
-
* Applies to the whole pass. Per-material profiles need the profile-slot path
|
|
1247
|
-
* used by {@link SSS} instead.
|
|
1248
|
-
*/ get skinSSSProfilePreset() {
|
|
1249
|
-
return this._skinSSSProfilePreset;
|
|
1250
|
-
}
|
|
1251
|
-
set skinSSSProfilePreset(val) {
|
|
1252
|
-
this._skinSSSProfilePreset = val ?? 'skin_default';
|
|
1253
|
-
if (this._skinSSSProfile) {
|
|
1254
|
-
this._skinSSSProfile.preset = this._skinSSSProfilePreset;
|
|
1255
|
-
}
|
|
1256
|
-
if (this._postEffectSkinSSS.get()) {
|
|
1257
|
-
this._postEffectSkinSSS.get().profile = this.getSkinSSSProfile();
|
|
1258
|
-
}
|
|
1259
|
-
}
|
|
1260
|
-
/**
|
|
1261
|
-
* The profile object backing {@link Camera.skinSSSProfilePreset}, created on
|
|
1262
|
-
* first use so that cameras which never enable Skin SSS do not consume one of
|
|
1263
|
-
* the 255 global profile slots.
|
|
1264
1156
|
* @internal
|
|
1265
|
-
*/
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1157
|
+
*/ setPostSSSActive(active) {
|
|
1158
|
+
const effect = this._postEffectPostSSS.get();
|
|
1159
|
+
if (effect) {
|
|
1160
|
+
effect.enabled = active;
|
|
1269
1161
|
}
|
|
1270
|
-
return this._skinSSSProfile;
|
|
1271
1162
|
}
|
|
1272
1163
|
/**
|
|
1273
|
-
*
|
|
1164
|
+
* Intermediate Skin SSS quantity to visualize instead of the shaded result.
|
|
1274
1165
|
*
|
|
1275
1166
|
* @remarks
|
|
1276
|
-
*
|
|
1277
|
-
*
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
return this._skinSSSScatterTint;
|
|
1167
|
+
* `'none'` renders normally. Use this to tell an input problem from a kernel
|
|
1168
|
+
* problem when the diffusion does not look right.
|
|
1169
|
+
*/ get SSSDebugOutput() {
|
|
1170
|
+
return this._SSSDebugOutput;
|
|
1281
1171
|
}
|
|
1282
|
-
set
|
|
1283
|
-
this.
|
|
1284
|
-
if (this.
|
|
1285
|
-
this.
|
|
1172
|
+
set SSSDebugOutput(val) {
|
|
1173
|
+
this._SSSDebugOutput = val ?? 'none';
|
|
1174
|
+
if (this._postEffectPostSSS.get()) {
|
|
1175
|
+
this._postEffectPostSSS.get().debugOutput = this._SSSDebugOutput;
|
|
1286
1176
|
}
|
|
1287
1177
|
}
|
|
1288
1178
|
/** @internal */ get ssrParams() {
|
|
@@ -1350,6 +1240,41 @@ const SSS_QUALITY_PRESET_SETTINGS = {
|
|
|
1350
1240
|
set commandBufferReuse(val) {
|
|
1351
1241
|
this._commandBufferReuse = !!val;
|
|
1352
1242
|
}
|
|
1243
|
+
/**
|
|
1244
|
+
* Scale of the mesh level of detail switch sizes in this view: above 1 meshes switch to
|
|
1245
|
+
* coarser levels closer to the camera, below 1 farther away. Default 1.
|
|
1246
|
+
*/ get lodDistanceScale() {
|
|
1247
|
+
return this._lodDistanceScale;
|
|
1248
|
+
}
|
|
1249
|
+
set lodDistanceScale(val) {
|
|
1250
|
+
this._lodDistanceScale = Math.max(0, Number(val) || 0);
|
|
1251
|
+
}
|
|
1252
|
+
/**
|
|
1253
|
+
* Whether everything in this view is drawn as the edges of its triangles, at the level of detail
|
|
1254
|
+
* in use, to inspect geometry; shadows and picking keep the triangles. A debug view, see
|
|
1255
|
+
* DEBUG_VIEWS, not saved with the camera. Default false.
|
|
1256
|
+
*/ get wireframe() {
|
|
1257
|
+
return DEBUG_VIEWS && this._wireframe;
|
|
1258
|
+
}
|
|
1259
|
+
set wireframe(val) {
|
|
1260
|
+
if (val) {
|
|
1261
|
+
checkDebugViews('Camera.wireframe');
|
|
1262
|
+
}
|
|
1263
|
+
this._wireframe = !!val;
|
|
1264
|
+
}
|
|
1265
|
+
/**
|
|
1266
|
+
* Whether every mesh of this view is shaded in the color of the level of detail it is drawn at,
|
|
1267
|
+
* white, red, green, blue, yellow, fuchsia, cyan and purple for levels 0 to 7. A debug view, not
|
|
1268
|
+
* saved with the camera; meshes are not batched while it is on. Default false.
|
|
1269
|
+
*/ get lodColoration() {
|
|
1270
|
+
return DEBUG_VIEWS && this._lodColoration;
|
|
1271
|
+
}
|
|
1272
|
+
set lodColoration(val) {
|
|
1273
|
+
if (val) {
|
|
1274
|
+
checkDebugViews('Camera.lodColoration');
|
|
1275
|
+
}
|
|
1276
|
+
this._lodColoration = !!val;
|
|
1277
|
+
}
|
|
1353
1278
|
/** Whether this camera is adapted to screen settins */ get adapted() {
|
|
1354
1279
|
return this._adapted;
|
|
1355
1280
|
}
|
|
@@ -1740,21 +1665,12 @@ const SSS_QUALITY_PRESET_SETTINGS = {
|
|
|
1740
1665
|
this._postEffectSSS.set(sss);
|
|
1741
1666
|
this._compositor.appendPostEffect(sss);
|
|
1742
1667
|
}
|
|
1743
|
-
if (!this.
|
|
1744
|
-
const
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
skinSSS.scatterRadius = this._skinSSSScatterRadius;
|
|
1750
|
-
skinSSS.smoothness = this._skinSSSSmoothness;
|
|
1751
|
-
skinSSS.depthScale = this._skinSSSDepthScale;
|
|
1752
|
-
skinSSS.colorBoost = this._skinSSSColorBoost;
|
|
1753
|
-
skinSSS.glow = this._skinSSSGlow;
|
|
1754
|
-
skinSSS.profile = this.getSkinSSSProfile();
|
|
1755
|
-
skinSSS.scatterTint = this._skinSSSScatterTint;
|
|
1756
|
-
this._postEffectSkinSSS.set(skinSSS);
|
|
1757
|
-
this._compositor.appendPostEffect(skinSSS);
|
|
1668
|
+
if (!this._postEffectPostSSS.get()) {
|
|
1669
|
+
const postSSS = new PostSSS();
|
|
1670
|
+
postSSS.enabled = false;
|
|
1671
|
+
postSSS.debugOutput = this._SSSDebugOutput;
|
|
1672
|
+
this._postEffectPostSSS.set(postSSS);
|
|
1673
|
+
this._compositor.appendPostEffect(postSSS);
|
|
1758
1674
|
}
|
|
1759
1675
|
if (!this._postEffectSSAO.get()) {
|
|
1760
1676
|
const ssao = new SAO();
|
|
@@ -1977,9 +1893,19 @@ const SSS_QUALITY_PRESET_SETTINGS = {
|
|
|
1977
1893
|
return this._pickPosY;
|
|
1978
1894
|
}
|
|
1979
1895
|
/**
|
|
1980
|
-
* Updates the controller state
|
|
1981
|
-
|
|
1982
|
-
|
|
1896
|
+
* Updates the controller state.
|
|
1897
|
+
*
|
|
1898
|
+
* The scene calls this for its main camera twice per frame, once per phase;
|
|
1899
|
+
* the controller is updated only in the phase it declares. Called without a
|
|
1900
|
+
* phase, the controller is updated unconditionally.
|
|
1901
|
+
*
|
|
1902
|
+
* @param deltaTime - Time since the last frame in seconds; defaults to the device's frame time.
|
|
1903
|
+
* @param phase - Only update a controller whose `updatePhase` is this.
|
|
1904
|
+
*/ updateController(deltaTime, phase) {
|
|
1905
|
+
const controller = this._controller;
|
|
1906
|
+
if (controller && (!phase || controller.updatePhase === phase)) {
|
|
1907
|
+
controller.update(deltaTime);
|
|
1908
|
+
}
|
|
1983
1909
|
}
|
|
1984
1910
|
/**
|
|
1985
1911
|
* Reset the controller
|
|
@@ -2077,7 +2003,7 @@ const SSS_QUALITY_PRESET_SETTINGS = {
|
|
|
2077
2003
|
this._postEffectMotionBlur.dispose();
|
|
2078
2004
|
this._postEffectSSAO.dispose();
|
|
2079
2005
|
this._postEffectSSS.dispose();
|
|
2080
|
-
this.
|
|
2006
|
+
this._postEffectPostSSS.dispose();
|
|
2081
2007
|
this._postEffectSSGI.dispose();
|
|
2082
2008
|
this._postEffectSSR.dispose();
|
|
2083
2009
|
this._postEffectTAA.dispose();
|