@paper-design/shaders-react 0.0.0-canary.156ab35
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/LICENSE +21 -0
- package/README.md +29 -0
- package/dist/color-props-are-equal.d.ts +6 -0
- package/dist/color-props-are-equal.js +34 -0
- package/dist/color-props-are-equal.js.map +7 -0
- package/dist/index.d.ts +86 -0
- package/dist/index.js +129 -0
- package/dist/index.js.map +7 -0
- package/dist/shader-mount.d.ts +38 -0
- package/dist/shader-mount.js +149 -0
- package/dist/shader-mount.js.map +7 -0
- package/dist/shaders/color-panels.d.ts +12 -0
- package/dist/shaders/color-panels.js +173 -0
- package/dist/shaders/color-panels.js.map +7 -0
- package/dist/shaders/dithering.d.ts +16 -0
- package/dist/shaders/dithering.js +158 -0
- package/dist/shaders/dithering.js.map +7 -0
- package/dist/shaders/dot-grid.d.ts +9 -0
- package/dist/shaders/dot-grid.js +139 -0
- package/dist/shaders/dot-grid.js.map +7 -0
- package/dist/shaders/dot-orbit.d.ts +12 -0
- package/dist/shaders/dot-orbit.js +130 -0
- package/dist/shaders/dot-orbit.js.map +7 -0
- package/dist/shaders/fluted-glass.d.ts +14 -0
- package/dist/shaders/fluted-glass.js +183 -0
- package/dist/shaders/fluted-glass.js.map +7 -0
- package/dist/shaders/god-rays.d.ts +12 -0
- package/dist/shaders/god-rays.js +150 -0
- package/dist/shaders/god-rays.js.map +7 -0
- package/dist/shaders/grain-gradient.d.ts +14 -0
- package/dist/shaders/grain-gradient.js +177 -0
- package/dist/shaders/grain-gradient.js.map +7 -0
- package/dist/shaders/heatmap.d.ts +14 -0
- package/dist/shaders/heatmap.js +161 -0
- package/dist/shaders/heatmap.js.map +7 -0
- package/dist/shaders/image-dithering.d.ts +14 -0
- package/dist/shaders/image-dithering.js +145 -0
- package/dist/shaders/image-dithering.js.map +7 -0
- package/dist/shaders/image-halftone-dots.d.ts +12 -0
- package/dist/shaders/image-halftone-dots.js +171 -0
- package/dist/shaders/image-halftone-dots.js.map +7 -0
- package/dist/shaders/liquid-metal.d.ts +16 -0
- package/dist/shaders/liquid-metal.js +201 -0
- package/dist/shaders/liquid-metal.js.map +7 -0
- package/dist/shaders/mesh-gradient.d.ts +12 -0
- package/dist/shaders/mesh-gradient.js +129 -0
- package/dist/shaders/mesh-gradient.js.map +7 -0
- package/dist/shaders/metaballs.d.ts +12 -0
- package/dist/shaders/metaballs.js +121 -0
- package/dist/shaders/metaballs.js.map +7 -0
- package/dist/shaders/neuro-noise.d.ts +12 -0
- package/dist/shaders/neuro-noise.js +126 -0
- package/dist/shaders/neuro-noise.js.map +7 -0
- package/dist/shaders/paper-texture.d.ts +20 -0
- package/dist/shaders/paper-texture.js +198 -0
- package/dist/shaders/paper-texture.js.map +7 -0
- package/dist/shaders/perlin-noise.d.ts +12 -0
- package/dist/shaders/perlin-noise.js +142 -0
- package/dist/shaders/perlin-noise.js.map +7 -0
- package/dist/shaders/pulsing-border.d.ts +12 -0
- package/dist/shaders/pulsing-border.js +216 -0
- package/dist/shaders/pulsing-border.js.map +7 -0
- package/dist/shaders/simplex-noise.d.ts +12 -0
- package/dist/shaders/simplex-noise.js +125 -0
- package/dist/shaders/simplex-noise.js.map +7 -0
- package/dist/shaders/smoke-ring.d.ts +12 -0
- package/dist/shaders/smoke-ring.js +137 -0
- package/dist/shaders/smoke-ring.js.map +7 -0
- package/dist/shaders/spiral.d.ts +12 -0
- package/dist/shaders/spiral.js +151 -0
- package/dist/shaders/spiral.js.map +7 -0
- package/dist/shaders/static-mesh-gradient.d.ts +12 -0
- package/dist/shaders/static-mesh-gradient.js +158 -0
- package/dist/shaders/static-mesh-gradient.js.map +7 -0
- package/dist/shaders/static-radial-gradient.d.ts +12 -0
- package/dist/shaders/static-radial-gradient.js +178 -0
- package/dist/shaders/static-radial-gradient.js.map +7 -0
- package/dist/shaders/swirl.d.ts +12 -0
- package/dist/shaders/swirl.js +146 -0
- package/dist/shaders/swirl.js.map +7 -0
- package/dist/shaders/voronoi.d.ts +12 -0
- package/dist/shaders/voronoi.js +137 -0
- package/dist/shaders/voronoi.js.map +7 -0
- package/dist/shaders/warp.d.ts +14 -0
- package/dist/shaders/warp.js +194 -0
- package/dist/shaders/warp.js.map +7 -0
- package/dist/shaders/water.d.ts +14 -0
- package/dist/shaders/water.js +148 -0
- package/dist/shaders/water.js.map +7 -0
- package/dist/shaders/waves.d.ts +12 -0
- package/dist/shaders/waves.js +136 -0
- package/dist/shaders/waves.js.map +7 -0
- package/dist/suspend.d.ts +8 -0
- package/dist/suspend.js +43 -0
- package/dist/suspend.js.map +7 -0
- package/dist/transparent-pixel.d.ts +1 -0
- package/dist/transparent-pixel.js +10 -0
- package/dist/transparent-pixel.js.map +7 -0
- package/dist/use-merge-refs.d.ts +6 -0
- package/dist/use-merge-refs.js +48 -0
- package/dist/use-merge-refs.js.map +7 -0
- package/package.json +41 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
2
|
+
* Paper Shaders *
|
|
3
|
+
* https://github.com/paper-design/shaders *
|
|
4
|
+
* * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
5
|
+
|
|
6
|
+
import { memo } from "react";
|
|
7
|
+
import { ShaderMount } from "../shader-mount.js";
|
|
8
|
+
import { colorPropsAreEqual } from "../color-props-are-equal.js";
|
|
9
|
+
import {
|
|
10
|
+
defaultObjectSizing,
|
|
11
|
+
getShaderColorFromString,
|
|
12
|
+
getShaderNoiseTexture,
|
|
13
|
+
metaballsFragmentShader,
|
|
14
|
+
ShaderFitOptions
|
|
15
|
+
} from "@paper-design/shaders";
|
|
16
|
+
import { jsx } from "react/jsx-runtime";
|
|
17
|
+
const defaultPreset = {
|
|
18
|
+
name: "Default",
|
|
19
|
+
params: {
|
|
20
|
+
...defaultObjectSizing,
|
|
21
|
+
scale: 1,
|
|
22
|
+
speed: 1,
|
|
23
|
+
frame: 0,
|
|
24
|
+
colorBack: "#000000",
|
|
25
|
+
colors: ["#6e33cc", "#ff5500", "#ffc105", "#ffc800", "#f585ff"],
|
|
26
|
+
count: 10,
|
|
27
|
+
size: 0.83
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
const inkDropsPreset = {
|
|
31
|
+
name: "Ink Drops",
|
|
32
|
+
params: {
|
|
33
|
+
...defaultObjectSizing,
|
|
34
|
+
scale: 1,
|
|
35
|
+
speed: 2,
|
|
36
|
+
frame: 0,
|
|
37
|
+
colorBack: "#ffffff00",
|
|
38
|
+
colors: ["#000000"],
|
|
39
|
+
count: 18,
|
|
40
|
+
size: 0.1
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
const backgroundPreset = {
|
|
44
|
+
name: "Background",
|
|
45
|
+
params: {
|
|
46
|
+
...defaultObjectSizing,
|
|
47
|
+
speed: 0.5,
|
|
48
|
+
frame: 0,
|
|
49
|
+
colors: ["#ae00ff", "#00ff95", "#ffc105"],
|
|
50
|
+
colorBack: "#2a273f",
|
|
51
|
+
count: 13,
|
|
52
|
+
size: 0.81,
|
|
53
|
+
scale: 4,
|
|
54
|
+
rotation: 0,
|
|
55
|
+
offsetX: -0.3
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
const solarPreset = {
|
|
59
|
+
name: "Solar",
|
|
60
|
+
params: {
|
|
61
|
+
...defaultObjectSizing,
|
|
62
|
+
speed: 1,
|
|
63
|
+
frame: 0,
|
|
64
|
+
colors: ["#ffc800", "#ff5500", "#ffc105"],
|
|
65
|
+
colorBack: "#102f84",
|
|
66
|
+
count: 7,
|
|
67
|
+
size: 0.75,
|
|
68
|
+
scale: 1
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
const metaballsPresets = [defaultPreset, inkDropsPreset, solarPreset, backgroundPreset];
|
|
72
|
+
const Metaballs = memo(function MetaballsImpl({
|
|
73
|
+
// Own props
|
|
74
|
+
speed = defaultPreset.params.speed,
|
|
75
|
+
frame = defaultPreset.params.frame,
|
|
76
|
+
colorBack = defaultPreset.params.colorBack,
|
|
77
|
+
colors = defaultPreset.params.colors,
|
|
78
|
+
size = defaultPreset.params.size,
|
|
79
|
+
count = defaultPreset.params.count,
|
|
80
|
+
// Sizing props
|
|
81
|
+
fit = defaultPreset.params.fit,
|
|
82
|
+
rotation = defaultPreset.params.rotation,
|
|
83
|
+
scale = defaultPreset.params.scale,
|
|
84
|
+
originX = defaultPreset.params.originX,
|
|
85
|
+
originY = defaultPreset.params.originY,
|
|
86
|
+
offsetX = defaultPreset.params.offsetX,
|
|
87
|
+
offsetY = defaultPreset.params.offsetY,
|
|
88
|
+
worldWidth = defaultPreset.params.worldWidth,
|
|
89
|
+
worldHeight = defaultPreset.params.worldHeight,
|
|
90
|
+
...props
|
|
91
|
+
}) {
|
|
92
|
+
const uniforms = {
|
|
93
|
+
// Own uniforms
|
|
94
|
+
u_colorBack: getShaderColorFromString(colorBack),
|
|
95
|
+
u_colors: colors.map(getShaderColorFromString),
|
|
96
|
+
u_colorsCount: colors.length,
|
|
97
|
+
u_size: size,
|
|
98
|
+
u_count: count,
|
|
99
|
+
u_noiseTexture: getShaderNoiseTexture(),
|
|
100
|
+
// Sizing uniforms
|
|
101
|
+
u_fit: ShaderFitOptions[fit],
|
|
102
|
+
u_rotation: rotation,
|
|
103
|
+
u_scale: scale,
|
|
104
|
+
u_offsetX: offsetX,
|
|
105
|
+
u_offsetY: offsetY,
|
|
106
|
+
u_originX: originX,
|
|
107
|
+
u_originY: originY,
|
|
108
|
+
u_worldWidth: worldWidth,
|
|
109
|
+
u_worldHeight: worldHeight
|
|
110
|
+
};
|
|
111
|
+
return /* @__PURE__ */ jsx(ShaderMount, { ...props, speed, frame, fragmentShader: metaballsFragmentShader, uniforms });
|
|
112
|
+
}, colorPropsAreEqual);
|
|
113
|
+
export {
|
|
114
|
+
Metaballs,
|
|
115
|
+
backgroundPreset,
|
|
116
|
+
defaultPreset,
|
|
117
|
+
inkDropsPreset,
|
|
118
|
+
metaballsPresets,
|
|
119
|
+
solarPreset
|
|
120
|
+
};
|
|
121
|
+
//# sourceMappingURL=metaballs.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/shaders/metaballs.tsx"],
|
|
4
|
+
"sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport { colorPropsAreEqual } from '../color-props-are-equal.js';\nimport {\n defaultObjectSizing,\n getShaderColorFromString,\n getShaderNoiseTexture,\n metaballsFragmentShader,\n ShaderFitOptions,\n type MetaballsParams,\n type MetaballsUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface MetaballsProps extends ShaderComponentProps, MetaballsParams {}\n\ntype MetaballsPreset = ShaderPreset<MetaballsParams>;\n\nexport const defaultPreset: MetaballsPreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n scale: 1,\n speed: 1,\n frame: 0,\n colorBack: '#000000',\n colors: ['#6e33cc', '#ff5500', '#ffc105', '#ffc800', '#f585ff'],\n count: 10,\n size: 0.83,\n },\n};\n\nexport const inkDropsPreset: MetaballsPreset = {\n name: 'Ink Drops',\n params: {\n ...defaultObjectSizing,\n scale: 1,\n speed: 2,\n frame: 0,\n colorBack: '#ffffff00',\n colors: ['#000000'],\n count: 18,\n size: 0.1,\n },\n};\n\nexport const backgroundPreset: MetaballsPreset = {\n name: 'Background',\n params: {\n ...defaultObjectSizing,\n speed: 0.5,\n frame: 0,\n colors: ['#ae00ff', '#00ff95', '#ffc105'],\n colorBack: '#2a273f',\n count: 13,\n size: 0.81,\n scale: 4.0,\n rotation: 0,\n offsetX: -0.3,\n },\n};\n\nexport const solarPreset: MetaballsPreset = {\n name: 'Solar',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 0,\n colors: ['#ffc800', '#ff5500', '#ffc105'],\n colorBack: '#102f84',\n count: 7,\n size: 0.75,\n scale: 1,\n },\n};\n\nexport const metaballsPresets: MetaballsPreset[] = [defaultPreset, inkDropsPreset, solarPreset, backgroundPreset];\n\nexport const Metaballs: React.FC<MetaballsProps> = memo(function MetaballsImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorBack = defaultPreset.params.colorBack,\n colors = defaultPreset.params.colors,\n size = defaultPreset.params.size,\n count = defaultPreset.params.count,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n rotation = defaultPreset.params.rotation,\n scale = defaultPreset.params.scale,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n ...props\n}: MetaballsProps) {\n const uniforms = {\n // Own uniforms\n u_colorBack: getShaderColorFromString(colorBack),\n u_colors: colors.map(getShaderColorFromString),\n u_colorsCount: colors.length,\n u_size: size,\n u_count: count,\n u_noiseTexture: getShaderNoiseTexture(),\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_rotation: rotation,\n u_scale: scale,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies MetaballsUniforms;\n\n return (\n <ShaderMount {...props} speed={speed} frame={frame} fragmentShader={metaballsFragmentShader} uniforms={uniforms} />\n );\n}, colorPropsAreEqual);\n"],
|
|
5
|
+
"mappings": ";;;;;AAAA,SAAS,YAAY;AACrB,SAAS,mBAA8C;AACvD,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AA6GH;AAvGG,MAAM,gBAAiC;AAAA,EAC5C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,WAAW;AAAA,IACX,QAAQ,CAAC,WAAW,WAAW,WAAW,WAAW,SAAS;AAAA,IAC9D,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AACF;AAEO,MAAM,iBAAkC;AAAA,EAC7C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,WAAW;AAAA,IACX,QAAQ,CAAC,SAAS;AAAA,IAClB,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AACF;AAEO,MAAM,mBAAoC;AAAA,EAC/C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ,CAAC,WAAW,WAAW,SAAS;AAAA,IACxC,WAAW;AAAA,IACX,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AACF;AAEO,MAAM,cAA+B;AAAA,EAC1C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ,CAAC,WAAW,WAAW,SAAS;AAAA,IACxC,WAAW;AAAA,IACX,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AACF;AAEO,MAAM,mBAAsC,CAAC,eAAe,gBAAgB,aAAa,gBAAgB;AAEzG,MAAM,YAAsC,KAAK,SAAS,cAAc;AAAA;AAAA,EAE7E,QAAQ,cAAc,OAAO;AAAA,EAC7B,QAAQ,cAAc,OAAO;AAAA,EAC7B,YAAY,cAAc,OAAO;AAAA,EACjC,SAAS,cAAc,OAAO;AAAA,EAC9B,OAAO,cAAc,OAAO;AAAA,EAC5B,QAAQ,cAAc,OAAO;AAAA;AAAA,EAG7B,MAAM,cAAc,OAAO;AAAA,EAC3B,WAAW,cAAc,OAAO;AAAA,EAChC,QAAQ,cAAc,OAAO;AAAA,EAC7B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,aAAa,cAAc,OAAO;AAAA,EAClC,cAAc,cAAc,OAAO;AAAA,EACnC,GAAG;AACL,GAAmB;AACjB,QAAM,WAAW;AAAA;AAAA,IAEf,aAAa,yBAAyB,SAAS;AAAA,IAC/C,UAAU,OAAO,IAAI,wBAAwB;AAAA,IAC7C,eAAe,OAAO;AAAA,IACtB,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,gBAAgB,sBAAsB;AAAA;AAAA,IAGtC,OAAO,iBAAiB,GAAG;AAAA,IAC3B,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,cAAc;AAAA,IACd,eAAe;AAAA,EACjB;AAEA,SACE,oBAAC,eAAa,GAAG,OAAO,OAAc,OAAc,gBAAgB,yBAAyB,UAAoB;AAErH,GAAG,kBAAkB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ShaderComponentProps } from '../shader-mount.js';
|
|
2
|
+
import { type NeuroNoiseParams, type ShaderPreset } from '@paper-design/shaders';
|
|
3
|
+
export interface NeuroNoiseProps extends ShaderComponentProps, NeuroNoiseParams {
|
|
4
|
+
}
|
|
5
|
+
type NeuroNoisePreset = ShaderPreset<NeuroNoiseParams>;
|
|
6
|
+
export declare const defaultPreset: NeuroNoisePreset;
|
|
7
|
+
export declare const sensationPreset: NeuroNoisePreset;
|
|
8
|
+
export declare const bloodstreamPreset: NeuroNoisePreset;
|
|
9
|
+
export declare const ghostPreset: NeuroNoisePreset;
|
|
10
|
+
export declare const neuroNoisePresets: NeuroNoisePreset[];
|
|
11
|
+
export declare const NeuroNoise: React.FC<NeuroNoiseProps>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
2
|
+
* Paper Shaders *
|
|
3
|
+
* https://github.com/paper-design/shaders *
|
|
4
|
+
* * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
5
|
+
|
|
6
|
+
import { memo } from "react";
|
|
7
|
+
import { ShaderMount } from "../shader-mount.js";
|
|
8
|
+
import { colorPropsAreEqual } from "../color-props-are-equal.js";
|
|
9
|
+
import {
|
|
10
|
+
defaultPatternSizing,
|
|
11
|
+
getShaderColorFromString,
|
|
12
|
+
neuroNoiseFragmentShader,
|
|
13
|
+
ShaderFitOptions
|
|
14
|
+
} from "@paper-design/shaders";
|
|
15
|
+
import { jsx } from "react/jsx-runtime";
|
|
16
|
+
const defaultPreset = {
|
|
17
|
+
name: "Default",
|
|
18
|
+
params: {
|
|
19
|
+
...defaultPatternSizing,
|
|
20
|
+
speed: 1,
|
|
21
|
+
frame: 0,
|
|
22
|
+
colorFront: "#ffffff",
|
|
23
|
+
colorMid: "#47a6ff",
|
|
24
|
+
colorBack: "#000000",
|
|
25
|
+
brightness: 0.05,
|
|
26
|
+
contrast: 0.3
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
const sensationPreset = {
|
|
30
|
+
name: "Sensation",
|
|
31
|
+
params: {
|
|
32
|
+
...defaultPatternSizing,
|
|
33
|
+
speed: 1,
|
|
34
|
+
frame: 0,
|
|
35
|
+
colorFront: "#00c8ff",
|
|
36
|
+
colorMid: "#fbff00",
|
|
37
|
+
colorBack: "#8b42ff",
|
|
38
|
+
brightness: 0.19,
|
|
39
|
+
contrast: 0.12,
|
|
40
|
+
scale: 3
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
const bloodstreamPreset = {
|
|
44
|
+
name: "Bloodstream",
|
|
45
|
+
params: {
|
|
46
|
+
...defaultPatternSizing,
|
|
47
|
+
speed: 1,
|
|
48
|
+
frame: 0,
|
|
49
|
+
colorFront: "#ff0000",
|
|
50
|
+
colorMid: "#ff0000",
|
|
51
|
+
colorBack: "#ffffff",
|
|
52
|
+
brightness: 0.24,
|
|
53
|
+
contrast: 0.17,
|
|
54
|
+
scale: 0.7
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
const ghostPreset = {
|
|
58
|
+
name: "Ghost",
|
|
59
|
+
params: {
|
|
60
|
+
...defaultPatternSizing,
|
|
61
|
+
speed: 1,
|
|
62
|
+
frame: 0,
|
|
63
|
+
colorFront: "#ffffff",
|
|
64
|
+
colorMid: "#000000",
|
|
65
|
+
colorBack: "#ffffff",
|
|
66
|
+
brightness: 0,
|
|
67
|
+
contrast: 1,
|
|
68
|
+
scale: 0.55
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
const neuroNoisePresets = [
|
|
72
|
+
defaultPreset,
|
|
73
|
+
sensationPreset,
|
|
74
|
+
bloodstreamPreset,
|
|
75
|
+
ghostPreset
|
|
76
|
+
];
|
|
77
|
+
const NeuroNoise = memo(function NeuroNoiseImpl({
|
|
78
|
+
// Own props
|
|
79
|
+
speed = defaultPreset.params.speed,
|
|
80
|
+
frame = defaultPreset.params.frame,
|
|
81
|
+
colorFront = defaultPreset.params.colorFront,
|
|
82
|
+
colorMid = defaultPreset.params.colorMid,
|
|
83
|
+
colorBack = defaultPreset.params.colorBack,
|
|
84
|
+
brightness = defaultPreset.params.brightness,
|
|
85
|
+
contrast = defaultPreset.params.contrast,
|
|
86
|
+
// Sizing props
|
|
87
|
+
fit = defaultPreset.params.fit,
|
|
88
|
+
scale = defaultPreset.params.scale,
|
|
89
|
+
rotation = defaultPreset.params.rotation,
|
|
90
|
+
originX = defaultPreset.params.originX,
|
|
91
|
+
originY = defaultPreset.params.originY,
|
|
92
|
+
offsetX = defaultPreset.params.offsetX,
|
|
93
|
+
offsetY = defaultPreset.params.offsetY,
|
|
94
|
+
worldWidth = defaultPreset.params.worldWidth,
|
|
95
|
+
worldHeight = defaultPreset.params.worldHeight,
|
|
96
|
+
...props
|
|
97
|
+
}) {
|
|
98
|
+
const uniforms = {
|
|
99
|
+
// Own uniforms
|
|
100
|
+
u_colorFront: getShaderColorFromString(colorFront),
|
|
101
|
+
u_colorMid: getShaderColorFromString(colorMid),
|
|
102
|
+
u_colorBack: getShaderColorFromString(colorBack),
|
|
103
|
+
u_brightness: brightness,
|
|
104
|
+
u_contrast: contrast,
|
|
105
|
+
// Sizing uniforms
|
|
106
|
+
u_fit: ShaderFitOptions[fit],
|
|
107
|
+
u_scale: scale,
|
|
108
|
+
u_rotation: rotation,
|
|
109
|
+
u_offsetX: offsetX,
|
|
110
|
+
u_offsetY: offsetY,
|
|
111
|
+
u_originX: originX,
|
|
112
|
+
u_originY: originY,
|
|
113
|
+
u_worldWidth: worldWidth,
|
|
114
|
+
u_worldHeight: worldHeight
|
|
115
|
+
};
|
|
116
|
+
return /* @__PURE__ */ jsx(ShaderMount, { ...props, speed, frame, fragmentShader: neuroNoiseFragmentShader, uniforms });
|
|
117
|
+
}, colorPropsAreEqual);
|
|
118
|
+
export {
|
|
119
|
+
NeuroNoise,
|
|
120
|
+
bloodstreamPreset,
|
|
121
|
+
defaultPreset,
|
|
122
|
+
ghostPreset,
|
|
123
|
+
neuroNoisePresets,
|
|
124
|
+
sensationPreset
|
|
125
|
+
};
|
|
126
|
+
//# sourceMappingURL=neuro-noise.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/shaders/neuro-noise.tsx"],
|
|
4
|
+
"sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport { colorPropsAreEqual } from '../color-props-are-equal.js';\nimport {\n defaultPatternSizing,\n getShaderColorFromString,\n neuroNoiseFragmentShader,\n ShaderFitOptions,\n type NeuroNoiseParams,\n type NeuroNoiseUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface NeuroNoiseProps extends ShaderComponentProps, NeuroNoiseParams {}\n\ntype NeuroNoisePreset = ShaderPreset<NeuroNoiseParams>;\n\nexport const defaultPreset: NeuroNoisePreset = {\n name: 'Default',\n params: {\n ...defaultPatternSizing,\n speed: 1,\n frame: 0,\n colorFront: '#ffffff',\n colorMid: '#47a6ff',\n colorBack: '#000000',\n brightness: 0.05,\n contrast: 0.3,\n },\n};\n\nexport const sensationPreset: NeuroNoisePreset = {\n name: 'Sensation',\n params: {\n ...defaultPatternSizing,\n speed: 1,\n frame: 0,\n colorFront: '#00c8ff',\n colorMid: '#fbff00',\n colorBack: '#8b42ff',\n brightness: 0.19,\n contrast: 0.12,\n scale: 3,\n },\n};\n\nexport const bloodstreamPreset: NeuroNoisePreset = {\n name: 'Bloodstream',\n params: {\n ...defaultPatternSizing,\n speed: 1,\n frame: 0,\n colorFront: '#ff0000',\n colorMid: '#ff0000',\n colorBack: '#ffffff',\n brightness: 0.24,\n contrast: 0.17,\n scale: 0.7,\n },\n};\n\nexport const ghostPreset: NeuroNoisePreset = {\n name: 'Ghost',\n params: {\n ...defaultPatternSizing,\n speed: 1,\n frame: 0,\n colorFront: '#ffffff',\n colorMid: '#000000',\n colorBack: '#ffffff',\n brightness: 0.0,\n contrast: 1.0,\n scale: 0.55,\n },\n};\n\nexport const neuroNoisePresets: NeuroNoisePreset[] = [\n defaultPreset,\n sensationPreset,\n bloodstreamPreset,\n ghostPreset,\n] as const;\n\nexport const NeuroNoise: React.FC<NeuroNoiseProps> = memo(function NeuroNoiseImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorFront = defaultPreset.params.colorFront,\n colorMid = defaultPreset.params.colorMid,\n colorBack = defaultPreset.params.colorBack,\n brightness = defaultPreset.params.brightness,\n contrast = defaultPreset.params.contrast,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n scale = defaultPreset.params.scale,\n rotation = defaultPreset.params.rotation,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n ...props\n}: NeuroNoiseProps) {\n const uniforms = {\n // Own uniforms\n u_colorFront: getShaderColorFromString(colorFront),\n u_colorMid: getShaderColorFromString(colorMid),\n u_colorBack: getShaderColorFromString(colorBack),\n u_brightness: brightness,\n u_contrast: contrast,\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_scale: scale,\n u_rotation: rotation,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies NeuroNoiseUniforms;\n\n return (\n <ShaderMount {...props} speed={speed} frame={frame} fragmentShader={neuroNoiseFragmentShader} uniforms={uniforms} />\n );\n}, colorPropsAreEqual);\n"],
|
|
5
|
+
"mappings": ";;;;;AAAA,SAAS,YAAY;AACrB,SAAS,mBAA8C;AACvD,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AAmHH;AA7GG,MAAM,gBAAkC;AAAA,EAC7C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,EACZ;AACF;AAEO,MAAM,kBAAoC;AAAA,EAC/C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AACF;AAEO,MAAM,oBAAsC;AAAA,EACjD,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AACF;AAEO,MAAM,cAAgC;AAAA,EAC3C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AACF;AAEO,MAAM,oBAAwC;AAAA,EACnD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,MAAM,aAAwC,KAAK,SAAS,eAAe;AAAA;AAAA,EAEhF,QAAQ,cAAc,OAAO;AAAA,EAC7B,QAAQ,cAAc,OAAO;AAAA,EAC7B,aAAa,cAAc,OAAO;AAAA,EAClC,WAAW,cAAc,OAAO;AAAA,EAChC,YAAY,cAAc,OAAO;AAAA,EACjC,aAAa,cAAc,OAAO;AAAA,EAClC,WAAW,cAAc,OAAO;AAAA;AAAA,EAGhC,MAAM,cAAc,OAAO;AAAA,EAC3B,QAAQ,cAAc,OAAO;AAAA,EAC7B,WAAW,cAAc,OAAO;AAAA,EAChC,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,aAAa,cAAc,OAAO;AAAA,EAClC,cAAc,cAAc,OAAO;AAAA,EACnC,GAAG;AACL,GAAoB;AAClB,QAAM,WAAW;AAAA;AAAA,IAEf,cAAc,yBAAyB,UAAU;AAAA,IACjD,YAAY,yBAAyB,QAAQ;AAAA,IAC7C,aAAa,yBAAyB,SAAS;AAAA,IAC/C,cAAc;AAAA,IACd,YAAY;AAAA;AAAA,IAGZ,OAAO,iBAAiB,GAAG;AAAA,IAC3B,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,cAAc;AAAA,IACd,eAAe;AAAA,EACjB;AAEA,SACE,oBAAC,eAAa,GAAG,OAAO,OAAc,OAAc,gBAAgB,0BAA0B,UAAoB;AAEtH,GAAG,kBAAkB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type ShaderComponentProps } from '../shader-mount.js';
|
|
2
|
+
import { type ImageShaderPreset, type PaperTextureParams } from '@paper-design/shaders';
|
|
3
|
+
export interface PaperTextureProps extends ShaderComponentProps, PaperTextureParams {
|
|
4
|
+
/** @deprecated use `fiberSize` instead */
|
|
5
|
+
fiberScale?: number;
|
|
6
|
+
/** @deprecated use `crumpleSize` instead */
|
|
7
|
+
crumplesScale?: number;
|
|
8
|
+
/** @deprecated use `foldCount` instead */
|
|
9
|
+
foldsNumber?: number;
|
|
10
|
+
/** @deprecated use `fade` instead */
|
|
11
|
+
blur?: number;
|
|
12
|
+
}
|
|
13
|
+
type PaperTexturePreset = ImageShaderPreset<PaperTextureParams>;
|
|
14
|
+
export declare const defaultPreset: PaperTexturePreset;
|
|
15
|
+
export declare const abstractPreset: PaperTexturePreset;
|
|
16
|
+
export declare const cardboardPreset: PaperTexturePreset;
|
|
17
|
+
export declare const detailsPreset: PaperTexturePreset;
|
|
18
|
+
export declare const paperTexturePresets: PaperTexturePreset[];
|
|
19
|
+
export declare const PaperTexture: React.FC<PaperTextureProps>;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
2
|
+
* Paper Shaders *
|
|
3
|
+
* https://github.com/paper-design/shaders *
|
|
4
|
+
* * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
5
|
+
|
|
6
|
+
import { memo } from "react";
|
|
7
|
+
import { ShaderMount } from "../shader-mount.js";
|
|
8
|
+
import { colorPropsAreEqual } from "../color-props-are-equal.js";
|
|
9
|
+
import {
|
|
10
|
+
defaultObjectSizing,
|
|
11
|
+
getShaderColorFromString,
|
|
12
|
+
getShaderNoiseTexture,
|
|
13
|
+
paperTextureFragmentShader,
|
|
14
|
+
ShaderFitOptions
|
|
15
|
+
} from "@paper-design/shaders";
|
|
16
|
+
import { jsx } from "react/jsx-runtime";
|
|
17
|
+
const defaultPreset = {
|
|
18
|
+
name: "Default",
|
|
19
|
+
params: {
|
|
20
|
+
...defaultObjectSizing,
|
|
21
|
+
fit: "cover",
|
|
22
|
+
scale: 0.6,
|
|
23
|
+
speed: 0,
|
|
24
|
+
frame: 0,
|
|
25
|
+
colorFront: "#9fadbc",
|
|
26
|
+
colorBack: "#ffffff",
|
|
27
|
+
contrast: 0.3,
|
|
28
|
+
roughness: 0.4,
|
|
29
|
+
fiber: 0.3,
|
|
30
|
+
fiberSize: 0.2,
|
|
31
|
+
crumples: 0.3,
|
|
32
|
+
crumpleSize: 0.35,
|
|
33
|
+
folds: 0.65,
|
|
34
|
+
foldCount: 5,
|
|
35
|
+
fade: 0,
|
|
36
|
+
drops: 0.2,
|
|
37
|
+
seed: 5.8
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
const abstractPreset = {
|
|
41
|
+
name: "Abstract",
|
|
42
|
+
params: {
|
|
43
|
+
...defaultObjectSizing,
|
|
44
|
+
fit: "cover",
|
|
45
|
+
speed: 0,
|
|
46
|
+
frame: 0,
|
|
47
|
+
scale: 0.6,
|
|
48
|
+
colorFront: "#00eeff",
|
|
49
|
+
colorBack: "#ff0a81",
|
|
50
|
+
contrast: 0.85,
|
|
51
|
+
roughness: 0,
|
|
52
|
+
fiber: 0.1,
|
|
53
|
+
fiberSize: 0.2,
|
|
54
|
+
crumples: 0,
|
|
55
|
+
crumpleSize: 0.3,
|
|
56
|
+
folds: 1,
|
|
57
|
+
foldCount: 3,
|
|
58
|
+
fade: 0,
|
|
59
|
+
drops: 0.2,
|
|
60
|
+
seed: 2.2
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
const cardboardPreset = {
|
|
64
|
+
name: "Cardboard",
|
|
65
|
+
params: {
|
|
66
|
+
...defaultObjectSizing,
|
|
67
|
+
fit: "cover",
|
|
68
|
+
speed: 0,
|
|
69
|
+
frame: 0,
|
|
70
|
+
scale: 0.6,
|
|
71
|
+
colorFront: "#c7b89e",
|
|
72
|
+
colorBack: "#999180",
|
|
73
|
+
contrast: 0.4,
|
|
74
|
+
roughness: 0,
|
|
75
|
+
fiber: 0.35,
|
|
76
|
+
fiberSize: 0.14,
|
|
77
|
+
crumples: 0.7,
|
|
78
|
+
crumpleSize: 0.1,
|
|
79
|
+
folds: 0,
|
|
80
|
+
foldCount: 1,
|
|
81
|
+
fade: 0,
|
|
82
|
+
drops: 0.1,
|
|
83
|
+
seed: 1.6
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
const detailsPreset = {
|
|
87
|
+
name: "Details",
|
|
88
|
+
params: {
|
|
89
|
+
...defaultObjectSizing,
|
|
90
|
+
speed: 0,
|
|
91
|
+
frame: 0,
|
|
92
|
+
fit: "cover",
|
|
93
|
+
scale: 3,
|
|
94
|
+
colorFront: "#00000000",
|
|
95
|
+
colorBack: "#00000000",
|
|
96
|
+
contrast: 0,
|
|
97
|
+
roughness: 1,
|
|
98
|
+
fiber: 0.27,
|
|
99
|
+
fiberSize: 0.22,
|
|
100
|
+
crumples: 1,
|
|
101
|
+
crumpleSize: 0.5,
|
|
102
|
+
folds: 1,
|
|
103
|
+
foldCount: 15,
|
|
104
|
+
fade: 0,
|
|
105
|
+
drops: 0,
|
|
106
|
+
seed: 6
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
const paperTexturePresets = [
|
|
110
|
+
defaultPreset,
|
|
111
|
+
cardboardPreset,
|
|
112
|
+
abstractPreset,
|
|
113
|
+
detailsPreset
|
|
114
|
+
];
|
|
115
|
+
const PaperTexture = memo(function PaperTextureImpl({
|
|
116
|
+
// Own props
|
|
117
|
+
speed = defaultPreset.params.speed,
|
|
118
|
+
frame = defaultPreset.params.frame,
|
|
119
|
+
colorFront = defaultPreset.params.colorFront,
|
|
120
|
+
colorBack = defaultPreset.params.colorBack,
|
|
121
|
+
image = "",
|
|
122
|
+
contrast = defaultPreset.params.contrast,
|
|
123
|
+
roughness = defaultPreset.params.roughness,
|
|
124
|
+
fiber = defaultPreset.params.fiber,
|
|
125
|
+
crumples = defaultPreset.params.crumples,
|
|
126
|
+
folds = defaultPreset.params.folds,
|
|
127
|
+
drops = defaultPreset.params.drops,
|
|
128
|
+
seed = defaultPreset.params.seed,
|
|
129
|
+
// Reworked props
|
|
130
|
+
fiberScale,
|
|
131
|
+
fiberSize = fiberScale === void 0 ? defaultPreset.params.fiberSize : 0.2 / fiberScale,
|
|
132
|
+
crumplesScale,
|
|
133
|
+
crumpleSize = crumplesScale === void 0 ? defaultPreset.params.crumpleSize : 0.2 / crumplesScale,
|
|
134
|
+
blur,
|
|
135
|
+
fade = blur === void 0 ? defaultPreset.params.fade : blur,
|
|
136
|
+
foldsNumber,
|
|
137
|
+
foldCount = foldsNumber === void 0 ? defaultPreset.params.foldCount : foldsNumber,
|
|
138
|
+
// Sizing props
|
|
139
|
+
fit = defaultPreset.params.fit,
|
|
140
|
+
scale = defaultPreset.params.scale,
|
|
141
|
+
rotation = defaultPreset.params.rotation,
|
|
142
|
+
originX = defaultPreset.params.originX,
|
|
143
|
+
originY = defaultPreset.params.originY,
|
|
144
|
+
offsetX = defaultPreset.params.offsetX,
|
|
145
|
+
offsetY = defaultPreset.params.offsetY,
|
|
146
|
+
worldWidth = defaultPreset.params.worldWidth,
|
|
147
|
+
worldHeight = defaultPreset.params.worldHeight,
|
|
148
|
+
...props
|
|
149
|
+
}) {
|
|
150
|
+
const noiseTexture = typeof window !== "undefined" && { u_noiseTexture: getShaderNoiseTexture() };
|
|
151
|
+
const uniforms = {
|
|
152
|
+
// Own uniforms
|
|
153
|
+
u_image: image,
|
|
154
|
+
u_colorFront: getShaderColorFromString(colorFront),
|
|
155
|
+
u_colorBack: getShaderColorFromString(colorBack),
|
|
156
|
+
u_contrast: contrast,
|
|
157
|
+
u_roughness: roughness,
|
|
158
|
+
u_fiber: fiber,
|
|
159
|
+
u_fiberSize: fiberSize,
|
|
160
|
+
u_crumples: crumples,
|
|
161
|
+
u_crumpleSize: crumpleSize,
|
|
162
|
+
u_foldCount: foldCount,
|
|
163
|
+
u_folds: folds,
|
|
164
|
+
u_fade: fade,
|
|
165
|
+
u_drops: drops,
|
|
166
|
+
u_seed: seed,
|
|
167
|
+
...noiseTexture,
|
|
168
|
+
// Sizing uniforms
|
|
169
|
+
u_fit: ShaderFitOptions[fit],
|
|
170
|
+
u_scale: scale,
|
|
171
|
+
u_rotation: rotation,
|
|
172
|
+
u_offsetX: offsetX,
|
|
173
|
+
u_offsetY: offsetY,
|
|
174
|
+
u_originX: originX,
|
|
175
|
+
u_originY: originY,
|
|
176
|
+
u_worldWidth: worldWidth,
|
|
177
|
+
u_worldHeight: worldHeight
|
|
178
|
+
};
|
|
179
|
+
return /* @__PURE__ */ jsx(
|
|
180
|
+
ShaderMount,
|
|
181
|
+
{
|
|
182
|
+
...props,
|
|
183
|
+
speed,
|
|
184
|
+
frame,
|
|
185
|
+
fragmentShader: paperTextureFragmentShader,
|
|
186
|
+
uniforms
|
|
187
|
+
}
|
|
188
|
+
);
|
|
189
|
+
}, colorPropsAreEqual);
|
|
190
|
+
export {
|
|
191
|
+
PaperTexture,
|
|
192
|
+
abstractPreset,
|
|
193
|
+
cardboardPreset,
|
|
194
|
+
defaultPreset,
|
|
195
|
+
detailsPreset,
|
|
196
|
+
paperTexturePresets
|
|
197
|
+
};
|
|
198
|
+
//# sourceMappingURL=paper-texture.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/shaders/paper-texture.tsx"],
|
|
4
|
+
"sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport { colorPropsAreEqual } from '../color-props-are-equal.js';\nimport {\n defaultObjectSizing,\n getShaderColorFromString,\n getShaderNoiseTexture,\n paperTextureFragmentShader,\n ShaderFitOptions,\n type ImageShaderPreset,\n type PaperTextureParams,\n type PaperTextureUniforms,\n} from '@paper-design/shaders';\n\nexport interface PaperTextureProps extends ShaderComponentProps, PaperTextureParams {\n /** @deprecated use `fiberSize` instead */\n fiberScale?: number;\n /** @deprecated use `crumpleSize` instead */\n crumplesScale?: number;\n /** @deprecated use `foldCount` instead */\n foldsNumber?: number;\n /** @deprecated use `fade` instead */\n blur?: number;\n}\n\ntype PaperTexturePreset = ImageShaderPreset<PaperTextureParams>;\n\nexport const defaultPreset: PaperTexturePreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n fit: 'cover',\n scale: 0.6,\n speed: 0,\n frame: 0,\n colorFront: '#9fadbc',\n colorBack: '#ffffff',\n contrast: 0.3,\n roughness: 0.4,\n fiber: 0.3,\n fiberSize: 0.2,\n crumples: 0.3,\n crumpleSize: 0.35,\n folds: 0.65,\n foldCount: 5,\n fade: 0,\n drops: 0.2,\n seed: 5.8,\n },\n};\n\nexport const abstractPreset: PaperTexturePreset = {\n name: 'Abstract',\n params: {\n ...defaultObjectSizing,\n fit: 'cover',\n speed: 0,\n frame: 0,\n scale: 0.6,\n colorFront: '#00eeff',\n colorBack: '#ff0a81',\n contrast: 0.85,\n roughness: 0,\n fiber: 0.1,\n fiberSize: 0.2,\n crumples: 0,\n crumpleSize: 0.3,\n folds: 1,\n foldCount: 3,\n fade: 0,\n drops: 0.2,\n seed: 2.2,\n },\n};\n\nexport const cardboardPreset: PaperTexturePreset = {\n name: 'Cardboard',\n params: {\n ...defaultObjectSizing,\n fit: 'cover',\n speed: 0,\n frame: 0,\n scale: 0.6,\n colorFront: '#c7b89e',\n colorBack: '#999180',\n contrast: 0.4,\n roughness: 0,\n fiber: 0.35,\n fiberSize: 0.14,\n crumples: 0.7,\n crumpleSize: 0.1,\n folds: 0,\n foldCount: 1,\n fade: 0,\n drops: 0.1,\n seed: 1.6,\n },\n};\n\nexport const detailsPreset: PaperTexturePreset = {\n name: 'Details',\n params: {\n ...defaultObjectSizing,\n speed: 0,\n frame: 0,\n fit: 'cover',\n scale: 3,\n colorFront: '#00000000',\n colorBack: '#00000000',\n contrast: 0,\n roughness: 1,\n fiber: 0.27,\n fiberSize: 0.22,\n crumples: 1,\n crumpleSize: 0.5,\n folds: 1,\n foldCount: 15,\n fade: 0,\n drops: 0,\n seed: 6,\n },\n};\n\nexport const paperTexturePresets: PaperTexturePreset[] = [\n defaultPreset,\n cardboardPreset,\n abstractPreset,\n detailsPreset,\n] as const;\n\nexport const PaperTexture: React.FC<PaperTextureProps> = memo(function PaperTextureImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorFront = defaultPreset.params.colorFront,\n colorBack = defaultPreset.params.colorBack,\n image = '',\n contrast = defaultPreset.params.contrast,\n roughness = defaultPreset.params.roughness,\n fiber = defaultPreset.params.fiber,\n crumples = defaultPreset.params.crumples,\n folds = defaultPreset.params.folds,\n drops = defaultPreset.params.drops,\n seed = defaultPreset.params.seed,\n\n // Reworked props\n fiberScale,\n fiberSize = fiberScale === undefined ? defaultPreset.params.fiberSize : 0.2 / fiberScale,\n crumplesScale,\n crumpleSize = crumplesScale === undefined ? defaultPreset.params.crumpleSize : 0.2 / crumplesScale,\n blur,\n fade = blur === undefined ? defaultPreset.params.fade : blur,\n foldsNumber,\n foldCount = foldsNumber === undefined ? defaultPreset.params.foldCount : foldsNumber,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n scale = defaultPreset.params.scale,\n rotation = defaultPreset.params.rotation,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n ...props\n}: PaperTextureProps) {\n const noiseTexture = typeof window !== 'undefined' && { u_noiseTexture: getShaderNoiseTexture() };\n\n const uniforms = {\n // Own uniforms\n u_image: image,\n u_colorFront: getShaderColorFromString(colorFront),\n u_colorBack: getShaderColorFromString(colorBack),\n u_contrast: contrast,\n u_roughness: roughness,\n u_fiber: fiber,\n u_fiberSize: fiberSize,\n u_crumples: crumples,\n u_crumpleSize: crumpleSize,\n u_foldCount: foldCount,\n u_folds: folds,\n u_fade: fade,\n u_drops: drops,\n u_seed: seed,\n ...noiseTexture,\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_scale: scale,\n u_rotation: rotation,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies PaperTextureUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={paperTextureFragmentShader}\n uniforms={uniforms}\n />\n );\n}, colorPropsAreEqual);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ShaderComponentProps } from '../shader-mount.js';
|
|
2
|
+
import { type PerlinNoiseParams, type ShaderPreset } from '@paper-design/shaders';
|
|
3
|
+
export interface PerlinNoiseProps extends ShaderComponentProps, PerlinNoiseParams {
|
|
4
|
+
}
|
|
5
|
+
type PerlinNoisePreset = ShaderPreset<PerlinNoiseParams>;
|
|
6
|
+
export declare const defaultPreset: PerlinNoisePreset;
|
|
7
|
+
export declare const nintendoWaterPreset: PerlinNoisePreset;
|
|
8
|
+
export declare const mossPreset: PerlinNoisePreset;
|
|
9
|
+
export declare const wormsPreset: PerlinNoisePreset;
|
|
10
|
+
export declare const perlinNoisePresets: PerlinNoisePreset[];
|
|
11
|
+
export declare const PerlinNoise: React.FC<PerlinNoiseProps>;
|
|
12
|
+
export {};
|