rayzee 11.15.1 → 11.16.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.
Files changed (38) hide show
  1. package/dist/{ArchiveFormats-DGypbJbi.js → ArchiveFormats-CWi6IbSp.js} +3 -3
  2. package/dist/{ArchiveImporter-DO52X2Wv.js → ArchiveImporter-CEv5EDgg.js} +3 -3
  3. package/dist/{BidirectionalIntegrator-BDAVOhHt.js → BidirectionalIntegrator-KWRQrMXX.js} +94 -94
  4. package/dist/{CameraRay-BrivdtGO.js → CameraRay-CdVb2LnS.js} +2 -2
  5. package/dist/{ColorManagement-m9mZF5u4.js → ColorManagement-B6SgefNi.js} +1 -1
  6. package/dist/{CompactKernel-CGteMt2T.js → CompactKernel-C6TCBB6i.js} +1432 -1087
  7. package/dist/{DepthPass-CucSh6We.js → DepthPass-BMnBuepB.js} +3 -3
  8. package/dist/{EngineIssues-t5p7TEjb.js → EngineIssues-DHAU18xh.js} +2 -1
  9. package/dist/{LocalExposure-2gts3VQL.js → LocalExposure-CMO6fd8G.js} +1 -1
  10. package/dist/{NeuralRetouch-XHVjbYAw.js → NeuralRetouch-CYRGwe9E.js} +1 -1
  11. package/dist/{NeuralSuperRes-BvBV4gN4.js → NeuralSuperRes-p0A3_wjO.js} +1 -1
  12. package/dist/{OpenStorage-Brn8HYNA.js → OpenStorage-CjlOYQyW.js} +1 -1
  13. package/dist/{PhysicalSky-CE3UvfuW.js → PhysicalSky-qHATDBbB.js} +1 -1
  14. package/dist/{PictureView-DXa3ED9l.js → PictureView-6y4XsUf0.js} +3 -3
  15. package/dist/{RayzeeRenderer-DPsWdbUI.js → RayzeeRenderer-ClGfovbz.js} +1694 -1671
  16. package/dist/{TextureBuckets-BOZzBXSD.js → TextureBuckets-CcOI4Bdg.js} +4 -0
  17. package/dist/{TextureSampling-D81EJ9uO.js → TextureSampling-CQMmzhCp.js} +1 -1
  18. package/dist/addons/archives.es.js +1 -1
  19. package/dist/addons/bidirectional.es.js +1 -1
  20. package/dist/addons/color.es.js +1 -1
  21. package/dist/addons/physical-sky.es.js +1 -1
  22. package/dist/addons/storage.es.js +1 -1
  23. package/dist/rayzee-core.es.js +4 -4
  24. package/dist/rayzee.es.js +554 -555
  25. package/dist/rayzee.umd.js +65 -65
  26. package/package.json +1 -1
  27. package/src/EngineDefaults.js +6 -0
  28. package/src/EngineIssues.js +1 -0
  29. package/src/RayzeeRenderer.js +36 -0
  30. package/src/RenderSettings.js +29 -1
  31. package/src/pathtracer/PathTracer.js +22 -0
  32. package/src/pathtracer/UniformManager.js +7 -0
  33. package/src/shaders/Fog.js +395 -0
  34. package/src/shaders/LightsDirect.js +6 -2
  35. package/src/shaders/Random.js +10 -1
  36. package/src/shaders/SceneResources.js +2 -0
  37. package/src/shaders/kernels/ShadeKernel.js +98 -0
  38. package/src/viewer/PathTracerApp.js +2 -11
@@ -1,7 +1,7 @@
1
1
  import { a as e, i as t, r as n } from "./Logger-D7hic8LA.js";
2
- import { l as r, t as i } from "./TextureBuckets-BOZzBXSD.js";
2
+ import { l as r, t as i } from "./TextureBuckets-CcOI4Bdg.js";
3
3
  import { f as a, v as o, y as s } from "./BufferLayout-ny3WneEc.js";
4
- import { n as c } from "./EngineIssues-t5p7TEjb.js";
4
+ import { n as c } from "./EngineIssues-DHAU18xh.js";
5
5
  import { d as l, s as u } from "./FileIdentity-BXmPNvJP.js";
6
6
  import { n as d } from "./AssetConfig-C8BsprCp.js";
7
7
  import { BackSide as f, Box3 as p, BufferAttribute as m, Color as h, DataTexture as g, DoubleSide as _, FrontSide as v, LoaderUtils as y, Matrix3 as b, Matrix4 as x, RGBAFormat as S, UnsignedByteType as C, Vector2 as w, Vector3 as T } from "three";
@@ -1219,7 +1219,7 @@ var Ze = class {
1219
1219
  samples: this.samples.slice()
1220
1220
  };
1221
1221
  }
