@zephyr3d/scene 0.9.5 → 0.9.6
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/index.d.ts +1 -0
- package/dist/material/msdf_text.js +3 -3
- package/dist/material/msdf_text.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/package.json +1 -1
- 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,235 +0,0 @@
|
|
|
1
|
-
import { DRef, Vector4 } from '@zephyr3d/base';
|
|
2
|
-
import { Sprite3DBlockNode } from '../utility/blueprint/material/pbr.js';
|
|
3
|
-
import { MaterialBlueprintIR } from '../utility/blueprint/material/ir.js';
|
|
4
|
-
import { Sprite3DMaterial } from './sprite3d.js';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Sprite3D material driven by a blueprint graph.
|
|
8
|
-
*
|
|
9
|
-
* @remarks
|
|
10
|
-
* This material extends {@link Sprite3DMaterial} and uses a
|
|
11
|
-
* {@link MaterialBlueprintIR} fragment graph to compute the final
|
|
12
|
-
* sprite color. All fragment shading logic is defined in the
|
|
13
|
-
* blueprint instead of being hard-coded in the material.
|
|
14
|
-
*
|
|
15
|
-
* @public
|
|
16
|
-
*/ class Sprite3DBlueprintMaterial extends Sprite3DMaterial {
|
|
17
|
-
/** @internal */ _irFrag;
|
|
18
|
-
/** @internal */ _uniformValues;
|
|
19
|
-
/** @internal */ _uniformTextures;
|
|
20
|
-
/**
|
|
21
|
-
* Creates a new {@link Sprite3DBlueprintMaterial} instance.
|
|
22
|
-
*
|
|
23
|
-
* @param irFrag - Optional fragment blueprint IR. If omitted, a default
|
|
24
|
-
* IR containing a single {@link Sprite3DBlockNode} is created.
|
|
25
|
-
* @param uniformValues - Optional initial list of uniform value descriptors.
|
|
26
|
-
* @param uniformTextures - Optional initial list of texture uniform descriptors.
|
|
27
|
-
*/ constructor(irFrag, uniformValues, uniformTextures){
|
|
28
|
-
super();
|
|
29
|
-
this._irFrag = irFrag ?? new MaterialBlueprintIR({
|
|
30
|
-
nodeMap: {
|
|
31
|
-
'1': new Sprite3DBlockNode()
|
|
32
|
-
},
|
|
33
|
-
roots: [
|
|
34
|
-
1
|
|
35
|
-
],
|
|
36
|
-
order: [
|
|
37
|
-
1
|
|
38
|
-
],
|
|
39
|
-
graph: {
|
|
40
|
-
incoming: {},
|
|
41
|
-
outgoing: {}
|
|
42
|
-
}
|
|
43
|
-
}, '', {
|
|
44
|
-
nodes: [
|
|
45
|
-
{
|
|
46
|
-
id: 1,
|
|
47
|
-
title: '',
|
|
48
|
-
locked: true,
|
|
49
|
-
node: {
|
|
50
|
-
ClassName: 'Sprite3DBlockNode',
|
|
51
|
-
Object: ''
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
],
|
|
55
|
-
links: []
|
|
56
|
-
});
|
|
57
|
-
this._uniformValues = uniformValues ?? [];
|
|
58
|
-
this._uniformTextures = uniformTextures ?? [];
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Gets the fragment blueprint IR used to generate the fragment shader.
|
|
62
|
-
*/ get fragmentIR() {
|
|
63
|
-
return this._irFrag;
|
|
64
|
-
}
|
|
65
|
-
set fragmentIR(ir) {
|
|
66
|
-
if (ir && ir !== this._irFrag) {
|
|
67
|
-
this._irFrag = ir;
|
|
68
|
-
this.clearCache();
|
|
69
|
-
this.optionChanged(true);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Gets the list of uniform value descriptors used by the blueprint.
|
|
74
|
-
*/ get uniformValues() {
|
|
75
|
-
return this._uniformValues;
|
|
76
|
-
}
|
|
77
|
-
set uniformValues(val) {
|
|
78
|
-
this._uniformValues = (val ?? []).map((v)=>({
|
|
79
|
-
...v
|
|
80
|
-
}));
|
|
81
|
-
this.uniformChanged();
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Gets the list of texture uniform descriptors used by the blueprint.
|
|
85
|
-
*/ get uniformTextures() {
|
|
86
|
-
return this._uniformTextures;
|
|
87
|
-
}
|
|
88
|
-
set uniformTextures(val) {
|
|
89
|
-
val = val ?? [];
|
|
90
|
-
if (val !== this._uniformTextures) {
|
|
91
|
-
const newUniforms = val.map((v)=>({
|
|
92
|
-
finalTexture: new DRef(v.finalTexture.get()),
|
|
93
|
-
finalSampler: v.finalSampler,
|
|
94
|
-
name: v.name,
|
|
95
|
-
params: v.params?.clone() ?? Vector4.zero(),
|
|
96
|
-
texture: v.texture,
|
|
97
|
-
type: v.type,
|
|
98
|
-
sRGB: v.sRGB,
|
|
99
|
-
wrapS: v.wrapS,
|
|
100
|
-
wrapT: v.wrapT,
|
|
101
|
-
inFragmentShader: v.inFragmentShader,
|
|
102
|
-
inVertexShader: v.inVertexShader,
|
|
103
|
-
minFilter: v.minFilter,
|
|
104
|
-
magFilter: v.magFilter,
|
|
105
|
-
mipFilter: v.mipFilter
|
|
106
|
-
}));
|
|
107
|
-
for (const u of this._uniformTextures){
|
|
108
|
-
u.finalTexture.dispose();
|
|
109
|
-
}
|
|
110
|
-
this._uniformTextures = newUniforms;
|
|
111
|
-
this.uniformChanged();
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Creates a deep copy of this blueprint material.
|
|
116
|
-
*
|
|
117
|
-
* @remarks
|
|
118
|
-
* The clone shares the same fragment IR reference and copies the
|
|
119
|
-
* current uniform descriptors, then calls {@link Sprite3DMaterial.copyFrom}
|
|
120
|
-
* to copy base-class state.
|
|
121
|
-
*
|
|
122
|
-
* @returns A new {@link Sprite3DBlueprintMaterial} instance.
|
|
123
|
-
*/ clone() {
|
|
124
|
-
const other = new Sprite3DBlueprintMaterial(this._irFrag, this._uniformValues, this._uniformTextures);
|
|
125
|
-
other.copyFrom(this);
|
|
126
|
-
return other;
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Applies runtime uniform values and textures to the given bind group.
|
|
130
|
-
*
|
|
131
|
-
* @remarks
|
|
132
|
-
* - Calls the base implementation to bind sprite-related uniforms first.
|
|
133
|
-
* - If fragment color is needed for the current context, all blueprint
|
|
134
|
-
* uniform values and textures are then bound by name:
|
|
135
|
-
* - `uniformValues` via `bindGroup.setValue`.
|
|
136
|
-
* - `uniformTextures` via `bindGroup.setTexture`.
|
|
137
|
-
*
|
|
138
|
-
* @param bindGroup - The bind group to bind material resources to.
|
|
139
|
-
* @param ctx - The current draw context.
|
|
140
|
-
* @param pass - Index of the active render pass.
|
|
141
|
-
*/ applyUniformValues(bindGroup, ctx, pass) {
|
|
142
|
-
super.applyUniformValues(bindGroup, ctx, pass);
|
|
143
|
-
if (this.needFragmentColor(ctx)) {
|
|
144
|
-
for (const u of this._uniformValues){
|
|
145
|
-
bindGroup.setValue(u.name, u.finalValue);
|
|
146
|
-
}
|
|
147
|
-
for (const u of this._uniformTextures){
|
|
148
|
-
bindGroup.setTexture(u.name, u.finalTexture.get(), u.finalSampler);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Computes the fragment color by invoking the blueprint-generated function.
|
|
154
|
-
*
|
|
155
|
-
* @remarks
|
|
156
|
-
* - A helper function `zCalcSpriteColor(zWorldPos, zVertexUV)` is declared
|
|
157
|
-
* on the shader builder using the current fragment IR.
|
|
158
|
-
* - The blueprint IR is asked to create its node network via
|
|
159
|
-
* {@link MaterialBlueprintIR.create}, and the output named `"Color"`
|
|
160
|
-
* is used as the return value.
|
|
161
|
-
* - The resulting function is invoked with the current world position and
|
|
162
|
-
* UV coordinates for each fragment.
|
|
163
|
-
*
|
|
164
|
-
* @param scope - The current fragment shader function scope.
|
|
165
|
-
* @returns A shader expression representing the final fragment color.
|
|
166
|
-
*/ calcFragmentColor(scope) {
|
|
167
|
-
const pb = scope.$builder;
|
|
168
|
-
const that = this;
|
|
169
|
-
pb.func('zCalcSpriteColor', [
|
|
170
|
-
pb.vec3('zWorldPos'),
|
|
171
|
-
pb.vec2('zVertexUV')
|
|
172
|
-
], function() {
|
|
173
|
-
const outputs = that._irFrag.create(pb);
|
|
174
|
-
this.$return(that.getOutput(outputs, 'Color'));
|
|
175
|
-
});
|
|
176
|
-
return scope.zCalcSpriteColor(scope.$inputs.zWorldPos, scope.$inputs.zVertexUV);
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Creates a unique hash string used for program caching.
|
|
180
|
-
*
|
|
181
|
-
* @remarks
|
|
182
|
-
* The hash includes the base {@link Sprite3DMaterial} hash and the
|
|
183
|
-
* fragment IR hash, so that different blueprints will produce
|
|
184
|
-
* different shader programs.
|
|
185
|
-
*
|
|
186
|
-
* @returns A hash string that identifies this material configuration.
|
|
187
|
-
*/ _createHash() {
|
|
188
|
-
return `${super._createHash()}:${this._irFrag.hash}`;
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Creates the GPU program for this material.
|
|
192
|
-
*
|
|
193
|
-
* @remarks
|
|
194
|
-
* This simply delegates to the base implementation and returns its result.
|
|
195
|
-
* Commented-out logging lines are available for debugging the generated
|
|
196
|
-
* vertex and fragment shader sources.
|
|
197
|
-
*
|
|
198
|
-
* @param ctx - The current draw context.
|
|
199
|
-
* @param pass - Index of the active material pass.
|
|
200
|
-
* @returns The created GPU program.
|
|
201
|
-
*/ createProgram(ctx, pass) {
|
|
202
|
-
const program = super.createProgram(ctx, pass);
|
|
203
|
-
//console.log(program.getShaderSource('vertex'));
|
|
204
|
-
//console.log(program.getShaderSource('fragment'));
|
|
205
|
-
return program;
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* Disposes resources associated with this material.
|
|
209
|
-
*
|
|
210
|
-
* @remarks
|
|
211
|
-
* - Calls the base `onDispose` to clean up inherited resources.
|
|
212
|
-
* - Disposes all `finalTexture` references from the blueprint texture
|
|
213
|
-
* uniform descriptors.
|
|
214
|
-
*
|
|
215
|
-
* This method is intended to be called by the engine's resource management
|
|
216
|
-
* system rather than directly from user code.
|
|
217
|
-
*/ onDispose() {
|
|
218
|
-
super.onDispose();
|
|
219
|
-
for (const u of this._uniformTextures){
|
|
220
|
-
u.finalTexture.dispose();
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
* Retrieves a named output expression from a blueprint output list.
|
|
225
|
-
*
|
|
226
|
-
* @param outputs - List of outputs generated by the blueprint graph.
|
|
227
|
-
* @param name - Name of the output to look for (e.g. `"Color"`).
|
|
228
|
-
* @returns The matching output expression, or `undefined` if not found.
|
|
229
|
-
*/ getOutput(outputs, name) {
|
|
230
|
-
return outputs.find((output)=>output.name === name)?.exp;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
export { Sprite3DBlueprintMaterial };
|
|
235
|
-
//# sourceMappingURL=sprite3dblueprint.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sprite3dblueprint.js","sources":["../../src/material/sprite3dblueprint.ts"],"sourcesContent":["import { DRef, Vector4 } from '@zephyr3d/base';\r\nimport { type BluePrintUniformTexture, type BluePrintUniformValue } from '../utility/blueprint/material/ir';\r\nimport { Sprite3DBlockNode } from '../utility/blueprint/material/pbr';\r\nimport { MaterialBlueprintIR } from '../utility/blueprint/material/ir';\r\nimport { Sprite3DMaterial } from './sprite3d';\r\nimport type { BindGroup, PBInsideFunctionScope, PBShaderExp } from '@zephyr3d/device';\r\nimport type { DrawContext } from '../render';\r\n\r\n/**\r\n * Sprite3D material driven by a blueprint graph.\r\n *\r\n * @remarks\r\n * This material extends {@link Sprite3DMaterial} and uses a\r\n * {@link MaterialBlueprintIR} fragment graph to compute the final\r\n * sprite color. All fragment shading logic is defined in the\r\n * blueprint instead of being hard-coded in the material.\r\n *\r\n * @public\r\n */\r\nexport class Sprite3DBlueprintMaterial extends Sprite3DMaterial {\r\n /** @internal */\r\n private _irFrag: MaterialBlueprintIR;\r\n /** @internal */\r\n private _uniformValues: BluePrintUniformValue[];\r\n /** @internal */\r\n private _uniformTextures: BluePrintUniformTexture[];\r\n /**\r\n * Creates a new {@link Sprite3DBlueprintMaterial} instance.\r\n *\r\n * @param irFrag - Optional fragment blueprint IR. If omitted, a default\r\n * IR containing a single {@link Sprite3DBlockNode} is created.\r\n * @param uniformValues - Optional initial list of uniform value descriptors.\r\n * @param uniformTextures - Optional initial list of texture uniform descriptors.\r\n */\r\n constructor(\r\n irFrag?: MaterialBlueprintIR,\r\n uniformValues?: BluePrintUniformValue[],\r\n uniformTextures?: BluePrintUniformTexture[]\r\n ) {\r\n super();\r\n this._irFrag =\r\n irFrag ??\r\n new MaterialBlueprintIR(\r\n {\r\n nodeMap: { '1': new Sprite3DBlockNode() },\r\n roots: [1],\r\n order: [1],\r\n graph: { incoming: {}, outgoing: {} }\r\n },\r\n '',\r\n {\r\n nodes: [{ id: 1, title: '', locked: true, node: { ClassName: 'Sprite3DBlockNode', Object: '' } }],\r\n links: []\r\n }\r\n );\r\n this._uniformValues = uniformValues ?? [];\r\n this._uniformTextures = uniformTextures ?? [];\r\n }\r\n /**\r\n * Gets the fragment blueprint IR used to generate the fragment shader.\r\n */\r\n get fragmentIR() {\r\n return this._irFrag;\r\n }\r\n set fragmentIR(ir: MaterialBlueprintIR) {\r\n if (ir && ir !== this._irFrag) {\r\n this._irFrag = ir;\r\n this.clearCache();\r\n this.optionChanged(true);\r\n }\r\n }\r\n /**\r\n * Gets the list of uniform value descriptors used by the blueprint.\r\n */\r\n get uniformValues() {\r\n return this._uniformValues;\r\n }\r\n set uniformValues(val: BluePrintUniformValue[]) {\r\n this._uniformValues = (val ?? []).map((v) => ({ ...v }));\r\n this.uniformChanged();\r\n }\r\n /**\r\n * Gets the list of texture uniform descriptors used by the blueprint.\r\n */\r\n get uniformTextures() {\r\n return this._uniformTextures;\r\n }\r\n set uniformTextures(val: BluePrintUniformTexture[]) {\r\n val = val ?? [];\r\n if (val !== this._uniformTextures) {\r\n const newUniforms = val.map((v) => ({\r\n finalTexture: new DRef(v.finalTexture!.get()),\r\n finalSampler: v.finalSampler,\r\n name: v.name,\r\n params: v.params?.clone() ?? Vector4.zero(),\r\n texture: v.texture,\r\n type: v.type,\r\n sRGB: v.sRGB,\r\n wrapS: v.wrapS,\r\n wrapT: v.wrapT,\r\n inFragmentShader: v.inFragmentShader,\r\n inVertexShader: v.inVertexShader,\r\n minFilter: v.minFilter,\r\n magFilter: v.magFilter,\r\n mipFilter: v.mipFilter\r\n }));\r\n for (const u of this._uniformTextures) {\r\n u.finalTexture!.dispose();\r\n }\r\n this._uniformTextures = newUniforms;\r\n this.uniformChanged();\r\n }\r\n }\r\n /**\r\n * Creates a deep copy of this blueprint material.\r\n *\r\n * @remarks\r\n * The clone shares the same fragment IR reference and copies the\r\n * current uniform descriptors, then calls {@link Sprite3DMaterial.copyFrom}\r\n * to copy base-class state.\r\n *\r\n * @returns A new {@link Sprite3DBlueprintMaterial} instance.\r\n */\r\n clone() {\r\n const other = new Sprite3DBlueprintMaterial(this._irFrag, this._uniformValues, this._uniformTextures);\r\n other.copyFrom(this);\r\n return other;\r\n }\r\n /**\r\n * Applies runtime uniform values and textures to the given bind group.\r\n *\r\n * @remarks\r\n * - Calls the base implementation to bind sprite-related uniforms first.\r\n * - If fragment color is needed for the current context, all blueprint\r\n * uniform values and textures are then bound by name:\r\n * - `uniformValues` via `bindGroup.setValue`.\r\n * - `uniformTextures` via `bindGroup.setTexture`.\r\n *\r\n * @param bindGroup - The bind group to bind material resources to.\r\n * @param ctx - The current draw context.\r\n * @param pass - Index of the active render pass.\r\n */\r\n applyUniformValues(bindGroup: BindGroup, ctx: DrawContext, pass: number) {\r\n super.applyUniformValues(bindGroup, ctx, pass);\r\n if (this.needFragmentColor(ctx)) {\r\n for (const u of this._uniformValues) {\r\n bindGroup.setValue(u.name, u.finalValue!);\r\n }\r\n for (const u of this._uniformTextures) {\r\n bindGroup.setTexture(u.name, u.finalTexture!.get()!, u.finalSampler);\r\n }\r\n }\r\n }\r\n /**\r\n * Computes the fragment color by invoking the blueprint-generated function.\r\n *\r\n * @remarks\r\n * - A helper function `zCalcSpriteColor(zWorldPos, zVertexUV)` is declared\r\n * on the shader builder using the current fragment IR.\r\n * - The blueprint IR is asked to create its node network via\r\n * {@link MaterialBlueprintIR.create}, and the output named `\"Color\"`\r\n * is used as the return value.\r\n * - The resulting function is invoked with the current world position and\r\n * UV coordinates for each fragment.\r\n *\r\n * @param scope - The current fragment shader function scope.\r\n * @returns A shader expression representing the final fragment color.\r\n */\r\n protected calcFragmentColor(scope: PBInsideFunctionScope) {\r\n const pb = scope.$builder;\r\n const that = this;\r\n pb.func('zCalcSpriteColor', [pb.vec3('zWorldPos'), pb.vec2('zVertexUV')], function () {\r\n const outputs = that._irFrag.create(pb)!;\r\n this.$return(that.getOutput(outputs, 'Color') as PBShaderExp);\r\n });\r\n return scope.zCalcSpriteColor(scope.$inputs.zWorldPos, scope.$inputs.zVertexUV) as PBShaderExp;\r\n }\r\n /**\r\n * Creates a unique hash string used for program caching.\r\n *\r\n * @remarks\r\n * The hash includes the base {@link Sprite3DMaterial} hash and the\r\n * fragment IR hash, so that different blueprints will produce\r\n * different shader programs.\r\n *\r\n * @returns A hash string that identifies this material configuration.\r\n */\r\n protected _createHash() {\r\n return `${super._createHash()}:${this._irFrag.hash}`;\r\n }\r\n /**\r\n * Creates the GPU program for this material.\r\n *\r\n * @remarks\r\n * This simply delegates to the base implementation and returns its result.\r\n * Commented-out logging lines are available for debugging the generated\r\n * vertex and fragment shader sources.\r\n *\r\n * @param ctx - The current draw context.\r\n * @param pass - Index of the active material pass.\r\n * @returns The created GPU program.\r\n */\r\n protected createProgram(ctx: DrawContext, pass: number) {\r\n const program = super.createProgram(ctx, pass);\r\n //console.log(program.getShaderSource('vertex'));\r\n //console.log(program.getShaderSource('fragment'));\r\n return program;\r\n }\r\n /**\r\n * Disposes resources associated with this material.\r\n *\r\n * @remarks\r\n * - Calls the base `onDispose` to clean up inherited resources.\r\n * - Disposes all `finalTexture` references from the blueprint texture\r\n * uniform descriptors.\r\n *\r\n * This method is intended to be called by the engine's resource management\r\n * system rather than directly from user code.\r\n */\r\n protected onDispose() {\r\n super.onDispose();\r\n for (const u of this._uniformTextures) {\r\n u.finalTexture!.dispose();\r\n }\r\n }\r\n /**\r\n * Retrieves a named output expression from a blueprint output list.\r\n *\r\n * @param outputs - List of outputs generated by the blueprint graph.\r\n * @param name - Name of the output to look for (e.g. `\"Color\"`).\r\n * @returns The matching output expression, or `undefined` if not found.\r\n */\r\n private getOutput(\r\n outputs: {\r\n name: string;\r\n exp: number | boolean | PBShaderExp;\r\n }[],\r\n name: string\r\n ) {\r\n return outputs.find((output) => output.name === name)?.exp;\r\n }\r\n}\r\n"],"names":["Sprite3DBlueprintMaterial","Sprite3DMaterial","irFrag","uniformValues","uniformTextures","_irFrag","MaterialBlueprintIR","nodeMap","Sprite3DBlockNode","roots","order","graph","incoming","outgoing","nodes","id","title","locked","node","ClassName","Object","links","_uniformValues","_uniformTextures","fragmentIR","ir","clearCache","optionChanged","val","map","v","uniformChanged","newUniforms","finalTexture","DRef","get","finalSampler","name","params","clone","Vector4","zero","texture","type","sRGB","wrapS","wrapT","inFragmentShader","inVertexShader","minFilter","magFilter","mipFilter","u","dispose","other","copyFrom","applyUniformValues","bindGroup","ctx","pass","needFragmentColor","setValue","finalValue","setTexture","calcFragmentColor","scope","pb","$builder","that","func","vec3","vec2","outputs","create","$return","getOutput","zCalcSpriteColor","$inputs","zWorldPos","zVertexUV","_createHash","hash","createProgram","program","onDispose","find","output","exp"],"mappings":"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"}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { DRef, Vector3, Vector4 } from '@zephyr3d/base';
|
|
2
|
-
import { SpriteMaterial } from './sprite.js';
|
|
3
|
-
import { fetchSampler } from '../utility/misc.js';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Single-channel signed-distance-field sprite material.
|
|
7
|
-
*
|
|
8
|
-
* @public
|
|
9
|
-
*/ class SDFSpriteMaterial extends SpriteMaterial {
|
|
10
|
-
static FEATURE_SPRITE_TEXTURE = this.defineFeature();
|
|
11
|
-
_texture;
|
|
12
|
-
_color;
|
|
13
|
-
_sdfParams;
|
|
14
|
-
constructor(){
|
|
15
|
-
super();
|
|
16
|
-
this._texture = new DRef();
|
|
17
|
-
this._color = new Vector3(1, 1, 1);
|
|
18
|
-
this._sdfParams = new Vector4(8, 1, 1, 0);
|
|
19
|
-
this.blendMode = 'blend';
|
|
20
|
-
}
|
|
21
|
-
get spriteTexture() {
|
|
22
|
-
return this._texture.get();
|
|
23
|
-
}
|
|
24
|
-
set spriteTexture(tex) {
|
|
25
|
-
tex = tex ?? null;
|
|
26
|
-
if (tex !== this._texture.get()) {
|
|
27
|
-
this._texture.set(tex);
|
|
28
|
-
this.useFeature(SDFSpriteMaterial.FEATURE_SPRITE_TEXTURE, !!tex);
|
|
29
|
-
this.uniformChanged();
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
get textColor() {
|
|
33
|
-
return this._color;
|
|
34
|
-
}
|
|
35
|
-
set textColor(value) {
|
|
36
|
-
if (!this._color.equalsTo(value)) {
|
|
37
|
-
this._color.set(value);
|
|
38
|
-
this.uniformChanged();
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
get sdfDistanceRange() {
|
|
42
|
-
return this._sdfParams.x;
|
|
43
|
-
}
|
|
44
|
-
set sdfDistanceRange(value) {
|
|
45
|
-
if (this._sdfParams.x !== value) {
|
|
46
|
-
this._sdfParams.x = value;
|
|
47
|
-
this.uniformChanged();
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
setSDFTextureInfo(distanceRange, width, height) {
|
|
51
|
-
if (this._sdfParams.x !== distanceRange || this._sdfParams.y !== width || this._sdfParams.z !== height) {
|
|
52
|
-
this._sdfParams.setXYZW(distanceRange, width, height, 0);
|
|
53
|
-
this.uniformChanged();
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
clone() {
|
|
57
|
-
const other = new SDFSpriteMaterial();
|
|
58
|
-
other.copyFrom(this);
|
|
59
|
-
return other;
|
|
60
|
-
}
|
|
61
|
-
copyFrom(other) {
|
|
62
|
-
super.copyFrom(other);
|
|
63
|
-
this.spriteTexture = other.spriteTexture;
|
|
64
|
-
this.textColor = other.textColor;
|
|
65
|
-
this._sdfParams.set(other._sdfParams);
|
|
66
|
-
}
|
|
67
|
-
internalApplyUniforms(bindGroup, ctx) {
|
|
68
|
-
if (this.needFragmentColor(ctx)) {
|
|
69
|
-
bindGroup.setValue('zTextColor', this._color);
|
|
70
|
-
bindGroup.setValue('zSDFParams', this._sdfParams);
|
|
71
|
-
if (this.spriteTexture) {
|
|
72
|
-
bindGroup.setTexture('zSpriteTexture', this.spriteTexture, fetchSampler('clamp_linear'));
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
internalSetupUniforms(scope) {
|
|
77
|
-
const pb = scope.$builder;
|
|
78
|
-
if (pb.shaderKind === 'fragment' && this.needFragmentColor()) {
|
|
79
|
-
scope.zTextColor = pb.vec3().uniform(2);
|
|
80
|
-
scope.zSDFParams = pb.vec4().uniform(2);
|
|
81
|
-
if (this.spriteTexture) {
|
|
82
|
-
scope.zSpriteTexture = pb.tex2D().uniform(2);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
calcFragmentColor(scope) {
|
|
87
|
-
const pb = scope.$builder;
|
|
88
|
-
if (!this.spriteTexture) {
|
|
89
|
-
return pb.vec4(scope.zTextColor, 1);
|
|
90
|
-
}
|
|
91
|
-
scope.$l.sdf = pb.textureSample(scope.zSpriteTexture, scope.$inputs.zVertexUV).r;
|
|
92
|
-
scope.$l.unitRange = pb.div(pb.vec2(scope.zSDFParams.x), pb.max(pb.vec2(scope.zSDFParams.y, scope.zSDFParams.z), pb.vec2(1)));
|
|
93
|
-
scope.$l.screenTexSize = pb.div(pb.vec2(1), pb.max(pb.fwidth(scope.$inputs.zVertexUV), pb.vec2(1e-4)));
|
|
94
|
-
scope.$l.screenPxRange = pb.max(pb.mul(0.5, pb.dot(scope.unitRange, scope.screenTexSize)), 1);
|
|
95
|
-
scope.$l.screenPxDistance = pb.mul(scope.screenPxRange, pb.sub(scope.sdf, 0.5));
|
|
96
|
-
scope.$l.alpha = pb.clamp(pb.add(scope.screenPxDistance, 0.5), 0, 1);
|
|
97
|
-
return pb.vec4(scope.zTextColor, scope.alpha);
|
|
98
|
-
}
|
|
99
|
-
onDispose() {
|
|
100
|
-
super.onDispose();
|
|
101
|
-
this._texture.dispose();
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
export { SDFSpriteMaterial };
|
|
106
|
-
//# sourceMappingURL=sprite_sdf.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sprite_sdf.js","sources":["../../src/material/sprite_sdf.ts"],"sourcesContent":["import type { BindGroup, PBInsideFunctionScope, Texture2D } from '@zephyr3d/device';\r\nimport type { Clonable, Immutable } from '@zephyr3d/base';\r\nimport { DRef, Vector3, Vector4 } from '@zephyr3d/base';\r\nimport type { DrawContext } from '../render/drawable';\r\nimport { SpriteMaterial } from './sprite';\r\nimport { fetchSampler } from '../utility/misc';\r\n\r\n/**\r\n * Single-channel signed-distance-field sprite material.\r\n *\r\n * @public\r\n */\r\nexport class SDFSpriteMaterial extends SpriteMaterial implements Clonable<SDFSpriteMaterial> {\r\n static FEATURE_SPRITE_TEXTURE = this.defineFeature();\r\n protected _texture: DRef<Texture2D>;\r\n protected _color: Vector3;\r\n protected _sdfParams: Vector4;\r\n constructor() {\r\n super();\r\n this._texture = new DRef();\r\n this._color = new Vector3(1, 1, 1);\r\n this._sdfParams = new Vector4(8, 1, 1, 0);\r\n this.blendMode = 'blend';\r\n }\r\n get spriteTexture() {\r\n return this._texture.get();\r\n }\r\n set spriteTexture(tex) {\r\n tex = tex ?? null;\r\n if (tex !== this._texture.get()) {\r\n this._texture.set(tex);\r\n this.useFeature(SDFSpriteMaterial.FEATURE_SPRITE_TEXTURE, !!tex);\r\n this.uniformChanged();\r\n }\r\n }\r\n get textColor(): Immutable<Vector3> {\r\n return this._color;\r\n }\r\n set textColor(value: Immutable<Vector3>) {\r\n if (!this._color.equalsTo(value)) {\r\n this._color.set(value);\r\n this.uniformChanged();\r\n }\r\n }\r\n get sdfDistanceRange() {\r\n return this._sdfParams.x;\r\n }\r\n set sdfDistanceRange(value: number) {\r\n if (this._sdfParams.x !== value) {\r\n this._sdfParams.x = value;\r\n this.uniformChanged();\r\n }\r\n }\r\n setSDFTextureInfo(distanceRange: number, width: number, height: number) {\r\n if (this._sdfParams.x !== distanceRange || this._sdfParams.y !== width || this._sdfParams.z !== height) {\r\n this._sdfParams.setXYZW(distanceRange, width, height, 0);\r\n this.uniformChanged();\r\n }\r\n }\r\n clone() {\r\n const other = new SDFSpriteMaterial();\r\n other.copyFrom(this);\r\n return other;\r\n }\r\n copyFrom(other: this) {\r\n super.copyFrom(other);\r\n this.spriteTexture = other.spriteTexture;\r\n this.textColor = other.textColor;\r\n this._sdfParams.set(other._sdfParams);\r\n }\r\n protected internalApplyUniforms(bindGroup: BindGroup, ctx: DrawContext) {\r\n if (this.needFragmentColor(ctx)) {\r\n bindGroup.setValue('zTextColor', this._color);\r\n bindGroup.setValue('zSDFParams', this._sdfParams);\r\n if (this.spriteTexture) {\r\n bindGroup.setTexture('zSpriteTexture', this.spriteTexture, fetchSampler('clamp_linear'));\r\n }\r\n }\r\n }\r\n protected internalSetupUniforms(scope: PBInsideFunctionScope) {\r\n const pb = scope.$builder;\r\n if (pb.shaderKind === 'fragment' && this.needFragmentColor()) {\r\n scope.zTextColor = pb.vec3().uniform(2);\r\n scope.zSDFParams = pb.vec4().uniform(2);\r\n if (this.spriteTexture) {\r\n scope.zSpriteTexture = pb.tex2D().uniform(2);\r\n }\r\n }\r\n }\r\n protected calcFragmentColor(scope: PBInsideFunctionScope) {\r\n const pb = scope.$builder;\r\n if (!this.spriteTexture) {\r\n return pb.vec4(scope.zTextColor, 1);\r\n }\r\n scope.$l.sdf = pb.textureSample(scope.zSpriteTexture, scope.$inputs.zVertexUV).r;\r\n scope.$l.unitRange = pb.div(\r\n pb.vec2(scope.zSDFParams.x),\r\n pb.max(pb.vec2(scope.zSDFParams.y, scope.zSDFParams.z), pb.vec2(1))\r\n );\r\n scope.$l.screenTexSize = pb.div(pb.vec2(1), pb.max(pb.fwidth(scope.$inputs.zVertexUV), pb.vec2(1e-4)));\r\n scope.$l.screenPxRange = pb.max(pb.mul(0.5, pb.dot(scope.unitRange, scope.screenTexSize)), 1);\r\n scope.$l.screenPxDistance = pb.mul(scope.screenPxRange, pb.sub(scope.sdf, 0.5));\r\n scope.$l.alpha = pb.clamp(pb.add(scope.screenPxDistance, 0.5), 0, 1);\r\n return pb.vec4(scope.zTextColor, scope.alpha);\r\n }\r\n protected onDispose() {\r\n super.onDispose();\r\n this._texture.dispose();\r\n }\r\n}\r\n"],"names":["SDFSpriteMaterial","SpriteMaterial","FEATURE_SPRITE_TEXTURE","defineFeature","_texture","_color","_sdfParams","DRef","Vector3","Vector4","blendMode","spriteTexture","get","tex","set","useFeature","uniformChanged","textColor","value","equalsTo","sdfDistanceRange","x","setSDFTextureInfo","distanceRange","width","height","y","z","setXYZW","clone","other","copyFrom","internalApplyUniforms","bindGroup","ctx","needFragmentColor","setValue","setTexture","fetchSampler","internalSetupUniforms","scope","pb","$builder","shaderKind","zTextColor","vec3","uniform","zSDFParams","vec4","zSpriteTexture","tex2D","calcFragmentColor","$l","sdf","textureSample","$inputs","zVertexUV","r","unitRange","div","vec2","max","screenTexSize","fwidth","screenPxRange","mul","dot","screenPxDistance","sub","alpha","clamp","add","onDispose","dispose"],"mappings":"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"}
|