@zephyr3d/scene 0.9.5 → 0.9.7
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/dist/animation/joint_dynamics/controller.js +92 -32
- package/dist/animation/joint_dynamics/controller.js.map +1 -1
- package/dist/animation/joint_dynamics/convex_collider.js +320 -0
- package/dist/animation/joint_dynamics/convex_collider.js.map +1 -0
- package/dist/animation/joint_dynamics/joint_dynamics_system.js +57 -19
- package/dist/animation/joint_dynamics/joint_dynamics_system.js.map +1 -1
- package/dist/animation/joint_dynamics/solver.js +71 -27
- package/dist/animation/joint_dynamics/solver.js.map +1 -1
- package/dist/animation/joint_dynamics_modifier.js +21 -20
- package/dist/animation/joint_dynamics_modifier.js.map +1 -1
- package/dist/animation/skeleton.js +7 -10
- package/dist/animation/skeleton.js.map +1 -1
- package/dist/app/engine.js +134 -140
- package/dist/app/engine.js.map +1 -1
- package/dist/app/scriptregistry.js +47 -16
- package/dist/app/scriptregistry.js.map +1 -1
- package/dist/asset/assetmanager.js +3 -1
- package/dist/asset/assetmanager.js.map +1 -1
- package/dist/asset/model.js +346 -7
- package/dist/asset/model.js.map +1 -1
- package/dist/avatar/wardrobe.js +20 -16
- package/dist/avatar/wardrobe.js.map +1 -1
- package/dist/camera/camera.js +416 -210
- package/dist/camera/camera.js.map +1 -1
- package/dist/index.d.ts +1350 -621
- package/dist/index.js +6 -11
- package/dist/index.js.map +1 -1
- package/dist/material/blinn.js +1 -1
- package/dist/material/blinn.js.map +1 -1
- package/dist/material/lambert.js +1 -1
- package/dist/material/lambert.js.map +1 -1
- package/dist/material/material.js +23 -1
- package/dist/material/material.js.map +1 -1
- package/dist/material/meshmaterial.js +178 -23
- package/dist/material/meshmaterial.js.map +1 -1
- package/dist/material/mixins/albedocolor.js +4 -4
- package/dist/material/mixins/albedocolor.js.map +1 -1
- package/dist/material/mixins/lightmodel/blinnphong.js +2 -1
- package/dist/material/mixins/lightmodel/blinnphong.js.map +1 -1
- package/dist/material/mixins/lightmodel/lambert.js +2 -1
- package/dist/material/mixins/lightmodel/lambert.js.map +1 -1
- package/dist/material/mixins/lightmodel/pbrblueprintmixin.js +63 -16
- package/dist/material/mixins/lightmodel/pbrblueprintmixin.js.map +1 -1
- package/dist/material/mixins/lightmodel/pbrmetallicroughness.js +105 -32
- package/dist/material/mixins/lightmodel/pbrmetallicroughness.js.map +1 -1
- package/dist/material/mixins/lightmodel/pbrspecularglossness.js +16 -6
- package/dist/material/mixins/lightmodel/pbrspecularglossness.js.map +1 -1
- package/dist/material/mixins/lit.js +1 -1
- package/dist/material/mixins/lit.js.map +1 -1
- package/dist/material/mixins/pbr/common.js +276 -65
- package/dist/material/mixins/pbr/common.js.map +1 -1
- package/dist/material/mixins/texture.js +3 -3
- package/dist/material/mixins/texture.js.map +1 -1
- package/dist/material/mixins/vertexcolor.js +2 -2
- package/dist/material/mixins/vertexcolor.js.map +1 -1
- package/dist/material/msdf_text.js +3 -3
- package/dist/material/msdf_text.js.map +1 -1
- package/dist/material/mtoon.js +574 -0
- package/dist/material/mtoon.js.map +1 -0
- package/dist/material/pbrblueprint.js +499 -336
- package/dist/material/pbrblueprint.js.map +1 -1
- package/dist/material/pbrmr.js +118 -100
- package/dist/material/pbrmr.js.map +1 -1
- package/dist/material/pbrsg.js +1 -1
- package/dist/material/pbrsg.js.map +1 -1
- package/dist/material/shader/helper.js +324 -294
- package/dist/material/shader/helper.js.map +1 -1
- package/dist/material/subsurfaceprofile.js +812 -0
- package/dist/material/subsurfaceprofile.js.map +1 -0
- package/dist/material/unlit.js +1 -1
- package/dist/material/unlit.js.map +1 -1
- package/dist/posteffect/compositor.js +46 -11
- package/dist/posteffect/compositor.js.map +1 -1
- package/dist/posteffect/ssr.js +422 -96
- package/dist/posteffect/ssr.js.map +1 -1
- package/dist/posteffect/sss.js +1053 -0
- package/dist/posteffect/sss.js.map +1 -0
- package/dist/posteffect/taa.js +61 -60
- package/dist/posteffect/taa.js.map +1 -1
- package/dist/render/abuffer_oit.js +63 -12
- package/dist/render/abuffer_oit.js.map +1 -1
- package/dist/render/cluster_light.js +6 -5
- package/dist/render/cluster_light.js.map +1 -1
- package/dist/render/drawable.js +1 -5
- package/dist/render/drawable.js.map +1 -1
- package/dist/render/drawable_mixin.js +2 -1
- package/dist/render/drawable_mixin.js.map +1 -1
- package/dist/render/fbm_wavegenerator.js +2 -1
- package/dist/render/fbm_wavegenerator.js.map +1 -1
- package/dist/render/gerstner_wavegenerator.js +2 -1
- package/dist/render/gerstner_wavegenerator.js.map +1 -1
- package/dist/render/globalbindgroup_allocator.js +2 -1
- package/dist/render/globalbindgroup_allocator.js.map +1 -1
- package/dist/render/lightpass.js +110 -23
- package/dist/render/lightpass.js.map +1 -1
- package/dist/render/render_queue.js +51 -8
- package/dist/render/render_queue.js.map +1 -1
- package/dist/render/renderer.js +80 -66
- package/dist/render/renderer.js.map +1 -1
- package/dist/render/rendergraph/device_pool_allocator.js +8 -0
- package/dist/render/rendergraph/device_pool_allocator.js.map +1 -1
- package/dist/render/rendergraph/forward_plus_builder.js +481 -95
- package/dist/render/rendergraph/forward_plus_builder.js.map +1 -1
- package/dist/render/rendergraph/history_resource_manager.js +55 -0
- package/dist/render/rendergraph/history_resource_manager.js.map +1 -1
- package/dist/render/rendergraph/history_resources.js +3 -1
- package/dist/render/rendergraph/history_resources.js.map +1 -1
- package/dist/render/rendergraph/types.js.map +1 -1
- package/dist/render/renderpass.js +10 -4
- package/dist/render/renderpass.js.map +1 -1
- package/dist/render/sky.js +31 -1
- package/dist/render/sky.js.map +1 -1
- package/dist/render/weightedblended_oit.js +23 -5
- package/dist/render/weightedblended_oit.js.map +1 -1
- package/dist/scene/basesprite.js +4 -2
- package/dist/scene/basesprite.js.map +1 -1
- package/dist/scene/batchgroup.js +3 -1
- package/dist/scene/batchgroup.js.map +1 -1
- package/dist/scene/environment.js +11 -1
- package/dist/scene/environment.js.map +1 -1
- package/dist/scene/light.js +21 -3
- package/dist/scene/light.js.map +1 -1
- package/dist/scene/mesh.js +29 -14
- 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 +5 -2
- package/dist/scene/msdftext.js.map +1 -1
- package/dist/scene/msdftextsprite.js +5 -3
- package/dist/scene/msdftextsprite.js.map +1 -1
- package/dist/scene/particlesys.js +3 -1
- package/dist/scene/particlesys.js.map +1 -1
- package/dist/scene/scene.js +6 -5
- package/dist/scene/scene.js.map +1 -1
- package/dist/scene/terrain-cm/grass.js +4 -2
- package/dist/scene/terrain-cm/grass.js.map +1 -1
- package/dist/scene/terrain-cm/grassmaterial.js +2 -1
- package/dist/scene/terrain-cm/grassmaterial.js.map +1 -1
- package/dist/scene/terrain-cm/terrain-cm.js +4 -2
- package/dist/scene/terrain-cm/terrain-cm.js.map +1 -1
- package/dist/scene/water.js +4 -2
- package/dist/scene/water.js.map +1 -1
- package/dist/shaders/shadow.js +26 -393
- package/dist/shaders/shadow.js.map +1 -1
- package/dist/shadow/esm.js +112 -12
- package/dist/shadow/esm.js.map +1 -1
- package/dist/shadow/pcf_opt.js +2 -2
- package/dist/shadow/pcf_opt.js.map +1 -1
- package/dist/shadow/pcf_pd.js +19 -10
- package/dist/shadow/pcf_pd.js.map +1 -1
- package/dist/shadow/shader.js +58 -7
- package/dist/shadow/shader.js.map +1 -1
- package/dist/shadow/shadow_impl.js +6 -0
- package/dist/shadow/shadow_impl.js.map +1 -1
- package/dist/shadow/shadow_region.js +229 -0
- package/dist/shadow/shadow_region.js.map +1 -0
- package/dist/shadow/shadowmapper.js +67 -59
- package/dist/shadow/shadowmapper.js.map +1 -1
- package/dist/shadow/vsm.js +45 -19
- package/dist/shadow/vsm.js.map +1 -1
- package/dist/text/font/cff_font.js +890 -0
- package/dist/text/font/cff_font.js.map +1 -0
- package/dist/text/font/font_asset.js +17 -3
- package/dist/text/font/font_asset.js.map +1 -1
- package/dist/utility/blueprint/common/constants.js +8 -8
- package/dist/utility/blueprint/common/constants.js.map +1 -1
- package/dist/utility/blueprint/material/pbr.js +31 -4
- package/dist/utility/blueprint/material/pbr.js.map +1 -1
- package/dist/utility/blueprint/material/texture.js +1 -17
- package/dist/utility/blueprint/material/texture.js.map +1 -1
- package/dist/utility/serialization/manager.js +327 -359
- package/dist/utility/serialization/manager.js.map +1 -1
- package/dist/utility/serialization/scene/animation.js +5 -2
- package/dist/utility/serialization/scene/animation.js.map +1 -1
- package/dist/utility/serialization/scene/batch.js +4 -1
- package/dist/utility/serialization/scene/batch.js.map +1 -1
- package/dist/utility/serialization/scene/camera.js +249 -54
- package/dist/utility/serialization/scene/camera.js.map +1 -1
- package/dist/utility/serialization/scene/common.js +37 -1
- package/dist/utility/serialization/scene/common.js.map +1 -1
- package/dist/utility/serialization/scene/light.js +42 -3
- package/dist/utility/serialization/scene/light.js.map +1 -1
- package/dist/utility/serialization/scene/material.js +1112 -646
- package/dist/utility/serialization/scene/material.js.map +1 -1
- package/dist/utility/serialization/scene/mesh.js +7 -4
- package/dist/utility/serialization/scene/mesh.js.map +1 -1
- package/dist/utility/serialization/scene/node.js +31 -12
- package/dist/utility/serialization/scene/node.js.map +1 -1
- package/dist/utility/serialization/scene/particle.js +4 -1
- package/dist/utility/serialization/scene/particle.js.map +1 -1
- package/dist/utility/serialization/scene/primitive.js +3 -1
- package/dist/utility/serialization/scene/primitive.js.map +1 -1
- package/dist/utility/serialization/scene/scene.js +18 -0
- package/dist/utility/serialization/scene/scene.js.map +1 -1
- package/dist/utility/serialization/scene/sprite.js +6 -3
- package/dist/utility/serialization/scene/sprite.js.map +1 -1
- package/dist/utility/serialization/scene/terrain.js +5 -2
- package/dist/utility/serialization/scene/terrain.js.map +1 -1
- package/dist/utility/serialization/scene/text.js +3 -1
- package/dist/utility/serialization/scene/text.js.map +1 -1
- package/dist/utility/serialization/scene/water.js +4 -1
- package/dist/utility/serialization/scene/water.js.map +1 -1
- package/dist/utility/textures/ltcdata.js +6 -0
- package/dist/utility/textures/ltcdata.js.map +1 -0
- package/dist/utility/textures/ltclut.js +61 -0
- package/dist/utility/textures/ltclut.js.map +1 -0
- package/dist/values.js +9 -1
- package/dist/values.js.map +1 -1
- package/package.json +3 -3
- package/dist/animation/ik/ik_chain_builder.js +0 -68
- package/dist/animation/ik/ik_chain_builder.js.map +0 -1
- package/dist/animation/ik/ik_pole_constraint.js +0 -123
- package/dist/animation/ik/ik_pole_constraint.js.map +0 -1
- package/dist/animation/ik/ik_track.js +0 -96
- package/dist/animation/ik/ik_track.js.map +0 -1
- package/dist/animation/ik_postprocessor.js +0 -71
- package/dist/animation/ik_postprocessor.js.map +0 -1
- package/dist/animation/joint_dynamics/math.js +0 -16
- package/dist/animation/joint_dynamics/math.js.map +0 -1
- package/dist/animation/manual_transform_processor.js +0 -156
- package/dist/animation/manual_transform_processor.js.map +0 -1
- package/dist/animation/skeleton_postprocessor.js +0 -50
- package/dist/animation/skeleton_postprocessor.js.map +0 -1
- package/dist/animation/spring2/collision.js +0 -469
- package/dist/animation/spring2/collision.js.map +0 -1
- package/dist/animation/spring2/constraints.js +0 -329
- package/dist/animation/spring2/constraints.js.map +0 -1
- package/dist/animation/spring2/controller.js +0 -434
- package/dist/animation/spring2/controller.js.map +0 -1
- package/dist/animation/spring2/math.js +0 -16
- package/dist/animation/spring2/math.js.map +0 -1
- package/dist/animation/spring2/solver.js +0 -624
- package/dist/animation/spring2/solver.js.map +0 -1
- package/dist/animation/spring2/spring_system.js +0 -118
- package/dist/animation/spring2/spring_system.js.map +0 -1
- package/dist/animation/spring2/types.js +0 -19
- package/dist/animation/spring2/types.js.map +0 -1
- package/dist/animation/spring_postprocessor.js +0 -54
- package/dist/animation/spring_postprocessor.js.map +0 -1
- package/dist/asset/loaders/gltf/gltf_loader.js +0 -1276
- package/dist/asset/loaders/gltf/gltf_loader.js.map +0 -1
- package/dist/asset/loaders/gltf/helpers.js +0 -331
- package/dist/asset/loaders/gltf/helpers.js.map +0 -1
- package/dist/material/sprite3d.js +0 -301
- package/dist/material/sprite3d.js.map +0 -1
- package/dist/material/sprite3d_std.js +0 -116
- package/dist/material/sprite3d_std.js.map +0 -1
- package/dist/material/sprite3dblueprint.js +0 -235
- package/dist/material/sprite3dblueprint.js.map +0 -1
- package/dist/material/sprite_sdf.js +0 -106
- package/dist/material/sprite_sdf.js.map +0 -1
- package/dist/material/terrainmaterial.js +0 -368
- package/dist/material/terrainmaterial.js.map +0 -1
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimemgr.js +0 -38
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimemgr.js.map +0 -1
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimescript.js +0 -10
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimescript.js.map +0 -1
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptingsystem.js +0 -127
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptingsystem.js.map +0 -1
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptregistry.js +0 -263
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptregistry.js.map +0 -1
- package/dist/render/deferredlightpass.js +0 -510
- package/dist/render/deferredlightpass.js.map +0 -1
- package/dist/render/deferredshadowlightpass.js +0 -428
- package/dist/render/deferredshadowlightpass.js.map +0 -1
- package/dist/render/gbufferpass.js +0 -50
- package/dist/render/gbufferpass.js.map +0 -1
- package/dist/scene/sdftextsprite.js +0 -322
- package/dist/scene/sdftextsprite.js.map +0 -1
- package/dist/scene/sprite3d.js +0 -18
- package/dist/scene/sprite3d.js.map +0 -1
- package/dist/scene/terrain/grass.js +0 -280
- package/dist/scene/terrain/grass.js.map +0 -1
- package/dist/scene/terrain/heightfield.js +0 -475
- package/dist/scene/terrain/heightfield.js.map +0 -1
- package/dist/scene/terrain/patch.js +0 -532
- package/dist/scene/terrain/patch.js.map +0 -1
- package/dist/scene/terrain/quadtree.js +0 -461
- package/dist/scene/terrain/quadtree.js.map +0 -1
- package/dist/scene/terrain/terrain.js +0 -231
- package/dist/scene/terrain/terrain.js.map +0 -1
- package/dist/src/animation/animation.js +0 -127
- package/dist/src/animation/animation.js.map +0 -1
- package/dist/src/animation/animationset.js +0 -255
- package/dist/src/animation/animationset.js.map +0 -1
- package/dist/src/animation/animationtrack.js +0 -34
- package/dist/src/animation/animationtrack.js.map +0 -1
- package/dist/src/animation/eulerrotationtrack.js +0 -52
- package/dist/src/animation/eulerrotationtrack.js.map +0 -1
- package/dist/src/animation/morphtarget.js +0 -93
- package/dist/src/animation/morphtarget.js.map +0 -1
- package/dist/src/animation/morphtrack.js +0 -70
- package/dist/src/animation/morphtrack.js.map +0 -1
- package/dist/src/animation/proptrack.js +0 -161
- package/dist/src/animation/proptrack.js.map +0 -1
- package/dist/src/animation/rotationtrack.js +0 -51
- package/dist/src/animation/rotationtrack.js.map +0 -1
- package/dist/src/animation/scaletrack.js +0 -50
- package/dist/src/animation/scaletrack.js.map +0 -1
- package/dist/src/animation/skeleton.js +0 -204
- package/dist/src/animation/skeleton.js.map +0 -1
- package/dist/src/animation/translationtrack.js +0 -50
- package/dist/src/animation/translationtrack.js.map +0 -1
- package/dist/src/app/app.js +0 -129
- package/dist/src/app/app.js.map +0 -1
- package/dist/src/app/inputmgr.js +0 -267
- package/dist/src/app/inputmgr.js.map +0 -1
- package/dist/src/asset/assetmanager.js +0 -404
- package/dist/src/asset/assetmanager.js.map +0 -1
- package/dist/src/asset/builtin.js +0 -337
- package/dist/src/asset/builtin.js.map +0 -1
- package/dist/src/asset/loaders/dds/dds.js +0 -470
- package/dist/src/asset/loaders/dds/dds.js.map +0 -1
- package/dist/src/asset/loaders/dds/dds_loader.js +0 -28
- package/dist/src/asset/loaders/dds/dds_loader.js.map +0 -1
- package/dist/src/asset/loaders/gltf/gltf_loader.js +0 -1265
- package/dist/src/asset/loaders/gltf/gltf_loader.js.map +0 -1
- package/dist/src/asset/loaders/gltf/helpers.js +0 -327
- package/dist/src/asset/loaders/gltf/helpers.js.map +0 -1
- package/dist/src/asset/loaders/hdr/hdr.js +0 -180
- package/dist/src/asset/loaders/hdr/hdr.js.map +0 -1
- package/dist/src/asset/loaders/image/tga_Loader.js +0 -116
- package/dist/src/asset/loaders/image/tga_Loader.js.map +0 -1
- package/dist/src/asset/loaders/image/webimage_loader.js +0 -63
- package/dist/src/asset/loaders/image/webimage_loader.js.map +0 -1
- package/dist/src/asset/loaders/loader.js +0 -45
- package/dist/src/asset/loaders/loader.js.map +0 -1
- package/dist/src/asset/model.js +0 -414
- package/dist/src/asset/model.js.map +0 -1
- package/dist/src/blitter/bilateralblur.js +0 -221
- package/dist/src/blitter/bilateralblur.js.map +0 -1
- package/dist/src/blitter/blitter.js +0 -390
- package/dist/src/blitter/blitter.js.map +0 -1
- package/dist/src/blitter/box.js +0 -118
- package/dist/src/blitter/box.js.map +0 -1
- package/dist/src/blitter/copy.js +0 -22
- package/dist/src/blitter/copy.js.map +0 -1
- package/dist/src/blitter/gaussianblur.js +0 -228
- package/dist/src/blitter/gaussianblur.js.map +0 -1
- package/dist/src/camera/base.js +0 -92
- package/dist/src/camera/base.js.map +0 -1
- package/dist/src/camera/camera.js +0 -1005
- package/dist/src/camera/camera.js.map +0 -1
- package/dist/src/camera/fps.js +0 -238
- package/dist/src/camera/fps.js.map +0 -1
- package/dist/src/camera/orbit.js +0 -245
- package/dist/src/camera/orbit.js.map +0 -1
- package/dist/src/camera/orthocamera.js +0 -167
- package/dist/src/camera/orthocamera.js.map +0 -1
- package/dist/src/camera/perspectivecamera.js +0 -141
- package/dist/src/camera/perspectivecamera.js.map +0 -1
- package/dist/src/index.js +0 -120
- package/dist/src/index.js.map +0 -1
- package/dist/src/material/blinn.js +0 -81
- package/dist/src/material/blinn.js.map +0 -1
- package/dist/src/material/grassmaterial.js +0 -113
- package/dist/src/material/grassmaterial.js.map +0 -1
- package/dist/src/material/lambert.js +0 -92
- package/dist/src/material/lambert.js.map +0 -1
- package/dist/src/material/material.js +0 -301
- package/dist/src/material/material.js.map +0 -1
- package/dist/src/material/meshmaterial.js +0 -704
- package/dist/src/material/meshmaterial.js.map +0 -1
- package/dist/src/material/mixins/albedocolor.js +0 -76
- package/dist/src/material/mixins/albedocolor.js.map +0 -1
- package/dist/src/material/mixins/foliage.js +0 -47
- package/dist/src/material/mixins/foliage.js.map +0 -1
- package/dist/src/material/mixins/lightmodel/blinnphong.js +0 -112
- package/dist/src/material/mixins/lightmodel/blinnphong.js.map +0 -1
- package/dist/src/material/mixins/lightmodel/lambert.js +0 -58
- package/dist/src/material/mixins/lightmodel/lambert.js.map +0 -1
- package/dist/src/material/mixins/lightmodel/pbrmetallicroughness.js +0 -178
- package/dist/src/material/mixins/lightmodel/pbrmetallicroughness.js.map +0 -1
- package/dist/src/material/mixins/lightmodel/pbrspecularglossness.js +0 -139
- package/dist/src/material/mixins/lightmodel/pbrspecularglossness.js.map +0 -1
- package/dist/src/material/mixins/lit.js +0 -476
- package/dist/src/material/mixins/lit.js.map +0 -1
- package/dist/src/material/mixins/pbr/common.js +0 -918
- package/dist/src/material/mixins/pbr/common.js.map +0 -1
- package/dist/src/material/mixins/texture.js +0 -172
- package/dist/src/material/mixins/texture.js.map +0 -1
- package/dist/src/material/mixins/vertexcolor.js +0 -56
- package/dist/src/material/mixins/vertexcolor.js.map +0 -1
- package/dist/src/material/particle.js +0 -178
- package/dist/src/material/particle.js.map +0 -1
- package/dist/src/material/pbrmr.js +0 -97
- package/dist/src/material/pbrmr.js.map +0 -1
- package/dist/src/material/pbrsg.js +0 -97
- package/dist/src/material/pbrsg.js.map +0 -1
- package/dist/src/material/shader/helper.js +0 -1209
- package/dist/src/material/shader/helper.js.map +0 -1
- package/dist/src/material/terrain-cm.js +0 -606
- package/dist/src/material/terrain-cm.js.map +0 -1
- package/dist/src/material/terrainmaterial.js +0 -375
- package/dist/src/material/terrainmaterial.js.map +0 -1
- package/dist/src/material/unlit.js +0 -41
- package/dist/src/material/unlit.js.map +0 -1
- package/dist/src/material/water.js +0 -417
- package/dist/src/material/water.js.map +0 -1
- package/dist/src/posteffect/bloom.js +0 -361
- package/dist/src/posteffect/bloom.js.map +0 -1
- package/dist/src/posteffect/compositor.js +0 -226
- package/dist/src/posteffect/compositor.js.map +0 -1
- package/dist/src/posteffect/fxaa.js +0 -273
- package/dist/src/posteffect/fxaa.js.map +0 -1
- package/dist/src/posteffect/grayscale.js +0 -69
- package/dist/src/posteffect/grayscale.js.map +0 -1
- package/dist/src/posteffect/motionblur.js +0 -96
- package/dist/src/posteffect/motionblur.js.map +0 -1
- package/dist/src/posteffect/posteffect.js +0 -126
- package/dist/src/posteffect/posteffect.js.map +0 -1
- package/dist/src/posteffect/sao.js +0 -324
- package/dist/src/posteffect/sao.js.map +0 -1
- package/dist/src/posteffect/ssr.js +0 -489
- package/dist/src/posteffect/ssr.js.map +0 -1
- package/dist/src/posteffect/taa.js +0 -172
- package/dist/src/posteffect/taa.js.map +0 -1
- package/dist/src/posteffect/tonemap.js +0 -94
- package/dist/src/posteffect/tonemap.js.map +0 -1
- package/dist/src/render/abuffer_oit.js +0 -361
- package/dist/src/render/abuffer_oit.js.map +0 -1
- package/dist/src/render/clipmap.js +0 -851
- package/dist/src/render/clipmap.js.map +0 -1
- package/dist/src/render/cluster_light.js +0 -333
- package/dist/src/render/cluster_light.js.map +0 -1
- package/dist/src/render/cull_visitor.js +0 -187
- package/dist/src/render/cull_visitor.js.map +0 -1
- package/dist/src/render/depthpass.js +0 -68
- package/dist/src/render/depthpass.js.map +0 -1
- package/dist/src/render/drawable_mixin.js +0 -227
- package/dist/src/render/drawable_mixin.js.map +0 -1
- package/dist/src/render/envlight.js +0 -463
- package/dist/src/render/envlight.js.map +0 -1
- package/dist/src/render/fbm_wavegenerator.js +0 -251
- package/dist/src/render/fbm_wavegenerator.js.map +0 -1
- package/dist/src/render/fft_wavegenerator.js +0 -1006
- package/dist/src/render/fft_wavegenerator.js.map +0 -1
- package/dist/src/render/fullscreenquad.js +0 -38
- package/dist/src/render/fullscreenquad.js.map +0 -1
- package/dist/src/render/gerstner_wavegenerator.js +0 -314
- package/dist/src/render/gerstner_wavegenerator.js.map +0 -1
- package/dist/src/render/globalbindgroup_allocator.js +0 -60
- package/dist/src/render/globalbindgroup_allocator.js.map +0 -1
- package/dist/src/render/hzb.js +0 -273
- package/dist/src/render/hzb.js.map +0 -1
- package/dist/src/render/lightpass.js +0 -172
- package/dist/src/render/lightpass.js.map +0 -1
- package/dist/src/render/objectcolorpass.js +0 -51
- package/dist/src/render/objectcolorpass.js.map +0 -1
- package/dist/src/render/primitive.js +0 -364
- package/dist/src/render/primitive.js.map +0 -1
- package/dist/src/render/render_queue.js +0 -467
- package/dist/src/render/render_queue.js.map +0 -1
- package/dist/src/render/renderbundle_wrapper.js +0 -152
- package/dist/src/render/renderbundle_wrapper.js.map +0 -1
- package/dist/src/render/renderer.js +0 -455
- package/dist/src/render/renderer.js.map +0 -1
- package/dist/src/render/renderpass.js +0 -200
- package/dist/src/render/renderpass.js.map +0 -1
- package/dist/src/render/shadowmap_pass.js +0 -56
- package/dist/src/render/shadowmap_pass.js.map +0 -1
- package/dist/src/render/sky.js +0 -1103
- package/dist/src/render/sky.js.map +0 -1
- package/dist/src/render/weightedblended_oit.js +0 -168
- package/dist/src/render/weightedblended_oit.js.map +0 -1
- package/dist/src/scene/batchgroup.js +0 -162
- package/dist/src/scene/batchgroup.js.map +0 -1
- package/dist/src/scene/environment.js +0 -209
- package/dist/src/scene/environment.js.map +0 -1
- package/dist/src/scene/graph_node.js +0 -72
- package/dist/src/scene/graph_node.js.map +0 -1
- package/dist/src/scene/light.js +0 -416
- package/dist/src/scene/light.js.map +0 -1
- package/dist/src/scene/mesh.js +0 -341
- package/dist/src/scene/mesh.js.map +0 -1
- package/dist/src/scene/octree.js +0 -649
- package/dist/src/scene/octree.js.map +0 -1
- package/dist/src/scene/particlesys.js +0 -738
- package/dist/src/scene/particlesys.js.map +0 -1
- package/dist/src/scene/raycast_visitor.js +0 -103
- package/dist/src/scene/raycast_visitor.js.map +0 -1
- package/dist/src/scene/scene.js +0 -284
- package/dist/src/scene/scene.js.map +0 -1
- package/dist/src/scene/scene_node.js +0 -732
- package/dist/src/scene/scene_node.js.map +0 -1
- package/dist/src/scene/terrain/grass.js +0 -278
- package/dist/src/scene/terrain/grass.js.map +0 -1
- package/dist/src/scene/terrain/heightfield.js +0 -475
- package/dist/src/scene/terrain/heightfield.js.map +0 -1
- package/dist/src/scene/terrain/patch.js +0 -530
- package/dist/src/scene/terrain/patch.js.map +0 -1
- package/dist/src/scene/terrain/quadtree.js +0 -461
- package/dist/src/scene/terrain/quadtree.js.map +0 -1
- package/dist/src/scene/terrain/terrain.js +0 -246
- package/dist/src/scene/terrain/terrain.js.map +0 -1
- package/dist/src/scene/terrain-cm/grass.js +0 -594
- package/dist/src/scene/terrain-cm/grass.js.map +0 -1
- package/dist/src/scene/terrain-cm/grassmaterial.js +0 -159
- package/dist/src/scene/terrain-cm/grassmaterial.js.map +0 -1
- package/dist/src/scene/terrain-cm/terrain-cm.js +0 -538
- package/dist/src/scene/terrain-cm/terrain-cm.js.map +0 -1
- package/dist/src/scene/water.js +0 -374
- package/dist/src/scene/water.js.map +0 -1
- package/dist/src/shaders/atmosphere.js +0 -957
- package/dist/src/shaders/atmosphere.js.map +0 -1
- package/dist/src/shaders/fog.js +0 -112
- package/dist/src/shaders/fog.js.map +0 -1
- package/dist/src/shaders/misc.js +0 -266
- package/dist/src/shaders/misc.js.map +0 -1
- package/dist/src/shaders/noise.js +0 -222
- package/dist/src/shaders/noise.js.map +0 -1
- package/dist/src/shaders/pbr.js +0 -51
- package/dist/src/shaders/pbr.js.map +0 -1
- package/dist/src/shaders/shadow.js +0 -636
- package/dist/src/shaders/shadow.js.map +0 -1
- package/dist/src/shaders/ssr.js +0 -490
- package/dist/src/shaders/ssr.js.map +0 -1
- package/dist/src/shaders/temporal.js +0 -215
- package/dist/src/shaders/temporal.js.map +0 -1
- package/dist/src/shaders/water.js +0 -756
- package/dist/src/shaders/water.js.map +0 -1
- package/dist/src/shadow/esm.js +0 -237
- package/dist/src/shadow/esm.js.map +0 -1
- package/dist/src/shadow/pcf_opt.js +0 -181
- package/dist/src/shadow/pcf_opt.js.map +0 -1
- package/dist/src/shadow/pcf_pd.js +0 -189
- package/dist/src/shadow/pcf_pd.js.map +0 -1
- package/dist/src/shadow/shader.js +0 -37
- package/dist/src/shadow/shader.js.map +0 -1
- package/dist/src/shadow/shadow_impl.js +0 -15
- package/dist/src/shadow/shadow_impl.js.map +0 -1
- package/dist/src/shadow/shadowmapper.js +0 -790
- package/dist/src/shadow/shadowmapper.js.map +0 -1
- package/dist/src/shadow/ssm.js +0 -159
- package/dist/src/shadow/ssm.js.map +0 -1
- package/dist/src/shadow/vsm.js +0 -297
- package/dist/src/shadow/vsm.js.map +0 -1
- package/dist/src/shapes/box.js +0 -386
- package/dist/src/shapes/box.js.map +0 -1
- package/dist/src/shapes/cylinder.js +0 -125
- package/dist/src/shapes/cylinder.js.map +0 -1
- package/dist/src/shapes/plane.js +0 -88
- package/dist/src/shapes/plane.js.map +0 -1
- package/dist/src/shapes/shape.js +0 -87
- package/dist/src/shapes/shape.js.map +0 -1
- package/dist/src/shapes/sphere.js +0 -114
- package/dist/src/shapes/sphere.js.map +0 -1
- package/dist/src/shapes/tetrahedron.js +0 -188
- package/dist/src/shapes/tetrahedron.js.map +0 -1
- package/dist/src/shapes/torus.js +0 -111
- package/dist/src/shapes/torus.js.map +0 -1
- package/dist/src/utility/aabbtree.js +0 -400
- package/dist/src/utility/aabbtree.js.map +0 -1
- package/dist/src/utility/bounding_volume.js +0 -29
- package/dist/src/utility/bounding_volume.js.map +0 -1
- package/dist/src/utility/debug.js +0 -28
- package/dist/src/utility/debug.js.map +0 -1
- package/dist/src/utility/draco/decoder.js +0 -116
- package/dist/src/utility/draco/decoder.js.map +0 -1
- package/dist/src/utility/misc.js +0 -105
- package/dist/src/utility/misc.js.map +0 -1
- package/dist/src/utility/panorama.js +0 -163
- package/dist/src/utility/panorama.js.map +0 -1
- package/dist/src/utility/pmrem.js +0 -354
- package/dist/src/utility/pmrem.js.map +0 -1
- package/dist/src/utility/rendermipmap.js +0 -115
- package/dist/src/utility/rendermipmap.js.map +0 -1
- package/dist/src/utility/serialization/json.js +0 -402
- package/dist/src/utility/serialization/json.js.map +0 -1
- package/dist/src/utility/serialization/manager.js +0 -623
- package/dist/src/utility/serialization/manager.js.map +0 -1
- package/dist/src/utility/serialization/scene/animation.js +0 -248
- package/dist/src/utility/serialization/scene/animation.js.map +0 -1
- package/dist/src/utility/serialization/scene/batch.js +0 -59
- package/dist/src/utility/serialization/scene/batch.js.map +0 -1
- package/dist/src/utility/serialization/scene/camera.js +0 -790
- package/dist/src/utility/serialization/scene/camera.js.map +0 -1
- package/dist/src/utility/serialization/scene/common.js +0 -222
- package/dist/src/utility/serialization/scene/common.js.map +0 -1
- package/dist/src/utility/serialization/scene/light.js +0 -575
- package/dist/src/utility/serialization/scene/light.js.map +0 -1
- package/dist/src/utility/serialization/scene/material.js +0 -1111
- package/dist/src/utility/serialization/scene/material.js.map +0 -1
- package/dist/src/utility/serialization/scene/mesh.js +0 -148
- package/dist/src/utility/serialization/scene/mesh.js.map +0 -1
- package/dist/src/utility/serialization/scene/misc.js +0 -39
- package/dist/src/utility/serialization/scene/misc.js.map +0 -1
- package/dist/src/utility/serialization/scene/node.js +0 -451
- package/dist/src/utility/serialization/scene/node.js.map +0 -1
- package/dist/src/utility/serialization/scene/particle.js +0 -425
- package/dist/src/utility/serialization/scene/particle.js.map +0 -1
- package/dist/src/utility/serialization/scene/primitive.js +0 -692
- package/dist/src/utility/serialization/scene/primitive.js.map +0 -1
- package/dist/src/utility/serialization/scene/scene.js +0 -704
- package/dist/src/utility/serialization/scene/scene.js.map +0 -1
- package/dist/src/utility/serialization/scene/terrain.js +0 -488
- package/dist/src/utility/serialization/scene/terrain.js.map +0 -1
- package/dist/src/utility/serialization/scene/water.js +0 -465
- package/dist/src/utility/serialization/scene/water.js.map +0 -1
- package/dist/src/utility/shprojector.js +0 -297
- package/dist/src/utility/shprojector.js.map +0 -1
- package/dist/src/utility/textures/ggxlut.js +0 -213
- package/dist/src/utility/textures/ggxlut.js.map +0 -1
- package/dist/src/utility/textures/gradientnoise.js +0 -62
- package/dist/src/utility/textures/gradientnoise.js.map +0 -1
- package/dist/src/utility/textures/randomnoise.js +0 -41
- package/dist/src/utility/textures/randomnoise.js.map +0 -1
- package/dist/src/values.js +0 -162
- package/dist/src/values.js.map +0 -1
- package/dist/utility/blueprint/material/common.js +0 -7
- package/dist/utility/blueprint/material/common.js.map +0 -1
- package/dist/utility/serialization/blueprint/constants.js +0 -255
- package/dist/utility/serialization/blueprint/constants.js.map +0 -1
- package/dist/utility/serialization/blueprint/material/constants.js +0 -203
- package/dist/utility/serialization/blueprint/material/constants.js.map +0 -1
- package/dist/utility/serialization/blueprint/material/texture.js +0 -165
- package/dist/utility/serialization/blueprint/material/texture.js.map +0 -1
- package/dist/utility/serialization/scene/cloth_script.js +0 -834
- package/dist/utility/serialization/scene/cloth_script.js.map +0 -1
- package/dist/utility/serialization/scene/spring_script.js +0 -596
- package/dist/utility/serialization/scene/spring_script.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"water.js","sources":["../../../../src/utility/serialization/scene/water.ts"],"sourcesContent":["import type { Nullable } from '@zephyr3d/base';\r\nimport { Vector2 } from '@zephyr3d/base';\r\nimport type { SceneNode } from '../../../scene';\r\nimport { GraphNode } from '../../../scene';\r\nimport { Water } from '../../../scene/water';\r\nimport { defineProps, type SerializableClass } from '../types';\r\nimport type { WaveGenerator } from '../../../render';\r\nimport { FBMWaveGenerator, FFTWaveGenerator } from '../../../render';\r\nimport type { Texture2D } from '@zephyr3d/device';\r\nimport type { ResourceManager } from '../manager';\r\n\r\n/** @internal */\r\nexport function getFBMWaveGeneratorClass(): SerializableClass {\r\n return {\r\n ctor: FBMWaveGenerator,\r\n name: 'FBMWaveGenerator',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'NumOctaves',\r\n description: 'Number of FBM noise octaves used to build the wave pattern',\r\n type: 'int',\r\n options: { minValue: 1, maxValue: 8 },\r\n default: 4,\r\n get(this: FBMWaveGenerator, value) {\r\n value.num[0] = this.numOctaves;\r\n },\r\n set(this: FBMWaveGenerator, value) {\r\n this.numOctaves = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Wind',\r\n description: 'Wind direction and speed that drive the FBM waves',\r\n type: 'vec2',\r\n default: [0.1, 0],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: FBMWaveGenerator, value) {\r\n value.num[0] = this.wind.x;\r\n value.num[1] = this.wind.y;\r\n },\r\n set(this: FBMWaveGenerator, value) {\r\n this.wind = new Vector2(value.num[0], value.num[1]);\r\n }\r\n },\r\n {\r\n name: 'Amplitude',\r\n description: 'Wave height amplitude for the FBM wave generator',\r\n type: 'float',\r\n options: { animatable: true, minValue: 0, maxValue: 5 },\r\n default: 0.3,\r\n get(this: FBMWaveGenerator, value) {\r\n value.num[0] = this.amplitude;\r\n },\r\n set(this: FBMWaveGenerator, value) {\r\n this.amplitude = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Frequency',\r\n description: 'Wave frequency for the FBM wave generator',\r\n type: 'float',\r\n options: { animatable: true, minValue: 0, maxValue: 16 },\r\n default: 3,\r\n get(this: FBMWaveGenerator, value) {\r\n value.num[0] = this.frequency;\r\n },\r\n set(this: FBMWaveGenerator, value) {\r\n this.frequency = value.num[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getFFTWaveGeneratorClass(): SerializableClass {\r\n return {\r\n ctor: FFTWaveGenerator,\r\n name: 'FFTWaveGenerator',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Alignment',\r\n description: 'How strongly FFT waves align with the wind direction',\r\n type: 'float',\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.alignment;\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.alignment = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Wind',\r\n description: 'Wind direction and speed that drive the FFT waves',\r\n type: 'vec2',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.wind.x;\r\n value.num[1] = this.wind.y;\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.wind = new Vector2(value.num[0], value.num[1]);\r\n }\r\n },\r\n {\r\n name: 'FoamWidth',\r\n description: 'Width of foam bands generated on the wave crests',\r\n type: 'float',\r\n default: 1.2,\r\n options: { animatable: true, minValue: 0, maxValue: 10 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.foamWidth;\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.foamWidth = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'FoamContrast',\r\n description: 'Contrast of the foam pattern on FFT waves',\r\n type: 'float',\r\n default: 7.2,\r\n options: { animatable: true, minValue: 0, maxValue: 10 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.foamContrast;\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.foamContrast = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'WaveLengthCascades',\r\n description: 'Wavelength values for the three FFT wave cascades',\r\n type: 'vec3',\r\n default: [400, 100, 15],\r\n options: { animatable: true, minValue: 0, maxValue: 1000 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.getWaveLength(0);\r\n value.num[1] = this.getWaveLength(1);\r\n value.num[2] = this.getWaveLength(2);\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.setWaveLength(0, value.num[0]);\r\n this.setWaveLength(1, value.num[1]);\r\n this.setWaveLength(2, value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'WaveStrengthCascades',\r\n description: 'Strength values for the three FFT wave cascades',\r\n type: 'vec3',\r\n default: [0.4, 0.4, 0.2],\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.getWaveStrength(0);\r\n value.num[1] = this.getWaveStrength(1);\r\n value.num[2] = this.getWaveStrength(2);\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.setWaveStrength(0, value.num[0]);\r\n this.setWaveStrength(1, value.num[1]);\r\n this.setWaveStrength(2, value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'WaveCroppinessCascades',\r\n description: 'Croppiness values for the three FFT wave cascades',\r\n type: 'vec3',\r\n default: [-1.5, -1.2, -0.5],\r\n options: { animatable: true, minValue: -4, maxValue: 0 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.getWaveCroppiness(0);\r\n value.num[1] = this.getWaveCroppiness(1);\r\n value.num[2] = this.getWaveCroppiness(2);\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.setWaveCroppiness(0, value.num[0]);\r\n this.setWaveCroppiness(1, value.num[1]);\r\n this.setWaveCroppiness(2, value.num[2]);\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getWaterClass(manager: ResourceManager): SerializableClass {\r\n return {\r\n ctor: Water,\r\n name: 'Water',\r\n parent: GraphNode,\r\n createFunc(ctx: SceneNode) {\r\n const node = new Water(ctx.scene!);\r\n node.parent = ctx;\r\n return { obj: node };\r\n },\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'WaveGenerator',\r\n description: 'Wave generator used to drive the water surface',\r\n type: 'object',\r\n default: null,\r\n options: {\r\n objectTypes: [FFTWaveGenerator, FBMWaveGenerator]\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Water, value) {\r\n value.object[0] = this.waveGenerator ?? null;\r\n },\r\n set(this: Water, value) {\r\n if (!value.object[0]) {\r\n this.waveGenerator = null;\r\n } else {\r\n this.waveGenerator = value.object[0] as WaveGenerator;\r\n }\r\n }\r\n },\r\n {\r\n name: 'GridScale',\r\n description: 'Scale of the water simulation grid',\r\n type: 'float',\r\n default: 1,\r\n options: { minValue: 0, maxValue: 1 },\r\n get(this: Water, value) {\r\n value.num[0] = this.gridScale;\r\n },\r\n set(this: Water, value) {\r\n this.gridScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Wireframe',\r\n description: 'If true, renders the water surface as wireframe',\r\n type: 'bool',\r\n default: false,\r\n get(this: Water, value) {\r\n value.bool[0] = this.wireframe;\r\n },\r\n set(this: Water, value) {\r\n this.wireframe = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'AnimationSpeed',\r\n description: 'Playback speed of wave animation',\r\n type: 'float',\r\n default: 1,\r\n options: { animatable: true, minValue: 0, maxValue: 100 },\r\n get(this: Water, value) {\r\n value.num[0] = this.animationSpeed;\r\n },\r\n set(this: Water, value) {\r\n this.animationSpeed = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'DepthScale',\r\n description: 'Depth attenuation scale for the water material',\r\n type: 'float',\r\n default: 10,\r\n options: { animatable: true, minValue: 0, maxValue: 100 },\r\n get(this: Water, value) {\r\n value.num[0] = this.material.depthMulti;\r\n },\r\n set(this: Water, value) {\r\n this.material.depthMulti = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'RefractionStrength',\r\n description: 'Strength of underwater refraction',\r\n type: 'float',\r\n default: 0,\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: Water, value) {\r\n value.num[0] = this.material.refractionStrength;\r\n },\r\n set(this: Water, value) {\r\n this.material.refractionStrength = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Displace',\r\n description: 'Vertex displacement scale for water waves',\r\n type: 'float',\r\n default: 16,\r\n options: { minValue: 1, maxValue: 256 },\r\n get(this: Water, value) {\r\n value.num[0] = this.material.displace;\r\n },\r\n set(this: Water, value) {\r\n this.material.displace = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'TAAStrength',\r\n description: 'Temporal anti-aliasing strength for the water surface',\r\n type: 'float',\r\n default: 0.4,\r\n options: { minValue: 0, maxValue: 1 },\r\n get(this: Water, value) {\r\n value.num[0] = this.TAAStrength;\r\n },\r\n set(this: Water, value) {\r\n this.TAAStrength = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatterRampTexture',\r\n description: 'Ramp texture used for water scatter lighting',\r\n type: 'object',\r\n default: null,\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Water, value) {\r\n value.str[0] = manager.getAssetId(this.material.scatterRampTexture) ?? '';\r\n },\r\n async set(value) {\r\n if (!value) {\r\n this.material.scatterRampTexture = null;\r\n } else {\r\n if (value.str[0]) {\r\n const assetId = value.str[0];\r\n let tex: Nullable<Texture2D>;\r\n try {\r\n tex = await manager.fetchTexture<Texture2D>(assetId);\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n tex = null;\r\n }\r\n if (tex?.isTexture2D()) {\r\n this.material.scatterRampTexture = tex;\r\n } else {\r\n console.error('Invalid texture type');\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n name: 'AbsorptionRampTexture',\r\n description: 'Ramp texture used for water absorption',\r\n type: 'object',\r\n default: null,\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Water, value) {\r\n value.str[0] = manager.getAssetId(this.material.absorptionRampTexture) ?? '';\r\n },\r\n async set(this: Water, value) {\r\n if (!value) {\r\n this.material.absorptionRampTexture = null;\r\n } else {\r\n if (value.str[0]) {\r\n const assetId = value.str[0];\r\n let tex: Nullable<Texture2D>;\r\n try {\r\n tex = await manager.fetchTexture<Texture2D>(assetId);\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n tex = null;\r\n }\r\n if (tex?.isTexture2D()) {\r\n this.material.absorptionRampTexture = tex;\r\n } else {\r\n console.error('Invalid texture type');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n"],"names":["getFBMWaveGeneratorClass","ctor","FBMWaveGenerator","name","getProps","defineProps","description","type","options","minValue","maxValue","default","get","value","num","numOctaves","set","animatable","wind","x","y","Vector2","amplitude","frequency","getFFTWaveGeneratorClass","FFTWaveGenerator","alignment","foamWidth","foamContrast","getWaveLength","setWaveLength","getWaveStrength","setWaveStrength","getWaveCroppiness","setWaveCroppiness","getWaterClass","manager","Water","parent","GraphNode","createFunc","ctx","node","scene","obj","objectTypes","isNullable","object","waveGenerator","gridScale","bool","wireframe","animationSpeed","material","depthMulti","refractionStrength","displace","TAAStrength","str","getAssetId","scatterRampTexture","assetId","tex","fetchTexture","err","console","error","isTexture2D","absorptionRampTexture"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"water.js","sources":["../../../../src/utility/serialization/scene/water.ts"],"sourcesContent":["import type { Nullable } from '@zephyr3d/base';\r\nimport { Vector2 } from '@zephyr3d/base';\r\nimport type { SceneNode } from '../../../scene';\r\nimport { GraphNode } from '../../../scene';\r\nimport { Water } from '../../../scene/water';\r\nimport { defineProps, type SerializableClass } from '../types';\r\nimport type { WaveGenerator } from '../../../render';\r\nimport { FBMWaveGenerator, FFTWaveGenerator } from '../../../render';\r\nimport type { Texture2D } from '@zephyr3d/device';\r\nimport type { ResourceManager } from '../manager';\r\n\r\n/** @internal */\r\nexport function getFBMWaveGeneratorClass(): SerializableClass {\r\n return {\r\n ctor: FBMWaveGenerator,\r\n name: 'FBMWaveGenerator',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'NumOctaves',\r\n description: 'Number of FBM noise octaves used to build the wave pattern',\r\n type: 'int',\r\n options: { minValue: 1, maxValue: 8 },\r\n default: 4,\r\n get(this: FBMWaveGenerator, value) {\r\n value.num[0] = this.numOctaves;\r\n },\r\n set(this: FBMWaveGenerator, value) {\r\n this.numOctaves = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Wind',\r\n description: 'Wind direction and speed that drive the FBM waves',\r\n type: 'vec2',\r\n default: [0.1, 0],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: FBMWaveGenerator, value) {\r\n value.num[0] = this.wind.x;\r\n value.num[1] = this.wind.y;\r\n },\r\n set(this: FBMWaveGenerator, value) {\r\n this.wind = new Vector2(value.num[0], value.num[1]);\r\n }\r\n },\r\n {\r\n name: 'Amplitude',\r\n description: 'Wave height amplitude for the FBM wave generator',\r\n type: 'float',\r\n options: { animatable: true, minValue: 0, maxValue: 5 },\r\n default: 0.3,\r\n get(this: FBMWaveGenerator, value) {\r\n value.num[0] = this.amplitude;\r\n },\r\n set(this: FBMWaveGenerator, value) {\r\n this.amplitude = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Frequency',\r\n description: 'Wave frequency for the FBM wave generator',\r\n type: 'float',\r\n options: { animatable: true, minValue: 0, maxValue: 16 },\r\n default: 3,\r\n get(this: FBMWaveGenerator, value) {\r\n value.num[0] = this.frequency;\r\n },\r\n set(this: FBMWaveGenerator, value) {\r\n this.frequency = value.num[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getFFTWaveGeneratorClass(): SerializableClass {\r\n return {\r\n ctor: FFTWaveGenerator,\r\n name: 'FFTWaveGenerator',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Alignment',\r\n description: 'How strongly FFT waves align with the wind direction',\r\n type: 'float',\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.alignment;\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.alignment = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Wind',\r\n description: 'Wind direction and speed that drive the FFT waves',\r\n type: 'vec2',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.wind.x;\r\n value.num[1] = this.wind.y;\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.wind = new Vector2(value.num[0], value.num[1]);\r\n }\r\n },\r\n {\r\n name: 'FoamWidth',\r\n description: 'Width of foam bands generated on the wave crests',\r\n type: 'float',\r\n default: 1.2,\r\n options: { animatable: true, minValue: 0, maxValue: 10 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.foamWidth;\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.foamWidth = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'FoamContrast',\r\n description: 'Contrast of the foam pattern on FFT waves',\r\n type: 'float',\r\n default: 7.2,\r\n options: { animatable: true, minValue: 0, maxValue: 10 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.foamContrast;\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.foamContrast = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'WaveLengthCascades',\r\n description: 'Wavelength values for the three FFT wave cascades',\r\n type: 'vec3',\r\n default: [400, 100, 15],\r\n options: { animatable: true, minValue: 0, maxValue: 1000 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.getWaveLength(0);\r\n value.num[1] = this.getWaveLength(1);\r\n value.num[2] = this.getWaveLength(2);\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.setWaveLength(0, value.num[0]);\r\n this.setWaveLength(1, value.num[1]);\r\n this.setWaveLength(2, value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'WaveStrengthCascades',\r\n description: 'Strength values for the three FFT wave cascades',\r\n type: 'vec3',\r\n default: [0.4, 0.4, 0.2],\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.getWaveStrength(0);\r\n value.num[1] = this.getWaveStrength(1);\r\n value.num[2] = this.getWaveStrength(2);\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.setWaveStrength(0, value.num[0]);\r\n this.setWaveStrength(1, value.num[1]);\r\n this.setWaveStrength(2, value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'WaveCroppinessCascades',\r\n description: 'Croppiness values for the three FFT wave cascades',\r\n type: 'vec3',\r\n default: [-1.5, -1.2, -0.5],\r\n options: { animatable: true, minValue: -4, maxValue: 0 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.getWaveCroppiness(0);\r\n value.num[1] = this.getWaveCroppiness(1);\r\n value.num[2] = this.getWaveCroppiness(2);\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.setWaveCroppiness(0, value.num[0]);\r\n this.setWaveCroppiness(1, value.num[1]);\r\n this.setWaveCroppiness(2, value.num[2]);\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getWaterClass(manager: ResourceManager): SerializableClass {\r\n return {\r\n ctor: Water,\r\n name: 'Water',\r\n parent: GraphNode,\r\n createFunc(ctx: SceneNode) {\r\n const node = new Water(ctx.scene!);\r\n node.parent = ctx;\r\n return { obj: node };\r\n },\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'WaveGenerator',\r\n description: 'Wave generator used to drive the water surface',\r\n type: 'object',\r\n default: null,\r\n options: {\r\n objectTypes: [FFTWaveGenerator, FBMWaveGenerator]\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Water, value) {\r\n value.object[0] = this.waveGenerator ?? null;\r\n },\r\n set(this: Water, value) {\r\n if (!value.object[0]) {\r\n this.waveGenerator = null;\r\n } else {\r\n this.waveGenerator = value.object[0] as WaveGenerator;\r\n }\r\n }\r\n },\r\n {\r\n name: 'GridScale',\r\n description: 'Scale of the water simulation grid',\r\n type: 'float',\r\n default: 1,\r\n options: { minValue: 0, maxValue: 1 },\r\n get(this: Water, value) {\r\n value.num[0] = this.gridScale;\r\n },\r\n set(this: Water, value) {\r\n this.gridScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Wireframe',\r\n description: 'If true, renders the water surface as wireframe',\r\n type: 'bool',\r\n default: false,\r\n get(this: Water, value) {\r\n value.bool[0] = this.wireframe;\r\n },\r\n set(this: Water, value) {\r\n this.wireframe = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'AnimationSpeed',\r\n description: 'Playback speed of wave animation',\r\n type: 'float',\r\n default: 1,\r\n options: { animatable: true, minValue: 0, maxValue: 100 },\r\n get(this: Water, value) {\r\n value.num[0] = this.animationSpeed;\r\n },\r\n set(this: Water, value) {\r\n this.animationSpeed = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'DepthScale',\r\n description: 'Depth attenuation scale for the water material',\r\n type: 'float',\r\n default: 10,\r\n options: { animatable: true, minValue: 0, maxValue: 100 },\r\n get(this: Water, value) {\r\n value.num[0] = this.material.depthMulti;\r\n },\r\n set(this: Water, value) {\r\n this.material.depthMulti = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'RefractionStrength',\r\n description: 'Strength of underwater refraction',\r\n type: 'float',\r\n default: 0,\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: Water, value) {\r\n value.num[0] = this.material.refractionStrength;\r\n },\r\n set(this: Water, value) {\r\n this.material.refractionStrength = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Displace',\r\n description: 'Vertex displacement scale for water waves',\r\n type: 'float',\r\n default: 16,\r\n options: { minValue: 1, maxValue: 256 },\r\n get(this: Water, value) {\r\n value.num[0] = this.material.displace;\r\n },\r\n set(this: Water, value) {\r\n this.material.displace = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'TAAStrength',\r\n description: 'Temporal anti-aliasing strength for the water surface',\r\n type: 'float',\r\n default: 0.4,\r\n options: { minValue: 0, maxValue: 1 },\r\n get(this: Water, value) {\r\n value.num[0] = this.TAAStrength;\r\n },\r\n set(this: Water, value) {\r\n this.TAAStrength = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatterRampTexture',\r\n description: 'Ramp texture used for water scatter lighting',\r\n type: 'object',\r\n default: null,\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Water, value) {\r\n value.str[0] = manager.getAssetId(this.material.scatterRampTexture) ?? '';\r\n },\r\n async set(value) {\r\n if (!value) {\r\n this.material.scatterRampTexture = null;\r\n } else {\r\n if (value.str[0]) {\r\n const assetId = value.str[0];\r\n let tex: Nullable<Texture2D>;\r\n try {\r\n tex = await manager.fetchTexture<Texture2D>(assetId);\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n tex = null;\r\n }\r\n if (tex?.isTexture2D()) {\r\n this.material.scatterRampTexture = tex;\r\n } else {\r\n console.error('Invalid texture type');\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n name: 'AbsorptionRampTexture',\r\n description: 'Ramp texture used for water absorption',\r\n type: 'object',\r\n default: null,\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Water, value) {\r\n value.str[0] = manager.getAssetId(this.material.absorptionRampTexture) ?? '';\r\n },\r\n async set(this: Water, value) {\r\n if (!value) {\r\n this.material.absorptionRampTexture = null;\r\n } else {\r\n if (value.str[0]) {\r\n const assetId = value.str[0];\r\n let tex: Nullable<Texture2D>;\r\n try {\r\n tex = await manager.fetchTexture<Texture2D>(assetId);\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n tex = null;\r\n }\r\n if (tex?.isTexture2D()) {\r\n this.material.absorptionRampTexture = tex;\r\n } else {\r\n console.error('Invalid texture type');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n"],"names":["getFBMWaveGeneratorClass","ctor","FBMWaveGenerator","name","getProps","defineProps","description","type","options","minValue","maxValue","default","get","value","num","numOctaves","set","animatable","wind","x","y","Vector2","amplitude","frequency","getFFTWaveGeneratorClass","FFTWaveGenerator","alignment","foamWidth","foamContrast","getWaveLength","setWaveLength","getWaveStrength","setWaveStrength","getWaveCroppiness","setWaveCroppiness","getWaterClass","manager","Water","parent","GraphNode","createFunc","ctx","node","scene","obj","objectTypes","isNullable","object","waveGenerator","gridScale","bool","wireframe","animationSpeed","material","depthMulti","refractionStrength","displace","TAAStrength","str","getAssetId","scatterRampTexture","assetId","tex","fetchTexture","err","console","error","isTexture2D","absorptionRampTexture"],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
const LTC_LUT_SIZE = 64;
|
|
2
|
+
const LTC_MAT_LUT_BASE64 = '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';
|
|
3
|
+
const LTC_AMP_LUT_BASE64 = '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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==';
|
|
4
|
+
|
|
5
|
+
export { LTC_AMP_LUT_BASE64, LTC_LUT_SIZE, LTC_MAT_LUT_BASE64 };
|
|
6
|
+
//# sourceMappingURL=ltcdata.js.map
|
|
@@ -0,0 +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;;;;"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { getDevice } from '../../app/api.js';
|
|
2
|
+
import { LTC_MAT_LUT_BASE64, LTC_AMP_LUT_BASE64, LTC_LUT_SIZE } from './ltcdata.js';
|
|
3
|
+
|
|
4
|
+
const LUT_SIZE = LTC_LUT_SIZE;
|
|
5
|
+
let ltcMatLut = null;
|
|
6
|
+
let ltcAmpLut = null;
|
|
7
|
+
function decodeBase64(base64) {
|
|
8
|
+
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
|
9
|
+
const clean = base64.replace(/[^A-Za-z0-9+/=]/g, '');
|
|
10
|
+
const out = [];
|
|
11
|
+
let i = 0;
|
|
12
|
+
while(i < clean.length){
|
|
13
|
+
const enc1 = chars.indexOf(clean.charAt(i++));
|
|
14
|
+
const enc2 = chars.indexOf(clean.charAt(i++));
|
|
15
|
+
const enc3 = chars.indexOf(clean.charAt(i++));
|
|
16
|
+
const enc4 = chars.indexOf(clean.charAt(i++));
|
|
17
|
+
const chr1 = enc1 << 2 | enc2 >> 4;
|
|
18
|
+
const chr2 = (enc2 & 15) << 4 | enc3 >> 2;
|
|
19
|
+
const chr3 = (enc3 & 3) << 6 | enc4;
|
|
20
|
+
out.push(chr1);
|
|
21
|
+
if (enc3 !== 64) {
|
|
22
|
+
out.push(chr2);
|
|
23
|
+
}
|
|
24
|
+
if (enc4 !== 64) {
|
|
25
|
+
out.push(chr3);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return new Uint8Array(out);
|
|
29
|
+
}
|
|
30
|
+
function createTexture(base64, name) {
|
|
31
|
+
const data = decodeBase64(base64);
|
|
32
|
+
if (data.byteLength !== LUT_SIZE * LUT_SIZE * 4) {
|
|
33
|
+
throw new Error(`createTexture(): invalid LTC LUT size for ${name}`);
|
|
34
|
+
}
|
|
35
|
+
const device = getDevice();
|
|
36
|
+
const tex = device.createTexture2D('rgba8unorm', LUT_SIZE, LUT_SIZE, {
|
|
37
|
+
mipmapping: false
|
|
38
|
+
});
|
|
39
|
+
tex.update(data, 0, 0, LUT_SIZE, LUT_SIZE);
|
|
40
|
+
tex.name = name;
|
|
41
|
+
return tex;
|
|
42
|
+
}
|
|
43
|
+
function createLTCTextures() {
|
|
44
|
+
ltcMatLut = createTexture(LTC_MAT_LUT_BASE64, 'LTC_Mat');
|
|
45
|
+
ltcAmpLut = createTexture(LTC_AMP_LUT_BASE64, 'LTC_Amp');
|
|
46
|
+
}
|
|
47
|
+
function getLTCMatLUT() {
|
|
48
|
+
if (!ltcMatLut) {
|
|
49
|
+
createLTCTextures();
|
|
50
|
+
}
|
|
51
|
+
return ltcMatLut;
|
|
52
|
+
}
|
|
53
|
+
function getLTCAmpLUT() {
|
|
54
|
+
if (!ltcAmpLut) {
|
|
55
|
+
createLTCTextures();
|
|
56
|
+
}
|
|
57
|
+
return ltcAmpLut;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export { getLTCAmpLUT, getLTCMatLUT };
|
|
61
|
+
//# sourceMappingURL=ltclut.js.map
|
|
@@ -0,0 +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 { LTC_AMP_LUT_BASE64, LTC_LUT_SIZE, LTC_MAT_LUT_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\nfunction createTexture(base64: string, name: string) {\r\n const data = decodeBase64(base64);\r\n if (data.byteLength !== LUT_SIZE * LUT_SIZE * 4) {\r\n throw new Error(`createTexture(): invalid LTC LUT size for ${name}`);\r\n }\r\n const device = getDevice();\r\n const tex = device.createTexture2D('rgba8unorm', 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_BASE64, 'LTC_Mat');\r\n ltcAmpLut = createTexture(LTC_AMP_LUT_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","data","byteLength","Error","device","getDevice","tex","createTexture2D","mipmapping","update","createLTCTextures","LTC_MAT_LUT_BASE64","LTC_AMP_LUT_BASE64","getLTCMatLUT","getLTCAmpLUT"],"mappings":";;;AAIA,MAAMA,QAAWC,GAAAA,YAAAA;AACjB,IAAIC,SAA8B,GAAA,IAAA;AAClC,IAAIC,SAA8B,GAAA,IAAA;AAElC,SAASC,aAAaC,MAAc,EAAA;AAClC,IAAA,MAAMC,KAAQ,GAAA,mEAAA;AACd,IAAA,MAAMC,KAAQF,GAAAA,MAAAA,CAAOG,OAAO,CAAC,kBAAoB,EAAA,EAAA,CAAA;AACjD,IAAA,MAAMC,MAAgB,EAAE;AACxB,IAAA,IAAIC,CAAI,GAAA,CAAA;IACR,MAAOA,CAAAA,GAAIH,KAAMI,CAAAA,MAAM,CAAE;AACvB,QAAA,MAAMC,OAAON,KAAMO,CAAAA,OAAO,CAACN,KAAAA,CAAMO,MAAM,CAACJ,CAAAA,EAAAA,CAAAA,CAAAA;AACxC,QAAA,MAAMK,OAAOT,KAAMO,CAAAA,OAAO,CAACN,KAAAA,CAAMO,MAAM,CAACJ,CAAAA,EAAAA,CAAAA,CAAAA;AACxC,QAAA,MAAMM,OAAOV,KAAMO,CAAAA,OAAO,CAACN,KAAAA,CAAMO,MAAM,CAACJ,CAAAA,EAAAA,CAAAA,CAAAA;AACxC,QAAA,MAAMO,OAAOX,KAAMO,CAAAA,OAAO,CAACN,KAAAA,CAAMO,MAAM,CAACJ,CAAAA,EAAAA,CAAAA,CAAAA;AACxC,QAAA,MAAMQ,IAAO,GAACN,IAAQ,IAAA,CAAA,GAAMG,IAAQ,IAAA,CAAA;AACpC,QAAA,MAAMI,OAAO,CAAEJ,OAAO,EAAC,KAAM,IAAMC,IAAQ,IAAA,CAAA;AAC3C,QAAA,MAAMI,OAAO,CAAEJ,IAAO,GAAA,CAAA,KAAM,CAAKC,GAAAA,IAAAA;AACjCR,QAAAA,GAAAA,CAAIY,IAAI,CAACH,IAAAA,CAAAA;AACT,QAAA,IAAIF,SAAS,EAAI,EAAA;AACfP,YAAAA,GAAAA,CAAIY,IAAI,CAACF,IAAAA,CAAAA;AACX;AACA,QAAA,IAAIF,SAAS,EAAI,EAAA;AACfR,YAAAA,GAAAA,CAAIY,IAAI,CAACD,IAAAA,CAAAA;AACX;AACF;AACA,IAAA,OAAO,IAAIE,UAAWb,CAAAA,GAAAA,CAAAA;AACxB;AAEA,SAASc,aAAAA,CAAclB,MAAc,EAAEmB,IAAY,EAAA;AACjD,IAAA,MAAMC,OAAOrB,YAAaC,CAAAA,MAAAA,CAAAA;AAC1B,IAAA,IAAIoB,IAAKC,CAAAA,UAAU,KAAK1B,QAAAA,GAAWA,WAAW,CAAG,EAAA;AAC/C,QAAA,MAAM,IAAI2B,KAAAA,CAAM,CAAC,0CAA0C,EAAEH,IAAM,CAAA,CAAA,CAAA;AACrE;AACA,IAAA,MAAMI,MAASC,GAAAA,SAAAA,EAAAA;AACf,IAAA,MAAMC,MAAMF,MAAOG,CAAAA,eAAe,CAAC,YAAA,EAAc/B,UAAUA,QAAU,EAAA;QAAEgC,UAAY,EAAA;AAAM,KAAA,CAAA;AACzFF,IAAAA,GAAAA,CAAIG,MAAM,CAACR,IAAM,EAAA,CAAA,EAAG,GAAGzB,QAAUA,EAAAA,QAAAA,CAAAA;AACjC8B,IAAAA,GAAAA,CAAIN,IAAI,GAAGA,IAAAA;IACX,OAAOM,GAAAA;AACT;AAEA,SAASI,iBAAAA,GAAAA;AACPhC,IAAAA,SAAAA,GAAYqB,cAAcY,kBAAoB,EAAA,SAAA,CAAA;AAC9ChC,IAAAA,SAAAA,GAAYoB,cAAca,kBAAoB,EAAA,SAAA,CAAA;AAChD;AAEO,SAASC,YAAAA,GAAAA;AACd,IAAA,IAAI,CAACnC,SAAW,EAAA;AACdgC,QAAAA,iBAAAA,EAAAA;AACF;IACA,OAAOhC,SAAAA;AACT;AAEO,SAASoC,YAAAA,GAAAA;AACd,IAAA,IAAI,CAACnC,SAAW,EAAA;AACd+B,QAAAA,iBAAAA,EAAAA;AACF;IACA,OAAO/B,SAAAA;AACT;;;;"}
|
package/dist/values.js
CHANGED
|
@@ -44,6 +44,10 @@ import { Vector3 } from '@zephyr3d/base';
|
|
|
44
44
|
* Rectangular area light type
|
|
45
45
|
* @public
|
|
46
46
|
*/ const LIGHT_TYPE_RECT = 4;
|
|
47
|
+
/**
|
|
48
|
+
* Max light size for clustered lighting
|
|
49
|
+
* @public
|
|
50
|
+
*/ const MAX_CLUSTERED_LIGHTS = 255;
|
|
47
51
|
/**
|
|
48
52
|
* Opaque render queue type
|
|
49
53
|
* @public
|
|
@@ -76,6 +80,10 @@ import { Vector3 } from '@zephyr3d/base';
|
|
|
76
80
|
MaterialVaryingFlags[MaterialVaryingFlags["INSTANCING"] = 4] = "INSTANCING";
|
|
77
81
|
MaterialVaryingFlags[MaterialVaryingFlags["SSR_STORE_ROUGHNESS"] = 8] = "SSR_STORE_ROUGHNESS";
|
|
78
82
|
MaterialVaryingFlags[MaterialVaryingFlags["APPLY_FOG"] = 16] = "APPLY_FOG";
|
|
83
|
+
MaterialVaryingFlags[MaterialVaryingFlags["SSS_STORE_PROFILE"] = 32] = "SSS_STORE_PROFILE";
|
|
84
|
+
MaterialVaryingFlags[MaterialVaryingFlags["SSS_STORE_DIFFUSE"] = 64] = "SSS_STORE_DIFFUSE";
|
|
85
|
+
MaterialVaryingFlags[MaterialVaryingFlags["SSS_STORE_NORMAL"] = 128] = "SSS_STORE_NORMAL";
|
|
86
|
+
MaterialVaryingFlags[MaterialVaryingFlags["SSS_STORE_TRANSMISSION"] = 256] = "SSS_STORE_TRANSMISSION";
|
|
79
87
|
return MaterialVaryingFlags;
|
|
80
88
|
}({});
|
|
81
89
|
/**
|
|
@@ -158,5 +166,5 @@ import { Vector3 } from '@zephyr3d/base';
|
|
|
158
166
|
return Fog;
|
|
159
167
|
}({});
|
|
160
168
|
|
|
161
|
-
export { ATMOSPHERIC_FOG_BIT, BUILTIN_ASSET_TEST_CUBEMAP, BUILTIN_ASSET_TEXTURE_SHEEN_LUT, 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_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, uniformSphereSamples };
|
|
169
|
+
export { ATMOSPHERIC_FOG_BIT, BUILTIN_ASSET_TEST_CUBEMAP, BUILTIN_ASSET_TEXTURE_SHEEN_LUT, Fog, HEIGHT_FOG_BIT, LIGHT_TYPE_DIRECTIONAL, LIGHT_TYPE_NONE, LIGHT_TYPE_POINT, LIGHT_TYPE_RECT, LIGHT_TYPE_SPOT, MAX_CLUSTERED_LIGHTS, MAX_GERSTNER_WAVE_COUNT, MAX_MORPH_ATTRIBUTES, MAX_MORPH_TARGETS, 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, uniformSphereSamples };
|
|
162
170
|
//# 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/**\r\n * Rectangular area light type\r\n * @public\r\n */\r\nexport const LIGHT_TYPE_RECT = 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// Morph target attributes\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 MAX_MORPH_TARGETS = 256;\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\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 SSR_STORE_ROUGHNESS = 1 << 3,\r\n APPLY_FOG = 1 << 4\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","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","MAX_MORPH_TARGETS","MORPH_WEIGHTS_VECTOR_COUNT","MORPH_ATTRIBUTE_VECTOR_COUNT","MAX_TERRAIN_MIPMAP_LEVELS","MAX_GERSTNER_WAVE_COUNT","MaterialVaryingFlags","ATMOSPHERIC_FOG_BIT","HEIGHT_FOG_BIT","uniformSphereSamples","Vector3","Fog"],"mappings":"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"}
|
|
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 light size for clustered lighting\r\n * @public\r\n */\r\nexport const MAX_CLUSTERED_LIGHTS = 255;\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// Morph target attributes\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 MAX_MORPH_TARGETS = 256;\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\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 SSR_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 SSS_STORE_NORMAL = 1 << 7,\r\n SSS_STORE_TRANSMISSION = 1 << 8\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_CLUSTERED_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","MAX_MORPH_TARGETS","MORPH_WEIGHTS_VECTOR_COUNT","MORPH_ATTRIBUTE_VECTOR_COUNT","MAX_TERRAIN_MIPMAP_LEVELS","MAX_GERSTNER_WAVE_COUNT","MaterialVaryingFlags","ATMOSPHERIC_FOG_BIT","HEIGHT_FOG_BIT","uniformSphereSamples","Vector3","Fog"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zephyr3d/scene",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.7",
|
|
4
4
|
"description": "Scene API for zephyr3d",
|
|
5
5
|
"homepage": "https://github.com/gavinyork/zephyr3d#readme",
|
|
6
6
|
"type": "module",
|
|
@@ -67,8 +67,8 @@
|
|
|
67
67
|
"dependencies": {
|
|
68
68
|
"@types/draco3d": "^1.4.9",
|
|
69
69
|
"@webgpu/types": "^0.1.65",
|
|
70
|
-
"@zephyr3d/base": "^0.2.
|
|
71
|
-
"@zephyr3d/device": "^0.2.
|
|
70
|
+
"@zephyr3d/base": "^0.2.7",
|
|
71
|
+
"@zephyr3d/device": "^0.2.10",
|
|
72
72
|
"es-module-lexer": "^1.7.0"
|
|
73
73
|
},
|
|
74
74
|
"scripts": {
|