@react-three/postprocessing 3.0.2 → 3.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +81 -81
  3. package/dist/EffectComposer.d.ts +27 -0
  4. package/dist/Selection.d.ts +17 -0
  5. package/dist/effects/ASCII.d.ts +18 -0
  6. package/dist/effects/Autofocus.d.ts +22 -0
  7. package/dist/effects/Bloom.d.ts +5 -0
  8. package/dist/effects/BrightnessContrast.d.ts +5 -0
  9. package/dist/effects/ChromaticAberration.d.ts +8 -0
  10. package/dist/effects/ColorAverage.d.ts +8 -0
  11. package/dist/effects/ColorDepth.d.ts +5 -0
  12. package/dist/effects/Depth.d.ts +5 -0
  13. package/dist/effects/DepthOfField.d.ts +25 -0
  14. package/dist/effects/DotScreen.d.ts +5 -0
  15. package/dist/effects/FXAA.d.ts +5 -0
  16. package/dist/effects/Glitch.d.ts +30 -0
  17. package/dist/effects/GodRays.d.ts +21 -0
  18. package/dist/effects/Grid.d.ts +12 -0
  19. package/dist/effects/HueSaturation.d.ts +5 -0
  20. package/dist/effects/LUT.d.ts +9 -0
  21. package/dist/effects/LensFlare.d.ts +54 -0
  22. package/dist/effects/N8AO.d.ts +17 -0
  23. package/dist/effects/Noise.d.ts +5 -0
  24. package/dist/effects/Outline.d.ts +30 -0
  25. package/dist/effects/Pixelation.d.ts +6 -0
  26. package/dist/effects/Ramp.d.ts +78 -0
  27. package/dist/effects/SMAA.d.ts +5 -0
  28. package/dist/effects/SSAO.d.ts +30 -0
  29. package/dist/effects/ScanlineEffect.d.ts +5 -0
  30. package/dist/effects/SelectiveBloom.d.ts +20 -0
  31. package/dist/effects/Sepia.d.ts +5 -0
  32. package/dist/effects/ShockWave.d.ts +5 -0
  33. package/dist/effects/Texture.d.ts +11 -0
  34. package/dist/effects/TiltShift.d.ts +5 -0
  35. package/dist/effects/TiltShift2.d.ts +22 -0
  36. package/dist/effects/ToneMapping.d.ts +8 -0
  37. package/dist/effects/Vignette.d.ts +5 -0
  38. package/dist/effects/Water.d.ts +12 -0
  39. package/dist/index.d.ts +37 -0
  40. package/dist/index.js +555 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/util.d.ts +17 -0
  43. package/package.json +67 -68
  44. package/src/EffectComposer.test.tsx +126 -126
  45. package/src/EffectComposer.tsx +200 -200
  46. package/src/Selection.tsx +46 -46
  47. package/src/effects/ASCII.tsx +135 -135
  48. package/src/effects/Autofocus.tsx +153 -153
  49. package/src/effects/Bloom.tsx +6 -6
  50. package/src/effects/BrightnessContrast.tsx +4 -4
  51. package/src/effects/ChromaticAberration.tsx +5 -5
  52. package/src/effects/ColorAverage.tsx +15 -15
  53. package/src/effects/ColorDepth.tsx +4 -4
  54. package/src/effects/Depth.tsx +4 -4
  55. package/src/effects/DepthOfField.tsx +89 -89
  56. package/src/effects/DotScreen.tsx +4 -4
  57. package/src/effects/FXAA.tsx +4 -4
  58. package/src/effects/Glitch.tsx +40 -40
  59. package/src/effects/GodRays.tsx +16 -16
  60. package/src/effects/Grid.tsx +21 -21
  61. package/src/effects/HueSaturation.tsx +4 -4
  62. package/src/effects/LUT.tsx +26 -26
  63. package/src/effects/LensFlare.tsx +611 -611
  64. package/src/effects/N8AO.tsx +81 -81
  65. package/src/effects/Noise.tsx +4 -4
  66. package/src/effects/Outline.tsx +117 -117
  67. package/src/effects/Pixelation.tsx +15 -15
  68. package/src/effects/Ramp.tsx +150 -150
  69. package/src/effects/SMAA.tsx +4 -4
  70. package/src/effects/SSAO.tsx +41 -41
  71. package/src/effects/ScanlineEffect.tsx +7 -7
  72. package/src/effects/SelectiveBloom.tsx +126 -126
  73. package/src/effects/Sepia.tsx +4 -4
  74. package/src/effects/ShockWave.tsx +4 -4
  75. package/src/effects/Texture.tsx +23 -23
  76. package/src/effects/TiltShift.tsx +4 -4
  77. package/src/effects/TiltShift2.tsx +90 -90
  78. package/src/effects/ToneMapping.tsx +6 -6
  79. package/src/effects/Vignette.tsx +4 -4
  80. package/src/effects/Water.tsx +35 -35
  81. package/src/index.ts +40 -40
  82. package/src/util.tsx +55 -55
