@tresjs/post-processing 2.3.0 → 2.4.0

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.
@@ -1,28 +1,28 @@
1
1
  /**
2
2
  * name: @tresjs/post-processing
3
- * version: v2.3.0
3
+ * version: v2.4.0
4
4
  * (c) 2025
5
5
  * description: Post-processing library for TresJS
6
6
  * author: Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)
7
7
  */
8
- import { defineComponent as u, shallowRef as W, provide as Be, computed as O, watch as S, onUnmounted as U, renderSlot as Ne, inject as te, watchEffect as x, nextTick as oe, toRaw as ie } from "vue";
9
- import { EffectComposer as ne, RenderPass as Ie, NormalPass as je, DepthDownsamplingPass as Ve, EffectPass as Ye, BloomEffect as le, DepthOfFieldEffect as ue, GlitchEffect as X, GlitchMode as ke, NoiseEffect as ce, OutlineEffect as de, PixelationEffect as fe, VignetteEffect as he, Effect as q, BlendFunction as Q, ToneMappingEffect as pe, ChromaticAberrationEffect as K, HueSaturationEffect as me, ScanlineEffect as J, ColorAverageEffect as Z, LensDistortionEffect as ge, ShockWaveEffect as ve, TiltShiftEffect as xe, DotScreenEffect as be, SepiaEffect as Se, DepthPickingPass as qe, GodRaysEffect as _, ColorDepthEffect as I, GridEffect as we, BrightnessContrastEffect as Ae } from "postprocessing";
10
- import { useTresContext as y, useLoop as G, normalizeColor as $ } from "@tresjs/core";
11
- import { HalfFloatType as T, Uniform as M, Vector2 as d, Vector3 as L, OrthographicCamera as Qe, BufferGeometry as Ke, Float32BufferAttribute as ye, Mesh as Je, ShaderMaterial as A, UniformsUtils as P, WebGLRenderTarget as D, NoBlending as Ze, Clock as _e, Color as k, MathUtils as w, DataTexture as $e, RedFormat as et, FloatType as tt, MeshNormalMaterial as ot, NearestFilter as F, DepthTexture as st, Vector4 as at, RawShaderMaterial as rt, ColorManagement as it, SRGBTransfer as nt, LinearToneMapping as lt, ReinhardToneMapping as ut, CineonToneMapping as ct, ACESFilmicToneMapping as dt, AgXToneMapping as ft, NeutralToneMapping as ht, CustomToneMapping as pt, Texture as Me, LinearFilter as mt, AdditiveBlending as gt, MeshBasicMaterial as vt } from "three";
12
- import { useDevicePixelRatio as ze } from "@vueuse/core";
13
- class Te {
8
+ import { defineComponent as u, shallowRef as H, provide as He, computed as O, watch as g, onUnmounted as W, renderSlot as Ie, inject as J, watchEffect as w, nextTick as ce, toRaw as fe } from "vue";
9
+ import { EffectComposer as he, RenderPass as Je, NormalPass as Ze, DepthDownsamplingPass as _e, EffectPass as Xe, BloomEffect as pe, DepthOfFieldEffect as me, GlitchEffect as j, GlitchMode as $e, NoiseEffect as ve, OutlineEffect as ge, PixelationEffect as xe, VignetteEffect as be, Effect as Z, BlendFunction as _, ToneMappingEffect as Se, ChromaticAberrationEffect as ee, HueSaturationEffect as we, ScanlineEffect as te, ColorAverageEffect as oe, LensDistortionEffect as Ae, ShockWaveEffect as ye, TiltShiftEffect as Me, DotScreenEffect as Te, SepiaEffect as Ce, DepthPickingPass as et, GodRaysEffect as se, ColorDepthEffect as V, GridEffect as Ee, BrightnessContrastEffect as Pe, SMAAEffect as ae, TextureEffect as q, FXAAEffect as re, ASCIIEffect as ne, ASCIITexture as tt } from "postprocessing";
10
+ import { useTresContext as y, useLoop as I, normalizeColor as ie } from "@tresjs/core";
11
+ import { HalfFloatType as P, Uniform as C, Vector2 as f, Vector3 as B, Mesh as je, SphereGeometry as ot, MeshBasicMaterial as Ve, OrthographicCamera as st, BufferGeometry as at, Float32BufferAttribute as De, ShaderMaterial as T, UniformsUtils as L, WebGLRenderTarget as F, NoBlending as rt, Clock as nt, Color as K, MathUtils as M, DataTexture as it, RedFormat as lt, FloatType as ut, MeshNormalMaterial as ct, NearestFilter as N, DepthTexture as dt, Vector4 as ft, RawShaderMaterial as ht, ColorManagement as pt, SRGBTransfer as mt, LinearToneMapping as vt, ReinhardToneMapping as gt, CineonToneMapping as xt, ACESFilmicToneMapping as bt, AgXToneMapping as St, NeutralToneMapping as wt, CustomToneMapping as At, Texture as Le, LinearFilter as yt, AdditiveBlending as Mt } from "three";
12
+ import { useDevicePixelRatio as Ye } from "@vueuse/core";
13
+ class Fe {
14
14
  static isWebGL2Available() {
15
15
  try {
16
- const e = document.createElement("canvas");
17
- return !!(window.WebGL2RenderingContext && e.getContext("webgl2"));
16
+ const t = document.createElement("canvas");
17
+ return !!(window.WebGL2RenderingContext && t.getContext("webgl2"));
18
18
  } catch {
19
19
  return !1;
20
20
  }
21
21
  }
22
- static isColorSpaceAvailable(e) {
22
+ static isColorSpaceAvailable(t) {
23
23
  try {
24
- const t = document.createElement("canvas"), o = window.WebGL2RenderingContext && t.getContext("webgl2");
25
- return o.drawingBufferColorSpace = e, o.drawingBufferColorSpace === e;
24
+ const e = document.createElement("canvas"), o = window.WebGL2RenderingContext && e.getContext("webgl2");
25
+ return o.drawingBufferColorSpace = t, o.drawingBufferColorSpace === t;
26
26
  } catch {
27
27
  return !1;
28
28
  }
@@ -30,8 +30,8 @@ class Te {
30
30
  static getWebGL2ErrorMessage() {
31
31
  return this.getErrorMessage(2);
32
32
  }
33
- static getErrorMessage(e) {
34
- const t = {
33
+ static getErrorMessage(t) {
34
+ const e = {
35
35
  1: "WebGL",
36
36
  2: "WebGL 2"
37
37
  }, o = {
@@ -40,14 +40,14 @@ class Te {
40
40
  };
41
41
  let s = 'Your $0 does not seem to support <a href="http://khronos.org/webgl/wiki/Getting_a_WebGL_Implementation" style="color:#000">$1</a>';
42
42
  const a = document.createElement("div");
43
- return a.id = "webglmessage", a.style.fontFamily = "monospace", a.style.fontSize = "13px", a.style.fontWeight = "normal", a.style.textAlign = "center", a.style.background = "#fff", a.style.color = "#000", a.style.padding = "1.5em", a.style.width = "400px", a.style.margin = "5em auto 0", o[e] ? s = s.replace("$0", "graphics card") : s = s.replace("$0", "browser"), s = s.replace("$1", t[e]), a.innerHTML = s, a;
43
+ return a.id = "webglmessage", a.style.fontFamily = "monospace", a.style.fontSize = "13px", a.style.fontWeight = "normal", a.style.textAlign = "center", a.style.background = "#fff", a.style.color = "#000", a.style.padding = "1.5em", a.style.width = "400px", a.style.margin = "5em auto 0", o[t] ? s = s.replace("$0", "graphics card") : s = s.replace("$0", "browser"), s = s.replace("$1", e[t]), a.innerHTML = s, a;
44
44
  }
45
45
  // @deprecated, r168
46
46
  static isWebGLAvailable() {
47
47
  console.warn("isWebGLAvailable() has been deprecated and will be removed in r178. Use isWebGL2Available() instead.");
48
48
  try {
49
- const e = document.createElement("canvas");
50
- return !!(window.WebGLRenderingContext && (e.getContext("webgl") || e.getContext("experimental-webgl")));
49
+ const t = document.createElement("canvas");
50
+ return !!(window.WebGLRenderingContext && (t.getContext("webgl") || t.getContext("experimental-webgl")));
51
51
  } catch {
52
52
  return !1;
53
53
  }
@@ -56,7 +56,7 @@ class Te {
56
56
  return console.warn("getWebGLErrorMessage() has been deprecated and will be removed in r178. Use getWebGL2ErrorMessage() instead."), this.getErrorMessage(1);
57
57
  }
58
58
  }
59
- const se = Symbol("effectComposerPmndrs"), Ut = /* @__PURE__ */ u({
59
+ const $ = Symbol("effectComposerPmndrs"), Yt = /* @__PURE__ */ u({
60
60
  __name: "EffectComposerPmndrs",
61
61
  props: {
62
62
  enabled: { type: Boolean, default: !0 },
@@ -66,109 +66,109 @@ const se = Symbol("effectComposerPmndrs"), Ut = /* @__PURE__ */ u({
66
66
  resolutionScale: {},
67
67
  autoClear: { type: Boolean, default: !0 },
68
68
  multisampling: { default: 0 },
69
- frameBufferType: { default: T }
69
+ frameBufferType: { default: P }
70
70
  },
71
71
  emits: ["render"],
72
- setup(r, { expose: e, emit: t }) {
73
- const o = r, s = t, { scene: a, camera: i, renderer: n, sizes: l, render: p } = y(), f = W(null);
74
- let g = null, c = null;
75
- Be(se, f), e({ composer: f });
76
- const b = () => {
77
- f.value && (c = new je(a.value, i.value), c.enabled = !1, f.value.addPass(c), o.resolutionScale !== void 0 && Te.isWebGL2Available() && (g = new Ve({
72
+ setup(n, { expose: t, emit: e }) {
73
+ const o = n, s = e, { scene: a, camera: r, renderer: i, sizes: l, render: d } = y(), p = H(null);
74
+ let b = null, c = null;
75
+ He($, p), t({ composer: p });
76
+ const S = () => {
77
+ p.value && (c = new Ze(a.value, r.value), c.enabled = !1, p.value.addPass(c), o.resolutionScale !== void 0 && Fe.isWebGL2Available() && (b = new _e({
78
78
  normalBuffer: c.texture,
79
79
  resolutionScale: o.resolutionScale
80
- }), g.enabled = !1, f.value.addPass(g)));
81
- }, E = O(() => {
82
- const v = new ne(), z = {
83
- depthBuffer: o.depthBuffer !== void 0 ? o.depthBuffer : v.inputBuffer.depthBuffer,
84
- stencilBuffer: o.stencilBuffer !== void 0 ? o.stencilBuffer : v.inputBuffer.stencilBuffer,
85
- multisampling: Te.isWebGL2Available() ? o.multisampling !== void 0 ? o.multisampling : v.multisampling : 0,
86
- frameBufferType: o.frameBufferType !== void 0 ? o.frameBufferType : T
80
+ }), b.enabled = !1, p.value.addPass(b)));
81
+ }, m = O(() => {
82
+ const x = new he(), G = {
83
+ depthBuffer: o.depthBuffer !== void 0 ? o.depthBuffer : x.inputBuffer.depthBuffer,
84
+ stencilBuffer: o.stencilBuffer !== void 0 ? o.stencilBuffer : x.inputBuffer.stencilBuffer,
85
+ multisampling: Fe.isWebGL2Available() ? o.multisampling !== void 0 ? o.multisampling : x.multisampling : 0,
86
+ frameBufferType: o.frameBufferType !== void 0 ? o.frameBufferType : P
87
87
  };
88
- return v.dispose(), z;
89
- }), re = () => {
90
- var v;
91
- !n.value && !a.value && !i.value || ((v = f.value) == null || v.dispose(), f.value = new ne(n.value, E.value), f.value.addPass(new Ie(a.value, i.value)), o.disableNormalPass || b());
88
+ return x.dispose(), G;
89
+ }), A = () => {
90
+ var x;
91
+ !i.value && !a.value && !r.value || ((x = p.value) == null || x.dispose(), p.value = new he(i.value, m.value), p.value.addPass(new Je(a.value, r.value)), o.disableNormalPass || S());
92
92
  };
93
- S([n, a, i, () => o.disableNormalPass], () => {
94
- !l.width.value || !l.height.value || re();
95
- }), S(() => [l.width.value, l.height.value], ([v, z]) => {
96
- !v && !z || (f.value ? f.value.setSize(v, z) : re());
93
+ g([i, a, r, () => o.disableNormalPass], () => {
94
+ !l.width.value || !l.height.value || A();
95
+ }), g(() => [l.width.value, l.height.value], ([x, G]) => {
96
+ !x && !G || (p.value ? p.value.setSize(x, G) : A());
97
97
  }, {
98
98
  immediate: !0
99
99
  });
100
- const { render: Xe } = G();
101
- return Xe(() => {
102
- if (o.enabled && n.value && f.value && l.width.value && l.height.value && p.frames.value > 0) {
103
- const v = n.value.autoClear;
104
- n.value.autoClear = o.autoClear, o.stencilBuffer && !o.autoClear && n.value.clearStencil(), f.value.render(), s("render", f.value), n.value.autoClear = v;
100
+ const { render: E } = I();
101
+ return E(() => {
102
+ if (o.enabled && i.value && p.value && l.width.value && l.height.value && d.frames.value > 0) {
103
+ const x = i.value.autoClear;
104
+ i.value.autoClear = o.autoClear, o.stencilBuffer && !o.autoClear && i.value.clearStencil(), p.value.render(), s("render", p.value), i.value.autoClear = x;
105
105
  }
106
- p.frames.value = p.mode.value === "always" ? 1 : Math.max(0, p.frames.value - 1);
107
- }), U(() => {
108
- var v;
109
- (v = f.value) == null || v.dispose();
110
- }), (v, z) => Ne(v.$slots, "default");
111
- }
112
- }), h = (r, e, t) => {
113
- const o = te(se), s = W(null), a = W(null), { scene: i, camera: n, invalidate: l } = y();
114
- S(e, () => l());
115
- const p = () => {
116
- var c, b, E;
117
- s.value && ((c = o == null ? void 0 : o.value) == null || c.removePass(s.value)), (b = a.value) == null || b.dispose(), (E = s.value) == null || E.dispose();
118
- }, f = (c) => {
119
- !n.value || !(o != null && o.value) || !i.value || (a.value = r(), s.value = new Ye(n.value, a.value), o.value.addPass(s.value, c));
106
+ d.frames.value = d.mode.value === "always" ? 1 : Math.max(0, d.frames.value - 1);
107
+ }), W(() => {
108
+ var x;
109
+ (x = p.value) == null || x.dispose();
110
+ }), (x, G) => Ie(x.$slots, "default");
111
+ }
112
+ }), h = (n, t, e) => {
113
+ const o = J($), s = H(null), a = H(null), { scene: r, camera: i, invalidate: l } = y();
114
+ g(t, () => l());
115
+ const d = () => {
116
+ var c, S, m;
117
+ s.value && ((c = o == null ? void 0 : o.value) == null || c.removePass(s.value)), (S = a.value) == null || S.dispose(), (m = s.value) == null || m.dispose();
118
+ }, p = (c) => {
119
+ !i.value || !(o != null && o.value) || !r.value || (a.value = n(), s.value = new Xe(i.value, a.value), o.value.addPass(s.value, c));
120
120
  };
121
- t && S(
122
- () => t.map((c) => e[c]),
121
+ e && g(
122
+ () => e.map((c) => t[c]),
123
123
  () => {
124
- var b;
124
+ var S;
125
125
  if (!(o != null && o.value))
126
126
  return;
127
- const c = (b = o.value) == null ? void 0 : b.passes.findIndex((E) => E === s.value);
128
- ~c && (p(), f(c));
127
+ const c = (S = o.value) == null ? void 0 : S.passes.findIndex((m) => m === s.value);
128
+ ~c && (d(), p(c));
129
129
  }
130
- ), x(() => {
131
- !n.value || !(a != null && a.value) || (a.value.mainCamera = n.value);
130
+ ), w(() => {
131
+ !i.value || !(a != null && a.value) || (a.value.mainCamera = i.value);
132
132
  });
133
- const g = x(() => {
134
- !n.value || !(o != null && o.value) || !i.value || (oe(() => g()), !a.value && f());
133
+ const b = w(() => {
134
+ !i.value || !(o != null && o.value) || !r.value || (ce(() => b()), !a.value && p());
135
135
  });
136
- return U(() => {
137
- p();
136
+ return W(() => {
137
+ d();
138
138
  }), {
139
139
  pass: s,
140
140
  effect: a
141
141
  };
142
- }, We = /([^[.\]])+/g, xt = (r, e) => {
143
- if (!e)
142
+ }, ke = /([^[.\]])+/g, Tt = (n, t) => {
143
+ if (!t)
144
144
  return;
145
- const t = Array.isArray(e) ? e : e.match(We);
146
- return t == null ? void 0 : t.reduce((o, s) => o && o[s], r);
147
- }, Ce = (r, e, t) => {
148
- const o = Array.isArray(e) ? e : e.match(We);
149
- o && o.reduce((s, a, i) => (s[a] === void 0 && (s[a] = {}), i === o.length - 1 && (s[a] = t), s[a]), r);
150
- }, bt = (r, e) => {
151
- const t = { ...r };
152
- return e.forEach((o) => delete t[o]), t;
153
- }, H = (r, e, t, o, s = {}) => S(r, (a) => {
154
- var i;
155
- if (e.value)
145
+ const e = Array.isArray(t) ? t : t.match(ke);
146
+ return e == null ? void 0 : e.reduce((o, s) => o && o[s], n);
147
+ }, Oe = (n, t, e) => {
148
+ const o = Array.isArray(t) ? t : t.match(ke);
149
+ o && o.reduce((s, a, r) => (s[a] === void 0 && (s[a] = {}), r === o.length - 1 && (s[a] = e), s[a]), n);
150
+ }, Ct = (n, t) => {
151
+ const e = { ...n };
152
+ return t.forEach((o) => delete e[o]), e;
153
+ }, X = (n, t, e, o, s = {}) => g(n, (a) => {
154
+ var r;
155
+ if (t.value)
156
156
  if (a === void 0) {
157
- const n = o();
158
- Ce(e.value, t, xt(n, t)), (i = n.dispose) == null || i.call(n);
157
+ const i = o();
158
+ Oe(t.value, e, Tt(i, e)), (r = i.dispose) == null || r.call(i);
159
159
  } else
160
- Ce(e.value, t, r());
161
- }, s), m = (r, e, t) => r.map(([o, s]) => H(
160
+ Oe(t.value, e, n());
161
+ }, s), v = (n, t, e) => n.map(([o, s]) => X(
162
162
  o,
163
- e,
163
+ t,
164
164
  s,
165
- t
166
- )), ae = (r, e, t) => Object.keys(r).map((o) => H(
167
- () => r[o],
168
- e,
165
+ e
166
+ )), de = (n, t, e) => Object.keys(n).map((o) => X(
167
+ () => n[o],
168
+ t,
169
169
  o,
170
- t
171
- )), Gt = /* @__PURE__ */ u({
170
+ e
171
+ )), kt = /* @__PURE__ */ u({
172
172
  __name: "BloomPmndrs",
173
173
  props: {
174
174
  blendFunction: {},
@@ -178,22 +178,22 @@ const se = Symbol("effectComposerPmndrs"), Ut = /* @__PURE__ */ u({
178
178
  luminanceSmoothing: {},
179
179
  mipmapBlur: { type: Boolean, default: void 0 }
180
180
  },
181
- setup(r, { expose: e }) {
182
- const t = r, { pass: o, effect: s } = h(() => new le(t), t, ["mipmapBlur"]);
183
- return e({ pass: o, effect: s }), m(
181
+ setup(n, { expose: t }) {
182
+ const e = n, { pass: o, effect: s } = h(() => new pe(e), e, ["mipmapBlur"]);
183
+ return t({ pass: o, effect: s }), v(
184
184
  [
185
- [() => t.blendFunction, "blendMode.blendFunction"],
186
- [() => t.intensity, "intensity"],
187
- [() => t.kernelSize, "kernelSize"],
188
- [() => t.luminanceSmoothing, "luminanceMaterial.smoothing"],
189
- [() => t.luminanceThreshold, "luminanceMaterial.threshold"]
185
+ [() => e.blendFunction, "blendMode.blendFunction"],
186
+ [() => e.intensity, "intensity"],
187
+ [() => e.kernelSize, "kernelSize"],
188
+ [() => e.luminanceSmoothing, "luminanceMaterial.smoothing"],
189
+ [() => e.luminanceThreshold, "luminanceMaterial.threshold"]
190
190
  ],
191
191
  s,
192
- () => new le()
192
+ () => new pe()
193
193
  ), () => {
194
194
  };
195
195
  }
196
- }), Ht = /* @__PURE__ */ u({
196
+ }), qt = /* @__PURE__ */ u({
197
197
  __name: "DepthOfFieldPmndrs",
198
198
  props: {
199
199
  blendFunction: {},
@@ -206,26 +206,26 @@ const se = Symbol("effectComposerPmndrs"), Ut = /* @__PURE__ */ u({
206
206
  resolutionX: {},
207
207
  resolutionY: {}
208
208
  },
209
- setup(r, { expose: e }) {
210
- const t = r, { camera: o } = y(), { pass: s, effect: a } = h(() => new ue(o.value, t), t);
211
- return e({ pass: s, effect: a }), m(
209
+ setup(n, { expose: t }) {
210
+ const e = n, { camera: o } = y(), { pass: s, effect: a } = h(() => new me(o.value, e), e);
211
+ return t({ pass: s, effect: a }), v(
212
212
  [
213
- [() => t.blendFunction, "blendMode.blendFunction"],
214
- [() => t.worldFocusDistance, "circleOfConfusionMaterial.worldFocusDistance"],
215
- [() => t.focusDistance, "circleOfConfusionMaterial.focusDistance"],
216
- [() => t.worldFocusRange, "circleOfConfusionMaterial.worldFocusRange"],
217
- [() => t.focusRange, "circleOfConfusionMaterial.focusRange"],
218
- [() => t.bokehScale, "bokehScale"],
219
- [() => t.resolutionScale, "blurPass.resolution.scale"],
220
- [() => t.resolutionX, "resolution.width"],
221
- [() => t.resolutionY, "resolution.height"]
213
+ [() => e.blendFunction, "blendMode.blendFunction"],
214
+ [() => e.worldFocusDistance, "circleOfConfusionMaterial.worldFocusDistance"],
215
+ [() => e.focusDistance, "circleOfConfusionMaterial.focusDistance"],
216
+ [() => e.worldFocusRange, "circleOfConfusionMaterial.worldFocusRange"],
217
+ [() => e.focusRange, "circleOfConfusionMaterial.focusRange"],
218
+ [() => e.bokehScale, "bokehScale"],
219
+ [() => e.resolutionScale, "blurPass.resolution.scale"],
220
+ [() => e.resolutionX, "resolution.width"],
221
+ [() => e.resolutionY, "resolution.height"]
222
222
  ],
223
223
  a,
224
- () => new ue()
224
+ () => new me()
225
225
  ), () => {
226
226
  };
227
227
  }
228
- }), Xt = /* @__PURE__ */ u({
228
+ }), Qt = /* @__PURE__ */ u({
229
229
  __name: "GlitchPmndrs",
230
230
  props: {
231
231
  blendFunction: {},
@@ -240,51 +240,51 @@ const se = Symbol("effectComposerPmndrs"), Ut = /* @__PURE__ */ u({
240
240
  perturbationMap: {},
241
241
  dtSize: {}
242
242
  },
243
- setup(r, { expose: e }) {
244
- const t = r, { pass: o, effect: s } = h(() => new X(t), t, ["dtSize"]);
245
- e({ pass: o, effect: s });
246
- const { onBeforeRender: a } = G();
247
- return a(({ invalidate: i }) => i()), x(() => {
248
- const i = () => {
249
- if (t.mode !== void 0)
250
- return t.active === !1 ? ke.DISABLED : t.mode;
251
- const n = new X(), l = n.mode;
252
- return n.dispose(), l;
243
+ setup(n, { expose: t }) {
244
+ const e = n, { pass: o, effect: s } = h(() => new j(e), e, ["dtSize"]);
245
+ t({ pass: o, effect: s });
246
+ const { onBeforeRender: a } = I();
247
+ return a(({ invalidate: r }) => r()), w(() => {
248
+ const r = () => {
249
+ if (e.mode !== void 0)
250
+ return e.active === !1 ? $e.DISABLED : e.mode;
251
+ const i = new j(), l = i.mode;
252
+ return i.dispose(), l;
253
253
  };
254
- s.value && (s.value.mode = i());
255
- }), H(
256
- () => t.blendFunction,
254
+ s.value && (s.value.mode = r());
255
+ }), X(
256
+ () => e.blendFunction,
257
257
  s,
258
258
  "blendMode.blendFunction",
259
- () => new X()
260
- ), ae(
261
- bt(t, ["active", "blendFunction"]),
259
+ () => new j()
260
+ ), de(
261
+ Ct(e, ["active", "blendFunction"]),
262
262
  s,
263
- () => new X()
263
+ () => new j()
264
264
  ), () => {
265
265
  };
266
266
  }
267
- }), It = /* @__PURE__ */ u({
267
+ }), Kt = /* @__PURE__ */ u({
268
268
  __name: "NoisePmndrs",
269
269
  props: {
270
270
  premultiply: { type: Boolean, default: void 0 },
271
271
  blendFunction: {}
272
272
  },
273
- setup(r, { expose: e }) {
274
- const t = r, { pass: o, effect: s } = h(() => new ce(t), t);
275
- e({ pass: o, effect: s });
276
- const { onBeforeRender: a } = G();
277
- return a(({ invalidate: i }) => i()), m(
273
+ setup(n, { expose: t }) {
274
+ const e = n, { pass: o, effect: s } = h(() => new ve(e), e);
275
+ t({ pass: o, effect: s });
276
+ const { onBeforeRender: a } = I();
277
+ return a(({ invalidate: r }) => r()), v(
278
278
  [
279
- [() => t.blendFunction, "blendMode.blendFunction"],
280
- [() => t.premultiply, "premultiply"]
279
+ [() => e.blendFunction, "blendMode.blendFunction"],
280
+ [() => e.premultiply, "premultiply"]
281
281
  ],
282
282
  s,
283
- () => new ce()
283
+ () => new ve()
284
284
  ), () => {
285
285
  };
286
286
  }
287
- }), jt = /* @__PURE__ */ u({
287
+ }), Jt = /* @__PURE__ */ u({
288
288
  __name: "OutlinePmndrs",
289
289
  props: {
290
290
  outlinedObjects: {},
@@ -303,83 +303,83 @@ const se = Symbol("effectComposerPmndrs"), Ut = /* @__PURE__ */ u({
303
303
  hiddenEdgeColor: {},
304
304
  visibleEdgeColor: {}
305
305
  },
306
- setup(r, { expose: e }) {
307
- const t = r, o = (p) => p !== void 0 ? $(p).getHex() : void 0, { camera: s, scene: a } = y(), { pass: i, effect: n } = h(
308
- () => new de(
306
+ setup(n, { expose: t }) {
307
+ const e = n, o = (d) => d !== void 0 ? ie(d).getHex() : void 0, { camera: s, scene: a } = y(), { pass: r, effect: i } = h(
308
+ () => new ge(
309
309
  a.value,
310
310
  s.value,
311
311
  {
312
- blur: t.blur,
313
- xRay: t.xRay,
314
- kernelSize: t.kernelSize,
315
- pulseSpeed: t.pulseSpeed,
316
- resolutionX: t.resolutionX,
317
- resolutionY: t.resolutionY,
318
- patternScale: t.patternScale,
319
- edgeStrength: t.edgeStrength,
320
- blendFunction: t.blendFunction,
321
- multisampling: t.multisampling,
322
- patternTexture: t.patternTexture,
323
- resolutionScale: t.resolutionScale,
324
- hiddenEdgeColor: o(t.hiddenEdgeColor),
325
- visibleEdgeColor: o(t.visibleEdgeColor)
312
+ blur: e.blur,
313
+ xRay: e.xRay,
314
+ kernelSize: e.kernelSize,
315
+ pulseSpeed: e.pulseSpeed,
316
+ resolutionX: e.resolutionX,
317
+ resolutionY: e.resolutionY,
318
+ patternScale: e.patternScale,
319
+ edgeStrength: e.edgeStrength,
320
+ blendFunction: e.blendFunction,
321
+ multisampling: e.multisampling,
322
+ patternTexture: e.patternTexture,
323
+ resolutionScale: e.resolutionScale,
324
+ hiddenEdgeColor: o(e.hiddenEdgeColor),
325
+ visibleEdgeColor: o(e.visibleEdgeColor)
326
326
  // width and height are explicitly omitted, because they are deprecated in postprocessing's OutlineEffect
327
327
  }
328
328
  ),
329
- t
329
+ e
330
330
  );
331
- e({ pass: i, effect: n }), S(
332
- [() => t.outlinedObjects, n],
331
+ t({ pass: r, effect: i }), g(
332
+ [() => e.outlinedObjects, i],
333
333
  // watchEffect is intentionally not used here as it would result in an endless loop
334
334
  () => {
335
- var p;
336
- (p = n.value) == null || p.selection.set(t.outlinedObjects || []);
335
+ var d;
336
+ (d = i.value) == null || d.selection.set(e.outlinedObjects || []);
337
337
  },
338
338
  {
339
339
  immediate: !0
340
340
  }
341
341
  );
342
342
  const l = O(() => ({
343
- hiddenEdgeColor: t.hiddenEdgeColor ? $(t.hiddenEdgeColor) : void 0,
344
- visibleEdgeColor: t.visibleEdgeColor ? $(t.visibleEdgeColor) : void 0
343
+ hiddenEdgeColor: e.hiddenEdgeColor ? ie(e.hiddenEdgeColor) : void 0,
344
+ visibleEdgeColor: e.visibleEdgeColor ? ie(e.visibleEdgeColor) : void 0
345
345
  }));
346
- return m(
346
+ return v(
347
347
  [
348
- [() => t.blendFunction, "blendMode.blendFunction"],
349
- [() => t.blur, "blur"],
350
- [() => t.xRay, "xRay"],
351
- [() => t.pulseSpeed, "pulseSpeed"],
352
- [() => t.kernelSize, "kernelSize"],
353
- [() => t.edgeStrength, "edgeStrength"],
354
- [() => t.patternScale, "patternScale"],
355
- [() => t.multisampling, "multisampling"],
356
- [() => t.resolutionX, "resolution.width"],
357
- [() => t.resolutionY, "resolution.height"],
358
- [() => t.patternTexture, "patternTexture"],
359
- [() => t.resolutionScale, "resolution.scale"],
348
+ [() => e.blendFunction, "blendMode.blendFunction"],
349
+ [() => e.blur, "blur"],
350
+ [() => e.xRay, "xRay"],
351
+ [() => e.pulseSpeed, "pulseSpeed"],
352
+ [() => e.kernelSize, "kernelSize"],
353
+ [() => e.edgeStrength, "edgeStrength"],
354
+ [() => e.patternScale, "patternScale"],
355
+ [() => e.multisampling, "multisampling"],
356
+ [() => e.resolutionX, "resolution.width"],
357
+ [() => e.resolutionY, "resolution.height"],
358
+ [() => e.patternTexture, "patternTexture"],
359
+ [() => e.resolutionScale, "resolution.scale"],
360
360
  [() => l.value.hiddenEdgeColor, "hiddenEdgeColor"],
361
361
  [() => l.value.visibleEdgeColor, "visibleEdgeColor"]
362
362
  ],
363
- n,
364
- () => new de()
363
+ i,
364
+ () => new ge()
365
365
  ), () => {
366
366
  };
367
367
  }
368
- }), Vt = /* @__PURE__ */ u({
368
+ }), Zt = /* @__PURE__ */ u({
369
369
  __name: "PixelationPmndrs",
370
370
  props: {
371
371
  granularity: {}
372
372
  },
373
- setup(r, { expose: e }) {
374
- const t = r, { pass: o, effect: s } = h(() => new fe(t.granularity), t);
375
- return e({ pass: o, effect: s }), ae(
376
- t,
373
+ setup(n, { expose: t }) {
374
+ const e = n, { pass: o, effect: s } = h(() => new xe(e.granularity), e);
375
+ return t({ pass: o, effect: s }), de(
376
+ e,
377
377
  s,
378
- () => new fe()
378
+ () => new xe()
379
379
  ), () => {
380
380
  };
381
381
  }
382
- }), Yt = /* @__PURE__ */ u({
382
+ }), _t = /* @__PURE__ */ u({
383
383
  __name: "VignettePmndrs",
384
384
  props: {
385
385
  technique: {},
@@ -387,22 +387,22 @@ const se = Symbol("effectComposerPmndrs"), Ut = /* @__PURE__ */ u({
387
387
  offset: {},
388
388
  darkness: {}
389
389
  },
390
- setup(r, { expose: e }) {
391
- const t = r, { pass: o, effect: s } = h(() => new he(t), t);
392
- return e({ pass: o, effect: s }), m(
390
+ setup(n, { expose: t }) {
391
+ const e = n, { pass: o, effect: s } = h(() => new be(e), e);
392
+ return t({ pass: o, effect: s }), v(
393
393
  [
394
- [() => t.blendFunction, "blendMode.blendFunction"],
395
- [() => t.offset, "offset"],
396
- [() => t.darkness, "darkness"],
397
- [() => t.technique, "technique"]
394
+ [() => e.blendFunction, "blendMode.blendFunction"],
395
+ [() => e.offset, "offset"],
396
+ [() => e.darkness, "darkness"],
397
+ [() => e.technique, "technique"]
398
398
  ],
399
399
  s,
400
- () => new he()
400
+ () => new be()
401
401
  ), () => {
402
402
  };
403
403
  }
404
404
  });
405
- class Ee extends q {
405
+ class Be extends Z {
406
406
  /**
407
407
  * Creates a new BarrelBlurEffect instance.
408
408
  *
@@ -412,7 +412,7 @@ class Ee extends q {
412
412
  * @param {Vector2} [options.offset] - Offset of the barrel distortion center (0 to 1 for both x and y). This allows you to change the position of the distortion effect.
413
413
  *
414
414
  */
415
- constructor({ blendFunction: e = Q.NORMAL, amount: t = 0.15, offset: o = new d(0.5, 0.5) } = {}) {
415
+ constructor({ blendFunction: t = _.NORMAL, amount: e = 0.15, offset: o = new f(0.5, 0.5) } = {}) {
416
416
  super("BarrelBlurEffect", `
417
417
  uniform float amount;
418
418
  uniform vec2 offset;
@@ -458,11 +458,11 @@ class Ee extends q {
458
458
  outputColor = vec4(outcol, inputColor.a); // Preserves original alpha
459
459
  }
460
460
  `, {
461
- blendFunction: e,
461
+ blendFunction: t,
462
462
  uniforms: /* @__PURE__ */ new Map([
463
- ["amount", new M(t)],
463
+ ["amount", new C(e)],
464
464
  // Uniform controlling the intensity of distortion
465
- ["offset", new M(o)]
465
+ ["offset", new C(o)]
466
466
  // Uniform controlling the offset of distortion
467
467
  ])
468
468
  });
@@ -473,11 +473,11 @@ class Ee extends q {
473
473
  * @type {number}
474
474
  */
475
475
  get amount() {
476
- var e;
477
- return (e = this.uniforms.get("amount")) == null ? void 0 : e.value;
476
+ var t;
477
+ return (t = this.uniforms.get("amount")) == null ? void 0 : t.value;
478
478
  }
479
- set amount(e) {
480
- this.uniforms.get("amount").value = e;
479
+ set amount(t) {
480
+ this.uniforms.get("amount").value = t;
481
481
  }
482
482
  /**
483
483
  * The offset.
@@ -485,40 +485,40 @@ class Ee extends q {
485
485
  * @type {Vector2}
486
486
  */
487
487
  get offset() {
488
- var e;
489
- return (e = this.uniforms.get("offset")) == null ? void 0 : e.value;
488
+ var t;
489
+ return (t = this.uniforms.get("offset")) == null ? void 0 : t.value;
490
490
  }
491
- set offset(e) {
492
- this.uniforms.get("offset").value = e;
491
+ set offset(t) {
492
+ this.uniforms.get("offset").value = t;
493
493
  }
494
494
  }
495
- const kt = /* @__PURE__ */ u({
495
+ const $t = /* @__PURE__ */ u({
496
496
  __name: "BarrelBlurPmndrs",
497
497
  props: {
498
498
  blendFunction: {},
499
499
  amount: {},
500
500
  offset: {}
501
501
  },
502
- setup(r, { expose: e }) {
503
- const t = r, { pass: o, effect: s } = h(
504
- () => new Ee({
505
- ...t,
506
- offset: Array.isArray(t.offset) ? new d(...t.offset) : t.offset
502
+ setup(n, { expose: t }) {
503
+ const e = n, { pass: o, effect: s } = h(
504
+ () => new Be({
505
+ ...e,
506
+ offset: Array.isArray(e.offset) ? new f(...e.offset) : e.offset
507
507
  }),
508
- t
508
+ e
509
509
  );
510
- return e({ pass: o, effect: s }), m(
510
+ return t({ pass: o, effect: s }), v(
511
511
  [
512
- [() => t.blendFunction, "blendMode.blendFunction"],
513
- [() => t.amount, "amount"],
514
- [() => t.offset, "offset"]
512
+ [() => e.blendFunction, "blendMode.blendFunction"],
513
+ [() => e.amount, "amount"],
514
+ [() => e.offset, "offset"]
515
515
  ],
516
516
  s,
517
- () => new Ee()
517
+ () => new Be()
518
518
  ), () => {
519
519
  };
520
520
  }
521
- }), qt = /* @__PURE__ */ u({
521
+ }), eo = /* @__PURE__ */ u({
522
522
  __name: "ToneMappingPmndrs",
523
523
  props: {
524
524
  mode: {},
@@ -529,24 +529,24 @@ const kt = /* @__PURE__ */ u({
529
529
  minLuminance: {},
530
530
  whitePoint: {}
531
531
  },
532
- setup(r, { expose: e }) {
533
- const t = r, { pass: o, effect: s } = h(() => new pe(t), t);
534
- return e({ pass: o, effect: s }), m(
532
+ setup(n, { expose: t }) {
533
+ const e = n, { pass: o, effect: s } = h(() => new Se(e), e);
534
+ return t({ pass: o, effect: s }), v(
535
535
  [
536
- [() => t.mode, "mode"],
537
- [() => t.blendFunction, "blendMode.blendFunction"],
538
- [() => t.resolution, "resolution"],
539
- [() => t.averageLuminance, "averageLuminance"],
540
- [() => t.middleGrey, "middleGrey"],
541
- [() => t.minLuminance, "adaptiveLuminanceMaterial.minLuminance"],
542
- [() => t.whitePoint, "whitePoint"]
536
+ [() => e.mode, "mode"],
537
+ [() => e.blendFunction, "blendMode.blendFunction"],
538
+ [() => e.resolution, "resolution"],
539
+ [() => e.averageLuminance, "averageLuminance"],
540
+ [() => e.middleGrey, "middleGrey"],
541
+ [() => e.minLuminance, "adaptiveLuminanceMaterial.minLuminance"],
542
+ [() => e.whitePoint, "whitePoint"]
543
543
  ],
544
544
  s,
545
- () => new pe()
545
+ () => new Se()
546
546
  ), () => {
547
547
  };
548
548
  }
549
- }), Qt = /* @__PURE__ */ u({
549
+ }), to = /* @__PURE__ */ u({
550
550
  __name: "ChromaticAberrationPmndrs",
551
551
  props: {
552
552
  blendFunction: {},
@@ -554,47 +554,47 @@ const kt = /* @__PURE__ */ u({
554
554
  radialModulation: { type: Boolean, default: void 0 },
555
555
  modulationOffset: {}
556
556
  },
557
- setup(r, { expose: e }) {
558
- const t = r, o = new K(), { pass: s, effect: a } = h(() => new K({
559
- ...t,
557
+ setup(n, { expose: t }) {
558
+ const e = n, o = new ee(), { pass: s, effect: a } = h(() => new ee({
559
+ ...e,
560
560
  // Unfortunately, these defaults must be set this way as the type in postprocessing is not correct.
561
561
  // The arguments are optional in the actual constructor, but not in the type.
562
- radialModulation: t.radialModulation ?? o.radialModulation,
563
- modulationOffset: t.modulationOffset ?? o.modulationOffset
564
- }), t);
565
- return o.dispose(), e({ pass: s, effect: a }), m(
562
+ radialModulation: e.radialModulation ?? o.radialModulation,
563
+ modulationOffset: e.modulationOffset ?? o.modulationOffset
564
+ }), e);
565
+ return o.dispose(), t({ pass: s, effect: a }), v(
566
566
  [
567
- [() => t.blendFunction, "blendMode.blendFunction"],
568
- [() => t.offset, "offset"],
569
- [() => t.radialModulation, "radialModulation"],
570
- [() => t.modulationOffset, "modulationOffset"]
567
+ [() => e.blendFunction, "blendMode.blendFunction"],
568
+ [() => e.offset, "offset"],
569
+ [() => e.radialModulation, "radialModulation"],
570
+ [() => e.modulationOffset, "modulationOffset"]
571
571
  ],
572
572
  a,
573
- () => new K()
573
+ () => new ee()
574
574
  ), () => {
575
575
  };
576
576
  }
577
- }), Kt = /* @__PURE__ */ u({
577
+ }), oo = /* @__PURE__ */ u({
578
578
  __name: "HueSaturationPmndrs",
579
579
  props: {
580
580
  saturation: {},
581
581
  hue: {},
582
582
  blendFunction: {}
583
583
  },
584
- setup(r, { expose: e }) {
585
- const t = r, { pass: o, effect: s } = h(() => new me(t), t);
586
- return e({ pass: o, effect: s }), m(
584
+ setup(n, { expose: t }) {
585
+ const e = n, { pass: o, effect: s } = h(() => new we(e), e);
586
+ return t({ pass: o, effect: s }), v(
587
587
  [
588
- [() => t.blendFunction, "blendMode.blendFunction"],
589
- [() => t.hue, "hue"],
590
- [() => t.saturation, "saturation"]
588
+ [() => e.blendFunction, "blendMode.blendFunction"],
589
+ [() => e.hue, "hue"],
590
+ [() => e.saturation, "saturation"]
591
591
  ],
592
592
  s,
593
- () => new me()
593
+ () => new we()
594
594
  ), () => {
595
595
  };
596
596
  }
597
- }), Jt = /* @__PURE__ */ u({
597
+ }), so = /* @__PURE__ */ u({
598
598
  __name: "ScanlinePmndrs",
599
599
  props: {
600
600
  blendFunction: {},
@@ -602,25 +602,25 @@ const kt = /* @__PURE__ */ u({
602
602
  scrollSpeed: {},
603
603
  opacity: {}
604
604
  },
605
- setup(r, { expose: e }) {
606
- const t = r, { pass: o, effect: s } = h(() => new J(t), t);
607
- return e({ pass: o, effect: s }), m(
605
+ setup(n, { expose: t }) {
606
+ const e = n, { pass: o, effect: s } = h(() => new te(e), e);
607
+ return t({ pass: o, effect: s }), v(
608
608
  [
609
- [() => t.blendFunction, "blendMode.blendFunction"],
610
- [() => t.density, "density"],
611
- [() => t.scrollSpeed, "scrollSpeed"]
609
+ [() => e.blendFunction, "blendMode.blendFunction"],
610
+ [() => e.density, "density"],
611
+ [() => e.scrollSpeed, "scrollSpeed"]
612
612
  ],
613
613
  s,
614
- () => new J()
615
- ), S(
616
- [() => t.opacity],
614
+ () => new te()
615
+ ), g(
616
+ [() => e.opacity],
617
617
  () => {
618
- var a, i;
619
- if (t.opacity !== void 0)
620
- (a = s.value) == null || a.blendMode.setOpacity(t.opacity);
618
+ var a, r;
619
+ if (e.opacity !== void 0)
620
+ (a = s.value) == null || a.blendMode.setOpacity(e.opacity);
621
621
  else {
622
- const n = new J();
623
- (i = s.value) == null || i.blendMode.setOpacity(n.blendMode.getOpacity()), n.dispose();
622
+ const i = new te();
623
+ (r = s.value) == null || r.blendMode.setOpacity(i.blendMode.getOpacity()), i.dispose();
624
624
  }
625
625
  },
626
626
  {
@@ -629,7 +629,7 @@ const kt = /* @__PURE__ */ u({
629
629
  ), () => {
630
630
  };
631
631
  }
632
- }), St = `
632
+ }), Et = `
633
633
  uniform float radius;
634
634
  uniform int sectorCount;
635
635
 
@@ -726,7 +726,7 @@ void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor)
726
726
  outputColor = vec4(finalColor, inputColor.a);
727
727
  }
728
728
  `;
729
- class Pe extends q {
729
+ class Re extends Z {
730
730
  /**
731
731
  * Creates a new KuwaharaEffect instance.
732
732
  *
@@ -736,12 +736,12 @@ class Pe extends q {
736
736
  * @param {number} [options.sectorCount] - Number of sectors.
737
737
  *
738
738
  */
739
- constructor({ blendFunction: e = Q.NORMAL, radius: t = 1, sectorCount: o = 4 } = {}) {
740
- super("KuwaharaEffect", St, {
741
- blendFunction: e,
739
+ constructor({ blendFunction: t = _.NORMAL, radius: e = 1, sectorCount: o = 4 } = {}) {
740
+ super("KuwaharaEffect", Et, {
741
+ blendFunction: t,
742
742
  uniforms: /* @__PURE__ */ new Map([
743
- ["radius", new M(t)],
744
- ["sectorCount", new M(o)]
743
+ ["radius", new C(e)],
744
+ ["sectorCount", new C(o)]
745
745
  ])
746
746
  });
747
747
  }
@@ -751,11 +751,11 @@ class Pe extends q {
751
751
  * @type {number}
752
752
  */
753
753
  get radius() {
754
- var e;
755
- return (e = this.uniforms.get("radius")) == null ? void 0 : e.value;
754
+ var t;
755
+ return (t = this.uniforms.get("radius")) == null ? void 0 : t.value;
756
756
  }
757
- set radius(e) {
758
- this.uniforms.get("radius").value = e;
757
+ set radius(t) {
758
+ this.uniforms.get("radius").value = t;
759
759
  }
760
760
  /**
761
761
  * The sector count.
@@ -763,65 +763,65 @@ class Pe extends q {
763
763
  * @type {number}
764
764
  */
765
765
  get sectorCount() {
766
- var e;
767
- return (e = this.uniforms.get("sectorCount")) == null ? void 0 : e.value;
766
+ var t;
767
+ return (t = this.uniforms.get("sectorCount")) == null ? void 0 : t.value;
768
768
  }
769
- set sectorCount(e) {
770
- this.uniforms.get("sectorCount").value = e;
769
+ set sectorCount(t) {
770
+ this.uniforms.get("sectorCount").value = t;
771
771
  }
772
772
  }
773
- const Zt = /* @__PURE__ */ u({
773
+ const ao = /* @__PURE__ */ u({
774
774
  __name: "KuwaharaPmndrs",
775
775
  props: {
776
776
  blendFunction: {},
777
777
  radius: {},
778
778
  sectorCount: {}
779
779
  },
780
- setup(r, { expose: e }) {
781
- const t = r, { pass: o, effect: s } = h(
782
- () => new Pe(t),
783
- t
780
+ setup(n, { expose: t }) {
781
+ const e = n, { pass: o, effect: s } = h(
782
+ () => new Re(e),
783
+ e
784
784
  );
785
- return e({ pass: o, effect: s }), m(
785
+ return t({ pass: o, effect: s }), v(
786
786
  [
787
- [() => t.blendFunction, "blendMode.blendFunction"],
788
- [() => t.radius, "radius"],
789
- [() => t.sectorCount, "sectorCount"]
787
+ [() => e.blendFunction, "blendMode.blendFunction"],
788
+ [() => e.radius, "radius"],
789
+ [() => e.sectorCount, "sectorCount"]
790
790
  ],
791
791
  s,
792
- () => new Pe()
792
+ () => new Re()
793
793
  ), () => {
794
794
  };
795
795
  }
796
- }), _t = /* @__PURE__ */ u({
796
+ }), ro = /* @__PURE__ */ u({
797
797
  __name: "ColorAveragePmndrs",
798
798
  props: {
799
799
  blendFunction: {},
800
800
  opacity: {}
801
801
  },
802
- setup(r, { expose: e }) {
803
- const t = r, { pass: o, effect: s } = h(() => new Z(t.blendFunction), t);
804
- return e({ pass: o, effect: s }), H(
805
- () => t.blendFunction,
802
+ setup(n, { expose: t }) {
803
+ const e = n, { pass: o, effect: s } = h(() => new oe(e.blendFunction), e);
804
+ return t({ pass: o, effect: s }), X(
805
+ () => e.blendFunction,
806
806
  s,
807
807
  "blendMode.blendFunction",
808
- () => new Z()
809
- ), S(
810
- [s, () => t.opacity],
808
+ () => new oe()
809
+ ), g(
810
+ [s, () => e.opacity],
811
811
  () => {
812
- var a, i;
812
+ var a, r;
813
813
  if (s.value)
814
- if (t.opacity !== void 0)
815
- (a = s.value) == null || a.blendMode.setOpacity(t.opacity);
814
+ if (e.opacity !== void 0)
815
+ (a = s.value) == null || a.blendMode.setOpacity(e.opacity);
816
816
  else {
817
- const n = new Z();
818
- (i = s.value) == null || i.blendMode.setOpacity(n.blendMode.getOpacity()), n.dispose();
817
+ const i = new oe();
818
+ (r = s.value) == null || r.blendMode.setOpacity(i.blendMode.getOpacity()), i.dispose();
819
819
  }
820
820
  }
821
821
  ), () => {
822
822
  };
823
823
  }
824
- }), $t = /* @__PURE__ */ u({
824
+ }), no = /* @__PURE__ */ u({
825
825
  __name: "LensDistortionPmndrs",
826
826
  props: {
827
827
  distortion: {},
@@ -829,24 +829,24 @@ const Zt = /* @__PURE__ */ u({
829
829
  focalLength: {},
830
830
  skew: {}
831
831
  },
832
- setup(r, { expose: e }) {
833
- const t = r, { pass: o, effect: s } = h(
834
- () => new ge({
835
- ...t,
836
- distortion: t.distortion ? Array.isArray(t.distortion) ? new d(...t.distortion) : t.distortion : new d(),
837
- principalPoint: t.principalPoint ? Array.isArray(t.principalPoint) ? new d(...t.principalPoint) : t.principalPoint : new d(),
838
- focalLength: t.focalLength ? Array.isArray(t.focalLength) ? new d(...t.focalLength) : t.focalLength : new d()
832
+ setup(n, { expose: t }) {
833
+ const e = n, { pass: o, effect: s } = h(
834
+ () => new Ae({
835
+ ...e,
836
+ distortion: e.distortion ? Array.isArray(e.distortion) ? new f(...e.distortion) : e.distortion : new f(),
837
+ principalPoint: e.principalPoint ? Array.isArray(e.principalPoint) ? new f(...e.principalPoint) : e.principalPoint : new f(),
838
+ focalLength: e.focalLength ? Array.isArray(e.focalLength) ? new f(...e.focalLength) : e.focalLength : new f()
839
839
  }),
840
- t
840
+ e
841
841
  );
842
- return e({ pass: o, effect: s }), ae(
843
- t,
842
+ return t({ pass: o, effect: s }), de(
843
+ e,
844
844
  s,
845
- () => new ge()
845
+ () => new Ae()
846
846
  ), () => {
847
847
  };
848
848
  }
849
- }), eo = /* @__PURE__ */ u({
849
+ }), io = /* @__PURE__ */ u({
850
850
  __name: "ShockWavePmndrs",
851
851
  props: {
852
852
  position: {},
@@ -855,30 +855,30 @@ const Zt = /* @__PURE__ */ u({
855
855
  maxRadius: {},
856
856
  waveSize: {}
857
857
  },
858
- setup(r, { expose: e }) {
859
- const t = r, { camera: o } = y(), { pass: s, effect: a } = h(
860
- () => new ve(o.value, Array.isArray(t.position) ? new L(...t.position) : t.position, t),
861
- t
858
+ setup(n, { expose: t }) {
859
+ const e = n, { camera: o } = y(), { pass: s, effect: a } = h(
860
+ () => new ye(o.value, Array.isArray(e.position) ? new B(...e.position) : e.position, e),
861
+ e
862
862
  );
863
- return e({ pass: s, effect: a }), S(
864
- () => t.position,
865
- (i) => {
866
- a.value && (Array.isArray(i) ? a.value.position.set(...i) : i instanceof L && a.value.position.copy(i));
863
+ return t({ pass: s, effect: a }), g(
864
+ () => e.position,
865
+ (r) => {
866
+ a.value && (Array.isArray(r) ? a.value.position.set(...r) : r instanceof B && a.value.position.copy(r));
867
867
  },
868
868
  { immediate: !0 }
869
- ), m(
869
+ ), v(
870
870
  [
871
- [() => t.amplitude, "amplitude"],
872
- [() => t.waveSize, "waveSize"],
873
- [() => t.maxRadius, "maxRadius"],
874
- [() => t.speed, "speed"]
871
+ [() => e.amplitude, "amplitude"],
872
+ [() => e.waveSize, "waveSize"],
873
+ [() => e.maxRadius, "maxRadius"],
874
+ [() => e.speed, "speed"]
875
875
  ],
876
876
  a,
877
- () => new ve()
877
+ () => new ye()
878
878
  ), () => {
879
879
  };
880
880
  }
881
- }), to = /* @__PURE__ */ u({
881
+ }), lo = /* @__PURE__ */ u({
882
882
  __name: "TiltShiftPmndrs",
883
883
  props: {
884
884
  blendFunction: {},
@@ -891,73 +891,73 @@ const Zt = /* @__PURE__ */ u({
891
891
  resolutionX: {},
892
892
  resolutionY: {}
893
893
  },
894
- setup(r, { expose: e }) {
895
- const t = r, { pass: o, effect: s } = h(() => new xe(t), t);
896
- return e({ pass: o, effect: s }), m(
894
+ setup(n, { expose: t }) {
895
+ const e = n, { pass: o, effect: s } = h(() => new Me(e), e);
896
+ return t({ pass: o, effect: s }), v(
897
897
  [
898
- [() => t.blendFunction, "blendMode.blendFunction"],
899
- [() => t.offset, "offset"],
900
- [() => t.rotation, "rotation"],
901
- [() => t.focusArea, "focusArea"],
902
- [() => t.feather, "feather"],
903
- [() => t.kernelSize, "kernelSize"],
904
- [() => t.resolutionScale, "resolution.scale"],
905
- [() => t.resolutionX, "resolution.width"],
906
- [() => t.resolutionY, "resolution.height"]
898
+ [() => e.blendFunction, "blendMode.blendFunction"],
899
+ [() => e.offset, "offset"],
900
+ [() => e.rotation, "rotation"],
901
+ [() => e.focusArea, "focusArea"],
902
+ [() => e.feather, "feather"],
903
+ [() => e.kernelSize, "kernelSize"],
904
+ [() => e.resolutionScale, "resolution.scale"],
905
+ [() => e.resolutionX, "resolution.width"],
906
+ [() => e.resolutionY, "resolution.height"]
907
907
  ],
908
908
  s,
909
- () => new xe()
909
+ () => new Me()
910
910
  ), () => {
911
911
  };
912
912
  }
913
- }), oo = /* @__PURE__ */ u({
913
+ }), uo = /* @__PURE__ */ u({
914
914
  __name: "DotScreenPmndrs",
915
915
  props: {
916
916
  angle: {},
917
917
  scale: {},
918
918
  blendFunction: {}
919
919
  },
920
- setup(r, { expose: e }) {
921
- const t = r, { pass: o, effect: s } = h(() => new be(t), t);
922
- return e({ pass: o, effect: s }), m(
920
+ setup(n, { expose: t }) {
921
+ const e = n, { pass: o, effect: s } = h(() => new Te(e), e);
922
+ return t({ pass: o, effect: s }), v(
923
923
  [
924
- [() => t.blendFunction, "blendMode.blendFunction"],
925
- [() => t.angle, "angle"],
926
- [() => t.scale, "scale"]
924
+ [() => e.blendFunction, "blendMode.blendFunction"],
925
+ [() => e.angle, "angle"],
926
+ [() => e.scale, "scale"]
927
927
  ],
928
928
  s,
929
- () => new be()
929
+ () => new Te()
930
930
  ), () => {
931
931
  };
932
932
  }
933
- }), so = /* @__PURE__ */ u({
933
+ }), co = /* @__PURE__ */ u({
934
934
  __name: "SepiaPmndrs",
935
935
  props: {
936
936
  blendFunction: {},
937
937
  intensity: {}
938
938
  },
939
- setup(r, { expose: e }) {
940
- const t = r, { pass: o, effect: s } = h(() => new Se(t), t);
941
- return e({ pass: o, effect: s }), m(
939
+ setup(n, { expose: t }) {
940
+ const e = n, { pass: o, effect: s } = h(() => new Ce(e), e);
941
+ return t({ pass: o, effect: s }), v(
942
942
  [
943
- [() => t.blendFunction, "blendMode.blendFunction"],
944
- [() => t.intensity, "intensity"]
943
+ [() => e.blendFunction, "blendMode.blendFunction"],
944
+ [() => e.intensity, "intensity"]
945
945
  ],
946
946
  s,
947
- () => new Se()
947
+ () => new Ce()
948
948
  ), () => {
949
949
  };
950
950
  }
951
951
  });
952
- class De extends q {
952
+ class Ne extends Z {
953
953
  /**
954
954
  * Creates a new LinocutEffect instance.
955
955
  *
956
956
  * @param {LinocutPmndrsProps} [options] - Configuration options for the effect.
957
957
  *
958
958
  */
959
- constructor({ blendFunction: e = Q.NORMAL, scale: t = 0.85, noiseScale: o = 0, center: s = [0.5, 0.5], rotation: a = 0 } = {}) {
960
- const i = Array.isArray(s) ? new d().fromArray(s) : s;
959
+ constructor({ blendFunction: t = _.NORMAL, scale: e = 0.85, noiseScale: o = 0, center: s = [0.5, 0.5], rotation: a = 0 } = {}) {
960
+ const r = Array.isArray(s) ? new f().fromArray(s) : s;
961
961
  super("LinocutEffect", `
962
962
  uniform float scale;
963
963
  uniform float noiseScale;
@@ -1019,45 +1019,45 @@ class De extends q {
1019
1019
  outputColor = vec4(vec3(f), 1.0);
1020
1020
  }
1021
1021
  `, {
1022
- blendFunction: e,
1022
+ blendFunction: t,
1023
1023
  uniforms: /* @__PURE__ */ new Map([
1024
- ["scale", new M(t)],
1025
- ["noiseScale", new M(o)],
1026
- ["center", new M(i)],
1027
- ["rotation", new M(a)]
1024
+ ["scale", new C(e)],
1025
+ ["noiseScale", new C(o)],
1026
+ ["center", new C(r)],
1027
+ ["rotation", new C(a)]
1028
1028
  ])
1029
1029
  });
1030
1030
  }
1031
1031
  get scale() {
1032
- var e;
1033
- return (e = this.uniforms.get("scale")) == null ? void 0 : e.value;
1032
+ var t;
1033
+ return (t = this.uniforms.get("scale")) == null ? void 0 : t.value;
1034
1034
  }
1035
- set scale(e) {
1036
- this.uniforms.get("scale").value = e;
1035
+ set scale(t) {
1036
+ this.uniforms.get("scale").value = t;
1037
1037
  }
1038
1038
  get noiseScale() {
1039
- var e;
1040
- return (e = this.uniforms.get("noiseScale")) == null ? void 0 : e.value;
1039
+ var t;
1040
+ return (t = this.uniforms.get("noiseScale")) == null ? void 0 : t.value;
1041
1041
  }
1042
- set noiseScale(e) {
1043
- this.uniforms.get("noiseScale").value = e;
1042
+ set noiseScale(t) {
1043
+ this.uniforms.get("noiseScale").value = t;
1044
1044
  }
1045
1045
  get center() {
1046
- var e;
1047
- return (e = this.uniforms.get("center")) == null ? void 0 : e.value;
1046
+ var t;
1047
+ return (t = this.uniforms.get("center")) == null ? void 0 : t.value;
1048
1048
  }
1049
- set center(e) {
1050
- this.uniforms.get("center").value = Array.isArray(e) ? new d().fromArray(e) : e;
1049
+ set center(t) {
1050
+ this.uniforms.get("center").value = Array.isArray(t) ? new f().fromArray(t) : t;
1051
1051
  }
1052
1052
  get rotation() {
1053
- var e;
1054
- return (e = this.uniforms.get("rotation")) == null ? void 0 : e.value;
1053
+ var t;
1054
+ return (t = this.uniforms.get("rotation")) == null ? void 0 : t.value;
1055
1055
  }
1056
- set rotation(e) {
1057
- this.uniforms.get("rotation").value = e;
1056
+ set rotation(t) {
1057
+ this.uniforms.get("rotation").value = t;
1058
1058
  }
1059
1059
  }
1060
- const ao = /* @__PURE__ */ u({
1060
+ const fo = /* @__PURE__ */ u({
1061
1061
  __name: "LinocutPmndrs",
1062
1062
  props: {
1063
1063
  blendFunction: {},
@@ -1066,44 +1066,44 @@ const ao = /* @__PURE__ */ u({
1066
1066
  center: {},
1067
1067
  rotation: {}
1068
1068
  },
1069
- setup(r, { expose: e }) {
1070
- const t = r, { pass: o, effect: s } = h(
1071
- () => new De({
1072
- ...t,
1073
- center: t.center instanceof d ? [t.center.x, t.center.y] : t.center
1069
+ setup(n, { expose: t }) {
1070
+ const e = n, { pass: o, effect: s } = h(
1071
+ () => new Ne({
1072
+ ...e,
1073
+ center: e.center instanceof f ? [e.center.x, e.center.y] : e.center
1074
1074
  }),
1075
- t
1075
+ e
1076
1076
  );
1077
- return e({ pass: o, effect: s }), m(
1077
+ return t({ pass: o, effect: s }), v(
1078
1078
  [
1079
- [() => t.blendFunction, "blendMode.blendFunction"],
1080
- [() => t.scale, "scale"],
1081
- [() => t.noiseScale, "noiseScale"],
1082
- [() => t.center, "center"],
1083
- [() => t.rotation, "rotation"]
1079
+ [() => e.blendFunction, "blendMode.blendFunction"],
1080
+ [() => e.scale, "scale"],
1081
+ [() => e.noiseScale, "noiseScale"],
1082
+ [() => e.center, "center"],
1083
+ [() => e.rotation, "rotation"]
1084
1084
  ],
1085
1085
  s,
1086
- () => new De()
1086
+ () => new Ne()
1087
1087
  ), () => {
1088
1088
  };
1089
1089
  }
1090
- }), ro = /* @__PURE__ */ u({
1090
+ }), ho = /* @__PURE__ */ u({
1091
1091
  __name: "DepthPickingPassPmndrs",
1092
1092
  props: {
1093
1093
  depthPacking: {},
1094
1094
  mode: {}
1095
1095
  },
1096
- setup(r, { expose: e }) {
1097
- const t = r, o = te(se), s = new qe(t), a = x(() => {
1098
- o != null && o.value && (oe(() => a()), o.value.addPass(s));
1096
+ setup(n, { expose: t }) {
1097
+ const e = n, o = J($), s = new et(e), a = w(() => {
1098
+ o != null && o.value && (ce(() => a()), o.value.addPass(s));
1099
1099
  });
1100
- return U(() => {
1101
- var i;
1102
- !(o != null && o.value) || !s || ((i = o == null ? void 0 : o.value) == null || i.removePass(s), s.dispose());
1103
- }), e({ pass: s }), () => {
1100
+ return W(() => {
1101
+ var r;
1102
+ !(o != null && o.value) || !s || ((r = o == null ? void 0 : o.value) == null || r.removePass(s), s.dispose());
1103
+ }), t({ pass: s }), () => {
1104
1104
  };
1105
1105
  }
1106
- }), io = /* @__PURE__ */ u({
1106
+ }), po = /* @__PURE__ */ u({
1107
1107
  __name: "GodRaysPmndrs",
1108
1108
  props: {
1109
1109
  blendFunction: {},
@@ -1121,37 +1121,51 @@ const ao = /* @__PURE__ */ u({
1121
1121
  samples: {},
1122
1122
  clampMax: {}
1123
1123
  },
1124
- setup(r, { expose: e }) {
1125
- const t = r, { camera: o } = y(), { pass: s, effect: a } = h(
1126
- () => new _(o.value, ie(t.lightSource), t),
1127
- t
1124
+ setup(n, { expose: t }) {
1125
+ const e = n, { camera: o } = y(), s = O(
1126
+ () => e.lightSource ?? new je(
1127
+ new ot(1e-5),
1128
+ new Ve({ visible: !1 })
1129
+ )
1130
+ ), { pass: a, effect: r } = h(
1131
+ () => new se(o.value, s.value, e),
1132
+ e
1128
1133
  );
1129
- return e({ pass: s, effect: a }), m(
1134
+ return t({ pass: a, effect: r }), v(
1130
1135
  [
1131
- [() => t.blendFunction, "blendMode.blendFunction"],
1132
- [() => t.density, "godRaysMaterial.density"],
1133
- [() => t.decay, "godRaysMaterial.decay"],
1134
- [() => t.weight, "godRaysMaterial.weight"],
1135
- [() => t.exposure, "godRaysMaterial.exposure"],
1136
- [() => t.samples, "godRaysMaterial.samples"],
1137
- [() => t.clampMax, "godRaysMaterial.maxIntensity"],
1138
- [() => t.resolutionScale, "resolution.scale"],
1139
- [() => t.resolutionX, "resolution.width"],
1140
- [() => t.resolutionY, "resolution.height"],
1141
- [() => t.kernelSize, "kernelSize"],
1142
- [() => t.blur, "blur"]
1136
+ [() => e.blendFunction, "blendMode.blendFunction"],
1137
+ [() => e.density, "godRaysMaterial.density"],
1138
+ [() => e.decay, "godRaysMaterial.decay"],
1139
+ [() => e.weight, "godRaysMaterial.weight"],
1140
+ [() => e.exposure, "godRaysMaterial.exposure"],
1141
+ [() => e.samples, "godRaysMaterial.samples"],
1142
+ [() => e.clampMax, "godRaysMaterial.maxIntensity"],
1143
+ [() => e.resolutionScale, "resolution.scale"],
1144
+ [() => e.resolutionX, "resolution.width"],
1145
+ [() => e.resolutionY, "resolution.height"],
1146
+ [() => e.kernelSize, "blurPass.kernelSize"],
1147
+ [() => e.blur, "blurPass.enabled"]
1143
1148
  ],
1144
- a,
1145
- () => new _()
1146
- ), S(
1147
- [() => t.opacity],
1149
+ r,
1150
+ () => new se()
1151
+ ), g(
1152
+ [() => e.lightSource, r],
1153
+ () => {
1154
+ r.value && (r.value.lightSource = fe(s.value));
1155
+ },
1156
+ { immediate: !0 }
1157
+ ), g(
1158
+ [() => e.opacity],
1148
1159
  () => {
1149
- var i, n;
1150
- if (t.opacity !== void 0)
1151
- (i = a.value) == null || i.blendMode.setOpacity(t.opacity);
1160
+ var i, l;
1161
+ if (e.opacity !== void 0)
1162
+ (i = r.value) == null || i.blendMode.setOpacity(e.opacity);
1152
1163
  else {
1153
- const l = new _(o.value, ie(t.lightSource));
1154
- (n = a.value) == null || n.blendMode.setOpacity(l.blendMode.getOpacity()), l.dispose();
1164
+ const d = new se(
1165
+ o.value,
1166
+ fe(s.value)
1167
+ );
1168
+ (l = r.value) == null || l.blendMode.setOpacity(d.blendMode.getOpacity()), d.dispose();
1155
1169
  }
1156
1170
  },
1157
1171
  {
@@ -1160,69 +1174,69 @@ const ao = /* @__PURE__ */ u({
1160
1174
  ), () => {
1161
1175
  };
1162
1176
  }
1163
- }), no = /* @__PURE__ */ u({
1177
+ }), mo = /* @__PURE__ */ u({
1164
1178
  __name: "ColorDepthPmndrs",
1165
1179
  props: {
1166
1180
  blendFunction: {},
1167
1181
  bits: {},
1168
1182
  opacity: {}
1169
1183
  },
1170
- setup(r, { expose: e }) {
1171
- const t = r, { pass: o, effect: s } = h(() => new I(t), t);
1172
- return e({ pass: o, effect: s }), H(
1173
- () => t.blendFunction,
1184
+ setup(n, { expose: t }) {
1185
+ const e = n, { pass: o, effect: s } = h(() => new V(e), e);
1186
+ return t({ pass: o, effect: s }), X(
1187
+ () => e.blendFunction,
1174
1188
  s,
1175
1189
  "blendMode.blendFunction",
1176
- () => new I()
1177
- ), S(
1178
- [s, () => t.bits],
1190
+ () => new V()
1191
+ ), g(
1192
+ [s, () => e.bits],
1179
1193
  () => {
1180
- var a, i;
1194
+ var a, r;
1181
1195
  if (s.value)
1182
- if (t.bits !== void 0)
1183
- (a = s.value) == null || a.setBitDepth(t.bits);
1196
+ if (e.bits !== void 0)
1197
+ (a = s.value) == null || a.setBitDepth(e.bits);
1184
1198
  else {
1185
- const n = new I();
1186
- (i = s.value) == null || i.setBitDepth(n.getBitDepth()), n.dispose();
1199
+ const i = new V();
1200
+ (r = s.value) == null || r.setBitDepth(i.getBitDepth()), i.dispose();
1187
1201
  }
1188
1202
  }
1189
- ), S(
1190
- [s, () => t.opacity],
1203
+ ), g(
1204
+ [s, () => e.opacity],
1191
1205
  () => {
1192
- var a, i;
1206
+ var a, r;
1193
1207
  if (s.value)
1194
- if (t.opacity !== void 0)
1195
- (a = s.value) == null || a.blendMode.setOpacity(t.opacity);
1208
+ if (e.opacity !== void 0)
1209
+ (a = s.value) == null || a.blendMode.setOpacity(e.opacity);
1196
1210
  else {
1197
- const n = new I();
1198
- (i = s.value) == null || i.blendMode.setOpacity(n.blendMode.getOpacity()), n.dispose();
1211
+ const i = new V();
1212
+ (r = s.value) == null || r.blendMode.setOpacity(i.blendMode.getOpacity()), i.dispose();
1199
1213
  }
1200
1214
  }
1201
1215
  ), () => {
1202
1216
  };
1203
1217
  }
1204
- }), lo = /* @__PURE__ */ u({
1218
+ }), vo = /* @__PURE__ */ u({
1205
1219
  __name: "GridPmndrs",
1206
1220
  props: {
1207
1221
  blendFunction: {},
1208
1222
  scale: {},
1209
1223
  lineWidth: {}
1210
1224
  },
1211
- setup(r, { expose: e }) {
1212
- const t = r, { pass: o, effect: s } = h(() => new we(t), t);
1213
- return e({ pass: o, effect: s }), m(
1225
+ setup(n, { expose: t }) {
1226
+ const e = n, { pass: o, effect: s } = h(() => new Ee(e), e);
1227
+ return t({ pass: o, effect: s }), v(
1214
1228
  [
1215
- [() => t.blendFunction, "blendMode.blendFunction"],
1216
- [() => t.scale, "scale"],
1217
- [() => t.lineWidth, "lineWidth"]
1229
+ [() => e.blendFunction, "blendMode.blendFunction"],
1230
+ [() => e.scale, "scale"],
1231
+ [() => e.lineWidth, "lineWidth"]
1218
1232
  ],
1219
1233
  s,
1220
- () => new we()
1234
+ () => new Ee()
1221
1235
  ), () => {
1222
1236
  };
1223
1237
  }
1224
1238
  });
1225
- class Le extends q {
1239
+ class ze extends Z {
1226
1240
  /**
1227
1241
  * Creates a new FishEyeEffect instance.
1228
1242
  *
@@ -1233,7 +1247,7 @@ class Le extends q {
1233
1247
  * @param {number} [options.scale] - Scale.
1234
1248
  *
1235
1249
  */
1236
- constructor({ blendFunction: e = Q.NORMAL, lensS: t = new d(1, 1), lensF: o = new d(0, 1), scale: s = 1 } = {}) {
1250
+ constructor({ blendFunction: t = _.NORMAL, lensS: e = new f(1, 1), lensF: o = new f(0, 1), scale: s = 1 } = {}) {
1237
1251
  super("FishEyeEffect", `
1238
1252
  uniform vec2 lensS;
1239
1253
  uniform vec2 lensF;
@@ -1253,11 +1267,11 @@ class Le extends q {
1253
1267
  outputColor = vec4(inputColor.rgb, inputColor.a); // Preserves original alpha
1254
1268
  }
1255
1269
  `, {
1256
- blendFunction: e,
1270
+ blendFunction: t,
1257
1271
  uniforms: /* @__PURE__ */ new Map([
1258
- ["lensS", new M(t)],
1259
- ["lensF", new M(o)],
1260
- ["scale", new M(s)]
1272
+ ["lensS", new C(e)],
1273
+ ["lensF", new C(o)],
1274
+ ["scale", new C(s)]
1261
1275
  ])
1262
1276
  });
1263
1277
  }
@@ -1267,11 +1281,11 @@ class Le extends q {
1267
1281
  * @type {Vector2}
1268
1282
  */
1269
1283
  get lensS() {
1270
- var e;
1271
- return (e = this.uniforms.get("lensS")) == null ? void 0 : e.value;
1284
+ var t;
1285
+ return (t = this.uniforms.get("lensS")) == null ? void 0 : t.value;
1272
1286
  }
1273
- set lensS(e) {
1274
- this.uniforms.get("lensS").value = e;
1287
+ set lensS(t) {
1288
+ this.uniforms.get("lensS").value = t;
1275
1289
  }
1276
1290
  /**
1277
1291
  * The lensF.
@@ -1279,11 +1293,11 @@ class Le extends q {
1279
1293
  * @type {Vector2}
1280
1294
  */
1281
1295
  get lensF() {
1282
- var e;
1283
- return (e = this.uniforms.get("lensF")) == null ? void 0 : e.value;
1296
+ var t;
1297
+ return (t = this.uniforms.get("lensF")) == null ? void 0 : t.value;
1284
1298
  }
1285
- set lensF(e) {
1286
- this.uniforms.get("lensF").value = e;
1299
+ set lensF(t) {
1300
+ this.uniforms.get("lensF").value = t;
1287
1301
  }
1288
1302
  /**
1289
1303
  * The scale.
@@ -1291,14 +1305,14 @@ class Le extends q {
1291
1305
  * @type {number}
1292
1306
  */
1293
1307
  get scale() {
1294
- var e;
1295
- return (e = this.uniforms.get("scale")) == null ? void 0 : e.value;
1308
+ var t;
1309
+ return (t = this.uniforms.get("scale")) == null ? void 0 : t.value;
1296
1310
  }
1297
- set scale(e) {
1298
- this.uniforms.get("scale").value = e;
1311
+ set scale(t) {
1312
+ this.uniforms.get("scale").value = t;
1299
1313
  }
1300
1314
  }
1301
- const uo = /* @__PURE__ */ u({
1315
+ const go = /* @__PURE__ */ u({
1302
1316
  __name: "FishEyePmndrs",
1303
1317
  props: {
1304
1318
  blendFunction: {},
@@ -1306,52 +1320,247 @@ const uo = /* @__PURE__ */ u({
1306
1320
  lensF: {},
1307
1321
  scale: {}
1308
1322
  },
1309
- setup(r, { expose: e }) {
1310
- const t = r, o = O(
1311
- () => Array.isArray(t.lensS) ? new d(...t.lensS) : t.lensS
1323
+ setup(n, { expose: t }) {
1324
+ const e = n, o = O(
1325
+ () => Array.isArray(e.lensS) ? new f(...e.lensS) : e.lensS
1312
1326
  ), s = O(
1313
- () => Array.isArray(t.lensF) ? new d(...t.lensF) : t.lensF
1314
- ), { pass: a, effect: i } = h(
1315
- () => new Le({
1316
- ...t,
1327
+ () => Array.isArray(e.lensF) ? new f(...e.lensF) : e.lensF
1328
+ ), { pass: a, effect: r } = h(
1329
+ () => new ze({
1330
+ ...e,
1317
1331
  lensS: o.value,
1318
1332
  lensF: s.value
1319
1333
  }),
1320
- t
1334
+ e
1321
1335
  );
1322
- return e({ pass: a, effect: i }), m(
1336
+ return t({ pass: a, effect: r }), v(
1323
1337
  [
1324
- [() => t.blendFunction, "blendMode.blendFunction"],
1338
+ [() => e.blendFunction, "blendMode.blendFunction"],
1325
1339
  [() => o.value, "lensS"],
1326
1340
  [() => s.value, "lensF"],
1327
- [() => t.scale, "scale"]
1341
+ [() => e.scale, "scale"]
1328
1342
  ],
1329
- i,
1330
- () => new Le()
1343
+ r,
1344
+ () => new ze()
1331
1345
  ), () => {
1332
1346
  };
1333
1347
  }
1334
- }), co = /* @__PURE__ */ u({
1348
+ }), xo = /* @__PURE__ */ u({
1335
1349
  __name: "BrightnessContrastPmndrs",
1336
1350
  props: {
1337
1351
  blendFunction: {},
1338
1352
  brightness: {},
1339
1353
  contrast: {}
1340
1354
  },
1341
- setup(r, { expose: e }) {
1342
- const t = r, { pass: o, effect: s } = h(() => new Ae(t), t);
1343
- return e({ pass: o, effect: s }), m(
1355
+ setup(n, { expose: t }) {
1356
+ const e = n, { pass: o, effect: s } = h(() => new Pe(e), e);
1357
+ return t({ pass: o, effect: s }), v(
1344
1358
  [
1345
- [() => t.blendFunction, "blendMode.blendFunction"],
1346
- [() => t.brightness, "brightness"],
1347
- [() => t.contrast, "contrast"]
1359
+ [() => e.blendFunction, "blendMode.blendFunction"],
1360
+ [() => e.brightness, "brightness"],
1361
+ [() => e.contrast, "contrast"]
1348
1362
  ],
1349
1363
  s,
1350
- () => new Ae()
1364
+ () => new Pe()
1351
1365
  ), () => {
1352
1366
  };
1353
1367
  }
1354
- }), Ue = {
1368
+ }), le = {
1369
+ OFF: 0,
1370
+ EDGES: 1,
1371
+ WEIGHTS: 2
1372
+ }, bo = /* @__PURE__ */ u({
1373
+ __name: "SMAAPmndrs",
1374
+ props: {
1375
+ blendFunction: {},
1376
+ opacity: {},
1377
+ preset: {},
1378
+ edgeDetectionMode: {},
1379
+ predicationMode: {},
1380
+ debug: {}
1381
+ },
1382
+ setup(n, { expose: t }) {
1383
+ const e = n, { pass: o, effect: s } = h(() => new ae(e), e), { camera: a } = y(), r = J($);
1384
+ t({ pass: o, effect: s });
1385
+ const i = new ae();
1386
+ v(
1387
+ [
1388
+ [() => Number(e.blendFunction), "blendMode.blendFunction"],
1389
+ [() => Number(e.predicationMode), "edgeDetectionMaterial.predicationMode"],
1390
+ [() => Number(e.edgeDetectionMode), "edgeDetectionMaterial.edgeDetectionMode"]
1391
+ ],
1392
+ s,
1393
+ () => new ae()
1394
+ ), g(
1395
+ [s, () => e.opacity],
1396
+ () => {
1397
+ s.value && (e.opacity !== void 0 ? s.value.blendMode.setOpacity(e.opacity) : s.value.blendMode.setOpacity(i.blendMode.getOpacity()));
1398
+ },
1399
+ { immediate: !0 }
1400
+ ), g(
1401
+ [s, () => e.preset],
1402
+ () => {
1403
+ s.value && s.value.applyPreset(Number(e.preset));
1404
+ }
1405
+ );
1406
+ let l = null, d = null;
1407
+ const p = (m) => {
1408
+ if (!s.value)
1409
+ return null;
1410
+ const A = m === "edges" ? s.value.edgesTexture : s.value.weightsTexture, E = new Xe(a.value, s.value, new q({ texture: A }));
1411
+ return E.renderToScreen = !1, E.enabled = !1, E.fullscreenMaterial.encodeOutput = !1, E;
1412
+ }, b = (m) => {
1413
+ m === "edges" && !l ? l = p("edges") : m === "weights" && !d && (d = p("weights"));
1414
+ }, c = (m, A) => {
1415
+ !m || !(r != null && r.value) || m.enabled !== A && (m.enabled = A, m.renderToScreen = A, A && !(r != null && r.value.passes.includes(m)) ? r == null || r.value.addPass(m) : !A && (r != null && r.value.passes.includes(m)) && (r == null || r.value.removePass(m), m.dispose()));
1416
+ }, S = (m) => {
1417
+ if (!o.value)
1418
+ return;
1419
+ const A = m === le.OFF, E = m === le.EDGES, x = m === le.WEIGHTS;
1420
+ o.value.enabled = A, o.value.renderToScreen = A, E && b("edges"), x && b("weights"), c(l, E), c(d, x), E || (l = null), x || (d = null);
1421
+ };
1422
+ return g(
1423
+ () => e.debug,
1424
+ () => {
1425
+ !o.value || e.debug === void 0 || S(e.debug);
1426
+ },
1427
+ { immediate: !0 }
1428
+ ), () => {
1429
+ };
1430
+ }
1431
+ }), So = /* @__PURE__ */ u({
1432
+ __name: "FXAAPmndrs",
1433
+ props: {
1434
+ blendFunction: {},
1435
+ opacity: {},
1436
+ samples: {},
1437
+ minEdgeThreshold: {},
1438
+ maxEdgeThreshold: {},
1439
+ subpixelQuality: {}
1440
+ },
1441
+ setup(n, { expose: t }) {
1442
+ const e = n, { pass: o, effect: s } = h(() => new re(e), e);
1443
+ return t({ pass: o, effect: s }), v(
1444
+ [
1445
+ [() => e.blendFunction, "blendMode.blendFunction"],
1446
+ [() => e.samples, "samples"],
1447
+ [() => e.minEdgeThreshold, "minEdgeThreshold"],
1448
+ [() => e.maxEdgeThreshold, "maxEdgeThreshold"],
1449
+ [() => e.subpixelQuality, "subpixelQuality"]
1450
+ ],
1451
+ s,
1452
+ () => new re()
1453
+ ), g(
1454
+ [s, () => e.opacity],
1455
+ () => {
1456
+ var a, r;
1457
+ if (s.value)
1458
+ if (e.opacity !== void 0)
1459
+ (a = s.value) == null || a.blendMode.setOpacity(e.opacity);
1460
+ else {
1461
+ const i = new re();
1462
+ (r = s.value) == null || r.blendMode.setOpacity(i.blendMode.getOpacity()), i.dispose();
1463
+ }
1464
+ },
1465
+ { immediate: !0 }
1466
+ ), () => {
1467
+ };
1468
+ }
1469
+ }), wo = /* @__PURE__ */ u({
1470
+ __name: "TexturePmndrs",
1471
+ props: {
1472
+ blendFunction: {},
1473
+ texture: {},
1474
+ opacity: {}
1475
+ },
1476
+ setup(n, { expose: t }) {
1477
+ const e = n, { pass: o, effect: s } = h(() => new q(e), e);
1478
+ return t({
1479
+ pass: o,
1480
+ effect: s
1481
+ }), v(
1482
+ [
1483
+ [() => e.blendFunction, "blendMode.blendFunction"]
1484
+ ],
1485
+ s,
1486
+ () => new q()
1487
+ ), g(
1488
+ [() => e.opacity],
1489
+ () => {
1490
+ var a, r;
1491
+ if (e.opacity !== void 0)
1492
+ (a = s.value) == null || a.blendMode.setOpacity(e.opacity);
1493
+ else {
1494
+ const i = new q();
1495
+ (r = s.value) == null || r.blendMode.setOpacity(i.blendMode.getOpacity()), i.dispose();
1496
+ }
1497
+ },
1498
+ {
1499
+ immediate: !0
1500
+ }
1501
+ ), () => {
1502
+ };
1503
+ }
1504
+ }), Ao = /* @__PURE__ */ u({
1505
+ __name: "ASCIIPmndrs",
1506
+ props: {
1507
+ blendFunction: {},
1508
+ opacity: {},
1509
+ cellSize: {},
1510
+ inverted: { type: Boolean },
1511
+ color: {},
1512
+ useSceneColor: { type: Boolean },
1513
+ asciiTexture: {}
1514
+ },
1515
+ setup(n, { expose: t }) {
1516
+ const e = n, o = new ne(), { asciiTexture: s, ...a } = e, { pass: r, effect: i } = h(() => new ne(a), e);
1517
+ return t({ pass: r, effect: i }), W(() => {
1518
+ o.dispose();
1519
+ }), v(
1520
+ [
1521
+ [() => e.blendFunction, "blendMode.blendFunction"],
1522
+ [() => e.cellSize, "cellSize"],
1523
+ [() => e.inverted, "inverted"]
1524
+ ],
1525
+ i,
1526
+ () => new ne()
1527
+ ), g(
1528
+ [i, () => e.useSceneColor],
1529
+ () => {
1530
+ i.value && (e.useSceneColor ? i.value.color = null : i.value.color = e.color ?? o.color);
1531
+ },
1532
+ { immediate: !0 }
1533
+ ), g(
1534
+ [i, () => e.opacity],
1535
+ () => {
1536
+ i.value && i.value.blendMode.setOpacity(e.opacity ?? o.blendMode.getOpacity());
1537
+ },
1538
+ { immediate: !0 }
1539
+ ), g(
1540
+ [i, () => e.color],
1541
+ () => {
1542
+ i.value && (e.useSceneColor || (i.value.color = e.color ?? null));
1543
+ },
1544
+ { immediate: !0 }
1545
+ ), g(
1546
+ [i, () => e.asciiTexture],
1547
+ () => {
1548
+ if (!i.value)
1549
+ return;
1550
+ const l = e.asciiTexture ? new tt(e.asciiTexture) : o.asciiTexture;
1551
+ i.value.asciiTexture = l;
1552
+ },
1553
+ { immediate: !0 }
1554
+ ), g(
1555
+ [i, () => e.blendFunction],
1556
+ () => {
1557
+ i.value && (i.value.blendMode.blendFunction = e.blendFunction ? Number(e.blendFunction) : Number(o.blendMode.blendFunction));
1558
+ },
1559
+ { immediate: !0 }
1560
+ ), () => {
1561
+ };
1562
+ }
1563
+ }), qe = {
1355
1564
  name: "CopyShader",
1356
1565
  uniforms: {
1357
1566
  tDiffuse: { value: null },
@@ -1389,7 +1598,7 @@ const uo = /* @__PURE__ */ u({
1389
1598
  }`
1390
1599
  )
1391
1600
  };
1392
- class C {
1601
+ class D {
1393
1602
  constructor() {
1394
1603
  this.isPass = !0, this.enabled = !0, this.needsSwap = !0, this.clear = !1, this.renderToScreen = !1;
1395
1604
  }
@@ -1401,202 +1610,202 @@ class C {
1401
1610
  dispose() {
1402
1611
  }
1403
1612
  }
1404
- const wt = new Qe(-1, 1, 1, -1, 0, 1);
1405
- class At extends Ke {
1613
+ const Pt = new st(-1, 1, 1, -1, 0, 1);
1614
+ class Dt extends at {
1406
1615
  constructor() {
1407
- super(), this.setAttribute("position", new ye([-1, 3, 0, -1, -1, 0, 3, -1, 0], 3)), this.setAttribute("uv", new ye([0, 2, 0, 0, 2, 0], 2));
1616
+ super(), this.setAttribute("position", new De([-1, 3, 0, -1, -1, 0, 3, -1, 0], 3)), this.setAttribute("uv", new De([0, 2, 0, 0, 2, 0], 2));
1408
1617
  }
1409
1618
  }
1410
- const yt = new At();
1619
+ const Lt = new Dt();
1411
1620
  class R {
1412
- constructor(e) {
1413
- this._mesh = new Je(yt, e);
1621
+ constructor(t) {
1622
+ this._mesh = new je(Lt, t);
1414
1623
  }
1415
1624
  dispose() {
1416
1625
  this._mesh.geometry.dispose();
1417
1626
  }
1418
- render(e) {
1419
- e.render(this._mesh, wt);
1627
+ render(t) {
1628
+ t.render(this._mesh, Pt);
1420
1629
  }
1421
1630
  get material() {
1422
1631
  return this._mesh.material;
1423
1632
  }
1424
- set material(e) {
1425
- this._mesh.material = e;
1633
+ set material(t) {
1634
+ this._mesh.material = t;
1426
1635
  }
1427
1636
  }
1428
- class Mt extends C {
1429
- constructor(e, t) {
1430
- super(), this.textureID = t !== void 0 ? t : "tDiffuse", e instanceof A ? (this.uniforms = e.uniforms, this.material = e) : e && (this.uniforms = P.clone(e.uniforms), this.material = new A({
1431
- name: e.name !== void 0 ? e.name : "unspecified",
1432
- defines: Object.assign({}, e.defines),
1637
+ class Ft extends D {
1638
+ constructor(t, e) {
1639
+ super(), this.textureID = e !== void 0 ? e : "tDiffuse", t instanceof T ? (this.uniforms = t.uniforms, this.material = t) : t && (this.uniforms = L.clone(t.uniforms), this.material = new T({
1640
+ name: t.name !== void 0 ? t.name : "unspecified",
1641
+ defines: Object.assign({}, t.defines),
1433
1642
  uniforms: this.uniforms,
1434
- vertexShader: e.vertexShader,
1435
- fragmentShader: e.fragmentShader
1643
+ vertexShader: t.vertexShader,
1644
+ fragmentShader: t.fragmentShader
1436
1645
  })), this.fsQuad = new R(this.material);
1437
1646
  }
1438
- render(e, t, o) {
1439
- this.uniforms[this.textureID] && (this.uniforms[this.textureID].value = o.texture), this.fsQuad.material = this.material, this.renderToScreen ? (e.setRenderTarget(null), this.fsQuad.render(e)) : (e.setRenderTarget(t), this.clear && e.clear(e.autoClearColor, e.autoClearDepth, e.autoClearStencil), this.fsQuad.render(e));
1647
+ render(t, e, o) {
1648
+ this.uniforms[this.textureID] && (this.uniforms[this.textureID].value = o.texture), this.fsQuad.material = this.material, this.renderToScreen ? (t.setRenderTarget(null), this.fsQuad.render(t)) : (t.setRenderTarget(e), this.clear && t.clear(t.autoClearColor, t.autoClearDepth, t.autoClearStencil), this.fsQuad.render(t));
1440
1649
  }
1441
1650
  dispose() {
1442
1651
  this.material.dispose(), this.fsQuad.dispose();
1443
1652
  }
1444
1653
  }
1445
- class Oe extends C {
1446
- constructor(e, t) {
1447
- super(), this.scene = e, this.camera = t, this.clear = !0, this.needsSwap = !1, this.inverse = !1;
1654
+ class We extends D {
1655
+ constructor(t, e) {
1656
+ super(), this.scene = t, this.camera = e, this.clear = !0, this.needsSwap = !1, this.inverse = !1;
1448
1657
  }
1449
- render(e, t, o) {
1450
- const s = e.getContext(), a = e.state;
1658
+ render(t, e, o) {
1659
+ const s = t.getContext(), a = t.state;
1451
1660
  a.buffers.color.setMask(!1), a.buffers.depth.setMask(!1), a.buffers.color.setLocked(!0), a.buffers.depth.setLocked(!0);
1452
- let i, n;
1453
- this.inverse ? (i = 0, n = 1) : (i = 1, n = 0), a.buffers.stencil.setTest(!0), a.buffers.stencil.setOp(s.REPLACE, s.REPLACE, s.REPLACE), a.buffers.stencil.setFunc(s.ALWAYS, i, 4294967295), a.buffers.stencil.setClear(n), a.buffers.stencil.setLocked(!0), e.setRenderTarget(o), this.clear && e.clear(), e.render(this.scene, this.camera), e.setRenderTarget(t), this.clear && e.clear(), e.render(this.scene, this.camera), a.buffers.color.setLocked(!1), a.buffers.depth.setLocked(!1), a.buffers.color.setMask(!0), a.buffers.depth.setMask(!0), a.buffers.stencil.setLocked(!1), a.buffers.stencil.setFunc(s.EQUAL, 1, 4294967295), a.buffers.stencil.setOp(s.KEEP, s.KEEP, s.KEEP), a.buffers.stencil.setLocked(!0);
1661
+ let r, i;
1662
+ this.inverse ? (r = 0, i = 1) : (r = 1, i = 0), a.buffers.stencil.setTest(!0), a.buffers.stencil.setOp(s.REPLACE, s.REPLACE, s.REPLACE), a.buffers.stencil.setFunc(s.ALWAYS, r, 4294967295), a.buffers.stencil.setClear(i), a.buffers.stencil.setLocked(!0), t.setRenderTarget(o), this.clear && t.clear(), t.render(this.scene, this.camera), t.setRenderTarget(e), this.clear && t.clear(), t.render(this.scene, this.camera), a.buffers.color.setLocked(!1), a.buffers.depth.setLocked(!1), a.buffers.color.setMask(!0), a.buffers.depth.setMask(!0), a.buffers.stencil.setLocked(!1), a.buffers.stencil.setFunc(s.EQUAL, 1, 4294967295), a.buffers.stencil.setOp(s.KEEP, s.KEEP, s.KEEP), a.buffers.stencil.setLocked(!0);
1454
1663
  }
1455
1664
  }
1456
- class Tt extends C {
1665
+ class Ot extends D {
1457
1666
  constructor() {
1458
1667
  super(), this.needsSwap = !1;
1459
1668
  }
1460
- render(e) {
1461
- e.state.buffers.stencil.setLocked(!1), e.state.buffers.stencil.setTest(!1);
1669
+ render(t) {
1670
+ t.state.buffers.stencil.setLocked(!1), t.state.buffers.stencil.setTest(!1);
1462
1671
  }
1463
1672
  }
1464
- class Ct {
1465
- constructor(e, t) {
1466
- if (this.renderer = e, this._pixelRatio = e.getPixelRatio(), t === void 0) {
1467
- const o = e.getSize(new d());
1468
- this._width = o.width, this._height = o.height, t = new D(this._width * this._pixelRatio, this._height * this._pixelRatio, { type: T }), t.texture.name = "EffectComposer.rt1";
1673
+ class Bt {
1674
+ constructor(t, e) {
1675
+ if (this.renderer = t, this._pixelRatio = t.getPixelRatio(), e === void 0) {
1676
+ const o = t.getSize(new f());
1677
+ this._width = o.width, this._height = o.height, e = new F(this._width * this._pixelRatio, this._height * this._pixelRatio, { type: P }), e.texture.name = "EffectComposer.rt1";
1469
1678
  } else
1470
- this._width = t.width, this._height = t.height;
1471
- this.renderTarget1 = t, this.renderTarget2 = t.clone(), this.renderTarget2.texture.name = "EffectComposer.rt2", this.writeBuffer = this.renderTarget1, this.readBuffer = this.renderTarget2, this.renderToScreen = !0, this.passes = [], this.copyPass = new Mt(Ue), this.copyPass.material.blending = Ze, this.clock = new _e();
1679
+ this._width = e.width, this._height = e.height;
1680
+ this.renderTarget1 = e, this.renderTarget2 = e.clone(), this.renderTarget2.texture.name = "EffectComposer.rt2", this.writeBuffer = this.renderTarget1, this.readBuffer = this.renderTarget2, this.renderToScreen = !0, this.passes = [], this.copyPass = new Ft(qe), this.copyPass.material.blending = rt, this.clock = new nt();
1472
1681
  }
1473
1682
  swapBuffers() {
1474
- const e = this.readBuffer;
1475
- this.readBuffer = this.writeBuffer, this.writeBuffer = e;
1683
+ const t = this.readBuffer;
1684
+ this.readBuffer = this.writeBuffer, this.writeBuffer = t;
1476
1685
  }
1477
- addPass(e) {
1478
- this.passes.push(e), e.setSize(this._width * this._pixelRatio, this._height * this._pixelRatio);
1686
+ addPass(t) {
1687
+ this.passes.push(t), t.setSize(this._width * this._pixelRatio, this._height * this._pixelRatio);
1479
1688
  }
1480
- insertPass(e, t) {
1481
- this.passes.splice(t, 0, e), e.setSize(this._width * this._pixelRatio, this._height * this._pixelRatio);
1689
+ insertPass(t, e) {
1690
+ this.passes.splice(e, 0, t), t.setSize(this._width * this._pixelRatio, this._height * this._pixelRatio);
1482
1691
  }
1483
- removePass(e) {
1484
- const t = this.passes.indexOf(e);
1485
- t !== -1 && this.passes.splice(t, 1);
1692
+ removePass(t) {
1693
+ const e = this.passes.indexOf(t);
1694
+ e !== -1 && this.passes.splice(e, 1);
1486
1695
  }
1487
- isLastEnabledPass(e) {
1488
- for (let t = e + 1; t < this.passes.length; t++)
1489
- if (this.passes[t].enabled)
1696
+ isLastEnabledPass(t) {
1697
+ for (let e = t + 1; e < this.passes.length; e++)
1698
+ if (this.passes[e].enabled)
1490
1699
  return !1;
1491
1700
  return !0;
1492
1701
  }
1493
- render(e) {
1494
- e === void 0 && (e = this.clock.getDelta());
1495
- const t = this.renderer.getRenderTarget();
1702
+ render(t) {
1703
+ t === void 0 && (t = this.clock.getDelta());
1704
+ const e = this.renderer.getRenderTarget();
1496
1705
  let o = !1;
1497
1706
  for (let s = 0, a = this.passes.length; s < a; s++) {
1498
- const i = this.passes[s];
1499
- if (i.enabled !== !1) {
1500
- if (i.renderToScreen = this.renderToScreen && this.isLastEnabledPass(s), i.render(this.renderer, this.writeBuffer, this.readBuffer, e, o), i.needsSwap) {
1707
+ const r = this.passes[s];
1708
+ if (r.enabled !== !1) {
1709
+ if (r.renderToScreen = this.renderToScreen && this.isLastEnabledPass(s), r.render(this.renderer, this.writeBuffer, this.readBuffer, t, o), r.needsSwap) {
1501
1710
  if (o) {
1502
- const n = this.renderer.getContext(), l = this.renderer.state.buffers.stencil;
1503
- l.setFunc(n.NOTEQUAL, 1, 4294967295), this.copyPass.render(this.renderer, this.writeBuffer, this.readBuffer, e), l.setFunc(n.EQUAL, 1, 4294967295);
1711
+ const i = this.renderer.getContext(), l = this.renderer.state.buffers.stencil;
1712
+ l.setFunc(i.NOTEQUAL, 1, 4294967295), this.copyPass.render(this.renderer, this.writeBuffer, this.readBuffer, t), l.setFunc(i.EQUAL, 1, 4294967295);
1504
1713
  }
1505
1714
  this.swapBuffers();
1506
1715
  }
1507
- Oe !== void 0 && (i instanceof Oe ? o = !0 : i instanceof Tt && (o = !1));
1716
+ We !== void 0 && (r instanceof We ? o = !0 : r instanceof Ot && (o = !1));
1508
1717
  }
1509
1718
  }
1510
- this.renderer.setRenderTarget(t);
1719
+ this.renderer.setRenderTarget(e);
1511
1720
  }
1512
- reset(e) {
1513
- if (e === void 0) {
1514
- const t = this.renderer.getSize(new d());
1515
- this._pixelRatio = this.renderer.getPixelRatio(), this._width = t.width, this._height = t.height, e = this.renderTarget1.clone(), e.setSize(this._width * this._pixelRatio, this._height * this._pixelRatio);
1721
+ reset(t) {
1722
+ if (t === void 0) {
1723
+ const e = this.renderer.getSize(new f());
1724
+ this._pixelRatio = this.renderer.getPixelRatio(), this._width = e.width, this._height = e.height, t = this.renderTarget1.clone(), t.setSize(this._width * this._pixelRatio, this._height * this._pixelRatio);
1516
1725
  }
1517
- this.renderTarget1.dispose(), this.renderTarget2.dispose(), this.renderTarget1 = e, this.renderTarget2 = e.clone(), this.writeBuffer = this.renderTarget1, this.readBuffer = this.renderTarget2;
1726
+ this.renderTarget1.dispose(), this.renderTarget2.dispose(), this.renderTarget1 = t, this.renderTarget2 = t.clone(), this.writeBuffer = this.renderTarget1, this.readBuffer = this.renderTarget2;
1518
1727
  }
1519
- setSize(e, t) {
1520
- this._width = e, this._height = t;
1728
+ setSize(t, e) {
1729
+ this._width = t, this._height = e;
1521
1730
  const o = this._width * this._pixelRatio, s = this._height * this._pixelRatio;
1522
1731
  this.renderTarget1.setSize(o, s), this.renderTarget2.setSize(o, s);
1523
1732
  for (let a = 0; a < this.passes.length; a++)
1524
1733
  this.passes[a].setSize(o, s);
1525
1734
  }
1526
- setPixelRatio(e) {
1527
- this._pixelRatio = e, this.setSize(this._width, this._height);
1735
+ setPixelRatio(t) {
1736
+ this._pixelRatio = t, this.setSize(this._width, this._height);
1528
1737
  }
1529
1738
  dispose() {
1530
1739
  this.renderTarget1.dispose(), this.renderTarget2.dispose(), this.copyPass.dispose();
1531
1740
  }
1532
1741
  }
1533
- class Et extends C {
1534
- constructor(e, t, o = null, s = null, a = null) {
1535
- super(), this.scene = e, this.camera = t, this.overrideMaterial = o, this.clearColor = s, this.clearAlpha = a, this.clear = !0, this.clearDepth = !1, this.needsSwap = !1, this._oldClearColor = new k();
1742
+ class Rt extends D {
1743
+ constructor(t, e, o = null, s = null, a = null) {
1744
+ super(), this.scene = t, this.camera = e, this.overrideMaterial = o, this.clearColor = s, this.clearAlpha = a, this.clear = !0, this.clearDepth = !1, this.needsSwap = !1, this._oldClearColor = new K();
1536
1745
  }
1537
- render(e, t, o) {
1538
- const s = e.autoClear;
1539
- e.autoClear = !1;
1540
- let a, i;
1541
- this.overrideMaterial !== null && (i = this.scene.overrideMaterial, this.scene.overrideMaterial = this.overrideMaterial), this.clearColor !== null && (e.getClearColor(this._oldClearColor), e.setClearColor(this.clearColor, e.getClearAlpha())), this.clearAlpha !== null && (a = e.getClearAlpha(), e.setClearAlpha(this.clearAlpha)), this.clearDepth == !0 && e.clearDepth(), e.setRenderTarget(this.renderToScreen ? null : o), this.clear === !0 && e.clear(e.autoClearColor, e.autoClearDepth, e.autoClearStencil), e.render(this.scene, this.camera), this.clearColor !== null && e.setClearColor(this._oldClearColor), this.clearAlpha !== null && e.setClearAlpha(a), this.overrideMaterial !== null && (this.scene.overrideMaterial = i), e.autoClear = s;
1746
+ render(t, e, o) {
1747
+ const s = t.autoClear;
1748
+ t.autoClear = !1;
1749
+ let a, r;
1750
+ this.overrideMaterial !== null && (r = this.scene.overrideMaterial, this.scene.overrideMaterial = this.overrideMaterial), this.clearColor !== null && (t.getClearColor(this._oldClearColor), t.setClearColor(this.clearColor, t.getClearAlpha())), this.clearAlpha !== null && (a = t.getClearAlpha(), t.setClearAlpha(this.clearAlpha)), this.clearDepth == !0 && t.clearDepth(), t.setRenderTarget(this.renderToScreen ? null : o), this.clear === !0 && t.clear(t.autoClearColor, t.autoClearDepth, t.autoClearStencil), t.render(this.scene, this.camera), this.clearColor !== null && t.setClearColor(this._oldClearColor), this.clearAlpha !== null && t.setClearAlpha(a), this.overrideMaterial !== null && (this.scene.overrideMaterial = r), t.autoClear = s;
1542
1751
  }
1543
1752
  }
1544
- const Ge = Symbol("effectComposerThree"), fo = /* @__PURE__ */ u({
1753
+ const Qe = Symbol("effectComposerThree"), yo = /* @__PURE__ */ u({
1545
1754
  __name: "EffectComposer",
1546
1755
  props: {
1547
1756
  enabled: { type: Boolean, default: !0 },
1548
1757
  withoutRenderPass: { type: Boolean }
1549
1758
  },
1550
- setup(r, { expose: e }) {
1551
- const t = r, o = W(null);
1552
- Be(Ge, o), e({ composer: o });
1553
- const { renderer: s, sizes: a, scene: i, camera: n, render: l } = y();
1554
- x(() => {
1759
+ setup(n, { expose: t }) {
1760
+ const e = n, o = H(null);
1761
+ He(Qe, o), t({ composer: o });
1762
+ const { renderer: s, sizes: a, scene: r, camera: i, render: l } = y();
1763
+ w(() => {
1555
1764
  var c;
1556
- (c = o.value) == null || c.dispose(), o.value = new Ct(s.value);
1557
- }), x(() => {
1558
- var E;
1559
- const { width: c, height: b } = a;
1560
- b.value && c.value && ((E = o.value) == null || E.setSize(c.value, b.value));
1765
+ (c = o.value) == null || c.dispose(), o.value = new Bt(s.value);
1766
+ }), w(() => {
1767
+ var m;
1768
+ const { width: c, height: S } = a;
1769
+ S.value && c.value && ((m = o.value) == null || m.setSize(c.value, S.value));
1561
1770
  });
1562
- const { pixelRatio: f } = ze();
1563
- x(() => {
1771
+ const { pixelRatio: p } = Ye();
1772
+ w(() => {
1564
1773
  var c;
1565
- (c = o.value) == null || c.setPixelRatio(f.value);
1566
- }), t.withoutRenderPass || x(() => {
1567
- n.value && i.value && o.value && o.value.addPass(new Et(i.value, n.value));
1774
+ (c = o.value) == null || c.setPixelRatio(p.value);
1775
+ }), e.withoutRenderPass || w(() => {
1776
+ i.value && r.value && o.value && o.value.addPass(new Rt(r.value, i.value));
1568
1777
  });
1569
- const { render: g } = G();
1570
- return g(() => {
1571
- l.frames.value > 0 && o.value && t.enabled && o.value.render(), l.frames.value = l.mode.value === "always" ? 1 : Math.max(0, l.frames.value - 1);
1572
- }), U(() => {
1778
+ const { render: b } = I();
1779
+ return b(() => {
1780
+ l.frames.value > 0 && o.value && e.enabled && o.value.render(), l.frames.value = l.mode.value === "always" ? 1 : Math.max(0, l.frames.value - 1);
1781
+ }), W(() => {
1573
1782
  var c;
1574
1783
  (c = o.value) == null || c.dispose();
1575
- }), (c, b) => Ne(c.$slots, "default");
1784
+ }), (c, S) => Ie(c.$slots, "default");
1576
1785
  }
1577
- }), N = (r, e, t) => {
1578
- if (!e && t)
1786
+ }), U = (n, t, e) => {
1787
+ if (!t && e)
1579
1788
  throw new Error("passDependencies is required when dependencyFieldsTriggeringRecreation is provided");
1580
- const o = te(Ge), s = W(r()), { sizes: a, invalidate: i } = y();
1581
- e && S(e, () => i());
1582
- const n = () => {
1583
- var p;
1584
- (p = o == null ? void 0 : o.value) == null || p.removePass(s.value), s.value.dispose();
1585
- }, l = x(() => {
1586
- !(o != null && o.value) || !a.height.value || !a.width.value || (o.value.addPass(s.value), oe(() => l()));
1789
+ const o = J(Qe), s = H(n()), { sizes: a, invalidate: r } = y();
1790
+ t && g(t, () => r());
1791
+ const i = () => {
1792
+ var d;
1793
+ (d = o == null ? void 0 : o.value) == null || d.removePass(s.value), s.value.dispose();
1794
+ }, l = w(() => {
1795
+ !(o != null && o.value) || !a.height.value || !a.width.value || (o.value.addPass(s.value), ce(() => l()));
1587
1796
  });
1588
- return t && S(
1589
- () => t.map((p) => e == null ? void 0 : e[p]),
1797
+ return e && g(
1798
+ () => e.map((d) => t == null ? void 0 : t[d]),
1590
1799
  () => {
1591
1800
  if (!(o != null && o.value))
1592
1801
  return;
1593
- const p = o.value.passes.findIndex((f) => f === s.value);
1594
- ~p && (n(), s.value = r(), o.value.insertPass(s.value, p));
1802
+ const d = o.value.passes.findIndex((p) => p === s.value);
1803
+ ~d && (i(), s.value = n(), o.value.insertPass(s.value, d));
1595
1804
  }
1596
- ), U(() => {
1597
- n();
1805
+ ), W(() => {
1806
+ i();
1598
1807
  }), { pass: s };
1599
- }, Pt = {
1808
+ }, Nt = {
1600
1809
  uniforms: {
1601
1810
  tDiffuse: { value: null },
1602
1811
  //diffuse texture
@@ -1691,53 +1900,53 @@ const Ge = Symbol("effectComposerThree"), fo = /* @__PURE__ */ u({
1691
1900
  }`
1692
1901
  )
1693
1902
  };
1694
- class Re extends C {
1695
- constructor(e = 64) {
1903
+ class Ue extends D {
1904
+ constructor(t = 64) {
1696
1905
  super();
1697
- const t = Pt;
1698
- this.uniforms = P.clone(t.uniforms), this.heightMap = this.generateHeightmap(e), this.uniforms.tDisp.value = this.heightMap, this.material = new A({
1906
+ const e = Nt;
1907
+ this.uniforms = L.clone(e.uniforms), this.heightMap = this.generateHeightmap(t), this.uniforms.tDisp.value = this.heightMap, this.material = new T({
1699
1908
  uniforms: this.uniforms,
1700
- vertexShader: t.vertexShader,
1701
- fragmentShader: t.fragmentShader
1909
+ vertexShader: e.vertexShader,
1910
+ fragmentShader: e.fragmentShader
1702
1911
  }), this.fsQuad = new R(this.material), this.goWild = !1, this.curF = 0, this.generateTrigger();
1703
1912
  }
1704
- render(e, t, o) {
1705
- this.uniforms.tDiffuse.value = o.texture, this.uniforms.seed.value = Math.random(), this.uniforms.byp.value = 0, this.curF % this.randX == 0 || this.goWild == !0 ? (this.uniforms.amount.value = Math.random() / 30, this.uniforms.angle.value = w.randFloat(-Math.PI, Math.PI), this.uniforms.seed_x.value = w.randFloat(-1, 1), this.uniforms.seed_y.value = w.randFloat(-1, 1), this.uniforms.distortion_x.value = w.randFloat(0, 1), this.uniforms.distortion_y.value = w.randFloat(0, 1), this.curF = 0, this.generateTrigger()) : this.curF % this.randX < this.randX / 5 ? (this.uniforms.amount.value = Math.random() / 90, this.uniforms.angle.value = w.randFloat(-Math.PI, Math.PI), this.uniforms.distortion_x.value = w.randFloat(0, 1), this.uniforms.distortion_y.value = w.randFloat(0, 1), this.uniforms.seed_x.value = w.randFloat(-0.3, 0.3), this.uniforms.seed_y.value = w.randFloat(-0.3, 0.3)) : this.goWild == !1 && (this.uniforms.byp.value = 1), this.curF++, this.renderToScreen ? (e.setRenderTarget(null), this.fsQuad.render(e)) : (e.setRenderTarget(t), this.clear && e.clear(), this.fsQuad.render(e));
1913
+ render(t, e, o) {
1914
+ this.uniforms.tDiffuse.value = o.texture, this.uniforms.seed.value = Math.random(), this.uniforms.byp.value = 0, this.curF % this.randX == 0 || this.goWild == !0 ? (this.uniforms.amount.value = Math.random() / 30, this.uniforms.angle.value = M.randFloat(-Math.PI, Math.PI), this.uniforms.seed_x.value = M.randFloat(-1, 1), this.uniforms.seed_y.value = M.randFloat(-1, 1), this.uniforms.distortion_x.value = M.randFloat(0, 1), this.uniforms.distortion_y.value = M.randFloat(0, 1), this.curF = 0, this.generateTrigger()) : this.curF % this.randX < this.randX / 5 ? (this.uniforms.amount.value = Math.random() / 90, this.uniforms.angle.value = M.randFloat(-Math.PI, Math.PI), this.uniforms.distortion_x.value = M.randFloat(0, 1), this.uniforms.distortion_y.value = M.randFloat(0, 1), this.uniforms.seed_x.value = M.randFloat(-0.3, 0.3), this.uniforms.seed_y.value = M.randFloat(-0.3, 0.3)) : this.goWild == !1 && (this.uniforms.byp.value = 1), this.curF++, this.renderToScreen ? (t.setRenderTarget(null), this.fsQuad.render(t)) : (t.setRenderTarget(e), this.clear && t.clear(), this.fsQuad.render(t));
1706
1915
  }
1707
1916
  generateTrigger() {
1708
- this.randX = w.randInt(120, 240);
1917
+ this.randX = M.randInt(120, 240);
1709
1918
  }
1710
- generateHeightmap(e) {
1711
- const t = new Float32Array(e * e), o = e * e;
1919
+ generateHeightmap(t) {
1920
+ const e = new Float32Array(t * t), o = t * t;
1712
1921
  for (let a = 0; a < o; a++) {
1713
- const i = w.randFloat(0, 1);
1714
- t[a] = i;
1922
+ const r = M.randFloat(0, 1);
1923
+ e[a] = r;
1715
1924
  }
1716
- const s = new $e(t, e, e, et, tt);
1925
+ const s = new it(e, t, t, lt, ut);
1717
1926
  return s.needsUpdate = !0, s;
1718
1927
  }
1719
1928
  dispose() {
1720
1929
  this.material.dispose(), this.heightMap.dispose(), this.fsQuad.dispose();
1721
1930
  }
1722
1931
  }
1723
- const ho = /* @__PURE__ */ u({
1932
+ const Mo = /* @__PURE__ */ u({
1724
1933
  __name: "Glitch",
1725
1934
  props: {
1726
1935
  dtSize: {},
1727
1936
  goWild: { type: Boolean }
1728
1937
  },
1729
- setup(r, { expose: e }) {
1730
- const t = r, { pass: o } = N(() => new Re(t.dtSize), t, ["dtSize"]);
1731
- e({ pass: o });
1732
- const { onBeforeRender: s } = G();
1733
- return s(({ invalidate: a }) => a()), m(
1734
- [[() => t.goWild, "goWild"]],
1938
+ setup(n, { expose: t }) {
1939
+ const e = n, { pass: o } = U(() => new Ue(e.dtSize), e, ["dtSize"]);
1940
+ t({ pass: o });
1941
+ const { onBeforeRender: s } = I();
1942
+ return s(({ invalidate: a }) => a()), v(
1943
+ [[() => e.goWild, "goWild"]],
1735
1944
  o,
1736
- () => new Re()
1945
+ () => new Ue()
1737
1946
  ), () => {
1738
1947
  };
1739
1948
  }
1740
- }), Y = {
1949
+ }), Q = {
1741
1950
  name: "HalftoneShader",
1742
1951
  uniforms: {
1743
1952
  tDiffuse: { value: null },
@@ -2041,28 +2250,28 @@ const ho = /* @__PURE__ */ u({
2041
2250
  }`
2042
2251
  )
2043
2252
  };
2044
- class Dt extends C {
2045
- constructor(e, t, o) {
2046
- super(), this.uniforms = P.clone(Y.uniforms), this.material = new A({
2253
+ class zt extends D {
2254
+ constructor(t, e, o) {
2255
+ super(), this.uniforms = L.clone(Q.uniforms), this.material = new T({
2047
2256
  uniforms: this.uniforms,
2048
- fragmentShader: Y.fragmentShader,
2049
- vertexShader: Y.vertexShader
2050
- }), this.uniforms.width.value = e, this.uniforms.height.value = t;
2257
+ fragmentShader: Q.fragmentShader,
2258
+ vertexShader: Q.vertexShader
2259
+ }), this.uniforms.width.value = t, this.uniforms.height.value = e;
2051
2260
  for (const s in o)
2052
2261
  o.hasOwnProperty(s) && this.uniforms.hasOwnProperty(s) && (this.uniforms[s].value = o[s]);
2053
2262
  this.fsQuad = new R(this.material);
2054
2263
  }
2055
- render(e, t, o) {
2056
- this.material.uniforms.tDiffuse.value = o.texture, this.renderToScreen ? (e.setRenderTarget(null), this.fsQuad.render(e)) : (e.setRenderTarget(t), this.clear && e.clear(), this.fsQuad.render(e));
2264
+ render(t, e, o) {
2265
+ this.material.uniforms.tDiffuse.value = o.texture, this.renderToScreen ? (t.setRenderTarget(null), this.fsQuad.render(t)) : (t.setRenderTarget(e), this.clear && t.clear(), this.fsQuad.render(t));
2057
2266
  }
2058
- setSize(e, t) {
2059
- this.uniforms.width.value = e, this.uniforms.height.value = t;
2267
+ setSize(t, e) {
2268
+ this.uniforms.width.value = t, this.uniforms.height.value = e;
2060
2269
  }
2061
2270
  dispose() {
2062
2271
  this.material.dispose(), this.fsQuad.dispose();
2063
2272
  }
2064
2273
  }
2065
- const po = /* @__PURE__ */ u({
2274
+ const To = /* @__PURE__ */ u({
2066
2275
  __name: "Halftone",
2067
2276
  props: {
2068
2277
  shape: {},
@@ -2075,55 +2284,55 @@ const po = /* @__PURE__ */ u({
2075
2284
  greyscale: { type: Boolean },
2076
2285
  blendingMode: {}
2077
2286
  },
2078
- setup(r, { expose: e }) {
2079
- const t = r, { sizes: o } = y(), s = O(
2287
+ setup(n, { expose: t }) {
2288
+ const e = n, { sizes: o } = y(), s = O(
2080
2289
  () => Object.fromEntries(
2081
- Object.entries(t).filter(([i, n]) => n !== void 0)
2290
+ Object.entries(e).filter(([r, i]) => i !== void 0)
2082
2291
  )
2083
- ), { pass: a } = N(() => new Dt(
2292
+ ), { pass: a } = U(() => new zt(
2084
2293
  o.width.value,
2085
2294
  o.height.value,
2086
2295
  s.value
2087
- ), t);
2088
- return e({ pass: a }), x(() => {
2296
+ ), e);
2297
+ return t({ pass: a }), w(() => {
2089
2298
  a.value.setSize(o.width.value, o.height.value);
2090
- }), x(() => {
2091
- Object.entries(t).forEach(([i, n]) => {
2092
- i in a.value.uniforms && (a.value.uniforms[i].value = n ?? Y.uniforms[i].value);
2299
+ }), w(() => {
2300
+ Object.entries(e).forEach(([r, i]) => {
2301
+ r in a.value.uniforms && (a.value.uniforms[r].value = i ?? Q.uniforms[r].value);
2093
2302
  });
2094
2303
  }), () => {
2095
2304
  };
2096
2305
  }
2097
2306
  });
2098
- class Fe extends C {
2099
- constructor(e, t, o, s = {}) {
2100
- super(), this.pixelSize = e, this.resolution = new d(), this.renderResolution = new d(), this.pixelatedMaterial = this.createPixelatedMaterial(), this.normalMaterial = new ot(), this.fsQuad = new R(this.pixelatedMaterial), this.scene = t, this.camera = o, this.normalEdgeStrength = s.normalEdgeStrength || 0.3, this.depthEdgeStrength = s.depthEdgeStrength || 0.4, this.beautyRenderTarget = new D(), this.beautyRenderTarget.texture.minFilter = F, this.beautyRenderTarget.texture.magFilter = F, this.beautyRenderTarget.texture.type = T, this.beautyRenderTarget.depthTexture = new st(), this.normalRenderTarget = new D(), this.normalRenderTarget.texture.minFilter = F, this.normalRenderTarget.texture.magFilter = F, this.normalRenderTarget.texture.type = T;
2307
+ class Ge extends D {
2308
+ constructor(t, e, o, s = {}) {
2309
+ super(), this.pixelSize = t, this.resolution = new f(), this.renderResolution = new f(), this.pixelatedMaterial = this.createPixelatedMaterial(), this.normalMaterial = new ct(), this.fsQuad = new R(this.pixelatedMaterial), this.scene = e, this.camera = o, this.normalEdgeStrength = s.normalEdgeStrength || 0.3, this.depthEdgeStrength = s.depthEdgeStrength || 0.4, this.beautyRenderTarget = new F(), this.beautyRenderTarget.texture.minFilter = N, this.beautyRenderTarget.texture.magFilter = N, this.beautyRenderTarget.texture.type = P, this.beautyRenderTarget.depthTexture = new dt(), this.normalRenderTarget = new F(), this.normalRenderTarget.texture.minFilter = N, this.normalRenderTarget.texture.magFilter = N, this.normalRenderTarget.texture.type = P;
2101
2310
  }
2102
2311
  dispose() {
2103
2312
  this.beautyRenderTarget.dispose(), this.normalRenderTarget.dispose(), this.pixelatedMaterial.dispose(), this.normalMaterial.dispose(), this.fsQuad.dispose();
2104
2313
  }
2105
- setSize(e, t) {
2106
- this.resolution.set(e, t), this.renderResolution.set(e / this.pixelSize | 0, t / this.pixelSize | 0);
2314
+ setSize(t, e) {
2315
+ this.resolution.set(t, e), this.renderResolution.set(t / this.pixelSize | 0, e / this.pixelSize | 0);
2107
2316
  const { x: o, y: s } = this.renderResolution;
2108
2317
  this.beautyRenderTarget.setSize(o, s), this.normalRenderTarget.setSize(o, s), this.fsQuad.material.uniforms.resolution.value.set(o, s, 1 / o, 1 / s);
2109
2318
  }
2110
- setPixelSize(e) {
2111
- this.pixelSize = e, this.setSize(this.resolution.x, this.resolution.y);
2319
+ setPixelSize(t) {
2320
+ this.pixelSize = t, this.setSize(this.resolution.x, this.resolution.y);
2112
2321
  }
2113
- render(e, t) {
2322
+ render(t, e) {
2114
2323
  const o = this.fsQuad.material.uniforms;
2115
- o.normalEdgeStrength.value = this.normalEdgeStrength, o.depthEdgeStrength.value = this.depthEdgeStrength, e.setRenderTarget(this.beautyRenderTarget), e.render(this.scene, this.camera);
2324
+ o.normalEdgeStrength.value = this.normalEdgeStrength, o.depthEdgeStrength.value = this.depthEdgeStrength, t.setRenderTarget(this.beautyRenderTarget), t.render(this.scene, this.camera);
2116
2325
  const s = this.scene.overrideMaterial;
2117
- e.setRenderTarget(this.normalRenderTarget), this.scene.overrideMaterial = this.normalMaterial, e.render(this.scene, this.camera), this.scene.overrideMaterial = s, o.tDiffuse.value = this.beautyRenderTarget.texture, o.tDepth.value = this.beautyRenderTarget.depthTexture, o.tNormal.value = this.normalRenderTarget.texture, this.renderToScreen ? e.setRenderTarget(null) : (e.setRenderTarget(t), this.clear && e.clear()), this.fsQuad.render(e);
2326
+ t.setRenderTarget(this.normalRenderTarget), this.scene.overrideMaterial = this.normalMaterial, t.render(this.scene, this.camera), this.scene.overrideMaterial = s, o.tDiffuse.value = this.beautyRenderTarget.texture, o.tDepth.value = this.beautyRenderTarget.depthTexture, o.tNormal.value = this.normalRenderTarget.texture, this.renderToScreen ? t.setRenderTarget(null) : (t.setRenderTarget(e), this.clear && t.clear()), this.fsQuad.render(t);
2118
2327
  }
2119
2328
  createPixelatedMaterial() {
2120
- return new A({
2329
+ return new T({
2121
2330
  uniforms: {
2122
2331
  tDiffuse: { value: null },
2123
2332
  tDepth: { value: null },
2124
2333
  tNormal: { value: null },
2125
2334
  resolution: {
2126
- value: new at(
2335
+ value: new ft(
2127
2336
  this.renderResolution.x,
2128
2337
  this.renderResolution.y,
2129
2338
  1 / this.renderResolution.x,
@@ -2242,28 +2451,28 @@ class Fe extends C {
2242
2451
  });
2243
2452
  }
2244
2453
  }
2245
- const mo = /* @__PURE__ */ u({
2454
+ const Co = /* @__PURE__ */ u({
2246
2455
  __name: "Pixelation",
2247
2456
  props: {
2248
2457
  pixelSize: {},
2249
2458
  depthEdgeStrength: {},
2250
2459
  normalEdgeStrength: {}
2251
2460
  },
2252
- setup(r, { expose: e }) {
2253
- const t = r, { scene: o, camera: s } = y(), { pass: a } = N(() => new Fe(t.pixelSize, o.value, s.value), t);
2254
- return e({ pass: a }), x(() => {
2255
- a.value.setPixelSize(t.pixelSize);
2256
- }), m(
2461
+ setup(n, { expose: t }) {
2462
+ const e = n, { scene: o, camera: s } = y(), { pass: a } = U(() => new Ge(e.pixelSize, o.value, s.value), e);
2463
+ return t({ pass: a }), w(() => {
2464
+ a.value.setPixelSize(e.pixelSize);
2465
+ }), v(
2257
2466
  [
2258
- [() => t.depthEdgeStrength, "depthEdgeStrength"],
2259
- [() => t.normalEdgeStrength, "normalEdgeStrength"]
2467
+ [() => e.depthEdgeStrength, "depthEdgeStrength"],
2468
+ [() => e.normalEdgeStrength, "normalEdgeStrength"]
2260
2469
  ],
2261
2470
  a,
2262
- () => new Fe(1, o.value, s.value)
2471
+ () => new Ge(1, o.value, s.value)
2263
2472
  ), () => {
2264
2473
  };
2265
2474
  }
2266
- }), Lt = {
2475
+ }), Wt = {
2267
2476
  name: "OutputShader",
2268
2477
  uniforms: {
2269
2478
  tDiffuse: { value: null },
@@ -2349,39 +2558,39 @@ const mo = /* @__PURE__ */ u({
2349
2558
  }`
2350
2559
  )
2351
2560
  };
2352
- class Ot extends C {
2561
+ class Ut extends D {
2353
2562
  constructor() {
2354
2563
  super();
2355
- const e = Lt;
2356
- this.uniforms = P.clone(e.uniforms), this.material = new rt({
2357
- name: e.name,
2564
+ const t = Wt;
2565
+ this.uniforms = L.clone(t.uniforms), this.material = new ht({
2566
+ name: t.name,
2358
2567
  uniforms: this.uniforms,
2359
- vertexShader: e.vertexShader,
2360
- fragmentShader: e.fragmentShader
2568
+ vertexShader: t.vertexShader,
2569
+ fragmentShader: t.fragmentShader
2361
2570
  }), this.fsQuad = new R(this.material), this._outputColorSpace = null, this._toneMapping = null;
2362
2571
  }
2363
- render(e, t, o) {
2364
- this.uniforms.tDiffuse.value = o.texture, this.uniforms.toneMappingExposure.value = e.toneMappingExposure, (this._outputColorSpace !== e.outputColorSpace || this._toneMapping !== e.toneMapping) && (this._outputColorSpace = e.outputColorSpace, this._toneMapping = e.toneMapping, this.material.defines = {}, it.getTransfer(this._outputColorSpace) === nt && (this.material.defines.SRGB_TRANSFER = ""), this._toneMapping === lt ? this.material.defines.LINEAR_TONE_MAPPING = "" : this._toneMapping === ut ? this.material.defines.REINHARD_TONE_MAPPING = "" : this._toneMapping === ct ? this.material.defines.CINEON_TONE_MAPPING = "" : this._toneMapping === dt ? this.material.defines.ACES_FILMIC_TONE_MAPPING = "" : this._toneMapping === ft ? this.material.defines.AGX_TONE_MAPPING = "" : this._toneMapping === ht ? this.material.defines.NEUTRAL_TONE_MAPPING = "" : this._toneMapping === pt && (this.material.defines.CUSTOM_TONE_MAPPING = ""), this.material.needsUpdate = !0), this.renderToScreen === !0 ? (e.setRenderTarget(null), this.fsQuad.render(e)) : (e.setRenderTarget(t), this.clear && e.clear(e.autoClearColor, e.autoClearDepth, e.autoClearStencil), this.fsQuad.render(e));
2572
+ render(t, e, o) {
2573
+ this.uniforms.tDiffuse.value = o.texture, this.uniforms.toneMappingExposure.value = t.toneMappingExposure, (this._outputColorSpace !== t.outputColorSpace || this._toneMapping !== t.toneMapping) && (this._outputColorSpace = t.outputColorSpace, this._toneMapping = t.toneMapping, this.material.defines = {}, pt.getTransfer(this._outputColorSpace) === mt && (this.material.defines.SRGB_TRANSFER = ""), this._toneMapping === vt ? this.material.defines.LINEAR_TONE_MAPPING = "" : this._toneMapping === gt ? this.material.defines.REINHARD_TONE_MAPPING = "" : this._toneMapping === xt ? this.material.defines.CINEON_TONE_MAPPING = "" : this._toneMapping === bt ? this.material.defines.ACES_FILMIC_TONE_MAPPING = "" : this._toneMapping === St ? this.material.defines.AGX_TONE_MAPPING = "" : this._toneMapping === wt ? this.material.defines.NEUTRAL_TONE_MAPPING = "" : this._toneMapping === At && (this.material.defines.CUSTOM_TONE_MAPPING = ""), this.material.needsUpdate = !0), this.renderToScreen === !0 ? (t.setRenderTarget(null), this.fsQuad.render(t)) : (t.setRenderTarget(e), this.clear && t.clear(t.autoClearColor, t.autoClearDepth, t.autoClearStencil), this.fsQuad.render(t));
2365
2574
  }
2366
2575
  dispose() {
2367
2576
  this.material.dispose(), this.fsQuad.dispose();
2368
2577
  }
2369
2578
  }
2370
- const go = /* @__PURE__ */ u({
2579
+ const Eo = /* @__PURE__ */ u({
2371
2580
  __name: "Output",
2372
- setup(r, { expose: e }) {
2373
- const { pass: t } = N(() => new Ot());
2374
- return e({ pass: t }), () => {
2581
+ setup(n, { expose: t }) {
2582
+ const { pass: e } = U(() => new Ut());
2583
+ return t({ pass: e }), () => {
2375
2584
  };
2376
2585
  }
2377
- }), j = {
2586
+ }), Y = {
2378
2587
  name: "SMAAEdgesShader",
2379
2588
  defines: {
2380
2589
  SMAA_THRESHOLD: "0.1"
2381
2590
  },
2382
2591
  uniforms: {
2383
2592
  tDiffuse: { value: null },
2384
- resolution: { value: new d(1 / 1024, 1 / 512) }
2593
+ resolution: { value: new f(1 / 1024, 1 / 512) }
2385
2594
  },
2386
2595
  vertexShader: (
2387
2596
  /* glsl */
@@ -2475,7 +2684,7 @@ const go = /* @__PURE__ */ u({
2475
2684
 
2476
2685
  }`
2477
2686
  )
2478
- }, V = {
2687
+ }, k = {
2479
2688
  name: "SMAAWeightsShader",
2480
2689
  defines: {
2481
2690
  SMAA_MAX_SEARCH_STEPS: "8",
@@ -2487,7 +2696,7 @@ const go = /* @__PURE__ */ u({
2487
2696
  tDiffuse: { value: null },
2488
2697
  tArea: { value: null },
2489
2698
  tSearch: { value: null },
2490
- resolution: { value: new d(1 / 1024, 1 / 512) }
2699
+ resolution: { value: new f(1 / 1024, 1 / 512) }
2491
2700
  },
2492
2701
  vertexShader: (
2493
2702
  /* glsl */
@@ -2725,12 +2934,12 @@ const go = /* @__PURE__ */ u({
2725
2934
 
2726
2935
  }`
2727
2936
  )
2728
- }, ee = {
2937
+ }, ue = {
2729
2938
  name: "SMAABlendShader",
2730
2939
  uniforms: {
2731
2940
  tDiffuse: { value: null },
2732
2941
  tColor: { value: null },
2733
- resolution: { value: new d(1 / 1024, 1 / 512) }
2942
+ resolution: { value: new f(1 / 1024, 1 / 512) }
2734
2943
  },
2735
2944
  vertexShader: (
2736
2945
  /* glsl */
@@ -2815,43 +3024,43 @@ const go = /* @__PURE__ */ u({
2815
3024
  }`
2816
3025
  )
2817
3026
  };
2818
- class Rt extends C {
2819
- constructor(e, t) {
2820
- super(), this.edgesRT = new D(e, t, {
3027
+ class Gt extends D {
3028
+ constructor(t, e) {
3029
+ super(), this.edgesRT = new F(t, e, {
2821
3030
  depthBuffer: !1,
2822
- type: T
2823
- }), this.edgesRT.texture.name = "SMAAPass.edges", this.weightsRT = new D(e, t, {
3031
+ type: P
3032
+ }), this.edgesRT.texture.name = "SMAAPass.edges", this.weightsRT = new F(t, e, {
2824
3033
  depthBuffer: !1,
2825
- type: T
3034
+ type: P
2826
3035
  }), this.weightsRT.texture.name = "SMAAPass.weights";
2827
3036
  const o = this, s = new Image();
2828
3037
  s.src = this.getAreaTexture(), s.onload = function() {
2829
3038
  o.areaTexture.needsUpdate = !0;
2830
- }, this.areaTexture = new Me(), this.areaTexture.name = "SMAAPass.area", this.areaTexture.image = s, this.areaTexture.minFilter = mt, this.areaTexture.generateMipmaps = !1, this.areaTexture.flipY = !1;
3039
+ }, this.areaTexture = new Le(), this.areaTexture.name = "SMAAPass.area", this.areaTexture.image = s, this.areaTexture.minFilter = yt, this.areaTexture.generateMipmaps = !1, this.areaTexture.flipY = !1;
2831
3040
  const a = new Image();
2832
3041
  a.src = this.getSearchTexture(), a.onload = function() {
2833
3042
  o.searchTexture.needsUpdate = !0;
2834
- }, this.searchTexture = new Me(), this.searchTexture.name = "SMAAPass.search", this.searchTexture.image = a, this.searchTexture.magFilter = F, this.searchTexture.minFilter = F, this.searchTexture.generateMipmaps = !1, this.searchTexture.flipY = !1, this.uniformsEdges = P.clone(j.uniforms), this.uniformsEdges.resolution.value.set(1 / e, 1 / t), this.materialEdges = new A({
2835
- defines: Object.assign({}, j.defines),
3043
+ }, this.searchTexture = new Le(), this.searchTexture.name = "SMAAPass.search", this.searchTexture.image = a, this.searchTexture.magFilter = N, this.searchTexture.minFilter = N, this.searchTexture.generateMipmaps = !1, this.searchTexture.flipY = !1, this.uniformsEdges = L.clone(Y.uniforms), this.uniformsEdges.resolution.value.set(1 / t, 1 / e), this.materialEdges = new T({
3044
+ defines: Object.assign({}, Y.defines),
2836
3045
  uniforms: this.uniformsEdges,
2837
- vertexShader: j.vertexShader,
2838
- fragmentShader: j.fragmentShader
2839
- }), this.uniformsWeights = P.clone(V.uniforms), this.uniformsWeights.resolution.value.set(1 / e, 1 / t), this.uniformsWeights.tDiffuse.value = this.edgesRT.texture, this.uniformsWeights.tArea.value = this.areaTexture, this.uniformsWeights.tSearch.value = this.searchTexture, this.materialWeights = new A({
2840
- defines: Object.assign({}, V.defines),
3046
+ vertexShader: Y.vertexShader,
3047
+ fragmentShader: Y.fragmentShader
3048
+ }), this.uniformsWeights = L.clone(k.uniforms), this.uniformsWeights.resolution.value.set(1 / t, 1 / e), this.uniformsWeights.tDiffuse.value = this.edgesRT.texture, this.uniformsWeights.tArea.value = this.areaTexture, this.uniformsWeights.tSearch.value = this.searchTexture, this.materialWeights = new T({
3049
+ defines: Object.assign({}, k.defines),
2841
3050
  uniforms: this.uniformsWeights,
2842
- vertexShader: V.vertexShader,
2843
- fragmentShader: V.fragmentShader
2844
- }), this.uniformsBlend = P.clone(ee.uniforms), this.uniformsBlend.resolution.value.set(1 / e, 1 / t), this.uniformsBlend.tDiffuse.value = this.weightsRT.texture, this.materialBlend = new A({
3051
+ vertexShader: k.vertexShader,
3052
+ fragmentShader: k.fragmentShader
3053
+ }), this.uniformsBlend = L.clone(ue.uniforms), this.uniformsBlend.resolution.value.set(1 / t, 1 / e), this.uniformsBlend.tDiffuse.value = this.weightsRT.texture, this.materialBlend = new T({
2845
3054
  uniforms: this.uniformsBlend,
2846
- vertexShader: ee.vertexShader,
2847
- fragmentShader: ee.fragmentShader
3055
+ vertexShader: ue.vertexShader,
3056
+ fragmentShader: ue.fragmentShader
2848
3057
  }), this.fsQuad = new R(null);
2849
3058
  }
2850
- render(e, t, o) {
2851
- this.uniformsEdges.tDiffuse.value = o.texture, this.fsQuad.material = this.materialEdges, e.setRenderTarget(this.edgesRT), this.clear && e.clear(), this.fsQuad.render(e), this.fsQuad.material = this.materialWeights, e.setRenderTarget(this.weightsRT), this.clear && e.clear(), this.fsQuad.render(e), this.uniformsBlend.tColor.value = o.texture, this.fsQuad.material = this.materialBlend, this.renderToScreen ? (e.setRenderTarget(null), this.fsQuad.render(e)) : (e.setRenderTarget(t), this.clear && e.clear(), this.fsQuad.render(e));
3059
+ render(t, e, o) {
3060
+ this.uniformsEdges.tDiffuse.value = o.texture, this.fsQuad.material = this.materialEdges, t.setRenderTarget(this.edgesRT), this.clear && t.clear(), this.fsQuad.render(t), this.fsQuad.material = this.materialWeights, t.setRenderTarget(this.weightsRT), this.clear && t.clear(), this.fsQuad.render(t), this.uniformsBlend.tColor.value = o.texture, this.fsQuad.material = this.materialBlend, this.renderToScreen ? (t.setRenderTarget(null), this.fsQuad.render(t)) : (t.setRenderTarget(e), this.clear && t.clear(), this.fsQuad.render(t));
2852
3061
  }
2853
- setSize(e, t) {
2854
- this.edgesRT.setSize(e, t), this.weightsRT.setSize(e, t), this.materialEdges.uniforms.resolution.value.set(1 / e, 1 / t), this.materialWeights.uniforms.resolution.value.set(1 / e, 1 / t), this.materialBlend.uniforms.resolution.value.set(1 / e, 1 / t);
3062
+ setSize(t, e) {
3063
+ this.edgesRT.setSize(t, e), this.weightsRT.setSize(t, e), this.materialEdges.uniforms.resolution.value.set(1 / t, 1 / e), this.materialWeights.uniforms.resolution.value.set(1 / t, 1 / e), this.materialBlend.uniforms.resolution.value.set(1 / t, 1 / e);
2855
3064
  }
2856
3065
  getAreaTexture() {
2857
3066
  return "data:image/png;base64,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";
@@ -2863,27 +3072,27 @@ class Rt extends C {
2863
3072
  this.edgesRT.dispose(), this.weightsRT.dispose(), this.areaTexture.dispose(), this.searchTexture.dispose(), this.materialEdges.dispose(), this.materialWeights.dispose(), this.materialBlend.dispose(), this.fsQuad.dispose();
2864
3073
  }
2865
3074
  }
2866
- const vo = /* @__PURE__ */ u({
3075
+ const Po = /* @__PURE__ */ u({
2867
3076
  __name: "SMAA",
2868
3077
  props: {
2869
3078
  width: {},
2870
3079
  height: {}
2871
3080
  },
2872
- setup(r, { expose: e }) {
2873
- const t = r, { sizes: o } = y(), { pixelRatio: s } = ze(), a = O(() => t.width ?? o.width.value * s.value), i = O(() => t.height ?? o.height.value * s.value), { pass: n } = N(() => new Rt(a.value, i.value), t);
2874
- return e({ pass: n }), x(() => {
2875
- n.value.setSize(a.value, i.value);
3081
+ setup(n, { expose: t }) {
3082
+ const e = n, { sizes: o } = y(), { pixelRatio: s } = Ye(), a = O(() => e.width ?? o.width.value * s.value), r = O(() => e.height ?? o.height.value * s.value), { pass: i } = U(() => new Gt(a.value, r.value), e);
3083
+ return t({ pass: i }), w(() => {
3084
+ i.value.setSize(a.value, r.value);
2876
3085
  }), () => {
2877
3086
  };
2878
3087
  }
2879
- }), He = {
3088
+ }), Ke = {
2880
3089
  name: "LuminosityHighPassShader",
2881
3090
  shaderID: "luminosityHighPass",
2882
3091
  uniforms: {
2883
3092
  tDiffuse: { value: null },
2884
3093
  luminosityThreshold: { value: 1 },
2885
3094
  smoothWidth: { value: 1 },
2886
- defaultColor: { value: new k(0) },
3095
+ defaultColor: { value: new K(0) },
2887
3096
  defaultOpacity: { value: 0 }
2888
3097
  },
2889
3098
  vertexShader: (
@@ -2927,80 +3136,80 @@ const vo = /* @__PURE__ */ u({
2927
3136
  }`
2928
3137
  )
2929
3138
  };
2930
- class B extends C {
2931
- constructor(e, t, o, s) {
2932
- super(), this.strength = t !== void 0 ? t : 1, this.radius = o, this.threshold = s, this.resolution = e !== void 0 ? new d(e.x, e.y) : new d(256, 256), this.clearColor = new k(0, 0, 0), this.renderTargetsHorizontal = [], this.renderTargetsVertical = [], this.nMips = 5;
2933
- let a = Math.round(this.resolution.x / 2), i = Math.round(this.resolution.y / 2);
2934
- this.renderTargetBright = new D(a, i, { type: T }), this.renderTargetBright.texture.name = "UnrealBloomPass.bright", this.renderTargetBright.texture.generateMipmaps = !1;
2935
- for (let g = 0; g < this.nMips; g++) {
2936
- const c = new D(a, i, { type: T });
2937
- c.texture.name = "UnrealBloomPass.h" + g, c.texture.generateMipmaps = !1, this.renderTargetsHorizontal.push(c);
2938
- const b = new D(a, i, { type: T });
2939
- b.texture.name = "UnrealBloomPass.v" + g, b.texture.generateMipmaps = !1, this.renderTargetsVertical.push(b), a = Math.round(a / 2), i = Math.round(i / 2);
3139
+ class z extends D {
3140
+ constructor(t, e, o, s) {
3141
+ super(), this.strength = e !== void 0 ? e : 1, this.radius = o, this.threshold = s, this.resolution = t !== void 0 ? new f(t.x, t.y) : new f(256, 256), this.clearColor = new K(0, 0, 0), this.renderTargetsHorizontal = [], this.renderTargetsVertical = [], this.nMips = 5;
3142
+ let a = Math.round(this.resolution.x / 2), r = Math.round(this.resolution.y / 2);
3143
+ this.renderTargetBright = new F(a, r, { type: P }), this.renderTargetBright.texture.name = "UnrealBloomPass.bright", this.renderTargetBright.texture.generateMipmaps = !1;
3144
+ for (let b = 0; b < this.nMips; b++) {
3145
+ const c = new F(a, r, { type: P });
3146
+ c.texture.name = "UnrealBloomPass.h" + b, c.texture.generateMipmaps = !1, this.renderTargetsHorizontal.push(c);
3147
+ const S = new F(a, r, { type: P });
3148
+ S.texture.name = "UnrealBloomPass.v" + b, S.texture.generateMipmaps = !1, this.renderTargetsVertical.push(S), a = Math.round(a / 2), r = Math.round(r / 2);
2940
3149
  }
2941
- const n = He;
2942
- this.highPassUniforms = P.clone(n.uniforms), this.highPassUniforms.luminosityThreshold.value = s, this.highPassUniforms.smoothWidth.value = 0.01, this.materialHighPassFilter = new A({
3150
+ const i = Ke;
3151
+ this.highPassUniforms = L.clone(i.uniforms), this.highPassUniforms.luminosityThreshold.value = s, this.highPassUniforms.smoothWidth.value = 0.01, this.materialHighPassFilter = new T({
2943
3152
  uniforms: this.highPassUniforms,
2944
- vertexShader: n.vertexShader,
2945
- fragmentShader: n.fragmentShader
3153
+ vertexShader: i.vertexShader,
3154
+ fragmentShader: i.fragmentShader
2946
3155
  }), this.separableBlurMaterials = [];
2947
3156
  const l = [3, 5, 7, 9, 11];
2948
- a = Math.round(this.resolution.x / 2), i = Math.round(this.resolution.y / 2);
2949
- for (let g = 0; g < this.nMips; g++)
2950
- this.separableBlurMaterials.push(this.getSeparableBlurMaterial(l[g])), this.separableBlurMaterials[g].uniforms.invSize.value = new d(1 / a, 1 / i), a = Math.round(a / 2), i = Math.round(i / 2);
2951
- this.compositeMaterial = this.getCompositeMaterial(this.nMips), this.compositeMaterial.uniforms.blurTexture1.value = this.renderTargetsVertical[0].texture, this.compositeMaterial.uniforms.blurTexture2.value = this.renderTargetsVertical[1].texture, this.compositeMaterial.uniforms.blurTexture3.value = this.renderTargetsVertical[2].texture, this.compositeMaterial.uniforms.blurTexture4.value = this.renderTargetsVertical[3].texture, this.compositeMaterial.uniforms.blurTexture5.value = this.renderTargetsVertical[4].texture, this.compositeMaterial.uniforms.bloomStrength.value = t, this.compositeMaterial.uniforms.bloomRadius.value = 0.1;
2952
- const p = [1, 0.8, 0.6, 0.4, 0.2];
2953
- this.compositeMaterial.uniforms.bloomFactors.value = p, this.bloomTintColors = [new L(1, 1, 1), new L(1, 1, 1), new L(1, 1, 1), new L(1, 1, 1), new L(1, 1, 1)], this.compositeMaterial.uniforms.bloomTintColors.value = this.bloomTintColors;
2954
- const f = Ue;
2955
- this.copyUniforms = P.clone(f.uniforms), this.blendMaterial = new A({
3157
+ a = Math.round(this.resolution.x / 2), r = Math.round(this.resolution.y / 2);
3158
+ for (let b = 0; b < this.nMips; b++)
3159
+ this.separableBlurMaterials.push(this.getSeparableBlurMaterial(l[b])), this.separableBlurMaterials[b].uniforms.invSize.value = new f(1 / a, 1 / r), a = Math.round(a / 2), r = Math.round(r / 2);
3160
+ this.compositeMaterial = this.getCompositeMaterial(this.nMips), this.compositeMaterial.uniforms.blurTexture1.value = this.renderTargetsVertical[0].texture, this.compositeMaterial.uniforms.blurTexture2.value = this.renderTargetsVertical[1].texture, this.compositeMaterial.uniforms.blurTexture3.value = this.renderTargetsVertical[2].texture, this.compositeMaterial.uniforms.blurTexture4.value = this.renderTargetsVertical[3].texture, this.compositeMaterial.uniforms.blurTexture5.value = this.renderTargetsVertical[4].texture, this.compositeMaterial.uniforms.bloomStrength.value = e, this.compositeMaterial.uniforms.bloomRadius.value = 0.1;
3161
+ const d = [1, 0.8, 0.6, 0.4, 0.2];
3162
+ this.compositeMaterial.uniforms.bloomFactors.value = d, this.bloomTintColors = [new B(1, 1, 1), new B(1, 1, 1), new B(1, 1, 1), new B(1, 1, 1), new B(1, 1, 1)], this.compositeMaterial.uniforms.bloomTintColors.value = this.bloomTintColors;
3163
+ const p = qe;
3164
+ this.copyUniforms = L.clone(p.uniforms), this.blendMaterial = new T({
2956
3165
  uniforms: this.copyUniforms,
2957
- vertexShader: f.vertexShader,
2958
- fragmentShader: f.fragmentShader,
2959
- blending: gt,
3166
+ vertexShader: p.vertexShader,
3167
+ fragmentShader: p.fragmentShader,
3168
+ blending: Mt,
2960
3169
  depthTest: !1,
2961
3170
  depthWrite: !1,
2962
3171
  transparent: !0
2963
- }), this.enabled = !0, this.needsSwap = !1, this._oldClearColor = new k(), this.oldClearAlpha = 1, this.basic = new vt(), this.fsQuad = new R(null);
3172
+ }), this.enabled = !0, this.needsSwap = !1, this._oldClearColor = new K(), this.oldClearAlpha = 1, this.basic = new Ve(), this.fsQuad = new R(null);
2964
3173
  }
2965
3174
  dispose() {
2966
- for (let e = 0; e < this.renderTargetsHorizontal.length; e++)
2967
- this.renderTargetsHorizontal[e].dispose();
2968
- for (let e = 0; e < this.renderTargetsVertical.length; e++)
2969
- this.renderTargetsVertical[e].dispose();
3175
+ for (let t = 0; t < this.renderTargetsHorizontal.length; t++)
3176
+ this.renderTargetsHorizontal[t].dispose();
3177
+ for (let t = 0; t < this.renderTargetsVertical.length; t++)
3178
+ this.renderTargetsVertical[t].dispose();
2970
3179
  this.renderTargetBright.dispose();
2971
- for (let e = 0; e < this.separableBlurMaterials.length; e++)
2972
- this.separableBlurMaterials[e].dispose();
3180
+ for (let t = 0; t < this.separableBlurMaterials.length; t++)
3181
+ this.separableBlurMaterials[t].dispose();
2973
3182
  this.compositeMaterial.dispose(), this.blendMaterial.dispose(), this.basic.dispose(), this.fsQuad.dispose();
2974
3183
  }
2975
- setSize(e, t) {
2976
- let o = Math.round(e / 2), s = Math.round(t / 2);
3184
+ setSize(t, e) {
3185
+ let o = Math.round(t / 2), s = Math.round(e / 2);
2977
3186
  this.renderTargetBright.setSize(o, s);
2978
3187
  for (let a = 0; a < this.nMips; a++)
2979
- this.renderTargetsHorizontal[a].setSize(o, s), this.renderTargetsVertical[a].setSize(o, s), this.separableBlurMaterials[a].uniforms.invSize.value = new d(1 / o, 1 / s), o = Math.round(o / 2), s = Math.round(s / 2);
3188
+ this.renderTargetsHorizontal[a].setSize(o, s), this.renderTargetsVertical[a].setSize(o, s), this.separableBlurMaterials[a].uniforms.invSize.value = new f(1 / o, 1 / s), o = Math.round(o / 2), s = Math.round(s / 2);
2980
3189
  }
2981
- render(e, t, o, s, a) {
2982
- e.getClearColor(this._oldClearColor), this.oldClearAlpha = e.getClearAlpha();
2983
- const i = e.autoClear;
2984
- e.autoClear = !1, e.setClearColor(this.clearColor, 0), a && e.state.buffers.stencil.setTest(!1), this.renderToScreen && (this.fsQuad.material = this.basic, this.basic.map = o.texture, e.setRenderTarget(null), e.clear(), this.fsQuad.render(e)), this.highPassUniforms.tDiffuse.value = o.texture, this.highPassUniforms.luminosityThreshold.value = this.threshold, this.fsQuad.material = this.materialHighPassFilter, e.setRenderTarget(this.renderTargetBright), e.clear(), this.fsQuad.render(e);
2985
- let n = this.renderTargetBright;
3190
+ render(t, e, o, s, a) {
3191
+ t.getClearColor(this._oldClearColor), this.oldClearAlpha = t.getClearAlpha();
3192
+ const r = t.autoClear;
3193
+ t.autoClear = !1, t.setClearColor(this.clearColor, 0), a && t.state.buffers.stencil.setTest(!1), this.renderToScreen && (this.fsQuad.material = this.basic, this.basic.map = o.texture, t.setRenderTarget(null), t.clear(), this.fsQuad.render(t)), this.highPassUniforms.tDiffuse.value = o.texture, this.highPassUniforms.luminosityThreshold.value = this.threshold, this.fsQuad.material = this.materialHighPassFilter, t.setRenderTarget(this.renderTargetBright), t.clear(), this.fsQuad.render(t);
3194
+ let i = this.renderTargetBright;
2986
3195
  for (let l = 0; l < this.nMips; l++)
2987
- this.fsQuad.material = this.separableBlurMaterials[l], this.separableBlurMaterials[l].uniforms.colorTexture.value = n.texture, this.separableBlurMaterials[l].uniforms.direction.value = B.BlurDirectionX, e.setRenderTarget(this.renderTargetsHorizontal[l]), e.clear(), this.fsQuad.render(e), this.separableBlurMaterials[l].uniforms.colorTexture.value = this.renderTargetsHorizontal[l].texture, this.separableBlurMaterials[l].uniforms.direction.value = B.BlurDirectionY, e.setRenderTarget(this.renderTargetsVertical[l]), e.clear(), this.fsQuad.render(e), n = this.renderTargetsVertical[l];
2988
- this.fsQuad.material = this.compositeMaterial, this.compositeMaterial.uniforms.bloomStrength.value = this.strength, this.compositeMaterial.uniforms.bloomRadius.value = this.radius, this.compositeMaterial.uniforms.bloomTintColors.value = this.bloomTintColors, e.setRenderTarget(this.renderTargetsHorizontal[0]), e.clear(), this.fsQuad.render(e), this.fsQuad.material = this.blendMaterial, this.copyUniforms.tDiffuse.value = this.renderTargetsHorizontal[0].texture, a && e.state.buffers.stencil.setTest(!0), this.renderToScreen ? (e.setRenderTarget(null), this.fsQuad.render(e)) : (e.setRenderTarget(o), this.fsQuad.render(e)), e.setClearColor(this._oldClearColor, this.oldClearAlpha), e.autoClear = i;
2989
- }
2990
- getSeparableBlurMaterial(e) {
2991
- const t = [];
2992
- for (let o = 0; o < e; o++)
2993
- t.push(0.39894 * Math.exp(-0.5 * o * o / (e * e)) / e);
2994
- return new A({
3196
+ this.fsQuad.material = this.separableBlurMaterials[l], this.separableBlurMaterials[l].uniforms.colorTexture.value = i.texture, this.separableBlurMaterials[l].uniforms.direction.value = z.BlurDirectionX, t.setRenderTarget(this.renderTargetsHorizontal[l]), t.clear(), this.fsQuad.render(t), this.separableBlurMaterials[l].uniforms.colorTexture.value = this.renderTargetsHorizontal[l].texture, this.separableBlurMaterials[l].uniforms.direction.value = z.BlurDirectionY, t.setRenderTarget(this.renderTargetsVertical[l]), t.clear(), this.fsQuad.render(t), i = this.renderTargetsVertical[l];
3197
+ this.fsQuad.material = this.compositeMaterial, this.compositeMaterial.uniforms.bloomStrength.value = this.strength, this.compositeMaterial.uniforms.bloomRadius.value = this.radius, this.compositeMaterial.uniforms.bloomTintColors.value = this.bloomTintColors, t.setRenderTarget(this.renderTargetsHorizontal[0]), t.clear(), this.fsQuad.render(t), this.fsQuad.material = this.blendMaterial, this.copyUniforms.tDiffuse.value = this.renderTargetsHorizontal[0].texture, a && t.state.buffers.stencil.setTest(!0), this.renderToScreen ? (t.setRenderTarget(null), this.fsQuad.render(t)) : (t.setRenderTarget(o), this.fsQuad.render(t)), t.setClearColor(this._oldClearColor, this.oldClearAlpha), t.autoClear = r;
3198
+ }
3199
+ getSeparableBlurMaterial(t) {
3200
+ const e = [];
3201
+ for (let o = 0; o < t; o++)
3202
+ e.push(0.39894 * Math.exp(-0.5 * o * o / (t * t)) / t);
3203
+ return new T({
2995
3204
  defines: {
2996
- KERNEL_RADIUS: e
3205
+ KERNEL_RADIUS: t
2997
3206
  },
2998
3207
  uniforms: {
2999
3208
  colorTexture: { value: null },
3000
- invSize: { value: new d(0.5, 0.5) },
3209
+ invSize: { value: new f(0.5, 0.5) },
3001
3210
  // inverse texture size
3002
- direction: { value: new d(0.5, 0.5) },
3003
- gaussianCoefficients: { value: t }
3211
+ direction: { value: new f(0.5, 0.5) },
3212
+ gaussianCoefficients: { value: e }
3004
3213
  // precomputed Gaussian coefficients
3005
3214
  },
3006
3215
  vertexShader: `varying vec2 vUv;
@@ -3031,10 +3240,10 @@ class B extends C {
3031
3240
  }`
3032
3241
  });
3033
3242
  }
3034
- getCompositeMaterial(e) {
3035
- return new A({
3243
+ getCompositeMaterial(t) {
3244
+ return new T({
3036
3245
  defines: {
3037
- NUM_MIPS: e
3246
+ NUM_MIPS: t
3038
3247
  },
3039
3248
  uniforms: {
3040
3249
  blurTexture1: { value: null },
@@ -3078,70 +3287,74 @@ class B extends C {
3078
3287
  });
3079
3288
  }
3080
3289
  }
3081
- B.BlurDirectionX = new d(1, 0);
3082
- B.BlurDirectionY = new d(0, 1);
3083
- const xo = /* @__PURE__ */ u({
3290
+ z.BlurDirectionX = new f(1, 0);
3291
+ z.BlurDirectionY = new f(0, 1);
3292
+ const Do = /* @__PURE__ */ u({
3084
3293
  __name: "UnrealBloom",
3085
3294
  props: {
3086
3295
  radius: { default: 0 },
3087
3296
  strength: { default: 1 },
3088
3297
  threshold: { default: 0 }
3089
3298
  },
3090
- setup(r, { expose: e }) {
3091
- const t = r, { sizes: o } = y(), { pass: s } = N(() => new B(
3092
- new d(o.width.value, o.height.value),
3093
- t.radius,
3094
- t.strength,
3095
- t.threshold
3096
- ), t);
3097
- return e({ pass: s }), x(() => {
3299
+ setup(n, { expose: t }) {
3300
+ const e = n, { sizes: o } = y(), { pass: s } = U(() => new z(
3301
+ new f(o.width.value, o.height.value),
3302
+ e.radius,
3303
+ e.strength,
3304
+ e.threshold
3305
+ ), e);
3306
+ return t({ pass: s }), w(() => {
3098
3307
  var a;
3099
- s.value.radius = t.radius ?? ((a = s.value.getCompositeMaterial().uniforms.bloomRadius) == null ? void 0 : a.value) ?? 0.1;
3100
- }), x(() => {
3308
+ s.value.radius = e.radius ?? ((a = s.value.getCompositeMaterial().uniforms.bloomRadius) == null ? void 0 : a.value) ?? 0.1;
3309
+ }), w(() => {
3101
3310
  var a;
3102
- s.value.strength = t.strength ?? ((a = s.value.getCompositeMaterial().uniforms.bloomStrength) == null ? void 0 : a.value) ?? 1;
3103
- }), x(() => {
3311
+ s.value.strength = e.strength ?? ((a = s.value.getCompositeMaterial().uniforms.bloomStrength) == null ? void 0 : a.value) ?? 1;
3312
+ }), w(() => {
3104
3313
  var a;
3105
- s.value.threshold = t.threshold ?? ((a = He.uniforms.luminosityThreshold) == null ? void 0 : a.value) ?? 1;
3314
+ s.value.threshold = e.threshold ?? ((a = Ke.uniforms.luminosityThreshold) == null ? void 0 : a.value) ?? 1;
3106
3315
  }), () => {
3107
3316
  };
3108
3317
  }
3109
3318
  });
3110
3319
  export {
3111
- kt as BarrelBlurPmndrs,
3112
- Gt as BloomPmndrs,
3113
- co as BrightnessContrastPmndrs,
3114
- Qt as ChromaticAberrationPmndrs,
3115
- _t as ColorAveragePmndrs,
3116
- no as ColorDepthPmndrs,
3117
- Ht as DepthOfFieldPmndrs,
3118
- ro as DepthPickingPassPmndrs,
3119
- oo as DotScreenPmndrs,
3120
- fo as EffectComposer,
3121
- Ut as EffectComposerPmndrs,
3122
- uo as FishEyePmndrs,
3123
- ho as Glitch,
3124
- Xt as GlitchPmndrs,
3125
- io as GodRaysPmndrs,
3126
- lo as GridPmndrs,
3127
- po as Halftone,
3128
- Kt as HueSaturationPmndrs,
3129
- Zt as KuwaharaPmndrs,
3130
- $t as LensDistortionPmndrs,
3131
- ao as LinocutPmndrs,
3132
- It as NoisePmndrs,
3133
- jt as OutlinePmndrs,
3134
- go as Output,
3135
- mo as Pixelation,
3136
- Vt as PixelationPmndrs,
3137
- vo as SMAA,
3138
- Jt as ScanlinePmndrs,
3139
- so as SepiaPmndrs,
3140
- eo as ShockWavePmndrs,
3141
- to as TiltShiftPmndrs,
3142
- qt as ToneMappingPmndrs,
3143
- xo as UnrealBloom,
3144
- Yt as VignettePmndrs,
3145
- N as useEffect,
3320
+ Ao as ASCIIPmndrs,
3321
+ $t as BarrelBlurPmndrs,
3322
+ kt as BloomPmndrs,
3323
+ xo as BrightnessContrastPmndrs,
3324
+ to as ChromaticAberrationPmndrs,
3325
+ ro as ColorAveragePmndrs,
3326
+ mo as ColorDepthPmndrs,
3327
+ qt as DepthOfFieldPmndrs,
3328
+ ho as DepthPickingPassPmndrs,
3329
+ uo as DotScreenPmndrs,
3330
+ yo as EffectComposer,
3331
+ Yt as EffectComposerPmndrs,
3332
+ So as FXAAPmndrs,
3333
+ go as FishEyePmndrs,
3334
+ Mo as Glitch,
3335
+ Qt as GlitchPmndrs,
3336
+ po as GodRaysPmndrs,
3337
+ vo as GridPmndrs,
3338
+ To as Halftone,
3339
+ oo as HueSaturationPmndrs,
3340
+ ao as KuwaharaPmndrs,
3341
+ no as LensDistortionPmndrs,
3342
+ fo as LinocutPmndrs,
3343
+ Kt as NoisePmndrs,
3344
+ Jt as OutlinePmndrs,
3345
+ Eo as Output,
3346
+ Co as Pixelation,
3347
+ Zt as PixelationPmndrs,
3348
+ Po as SMAA,
3349
+ bo as SMAAPmndrs,
3350
+ so as ScanlinePmndrs,
3351
+ co as SepiaPmndrs,
3352
+ io as ShockWavePmndrs,
3353
+ wo as TexturePmndrs,
3354
+ lo as TiltShiftPmndrs,
3355
+ eo as ToneMappingPmndrs,
3356
+ Do as UnrealBloom,
3357
+ _t as VignettePmndrs,
3358
+ U as useEffect,
3146
3359
  h as useEffectPmndrs
3147
3360
  };