1222
- }, Qe = "11.15.1", $e = [
1222
+ }, Qe = "11.16.0", $e = [
1223
1223
  [/\.jpe?g(\?|#|$)/i, "image/jpeg"],
1224
1224
  [/\.webp(\?|#|$)/i, "image/webp"],
1225
1225
  [/\.avif(\?|#|$)/i, "image/avif"]
@@ -1,6 +1,6 @@
1
- import { n as e } from "./BidirectionalIntegrator-BDAVOhHt.js";
2
- import { n as t, r as n, t as r } from "./EngineIssues-t5p7TEjb.js";
3
- import { I as i, M as a, N as o, O as s, T as c, c as l, i as u, t as d, u as f, z as p } from "./ArchiveFormats-DGypbJbi.js";
1
+ import { n as e } from "./BidirectionalIntegrator-KWRQrMXX.js";
2
+ import { n as t, r as n, t as r } from "./EngineIssues-DHAU18xh.js";
3
+ import { I as i, M as a, N as o, O as s, T as c, c as l, i as u, t as d, u as f, z as p } from "./ArchiveFormats-CWi6IbSp.js";
4
4
  import { f as m, i as h, n as g, o as _, r as v, s as y } from "./FileIdentity-BXmPNvJP.js";
5
5
  import { a as b } from "./EngineEvents-oQGofgRf.js";
6
6
  import { n as x, t as S } from "./ZipReader-D6LbMsfZ.js";
@@ -1,7 +1,7 @@
1
1
  import { $ as e, $t as t, A as n, Bt as r, F as i, Ft as a, G as o, H as s, I as c, J as l, K as u, L as d, Mt as f, O as p, P as m, X as h, Y as ee, Yt as te, ct as ne, dt as re, in as g, jt as ie, mn as _, n as v, q as ae, r as y, s as oe, st as se, tn as b, ut as ce, v as le, wt as ue } from "./PackedRayBuffer-BhqeNEaL.js";
2
- import { E as de, O as x, S, T as C, a as w, b as T, c as E, j as fe, k as D, p as pe, t as O, x as k } from "./TextureSampling-D81EJ9uO.js";
3
- import { o as A } from "./TextureBuckets-BOZzBXSD.js";
4
- import { $ as j, Bt as me, Ct as he, Et as M, Ft as ge, Gt as N, J as _e, K as ve, M as ye, N as be, P as xe, R as P, St as F, Vt as Se, Wt as Ce, X as we, Xt as I, Y as L, Z as Te, _t as Ee, bt as De, c as R, ct as Oe, dt as ke, ft as Ae, g as je, gt as Me, l as Ne, m as Pe, mt as Fe, pt as Ie, q as Le, qt as Re, r as ze, st as Be, vt as Ve, w as He, wt as Ue, y as We } from "./CompactKernel-CGteMt2T.js";
2
+ import { E as de, O as x, S, T as C, a as w, b as T, c as E, j as fe, k as D, p as pe, t as me, x as O } from "./TextureSampling-CQMmzhCp.js";
3
+ import { o as k } from "./TextureBuckets-CcOI4Bdg.js";
4
+ import { $ as he, A, Et as j, Ht as ge, K as _e, Kt as ve, Lt as ye, M, Ot as be, P as xe, Qt as N, St as P, Tt as Se, Ut as Ce, X as F, Yt as I, _ as we, bt as Te, c as Ee, et as De, g as Oe, gt as ke, h as Ae, ht as je, j as L, k as Me, l as R, lt as Ne, mt as Pe, pt as Fe, q as Ie, qt as Le, r as Re, tt as ze, ut as Be, vt as Ve, wt as He, x as Ue, yt as We } from "./CompactKernel-C6TCBB6i.js";
5
5
  import { r as Ge } from "./BufferLayout-ny3WneEc.js";
6
6
  import { DataTexture as Ke, FloatType as qe, RedFormat as Je, Vector3 as Ye } from "three";
7
7
  import { Break as Xe, Fn as Ze, If as z, Loop as Qe, Return as B, abs as V, atomicAdd as $e, atomicFunc as et, atomicLoad as tt, atomicStore as nt, bool as rt, cos as it, cross as at, dot as H, exp2 as ot, float as U, floor as st, instanceIndex as ct, int as W, ivec2 as lt, ivec3 as ut, length as dt, localId as ft, log2 as pt, max as G, min as mt, mix as ht, normalize as gt, sampler as _t, select as K, sin as vt, sqrt as yt, storage as bt, texture as xt, uint as q, uniform as J, uniformArray as St, vec2 as Ct, vec3 as Y, vec4 as wt, workgroupId as Tt } from "three/tsl";
@@ -37,10 +37,10 @@ var Et = Object.defineProperty, Dt = (e, t) => {
37
37
  i(W(e), t, n(t).toVar());
38
38
  });
39
39
  });
40
- a(0, e.numDirectional, (t) => _e(Oe.wrap(Fe(e.directional, t)), n, r, W(0))), a(1, e.numArea, (i) => {
41
- let a = Be.wrap(Ie(e.area, i));
42
- return K(a.intensity.greaterThan(0), Te(a, t, n, r), U(0));
43
- }), a(2, e.numPoint, (i) => L(ke.wrap(Me(e.point, i)), t, n, r)), a(3, e.numSpot, (i) => we(Ae.wrap(Ve(e.spot, i)), t, n, r));
40
+ a(0, e.numDirectional, (t) => Me(Be.wrap(ke(e.directional, t)), n, r, W(0))), a(1, e.numArea, (i) => {
41
+ let a = Ne.wrap(je(e.area, i));
42
+ return K(a.intensity.greaterThan(0), M(a, t, n, r), U(0));
43
+ }), a(2, e.numPoint, (i) => A(Fe.wrap(Ve(e.point, i)), t, n, r)), a(3, e.numSpot, (i) => L(Pe.wrap(Te(e.spot, i)), t, n, r));
44
44
  };
45
45
  function Pt(e, t, n, r, i, a) {
46
46
  let o = W(-1).toVar(), s = W(-1).toVar(), c = U(0).toVar(), l = U(0).toVar();
@@ -69,7 +69,7 @@ function Ft(e, t, n, r, i, a) {
69
69
  }), K(o.greaterThan(0), s.div(o), U(1).div(G(U(At(e)), 1)));
70
70
  }
71
71
  var It = (e) => U(2 * ne).mul(G(U(1).sub(it(e.angle)), 1e-10)), Lt = (e) => U(2 * ne).mul(G(U(1).sub(it(e.angle.mul(.5))), 1e-10)), Rt = (e, t, n, r) => {
72
- let i = Ue(t, e.position.sub(e.u).sub(e.v), e.u.mul(2), e.v.mul(2)).toVar();
72
+ let i = j(t, e.position.sub(e.u).sub(e.v), e.u.mul(2), e.v.mul(2)).toVar();
73
73
  return K(e.shape.lessThan(.5).and(i.greaterThan(1e-5)), U(1).div(i), n.mul(n).div(G(e.area.mul(G(r, .001)), 1e-10)));
74
74
  }, zt = /* @__PURE__ */ Dt({
75
75
  DIM_CONNECT_PATH: () => 16,
@@ -150,7 +150,7 @@ function fn(e, n, r, i) {
150
150
  let e = E(a, c).toVar();
151
151
  a.anisotropy.assign(e.x), a.anisotropyRotation.assign(e.y);
152
152
  });
153
- let l = te.wrap(O(a, c)).toVar();
153
+ let l = te.wrap(me(a, c)).toVar();
154
154
  return a.transmission.assign(l.transmission), a.clearcoat.assign(l.clearcoat), a.clearcoatRoughness.assign(l.clearcoatRoughness), a.sheenColor.assign(l.sheenColor), a.sheenRoughness.assign(l.sheenRoughness), a.iridescence.assign(l.iridescence), a.iridescenceThicknessRange.assign(Ct(a.iridescenceThicknessRange.x, l.iridescenceThickness)), a.specularIntensity.assign(l.specularIntensity), a.specularColor.assign(l.specularColor), a.diffuseTransmission.assign(l.diffuseTransmission), a.diffuseTransmissionColor.assign(l.diffuseTransmissionColor), z(s.lessThan(se).and(a.anisotropy.equal(0)).and(a.clearcoat.equal(0)).and(a.transmission.equal(0)).and(a.subsurface.equal(0)), () => {
155
155
  a.roughness.assign(0);
156
156
  }), a;
@@ -200,7 +200,7 @@ var gn = 4096, _n = gn + 1, vn = Math.ceil(_n * 4 / 256) * 64, yn = .2, bn = (e)
200
200
  }, Dn = (e, t, n, r) => {
201
201
  let i = Cn(Sn(t, n, r)).toVar();
202
202
  z(t.guideLearning.greaterThan(q(0)).and(i.greaterThanEqual(W(0))), () => {
203
- $e(e.element(q(Ce.GUIDE).add(q(xn(n).mul(W(gn)).add(i)))), q(1));
203
+ $e(e.element(q(ve.GUIDE).add(q(xn(n).mul(W(gn)).add(i)))), q(1));
204
204
  });
205
205
  };
206
206
  function On({ counters: e, out: t }) {
@@ -209,7 +209,7 @@ function On({ counters: e, out: t }) {
209
209
  z(n.greaterThanEqual(q(16)), () => {
210
210
  B();
211
211
  });
212
- let r = q(Ce.GUIDE).add(n.mul(q(gn))).toVar(), i = U(0).toVar();
212
+ let r = q(ve.GUIDE).add(n.mul(q(gn))).toVar(), i = U(0).toVar();
213
213
  Qe({
214
214
  start: W(0),
215
215
  end: W(gn),
@@ -231,58 +231,58 @@ function On({ counters: e, out: t }) {
231
231
  }
232
232
  function kn({ counters: e }) {
233
233
  return Ze(() => {
234
- z(ct.lessThan(q(N)), () => {
235
- nt(e.element(q(Ce.GUIDE).add(ct)), q(0));
234
+ z(ct.lessThan(q(Le)), () => {
235
+ nt(e.element(q(ve.GUIDE).add(ct)), q(0));
236
236
  });
237
- })().compute(N, [256]);
237
+ })().compute(Le, [256]);
238
238
  }
239
239
  //#endregion
240
240
  //#region src/addons/bidirectional/LightGenerateKernel.js
241
241
  function An(e) {
242
- let { rayBufferRW: t, hitBufferRW: n, activeIndicesRW: i, counters: a, lightBuffer: c, triangleBuffer: d, bvhBuffer: p, emissiveTriangleCount: m, emissiveVec4Offset: te, emissiveTotalPower: ne, emissiveBoost: re, sunDirection: g, sunRadiance: ie, sunParams: _, environmentIntensity: v, envTexture: y, envCDFTexture: oe, envMatrix: se, envResolution: b, directionalLightsBuffer: ce, areaLightsBuffer: le, pointLightsBuffer: ue, spotLightsBuffer: C, bidirectional: w, resolution: T, frame: E, transmissiveBounces: pe } = e, { lightPaths: O } = w;
242
+ let { rayBufferRW: t, hitBufferRW: n, activeIndicesRW: i, counters: a, lightBuffer: c, triangleBuffer: d, bvhBuffer: p, emissiveTriangleCount: m, emissiveVec4Offset: te, emissiveTotalPower: ne, emissiveBoost: re, sunDirection: g, sunRadiance: ie, sunParams: _, environmentIntensity: v, envTexture: y, envCDFTexture: oe, envMatrix: se, envResolution: b, directionalLightsBuffer: ce, areaLightsBuffer: le, pointLightsBuffer: ue, spotLightsBuffer: C, bidirectional: w, resolution: T, frame: E, transmissiveBounces: pe } = e, { lightPaths: me } = w;
243
243
  return Ze(() => {
244
244
  let e = ct;
245
245
  z(e.equal(q(0)), () => {
246
- nt(a.element(q(Ce.ACTIVE_RAY_COUNT)), O), nt(a.element(q(Ce.ENTERING_COUNT)), O);
247
- }), z(e.greaterThanEqual(O), () => {
246
+ nt(a.element(q(ve.ACTIVE_RAY_COUNT)), me), nt(a.element(q(ve.ENTERING_COUNT)), me);
247
+ }), z(e.greaterThanEqual(me), () => {
248
248
  B();
249
249
  }), i.element(e).assign(e);
250
- let k = Gt(e, T).toVar(), A = fe({ state: de({
251
- pixelCoord: k,
250
+ let O = Gt(e, T).toVar(), k = fe({ state: de({
251
+ pixelCoord: O,
252
252
  rayIndex: W(3),
253
253
  frame: E
254
- }) }).toVar(), j = Y(0).toVar(), M = Y(0, 1, 0).toVar(), N = Y(0).toVar(), _e = U(0).toVar(), ye = U(0).toVar(), P = W(-1).toVar(), we = W(0).toVar(), I = U(1).toVar(), L = rt(!1).toVar(), Te = x(k, W(0), W(X + 4), A, T, E).toVar(), R = W(0).toVar(), Ne = W(w.sourceCount - 1).toVar();
255
- Qe(R.lessThan(Ne), () => {
256
- let e = R.add(Ne).div(2).toVar();
257
- z(w.sourceCdf.element(e).lessThanEqual(Te), () => {
254
+ }) }).toVar(), A = Y(0).toVar(), j = Y(0, 1, 0).toVar(), M = Y(0).toVar(), be = U(0).toVar(), xe = U(0).toVar(), N = W(-1).toVar(), Ee = W(0).toVar(), Ae = U(1).toVar(), L = rt(!1).toVar(), Me = x(O, W(0), W(X + 4), k, T, E).toVar(), R = W(0).toVar(), Le = W(w.sourceCount - 1).toVar();
255
+ Qe(R.lessThan(Le), () => {
256
+ let e = R.add(Le).div(2).toVar();
257
+ z(w.sourceCdf.element(e).lessThanEqual(Me), () => {
258
258
  R.assign(e.add(1));
259
259
  }).Else(() => {
260
- Ne.assign(e);
260
+ Le.assign(e);
261
261
  });
262
262
  });
263
- let ze = w.guideTexture, Ue = (e) => {
264
- let t = En(w, ze, e, x(k, W(0), W(X + 7), A, T, E), D(k, W(0), W(X + 6), A, T, E)).toVar();
263
+ let Re = w.guideTexture, Ue = (e) => {
264
+ let t = En(w, Re, e, x(O, W(0), W(X + 7), k, T, E), D(O, W(0), W(X + 6), k, T, E)).toVar();
265
265
  return {
266
266
  start: t,
267
- pdf: Tn(w, ze, e, t)
267
+ pdf: Tn(w, Re, e, t)
268
268
  };
269
269
  };
270
270
  z(R.equal(W(sn.SUN)), () => {
271
- let e = ve(g, _, D(k, W(0), W(X + 5), A, T, E)).toVar(), t = Le(e, g, ie, _).mul(v).toVar(), n = Ue(e), r = on(w, _, n.pdf).toVar();
271
+ let e = De(g, _, D(O, W(0), W(X + 5), k, T, E)).toVar(), t = ze(e, g, ie, _).mul(v).toVar(), n = Ue(e), r = on(w, _, n.pdf).toVar();
272
272
  z(t.x.add(t.y).add(t.z).greaterThan(0).and(r.greaterThan(0)), () => {
273
- j.assign(n.start), M.assign(e.negate()), N.assign(t.div(r)), _e.assign(Q(U(1).div(_.y.mul(r)))), ye.assign(Q(U(1).div(r))), L.assign(!0);
273
+ A.assign(n.start), j.assign(e.negate()), M.assign(t.div(r)), be.assign(Q(U(1).div(_.y.mul(r)))), xe.assign(Q(U(1).div(r))), L.assign(!0);
274
274
  });
275
275
  }).ElseIf(R.equal(W(sn.EMITTERS)), () => {
276
- let e = je(c, te, m, x(k, W(0), W(X), A, T, E)).toVar(), t = te.add(e.mul(W(2))), n = c.element(t).toVar(), i = c.element(t.add(W(1))).toVar();
277
- P.assign(W(n.x)), we.assign(W(n.w));
278
- let a = Pe.wrap(We(P, d, p, we)).toVar(), o = He(a.v0, a.v1, a.v2, D(k, W(0), W(X + 1), A, T, E)).toVar(), s = gt(at(a.v1.sub(a.v0), a.v2.sub(a.v0))).toVar(), l = S(r(d, P, 4).z).toVar(), u = K(l.equal(W(1)).or(l.equal(W(2)).and(x(k, W(0), W(X + 3), A, T, E).lessThan(.5))).toVar(), s.negate(), s).toVar();
279
- M.assign(ge(u, D(k, W(0), W(X + 2), A, T, E)));
280
- let h = H(M, u).toVar(), ee = G(n.y, 0).div(G(ne, 1e-10)).div(G(i.w, 1e-20)).mul(K(l.equal(W(2)), U(.5), U(1))).mul(w.emitterPick).toVar(), g = ee.mul(h).div(Math.PI).toVar();
276
+ let e = Ie(c, te, m, x(O, W(0), W(X), k, T, E)).toVar(), t = te.add(e.mul(W(2))), n = c.element(t).toVar(), i = c.element(t.add(W(1))).toVar();
277
+ N.assign(W(n.x)), Ee.assign(W(n.w));
278
+ let a = _e.wrap(F(N, d, p, Ee)).toVar(), o = he(a.v0, a.v1, a.v2, D(O, W(0), W(X + 1), k, T, E)).toVar(), s = gt(at(a.v1.sub(a.v0), a.v2.sub(a.v0))).toVar(), l = S(r(d, N, 4).z).toVar(), u = K(l.equal(W(1)).or(l.equal(W(2)).and(x(O, W(0), W(X + 3), k, T, E).lessThan(.5))).toVar(), s.negate(), s).toVar();
279
+ j.assign(ye(u, D(O, W(0), W(X + 2), k, T, E)));
280
+ let h = H(j, u).toVar(), ee = G(n.y, 0).div(G(ne, 1e-10)).div(G(i.w, 1e-20)).mul(K(l.equal(W(2)), U(.5), U(1))).mul(w.emitterPick).toVar(), g = ee.mul(h).div(Math.PI).toVar();
281
281
  z(h.greaterThan(1e-6).and(g.greaterThan(0)), () => {
282
- j.assign(f(o, u)), N.assign(i.xyz.mul(re).mul(Math.PI).div(ee)), _e.assign(Q(U(1).div(g))), ye.assign(Q(h.div(g))), I.assign(h), L.assign(!0);
282
+ A.assign(f(o, u)), M.assign(i.xyz.mul(re).mul(Math.PI).div(ee)), be.assign(Q(U(1).div(g))), xe.assign(Q(h.div(g))), Ae.assign(h), L.assign(!0);
283
283
  });
284
284
  }).ElseIf(R.equal(W(sn.ENVIRONMENT)), () => {
285
- let e = Se(oe, se, b, D(k, W(0), W(X + 5), A, T, E)), t = e.direction.toVar(), n = e.pdf.toVar(), r = me({
285
+ let e = Ce(oe, se, b, D(O, W(0), W(X + 5), k, T, E)), t = e.direction.toVar(), n = e.pdf.toVar(), r = ge({
286
286
  tex: y,
287
287
  samp: _t(y),
288
288
  direction: t,
@@ -291,45 +291,45 @@ function An(e) {
291
291
  enableEnvironmentLight: U(1)
292
292
  }).xyz.toVar(), i = Ue(t), a = w.envPick.mul(n).mul(i.pdf).toVar();
293
293
  z(r.x.add(r.y).add(r.z).greaterThan(0).and(a.greaterThan(0)), () => {
294
- j.assign(i.start), M.assign(t.negate()), N.assign(r.div(a)), _e.assign(Q(n.div(a))), ye.assign(Q(U(1).div(a))), P.assign(W(-1 - sn.ENVIRONMENT)), L.assign(!0);
294
+ A.assign(i.start), j.assign(t.negate()), M.assign(r.div(a)), be.assign(Q(n.div(a))), xe.assign(Q(U(1).div(a))), N.assign(W(-1 - sn.ENVIRONMENT)), L.assign(!0);
295
295
  });
296
296
  }).ElseIf(R.greaterThanEqual(W(sn.LAMPS)), () => {
297
297
  let e = cn(w, R).toVar(), t = un(w, R).toVar(), n = dn(w, R, t).toVar();
298
- P.assign(W(-1).sub(R));
299
- let r = U(0).toVar(), i = Y(0).toVar(), a = D(k, W(0), W(X + 2), A, T, E).toVar();
298
+ N.assign(W(-1).sub(R));
299
+ let r = U(0).toVar(), i = Y(0).toVar(), a = D(O, W(0), W(X + 2), k, T, E).toVar();
300
300
  z(t.equal(W(0)), () => {
301
- let t = Oe.wrap(Fe(ce, n)), a = gt(t.direction).toVar();
301
+ let t = Be.wrap(ke(ce, n)), a = gt(t.direction).toVar();
302
302
  i.assign(t.color.mul(t.intensity)), r.assign(e), z(t.angle.greaterThan(0), () => {
303
303
  let e = Lt(t).toVar();
304
- a.assign(De(a, t.angle.mul(.5), D(k, W(0), W(X + 5), A, T, E))), i.divAssign(e), r.divAssign(e);
304
+ a.assign(P(a, t.angle.mul(.5), D(O, W(0), W(X + 5), k, T, E))), i.divAssign(e), r.divAssign(e);
305
305
  });
306
306
  let o = Ue(a);
307
- r.mulAssign(o.pdf), j.assign(o.start), M.assign(a.negate());
307
+ r.mulAssign(o.pdf), A.assign(o.start), j.assign(a.negate());
308
308
  }).ElseIf(t.equal(W(1)), () => {
309
- let t = Be.wrap(Ie(le, n)), o = t.shape.greaterThan(.5), s = D(k, W(0), W(X + 1), A, T, E).toVar(), c = yt(s.x), l = s.y.mul(2 * Math.PI);
310
- j.assign(t.position.add(t.u.mul(K(o, c.mul(it(l)), s.x.mul(2).sub(1)))).add(t.v.mul(K(o, c.mul(vt(l)), s.y.mul(2).sub(1))))), M.assign(ge(t.normal, a));
311
- let u = H(M, t.normal).toVar();
312
- i.assign(K(t.area.greaterThan(0).and(u.greaterThan(1e-6)), be(t).mul(xe(u, t.spread)).mul(u), Y(0))), r.assign(e.div(G(t.area, 1e-20)).mul(u).div(Math.PI)), ye.assign(Q(u.div(G(r, 1e-30))));
309
+ let t = Ne.wrap(je(le, n)), o = t.shape.greaterThan(.5), s = D(O, W(0), W(X + 1), k, T, E).toVar(), c = yt(s.x), l = s.y.mul(2 * Math.PI);
310
+ A.assign(t.position.add(t.u.mul(K(o, c.mul(it(l)), s.x.mul(2).sub(1)))).add(t.v.mul(K(o, c.mul(vt(l)), s.y.mul(2).sub(1))))), j.assign(ye(t.normal, a));
311
+ let u = H(j, t.normal).toVar();
312
+ i.assign(K(t.area.greaterThan(0).and(u.greaterThan(1e-6)), Oe(t).mul(we(u, t.spread)).mul(u), Y(0))), r.assign(e.div(G(t.area, 1e-20)).mul(u).div(Math.PI)), xe.assign(Q(u.div(G(r, 1e-30))));
313
313
  }).ElseIf(t.equal(W(2)), () => {
314
- let t = ke.wrap(Me(ue, n));
315
- j.assign(t.position), M.assign(De(Y(0, 1, 0), U(Math.PI), a)), i.assign(t.color.mul(t.intensity)), r.assign(e.div(4 * Math.PI));
314
+ let t = Fe.wrap(Ve(ue, n));
315
+ A.assign(t.position), j.assign(P(Y(0, 1, 0), U(Math.PI), a)), i.assign(t.color.mul(t.intensity)), r.assign(e.div(4 * Math.PI));
316
316
  }).Else(() => {
317
- let t = Ae.wrap(Ve(C, n));
318
- j.assign(t.position), M.assign(De(t.direction, t.angle, a));
319
- let o = M.negate();
320
- i.assign(t.color.mul(t.intensity).mul(Ee({
317
+ let t = Pe.wrap(Te(C, n));
318
+ A.assign(t.position), j.assign(P(t.direction, t.angle, a));
319
+ let o = j.negate();
320
+ i.assign(t.color.mul(t.intensity).mul(We({
321
321
  coneCosine: it(t.angle),
322
322
  blend: t.penumbra,
323
- angleCosine: H(M, t.direction)
324
- })).mul(he(t, o)).mul(F(t, o))), r.assign(e.div(It(t)));
323
+ angleCosine: H(j, t.direction)
324
+ })).mul(Se(t, o)).mul(He(t, o))), r.assign(e.div(It(t)));
325
325
  }), z(i.x.add(i.y).add(i.z).greaterThan(0).and(r.greaterThan(0)), () => {
326
- N.assign(i.div(r)), _e.assign(Q(U(1).div(r))), L.assign(!0);
326
+ M.assign(i.div(r)), be.assign(Q(U(1).div(r))), L.assign(!0);
327
327
  });
328
328
  }), z(L.not(), () => {
329
- u(t, e, M, q(0)), B();
329
+ u(t, e, j, q(0)), B();
330
330
  });
331
- let Ge = G(G(G(N.x, N.y), N.z), 1e-20).toVar();
332
- ae(t, e, j, W(0), W(0)), u(t, e, M, q(Re.ACTIVE | Re.REDIRECTED | Re.LIGHT_PATH | Re.LIGHT_EMITTED)), ee(t, e, N.div(Ge), U(0)), l(t, e, wt(Y(0), U(1))), o(t, e, q(0), q(pe), U(1), U(1), U(1)), h(n, e, A, _e, ye), s(n, e, P, we, I, Ge);
331
+ let Ge = G(G(G(M.x, M.y), M.z), 1e-20).toVar();
332
+ ae(t, e, A, W(0), W(0)), u(t, e, j, q(I.ACTIVE | I.REDIRECTED | I.LIGHT_PATH | I.LIGHT_EMITTED)), ee(t, e, M.div(Ge), U(0)), l(t, e, wt(Y(0), U(1))), o(t, e, q(0), q(pe), U(1), U(1), U(1)), h(n, e, k, be, xe), s(n, e, N, Ee, Ae, Ge);
333
333
  });
334
334
  }
335
335
  //#endregion
@@ -338,7 +338,7 @@ function jn(e) {
338
338
  let { rayBufferRW: t, hitBufferRO: r, activeIndicesRO: i, counters: a, bvhBuffer: o, triangleBuffer: s, materialBuffer: u, resolution: m, frame: h, accumFrame: ee, currentBounce: te, chunkRowBase: ne, lightPaths: g, slotsPerPath: _, lightTag: ae, passTag: y, strategyView: se, maxBounceCount: b, globalIlluminationIntensity: ce, fireflyThreshold: ue, mergeVm: de = null, diffuseTransmission: S = !0 } = e;
339
339
  return Ze(() => {
340
340
  let e = ct;
341
- z(e.greaterThanEqual(tt(a.element(q(Ce.ENTERING_COUNT)))), () => {
341
+ z(e.greaterThanEqual(tt(a.element(q(ve.ENTERING_COUNT)))), () => {
342
342
  B();
343
343
  });
344
344
  let C = i.element(e).toVar(), w = oe(C);
@@ -348,24 +348,24 @@ function jn(e) {
348
348
  let E = c(r, w), D = {
349
349
  ...E,
350
350
  vm: de?.(E.position) ?? null
351
- }, pe = W(D.extra).add(W(1)).toVar(), O = W(m.x), k = W(C).add(ne.mul(O)), A = Ct(U(k.mod(O)).add(.5), U(k.div(O)).add(.5)).toVar(), me = W(te).mul(W(32)), he = fe({ state: n(r, C).bitXor(q(2654435769)) }).toVar(), ge = x(A, W(0), me.add(W(16)), he, m, h).toVar(), N = x(A, W(0), me.add(W(17)), he, m, h).toVar(), _e = mt(q(U(g).mul(ge)), g.sub(q(1))).toVar().mul(_).toVar(), ve = mt(W(le(r, v(_e), ae)), W(b).add(W(1)).sub(pe)).toVar();
352
- z(ve.lessThan(W(1)), () => {
351
+ }, pe = W(D.extra).add(W(1)).toVar(), me = W(m.x), O = W(C).add(ne.mul(me)), k = Ct(U(O.mod(me)).add(.5), U(O.div(me)).add(.5)).toVar(), he = W(te).mul(W(32)), A = fe({ state: n(r, C).bitXor(q(2654435769)) }).toVar(), j = x(k, W(0), he.add(W(16)), A, m, h).toVar(), ge = x(k, W(0), he.add(W(17)), A, m, h).toVar(), _e = mt(q(U(g).mul(j)), g.sub(q(1))).toVar().mul(_).toVar(), ye = mt(W(le(r, v(_e), ae)), W(b).add(W(1)).sub(pe)).toVar();
352
+ z(ye.lessThan(W(1)), () => {
353
353
  B();
354
354
  });
355
- let be = mt(W(U(ve).mul(N)), ve.sub(W(1))).toVar(), xe = c(r, v(_e.add(q(be)))), F = {
356
- ...xe,
357
- vm: de?.(xe.position) ?? null
358
- }, Se = F.position.sub(D.position).toVar(), we = G(H(Se, Se), 1e-12).toVar(), I = Se.div(yt(we)).toVar(), L = H(I, D.N).toVar(), Te = H(I, D.facetN).toVar(), Ee = H(I, F.facetN).negate().toVar(), De = L.greaterThan(0).and(Te.greaterThan(0)).and(Ee.greaterThan(0)), R = L.lessThan(0).and(Te.lessThan(0)), Oe = Ee.lessThan(0);
359
- z((S ? R.or(L.greaterThan(0).and(Te.greaterThan(0))).and(Oe.or(Ee.greaterThan(0))) : De).not(), () => {
355
+ let M = mt(W(U(ye).mul(ge)), ye.sub(W(1))).toVar(), N = c(r, v(_e.add(q(M)))), P = {
356
+ ...N,
357
+ vm: de?.(N.position) ?? null
358
+ }, Se = P.position.sub(D.position).toVar(), Ce = G(H(Se, Se), 1e-12).toVar(), F = Se.div(yt(Ce)).toVar(), I = H(F, D.N).toVar(), we = H(F, D.facetN).toVar(), Te = H(F, P.facetN).negate().toVar(), Ee = I.greaterThan(0).and(we.greaterThan(0)).and(Te.greaterThan(0)), De = I.lessThan(0).and(we.lessThan(0)), Oe = Te.lessThan(0);
359
+ z((S ? De.or(I.greaterThan(0).and(we.greaterThan(0))).and(Oe.or(Te.greaterThan(0))) : Ee).not(), () => {
360
360
  B();
361
361
  });
362
- let ke = fn(D.materialIndex, D.uv, D.N, u), Ae = fn(F.materialIndex, F.uv, F.N, u), je = I.negate();
363
- S && z(R.and(ke.diffuseTransmission.lessThanEqual(0)).or(Oe.and(Ae.diffuseTransmission.lessThanEqual(0))), () => {
362
+ let ke = fn(D.materialIndex, D.uv, D.N, u), je = fn(P.materialIndex, P.uv, P.N, u), L = F.negate();
363
+ S && z(De.and(ke.diffuseTransmission.lessThanEqual(0)).or(Oe.and(je.diffuseTransmission.lessThanEqual(0))), () => {
364
364
  B();
365
365
  });
366
- let Me = (e) => S ? pn(D.N, e, ke) : D.N, Ne = (e) => S ? pn(F.N, e, Ae) : F.N, Pe = M(D.V, I, D.N, ke).toVar(), Fe = M(je, F.V, Ne(je), Ae).toVar(), Ie = (S ? V(L) : L).mul(mn(F.V, F.N, F.facetN, je)).div(we), Le = P(D.V, I, D.N, ke), Re = P(I, D.V, Me(I), ke), ze = P(F.V, je, F.N, Ae), Be = P(je, F.V, Ne(je), Ae), Ve = Yt(Le.mul(S ? V(Ee) : Ee).div(we), F, Be), He = Yt(ze.mul(S ? V(Te) : Te).div(we), D, Re), Ue = pe.add(be).add(W(1)), We = nn(se, tn.CONNECT, en(Ve, He), U(1).div(U(Ue.sub(W(1))))), Ge = ye(D.throughput.mul(Pe).mul(Fe).mul(F.throughput).mul(Ie.mul(We).mul(U(ve)).mul(ce)), U(Ue.sub(W(1))), ue, W(ee)).toVar();
366
+ let Me = (e) => S ? pn(D.N, e, ke) : D.N, R = (e) => S ? pn(P.N, e, je) : P.N, Ne = be(D.V, F, D.N, ke).toVar(), Pe = be(L, P.V, R(L), je).toVar(), Fe = (S ? V(I) : I).mul(mn(P.V, P.N, P.facetN, L)).div(Ce), Ie = Ue(D.V, F, D.N, ke), Le = Ue(F, D.V, Me(F), ke), Re = Ue(P.V, L, P.N, je), ze = Ue(L, P.V, R(L), je), Be = Yt(Ie.mul(S ? V(Te) : Te).div(Ce), P, ze), Ve = Yt(Re.mul(S ? V(we) : we).div(Ce), D, Le), He = pe.add(M).add(W(1)), We = nn(se, tn.CONNECT, en(Be, Ve), U(1).div(U(He.sub(W(1))))), Ge = Ae(D.throughput.mul(Ne).mul(Pe).mul(P.throughput).mul(Fe.mul(We).mul(U(ye)).mul(ce)), U(He.sub(W(1))), ue, W(ee)).toVar();
367
367
  z(ie(Ge).greaterThan(0), () => {
368
- let e = f(D.position, S ? K(R, D.facetN.negate(), D.facetN) : D.facetN).toVar(), n = f(F.position, S ? K(Oe, F.facetN.negate(), F.facetN) : F.facetN).sub(e).toVar(), r = dt(n).toVar(), i = j(e, n.div(r), r.mul(re), T, o, s, u);
368
+ let e = f(D.position, S ? K(De, D.facetN.negate(), D.facetN) : D.facetN).toVar(), n = f(P.position, S ? K(Oe, P.facetN.negate(), P.facetN) : P.facetN).sub(e).toVar(), r = dt(n).toVar(), i = xe(e, n.div(r), r.mul(re), T, o, s, u);
369
369
  z(i.greaterThan(0), () => {
370
370
  let e = p(t, C).toVar();
371
371
  l(t, C, wt(e.xyz.add(Ge.mul(i)), e.w));
@@ -406,7 +406,7 @@ function Vn(e) {
406
406
  let { rayBufferRW: t, hitBufferRO: n, activeIndicesRO: r, counters: a, head: o, materialBuffer: s, bidirectional: u, maxBounceCount: f, globalIlluminationIntensity: h, fireflyThreshold: ee, accumFrame: te, diffuseTransmission: ne = !0 } = e, { passTag: re, slotsPerPath: g, strategyView: _, hashMask: ae } = u;
407
407
  return Ze(() => {
408
408
  let e = ct;
409
- z(e.greaterThanEqual(tt(a.element(q(Ce.ENTERING_COUNT)))), () => {
409
+ z(e.greaterThanEqual(tt(a.element(q(ve.ENTERING_COUNT)))), () => {
410
410
  B();
411
411
  });
412
412
  let y = r.element(e).toVar(), se = oe(y);
@@ -432,8 +432,8 @@ function Vn(e) {
432
432
  z(i.shell.equal(t).and(i.cell.x.equal(s.x)).and(i.cell.y.equal(s.y)).and(i.cell.z.equal(s.z)), () => {
433
433
  let t = c(n, e), r = H(t.V, b.N).toVar(), i = H(t.V, b.facetN).toVar(), a = r.greaterThan(0).and(i.greaterThan(0)), s = ue.diffuseTransmission.greaterThan(0).and(r.lessThan(0)).and(i.lessThan(0));
434
434
  z(ne ? a.or(s) : a, () => {
435
- let e = M(b.V, t.V, b.N, ue), n = $t(t, P(b.V, t.V, b.N, ue), T), a = ne ? pn(b.N, t.V, ue) : b.N, s = $t(b, P(t.V, b.V, a, ue), T), c = ce.add(o), l = nn(_, tn.MERGE, en(n, s), U(1).div(U(c))), u = K(c.greaterThan(W(1)), h, U(1)), d = ne ? V(r).div(G(V(i), 1e-4)) : r.div(G(i, 1e-4));
436
- de.addAssign(ye(b.throughput.mul(e).mul(t.throughput).mul(l.mul(d).div(C).mul(u)), U(c.sub(W(1))), ee, W(te)));
435
+ let e = be(b.V, t.V, b.N, ue), n = $t(t, Ue(b.V, t.V, b.N, ue), T), a = ne ? pn(b.N, t.V, ue) : b.N, s = $t(b, Ue(t.V, b.V, a, ue), T), c = ce.add(o), l = nn(_, tn.MERGE, en(n, s), U(1).div(U(c))), u = K(c.greaterThan(W(1)), h, U(1)), d = ne ? V(r).div(G(V(i), 1e-4)) : r.div(G(i, 1e-4));
436
+ de.addAssign(Ae(b.throughput.mul(e).mul(t.throughput).mul(l.mul(d).div(C).mul(u)), U(c.sub(W(1))), ee, W(te)));
437
437
  });
438
438
  });
439
439
  }), l.assign(m(n, e)), d.addAssign(W(1));
@@ -458,29 +458,29 @@ function Hn(e) {
458
458
  let de = c(t, v(e)), x = {
459
459
  ...de,
460
460
  vm: se?.(de.position) ?? null
461
- }, S = p.sub(x.position).toVar(), C = G(H(S, S), 1e-12).toVar(), w = S.div(yt(C)).toVar(), T = H(w, x.facetN).toVar(), E = H(w, m).negate().toVar(), D = T.lessThan(0), pe = b ? K(D, x.extra.bitAnd(q(2)), x.extra.bitAnd(q(1))).notEqual(q(0)) : x.extra.notEqual(q(0)), O = h.div(G(E, 1e-6)).toVar();
462
- z((b ? T.equal(0) : T.lessThanEqual(0)).or(E.lessThanEqual(1e-6)).or(pe).or(C.lessThanEqual(O.mul(O))), () => {
461
+ }, S = p.sub(x.position).toVar(), C = G(H(S, S), 1e-12).toVar(), w = S.div(yt(C)).toVar(), T = H(w, x.facetN).toVar(), E = H(w, m).negate().toVar(), D = T.lessThan(0), pe = b ? K(D, x.extra.bitAnd(q(2)), x.extra.bitAnd(q(1))).notEqual(q(0)) : x.extra.notEqual(q(0)), me = h.div(G(E, 1e-6)).toVar();
462
+ z((b ? T.equal(0) : T.lessThanEqual(0)).or(E.lessThanEqual(1e-6)).or(pe).or(C.lessThanEqual(me.mul(me))), () => {
463
463
  B();
464
464
  });
465
- let A = te.mul(ee.mul(wt(x.position, 1))).toVar();
466
- z(A.w.lessThanEqual(0), () => {
465
+ let k = te.mul(ee.mul(wt(x.position, 1))).toVar();
466
+ z(k.w.lessThanEqual(0), () => {
467
467
  B();
468
468
  });
469
- let me = st(A.x.div(A.w).mul(.5).add(.5).mul(U(g))).toVar(), he = st(U(.5).sub(A.y.div(A.w).mul(.5)).mul(U(ie))).toVar();
470
- z(me.lessThan(0).or(he.lessThan(0)).or(me.greaterThanEqual(U(g))).or(he.greaterThanEqual(U(ie))), () => {
469
+ let he = st(k.x.div(k.w).mul(.5).add(.5).mul(U(g))).toVar(), A = st(U(.5).sub(k.y.div(k.w).mul(.5)).mul(U(ie))).toVar();
470
+ z(he.lessThan(0).or(A.lessThan(0)).or(he.greaterThanEqual(U(g))).or(A.greaterThanEqual(U(ie))), () => {
471
471
  B();
472
472
  });
473
- let ge = fn(x.materialIndex, x.uv, x.N, o);
474
- b && z(D.and(ge.diffuseTransmission.lessThanEqual(0)), () => {
473
+ let j = fn(x.materialIndex, x.uv, x.N, o);
474
+ b && z(D.and(j.diffuseTransmission.lessThanEqual(0)), () => {
475
475
  B();
476
476
  });
477
- let N = b ? pn(x.N, w, ge) : x.N, _e = M(w, x.V, N, ge).toVar(), ve = U(1).div(ne.mul(E).mul(E).mul(E)).div(C).toVar(), be = Yt(ve.mul(b ? V(T) : T).div(U(s)), x, P(w, x.V, N, ge)), xe = ce.add(q(1)), F = U(1).toVar();
478
- z(xe.greaterThan(q(1)), () => {
479
- F.assign(_);
477
+ let ge = b ? pn(x.N, w, j) : x.N, _e = be(w, x.V, ge, j).toVar(), ve = U(1).div(ne.mul(E).mul(E).mul(E)).div(C).toVar(), ye = Yt(ve.mul(b ? V(T) : T).div(U(s)), x, Ue(w, x.V, ge, j)), M = ce.add(q(1)), N = U(1).toVar();
478
+ z(M.greaterThan(q(1)), () => {
479
+ N.assign(_);
480
480
  });
481
- let Se = ye(x.throughput.mul(_e).mul(mn(x.V, x.N, x.facetN, w)).mul(ve.div(U(s)).mul(nn(d, tn.LIGHT_TRACE, en(be, U(0)))).mul(F)), U(ce), ae, W(y)).toVar(), Ce = f(x.position, b ? K(D, x.facetN.negate(), x.facetN) : x.facetN).toVar(), we = p.sub(Ce).toVar(), I = dt(we).toVar(), L = j(Ce, we.div(I), I.sub(O).mul(re), k, r, i, o);
482
- z(L.greaterThan(0), () => {
483
- let t = mt(a(Se.mul(L)), Y(Ht)).mul(Vt).toVar(), r = U(fe({ state: e.bitXor(q(oe).mul(q(2654435769))) }).shiftRight(q(8))).mul(1 / 16777216).toVar(), i = q(he).mul(q(g)).add(q(me)).mul(q(3)).toVar();
481
+ let P = Ae(x.throughput.mul(_e).mul(mn(x.V, x.N, x.facetN, w)).mul(ve.div(U(s)).mul(nn(d, tn.LIGHT_TRACE, en(ye, U(0)))).mul(N)), U(ce), ae, W(y)).toVar(), Se = f(x.position, b ? K(D, x.facetN.negate(), x.facetN) : x.facetN).toVar(), Ce = p.sub(Se).toVar(), F = dt(Ce).toVar(), I = xe(Se, Ce.div(F), F.sub(me).mul(re), O, r, i, o);
482
+ z(I.greaterThan(0), () => {
483
+ let t = mt(a(P.mul(I)), Y(Ht)).mul(Vt).toVar(), r = U(fe({ state: e.bitXor(q(oe).mul(q(2654435769))) }).shiftRight(q(8))).mul(1 / 16777216).toVar(), i = q(A).mul(q(g)).add(q(he)).mul(q(3)).toVar();
484
484
  $e(n.element(i), q(st(t.x.add(r)))), $e(n.element(i.add(q(1))), q(st(t.y.add(r)))), $e(n.element(i.add(q(2))), q(st(t.z.add(r))));
485
485
  });
486
486
  });
@@ -575,9 +575,9 @@ var { PASS_TAG_BIT: Wn, STRATEGY: Gn, STRATEGY_ALONE: Kn, SOURCE: $, mergeVmAt:
575
575
  registerKernels(e) {
576
576
  let { km: t, qm: n, pb: r, counters: i, bounceCountsBuf: a, wfCurrentBounce: o, copyReadB: s, copyWriteA: c, maxRays: l, w: u, own: d, freshLight: f, freshTri: p, freshBvh: m, freshMat: h, freshEnvTex: ee, freshEnvCDF: te, materialLayers: ne } = e, re = ne?.diffuseTransmission ?? !0, g = this.uniforms, ie = n.MAX_BOUNCE_SNAPSHOTS, _ = (e) => {
577
577
  let t = q(o).clamp(q(0), q(ie - 1));
578
- Ne(i, a, t.add(q(2 * ie)), t.add(q(3 * ie)), e);
578
+ R(i, a, t.add(q(2 * ie)), t.add(q(3 * ie)), e);
579
579
  };
580
- if (t.register("lightSnapshot", R({
580
+ if (t.register("lightSnapshot", Ee({
581
581
  counters: i,
582
582
  record: _
583
583
  })().compute([
@@ -588,7 +588,7 @@ var { PASS_TAG_BIT: Wn, STRATEGY: Gn, STRATEGY_ALONE: Kn, SOURCE: $, mergeVmAt:
588
588
  1,
589
589
  1,
590
590
  1
591
- ])), t.register("lightCopyback", ze({
591
+ ])), t.register("lightCopyback", Re({
592
592
  counters: i,
593
593
  survivors: s,
594
594
  activeIndicesRW: c,
@@ -813,12 +813,12 @@ var { PASS_TAG_BIT: Wn, STRATEGY: Gn, STRATEGY_ALONE: Kn, SOURCE: $, mergeVmAt:
813
813
  e.cameraPosition.value.set(a[12], a[13], a[14]), e.cameraForward.value.set(-a[8], -a[9], -a[10]).normalize();
814
814
  let o = this.pt.cameraProjectionMatrix.value.elements;
815
815
  e.pixelArea.value = 4 / (o[0] * o[5] * t * n);
816
- let s = this.pt.cameraProjection.value === A.perspective && !this.pt.enableDOF.value;
816
+ let s = this.pt.cameraProjection.value === k.perspective && !this.pt.enableDOF.value;
817
817
  return e.lightTrace.value = +!!s, this.merging && this._updateMergeRadius(t, n), !0;
818
818
  }
819
819
  _updateMergeRadius(e, t) {
820
820
  let n = this.uniforms, r = this._mergeRadiusPixels * (this.pt.frameCount + 1) ** ((er - 1) / 2), i = this.pt.cameraProjection.value, a = this.pt.cameraProjectionMatrix.value.elements, o = 0, s = 0;
821
- i === A.orthographic ? s = r * 2 / (a[5] * t) : o = i === A.equirectangular ? r * 2 * Math.PI / e : r * Math.sqrt(n.pixelArea.value), n.mergeSlope.value = Math.min(o, .1), n.mergeConst.value = s, n.mergeMin.value = Math.max(s, o * .001 * n.sceneRadius.value, 1e-9);
821
+ i === k.orthographic ? s = r * 2 / (a[5] * t) : o = i === k.equirectangular ? r * 2 * Math.PI / e : r * Math.sqrt(n.pixelArea.value), n.mergeSlope.value = Math.min(o, .1), n.mergeConst.value = s, n.mergeMin.value = Math.max(s, o * .001 * n.sceneRadius.value, 1e-9);
822
822
  }
823
823
  _sizeSourceTable() {
824
824
  let e = this.uniforms, t = $.LAMPS;
@@ -828,14 +828,14 @@ var { PASS_TAG_BIT: Wn, STRATEGY: Gn, STRATEGY_ALONE: Kn, SOURCE: $, mergeVmAt:
828
828
  "point",
829
829
  "spot"
830
830
  ].forEach((n, r) => {
831
- e.sourceOffsets[r] = t, t += this.pt[`${n}LightsBufferNode`].array.length / I[n];
831
+ e.sourceOffsets[r] = t, t += this.pt[`${n}LightsBufferNode`].array.length / N[n];
832
832
  }), e.sourceCount = t, e.sourceCdf.array.length !== t && (e.sourceCdf.array = new Float32Array(t));
833
833
  }
834
834
  _updateSourceTable() {
835
835
  let e = this.uniforms, t = e.sourceCdf.array, n = new Float64Array(t.length), r = (e, t) => Math.max(.2126 * e[t] + .7152 * e[t + 1] + .0722 * e[t + 2], 0), i = (e) => ({
836
836
  a: this.pt[`${e}LightsBufferNode`].array,
837
837
  n: this.pt[`num${e[0].toUpperCase()}${e.slice(1)}Lights`].value,
838
- f: I[e]
838
+ f: N[e]
839
839
  }), a = i("directional"), o = this.pt.enableEnvironment.value > 0, s = this.pt.environment.exactTable;
840
840
  e.envTable.value = +!!s;
841
841
  let c = o && (this.pt.hasSun.value > 0 || s) || a.n > 0, l = c || this.merging ? this._sceneDisc() : 0, u = c ? l * Xn : 0;
@@ -1,7 +1,7 @@
1
1
  import { en as e, xt as t } from "./PackedRayBuffer-BhqeNEaL.js";
2
2
  import { i as n, r } from "./Logger-D7hic8LA.js";
3
- import { C as i } from "./TextureSampling-D81EJ9uO.js";
4
- import { o as a } from "./TextureBuckets-BOZzBXSD.js";
3
+ import { C as i } from "./TextureSampling-CQMmzhCp.js";
4
+ import { o as a } from "./TextureBuckets-CcOI4Bdg.js";
5
5
  import { Vector2 as o } from "three";
6
6
  import { Fn as s, If as c, cos as l, cross as u, dot as d, float as f, int as p, mat3 as m, max as h, mix as g, normalize as _, select as v, sin as y, uniform as b, vec3 as x, vec4 as S } from "three/tsl";
7
7
  //#region src/pathtracer/KernelManager.js
@@ -1,5 +1,5 @@
1
1
  import { r as e } from "./Logger-D7hic8LA.js";
2
- import { n as t } from "./EngineIssues-t5p7TEjb.js";
2
+ import { n as t } from "./EngineIssues-DHAU18xh.js";
3
3
  import { a as n, n as r, t as i } from "./WorkingMatrix-CDGicYGE.js";
4
4
  import { i as a, n as o, r as s, t as c } from "./ActiveColor-DakLCifA.js";
5
5
  import { n as l } from "./AssetConfig-C8BsprCp.js";