@paper-design/shaders-react 0.0.35-backbuffer-experiment.2 → 0.0.35-backbuffer-experiment.4
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/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 +59 -0
- package/dist/index.js +91 -0
- package/dist/index.js.map +7 -0
- package/dist/shader-mount.d.ts +26 -0
- package/dist/shader-mount.js +126 -0
- package/dist/shader-mount.js.map +7 -0
- package/dist/shaders/dithering.d.ts +15 -0
- package/dist/shaders/dithering.js +170 -0
- package/dist/shaders/dithering.js.map +7 -0
- package/dist/shaders/dot-grid.d.ts +10 -0
- package/dist/shaders/dot-grid.js +230 -0
- package/dist/shaders/dot-grid.js.map +7 -0
- package/dist/shaders/dot-orbit.d.ts +9 -0
- package/dist/shaders/dot-orbit.js +80 -0
- package/dist/shaders/dot-orbit.js.map +7 -0
- package/dist/shaders/god-rays.d.ts +13 -0
- package/dist/shaders/god-rays.js +167 -0
- package/dist/shaders/god-rays.js.map +7 -0
- package/dist/shaders/grain-gradient.d.ts +16 -0
- package/dist/shaders/grain-gradient.js +208 -0
- package/dist/shaders/grain-gradient.js.map +7 -0
- package/dist/shaders/liquid-metal.d.ts +12 -0
- package/dist/shaders/liquid-metal.js +156 -0
- package/dist/shaders/liquid-metal.js.map +7 -0
- package/dist/shaders/mesh-gradient.d.ts +11 -0
- package/dist/shaders/mesh-gradient.js +104 -0
- package/dist/shaders/mesh-gradient.js.map +7 -0
- package/dist/shaders/metaballs.d.ts +9 -0
- package/dist/shaders/metaballs.js +75 -0
- package/dist/shaders/metaballs.js.map +7 -0
- package/dist/shaders/neuro-noise.d.ts +9 -0
- package/dist/shaders/neuro-noise.js +76 -0
- package/dist/shaders/neuro-noise.js.map +7 -0
- package/dist/shaders/perlin-noise.d.ts +14 -0
- package/dist/shaders/perlin-noise.js +183 -0
- package/dist/shaders/perlin-noise.js.map +7 -0
- package/dist/shaders/pulsing-border.d.ts +11 -0
- package/dist/shaders/pulsing-border.js +153 -0
- package/dist/shaders/pulsing-border.js.map +7 -0
- package/dist/shaders/simplex-noise.d.ts +9 -0
- package/dist/shaders/simplex-noise.js +80 -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 +134 -0
- package/dist/shaders/smoke-ring.js.map +7 -0
- package/dist/shaders/spiral.d.ts +15 -0
- package/dist/shaders/spiral.js +218 -0
- package/dist/shaders/spiral.js.map +7 -0
- package/dist/shaders/swirl.d.ts +12 -0
- package/dist/shaders/swirl.js +136 -0
- package/dist/shaders/swirl.js.map +7 -0
- package/dist/shaders/voronoi.d.ts +10 -0
- package/dist/shaders/voronoi.js +102 -0
- package/dist/shaders/voronoi.js.map +7 -0
- package/dist/shaders/warp.d.ts +19 -0
- package/dist/shaders/warp.js +294 -0
- package/dist/shaders/warp.js.map +7 -0
- package/dist/shaders/waves.d.ts +14 -0
- package/dist/shaders/waves.js +178 -0
- package/dist/shaders/waves.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 +3 -3
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
2
|
+
* Paper Shaders *
|
|
3
|
+
* https://github.com/paper-design/shaders *
|
|
4
|
+
* * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
5
|
+
|
|
6
|
+
import { memo } from "react";
|
|
7
|
+
import { ShaderMount } from "../shader-mount";
|
|
8
|
+
import { colorPropsAreEqual } from "../color-props-are-equal";
|
|
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: "#bf9eff",
|
|
24
|
+
colorBack: "#000000",
|
|
25
|
+
brightness: 0.3,
|
|
26
|
+
contrast: 0.6
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
const neuroNoisePresets = [defaultPreset];
|
|
30
|
+
const NeuroNoise = memo(function NeuroNoiseImpl({
|
|
31
|
+
// Own props
|
|
32
|
+
speed = defaultPreset.params.speed,
|
|
33
|
+
frame = defaultPreset.params.frame,
|
|
34
|
+
colorFront = defaultPreset.params.colorFront,
|
|
35
|
+
colorMid = defaultPreset.params.colorMid,
|
|
36
|
+
colorBack = defaultPreset.params.colorBack,
|
|
37
|
+
brightness = defaultPreset.params.brightness,
|
|
38
|
+
contrast = defaultPreset.params.contrast,
|
|
39
|
+
// Sizing props
|
|
40
|
+
fit = defaultPreset.params.fit,
|
|
41
|
+
scale = defaultPreset.params.scale,
|
|
42
|
+
rotation = defaultPreset.params.rotation,
|
|
43
|
+
originX = defaultPreset.params.originX,
|
|
44
|
+
originY = defaultPreset.params.originY,
|
|
45
|
+
offsetX = defaultPreset.params.offsetX,
|
|
46
|
+
offsetY = defaultPreset.params.offsetY,
|
|
47
|
+
worldWidth = defaultPreset.params.worldWidth,
|
|
48
|
+
worldHeight = defaultPreset.params.worldHeight,
|
|
49
|
+
...props
|
|
50
|
+
}) {
|
|
51
|
+
const uniforms = {
|
|
52
|
+
// Own uniforms
|
|
53
|
+
u_colorFront: getShaderColorFromString(colorFront),
|
|
54
|
+
u_colorMid: getShaderColorFromString(colorMid),
|
|
55
|
+
u_colorBack: getShaderColorFromString(colorBack),
|
|
56
|
+
u_brightness: brightness,
|
|
57
|
+
u_contrast: contrast,
|
|
58
|
+
// Sizing uniforms
|
|
59
|
+
u_fit: ShaderFitOptions[fit],
|
|
60
|
+
u_scale: scale,
|
|
61
|
+
u_rotation: rotation,
|
|
62
|
+
u_offsetX: offsetX,
|
|
63
|
+
u_offsetY: offsetY,
|
|
64
|
+
u_originX: originX,
|
|
65
|
+
u_originY: originY,
|
|
66
|
+
u_worldWidth: worldWidth,
|
|
67
|
+
u_worldHeight: worldHeight
|
|
68
|
+
};
|
|
69
|
+
return /* @__PURE__ */ jsx(ShaderMount, { ...props, speed, frame, fragmentShader: neuroNoiseFragmentShader, uniforms });
|
|
70
|
+
}, colorPropsAreEqual);
|
|
71
|
+
export {
|
|
72
|
+
NeuroNoise,
|
|
73
|
+
defaultPreset,
|
|
74
|
+
neuroNoisePresets
|
|
75
|
+
};
|
|
76
|
+
//# 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';\nimport { colorPropsAreEqual } from '../color-props-are-equal';\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: '#bf9eff',\n colorBack: '#000000',\n brightness: 0.3,\n contrast: 0.6,\n },\n};\n\nexport const neuroNoisePresets: NeuroNoisePreset[] = [defaultPreset] 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;AAiEH;AA3DG,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,oBAAwC,CAAC,aAAa;AAE5D,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,14 @@
|
|
|
1
|
+
import { type ShaderComponentProps } from '../shader-mount';
|
|
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 colonyPreset: PerlinNoisePreset;
|
|
9
|
+
export declare const phosphenesPreset: PerlinNoisePreset;
|
|
10
|
+
export declare const mossPreset: PerlinNoisePreset;
|
|
11
|
+
export declare const wormsPreset: PerlinNoisePreset;
|
|
12
|
+
export declare const perlinNoisePresets: PerlinNoisePreset[];
|
|
13
|
+
export declare const PerlinNoise: React.FC<PerlinNoiseProps>;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
2
|
+
* Paper Shaders *
|
|
3
|
+
* https://github.com/paper-design/shaders *
|
|
4
|
+
* * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
5
|
+
|
|
6
|
+
import { memo } from "react";
|
|
7
|
+
import { ShaderMount } from "../shader-mount";
|
|
8
|
+
import { colorPropsAreEqual } from "../color-props-are-equal";
|
|
9
|
+
import {
|
|
10
|
+
defaultPatternSizing,
|
|
11
|
+
getShaderColorFromString,
|
|
12
|
+
perlinNoiseFragmentShader,
|
|
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: 0.5,
|
|
21
|
+
frame: 0,
|
|
22
|
+
colorBack: "#262626",
|
|
23
|
+
colorFront: "#d9d9d9",
|
|
24
|
+
proportion: 0.35,
|
|
25
|
+
softness: 0.1,
|
|
26
|
+
octaveCount: 2,
|
|
27
|
+
persistence: 1,
|
|
28
|
+
lacunarity: 1.5
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
const nintendoWaterPreset = {
|
|
32
|
+
name: "Nintendo Water",
|
|
33
|
+
params: {
|
|
34
|
+
...defaultPatternSizing,
|
|
35
|
+
scale: 1 / 0.2,
|
|
36
|
+
speed: 0.4,
|
|
37
|
+
frame: 0,
|
|
38
|
+
colorBack: "#2d69d4",
|
|
39
|
+
colorFront: "#d1eefc",
|
|
40
|
+
proportion: 0.42,
|
|
41
|
+
softness: 0,
|
|
42
|
+
octaveCount: 2,
|
|
43
|
+
persistence: 0.55,
|
|
44
|
+
lacunarity: 1.8
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
const colonyPreset = {
|
|
48
|
+
name: "Colony",
|
|
49
|
+
params: {
|
|
50
|
+
...defaultPatternSizing,
|
|
51
|
+
scale: 1 / 0.15,
|
|
52
|
+
speed: 0,
|
|
53
|
+
frame: 0,
|
|
54
|
+
colorBack: "#f4f0ae",
|
|
55
|
+
colorFront: "#0a1a5e",
|
|
56
|
+
octaveCount: 6,
|
|
57
|
+
persistence: 1,
|
|
58
|
+
lacunarity: 2.55,
|
|
59
|
+
proportion: 0.65,
|
|
60
|
+
softness: 0.35
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
const phosphenesPreset = {
|
|
64
|
+
name: "Phosphenes",
|
|
65
|
+
params: {
|
|
66
|
+
...defaultPatternSizing,
|
|
67
|
+
scale: 1 / 0.03,
|
|
68
|
+
speed: 0.15,
|
|
69
|
+
frame: 0,
|
|
70
|
+
colorBack: "#ec7c8b",
|
|
71
|
+
colorFront: "#66cc99",
|
|
72
|
+
proportion: 0.45,
|
|
73
|
+
softness: 0.45,
|
|
74
|
+
octaveCount: 6,
|
|
75
|
+
persistence: 0.3,
|
|
76
|
+
lacunarity: 3
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
const mossPreset = {
|
|
80
|
+
name: "Moss",
|
|
81
|
+
params: {
|
|
82
|
+
...defaultPatternSizing,
|
|
83
|
+
scale: 1 / 0.15,
|
|
84
|
+
speed: 0.02,
|
|
85
|
+
frame: 0,
|
|
86
|
+
colorBack: "#05ff4a",
|
|
87
|
+
colorFront: "#262626",
|
|
88
|
+
proportion: 0.65,
|
|
89
|
+
softness: 0.35,
|
|
90
|
+
octaveCount: 6,
|
|
91
|
+
persistence: 1,
|
|
92
|
+
lacunarity: 2.55
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
const wormsPreset = {
|
|
96
|
+
name: "Worms",
|
|
97
|
+
params: {
|
|
98
|
+
...defaultPatternSizing,
|
|
99
|
+
scale: 1 / 2,
|
|
100
|
+
speed: 0,
|
|
101
|
+
frame: 0,
|
|
102
|
+
colorBack: "#ffffff",
|
|
103
|
+
colorFront: "#595959",
|
|
104
|
+
proportion: 0.5,
|
|
105
|
+
softness: 0,
|
|
106
|
+
octaveCount: 1,
|
|
107
|
+
persistence: 1,
|
|
108
|
+
lacunarity: 1.5
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
const perlinNoisePresets = [
|
|
112
|
+
defaultPreset,
|
|
113
|
+
nintendoWaterPreset,
|
|
114
|
+
colonyPreset,
|
|
115
|
+
phosphenesPreset,
|
|
116
|
+
mossPreset,
|
|
117
|
+
wormsPreset
|
|
118
|
+
];
|
|
119
|
+
const PerlinNoise = memo(function PerlinNoiseImpl({
|
|
120
|
+
// Own props
|
|
121
|
+
speed = defaultPreset.params.speed,
|
|
122
|
+
frame = defaultPreset.params.frame,
|
|
123
|
+
colorFront = defaultPreset.params.colorFront,
|
|
124
|
+
colorBack = defaultPreset.params.colorBack,
|
|
125
|
+
proportion = defaultPreset.params.proportion,
|
|
126
|
+
softness = defaultPreset.params.softness,
|
|
127
|
+
octaveCount = defaultPreset.params.octaveCount,
|
|
128
|
+
persistence = defaultPreset.params.persistence,
|
|
129
|
+
lacunarity,
|
|
130
|
+
// Sizing props
|
|
131
|
+
fit = defaultPreset.params.fit,
|
|
132
|
+
worldWidth = defaultPreset.params.worldWidth,
|
|
133
|
+
worldHeight = defaultPreset.params.worldHeight,
|
|
134
|
+
scale = defaultPreset.params.scale,
|
|
135
|
+
rotation = defaultPreset.params.rotation,
|
|
136
|
+
originX = defaultPreset.params.originX,
|
|
137
|
+
originY = defaultPreset.params.originY,
|
|
138
|
+
offsetX = defaultPreset.params.offsetX,
|
|
139
|
+
offsetY = defaultPreset.params.offsetY,
|
|
140
|
+
...props
|
|
141
|
+
}) {
|
|
142
|
+
const uniforms = {
|
|
143
|
+
// Own uniforms
|
|
144
|
+
u_colorBack: getShaderColorFromString(colorBack),
|
|
145
|
+
u_colorFront: getShaderColorFromString(colorFront),
|
|
146
|
+
u_proportion: proportion,
|
|
147
|
+
u_softness: softness ?? defaultPreset.params.softness,
|
|
148
|
+
u_octaveCount: octaveCount ?? defaultPreset.params.octaveCount,
|
|
149
|
+
u_persistence: persistence ?? defaultPreset.params.persistence,
|
|
150
|
+
u_lacunarity: lacunarity ?? defaultPreset.params.lacunarity,
|
|
151
|
+
// Sizing uniforms
|
|
152
|
+
u_fit: ShaderFitOptions[fit],
|
|
153
|
+
u_scale: scale,
|
|
154
|
+
u_rotation: rotation,
|
|
155
|
+
u_offsetX: offsetX,
|
|
156
|
+
u_offsetY: offsetY,
|
|
157
|
+
u_originX: originX,
|
|
158
|
+
u_originY: originY,
|
|
159
|
+
u_worldWidth: worldWidth,
|
|
160
|
+
u_worldHeight: worldHeight
|
|
161
|
+
};
|
|
162
|
+
return /* @__PURE__ */ jsx(
|
|
163
|
+
ShaderMount,
|
|
164
|
+
{
|
|
165
|
+
...props,
|
|
166
|
+
speed,
|
|
167
|
+
frame,
|
|
168
|
+
fragmentShader: perlinNoiseFragmentShader,
|
|
169
|
+
uniforms
|
|
170
|
+
}
|
|
171
|
+
);
|
|
172
|
+
}, colorPropsAreEqual);
|
|
173
|
+
export {
|
|
174
|
+
PerlinNoise,
|
|
175
|
+
colonyPreset,
|
|
176
|
+
defaultPreset,
|
|
177
|
+
mossPreset,
|
|
178
|
+
nintendoWaterPreset,
|
|
179
|
+
perlinNoisePresets,
|
|
180
|
+
phosphenesPreset,
|
|
181
|
+
wormsPreset
|
|
182
|
+
};
|
|
183
|
+
//# sourceMappingURL=perlin-noise.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/shaders/perlin-noise.tsx"],
|
|
4
|
+
"sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount';\nimport { colorPropsAreEqual } from '../color-props-are-equal';\nimport {\n defaultPatternSizing,\n getShaderColorFromString,\n perlinNoiseFragmentShader,\n ShaderFitOptions,\n type PerlinNoiseParams,\n type PerlinNoiseUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface PerlinNoiseProps extends ShaderComponentProps, PerlinNoiseParams {}\n\ntype PerlinNoisePreset = ShaderPreset<PerlinNoiseParams>;\n\nexport const defaultPreset: PerlinNoisePreset = {\n name: 'Default',\n params: {\n ...defaultPatternSizing,\n speed: 0.5,\n frame: 0,\n colorBack: '#262626',\n colorFront: '#d9d9d9',\n proportion: 0.35,\n softness: 0.1,\n octaveCount: 2,\n persistence: 1,\n lacunarity: 1.5,\n },\n};\n\nexport const nintendoWaterPreset: PerlinNoisePreset = {\n name: 'Nintendo Water',\n params: {\n ...defaultPatternSizing,\n scale: 1 / 0.2,\n speed: 0.4,\n frame: 0,\n colorBack: '#2d69d4',\n colorFront: '#d1eefc',\n proportion: 0.42,\n softness: 0,\n octaveCount: 2,\n persistence: 0.55,\n lacunarity: 1.8,\n },\n};\n\nexport const colonyPreset: PerlinNoisePreset = {\n name: 'Colony',\n params: {\n ...defaultPatternSizing,\n scale: 1 / 0.15,\n speed: 0,\n frame: 0,\n colorBack: '#f4f0ae',\n colorFront: '#0a1a5e',\n octaveCount: 6,\n persistence: 1,\n lacunarity: 2.55,\n proportion: 0.65,\n softness: 0.35,\n },\n};\n\nexport const phosphenesPreset: PerlinNoisePreset = {\n name: 'Phosphenes',\n params: {\n ...defaultPatternSizing,\n scale: 1 / 0.03,\n speed: 0.15,\n frame: 0,\n colorBack: '#ec7c8b',\n colorFront: '#66cc99',\n proportion: 0.45,\n softness: 0.45,\n octaveCount: 6,\n persistence: 0.3,\n lacunarity: 3,\n },\n};\n\nexport const mossPreset: PerlinNoisePreset = {\n name: 'Moss',\n params: {\n ...defaultPatternSizing,\n scale: 1 / 0.15,\n speed: 0.02,\n frame: 0,\n colorBack: '#05ff4a',\n colorFront: '#262626',\n proportion: 0.65,\n softness: 0.35,\n octaveCount: 6,\n persistence: 1,\n lacunarity: 2.55,\n },\n};\n\nexport const wormsPreset: PerlinNoisePreset = {\n name: 'Worms',\n params: {\n ...defaultPatternSizing,\n scale: 1 / 2,\n speed: 0,\n frame: 0,\n colorBack: '#ffffff',\n colorFront: '#595959',\n proportion: 0.5,\n softness: 0,\n octaveCount: 1,\n persistence: 1,\n lacunarity: 1.5,\n },\n};\n\nexport const perlinNoisePresets: PerlinNoisePreset[] = [\n defaultPreset,\n nintendoWaterPreset,\n colonyPreset,\n phosphenesPreset,\n mossPreset,\n wormsPreset,\n];\n\nexport const PerlinNoise: React.FC<PerlinNoiseProps> = memo(function PerlinNoiseImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorFront = defaultPreset.params.colorFront,\n colorBack = defaultPreset.params.colorBack,\n proportion = defaultPreset.params.proportion,\n softness = defaultPreset.params.softness,\n octaveCount = defaultPreset.params.octaveCount,\n persistence = defaultPreset.params.persistence,\n lacunarity,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\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 ...props\n}: PerlinNoiseProps) {\n const uniforms = {\n // Own uniforms\n u_colorBack: getShaderColorFromString(colorBack),\n u_colorFront: getShaderColorFromString(colorFront),\n u_proportion: proportion,\n u_softness: softness ?? defaultPreset.params.softness,\n u_octaveCount: octaveCount ?? defaultPreset.params.octaveCount,\n u_persistence: persistence ?? defaultPreset.params.persistence,\n u_lacunarity: lacunarity ?? defaultPreset.params.lacunarity,\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 PerlinNoiseUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={perlinNoiseFragmentShader}\n uniforms={uniforms}\n />\n );\n}, colorPropsAreEqual);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ShaderComponentProps } from '../shader-mount';
|
|
2
|
+
import { type PulsingBorderParams, type ShaderPreset } from '@paper-design/shaders';
|
|
3
|
+
export interface PulsingBorderProps extends ShaderComponentProps, PulsingBorderParams {
|
|
4
|
+
}
|
|
5
|
+
type PulsingBorderPreset = ShaderPreset<PulsingBorderParams>;
|
|
6
|
+
export declare const defaultPreset: PulsingBorderPreset;
|
|
7
|
+
export declare const circlePreset: PulsingBorderPreset;
|
|
8
|
+
export declare const innerBorderPreset: PulsingBorderPreset;
|
|
9
|
+
export declare const pulsingBorderPresets: PulsingBorderPreset[];
|
|
10
|
+
export declare const PulsingBorder: React.FC<PulsingBorderProps>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
2
|
+
* Paper Shaders *
|
|
3
|
+
* https://github.com/paper-design/shaders *
|
|
4
|
+
* * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
5
|
+
|
|
6
|
+
import { memo } from "react";
|
|
7
|
+
import { ShaderMount } from "../shader-mount";
|
|
8
|
+
import { colorPropsAreEqual } from "../color-props-are-equal";
|
|
9
|
+
import {
|
|
10
|
+
defaultObjectSizing,
|
|
11
|
+
getShaderColorFromString,
|
|
12
|
+
getShaderNoiseTexture,
|
|
13
|
+
pulsingBorderFragmentShader,
|
|
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: 0.7,
|
|
22
|
+
speed: 1,
|
|
23
|
+
frame: 0,
|
|
24
|
+
colorBack: "#000000",
|
|
25
|
+
colors: ["#f2244f", "#4da6e6"],
|
|
26
|
+
roundness: 0.5,
|
|
27
|
+
thickness: 0.02,
|
|
28
|
+
softness: 0.5,
|
|
29
|
+
intensity: 2.4,
|
|
30
|
+
spotsPerColor: 4,
|
|
31
|
+
spotSize: 0.15,
|
|
32
|
+
pulse: 0,
|
|
33
|
+
smoke: 1,
|
|
34
|
+
smokeSize: 1.3
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
const circlePreset = {
|
|
38
|
+
name: "Circle",
|
|
39
|
+
params: {
|
|
40
|
+
...defaultObjectSizing,
|
|
41
|
+
worldWidth: 200,
|
|
42
|
+
worldHeight: 200,
|
|
43
|
+
scale: 0.5,
|
|
44
|
+
speed: 1,
|
|
45
|
+
frame: 0,
|
|
46
|
+
colorBack: "#0f191f",
|
|
47
|
+
colors: ["#ffdd33", "#ff8c00", "#ff002b"],
|
|
48
|
+
roundness: 1,
|
|
49
|
+
thickness: 0.03,
|
|
50
|
+
softness: 0.2,
|
|
51
|
+
intensity: 2,
|
|
52
|
+
spotsPerColor: 4,
|
|
53
|
+
spotSize: 0.15,
|
|
54
|
+
pulse: 0,
|
|
55
|
+
smoke: 0,
|
|
56
|
+
smokeSize: 1
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
const innerBorderPreset = {
|
|
60
|
+
name: "Inner Border",
|
|
61
|
+
params: {
|
|
62
|
+
...defaultObjectSizing,
|
|
63
|
+
speed: 1,
|
|
64
|
+
frame: 0,
|
|
65
|
+
colorBack: "#181821",
|
|
66
|
+
colors: ["#f5ad2b", "#2294d9", "#bf00ff"],
|
|
67
|
+
roundness: 0,
|
|
68
|
+
thickness: 0,
|
|
69
|
+
softness: 0.4,
|
|
70
|
+
intensity: 0,
|
|
71
|
+
spotsPerColor: 3,
|
|
72
|
+
spotSize: 0.18,
|
|
73
|
+
pulse: 0.04,
|
|
74
|
+
smoke: 0.75,
|
|
75
|
+
smokeSize: 0.92
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
const pulsingBorderPresets = [defaultPreset, circlePreset, innerBorderPreset];
|
|
79
|
+
const PulsingBorder = memo(function PulsingBorderImpl({
|
|
80
|
+
// Own props
|
|
81
|
+
speed = defaultPreset.params.speed,
|
|
82
|
+
frame = defaultPreset.params.frame,
|
|
83
|
+
colors = defaultPreset.params.colors,
|
|
84
|
+
colorBack = defaultPreset.params.colorBack,
|
|
85
|
+
roundness = defaultPreset.params.roundness,
|
|
86
|
+
thickness = defaultPreset.params.thickness,
|
|
87
|
+
softness = defaultPreset.params.softness,
|
|
88
|
+
intensity = defaultPreset.params.intensity,
|
|
89
|
+
spotsPerColor = defaultPreset.params.spotsPerColor,
|
|
90
|
+
spotSize = defaultPreset.params.spotSize,
|
|
91
|
+
pulse = defaultPreset.params.pulse,
|
|
92
|
+
smoke = defaultPreset.params.smoke,
|
|
93
|
+
smokeSize = defaultPreset.params.smokeSize,
|
|
94
|
+
// Sizing props
|
|
95
|
+
fit = defaultPreset.params.fit,
|
|
96
|
+
rotation = defaultPreset.params.rotation,
|
|
97
|
+
scale = defaultPreset.params.scale,
|
|
98
|
+
originX = defaultPreset.params.originX,
|
|
99
|
+
originY = defaultPreset.params.originY,
|
|
100
|
+
offsetX = defaultPreset.params.offsetX,
|
|
101
|
+
offsetY = defaultPreset.params.offsetY,
|
|
102
|
+
worldWidth = defaultPreset.params.worldWidth,
|
|
103
|
+
worldHeight = defaultPreset.params.worldHeight,
|
|
104
|
+
...props
|
|
105
|
+
}) {
|
|
106
|
+
const noiseTexture = typeof window !== "undefined" && { u_noiseTexture: getShaderNoiseTexture(0) };
|
|
107
|
+
const pulseTexture = typeof window !== "undefined" && { u_pulseTexture: getShaderNoiseTexture(1) };
|
|
108
|
+
const uniforms = {
|
|
109
|
+
// Own uniforms
|
|
110
|
+
u_colorBack: getShaderColorFromString(colorBack),
|
|
111
|
+
u_colors: colors.map(getShaderColorFromString),
|
|
112
|
+
u_colorsCount: colors.length,
|
|
113
|
+
u_roundness: roundness,
|
|
114
|
+
u_thickness: thickness,
|
|
115
|
+
u_softness: softness,
|
|
116
|
+
u_intensity: intensity,
|
|
117
|
+
u_spotsPerColor: spotsPerColor,
|
|
118
|
+
u_spotSize: spotSize,
|
|
119
|
+
u_pulse: pulse,
|
|
120
|
+
u_smoke: smoke,
|
|
121
|
+
u_smokeSize: smokeSize,
|
|
122
|
+
...pulseTexture,
|
|
123
|
+
...noiseTexture,
|
|
124
|
+
// Sizing uniforms
|
|
125
|
+
u_fit: ShaderFitOptions[fit],
|
|
126
|
+
u_rotation: rotation,
|
|
127
|
+
u_scale: scale,
|
|
128
|
+
u_offsetX: offsetX,
|
|
129
|
+
u_offsetY: offsetY,
|
|
130
|
+
u_originX: originX,
|
|
131
|
+
u_originY: originY,
|
|
132
|
+
u_worldWidth: worldWidth,
|
|
133
|
+
u_worldHeight: worldHeight
|
|
134
|
+
};
|
|
135
|
+
return /* @__PURE__ */ jsx(
|
|
136
|
+
ShaderMount,
|
|
137
|
+
{
|
|
138
|
+
...props,
|
|
139
|
+
speed,
|
|
140
|
+
frame,
|
|
141
|
+
fragmentShader: pulsingBorderFragmentShader,
|
|
142
|
+
uniforms
|
|
143
|
+
}
|
|
144
|
+
);
|
|
145
|
+
}, colorPropsAreEqual);
|
|
146
|
+
export {
|
|
147
|
+
PulsingBorder,
|
|
148
|
+
circlePreset,
|
|
149
|
+
defaultPreset,
|
|
150
|
+
innerBorderPreset,
|
|
151
|
+
pulsingBorderPresets
|
|
152
|
+
};
|
|
153
|
+
//# sourceMappingURL=pulsing-border.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/shaders/pulsing-border.tsx"],
|
|
4
|
+
"sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount';\nimport { colorPropsAreEqual } from '../color-props-are-equal';\nimport {\n defaultObjectSizing,\n getShaderColorFromString,\n getShaderNoiseTexture,\n pulsingBorderFragmentShader,\n ShaderFitOptions,\n type PulsingBorderParams,\n type PulsingBorderUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface PulsingBorderProps extends ShaderComponentProps, PulsingBorderParams {}\n\ntype PulsingBorderPreset = ShaderPreset<PulsingBorderParams>;\n\nexport const defaultPreset: PulsingBorderPreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n scale: 0.7,\n speed: 1,\n frame: 0,\n colorBack: '#000000',\n colors: ['#f2244f', '#4da6e6'],\n roundness: 0.5,\n thickness: 0.02,\n softness: 0.5,\n intensity: 2.4,\n spotsPerColor: 4,\n spotSize: 0.15,\n pulse: 0,\n smoke: 1,\n smokeSize: 1.3,\n },\n};\n\nexport const circlePreset: PulsingBorderPreset = {\n name: 'Circle',\n params: {\n ...defaultObjectSizing,\n worldWidth: 200,\n worldHeight: 200,\n scale: 0.5,\n speed: 1,\n frame: 0,\n colorBack: '#0f191f',\n colors: ['#ffdd33', '#ff8c00', '#ff002b'],\n roundness: 1,\n thickness: 0.03,\n softness: 0.2,\n intensity: 2,\n spotsPerColor: 4,\n spotSize: 0.15,\n pulse: 0,\n smoke: 0,\n smokeSize: 1,\n },\n};\n\nexport const innerBorderPreset: PulsingBorderPreset = {\n name: 'Inner Border',\n params: {\n ...defaultObjectSizing,\n speed: 1.0,\n frame: 0,\n colorBack: '#181821',\n colors: ['#f5ad2b', '#2294d9', '#bf00ff'],\n roundness: 0,\n thickness: 0,\n softness: 0.4,\n intensity: 0,\n spotsPerColor: 3,\n spotSize: 0.18,\n pulse: 0.04,\n smoke: 0.75,\n smokeSize: 0.92,\n },\n};\n\nexport const pulsingBorderPresets: PulsingBorderPreset[] = [defaultPreset, circlePreset, innerBorderPreset];\n\nexport const PulsingBorder: React.FC<PulsingBorderProps> = memo(function PulsingBorderImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colors = defaultPreset.params.colors,\n colorBack = defaultPreset.params.colorBack,\n roundness = defaultPreset.params.roundness,\n thickness = defaultPreset.params.thickness,\n softness = defaultPreset.params.softness,\n intensity = defaultPreset.params.intensity,\n spotsPerColor = defaultPreset.params.spotsPerColor,\n spotSize = defaultPreset.params.spotSize,\n pulse = defaultPreset.params.pulse,\n smoke = defaultPreset.params.smoke,\n smokeSize = defaultPreset.params.smokeSize,\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}: PulsingBorderProps) {\n const noiseTexture = typeof window !== 'undefined' && { u_noiseTexture: getShaderNoiseTexture(0) };\n const pulseTexture = typeof window !== 'undefined' && { u_pulseTexture: getShaderNoiseTexture(1) };\n const uniforms = {\n // Own uniforms\n u_colorBack: getShaderColorFromString(colorBack),\n u_colors: colors.map(getShaderColorFromString),\n u_colorsCount: colors.length,\n u_roundness: roundness,\n u_thickness: thickness,\n u_softness: softness,\n u_intensity: intensity,\n u_spotsPerColor: spotsPerColor,\n u_spotSize: spotSize,\n u_pulse: pulse,\n u_smoke: smoke,\n u_smokeSize: smokeSize,\n ...pulseTexture,\n ...noiseTexture,\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 PulsingBorderUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={pulsingBorderFragmentShader}\n uniforms={uniforms}\n />\n );\n}, colorPropsAreEqual);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type ShaderComponentProps } from '../shader-mount';
|
|
2
|
+
import { type SimplexNoiseParams, type ShaderPreset } from '@paper-design/shaders';
|
|
3
|
+
export interface SimplexNoiseProps extends ShaderComponentProps, SimplexNoiseParams {
|
|
4
|
+
}
|
|
5
|
+
type SimplexNoisePreset = ShaderPreset<SimplexNoiseParams>;
|
|
6
|
+
export declare const defaultPreset: SimplexNoisePreset;
|
|
7
|
+
export declare const simplexNoisePresets: SimplexNoisePreset[];
|
|
8
|
+
export declare const SimplexNoise: React.FC<SimplexNoiseProps>;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
2
|
+
* Paper Shaders *
|
|
3
|
+
* https://github.com/paper-design/shaders *
|
|
4
|
+
* * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
5
|
+
|
|
6
|
+
import { memo } from "react";
|
|
7
|
+
import { ShaderMount } from "../shader-mount";
|
|
8
|
+
import { colorPropsAreEqual } from "../color-props-are-equal";
|
|
9
|
+
import {
|
|
10
|
+
getShaderColorFromString,
|
|
11
|
+
simplexNoiseFragmentShader,
|
|
12
|
+
ShaderFitOptions,
|
|
13
|
+
defaultPatternSizing
|
|
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
|
+
colors: ["#40a0bf", "#bf4040", "#ffcc00"],
|
|
23
|
+
stepsPerColor: 3,
|
|
24
|
+
softness: 0
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
const simplexNoisePresets = [defaultPreset];
|
|
28
|
+
const SimplexNoise = memo(function SimplexNoiseImpl({
|
|
29
|
+
// Own props
|
|
30
|
+
speed = defaultPreset.params.speed,
|
|
31
|
+
frame = defaultPreset.params.frame,
|
|
32
|
+
colors = defaultPreset.params.colors,
|
|
33
|
+
stepsPerColor = defaultPreset.params.stepsPerColor,
|
|
34
|
+
softness = defaultPreset.params.softness,
|
|
35
|
+
// Sizing props
|
|
36
|
+
fit = defaultPreset.params.fit,
|
|
37
|
+
scale = defaultPreset.params.scale,
|
|
38
|
+
rotation = defaultPreset.params.rotation,
|
|
39
|
+
originX = defaultPreset.params.originX,
|
|
40
|
+
originY = defaultPreset.params.originY,
|
|
41
|
+
offsetX = defaultPreset.params.offsetX,
|
|
42
|
+
offsetY = defaultPreset.params.offsetY,
|
|
43
|
+
worldWidth = defaultPreset.params.worldWidth,
|
|
44
|
+
worldHeight = defaultPreset.params.worldHeight,
|
|
45
|
+
...props
|
|
46
|
+
}) {
|
|
47
|
+
const uniforms = {
|
|
48
|
+
// Own uniforms
|
|
49
|
+
u_colors: colors.map(getShaderColorFromString),
|
|
50
|
+
u_colorsCount: colors.length,
|
|
51
|
+
u_stepsPerColor: stepsPerColor,
|
|
52
|
+
u_softness: softness,
|
|
53
|
+
// Sizing uniforms
|
|
54
|
+
u_fit: ShaderFitOptions[fit],
|
|
55
|
+
u_scale: scale,
|
|
56
|
+
u_rotation: rotation,
|
|
57
|
+
u_offsetX: offsetX,
|
|
58
|
+
u_offsetY: offsetY,
|
|
59
|
+
u_originX: originX,
|
|
60
|
+
u_originY: originY,
|
|
61
|
+
u_worldWidth: worldWidth,
|
|
62
|
+
u_worldHeight: worldHeight
|
|
63
|
+
};
|
|
64
|
+
return /* @__PURE__ */ jsx(
|
|
65
|
+
ShaderMount,
|
|
66
|
+
{
|
|
67
|
+
...props,
|
|
68
|
+
speed,
|
|
69
|
+
frame,
|
|
70
|
+
fragmentShader: simplexNoiseFragmentShader,
|
|
71
|
+
uniforms
|
|
72
|
+
}
|
|
73
|
+
);
|
|
74
|
+
}, colorPropsAreEqual);
|
|
75
|
+
export {
|
|
76
|
+
SimplexNoise,
|
|
77
|
+
defaultPreset,
|
|
78
|
+
simplexNoisePresets
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=simplex-noise.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/shaders/simplex-noise.tsx"],
|
|
4
|
+
"sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount';\nimport { colorPropsAreEqual } from '../color-props-are-equal';\nimport {\n getShaderColorFromString,\n simplexNoiseFragmentShader,\n ShaderFitOptions,\n type SimplexNoiseUniforms,\n type SimplexNoiseParams,\n type ShaderPreset,\n defaultPatternSizing,\n} from '@paper-design/shaders';\n\nexport interface SimplexNoiseProps extends ShaderComponentProps, SimplexNoiseParams {}\n\ntype SimplexNoisePreset = ShaderPreset<SimplexNoiseParams>;\n\nexport const defaultPreset: SimplexNoisePreset = {\n name: 'Default',\n params: {\n ...defaultPatternSizing,\n speed: 1,\n frame: 0,\n colors: ['#40a0bf', '#bf4040', '#ffcc00'],\n stepsPerColor: 3,\n softness: 0,\n },\n};\n\nexport const simplexNoisePresets: SimplexNoisePreset[] = [defaultPreset];\n\nexport const SimplexNoise: React.FC<SimplexNoiseProps> = memo(function SimplexNoiseImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colors = defaultPreset.params.colors,\n stepsPerColor = defaultPreset.params.stepsPerColor,\n softness = defaultPreset.params.softness,\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}: SimplexNoiseProps) {\n const uniforms = {\n // Own uniforms\n u_colors: colors.map(getShaderColorFromString),\n u_colorsCount: colors.length,\n u_stepsPerColor: stepsPerColor,\n u_softness: softness,\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 SimplexNoiseUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={simplexNoiseFragmentShader}\n uniforms={uniforms}\n />\n );\n}, colorPropsAreEqual);\n"],
|
|
5
|
+
"mappings": ";;;;;AAAA,SAAS,YAAY;AACrB,SAAS,mBAA8C;AACvD,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EAIA;AAAA,OACK;AA4DH;AAtDG,MAAM,gBAAoC;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,eAAe;AAAA,IACf,UAAU;AAAA,EACZ;AACF;AAEO,MAAM,sBAA4C,CAAC,aAAa;AAEhE,MAAM,eAA4C,KAAK,SAAS,iBAAiB;AAAA;AAAA,EAEtF,QAAQ,cAAc,OAAO;AAAA,EAC7B,QAAQ,cAAc,OAAO;AAAA,EAC7B,SAAS,cAAc,OAAO;AAAA,EAC9B,gBAAgB,cAAc,OAAO;AAAA,EACrC,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,GAAsB;AACpB,QAAM,WAAW;AAAA;AAAA,IAEf,UAAU,OAAO,IAAI,wBAAwB;AAAA,IAC7C,eAAe,OAAO;AAAA,IACtB,iBAAiB;AAAA,IACjB,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;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,MAChB;AAAA;AAAA,EACF;AAEJ,GAAG,kBAAkB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ShaderComponentProps } from '../shader-mount';
|
|
2
|
+
import { type ShaderPreset, type SmokeRingParams } from '@paper-design/shaders';
|
|
3
|
+
export interface SmokeRingProps extends ShaderComponentProps, SmokeRingParams {
|
|
4
|
+
}
|
|
5
|
+
type SmokeRingPreset = ShaderPreset<SmokeRingParams>;
|
|
6
|
+
export declare const defaultPreset: SmokeRingPreset;
|
|
7
|
+
export declare const poisonPreset: SmokeRingPreset;
|
|
8
|
+
export declare const linePreset: SmokeRingPreset;
|
|
9
|
+
export declare const cloudPreset: SmokeRingPreset;
|
|
10
|
+
export declare const smokeRingPresets: SmokeRingPreset[];
|
|
11
|
+
export declare const SmokeRing: React.FC<SmokeRingProps>;
|
|
12
|
+
export {};
|