@babylonjs/lite 0.1.1
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/_math-factory-C-QqW-Wi.js +55 -0
- package/_math-factory-C-QqW-Wi.js.map +1 -0
- package/add-block-CikX5gWy.js +6 -0
- package/add-block-CikX5gWy.js.map +1 -0
- package/alpha-test-fragment-CUiHCw7W.js +22 -0
- package/alpha-test-fragment-CUiHCw7W.js.map +1 -0
- package/ambient-occlusion-block-DForhWL3.js +77 -0
- package/ambient-occlusion-block-DForhWL3.js.map +1 -0
- package/anisotropy-block-D5fXH_OY.js +12 -0
- package/anisotropy-block-D5fXH_OY.js.map +1 -0
- package/anisotropy-fragment-HgasXS7l.js +89 -0
- package/anisotropy-fragment-HgasXS7l.js.map +1 -0
- package/arc-tan2-block-d8sWt_x0.js +12 -0
- package/arc-tan2-block-d8sWt_x0.js.map +1 -0
- package/assets/splat-sort-worker-Crg3CaCc.js.map +1 -0
- package/background-dds-skybox-yHTqabU3.js +221 -0
- package/background-dds-skybox-yHTqabU3.js.map +1 -0
- package/background-ground-DIw6D3qf.js +235 -0
- package/background-ground-DIw6D3qf.js.map +1 -0
- package/background-hdr-skybox-c4uuTmkP.js +179 -0
- package/background-hdr-skybox-c4uuTmkP.js.map +1 -0
- package/background-solid-skybox-DPGBpPbm.js +235 -0
- package/background-solid-skybox-DPGBpPbm.js.map +1 -0
- package/bake-local-matrix-Dfpd3b06.js +28 -0
- package/bake-local-matrix-Dfpd3b06.js.map +1 -0
- package/billboard-renderable-D8mlVGCd.js +242 -0
- package/billboard-renderable-D8mlVGCd.js.map +1 -0
- package/biplanar-block-DZnKuV81.js +115 -0
- package/biplanar-block-DZnKuV81.js.map +1 -0
- package/bones-block-D6IhqUVV.js +31 -0
- package/bones-block-D6IhqUVV.js.map +1 -0
- package/clamp-block-BdII67hT.js +21 -0
- package/clamp-block-BdII67hT.js.map +1 -0
- package/clearcoat-block-BGML4npi.js +12 -0
- package/clearcoat-block-BGML4npi.js.map +1 -0
- package/clearcoat-fragment-LCiG98Rf.js +256 -0
- package/clearcoat-fragment-LCiG98Rf.js.map +1 -0
- package/clip-planes-block-BPfFJrbf.js +26 -0
- package/clip-planes-block-BPfFJrbf.js.map +1 -0
- package/cloud-block-BeVrangc.js +90 -0
- package/cloud-block-BeVrangc.js.map +1 -0
- package/color-converter-block-CvwKiW4k.js +123 -0
- package/color-converter-block-CvwKiW4k.js.map +1 -0
- package/color-merger-CCu21ZII.js +57 -0
- package/color-merger-CCu21ZII.js.map +1 -0
- package/color-splitter-CGn1G4ow.js +33 -0
- package/color-splitter-CGn1G4ow.js.map +1 -0
- package/conditional-block-Cd2pbejI.js +51 -0
- package/conditional-block-Cd2pbejI.js.map +1 -0
- package/create-skeleton-C9JdIJnb.js +44 -0
- package/create-skeleton-C9JdIJnb.js.map +1 -0
- package/cross-block-DCrLwCpt.js +12 -0
- package/cross-block-DCrLwCpt.js.map +1 -0
- package/cubemap-skybox-material-DvXMVc4k.js +79 -0
- package/cubemap-skybox-material-DvXMVc4k.js.map +1 -0
- package/curve-block-BlJpXVYv.js +89 -0
- package/curve-block-BlJpXVYv.js.map +1 -0
- package/debug-block-D2pg4Yf6.js +14 -0
- package/debug-block-D2pg4Yf6.js.map +1 -0
- package/derivative-block-B8KjtaWs.js +20 -0
- package/derivative-block-B8KjtaWs.js.map +1 -0
- package/desaturate-block-C1RghNSB.js +15 -0
- package/desaturate-block-C1RghNSB.js.map +1 -0
- package/discard-block-B2jKjaEL.js +21 -0
- package/discard-block-B2jKjaEL.js.map +1 -0
- package/distance-block-3NkgFZ3f.js +16 -0
- package/distance-block-3NkgFZ3f.js.map +1 -0
- package/divide-block-ZyepIg_-.js +6 -0
- package/divide-block-ZyepIg_-.js.map +1 -0
- package/dot-block-VlfAC6cD.js +16 -0
- package/dot-block-VlfAC6cD.js.map +1 -0
- package/elbow-block-NEOiIxzO.js +10 -0
- package/elbow-block-NEOiIxzO.js.map +1 -0
- package/emissive-fragment-BnNvbBCw.js +39 -0
- package/emissive-fragment-BnNvbBCw.js.map +1 -0
- package/esm-shadow-view-DGKdF1NI.js +18 -0
- package/esm-shadow-view-DGKdF1NI.js.map +1 -0
- package/esm-shadow-view-DN9HIaM4.js +15 -0
- package/esm-shadow-view-DN9HIaM4.js.map +1 -0
- package/esm-shadow-view-Dk9NFtLq.js +15 -0
- package/esm-shadow-view-Dk9NFtLq.js.map +1 -0
- package/fog-block-DJ9hEolm.js +41 -0
- package/fog-block-DJ9hEolm.js.map +1 -0
- package/frag-coord-block-DzXfFgfV.js +25 -0
- package/frag-coord-block-DzXfFgfV.js.map +1 -0
- package/frag-depth-block-UQbeKP2D.js +34 -0
- package/frag-depth-block-UQbeKP2D.js.map +1 -0
- package/fragment-output-BOphkIeh.js +26 -0
- package/fragment-output-BOphkIeh.js.map +1 -0
- package/fresnel-block-DefHWeO-.js +20 -0
- package/fresnel-block-DefHWeO-.js.map +1 -0
- package/front-facing-0d6aiyrv.js +11 -0
- package/front-facing-0d6aiyrv.js.map +1 -0
- package/gaussian-splatting-pipeline-sh-DgJl7l56.js +500 -0
- package/gaussian-splatting-pipeline-sh-DgJl7l56.js.map +1 -0
- package/gltf-animation-D7uyTyO3.js +245 -0
- package/gltf-animation-D7uyTyO3.js.map +1 -0
- package/gltf-ext-anisotropy-CknJiJK8.js +22 -0
- package/gltf-ext-anisotropy-CknJiJK8.js.map +1 -0
- package/gltf-ext-basisu-CPg5kPrx.js +452 -0
- package/gltf-ext-basisu-CPg5kPrx.js.map +1 -0
- package/gltf-ext-clearcoat-CLH2SVph.js +31 -0
- package/gltf-ext-clearcoat-CLH2SVph.js.map +1 -0
- package/gltf-ext-dielectric-qHzlnvdl.js +105 -0
- package/gltf-ext-dielectric-qHzlnvdl.js.map +1 -0
- package/gltf-ext-emissive-strength-nzGZXZVK.js +19 -0
- package/gltf-ext-emissive-strength-nzGZXZVK.js.map +1 -0
- package/gltf-ext-iridescence-C6bq7jiM.js +26 -0
- package/gltf-ext-iridescence-C6bq7jiM.js.map +1 -0
- package/gltf-ext-node-visibility-MafA9ot2.js +25 -0
- package/gltf-ext-node-visibility-MafA9ot2.js.map +1 -0
- package/gltf-ext-orm-CT18G_vQ.js +33 -0
- package/gltf-ext-orm-CT18G_vQ.js.map +1 -0
- package/gltf-ext-quantization-CpZyLDIz.js +94 -0
- package/gltf-ext-quantization-CpZyLDIz.js.map +1 -0
- package/gltf-ext-sheen-BgIxUzyZ.js +25 -0
- package/gltf-ext-sheen-BgIxUzyZ.js.map +1 -0
- package/gltf-ext-spec-gloss-D0LJLBUM.js +24 -0
- package/gltf-ext-spec-gloss-D0LJLBUM.js.map +1 -0
- package/gltf-ext-unlit-D2ANui0V.js +16 -0
- package/gltf-ext-unlit-D2ANui0V.js.map +1 -0
- package/gltf-ext-uv-transform-CE_-T1Tr.js +38 -0
- package/gltf-ext-uv-transform-CE_-T1Tr.js.map +1 -0
- package/gltf-feature-animation-pointer-BjpwOOqo.js +88 -0
- package/gltf-feature-animation-pointer-BjpwOOqo.js.map +1 -0
- package/gltf-feature-animations-CCizegp8.js +15 -0
- package/gltf-feature-animations-CCizegp8.js.map +1 -0
- package/gltf-feature-draco-yGSMGTE3.js +124 -0
- package/gltf-feature-draco-yGSMGTE3.js.map +1 -0
- package/gltf-feature-gpu-instancing-2e_CFQnl.js +151 -0
- package/gltf-feature-gpu-instancing-2e_CFQnl.js.map +1 -0
- package/gltf-feature-lights-punctual-DDDg4j0U.js +71 -0
- package/gltf-feature-lights-punctual-DDDg4j0U.js.map +1 -0
- package/gltf-feature-meshopt-Des96YFI.js +84 -0
- package/gltf-feature-meshopt-Des96YFI.js.map +1 -0
- package/gltf-feature-morph-CKCw6tkX.js +29 -0
- package/gltf-feature-morph-CKCw6tkX.js.map +1 -0
- package/gltf-feature-skeleton-D8hWLqi2.js +36 -0
- package/gltf-feature-skeleton-D8hWLqi2.js.map +1 -0
- package/gltf-feature-variants-Ds6v9byg.js +17 -0
- package/gltf-feature-variants-Ds6v9byg.js.map +1 -0
- package/gltf-feature-xmp-BUfq_IVG.js +15 -0
- package/gltf-feature-xmp-BUfq_IVG.js.map +1 -0
- package/gltf-glb-parser-D6UZWFuC.js +27 -0
- package/gltf-glb-parser-D6UZWFuC.js.map +1 -0
- package/gltf-interleave-DGnUlz28.js +241 -0
- package/gltf-interleave-DGnUlz28.js.map +1 -0
- package/gltf-pbr-builder-ext-BFOxOCnQ.js +85 -0
- package/gltf-pbr-builder-ext-BFOxOCnQ.js.map +1 -0
- package/gltf-variants-DFbr8EES.js +88 -0
- package/gltf-variants-DFbr8EES.js.map +1 -0
- package/gradient-block-DL_60sDc.js +50 -0
- package/gradient-block-DL_60sDc.js.map +1 -0
- package/gs-picking-pipeline-DzfMASL9.js +280 -0
- package/gs-picking-pipeline-DzfMASL9.js.map +1 -0
- package/height-to-normal-block-DhPHkDFg.js +65 -0
- package/height-to-normal-block-DhPHkDFg.js.map +1 -0
- package/ibl-fragment-DqQVi8k0.js +91 -0
- package/ibl-fragment-DqQVi8k0.js.map +1 -0
- package/ibl-skybox-wgsl-DCah0kWV.js +13 -0
- package/ibl-skybox-wgsl-DCah0kWV.js.map +1 -0
- package/image-processing-block-DwrhhmuF.js +40 -0
- package/image-processing-block-DwrhhmuF.js.map +1 -0
- package/image-source-BuMJgd9-.js +17 -0
- package/image-source-BuMJgd9-.js.map +1 -0
- package/index-C8HOR2sB.js +19222 -0
- package/index-C8HOR2sB.js.map +1 -0
- package/index.d.ts +4611 -0
- package/index.js +309 -0
- package/index.js.map +1 -0
- package/input-block-DgAJBzN_.js +109 -0
- package/input-block-DgAJBzN_.js.map +1 -0
- package/instances-block-BaSSiz8m.js +12 -0
- package/instances-block-BaSSiz8m.js.map +1 -0
- package/iridescence-block-B0pRFoOU.js +67 -0
- package/iridescence-block-B0pRFoOU.js.map +1 -0
- package/iridescence-fragment-Gymp7or5.js +243 -0
- package/iridescence-fragment-Gymp7or5.js.map +1 -0
- package/length-block-ChOkeiHR.js +11 -0
- package/length-block-ChOkeiHR.js.map +1 -0
- package/lerp-block-DjI2SfmI.js +18 -0
- package/lerp-block-DjI2SfmI.js.map +1 -0
- package/light-block-B11ew7FA.js +123 -0
- package/light-block-B11ew7FA.js.map +1 -0
- package/light-information-VJbW0jbs.js +19 -0
- package/light-information-VJbW0jbs.js.map +1 -0
- package/loop-block-Bb23EOMb.js +71 -0
- package/loop-block-Bb23EOMb.js.map +1 -0
- package/manifold-AS8POaOr.js +3022 -0
- package/manifold-AS8POaOr.js.map +1 -0
- package/manifold-RCa7RkKz.js +5 -0
- package/manifold-RCa7RkKz.js.map +1 -0
- package/matrix-blocks-acWn_V6g.js +51 -0
- package/matrix-blocks-acWn_V6g.js.map +1 -0
- package/max-block-CjFgljZ7.js +6 -0
- package/max-block-CjFgljZ7.js.map +1 -0
- package/mesh-attribute-exists-block-BfK8UiSL.js +44 -0
- package/mesh-attribute-exists-block-BfK8UiSL.js.map +1 -0
- package/mesh-features-BLENkYVt.js +341 -0
- package/mesh-features-BLENkYVt.js.map +1 -0
- package/min-block-CHtBngNl.js +6 -0
- package/min-block-CHtBngNl.js.map +1 -0
- package/mod-block-Ceizv8Y7.js +6 -0
- package/mod-block-Ceizv8Y7.js.map +1 -0
- package/morph-fragment-DOVo70gP.js +59 -0
- package/morph-fragment-DOVo70gP.js.map +1 -0
- package/morph-targets-55z342ZB.js +35 -0
- package/morph-targets-55z342ZB.js.map +1 -0
- package/multilight-wgsl-BGyiIOp3.js +112 -0
- package/multilight-wgsl-BGyiIOp3.js.map +1 -0
- package/multiply-block-DaXLJ7Ud.js +6 -0
- package/multiply-block-DaXLJ7Ud.js.map +1 -0
- package/negate-block-9CSLc5pM.js +6 -0
- package/negate-block-9CSLc5pM.js.map +1 -0
- package/nlerp-block-BNK1adIb.js +21 -0
- package/nlerp-block-BNK1adIb.js.map +1 -0
- package/node-env-BPZXZzBf.js +39 -0
- package/node-env-BPZXZzBf.js.map +1 -0
- package/node-registry-DwgC4yth.js +190 -0
- package/node-registry-DwgC4yth.js.map +1 -0
- package/node-registry-extra-advanced-2DJVt67-.js +45 -0
- package/node-registry-extra-advanced-2DJVt67-.js.map +1 -0
- package/node-registry-extra-compat-Dhrw8fDQ.js +41 -0
- package/node-registry-extra-compat-Dhrw8fDQ.js.map +1 -0
- package/node-registry-extra-math-CsAHvIZo.js +49 -0
- package/node-registry-extra-math-CsAHvIZo.js.map +1 -0
- package/node-registry-extra-procedural-5pLQ3Bhz.js +45 -0
- package/node-registry-extra-procedural-5pLQ3Bhz.js.map +1 -0
- package/node-renderable-DlLIdBmd.js +269 -0
- package/node-renderable-DlLIdBmd.js.map +1 -0
- package/node-shadow-DKrcqmNg.js +122 -0
- package/node-shadow-DKrcqmNg.js.map +1 -0
- package/node-snippet-DUMm9qEO.js +22 -0
- package/node-snippet-DUMm9qEO.js.map +1 -0
- package/normal-blend-block-BfH_nBoj.js +29 -0
- package/normal-blend-block-BfH_nBoj.js.map +1 -0
- package/normal-map-fragment-DpsIXrJf.js +38 -0
- package/normal-map-fragment-DpsIXrJf.js.map +1 -0
- package/normalize-block-F2bLNj9K.js +6 -0
- package/normalize-block-F2bLNj9K.js.map +1 -0
- package/oneminus-block-BP9x4Dc3.js +6 -0
- package/oneminus-block-BP9x4Dc3.js.map +1 -0
- package/opposite-block-Cnqmm-lH.js +6 -0
- package/opposite-block-Cnqmm-lH.js.map +1 -0
- package/package.json +26 -0
- package/panner-block-BwMQq-6Y.js +13 -0
- package/panner-block-BwMQq-6Y.js.map +1 -0
- package/parse-camera-DM3oJJeT.js +23 -0
- package/parse-camera-DM3oJJeT.js.map +1 -0
- package/pbr-aces-wgsl-HpiQHGN_.js +13 -0
- package/pbr-aces-wgsl-HpiQHGN_.js.map +1 -0
- package/pbr-metallic-roughness-block-full-6vMm1Jk6.js +763 -0
- package/pbr-metallic-roughness-block-full-6vMm1Jk6.js.map +1 -0
- package/pbr-metallic-roughness-block-h_KAOZrW.js +104 -0
- package/pbr-metallic-roughness-block-h_KAOZrW.js.map +1 -0
- package/pbr-mr-helper-core-CIwm-T1G.js +237 -0
- package/pbr-mr-helper-core-CIwm-T1G.js.map +1 -0
- package/pbr-refraction-DGmMSa2v.js +17 -0
- package/pbr-refraction-DGmMSa2v.js.map +1 -0
- package/pbr-renderable-BJxUtPBb.js +961 -0
- package/pbr-renderable-BJxUtPBb.js.map +1 -0
- package/pbr-shadow-fragment-LO9SlbJj.js +14 -0
- package/pbr-shadow-fragment-LO9SlbJj.js.map +1 -0
- package/pbr-template-ext-8q7BcTDf.js +88 -0
- package/pbr-template-ext-8q7BcTDf.js.map +1 -0
- package/pbr-tracking-B3alzn91.js +31 -0
- package/pbr-tracking-B3alzn91.js.map +1 -0
- package/pbr-transmission-ext-BxW4CEGu.js +581 -0
- package/pbr-transmission-ext-BxW4CEGu.js.map +1 -0
- package/perturb-normal-0Q8EM9ig.js +39 -0
- package/perturb-normal-0Q8EM9ig.js.map +1 -0
- package/posterize-block-DfdKsbEf.js +28 -0
- package/posterize-block-DfdKsbEf.js.map +1 -0
- package/pow-block-DI5ICzhc.js +13 -0
- package/pow-block-DI5ICzhc.js.map +1 -0
- package/random-number-block-2OyRYljF.js +15 -0
- package/random-number-block-2OyRYljF.js.map +1 -0
- package/reciprocal-block-Ck3CW-j-.js +14 -0
- package/reciprocal-block-Ck3CW-j-.js.map +1 -0
- package/reflect-block-CizpzrX4.js +12 -0
- package/reflect-block-CizpzrX4.js.map +1 -0
- package/reflectance-fragment-BCrgPmrt.js +143 -0
- package/reflectance-fragment-BCrgPmrt.js.map +1 -0
- package/reflection-block-DqcwyYqr.js +12 -0
- package/reflection-block-DqcwyYqr.js.map +1 -0
- package/reflection-texture-base-block-1xmJ0HDj.js +10 -0
- package/reflection-texture-base-block-1xmJ0HDj.js.map +1 -0
- package/reflection-texture-block-C3QtzoV8.js +60 -0
- package/reflection-texture-block-C3QtzoV8.js.map +1 -0
- package/refract-block-HHiAk-7U.js +13 -0
- package/refract-block-HHiAk-7U.js.map +1 -0
- package/refraction-block-U8y6XiXs.js +11 -0
- package/refraction-block-U8y6XiXs.js.map +1 -0
- package/refraction-dispersion-wgsl-DdQCyyO1.js +16 -0
- package/refraction-dispersion-wgsl-DdQCyyO1.js.map +1 -0
- package/remap-block-DxK1W1vp.js +27 -0
- package/remap-block-DxK1W1vp.js.map +1 -0
- package/replace-color-block-1m--hiru.js +17 -0
- package/replace-color-block-1m--hiru.js.map +1 -0
- package/rgbd-decode-DCvzUYeI.js +110 -0
- package/rgbd-decode-DCvzUYeI.js.map +1 -0
- package/rotate2d-block-nEe1N2MJ.js +15 -0
- package/rotate2d-block-nEe1N2MJ.js.map +1 -0
- package/scale-block-C5Z8159G.js +13 -0
- package/scale-block-C5Z8159G.js.map +1 -0
- package/scene-material-swap-C2ykv55W.js +34 -0
- package/scene-material-swap-C2ykv55W.js.map +1 -0
- package/screen-size-block-BVNnOvE8.js +21 -0
- package/screen-size-block-BVNnOvE8.js.map +1 -0
- package/screen-space-block-CwaxdfSe.js +28 -0
- package/screen-space-block-CwaxdfSe.js.map +1 -0
- package/shader-renderable-D-6796KR.js +531 -0
- package/shader-renderable-D-6796KR.js.map +1 -0
- package/shadow-fragment-core-DHN2G6FI.js +110 -0
- package/shadow-fragment-core-DHN2G6FI.js.map +1 -0
- package/shadow-map-CQNQC-Fw.js +13 -0
- package/shadow-map-CQNQC-Fw.js.map +1 -0
- package/sheen-block-BugfJqK3.js +12 -0
- package/sheen-block-BugfJqK3.js.map +1 -0
- package/sheen-fragment-Dze2f7XJ.js +215 -0
- package/sheen-fragment-Dze2f7XJ.js.map +1 -0
- package/simplex-perlin-3d-block-CcMtofzV.js +58 -0
- package/simplex-perlin-3d-block-CcMtofzV.js.map +1 -0
- package/singlelight-directional-wgsl-CmUDZxwz.js +39 -0
- package/singlelight-directional-wgsl-CmUDZxwz.js.map +1 -0
- package/singlelight-hemispheric-wgsl-t-83IP_s.js +40 -0
- package/singlelight-hemispheric-wgsl-t-83IP_s.js.map +1 -0
- package/singlelight-point-wgsl-CLzULIYV.js +45 -0
- package/singlelight-point-wgsl-CLzULIYV.js.map +1 -0
- package/singlelight-spot-wgsl-DEEUrfVM.js +47 -0
- package/singlelight-spot-wgsl-DEEUrfVM.js.map +1 -0
- package/skeleton-fragment-B_XlFbtx.js +71 -0
- package/skeleton-fragment-B_XlFbtx.js.map +1 -0
- package/skybox-renderable-DDwzu-PT.js +92 -0
- package/skybox-renderable-DDwzu-PT.js.map +1 -0
- package/skybox.vertex-DJgi072W.js +5 -0
- package/skybox.vertex-DJgi072W.js.map +1 -0
- package/smoothstep-block-Di4t37x-.js +15 -0
- package/smoothstep-block-Di4t37x-.js.map +1 -0
- package/splat-ply-compressed-BahdBG1r.js +394 -0
- package/splat-ply-compressed-BahdBG1r.js.map +1 -0
- package/standard-renderable-GjxL9xSf.js +636 -0
- package/standard-renderable-GjxL9xSf.js.map +1 -0
- package/std-ambient-fragment-BoUsD06w.js +37 -0
- package/std-ambient-fragment-BoUsD06w.js.map +1 -0
- package/std-cube-reflection-fragment-ulqc3bsP.js +31 -0
- package/std-cube-reflection-fragment-ulqc3bsP.js.map +1 -0
- package/std-emissive-fragment-DNGj1HdQ.js +40 -0
- package/std-emissive-fragment-DNGj1HdQ.js.map +1 -0
- package/std-lightmap-fragment-Bqj89aIe.js +37 -0
- package/std-lightmap-fragment-Bqj89aIe.js.map +1 -0
- package/std-opacity-fragment-KuPh5N2Z.js +37 -0
- package/std-opacity-fragment-KuPh5N2Z.js.map +1 -0
- package/std-reflection-fragment-BA5Ghn_M.js +57 -0
- package/std-reflection-fragment-BA5Ghn_M.js.map +1 -0
- package/std-shadow-fragment-FNQfrJuC.js +8 -0
- package/std-shadow-fragment-FNQfrJuC.js.map +1 -0
- package/std-specular-fragment-CE-6scqd.js +37 -0
- package/std-specular-fragment-CE-6scqd.js.map +1 -0
- package/std-tracking-CNKZ-hJN.js +15 -0
- package/std-tracking-CNKZ-hJN.js.map +1 -0
- package/step-block-BkywzTYm.js +13 -0
- package/step-block-BkywzTYm.js.map +1 -0
- package/storage-read-block-BdzhJfln.js +25 -0
- package/storage-read-block-BdzhJfln.js.map +1 -0
- package/storage-write-block-DjLKZ0Ro.js +11 -0
- package/storage-write-block-DjLKZ0Ro.js.map +1 -0
- package/subsurface-block-CBhxT9ui.js +12 -0
- package/subsurface-block-CBhxT9ui.js.map +1 -0
- package/subsurface-fragment-liM3y2-P.js +158 -0
- package/subsurface-fragment-liM3y2-P.js.map +1 -0
- package/subtract-block-NPfKvzQP.js +6 -0
- package/subtract-block-NPfKvzQP.js.map +1 -0
- package/swapchain-overlay-DcCSFDp7.js +35 -0
- package/swapchain-overlay-DcCSFDp7.js.map +1 -0
- package/tbn-block-ByOI6Y43.js +43 -0
- package/tbn-block-ByOI6Y43.js.map +1 -0
- package/teleport-in-block-BMa17cqq.js +10 -0
- package/teleport-in-block-BMa17cqq.js.map +1 -0
- package/teleport-out-block-5AkB25H6.js +19 -0
- package/teleport-out-block-5AkB25H6.js.map +1 -0
- package/texture-block-rr21KIL_.js +70 -0
- package/texture-block-rr21KIL_.js.map +1 -0
- package/thin-instance-fragment-hsv-RyDs.js +69 -0
- package/thin-instance-fragment-hsv-RyDs.js.map +1 -0
- package/thin-instance-gpu-C9Gv_Z1w.js +62 -0
- package/thin-instance-gpu-C9Gv_Z1w.js.map +1 -0
- package/tracking-primitives-wgdBY85t.js +82 -0
- package/tracking-primitives-wgdBY85t.js.map +1 -0
- package/transform-block-DbRph9JI.js +32 -0
- package/transform-block-DbRph9JI.js.map +1 -0
- package/trigonometry-block-BYQcTHiD.js +36 -0
- package/trigonometry-block-BYQcTHiD.js.map +1 -0
- package/triplanar-block-BZHkD9hX.js +148 -0
- package/triplanar-block-BZHkD9hX.js.map +1 -0
- package/twirl-block-78WtdiBd.js +39 -0
- package/twirl-block-78WtdiBd.js.map +1 -0
- package/unlit-fragment-BIlhJpz6.js +43 -0
- package/unlit-fragment-BIlhJpz6.js.map +1 -0
- package/uv-transform-fragment-hYujGpZg.js +47 -0
- package/uv-transform-fragment-hYujGpZg.js.map +1 -0
- package/vector-merger-CrW-ONB0.js +43 -0
- package/vector-merger-CrW-ONB0.js.map +1 -0
- package/vector-splitter-BoJuHrAU.js +34 -0
- package/vector-splitter-BoJuHrAU.js.map +1 -0
- package/vertex-output-Cvft64y0.js +14 -0
- package/vertex-output-Cvft64y0.js.map +1 -0
- package/view-direction-CWVucfnT.js +12 -0
- package/view-direction-CWVucfnT.js.map +1 -0
- package/voronoi-noise-block-iNQxa_Ls.js +43 -0
- package/voronoi-noise-block-iNQxa_Ls.js.map +1 -0
- package/wave-block-CY_mk1ec.js +41 -0
- package/wave-block-CY_mk1ec.js.map +1 -0
- package/wgsl-helpers-DyzNzCeE.js +48 -0
- package/wgsl-helpers-DyzNzCeE.js.map +1 -0
- package/worley-noise-3d-block-CyR2-k4s.js +58 -0
- package/worley-noise-3d-block-CyR2-k4s.js.map +1 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
const emitter = {
|
|
2
|
+
className: "ViewDirectionBlock",
|
|
3
|
+
emit(block, _outputName, stage, state, ctx) {
|
|
4
|
+
const wp = ctx.cast(ctx.resolve(block, "worldPosition", stage, state), "vec3f").expr;
|
|
5
|
+
const cp = ctx.cast(ctx.resolve(block, "cameraPosition", stage, state), "vec3f").expr;
|
|
6
|
+
return { expr: `normalize(${cp} - ${wp})`, type: "vec3f" };
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
export {
|
|
10
|
+
emitter
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=view-direction-CWVucfnT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-direction-CWVucfnT.js","sources":["../src/material/node/blocks/view-direction.ts"],"sourcesContent":["/** ViewDirectionBlock — normalized direction from worldPos to cameraPosition.\n *\n * Inputs:\n * - `worldPosition`: vec3/vec4 — we take .xyz if vec4.\n * - `cameraPosition`: vec3.\n */\n\nimport type { BlockEmitter } from \"../node-types.js\";\n\nexport const emitter: BlockEmitter = {\n className: \"ViewDirectionBlock\",\n emit(block, _outputName, stage, state, ctx) {\n const wp = ctx.cast(ctx.resolve(block, \"worldPosition\", stage, state), \"vec3f\").expr;\n const cp = ctx.cast(ctx.resolve(block, \"cameraPosition\", stage, state), \"vec3f\").expr;\n return { expr: `normalize(${cp} - ${wp})`, type: \"vec3f\" };\n },\n};\n"],"names":[],"mappings":"AASO,MAAM,UAAwB;AAAA,EACjC,WAAW;AAAA,EACX,KAAK,OAAO,aAAa,OAAO,OAAO,KAAK;AACxC,UAAM,KAAK,IAAI,KAAK,IAAI,QAAQ,OAAO,iBAAiB,OAAO,KAAK,GAAG,OAAO,EAAE;AAChF,UAAM,KAAK,IAAI,KAAK,IAAI,QAAQ,OAAO,kBAAkB,OAAO,KAAK,GAAG,OAAO,EAAE;AACjF,WAAO,EAAE,MAAM,aAAa,EAAE,MAAM,EAAE,KAAK,MAAM,QAAA;AAAA,EACrD;AACJ;"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
const emitter = {
|
|
2
|
+
className: "VoronoiNoiseBlock",
|
|
3
|
+
emit(block, outputName, stage, state, ctx) {
|
|
4
|
+
const seed = ctx.cast(ctx.resolve(block, "seed", stage, state), "vec2f");
|
|
5
|
+
const offset = ctx.cast(ctx.resolve(block, "offset", stage, state), "f32");
|
|
6
|
+
const density = ctx.cast(ctx.resolve(block, "density", stage, state), "f32");
|
|
7
|
+
state[stage].helpers.set(
|
|
8
|
+
"nme_voronoi",
|
|
9
|
+
`fn nme_voronoiRandom(pIn: vec2<f32>) -> vec2<f32> {
|
|
10
|
+
let p = vec2<f32>(dot(pIn, vec2<f32>(127.1, 311.7)), dot(pIn, vec2<f32>(269.5, 183.3)));
|
|
11
|
+
return fract(sin(p) * 18.5453);
|
|
12
|
+
}
|
|
13
|
+
fn nme_voronoi(seed: vec2<f32>, offset: f32, density: f32) -> vec2<f32> {
|
|
14
|
+
let n = floor(seed * density);
|
|
15
|
+
let f = fract(seed * density);
|
|
16
|
+
var outValue = 0.0;
|
|
17
|
+
var cells = 0.0;
|
|
18
|
+
var m = vec3<f32>(8.0);
|
|
19
|
+
for (var j = -1; j <= 1; j = j + 1) {
|
|
20
|
+
for (var i = -1; i <= 1; i = i + 1) {
|
|
21
|
+
let g = vec2<f32>(f32(i), f32(j));
|
|
22
|
+
let o = nme_voronoiRandom(n + g);
|
|
23
|
+
let r = g - f + (vec2<f32>(0.5) + 0.5 * sin(vec2<f32>(offset) + 6.2831 * o));
|
|
24
|
+
let d = dot(r, r);
|
|
25
|
+
if (d < m.x) {
|
|
26
|
+
m = vec3<f32>(d, o);
|
|
27
|
+
outValue = m.x;
|
|
28
|
+
cells = m.y;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return vec2<f32>(outValue, cells);
|
|
33
|
+
}`
|
|
34
|
+
);
|
|
35
|
+
const temp = ctx.temp(state, "voronoi");
|
|
36
|
+
state[stage].body.push(`let ${temp} = nme_voronoi(${seed.expr}, ${offset.expr}, ${density.expr});`);
|
|
37
|
+
return { expr: outputName === "cells" ? `${temp}.y` : `${temp}.x`, type: "f32" };
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
export {
|
|
41
|
+
emitter
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=voronoi-noise-block-iNQxa_Ls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voronoi-noise-block-iNQxa_Ls.js","sources":["../src/material/node/blocks/voronoi-noise-block.ts"],"sourcesContent":["import type { BlockEmitter } from \"../node-types.js\";\n\nexport const emitter: BlockEmitter = {\n className: \"VoronoiNoiseBlock\",\n emit(block, outputName, stage, state, ctx) {\n const seed = ctx.cast(ctx.resolve(block, \"seed\", stage, state), \"vec2f\");\n const offset = ctx.cast(ctx.resolve(block, \"offset\", stage, state), \"f32\");\n const density = ctx.cast(ctx.resolve(block, \"density\", stage, state), \"f32\");\n state[stage].helpers.set(\n \"nme_voronoi\",\n `fn nme_voronoiRandom(pIn: vec2<f32>) -> vec2<f32> {\nlet p = vec2<f32>(dot(pIn, vec2<f32>(127.1, 311.7)), dot(pIn, vec2<f32>(269.5, 183.3)));\nreturn fract(sin(p) * 18.5453);\n}\nfn nme_voronoi(seed: vec2<f32>, offset: f32, density: f32) -> vec2<f32> {\nlet n = floor(seed * density);\nlet f = fract(seed * density);\nvar outValue = 0.0;\nvar cells = 0.0;\nvar m = vec3<f32>(8.0);\nfor (var j = -1; j <= 1; j = j + 1) {\nfor (var i = -1; i <= 1; i = i + 1) {\nlet g = vec2<f32>(f32(i), f32(j));\nlet o = nme_voronoiRandom(n + g);\nlet r = g - f + (vec2<f32>(0.5) + 0.5 * sin(vec2<f32>(offset) + 6.2831 * o));\nlet d = dot(r, r);\nif (d < m.x) {\nm = vec3<f32>(d, o);\noutValue = m.x;\ncells = m.y;\n}\n}\n}\nreturn vec2<f32>(outValue, cells);\n}`\n );\n const temp = ctx.temp(state, \"voronoi\");\n state[stage].body.push(`let ${temp} = nme_voronoi(${seed.expr}, ${offset.expr}, ${density.expr});`);\n return { expr: outputName === \"cells\" ? `${temp}.y` : `${temp}.x`, type: \"f32\" };\n },\n};\n"],"names":[],"mappings":"AAEO,MAAM,UAAwB;AAAA,EACjC,WAAW;AAAA,EACX,KAAK,OAAO,YAAY,OAAO,OAAO,KAAK;AACvC,UAAM,OAAO,IAAI,KAAK,IAAI,QAAQ,OAAO,QAAQ,OAAO,KAAK,GAAG,OAAO;AACvE,UAAM,SAAS,IAAI,KAAK,IAAI,QAAQ,OAAO,UAAU,OAAO,KAAK,GAAG,KAAK;AACzE,UAAM,UAAU,IAAI,KAAK,IAAI,QAAQ,OAAO,WAAW,OAAO,KAAK,GAAG,KAAK;AAC3E,UAAM,KAAK,EAAE,QAAQ;AAAA,MACjB;AAAA,MACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA;AA0BJ,UAAM,OAAO,IAAI,KAAK,OAAO,SAAS;AACtC,UAAM,KAAK,EAAE,KAAK,KAAK,OAAO,IAAI,kBAAkB,KAAK,IAAI,KAAK,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI;AAClG,WAAO,EAAE,MAAM,eAAe,UAAU,GAAG,IAAI,OAAO,GAAG,IAAI,MAAM,MAAM,MAAA;AAAA,EAC7E;AACJ;"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
function scalar(type, value) {
|
|
2
|
+
if (type === "f32") {
|
|
3
|
+
return value;
|
|
4
|
+
}
|
|
5
|
+
if (type === "vec2f") {
|
|
6
|
+
return `vec2<f32>(${value})`;
|
|
7
|
+
}
|
|
8
|
+
if (type === "vec3f") {
|
|
9
|
+
return `vec3<f32>(${value})`;
|
|
10
|
+
}
|
|
11
|
+
if (type === "vec4f") {
|
|
12
|
+
return `vec4<f32>(${value})`;
|
|
13
|
+
}
|
|
14
|
+
throw new Error(`NodeMaterial: WaveBlock does not support ${type}`);
|
|
15
|
+
}
|
|
16
|
+
const emitter = {
|
|
17
|
+
className: "WaveBlock",
|
|
18
|
+
emit(block, _outputName, stage, state, ctx) {
|
|
19
|
+
const input = ctx.resolve(block, "input", stage, state);
|
|
20
|
+
const v = input.expr;
|
|
21
|
+
const half = scalar(input.type, "0.5");
|
|
22
|
+
const one = scalar(input.type, "1.0");
|
|
23
|
+
const two = scalar(input.type, "2.0");
|
|
24
|
+
const rawKind = block.serialized.kind;
|
|
25
|
+
const kind = typeof rawKind === "number" ? rawKind : 0;
|
|
26
|
+
if (kind === 0) {
|
|
27
|
+
return { expr: `(${v} - floor(${half} + ${v}))`, type: input.type };
|
|
28
|
+
}
|
|
29
|
+
if (kind === 1) {
|
|
30
|
+
return { expr: `(${one} - ${two} * round(fract(${v})))`, type: input.type };
|
|
31
|
+
}
|
|
32
|
+
if (kind === 2) {
|
|
33
|
+
return { expr: `(${two} * abs(${two} * (${v} - floor(${half} + ${v}))) - ${one})`, type: input.type };
|
|
34
|
+
}
|
|
35
|
+
throw new Error(`NodeMaterial: unknown WaveBlock kind ${kind}`);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
export {
|
|
39
|
+
emitter
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=wave-block-CY_mk1ec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wave-block-CY_mk1ec.js","sources":["../src/material/node/blocks/wave-block.ts"],"sourcesContent":["import type { BlockEmitter, NodeValueType } from \"../node-types.js\";\n\nfunction scalar(type: NodeValueType, value: string): string {\n if (type === \"f32\") {\n return value;\n }\n if (type === \"vec2f\") {\n return `vec2<f32>(${value})`;\n }\n if (type === \"vec3f\") {\n return `vec3<f32>(${value})`;\n }\n if (type === \"vec4f\") {\n return `vec4<f32>(${value})`;\n }\n throw new Error(`NodeMaterial: WaveBlock does not support ${type}`);\n}\n\nexport const emitter: BlockEmitter = {\n className: \"WaveBlock\",\n emit(block, _outputName, stage, state, ctx) {\n const input = ctx.resolve(block, \"input\", stage, state);\n const v = input.expr;\n const half = scalar(input.type, \"0.5\");\n const one = scalar(input.type, \"1.0\");\n const two = scalar(input.type, \"2.0\");\n const rawKind = block.serialized.kind;\n const kind = typeof rawKind === \"number\" ? rawKind : 0;\n if (kind === 0) {\n return { expr: `(${v} - floor(${half} + ${v}))`, type: input.type };\n }\n if (kind === 1) {\n return { expr: `(${one} - ${two} * round(fract(${v})))`, type: input.type };\n }\n if (kind === 2) {\n return { expr: `(${two} * abs(${two} * (${v} - floor(${half} + ${v}))) - ${one})`, type: input.type };\n }\n throw new Error(`NodeMaterial: unknown WaveBlock kind ${kind}`);\n },\n};\n"],"names":[],"mappings":"AAEA,SAAS,OAAO,MAAqB,OAAuB;AACxD,MAAI,SAAS,OAAO;AAChB,WAAO;AAAA,EACX;AACA,MAAI,SAAS,SAAS;AAClB,WAAO,aAAa,KAAK;AAAA,EAC7B;AACA,MAAI,SAAS,SAAS;AAClB,WAAO,aAAa,KAAK;AAAA,EAC7B;AACA,MAAI,SAAS,SAAS;AAClB,WAAO,aAAa,KAAK;AAAA,EAC7B;AACA,QAAM,IAAI,MAAM,4CAA4C,IAAI,EAAE;AACtE;AAEO,MAAM,UAAwB;AAAA,EACjC,WAAW;AAAA,EACX,KAAK,OAAO,aAAa,OAAO,OAAO,KAAK;AACxC,UAAM,QAAQ,IAAI,QAAQ,OAAO,SAAS,OAAO,KAAK;AACtD,UAAM,IAAI,MAAM;AAChB,UAAM,OAAO,OAAO,MAAM,MAAM,KAAK;AACrC,UAAM,MAAM,OAAO,MAAM,MAAM,KAAK;AACpC,UAAM,MAAM,OAAO,MAAM,MAAM,KAAK;AACpC,UAAM,UAAU,MAAM,WAAW;AACjC,UAAM,OAAO,OAAO,YAAY,WAAW,UAAU;AACrD,QAAI,SAAS,GAAG;AACZ,aAAO,EAAE,MAAM,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,MAAM,MAAM,MAAM,KAAA;AAAA,IACjE;AACA,QAAI,SAAS,GAAG;AACZ,aAAO,EAAE,MAAM,IAAI,GAAG,MAAM,GAAG,kBAAkB,CAAC,OAAO,MAAM,MAAM,KAAA;AAAA,IACzE;AACA,QAAI,SAAS,GAAG;AACZ,aAAO,EAAE,MAAM,IAAI,GAAG,UAAU,GAAG,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC,SAAS,GAAG,KAAK,MAAM,MAAM,KAAA;AAAA,IACnG;AACA,UAAM,IAAI,MAAM,wCAAwC,IAAI,EAAE;AAAA,EAClE;AACJ;"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
const WGSL_PERTURB_NORMAL = `
|
|
2
|
+
fn perturbNormal(vNormalW: vec3<f32>, positionW: vec3<f32>, uv: vec2<f32>, bumpScale: f32) -> vec3<f32> {
|
|
3
|
+
let normalSample = textureSample(bT, bS, uv).rgb * 2.0 - 1.0;
|
|
4
|
+
let N = normalize(vNormalW) * bumpScale;
|
|
5
|
+
let dp1 = dpdx(positionW);
|
|
6
|
+
let dp2 = -dpdy(positionW);
|
|
7
|
+
let duv1 = dpdx(uv);
|
|
8
|
+
let duv2 = -dpdy(uv);
|
|
9
|
+
let dp2perp = cross(dp2, N);
|
|
10
|
+
let dp1perp = cross(N, dp1);
|
|
11
|
+
var tangent = dp2perp * duv1.x + dp1perp * duv2.x;
|
|
12
|
+
var bitangent = dp2perp * duv1.y + dp1perp * duv2.y;
|
|
13
|
+
let det = max(dot(tangent, tangent), dot(bitangent, bitangent));
|
|
14
|
+
let invmax = select(inverseSqrt(det), 0.0, det == 0.0);
|
|
15
|
+
let cotangentFrame = mat3x3<f32>(tangent * invmax, bitangent * invmax, N);
|
|
16
|
+
return normalize(cotangentFrame * normalSample);
|
|
17
|
+
}
|
|
18
|
+
`;
|
|
19
|
+
const WGSL_FOG = `
|
|
20
|
+
const E_FOG: f32 = 2.71828;
|
|
21
|
+
fn calcFogFactor(fogDistance: vec3<f32>) -> f32 {
|
|
22
|
+
var fogCoeff: f32 = 1.0;
|
|
23
|
+
let fogMode = scene.vFogInfos.x;
|
|
24
|
+
let fogStart = scene.vFogInfos.y;
|
|
25
|
+
let fogEnd = scene.vFogInfos.z;
|
|
26
|
+
let fogDensity = scene.vFogInfos.w;
|
|
27
|
+
let dist = length(fogDistance);
|
|
28
|
+
if (fogMode == 3.0) { fogCoeff = (fogEnd - dist) / (fogEnd - fogStart); }
|
|
29
|
+
else if (fogMode == 1.0) { fogCoeff = 1.0 / pow(E_FOG, dist * fogDensity); }
|
|
30
|
+
else if (fogMode == 2.0) { fogCoeff = 1.0 / pow(E_FOG, dist * dist * fogDensity * fogDensity); }
|
|
31
|
+
return clamp(fogCoeff, 0.0, 1.0);
|
|
32
|
+
}
|
|
33
|
+
`;
|
|
34
|
+
const WGSL_DITHER = `
|
|
35
|
+
fn dither(seed: vec2<f32>, varianceAmount: f32) -> f32 {
|
|
36
|
+
let rand = fract(sin(dot(seed, vec2<f32>(12.9898, 78.233))) * 43758.5453);
|
|
37
|
+
let normVariance = varianceAmount / 255.0;
|
|
38
|
+
return mix(-normVariance, normVariance, rand);
|
|
39
|
+
}
|
|
40
|
+
`;
|
|
41
|
+
const WGSL_NO_DITHER = "fn dither(a:vec2<f32>,b:f32)->f32{return 0.0;}";
|
|
42
|
+
export {
|
|
43
|
+
WGSL_PERTURB_NORMAL as W,
|
|
44
|
+
WGSL_DITHER as a,
|
|
45
|
+
WGSL_NO_DITHER as b,
|
|
46
|
+
WGSL_FOG as c
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=wgsl-helpers-DyzNzCeE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wgsl-helpers-DyzNzCeE.js","sources":["../src/shader/wgsl-helpers.ts"],"sourcesContent":["/** Shared WGSL helper snippets used by both PBR and Standard material systems.\n *\n * These are pure WGSL function strings — no bindings, no UBO declarations.\n * Each material system wraps them with its own binding declarations. */\n\n/** Cotangent-frame bump mapping.\n * Requires: `bT` (texture_2d) and `bS` (sampler) in scope. */\nexport const WGSL_PERTURB_NORMAL = `\nfn perturbNormal(vNormalW: vec3<f32>, positionW: vec3<f32>, uv: vec2<f32>, bumpScale: f32) -> vec3<f32> {\nlet normalSample = textureSample(bT, bS, uv).rgb * 2.0 - 1.0;\nlet N = normalize(vNormalW) * bumpScale;\nlet dp1 = dpdx(positionW);\nlet dp2 = -dpdy(positionW);\nlet duv1 = dpdx(uv);\nlet duv2 = -dpdy(uv);\nlet dp2perp = cross(dp2, N);\nlet dp1perp = cross(N, dp1);\nvar tangent = dp2perp * duv1.x + dp1perp * duv2.x;\nvar bitangent = dp2perp * duv1.y + dp1perp * duv2.y;\nlet det = max(dot(tangent, tangent), dot(bitangent, bitangent));\nlet invmax = select(inverseSqrt(det), 0.0, det == 0.0);\nlet cotangentFrame = mat3x3<f32>(tangent * invmax, bitangent * invmax, N);\nreturn normalize(cotangentFrame * normalSample);\n}\n`;\n\n/** ESM shadow helper functions.\n * Requires: `shadowTex` (texture_2d), `shadowSampler` (sampler) in scope. */\nexport const WGSL_SHADOW_ESM = `\nfn computeFallOff(value: f32, clipSpace: vec2<f32>, frustumEdgeFalloff: f32) -> f32 {\nlet mask = smoothstep(1.0 - frustumEdgeFalloff, 1.00000012, clamp(dot(clipSpace, clipSpace), 0.0, 1.0));\nreturn mix(value, 1.0, mask);\n}\nfn computeShadowWithESM(posFromLight: vec4<f32>, depthMetric: f32, darkness: f32, depthScale: f32, frustumEdgeFalloff: f32) -> f32 {\nlet clipSpace = posFromLight.xyz / posFromLight.w;\nlet uv = vec2<f32>(0.5 * clipSpace.x + 0.5, 0.5 - 0.5 * clipSpace.y);\nif (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) { return 1.0; }\nlet shadowPixelDepth = clamp(depthMetric, 0.0, 1.0);\nlet shadowMapSample = textureSampleLevel(shadowTex, shadowSampler, uv, 0.0).x;\nlet esm = 1.0 - clamp(exp(min(87.0, depthScale * shadowPixelDepth)) * shadowMapSample, 0.0, 1.0 - darkness);\nreturn computeFallOff(esm, clipSpace.xy, frustumEdgeFalloff);\n}\n`;\n\n/** Fog calculation helper.\n * Requires: `scene.vFogInfos` (vec4) in scope. */\nexport const WGSL_FOG = `\nconst E_FOG: f32 = 2.71828;\nfn calcFogFactor(fogDistance: vec3<f32>) -> f32 {\nvar fogCoeff: f32 = 1.0;\nlet fogMode = scene.vFogInfos.x;\nlet fogStart = scene.vFogInfos.y;\nlet fogEnd = scene.vFogInfos.z;\nlet fogDensity = scene.vFogInfos.w;\nlet dist = length(fogDistance);\nif (fogMode == 3.0) { fogCoeff = (fogEnd - dist) / (fogEnd - fogStart); }\nelse if (fogMode == 1.0) { fogCoeff = 1.0 / pow(E_FOG, dist * fogDensity); }\nelse if (fogMode == 2.0) { fogCoeff = 1.0 / pow(E_FOG, dist * dist * fogDensity * fogDensity); }\nreturn clamp(fogCoeff, 0.0, 1.0);\n}\n`;\n\n/** Dither noise function.\n * Pure math — no UBO dependency. */\nexport const WGSL_DITHER = `\nfn dither(seed: vec2<f32>, varianceAmount: f32) -> f32 {\nlet rand = fract(sin(dot(seed, vec2<f32>(12.9898, 78.233))) * 43758.5453);\nlet normVariance = varianceAmount / 255.0;\nreturn mix(-normVariance, normVariance, rand);\n}\n`;\n\n/** Noise-disabled replacement for shaders that still call dither(). */\nexport const WGSL_NO_DITHER = \"fn dither(a:vec2<f32>,b:f32)->f32{return 0.0;}\";\n"],"names":[],"mappings":"AAOO,MAAM,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAuC5B,MAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBjB,MAAM,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASpB,MAAM,iBAAiB;"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
const emitter = {
|
|
2
|
+
className: "WorleyNoise3DBlock",
|
|
3
|
+
emit(block, outputName, stage, state, ctx) {
|
|
4
|
+
const seed = ctx.cast(ctx.resolve(block, "seed", stage, state), "vec3f");
|
|
5
|
+
const jitter = ctx.cast(ctx.resolve(block, "jitter", stage, state), "f32");
|
|
6
|
+
const manhattan = block.serialized.manhattanDistance === true ? "true" : "false";
|
|
7
|
+
state[stage].helpers.set(
|
|
8
|
+
"nme_worley3D",
|
|
9
|
+
`fn nme_worleyPermuteScalar(x: f32) -> f32 {
|
|
10
|
+
return ((34.0 * x + 1.0) * x) - floor(((34.0 * x + 1.0) * x) / 289.0) * 289.0;
|
|
11
|
+
}
|
|
12
|
+
fn nme_worleyDistance(x: f32, y: f32, z: f32, manhattanDistance: bool) -> f32 {
|
|
13
|
+
return select(x * x + y * y + z * z, abs(x) + abs(y) + abs(z), manhattanDistance);
|
|
14
|
+
}
|
|
15
|
+
fn nme_worley(P: vec3<f32>, jitter: f32, manhattanDistance: bool) -> vec2<f32> {
|
|
16
|
+
let K = 0.142857142857;
|
|
17
|
+
let Ko = 0.428571428571;
|
|
18
|
+
let K2 = 0.020408163265306;
|
|
19
|
+
let Kz = 0.166666666667;
|
|
20
|
+
let Kzo = 0.416666666667;
|
|
21
|
+
let Pi = floor(P) - floor(floor(P) / 289.0) * 289.0;
|
|
22
|
+
let Pf = fract(P) - vec3<f32>(0.5);
|
|
23
|
+
var d1 = 100000.0;
|
|
24
|
+
var d2 = 100000.0;
|
|
25
|
+
for (var zi = -1; zi <= 1; zi = zi + 1) {
|
|
26
|
+
for (var yi = -1; yi <= 1; yi = yi + 1) {
|
|
27
|
+
for (var xi = -1; xi <= 1; xi = xi + 1) {
|
|
28
|
+
let p0 = nme_worleyPermuteScalar(Pi.x + f32(xi));
|
|
29
|
+
let p1 = nme_worleyPermuteScalar(p0 + Pi.y + f32(yi));
|
|
30
|
+
let p2 = nme_worleyPermuteScalar(p1 + Pi.z + f32(zi));
|
|
31
|
+
let ox = fract(p2 * K) - Ko;
|
|
32
|
+
let oy = (floor(p2 * K) - floor(floor(p2 * K) / 7.0) * 7.0) * K - Ko;
|
|
33
|
+
let oz = floor(p2 * K2) * Kz - Kzo;
|
|
34
|
+
let dx = Pf.x - f32(xi) + jitter * ox;
|
|
35
|
+
let dy = Pf.y - f32(yi) + jitter * oy;
|
|
36
|
+
let dz = Pf.z - f32(zi) + jitter * oz;
|
|
37
|
+
let d = nme_worleyDistance(dx, dy, dz, manhattanDistance);
|
|
38
|
+
if (d < d1) {
|
|
39
|
+
d2 = d1;
|
|
40
|
+
d1 = d;
|
|
41
|
+
} else if (d < d2) {
|
|
42
|
+
d2 = d;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return sqrt(vec2<f32>(d1, d2));
|
|
48
|
+
}`
|
|
49
|
+
);
|
|
50
|
+
const temp = ctx.temp(state, "worley");
|
|
51
|
+
state[stage].body.push(`let ${temp} = nme_worley(${seed.expr}, ${jitter.expr}, ${manhattan});`);
|
|
52
|
+
return { expr: outputName === "y" ? `${temp}.y` : outputName === "output" ? temp : `${temp}.x`, type: outputName === "output" ? "vec2f" : "f32" };
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
export {
|
|
56
|
+
emitter
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=worley-noise-3d-block-CyR2-k4s.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worley-noise-3d-block-CyR2-k4s.js","sources":["../src/material/node/blocks/worley-noise-3d-block.ts"],"sourcesContent":["import type { BlockEmitter } from \"../node-types.js\";\n\nexport const emitter: BlockEmitter = {\n className: \"WorleyNoise3DBlock\",\n emit(block, outputName, stage, state, ctx) {\n const seed = ctx.cast(ctx.resolve(block, \"seed\", stage, state), \"vec3f\");\n const jitter = ctx.cast(ctx.resolve(block, \"jitter\", stage, state), \"f32\");\n const manhattan = block.serialized.manhattanDistance === true ? \"true\" : \"false\";\n state[stage].helpers.set(\n \"nme_worley3D\",\n `fn nme_worleyPermuteScalar(x: f32) -> f32 {\nreturn ((34.0 * x + 1.0) * x) - floor(((34.0 * x + 1.0) * x) / 289.0) * 289.0;\n}\nfn nme_worleyDistance(x: f32, y: f32, z: f32, manhattanDistance: bool) -> f32 {\nreturn select(x * x + y * y + z * z, abs(x) + abs(y) + abs(z), manhattanDistance);\n}\nfn nme_worley(P: vec3<f32>, jitter: f32, manhattanDistance: bool) -> vec2<f32> {\nlet K = 0.142857142857;\nlet Ko = 0.428571428571;\nlet K2 = 0.020408163265306;\nlet Kz = 0.166666666667;\nlet Kzo = 0.416666666667;\nlet Pi = floor(P) - floor(floor(P) / 289.0) * 289.0;\nlet Pf = fract(P) - vec3<f32>(0.5);\nvar d1 = 100000.0;\nvar d2 = 100000.0;\nfor (var zi = -1; zi <= 1; zi = zi + 1) {\nfor (var yi = -1; yi <= 1; yi = yi + 1) {\nfor (var xi = -1; xi <= 1; xi = xi + 1) {\nlet p0 = nme_worleyPermuteScalar(Pi.x + f32(xi));\nlet p1 = nme_worleyPermuteScalar(p0 + Pi.y + f32(yi));\nlet p2 = nme_worleyPermuteScalar(p1 + Pi.z + f32(zi));\nlet ox = fract(p2 * K) - Ko;\nlet oy = (floor(p2 * K) - floor(floor(p2 * K) / 7.0) * 7.0) * K - Ko;\nlet oz = floor(p2 * K2) * Kz - Kzo;\nlet dx = Pf.x - f32(xi) + jitter * ox;\nlet dy = Pf.y - f32(yi) + jitter * oy;\nlet dz = Pf.z - f32(zi) + jitter * oz;\nlet d = nme_worleyDistance(dx, dy, dz, manhattanDistance);\nif (d < d1) {\nd2 = d1;\nd1 = d;\n} else if (d < d2) {\nd2 = d;\n}\n}\n}\n}\nreturn sqrt(vec2<f32>(d1, d2));\n}`\n );\n const temp = ctx.temp(state, \"worley\");\n state[stage].body.push(`let ${temp} = nme_worley(${seed.expr}, ${jitter.expr}, ${manhattan});`);\n return { expr: outputName === \"y\" ? `${temp}.y` : outputName === \"output\" ? temp : `${temp}.x`, type: outputName === \"output\" ? \"vec2f\" : \"f32\" };\n },\n};\n"],"names":[],"mappings":"AAEO,MAAM,UAAwB;AAAA,EACjC,WAAW;AAAA,EACX,KAAK,OAAO,YAAY,OAAO,OAAO,KAAK;AACvC,UAAM,OAAO,IAAI,KAAK,IAAI,QAAQ,OAAO,QAAQ,OAAO,KAAK,GAAG,OAAO;AACvE,UAAM,SAAS,IAAI,KAAK,IAAI,QAAQ,OAAO,UAAU,OAAO,KAAK,GAAG,KAAK;AACzE,UAAM,YAAY,MAAM,WAAW,sBAAsB,OAAO,SAAS;AACzE,UAAM,KAAK,EAAE,QAAQ;AAAA,MACjB;AAAA,MACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA;AAyCJ,UAAM,OAAO,IAAI,KAAK,OAAO,QAAQ;AACrC,UAAM,KAAK,EAAE,KAAK,KAAK,OAAO,IAAI,iBAAiB,KAAK,IAAI,KAAK,OAAO,IAAI,KAAK,SAAS,IAAI;AAC9F,WAAO,EAAE,MAAM,eAAe,MAAM,GAAG,IAAI,OAAO,eAAe,WAAW,OAAO,GAAG,IAAI,MAAM,MAAM,eAAe,WAAW,UAAU,MAAA;AAAA,EAC9I;AACJ;"}
|