@zephyr3d/scene 0.6.0 → 0.7.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 +1 -1
- package/dist/animation/animation.js +149 -27
- package/dist/animation/animation.js.map +1 -1
- package/dist/animation/animationset.js +173 -73
- package/dist/animation/animationset.js.map +1 -1
- package/dist/animation/animationtrack.js +65 -10
- package/dist/animation/animationtrack.js.map +1 -1
- package/dist/animation/eulerrotationtrack.js +41 -20
- package/dist/animation/eulerrotationtrack.js.map +1 -1
- package/dist/animation/morphtarget.js +14 -38
- package/dist/animation/morphtarget.js.map +1 -1
- package/dist/animation/morphtrack.js +59 -22
- package/dist/animation/morphtrack.js.map +1 -1
- package/dist/animation/proptrack.js +190 -0
- package/dist/animation/proptrack.js.map +1 -0
- package/dist/animation/rotationtrack.js +29 -11
- package/dist/animation/rotationtrack.js.map +1 -1
- package/dist/animation/scaletrack.js +29 -11
- package/dist/animation/scaletrack.js.map +1 -1
- package/dist/animation/skeleton.js +241 -78
- package/dist/animation/skeleton.js.map +1 -1
- package/dist/animation/translationtrack.js +30 -11
- package/dist/animation/translationtrack.js.map +1 -1
- package/dist/app/api.js +43 -0
- package/dist/app/api.js.map +1 -0
- package/dist/app/app.js +153 -0
- package/dist/app/app.js.map +1 -0
- package/dist/app/engine.js +312 -0
- package/dist/app/engine.js.map +1 -0
- package/dist/app/inputmgr.js +351 -0
- package/dist/app/inputmgr.js.map +1 -0
- package/dist/app/runtimescript.js +62 -0
- package/dist/app/runtimescript.js.map +1 -0
- package/dist/app/scriptingsystem.js +220 -0
- package/dist/app/scriptingsystem.js.map +1 -0
- package/dist/app/scriptregistry.js +432 -0
- package/dist/app/scriptregistry.js.map +1 -0
- package/dist/asset/assetmanager.js +772 -291
- package/dist/asset/assetmanager.js.map +1 -1
- package/dist/asset/builtin.js +7 -43
- package/dist/asset/builtin.js.map +1 -1
- package/dist/asset/loaders/dds/dds.js +17 -93
- package/dist/asset/loaders/dds/dds.js.map +1 -1
- package/dist/asset/loaders/dds/dds_loader.js +8 -18
- package/dist/asset/loaders/dds/dds_loader.js.map +1 -1
- package/dist/asset/loaders/gltf/gltf_loader.js +36 -42
- package/dist/asset/loaders/gltf/gltf_loader.js.map +1 -1
- package/dist/asset/loaders/gltf/helpers.js +27 -14
- package/dist/asset/loaders/gltf/helpers.js.map +1 -1
- package/dist/asset/loaders/hdr/hdr.js +17 -12
- package/dist/asset/loaders/hdr/hdr.js.map +1 -1
- package/dist/asset/loaders/image/tga_Loader.js +13 -16
- package/dist/asset/loaders/image/tga_Loader.js.map +1 -1
- package/dist/asset/loaders/image/webimage_loader.js +51 -50
- package/dist/asset/loaders/image/webimage_loader.js.map +1 -1
- package/dist/asset/loaders/loader.js.map +1 -1
- package/dist/asset/model.js +158 -4
- package/dist/asset/model.js.map +1 -1
- package/dist/blitter/bilateralblur.js +0 -1
- package/dist/blitter/bilateralblur.js.map +1 -1
- package/dist/blitter/blitter.js +22 -23
- package/dist/blitter/blitter.js.map +1 -1
- package/dist/blitter/box.js.map +1 -1
- package/dist/blitter/copy.js.map +1 -1
- package/dist/blitter/gaussianblur.js +23 -23
- package/dist/blitter/gaussianblur.js.map +1 -1
- package/dist/camera/base.js +141 -34
- package/dist/camera/base.js.map +1 -1
- package/dist/camera/camera.js +653 -149
- package/dist/camera/camera.js.map +1 -1
- package/dist/camera/fps.js +2 -10
- package/dist/camera/fps.js.map +1 -1
- package/dist/camera/orbit.js +132 -59
- package/dist/camera/orbit.js.map +1 -1
- package/dist/camera/orthocamera.js +37 -12
- package/dist/camera/orthocamera.js.map +1 -1
- package/dist/camera/perspectivecamera.js +37 -20
- package/dist/camera/perspectivecamera.js.map +1 -1
- package/dist/index.d.ts +18268 -6982
- package/dist/index.js +49 -16
- package/dist/index.js.map +1 -1
- package/dist/material/blinn.js +5 -0
- package/dist/material/blinn.js.map +1 -1
- package/dist/material/grassmaterial.js +6 -1
- package/dist/material/grassmaterial.js.map +1 -1
- package/dist/material/lambert.js +6 -1
- package/dist/material/lambert.js.map +1 -1
- package/dist/material/material.js +346 -73
- package/dist/material/material.js.map +1 -1
- package/dist/material/meshmaterial.js +498 -156
- package/dist/material/meshmaterial.js.map +1 -1
- package/dist/material/mixins/albedocolor.js +5 -1
- package/dist/material/mixins/albedocolor.js.map +1 -1
- package/dist/material/mixins/foliage.js +3 -3
- package/dist/material/mixins/foliage.js.map +1 -1
- package/dist/material/mixins/lightmodel/blinnphong.js +18 -5
- package/dist/material/mixins/lightmodel/blinnphong.js.map +1 -1
- package/dist/material/mixins/lightmodel/lambert.js +6 -6
- package/dist/material/mixins/lightmodel/lambert.js.map +1 -1
- package/dist/material/mixins/lightmodel/pbrblueprintmixin.js +235 -0
- package/dist/material/mixins/lightmodel/pbrblueprintmixin.js.map +1 -0
- package/dist/material/mixins/lightmodel/pbrmetallicroughness.js +52 -15
- package/dist/material/mixins/lightmodel/pbrmetallicroughness.js.map +1 -1
- package/dist/material/mixins/lightmodel/pbrspecularglossness.js +27 -9
- package/dist/material/mixins/lightmodel/pbrspecularglossness.js.map +1 -1
- package/dist/material/mixins/lit.js +16 -4
- package/dist/material/mixins/lit.js.map +1 -1
- package/dist/material/mixins/pbr/brdf.js +134 -0
- package/dist/material/mixins/pbr/brdf.js.map +1 -0
- package/dist/material/mixins/pbr/common.js +68 -85
- package/dist/material/mixins/pbr/common.js.map +1 -1
- package/dist/material/mixins/texture.js +98 -83
- package/dist/material/mixins/texture.js.map +1 -1
- package/dist/material/mixins/vertexcolor.js +6 -2
- package/dist/material/mixins/vertexcolor.js.map +1 -1
- package/dist/material/particle.js +272 -0
- package/dist/material/particle.js.map +1 -0
- package/dist/material/pbrblueprint.js +186 -0
- package/dist/material/pbrblueprint.js.map +1 -0
- package/dist/material/pbrmr.js +10 -0
- package/dist/material/pbrmr.js.map +1 -1
- package/dist/material/pbrsg.js +10 -0
- package/dist/material/pbrsg.js.map +1 -1
- package/dist/material/shader/helper.js +521 -287
- package/dist/material/shader/helper.js.map +1 -1
- package/dist/material/terrain-cm.js +607 -0
- package/dist/material/terrain-cm.js.map +1 -0
- package/dist/material/terrainmaterial.js +59 -54
- package/dist/material/terrainmaterial.js.map +1 -1
- package/dist/material/unlit.js +5 -0
- package/dist/material/unlit.js.map +1 -1
- package/dist/material/water.js +415 -0
- package/dist/material/water.js.map +1 -0
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimemgr.js +38 -0
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimemgr.js.map +1 -0
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimescript.js +10 -0
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimescript.js.map +1 -0
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptingsystem.js +127 -0
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptingsystem.js.map +1 -0
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptregistry.js +263 -0
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptregistry.js.map +1 -0
- package/dist/node_modules/es-module-lexer/dist/lexer.js +5 -0
- package/dist/node_modules/es-module-lexer/dist/lexer.js.map +1 -0
- package/dist/posteffect/bloom.js +39 -54
- package/dist/posteffect/bloom.js.map +1 -1
- package/dist/posteffect/compositor.js +95 -128
- package/dist/posteffect/compositor.js.map +1 -1
- package/dist/posteffect/fxaa.js +10 -18
- package/dist/posteffect/fxaa.js.map +1 -1
- package/dist/posteffect/grayscale.js +9 -17
- package/dist/posteffect/grayscale.js.map +1 -1
- package/dist/posteffect/motionblur.js +105 -0
- package/dist/posteffect/motionblur.js.map +1 -0
- package/dist/posteffect/posteffect.js +66 -35
- package/dist/posteffect/posteffect.js.map +1 -1
- package/dist/posteffect/sao.js +13 -21
- package/dist/posteffect/sao.js.map +1 -1
- package/dist/posteffect/ssr.js +60 -100
- package/dist/posteffect/ssr.js.map +1 -1
- package/dist/posteffect/taa.js +175 -0
- package/dist/posteffect/taa.js.map +1 -0
- package/dist/posteffect/tonemap.js +12 -20
- package/dist/posteffect/tonemap.js.map +1 -1
- package/dist/render/abuffer_oit.js +30 -19
- package/dist/render/abuffer_oit.js.map +1 -1
- package/dist/render/clipmap.js +429 -101
- package/dist/render/clipmap.js.map +1 -1
- package/dist/render/cluster_light.js +7 -5
- package/dist/render/cluster_light.js.map +1 -1
- package/dist/render/cull_visitor.js +43 -3
- package/dist/render/cull_visitor.js.map +1 -1
- package/dist/render/depthpass.js +14 -5
- package/dist/render/depthpass.js.map +1 -1
- package/dist/render/drawable_mixin.js +113 -40
- package/dist/render/drawable_mixin.js.map +1 -1
- package/dist/render/envlight.js +86 -141
- package/dist/render/envlight.js.map +1 -1
- package/dist/render/fbm_wavegenerator.js +234 -0
- package/dist/render/fbm_wavegenerator.js.map +1 -0
- package/dist/render/fft_wavegenerator.js +64 -50
- package/dist/render/fft_wavegenerator.js.map +1 -1
- package/dist/render/fullscreenquad.js +2 -2
- package/dist/render/fullscreenquad.js.map +1 -1
- package/dist/render/gerstner_wavegenerator.js +98 -48
- package/dist/render/gerstner_wavegenerator.js.map +1 -1
- package/dist/render/globalbindgroup_allocator.js +4 -2
- package/dist/render/globalbindgroup_allocator.js.map +1 -1
- package/dist/render/hzb.js +6 -3
- package/dist/render/hzb.js.map +1 -1
- package/dist/render/lightpass.js +19 -18
- package/dist/render/lightpass.js.map +1 -1
- package/dist/render/objectcolorpass.js +4 -4
- package/dist/render/objectcolorpass.js.map +1 -1
- package/dist/render/primitive.js +213 -104
- package/dist/render/primitive.js.map +1 -1
- package/dist/render/render_queue.js +40 -20
- package/dist/render/render_queue.js.map +1 -1
- package/dist/render/renderbundle_wrapper.js +65 -15
- package/dist/render/renderbundle_wrapper.js.map +1 -1
- package/dist/render/renderer.js +326 -185
- package/dist/render/renderer.js.map +1 -1
- package/dist/render/renderpass.js +20 -36
- package/dist/render/renderpass.js.map +1 -1
- package/dist/render/shadowmap_pass.js +3 -3
- package/dist/render/shadowmap_pass.js.map +1 -1
- package/dist/render/sky.js +864 -541
- package/dist/render/sky.js.map +1 -1
- package/dist/render/weightedblended_oit.js +13 -15
- package/dist/render/weightedblended_oit.js.map +1 -1
- package/dist/scene/batchgroup.js +18 -5
- package/dist/scene/batchgroup.js.map +1 -1
- package/dist/scene/environment.js +78 -48
- package/dist/scene/environment.js.map +1 -1
- package/dist/scene/graph_node.js +2 -3
- package/dist/scene/graph_node.js.map +1 -1
- package/dist/scene/light.js +28 -89
- package/dist/scene/light.js.map +1 -1
- package/dist/scene/mesh.js +218 -87
- package/dist/scene/mesh.js.map +1 -1
- package/dist/scene/octree.js +371 -162
- package/dist/scene/octree.js.map +1 -1
- package/dist/scene/particlesys.js +684 -0
- package/dist/scene/particlesys.js.map +1 -0
- package/dist/scene/raycast_visitor.js +34 -5
- package/dist/scene/raycast_visitor.js.map +1 -1
- package/dist/scene/scene.js +309 -85
- package/dist/scene/scene.js.map +1 -1
- package/dist/scene/scene_node.js +675 -102
- package/dist/scene/scene_node.js.map +1 -1
- package/dist/scene/terrain/grass.js +48 -49
- package/dist/scene/terrain/grass.js.map +1 -1
- package/dist/scene/terrain/heightfield.js +46 -44
- package/dist/scene/terrain/heightfield.js.map +1 -1
- package/dist/scene/terrain/patch.js +20 -29
- package/dist/scene/terrain/patch.js.map +1 -1
- package/dist/scene/terrain/quadtree.js +58 -27
- package/dist/scene/terrain/quadtree.js.map +1 -1
- package/dist/scene/terrain/terrain.js +31 -45
- package/dist/scene/terrain/terrain.js.map +1 -1
- package/dist/scene/terrain-cm/grass.js +603 -0
- package/dist/scene/terrain-cm/grass.js.map +1 -0
- package/dist/scene/terrain-cm/grassmaterial.js +160 -0
- package/dist/scene/terrain-cm/grassmaterial.js.map +1 -0
- package/dist/scene/terrain-cm/terrain-cm.js +533 -0
- package/dist/scene/terrain-cm/terrain-cm.js.map +1 -0
- package/dist/scene/water.js +378 -0
- package/dist/scene/water.js.map +1 -0
- package/dist/shaders/atmosphere.js +957 -0
- package/dist/shaders/atmosphere.js.map +1 -0
- package/dist/shaders/fog.js +116 -0
- package/dist/shaders/fog.js.map +1 -0
- package/dist/shaders/misc.js.map +1 -1
- package/dist/shaders/noise.js +217 -8
- package/dist/shaders/noise.js.map +1 -1
- package/dist/shaders/pbr.js.map +1 -1
- package/dist/shaders/shadow.js +8 -8
- package/dist/shaders/shadow.js.map +1 -1
- package/dist/shaders/ssr.js +87 -39
- package/dist/shaders/ssr.js.map +1 -1
- package/dist/shaders/temporal.js +216 -0
- package/dist/shaders/temporal.js.map +1 -0
- package/dist/shaders/water.js +42 -20
- package/dist/shaders/water.js.map +1 -1
- package/dist/shadow/esm.js +31 -13
- package/dist/shadow/esm.js.map +1 -1
- package/dist/shadow/pcf_opt.js +12 -13
- package/dist/shadow/pcf_opt.js.map +1 -1
- package/dist/shadow/pcf_pd.js +12 -13
- package/dist/shadow/pcf_pd.js.map +1 -1
- package/dist/shadow/shader.js +38 -0
- package/dist/shadow/shader.js.map +1 -0
- package/dist/shadow/shadow_impl.js.map +1 -1
- package/dist/shadow/shadowmapper.js +67 -26
- package/dist/shadow/shadowmapper.js.map +1 -1
- package/dist/shadow/ssm.js +15 -16
- package/dist/shadow/ssm.js.map +1 -1
- package/dist/shadow/vsm.js +33 -16
- package/dist/shadow/vsm.js.map +1 -1
- package/dist/shapes/box.js +181 -83
- package/dist/shapes/box.js.map +1 -1
- package/dist/shapes/cylinder.js +101 -43
- package/dist/shapes/cylinder.js.map +1 -1
- package/dist/shapes/plane.js +70 -29
- package/dist/shapes/plane.js.map +1 -1
- package/dist/shapes/shape.js +120 -17
- package/dist/shapes/shape.js.map +1 -1
- package/dist/shapes/sphere.js +78 -44
- package/dist/shapes/sphere.js.map +1 -1
- package/dist/shapes/tetrahedron.js +256 -0
- package/dist/shapes/tetrahedron.js.map +1 -0
- package/dist/shapes/torus.js +76 -55
- package/dist/shapes/torus.js.map +1 -1
- package/dist/src/animation/animation.js +127 -0
- package/dist/src/animation/animation.js.map +1 -0
- package/dist/src/animation/animationset.js +255 -0
- package/dist/src/animation/animationset.js.map +1 -0
- package/dist/src/animation/animationtrack.js +34 -0
- package/dist/src/animation/animationtrack.js.map +1 -0
- package/dist/src/animation/eulerrotationtrack.js +52 -0
- package/dist/src/animation/eulerrotationtrack.js.map +1 -0
- package/dist/src/animation/morphtarget.js +93 -0
- package/dist/src/animation/morphtarget.js.map +1 -0
- package/dist/src/animation/morphtrack.js +70 -0
- package/dist/src/animation/morphtrack.js.map +1 -0
- package/dist/src/animation/proptrack.js +161 -0
- package/dist/src/animation/proptrack.js.map +1 -0
- package/dist/src/animation/rotationtrack.js +51 -0
- package/dist/src/animation/rotationtrack.js.map +1 -0
- package/dist/src/animation/scaletrack.js +50 -0
- package/dist/src/animation/scaletrack.js.map +1 -0
- package/dist/src/animation/skeleton.js +204 -0
- package/dist/src/animation/skeleton.js.map +1 -0
- package/dist/src/animation/translationtrack.js +50 -0
- package/dist/src/animation/translationtrack.js.map +1 -0
- package/dist/{app.js → src/app/app.js} +18 -40
- package/dist/src/app/app.js.map +1 -0
- package/dist/{input → src/app}/inputmgr.js +41 -16
- package/dist/src/app/inputmgr.js.map +1 -0
- package/dist/src/asset/assetmanager.js +404 -0
- package/dist/src/asset/assetmanager.js.map +1 -0
- package/dist/src/asset/builtin.js +337 -0
- package/dist/src/asset/builtin.js.map +1 -0
- package/dist/src/asset/loaders/dds/dds.js +470 -0
- package/dist/src/asset/loaders/dds/dds.js.map +1 -0
- package/dist/src/asset/loaders/dds/dds_loader.js +28 -0
- package/dist/src/asset/loaders/dds/dds_loader.js.map +1 -0
- package/dist/src/asset/loaders/gltf/gltf_loader.js +1265 -0
- package/dist/src/asset/loaders/gltf/gltf_loader.js.map +1 -0
- package/dist/src/asset/loaders/gltf/helpers.js +327 -0
- package/dist/src/asset/loaders/gltf/helpers.js.map +1 -0
- package/dist/src/asset/loaders/hdr/hdr.js +180 -0
- package/dist/src/asset/loaders/hdr/hdr.js.map +1 -0
- package/dist/src/asset/loaders/image/tga_Loader.js +116 -0
- package/dist/src/asset/loaders/image/tga_Loader.js.map +1 -0
- package/dist/src/asset/loaders/image/webimage_loader.js +63 -0
- package/dist/src/asset/loaders/image/webimage_loader.js.map +1 -0
- package/dist/src/asset/loaders/loader.js +45 -0
- package/dist/src/asset/loaders/loader.js.map +1 -0
- package/dist/src/asset/model.js +414 -0
- package/dist/src/asset/model.js.map +1 -0
- package/dist/{blitter/depthlimitedgaussion.js → src/blitter/bilateralblur.js} +1 -2
- package/dist/src/blitter/bilateralblur.js.map +1 -0
- package/dist/src/blitter/blitter.js +390 -0
- package/dist/src/blitter/blitter.js.map +1 -0
- package/dist/src/blitter/box.js +118 -0
- package/dist/src/blitter/box.js.map +1 -0
- package/dist/src/blitter/copy.js +22 -0
- package/dist/src/blitter/copy.js.map +1 -0
- package/dist/src/blitter/gaussianblur.js +228 -0
- package/dist/src/blitter/gaussianblur.js.map +1 -0
- package/dist/src/camera/base.js +92 -0
- package/dist/src/camera/base.js.map +1 -0
- package/dist/src/camera/camera.js +1005 -0
- package/dist/src/camera/camera.js.map +1 -0
- package/dist/src/camera/fps.js +238 -0
- package/dist/src/camera/fps.js.map +1 -0
- package/dist/src/camera/orbit.js +245 -0
- package/dist/src/camera/orbit.js.map +1 -0
- package/dist/src/camera/orthocamera.js +167 -0
- package/dist/src/camera/orthocamera.js.map +1 -0
- package/dist/src/camera/perspectivecamera.js +141 -0
- package/dist/src/camera/perspectivecamera.js.map +1 -0
- package/dist/src/index.js +120 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/material/blinn.js +81 -0
- package/dist/src/material/blinn.js.map +1 -0
- package/dist/src/material/grassmaterial.js +113 -0
- package/dist/src/material/grassmaterial.js.map +1 -0
- package/dist/src/material/lambert.js +92 -0
- package/dist/src/material/lambert.js.map +1 -0
- package/dist/src/material/material.js +301 -0
- package/dist/src/material/material.js.map +1 -0
- package/dist/src/material/meshmaterial.js +704 -0
- package/dist/src/material/meshmaterial.js.map +1 -0
- package/dist/src/material/mixins/albedocolor.js +76 -0
- package/dist/src/material/mixins/albedocolor.js.map +1 -0
- package/dist/src/material/mixins/foliage.js +47 -0
- package/dist/src/material/mixins/foliage.js.map +1 -0
- package/dist/src/material/mixins/lightmodel/blinnphong.js +112 -0
- package/dist/src/material/mixins/lightmodel/blinnphong.js.map +1 -0
- package/dist/src/material/mixins/lightmodel/lambert.js +58 -0
- package/dist/src/material/mixins/lightmodel/lambert.js.map +1 -0
- package/dist/src/material/mixins/lightmodel/pbrmetallicroughness.js +178 -0
- package/dist/src/material/mixins/lightmodel/pbrmetallicroughness.js.map +1 -0
- package/dist/src/material/mixins/lightmodel/pbrspecularglossness.js +139 -0
- package/dist/src/material/mixins/lightmodel/pbrspecularglossness.js.map +1 -0
- package/dist/src/material/mixins/lit.js +476 -0
- package/dist/src/material/mixins/lit.js.map +1 -0
- package/dist/src/material/mixins/pbr/common.js +918 -0
- package/dist/src/material/mixins/pbr/common.js.map +1 -0
- package/dist/src/material/mixins/texture.js +172 -0
- package/dist/src/material/mixins/texture.js.map +1 -0
- package/dist/src/material/mixins/vertexcolor.js +56 -0
- package/dist/src/material/mixins/vertexcolor.js.map +1 -0
- package/dist/src/material/particle.js +178 -0
- package/dist/src/material/particle.js.map +1 -0
- package/dist/src/material/pbrmr.js +97 -0
- package/dist/src/material/pbrmr.js.map +1 -0
- package/dist/src/material/pbrsg.js +97 -0
- package/dist/src/material/pbrsg.js.map +1 -0
- package/dist/src/material/shader/helper.js +1209 -0
- package/dist/src/material/shader/helper.js.map +1 -0
- package/dist/src/material/terrain-cm.js +606 -0
- package/dist/src/material/terrain-cm.js.map +1 -0
- package/dist/src/material/terrainmaterial.js +375 -0
- package/dist/src/material/terrainmaterial.js.map +1 -0
- package/dist/src/material/unlit.js +41 -0
- package/dist/src/material/unlit.js.map +1 -0
- package/dist/src/material/water.js +417 -0
- package/dist/src/material/water.js.map +1 -0
- package/dist/src/posteffect/bloom.js +361 -0
- package/dist/src/posteffect/bloom.js.map +1 -0
- package/dist/src/posteffect/compositor.js +226 -0
- package/dist/src/posteffect/compositor.js.map +1 -0
- package/dist/src/posteffect/fxaa.js +273 -0
- package/dist/src/posteffect/fxaa.js.map +1 -0
- package/dist/src/posteffect/grayscale.js +69 -0
- package/dist/src/posteffect/grayscale.js.map +1 -0
- package/dist/src/posteffect/motionblur.js +96 -0
- package/dist/src/posteffect/motionblur.js.map +1 -0
- package/dist/src/posteffect/posteffect.js +126 -0
- package/dist/src/posteffect/posteffect.js.map +1 -0
- package/dist/src/posteffect/sao.js +324 -0
- package/dist/src/posteffect/sao.js.map +1 -0
- package/dist/src/posteffect/ssr.js +489 -0
- package/dist/src/posteffect/ssr.js.map +1 -0
- package/dist/src/posteffect/taa.js +172 -0
- package/dist/src/posteffect/taa.js.map +1 -0
- package/dist/src/posteffect/tonemap.js +94 -0
- package/dist/src/posteffect/tonemap.js.map +1 -0
- package/dist/src/render/abuffer_oit.js +361 -0
- package/dist/src/render/abuffer_oit.js.map +1 -0
- package/dist/src/render/clipmap.js +851 -0
- package/dist/src/render/clipmap.js.map +1 -0
- package/dist/src/render/cluster_light.js +333 -0
- package/dist/src/render/cluster_light.js.map +1 -0
- package/dist/src/render/cull_visitor.js +187 -0
- package/dist/src/render/cull_visitor.js.map +1 -0
- package/dist/src/render/depthpass.js +68 -0
- package/dist/src/render/depthpass.js.map +1 -0
- package/dist/src/render/drawable_mixin.js +227 -0
- package/dist/src/render/drawable_mixin.js.map +1 -0
- package/dist/src/render/envlight.js +463 -0
- package/dist/src/render/envlight.js.map +1 -0
- package/dist/src/render/fbm_wavegenerator.js +251 -0
- package/dist/src/render/fbm_wavegenerator.js.map +1 -0
- package/dist/src/render/fft_wavegenerator.js +1006 -0
- package/dist/src/render/fft_wavegenerator.js.map +1 -0
- package/dist/src/render/fullscreenquad.js +38 -0
- package/dist/src/render/fullscreenquad.js.map +1 -0
- package/dist/src/render/gerstner_wavegenerator.js +314 -0
- package/dist/src/render/gerstner_wavegenerator.js.map +1 -0
- package/dist/src/render/globalbindgroup_allocator.js +60 -0
- package/dist/src/render/globalbindgroup_allocator.js.map +1 -0
- package/dist/src/render/hzb.js +273 -0
- package/dist/src/render/hzb.js.map +1 -0
- package/dist/src/render/lightpass.js +172 -0
- package/dist/src/render/lightpass.js.map +1 -0
- package/dist/src/render/objectcolorpass.js +51 -0
- package/dist/src/render/objectcolorpass.js.map +1 -0
- package/dist/src/render/primitive.js +364 -0
- package/dist/src/render/primitive.js.map +1 -0
- package/dist/src/render/render_queue.js +467 -0
- package/dist/src/render/render_queue.js.map +1 -0
- package/dist/src/render/renderbundle_wrapper.js +152 -0
- package/dist/src/render/renderbundle_wrapper.js.map +1 -0
- package/dist/src/render/renderer.js +455 -0
- package/dist/src/render/renderer.js.map +1 -0
- package/dist/src/render/renderpass.js +200 -0
- package/dist/src/render/renderpass.js.map +1 -0
- package/dist/src/render/shadowmap_pass.js +56 -0
- package/dist/src/render/shadowmap_pass.js.map +1 -0
- package/dist/src/render/sky.js +1103 -0
- package/dist/src/render/sky.js.map +1 -0
- package/dist/src/render/weightedblended_oit.js +168 -0
- package/dist/src/render/weightedblended_oit.js.map +1 -0
- package/dist/src/scene/batchgroup.js +162 -0
- package/dist/src/scene/batchgroup.js.map +1 -0
- package/dist/src/scene/environment.js +209 -0
- package/dist/src/scene/environment.js.map +1 -0
- package/dist/src/scene/graph_node.js +72 -0
- package/dist/src/scene/graph_node.js.map +1 -0
- package/dist/src/scene/light.js +416 -0
- package/dist/src/scene/light.js.map +1 -0
- package/dist/src/scene/mesh.js +341 -0
- package/dist/src/scene/mesh.js.map +1 -0
- package/dist/src/scene/octree.js +649 -0
- package/dist/src/scene/octree.js.map +1 -0
- package/dist/src/scene/particlesys.js +738 -0
- package/dist/src/scene/particlesys.js.map +1 -0
- package/dist/src/scene/raycast_visitor.js +103 -0
- package/dist/src/scene/raycast_visitor.js.map +1 -0
- package/dist/src/scene/scene.js +284 -0
- package/dist/src/scene/scene.js.map +1 -0
- package/dist/src/scene/scene_node.js +732 -0
- package/dist/src/scene/scene_node.js.map +1 -0
- package/dist/src/scene/terrain/grass.js +278 -0
- package/dist/src/scene/terrain/grass.js.map +1 -0
- package/dist/src/scene/terrain/heightfield.js +475 -0
- package/dist/src/scene/terrain/heightfield.js.map +1 -0
- package/dist/src/scene/terrain/patch.js +530 -0
- package/dist/src/scene/terrain/patch.js.map +1 -0
- package/dist/src/scene/terrain/quadtree.js +461 -0
- package/dist/src/scene/terrain/quadtree.js.map +1 -0
- package/dist/src/scene/terrain/terrain.js +246 -0
- package/dist/src/scene/terrain/terrain.js.map +1 -0
- package/dist/src/scene/terrain-cm/grass.js +594 -0
- package/dist/src/scene/terrain-cm/grass.js.map +1 -0
- package/dist/src/scene/terrain-cm/grassmaterial.js +159 -0
- package/dist/src/scene/terrain-cm/grassmaterial.js.map +1 -0
- package/dist/src/scene/terrain-cm/terrain-cm.js +538 -0
- package/dist/src/scene/terrain-cm/terrain-cm.js.map +1 -0
- package/dist/src/scene/water.js +374 -0
- package/dist/src/scene/water.js.map +1 -0
- package/dist/src/shaders/atmosphere.js +957 -0
- package/dist/src/shaders/atmosphere.js.map +1 -0
- package/dist/src/shaders/fog.js +112 -0
- package/dist/src/shaders/fog.js.map +1 -0
- package/dist/src/shaders/misc.js +266 -0
- package/dist/src/shaders/misc.js.map +1 -0
- package/dist/src/shaders/noise.js +222 -0
- package/dist/src/shaders/noise.js.map +1 -0
- package/dist/src/shaders/pbr.js +51 -0
- package/dist/src/shaders/pbr.js.map +1 -0
- package/dist/src/shaders/shadow.js +636 -0
- package/dist/src/shaders/shadow.js.map +1 -0
- package/dist/src/shaders/ssr.js +490 -0
- package/dist/src/shaders/ssr.js.map +1 -0
- package/dist/src/shaders/temporal.js +215 -0
- package/dist/src/shaders/temporal.js.map +1 -0
- package/dist/src/shaders/water.js +756 -0
- package/dist/src/shaders/water.js.map +1 -0
- package/dist/src/shadow/esm.js +237 -0
- package/dist/src/shadow/esm.js.map +1 -0
- package/dist/src/shadow/pcf_opt.js +181 -0
- package/dist/src/shadow/pcf_opt.js.map +1 -0
- package/dist/src/shadow/pcf_pd.js +189 -0
- package/dist/src/shadow/pcf_pd.js.map +1 -0
- package/dist/src/shadow/shader.js +37 -0
- package/dist/src/shadow/shader.js.map +1 -0
- package/dist/src/shadow/shadow_impl.js +15 -0
- package/dist/src/shadow/shadow_impl.js.map +1 -0
- package/dist/src/shadow/shadowmapper.js +790 -0
- package/dist/src/shadow/shadowmapper.js.map +1 -0
- package/dist/src/shadow/ssm.js +159 -0
- package/dist/src/shadow/ssm.js.map +1 -0
- package/dist/src/shadow/vsm.js +297 -0
- package/dist/src/shadow/vsm.js.map +1 -0
- package/dist/src/shapes/box.js +386 -0
- package/dist/src/shapes/box.js.map +1 -0
- package/dist/src/shapes/cylinder.js +125 -0
- package/dist/src/shapes/cylinder.js.map +1 -0
- package/dist/src/shapes/plane.js +88 -0
- package/dist/src/shapes/plane.js.map +1 -0
- package/dist/src/shapes/shape.js +87 -0
- package/dist/src/shapes/shape.js.map +1 -0
- package/dist/src/shapes/sphere.js +114 -0
- package/dist/src/shapes/sphere.js.map +1 -0
- package/dist/src/shapes/tetrahedron.js +188 -0
- package/dist/src/shapes/tetrahedron.js.map +1 -0
- package/dist/src/shapes/torus.js +111 -0
- package/dist/src/shapes/torus.js.map +1 -0
- package/dist/src/utility/aabbtree.js +400 -0
- package/dist/src/utility/aabbtree.js.map +1 -0
- package/dist/src/utility/bounding_volume.js +29 -0
- package/dist/src/utility/bounding_volume.js.map +1 -0
- package/dist/src/utility/debug.js +28 -0
- package/dist/src/utility/debug.js.map +1 -0
- package/dist/src/utility/draco/decoder.js +116 -0
- package/dist/src/utility/draco/decoder.js.map +1 -0
- package/dist/src/utility/misc.js +105 -0
- package/dist/src/utility/misc.js.map +1 -0
- package/dist/src/utility/panorama.js +163 -0
- package/dist/src/utility/panorama.js.map +1 -0
- package/dist/src/utility/pmrem.js +354 -0
- package/dist/src/utility/pmrem.js.map +1 -0
- package/dist/src/utility/rendermipmap.js +115 -0
- package/dist/src/utility/rendermipmap.js.map +1 -0
- package/dist/src/utility/serialization/json.js +402 -0
- package/dist/src/utility/serialization/json.js.map +1 -0
- package/dist/src/utility/serialization/manager.js +623 -0
- package/dist/src/utility/serialization/manager.js.map +1 -0
- package/dist/src/utility/serialization/scene/animation.js +248 -0
- package/dist/src/utility/serialization/scene/animation.js.map +1 -0
- package/dist/src/utility/serialization/scene/batch.js +59 -0
- package/dist/src/utility/serialization/scene/batch.js.map +1 -0
- package/dist/src/utility/serialization/scene/camera.js +790 -0
- package/dist/src/utility/serialization/scene/camera.js.map +1 -0
- package/dist/src/utility/serialization/scene/common.js +222 -0
- package/dist/src/utility/serialization/scene/common.js.map +1 -0
- package/dist/src/utility/serialization/scene/light.js +575 -0
- package/dist/src/utility/serialization/scene/light.js.map +1 -0
- package/dist/src/utility/serialization/scene/material.js +1111 -0
- package/dist/src/utility/serialization/scene/material.js.map +1 -0
- package/dist/src/utility/serialization/scene/mesh.js +148 -0
- package/dist/src/utility/serialization/scene/mesh.js.map +1 -0
- package/dist/src/utility/serialization/scene/misc.js +39 -0
- package/dist/src/utility/serialization/scene/misc.js.map +1 -0
- package/dist/src/utility/serialization/scene/node.js +451 -0
- package/dist/src/utility/serialization/scene/node.js.map +1 -0
- package/dist/src/utility/serialization/scene/particle.js +425 -0
- package/dist/src/utility/serialization/scene/particle.js.map +1 -0
- package/dist/src/utility/serialization/scene/primitive.js +692 -0
- package/dist/src/utility/serialization/scene/primitive.js.map +1 -0
- package/dist/src/utility/serialization/scene/scene.js +704 -0
- package/dist/src/utility/serialization/scene/scene.js.map +1 -0
- package/dist/src/utility/serialization/scene/terrain.js +488 -0
- package/dist/src/utility/serialization/scene/terrain.js.map +1 -0
- package/dist/src/utility/serialization/scene/water.js +465 -0
- package/dist/src/utility/serialization/scene/water.js.map +1 -0
- package/dist/src/utility/shprojector.js +297 -0
- package/dist/src/utility/shprojector.js.map +1 -0
- package/dist/{material/mixins → src/utility/textures}/ggxlut.js +1 -1
- package/dist/src/utility/textures/ggxlut.js.map +1 -0
- package/dist/src/utility/textures/gradientnoise.js +62 -0
- package/dist/src/utility/textures/gradientnoise.js.map +1 -0
- package/dist/src/utility/textures/randomnoise.js +41 -0
- package/dist/src/utility/textures/randomnoise.js.map +1 -0
- package/dist/src/values.js +162 -0
- package/dist/src/values.js.map +1 -0
- package/dist/utility/aabbtree.js +15 -5
- package/dist/utility/aabbtree.js.map +1 -1
- package/dist/utility/blueprint/common/constants.js +851 -0
- package/dist/utility/blueprint/common/constants.js.map +1 -0
- package/dist/utility/blueprint/common/math.js +2045 -0
- package/dist/utility/blueprint/common/math.js.map +1 -0
- package/dist/utility/blueprint/common.js +7 -0
- package/dist/utility/blueprint/common.js.map +1 -0
- package/dist/utility/blueprint/material/common.js +7 -0
- package/dist/utility/blueprint/material/common.js.map +1 -0
- package/dist/utility/blueprint/material/func.js +521 -0
- package/dist/utility/blueprint/material/func.js.map +1 -0
- package/dist/utility/blueprint/material/inputs.js +1659 -0
- package/dist/utility/blueprint/material/inputs.js.map +1 -0
- package/dist/utility/blueprint/material/ir.js +1311 -0
- package/dist/utility/blueprint/material/ir.js.map +1 -0
- package/dist/utility/blueprint/material/pbr.js +362 -0
- package/dist/utility/blueprint/material/pbr.js.map +1 -0
- package/dist/utility/blueprint/material/texture.js +1099 -0
- package/dist/utility/blueprint/material/texture.js.map +1 -0
- package/dist/utility/blueprint/node.js +187 -0
- package/dist/utility/blueprint/node.js.map +1 -0
- package/dist/utility/bounding_volume.js +0 -1
- package/dist/utility/bounding_volume.js.map +1 -1
- package/dist/utility/debug.js +26 -0
- package/dist/utility/debug.js.map +1 -0
- package/dist/utility/draco/decoder.js +1 -1
- package/dist/utility/draco/decoder.js.map +1 -1
- package/dist/utility/misc.js +18 -6
- package/dist/utility/misc.js.map +1 -1
- package/dist/utility/panorama.js +8 -6
- package/dist/utility/panorama.js.map +1 -1
- package/dist/utility/pmrem.js +30 -18
- package/dist/utility/pmrem.js.map +1 -1
- package/dist/utility/rendermipmap.js +116 -0
- package/dist/utility/rendermipmap.js.map +1 -0
- package/dist/utility/serialization/blueprint/constants.js +255 -0
- package/dist/utility/serialization/blueprint/constants.js.map +1 -0
- package/dist/utility/serialization/blueprint/material/constants.js +203 -0
- package/dist/utility/serialization/blueprint/material/constants.js.map +1 -0
- package/dist/utility/serialization/blueprint/material/texture.js +165 -0
- package/dist/utility/serialization/blueprint/material/texture.js.map +1 -0
- package/dist/utility/serialization/json.js +402 -0
- package/dist/utility/serialization/json.js.map +1 -0
- package/dist/utility/serialization/manager.js +1176 -0
- package/dist/utility/serialization/manager.js.map +1 -0
- package/dist/utility/serialization/scene/animation.js +699 -0
- package/dist/utility/serialization/scene/animation.js.map +1 -0
- package/dist/utility/serialization/scene/batch.js +53 -0
- package/dist/utility/serialization/scene/batch.js.map +1 -0
- package/dist/utility/serialization/scene/camera.js +808 -0
- package/dist/utility/serialization/scene/camera.js.map +1 -0
- package/dist/utility/serialization/scene/common.js +224 -0
- package/dist/utility/serialization/scene/common.js.map +1 -0
- package/dist/utility/serialization/scene/light.js +589 -0
- package/dist/utility/serialization/scene/light.js.map +1 -0
- package/dist/utility/serialization/scene/material.js +942 -0
- package/dist/utility/serialization/scene/material.js.map +1 -0
- package/dist/utility/serialization/scene/mesh.js +374 -0
- package/dist/utility/serialization/scene/mesh.js.map +1 -0
- package/dist/utility/serialization/scene/misc.js +39 -0
- package/dist/utility/serialization/scene/misc.js.map +1 -0
- package/dist/utility/serialization/scene/node.js +391 -0
- package/dist/utility/serialization/scene/node.js.map +1 -0
- package/dist/utility/serialization/scene/particle.js +425 -0
- package/dist/utility/serialization/scene/particle.js.map +1 -0
- package/dist/utility/serialization/scene/primitive.js +582 -0
- package/dist/utility/serialization/scene/primitive.js.map +1 -0
- package/dist/utility/serialization/scene/scene.js +763 -0
- package/dist/utility/serialization/scene/scene.js.map +1 -0
- package/dist/utility/serialization/scene/terrain.js +495 -0
- package/dist/utility/serialization/scene/terrain.js.map +1 -0
- package/dist/utility/serialization/scene/water.js +465 -0
- package/dist/utility/serialization/scene/water.js.map +1 -0
- package/dist/utility/shprojector.js +313 -0
- package/dist/utility/shprojector.js.map +1 -0
- package/dist/utility/textures/ggxlut.js +4 -5
- package/dist/utility/textures/ggxlut.js.map +1 -1
- package/dist/utility/textures/gradientnoise.js +2 -1
- package/dist/utility/textures/gradientnoise.js.map +1 -1
- package/dist/utility/textures/randomnoise.js +1 -0
- package/dist/utility/textures/randomnoise.js.map +1 -1
- package/dist/values.js +91 -4
- package/dist/values.js.map +1 -1
- package/package.json +29 -15
- package/dist/app.js.map +0 -1
- package/dist/blitter/depthlimitedgaussion.js.map +0 -1
- package/dist/input/inputmgr.js.map +0 -1
- package/dist/material/mixins/ggxlut.js.map +0 -1
- package/dist/posteffect/water.js +0 -508
- package/dist/posteffect/water.js.map +0 -1
- package/dist/render/oit.js +0 -16
- package/dist/render/oit.js.map +0 -1
- package/dist/render/scatteringlut.js +0 -634
- package/dist/render/scatteringlut.js.map +0 -1
- package/dist/render/watermesh.js +0 -193
- package/dist/render/watermesh.js.map +0 -1
- package/dist/render/wavegenerator.js +0 -8
- package/dist/render/wavegenerator.js.map +0 -1
- package/dist/scene/xform.js +0 -247
- package/dist/scene/xform.js.map +0 -1
- package/dist/utility/shprojection.js +0 -442
- package/dist/utility/shprojection.js.map +0 -1
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Blitter } from './blitter.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Copy blitter
|
|
5
|
+
* @public
|
|
6
|
+
*/ class CopyBlitter extends Blitter {
|
|
7
|
+
/**
|
|
8
|
+
* {@inheritDoc Blitter.filter}
|
|
9
|
+
* @override
|
|
10
|
+
*/ filter(scope, type, srcTex, srcUV, srcLayer, sampleType) {
|
|
11
|
+
return this.readTexel(scope, type, srcTex, srcUV, srcLayer, sampleType);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* {@inheritDoc Blitter.calcHash}
|
|
15
|
+
* @override
|
|
16
|
+
*/ calcHash() {
|
|
17
|
+
return '';
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export { CopyBlitter };
|
|
22
|
+
//# sourceMappingURL=copy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copy.js","sources":["../../../src/blitter/copy.ts"],"sourcesContent":["import type { BlitType } from './blitter';\r\nimport { Blitter } from './blitter';\r\nimport type { PBShaderExp, PBInsideFunctionScope } from '@zephyr3d/device';\r\n\r\n/**\r\n * Copy blitter\r\n * @public\r\n */\r\nexport class CopyBlitter extends Blitter {\r\n /**\r\n * {@inheritDoc Blitter.filter}\r\n * @override\r\n */\r\n filter(\r\n scope: PBInsideFunctionScope,\r\n type: BlitType,\r\n srcTex: PBShaderExp,\r\n srcUV: PBShaderExp,\r\n srcLayer: PBShaderExp,\r\n sampleType: 'float' | 'int' | 'uint'\r\n ): PBShaderExp {\r\n return this.readTexel(scope, type, srcTex, srcUV, srcLayer, sampleType);\r\n }\r\n /**\r\n * {@inheritDoc Blitter.calcHash}\r\n * @override\r\n */\r\n protected calcHash(): string {\r\n return '';\r\n }\r\n}\r\n"],"names":["CopyBlitter","Blitter","filter","scope","type","srcTex","srcUV","srcLayer","sampleType","readTexel"],"mappings":";;AAIA;;;IAIO,MAAMA,WAAoBC,SAAAA,OAAAA,CAAAA;AAC/B;;;AAGC,MACDC,MACEC,CAAAA,KAA4B,EAC5BC,IAAc,EACdC,MAAmB,EACnBC,KAAkB,EAClBC,QAAqB,EACrBC,UAAoC,EACvB;QACb,OAAO,IAAI,CAACC,SAAS,CAACN,OAAOC,IAAMC,EAAAA,MAAAA,EAAQC,OAAOC,QAAUC,EAAAA,UAAAA,CAAAA;AAC9D;AACA;;;AAGC,MACD,QAA6B,GAAA;QAC3B,OAAO,EAAA;AACT;AACF;;;;"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import { Blitter } from './blitter.js';
|
|
2
|
+
import { decodeNormalizedFloatFromRGBA } from '../shaders/misc.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Gaussian blur blitter
|
|
6
|
+
* @public
|
|
7
|
+
*/ class GaussianBlurBlitter extends Blitter {
|
|
8
|
+
/** @internal */ _phase;
|
|
9
|
+
/** @internal */ _kernelSize;
|
|
10
|
+
/** @internal */ _sigma;
|
|
11
|
+
/** @internal */ _blurSize;
|
|
12
|
+
/** @internal */ _logSpace;
|
|
13
|
+
/** @internal */ _logSpaceMultiplier;
|
|
14
|
+
/** @internal */ _depthTex;
|
|
15
|
+
/** @internal */ _depthCutoff;
|
|
16
|
+
/**
|
|
17
|
+
* Creates an instance of GaussianBlurBlitter
|
|
18
|
+
* @param phase - Blitter phase
|
|
19
|
+
* @param kernalSize - kernel size
|
|
20
|
+
* @param sigma - Gaussian standard deviation
|
|
21
|
+
* @param blurSize - Blur radius
|
|
22
|
+
*/ constructor(phase, kernalSize, sigma, blurSize){
|
|
23
|
+
super();
|
|
24
|
+
this._phase = phase;
|
|
25
|
+
this._kernelSize = kernalSize;
|
|
26
|
+
this._sigma = sigma;
|
|
27
|
+
this._blurSize = blurSize;
|
|
28
|
+
this._logSpace = false;
|
|
29
|
+
this._logSpaceMultiplier = 1;
|
|
30
|
+
this._depthTex = null;
|
|
31
|
+
this._depthCutoff = 0.7;
|
|
32
|
+
}
|
|
33
|
+
/** Blur radius */ get blurSize() {
|
|
34
|
+
return this._blurSize;
|
|
35
|
+
}
|
|
36
|
+
set blurSize(val) {
|
|
37
|
+
this._blurSize = val;
|
|
38
|
+
}
|
|
39
|
+
/** Kernel size */ get kernelSize() {
|
|
40
|
+
return this._kernelSize;
|
|
41
|
+
}
|
|
42
|
+
set kernelSize(val) {
|
|
43
|
+
if (this._kernelSize !== val) {
|
|
44
|
+
this._kernelSize = val;
|
|
45
|
+
this.invalidateHash();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/** true if the box filter will be applied in logarithmic space */ get logSpace() {
|
|
49
|
+
return this._logSpace;
|
|
50
|
+
}
|
|
51
|
+
set logSpace(val) {
|
|
52
|
+
if (this._logSpace !== !!val) {
|
|
53
|
+
this._logSpace = !!val;
|
|
54
|
+
this.invalidateHash();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/** Multiplier for logarithmic space blur */ get logSpaceMultiplier() {
|
|
58
|
+
return this._logSpaceMultiplier;
|
|
59
|
+
}
|
|
60
|
+
set logSpaceMultiplier(val) {
|
|
61
|
+
this._logSpaceMultiplier = val;
|
|
62
|
+
}
|
|
63
|
+
/** Linear depth texture */ get depthTexture() {
|
|
64
|
+
return this._depthTex;
|
|
65
|
+
}
|
|
66
|
+
set depthTexture(tex) {
|
|
67
|
+
if (this._depthTex !== tex) {
|
|
68
|
+
if (!tex || !this._depthTex) {
|
|
69
|
+
this.invalidateHash();
|
|
70
|
+
}
|
|
71
|
+
this._depthTex = tex;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/** Depth cutoff */ get depthCutoff() {
|
|
75
|
+
return this._depthCutoff;
|
|
76
|
+
}
|
|
77
|
+
set depthCutoff(val) {
|
|
78
|
+
this._depthCutoff = val;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* {@inheritDoc Blitter.setup}
|
|
82
|
+
* @override
|
|
83
|
+
*/ setup(scope, type) {
|
|
84
|
+
const pb = scope.$builder;
|
|
85
|
+
if (pb.shaderKind === 'fragment') {
|
|
86
|
+
if (this._depthTex) {
|
|
87
|
+
scope.depthTex = pb.tex2D().sampleType('unfilterable-float').uniform(0);
|
|
88
|
+
scope.depthCutoff = pb.float().uniform(0);
|
|
89
|
+
}
|
|
90
|
+
scope.sigma = pb.float().uniform(0);
|
|
91
|
+
scope.blurSize = pb.float().uniform(0);
|
|
92
|
+
if (this._logSpace && this._phase === 'horizonal') {
|
|
93
|
+
scope.multiplier = pb.float().uniform(0);
|
|
94
|
+
}
|
|
95
|
+
if (this._phase !== 'horizonal' && this._phase !== 'vertical') {
|
|
96
|
+
throw new Error(`GaussianBlurFilter.setupFilter() failed: invalid phase: ${this._phase}`);
|
|
97
|
+
}
|
|
98
|
+
if (!Number.isInteger(this._kernelSize) || this._kernelSize < 0 || (this._kernelSize & 1) === 0) {
|
|
99
|
+
throw new Error(`GaussianBlurFilter.setupFilter() failed: invalid kernel size: ${this._kernelSize}`);
|
|
100
|
+
}
|
|
101
|
+
scope.blurMultiplyVec = type === 'cube' ? this._phase === 'horizonal' ? pb.vec3(1, 0, 0) : pb.vec3(0, 1, 0) : this._phase === 'horizonal' ? pb.vec2(1, 0) : pb.vec2(0, 1);
|
|
102
|
+
scope.numBlurPixelsPerSide = pb.float((this._kernelSize + 1) / 2);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* {@inheritDoc Blitter.setUniforms}
|
|
107
|
+
* @override
|
|
108
|
+
*/ setUniforms(bindGroup) {
|
|
109
|
+
bindGroup.setValue('sigma', this._sigma);
|
|
110
|
+
bindGroup.setValue('blurSize', this._blurSize);
|
|
111
|
+
if (this._logSpace && this._phase === 'horizonal') {
|
|
112
|
+
bindGroup.setValue('multiplier', this._logSpaceMultiplier);
|
|
113
|
+
}
|
|
114
|
+
if (this._depthTex) {
|
|
115
|
+
bindGroup.setTexture('depthTex', this._depthTex);
|
|
116
|
+
bindGroup.setValue('depthCutoff', this._depthCutoff);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* {@inheritDoc Blitter.filter}
|
|
121
|
+
* @override
|
|
122
|
+
*/ filter(scope, type, srcTex, srcUV, srcLayer, sampleType) {
|
|
123
|
+
const that = this;
|
|
124
|
+
const pb = scope.$builder;
|
|
125
|
+
if (that._depthTex) {
|
|
126
|
+
pb.func('getLinearDepth', [
|
|
127
|
+
pb.vec2('uv')
|
|
128
|
+
], function() {
|
|
129
|
+
this.$l.depthValue = pb.textureSample(this.depthTex, this.uv);
|
|
130
|
+
if (pb.getDevice().type === 'webgl') {
|
|
131
|
+
this.$return(decodeNormalizedFloatFromRGBA(this, this.depthValue));
|
|
132
|
+
} else {
|
|
133
|
+
this.$return(this.depthValue.r);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
scope.incrementalGaussian = pb.vec3();
|
|
138
|
+
scope.incrementalGaussian.x = pb.div(1, pb.mul(scope.sigma, Math.sqrt(2 * Math.PI)));
|
|
139
|
+
scope.incrementalGaussian.y = pb.exp(pb.div(-0.5, pb.mul(scope.sigma, scope.sigma)));
|
|
140
|
+
scope.incrementalGaussian.z = pb.mul(scope.incrementalGaussian.y, scope.incrementalGaussian.y);
|
|
141
|
+
scope.coefficientSum = pb.float(0);
|
|
142
|
+
scope.minExpValue = pb.vec4(87, 87, 87, 87);
|
|
143
|
+
scope.d0 = that.readTexel(scope, type, srcTex, srcUV, srcLayer, sampleType);
|
|
144
|
+
if (that._logSpace) {
|
|
145
|
+
scope.avgValue = pb.vec4(scope.incrementalGaussian.x);
|
|
146
|
+
} else {
|
|
147
|
+
scope.avgValue = pb.mul(that.readTexel(scope, type, srcTex, srcUV, srcLayer, sampleType), scope.incrementalGaussian.x);
|
|
148
|
+
}
|
|
149
|
+
if (that._depthTex) {
|
|
150
|
+
scope.centerDepth = scope.getLinearDepth(srcUV);
|
|
151
|
+
}
|
|
152
|
+
scope.coefficientSum = pb.add(scope.coefficientSum, scope.incrementalGaussian.x);
|
|
153
|
+
scope.incrementalGaussian = pb.vec3(pb.mul(scope.incrementalGaussian.xy, scope.incrementalGaussian.yz), scope.incrementalGaussian.z);
|
|
154
|
+
scope.$for(pb.float('i'), 1, scope.numBlurPixelsPerSide, function() {
|
|
155
|
+
this.$l.uv1 = pb.sub(srcUV, pb.mul(this.blurMultiplyVec, this.blurSize, this.i));
|
|
156
|
+
this.$l.d1 = pb.vec4();
|
|
157
|
+
if (that._depthTex) {
|
|
158
|
+
this.$l.depth1 = this.getLinearDepth(this.uv1);
|
|
159
|
+
this.$l.test1 = pb.lessThan(pb.abs(pb.sub(this.depth1, this.centerDepth)), this.depthCutoff);
|
|
160
|
+
} else {
|
|
161
|
+
this.$l.test1 = true;
|
|
162
|
+
}
|
|
163
|
+
this.$if(this.test1, function() {
|
|
164
|
+
this.d1 = that.readTexel(scope, type, srcTex, this.uv1, srcLayer, sampleType);
|
|
165
|
+
});
|
|
166
|
+
this.$l.uv2 = pb.add(srcUV, pb.mul(this.blurMultiplyVec, this.blurSize, this.i));
|
|
167
|
+
this.$l.d2 = pb.vec4();
|
|
168
|
+
if (that._depthTex) {
|
|
169
|
+
this.$l.depth2 = this.getLinearDepth(this.uv2);
|
|
170
|
+
this.$l.test2 = pb.lessThan(pb.abs(pb.sub(this.depth2, this.centerDepth)), this.depthCutoff);
|
|
171
|
+
} else {
|
|
172
|
+
this.$l.test2 = true;
|
|
173
|
+
}
|
|
174
|
+
this.$if(this.test2, function() {
|
|
175
|
+
this.d2 = that.readTexel(scope, type, srcTex, pb.add(srcUV, pb.mul(this.blurMultiplyVec, this.blurSize, this.i)), srcLayer, sampleType);
|
|
176
|
+
});
|
|
177
|
+
if (that._logSpace) {
|
|
178
|
+
if (that._phase === 'horizonal') {
|
|
179
|
+
this.$if(this.test1, function() {
|
|
180
|
+
this.avgValue = pb.add(this.avgValue, pb.mul(pb.exp(pb.min(this.minExpValue, pb.mul(pb.sub(this.d1, this.d0), this.multiplier))), this.incrementalGaussian.x));
|
|
181
|
+
this.coefficientSum = pb.add(this.coefficientSum, this.incrementalGaussian.x);
|
|
182
|
+
});
|
|
183
|
+
this.$if(this.test2, function() {
|
|
184
|
+
this.avgValue = pb.add(this.avgValue, pb.mul(pb.exp(pb.min(this.minExpValue, pb.mul(pb.sub(this.d2, this.d0), this.multiplier))), this.incrementalGaussian.x));
|
|
185
|
+
this.coefficientSum = pb.add(this.coefficientSum, this.incrementalGaussian.x);
|
|
186
|
+
});
|
|
187
|
+
} else {
|
|
188
|
+
this.$if(this.test1, function() {
|
|
189
|
+
this.avgValue = pb.add(this.avgValue, pb.mul(pb.exp(pb.min(this.minExpValue, pb.sub(this.d1, this.d0))), this.incrementalGaussian.x));
|
|
190
|
+
this.coefficientSum = pb.add(this.coefficientSum, this.incrementalGaussian.x);
|
|
191
|
+
});
|
|
192
|
+
this.$if(this.test2, function() {
|
|
193
|
+
this.avgValue = pb.add(this.avgValue, pb.mul(pb.exp(pb.min(this.minExpValue, pb.sub(this.d2, this.d0))), this.incrementalGaussian.x));
|
|
194
|
+
this.coefficientSum = pb.add(this.coefficientSum, this.incrementalGaussian.x);
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
} else {
|
|
198
|
+
this.$if(this.test1, function() {
|
|
199
|
+
this.avgValue = pb.add(this.avgValue, pb.mul(this.d1, this.incrementalGaussian.x));
|
|
200
|
+
this.coefficientSum = pb.add(this.coefficientSum, this.incrementalGaussian.x);
|
|
201
|
+
});
|
|
202
|
+
this.$if(this.test2, function() {
|
|
203
|
+
this.avgValue = pb.add(this.avgValue, pb.mul(this.d2, this.incrementalGaussian.x));
|
|
204
|
+
this.coefficientSum = pb.add(this.coefficientSum, this.incrementalGaussian.x);
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
this.incrementalGaussian = pb.vec3(pb.mul(this.incrementalGaussian.xy, this.incrementalGaussian.yz), this.incrementalGaussian.z);
|
|
208
|
+
});
|
|
209
|
+
scope.$l.outColor = pb.div(scope.avgValue, scope.coefficientSum);
|
|
210
|
+
if (that._logSpace) {
|
|
211
|
+
if (that._phase === 'horizonal') {
|
|
212
|
+
scope.outColor = pb.add(pb.mul(scope.multiplier, scope.d0), pb.log(scope.outColor));
|
|
213
|
+
} else {
|
|
214
|
+
scope.outColor = pb.add(scope.d0, pb.log(scope.outColor));
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
return scope.outColor;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* {@inheritDoc Blitter.calcHash}
|
|
221
|
+
* @override
|
|
222
|
+
*/ calcHash() {
|
|
223
|
+
return `${this._depthTex ? 1 : 0}-${this._phase}-${this._kernelSize}-${Number(!!this._logSpace)}`;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
export { GaussianBlurBlitter };
|
|
228
|
+
//# sourceMappingURL=gaussianblur.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gaussianblur.js","sources":["../../../src/blitter/gaussianblur.ts"],"sourcesContent":["import type {\r\n BindGroup,\r\n PBShaderExp,\r\n PBInsideFunctionScope,\r\n PBGlobalScope,\r\n Texture2D\r\n} from '@zephyr3d/device';\r\nimport type { BlitType } from './blitter';\r\nimport { Blitter } from './blitter';\r\nimport { decodeNormalizedFloatFromRGBA } from '../shaders/misc';\r\n\r\n/**\r\n * Gaussian blur blitter\r\n * @public\r\n */\r\nexport class GaussianBlurBlitter extends Blitter {\r\n /** @internal */\r\n protected _phase: 'horizonal' | 'vertical';\r\n /** @internal */\r\n protected _kernelSize: number;\r\n /** @internal */\r\n protected _sigma: number;\r\n /** @internal */\r\n protected _blurSize: number;\r\n /** @internal */\r\n protected _logSpace: boolean;\r\n /** @internal */\r\n protected _logSpaceMultiplier: number;\r\n /** @internal */\r\n protected _depthTex: Texture2D;\r\n /** @internal */\r\n protected _depthCutoff: number;\r\n /**\r\n * Creates an instance of GaussianBlurBlitter\r\n * @param phase - Blitter phase\r\n * @param kernalSize - kernel size\r\n * @param sigma - Gaussian standard deviation\r\n * @param blurSize - Blur radius\r\n */\r\n constructor(phase: 'horizonal' | 'vertical', kernalSize: number, sigma: number, blurSize: number) {\r\n super();\r\n this._phase = phase;\r\n this._kernelSize = kernalSize;\r\n this._sigma = sigma;\r\n this._blurSize = blurSize;\r\n this._logSpace = false;\r\n this._logSpaceMultiplier = 1;\r\n this._depthTex = null;\r\n this._depthCutoff = 0.7;\r\n }\r\n /** Blur radius */\r\n get blurSize(): number {\r\n return this._blurSize;\r\n }\r\n set blurSize(val: number) {\r\n this._blurSize = val;\r\n }\r\n /** Kernel size */\r\n get kernelSize(): number {\r\n return this._kernelSize;\r\n }\r\n set kernelSize(val: number) {\r\n if (this._kernelSize !== val) {\r\n this._kernelSize = val;\r\n this.invalidateHash();\r\n }\r\n }\r\n /** true if the box filter will be applied in logarithmic space */\r\n get logSpace(): boolean {\r\n return this._logSpace;\r\n }\r\n set logSpace(val: boolean) {\r\n if (this._logSpace !== !!val) {\r\n this._logSpace = !!val;\r\n this.invalidateHash();\r\n }\r\n }\r\n /** Multiplier for logarithmic space blur */\r\n get logSpaceMultiplier(): number {\r\n return this._logSpaceMultiplier;\r\n }\r\n set logSpaceMultiplier(val: number) {\r\n this._logSpaceMultiplier = val;\r\n }\r\n /** Linear depth texture */\r\n get depthTexture(): Texture2D {\r\n return this._depthTex;\r\n }\r\n set depthTexture(tex: Texture2D) {\r\n if (this._depthTex !== tex) {\r\n if (!tex || !this._depthTex) {\r\n this.invalidateHash();\r\n }\r\n this._depthTex = tex;\r\n }\r\n }\r\n /** Depth cutoff */\r\n get depthCutoff(): number {\r\n return this._depthCutoff;\r\n }\r\n set depthCutoff(val: number) {\r\n this._depthCutoff = val;\r\n }\r\n /**\r\n * {@inheritDoc Blitter.setup}\r\n * @override\r\n */\r\n setup(scope: PBGlobalScope, type: BlitType) {\r\n const pb = scope.$builder;\r\n if (pb.shaderKind === 'fragment') {\r\n if (this._depthTex) {\r\n scope.depthTex = pb.tex2D().sampleType('unfilterable-float').uniform(0);\r\n scope.depthCutoff = pb.float().uniform(0);\r\n }\r\n scope.sigma = pb.float().uniform(0);\r\n scope.blurSize = pb.float().uniform(0);\r\n if (this._logSpace && this._phase === 'horizonal') {\r\n scope.multiplier = pb.float().uniform(0);\r\n }\r\n if (this._phase !== 'horizonal' && this._phase !== 'vertical') {\r\n throw new Error(`GaussianBlurFilter.setupFilter() failed: invalid phase: ${this._phase}`);\r\n }\r\n if (!Number.isInteger(this._kernelSize) || this._kernelSize < 0 || (this._kernelSize & 1) === 0) {\r\n throw new Error(`GaussianBlurFilter.setupFilter() failed: invalid kernel size: ${this._kernelSize}`);\r\n }\r\n scope.blurMultiplyVec =\r\n type === 'cube'\r\n ? this._phase === 'horizonal'\r\n ? pb.vec3(1, 0, 0)\r\n : pb.vec3(0, 1, 0)\r\n : this._phase === 'horizonal'\r\n ? pb.vec2(1, 0)\r\n : pb.vec2(0, 1);\r\n scope.numBlurPixelsPerSide = pb.float((this._kernelSize + 1) / 2);\r\n }\r\n }\r\n /**\r\n * {@inheritDoc Blitter.setUniforms}\r\n * @override\r\n */\r\n setUniforms(bindGroup: BindGroup) {\r\n bindGroup.setValue('sigma', this._sigma);\r\n bindGroup.setValue('blurSize', this._blurSize);\r\n if (this._logSpace && this._phase === 'horizonal') {\r\n bindGroup.setValue('multiplier', this._logSpaceMultiplier);\r\n }\r\n if (this._depthTex) {\r\n bindGroup.setTexture('depthTex', this._depthTex);\r\n bindGroup.setValue('depthCutoff', this._depthCutoff);\r\n }\r\n }\r\n /**\r\n * {@inheritDoc Blitter.filter}\r\n * @override\r\n */\r\n filter(\r\n scope: PBInsideFunctionScope,\r\n type: BlitType,\r\n srcTex: PBShaderExp,\r\n srcUV: PBShaderExp,\r\n srcLayer: PBShaderExp,\r\n sampleType: 'float' | 'int' | 'uint'\r\n ): PBShaderExp {\r\n const that = this;\r\n const pb = scope.$builder;\r\n if (that._depthTex) {\r\n pb.func('getLinearDepth', [pb.vec2('uv')], function () {\r\n this.$l.depthValue = pb.textureSample(this.depthTex, this.uv);\r\n if (pb.getDevice().type === 'webgl') {\r\n this.$return(decodeNormalizedFloatFromRGBA(this, this.depthValue));\r\n } else {\r\n this.$return(this.depthValue.r);\r\n }\r\n });\r\n }\r\n scope.incrementalGaussian = pb.vec3();\r\n scope.incrementalGaussian.x = pb.div(1, pb.mul(scope.sigma, Math.sqrt(2 * Math.PI)));\r\n scope.incrementalGaussian.y = pb.exp(pb.div(-0.5, pb.mul(scope.sigma, scope.sigma)));\r\n scope.incrementalGaussian.z = pb.mul(scope.incrementalGaussian.y, scope.incrementalGaussian.y);\r\n scope.coefficientSum = pb.float(0);\r\n scope.minExpValue = pb.vec4(87, 87, 87, 87);\r\n scope.d0 = that.readTexel(scope, type, srcTex, srcUV, srcLayer, sampleType);\r\n if (that._logSpace) {\r\n scope.avgValue = pb.vec4(scope.incrementalGaussian.x);\r\n } else {\r\n scope.avgValue = pb.mul(\r\n that.readTexel(scope, type, srcTex, srcUV, srcLayer, sampleType),\r\n scope.incrementalGaussian.x\r\n );\r\n }\r\n if (that._depthTex) {\r\n scope.centerDepth = scope.getLinearDepth(srcUV);\r\n }\r\n scope.coefficientSum = pb.add(scope.coefficientSum, scope.incrementalGaussian.x);\r\n scope.incrementalGaussian = pb.vec3(\r\n pb.mul(scope.incrementalGaussian.xy, scope.incrementalGaussian.yz),\r\n scope.incrementalGaussian.z\r\n );\r\n scope.$for(pb.float('i'), 1, scope.numBlurPixelsPerSide, function () {\r\n this.$l.uv1 = pb.sub(srcUV, pb.mul(this.blurMultiplyVec, this.blurSize, this.i));\r\n this.$l.d1 = pb.vec4();\r\n if (that._depthTex) {\r\n this.$l.depth1 = this.getLinearDepth(this.uv1);\r\n this.$l.test1 = pb.lessThan(pb.abs(pb.sub(this.depth1, this.centerDepth)), this.depthCutoff);\r\n } else {\r\n this.$l.test1 = true;\r\n }\r\n this.$if(this.test1, function () {\r\n this.d1 = that.readTexel(scope, type, srcTex, this.uv1, srcLayer, sampleType);\r\n });\r\n this.$l.uv2 = pb.add(srcUV, pb.mul(this.blurMultiplyVec, this.blurSize, this.i));\r\n this.$l.d2 = pb.vec4();\r\n if (that._depthTex) {\r\n this.$l.depth2 = this.getLinearDepth(this.uv2);\r\n this.$l.test2 = pb.lessThan(pb.abs(pb.sub(this.depth2, this.centerDepth)), this.depthCutoff);\r\n } else {\r\n this.$l.test2 = true;\r\n }\r\n this.$if(this.test2, function () {\r\n this.d2 = that.readTexel(\r\n scope,\r\n type,\r\n srcTex,\r\n pb.add(srcUV, pb.mul(this.blurMultiplyVec, this.blurSize, this.i)),\r\n srcLayer,\r\n sampleType\r\n );\r\n });\r\n if (that._logSpace) {\r\n if (that._phase === 'horizonal') {\r\n this.$if(this.test1, function () {\r\n this.avgValue = pb.add(\r\n this.avgValue,\r\n pb.mul(\r\n pb.exp(pb.min(this.minExpValue, pb.mul(pb.sub(this.d1, this.d0), this.multiplier))),\r\n this.incrementalGaussian.x\r\n )\r\n );\r\n this.coefficientSum = pb.add(this.coefficientSum, this.incrementalGaussian.x);\r\n });\r\n this.$if(this.test2, function () {\r\n this.avgValue = pb.add(\r\n this.avgValue,\r\n pb.mul(\r\n pb.exp(pb.min(this.minExpValue, pb.mul(pb.sub(this.d2, this.d0), this.multiplier))),\r\n this.incrementalGaussian.x\r\n )\r\n );\r\n this.coefficientSum = pb.add(this.coefficientSum, this.incrementalGaussian.x);\r\n });\r\n } else {\r\n this.$if(this.test1, function () {\r\n this.avgValue = pb.add(\r\n this.avgValue,\r\n pb.mul(pb.exp(pb.min(this.minExpValue, pb.sub(this.d1, this.d0))), this.incrementalGaussian.x)\r\n );\r\n this.coefficientSum = pb.add(this.coefficientSum, this.incrementalGaussian.x);\r\n });\r\n this.$if(this.test2, function () {\r\n this.avgValue = pb.add(\r\n this.avgValue,\r\n pb.mul(pb.exp(pb.min(this.minExpValue, pb.sub(this.d2, this.d0))), this.incrementalGaussian.x)\r\n );\r\n this.coefficientSum = pb.add(this.coefficientSum, this.incrementalGaussian.x);\r\n });\r\n }\r\n } else {\r\n this.$if(this.test1, function () {\r\n this.avgValue = pb.add(this.avgValue, pb.mul(this.d1, this.incrementalGaussian.x));\r\n this.coefficientSum = pb.add(this.coefficientSum, this.incrementalGaussian.x);\r\n });\r\n this.$if(this.test2, function () {\r\n this.avgValue = pb.add(this.avgValue, pb.mul(this.d2, this.incrementalGaussian.x));\r\n this.coefficientSum = pb.add(this.coefficientSum, this.incrementalGaussian.x);\r\n });\r\n }\r\n this.incrementalGaussian = pb.vec3(\r\n pb.mul(this.incrementalGaussian.xy, this.incrementalGaussian.yz),\r\n this.incrementalGaussian.z\r\n );\r\n });\r\n scope.$l.outColor = pb.div(scope.avgValue, scope.coefficientSum);\r\n if (that._logSpace) {\r\n if (that._phase === 'horizonal') {\r\n scope.outColor = pb.add(pb.mul(scope.multiplier, scope.d0), pb.log(scope.outColor));\r\n } else {\r\n scope.outColor = pb.add(scope.d0, pb.log(scope.outColor));\r\n }\r\n }\r\n return scope.outColor;\r\n }\r\n /**\r\n * {@inheritDoc Blitter.calcHash}\r\n * @override\r\n */\r\n protected calcHash(): string {\r\n return `${this._depthTex ? 1 : 0}-${this._phase}-${this._kernelSize}-${Number(!!this._logSpace)}`;\r\n }\r\n}\r\n"],"names":["GaussianBlurBlitter","Blitter","phase","kernalSize","sigma","blurSize","_phase","_kernelSize","_sigma","_blurSize","_logSpace","_logSpaceMultiplier","_depthTex","_depthCutoff","val","kernelSize","invalidateHash","logSpace","logSpaceMultiplier","depthTexture","tex","depthCutoff","setup","scope","type","pb","$builder","shaderKind","depthTex","tex2D","sampleType","uniform","float","multiplier","Error","Number","isInteger","blurMultiplyVec","vec3","vec2","numBlurPixelsPerSide","setUniforms","bindGroup","setValue","setTexture","filter","srcTex","srcUV","srcLayer","that","func","$l","depthValue","textureSample","uv","getDevice","$return","decodeNormalizedFloatFromRGBA","r","incrementalGaussian","x","div","mul","Math","sqrt","PI","y","exp","z","coefficientSum","minExpValue","vec4","d0","readTexel","avgValue","centerDepth","getLinearDepth","add","xy","yz","$for","uv1","sub","i","d1","depth1","test1","lessThan","abs","$if","uv2","d2","depth2","test2","min","outColor","log"],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class for any kind of camera controllers
|
|
3
|
+
* @public
|
|
4
|
+
*/ class BaseCameraController {
|
|
5
|
+
/** @internal */ _camera;
|
|
6
|
+
/**
|
|
7
|
+
* Creates an instance of BaseCameraController
|
|
8
|
+
*/ constructor(){
|
|
9
|
+
this._camera = null;
|
|
10
|
+
}
|
|
11
|
+
/** @internal */ _getCamera() {
|
|
12
|
+
return this._camera;
|
|
13
|
+
}
|
|
14
|
+
/** @internal */ _setCamera(camera) {
|
|
15
|
+
if (this._camera !== camera) {
|
|
16
|
+
this._camera = camera;
|
|
17
|
+
this.reset();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
lookAt(from, to, up) {
|
|
21
|
+
this._camera.lookAt(from, to, up);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Resets state
|
|
25
|
+
*/ reset() {}
|
|
26
|
+
/** @internal */ onMouseDown(evt) {
|
|
27
|
+
return this._onMouseDown(evt);
|
|
28
|
+
}
|
|
29
|
+
/** @internal */ onMouseUp(evt) {
|
|
30
|
+
return this._onMouseUp(evt);
|
|
31
|
+
}
|
|
32
|
+
/** @internal */ onMouseWheel(evt) {
|
|
33
|
+
return this._onMouseWheel(evt);
|
|
34
|
+
}
|
|
35
|
+
/** @internal */ onMouseMove(evt) {
|
|
36
|
+
return this._onMouseMove(evt);
|
|
37
|
+
}
|
|
38
|
+
/** @internal */ onKeyDown(evt) {
|
|
39
|
+
return this._onKeyDown(evt);
|
|
40
|
+
}
|
|
41
|
+
/** @internal */ onKeyUp(evt) {
|
|
42
|
+
return this._onKeyUp(evt);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Updates state
|
|
46
|
+
*/ update() {}
|
|
47
|
+
/**
|
|
48
|
+
* Mouse down event handler
|
|
49
|
+
* @param evt - Mouse event
|
|
50
|
+
* @returns Boolean value indices whether this event was handled
|
|
51
|
+
*/ _onMouseDown(_evt) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Mouse up event handler
|
|
56
|
+
* @param evt - Mouse event
|
|
57
|
+
* @returns Boolean value indices whether this event was handled
|
|
58
|
+
*/ _onMouseUp(_evt) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Mouse wheel event handler
|
|
63
|
+
* @param evt - Mouse event
|
|
64
|
+
* @returns Boolean value indices whether this event was handled
|
|
65
|
+
*/ _onMouseWheel(_evt) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Mouse move event handler
|
|
70
|
+
* @param evt - Mouse event
|
|
71
|
+
* @returns Boolean value indices whether this event was handled
|
|
72
|
+
*/ _onMouseMove(_evt) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Key down event handler
|
|
77
|
+
* @param evt - Keyboard event
|
|
78
|
+
* @returns Boolean value indices whether this event was handled
|
|
79
|
+
*/ _onKeyDown(_evt) {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Key up event handler
|
|
84
|
+
* @param evt - Keyboard event
|
|
85
|
+
* @returns Boolean value indices whether this event was handled
|
|
86
|
+
*/ _onKeyUp(_evt) {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export { BaseCameraController };
|
|
92
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sources":["../../../src/camera/base.ts"],"sourcesContent":["import type { Vector3 } from '@zephyr3d/base';\r\nimport type { Camera } from './camera';\r\n\r\n/**\r\n * Base class for any kind of camera controllers\r\n * @public\r\n */\r\nexport class BaseCameraController {\r\n /** @internal */\r\n private _camera: Camera;\r\n /**\r\n * Creates an instance of BaseCameraController\r\n */\r\n constructor() {\r\n this._camera = null;\r\n }\r\n /** @internal */\r\n _getCamera() {\r\n return this._camera;\r\n }\r\n /** @internal */\r\n _setCamera(camera: Camera) {\r\n if (this._camera !== camera) {\r\n this._camera = camera;\r\n this.reset();\r\n }\r\n }\r\n lookAt(from: Vector3, to: Vector3, up: Vector3) {\r\n this._camera.lookAt(from, to, up);\r\n }\r\n /**\r\n * Resets state\r\n */\r\n reset(): void {}\r\n /** @internal */\r\n onMouseDown(evt: PointerEvent): boolean {\r\n return this._onMouseDown(evt);\r\n }\r\n /** @internal */\r\n onMouseUp(evt: PointerEvent): boolean {\r\n return this._onMouseUp(evt);\r\n }\r\n /** @internal */\r\n onMouseWheel(evt: WheelEvent): boolean {\r\n return this._onMouseWheel(evt);\r\n }\r\n /** @internal */\r\n onMouseMove(evt: PointerEvent): boolean {\r\n return this._onMouseMove(evt);\r\n }\r\n /** @internal */\r\n onKeyDown(evt: KeyboardEvent): boolean {\r\n return this._onKeyDown(evt);\r\n }\r\n /** @internal */\r\n onKeyUp(evt: KeyboardEvent): boolean {\r\n return this._onKeyUp(evt);\r\n }\r\n /**\r\n * Updates state\r\n */\r\n update(): void {}\r\n /**\r\n * Mouse down event handler\r\n * @param evt - Mouse event\r\n * @returns Boolean value indices whether this event was handled\r\n */\r\n protected _onMouseDown(_evt: PointerEvent): boolean {\r\n return false;\r\n }\r\n /**\r\n * Mouse up event handler\r\n * @param evt - Mouse event\r\n * @returns Boolean value indices whether this event was handled\r\n */\r\n protected _onMouseUp(_evt: PointerEvent): boolean {\r\n return false;\r\n }\r\n /**\r\n * Mouse wheel event handler\r\n * @param evt - Mouse event\r\n * @returns Boolean value indices whether this event was handled\r\n */\r\n protected _onMouseWheel(_evt: WheelEvent): boolean {\r\n return false;\r\n }\r\n /**\r\n * Mouse move event handler\r\n * @param evt - Mouse event\r\n * @returns Boolean value indices whether this event was handled\r\n */\r\n protected _onMouseMove(_evt: PointerEvent): boolean {\r\n return false;\r\n }\r\n /**\r\n * Key down event handler\r\n * @param evt - Keyboard event\r\n * @returns Boolean value indices whether this event was handled\r\n */\r\n protected _onKeyDown(_evt: KeyboardEvent): boolean {\r\n return false;\r\n }\r\n /**\r\n * Key up event handler\r\n * @param evt - Keyboard event\r\n * @returns Boolean value indices whether this event was handled\r\n */\r\n protected _onKeyUp(_evt: KeyboardEvent): boolean {\r\n return false;\r\n }\r\n}\r\n"],"names":["BaseCameraController","_camera","_getCamera","_setCamera","camera","reset","lookAt","from","to","up","onMouseDown","evt","_onMouseDown","onMouseUp","_onMouseUp","onMouseWheel","_onMouseWheel","onMouseMove","_onMouseMove","onKeyDown","_onKeyDown","onKeyUp","_onKeyUp","update","_evt"],"mappings":"AAGA;;;AAGC,IACM,MAAMA,oBAAAA,CAAAA;qBAEX,OAAwB;AACxB;;AAEC,MACD,WAAc,EAAA;QACZ,IAAI,CAACC,OAAO,GAAG,IAAA;AACjB;AACA,qBACAC,UAAa,GAAA;QACX,OAAO,IAAI,CAACD,OAAO;AACrB;qBAEAE,UAAWC,CAAAA,MAAc,EAAE;AACzB,QAAA,IAAI,IAAI,CAACH,OAAO,KAAKG,MAAQ,EAAA;YAC3B,IAAI,CAACH,OAAO,GAAGG,MAAAA;AACf,YAAA,IAAI,CAACC,KAAK,EAAA;AACZ;AACF;AACAC,IAAAA,MAAAA,CAAOC,IAAa,EAAEC,EAAW,EAAEC,EAAW,EAAE;AAC9C,QAAA,IAAI,CAACR,OAAO,CAACK,MAAM,CAACC,MAAMC,EAAIC,EAAAA,EAAAA,CAAAA;AAChC;AACA;;AAEC,MACDJ,QAAc;qBAEdK,WAAYC,CAAAA,GAAiB,EAAW;QACtC,OAAO,IAAI,CAACC,YAAY,CAACD,GAAAA,CAAAA;AAC3B;qBAEAE,SAAUF,CAAAA,GAAiB,EAAW;QACpC,OAAO,IAAI,CAACG,UAAU,CAACH,GAAAA,CAAAA;AACzB;qBAEAI,YAAaJ,CAAAA,GAAe,EAAW;QACrC,OAAO,IAAI,CAACK,aAAa,CAACL,GAAAA,CAAAA;AAC5B;qBAEAM,WAAYN,CAAAA,GAAiB,EAAW;QACtC,OAAO,IAAI,CAACO,YAAY,CAACP,GAAAA,CAAAA;AAC3B;qBAEAQ,SAAUR,CAAAA,GAAkB,EAAW;QACrC,OAAO,IAAI,CAACS,UAAU,CAACT,GAAAA,CAAAA;AACzB;qBAEAU,OAAQV,CAAAA,GAAkB,EAAW;QACnC,OAAO,IAAI,CAACW,QAAQ,CAACX,GAAAA,CAAAA;AACvB;AACA;;AAEC,MACDY,SAAe;AACf;;;;MAKUX,YAAaY,CAAAA,IAAkB,EAAW;QAClD,OAAO,KAAA;AACT;AACA;;;;MAKUV,UAAWU,CAAAA,IAAkB,EAAW;QAChD,OAAO,KAAA;AACT;AACA;;;;MAKUR,aAAcQ,CAAAA,IAAgB,EAAW;QACjD,OAAO,KAAA;AACT;AACA;;;;MAKUN,YAAaM,CAAAA,IAAkB,EAAW;QAClD,OAAO,KAAA;AACT;AACA;;;;MAKUJ,UAAWI,CAAAA,IAAmB,EAAW;QACjD,OAAO,KAAA;AACT;AACA;;;;MAKUF,QAASE,CAAAA,IAAmB,EAAW;QAC/C,OAAO,KAAA;AACT;AACF;;;;"}
|