@3driseai/3drise-viewer 0.1.16 → 0.1.17
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/README.md +4 -3
- package/dist/components/ChladniGrid.d.ts +15 -0
- package/dist/components/ChladniGrid.d.ts.map +1 -0
- package/dist/components/ChladniGrid.js +62 -0
- package/dist/components/CustomPrimitive.d.ts +2 -0
- package/dist/components/CustomPrimitive.d.ts.map +1 -1
- package/dist/components/CustomPrimitive.js +2 -2
- package/dist/components/EffectsGenerator.d.ts.map +1 -1
- package/dist/components/EffectsGenerator.js +26 -2
- package/dist/components/FlowNetGrid.d.ts +15 -0
- package/dist/components/FlowNetGrid.d.ts.map +1 -0
- package/dist/components/FlowNetGrid.js +61 -0
- package/dist/components/GirihGrid.d.ts +15 -0
- package/dist/components/GirihGrid.d.ts.map +1 -0
- package/dist/components/GirihGrid.js +62 -0
- package/dist/components/GravWaveGrid.d.ts +15 -0
- package/dist/components/GravWaveGrid.d.ts.map +1 -0
- package/dist/components/GravWaveGrid.js +62 -0
- package/dist/components/GridsGenerator.d.ts +2 -2
- package/dist/components/GridsGenerator.d.ts.map +1 -1
- package/dist/components/GridsGenerator.js +21 -0
- package/dist/components/HyperbolicGrid.d.ts +15 -0
- package/dist/components/HyperbolicGrid.d.ts.map +1 -0
- package/dist/components/HyperbolicGrid.js +61 -0
- package/dist/components/LayoutInstances.d.ts +13 -0
- package/dist/components/LayoutInstances.d.ts.map +1 -0
- package/dist/components/LayoutInstances.js +39 -0
- package/dist/components/ModelPrimitive.d.ts +2 -0
- package/dist/components/ModelPrimitive.d.ts.map +1 -1
- package/dist/components/ModelPrimitive.js +3 -3
- package/dist/components/ObjectNode.d.ts.map +1 -1
- package/dist/components/ObjectNode.js +36 -8
- package/dist/components/ReactionDiffusionGrid.d.ts +15 -0
- package/dist/components/ReactionDiffusionGrid.d.ts.map +1 -0
- package/dist/components/ReactionDiffusionGrid.js +376 -0
- package/dist/components/WallpaperGrid.d.ts +15 -0
- package/dist/components/WallpaperGrid.d.ts.map +1 -0
- package/dist/components/WallpaperGrid.js +555 -0
- package/dist/components/cursor/CursorController.d.ts.map +1 -1
- package/dist/components/effects/BlackHoleEffect.d.ts +3 -3
- package/dist/components/effects/BlackHoleEffect.d.ts.map +1 -1
- package/dist/components/effects/BlackHoleEffect.js +293 -163
- package/dist/components/effects/DandelionSeedsEffect.d.ts +13 -0
- package/dist/components/effects/DandelionSeedsEffect.d.ts.map +1 -0
- package/dist/components/effects/DandelionSeedsEffect.js +510 -0
- package/dist/components/effects/FallingLeavesEffect.d.ts +13 -0
- package/dist/components/effects/FallingLeavesEffect.d.ts.map +1 -0
- package/dist/components/effects/FallingLeavesEffect.js +446 -0
- package/dist/components/effects/FieldLinesEffect.d.ts +11 -0
- package/dist/components/effects/FieldLinesEffect.d.ts.map +1 -0
- package/dist/components/effects/FieldLinesEffect.js +260 -0
- package/dist/components/effects/FireflySwarmEffect.d.ts +13 -0
- package/dist/components/effects/FireflySwarmEffect.d.ts.map +1 -0
- package/dist/components/effects/FireflySwarmEffect.js +408 -0
- package/dist/components/effects/GalaxyEffect.d.ts +13 -0
- package/dist/components/effects/GalaxyEffect.d.ts.map +1 -0
- package/dist/components/effects/GalaxyEffect.js +374 -0
- package/dist/components/effects/HarmonicShellEffect.d.ts +11 -0
- package/dist/components/effects/HarmonicShellEffect.d.ts.map +1 -0
- package/dist/components/effects/HarmonicShellEffect.js +209 -0
- package/dist/components/effects/IceCrystalsEffect.d.ts +3 -3
- package/dist/components/effects/IceCrystalsEffect.d.ts.map +1 -1
- package/dist/components/effects/IceCrystalsEffect.js +286 -166
- package/dist/components/effects/IceHaloEffect.d.ts +13 -0
- package/dist/components/effects/IceHaloEffect.d.ts.map +1 -0
- package/dist/components/effects/IceHaloEffect.js +306 -0
- package/dist/components/effects/LichtenbergEffect.d.ts +13 -0
- package/dist/components/effects/LichtenbergEffect.d.ts.map +1 -0
- package/dist/components/effects/LichtenbergEffect.js +517 -0
- package/dist/components/effects/MoleculesEffect.d.ts +3 -3
- package/dist/components/effects/MoleculesEffect.d.ts.map +1 -1
- package/dist/components/effects/MoleculesEffect.js +322 -164
- package/dist/components/effects/MurmurationEffect.d.ts +13 -0
- package/dist/components/effects/MurmurationEffect.d.ts.map +1 -0
- package/dist/components/effects/MurmurationEffect.js +539 -0
- package/dist/components/effects/PlanetaryRingsEffect.d.ts +13 -0
- package/dist/components/effects/PlanetaryRingsEffect.d.ts.map +1 -0
- package/dist/components/effects/PlanetaryRingsEffect.js +458 -0
- package/dist/components/effects/PortalEffect.d.ts +3 -3
- package/dist/components/effects/PortalEffect.d.ts.map +1 -1
- package/dist/components/effects/PortalEffect.js +240 -163
- package/dist/components/effects/ShockwaveEffect.d.ts +5 -3
- package/dist/components/effects/ShockwaveEffect.d.ts.map +1 -1
- package/dist/components/effects/ShockwaveEffect.js +538 -142
- package/dist/components/effects/SmokePlumeEffect.d.ts +3 -3
- package/dist/components/effects/SmokePlumeEffect.d.ts.map +1 -1
- package/dist/components/effects/SmokePlumeEffect.js +180 -116
- package/dist/components/effects/SmokeRingEffect.d.ts +3 -3
- package/dist/components/effects/SmokeRingEffect.d.ts.map +1 -1
- package/dist/components/effects/SmokeRingEffect.js +260 -135
- package/dist/components/effects/StrangeAttractorEffect.d.ts +11 -0
- package/dist/components/effects/StrangeAttractorEffect.d.ts.map +1 -0
- package/dist/components/effects/StrangeAttractorEffect.js +229 -0
- package/dist/components/effects/VolumetricFogEffect.d.ts +5 -3
- package/dist/components/effects/VolumetricFogEffect.d.ts.map +1 -1
- package/dist/components/effects/VolumetricFogEffect.js +211 -93
- package/dist/components/effects/WaterCausticsEffect.d.ts +13 -0
- package/dist/components/effects/WaterCausticsEffect.d.ts.map +1 -0
- package/dist/components/effects/WaterCausticsEffect.js +308 -0
- package/dist/components/effects/index.d.ts +9 -0
- package/dist/components/effects/index.d.ts.map +1 -1
- package/dist/components/effects/index.js +9 -0
- package/dist/components/index.d.ts +16 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +8 -0
- package/dist/constants.d.ts +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +1 -1
- package/dist/hooks/useModelObject.d.ts +6 -1
- package/dist/hooks/useModelObject.d.ts.map +1 -1
- package/dist/hooks/useModelObject.js +19 -6
- package/dist/types/gridConfigs.d.ts +98 -0
- package/dist/types/gridConfigs.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useLayoutEffect, useMemo, useRef } from 'react';
|
|
3
|
+
import * as THREE from 'three';
|
|
4
|
+
import { useFrame } from '@react-three/fiber';
|
|
5
|
+
import { applyGenerativeAnimations } from '../../utils/handleGenerativeEffectsAnimations.js';
|
|
6
|
+
import { useObjectReady } from '../../hooks/useObjectReady.js';
|
|
7
|
+
/**
|
|
8
|
+
* Sunlight refracted through a rippling water surface: Snell refraction focuses the light into a caustic web on the floor and over the object, with depth blur and chromatic fringes.
|
|
9
|
+
*
|
|
10
|
+
* h = Σ Aᵢ sin(kᵢ·x − ωᵢt) · q = p + d(1 − 1/n)∇h · I = |∂p/∂x × ∂p/∂y| / |∂q/∂x × ∂q/∂y| = 1/|det(I + d(1 − 1/n)H)|
|
|
11
|
+
*/
|
|
12
|
+
const NOISE2 = /* glsl */ `
|
|
13
|
+
float hash12(vec2 p){
|
|
14
|
+
vec3 p3 = fract(vec3(p.xyx) * 0.1031);
|
|
15
|
+
p3 += dot(p3, p3.yzx + 33.33);
|
|
16
|
+
return fract((p3.x + p3.y) * p3.z);
|
|
17
|
+
}
|
|
18
|
+
float vnoise2(vec2 p){
|
|
19
|
+
vec2 i = floor(p);
|
|
20
|
+
vec2 f = fract(p);
|
|
21
|
+
f = f * f * (3.0 - 2.0 * f);
|
|
22
|
+
return mix(mix(hash12(i), hash12(i + vec2(1.0, 0.0)), f.x),
|
|
23
|
+
mix(hash12(i + vec2(0.0, 1.0)), hash12(i + vec2(1.0, 1.0)), f.x), f.y);
|
|
24
|
+
}
|
|
25
|
+
float fbm2(vec2 p){
|
|
26
|
+
float a = 0.5, s = 0.0;
|
|
27
|
+
for (int i = 0; i < 4; i++){
|
|
28
|
+
s += a * vnoise2(p);
|
|
29
|
+
p = mat2(1.6, 1.2, -1.2, 1.6) * p;
|
|
30
|
+
a *= 0.5;
|
|
31
|
+
}
|
|
32
|
+
return s;
|
|
33
|
+
}
|
|
34
|
+
`;
|
|
35
|
+
// ---------------------------------------------------------------------------
|
|
36
|
+
// Caustics from Snell's law and the Jacobian of the refraction map.
|
|
37
|
+
// The surface is a small sum of travelling waves, h(x,z,t) = sum A sin(k.x - wt),
|
|
38
|
+
// with the amplitudes modulated by a slow noise field so it never looks periodic.
|
|
39
|
+
// A vertical-ish sun ray hitting the surface at p is bent toward the surface
|
|
40
|
+
// normal; to first order in the slope it lands, after a depth d, at
|
|
41
|
+
// q = p + d (1 - 1/n) grad h(p), n = 1.33.
|
|
42
|
+
// A patch of light of area dA at the surface arrives squeezed into the area
|
|
43
|
+
// |dq/dx x dq/dy|, so the brightness is the Jacobian area ratio
|
|
44
|
+
// I = |dp/dx x dp/dy| / |dq/dx x dq/dy| = 1 / |det(Id + d(1 - 1/n) H)|,
|
|
45
|
+
// H the Hessian of h (the chain rule dq = J dp makes the pixel-derivative ratio
|
|
46
|
+
// exact, with no 2x2 quad artefacts). Wherever det J passes through zero the
|
|
47
|
+
// rays cross and a caustic filament lights up; the regularisation eps and the
|
|
48
|
+
// blur term below are the finite pixel footprint, so the filaments stay
|
|
49
|
+
// anti-aliased and their mean brightness is conserved at grazing angles.
|
|
50
|
+
// n is evaluated three times, once per colour channel, which spreads the
|
|
51
|
+
// filaments into the familiar red/blue fringes.
|
|
52
|
+
// ---------------------------------------------------------------------------
|
|
53
|
+
const causticCommon = /* glsl */ `
|
|
54
|
+
uniform float uTime;
|
|
55
|
+
uniform float uBound;
|
|
56
|
+
uniform float uWaterDepth;
|
|
57
|
+
uniform float uWaveScale;
|
|
58
|
+
uniform float uWaveHeight;
|
|
59
|
+
uniform float uDispersion;
|
|
60
|
+
uniform float uRadius;
|
|
61
|
+
uniform float uIntensity;
|
|
62
|
+
uniform float uOpacity;
|
|
63
|
+
uniform float uHasHost;
|
|
64
|
+
uniform vec3 uColor;
|
|
65
|
+
|
|
66
|
+
${NOISE2}
|
|
67
|
+
|
|
68
|
+
const int WAVES = 6;
|
|
69
|
+
const float TAU = 6.28318530718;
|
|
70
|
+
// the sun, matched to the studio key light; rays inside the water are close to vertical
|
|
71
|
+
const vec3 LUP = vec3(0.3853, 0.8807, 0.2752);
|
|
72
|
+
|
|
73
|
+
float waveKF(float i){ return 0.78 + 0.5 * fract(i * 0.618034); }
|
|
74
|
+
vec2 waveDir(float i){ float a = i * 2.39996 + 0.7; return vec2(cos(a), sin(a)); }
|
|
75
|
+
|
|
76
|
+
// slow, low-frequency modulation of the wave amplitudes (swell drifting through)
|
|
77
|
+
vec2 waveNoise(vec2 x){
|
|
78
|
+
float t = uTime * 0.05;
|
|
79
|
+
return vec2(vnoise2(x * 0.42 + vec2(t, 0.0)), vnoise2(x * 0.27 + vec2(-0.7 * t, 5.1)));
|
|
80
|
+
}
|
|
81
|
+
float waveSteep(float i, vec2 nm){
|
|
82
|
+
return uWaveHeight * 0.115 * (0.66 + 0.68 * mix(nm.x, nm.y, fract(i * 0.41)));
|
|
83
|
+
}
|
|
84
|
+
// the same slow field also bends the phase, so the six wave trains never lock
|
|
85
|
+
// into a lattice. Its own gradient is ~10% of the wave's, and is neglected in H.
|
|
86
|
+
float wavePhase(float i, vec2 nm){
|
|
87
|
+
return i * 1.7 + TAU * mix(nm.y, nm.x, fract(i * 0.73));
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// grad h : slope of the surface, what bends the ray
|
|
91
|
+
vec2 waveGrad(vec2 x, vec2 nm){
|
|
92
|
+
float kb = TAU / max(uWaveScale * uBound, 1e-3);
|
|
93
|
+
vec2 g = vec2(0.0);
|
|
94
|
+
for (int i = 0; i < WAVES; i++){
|
|
95
|
+
float fi = float(i);
|
|
96
|
+
float kf = waveKF(fi);
|
|
97
|
+
float k = kb * kf;
|
|
98
|
+
vec2 d = waveDir(fi);
|
|
99
|
+
float ph = k * dot(d, x) - uTime * 0.17 * sqrt(k) + wavePhase(fi, nm);
|
|
100
|
+
g += waveSteep(fi, nm) * d * cos(ph);
|
|
101
|
+
}
|
|
102
|
+
return g;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// Hessian of h : the curvature that focuses the light
|
|
106
|
+
mat2 waveHess(vec2 x, vec2 nm){
|
|
107
|
+
float kb = TAU / max(uWaveScale * uBound, 1e-3);
|
|
108
|
+
mat2 H = mat2(0.0);
|
|
109
|
+
for (int i = 0; i < WAVES; i++){
|
|
110
|
+
float fi = float(i);
|
|
111
|
+
float kf = waveKF(fi);
|
|
112
|
+
float k = kb * kf;
|
|
113
|
+
vec2 d = waveDir(fi);
|
|
114
|
+
float ph = k * dot(d, x) - uTime * 0.17 * sqrt(k) + wavePhase(fi, nm);
|
|
115
|
+
float s = -waveSteep(fi, nm) * k * sin(ph);
|
|
116
|
+
H += mat2(s * d.x * d.x, s * d.x * d.y, s * d.x * d.y, s * d.y * d.y);
|
|
117
|
+
}
|
|
118
|
+
return H;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// Brightness of one colour channel: 1/|det J|, low-pass filtered by the pixel
|
|
122
|
+
// footprint. eps is how much det varies across one pixel, so (1 + eps)/(|det| + eps)
|
|
123
|
+
// is the singular spike convolved with the pixel: sharp filaments up close,
|
|
124
|
+
// smoothly washing out to the unfocused mean of 1 at grazing angles.
|
|
125
|
+
float causticChannel(vec2 base, vec2 grad, vec2 nm, float depth, float nRef, float fp){
|
|
126
|
+
float c = depth * (1.0 - 1.0 / nRef);
|
|
127
|
+
// invert the refraction map once: which surface point sends light to here
|
|
128
|
+
vec2 p = base - c * grad;
|
|
129
|
+
mat2 H = waveHess(p, nm);
|
|
130
|
+
mat2 J = mat2(1.0, 0.0, 0.0, 1.0) + c * H;
|
|
131
|
+
float det = J[0][0] * J[1][1] - J[0][1] * J[1][0];
|
|
132
|
+
float kb = TAU / max(uWaveScale * uBound, 1e-3);
|
|
133
|
+
float slope = c * kb * kb * uWaveHeight * 0.4 + kb * 0.2; // d(det)/d(distance)
|
|
134
|
+
float eps = 0.035 + fp * slope * 0.35;
|
|
135
|
+
return min((1.0 + eps) / (abs(det) + eps), 9.0);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// shadow of the host: march from the receiving point toward the sun and see
|
|
139
|
+
// whether the bounding sphere gets in the way (soft, widening with distance)
|
|
140
|
+
float hostShade(vec3 world){
|
|
141
|
+
if (uHasHost < 0.5) return 1.0;
|
|
142
|
+
float b = dot(world, LUP);
|
|
143
|
+
if (b > 0.0) return 1.0;
|
|
144
|
+
float m = sqrt(max(length(world) * length(world) - b * b, 0.0));
|
|
145
|
+
return smoothstep(uBound * 0.97, uBound * 1.3 + (-b) * 0.12, m);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// the whole caustic colour at a receiving point
|
|
149
|
+
vec3 causticAt(vec3 world, float fade){
|
|
150
|
+
// the pixel footprint on the receiving surface, in world units: taken first so
|
|
151
|
+
// the derivatives stay uniform across the quad
|
|
152
|
+
float fp = max(length(vec2(dFdx(world.x), dFdx(world.z))), length(vec2(dFdy(world.x), dFdy(world.z))));
|
|
153
|
+
float level = uBound * (uWaterDepth - 1.0);
|
|
154
|
+
float depth = max(level - world.y, 0.0);
|
|
155
|
+
float lit = smoothstep(0.0, 0.18 * uBound, level - world.y);
|
|
156
|
+
// where the ray through this point crossed the surface
|
|
157
|
+
vec2 base = world.xz + depth * LUP.xz / LUP.y;
|
|
158
|
+
vec2 nm = waveNoise(base);
|
|
159
|
+
vec2 grad = waveGrad(base, nm);
|
|
160
|
+
float d = uDispersion * 0.006;
|
|
161
|
+
float ir = causticChannel(base, grad, nm, depth, 1.33 - d, fp);
|
|
162
|
+
float ig = causticChannel(base, grad, nm, depth, 1.33, fp);
|
|
163
|
+
float ib = causticChannel(base, grad, nm, depth, 1.33 + d, fp);
|
|
164
|
+
// tone map: a dim wash where the light is unfocused, bright thin filaments
|
|
165
|
+
vec3 I = vec3(ir, ig, ib);
|
|
166
|
+
vec3 b = pow(I, vec3(1.8)) * 0.085;
|
|
167
|
+
vec3 col = uColor * b * (0.75 + 0.25 * I / max(max(I.r, I.g), I.b));
|
|
168
|
+
return col * lit * fade * hostShade(world) * uIntensity * uOpacity;
|
|
169
|
+
}
|
|
170
|
+
`;
|
|
171
|
+
const floorVert = /* glsl */ `
|
|
172
|
+
uniform float uRadius;
|
|
173
|
+
uniform float uBound;
|
|
174
|
+
varying vec3 vWorld;
|
|
175
|
+
void main(){
|
|
176
|
+
vWorld = vec3(position.x * uRadius * uBound, -uBound + 0.004 * uBound, position.z * uRadius * uBound);
|
|
177
|
+
gl_Position = projectionMatrix * modelViewMatrix * vec4(vWorld, 1.0);
|
|
178
|
+
}
|
|
179
|
+
`;
|
|
180
|
+
const floorFrag = /* glsl */ `
|
|
181
|
+
${causticCommon}
|
|
182
|
+
varying vec3 vWorld;
|
|
183
|
+
void main(){
|
|
184
|
+
float r = length(vWorld.xz) / max(uRadius * uBound, 1e-4);
|
|
185
|
+
float edge = 1.0 - smoothstep(0.62, 1.0, r);
|
|
186
|
+
vec3 col = causticAt(vWorld, edge * edge);
|
|
187
|
+
if (max(max(col.r, col.g), col.b) < 0.0015) discard;
|
|
188
|
+
gl_FragColor = vec4(col, 1.0);
|
|
189
|
+
}
|
|
190
|
+
`;
|
|
191
|
+
const skinVert = /* glsl */ `
|
|
192
|
+
uniform float uBound;
|
|
193
|
+
varying vec3 vWorld;
|
|
194
|
+
varying vec3 vNormal2;
|
|
195
|
+
void main(){
|
|
196
|
+
vNormal2 = normalize(position);
|
|
197
|
+
vWorld = position * uBound * 1.004;
|
|
198
|
+
gl_Position = projectionMatrix * modelViewMatrix * vec4(vWorld, 1.0);
|
|
199
|
+
}
|
|
200
|
+
`;
|
|
201
|
+
const skinFrag = /* glsl */ `
|
|
202
|
+
${causticCommon}
|
|
203
|
+
varying vec3 vWorld;
|
|
204
|
+
varying vec3 vNormal2;
|
|
205
|
+
void main(){
|
|
206
|
+
// the skin only catches light where it faces the sun, like any lit surface
|
|
207
|
+
float facing = dot(normalize(vNormal2), LUP);
|
|
208
|
+
float fade = smoothstep(-0.05, 0.45, facing) * pow(max(facing, 0.0), 0.7);
|
|
209
|
+
vec3 col = causticAt(vWorld, fade);
|
|
210
|
+
if (max(max(col.r, col.g), col.b) < 0.0015) discard;
|
|
211
|
+
gl_FragColor = vec4(col, 1.0);
|
|
212
|
+
}
|
|
213
|
+
`;
|
|
214
|
+
function createUniforms() {
|
|
215
|
+
return {
|
|
216
|
+
uTime: { value: 0 },
|
|
217
|
+
uSpeed: { value: 1 },
|
|
218
|
+
uIntensity: { value: 1 },
|
|
219
|
+
uOpacity: { value: 1 },
|
|
220
|
+
uColor: { value: new THREE.Color() },
|
|
221
|
+
uWaterDepth: { value: 2.6 },
|
|
222
|
+
uWaveScale: { value: 0.45 },
|
|
223
|
+
uWaveHeight: { value: 1 },
|
|
224
|
+
uDispersion: { value: 0.5 },
|
|
225
|
+
uRadius: { value: 3.4 },
|
|
226
|
+
uBound: { value: 1 },
|
|
227
|
+
uHasHost: { value: 1 },
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
function applyConfig(u, c, bound, env) {
|
|
231
|
+
u.uSpeed.value = c.speed;
|
|
232
|
+
u.uIntensity.value = c.intensity;
|
|
233
|
+
u.uOpacity.value = c.opacity;
|
|
234
|
+
u.uColor.value.set(c.color);
|
|
235
|
+
u.uWaterDepth.value = c.waterDepth;
|
|
236
|
+
u.uWaveScale.value = c.waveScale;
|
|
237
|
+
u.uWaveHeight.value = c.waveHeight;
|
|
238
|
+
u.uDispersion.value = c.dispersion;
|
|
239
|
+
u.uRadius.value = c.radius;
|
|
240
|
+
u.uBound.value = bound;
|
|
241
|
+
u.uHasHost.value = env && env.hasHost ? 1 : 0;
|
|
242
|
+
}
|
|
243
|
+
function build(u, c, bound, env) {
|
|
244
|
+
const hasHost = !!(env && env.hasHost);
|
|
245
|
+
const add = { uniforms: u, transparent: true, depthWrite: false, blending: THREE.AdditiveBlending };
|
|
246
|
+
const floorMat = new THREE.ShaderMaterial({ vertexShader: floorVert, fragmentShader: floorFrag, ...add });
|
|
247
|
+
const skinMat = new THREE.ShaderMaterial({ vertexShader: skinVert, fragmentShader: skinFrag, side: THREE.FrontSide, ...add });
|
|
248
|
+
const floorGeo = new THREE.CircleGeometry(1, 128);
|
|
249
|
+
floorGeo.rotateX(-Math.PI / 2);
|
|
250
|
+
const skinGeo = new THREE.SphereGeometry(1, 96, 64);
|
|
251
|
+
const floor = new THREE.Mesh(floorGeo, floorMat);
|
|
252
|
+
const skin = new THREE.Mesh(skinGeo, skinMat);
|
|
253
|
+
floor.frustumCulled = false;
|
|
254
|
+
skin.frustumCulled = false;
|
|
255
|
+
skin.visible = hasHost;
|
|
256
|
+
const group = new THREE.Group();
|
|
257
|
+
group.add(floor, skin);
|
|
258
|
+
const materials = hasHost ? [floorMat, skinMat] : [floorMat];
|
|
259
|
+
return {
|
|
260
|
+
object: group,
|
|
261
|
+
materials,
|
|
262
|
+
apply(c2) {
|
|
263
|
+
skin.visible = hasHost && c2.showOnHost !== false;
|
|
264
|
+
},
|
|
265
|
+
update(dt, camera) {
|
|
266
|
+
u.uTime.value += dt * u.uSpeed.value;
|
|
267
|
+
},
|
|
268
|
+
dispose() { floorGeo.dispose(); skinGeo.dispose(); floorMat.dispose(); skinMat.dispose(); },
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
/** Defaults for every knob, so an older saved config still renders. */
|
|
272
|
+
const DEFAULTS = {
|
|
273
|
+
intensity: 1,
|
|
274
|
+
speed: 1,
|
|
275
|
+
color: '#a9ecff',
|
|
276
|
+
opacity: 1,
|
|
277
|
+
waterDepth: 2.6,
|
|
278
|
+
waveScale: 0.45,
|
|
279
|
+
waveHeight: 1,
|
|
280
|
+
dispersion: 0.5,
|
|
281
|
+
radius: 3.4,
|
|
282
|
+
showOnHost: true,
|
|
283
|
+
};
|
|
284
|
+
const WaterCausticsEffect = ({ boundingRadius, config, animations, hasHost = false, onObjectReady, onObjectDispose }) => {
|
|
285
|
+
const rootRef = useRef(null);
|
|
286
|
+
const animCache = useRef({});
|
|
287
|
+
useObjectReady(rootRef, config, onObjectReady, onObjectDispose);
|
|
288
|
+
// a standalone effect gets boundingRadius 1
|
|
289
|
+
const b = boundingRadius > 0 ? boundingRadius : 1;
|
|
290
|
+
const cfg = useMemo(() => ({ ...DEFAULTS, ...config }), [config]);
|
|
291
|
+
const env = useMemo(() => ({ hasHost: hasHost }), [hasHost]);
|
|
292
|
+
// uniforms outlive the objects, so keyframe animations survive a rebuild
|
|
293
|
+
const uniforms = useMemo(() => createUniforms(), []);
|
|
294
|
+
// rebuilt only when the host size or a structural knob changes
|
|
295
|
+
const instance = useMemo(() => build(uniforms, { ...DEFAULTS, ...config }, b, env), [uniforms, b, env]);
|
|
296
|
+
useEffect(() => () => instance.dispose(), [instance]);
|
|
297
|
+
useLayoutEffect(() => {
|
|
298
|
+
applyConfig(uniforms, cfg, b, env);
|
|
299
|
+
instance.apply(cfg);
|
|
300
|
+
}, [instance, uniforms, cfg, b, env]);
|
|
301
|
+
useFrame((state, delta) => {
|
|
302
|
+
instance.update(Math.min(delta, 0.1), state.camera);
|
|
303
|
+
if (animations?.length)
|
|
304
|
+
applyGenerativeAnimations(instance.materials, animations, animCache.current, Date.now(), false);
|
|
305
|
+
});
|
|
306
|
+
return (_jsx("group", { ref: rootRef, children: _jsx("primitive", { object: instance.object }) }));
|
|
307
|
+
};
|
|
308
|
+
export default WaterCausticsEffect;
|
|
@@ -25,4 +25,13 @@ export { default as SmokePlumeEffect } from './SmokePlumeEffect';
|
|
|
25
25
|
export { default as SmokeRibbon } from './SmokeRibbon';
|
|
26
26
|
export { default as SmokeRingEffect } from './SmokeRingEffect';
|
|
27
27
|
export { default as VolumetricFogEffect } from './VolumetricFogEffect';
|
|
28
|
+
export { default as GalaxyEffect } from './GalaxyEffect';
|
|
29
|
+
export { default as FireflySwarmEffect } from './FireflySwarmEffect';
|
|
30
|
+
export { default as MurmurationEffect } from './MurmurationEffect';
|
|
31
|
+
export { default as PlanetaryRingsEffect } from './PlanetaryRingsEffect';
|
|
32
|
+
export { default as WaterCausticsEffect } from './WaterCausticsEffect';
|
|
33
|
+
export { default as IceHaloEffect } from './IceHaloEffect';
|
|
34
|
+
export { default as FallingLeavesEffect } from './FallingLeavesEffect';
|
|
35
|
+
export { default as LichtenbergEffect } from './LichtenbergEffect';
|
|
36
|
+
export { default as DandelionSeedsEffect } from './DandelionSeedsEffect';
|
|
28
37
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/effects/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/effects/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -22,3 +22,12 @@ export { default as SmokePlumeEffect } from './SmokePlumeEffect.js';
|
|
|
22
22
|
export { default as SmokeRibbon } from './SmokeRibbon.js';
|
|
23
23
|
export { default as SmokeRingEffect } from './SmokeRingEffect.js';
|
|
24
24
|
export { default as VolumetricFogEffect } from './VolumetricFogEffect.js';
|
|
25
|
+
export { default as GalaxyEffect } from './GalaxyEffect.js';
|
|
26
|
+
export { default as FireflySwarmEffect } from './FireflySwarmEffect.js';
|
|
27
|
+
export { default as MurmurationEffect } from './MurmurationEffect.js';
|
|
28
|
+
export { default as PlanetaryRingsEffect } from './PlanetaryRingsEffect.js';
|
|
29
|
+
export { default as WaterCausticsEffect } from './WaterCausticsEffect.js';
|
|
30
|
+
export { default as IceHaloEffect } from './IceHaloEffect.js';
|
|
31
|
+
export { default as FallingLeavesEffect } from './FallingLeavesEffect.js';
|
|
32
|
+
export { default as LichtenbergEffect } from './LichtenbergEffect.js';
|
|
33
|
+
export { default as DandelionSeedsEffect } from './DandelionSeedsEffect.js';
|
|
@@ -10,6 +10,7 @@ export type { FrameProps } from './Frame';
|
|
|
10
10
|
export type { FrameShapeType } from './FrameGeometry';
|
|
11
11
|
export type { GalaxyProps } from './Galaxy';
|
|
12
12
|
export type { GalleryLayoutProps } from './GalleryLayout';
|
|
13
|
+
export type { LayoutInstancesProps } from './LayoutInstances';
|
|
13
14
|
export type { GeometryMeshProps } from './GeometryShape';
|
|
14
15
|
export type { GlyphsProps } from './Glyphs';
|
|
15
16
|
export type { AdvancedGridProps } from './AdvancedGrid';
|
|
@@ -18,6 +19,13 @@ export type { ContourGridProps } from './ContourGrid';
|
|
|
18
19
|
export type { FractalGridProps } from './FractalGrid';
|
|
19
20
|
export type { MoireGridProps } from './MoireGrid';
|
|
20
21
|
export type { QuasiGridProps } from './QuasiGrid';
|
|
22
|
+
export type { GravWaveGridProps } from './GravWaveGrid';
|
|
23
|
+
export type { GirihGridProps } from './GirihGrid';
|
|
24
|
+
export type { WallpaperGridProps } from './WallpaperGrid';
|
|
25
|
+
export type { ReactionDiffusionGridProps } from './ReactionDiffusionGrid';
|
|
26
|
+
export type { FlowNetGridProps } from './FlowNetGrid';
|
|
27
|
+
export type { ChladniGridProps } from './ChladniGrid';
|
|
28
|
+
export type { HyperbolicGridProps } from './HyperbolicGrid';
|
|
21
29
|
export type { GridGeneratorConfig } from './GridsGenerator';
|
|
22
30
|
export type { GridHelperProps } from './GridHelper';
|
|
23
31
|
export type { HexGridProps } from './HexGrid';
|
|
@@ -72,6 +80,7 @@ export { FrameGeometry } from './FrameGeometry';
|
|
|
72
80
|
export { FrameImage } from './FrameImage';
|
|
73
81
|
export { default as Galaxy } from './Galaxy';
|
|
74
82
|
export { default as GalleryLayout } from './GalleryLayout';
|
|
83
|
+
export { default as LayoutInstances } from './LayoutInstances';
|
|
75
84
|
export { default as Glyphs } from './Glyphs';
|
|
76
85
|
export { default as GridHelper } from './GridHelper';
|
|
77
86
|
export { default as GridGenerator } from './GridsGenerator';
|
|
@@ -92,9 +101,16 @@ export { ContourGrid, defaultContourGridConfig } from './ContourGrid';
|
|
|
92
101
|
export { FractalGrid, defaultFractalGridConfig } from './FractalGrid';
|
|
93
102
|
export { MoireGrid, defaultMoireGridConfig } from './MoireGrid';
|
|
94
103
|
export { QuasiGrid, defaultQuasiGridConfig } from './QuasiGrid';
|
|
104
|
+
export { FlowNetGrid, defaultFlowNetGridConfig } from './FlowNetGrid';
|
|
105
|
+
export { ChladniGrid, defaultChladniGridConfig } from './ChladniGrid';
|
|
106
|
+
export { HyperbolicGrid, defaultHyperbolicGridConfig } from './HyperbolicGrid';
|
|
95
107
|
export { HexGrid, defaultHexGridConfig } from './HexGrid';
|
|
96
108
|
export { RadarGrid, defaultRadarGridConfig } from './RadarGrid';
|
|
97
109
|
export { VoronoiGrid, defaultVoronoiGridConfig } from './VoronoiGrid';
|
|
110
|
+
export { GravWaveGrid, defaultGravWaveGridConfig } from './GravWaveGrid';
|
|
111
|
+
export { GirihGrid, defaultGirihGridConfig } from './GirihGrid';
|
|
112
|
+
export { WallpaperGrid, defaultWallpaperGridConfig } from './WallpaperGrid';
|
|
113
|
+
export { ReactionDiffusionGrid, defaultReactionDiffusionGridConfig } from './ReactionDiffusionGrid';
|
|
98
114
|
export { default as ModelBoundary } from './ModelBoundary';
|
|
99
115
|
export { default as ModelPrimitive } from './ModelPrimitive';
|
|
100
116
|
export { default as ObjectNode } from './ObjectNode';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
package/dist/components/index.js
CHANGED
|
@@ -19,6 +19,7 @@ export { FrameGeometry } from './FrameGeometry.js';
|
|
|
19
19
|
export { FrameImage } from './FrameImage.js';
|
|
20
20
|
export { default as Galaxy } from './Galaxy.js';
|
|
21
21
|
export { default as GalleryLayout } from './GalleryLayout.js';
|
|
22
|
+
export { default as LayoutInstances } from './LayoutInstances.js';
|
|
22
23
|
export { default as Glyphs } from './Glyphs.js';
|
|
23
24
|
export { default as GridHelper } from './GridHelper.js';
|
|
24
25
|
export { default as GridGenerator } from './GridsGenerator.js';
|
|
@@ -39,9 +40,16 @@ export { ContourGrid, defaultContourGridConfig } from './ContourGrid.js';
|
|
|
39
40
|
export { FractalGrid, defaultFractalGridConfig } from './FractalGrid.js';
|
|
40
41
|
export { MoireGrid, defaultMoireGridConfig } from './MoireGrid.js';
|
|
41
42
|
export { QuasiGrid, defaultQuasiGridConfig } from './QuasiGrid.js';
|
|
43
|
+
export { FlowNetGrid, defaultFlowNetGridConfig } from './FlowNetGrid.js';
|
|
44
|
+
export { ChladniGrid, defaultChladniGridConfig } from './ChladniGrid.js';
|
|
45
|
+
export { HyperbolicGrid, defaultHyperbolicGridConfig } from './HyperbolicGrid.js';
|
|
42
46
|
export { HexGrid, defaultHexGridConfig } from './HexGrid.js';
|
|
43
47
|
export { RadarGrid, defaultRadarGridConfig } from './RadarGrid.js';
|
|
44
48
|
export { VoronoiGrid, defaultVoronoiGridConfig } from './VoronoiGrid.js';
|
|
49
|
+
export { GravWaveGrid, defaultGravWaveGridConfig } from './GravWaveGrid.js';
|
|
50
|
+
export { GirihGrid, defaultGirihGridConfig } from './GirihGrid.js';
|
|
51
|
+
export { WallpaperGrid, defaultWallpaperGridConfig } from './WallpaperGrid.js';
|
|
52
|
+
export { ReactionDiffusionGrid, defaultReactionDiffusionGridConfig } from './ReactionDiffusionGrid.js';
|
|
45
53
|
export { default as ModelBoundary } from './ModelBoundary.js';
|
|
46
54
|
export { default as ModelPrimitive } from './ModelPrimitive.js';
|
|
47
55
|
export { default as ObjectNode } from './ObjectNode.js';
|
package/dist/constants.d.ts
CHANGED
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,gBAAgB,oCAA2B,CAAC;AACzD,eAAO,MAAM,qBAAqB,aAchC,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -3,7 +3,7 @@ const PRODUCTION_DATA_CENTER_SERVER = 'https://3drise.ai/api/data/';
|
|
|
3
3
|
const isLocalHostRuntime = typeof window !== 'undefined' &&
|
|
4
4
|
(window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1');
|
|
5
5
|
// export const dataCenterServer = isLocalHostRuntime ? LOCAL_DATA_CENTER_SERVER : PRODUCTION_DATA_CENTER_SERVER;
|
|
6
|
-
export const dataCenterServer =
|
|
6
|
+
export const dataCenterServer = LOCAL_DATA_CENTER_SERVER;
|
|
7
7
|
export const SELF_MANAGED_MATERIAL = new Set([
|
|
8
8
|
// The landscape owns its shader: splat arrays, height blending and the
|
|
9
9
|
// heightmap displacement are the material. useMaterialApplication would
|
|
@@ -19,7 +19,12 @@ import type { CreatedObjectSettings } from '@3driseai/3drise-core';
|
|
|
19
19
|
* Instances the hook creates are its own — registered on mount, unregistered and disposed
|
|
20
20
|
* on unmount. An instance it merely found belongs to whoever preloaded it and is left
|
|
21
21
|
* alone.
|
|
22
|
+
*
|
|
23
|
+
* `slot` > 0 is an extra copy placed by `meshSettings.layout`. It always gets a fresh clone
|
|
24
|
+
* of the cached master — never the registered instance, which can only be mounted once, and
|
|
25
|
+
* never a clone of slot 0, whose tracked material instances would be released twice — and it
|
|
26
|
+
* is not registered in ObjectManager: `ObjectManager.getObject(id)` stays slot 0.
|
|
22
27
|
*/
|
|
23
|
-
export declare function useModelObject(createdObject: CreatedObjectSettings): Object3D | null;
|
|
28
|
+
export declare function useModelObject(createdObject: CreatedObjectSettings, slot?: number): Object3D | null;
|
|
24
29
|
export default useModelObject;
|
|
25
30
|
//# sourceMappingURL=useModelObject.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModelObject.d.ts","sourceRoot":"","sources":["../../src/hooks/useModelObject.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAQtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE
|
|
1
|
+
{"version":3,"file":"useModelObject.d.ts","sourceRoot":"","sources":["../../src/hooks/useModelObject.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAQtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,cAAc,CAAC,aAAa,EAAE,qBAAqB,EAAE,IAAI,GAAE,MAAU,GAAG,QAAQ,GAAG,IAAI,CA+DtG;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -19,11 +19,17 @@ import { ObjectManager, cloneModelAsset, readModelAsset, releaseModelInstance, r
|
|
|
19
19
|
* Instances the hook creates are its own — registered on mount, unregistered and disposed
|
|
20
20
|
* on unmount. An instance it merely found belongs to whoever preloaded it and is left
|
|
21
21
|
* alone.
|
|
22
|
+
*
|
|
23
|
+
* `slot` > 0 is an extra copy placed by `meshSettings.layout`. It always gets a fresh clone
|
|
24
|
+
* of the cached master — never the registered instance, which can only be mounted once, and
|
|
25
|
+
* never a clone of slot 0, whose tracked material instances would be released twice — and it
|
|
26
|
+
* is not registered in ObjectManager: `ObjectManager.getObject(id)` stays slot 0.
|
|
22
27
|
*/
|
|
23
|
-
export function useModelObject(createdObject) {
|
|
28
|
+
export function useModelObject(createdObject, slot = 0) {
|
|
24
29
|
const id = createdObject.id;
|
|
25
30
|
const url = createdObject.userData?.url;
|
|
26
|
-
const
|
|
31
|
+
const isPrimary = slot === 0;
|
|
32
|
+
const registered = isPrimary ? ObjectManager.getObject(id)?.object ?? null : null;
|
|
27
33
|
// Suspension point. Nothing above this line may be a hook: the throw discards the
|
|
28
34
|
// render entirely, and only committed renders need a consistent hook order.
|
|
29
35
|
const asset = !registered && url ? readModelAsset(url) : null;
|
|
@@ -41,7 +47,7 @@ export function useModelObject(createdObject) {
|
|
|
41
47
|
instanceRef.current = { object: null, owned: false };
|
|
42
48
|
}
|
|
43
49
|
}
|
|
44
|
-
const { object
|
|
50
|
+
const { object } = instanceRef.current;
|
|
45
51
|
// Layout, not passive: the registry entry has to be in place by the time the host
|
|
46
52
|
// application reacts to onObjectReady and looks the object up by id.
|
|
47
53
|
useLayoutEffect(() => {
|
|
@@ -53,11 +59,18 @@ export function useModelObject(createdObject) {
|
|
|
53
59
|
// the same Object3D in the same commit. A dispose owned by this component would free
|
|
54
60
|
// materials that the replacement is about to render.
|
|
55
61
|
retainModelInstance(object);
|
|
56
|
-
|
|
62
|
+
// Register whenever the primary slot finds no entry — not only for an instance this
|
|
63
|
+
// leaf cloned. Turning a layout on or off re-parents slot 0, so its leaf remounts:
|
|
64
|
+
// the new leaf renders while the old entry still exists and takes the object as
|
|
65
|
+
// found, then the old leaf's cleanup removes the entry. Without this, the object
|
|
66
|
+
// would be left on screen with no ObjectManager entry.
|
|
67
|
+
let registeredHere = false;
|
|
68
|
+
if (isPrimary && !ObjectManager.getObject(id)) {
|
|
57
69
|
ObjectManager.addObject({ id, name: object.name, object });
|
|
70
|
+
registeredHere = true;
|
|
58
71
|
}
|
|
59
72
|
return () => {
|
|
60
|
-
if (
|
|
73
|
+
if (registeredHere) {
|
|
61
74
|
const current = ObjectManager.getObject(id);
|
|
62
75
|
// After an id remap this lookup misses, which is the answer we want: the
|
|
63
76
|
// entry now lives under the real id and belongs to the leaf that replaced us.
|
|
@@ -67,7 +80,7 @@ export function useModelObject(createdObject) {
|
|
|
67
80
|
}
|
|
68
81
|
releaseModelInstance(object);
|
|
69
82
|
};
|
|
70
|
-
}, [id, object,
|
|
83
|
+
}, [id, object, isPrimary]);
|
|
71
84
|
return object;
|
|
72
85
|
}
|
|
73
86
|
export default useModelObject;
|