@3driseai/3drise-core 1.0.1 → 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/services/MaterialRegistry.d.ts +25 -0
- package/dist/services/MaterialRegistry.d.ts.map +1 -1
- package/dist/services/MaterialRegistry.js +102 -1
- package/dist/shaders/CircuitGridMaterial.d.ts +76 -0
- package/dist/shaders/CircuitGridMaterial.d.ts.map +1 -0
- package/dist/shaders/CircuitGridMaterial.js +298 -0
- package/dist/shaders/ContourGridMaterial.d.ts +80 -0
- package/dist/shaders/ContourGridMaterial.d.ts.map +1 -0
- package/dist/shaders/ContourGridMaterial.js +259 -0
- package/dist/shaders/FractalGridMaterial.d.ts +76 -0
- package/dist/shaders/FractalGridMaterial.d.ts.map +1 -0
- package/dist/shaders/FractalGridMaterial.js +247 -0
- package/dist/shaders/HexGridMaterial.d.ts +73 -0
- package/dist/shaders/HexGridMaterial.d.ts.map +1 -0
- package/dist/shaders/HexGridMaterial.js +265 -0
- package/dist/shaders/MoireGridMaterial.d.ts +79 -0
- package/dist/shaders/MoireGridMaterial.d.ts.map +1 -0
- package/dist/shaders/MoireGridMaterial.js +271 -0
- package/dist/shaders/MyGridMaterial.d.ts +7 -0
- package/dist/shaders/MyGridMaterial.d.ts.map +1 -1
- package/dist/shaders/MyGridMaterial.js +19 -0
- package/dist/shaders/QuasiGridMaterial.d.ts +76 -0
- package/dist/shaders/QuasiGridMaterial.d.ts.map +1 -0
- package/dist/shaders/QuasiGridMaterial.js +238 -0
- package/dist/shaders/RadarGridMaterial.d.ts +77 -0
- package/dist/shaders/RadarGridMaterial.d.ts.map +1 -0
- package/dist/shaders/RadarGridMaterial.js +291 -0
- package/dist/shaders/RainMaterial copy.d.ts +34 -0
- package/dist/shaders/RainMaterial copy.d.ts.map +1 -0
- package/dist/shaders/RainMaterial copy.js +56 -0
- package/dist/shaders/ShaderEffectsMaterial copy 2.d.ts +228 -0
- package/dist/shaders/ShaderEffectsMaterial copy 2.d.ts.map +1 -0
- package/dist/shaders/ShaderEffectsMaterial copy 2.js +233 -0
- package/dist/shaders/ShootingStarMaterial copy.d.ts +14 -0
- package/dist/shaders/ShootingStarMaterial copy.d.ts.map +1 -0
- package/dist/shaders/ShootingStarMaterial copy.js +33 -0
- package/dist/shaders/SkyboxMaterial copy.d.ts +38 -0
- package/dist/shaders/SkyboxMaterial copy.d.ts.map +1 -0
- package/dist/shaders/SkyboxMaterial copy.js +57 -0
- package/dist/shaders/VoronoiGridMaterial.d.ts +73 -0
- package/dist/shaders/VoronoiGridMaterial.d.ts.map +1 -0
- package/dist/shaders/VoronoiGridMaterial.js +266 -0
- package/dist/types/objectsConfigs.d.ts +12 -0
- package/dist/types/objectsConfigs.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import * as THREE from "three";
|
|
2
|
+
export interface RainMaterialUniforms {
|
|
3
|
+
uColor: {
|
|
4
|
+
value: THREE.Color;
|
|
5
|
+
};
|
|
6
|
+
opacity: {
|
|
7
|
+
value: number;
|
|
8
|
+
};
|
|
9
|
+
windAngle: {
|
|
10
|
+
value: number;
|
|
11
|
+
};
|
|
12
|
+
windTilt: {
|
|
13
|
+
value: number;
|
|
14
|
+
};
|
|
15
|
+
streakLength: {
|
|
16
|
+
value: number;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
declare module '@react-three/fiber' {
|
|
20
|
+
interface ThreeElements {
|
|
21
|
+
rainMaterial: any;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
declare const RainMaterial: import("@react-three/fiber").ConstructorRepresentation<THREE.ShaderMaterial & {
|
|
25
|
+
uColor: THREE.Color;
|
|
26
|
+
opacity: number;
|
|
27
|
+
windAngle: number;
|
|
28
|
+
windTilt: number;
|
|
29
|
+
streakLength: number;
|
|
30
|
+
}> & {
|
|
31
|
+
key: string;
|
|
32
|
+
};
|
|
33
|
+
export { RainMaterial };
|
|
34
|
+
//# sourceMappingURL=RainMaterial%20copy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RainMaterial copy.d.ts","sourceRoot":"","sources":["../../src/shaders/RainMaterial copy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE;QACJ,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;KACtB,CAAC;IACF,OAAO,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,YAAY,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED,OAAO,QAAQ,oBAAoB,CAAC;IAChC,UAAU,aAAa;QACnB,YAAY,EAAE,GAAG,CAAC;KACrB;CACJ;AA8CD,QAAA,MAAM,YAAY;;;;;;;;CAMc,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { extend } from "@react-three/fiber";
|
|
2
|
+
import { shaderMaterial } from "@react-three/drei";
|
|
3
|
+
import * as THREE from "three";
|
|
4
|
+
const vertexShader = /*glsl*/ `
|
|
5
|
+
attribute float speed;
|
|
6
|
+
varying float vSpeed;
|
|
7
|
+
uniform float windAngle;
|
|
8
|
+
uniform float windTilt;
|
|
9
|
+
uniform float streakLength;
|
|
10
|
+
|
|
11
|
+
void main() {
|
|
12
|
+
vSpeed = speed;
|
|
13
|
+
vec4 mvPosition = modelViewMatrix * vec4(position, 1.0);
|
|
14
|
+
gl_PointSize = 12.0 * streakLength * (200.0 / -mvPosition.z);
|
|
15
|
+
gl_PointSize = clamp(gl_PointSize, 1.0, 64.0);
|
|
16
|
+
gl_Position = projectionMatrix * mvPosition;
|
|
17
|
+
}
|
|
18
|
+
`;
|
|
19
|
+
const fragmentShader = /*glsl*/ `
|
|
20
|
+
varying float vSpeed;
|
|
21
|
+
uniform vec3 uColor;
|
|
22
|
+
uniform float opacity;
|
|
23
|
+
uniform float windAngle;
|
|
24
|
+
uniform float windTilt;
|
|
25
|
+
uniform float streakLength;
|
|
26
|
+
|
|
27
|
+
void main() {
|
|
28
|
+
vec2 uv = gl_PointCoord - vec2(0.5);
|
|
29
|
+
float angle = windAngle * windTilt;
|
|
30
|
+
float ca = cos(angle);
|
|
31
|
+
float sa = sin(angle);
|
|
32
|
+
vec2 rotUv = vec2(
|
|
33
|
+
uv.x * ca - uv.y * sa,
|
|
34
|
+
uv.x * sa + uv.y * ca
|
|
35
|
+
);
|
|
36
|
+
float aspectRatio = max(streakLength, 1.0);
|
|
37
|
+
rotUv.x *= aspectRatio;
|
|
38
|
+
float dist = length(rotUv);
|
|
39
|
+
float core = 1.0 - smoothstep(0.0, 0.15, dist);
|
|
40
|
+
float glow = (1.0 - smoothstep(0.1, 0.4, dist)) * 0.3;
|
|
41
|
+
float alpha = (core + glow) * opacity;
|
|
42
|
+
float gradient = smoothstep(-0.5, 0.2, rotUv.y) * 0.3 + 0.7;
|
|
43
|
+
alpha *= gradient;
|
|
44
|
+
if (alpha < 0.01) discard;
|
|
45
|
+
gl_FragColor = vec4(uColor, alpha);
|
|
46
|
+
}
|
|
47
|
+
`;
|
|
48
|
+
const RainMaterial = shaderMaterial({
|
|
49
|
+
uColor: new THREE.Color(0.7, 0.75, 0.85),
|
|
50
|
+
opacity: 0.5,
|
|
51
|
+
windAngle: 0.0,
|
|
52
|
+
windTilt: 0.0,
|
|
53
|
+
streakLength: 3.0,
|
|
54
|
+
}, vertexShader, fragmentShader);
|
|
55
|
+
extend({ RainMaterial });
|
|
56
|
+
export { RainMaterial };
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import { Vector2, Color } from 'three';
|
|
2
|
+
import type { Texture } from 'three';
|
|
3
|
+
export interface ShaderEffectsMaterialUniforms {
|
|
4
|
+
u_time: {
|
|
5
|
+
value: number;
|
|
6
|
+
};
|
|
7
|
+
u_pointer: {
|
|
8
|
+
value: Vector2;
|
|
9
|
+
};
|
|
10
|
+
uPointSize: {
|
|
11
|
+
value: number;
|
|
12
|
+
};
|
|
13
|
+
uTexture: {
|
|
14
|
+
value: Texture | null;
|
|
15
|
+
};
|
|
16
|
+
uTargetTexture: {
|
|
17
|
+
value: Texture | null;
|
|
18
|
+
};
|
|
19
|
+
uMorphProgress: {
|
|
20
|
+
value: number;
|
|
21
|
+
};
|
|
22
|
+
uColor: {
|
|
23
|
+
value: Color;
|
|
24
|
+
};
|
|
25
|
+
uOpacity: {
|
|
26
|
+
value: number;
|
|
27
|
+
};
|
|
28
|
+
uNormalizationScale: {
|
|
29
|
+
value: number;
|
|
30
|
+
};
|
|
31
|
+
uGenVertexType: {
|
|
32
|
+
value: number;
|
|
33
|
+
};
|
|
34
|
+
uGenVertexEnabled: {
|
|
35
|
+
value: boolean;
|
|
36
|
+
};
|
|
37
|
+
uGenVertexIntensity: {
|
|
38
|
+
value: number;
|
|
39
|
+
};
|
|
40
|
+
uGenVertexSpeed: {
|
|
41
|
+
value: number;
|
|
42
|
+
};
|
|
43
|
+
uGenVertexFrequency: {
|
|
44
|
+
value: number;
|
|
45
|
+
};
|
|
46
|
+
uGenVertexDirection: {
|
|
47
|
+
value: number;
|
|
48
|
+
};
|
|
49
|
+
uGenVertexCenterX: {
|
|
50
|
+
value: number;
|
|
51
|
+
};
|
|
52
|
+
uGenVertexCenterY: {
|
|
53
|
+
value: number;
|
|
54
|
+
};
|
|
55
|
+
uGenVertexMinScale: {
|
|
56
|
+
value: number;
|
|
57
|
+
};
|
|
58
|
+
uGenVertexMaxScale: {
|
|
59
|
+
value: number;
|
|
60
|
+
};
|
|
61
|
+
uPtrRadius: {
|
|
62
|
+
value: number;
|
|
63
|
+
};
|
|
64
|
+
uPtrVertexType: {
|
|
65
|
+
value: number;
|
|
66
|
+
};
|
|
67
|
+
uPtrVertexEnabled: {
|
|
68
|
+
value: boolean;
|
|
69
|
+
};
|
|
70
|
+
uPtrVertexIntensity: {
|
|
71
|
+
value: number;
|
|
72
|
+
};
|
|
73
|
+
uPtrVertexSpeed: {
|
|
74
|
+
value: number;
|
|
75
|
+
};
|
|
76
|
+
uPtrVertexFrequency: {
|
|
77
|
+
value: number;
|
|
78
|
+
};
|
|
79
|
+
uPtrVertexDirection: {
|
|
80
|
+
value: number;
|
|
81
|
+
};
|
|
82
|
+
uPtrVertexCenterX: {
|
|
83
|
+
value: number;
|
|
84
|
+
};
|
|
85
|
+
uPtrVertexCenterY: {
|
|
86
|
+
value: number;
|
|
87
|
+
};
|
|
88
|
+
uPtrVertexMinScale: {
|
|
89
|
+
value: number;
|
|
90
|
+
};
|
|
91
|
+
uPtrVertexMaxScale: {
|
|
92
|
+
value: number;
|
|
93
|
+
};
|
|
94
|
+
uGenFragmentType: {
|
|
95
|
+
value: number;
|
|
96
|
+
};
|
|
97
|
+
uGenFragmentEnabled: {
|
|
98
|
+
value: boolean;
|
|
99
|
+
};
|
|
100
|
+
uGenFragmentIntensity: {
|
|
101
|
+
value: number;
|
|
102
|
+
};
|
|
103
|
+
uGenFragmentSpeed: {
|
|
104
|
+
value: number;
|
|
105
|
+
};
|
|
106
|
+
uGenFragmentColor: {
|
|
107
|
+
value: Color;
|
|
108
|
+
};
|
|
109
|
+
uGenGrayscaleMode: {
|
|
110
|
+
value: number;
|
|
111
|
+
};
|
|
112
|
+
uGenGrayscaleContrast: {
|
|
113
|
+
value: number;
|
|
114
|
+
};
|
|
115
|
+
uGenGrayscaleBrightness: {
|
|
116
|
+
value: number;
|
|
117
|
+
};
|
|
118
|
+
uGenGrayscaleWaveFreq: {
|
|
119
|
+
value: number;
|
|
120
|
+
};
|
|
121
|
+
uGenGrayscaleWaveDir: {
|
|
122
|
+
value: number;
|
|
123
|
+
};
|
|
124
|
+
uGenGrayscaleCenterX: {
|
|
125
|
+
value: number;
|
|
126
|
+
};
|
|
127
|
+
uGenGrayscaleCenterY: {
|
|
128
|
+
value: number;
|
|
129
|
+
};
|
|
130
|
+
uPtrFragmentType: {
|
|
131
|
+
value: number;
|
|
132
|
+
};
|
|
133
|
+
uPtrFragmentEnabled: {
|
|
134
|
+
value: boolean;
|
|
135
|
+
};
|
|
136
|
+
uPtrFragmentIntensity: {
|
|
137
|
+
value: number;
|
|
138
|
+
};
|
|
139
|
+
uPtrFragmentSpeed: {
|
|
140
|
+
value: number;
|
|
141
|
+
};
|
|
142
|
+
uPtrFragmentColor: {
|
|
143
|
+
value: Color;
|
|
144
|
+
};
|
|
145
|
+
uPtrGrayscaleMode: {
|
|
146
|
+
value: number;
|
|
147
|
+
};
|
|
148
|
+
uPtrGrayscaleContrast: {
|
|
149
|
+
value: number;
|
|
150
|
+
};
|
|
151
|
+
uPtrGrayscaleBrightness: {
|
|
152
|
+
value: number;
|
|
153
|
+
};
|
|
154
|
+
uPtrGrayscaleWaveFreq: {
|
|
155
|
+
value: number;
|
|
156
|
+
};
|
|
157
|
+
uPtrGrayscaleWaveDir: {
|
|
158
|
+
value: number;
|
|
159
|
+
};
|
|
160
|
+
uPtrGrayscaleCenterX: {
|
|
161
|
+
value: number;
|
|
162
|
+
};
|
|
163
|
+
uPtrGrayscaleCenterY: {
|
|
164
|
+
value: number;
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
declare const ShaderEffectsMaterial: import("@react-three/fiber").ConstructorRepresentation<import("three").ShaderMaterial & {
|
|
168
|
+
u_time: number;
|
|
169
|
+
u_pointer: Vector2;
|
|
170
|
+
uPointSize: number;
|
|
171
|
+
uTexture: any;
|
|
172
|
+
uTargetTexture: any;
|
|
173
|
+
uHasTexture: false;
|
|
174
|
+
uMorphProgress: number;
|
|
175
|
+
uColor: Color;
|
|
176
|
+
uOpacity: number;
|
|
177
|
+
uNormalizationScale: number;
|
|
178
|
+
uParticleUVScale: number;
|
|
179
|
+
uGenVertexType: number;
|
|
180
|
+
uGenVertexEnabled: false;
|
|
181
|
+
uGenVertexIntensity: number;
|
|
182
|
+
uGenVertexSpeed: number;
|
|
183
|
+
uGenVertexFrequency: number;
|
|
184
|
+
uGenVertexDirection: number;
|
|
185
|
+
uGenVertexCenterX: number;
|
|
186
|
+
uGenVertexCenterY: number;
|
|
187
|
+
uGenVertexMinScale: number;
|
|
188
|
+
uGenVertexMaxScale: number;
|
|
189
|
+
uPtrRadius: number;
|
|
190
|
+
uPtrVertexType: number;
|
|
191
|
+
uPtrVertexEnabled: false;
|
|
192
|
+
uPtrVertexIntensity: number;
|
|
193
|
+
uPtrVertexSpeed: number;
|
|
194
|
+
uPtrVertexFrequency: number;
|
|
195
|
+
uPtrVertexDirection: number;
|
|
196
|
+
uPtrVertexCenterX: number;
|
|
197
|
+
uPtrVertexCenterY: number;
|
|
198
|
+
uPtrVertexMinScale: number;
|
|
199
|
+
uPtrVertexMaxScale: number;
|
|
200
|
+
uGenFragmentType: number;
|
|
201
|
+
uGenFragmentEnabled: false;
|
|
202
|
+
uGenFragmentIntensity: number;
|
|
203
|
+
uGenFragmentSpeed: number;
|
|
204
|
+
uGenFragmentColor: Color;
|
|
205
|
+
uGenGrayscaleMode: number;
|
|
206
|
+
uGenGrayscaleContrast: number;
|
|
207
|
+
uGenGrayscaleBrightness: number;
|
|
208
|
+
uGenGrayscaleWaveFreq: number;
|
|
209
|
+
uGenGrayscaleWaveDir: number;
|
|
210
|
+
uGenGrayscaleCenterX: number;
|
|
211
|
+
uGenGrayscaleCenterY: number;
|
|
212
|
+
uPtrFragmentType: number;
|
|
213
|
+
uPtrFragmentEnabled: false;
|
|
214
|
+
uPtrFragmentIntensity: number;
|
|
215
|
+
uPtrFragmentSpeed: number;
|
|
216
|
+
uPtrFragmentColor: Color;
|
|
217
|
+
uPtrGrayscaleMode: number;
|
|
218
|
+
uPtrGrayscaleContrast: number;
|
|
219
|
+
uPtrGrayscaleBrightness: number;
|
|
220
|
+
uPtrGrayscaleWaveFreq: number;
|
|
221
|
+
uPtrGrayscaleWaveDir: number;
|
|
222
|
+
uPtrGrayscaleCenterX: number;
|
|
223
|
+
uPtrGrayscaleCenterY: number;
|
|
224
|
+
}> & {
|
|
225
|
+
key: string;
|
|
226
|
+
};
|
|
227
|
+
export { ShaderEffectsMaterial };
|
|
228
|
+
//# sourceMappingURL=ShaderEffectsMaterial%20copy%202.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShaderEffectsMaterial copy 2.d.ts","sourceRoot":"","sources":["../../src/shaders/ShaderEffectsMaterial copy 2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import { Vector2, Color } from 'three';
|
|
2
|
+
import { extend } from '@react-three/fiber';
|
|
3
|
+
import { shaderMaterial } from '@react-three/drei';
|
|
4
|
+
import { effectsVertexGLSL } from './effects/EffectsVertexFunctions.glsl.js';
|
|
5
|
+
// ─── Vertex shader ────────────────────────────────────────────────────────────
|
|
6
|
+
const vertexShader = /*glsl*/ `
|
|
7
|
+
${effectsVertexGLSL}
|
|
8
|
+
|
|
9
|
+
uniform float uPointSize;
|
|
10
|
+
uniform float uMorphProgress;
|
|
11
|
+
uniform float uNormalizationScale;
|
|
12
|
+
attribute vec2 aUV;
|
|
13
|
+
varying vec2 vUV;
|
|
14
|
+
varying vec2 vTexCoords;
|
|
15
|
+
varying vec2 vScreenPosition;
|
|
16
|
+
|
|
17
|
+
void main() {
|
|
18
|
+
vUV = aUV;
|
|
19
|
+
|
|
20
|
+
#include <begin_vertex>
|
|
21
|
+
vec3 morphedPos = mix(position, position, uMorphProgress);
|
|
22
|
+
|
|
23
|
+
vec2 scaledPointer = u_pointer * 5.0;
|
|
24
|
+
morphedPos = applyAllVertexEffects(morphedPos, scaledPointer);
|
|
25
|
+
|
|
26
|
+
vTexCoords = morphedPos.xy;
|
|
27
|
+
transformed = morphedPos;
|
|
28
|
+
#include <project_vertex>
|
|
29
|
+
|
|
30
|
+
gl_PointSize = uPointSize * getScaleMultiplier(morphedPos, scaledPointer);
|
|
31
|
+
vScreenPosition = gl_Position.xy / gl_Position.w;
|
|
32
|
+
#include <logdepthbuf_vertex>
|
|
33
|
+
#include <clipping_planes_vertex>
|
|
34
|
+
#include <worldpos_vertex>
|
|
35
|
+
#include <fog_vertex>
|
|
36
|
+
}
|
|
37
|
+
`;
|
|
38
|
+
// ─── Fragment shader ──────────────────────────────────────────────────────────
|
|
39
|
+
const fragmentShader = /*glsl*/ `
|
|
40
|
+
uniform sampler2D uTexture;
|
|
41
|
+
uniform sampler2D uTargetTexture;
|
|
42
|
+
uniform bool uHasTexture;
|
|
43
|
+
uniform vec3 uColor;
|
|
44
|
+
uniform float uOpacity;
|
|
45
|
+
varying vec2 vTexCoords;
|
|
46
|
+
varying vec2 vUV;
|
|
47
|
+
uniform float uMorphProgress;
|
|
48
|
+
uniform float u_time;
|
|
49
|
+
uniform float uParticleUVScale;
|
|
50
|
+
uniform vec2 u_pointer;
|
|
51
|
+
uniform float uPtrRadius;
|
|
52
|
+
varying vec2 vScreenPosition;
|
|
53
|
+
|
|
54
|
+
// ── General fragment uniforms ─────────────────────────────────────────────
|
|
55
|
+
uniform float uGenFragmentType;
|
|
56
|
+
uniform bool uGenFragmentEnabled;
|
|
57
|
+
uniform float uGenFragmentIntensity;
|
|
58
|
+
uniform float uGenFragmentSpeed;
|
|
59
|
+
uniform vec3 uGenFragmentColor;
|
|
60
|
+
uniform float uGenGrayscaleMode;
|
|
61
|
+
uniform float uGenGrayscaleContrast;
|
|
62
|
+
uniform float uGenGrayscaleBrightness;
|
|
63
|
+
uniform float uGenGrayscaleWaveFreq;
|
|
64
|
+
uniform float uGenGrayscaleWaveDir;
|
|
65
|
+
uniform float uGenGrayscaleCenterX;
|
|
66
|
+
uniform float uGenGrayscaleCenterY;
|
|
67
|
+
|
|
68
|
+
// ── Pointer fragment uniforms ─────────────────────────────────────────────
|
|
69
|
+
uniform float uPtrFragmentType;
|
|
70
|
+
uniform bool uPtrFragmentEnabled;
|
|
71
|
+
uniform float uPtrFragmentIntensity;
|
|
72
|
+
uniform float uPtrFragmentSpeed;
|
|
73
|
+
uniform vec3 uPtrFragmentColor;
|
|
74
|
+
uniform float uPtrGrayscaleMode;
|
|
75
|
+
uniform float uPtrGrayscaleContrast;
|
|
76
|
+
uniform float uPtrGrayscaleBrightness;
|
|
77
|
+
uniform float uPtrGrayscaleWaveFreq;
|
|
78
|
+
uniform float uPtrGrayscaleWaveDir;
|
|
79
|
+
uniform float uPtrGrayscaleCenterX;
|
|
80
|
+
uniform float uPtrGrayscaleCenterY;
|
|
81
|
+
|
|
82
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
83
|
+
|
|
84
|
+
float circle(vec2 uv, float border) {
|
|
85
|
+
float dist = 0.5 - distance(uv, vec2(0.5));
|
|
86
|
+
return smoothstep(0.0, border, dist);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
vec4 applyFragmentEffect(
|
|
90
|
+
vec4 color,
|
|
91
|
+
float type, float intensity, float speed,
|
|
92
|
+
vec3 fColor,
|
|
93
|
+
float grayscaleMode, float contrast, float brightness,
|
|
94
|
+
float waveFreq, float waveDir, float cx, float cy
|
|
95
|
+
) {
|
|
96
|
+
if (type < 1.5) {
|
|
97
|
+
// Grayscale
|
|
98
|
+
float factor = 0.0;
|
|
99
|
+
if (grayscaleMode < 0.5) {
|
|
100
|
+
factor = intensity;
|
|
101
|
+
} else if (grayscaleMode < 1.5) {
|
|
102
|
+
float pos = waveDir < 0.5 ? vTexCoords.x : (waveDir < 1.5 ? vTexCoords.y : vTexCoords.x + vTexCoords.y);
|
|
103
|
+
factor = (sin(pos * waveFreq + u_time * speed) * 0.5 + 0.5) * intensity;
|
|
104
|
+
} else if (grayscaleMode < 2.5) {
|
|
105
|
+
factor = (sin(u_time * speed) * 0.5 + 0.5) * intensity;
|
|
106
|
+
} else {
|
|
107
|
+
float d = distance(vTexCoords, vec2(cx, cy));
|
|
108
|
+
factor = (sin(d * 5.0 - u_time * speed) * 0.5 + 0.5) * intensity;
|
|
109
|
+
}
|
|
110
|
+
float gray = dot(color.rgb, vec3(0.299, 0.587, 0.114));
|
|
111
|
+
gray = (gray - 0.5) * contrast + 0.5 + brightness;
|
|
112
|
+
color.rgb = mix(color.rgb, vec3(gray), factor);
|
|
113
|
+
} else if (type < 2.5) {
|
|
114
|
+
// Glow
|
|
115
|
+
color.rgb += fColor * intensity;
|
|
116
|
+
} else if (type < 3.5) {
|
|
117
|
+
// ColorShift
|
|
118
|
+
color.rgb = mix(color.rgb, fColor, intensity);
|
|
119
|
+
}
|
|
120
|
+
return color;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
void main() {
|
|
124
|
+
vec4 outColor;
|
|
125
|
+
if (uHasTexture) {
|
|
126
|
+
vec2 scaledUV = gl_PointCoord * uParticleUVScale;
|
|
127
|
+
scaledUV.y *= -1.0;
|
|
128
|
+
scaledUV += vUV;
|
|
129
|
+
vec4 colorA = texture2D(uTexture, scaledUV) * vec4(uColor, 1.0);
|
|
130
|
+
vec4 colorB = texture2D(uTargetTexture, scaledUV) * vec4(uColor, 1.0);
|
|
131
|
+
outColor = mix(colorA, colorB, uMorphProgress);
|
|
132
|
+
} else {
|
|
133
|
+
outColor = vec4(uColor, 1.0);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
outColor.a *= circle(gl_PointCoord, 0.2);
|
|
137
|
+
|
|
138
|
+
// General fragment effect (global)
|
|
139
|
+
if (uGenFragmentEnabled && uGenFragmentType > 0.5) {
|
|
140
|
+
outColor = applyFragmentEffect(
|
|
141
|
+
outColor,
|
|
142
|
+
uGenFragmentType, uGenFragmentIntensity, uGenFragmentSpeed,
|
|
143
|
+
uGenFragmentColor,
|
|
144
|
+
uGenGrayscaleMode, uGenGrayscaleContrast, uGenGrayscaleBrightness,
|
|
145
|
+
uGenGrayscaleWaveFreq, uGenGrayscaleWaveDir, uGenGrayscaleCenterX, uGenGrayscaleCenterY
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// Pointer fragment effect (within radius)
|
|
150
|
+
if (uPtrFragmentEnabled && uPtrFragmentType > 0.5) {
|
|
151
|
+
vec2 scaledPointer = u_pointer * 5.0;
|
|
152
|
+
float falloff = smoothstep(uPtrRadius, 0.0, distance(vTexCoords, scaledPointer));
|
|
153
|
+
if (falloff > 0.0) {
|
|
154
|
+
outColor = applyFragmentEffect(
|
|
155
|
+
outColor,
|
|
156
|
+
uPtrFragmentType, uPtrFragmentIntensity * falloff, uPtrFragmentSpeed,
|
|
157
|
+
uPtrFragmentColor,
|
|
158
|
+
uPtrGrayscaleMode, uPtrGrayscaleContrast, uPtrGrayscaleBrightness,
|
|
159
|
+
uPtrGrayscaleWaveFreq, uPtrGrayscaleWaveDir, uPtrGrayscaleCenterX, uPtrGrayscaleCenterY
|
|
160
|
+
);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
outColor.a *= uOpacity;
|
|
165
|
+
gl_FragColor = outColor;
|
|
166
|
+
}
|
|
167
|
+
`;
|
|
168
|
+
// ─── Material definition ──────────────────────────────────────────────────────
|
|
169
|
+
const ShaderEffectsMaterial = shaderMaterial({
|
|
170
|
+
// Base
|
|
171
|
+
u_time: 0,
|
|
172
|
+
u_pointer: new Vector2(),
|
|
173
|
+
uPointSize: 1.0,
|
|
174
|
+
uTexture: null,
|
|
175
|
+
uTargetTexture: null,
|
|
176
|
+
uHasTexture: false,
|
|
177
|
+
uMorphProgress: 0.0,
|
|
178
|
+
uColor: new Color(1.0, 1.0, 1.0),
|
|
179
|
+
uOpacity: 1.0,
|
|
180
|
+
uNormalizationScale: 1.0,
|
|
181
|
+
uParticleUVScale: 0.01,
|
|
182
|
+
// General vertex effect
|
|
183
|
+
uGenVertexType: 0,
|
|
184
|
+
uGenVertexEnabled: false,
|
|
185
|
+
uGenVertexIntensity: 0.3,
|
|
186
|
+
uGenVertexSpeed: 1.0,
|
|
187
|
+
uGenVertexFrequency: 3.0,
|
|
188
|
+
uGenVertexDirection: 0,
|
|
189
|
+
uGenVertexCenterX: 0.0,
|
|
190
|
+
uGenVertexCenterY: 0.0,
|
|
191
|
+
uGenVertexMinScale: 0.5,
|
|
192
|
+
uGenVertexMaxScale: 2.0,
|
|
193
|
+
// Pointer vertex effect
|
|
194
|
+
uPtrRadius: 2.5,
|
|
195
|
+
uPtrVertexType: 0,
|
|
196
|
+
uPtrVertexEnabled: false,
|
|
197
|
+
uPtrVertexIntensity: 0.3,
|
|
198
|
+
uPtrVertexSpeed: 1.0,
|
|
199
|
+
uPtrVertexFrequency: 3.0,
|
|
200
|
+
uPtrVertexDirection: 0,
|
|
201
|
+
uPtrVertexCenterX: 0.0,
|
|
202
|
+
uPtrVertexCenterY: 0.0,
|
|
203
|
+
uPtrVertexMinScale: 0.5,
|
|
204
|
+
uPtrVertexMaxScale: 2.0,
|
|
205
|
+
// General fragment effect
|
|
206
|
+
uGenFragmentType: 0,
|
|
207
|
+
uGenFragmentEnabled: false,
|
|
208
|
+
uGenFragmentIntensity: 1.0,
|
|
209
|
+
uGenFragmentSpeed: 1.0,
|
|
210
|
+
uGenFragmentColor: new Color(1.0, 1.0, 1.0),
|
|
211
|
+
uGenGrayscaleMode: 0,
|
|
212
|
+
uGenGrayscaleContrast: 1.0,
|
|
213
|
+
uGenGrayscaleBrightness: 0.0,
|
|
214
|
+
uGenGrayscaleWaveFreq: 3.0,
|
|
215
|
+
uGenGrayscaleWaveDir: 0,
|
|
216
|
+
uGenGrayscaleCenterX: 0.0,
|
|
217
|
+
uGenGrayscaleCenterY: 0.0,
|
|
218
|
+
// Pointer fragment effect
|
|
219
|
+
uPtrFragmentType: 0,
|
|
220
|
+
uPtrFragmentEnabled: false,
|
|
221
|
+
uPtrFragmentIntensity: 1.0,
|
|
222
|
+
uPtrFragmentSpeed: 1.0,
|
|
223
|
+
uPtrFragmentColor: new Color(1.0, 1.0, 1.0),
|
|
224
|
+
uPtrGrayscaleMode: 0,
|
|
225
|
+
uPtrGrayscaleContrast: 1.0,
|
|
226
|
+
uPtrGrayscaleBrightness: 0.0,
|
|
227
|
+
uPtrGrayscaleWaveFreq: 3.0,
|
|
228
|
+
uPtrGrayscaleWaveDir: 0,
|
|
229
|
+
uPtrGrayscaleCenterX: 0.0,
|
|
230
|
+
uPtrGrayscaleCenterY: 0.0,
|
|
231
|
+
}, vertexShader, fragmentShader);
|
|
232
|
+
extend({ ShaderEffectsMaterial });
|
|
233
|
+
export { ShaderEffectsMaterial };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Color } from 'three';
|
|
2
|
+
declare module '@react-three/fiber' {
|
|
3
|
+
interface ThreeElements {
|
|
4
|
+
shootingStarMaterial: any;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
declare const ShootingStarMaterial: import("@react-three/fiber").ConstructorRepresentation<import("three").ShaderMaterial & {
|
|
8
|
+
color: Color;
|
|
9
|
+
opacity: number;
|
|
10
|
+
}> & {
|
|
11
|
+
key: string;
|
|
12
|
+
};
|
|
13
|
+
export { ShootingStarMaterial };
|
|
14
|
+
//# sourceMappingURL=ShootingStarMaterial%20copy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShootingStarMaterial copy.d.ts","sourceRoot":"","sources":["../../src/shaders/ShootingStarMaterial copy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAG9B,OAAO,QAAQ,oBAAoB,CAAC;IAChC,UAAU,aAAa;QACnB,oBAAoB,EAAE,GAAG,CAAC;KAC7B;CACJ;AA0BD,QAAA,MAAM,oBAAoB;;;;;CAGM,CAAC;AAEjC,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Color } from 'three';
|
|
2
|
+
import { extend } from '@react-three/fiber';
|
|
3
|
+
import { shaderMaterial } from '@react-three/drei';
|
|
4
|
+
const vertexShader = /*glsl*/ `
|
|
5
|
+
varying vec2 vUv;
|
|
6
|
+
varying float vProgress;
|
|
7
|
+
attribute float progress;
|
|
8
|
+
|
|
9
|
+
void main() {
|
|
10
|
+
vUv = uv;
|
|
11
|
+
vProgress = progress;
|
|
12
|
+
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
|
|
13
|
+
}
|
|
14
|
+
`;
|
|
15
|
+
const fragmentShader = /*glsl*/ `
|
|
16
|
+
uniform vec3 color;
|
|
17
|
+
uniform float opacity;
|
|
18
|
+
varying vec2 vUv;
|
|
19
|
+
varying float vProgress;
|
|
20
|
+
|
|
21
|
+
void main() {
|
|
22
|
+
float alpha = opacity * (1.0 - vProgress) * (1.0 - vProgress);
|
|
23
|
+
float glow = 1.0 - vProgress;
|
|
24
|
+
vec3 glowColor = color * (1.0 + glow * 0.5);
|
|
25
|
+
gl_FragColor = vec4(glowColor, alpha);
|
|
26
|
+
}
|
|
27
|
+
`;
|
|
28
|
+
const ShootingStarMaterial = shaderMaterial({
|
|
29
|
+
color: new Color(1.0, 1.0, 1.0),
|
|
30
|
+
opacity: 1.0,
|
|
31
|
+
}, vertexShader, fragmentShader);
|
|
32
|
+
extend({ ShootingStarMaterial });
|
|
33
|
+
export { ShootingStarMaterial };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Color } from 'three';
|
|
2
|
+
export interface SkyboxMaterialUniforms {
|
|
3
|
+
uSunAzimuth: {
|
|
4
|
+
value: number;
|
|
5
|
+
};
|
|
6
|
+
uSunElevation: {
|
|
7
|
+
value: number;
|
|
8
|
+
};
|
|
9
|
+
uSunColor: {
|
|
10
|
+
value: Color;
|
|
11
|
+
};
|
|
12
|
+
uSkyColorLow: {
|
|
13
|
+
value: Color;
|
|
14
|
+
};
|
|
15
|
+
uSkyColorHigh: {
|
|
16
|
+
value: Color;
|
|
17
|
+
};
|
|
18
|
+
uSunSize: {
|
|
19
|
+
value: number;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
declare module '@react-three/fiber' {
|
|
23
|
+
interface ThreeElements {
|
|
24
|
+
skyboxMaterial: any;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
declare const SkyboxMaterial: import("@react-three/fiber").ConstructorRepresentation<import("three").ShaderMaterial & {
|
|
28
|
+
uSunAzimuth: number;
|
|
29
|
+
uSunElevation: number;
|
|
30
|
+
uSunColor: Color;
|
|
31
|
+
uSkyColorLow: Color;
|
|
32
|
+
uSkyColorHigh: Color;
|
|
33
|
+
uSunSize: number;
|
|
34
|
+
}> & {
|
|
35
|
+
key: string;
|
|
36
|
+
};
|
|
37
|
+
export { SkyboxMaterial };
|
|
38
|
+
//# sourceMappingURL=SkyboxMaterial%20copy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SkyboxMaterial copy.d.ts","sourceRoot":"","sources":["../../src/shaders/SkyboxMaterial copy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAG9B,MAAM,WAAW,sBAAsB;IACnC,WAAW,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,aAAa,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,EAAE;QACP,KAAK,EAAE,KAAK,CAAC;KAChB,CAAC;IACF,YAAY,EAAE;QACV,KAAK,EAAE,KAAK,CAAC;KAChB,CAAC;IACF,aAAa,EAAE;QACX,KAAK,EAAE,KAAK,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED,OAAO,QAAQ,oBAAoB,CAAC;IAChC,UAAU,aAAa;QACnB,cAAc,EAAE,GAAG,CAAC;KACvB;CACJ;AA8CD,QAAA,MAAM,cAAc;;;;;;;;;CAOY,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,CAAC"}
|