package/dist/index.js ADDED
@@ -0,0 +1,555 @@
1
+ import{jsx as w,jsxs as K,Fragment as Q}from"react/jsx-runtime";import ee,{createContext as te,useState as j,useMemo as z,useRef as O,useContext as M,useEffect as A,memo as he,forwardRef as B,useLayoutEffect as L,useImperativeHandle as oe,useCallback as ae}from"react";import*as h from"three";import{NoToneMapping as _e,HalfFloatType as xe,Vector3 as ge,Uniform as y,TextureLoader as we,SRGBColorSpace as Se,RepeatWrapping as Y,Texture as ye,Color as Pe,CanvasTexture as be,NearestFilter as re}from"three";import{useThree as V,useFrame as J,extend as Ee,createPortal as Re,useLoader as Ue,applyProps as Ce}from"@react-three/fiber";import{EffectComposer as ze,RenderPass as Te,NormalPass as Ae,DepthDownsamplingPass as Be,Effect as W,EffectPass as Ve,Pass as Fe,DepthOfFieldEffect as Me,MaskFunction as De,DepthPickingPass as ke,CopyPass as Ge,BloomEffect as Ie,BrightnessContrastEffect as Le,ChromaticAberrationEffect as Ne,ColorAverageEffect as je,ColorDepthEffect as Oe,DepthEffect as We,DotScreenEffect as Xe,GlitchEffect as qe,GlitchMode as ne,GodRaysEffect as He,GridEffect as Ze,HueSaturationEffect as $e,NoiseEffect as Ke,OutlineEffect as Ye,PixelationEffect as Je,ScanlineEffect as Qe,SelectiveBloomEffect as et,SepiaEffect as tt,SSAOEffect as ot,SMAAEffect as at,FXAAEffect as rt,TextureEffect as nt,ToneMappingEffect as st,VignetteEffect as it,ShockWaveEffect as lt,LUT3DEffect as ct,TiltShiftEffect as ft}from"postprocessing";import{easing as se}from"maath";import{N8AOPostPass as ut}from"n8ao";const H=/*@__PURE__*/te(null);function pt({children:e,enabled:t=!0}){const[o,r]=j([]),a=z(()=>({selected:o,select:r,enabled:t}),[o,r,t]);return /*@__PURE__*/w(H.Provider,{value:a,children:e})}function mt({enabled:e=!1,children:t,...o}){const r=O(null),a=M(H);return A(()=>{if(a&&e){let n=!1;const i=[];if(r.current.traverse(s=>{s.type==="Mesh"&&i.push(s),a.selected.indexOf(s)===-1&&(n=!0)}),n)return a.select(s=>[...s,...i]),()=>{a.select(s=>s.filter(l=>!i.includes(l)))}}},[e,t,a]),/*@__PURE__*/w("group",{ref:r,...o,children:t})}const D=/*@__PURE__*/te(null),ie=e=>(e.getAttributes()&2)===2,dt=/*@__PURE__*/he(/*@__PURE__*/B(({children:e,camera:t,scene:o,resolutionScale:r,enabled:a=!0,renderPriority:n=1,autoClear:i=!0,depthBuffer:s,enableNormalPass:l,stencilBuffer:p,multisampling:_=8,frameBufferType:S=xe},g)=>{const{gl:d,scene:m,camera:v,size:x}=V(),f=o||m,u=t||v,[c,U,b]=z(()=>{const C=new ze(d,{depthBuffer:s,stencilBuffer:p,multisampling:_,frameBufferType:S});C.addPass(new Te(f,u));let R=null,E=null;return l&&(E=new Ae(f,u),E.enabled=!1,C.addPass(E),r!==void 0&&(R=new Be({normalBuffer:E.texture,resolutionScale:r}),R.enabled=!1,C.addPass(R))),[C,E,R]},[u,d,s,p,_,S,f,l,r]);A(()=>c?.setSize(x.width,x.height),[c,x]),J((C,R)=>{if(a){const E=d.autoClear;d.autoClear=i,p&&!i&&d.clearStencil(),c.render(R),d.autoClear=E}},a?n:0);const F=O(null);L(()=>{const C=[],R=F.current.__r3f;if(R&&c){const E=R.children;for(let T=0;T<E.length;T++){const N=E[T].object;if(N instanceof W){const q=[N];if(!ie(N)){let G=null;for(;(G=E[T+1]?.object)instanceof W&&!ie(G);)q.push(G),T++}const $=new Ve(u,...q);C.push($)}else N instanceof Fe&&C.push(N)}for(const T of C)c?.addPass(T);U&&(U.enabled=!0),b&&(b.enabled=!0)}return()=>{for(const E of C)c?.removePass(E);U&&(U.enabled=!1),b&&(b.enabled=!1)}},[c,e,u,U,b]),A(()=>{const C=d.toneMapping;return d.toneMapping=_e,()=>{d.toneMapping=C}},[d]);const X=z(()=>({composer:c,normalPass:U,downSamplingPass:b,resolutionScale:r,camera:u,scene:f}),[c,U,b,r,u,f]);return oe(g,()=>c,[c]),/*@__PURE__*/w(D.Provider,{value:X,children:/*@__PURE__*/w("group",{ref:F,children:e})})})),k=e=>typeof e=="object"&&e!=null&&"current"in e?e.current:e;let vt=0;const le=/*@__PURE__*/new WeakMap,P=(e,t)=>function({blendFunction:o=t?.blendFunction,opacity:r=t?.opacity,...a}){let n=le.get(e);if(!n){const l=`@react-three/postprocessing/${e.name}-${vt++}`;Ee({[l]:e}),le.set(e,n=l)}const i=V(l=>l.camera),s=ee.useMemo(()=>[...t?.args??[],...a.args??[{...t,...a}]],[JSON.stringify(a)]);return /*@__PURE__*/w(n,{camera:i,"blendMode-blendFunction":o,"blendMode-opacity-value":r,...a,args:s})},Z=(e,t)=>{const o=e[t];return ee.useMemo(()=>typeof o=="number"?new h.Vector2(o,o):o?new h.Vector2(...o):new h.Vector2,[o])},ce=/*@__PURE__*/B(function({blendFunction:e,worldFocusDistance:t,worldFocusRange:o,focusDistance:r,focusRange:a,focalLength:n,bokehScale:i,resolutionScale:s,resolutionX:l,resolutionY:p,width:_,height:S,target:g,depthTexture:d,...m},v){const{camera:x}=M(D),f=g!=null,u=z(()=>{const c=new Me(x,{blendFunction:e,worldFocusDistance:t,worldFocusRange:o,focusDistance:r,focusRange:a,focalLength:n,bokehScale:i,resolutionScale:s,resolutionX:l,resolutionY:p,width:_,height:S});f&&(c.target=new ge),d&&c.setDepthTexture(d.texture,d.packing);const U=c.maskPass;return U.maskFunction=De.MULTIPLY_RGB_SET_ALPHA,c},[x,e,t,o,r,a,n,i,s,l,p,_,S,f,d]);return A(()=>()=>{u.dispose()},[u]),/*@__PURE__*/w("primitive",{...m,ref:v,object:u,target:g})}),ht=/*@__PURE__*/B(({target:e=void 0,mouse:t=!1,debug:o=void 0,manual:r=!1,smoothTime:a=.25,...n},i)=>{const s=O(null),l=O(null),p=O(null),_=V(({scene:b})=>b),S=V(({pointer:b})=>b),{composer:g,camera:d}=M(D),[m]=j(()=>new ke),[v]=j(()=>new Ge);A(()=>(g.addPass(m),g.addPass(v),()=>{g.removePass(m),g.removePass(v)}),[g,m,v]),A(()=>()=>{m.dispose(),v.dispose()},[m,v]);const[x]=j(()=>new h.Vector3(0,0,0)),[f]=j(()=>new h.Vector3(0,0,0)),u=ae(async(b,F)=>(f.x=b,f.y=F,f.z=await m.readDepth(f),f.z=f.z*2-1,1-f.z>1e-7?f.unproject(d):!1),[f,m,d]),c=ae(async(b,F=!0)=>{if(e)x.set(...e);else{const{x:X,y:C}=t?S:{x:0,y:0},R=await u(X,C);R&&x.copy(R)}F&&s.current?.target&&(a>0&&b>0?se.damp3(s.current.target,x,a,b):s.current.target.copy(x))},[e,x,t,u,a,S]);J(async(b,F)=>{r||c(F),l.current&&l.current.position.copy(x),p.current&&s.current?.target&&p.current.position.copy(s.current.target)});const U=z(()=>({dofRef:s,hitpoint:x,update:c}),[x,c]);return oe(i,()=>U,[U]),/*@__PURE__*/K(Q,{children:[o?Re(/*@__PURE__*/K(Q,{children:[/*@__PURE__*/K("mesh",{ref:l,children:[/*@__PURE__*/w("sphereGeometry",{args:[o,16,16]}),/*@__PURE__*/w("meshBasicMaterial",{color:"#00ff00",opacity:1,transparent:!0,depthWrite:!1})]}),/*@__PURE__*/K("mesh",{ref:p,children:[/*@__PURE__*/w("sphereGeometry",{args:[o/2,16,16]}),/*@__PURE__*/w("meshBasicMaterial",{color:"#00ff00",opacity:.5,transparent:!0,depthWrite:!1})]})]}),_):null,/*@__PURE__*/w(ce,{ref:s,...n,target:x})]})}),_t={fragmentShader:`
2
+ uniform float time;
3
+ uniform vec2 lensPosition;
4
+ uniform vec2 screenRes;
5
+ uniform vec3 colorGain;
6
+ uniform float starPoints;
7
+ uniform float glareSize;
8
+ uniform float flareSize;
9
+ uniform float flareSpeed;
10
+ uniform float flareShape;
11
+ uniform float haloScale;
12
+ uniform float opacity;
13
+ uniform bool animated;
14
+ uniform bool anamorphic;
15
+ uniform bool enabled;
16
+ uniform bool secondaryGhosts;
17
+ uniform bool starBurst;
18
+ uniform float ghostScale;
19
+ uniform bool aditionalStreaks;
20
+ uniform sampler2D lensDirtTexture;
21
+ vec2 vTexCoord;
22
+
23
+ float rand(float n){return fract(sin(n) * 43758.5453123);}
24
+
25
+ float noise(float p){
26
+ float fl = floor(p);
27
+ float fc = fract(p);
28
+ return mix(rand(fl),rand(fl + 1.0), fc);
29
+ }
30
+
31
+ vec3 hsv2rgb(vec3 c)
32
+ {
33
+ vec4 k = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
34
+ vec3 p = abs(fract(c.xxx + k.xyz) * 6.0 - k.www);
35
+ return c.z * mix(k.xxx, clamp(p - k.xxx, 0.0, 1.0), c.y);
36
+ }
37
+
38
+ float saturate(float x)
39
+ {
40
+ return clamp(x, 0.,1.);
41
+ }
42
+
43
+ vec2 rotateUV(vec2 uv, float rotation)
44
+ {
45
+ return vec2(
46
+ cos(rotation) * uv.x + sin(rotation) * uv.y,
47
+ cos(rotation) * uv.y - sin(rotation) * uv.x
48
+ );
49
+ }
50
+
51
+ // Based on https://www.shadertoy.com/view/XtKfRV
52
+ vec3 drawflare(vec2 p, float intensity, float rnd, float speed, int id)
53
+ {
54
+ float flarehueoffset = (1. / 32.) * float(id) * 0.1;
55
+ float lingrad = distance(vec2(0.), p);
56
+ float expgrad = 1. / exp(lingrad * (fract(rnd) * 0.66 + 0.33));
57
+ vec3 colgrad = hsv2rgb(vec3( fract( (expgrad * 8.) + speed * flareSpeed + flarehueoffset), pow(1.-abs(expgrad*2.-1.), 0.45), 20.0 * expgrad * intensity)); //rainbow spectrum effect
58
+
59
+ float internalStarPoints;
60
+
61
+ if(anamorphic){
62
+ internalStarPoints = 1.0;
63
+ } else{
64
+ internalStarPoints = starPoints;
65
+ }
66
+
67
+ float blades = length(p * flareShape * sin(internalStarPoints * atan(p.x, p.y)));
68
+
69
+ float comp = pow(1.-saturate(blades), ( anamorphic ? 100. : 12.));
70
+ comp += saturate(expgrad-0.9) * 3.;
71
+ comp = pow(comp * expgrad, 8. + (1.-intensity) * 5.);
72
+
73
+ if(flareSpeed > 0.0){
74
+ return vec3(comp) * colgrad;
75
+ } else{
76
+ return vec3(comp) * flareSize * 15.;
77
+ }
78
+ }
79
+
80
+ float dist(vec3 a, vec3 b) { return abs(a.x - b.x) + abs(a.y - b.y) + abs(a.z - b.z); }
81
+
82
+ vec3 saturate(vec3 x)
83
+ {
84
+ return clamp(x, vec3(0.0), vec3(1.0));
85
+ }
86
+
87
+ // Based on https://www.shadertoy.com/view/XtKfRV
88
+ float glare(vec2 uv, vec2 pos, float size)
89
+ {
90
+ vec2 main;
91
+
92
+ if(animated){
93
+ main = rotateUV(uv-pos, time * 0.1);
94
+ } else{
95
+ main = uv-pos;
96
+ }
97
+
98
+ float ang = atan(main.y, main.x) * (anamorphic ? 1.0 : starPoints);
99
+ float dist = length(main);
100
+ dist = pow(dist, .9);
101
+
102
+ float f0 = 1.0/(length(uv-pos)*(1.0/size*16.0)+.2);
103
+
104
+ return f0+f0*(sin((ang))*.2 +.3);
105
+ }
106
+
107
+ float sdHex(vec2 p){
108
+ p = abs(p);
109
+ vec2 q = vec2(p.x*2.0*0.5773503, p.y + p.x*0.5773503);
110
+ return dot(step(q.xy,q.yx), 1.0-q.yx);
111
+ }
112
+
113
+ //Based on https://www.shadertoy.com/view/dllSRX
114
+ float fpow(float x, float k){
115
+ return x > k ? pow((x-k)/(1.0-k),2.0) : 0.0;
116
+ }
117
+
118
+ vec3 renderhex(vec2 uv, vec2 p, float s, vec3 col){
119
+ uv -= p;
120
+ if (abs(uv.x) < 0.2*s && abs(uv.y) < 0.2*s){
121
+ return mix(vec3(0),mix(vec3(0),col,0.1 + fpow(length(uv/s),0.1)*10.0),smoothstep(0.0,0.1,sdHex(uv*20.0/s)));
122
+ }
123
+ return vec3(0);
124
+ }
125
+
126
+ // Based on https://www.shadertoy.com/view/4sX3Rs
127
+ vec3 LensFlare(vec2 uv, vec2 pos)
128
+ {
129
+ vec2 main = uv-pos;
130
+ vec2 uvd = uv*(length(uv));
131
+
132
+ float ang = atan(main.x,main.y);
133
+
134
+ float f0 = .3/(length(uv-pos)*16.0+1.0);
135
+
136
+ f0 = f0*(sin(noise(sin(ang*3.9-(animated ? time : 0.0) * 0.3) * starPoints))*.2 );
137
+
138
+ float f1 = max(0.01-pow(length(uv+1.2*pos),1.9),.0)*7.0;
139
+
140
+ float f2 = max(.9/(10.0+32.0*pow(length(uvd+0.99*pos),2.0)),.0)*0.35;
141
+ float f22 = max(.9/(11.0+32.0*pow(length(uvd+0.85*pos),2.0)),.0)*0.23;
142
+ float f23 = max(.9/(12.0+32.0*pow(length(uvd+0.95*pos),2.0)),.0)*0.6;
143
+
144
+ vec2 uvx = mix(uv,uvd, 0.1);
145
+
146
+ float f4 = max(0.01-pow(length(uvx+0.4*pos),2.9),.0)*4.02;
147
+ float f42 = max(0.0-pow(length(uvx+0.45*pos),2.9),.0)*4.1;
148
+ float f43 = max(0.01-pow(length(uvx+0.5*pos),2.9),.0)*4.6;
149
+
150
+ uvx = mix(uv,uvd,-.4);
151
+
152
+ float f5 = max(0.01-pow(length(uvx+0.1*pos),5.5),.0)*2.0;
153
+ float f52 = max(0.01-pow(length(uvx+0.2*pos),5.5),.0)*2.0;
154
+ float f53 = max(0.01-pow(length(uvx+0.1*pos),5.5),.0)*2.0;
155
+
156
+ uvx = mix(uv,uvd, 2.1);
157
+
158
+ float f6 = max(0.01-pow(length(uvx-0.3*pos),1.61),.0)*3.159;
159
+ float f62 = max(0.01-pow(length(uvx-0.325*pos),1.614),.0)*3.14;
160
+ float f63 = max(0.01-pow(length(uvx-0.389*pos),1.623),.0)*3.12;
161
+
162
+ vec3 c = vec3(glare(uv,pos, glareSize));
163
+
164
+ vec2 prot;
165
+
166
+ if(animated){
167
+ prot = rotateUV(uv - pos, (time * 0.1));
168
+ } else if(anamorphic){
169
+ prot = rotateUV(uv - pos, 1.570796);
170
+ } else {
171
+ prot = uv - pos;
172
+ }
173
+
174
+ c += drawflare(prot, (anamorphic ? flareSize * 10. : flareSize), 0.1, time, 1);
175
+
176
+ c.r+=f1+f2+f4+f5+f6; c.g+=f1+f22+f42+f52+f62; c.b+=f1+f23+f43+f53+f63;
177
+ c = c*1.3 * vec3(length(uvd)+.09);
178
+ c+=vec3(f0);
179
+
180
+ return c;
181
+ }
182
+
183
+ vec3 cc(vec3 color, float factor,float factor2)
184
+ {
185
+ float w = color.x+color.y+color.z;
186
+ return mix(color,vec3(w)*factor,w*factor2);
187
+ }
188
+
189
+ float rnd(vec2 p)
190
+ {
191
+ float f = fract(sin(dot(p, vec2(12.1234, 72.8392) )*45123.2));
192
+ return f;
193
+ }
194
+
195
+ float rnd(float w)
196
+ {
197
+ float f = fract(sin(w)*1000.);
198
+ return f;
199
+ }
200
+
201
+ float regShape(vec2 p, int N)
202
+ {
203
+ float f;
204
+
205
+ float a=atan(p.x,p.y)+.2;
206
+ float b=6.28319/float(N);
207
+ f=smoothstep(.5,.51, cos(floor(.5+a/b)*b-a)*length(p.xy)* 2.0 -ghostScale);
208
+
209
+ return f;
210
+ }
211
+
212
+ // Based on https://www.shadertoy.com/view/Xlc3D2
213
+ vec3 circle(vec2 p, float size, float decay, vec3 color, vec3 color2, float dist, vec2 position)
214
+ {
215
+ float l = length(p + position*(dist*2.))+size/2.;
216
+ float l2 = length(p + position*(dist*4.))+size/3.;
217
+
218
+ float c = max(0.01-pow(length(p + position*dist), size*ghostScale), 0.0)*10.;
219
+ float c1 = max(0.001-pow(l-0.3, 1./40.)+sin(l*20.), 0.0)*3.;
220
+ float c2 = max(0.09/pow(length(p-position*dist/.5)*1., .95), 0.0)/20.;
221
+ float s = max(0.02-pow(regShape(p*5. + position*dist*5. + decay, 6) , 1.), 0.0)*1.5;
222
+
223
+ color = cos(vec3(0.44, .24, .2)*16. + dist/8.)*0.5+.5;
224
+ vec3 f = c*color;
225
+ f += c1*color;
226
+ f += c2*color;
227
+ f += s*color;
228
+ return f;
229
+ }
230
+
231
+ vec4 getLensColor(float x){
232
+ return vec4(vec3(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(vec3(0., 0., 0.),
233
+ vec3(0., 0., 0.), smoothstep(0.0, 0.063, x)),
234
+ vec3(0., 0., 0.), smoothstep(0.063, 0.125, x)),
235
+ vec3(0.0, 0., 0.), smoothstep(0.125, 0.188, x)),
236
+ vec3(0.188, 0.131, 0.116), smoothstep(0.188, 0.227, x)),
237
+ vec3(0.31, 0.204, 0.537), smoothstep(0.227, 0.251, x)),
238
+ vec3(0.192, 0.106, 0.286), smoothstep(0.251, 0.314, x)),
239
+ vec3(0.102, 0.008, 0.341), smoothstep(0.314, 0.392, x)),
240
+ vec3(0.086, 0.0, 0.141), smoothstep(0.392, 0.502, x)),
241
+ vec3(1.0, 0.31, 0.0), smoothstep(0.502, 0.604, x)),
242
+ vec3(.1, 0.1, 0.1), smoothstep(0.604, 0.643, x)),
243
+ vec3(1.0, 0.929, 0.0), smoothstep(0.643, 0.761, x)),
244
+ vec3(1.0, 0.086, 0.424), smoothstep(0.761, 0.847, x)),
245
+ vec3(1.0, 0.49, 0.0), smoothstep(0.847, 0.89, x)),
246
+ vec3(0.945, 0.275, 0.475), smoothstep(0.89, 0.941, x)),
247
+ vec3(0.251, 0.275, 0.796), smoothstep(0.941, 1.0, x))),
248
+ 1.0);
249
+ }
250
+
251
+ float dirtNoise(vec2 p){
252
+ vec2 f = fract(p);
253
+ f = (f * f) * (3.0 - (2.0 * f));
254
+ float n = dot(floor(p), vec2(1.0, 157.0));
255
+ vec4 a = fract(sin(vec4(n + 0.0, n + 1.0, n + 157.0, n + 158.0)) * 43758.5453123);
256
+ return mix(mix(a.x, a.y, f.x), mix(a.z, a.w, f.x), f.y);
257
+ }
258
+
259
+ float fbm(vec2 p){
260
+ const mat2 m = mat2(0.80, -0.60, 0.60, 0.80);
261
+ float f = 0.0;
262
+ f += 0.5000*dirtNoise(p); p = m*p*2.02;
263
+ f += 0.2500*dirtNoise(p); p = m*p*2.03;
264
+ f += 0.1250*dirtNoise(p); p = m*p*2.01;
265
+ f += 0.0625*dirtNoise(p);
266
+ return f/0.9375;
267
+ }
268
+
269
+ vec4 getLensStar(vec2 p){
270
+ vec2 pp = (p - vec2(0.5)) * 2.0;
271
+ float a = atan(pp.y, pp.x);
272
+ vec4 cp = vec4(sin(a * 1.0), length(pp), sin(a * 13.0), sin(a * 53.0));
273
+ float d = sin(clamp(pow(length(vec2(0.5) - p) * 0.5 + haloScale /2., 5.0), 0.0, 1.0) * 3.14159);
274
+ vec3 c = vec3(d) * vec3(fbm(cp.xy * 16.0) * fbm(cp.zw * 9.0) * max(max(max(max(0.5, sin(a * 1.0)), sin(a * 3.0) * 0.8), sin(a * 7.0) * 0.8), sin(a * 9.0) * 10.6));
275
+ c *= vec3(mix(2.0, (sin(length(pp.xy) * 256.0) * 0.5) + 0.5, sin((clamp((length(pp.xy) - 0.875) / 0.1, 0.0, 1.0) + 0.0) * 2.0 * 3.14159) * 1.5) + 0.5) * 0.3275;
276
+ return vec4(vec3(c * 1.0), d);
277
+ }
278
+
279
+ vec4 getLensDirt(vec2 p){
280
+ p.xy += vec2(fbm(p.yx * 3.0), fbm(p.yx * 2.0)) * 0.0825;
281
+ vec3 o = vec3(mix(0.125, 0.25, max(max(smoothstep(0.1, 0.0, length(p - vec2(0.25))),
282
+ smoothstep(0.4, 0.0, length(p - vec2(0.75)))),
283
+ smoothstep(0.8, 0.0, length(p - vec2(0.875, 0.125))))));
284
+ o += vec3(max(fbm(p * 1.0) - 0.5, 0.0)) * 0.5;
285
+ o += vec3(max(fbm(p * 2.0) - 0.5, 0.0)) * 0.5;
286
+ o += vec3(max(fbm(p * 4.0) - 0.5, 0.0)) * 0.25;
287
+ o += vec3(max(fbm(p * 8.0) - 0.75, 0.0)) * 1.0;
288
+ o += vec3(max(fbm(p * 16.0) - 0.75, 0.0)) * 0.75;
289
+ o += vec3(max(fbm(p * 64.0) - 0.75, 0.0)) * 0.5;
290
+ return vec4(clamp(o, vec3(0.15), vec3(1.0)), 1.0);
291
+ }
292
+
293
+ vec4 textureLimited(sampler2D tex, vec2 texCoord){
294
+ if(((texCoord.x < 0.) || (texCoord.y < 0.)) || ((texCoord.x > 1.) || (texCoord.y > 1.))){
295
+ return vec4(0.0);
296
+ }else{
297
+ return texture(tex, texCoord);
298
+ }
299
+ }
300
+
301
+ vec4 textureDistorted(sampler2D tex, vec2 texCoord, vec2 direction, vec3 distortion) {
302
+ return vec4(textureLimited(tex, (texCoord + (direction * distortion.r))).r,
303
+ textureLimited(tex, (texCoord + (direction * distortion.g))).g,
304
+ textureLimited(tex, (texCoord + (direction * distortion.b))).b,
305
+ 1.0);
306
+ }
307
+
308
+ // Based on https://www.shadertoy.com/view/4sK3W3
309
+ vec4 getStartBurst(){
310
+ vec2 aspectTexCoord = vec2(1.0) - (((vTexCoord - vec2(0.5)) * vec2(1.0)) + vec2(0.5));
311
+ vec2 texCoord = vec2(1.0) - vTexCoord;
312
+ vec2 ghostVec = (vec2(0.5) - texCoord) * 0.3 - lensPosition;
313
+ vec2 ghostVecAspectNormalized = normalize(ghostVec * vec2(1.0)) * vec2(1.0);
314
+ vec2 haloVec = normalize(ghostVec) * 0.6;
315
+ vec2 haloVecAspectNormalized = ghostVecAspectNormalized * 0.6;
316
+ vec2 texelSize = vec2(1.0) / vec2(screenRes.xy);
317
+ vec3 distortion = vec3(-(texelSize.x * 1.5), 0.2, texelSize.x * 1.5);
318
+ vec4 c = vec4(0.0);
319
+ for (int i = 0; i < 8; i++) {
320
+ vec2 offset = texCoord + (ghostVec * float(i));
321
+ c += textureDistorted(lensDirtTexture, offset, ghostVecAspectNormalized, distortion) * pow(max(0.0, 1.0 - (length(vec2(0.5) - offset) / length(vec2(0.5)))), 10.0);
322
+ }
323
+ vec2 haloOffset = texCoord + haloVecAspectNormalized;
324
+ return (c * getLensColor((length(vec2(0.5) - aspectTexCoord) / length(vec2(haloScale))))) +
325
+ (textureDistorted(lensDirtTexture, haloOffset, ghostVecAspectNormalized, distortion) * pow(max(0.0, 1.0 - (length(vec2(0.5) - haloOffset) / length(vec2(0.5)))), 10.0));
326
+ }
327
+
328
+ void mainImage(vec4 inputColor, vec2 uv, out vec4 outputColor)
329
+ {
330
+ vec2 myUV = uv -0.5;
331
+ myUV.y *= screenRes.y/screenRes.x;
332
+ vec2 finalLensPosition = lensPosition * 0.5;
333
+ finalLensPosition.y *= screenRes.y/screenRes.x;
334
+
335
+ //First Lens flare pass
336
+ vec3 finalColor = LensFlare(myUV, finalLensPosition) * 20.0 * colorGain / 256.;
337
+
338
+ //Aditional streaks
339
+ if(aditionalStreaks){
340
+ vec3 circColor = vec3(0.9, 0.2, 0.1);
341
+ vec3 circColor2 = vec3(0.3, 0.1, 0.9);
342
+
343
+ for(float i=0.;i<10.;i++){
344
+ finalColor += circle(myUV, pow(rnd(i*2000.)*2.8, .1)+1.41, 0.0, circColor+i , circColor2+i, rnd(i*20.)*3.+0.2-.5, lensPosition);
345
+ }
346
+ }
347
+
348
+ //Alternative ghosts
349
+ if(secondaryGhosts){
350
+ vec3 altGhosts = vec3(0);
351
+ altGhosts += renderhex(myUV, -lensPosition*0.25, ghostScale * 1.4, vec3(0.25,0.35,0));
352
+ altGhosts += renderhex(myUV, lensPosition*0.25, ghostScale * 0.5, vec3(1,0.5,0.5));
353
+ altGhosts += renderhex(myUV, lensPosition*0.1, ghostScale * 1.6, vec3(1,1,1));
354
+ altGhosts += renderhex(myUV, lensPosition*1.8, ghostScale * 2.0, vec3(0,0.5,0.75));
355
+ altGhosts += renderhex(myUV, lensPosition*1.25, ghostScale * 0.8, vec3(1,1,0.5));
356
+ altGhosts += renderhex(myUV, -lensPosition*1.25, ghostScale * 5.0, vec3(0.5,0.5,0.25));
357
+
358
+ //Circular ghosts
359
+ altGhosts += fpow(1.0 - abs(distance(lensPosition*0.8,myUV) - 0.7),0.985)*colorGain / 2100.;
360
+ finalColor += altGhosts;
361
+ }
362
+
363
+
364
+ //Starburst
365
+ if(starBurst){
366
+ vTexCoord = myUV + 0.5;
367
+ vec4 lensMod = getLensDirt(myUV);
368
+ float tooBright = 1.0 - (clamp(0.5, 0.0, 0.5) * 2.0);
369
+ float tooDark = clamp(0.5 - 0.5, 0.0, 0.5) * 2.0;
370
+ lensMod += mix(lensMod, pow(lensMod * 2.0, vec4(2.0)) * 0.5, tooBright);
371
+ float lensStarRotationAngle = ((myUV.x + myUV.y)) * (1.0 / 6.0);
372
+ vec2 lensStarTexCoord = (mat2(cos(lensStarRotationAngle), -sin(lensStarRotationAngle), sin(lensStarRotationAngle), cos(lensStarRotationAngle)) * vTexCoord);
373
+ lensMod += getLensStar(lensStarTexCoord) * 2.;
374
+
375
+ finalColor += clamp((lensMod.rgb * getStartBurst().rgb ), 0.01, 1.0);
376
+ }
377
+
378
+ //Final composed output
379
+ if(enabled){
380
+ outputColor = vec4(mix(finalColor, vec3(.0), opacity) + inputColor.rgb, inputColor.a);
381
+ } else {
382
+ outputColor = vec4(inputColor);
383
+ }
384
+ }
385
+ `};class fe extends W{constructor({blendFunction:t,enabled:o,glareSize:r,lensPosition:a,screenRes:n,starPoints:i,flareSize:s,flareSpeed:l,flareShape:p,animated:_,anamorphic:S,colorGain:g,lensDirtTexture:d,haloScale:m,secondaryGhosts:v,aditionalStreaks:x,ghostScale:f,opacity:u,starBurst:c}){super("LensFlareEffect",_t.fragmentShader,{blendFunction:t,uniforms:/*@__PURE__*/new Map([["enabled",new h.Uniform(o)],["glareSize",new h.Uniform(r)],["lensPosition",new h.Uniform(a)],["time",new h.Uniform(0)],["screenRes",new h.Uniform(n)],["starPoints",new h.Uniform(i)],["flareSize",new h.Uniform(s)],["flareSpeed",new h.Uniform(l)],["flareShape",new h.Uniform(p)],["animated",new h.Uniform(_)],["anamorphic",new h.Uniform(S)],["colorGain",new h.Uniform(g)],["lensDirtTexture",new h.Uniform(d)],["haloScale",new h.Uniform(m)],["secondaryGhosts",new h.Uniform(v)],["aditionalStreaks",new h.Uniform(x)],["ghostScale",new h.Uniform(f)],["starBurst",new h.Uniform(c)],["opacity",new h.Uniform(u)]])})}update(t,o,r){const a=this.uniforms.get("time");a&&(a.value+=r)}}const xt=/*@__PURE__*/P(fe),gt=({smoothTime:e=.07,blendFunction:t=23,enabled:o=!0,glareSize:r=.2,lensPosition:a=new h.Vector3(-25,6,-60),screenRes:n=new h.Vector2(0,0),starPoints:i=6,flareSize:s=.01,flareSpeed:l=.01,flareShape:p=.01,animated:_=!0,anamorphic:S=!1,colorGain:g=new h.Color(20,20,20),lensDirtTexture:d=null,haloScale:m=.5,secondaryGhosts:v=!0,aditionalStreaks:x=!0,ghostScale:f=0,opacity:u=1,starBurst:c=!1})=>{const U=V(({viewport:T})=>T),b=V(({raycaster:T})=>T),{scene:F,camera:X}=M(D),[C]=j(()=>new h.Vector2),[R]=j(()=>new h.Vector3),E=O(null);return J((T,N)=>{if(!E?.current)return;const q=E.current.uniforms.get("lensPosition"),$=E.current.uniforms.get("opacity");if(!q||!$)return;let G=1;if(R.copy(a).project(X),R.z>1)return;q.value.x=R.x,q.value.y=R.y,C.x=R.x,C.y=R.y,b.setFromCamera(C,X);const ve=b.intersectObjects(F.children,!0),{object:I}=ve[0]||{};I&&(I.userData?.lensflare==="no-occlusion"?G=0:I instanceof h.Mesh&&(I.material.uniforms?._transmission?.value>.2||I.material._transmission&&I.material._transmission>.2?G=.2:I.material.transparent&&(G=I.material.opacity))),se.damp($,"value",G,e,N)}),A(()=>{if(!E?.current)return;const T=E.current.uniforms.get("screenRes");T&&(T.value.x=U.width,T.value.y=U.height)},[U]),/*@__PURE__*/w(xt,{ref:E,blendFunction:t,enabled:o,glareSize:r,lensPosition:a,screenRes:n,starPoints:i,flareSize:s,flareSpeed:l,flareShape:p,animated:_,anamorphic:S,colorGain:g,lensDirtTexture:d,haloScale:m,secondaryGhosts:v,aditionalStreaks:x,ghostScale:f,opacity:u,starBurst:c})},wt=/*@__PURE__*/P(Ie,{blendFunction:0}),St=/*@__PURE__*/P(Le),yt=/*@__PURE__*/P(Ne),Pt=/*@__PURE__*/B(function({blendFunction:e=23},t){const o=z(()=>new je(e),[e]);return /*@__PURE__*/w("primitive",{ref:t,object:o,dispose:null})}),bt=/*@__PURE__*/P(Oe),Et=/*@__PURE__*/P(We),Rt=/*@__PURE__*/P(Xe),Ut=/*@__PURE__*/B(function({active:e=!0,...t},o){const r=V(p=>p.invalidate),a=Z(t,"delay"),n=Z(t,"duration"),i=Z(t,"strength"),s=Z(t,"chromaticAberrationOffset"),l=z(()=>new qe({...t,delay:a,duration:n,strength:i,chromaticAberrationOffset:s}),[a,n,t,i,s]);return L(()=>{l.mode=e?t.mode||ne.SPORADIC:ne.DISABLED,r()},[e,l,r,t.mode]),A(()=>()=>{l.dispose?.()},[l]),/*@__PURE__*/w("primitive",{ref:o,object:l,dispose:null})}),Ct=/*@__PURE__*/B(function(e,t){const{camera:o}=M(D),r=z(()=>new He(o,k(e.sun),e),[o,e]);return L(()=>void(r.lightSource=k(e.sun)),[r,e.sun]),/*@__PURE__*/w("primitive",{ref:t,object:r,dispose:null})}),zt=/*@__PURE__*/B(function({size:e,...t},o){const r=V(n=>n.invalidate),a=z(()=>new Ze(t),[t]);return L(()=>{e&&a.setSize(e.width,e.height),r()},[a,e,r]),/*@__PURE__*/w("primitive",{ref:o,object:a,dispose:null})}),Tt=/*@__PURE__*/P($e),At=/*@__PURE__*/P(Ke,{blendFunction:5}),Bt=/*@__PURE__*/B(function({selection:e=[],selectionLayer:t=10,blendFunction:o,patternTexture:r,edgeStrength:a,pulseSpeed:n,visibleEdgeColor:i,hiddenEdgeColor:s,width:l,height:p,kernelSize:_,blur:S,xRay:g,...d},m){const v=V(U=>U.invalidate),{scene:x,camera:f}=M(D),u=z(()=>new Ye(x,f,{blendFunction:o,patternTexture:r,edgeStrength:a,pulseSpeed:n,visibleEdgeColor:i,hiddenEdgeColor:s,width:l,height:p,kernelSize:_,blur:S,xRay:g,...d}),[o,S,f,a,p,s,_,r,n,x,i,l,g]),c=M(H);return A(()=>{if(!c&&e)return u.selection.set(Array.isArray(e)?e.map(k):[k(e)]),v(),()=>{u.selection.clear(),v()}},[u,e,c,v]),A(()=>{u.selectionLayer=t,v()},[u,v,t]),O(void 0),A(()=>{if(c&&c.enabled&&c.selected?.length)return u.selection.set(c.selected),v(),()=>{u.selection.clear(),v()}},[c,u.selection,v]),A(()=>()=>{u.dispose()},[u]),/*@__PURE__*/w("primitive",{ref:m,object:u})}),Vt=/*@__PURE__*/B(function({granularity:e=5},t){const o=z(()=>new Je(e),[e]);return /*@__PURE__*/w("primitive",{ref:t,object:o,dispose:null})}),Ft=/*@__PURE__*/P(Qe,{blendFunction:24,density:1.25}),Mt=(e,t)=>e.layers.enable(t.selection.layer),Dt=(e,t)=>e.layers.disable(t.selection.layer),kt=/*@__PURE__*/B(function({selection:e=[],selectionLayer:t=10,lights:o=[],inverted:r=!1,ignoreBackground:a=!1,luminanceThreshold:n,luminanceSmoothing:i,intensity:s,width:l,height:p,kernelSize:_,mipmapBlur:S,...g},d){o.length===0&&console.warn("SelectiveBloom requires lights to work.");const m=V(c=>c.invalidate),{scene:v,camera:x}=M(D),f=z(()=>{const c=new et(v,x,{blendFunction:0,luminanceThreshold:n,luminanceSmoothing:i,intensity:s,width:l,height:p,kernelSize:_,mipmapBlur:S,...g});return c.inverted=r,c.ignoreBackground=a,c},[v,x,n,i,s,l,p,_,S,r,a,g]),u=M(H);return A(()=>{if(!u&&e)return f.selection.set(Array.isArray(e)?e.map(k):[k(e)]),m(),()=>{f.selection.clear(),m()}},[f,e,u,m]),A(()=>{f.selection.layer=t,m()},[f,m,t]),A(()=>{if(o&&o.length>0)return o.forEach(c=>Mt(k(c),f)),m(),()=>{o.forEach(c=>Dt(k(c),f)),m()}},[f,m,o,t]),A(()=>{if(u&&u.enabled&&u.selected?.length)return f.selection.set(u.selected),m(),()=>{f.selection.clear(),m()}},[u,f.selection,m]),/*@__PURE__*/w("primitive",{ref:d,object:f,dispose:null})}),Gt=/*@__PURE__*/P(tt),It=/*@__PURE__*/B(function(e,t){const{camera:o,normalPass:r,downSamplingPass:a,resolutionScale:n}=M(D),i=z(()=>r===null&&a===null?(console.error("Please enable the NormalPass in the EffectComposer in order to use SSAO."),{}):new ot(o,r&&!a?r.texture:null,{blendFunction:21,samples:30,rings:4,distanceThreshold:1,distanceFalloff:0,rangeThreshold:.5,rangeFalloff:.1,luminanceInfluence:.9,radius:20,bias:.5,intensity:1,color:void 0,normalDepthBuffer:a?a.texture:null,resolutionScale:n??1,depthAwareUpsampling:!0,...e}),[o,a,r,n]);return /*@__PURE__*/w("primitive",{ref:t,object:i,dispose:null})}),Lt=/*@__PURE__*/P(at),Nt=/*@__PURE__*/P(rt),jt={fragmentShader:`
386
+ uniform int rampType;
387
+
388
+ uniform vec2 rampStart;
389
+ uniform vec2 rampEnd;
390
+
391
+ uniform vec4 startColor;
392
+ uniform vec4 endColor;
393
+
394
+ uniform float rampBias;
395
+ uniform float rampGain;
396
+
397
+ uniform bool rampMask;
398
+ uniform bool rampInvert;
399
+
400
+ float getBias(float time, float bias) {
401
+ return time / (((1.0 / bias) - 2.0) * (1.0 - time) + 1.0);
402
+ }
403
+
404
+ float getGain(float time, float gain) {
405
+ if (time < 0.5)
406
+ return getBias(time * 2.0, gain) / 2.0;
407
+ else
408
+ return getBias(time * 2.0 - 1.0, 1.0 - gain) / 2.0 + 0.5;
409
+ }
410
+
411
+ void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {
412
+ vec2 centerPixel = uv * resolution;
413
+ vec2 startPixel = rampStart * resolution;
414
+ vec2 endPixel = rampEnd * resolution;
415
+
416
+ float rampAlpha;
417
+
418
+ if (rampType == 1) {
419
+ vec2 fuv = centerPixel / resolution.y;
420
+ vec2 suv = startPixel / resolution.y;
421
+ vec2 euv = endPixel / resolution.y;
422
+
423
+ float radius = length(suv - euv);
424
+ float falloff = length(fuv - suv);
425
+ rampAlpha = smoothstep(0.0, radius, falloff);
426
+ } else {
427
+ float radius = length(startPixel - endPixel);
428
+ vec2 direction = normalize(vec2(endPixel.x - startPixel.x, -(startPixel.y - endPixel.y)));
429
+
430
+ float fade = dot(centerPixel - startPixel, direction);
431
+ if (rampType == 2) fade = abs(fade);
432
+
433
+ rampAlpha = smoothstep(0.0, 1.0, fade / radius);
434
+ }
435
+
436
+ rampAlpha = abs((rampInvert ? 1.0 : 0.0) - getBias(rampAlpha, rampBias) * getGain(rampAlpha, rampGain));
437
+
438
+ if (rampMask) {
439
+ vec4 inputBuff = texture2D(inputBuffer, uv);
440
+ outputColor = mix(inputBuff, inputColor, rampAlpha);
441
+ } else {
442
+ outputColor = mix(startColor, endColor, rampAlpha);
443
+ }
444
+ }
445
+ `};var ue=/*@__PURE__*/(e=>(e[e.Linear=0]="Linear",e[e.Radial=1]="Radial",e[e.MirroredLinear=2]="MirroredLinear",e))(ue||{});class pe extends W{constructor({rampType:t=0,rampStart:o=[.5,.5],rampEnd:r=[1,1],startColor:a=[0,0,0,1],endColor:n=[1,1,1,1],rampBias:i=.5,rampGain:s=.5,rampMask:l=!1,rampInvert:p=!1,..._}={}){super("RampEffect",jt.fragmentShader,{..._,uniforms:/*@__PURE__*/new Map([["rampType",new y(t)],["rampStart",new y(o)],["rampEnd",new y(r)],["startColor",new y(a)],["endColor",new y(n)],["rampBias",new y(i)],["rampGain",new y(s)],["rampMask",new y(l)],["rampInvert",new y(p)]])})}}const Ot=/*@__PURE__*/P(pe),Wt=/*@__PURE__*/B(function({textureSrc:e,texture:t,opacity:o=1,...r},a){const n=Ue(we,e);L(()=>{n.colorSpace=Se,n.wrapS=n.wrapT=Y},[n]);const i=z(()=>new nt({...r,texture:n||t}),[r,n,t]);return /*@__PURE__*/w("primitive",{ref:a,object:i,"blendMode-opacity-value":o,dispose:null})}),Xt=/*@__PURE__*/P(st),qt=/*@__PURE__*/P(it),Ht=/*@__PURE__*/P(lt),Zt=/*@__PURE__*/B(function({lut:e,tetrahedralInterpolation:t,...o},r){const a=z(()=>new ct(e,o),[e,o]),n=V(i=>i.invalidate);return L(()=>{t&&(a.tetrahedralInterpolation=t),e&&(a.lut=e),n()},[a,n,e,t]),/*@__PURE__*/w("primitive",{ref:r,object:a,dispose:null})}),$t=/*@__PURE__*/P(ft,{blendFunction:0}),Kt={fragmentShader:`
446
+
447
+ // original shader by Evan Wallace
448
+
449
+ #define MAX_ITERATIONS 100
450
+
451
+ uniform float blur;
452
+ uniform float taper;
453
+ uniform vec2 start;
454
+ uniform vec2 end;
455
+ uniform vec2 direction;
456
+ uniform int samples;
457
+
458
+ float random(vec3 scale, float seed) {
459
+ /* use the fragment position for a different seed per-pixel */
460
+ return fract(sin(dot(gl_FragCoord.xyz + seed, scale)) * 43758.5453 + seed);
461
+ }
462
+
463
+ void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {
464
+ vec4 color = vec4(0.0);
465
+ float total = 0.0;
466
+ vec2 startPixel = vec2(start.x * resolution.x, start.y * resolution.y);
467
+ vec2 endPixel = vec2(end.x * resolution.x, end.y * resolution.y);
468
+ float f_samples = float(samples);
469
+ float half_samples = f_samples / 2.0;
470
+
471
+ // use screen diagonal to normalize blur radii
472
+ float maxScreenDistance = distance(vec2(0.0), resolution); // diagonal distance
473
+ float gradientRadius = taper * (maxScreenDistance);
474
+ float blurRadius = blur * (maxScreenDistance / 16.0);
475
+
476
+ /* randomize the lookup values to hide the fixed number of samples */
477
+ float offset = random(vec3(12.9898, 78.233, 151.7182), 0.0);
478
+ vec2 normal = normalize(vec2(startPixel.y - endPixel.y, endPixel.x - startPixel.x));
479
+ float radius = smoothstep(0.0, 1.0, abs(dot(uv * resolution - startPixel, normal)) / gradientRadius) * blurRadius;
480
+
481
+ #pragma unroll_loop_start
482
+ for (int i = 0; i <= MAX_ITERATIONS; i++) {
483
+ if (i >= samples) { break; } // return early if over sample count
484
+ float f_i = float(i);
485
+ float s_i = -half_samples + f_i;
486
+ float percent = (s_i + offset - 0.5) / half_samples;
487
+ float weight = 1.0 - abs(percent);
488
+ vec4 sample_i = texture2D(inputBuffer, uv + normalize(direction) / resolution * percent * radius);
489
+ /* switch to pre-multiplied alpha to correctly blur transparent images */
490
+ sample_i.rgb *= sample_i.a;
491
+ color += sample_i * weight;
492
+ total += weight;
493
+ }
494
+ #pragma unroll_loop_end
495
+
496
+ outputColor = color / total;
497
+
498
+ /* switch back from pre-multiplied alpha */
499
+ outputColor.rgb /= outputColor.a + 0.00001;
500
+ }
501
+ `};class me extends W{constructor({blendFunction:t=23,blur:o=.15,taper:r=.5,start:a=[.5,0],end:n=[.5,1],samples:i=10,direction:s=[1,1]}={}){super("TiltShiftEffect",Kt.fragmentShader,{blendFunction:t,attributes:2,uniforms:/*@__PURE__*/new Map([["blur",new y(o)],["taper",new y(r)],["start",new y(a)],["end",new y(n)],["samples",new y(i)],["direction",new y(s)]])})}}const Yt=/*@__PURE__*/P(me,{blendFunction:23}),Jt=`
502
+ uniform sampler2D uCharacters;
503
+ uniform float uCharactersCount;
504
+ uniform float uCellSize;
505
+ uniform bool uInvert;
506
+ uniform vec3 uColor;
507
+
508
+ const vec2 SIZE = vec2(16.);
509
+
510
+ vec3 greyscale(vec3 color, float strength) {
511
+ float g = dot(color, vec3(0.299, 0.587, 0.114));
512
+ return mix(color, vec3(g), strength);
513
+ }
514
+
515
+ vec3 greyscale(vec3 color) {
516
+ return greyscale(color, 1.0);
517
+ }
518
+
519
+ void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {
520
+ vec2 cell = resolution / uCellSize;
521
+ vec2 grid = 1.0 / cell;
522
+ vec2 pixelizedUV = grid * (0.5 + floor(uv / grid));
523
+ vec4 pixelized = texture2D(inputBuffer, pixelizedUV);
524
+ float greyscaled = greyscale(pixelized.rgb).r;
525
+
526
+ if (uInvert) {
527
+ greyscaled = 1.0 - greyscaled;
528
+ }
529
+
530
+ float characterIndex = floor((uCharactersCount - 1.0) * greyscaled);
531
+ vec2 characterPosition = vec2(mod(characterIndex, SIZE.x), floor(characterIndex / SIZE.y));
532
+ vec2 offset = vec2(characterPosition.x, -characterPosition.y) / SIZE;
533
+ vec2 charUV = mod(uv * (cell / SIZE), 1.0 / SIZE) - vec2(0., 1.0 / SIZE) + offset;
534
+ vec4 asciiCharacter = texture2D(uCharacters, charUV);
535
+
536
+ asciiCharacter.rgb = uColor * asciiCharacter.r;
537
+ asciiCharacter.a = pixelized.a;
538
+ outputColor = asciiCharacter;
539
+ }
540
+ `;class Qt extends W{constructor({font:t="arial",characters:o=" .:,'-^=*+?!|0#X%WM@",fontSize:r=54,cellSize:a=16,color:n="#ffffff",invert:i=!1}={}){const s=/*@__PURE__*/new Map([["uCharacters",new y(new ye)],["uCellSize",new y(a)],["uCharactersCount",new y(o.length)],["uColor",new y(new Pe(n))],["uInvert",new y(i)]]);super("ASCIIEffect",Jt,{uniforms:s});const l=this.uniforms.get("uCharacters");l&&(l.value=this.createCharactersTexture(o,t,r))}createCharactersTexture(t,o,r){const a=document.createElement("canvas"),n=1024,i=16,s=n/i;a.width=a.height=n;const l=new be(a,void 0,Y,Y,re,re),p=a.getContext("2d");if(!p)throw new Error("Context not available");p.clearRect(0,0,n,n),p.font=`${r}px ${o}`,p.textAlign="center",p.textBaseline="middle",p.fillStyle="#fff";for(let _=0;_<t.length;_++){const S=t[_],g=_%i,d=Math.floor(_/i);p.fillText(S,g*s+s/2,d*s+s/2)}return l.needsUpdate=!0,l}}const eo=/*@__PURE__*/B(({font:e="arial",characters:t=" .:,'-^=*+?!|0#X%WM@",fontSize:o=54,cellSize:r=16,color:a="#ffffff",invert:n=!1},i)=>{const s=z(()=>new Qt({characters:t,font:e,fontSize:o,cellSize:r,color:a,invert:n}),[t,o,r,a,n,e]);return /*@__PURE__*/w("primitive",{ref:i,object:s})}),to={fragmentShader:`
541
+ uniform float factor;
542
+
543
+ void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {
544
+ vec2 vUv = uv;
545
+ float frequency = 6.0 * factor;
546
+ float amplitude = 0.015 * factor;
547
+ float x = vUv.y * frequency + time * 0.7;
548
+ float y = vUv.x * frequency + time * 0.3;
549
+ vUv.x += cos(x + y) * amplitude * cos(y);
550
+ vUv.y += sin(x - y) * amplitude * cos(y);
551
+ vec4 rgba = texture(inputBuffer, vUv);
552
+ outputColor = rgba;
553
+ }
554
+ `};class de extends W{constructor({blendFunction:t=23,factor:o=0}={}){super("WaterEffect",to.fragmentShader,{blendFunction:t,attributes:2,uniforms:/*@__PURE__*/new Map([["factor",new y(o)]])})}}const oo=/*@__PURE__*/P(de,{blendFunction:23}),ao=/*@__PURE__*/B(({halfRes:e,screenSpaceRadius:t,quality:o,depthAwareUpsampling:r=!0,aoRadius:a=5,aoSamples:n=16,denoiseSamples:i=4,denoiseRadius:s=12,distanceFalloff:l=1,intensity:p=1,color:_,renderMode:S=0},g)=>{const{camera:d,scene:m}=V(),v=z(()=>new ut(m,d),[d,m]);return L(()=>{Ce(v.configuration,{color:_,aoRadius:a,distanceFalloff:l,intensity:p,aoSamples:n,denoiseSamples:i,denoiseRadius:s,screenSpaceRadius:t,renderMode:S,halfRes:e,depthAwareUpsampling:r})},[t,_,a,l,p,n,i,s,S,e,r,v]),L(()=>{o&&v.setQualityMode(o.charAt(0).toUpperCase()+o.slice(1))},[v,o]),/*@__PURE__*/w("primitive",{ref:g,object:v})});export{eo as ASCII,ht as Autofocus,wt as Bloom,St as BrightnessContrast,yt as ChromaticAberration,Pt as ColorAverage,bt as ColorDepth,Et as Depth,ce as DepthOfField,Rt as DotScreen,dt as EffectComposer,D as EffectComposerContext,Nt as FXAA,Ut as Glitch,Ct as GodRays,zt as Grid,Tt as HueSaturation,Zt as LUT,gt as LensFlare,fe as LensFlareEffect,ao as N8AO,At as Noise,Bt as Outline,Vt as Pixelation,Ot as Ramp,pe as RampEffect,ue as RampType,Lt as SMAA,It as SSAO,Ft as Scanline,mt as Select,pt as Selection,kt as SelectiveBloom,Gt as Sepia,Ht as ShockWave,Wt as Texture,$t as TiltShift,Yt as TiltShift2,me as TiltShiftEffect,Xt as ToneMapping,qt as Vignette,oo as WaterEffect,de as WaterEffectImpl,k as resolveRef,H as selectionContext,Z as useVector2,P as wrapEffect};
555
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/Selection.tsx","../src/EffectComposer.tsx","../src/util.tsx","../src/effects/DepthOfField.tsx","../src/effects/Autofocus.tsx","../src/effects/LensFlare.tsx","../src/effects/Bloom.tsx","../src/effects/BrightnessContrast.tsx","../src/effects/ChromaticAberration.tsx","../src/effects/ColorAverage.tsx","../src/effects/ColorDepth.tsx","../src/effects/Depth.tsx","../src/effects/DotScreen.tsx","../src/effects/Glitch.tsx","../src/effects/GodRays.tsx","../src/effects/Grid.tsx","../src/effects/HueSaturation.tsx","../src/effects/Noise.tsx","../src/effects/Outline.tsx","../src/effects/Pixelation.tsx","../src/effects/ScanlineEffect.tsx","../src/effects/SelectiveBloom.tsx","../src/effects/Sepia.tsx","../src/effects/SSAO.tsx","../src/effects/SMAA.tsx","../src/effects/FXAA.tsx","../src/effects/Ramp.tsx","../src/effects/Texture.tsx","../src/effects/ToneMapping.tsx","../src/effects/Vignette.tsx","../src/effects/ShockWave.tsx","../src/effects/LUT.tsx","../src/effects/TiltShift.tsx","../src/effects/TiltShift2.tsx","../src/effects/ASCII.tsx","../src/effects/Water.tsx","../src/effects/N8AO.tsx"],"sourcesContent":null,"names":["selectionContext","Selection","children","enabled","selected","select","useState","value","useMemo","Select","props","group","useRef","api","useContext","useEffect","changed","current","o","state","t","e","EffectComposerContext","re","n","effect","Tt","memo","forwardRef","_camera","_scene","resolutionScale","renderPriority","autoClear","depthBuffer","enableNormalPass","stencilBuffer","multisampling","frameBufferType","HalfFloatType","ref","gl","defaultScene","defaultCamera","size","useThree","scene","camera","composer","normalPass","downSamplingPass","effectComposer","EffectComposerImpl","RenderPass","normalPass2","NormalPass","DepthDownsamplingPass","useFrame","_","delta","currentAutoClear","useLayoutEffect","passes","groupInstance","i","child","Effect","effects","isConvolution","next","pass","EffectPass","Pass","currentTonemapping","NoToneMapping","useImperativeHandle","S","F","jsx","I","resolveRef","components","defaults","opacity","Component","key","extend","args","React","blendFunction","useVector2","THREE","DepthOfField","worldFocusDistance","worldFocusRange","focusDistance","focusRange","focalLength","bokehScale","resolutionX","resolutionY","width","height","target","depthTexture","autoFocus","DepthOfFieldEffect","effect2","Vector3","maskPass","MaskFunction","v","Autofocus","followMouse","debug","manual","smoothTime","fref","dofRef","hitpointRef","targetRef","pointer","depthPickingPass","DepthPickingPass","copyPass","CopyPass","hitpoint","ndc","getHit","useCallback","x","y","update","updateTarget","hit","easing","jsxs","Fragment","createPortal","f","c","a","LensFlareShader","LensFlareEffect","glareSize","lensPosition","screenRes","starPoints","flareSize","flareSpeed","flareShape","animated","anamorphic","colorGain","lensDirtTexture","haloScale","secondaryGhosts","aditionalStreaks","ghostScale","starBurst","_renderer","_inputBuffer","deltaTime","time","LensFlareWrapped","Bt","viewport","raycaster","raycasterPos","projectedPosition","uLensPosition","uOpacity","intersects","object","screenRes2","Bloom","BrightnessContrast","Rt","ChromaticAberration","ChromaticAberrationEffect","ColorAverageEffect","ColorDepth","ColorDepthEffect","kt","Depth","DotScreenEffect","active","r","invalidate","delay","duration","strength","chromaticAberrationOffset","GlitchEffect","GlitchMode","GodRays","D","GodRaysEffect","Grid","GridEffect","HueSaturation","Xt","wrapEffect","NoiseEffect","Ht","selection","selectionLayer","patternTexture","edgeStrength","pulseSpeed","visibleEdgeColor","hiddenEdgeColor","kernelSize","blur","xRay","OutlineEffect","l","Pixelation","granularity","PixelationEffect","Scanline","addLight","light","removeLight","SelectiveBloom","lights","inverted","ignoreBackground","luminanceThreshold","luminanceSmoothing","intensity","mipmapBlur","SelectiveBloomEffect","Sepia","SepiaEffect","Jt","SSAO","SSAOEffect","SMAA","SMAAEffect","Yt","FXAA","RampType","RampType2","RampEffect","rampType","rampStart","rampEnd","startColor","endColor","rampBias","rampGain","rampMask","rampInvert","params","RampShader","Uniform","Ramp","to","useLoader","TextureLoader","textureSrc","SRGBColorSpace","RepeatWrapping","TextureEffect","texture","ToneMapping","ro","VignetteEffect","ShockWave","LUT3DEffect","lut","tetrahedralInterpolation","TiltShift","A","nt","TiltShiftEffect","xt","taper","start","end","samples","direction","TiltShiftShader","TiltShift2","gt","ASCIIEffect","font","characters","fontSize","cellSize","color","invert","uniforms","Texture","Color","fragment","charactersTextureUniform","canvas","SIZE","MAX_PER_ROW","CELL","CanvasTexture","NearestFilter","context","char","ASCII","WaterShader","WaterEffectImpl","factor","P","WaterEffect","N8AO","halfRes","screenSpaceRadius","quality","depthAwareUpsampling","aoRadius","aoSamples","denoiseSamples","denoiseRadius","distanceFalloff","renderMode","N8AOPostPass","applyProps","m"],"mappings":"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"}