@takram/three-geospatial-effects 0.3.0 → 0.3.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/CHANGELOG.md +13 -0
- package/build/r3f.cjs +2 -2
- package/build/r3f.cjs.map +1 -1
- package/build/r3f.js +161 -158
- package/build/r3f.js.map +1 -1
- package/package.json +2 -2
- package/src/r3f/EffectComposer.tsx +20 -22
- package/src/r3f/Geometry.tsx +30 -29
- package/src/r3f/LensFlare.tsx +6 -6
- package/src/r3f/Normal.tsx +31 -33
- package/types/r3f/EffectComposer.d.ts +2 -2
- package/types/r3f/Geometry.d.ts +2 -1
- package/types/r3f/LensFlare.d.ts +2 -1
- package/types/r3f/Normal.d.ts +2 -1
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,18 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [0.3.2] - 2025-06-12
|
4
|
+
|
5
|
+
### Changed
|
6
|
+
|
7
|
+
- Removed the use of `forwardRef` and added it in props.
|
8
|
+
- Updated dependencies.
|
9
|
+
|
10
|
+
## [0.3.1] - 2025-05-23
|
11
|
+
|
12
|
+
### Fixed
|
13
|
+
|
14
|
+
- Removed `process.env.NODE_ENV` from the ES build output.
|
15
|
+
|
3
16
|
## [0.3.0] - 2025-03-14
|
4
17
|
|
5
18
|
### Changed
|
package/build/r3f.cjs
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("@react-three/postprocessing"),m=require("./shared.cjs"),O=require("react/jsx-runtime"),C=require("@react-three/fiber"),c=require("postprocessing"),r=require("react"),M=require("three"),I=require("@takram/three-geospatial"),k=require("@takram/three-geospatial/shaders"),z=b.wrapEffect(m.DepthEffect),H=b.wrapEffect(m.DitheringEffect);function L(s){return(s.getAttributes()&c.EffectAttribute.CONVOLUTION)===c.EffectAttribute.CONVOLUTION}const V=({ref:s,children:o,camera:f,scene:i,enabled:e=!0,renderPriority:a=1,autoClear:g=!0,resolutionScale:d,depthBuffer:N,stencilBuffer:y=!1,multisampling:R=8,frameBufferType:j=M.HalfFloatType})=>{const u=C.useThree(({gl:t})=>t),A=C.useThree(({scene:t})=>t),q=C.useThree(({camera:t})=>t),v=i??A,h=f??q,[n,w]=r.useMemo(()=>{const t=new c.EffectComposer(u,{depthBuffer:N,stencilBuffer:y,multisampling:R,frameBufferType:j}),l=new m.GeometryPass(t.inputBuffer,v,h);return t.addPass(l),[t,l]},[u,v,h,N,y,R,j]),P=C.useThree(({size:t})=>t);r.useEffect(()=>{n==null||n.setSize(P.width,P.height)},[n,P]),C.useFrame((t,l)=>{if(e){const x=u.autoClear;u.autoClear=g,y&&!g&&u.clearStencil(),n.render(l),u.autoClear=x}},e?a:0);const B=r.useRef(null);r.useLayoutEffect(()=>{var x,F;const t=[],l=(x=B.current)==null?void 0:x.__r3f;if(l!=null&&n!=null){const E=l.children;for(let p=0;p<E.length;++p){const T=E[p].object;if(T instanceof c.Effect){const D=[T];if(!L(T)){let U=null;for(;(U=(F=E[p+1])==null?void 0:F.object)instanceof c.Effect&&!L(U);)D.push(U),++p}const G=new c.EffectPass(h,...D);t.push(G)}else T instanceof c.Pass&&t.push(T)}for(const p of t)n==null||n.addPass(p)}return()=>{for(const E of t)n==null||n.removePass(E)}},[n,o,h]),r.useEffect(()=>{const t=u.toneMapping;return u.toneMapping=M.NoToneMapping,()=>{u.toneMapping=t}},[u]);const S=r.useMemo(()=>({composer:n,camera:h,scene:v,geometryPass:w,normalPass:null,downSamplingPass:null,resolutionScale:d}),[n,h,v,w,d]);return r.useImperativeHandle(s,()=>n,[n]),O.jsx(b.EffectComposerContext.Provider,{value:S,children:O.jsx("group",{ref:B,children:o})})},$=`#include "core/packing"
|
2
2
|
|
3
3
|
uniform sampler2D geometryBuffer;
|
4
4
|
|
@@ -17,5 +17,5 @@ void mainImage(const vec4 inputColor, const vec2 uv, out vec4 outputColor) {
|
|
17
17
|
);
|
18
18
|
#endif // OUTPUT_PBR
|
19
19
|
}
|
20
|
-
`,_={blendFunction:
|
20
|
+
`,_={blendFunction:c.BlendFunction.SRC,output:"normal"};class J extends c.Effect{constructor(o){const{blendFunction:f,geometryBuffer:i=null,output:e}={..._,...o};super("GeometryEffect",I.resolveIncludes($,{core:{packing:k.packing}}),{blendFunction:f,attributes:c.EffectAttribute.DEPTH,uniforms:new Map(Object.entries({geometryBuffer:new M.Uniform(i)}))}),this.output=e}get geometryBuffer(){return this.uniforms.get("geometryBuffer").value}set geometryBuffer(o){this.uniforms.get("geometryBuffer").value=o}get output(){return this.defines.has("OUTPUT_NORMAL")?"normal":"pbr"}set output(o){o!==this.output&&(o==="normal"?this.defines.set("OUTPUT_NORMAL","1"):this.defines.delete("OUTPUT_NORMAL"),o==="pbr"?this.defines.set("OUTPUT_PBR","1"):this.defines.delete("OUTPUT_PBR"),this.setChanged())}}const K=({ref:s,...o})=>{const{blendFunction:f,...i}={..._,...o},{geometryPass:e}=r.useContext(b.EffectComposerContext),a=r.useMemo(()=>new J({blendFunction:f}),[f]);return r.useEffect(()=>()=>{a.dispose()},[a]),O.jsx("primitive",{ref:s,object:a,geometryBuffer:e==null?void 0:e.geometryTexture,...i})},Q=({ref:s,...o})=>{const{blendFunction:f,...i}={...m.lensFlareEffectOptionsDefaults,...o},e=r.useMemo(()=>new m.LensFlareEffect,[]);return r.useEffect(()=>()=>{e.dispose()},[e]),O.jsx("primitive",{ref:s,object:e,...i})},W=({ref:s,...o})=>{const{blendFunction:f,...i}={...m.normalEffectOptionsDefaults,...o},{geometryPass:e,normalPass:a,camera:g}=r.useContext(b.EffectComposerContext),d=r.useMemo(()=>new m.NormalEffect(g,{blendFunction:f}),[g,f]);return r.useEffect(()=>()=>{d.dispose()},[d]),O.jsx("primitive",{ref:s,object:d,mainCamera:g,normalBuffer:(e==null?void 0:e.geometryTexture)??(a==null?void 0:a.texture)??null,...i,octEncoded:(e==null?void 0:e.geometryTexture)!=null})};exports.Depth=z;exports.Dithering=H;exports.EffectComposer=V;exports.Geometry=K;exports.LensFlare=Q;exports.Normal=W;
|
21
21
|
//# sourceMappingURL=r3f.cjs.map
|
package/build/r3f.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"r3f.cjs","sources":["../src/r3f/Depth.tsx","../src/r3f/Dithering.tsx","../src/r3f/EffectComposer.tsx","../src/shaders/geometryEffect.frag?raw","../src/GeometryEffect.ts","../src/r3f/Geometry.tsx","../src/r3f/LensFlare.tsx","../src/r3f/Normal.tsx"],"sourcesContent":null,"names":["Depth","wrapEffect","DepthEffect","Dithering","DitheringEffect","isConvolution","effect","EffectAttribute","EffectComposer","
|
1
|
+
{"version":3,"file":"r3f.cjs","sources":["../src/r3f/Depth.tsx","../src/r3f/Dithering.tsx","../src/r3f/EffectComposer.tsx","../src/shaders/geometryEffect.frag?raw","../src/GeometryEffect.ts","../src/r3f/Geometry.tsx","../src/r3f/LensFlare.tsx","../src/r3f/Normal.tsx"],"sourcesContent":null,"names":["Depth","wrapEffect","DepthEffect","Dithering","DitheringEffect","isConvolution","effect","EffectAttribute","EffectComposer","forwardedRef","children","cameraProp","sceneProp","enabled","renderPriority","autoClear","resolutionScale","depthBuffer","stencilBuffer","multisampling","frameBufferType","HalfFloatType","gl","useThree","defaultScene","scene","defaultCamera","camera","composer","geometryPass","useMemo","EffectComposerImpl","GeometryPass","size","useEffect","useFrame","state","delta","currentAutoClear","group","useRef","useLayoutEffect","passes","groupInstance","_a","i","child","Effect","effects","next","pass","EffectPass","Pass","currentToneMapping","NoToneMapping","context","useImperativeHandle","jsx","EffectComposerContext","fragmentShader","geometryEffectOptionsDefaults","BlendFunction","GeometryEffect","options","blendFunction","geometryBuffer","output","resolveIncludes","packing","Uniform","value","Geometry","props","others","useContext","LensFlare","lensFlareEffectOptionsDefaults","LensFlareEffect","Normal","normalEffectOptionsDefaults","normalPass","NormalEffect"],"mappings":"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"}
|
package/build/r3f.js
CHANGED
@@ -1,103 +1,104 @@
|
|
1
|
-
import { wrapEffect as
|
2
|
-
import { D as
|
3
|
-
import { jsx as
|
4
|
-
import { useThree as
|
5
|
-
import { EffectComposer as
|
6
|
-
import {
|
7
|
-
import { HalfFloatType as
|
8
|
-
import { resolveIncludes as
|
9
|
-
import { packing as
|
10
|
-
const
|
11
|
-
function
|
12
|
-
return (
|
1
|
+
import { wrapEffect as A, EffectComposerContext as x } from "@react-three/postprocessing";
|
2
|
+
import { D as H, b as V, G as $, l as q, L as J, n as K, N as Q } from "./shared.js";
|
3
|
+
import { jsx as h } from "react/jsx-runtime";
|
4
|
+
import { useThree as E, useFrame as W } from "@react-three/fiber";
|
5
|
+
import { EffectComposer as X, Effect as y, EffectPass as Y, EffectAttribute as M, Pass as Z, BlendFunction as ee } from "postprocessing";
|
6
|
+
import { useMemo as T, useEffect as O, useRef as te, useLayoutEffect as ne, useImperativeHandle as oe, useContext as j } from "react";
|
7
|
+
import { HalfFloatType as re, NoToneMapping as se, Uniform as fe } from "three";
|
8
|
+
import { resolveIncludes as ue } from "@takram/three-geospatial";
|
9
|
+
import { packing as ce } from "@takram/three-geospatial/shaders";
|
10
|
+
const ve = A(H), Ee = A(V);
|
11
|
+
function D(r) {
|
12
|
+
return (r.getAttributes() & M.CONVOLUTION) === M.CONVOLUTION;
|
13
13
|
}
|
14
|
-
const
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
14
|
+
const Ue = ({
|
15
|
+
ref: r,
|
16
|
+
children: o,
|
17
|
+
camera: s,
|
18
|
+
scene: u,
|
19
|
+
enabled: e = !0,
|
20
|
+
renderPriority: c = 1,
|
21
|
+
autoClear: l = !0,
|
21
22
|
resolutionScale: m,
|
22
|
-
depthBuffer:
|
23
|
-
stencilBuffer:
|
24
|
-
multisampling:
|
25
|
-
frameBufferType: B =
|
26
|
-
}
|
27
|
-
const
|
28
|
-
const
|
29
|
-
depthBuffer:
|
30
|
-
stencilBuffer:
|
31
|
-
multisampling:
|
23
|
+
depthBuffer: N,
|
24
|
+
stencilBuffer: U = !1,
|
25
|
+
multisampling: R = 8,
|
26
|
+
frameBufferType: B = re
|
27
|
+
}) => {
|
28
|
+
const f = E(({ gl: t }) => t), G = E(({ scene: t }) => t), S = E(({ camera: t }) => t), C = u ?? G, p = s ?? S, [n, w] = T(() => {
|
29
|
+
const t = new X(f, {
|
30
|
+
depthBuffer: N,
|
31
|
+
stencilBuffer: U,
|
32
|
+
multisampling: R,
|
32
33
|
frameBufferType: B
|
33
|
-
}), i = new
|
34
|
-
return
|
34
|
+
}), i = new $(t.inputBuffer, C, p);
|
35
|
+
return t.addPass(i), [t, i];
|
35
36
|
}, [
|
36
|
-
|
37
|
-
|
38
|
-
d,
|
37
|
+
f,
|
38
|
+
C,
|
39
39
|
p,
|
40
|
-
|
41
|
-
|
40
|
+
N,
|
41
|
+
U,
|
42
|
+
R,
|
42
43
|
B
|
43
|
-
]),
|
44
|
-
|
45
|
-
|
46
|
-
}, [
|
47
|
-
(
|
48
|
-
if (
|
49
|
-
const v =
|
50
|
-
|
44
|
+
]), P = E(({ size: t }) => t);
|
45
|
+
O(() => {
|
46
|
+
n == null || n.setSize(P.width, P.height);
|
47
|
+
}, [n, P]), W(
|
48
|
+
(t, i) => {
|
49
|
+
if (e) {
|
50
|
+
const v = f.autoClear;
|
51
|
+
f.autoClear = l, U && !l && f.clearStencil(), n.render(i), f.autoClear = v;
|
51
52
|
}
|
52
53
|
},
|
53
|
-
|
54
|
+
e ? c : 0
|
54
55
|
);
|
55
|
-
const
|
56
|
-
|
57
|
-
var v,
|
58
|
-
const
|
59
|
-
if (i != null &&
|
60
|
-
const
|
61
|
-
for (let a = 0; a <
|
62
|
-
const
|
63
|
-
if (
|
64
|
-
const
|
65
|
-
if (!
|
66
|
-
let
|
67
|
-
for (; (
|
68
|
-
|
56
|
+
const F = te(null);
|
57
|
+
ne(() => {
|
58
|
+
var v, L;
|
59
|
+
const t = [], i = (v = F.current) == null ? void 0 : v.__r3f;
|
60
|
+
if (i != null && n != null) {
|
61
|
+
const d = i.children;
|
62
|
+
for (let a = 0; a < d.length; ++a) {
|
63
|
+
const g = d[a].object;
|
64
|
+
if (g instanceof y) {
|
65
|
+
const _ = [g];
|
66
|
+
if (!D(g)) {
|
67
|
+
let b = null;
|
68
|
+
for (; (b = (L = d[a + 1]) == null ? void 0 : L.object) instanceof y && !D(b); )
|
69
|
+
_.push(b), ++a;
|
69
70
|
}
|
70
|
-
const
|
71
|
-
|
72
|
-
} else
|
71
|
+
const z = new Y(p, ..._);
|
72
|
+
t.push(z);
|
73
|
+
} else g instanceof Z && t.push(g);
|
73
74
|
}
|
74
|
-
for (const a of
|
75
|
-
|
75
|
+
for (const a of t)
|
76
|
+
n == null || n.addPass(a);
|
76
77
|
}
|
77
78
|
return () => {
|
78
|
-
for (const
|
79
|
-
|
79
|
+
for (const d of t)
|
80
|
+
n == null || n.removePass(d);
|
80
81
|
};
|
81
|
-
}, [
|
82
|
-
const
|
83
|
-
return
|
84
|
-
|
82
|
+
}, [n, o, p]), O(() => {
|
83
|
+
const t = f.toneMapping;
|
84
|
+
return f.toneMapping = se, () => {
|
85
|
+
f.toneMapping = t;
|
85
86
|
};
|
86
|
-
}, [
|
87
|
-
const
|
87
|
+
}, [f]);
|
88
|
+
const k = T(
|
88
89
|
() => ({
|
89
|
-
composer:
|
90
|
-
camera:
|
91
|
-
scene:
|
92
|
-
geometryPass:
|
90
|
+
composer: n,
|
91
|
+
camera: p,
|
92
|
+
scene: C,
|
93
|
+
geometryPass: w,
|
93
94
|
normalPass: null,
|
94
95
|
downSamplingPass: null,
|
95
96
|
resolutionScale: m
|
96
97
|
}),
|
97
|
-
[
|
98
|
+
[n, p, C, w, m]
|
98
99
|
);
|
99
|
-
return
|
100
|
-
}
|
100
|
+
return oe(r, () => n, [n]), /* @__PURE__ */ h(x.Provider, { value: k, children: /* @__PURE__ */ h("group", { ref: F, children: o }) });
|
101
|
+
}, ie = `#include "core/packing"
|
101
102
|
|
102
103
|
uniform sampler2D geometryBuffer;
|
103
104
|
|
@@ -117,111 +118,113 @@ void mainImage(const vec4 inputColor, const vec2 uv, out vec4 outputColor) {
|
|
117
118
|
#endif // OUTPUT_PBR
|
118
119
|
}
|
119
120
|
`, I = {
|
120
|
-
blendFunction:
|
121
|
+
blendFunction: ee.SRC,
|
121
122
|
output: "normal"
|
122
123
|
};
|
123
|
-
class
|
124
|
-
constructor(
|
124
|
+
class ae extends y {
|
125
|
+
constructor(o) {
|
125
126
|
const {
|
126
|
-
blendFunction:
|
127
|
-
geometryBuffer:
|
128
|
-
output:
|
127
|
+
blendFunction: s,
|
128
|
+
geometryBuffer: u = null,
|
129
|
+
output: e
|
129
130
|
} = {
|
130
131
|
...I,
|
131
|
-
...
|
132
|
+
...o
|
132
133
|
};
|
133
134
|
super(
|
134
135
|
"GeometryEffect",
|
135
|
-
ie
|
136
|
-
core: { packing:
|
136
|
+
ue(ie, {
|
137
|
+
core: { packing: ce }
|
137
138
|
}),
|
138
139
|
{
|
139
|
-
blendFunction:
|
140
|
-
attributes:
|
140
|
+
blendFunction: s,
|
141
|
+
attributes: M.DEPTH,
|
141
142
|
uniforms: new Map(
|
142
143
|
Object.entries({
|
143
|
-
geometryBuffer: new
|
144
|
+
geometryBuffer: new fe(u)
|
144
145
|
})
|
145
146
|
)
|
146
147
|
}
|
147
|
-
), this.output =
|
148
|
+
), this.output = e;
|
148
149
|
}
|
149
150
|
get geometryBuffer() {
|
150
151
|
return this.uniforms.get("geometryBuffer").value;
|
151
152
|
}
|
152
|
-
set geometryBuffer(
|
153
|
-
this.uniforms.get("geometryBuffer").value =
|
153
|
+
set geometryBuffer(o) {
|
154
|
+
this.uniforms.get("geometryBuffer").value = o;
|
154
155
|
}
|
155
156
|
get output() {
|
156
157
|
return this.defines.has("OUTPUT_NORMAL") ? "normal" : "pbr";
|
157
158
|
}
|
158
|
-
set output(
|
159
|
-
|
159
|
+
set output(o) {
|
160
|
+
o !== this.output && (o === "normal" ? this.defines.set("OUTPUT_NORMAL", "1") : this.defines.delete("OUTPUT_NORMAL"), o === "pbr" ? this.defines.set("OUTPUT_PBR", "1") : this.defines.delete("OUTPUT_PBR"), this.setChanged());
|
160
161
|
}
|
161
162
|
}
|
162
|
-
const
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
)
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
)
|
186
|
-
|
163
|
+
const Pe = ({
|
164
|
+
ref: r,
|
165
|
+
...o
|
166
|
+
}) => {
|
167
|
+
const { blendFunction: s, ...u } = {
|
168
|
+
...I,
|
169
|
+
...o
|
170
|
+
}, { geometryPass: e } = j(
|
171
|
+
x
|
172
|
+
), c = T(
|
173
|
+
() => new ae({ blendFunction: s }),
|
174
|
+
[s]
|
175
|
+
);
|
176
|
+
return O(() => () => {
|
177
|
+
c.dispose();
|
178
|
+
}, [c]), /* @__PURE__ */ h(
|
179
|
+
"primitive",
|
180
|
+
{
|
181
|
+
ref: r,
|
182
|
+
object: c,
|
183
|
+
geometryBuffer: e == null ? void 0 : e.geometryTexture,
|
184
|
+
...u
|
185
|
+
}
|
186
|
+
);
|
187
|
+
}, be = ({
|
188
|
+
ref: r,
|
189
|
+
...o
|
190
|
+
}) => {
|
191
|
+
const { blendFunction: s, ...u } = {
|
192
|
+
...q,
|
193
|
+
...o
|
194
|
+
}, e = T(() => new J(), []);
|
195
|
+
return O(() => () => {
|
196
|
+
e.dispose();
|
197
|
+
}, [e]), /* @__PURE__ */ h("primitive", { ref: r, object: e, ...u });
|
198
|
+
}, ye = ({ ref: r, ...o }) => {
|
199
|
+
const { blendFunction: s, ...u } = {
|
187
200
|
...K,
|
188
|
-
...
|
189
|
-
},
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
}
|
207
|
-
|
208
|
-
|
209
|
-
ref: u,
|
210
|
-
object: p,
|
211
|
-
mainCamera: m,
|
212
|
-
normalBuffer: (o == null ? void 0 : o.geometryTexture) ?? (f == null ? void 0 : f.texture) ?? null,
|
213
|
-
...s,
|
214
|
-
octEncoded: (o == null ? void 0 : o.geometryTexture) != null
|
215
|
-
}
|
216
|
-
);
|
217
|
-
}
|
218
|
-
);
|
201
|
+
...o
|
202
|
+
}, { geometryPass: e, normalPass: c, camera: l } = j(
|
203
|
+
x
|
204
|
+
), m = T(
|
205
|
+
() => new Q(l, { blendFunction: s }),
|
206
|
+
[l, s]
|
207
|
+
);
|
208
|
+
return O(() => () => {
|
209
|
+
m.dispose();
|
210
|
+
}, [m]), /* @__PURE__ */ h(
|
211
|
+
"primitive",
|
212
|
+
{
|
213
|
+
ref: r,
|
214
|
+
object: m,
|
215
|
+
mainCamera: l,
|
216
|
+
normalBuffer: (e == null ? void 0 : e.geometryTexture) ?? (c == null ? void 0 : c.texture) ?? null,
|
217
|
+
...u,
|
218
|
+
octEncoded: (e == null ? void 0 : e.geometryTexture) != null
|
219
|
+
}
|
220
|
+
);
|
221
|
+
};
|
219
222
|
export {
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
223
|
+
ve as Depth,
|
224
|
+
Ee as Dithering,
|
225
|
+
Ue as EffectComposer,
|
226
|
+
Pe as Geometry,
|
227
|
+
be as LensFlare,
|
228
|
+
ye as Normal
|
226
229
|
};
|
227
230
|
//# sourceMappingURL=r3f.js.map
|
package/build/r3f.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"r3f.js","sources":["../src/r3f/Depth.tsx","../src/r3f/Dithering.tsx","../src/r3f/EffectComposer.tsx","../src/shaders/geometryEffect.frag?raw","../src/GeometryEffect.ts","../src/r3f/Geometry.tsx","../src/r3f/LensFlare.tsx","../src/r3f/Normal.tsx"],"sourcesContent":null,"names":["Depth","wrapEffect","DepthEffect","Dithering","DitheringEffect","isConvolution","effect","EffectAttribute","EffectComposer","
|
1
|
+
{"version":3,"file":"r3f.js","sources":["../src/r3f/Depth.tsx","../src/r3f/Dithering.tsx","../src/r3f/EffectComposer.tsx","../src/shaders/geometryEffect.frag?raw","../src/GeometryEffect.ts","../src/r3f/Geometry.tsx","../src/r3f/LensFlare.tsx","../src/r3f/Normal.tsx"],"sourcesContent":null,"names":["Depth","wrapEffect","DepthEffect","Dithering","DitheringEffect","isConvolution","effect","EffectAttribute","EffectComposer","forwardedRef","children","cameraProp","sceneProp","enabled","renderPriority","autoClear","resolutionScale","depthBuffer","stencilBuffer","multisampling","frameBufferType","HalfFloatType","gl","useThree","defaultScene","scene","defaultCamera","camera","composer","geometryPass","useMemo","EffectComposerImpl","GeometryPass","size","useEffect","useFrame","state","delta","currentAutoClear","group","useRef","useLayoutEffect","passes","groupInstance","_a","i","child","Effect","effects","next","pass","EffectPass","Pass","currentToneMapping","NoToneMapping","context","useImperativeHandle","jsx","EffectComposerContext","fragmentShader","geometryEffectOptionsDefaults","BlendFunction","GeometryEffect","options","blendFunction","geometryBuffer","output","resolveIncludes","packing","Uniform","value","Geometry","props","others","useContext","LensFlare","lensFlareEffectOptionsDefaults","LensFlareEffect","Normal","normalEffectOptionsDefaults","normalPass","NormalEffect"],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@takram/three-geospatial-effects",
|
3
|
-
"version": "0.3.
|
3
|
+
"version": "0.3.2",
|
4
4
|
"description": "A collection of post-processing effects",
|
5
5
|
"keywords": [
|
6
6
|
"three",
|
@@ -42,7 +42,7 @@
|
|
42
42
|
"README.md"
|
43
43
|
],
|
44
44
|
"dependencies": {
|
45
|
-
"@takram/three-geospatial": "0.2.
|
45
|
+
"@takram/three-geospatial": "0.2.2"
|
46
46
|
},
|
47
47
|
"peerDependencies": {
|
48
48
|
"@react-three/fiber": ">=9.0.4",
|
@@ -8,14 +8,15 @@ import {
|
|
8
8
|
Pass
|
9
9
|
} from 'postprocessing'
|
10
10
|
import {
|
11
|
-
forwardRef,
|
12
11
|
useEffect,
|
13
12
|
useImperativeHandle,
|
14
13
|
useLayoutEffect,
|
15
14
|
useMemo,
|
16
15
|
useRef,
|
17
16
|
type Context,
|
18
|
-
type
|
17
|
+
type FC,
|
18
|
+
type ReactNode,
|
19
|
+
type RefAttributes
|
19
20
|
} from 'react'
|
20
21
|
import {
|
21
22
|
HalfFloatType,
|
@@ -56,25 +57,22 @@ function isConvolution(effect: Effect): boolean {
|
|
56
57
|
)
|
57
58
|
}
|
58
59
|
|
59
|
-
export const EffectComposer
|
60
|
-
EffectComposerImpl
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
},
|
76
|
-
forwardedRef
|
77
|
-
) {
|
60
|
+
export const EffectComposer: FC<
|
61
|
+
EffectComposerProps & RefAttributes<EffectComposerImpl>
|
62
|
+
> = ({
|
63
|
+
ref: forwardedRef,
|
64
|
+
children,
|
65
|
+
camera: cameraProp,
|
66
|
+
scene: sceneProp,
|
67
|
+
enabled = true,
|
68
|
+
renderPriority = 1,
|
69
|
+
autoClear = true,
|
70
|
+
resolutionScale,
|
71
|
+
depthBuffer,
|
72
|
+
stencilBuffer = false,
|
73
|
+
multisampling = 8,
|
74
|
+
frameBufferType = HalfFloatType
|
75
|
+
}) => {
|
78
76
|
const gl = useThree(({ gl }) => gl)
|
79
77
|
const defaultScene = useThree(({ scene }) => scene)
|
80
78
|
const defaultCamera = useThree(({ camera }) => camera)
|
@@ -189,4 +187,4 @@ export const EffectComposer = /*#__PURE__*/ forwardRef<
|
|
189
187
|
<group ref={group}>{children}</group>
|
190
188
|
</EffectComposerContext.Provider>
|
191
189
|
)
|
192
|
-
}
|
190
|
+
}
|
package/src/r3f/Geometry.tsx
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { type ElementProps } from '@react-three/fiber'
|
2
2
|
import { EffectComposerContext } from '@react-three/postprocessing'
|
3
|
-
import {
|
3
|
+
import { useContext, useEffect, useMemo, type FC } from 'react'
|
4
4
|
|
5
5
|
import {
|
6
6
|
GeometryEffect,
|
@@ -10,34 +10,35 @@ import { type EffectComposerContextValue } from './EffectComposer'
|
|
10
10
|
|
11
11
|
export interface GeometryProps extends ElementProps<typeof GeometryEffect> {}
|
12
12
|
|
13
|
-
export const Geometry
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
13
|
+
export const Geometry: FC<GeometryProps> = ({
|
14
|
+
ref: forwardedRef,
|
15
|
+
...props
|
16
|
+
}) => {
|
17
|
+
const { blendFunction, ...others } = {
|
18
|
+
...geometryEffectOptionsDefaults,
|
19
|
+
...props
|
20
|
+
}
|
19
21
|
|
20
|
-
|
21
|
-
|
22
|
-
|
22
|
+
const { geometryPass } = useContext(
|
23
|
+
EffectComposerContext
|
24
|
+
) as EffectComposerContextValue
|
23
25
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
26
|
+
const effect = useMemo(
|
27
|
+
() => new GeometryEffect({ blendFunction }),
|
28
|
+
[blendFunction]
|
29
|
+
)
|
30
|
+
useEffect(() => {
|
31
|
+
return () => {
|
32
|
+
effect.dispose()
|
33
|
+
}
|
34
|
+
}, [effect])
|
33
35
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
)
|
36
|
+
return (
|
37
|
+
<primitive
|
38
|
+
ref={forwardedRef}
|
39
|
+
object={effect}
|
40
|
+
geometryBuffer={geometryPass?.geometryTexture}
|
41
|
+
{...others}
|
42
|
+
/>
|
43
|
+
)
|
44
|
+
}
|
package/src/r3f/LensFlare.tsx
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import { type ElementProps } from '@react-three/fiber'
|
2
|
-
import {
|
2
|
+
import { useEffect, useMemo, type FC } from 'react'
|
3
3
|
|
4
4
|
import {
|
5
5
|
LensFlareEffect,
|
@@ -8,10 +8,10 @@ import {
|
|
8
8
|
|
9
9
|
export interface LensFlareProps extends ElementProps<typeof LensFlareEffect> {}
|
10
10
|
|
11
|
-
export const LensFlare =
|
12
|
-
|
13
|
-
|
14
|
-
|
11
|
+
export const LensFlare: FC<LensFlareProps> = ({
|
12
|
+
ref: forwardedRef,
|
13
|
+
...props
|
14
|
+
}) => {
|
15
15
|
const { blendFunction, ...others } = {
|
16
16
|
...lensFlareEffectOptionsDefaults,
|
17
17
|
...props
|
@@ -25,4 +25,4 @@ export const LensFlare = /*#__PURE__*/ forwardRef<
|
|
25
25
|
}, [effect])
|
26
26
|
|
27
27
|
return <primitive ref={forwardedRef} object={effect} {...others} />
|
28
|
-
}
|
28
|
+
}
|
package/src/r3f/Normal.tsx
CHANGED
@@ -1,44 +1,42 @@
|
|
1
1
|
import { type ElementProps } from '@react-three/fiber'
|
2
2
|
import { EffectComposerContext } from '@react-three/postprocessing'
|
3
|
-
import {
|
3
|
+
import { useContext, useEffect, useMemo, type FC } from 'react'
|
4
4
|
|
5
5
|
import { NormalEffect, normalEffectOptionsDefaults } from '../NormalEffect'
|
6
6
|
import { type EffectComposerContextValue } from './EffectComposer'
|
7
7
|
|
8
8
|
export interface NormalProps extends ElementProps<typeof NormalEffect> {}
|
9
9
|
|
10
|
-
export const Normal =
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
}
|
10
|
+
export const Normal: FC<NormalProps> = ({ ref: forwardedRef, ...props }) => {
|
11
|
+
const { blendFunction, ...others } = {
|
12
|
+
...normalEffectOptionsDefaults,
|
13
|
+
...props
|
14
|
+
}
|
16
15
|
|
17
|
-
|
18
|
-
|
19
|
-
|
16
|
+
const { geometryPass, normalPass, camera } = useContext(
|
17
|
+
EffectComposerContext
|
18
|
+
) as EffectComposerContextValue
|
20
19
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
20
|
+
const effect = useMemo(
|
21
|
+
() => new NormalEffect(camera, { blendFunction }),
|
22
|
+
[camera, blendFunction]
|
23
|
+
)
|
24
|
+
useEffect(() => {
|
25
|
+
return () => {
|
26
|
+
effect.dispose()
|
27
|
+
}
|
28
|
+
}, [effect])
|
30
29
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
)
|
30
|
+
return (
|
31
|
+
<primitive
|
32
|
+
ref={forwardedRef}
|
33
|
+
object={effect}
|
34
|
+
mainCamera={camera}
|
35
|
+
normalBuffer={
|
36
|
+
geometryPass?.geometryTexture ?? normalPass?.texture ?? null
|
37
|
+
}
|
38
|
+
{...others}
|
39
|
+
octEncoded={geometryPass?.geometryTexture != null}
|
40
|
+
/>
|
41
|
+
)
|
42
|
+
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { EffectComposerContext } from '@react-three/postprocessing';
|
2
2
|
import { EffectComposer as EffectComposerImpl } from 'postprocessing';
|
3
|
-
import { Context, ReactNode } from 'react';
|
3
|
+
import { Context, FC, ReactNode, RefAttributes } from 'react';
|
4
4
|
import { Camera, Scene, TextureDataType } from 'three';
|
5
5
|
import { GeometryPass } from '../GeometryPass';
|
6
6
|
type InferContextValue<T> = T extends Context<infer U> ? U : never;
|
@@ -20,5 +20,5 @@ export interface EffectComposerProps {
|
|
20
20
|
scene?: Scene;
|
21
21
|
children?: ReactNode;
|
22
22
|
}
|
23
|
-
export declare const EffectComposer:
|
23
|
+
export declare const EffectComposer: FC<EffectComposerProps & RefAttributes<EffectComposerImpl>>;
|
24
24
|
export {};
|
package/types/r3f/Geometry.d.ts
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
import { ElementProps } from '@react-three/fiber';
|
2
|
+
import { FC } from 'react';
|
2
3
|
import { GeometryEffect } from '../GeometryEffect';
|
3
4
|
export interface GeometryProps extends ElementProps<typeof GeometryEffect> {
|
4
5
|
}
|
5
|
-
export declare const Geometry:
|
6
|
+
export declare const Geometry: FC<GeometryProps>;
|
package/types/r3f/LensFlare.d.ts
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
import { ElementProps } from '@react-three/fiber';
|
2
|
+
import { FC } from 'react';
|
2
3
|
import { LensFlareEffect } from '../LensFlareEffect';
|
3
4
|
export interface LensFlareProps extends ElementProps<typeof LensFlareEffect> {
|
4
5
|
}
|
5
|
-
export declare const LensFlare:
|
6
|
+
export declare const LensFlare: FC<LensFlareProps>;
|
package/types/r3f/Normal.d.ts
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
import { ElementProps } from '@react-three/fiber';
|
2
|
+
import { FC } from 'react';
|
2
3
|
import { NormalEffect } from '../NormalEffect';
|
3
4
|
export interface NormalProps extends ElementProps<typeof NormalEffect> {
|
4
5
|
}
|
5
|
-
export declare const Normal:
|
6
|
+
export declare const Normal: FC<NormalProps>;
|