@basementstudio/shader-lab 0.1.0 → 1.0.2
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/src/easings.d.ts +3 -0
- package/dist/src/easings.js +3 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.js +4 -0
- package/dist/src/lib/editor/custom-shader/shared.d.ts +1 -0
- package/dist/src/lib/editor/custom-shader/shared.js +1 -0
- package/dist/src/renderer/ascii-atlas.d.ts +5 -0
- package/dist/src/renderer/ascii-atlas.js +61 -0
- package/dist/src/renderer/ascii-pass.d.ts +50 -0
- package/dist/src/renderer/ascii-pass.js +271 -0
- package/dist/src/renderer/asset-url.d.ts +1 -0
- package/dist/src/renderer/asset-url.js +3 -0
- package/dist/src/renderer/blend-modes.d.ts +4 -0
- package/dist/src/renderer/blend-modes.js +157 -0
- package/dist/src/renderer/contracts.d.ts +26 -0
- package/dist/src/renderer/contracts.js +13 -0
- package/dist/src/renderer/create-webgpu-renderer.d.ts +3 -0
- package/dist/src/renderer/create-webgpu-renderer.js +37 -0
- package/dist/src/renderer/crt-pass.d.ts +72 -0
- package/dist/src/renderer/crt-pass.js +536 -0
- package/dist/src/renderer/custom-shader-pass.d.ts +17 -0
- package/dist/src/renderer/custom-shader-pass.js +79 -0
- package/dist/src/renderer/custom-shader-runtime.d.ts +16 -0
- package/dist/src/renderer/custom-shader-runtime.js +169 -0
- package/dist/src/renderer/dither-textures.d.ts +8 -0
- package/dist/src/renderer/dither-textures.js +66 -0
- package/dist/src/renderer/dithering-pass.d.ts +45 -0
- package/dist/src/renderer/dithering-pass.js +229 -0
- package/dist/src/renderer/gradient-pass.d.ts +39 -0
- package/dist/src/renderer/gradient-pass.js +358 -0
- package/dist/src/renderer/halftone-pass.d.ts +65 -0
- package/dist/src/renderer/halftone-pass.js +530 -0
- package/dist/src/renderer/ink-pass.d.ts +84 -0
- package/dist/src/renderer/ink-pass.js +526 -0
- package/dist/src/renderer/live-pass.d.ts +31 -0
- package/dist/src/renderer/live-pass.js +136 -0
- package/dist/src/renderer/media-pass.d.ts +32 -0
- package/dist/src/renderer/media-pass.js +130 -0
- package/dist/src/renderer/media-texture.d.ts +8 -0
- package/dist/src/renderer/media-texture.js +41 -0
- package/dist/src/renderer/particle-grid-pass.d.ts +48 -0
- package/dist/src/renderer/particle-grid-pass.js +269 -0
- package/dist/src/renderer/pass-node.d.ts +36 -0
- package/dist/src/renderer/pass-node.js +120 -0
- package/dist/src/renderer/pattern-atlas.d.ts +8 -0
- package/dist/src/renderer/pattern-atlas.js +79 -0
- package/dist/src/renderer/pattern-pass.d.ts +58 -0
- package/dist/src/renderer/pattern-pass.js +316 -0
- package/dist/src/renderer/pipeline-manager.d.ts +39 -0
- package/dist/src/renderer/pipeline-manager.js +287 -0
- package/dist/src/renderer/pixel-sorting-pass.d.ts +33 -0
- package/dist/src/renderer/pixel-sorting-pass.js +179 -0
- package/dist/src/renderer/shaders/tsl/color/tonemapping.d.ts +9 -0
- package/dist/src/renderer/shaders/tsl/color/tonemapping.js +59 -0
- package/dist/src/renderer/shaders/tsl/cosine-palette.d.ts +4 -0
- package/{packages/shader-lab-react/src/renderer/shaders/tsl/cosine-palette.ts → dist/src/renderer/shaders/tsl/cosine-palette.js} +3 -4
- package/dist/src/renderer/shaders/tsl/noise/common.d.ts +5 -0
- package/dist/src/renderer/shaders/tsl/noise/common.js +24 -0
- package/dist/src/renderer/shaders/tsl/noise/curl-noise-3d.d.ts +1 -0
- package/dist/src/renderer/shaders/tsl/noise/curl-noise-3d.js +27 -0
- package/dist/src/renderer/shaders/tsl/noise/curl-noise-4d.d.ts +1 -0
- package/dist/src/renderer/shaders/tsl/noise/curl-noise-4d.js +27 -0
- package/dist/src/renderer/shaders/tsl/noise/fbm.d.ts +1 -0
- package/dist/src/renderer/shaders/tsl/noise/fbm.js +11 -0
- package/dist/src/renderer/shaders/tsl/noise/perlin-noise-3d.d.ts +5 -0
- package/dist/src/renderer/shaders/tsl/noise/perlin-noise-3d.js +66 -0
- package/dist/src/renderer/shaders/tsl/noise/ridge-noise.d.ts +1 -0
- package/dist/src/renderer/shaders/tsl/noise/ridge-noise.js +19 -0
- package/dist/src/renderer/shaders/tsl/noise/simplex-noise-3d.d.ts +1 -0
- package/dist/src/renderer/shaders/tsl/noise/simplex-noise-3d.js +44 -0
- package/dist/src/renderer/shaders/tsl/noise/simplex-noise-4d.d.ts +1 -0
- package/dist/src/renderer/shaders/tsl/noise/simplex-noise-4d.js +51 -0
- package/dist/src/renderer/shaders/tsl/noise/turbulence.d.ts +7 -0
- package/dist/src/renderer/shaders/tsl/noise/turbulence.js +34 -0
- package/dist/src/renderer/shaders/tsl/noise/value-noise-3d.d.ts +1 -0
- package/dist/src/renderer/shaders/tsl/noise/value-noise-3d.js +27 -0
- package/dist/src/renderer/shaders/tsl/noise/voronoi-noise-3d.d.ts +1 -0
- package/dist/src/renderer/shaders/tsl/noise/voronoi-noise-3d.js +45 -0
- package/dist/src/renderer/shaders/tsl/patterns/bloom-edge-pattern.d.ts +4 -0
- package/dist/src/renderer/shaders/tsl/patterns/bloom-edge-pattern.js +13 -0
- package/dist/src/renderer/shaders/tsl/patterns/bloom.d.ts +4 -0
- package/{packages/shader-lab-react/src/renderer/shaders/tsl/patterns/bloom.ts → dist/src/renderer/shaders/tsl/patterns/bloom.js} +4 -6
- package/dist/src/renderer/shaders/tsl/patterns/canvas-weave-pattern.d.ts +4 -0
- package/dist/src/renderer/shaders/tsl/patterns/canvas-weave-pattern.js +16 -0
- package/dist/src/renderer/shaders/tsl/patterns/grain-texture-pattern.d.ts +4 -0
- package/{packages/shader-lab-react/src/renderer/shaders/tsl/patterns/grain-texture-pattern.ts → dist/src/renderer/shaders/tsl/patterns/grain-texture-pattern.js} +3 -4
- package/dist/src/renderer/shaders/tsl/patterns/repeating-pattern.d.ts +4 -0
- package/{packages/shader-lab-react/src/renderer/shaders/tsl/patterns/repeating-pattern.ts → dist/src/renderer/shaders/tsl/patterns/repeating-pattern.js} +4 -6
- package/dist/src/renderer/shaders/tsl/utils/atan2.d.ts +1 -0
- package/dist/src/renderer/shaders/tsl/utils/atan2.js +7 -0
- package/dist/src/renderer/shaders/tsl/utils/complex-conj.d.ts +4 -0
- package/{packages/shader-lab-react/src/renderer/shaders/tsl/utils/complex-conj.ts → dist/src/renderer/shaders/tsl/utils/complex-conj.js} +3 -4
- package/dist/src/renderer/shaders/tsl/utils/complex-cos.d.ts +4 -0
- package/dist/src/renderer/shaders/tsl/utils/complex-cos.js +9 -0
- package/dist/src/renderer/shaders/tsl/utils/complex-div.d.ts +1 -0
- package/dist/src/renderer/shaders/tsl/utils/complex-div.js +6 -0
- package/dist/src/renderer/shaders/tsl/utils/complex-log.d.ts +1 -0
- package/dist/src/renderer/shaders/tsl/utils/complex-log.js +6 -0
- package/dist/src/renderer/shaders/tsl/utils/complex-mobius.d.ts +4 -0
- package/dist/src/renderer/shaders/tsl/utils/complex-mobius.js +10 -0
- package/dist/src/renderer/shaders/tsl/utils/complex-mul.d.ts +4 -0
- package/{packages/shader-lab-react/src/renderer/shaders/tsl/utils/complex-mul.ts → dist/src/renderer/shaders/tsl/utils/complex-mul.js} +3 -4
- package/dist/src/renderer/shaders/tsl/utils/complex-pow.d.ts +5 -0
- package/dist/src/renderer/shaders/tsl/utils/complex-pow.js +14 -0
- package/dist/src/renderer/shaders/tsl/utils/complex-sin.d.ts +4 -0
- package/dist/src/renderer/shaders/tsl/utils/complex-sin.js +9 -0
- package/dist/src/renderer/shaders/tsl/utils/complex-sqrt.d.ts +5 -0
- package/dist/src/renderer/shaders/tsl/utils/complex-sqrt.js +12 -0
- package/dist/src/renderer/shaders/tsl/utils/complex-tan.d.ts +4 -0
- package/dist/src/renderer/shaders/tsl/utils/complex-tan.js +11 -0
- package/dist/src/renderer/shaders/tsl/utils/complex-to-polar.d.ts +4 -0
- package/dist/src/renderer/shaders/tsl/utils/complex-to-polar.js +9 -0
- package/dist/src/renderer/shaders/tsl/utils/hyperbolic.d.ts +8 -0
- package/{packages/shader-lab-react/src/renderer/shaders/tsl/utils/hyperbolic.ts → dist/src/renderer/shaders/tsl/utils/hyperbolic.js} +7 -11
- package/dist/src/renderer/shaders/tsl/utils/index.d.ts +38 -0
- package/dist/src/renderer/shaders/tsl/utils/index.js +39 -0
- package/dist/src/renderer/shaders/tsl/utils/rotate.d.ts +2 -0
- package/dist/src/renderer/shaders/tsl/utils/rotate.js +7 -0
- package/dist/src/renderer/shaders/tsl/utils/screen-aspect-uv.d.ts +2 -0
- package/dist/src/renderer/shaders/tsl/utils/screen-aspect-uv.js +6 -0
- package/dist/src/renderer/shaders/tsl/utils/sd-box-2d.d.ts +1 -0
- package/dist/src/renderer/shaders/tsl/utils/sd-box-2d.js +5 -0
- package/dist/src/renderer/shaders/tsl/utils/sd-diamond.d.ts +1 -0
- package/dist/src/renderer/shaders/tsl/utils/sd-diamond.js +5 -0
- package/dist/src/renderer/shaders/tsl/utils/sd-rhombus.d.ts +1 -0
- package/dist/src/renderer/shaders/tsl/utils/sd-rhombus.js +14 -0
- package/dist/src/renderer/shaders/tsl/utils/sd-sphere.d.ts +1 -0
- package/dist/src/renderer/shaders/tsl/utils/sd-sphere.js +5 -0
- package/dist/src/renderer/shaders/tsl/utils/smax.d.ts +1 -0
- package/dist/src/renderer/shaders/tsl/utils/smax.js +6 -0
- package/dist/src/renderer/shaders/tsl/utils/smin.d.ts +1 -0
- package/dist/src/renderer/shaders/tsl/utils/smin.js +6 -0
- package/dist/src/renderer/text-pass.d.ts +23 -0
- package/dist/src/renderer/text-pass.js +129 -0
- package/dist/src/runtime-clock.d.ts +9 -0
- package/dist/src/runtime-clock.js +20 -0
- package/dist/src/runtime-frame.d.ts +11 -0
- package/dist/src/runtime-frame.js +12 -0
- package/dist/src/shader-lab-composition.d.ts +9 -0
- package/dist/src/shader-lab-composition.js +96 -0
- package/dist/src/timeline.d.ts +8 -0
- package/dist/src/timeline.js +179 -0
- package/dist/src/types/editor.d.ts +3 -0
- package/dist/src/types/editor.js +1 -0
- package/dist/src/types.d.ts +81 -0
- package/dist/src/types.js +1 -0
- package/package.json +28 -65
- package/.biome/plugins/README.md +0 -21
- package/.biome/plugins/no-anchor-element.grit +0 -12
- package/.biome/plugins/no-relative-parent-imports.grit +0 -10
- package/.biome/plugins/no-unnecessary-forwardref.grit +0 -9
- package/.changeset/README.md +0 -17
- package/.changeset/config.json +0 -11
- package/.editorconfig +0 -40
- package/.env.example +0 -81
- package/.gitattributes +0 -19
- package/.github/workflows/canary.yml +0 -80
- package/.github/workflows/ci.yml +0 -37
- package/.github/workflows/release.yml +0 -56
- package/.tldrignore +0 -84
- package/.vscode/extensions.json +0 -20
- package/.vscode/settings.json +0 -105
- package/biome.json +0 -249
- package/bun.lock +0 -1224
- package/next.config.ts +0 -131
- package/packages/shader-lab-react/CHANGELOG.md +0 -9
- package/packages/shader-lab-react/README.md +0 -119
- package/packages/shader-lab-react/package.json +0 -36
- package/packages/shader-lab-react/scripts/fix-esm-specifiers.mjs +0 -57
- package/packages/shader-lab-react/scripts/prepare-dist.mjs +0 -4
- package/packages/shader-lab-react/src/ambient/three-tsl.d.ts +0 -146
- package/packages/shader-lab-react/src/ambient/three-webgpu.d.ts +0 -51
- package/packages/shader-lab-react/src/easings.ts +0 -4
- package/packages/shader-lab-react/src/index.ts +0 -35
- package/packages/shader-lab-react/src/lib/editor/custom-shader/shared.ts +0 -2
- package/packages/shader-lab-react/src/renderer/ascii-atlas.ts +0 -83
- package/packages/shader-lab-react/src/renderer/ascii-pass.ts +0 -416
- package/packages/shader-lab-react/src/renderer/asset-url.ts +0 -3
- package/packages/shader-lab-react/src/renderer/blend-modes.ts +0 -229
- package/packages/shader-lab-react/src/renderer/contracts.ts +0 -54
- package/packages/shader-lab-react/src/renderer/create-webgpu-renderer.ts +0 -48
- package/packages/shader-lab-react/src/renderer/crt-pass.ts +0 -1040
- package/packages/shader-lab-react/src/renderer/custom-shader-pass.ts +0 -108
- package/packages/shader-lab-react/src/renderer/custom-shader-runtime.ts +0 -309
- package/packages/shader-lab-react/src/renderer/dither-textures.ts +0 -99
- package/packages/shader-lab-react/src/renderer/dithering-pass.ts +0 -322
- package/packages/shader-lab-react/src/renderer/gradient-pass.ts +0 -521
- package/packages/shader-lab-react/src/renderer/halftone-pass.ts +0 -932
- package/packages/shader-lab-react/src/renderer/ink-pass.ts +0 -802
- package/packages/shader-lab-react/src/renderer/live-pass.ts +0 -194
- package/packages/shader-lab-react/src/renderer/media-pass.ts +0 -187
- package/packages/shader-lab-react/src/renderer/media-texture.ts +0 -66
- package/packages/shader-lab-react/src/renderer/particle-grid-pass.ts +0 -389
- package/packages/shader-lab-react/src/renderer/pass-node.ts +0 -209
- package/packages/shader-lab-react/src/renderer/pattern-atlas.ts +0 -133
- package/packages/shader-lab-react/src/renderer/pattern-pass.ts +0 -552
- package/packages/shader-lab-react/src/renderer/pipeline-manager.ts +0 -369
- package/packages/shader-lab-react/src/renderer/pixel-sorting-pass.ts +0 -277
- package/packages/shader-lab-react/src/renderer/shaders/tsl/color/tonemapping.ts +0 -87
- package/packages/shader-lab-react/src/renderer/shaders/tsl/noise/common.ts +0 -31
- package/packages/shader-lab-react/src/renderer/shaders/tsl/noise/curl-noise-3d.ts +0 -36
- package/packages/shader-lab-react/src/renderer/shaders/tsl/noise/curl-noise-4d.ts +0 -36
- package/packages/shader-lab-react/src/renderer/shaders/tsl/noise/fbm.ts +0 -13
- package/packages/shader-lab-react/src/renderer/shaders/tsl/noise/perlin-noise-3d.ts +0 -96
- package/packages/shader-lab-react/src/renderer/shaders/tsl/noise/ridge-noise.ts +0 -24
- package/packages/shader-lab-react/src/renderer/shaders/tsl/noise/simplex-noise-3d.ts +0 -79
- package/packages/shader-lab-react/src/renderer/shaders/tsl/noise/simplex-noise-4d.ts +0 -89
- package/packages/shader-lab-react/src/renderer/shaders/tsl/noise/turbulence.ts +0 -56
- package/packages/shader-lab-react/src/renderer/shaders/tsl/noise/value-noise-3d.ts +0 -32
- package/packages/shader-lab-react/src/renderer/shaders/tsl/noise/voronoi-noise-3d.ts +0 -60
- package/packages/shader-lab-react/src/renderer/shaders/tsl/patterns/bloom-edge-pattern.ts +0 -15
- package/packages/shader-lab-react/src/renderer/shaders/tsl/patterns/canvas-weave-pattern.ts +0 -24
- package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/atan2.ts +0 -9
- package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/complex-cos.ts +0 -10
- package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/complex-div.ts +0 -11
- package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/complex-log.ts +0 -7
- package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/complex-mobius.ts +0 -12
- package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/complex-pow.ts +0 -16
- package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/complex-sin.ts +0 -10
- package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/complex-sqrt.ts +0 -18
- package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/complex-tan.ts +0 -12
- package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/complex-to-polar.ts +0 -10
- package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/index.ts +0 -48
- package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/rotate.ts +0 -15
- package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/screen-aspect-uv.ts +0 -15
- package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/sd-box-2d.ts +0 -6
- package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/sd-diamond.ts +0 -6
- package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/sd-rhombus.ts +0 -27
- package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/sd-sphere.ts +0 -6
- package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/smax.ts +0 -7
- package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/smin.ts +0 -7
- package/packages/shader-lab-react/src/renderer/text-pass.ts +0 -176
- package/packages/shader-lab-react/src/runtime-clock.ts +0 -42
- package/packages/shader-lab-react/src/runtime-frame.ts +0 -29
- package/packages/shader-lab-react/src/shader-lab-composition.tsx +0 -163
- package/packages/shader-lab-react/src/timeline.ts +0 -283
- package/packages/shader-lab-react/src/types/editor.ts +0 -5
- package/packages/shader-lab-react/src/types.ts +0 -141
- package/packages/shader-lab-react/tsconfig.build.json +0 -8
- package/packages/shader-lab-react/tsconfig.json +0 -21
- package/postcss.config.mjs +0 -5
- package/public/assets/fonts/msdf/geist-mono/GeistMono-Regular-msdf-atlas.png +0 -0
- package/public/assets/fonts/msdf/geist-mono/GeistMono-Regular-msdf.json +0 -1412
- package/public/assets/patterns/bars/1.svg +0 -3
- package/public/assets/patterns/bars/2.svg +0 -3
- package/public/assets/patterns/bars/3.svg +0 -3
- package/public/assets/patterns/bars/4.svg +0 -3
- package/public/assets/patterns/bars/5.svg +0 -3
- package/public/assets/patterns/bars/6.svg +0 -3
- package/public/assets/patterns/candles/1.svg +0 -3
- package/public/assets/patterns/candles/2.svg +0 -3
- package/public/assets/patterns/candles/3.svg +0 -3
- package/public/assets/patterns/candles/4.svg +0 -3
- package/public/assets/patterns/shapes/1.svg +0 -3
- package/public/assets/patterns/shapes/2.svg +0 -3
- package/public/assets/patterns/shapes/3.svg +0 -3
- package/public/assets/patterns/shapes/4.svg +0 -4
- package/public/assets/patterns/shapes/5.svg +0 -3
- package/public/assets/patterns/shapes/6.svg +0 -4
- package/public/fonts/geist/Geist-Mono.woff2 +0 -0
- package/public/textures/blue-noise.png +0 -0
- package/public/textures/crt-mask.png +0 -0
- package/src/app/design/page.tsx +0 -398
- package/src/app/favicon.ico +0 -0
- package/src/app/globals.css +0 -280
- package/src/app/layout.tsx +0 -89
- package/src/app/page.tsx +0 -20
- package/src/app/robots.ts +0 -13
- package/src/app/sitemap.ts +0 -13
- package/src/components/editor/editor-canvas-viewport.tsx +0 -116
- package/src/components/editor/editor-export-dialog.tsx +0 -1177
- package/src/components/editor/editor-timeline-overlay.tsx +0 -983
- package/src/components/editor/editor-topbar.tsx +0 -287
- package/src/components/editor/layer-sidebar.tsx +0 -738
- package/src/components/editor/properties-sidebar-content.tsx +0 -574
- package/src/components/editor/properties-sidebar-fields.tsx +0 -389
- package/src/components/editor/properties-sidebar-utils.ts +0 -178
- package/src/components/editor/properties-sidebar.tsx +0 -421
- package/src/components/ui/button/index.tsx +0 -57
- package/src/components/ui/color-picker/index.tsx +0 -358
- package/src/components/ui/glass-panel/index.tsx +0 -45
- package/src/components/ui/icon-button/index.tsx +0 -46
- package/src/components/ui/select/index.tsx +0 -136
- package/src/components/ui/slider/index.tsx +0 -192
- package/src/components/ui/toggle/index.tsx +0 -34
- package/src/components/ui/typography/index.tsx +0 -61
- package/src/components/ui/xy-pad/index.tsx +0 -160
- package/src/features/editor/components/editor-export-dialog.module.css +0 -271
- package/src/hooks/use-editor-renderer.ts +0 -182
- package/src/lib/app.ts +0 -6
- package/src/lib/cn.ts +0 -7
- package/src/lib/easings.ts +0 -240
- package/src/lib/editor/config/layer-registry.ts +0 -2434
- package/src/lib/editor/custom-shader/shared.ts +0 -28
- package/src/lib/editor/export.ts +0 -420
- package/src/lib/editor/history.ts +0 -71
- package/src/lib/editor/layers.ts +0 -76
- package/src/lib/editor/parameter-schema.ts +0 -75
- package/src/lib/editor/project-file.ts +0 -145
- package/src/lib/editor/shader-export-snippet.ts +0 -37
- package/src/lib/editor/shader-export.ts +0 -315
- package/src/lib/editor/timeline/evaluate.ts +0 -252
- package/src/lib/editor/view-transform.ts +0 -58
- package/src/lib/fonts.ts +0 -28
- package/src/renderer/ascii-atlas.ts +0 -83
- package/src/renderer/ascii-pass.ts +0 -416
- package/src/renderer/blend-modes.ts +0 -229
- package/src/renderer/contracts.ts +0 -161
- package/src/renderer/create-webgpu-renderer.ts +0 -48
- package/src/renderer/crt-pass.ts +0 -1040
- package/src/renderer/custom-shader-pass.ts +0 -117
- package/src/renderer/custom-shader-runtime.ts +0 -309
- package/src/renderer/dither-textures.ts +0 -99
- package/src/renderer/dithering-pass.ts +0 -322
- package/src/renderer/gradient-pass.ts +0 -520
- package/src/renderer/halftone-pass.ts +0 -932
- package/src/renderer/ink-pass.ts +0 -683
- package/src/renderer/live-pass.ts +0 -194
- package/src/renderer/media-pass.ts +0 -187
- package/src/renderer/media-texture.ts +0 -66
- package/src/renderer/particle-grid-pass.ts +0 -389
- package/src/renderer/pass-node-factory.ts +0 -33
- package/src/renderer/pass-node.ts +0 -209
- package/src/renderer/pattern-atlas.ts +0 -97
- package/src/renderer/pattern-pass.ts +0 -552
- package/src/renderer/pipeline-manager.ts +0 -343
- package/src/renderer/pixel-sorting-pass.ts +0 -277
- package/src/renderer/project-clock.ts +0 -57
- package/src/renderer/shaders/tsl/color/tonemapping.ts +0 -86
- package/src/renderer/shaders/tsl/cosine-palette.ts +0 -8
- package/src/renderer/shaders/tsl/noise/common.ts +0 -30
- package/src/renderer/shaders/tsl/noise/curl-noise-3d.ts +0 -35
- package/src/renderer/shaders/tsl/noise/curl-noise-4d.ts +0 -35
- package/src/renderer/shaders/tsl/noise/fbm.ts +0 -12
- package/src/renderer/shaders/tsl/noise/perlin-noise-3d.ts +0 -97
- package/src/renderer/shaders/tsl/noise/ridge-noise.ts +0 -23
- package/src/renderer/shaders/tsl/noise/simplex-noise-3d.ts +0 -78
- package/src/renderer/shaders/tsl/noise/simplex-noise-4d.ts +0 -88
- package/src/renderer/shaders/tsl/noise/turbulence.ts +0 -55
- package/src/renderer/shaders/tsl/noise/value-noise-3d.ts +0 -31
- package/src/renderer/shaders/tsl/noise/voronoi-noise-3d.ts +0 -59
- package/src/renderer/shaders/tsl/patterns/bloom-edge-pattern.ts +0 -14
- package/src/renderer/shaders/tsl/patterns/bloom.ts +0 -10
- package/src/renderer/shaders/tsl/patterns/canvas-weave-pattern.ts +0 -23
- package/src/renderer/shaders/tsl/patterns/grain-texture-pattern.ts +0 -8
- package/src/renderer/shaders/tsl/patterns/repeating-pattern.ts +0 -10
- package/src/renderer/shaders/tsl/utils/atan2.ts +0 -8
- package/src/renderer/shaders/tsl/utils/complex-conj.ts +0 -8
- package/src/renderer/shaders/tsl/utils/complex-cos.ts +0 -9
- package/src/renderer/shaders/tsl/utils/complex-div.ts +0 -10
- package/src/renderer/shaders/tsl/utils/complex-log.ts +0 -6
- package/src/renderer/shaders/tsl/utils/complex-mobius.ts +0 -11
- package/src/renderer/shaders/tsl/utils/complex-mul.ts +0 -8
- package/src/renderer/shaders/tsl/utils/complex-pow.ts +0 -15
- package/src/renderer/shaders/tsl/utils/complex-sin.ts +0 -9
- package/src/renderer/shaders/tsl/utils/complex-sqrt.ts +0 -17
- package/src/renderer/shaders/tsl/utils/complex-tan.ts +0 -11
- package/src/renderer/shaders/tsl/utils/complex-to-polar.ts +0 -9
- package/src/renderer/shaders/tsl/utils/hyperbolic.ts +0 -19
- package/src/renderer/shaders/tsl/utils/index.ts +0 -47
- package/src/renderer/shaders/tsl/utils/rotate.ts +0 -14
- package/src/renderer/shaders/tsl/utils/screen-aspect-uv.ts +0 -14
- package/src/renderer/shaders/tsl/utils/sd-box-2d.ts +0 -5
- package/src/renderer/shaders/tsl/utils/sd-diamond.ts +0 -5
- package/src/renderer/shaders/tsl/utils/sd-rhombus.ts +0 -26
- package/src/renderer/shaders/tsl/utils/sd-sphere.ts +0 -5
- package/src/renderer/shaders/tsl/utils/smax.ts +0 -7
- package/src/renderer/shaders/tsl/utils/smin.ts +0 -6
- package/src/renderer/text-pass.ts +0 -176
- package/src/store/asset-store.ts +0 -193
- package/src/store/editor-store.ts +0 -223
- package/src/store/history-store.ts +0 -172
- package/src/store/index.ts +0 -31
- package/src/store/layer-store.ts +0 -675
- package/src/store/timeline-store.ts +0 -572
- package/src/types/assets.d.ts +0 -6
- package/src/types/css.d.ts +0 -21
- package/src/types/editor.ts +0 -357
- package/src/types/react.d.ts +0 -15
- package/src/types/three-tsl.d.ts +0 -146
- package/src/types/three-webgpu.d.ts +0 -51
- package/tsconfig.json +0 -49
- /package/{packages/shader-lab-react/assets → assets}/patterns/bars/1.svg +0 -0
- /package/{packages/shader-lab-react/assets → assets}/patterns/bars/2.svg +0 -0
- /package/{packages/shader-lab-react/assets → assets}/patterns/bars/3.svg +0 -0
- /package/{packages/shader-lab-react/assets → assets}/patterns/bars/4.svg +0 -0
- /package/{packages/shader-lab-react/assets → assets}/patterns/bars/5.svg +0 -0
- /package/{packages/shader-lab-react/assets → assets}/patterns/bars/6.svg +0 -0
- /package/{packages/shader-lab-react/assets → assets}/patterns/candles/1.svg +0 -0
- /package/{packages/shader-lab-react/assets → assets}/patterns/candles/2.svg +0 -0
- /package/{packages/shader-lab-react/assets → assets}/patterns/candles/3.svg +0 -0
- /package/{packages/shader-lab-react/assets → assets}/patterns/candles/4.svg +0 -0
- /package/{packages/shader-lab-react/assets → assets}/patterns/shapes/1.svg +0 -0
- /package/{packages/shader-lab-react/assets → assets}/patterns/shapes/2.svg +0 -0
- /package/{packages/shader-lab-react/assets → assets}/patterns/shapes/3.svg +0 -0
- /package/{packages/shader-lab-react/assets → assets}/patterns/shapes/4.svg +0 -0
- /package/{packages/shader-lab-react/assets → assets}/patterns/shapes/5.svg +0 -0
- /package/{packages/shader-lab-react/assets → assets}/patterns/shapes/6.svg +0 -0
- /package/{packages/shader-lab-react/assets → assets}/textures/blue-noise.png +0 -0
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
import { Fn, dot, exp, mix, pow, smoothstep, vec3 } from "three/tsl"
|
|
3
|
-
|
|
4
|
-
export const reinhardTonemap = Fn(([color]) => {
|
|
5
|
-
return color.div(color.add(1.0))
|
|
6
|
-
})
|
|
7
|
-
|
|
8
|
-
export const totosTonemap = Fn(([color]) => {
|
|
9
|
-
const compressed = color
|
|
10
|
-
.mul(vec3(1.18, 1.04, 0.94))
|
|
11
|
-
.div(color.mul(vec3(0.82, 0.9, 0.98)).add(vec3(0.78, 0.68, 0.6)))
|
|
12
|
-
const lum = dot(compressed, vec3(0.2126, 0.7152, 0.0722))
|
|
13
|
-
const shadowLift = smoothstep(0.0, 0.38, lum)
|
|
14
|
-
const highlightRoll = smoothstep(0.42, 1.0, lum)
|
|
15
|
-
const toneMix = smoothstep(0.16, 0.82, lum)
|
|
16
|
-
const cool = vec3(
|
|
17
|
-
compressed.x.mul(0.82),
|
|
18
|
-
compressed.y.mul(0.98).add(shadowLift.mul(0.04)),
|
|
19
|
-
compressed.z.mul(1.24).add(shadowLift.mul(0.08)),
|
|
20
|
-
)
|
|
21
|
-
const warm = vec3(
|
|
22
|
-
compressed.x.mul(1.14).add(highlightRoll.mul(0.08)),
|
|
23
|
-
compressed.y.mul(1.03).add(highlightRoll.mul(0.03)),
|
|
24
|
-
compressed.z.mul(0.84),
|
|
25
|
-
)
|
|
26
|
-
const splitToned = mix(cool, warm, toneMix)
|
|
27
|
-
const curved = vec3(
|
|
28
|
-
pow(splitToned.x, 0.86),
|
|
29
|
-
pow(splitToned.y, 0.95),
|
|
30
|
-
pow(splitToned.z, 1.12),
|
|
31
|
-
)
|
|
32
|
-
const bleach = mix(curved, vec3(lum), highlightRoll.mul(0.06))
|
|
33
|
-
|
|
34
|
-
return bleach.clamp(0.0, 1.0)
|
|
35
|
-
})
|
|
36
|
-
|
|
37
|
-
export const acesTonemap = Fn(([color]) => {
|
|
38
|
-
const a = 2.51
|
|
39
|
-
const b = 0.03
|
|
40
|
-
const c = 2.43
|
|
41
|
-
const d = 0.59
|
|
42
|
-
const e = 0.14
|
|
43
|
-
|
|
44
|
-
return color
|
|
45
|
-
.mul(color.mul(a).add(b))
|
|
46
|
-
.div(color.mul(color.mul(c).add(d)).add(e))
|
|
47
|
-
.clamp(0.0, 1.0)
|
|
48
|
-
})
|
|
49
|
-
|
|
50
|
-
export const crossProcessTonemap = Fn(([color]) => {
|
|
51
|
-
const r = pow(color.x, 0.8)
|
|
52
|
-
const g = pow(color.y, 1.2)
|
|
53
|
-
const b = pow(color.z, 1.5)
|
|
54
|
-
|
|
55
|
-
return vec3(r, g, b).clamp(0.0, 1.0)
|
|
56
|
-
})
|
|
57
|
-
|
|
58
|
-
export const bleachBypassTonemap = Fn(([color]) => {
|
|
59
|
-
const lum = dot(color, vec3(0.2126, 0.7152, 0.0722))
|
|
60
|
-
const mixAmount = 0.7
|
|
61
|
-
|
|
62
|
-
return mix(vec3(lum), color, mixAmount).mul(1.2).clamp(0.0, 1.0)
|
|
63
|
-
})
|
|
64
|
-
|
|
65
|
-
export const technicolorTonemap = Fn(([color]) => {
|
|
66
|
-
const r = color.x.mul(1.5)
|
|
67
|
-
const g = color.y.mul(1.2)
|
|
68
|
-
const b = color.z.mul(0.8).add(color.x.mul(0.2))
|
|
69
|
-
|
|
70
|
-
return vec3(r, g, b).clamp(0.0, 1.0)
|
|
71
|
-
})
|
|
72
|
-
|
|
73
|
-
export const cinematicTonemap = Fn(([color]) => {
|
|
74
|
-
const r = smoothstep(0.05, 0.95, color.x.mul(0.95).add(0.02))
|
|
75
|
-
const g = smoothstep(0.05, 0.95, color.y.mul(1.05))
|
|
76
|
-
const b = smoothstep(0.05, 0.95, color.z.mul(1.1))
|
|
77
|
-
|
|
78
|
-
return vec3(r, g, b).clamp(0.0, 1.0)
|
|
79
|
-
})
|
|
80
|
-
|
|
81
|
-
export const tanh = Fn(([x]) => {
|
|
82
|
-
const e2x = exp(x.mul(2.0))
|
|
83
|
-
|
|
84
|
-
return e2x.sub(1.0).div(e2x.add(1.0))
|
|
85
|
-
})
|
|
86
|
-
|
|
87
|
-
export const uncharted2Tonemap = totosTonemap
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
import { Fn, abs, add, dot, floor, fract, mod, mul, step, sub, vec3, vec4 } from "three/tsl"
|
|
3
|
-
|
|
4
|
-
export const permute = Fn(([x]) => {
|
|
5
|
-
return mod(mul(add(mul(x, 34.0), 10.0), x), 289.0)
|
|
6
|
-
})
|
|
7
|
-
|
|
8
|
-
export const taylorInvSqrt = Fn(([r]) => {
|
|
9
|
-
return sub(1.79284291400159, mul(0.85373472095314, r))
|
|
10
|
-
})
|
|
11
|
-
|
|
12
|
-
export const mod289 = Fn(([x]) => {
|
|
13
|
-
return mod(mul(add(mul(x, 34.0), 10.0), x), 289.0)
|
|
14
|
-
})
|
|
15
|
-
|
|
16
|
-
export const fade = Fn(([t]) => {
|
|
17
|
-
return t.mul(t).mul(t).mul(t.mul(t).mul(6.0).sub(t.mul(15.0)).add(10.0))
|
|
18
|
-
})
|
|
19
|
-
|
|
20
|
-
export const grad4 = Fn(([j, ip]) => {
|
|
21
|
-
const ones = vec4(1.0, 1.0, 1.0, -1.0)
|
|
22
|
-
const p = vec4().toVar()
|
|
23
|
-
const s = vec4().toVar()
|
|
24
|
-
|
|
25
|
-
p.xyz.assign(floor(fract(vec3(j).mul(ip.xyz)).mul(7.0)).mul(ip.z).sub(1.0))
|
|
26
|
-
p.w.assign(sub(1.5, dot(abs(p.xyz), ones.xyz)))
|
|
27
|
-
s.assign(step(p, vec4(0.0)))
|
|
28
|
-
p.xyz.assign(p.xyz.add(s.xyz.mul(2.0).sub(1.0).mul(s.www)))
|
|
29
|
-
|
|
30
|
-
return p
|
|
31
|
-
})
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
import { EPSILON, Fn, cross, vec3 } from "three/tsl"
|
|
3
|
-
import { simplexNoise3d } from "./simplex-noise-3d"
|
|
4
|
-
|
|
5
|
-
export const curlNoise3d = Fn(([inputA]) => {
|
|
6
|
-
const aXPos = simplexNoise3d(inputA.add(vec3(EPSILON, 0, 0)))
|
|
7
|
-
const aXNeg = simplexNoise3d(inputA.sub(vec3(EPSILON, 0, 0)))
|
|
8
|
-
const aXAverage = aXPos.sub(aXNeg).div(EPSILON.mul(2))
|
|
9
|
-
|
|
10
|
-
const aYPos = simplexNoise3d(inputA.add(vec3(0, EPSILON, 0)))
|
|
11
|
-
const aYNeg = simplexNoise3d(inputA.sub(vec3(0, EPSILON, 0)))
|
|
12
|
-
const aYAverage = aYPos.sub(aYNeg).div(EPSILON.mul(2))
|
|
13
|
-
|
|
14
|
-
const aZPos = simplexNoise3d(inputA.add(vec3(0, 0, EPSILON)))
|
|
15
|
-
const aZNeg = simplexNoise3d(inputA.sub(vec3(0, 0, EPSILON)))
|
|
16
|
-
const aZAverage = aZPos.sub(aZNeg).div(EPSILON.mul(2))
|
|
17
|
-
|
|
18
|
-
const aGrabNoise = vec3(aXAverage, aYAverage, aZAverage).normalize()
|
|
19
|
-
const inputB = inputA.add(3.5)
|
|
20
|
-
|
|
21
|
-
const bXPos = simplexNoise3d(inputB.add(vec3(EPSILON, 0, 0)))
|
|
22
|
-
const bXNeg = simplexNoise3d(inputB.sub(vec3(EPSILON, 0, 0)))
|
|
23
|
-
const bXAverage = bXPos.sub(bXNeg).div(EPSILON.mul(2))
|
|
24
|
-
|
|
25
|
-
const bYPos = simplexNoise3d(inputB.add(vec3(0, EPSILON, 0)))
|
|
26
|
-
const bYNeg = simplexNoise3d(inputB.sub(vec3(0, EPSILON, 0)))
|
|
27
|
-
const bYAverage = bYPos.sub(bYNeg).div(EPSILON.mul(2))
|
|
28
|
-
|
|
29
|
-
const bZPos = simplexNoise3d(inputB.add(vec3(0, 0, EPSILON)))
|
|
30
|
-
const bZNeg = simplexNoise3d(inputB.sub(vec3(0, 0, EPSILON)))
|
|
31
|
-
const bZAverage = bZPos.sub(bZNeg).div(EPSILON.mul(2))
|
|
32
|
-
|
|
33
|
-
const bGrabNoise = vec3(bXAverage, bYAverage, bZAverage).normalize()
|
|
34
|
-
|
|
35
|
-
return cross(aGrabNoise, bGrabNoise).normalize()
|
|
36
|
-
})
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
import { EPSILON, Fn, cross, vec3, vec4 } from "three/tsl"
|
|
3
|
-
import { simplexNoise4d } from "./simplex-noise-4d"
|
|
4
|
-
|
|
5
|
-
export const curlNoise4d = Fn(([inputA]) => {
|
|
6
|
-
const aXPos = simplexNoise4d(inputA.add(vec4(EPSILON, 0, 0, 0)))
|
|
7
|
-
const aXNeg = simplexNoise4d(inputA.sub(vec4(EPSILON, 0, 0, 0)))
|
|
8
|
-
const aXAverage = aXPos.sub(aXNeg).div(EPSILON.mul(2))
|
|
9
|
-
|
|
10
|
-
const aYPos = simplexNoise4d(inputA.add(vec4(0, EPSILON, 0, 0)))
|
|
11
|
-
const aYNeg = simplexNoise4d(inputA.sub(vec4(0, EPSILON, 0, 0)))
|
|
12
|
-
const aYAverage = aYPos.sub(aYNeg).div(EPSILON.mul(2))
|
|
13
|
-
|
|
14
|
-
const aZPos = simplexNoise4d(inputA.add(vec4(0, 0, EPSILON, 0)))
|
|
15
|
-
const aZNeg = simplexNoise4d(inputA.sub(vec4(0, 0, EPSILON, 0)))
|
|
16
|
-
const aZAverage = aZPos.sub(aZNeg).div(EPSILON.mul(2))
|
|
17
|
-
|
|
18
|
-
const aGrabNoise = vec3(aXAverage, aYAverage, aZAverage).normalize()
|
|
19
|
-
const inputB = inputA.add(3.5)
|
|
20
|
-
|
|
21
|
-
const bXPos = simplexNoise4d(inputB.add(vec4(EPSILON, 0, 0, 0)))
|
|
22
|
-
const bXNeg = simplexNoise4d(inputB.sub(vec4(EPSILON, 0, 0, 0)))
|
|
23
|
-
const bXAverage = bXPos.sub(bXNeg).div(EPSILON.mul(2))
|
|
24
|
-
|
|
25
|
-
const bYPos = simplexNoise4d(inputB.add(vec4(0, EPSILON, 0, 0)))
|
|
26
|
-
const bYNeg = simplexNoise4d(inputB.sub(vec4(0, EPSILON, 0, 0)))
|
|
27
|
-
const bYAverage = bYPos.sub(bYNeg).div(EPSILON.mul(2))
|
|
28
|
-
|
|
29
|
-
const bZPos = simplexNoise4d(inputB.add(vec4(0, 0, EPSILON, 0)))
|
|
30
|
-
const bZNeg = simplexNoise4d(inputB.sub(vec4(0, 0, EPSILON, 0)))
|
|
31
|
-
const bZAverage = bZPos.sub(bZNeg).div(EPSILON.mul(2))
|
|
32
|
-
|
|
33
|
-
const bGrabNoise = vec3(bXAverage, bYAverage, bZAverage).normalize()
|
|
34
|
-
|
|
35
|
-
return cross(aGrabNoise, bGrabNoise).normalize()
|
|
36
|
-
})
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
import { Fn, vec3 } from "three/tsl"
|
|
3
|
-
import { simplexNoise3d } from "./simplex-noise-3d"
|
|
4
|
-
|
|
5
|
-
export const fbm = Fn(([pImmutable]) => {
|
|
6
|
-
const p = vec3(pImmutable).toVar()
|
|
7
|
-
const n1 = simplexNoise3d(p).mul(0.5).add(0.5)
|
|
8
|
-
const n2 = simplexNoise3d(p.mul(2.02).add(vec3(19.1, 7.3, 13.7)))
|
|
9
|
-
.mul(0.5)
|
|
10
|
-
.add(0.5)
|
|
11
|
-
|
|
12
|
-
return n1.mul(0.7).add(n2.mul(0.3))
|
|
13
|
-
})
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
import {
|
|
3
|
-
Fn,
|
|
4
|
-
abs,
|
|
5
|
-
dot,
|
|
6
|
-
floor,
|
|
7
|
-
fract,
|
|
8
|
-
mix,
|
|
9
|
-
mod,
|
|
10
|
-
mul,
|
|
11
|
-
step,
|
|
12
|
-
sub,
|
|
13
|
-
vec2,
|
|
14
|
-
vec3,
|
|
15
|
-
vec4,
|
|
16
|
-
} from "three/tsl"
|
|
17
|
-
import { fade, permute, taylorInvSqrt } from "./common"
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Classic Perlin noise (3D) — Ashima Arts / Stefan Gustavson port.
|
|
21
|
-
* Uses permute + taylorInvSqrt (same as simplex noise) for gradient generation.
|
|
22
|
-
*/
|
|
23
|
-
export const perlinNoise3d = Fn(([pImmutable]) => {
|
|
24
|
-
const P = vec3(pImmutable).toVar()
|
|
25
|
-
|
|
26
|
-
const Pi0 = vec3(mod(floor(P), 289.0)).toVar()
|
|
27
|
-
const Pi1 = vec3(mod(Pi0.add(1.0), 289.0)).toVar()
|
|
28
|
-
const Pf0 = vec3(fract(P)).toVar()
|
|
29
|
-
const Pf1 = vec3(Pf0.sub(1.0)).toVar()
|
|
30
|
-
|
|
31
|
-
const ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x)
|
|
32
|
-
const iy = vec4(Pi0.y, Pi0.y, Pi1.y, Pi1.y)
|
|
33
|
-
const iz0 = vec4(Pi0.z, Pi0.z, Pi0.z, Pi0.z)
|
|
34
|
-
const iz1 = vec4(Pi1.z, Pi1.z, Pi1.z, Pi1.z)
|
|
35
|
-
|
|
36
|
-
const ixy = vec4(permute(permute(ix).add(iy))).toVar()
|
|
37
|
-
const ixy0 = vec4(permute(ixy.add(iz0))).toVar()
|
|
38
|
-
const ixy1 = vec4(permute(ixy.add(iz1))).toVar()
|
|
39
|
-
|
|
40
|
-
const gx0 = vec4(ixy0.div(7.0)).toVar()
|
|
41
|
-
const gy0 = vec4(fract(floor(gx0).div(7.0)).sub(0.5)).toVar()
|
|
42
|
-
gx0.assign(fract(gx0))
|
|
43
|
-
const gz0 = vec4(sub(0.5, abs(gx0)).sub(abs(gy0))).toVar()
|
|
44
|
-
const sz0 = vec4(step(gz0, vec4(0.0))).toVar()
|
|
45
|
-
gx0.assign(gx0.sub(sz0.mul(step(0.0, gx0).sub(0.5))))
|
|
46
|
-
gy0.assign(gy0.sub(sz0.mul(step(0.0, gy0).sub(0.5))))
|
|
47
|
-
|
|
48
|
-
const gx1 = vec4(ixy1.div(7.0)).toVar()
|
|
49
|
-
const gy1 = vec4(fract(floor(gx1).div(7.0)).sub(0.5)).toVar()
|
|
50
|
-
gx1.assign(fract(gx1))
|
|
51
|
-
const gz1 = vec4(sub(0.5, abs(gx1)).sub(abs(gy1))).toVar()
|
|
52
|
-
const sz1 = vec4(step(gz1, vec4(0.0))).toVar()
|
|
53
|
-
gx1.assign(gx1.sub(sz1.mul(step(0.0, gx1).sub(0.5))))
|
|
54
|
-
gy1.assign(gy1.sub(sz1.mul(step(0.0, gy1).sub(0.5))))
|
|
55
|
-
|
|
56
|
-
const g000 = vec3(gx0.x, gy0.x, gz0.x).toVar()
|
|
57
|
-
const g100 = vec3(gx0.y, gy0.y, gz0.y).toVar()
|
|
58
|
-
const g010 = vec3(gx0.z, gy0.z, gz0.z).toVar()
|
|
59
|
-
const g110 = vec3(gx0.w, gy0.w, gz0.w).toVar()
|
|
60
|
-
const g001 = vec3(gx1.x, gy1.x, gz1.x).toVar()
|
|
61
|
-
const g101 = vec3(gx1.y, gy1.y, gz1.y).toVar()
|
|
62
|
-
const g011 = vec3(gx1.z, gy1.z, gz1.z).toVar()
|
|
63
|
-
const g111 = vec3(gx1.w, gy1.w, gz1.w).toVar()
|
|
64
|
-
|
|
65
|
-
const norm0 = vec4(
|
|
66
|
-
taylorInvSqrt(vec4(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110))),
|
|
67
|
-
).toVar()
|
|
68
|
-
g000.mulAssign(norm0.x)
|
|
69
|
-
g010.mulAssign(norm0.y)
|
|
70
|
-
g100.mulAssign(norm0.z)
|
|
71
|
-
g110.mulAssign(norm0.w)
|
|
72
|
-
|
|
73
|
-
const norm1 = vec4(
|
|
74
|
-
taylorInvSqrt(vec4(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111))),
|
|
75
|
-
).toVar()
|
|
76
|
-
g001.mulAssign(norm1.x)
|
|
77
|
-
g011.mulAssign(norm1.y)
|
|
78
|
-
g101.mulAssign(norm1.z)
|
|
79
|
-
g111.mulAssign(norm1.w)
|
|
80
|
-
|
|
81
|
-
const n000 = dot(g000, Pf0)
|
|
82
|
-
const n100 = dot(g100, vec3(Pf1.x, Pf0.y, Pf0.z))
|
|
83
|
-
const n010 = dot(g010, vec3(Pf0.x, Pf1.y, Pf0.z))
|
|
84
|
-
const n110 = dot(g110, vec3(Pf1.x, Pf1.y, Pf0.z))
|
|
85
|
-
const n001 = dot(g001, vec3(Pf0.x, Pf0.y, Pf1.z))
|
|
86
|
-
const n101 = dot(g101, vec3(Pf1.x, Pf0.y, Pf1.z))
|
|
87
|
-
const n011 = dot(g011, vec3(Pf0.x, Pf1.y, Pf1.z))
|
|
88
|
-
const n111 = dot(g111, Pf1)
|
|
89
|
-
|
|
90
|
-
const fadeXyz = vec3(fade(Pf0)).toVar()
|
|
91
|
-
const nZ = vec4(mix(vec4(n000, n100, n010, n110), vec4(n001, n101, n011, n111), fadeXyz.z))
|
|
92
|
-
const nYz = vec2(mix(nZ.xy, nZ.zw, fadeXyz.y))
|
|
93
|
-
const nXyz = mix(nYz.x, nYz.y, fadeXyz.x)
|
|
94
|
-
|
|
95
|
-
return mul(2.2, nXyz)
|
|
96
|
-
})
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
import { Fn, Loop, abs, clamp, float } from "three/tsl"
|
|
3
|
-
import { simplexNoise3d } from "./simplex-noise-3d"
|
|
4
|
-
|
|
5
|
-
export const ridgeNoise = Fn(([pImmutable]) => {
|
|
6
|
-
const p = pImmutable.toVar()
|
|
7
|
-
const value = float(0).toVar()
|
|
8
|
-
const amplitude = float(0.5).toVar()
|
|
9
|
-
const frequency = float(1).toVar()
|
|
10
|
-
const weight = float(1).toVar()
|
|
11
|
-
|
|
12
|
-
Loop({ end: 6, start: 0, type: "int" }, () => {
|
|
13
|
-
const n = float(1).sub(abs(simplexNoise3d(p.mul(frequency)).mul(2)))
|
|
14
|
-
const signal = n.mul(n).mul(weight)
|
|
15
|
-
|
|
16
|
-
value.addAssign(signal.mul(amplitude))
|
|
17
|
-
weight.assign(clamp(signal, 0, 1))
|
|
18
|
-
|
|
19
|
-
frequency.mulAssign(2.0)
|
|
20
|
-
amplitude.mulAssign(0.5)
|
|
21
|
-
})
|
|
22
|
-
|
|
23
|
-
return value
|
|
24
|
-
})
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
import {
|
|
3
|
-
Fn,
|
|
4
|
-
abs,
|
|
5
|
-
dot,
|
|
6
|
-
float,
|
|
7
|
-
floor,
|
|
8
|
-
max,
|
|
9
|
-
min,
|
|
10
|
-
mod,
|
|
11
|
-
mul,
|
|
12
|
-
step,
|
|
13
|
-
sub,
|
|
14
|
-
vec2,
|
|
15
|
-
vec3,
|
|
16
|
-
vec4,
|
|
17
|
-
} from "three/tsl"
|
|
18
|
-
import { permute, taylorInvSqrt } from "./common"
|
|
19
|
-
|
|
20
|
-
export const simplexNoise3d = Fn(([vImmutable]) => {
|
|
21
|
-
const v = vec3(vImmutable).toVar()
|
|
22
|
-
const c = vec2(1.0 / 6.0, 1.0 / 3.0)
|
|
23
|
-
const d = vec4(0.0, 0.5, 1.0, 2.0)
|
|
24
|
-
const i = vec3(floor(v.add(dot(v, c.yyy)))).toVar()
|
|
25
|
-
const x0 = vec3(v.sub(i).add(dot(i, c.xxx))).toVar()
|
|
26
|
-
const g = vec3(step(x0.yzx, x0.xyz)).toVar()
|
|
27
|
-
const l = vec3(sub(1.0, g)).toVar()
|
|
28
|
-
const i1 = vec3(min(g.xyz, l.zxy)).toVar()
|
|
29
|
-
const i2 = vec3(max(g.xyz, l.zxy)).toVar()
|
|
30
|
-
const x1 = vec3(x0.sub(i1).add(mul(1.0, c.xxx))).toVar()
|
|
31
|
-
const x2 = vec3(x0.sub(i2).add(mul(2.0, c.xxx))).toVar()
|
|
32
|
-
const x3 = vec3(x0.sub(1).add(mul(3.0, c.xxx))).toVar()
|
|
33
|
-
|
|
34
|
-
i.assign(mod(i, 289.0))
|
|
35
|
-
|
|
36
|
-
const p = vec4(
|
|
37
|
-
permute(
|
|
38
|
-
permute(
|
|
39
|
-
permute(i.z.add(vec4(0.0, i1.z, i2.z, 1.0))).add(i.y.add(vec4(0.0, i1.y, i2.y, 1.0))),
|
|
40
|
-
).add(i.x.add(vec4(0.0, i1.x, i2.x, 1.0))),
|
|
41
|
-
),
|
|
42
|
-
).toVar()
|
|
43
|
-
|
|
44
|
-
const n = float(1.0 / 7.0).toVar()
|
|
45
|
-
const ns = vec3(n.mul(d.wyz).sub(d.xzx)).toVar()
|
|
46
|
-
const j = vec4(p.sub(mul(49.0, floor(p.mul(ns.z.mul(ns.z)))))).toVar()
|
|
47
|
-
const x = vec4(floor(j.mul(ns.z)).mul(ns.x).add(ns.yyyy)).toVar()
|
|
48
|
-
const y = vec4(floor(j.sub(mul(7.0, floor(j.mul(ns.z))))).mul(ns.x).add(ns.yyyy)).toVar()
|
|
49
|
-
const h = vec4(sub(1.0, abs(x).sub(abs(y)))).toVar()
|
|
50
|
-
const b0 = vec4(x.xy, y.xy).toVar()
|
|
51
|
-
const b1 = vec4(x.zw, y.zw).toVar()
|
|
52
|
-
const s0 = vec4(floor(b0).mul(2.0).add(1.0)).toVar()
|
|
53
|
-
const s1 = vec4(floor(b1).mul(2.0).add(1.0)).toVar()
|
|
54
|
-
const sh = vec4(step(h, vec4(0.0)).negate()).toVar()
|
|
55
|
-
const a0 = vec4(b0.xzyw.add(s0.xzyw.mul(sh.xxyy))).toVar()
|
|
56
|
-
const a1 = vec4(b1.xzyw.add(s1.xzyw.mul(sh.zzww))).toVar()
|
|
57
|
-
const p0 = vec3(a0.xy, h.x).toVar()
|
|
58
|
-
const p1 = vec3(a0.zw, h.y).toVar()
|
|
59
|
-
const p2 = vec3(a1.xy, h.z).toVar()
|
|
60
|
-
const p3 = vec3(a1.zw, h.w).toVar()
|
|
61
|
-
const norm = vec4(
|
|
62
|
-
taylorInvSqrt(vec4(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3))),
|
|
63
|
-
).toVar()
|
|
64
|
-
|
|
65
|
-
p0.mulAssign(norm.x)
|
|
66
|
-
p1.mulAssign(norm.y)
|
|
67
|
-
p2.mulAssign(norm.z)
|
|
68
|
-
p3.mulAssign(norm.w)
|
|
69
|
-
|
|
70
|
-
const m = vec4(
|
|
71
|
-
max(sub(0.6, vec4(dot(x0, x0), dot(x1, x1), dot(x2, x2), dot(x3, x3))), 0.0),
|
|
72
|
-
).toVar()
|
|
73
|
-
m.assign(m.mul(m))
|
|
74
|
-
|
|
75
|
-
return mul(
|
|
76
|
-
42.0,
|
|
77
|
-
dot(m.mul(m), vec4(dot(p0, x0), dot(p1, x1), dot(p2, x2), dot(p3, x3))),
|
|
78
|
-
)
|
|
79
|
-
})
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
import {
|
|
3
|
-
Fn,
|
|
4
|
-
clamp,
|
|
5
|
-
dot,
|
|
6
|
-
float,
|
|
7
|
-
floor,
|
|
8
|
-
max,
|
|
9
|
-
mod,
|
|
10
|
-
mul,
|
|
11
|
-
step,
|
|
12
|
-
sub,
|
|
13
|
-
vec2,
|
|
14
|
-
vec3,
|
|
15
|
-
vec4,
|
|
16
|
-
} from "three/tsl"
|
|
17
|
-
import { grad4, permute, taylorInvSqrt } from "./common"
|
|
18
|
-
|
|
19
|
-
export const simplexNoise4d = Fn(([vImmutable]) => {
|
|
20
|
-
const v = vec4(vImmutable).toVar()
|
|
21
|
-
const c = vec2(0.1381966011250105, 0.30901699437494745)
|
|
22
|
-
const i = vec4(floor(v.add(dot(v, c.yyyy)))).toVar()
|
|
23
|
-
const x0 = vec4(v.sub(i).add(dot(i, c.xxxx))).toVar()
|
|
24
|
-
const i0 = vec4().toVar()
|
|
25
|
-
const isX = vec3(step(x0.yzw, x0.xxx)).toVar()
|
|
26
|
-
const isYZ = vec3(step(x0.zww, x0.yyz)).toVar()
|
|
27
|
-
|
|
28
|
-
i0.x.assign(isX.x.add(isX.y).add(isX.z))
|
|
29
|
-
i0.yzw.assign(sub(1.0, isX))
|
|
30
|
-
i0.y.addAssign(isYZ.x.add(isYZ.y))
|
|
31
|
-
i0.zw.addAssign(sub(1.0, isYZ.xy))
|
|
32
|
-
i0.z.addAssign(isYZ.z)
|
|
33
|
-
i0.w.addAssign(sub(1.0, isYZ.z))
|
|
34
|
-
|
|
35
|
-
const i3 = vec4(clamp(i0, 0.0, 1.0)).toVar()
|
|
36
|
-
const i2 = vec4(clamp(i0.sub(1.0), 0.0, 1.0)).toVar()
|
|
37
|
-
const i1 = vec4(clamp(i0.sub(2.0), 0.0, 1.0)).toVar()
|
|
38
|
-
const x1 = vec4(x0.sub(i1).add(mul(1.0, c.xxxx))).toVar()
|
|
39
|
-
const x2 = vec4(x0.sub(i2).add(mul(2.0, c.xxxx))).toVar()
|
|
40
|
-
const x3 = vec4(x0.sub(i3).add(mul(3.0, c.xxxx))).toVar()
|
|
41
|
-
const x4 = vec4(x0.sub(1.0).add(mul(4.0, c.xxxx))).toVar()
|
|
42
|
-
|
|
43
|
-
i.assign(mod(i, 289.0))
|
|
44
|
-
|
|
45
|
-
const j0 = float(permute(permute(permute(permute(i.w).add(i.z)).add(i.y)).add(i.x))).toVar()
|
|
46
|
-
const j1 = vec4(
|
|
47
|
-
permute(
|
|
48
|
-
permute(
|
|
49
|
-
permute(
|
|
50
|
-
permute(i.w.add(vec4(i1.w, i2.w, i3.w, 1.0)))
|
|
51
|
-
.add(i.z)
|
|
52
|
-
.add(vec4(i1.z, i2.z, i3.z, 1.0)),
|
|
53
|
-
)
|
|
54
|
-
.add(i.y)
|
|
55
|
-
.add(vec4(i1.y, i2.y, i3.y, 1.0)),
|
|
56
|
-
)
|
|
57
|
-
.add(i.x)
|
|
58
|
-
.add(vec4(i1.x, i2.x, i3.x, 1.0)),
|
|
59
|
-
),
|
|
60
|
-
).toVar()
|
|
61
|
-
|
|
62
|
-
const ip = vec4(1.0 / 294.0, 1.0 / 49.0, 1.0 / 7.0, 0.0).toVar()
|
|
63
|
-
const p0 = vec4(grad4(j0, ip)).toVar()
|
|
64
|
-
const p1 = vec4(grad4(j1.x, ip)).toVar()
|
|
65
|
-
const p2 = vec4(grad4(j1.y, ip)).toVar()
|
|
66
|
-
const p3 = vec4(grad4(j1.z, ip)).toVar()
|
|
67
|
-
const p4 = vec4(grad4(j1.w, ip)).toVar()
|
|
68
|
-
const norm = vec4(
|
|
69
|
-
taylorInvSqrt(vec4(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3))),
|
|
70
|
-
).toVar()
|
|
71
|
-
|
|
72
|
-
p0.mulAssign(norm.x)
|
|
73
|
-
p1.mulAssign(norm.y)
|
|
74
|
-
p2.mulAssign(norm.z)
|
|
75
|
-
p3.mulAssign(norm.w)
|
|
76
|
-
p4.mulAssign(taylorInvSqrt(dot(p4, p4)))
|
|
77
|
-
|
|
78
|
-
const m0 = vec3(max(sub(0.6, vec3(dot(x0, x0), dot(x1, x1), dot(x2, x2))), 0.0)).toVar()
|
|
79
|
-
const m1 = vec2(max(sub(0.6, vec2(dot(x3, x3), dot(x4, x4))), 0.0)).toVar()
|
|
80
|
-
m0.assign(m0.mul(m0))
|
|
81
|
-
m1.assign(m1.mul(m1))
|
|
82
|
-
|
|
83
|
-
return mul(
|
|
84
|
-
49.0,
|
|
85
|
-
dot(m0.mul(m0), vec3(dot(p0, x0), dot(p1, x1), dot(p2, x2))).add(
|
|
86
|
-
dot(m1.mul(m1), vec2(dot(p3, x3), dot(p4, x4))),
|
|
87
|
-
),
|
|
88
|
-
)
|
|
89
|
-
})
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
import { Fn, float, Loop, sin, vec2 } from "three/tsl"
|
|
3
|
-
|
|
4
|
-
interface TurbulenceOptions {
|
|
5
|
-
_amp?: number
|
|
6
|
-
_exp?: number
|
|
7
|
-
_freq?: number
|
|
8
|
-
_num?: number
|
|
9
|
-
_speed?: number
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const HALF_PI = 1.5707963267948966
|
|
13
|
-
const THETA = 0.9272952180016122
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Turbulence based on XorDev's "Turbulent Dark" technique.
|
|
17
|
-
* Displaces coordinates by layering rotated sine waves at increasing frequencies
|
|
18
|
-
*
|
|
19
|
-
* @see https://mini.gmshaders.com/p/turbulence
|
|
20
|
-
*/
|
|
21
|
-
export const turbulence = Fn(([pInput, time, rawOptions]) => {
|
|
22
|
-
const options = (rawOptions as TurbulenceOptions | undefined) ?? {}
|
|
23
|
-
const {
|
|
24
|
-
_num = 10,
|
|
25
|
-
_amp = 0.7,
|
|
26
|
-
_speed = 0.3,
|
|
27
|
-
_freq = 2.0,
|
|
28
|
-
_exp = 1.4,
|
|
29
|
-
} = options
|
|
30
|
-
|
|
31
|
-
const p = vec2(pInput.xy).toVar()
|
|
32
|
-
const t = time.mul(float(_speed))
|
|
33
|
-
const freq = float(_freq).toVar()
|
|
34
|
-
const angle = float(0.0).toVar()
|
|
35
|
-
const iter = float(0.0).toVar()
|
|
36
|
-
|
|
37
|
-
Loop({ end: _num, start: 0, type: "int" }, () => {
|
|
38
|
-
const c = sin(angle.add(HALF_PI))
|
|
39
|
-
const s = sin(angle)
|
|
40
|
-
|
|
41
|
-
const phase = freq
|
|
42
|
-
.mul(p.x.mul(s).add(p.y.mul(c)))
|
|
43
|
-
.add(t)
|
|
44
|
-
.add(iter)
|
|
45
|
-
|
|
46
|
-
const scale = float(_amp).mul(sin(phase)).div(freq)
|
|
47
|
-
p.x.addAssign(scale.mul(c))
|
|
48
|
-
p.y.addAssign(scale.mul(s.negate()))
|
|
49
|
-
|
|
50
|
-
angle.addAssign(THETA)
|
|
51
|
-
freq.mulAssign(float(_exp))
|
|
52
|
-
iter.addAssign(1.0)
|
|
53
|
-
})
|
|
54
|
-
|
|
55
|
-
return p.sub(pInput.xy)
|
|
56
|
-
})
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
import { Fn, dot, floor, fract, mix, sin, vec3 } from "three/tsl"
|
|
3
|
-
import { fade } from "./common"
|
|
4
|
-
|
|
5
|
-
const hash31 = Fn(([p]) => {
|
|
6
|
-
return fract(sin(dot(p, vec3(127.1, 311.7, 74.7))).mul(43758.5453123))
|
|
7
|
-
})
|
|
8
|
-
|
|
9
|
-
export const valueNoise3d = Fn(([pImmutable]) => {
|
|
10
|
-
const p = vec3(pImmutable).toVar()
|
|
11
|
-
const cell = vec3(floor(p)).toVar()
|
|
12
|
-
const local = vec3(fract(p)).toVar()
|
|
13
|
-
const eased = vec3(fade(local)).toVar()
|
|
14
|
-
|
|
15
|
-
const n000 = hash31(cell)
|
|
16
|
-
const n100 = hash31(cell.add(vec3(1, 0, 0)))
|
|
17
|
-
const n010 = hash31(cell.add(vec3(0, 1, 0)))
|
|
18
|
-
const n110 = hash31(cell.add(vec3(1, 1, 0)))
|
|
19
|
-
const n001 = hash31(cell.add(vec3(0, 0, 1)))
|
|
20
|
-
const n101 = hash31(cell.add(vec3(1, 0, 1)))
|
|
21
|
-
const n011 = hash31(cell.add(vec3(0, 1, 1)))
|
|
22
|
-
const n111 = hash31(cell.add(vec3(1, 1, 1)))
|
|
23
|
-
|
|
24
|
-
const nx00 = mix(n000, n100, eased.x)
|
|
25
|
-
const nx10 = mix(n010, n110, eased.x)
|
|
26
|
-
const nx01 = mix(n001, n101, eased.x)
|
|
27
|
-
const nx11 = mix(n011, n111, eased.x)
|
|
28
|
-
const nxy0 = mix(nx00, nx10, eased.y)
|
|
29
|
-
const nxy1 = mix(nx01, nx11, eased.y)
|
|
30
|
-
|
|
31
|
-
return mix(nxy0, nxy1, eased.z).mul(2).sub(1)
|
|
32
|
-
})
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
import { Fn, dot, float, floor, fract, length, min, sin, vec3 } from "three/tsl"
|
|
3
|
-
|
|
4
|
-
const random3 = Fn(([p]) => {
|
|
5
|
-
return fract(
|
|
6
|
-
sin(
|
|
7
|
-
vec3(
|
|
8
|
-
dot(p, vec3(127.1, 311.7, 74.7)),
|
|
9
|
-
dot(p, vec3(269.5, 183.3, 246.1)),
|
|
10
|
-
dot(p, vec3(113.5, 271.9, 124.6)),
|
|
11
|
-
),
|
|
12
|
-
).mul(43758.5453),
|
|
13
|
-
)
|
|
14
|
-
})
|
|
15
|
-
|
|
16
|
-
const checkNeighbor = Fn(([i, f, neighbor, currentMin]) => {
|
|
17
|
-
const point = random3(i.add(neighbor))
|
|
18
|
-
const diff = neighbor.add(point).sub(f)
|
|
19
|
-
|
|
20
|
-
return min(currentMin, length(diff))
|
|
21
|
-
})
|
|
22
|
-
|
|
23
|
-
export const voronoiNoise3d = Fn(([pImmutable]) => {
|
|
24
|
-
const p = vec3(pImmutable).toVar()
|
|
25
|
-
const i = vec3(floor(p)).toVar()
|
|
26
|
-
const f = vec3(fract(p)).toVar()
|
|
27
|
-
|
|
28
|
-
const d = float(1).toVar()
|
|
29
|
-
|
|
30
|
-
// Unrolled 3x3x3 neighbor search
|
|
31
|
-
d.assign(checkNeighbor(i, f, vec3(-1, -1, -1), d))
|
|
32
|
-
d.assign(checkNeighbor(i, f, vec3(-1, -1, 0), d))
|
|
33
|
-
d.assign(checkNeighbor(i, f, vec3(-1, -1, 1), d))
|
|
34
|
-
d.assign(checkNeighbor(i, f, vec3(-1, 0, -1), d))
|
|
35
|
-
d.assign(checkNeighbor(i, f, vec3(-1, 0, 0), d))
|
|
36
|
-
d.assign(checkNeighbor(i, f, vec3(-1, 0, 1), d))
|
|
37
|
-
d.assign(checkNeighbor(i, f, vec3(-1, 1, -1), d))
|
|
38
|
-
d.assign(checkNeighbor(i, f, vec3(-1, 1, 0), d))
|
|
39
|
-
d.assign(checkNeighbor(i, f, vec3(-1, 1, 1), d))
|
|
40
|
-
d.assign(checkNeighbor(i, f, vec3(0, -1, -1), d))
|
|
41
|
-
d.assign(checkNeighbor(i, f, vec3(0, -1, 0), d))
|
|
42
|
-
d.assign(checkNeighbor(i, f, vec3(0, -1, 1), d))
|
|
43
|
-
d.assign(checkNeighbor(i, f, vec3(0, 0, -1), d))
|
|
44
|
-
d.assign(checkNeighbor(i, f, vec3(0, 0, 0), d))
|
|
45
|
-
d.assign(checkNeighbor(i, f, vec3(0, 0, 1), d))
|
|
46
|
-
d.assign(checkNeighbor(i, f, vec3(0, 1, -1), d))
|
|
47
|
-
d.assign(checkNeighbor(i, f, vec3(0, 1, 0), d))
|
|
48
|
-
d.assign(checkNeighbor(i, f, vec3(0, 1, 1), d))
|
|
49
|
-
d.assign(checkNeighbor(i, f, vec3(1, -1, -1), d))
|
|
50
|
-
d.assign(checkNeighbor(i, f, vec3(1, -1, 0), d))
|
|
51
|
-
d.assign(checkNeighbor(i, f, vec3(1, -1, 1), d))
|
|
52
|
-
d.assign(checkNeighbor(i, f, vec3(1, 0, -1), d))
|
|
53
|
-
d.assign(checkNeighbor(i, f, vec3(1, 0, 0), d))
|
|
54
|
-
d.assign(checkNeighbor(i, f, vec3(1, 0, 1), d))
|
|
55
|
-
d.assign(checkNeighbor(i, f, vec3(1, 1, -1), d))
|
|
56
|
-
d.assign(checkNeighbor(i, f, vec3(1, 1, 0), d))
|
|
57
|
-
d.assign(checkNeighbor(i, f, vec3(1, 1, 1), d))
|
|
58
|
-
|
|
59
|
-
return d
|
|
60
|
-
})
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
import { Fn, abs, float } from "three/tsl"
|
|
3
|
-
import { bloom } from "./bloom"
|
|
4
|
-
import { repeatingPattern } from "./repeating-pattern"
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Returns a repeating pattern of lines with a bloom effect.
|
|
8
|
-
*/
|
|
9
|
-
export const bloomEdgePattern = Fn(([pattern, repeat, edge, exponent, time = float(0)]) => {
|
|
10
|
-
pattern.assign(repeatingPattern(pattern, repeat, time))
|
|
11
|
-
pattern.assign(abs(pattern))
|
|
12
|
-
pattern.assign(bloom(pattern, edge, exponent))
|
|
13
|
-
|
|
14
|
-
return pattern
|
|
15
|
-
})
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
import { Fn, PI, mix, sin, smoothstep, vec3 } from "three/tsl"
|
|
3
|
-
import { fbm } from "../noise/fbm"
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Returns a canvas weave pattern value for a given UV coordinate.
|
|
7
|
-
*/
|
|
8
|
-
export const canvasWeavePattern = Fn(([uv]) => {
|
|
9
|
-
const grid = uv.mul(200.0).fract()
|
|
10
|
-
const noiseOffset = fbm(vec3(uv.mul(30.0), 0.0), { octaves: 3 }).mul(0.1)
|
|
11
|
-
const warpedGrid = grid.add(noiseOffset)
|
|
12
|
-
|
|
13
|
-
const weaveX = sin(
|
|
14
|
-
warpedGrid.x.mul(PI).add(fbm(vec3(uv.mul(100.0), 0.0), { octaves: 2 }).mul(0.5)),
|
|
15
|
-
)
|
|
16
|
-
const weaveY = sin(
|
|
17
|
-
warpedGrid.y.mul(PI).add(fbm(vec3(uv.mul(100.0).add(0.5), 0.0), { octaves: 2 }).mul(0.5)),
|
|
18
|
-
)
|
|
19
|
-
|
|
20
|
-
const weave = weaveX.mul(weaveY)
|
|
21
|
-
const smoothedWeave = smoothstep(-0.3, 0.3, weave)
|
|
22
|
-
|
|
23
|
-
return mix(0.9, 1.0, smoothedWeave)
|
|
24
|
-
})
|