rayzee 9.1.0 → 9.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/rayzee.es.js CHANGED
@@ -2,7 +2,7 @@ import { a as e, i as t, n, r } from "./NeuralSuperRes-CbNvQjCw.js";
2
2
  import { C as i, S as a, T as o, _ as s, a as c, b as l, c as u, d, f, g as p, h as m, i as h, l as g, m as _, n as v, o as y, p as b, r as x, s as S, u as C, v as w, w as T, x as E, y as D } from "./ToneMapGPU-DpUZDMbQ.js";
3
3
  import { i as O, n as k, r as A } from "./NeuralRetouch-BRquqfmZ.js";
4
4
  import { ContextNode as ee, ExternalTexture as te, LinearSRGBColorSpace as j, MeshBasicNodeMaterial as ne, NodeMaterial as re, QuadMesh as ie, ReadbackBuffer as ae, RectAreaLightNode as oe, RenderTarget as se, SRGBColorSpace as ce, StorageInstancedBufferAttribute as le, StorageTexture as ue, TextureNode as de, WebGPUBackend as fe, WebGPURenderer as pe } from "three/webgpu";
5
- import { Break as me, Fn as M, If as N, Loop as he, Return as ge, TWO_PI as _e, abs as ve, acos as ye, array as be, asin as xe, atan as Se, atomicAdd as Ce, atomicLoad as we, atomicStore as Te, attributeArray as Ee, bool as De, clamp as P, cos as Oe, cross as F, cubeTexture as ke, dot as I, exp as Ae, exp2 as je, float as L, floatBitsToUint as Me, floor as Ne, fract as Pe, instanceIndex as Fe, int as R, ivec2 as Ie, ivec3 as Le, length as Re, lessThan as ze, localId as Be, log as Ve, log2 as He, mat3 as Ue, max as z, min as We, mix as B, mod as Ge, normalize as V, notEqual as Ke, packHalf2x16 as qe, packSnorm2x16 as Je, packUnorm2x16 as Ye, pow as Xe, reflect as Ze, refract as Qe, round as $e, sampler as et, saturate as tt, screenCoordinate as nt, select as H, sign as rt, sin as it, smoothstep as at, sqrt as U, step as ot, storage as st, struct as ct, subgroupAdd as lt, subgroupBroadcast as ut, subgroupExclusiveAdd as dt, tan as ft, texture as pt, texture3DLoad as mt, textureLoad as W, textureSize as ht, textureStore as gt, uint as G, uintBitsToFloat as _t, uniform as K, uniformArray as vt, unpackHalf2x16 as yt, unpackSnorm2x16 as bt, unpackUnorm2x16 as q, uv as xt, uvec2 as St, uvec4 as Ct, vec2 as J, vec3 as Y, vec4 as X, wgslFn as wt, workgroupArray as Tt, workgroupBarrier as Et, workgroupId as Dt } from "three/tsl";
5
+ import { Break as me, Fn as M, If as N, Loop as he, Return as ge, TWO_PI as _e, abs as ve, acos as ye, array as be, asin as xe, atan as Se, atomicAdd as Ce, atomicLoad as we, atomicStore as Te, attributeArray as Ee, bool as De, clamp as P, cos as Oe, cross as ke, cubeTexture as Ae, dot as F, exp as je, exp2 as Me, float as I, floatBitsToUint as Ne, floor as L, fract as Pe, instanceIndex as Fe, int as R, ivec2 as Ie, ivec3 as Le, length as Re, lessThan as ze, localId as Be, log as Ve, log2 as He, mat3 as Ue, max as z, min as We, mix as B, mod as Ge, normalize as V, notEqual as Ke, packHalf2x16 as qe, packSnorm2x16 as Je, packUnorm2x16 as Ye, pow as Xe, reflect as Ze, refract as Qe, round as $e, sampler as et, saturate as tt, screenCoordinate as nt, select as H, sign as rt, sin as it, smoothstep as at, sqrt as U, step as ot, storage as st, struct as ct, subgroupAdd as lt, subgroupBroadcast as ut, subgroupExclusiveAdd as dt, tan as ft, texture as pt, texture3DLoad as mt, textureLoad as W, textureSize as ht, textureStore as gt, uint as G, uintBitsToFloat as _t, uniform as K, uniformArray as vt, unpackHalf2x16 as yt, unpackSnorm2x16 as bt, unpackUnorm2x16 as q, uv as xt, uvec2 as St, uvec4 as Ct, vec2 as J, vec3 as Y, vec4 as X, wgslFn as wt, workgroupArray as Tt, workgroupBarrier as Et, workgroupId as Dt } from "three/tsl";
6
6
  import { ACESFilmicToneMapping as Ot, AddEquation as kt, AnimationClip as At, AnimationMixer as jt, BackSide as Mt, BooleanKeyframeTrack as Nt, Box2 as Pt, Box3 as Ft, BufferAttribute as It, BufferGeometry as Lt, ByteType as Rt, CircleGeometry as zt, ClampToEdgeWrapping as Bt, Color as Vt, Controls as Ht, CustomBlending as Ut, Data3DTexture as Wt, DataArrayTexture as Gt, DataTexture as Kt, DataUtils as qt, DirectionalLight as Jt, DirectionalLightHelper as Yt, DoubleSide as Xt, EquirectangularReflectionMapping as Zt, EventDispatcher as Qt, Float32BufferAttribute as $t, FloatType as en, FrontSide as tn, Group as nn, HalfFloatType as rn, InstancedBufferAttribute as an, InstancedMesh as on, IntType as sn, InterpolateSmooth as cn, LinearFilter as Z, LinearSRGBColorSpace as ln, LoaderUtils as un, LoadingManager as dn, LoopOnce as fn, LoopRepeat as pn, MaterialLoader as mn, MathUtils as hn, Matrix3 as gn, Matrix4 as _n, Mesh as vn, MeshBasicMaterial as yn, MeshPhysicalMaterial as bn, MeshStandardMaterial as xn, NearestFilter as Sn, NoBlending as Cn, NoColorSpace as wn, NoToneMapping as Tn, NumberKeyframeTrack as En, Object3D as Dn, OneFactor as On, OrthographicCamera as kn, PerspectiveCamera as An, PointLight as jn, PointLightHelper as Mn, Points as Nn, PointsMaterial as Pn, PropertyBinding as Fn, Quaternion as In, QuaternionKeyframeTrack as Ln, RGBAFormat as Rn, RGBFormat as zn, RGFormat as Bn, Raycaster as Vn, RectAreaLight as Hn, RedFormat as Un, RedIntegerFormat as Wn, RenderTarget as Gn, RepeatWrapping as Kn, SRGBColorSpace as qn, Scene as Jn, ShortType as Yn, SphereGeometry as Xn, SpotLight as Zn, SpotLightHelper as Qn, Texture as $n, TextureLoader as er, Timer as tr, Uint32BufferAttribute as nr, UnsignedByteType as rr, UnsignedIntType as ir, UnsignedShortType as ar, Vector2 as or, Vector3 as sr, Vector4 as cr, VectorKeyframeTrack as lr } from "three";
7
7
  import { RectAreaLightTexturesLib as ur } from "three/addons/lights/RectAreaLightTexturesLib.js";
8
8
  import { RectAreaLightHelper as dr } from "three/addons/helpers/RectAreaLightHelper.js";
@@ -161,14 +161,14 @@ var Ur = pt(Vr);
161
161
  Ur.setUpdateMatrix(!1);
162
162
  var Wr = pt(Hr);
163
163
  Wr.setUpdateMatrix(!1);
164
- var Gr = L(.7548776662466927), Kr = L(.5698402909980532), qr = /* @__PURE__ */ wt("\n fn pcgHash( state: u32 ) -> u32 {\n\n var s = state;\n s = s * 747796405u + 2891336453u;\n s = ( ( s >> ( ( s >> 28u ) + 4u ) ) ^ s ) * 277803737u;\n s = ( s >> 22u ) ^ s;\n return s;\n\n }\n"), Jr = /* @__PURE__ */ wt("\n fn wang_hash( seed: u32 ) -> u32 {\n\n var s = seed;\n s = ( s ^ 61u ) ^ ( s >> 16u );\n s = s * 9u;\n s = s ^ ( s >> 4u );\n s = s * 0x27d4eb2du;\n s = s ^ ( s >> 15u );\n return s;\n\n }\n"), Yr = (e) => (e.assign(e.mul(1664525).add(1013904223)), L(e.shiftRight(8)).mul(1 / 16777216)), Xr = (e) => (e.assign(qr({ state: e })), L(e.shiftRight(8)).mul(1 / 16777216)), Zr = (e) => {
164
+ var Gr = I(.7548776662466927), Kr = I(.5698402909980532), qr = /* @__PURE__ */ wt("\n fn pcgHash( state: u32 ) -> u32 {\n\n var s = state;\n s = s * 747796405u + 2891336453u;\n s = ( ( s >> ( ( s >> 28u ) + 4u ) ) ^ s ) * 277803737u;\n s = ( s >> 22u ) ^ s;\n return s;\n\n }\n"), Jr = /* @__PURE__ */ wt("\n fn wang_hash( seed: u32 ) -> u32 {\n\n var s = seed;\n s = ( s ^ 61u ) ^ ( s >> 16u );\n s = s * 9u;\n s = s ^ ( s >> 4u );\n s = s * 0x27d4eb2du;\n s = s ^ ( s >> 15u );\n return s;\n\n }\n"), Yr = (e) => (e.assign(e.mul(1664525).add(1013904223)), I(e.shiftRight(8)).mul(1 / 16777216)), Xr = (e) => (e.assign(qr({ state: e })), I(e.shiftRight(8)).mul(1 / 16777216)), Zr = (e) => {
165
165
  let t = Yr(e).mul(_e).toVar();
166
166
  return J(Oe(t), it(t)).mul(U(Yr(e)));
167
167
  }, Qr = 4096, $r = (e, t, n, r) => {
168
- let i = G(r).bitAnd(G(63)), a = L(n).add(L(t).mul(7)), o = R(Pe(a.mul(Gr).add(.5)).mul(128)), s = R(Pe(a.mul(Kr).add(.5)).mul(128)), c = R(e.x).add(o).bitAnd(R(127)), l = R(e.y).add(s).bitAnd(R(127)), u = R(i).bitAnd(R(7)), d = R(i).shiftRight(R(3));
168
+ let i = G(r).bitAnd(G(63)), a = I(n).add(I(t).mul(7)), o = R(Pe(a.mul(Gr).add(.5)).mul(128)), s = R(Pe(a.mul(Kr).add(.5)).mul(128)), c = R(e.x).add(o).bitAnd(R(127)), l = R(e.y).add(s).bitAnd(R(127)), u = R(i).bitAnd(R(7)), d = R(i).shiftRight(R(3));
169
169
  return Ie(u.mul(R(128)).add(c), d.mul(R(128)).add(l));
170
170
  }, ei = (e, t, n, r) => {
171
- let i = $r(e, t, n, r), a = Wr.load(i).xy, o = L(G(r).shiftRight(G(6))), s = Pe(J(Gr, Kr).mul(o));
171
+ let i = $r(e, t, n, r), a = Wr.load(i).xy, o = I(G(r).shiftRight(G(6))), s = Pe(J(Gr, Kr).mul(o));
172
172
  return Pe(a.add(s));
173
173
  }, ti = /* @__PURE__ */ wt("\n fn haltonScrambled( index: i32, base: i32, scramble: u32 ) -> f32 {\n\n var result = 0.0f;\n var f = 1.0f;\n var i = index + 1;\n var s = scramble;\n var iter = 0;\n\n while ( i > 0 && iter < 32 ) {\n\n iter += 1;\n f /= f32( base );\n\n // Additive permutation per digit: (digit + s_k) mod base\n // Guaranteed bijection within [0, base) for any s_k\n var digit = i % base;\n digit = ( digit + i32( s % u32( base ) ) ) % base;\n result += f * f32( digit );\n i /= base;\n\n // Evolve scramble per digit position for position-dependent permutations\n s = s * 747796405u + 2891336453u;\n\n }\n\n return result;\n\n }\n"), ni = /* @__PURE__ */ wt("\n fn owen_scramble( x: u32, seed: u32 ) -> u32 {\n\n var v = reverseBits( x );\n v += seed;\n v ^= v * 0x6c50b47cu;\n v ^= v * 0xb82f1e52u;\n v ^= v * 0xc7afe638u;\n v ^= v * 0x8d22f6e6u;\n return reverseBits( v );\n\n }\n"), ri = /* @__PURE__ */ wt("\n fn sobol2D( index: u32 ) -> vec2u {\n\n let r0 = reverseBits( index );\n\n var x = r0;\n x ^= ( x << 1u ) & 0xaaaaaaaau;\n x ^= ( x << 2u ) & 0xccccccccu;\n x ^= ( x << 4u ) & 0xf0f0f0f0u;\n x ^= ( x << 8u ) & 0xff00ff00u;\n x ^= ( x << 16u ) & 0xffff0000u;\n\n return vec2u( r0, x );\n\n }\n"), ii = /* @__PURE__ */ wt("\n fn owen_scrambled_sobol( index: u32, dimension: u32, seed: u32 ) -> f32 {\n\n let dimSeed = seed ^ ( dimension * 0x9e3779b9u + 0x6a09e667u );\n let shuffled = owen_scramble( index, dimSeed ^ 0xa511e9b3u );\n let pair = sobol2D( shuffled );\n let raw = select( pair.x, pair.y, ( dimension & 1u ) != 0u );\n return f32( owen_scramble( raw, dimSeed ) ) / 4294967296.0f;\n\n }\n", [ri, ni]), ai = /* @__PURE__ */ wt("\n fn owen_scrambled_sobol2D( index: u32, seed: u32 ) -> vec2f {\n\n let shuffled = owen_scramble( index, seed ^ 0xa511e9b3u );\n let pair = sobol2D( shuffled );\n return vec2f(\n f32( owen_scramble( pair.x, seed ^ 0x68bc21ebu ) ) / 4294967296.0f,\n f32( owen_scramble( pair.y, seed ^ 0x02e5be93u ) ) / 4294967296.0f\n );\n\n }\n", [ri, ni]), oi = (e, t, n, r, i, a, o, s) => {
174
174
  let c = H(a.notEqual(R(-1)), a, Br), l = X(0).toVar();
@@ -256,7 +256,7 @@ var Gr = L(.7548776662466927), Kr = L(.5698402909980532), qr = /* @__PURE__ */ w
256
256
  }));
257
257
  }), o;
258
258
  }, li = (e, t, n, r, i, a) => {
259
- let o = L(0).toVar();
259
+ let o = I(0).toVar();
260
260
  return N(Br.equal(R(0)), () => {
261
261
  o.assign(Xr(r));
262
262
  }).ElseIf(Br.equal(R(1)), () => {
@@ -279,11 +279,11 @@ var Gr = L(.7548776662466927), Kr = L(.5698402909980532), qr = /* @__PURE__ */ w
279
279
  return N(n.lessThanEqual(R(1)), () => {
280
280
  o.assign(si(e, t, R(0), r, R(-1), i, a));
281
281
  }).Else(() => {
282
- let i = R(U(L(n))), s = n.add(i).sub(1).div(i), c = Ge(t, i.mul(s)), l = Ge(c, i), u = c.div(i), d = J(L(l), L(u)).div(J(L(i), L(s))), f = J(Yr(r).toVar(), Yr(r).toVar()).toVar();
282
+ let i = R(U(I(n))), s = n.add(i).sub(1).div(i), c = Ge(t, i.mul(s)), l = Ge(c, i), u = c.div(i), d = J(I(l), I(u)).div(J(I(i), I(s))), f = J(Yr(r).toVar(), Yr(r).toVar()).toVar();
283
283
  N(n.greaterThan(R(4)), () => {
284
284
  let n = ei(e, t, R(0), a).mul(.1);
285
285
  f.assign(B(f, n, .2));
286
- }), f.divAssign(J(L(i), L(s))), o.assign(d.add(f));
286
+ }), f.divAssign(J(I(i), I(s))), o.assign(d.add(f));
287
287
  }), o;
288
288
  }, di = /* @__PURE__ */ wt("\n fn getDecorrelatedSeed( pixelCoord: vec2f, rayIndex: i32, frame: u32 ) -> u32 {\n\n // Use multiple primes for better decorrelation\n let pixelSeed = u32( pixelCoord.x ) * 2654435761u + u32( pixelCoord.y ) * 3266489917u;\n let raySeed = u32( rayIndex ) * 668265263u;\n let frameSeed = frame * 374761393u;\n\n // Multiple rounds of hashing for better quality\n var seed = wang_hash( pixelSeed );\n seed = pcgHash( seed ^ raySeed );\n seed = wang_hash( seed + frameSeed );\n return seed;\n\n }\n", [Jr, qr]), fi = {
289
289
  ALWAYS: "always",
@@ -3984,7 +3984,7 @@ Lr({
3984
3984
  });
3985
3985
  //#endregion
3986
3986
  //#region src/TSL/Common.js
3987
- var ic = /* @__PURE__ */ wt("\n fn offsetRayOrigin( p: vec3f, n: vec3f ) -> vec3f {\n let step = select( vec3<i32>( 32 ), vec3<i32>( -32 ), ( p < vec3f( 0.0 ) ) != ( n < vec3f( 0.0 ) ) );\n let far = bitcast<vec3f>( bitcast<vec3<i32>>( p ) + step );\n return select( far, p + n * 1e-5, abs( p ) < vec3f( 1.0 ) );\n }\n"), ac = .9999, oc = 3.14159, sc = 1 / oc, cc = 2 * oc, lc = 1e-6, uc = .05, dc = .089, fc = .001, pc = Y(.2126, .7152, .0722), mc = 65504, hc = (e, t = 1e7) => H(e.equal(e), e, L(0)).clamp(0, t), gc = (e, t = 1e7) => Y(hc(e.x, t), hc(e.y, t), hc(e.z, t)), _c = $.SLOTS_PER_MATERIAL, vc = $.SLOT, yc = vc, bc = Ue(3.2404542, -.969266, .0556434, -1.5371385, 1.8760108, -.2040259, -.4985314, .041556, 1.0572252);
3987
+ var ic = /* @__PURE__ */ wt("\n fn offsetRayOrigin( p: vec3f, n: vec3f ) -> vec3f {\n let step = select( vec3<i32>( 32 ), vec3<i32>( -32 ), ( p < vec3f( 0.0 ) ) != ( n < vec3f( 0.0 ) ) );\n let far = bitcast<vec3f>( bitcast<vec3<i32>>( p ) + step );\n return select( far, p + n * 1e-5, abs( p ) < vec3f( 1.0 ) );\n }\n"), ac = .9999, oc = 3.14159, sc = 1 / oc, cc = 2 * oc, lc = 1e-6, uc = .05, dc = .089, fc = .001, pc = Y(.2126, .7152, .0722), mc = 65504, hc = (e, t = 1e7) => H(e.equal(e), e, I(0)).clamp(0, t), gc = (e, t = 1e7) => Y(hc(e.x, t), hc(e.y, t), hc(e.z, t)), _c = $.SLOTS_PER_MATERIAL, vc = $.SLOT, yc = vc, bc = Ue(3.2404542, -.969266, .0556434, -1.5371385, 1.8760108, -.2040259, -.4985314, .041556, 1.0572252);
3988
3988
  wt("\n fn sRGBToLinear( srgbColor: vec3f ) -> vec3f {\n\n return pow( srgbColor, vec3f( 2.2 ) );\n\n }\n"), wt("\n fn gammaCorrection( color: vec3f ) -> vec3f {\n\n return pow( color, vec3f( 1.0 / 2.2 ) );\n\n }\n");
3989
3989
  var xc = wt("\n fn square( x: f32 ) -> f32 {\n\n return x * x;\n\n }\n");
3990
3990
  wt("\n fn squareVec3( x: vec3f ) -> vec3f {\n\n return x * x;\n\n }\n"), wt("\n fn maxComponent( v: vec3f ) -> f32 {\n\n return max( max( v.r, v.g ), v.b );\n\n }\n"), wt("\n fn minComponent( v: vec3f ) -> f32 {\n\n return min( min( v.r, v.g ), v.b );\n\n }\n");
@@ -4006,19 +4006,19 @@ var Sc = wt("\n fn luminance( color: vec3f ) -> f32 {\n\n return dot( color, ve
4006
4006
  wt("\n fn applyDithering( color: vec3f, uv: vec2f, ditheringAmount: f32, resolution: vec2f ) -> vec3f {\n\n let bayerRow0 = vec4f( 0.0 / 16.0, 8.0 / 16.0, 2.0 / 16.0, 10.0 / 16.0 );\n let bayerRow1 = vec4f( 12.0 / 16.0, 4.0 / 16.0, 14.0 / 16.0, 6.0 / 16.0 );\n let bayerRow2 = vec4f( 3.0 / 16.0, 11.0 / 16.0, 1.0 / 16.0, 9.0 / 16.0 );\n let bayerRow3 = vec4f( 15.0 / 16.0, 7.0 / 16.0, 13.0 / 16.0, 5.0 / 16.0 );\n let bayer = mat4x4f( bayerRow0, bayerRow1, bayerRow2, bayerRow3 );\n\n let pixelCoord = vec2i( uv * resolution );\n let dither = bayer[ pixelCoord.x % 4 ][ pixelCoord.y % 4 ];\n\n return color + ( dither - 0.5 ) * ditheringAmount / 255.0;\n\n }\n");
4007
4007
  var Tc = wt("\n fn constructTBN( N: vec3f ) -> mat3x3f {\n\n var majorAxis: vec3f;\n if ( abs( N.x ) < 0.999 ) {\n majorAxis = vec3f( 1.0, 0.0, 0.0 );\n } else {\n majorAxis = vec3f( 0.0, 1.0, 0.0 );\n }\n let T = normalize( cross( N, majorAxis ) );\n let B = normalize( cross( N, T ) );\n return mat3x3f( T, B, N );\n\n }\n");
4008
4008
  M(([e, t, n]) => {
4009
- let r = t.add(n).toVar(), i = I(r, r).toVar();
4009
+ let r = t.add(n).toVar(), i = F(r, r).toVar();
4010
4010
  return r.assign(i.greaterThan(lc).select(r.div(i.sqrt()), Y(0, 0, 1))), Zs({
4011
- NoL: z(I(e, n), .001),
4012
- NoV: z(I(e, t), .001),
4013
- NoH: z(I(e, r), .001),
4014
- VoH: z(I(t, r), .001),
4015
- LoH: z(I(n, r), .001),
4016
- ToH: L(0),
4017
- BoH: L(0),
4018
- ToV: L(0),
4019
- BoV: L(0),
4020
- ToL: L(0),
4021
- BoL: L(0)
4011
+ NoL: z(F(e, n), .001),
4012
+ NoV: z(F(e, t), .001),
4013
+ NoH: z(F(e, r), .001),
4014
+ VoH: z(F(t, r), .001),
4015
+ LoH: z(F(n, r), .001),
4016
+ ToH: I(0),
4017
+ BoH: I(0),
4018
+ ToV: I(0),
4019
+ BoV: I(0),
4020
+ ToL: I(0),
4021
+ BoL: I(0)
4022
4022
  });
4023
4023
  });
4024
4024
  var Ec = M(([e, t]) => {
@@ -4028,18 +4028,18 @@ var Ec = M(([e, t]) => {
4028
4028
  Ba: i.mul(a).sub(r.mul(o))
4029
4029
  });
4030
4030
  }), Dc = M(([e, t, n, r]) => {
4031
- let i = t.add(n).toVar(), a = I(i, i).toVar();
4031
+ let i = t.add(n).toVar(), a = F(i, i).toVar();
4032
4032
  i.assign(a.greaterThan(lc).select(i.div(a.sqrt()), Y(0, 0, 1)));
4033
- let o = L(0).toVar(), s = L(0).toVar(), c = L(0).toVar(), l = L(0).toVar(), u = L(0).toVar(), d = L(0).toVar();
4033
+ let o = I(0).toVar(), s = I(0).toVar(), c = I(0).toVar(), l = I(0).toVar(), u = I(0).toVar(), d = I(0).toVar();
4034
4034
  return N(r.anisotropy.greaterThan(0), () => {
4035
4035
  let a = Xs.wrap(Ec(e, r.anisotropyRotation));
4036
- o.assign(I(a.Ta, i)), s.assign(I(a.Ba, i)), c.assign(I(a.Ta, t)), l.assign(I(a.Ba, t)), u.assign(I(a.Ta, n)), d.assign(I(a.Ba, n));
4036
+ o.assign(F(a.Ta, i)), s.assign(F(a.Ba, i)), c.assign(F(a.Ta, t)), l.assign(F(a.Ba, t)), u.assign(F(a.Ta, n)), d.assign(F(a.Ba, n));
4037
4037
  }), Zs({
4038
- NoL: z(I(e, n), .001),
4039
- NoV: z(I(e, t), .001),
4040
- NoH: z(I(e, i), .001),
4041
- VoH: z(I(t, i), .001),
4042
- LoH: z(I(n, i), .001),
4038
+ NoL: z(F(e, n), .001),
4039
+ NoV: z(F(e, t), .001),
4040
+ NoH: z(F(e, i), .001),
4041
+ VoH: z(F(t, i), .001),
4042
+ LoH: z(F(n, i), .001),
4043
4043
  ToH: o,
4044
4044
  BoH: s,
4045
4045
  ToV: c,
@@ -4062,7 +4062,7 @@ var Ec = M(([e, t]) => {
4062
4062
 
4063
4063
  }
4064
4064
  `, [kc]), jc = M(([e, t, n, r, i, a]) => {
4065
- let o = e.greaterThan(.7).toVar(), s = t.greaterThan(.8), c = t.lessThan(.3).toVar(), l = n.greaterThan(.5).toVar(), u = r.greaterThan(.5).toVar(), d = a.greaterThan(0), f = i.x.add(i.y).add(i.z).greaterThan(0).toVar(), p = L(.15).mul(L(o)).add(L(.25).mul(L(c))).add(L(.45).mul(L(l))).add(L(.35).mul(L(u))).add(L(.3).mul(L(f))).add(L(.4).mul(L(d))), m = L(0).toVar();
4065
+ let o = e.greaterThan(.7).toVar(), s = t.greaterThan(.8), c = t.lessThan(.3).toVar(), l = n.greaterThan(.5).toVar(), u = r.greaterThan(.5).toVar(), d = a.greaterThan(0), f = i.x.add(i.y).add(i.z).greaterThan(0).toVar(), p = I(.15).mul(I(o)).add(I(.25).mul(I(c))).add(I(.45).mul(I(l))).add(I(.35).mul(I(u))).add(I(.3).mul(I(f))).add(I(.4).mul(I(d))), m = I(0).toVar();
4066
4066
  return N(o.and(c), () => {
4067
4067
  m.addAssign(.15);
4068
4068
  }), N(l.and(u), () => {
@@ -4172,25 +4172,25 @@ var Ec = M(([e, t]) => {
4172
4172
  return Us({
4173
4173
  color: X(1, 1, 1, 1),
4174
4174
  emissive: Y(0),
4175
- emissiveIntensity: L(0),
4176
- roughness: L(1),
4177
- metalness: L(0),
4178
- ior: L(1.5),
4179
- transmission: L(0),
4180
- thickness: L(0),
4181
- clearcoat: L(0),
4182
- clearcoatRoughness: L(0),
4183
- opacity: L(1),
4184
- transparent: L(0),
4175
+ emissiveIntensity: I(0),
4176
+ roughness: I(1),
4177
+ metalness: I(0),
4178
+ ior: I(1.5),
4179
+ transmission: I(0),
4180
+ thickness: I(0),
4181
+ clearcoat: I(0),
4182
+ clearcoatRoughness: I(0),
4183
+ opacity: I(1),
4184
+ transparent: I(0),
4185
4185
  attenuationColor: Y(1),
4186
- attenuationDistance: L(0),
4187
- dispersion: L(0),
4188
- sheen: L(0),
4189
- sheenRoughness: L(1),
4186
+ attenuationDistance: I(0),
4187
+ dispersion: I(0),
4188
+ sheen: I(0),
4189
+ sheenRoughness: I(1),
4190
4190
  sheenColor: Y(0),
4191
- specularIntensity: L(1),
4191
+ specularIntensity: I(1),
4192
4192
  specularColor: Y(1),
4193
- alphaTest: L(0),
4193
+ alphaTest: I(0),
4194
4194
  alphaMode: R(0),
4195
4195
  side: R(0),
4196
4196
  depthWrite: R(1),
@@ -4198,8 +4198,8 @@ var Ec = M(([e, t]) => {
4198
4198
  emissiveMapIndex: R(-1),
4199
4199
  normalMapIndex: R(-1),
4200
4200
  bumpMapIndex: R(-1),
4201
- bumpScale: L(1),
4202
- displacementScale: L(0),
4201
+ bumpScale: I(1),
4202
+ displacementScale: I(0),
4203
4203
  metalnessMapIndex: R(-1),
4204
4204
  roughnessMapIndex: R(-1),
4205
4205
  displacementMapIndex: R(-1),
@@ -4211,16 +4211,16 @@ var Ec = M(([e, t]) => {
4211
4211
  metalnessTransform: e,
4212
4212
  roughnessTransform: e,
4213
4213
  displacementTransform: e,
4214
- iridescence: L(0),
4215
- iridescenceIOR: L(1.3),
4214
+ iridescence: I(0),
4215
+ iridescenceIOR: I(1.3),
4216
4216
  iridescenceThicknessRange: J(100, 400),
4217
- subsurface: L(0),
4217
+ subsurface: I(0),
4218
4218
  subsurfaceColor: Y(1),
4219
4219
  subsurfaceRadius: Y(1, .2, .1),
4220
- subsurfaceRadiusScale: L(1),
4221
- subsurfaceAnisotropy: L(0),
4222
- anisotropy: L(0),
4223
- anisotropyRotation: L(0),
4220
+ subsurfaceRadiusScale: I(1),
4221
+ subsurfaceAnisotropy: I(0),
4222
+ anisotropy: I(0),
4223
+ anisotropyRotation: I(0),
4224
4224
  anisotropyMapIndex: R(-1),
4225
4225
  transmissionMapIndex: R(-1),
4226
4226
  clearcoatMapIndex: R(-1),
@@ -4308,8 +4308,8 @@ var tl = class {
4308
4308
  dispose() {
4309
4309
  el(this._renderer, this._attrs.ray), el(this._renderer, this._attrs.hit), this._attrs = {}, this.rayBuffer = null, this.hitBuffer = null, this.capacity = 0;
4310
4310
  }
4311
- }, nl = (e, t) => e.element($c(t, Xc.ORIGIN_META)).xyz, rl = (e, t) => e.element($c(t, Xc.DIR_FLAGS)).xyz, il = (e, t) => Me(e.element($c(t, Xc.DIR_FLAGS)).w), al = (e, t) => e.element($c(t, Xc.THROUGHPUT_PDF)).xyz, ol = (e, t) => e.element($c(t, Xc.THROUGHPUT_PDF)).w, sl = (e, t) => e.element($c(t, Xc.RADIANCE_ALPHA)), cl = (e) => G(e).mul(1), ll = (e, t, n, r, i, a = null) => {
4312
- let o = cl(t), s = a === null ? q(e.element(o).w).y : L(a);
4311
+ }, nl = (e, t) => e.element($c(t, Xc.ORIGIN_META)).xyz, rl = (e, t) => e.element($c(t, Xc.DIR_FLAGS)).xyz, il = (e, t) => Ne(e.element($c(t, Xc.DIR_FLAGS)).w), al = (e, t) => e.element($c(t, Xc.THROUGHPUT_PDF)).xyz, ol = (e, t) => e.element($c(t, Xc.THROUGHPUT_PDF)).w, sl = (e, t) => e.element($c(t, Xc.RADIANCE_ALPHA)), cl = (e) => G(e).mul(1), ll = (e, t, n, r, i, a = null) => {
4312
+ let o = cl(t), s = a === null ? q(e.element(o).w).y : I(a);
4313
4313
  return e.element(o).assign(Ct(Je(J(n.x, n.y)), Je(J(n.z, r)), Ye(J(i.x, i.y)), Ye(J(i.z, s))));
4314
4314
  }, ul = (e, t, n) => {
4315
4315
  let r = cl(t), i = e.element(r).toVar();
@@ -4318,18 +4318,18 @@ var tl = class {
4318
4318
  let t = bt(e.x), n = bt(e.y);
4319
4319
  return X(Y(t.x, t.y, n.x).mul(.5).add(.5), n.y);
4320
4320
  }, ml = (e) => Y(q(e.z), q(e.w).x), hl = (e) => {
4321
- let t = P(Ne(He(z(e, 1e-6))), -8, 7), n = P(L(e).mul(je(t.negate())).sub(1).mul(64), 0, 63);
4322
- return H(L(e).lessThan(.004), G(0), G(t.add(8)).shiftLeft(6).bitOr(G(n)));
4321
+ let t = P(L(He(z(e, 1e-6))), -8, 7), n = P(I(e).mul(Me(t.negate())).sub(1).mul(64), 0, 63);
4322
+ return H(I(e).lessThan(.004), G(0), G(t.add(8)).shiftLeft(6).bitOr(G(n)));
4323
4323
  }, gl = (e, t) => {
4324
- let n = Me(e.element($c(t, Xc.ORIGIN_META)).w).shiftRight(22), r = L(n.shiftRight(6).bitAnd(G(15))).sub(8), i = L(n.bitAnd(G(63))).div(64).add(1);
4325
- return H(n.equal(G(0)), L(0), i.mul(je(r)));
4324
+ let n = Ne(e.element($c(t, Xc.ORIGIN_META)).w).shiftRight(22), r = I(n.shiftRight(6).bitAnd(G(15))).sub(8), i = I(n.bitAnd(G(63))).div(64).add(1);
4325
+ return H(n.equal(G(0)), I(0), i.mul(Me(r)));
4326
4326
  }, _l = (e, t, n, r, i, a = G(0), o = null) => {
4327
4327
  let s = G(r).bitAnd(G(255)).bitOr(G(i).bitAnd(G(255)).shiftLeft(8)).bitOr(G(a).bitAnd(G(63)).shiftLeft(16));
4328
4328
  return o !== null && (s = s.bitOr(hl(o).shiftLeft(22))), e.element($c(t, Xc.ORIGIN_META)).assign(X(n, _t(s)));
4329
4329
  }, vl = (e, t, n, r) => e.element($c(t, Xc.DIR_FLAGS)).assign(X(n, _t(r))), yl = (e, t, n, r) => e.element($c(t, Xc.THROUGHPUT_PDF)).assign(X(n, r)), bl = (e, t, n) => e.element($c(t, Xc.RADIANCE_ALPHA)).assign(n), xl = (e, t) => _t(e.element($c(t, Zc.DIST_TRI_BARY)).x), Sl = (e, t) => e.element($c(t, Zc.DIST_TRI_BARY)).y, Cl = (e, t) => _t(e.element($c(t, Zc.DIST_TRI_BARY)).zw), wl = (e, t) => Fc(e.element($c(t, Zc.NORMAL_MAT)).x), Tl = (e, t) => G(e.element($c(t, Zc.NORMAL_MAT)).y), El = (e, t) => R(e.element($c(t, Zc.NORMAL_MAT)).z).sub(R(1)), Dl = (e, t) => e.element($c(t, Zc.NORMAL_MAT)).w, Ol = (e, t) => e.element($c(t, Zc.RNG)).x, kl = (e, t, n) => e.element($c(t, Zc.RNG)).assign(Ct(n, 0, 0, 0)), Al = (e, t, n, r, i, a, o, s, c, l = G(0)) => {
4330
- e.element($c(t, Zc.DIST_TRI_BARY)).assign(Ct(Me(n), r, Me(i), Me(a))), e.element($c(t, Zc.NORMAL_MAT)).assign(Ct(Pc(o), s, c, l));
4330
+ e.element($c(t, Zc.DIST_TRI_BARY)).assign(Ct(Ne(n), r, Ne(i), Ne(a))), e.element($c(t, Zc.NORMAL_MAT)).assign(Ct(Pc(o), s, c, l));
4331
4331
  }, jl = (e, t) => {
4332
- let n = e.element($c(t, Xc.MEDIUM_STACK)), r = Me(n.x);
4332
+ let n = e.element($c(t, Xc.MEDIUM_STACK)), r = Ne(n.x);
4333
4333
  return {
4334
4334
  stackDepth: r.bitAnd(255),
4335
4335
  transTraversals: r.shiftRight(8).bitAnd(255),
@@ -4344,10 +4344,10 @@ var tl = class {
4344
4344
  }, Fl = (e) => {
4345
4345
  let t = P(e, Y(0), Y(1)).mul(1023).add(.5);
4346
4346
  return G(t.x).bitOr(G(t.y).shiftLeft(10)).bitOr(G(t.z).shiftLeft(20));
4347
- }, Il = (e) => Y(L(e.bitAnd(G(1023))), L(e.shiftRight(10).bitAnd(G(1023))), L(e.shiftRight(20).bitAnd(G(1023)))).div(1023), Ll = (e, t) => Il(Me(e.element($c(t, Xc.MEDIUM_SIGMA_A)).w)), Rl = (e, t, n) => {
4347
+ }, Il = (e) => Y(I(e.bitAnd(G(1023))), I(e.shiftRight(10).bitAnd(G(1023))), I(e.shiftRight(20).bitAnd(G(1023)))).div(1023), Ll = (e, t) => Il(Ne(e.element($c(t, Xc.MEDIUM_SIGMA_A)).w)), Rl = (e, t, n) => {
4348
4348
  let r = e.element($c(t, Xc.MEDIUM_SIGMA_A)).xyz.toVar();
4349
4349
  e.element($c(t, Xc.MEDIUM_SIGMA_A)).assign(X(r, _t(Fl(n))));
4350
- }, zl = (e, t) => R(Me(e.element($c(t, Xc.ORIGIN_META)).w).bitAnd(255)), Bl = (e, t) => R(Me(e.element($c(t, Xc.ORIGIN_META)).w).shiftRight(8).bitAnd(255)), Vl = (e, t) => R(Me(e.element($c(t, Xc.ORIGIN_META)).w).shiftRight(16).bitAnd(G(63))), Hl = (e, t) => {
4350
+ }, zl = (e, t) => R(Ne(e.element($c(t, Xc.ORIGIN_META)).w).bitAnd(255)), Bl = (e, t) => R(Ne(e.element($c(t, Xc.ORIGIN_META)).w).shiftRight(8).bitAnd(255)), Vl = (e, t) => R(Ne(e.element($c(t, Xc.ORIGIN_META)).w).shiftRight(16).bitAnd(G(63))), Hl = (e, t) => {
4351
4351
  let n = e.element($c(t, Xc.SSS_SIGMA_S));
4352
4352
  return {
4353
4353
  sigmaS: n.xyz,
@@ -4930,9 +4930,9 @@ var Mu = Math.sqrt(Gl * Gl - Wl * Wl), Nu = Gl - Wl, Pu = Math.PI, Fu = [
4930
4930
  ], Iu = (e) => Fu.map(e);
4931
4931
  function Lu(e) {
4932
4932
  return {
4933
- r: Ae(e.mul(-1 / 8)),
4934
- m: Ae(e.mul(-1 / Kl)),
4935
- o: z(L(0), L(1).sub(ve(e.sub(25)).div(15)))
4933
+ r: je(e.mul(-1 / 8)),
4934
+ m: je(e.mul(-1 / Kl)),
4935
+ o: z(I(0), I(1).sub(ve(e.sub(25)).div(15)))
4936
4936
  };
4937
4937
  }
4938
4938
  function Ru(e, t) {
@@ -4940,19 +4940,19 @@ function Ru(e, t) {
4940
4940
  }
4941
4941
  function zu(e, t) {
4942
4942
  return Iu((n) => {
4943
- let r = e[n].mul(t), i = Ae(r.negate()), a = L(1).sub(i).div(z(r, 1e-12));
4943
+ let r = e[n].mul(t), i = je(r.negate()), a = I(1).sub(i).div(z(r, 1e-12));
4944
4944
  return {
4945
- weight: B(L(1).sub(r.mul(.5)), a, ot(.001, r)).mul(t),
4945
+ weight: B(I(1).sub(r.mul(.5)), a, ot(.001, r)).mul(t),
4946
4946
  transmittance: i
4947
4947
  };
4948
4948
  });
4949
4949
  }
4950
4950
  function Bu(e, t, n, r, i, a = 1, o = 0) {
4951
- let s = P(r, 0, t - 1), c = P(i, 0, n - 1), l = Ne(s), u = Ne(c), d = s.sub(l), f = c.sub(u), p = G(l), m = G(u), h = We(p.add(1), G(t - 1)), g = We(m.add(1), G(n - 1)), _ = (n, r) => e.element(r.mul(t).add(n).mul(a).add(o));
4951
+ let s = P(r, 0, t - 1), c = P(i, 0, n - 1), l = L(s), u = L(c), d = s.sub(l), f = c.sub(u), p = G(l), m = G(u), h = We(p.add(1), G(t - 1)), g = We(m.add(1), G(n - 1)), _ = (n, r) => e.element(r.mul(t).add(n).mul(a).add(o));
4952
4952
  return B(B(_(p, m), _(h, m), d), B(_(p, g), _(h, g), d), f);
4953
4953
  }
4954
4954
  function Vu(e, t) {
4955
- let n = e.add(Wl), r = U(z(e.mul(e.add(2 * Wl)), 0)), i = n.mul(t), a = i.negate().add(U(z(i.mul(i).add(Mu * Mu).sub(r.mul(r)), 0))), o = L(Nu).sub(e), s = r.add(Mu);
4955
+ let n = e.add(Wl), r = U(z(e.mul(e.add(2 * Wl)), 0)), i = n.mul(t), a = i.negate().add(U(z(i.mul(i).add(Mu * Mu).sub(r.mul(r)), 0))), o = I(Nu).sub(e), s = r.add(Mu);
4956
4956
  return {
4957
4957
  x: a.sub(o).div(z(s.sub(o), 1e-6)).mul(255),
4958
4958
  y: r.div(Mu).mul(63),
@@ -4962,9 +4962,9 @@ function Vu(e, t) {
4962
4962
  }
4963
4963
  function Hu(e, t, n, r, i) {
4964
4964
  let a = Vu(n, r), o = Bu(e, 256, 64, a.x, a.y).xyz, s = at(i.negate(), i, r.add(a.rho.div(a.r)));
4965
- return Iu((e) => Ae(t.rayleigh[e].mul(o.x).add(t.mieExtinction[e].mul(o.y)).add(t.ozone[e].mul(o.z)).negate()).mul(s));
4965
+ return Iu((e) => je(t.rayleigh[e].mul(o.x).add(t.mieExtinction[e].mul(o.y)).add(t.ozone[e].mul(o.z)).negate()).mul(s));
4966
4966
  }
4967
- var Uu = (e) => L(e).div(15).pow(2).mul(Nu), Wu = (e) => U(P(e.div(Nu), 0, 1)).mul(15), Gu = -3 * Pu / 180, Ku = 15 * Pu / 180, qu = .5 + Math.atan((-Pu / 2 - Gu) / Ku) / Pu, Ju = .5 + Math.atan((Pu / 2 - Gu) / Ku) / Pu, Yu = (e, t) => it(P(ft(L(e).div(t - 1).mul(Ju - qu).add(qu - .5).mul(Pu)).mul(Ku).add(Gu), -Pu / 2, Pu / 2)), Xu = (e, t) => Se(xe(P(e, -1, 1)).sub(Gu).div(Ku)).div(Pu).add(.5 - qu).div(Ju - qu).mul(t - 1), Zu = 1e-30, Qu = (e) => Ve(z(e, X(Zu)));
4967
+ var Uu = (e) => I(e).div(15).pow(2).mul(Nu), Wu = (e) => U(P(e.div(Nu), 0, 1)).mul(15), Gu = -3 * Pu / 180, Ku = 15 * Pu / 180, qu = .5 + Math.atan((-Pu / 2 - Gu) / Ku) / Pu, Ju = .5 + Math.atan((Pu / 2 - Gu) / Ku) / Pu, Yu = (e, t) => it(P(ft(I(e).div(t - 1).mul(Ju - qu).add(qu - .5).mul(Pu)).mul(Ku).add(Gu), -Pu / 2, Pu / 2)), Xu = (e, t) => Se(xe(P(e, -1, 1)).sub(Gu).div(Ku)).div(Pu).add(.5 - qu).div(Ju - qu).mul(t - 1), Zu = 1e-30, Qu = (e) => Ve(z(e, X(Zu)));
4968
4968
  function $u(e, t, n, r, i) {
4969
4969
  let a = [
4970
4970
  [P(Xu(n, 64), 0, 63), 64],
@@ -4972,7 +4972,7 @@ function $u(e, t, n, r, i) {
4972
4972
  [P(r.add(1).mul(.5 * 15), 0, 15), 16],
4973
4973
  [P(ye(P(i, -1, 1)).mul(7 / Pu), 0, 7), 8]
4974
4974
  ].map(([e, t]) => {
4975
- let n = Ne(e), r = e.sub(n).toVar(), i = G(n).toVar();
4975
+ let n = L(e), r = e.sub(n).toVar(), i = G(n).toVar();
4976
4976
  return {
4977
4977
  t: r,
4978
4978
  i0: i,
@@ -4997,15 +4997,15 @@ function $u(e, t, n, r, i) {
4997
4997
  for (let n = 0; n < r.length; n += 2) t.push(B(r[n], r[n + 1], a[e].t));
4998
4998
  r = t;
4999
4999
  }
5000
- return Ae(r[0]);
5000
+ return je(r[0]);
5001
5001
  });
5002
5002
  }
5003
5003
  function ed(e, t) {
5004
5004
  let n = Xu(t, 128);
5005
- return Iu((t) => Ae(Bu(e, 128, 1, n, L(0), 4, t)));
5005
+ return Iu((t) => je(Bu(e, 128, 1, n, I(0), 4, t)));
5006
5006
  }
5007
5007
  function td(e, t) {
5008
- let n = e.add(Wl).toVar(), r = n.mul(t).toVar(), i = e.mul(e.add(2 * Wl)).toVar(), a = r.mul(r).sub(i), o = t.lessThan(0).and(a.greaterThanEqual(0)).toVar(), s = i.div(z(r.negate().add(U(z(a, 0))), 1e-9)), c = r.negate().add(U(z(r.mul(r).add(L(Gl).sub(n).mul(n.add(Gl))), 0)));
5008
+ let n = e.add(Wl).toVar(), r = n.mul(t).toVar(), i = e.mul(e.add(2 * Wl)).toVar(), a = r.mul(r).sub(i), o = t.lessThan(0).and(a.greaterThanEqual(0)).toVar(), s = i.div(z(r.negate().add(U(z(a, 0))), 1e-9)), c = r.negate().add(U(z(r.mul(r).add(I(Gl).sub(n).mul(n.add(Gl))), 0)));
5009
5009
  return {
5010
5010
  r: n,
5011
5011
  b: r,
@@ -5014,7 +5014,7 @@ function td(e, t) {
5014
5014
  tMax: o.select(s, c).toVar()
5015
5015
  };
5016
5016
  }
5017
- var nd = (e, t, n) => e.sub(t.mul(n)).div(z(U(L(1).sub(t.mul(t)).mul(L(1).sub(n.mul(n)))), 1e-4));
5017
+ var nd = (e, t, n) => e.sub(t.mul(n)).div(z(U(I(1).sub(t.mul(t)).mul(I(1).sub(n.mul(n)))), 1e-4));
5018
5018
  function rd(e, t, n, r) {
5019
5019
  let i = t.mul(t.add(e.b.mul(2))), a = U(e.r.mul(e.r).add(i));
5020
5020
  return {
@@ -5025,7 +5025,7 @@ function rd(e, t, n, r) {
5025
5025
  }
5026
5026
  var id = (e) => e.mul(e).add(1).mul(3 / (16 * Pu));
5027
5027
  function ad(e, t) {
5028
- let n = t * t, r = 3 / (8 * Pu) * (1 - n) / (2 + n), i = z(L(1 + n).sub(e.mul(2 * t)), 1e-6);
5028
+ let n = t * t, r = 3 / (8 * Pu) * (1 - n) / (2 + n), i = z(I(1 + n).sub(e.mul(2 * t)), 1e-6);
5029
5029
  return e.mul(e).add(1).mul(r).div(i.mul(U(i)));
5030
5030
  }
5031
5031
  function od({ transmittance: e }, t = 256) {
@@ -5035,26 +5035,26 @@ function od({ transmittance: e }, t = 256) {
5035
5035
  N(r.greaterThanEqual(G(n)), () => {
5036
5036
  ge();
5037
5037
  });
5038
- let i = L(r.mod(256)).div(255), a = L(r.div(256)).div(63).mul(Mu).toVar(), o = U(a.mul(a).add(Wl * Wl)).toVar(), s = L(Gl).sub(o), c = a.add(Mu), l = s.add(i.mul(c.sub(s))).toVar(), u = P(L(Mu * Mu).sub(a.mul(a)).sub(l.mul(l)).div(z(o.mul(l).mul(2), 1e-9)), -1, 1).toVar(), d = a.mul(a).toVar(), f = o.mul(u).mul(2).toVar(), p = Y(0).toVar();
5038
+ let i = I(r.mod(256)).div(255), a = I(r.div(256)).div(63).mul(Mu).toVar(), o = U(a.mul(a).add(Wl * Wl)).toVar(), s = I(Gl).sub(o), c = a.add(Mu), l = s.add(i.mul(c.sub(s))).toVar(), u = P(I(Mu * Mu).sub(a.mul(a)).sub(l.mul(l)).div(z(o.mul(l).mul(2), 1e-9)), -1, 1).toVar(), d = a.mul(a).toVar(), f = o.mul(u).mul(2).toVar(), p = Y(0).toVar();
5039
5039
  he({
5040
5040
  start: R(0),
5041
5041
  end: R(t),
5042
5042
  type: "int",
5043
5043
  condition: "<"
5044
5044
  }, ({ i: e }) => {
5045
- let n = L(e).div(t), r = L(e).add(1).div(t), i = l.mul(n.mul(n)), a = l.mul(r.mul(r)), s = i.add(a).mul(.5), c = s.mul(s.add(f)), u = Lu(z(d.add(c).div(U(o.mul(o).add(c)).add(Wl)), 0));
5045
+ let n = I(e).div(t), r = I(e).add(1).div(t), i = l.mul(n.mul(n)), a = l.mul(r.mul(r)), s = i.add(a).mul(.5), c = s.mul(s.add(f)), u = Lu(z(d.add(c).div(U(o.mul(o).add(c)).add(Wl)), 0));
5046
5046
  p.addAssign(Y(u.r, u.m, u.o).mul(a.sub(i)));
5047
5047
  }), e.element(r).assign(X(p, 0));
5048
5048
  })().compute(n, [64]);
5049
5049
  }
5050
5050
  var sd = 4 * Pu / 128;
5051
5051
  function cd(e, t, n, r) {
5052
- let i = L(e).add(L(n.div(r)).add(.5).div(r)).div(16).mul(2).sub(1), a = U(z(L(1).sub(i.mul(i)), 0)), o = L(t).add(L(n.mod(r)).add(.5).div(r)).mul(Pu / 8);
5052
+ let i = I(e).add(I(n.div(r)).add(.5).div(r)).div(16).mul(2).sub(1), a = U(z(I(1).sub(i.mul(i)), 0)), o = I(t).add(I(n.mod(r)).add(.5).div(r)).mul(Pu / 8);
5053
5053
  return Y(a.mul(Oe(o)), i, a.mul(it(o)));
5054
5054
  }
5055
5055
  function ld(e, t) {
5056
5056
  let n = Xu(t, 64);
5057
- return Iu((t) => Bu(e, 64, 1, n, L(0), 4, t));
5057
+ return Iu((t) => Bu(e, 64, 1, n, I(0), 4, t));
5058
5058
  }
5059
5059
  function ud(e, { first: t, out: n, cellSamples: r = 2, steps: i = 20 }) {
5060
5060
  let { transmittance: a, transfer: o, multipleScattering: s, groundE: c, coefficients: l, sunSinRadius: u, mieG: d } = e, f = 1024 * 128, p = r * r;
@@ -5063,7 +5063,7 @@ function ud(e, { first: t, out: n, cellSamples: r = 2, steps: i = 20 }) {
5063
5063
  N(e.greaterThanEqual(G(f)), () => {
5064
5064
  ge();
5065
5065
  });
5066
- let m = e.mod(128), h = e.div(128), g = Yu(h.mod(64), 64).toVar(), _ = z(Uu(h.div(64)), .001).toVar(), v = Y(U(z(L(1).sub(g.mul(g)), 0)), g, 0).toVar(), y = Iu(() => X(0).toVar()), b = t ? Iu(() => X(0).toVar()) : null;
5066
+ let m = e.mod(128), h = e.div(128), g = Yu(h.mod(64), 64).toVar(), _ = z(Uu(h.div(64)), .001).toVar(), v = Y(U(z(I(1).sub(g.mul(g)), 0)), g, 0).toVar(), y = Iu(() => X(0).toVar()), b = t ? Iu(() => X(0).toVar()) : null;
5067
5067
  he({
5068
5068
  start: R(0),
5069
5069
  end: R(p),
@@ -5071,14 +5071,14 @@ function ud(e, { first: t, out: n, cellSamples: r = 2, steps: i = 20 }) {
5071
5071
  condition: "<",
5072
5072
  name: "ray"
5073
5073
  }, ({ ray: e }) => {
5074
- let n = cd(m.div(8), m.mod(8), e, r).toVar(), o = I(n, v).toVar(), f = t ? id(o).toVar() : null, p = t ? ad(o, d).toVar() : null, h = t ? null : Array.from({ length: 8 }, () => X(0).toVar()), x = td(_, n.y), S = Iu(() => X(1).toVar());
5074
+ let n = cd(m.div(8), m.mod(8), e, r).toVar(), o = F(n, v).toVar(), f = t ? id(o).toVar() : null, p = t ? ad(o, d).toVar() : null, h = t ? null : Array.from({ length: 8 }, () => X(0).toVar()), x = td(_, n.y), S = Iu(() => X(1).toVar());
5075
5075
  he({
5076
5076
  start: R(0),
5077
5077
  end: R(i),
5078
5078
  type: "int",
5079
5079
  condition: "<"
5080
5080
  }, ({ i: e }) => {
5081
- let n = L(e).div(i), r = L(e).add(1).div(i), c = x.tMax.mul(n.mul(n)), d = x.tMax.mul(r.mul(r)).sub(c), m = rd(x, c.add(d.mul(.5)), g, o), _ = Lu(m.h), v = Iu((e) => l.rayleigh[e].mul(_.r)), C = Iu((e) => l.mieScattering[e].mul(_.m)), w = zu(Ru(l, _), d), T;
5081
+ let n = I(e).div(i), r = I(e).add(1).div(i), c = x.tMax.mul(n.mul(n)), d = x.tMax.mul(r.mul(r)).sub(c), m = rd(x, c.add(d.mul(.5)), g, o), _ = Lu(m.h), v = Iu((e) => l.rayleigh[e].mul(_.r)), C = Iu((e) => l.mieScattering[e].mul(_.m)), w = zu(Ru(l, _), d), T;
5082
5082
  if (t) {
5083
5083
  let e = Hu(a, l, m.h, m.muS, u);
5084
5084
  T = Iu((t) => e[t].mul(v[t].mul(f).add(C[t].mul(p))));
@@ -5090,7 +5090,7 @@ function ud(e, { first: t, out: n, cellSamples: r = 2, steps: i = 20 }) {
5090
5090
  }), N(x.hitsGround, () => {
5091
5091
  let e = P(x.r.mul(g).add(x.tMax.mul(o)).div(Wl), -1, 1), n;
5092
5092
  if (t) {
5093
- let t = Hu(a, l, L(0), e, u);
5093
+ let t = Hu(a, l, I(0), e, u);
5094
5094
  n = Iu((n) => t[n].mul(z(e, 0)));
5095
5095
  } else n = ld(c, e);
5096
5096
  for (let e of Fu) y[e].addAssign(S[e].mul(n[e]).mul(l.albedo[e]).mul(1 / Pu));
@@ -5118,7 +5118,7 @@ function dd(e, { incoming: t, stage: n }) {
5118
5118
  for (let n of Fu) e[n].addAssign(r.element(f.add(G(t)).mul(4).add(n)));
5119
5119
  }), p = Iu((t) => {
5120
5120
  let n = We(e[t].div(128), .95);
5121
- return n.div(L(1).sub(n)).toVar();
5121
+ return n.div(I(1).sub(n)).toVar();
5122
5122
  });
5123
5123
  }
5124
5124
  for (let r = 0; r < 2; r++) {
@@ -5148,7 +5148,7 @@ function dd(e, { incoming: t, stage: n }) {
5148
5148
  type: "int",
5149
5149
  condition: "<"
5150
5150
  }, ({ i: n }) => {
5151
- let r = L(G(n).div(8)).add(.5).div(16).mul(2).sub(1);
5151
+ let r = I(G(n).div(8)).add(.5).div(16).mul(2).sub(1);
5152
5152
  for (let i of Fu) e[i].addAssign(t.element(f.add(G(n)).mul(4).add(i)).mul(r));
5153
5153
  });
5154
5154
  for (let t of Fu) s.element(d.mul(4).add(t)).assign(e[t].mul(sd));
@@ -5164,7 +5164,7 @@ function pd({ transmittance: e, multipleScattering: t, coefficients: n, sunSinRa
5164
5164
  type: "int",
5165
5165
  condition: "<"
5166
5166
  }, ({ i }) => {
5167
- let h = L(i).div(c), g = L(i).add(1).div(c), _ = m.mul(h.mul(h)), v = m.mul(g.mul(g)).sub(_), y = rd(a, _.add(v.mul(.5)), o, s), b = Lu(y.h), x = Iu((e) => n.rayleigh[e].mul(b.r)), S = Iu((e) => n.mieScattering[e].mul(b.m)), C = Hu(e, n, y.h, y.muS, r), w = zu(Ru(n, b), v);
5167
+ let h = I(i).div(c), g = I(i).add(1).div(c), _ = m.mul(h.mul(h)), v = m.mul(g.mul(g)).sub(_), y = rd(a, _.add(v.mul(.5)), o, s), b = Lu(y.h), x = Iu((e) => n.rayleigh[e].mul(b.r)), S = Iu((e) => n.mieScattering[e].mul(b.m)), C = Hu(e, n, y.h, y.muS, r), w = zu(Ru(n, b), v);
5168
5168
  d && N(i.mod(fd).equal(0), () => {
5169
5169
  let e = $u(t, y.h, y.muS, y.mu, nd(s, y.mu, y.muS));
5170
5170
  for (let t = 0; t < 8; t++) d[t].assign(e[t]);
@@ -5179,13 +5179,13 @@ function pd({ transmittance: e, multipleScattering: t, coefficients: n, sunSinRa
5179
5179
  };
5180
5180
  }
5181
5181
  function md(e, { sqrtDirections: t = 12, steps: n = 32 } = {}) {
5182
- let { irradiance: r } = e, i = t * t, a = L(.001);
5182
+ let { irradiance: r } = e, i = t * t, a = I(.001);
5183
5183
  return M(() => {
5184
5184
  let o = Fe;
5185
5185
  N(o.greaterThanEqual(G(128)), () => {
5186
5186
  ge();
5187
5187
  });
5188
- let s = Yu(o, 128).toVar(), c = Y(U(z(L(1).sub(s.mul(s)), 0)), s, 0).toVar(), l = Iu(() => X(0).toVar());
5188
+ let s = Yu(o, 128).toVar(), c = Y(U(z(I(1).sub(s.mul(s)), 0)), s, 0).toVar(), l = Iu(() => X(0).toVar());
5189
5189
  he({
5190
5190
  start: R(0),
5191
5191
  end: R(i),
@@ -5193,13 +5193,13 @@ function md(e, { sqrtDirections: t = 12, steps: n = 32 } = {}) {
5193
5193
  condition: "<",
5194
5194
  name: "dirIndex"
5195
5195
  }, ({ dirIndex: r }) => {
5196
- let i = L(r.div(t)).add(.5).div(t), o = L(r.mod(t)).add(.5).div(t), u = U(i), d = o.mul(2 * Pu), f = Y(u.mul(Oe(d)), U(z(L(1).sub(i), 0)), u.mul(it(d))).toVar(), { L: p } = pd(e, td(a, f.y), s, I(f, c), n);
5196
+ let i = I(r.div(t)).add(.5).div(t), o = I(r.mod(t)).add(.5).div(t), u = U(i), d = o.mul(2 * Pu), f = Y(u.mul(Oe(d)), U(z(I(1).sub(i), 0)), u.mul(it(d))).toVar(), { L: p } = pd(e, td(a, f.y), s, F(f, c), n);
5197
5197
  for (let e of Fu) l[e].addAssign(p[e]);
5198
5198
  });
5199
5199
  for (let e of Fu) r.element(o.mul(4).add(e)).assign(Qu(l[e].mul(Pu / i)));
5200
5200
  })().compute(128, [64]);
5201
5201
  }
5202
- var hd = (e) => L(e).div(255).pow(2).mul(Pu);
5202
+ var hd = (e) => I(e).div(255).pow(2).mul(Pu);
5203
5203
  function gd(e, { width: t, height: n, steps: r = 40, multipleScattering: i = !0 }) {
5204
5204
  let { sky: a, skyRows: o, irradiance: s, coefficients: c, rgb: l, sunDirection: u, altitude: d, sunSinRadius: f, transmittance: p } = e, m = i ? e : {
5205
5205
  ...e,
@@ -5210,19 +5210,19 @@ function gd(e, { width: t, height: n, steps: r = 40, multipleScattering: i = !0
5210
5210
  N(e.greaterThanEqual(G(h)), () => {
5211
5211
  ge();
5212
5212
  });
5213
- let t = L(1).sub(L(e.div(256)).add(.5).div(n)).mul(Pu), i = Oe(t).toVar(), a = z(d, .001).toVar(), g = u.y.toVar(), _ = it(t).mul(Oe(hd(e.mod(256)))).mul(U(z(L(1).sub(g.mul(g)), 0))).add(i.mul(g)).toVar(), v = td(a, i), { L: y, throughput: b } = pd(m, v, g, _, r);
5213
+ let t = I(1).sub(I(e.div(256)).add(.5).div(n)).mul(Pu), i = Oe(t).toVar(), a = z(d, .001).toVar(), g = u.y.toVar(), _ = it(t).mul(Oe(hd(e.mod(256)))).mul(U(z(I(1).sub(g.mul(g)), 0))).add(i.mul(g)).toVar(), v = td(a, i), { L: y, throughput: b } = pd(m, v, g, _, r);
5214
5214
  N(v.hitsGround, () => {
5215
- let e = P(v.r.mul(g).add(v.tMax.mul(_)).div(Wl), -1, 1).toVar(), t = Hu(p, c, L(0), e, f), n = ed(s, e);
5215
+ let e = P(v.r.mul(g).add(v.tMax.mul(_)).div(Wl), -1, 1).toVar(), t = Hu(p, c, I(0), e, f), n = ed(s, e);
5216
5216
  for (let r of Fu) y[r].addAssign(b[r].mul(c.albedo[r]).mul(1 / Pu).mul(t[r].mul(z(e, 0)).add(n[r])));
5217
5217
  });
5218
- let x = Iu((e) => y[e].mul(c.solar[e])), S = (e) => x.reduce((t, n, r) => t.add(I(n, l[e * 4 + r])), L(0));
5218
+ let x = Iu((e) => y[e].mul(c.solar[e])), S = (e) => x.reduce((t, n, r) => t.add(F(n, l[e * 4 + r])), I(0));
5219
5219
  o.element(e).assign(X(z(Y(S(0), S(1), S(2)), Y(0)), 1));
5220
5220
  })().compute(h, [64]), M(() => {
5221
5221
  let e = Fe;
5222
5222
  N(e.greaterThanEqual(G(t * n)), () => {
5223
5223
  ge();
5224
5224
  });
5225
- let r = L(e.mod(t)).add(.5).div(t).sub(.5).mul(2 * Pu).sub(Se(u.z, u.x)), i = U(ve(Se(it(r), Oe(r))).div(Pu)).mul(255).toVar(), s = We(Ne(i), 254).toVar(), c = e.div(t).mul(256).add(G(s)).toVar();
5225
+ let r = I(e.mod(t)).add(.5).div(t).sub(.5).mul(2 * Pu).sub(Se(u.z, u.x)), i = U(ve(Se(it(r), Oe(r))).div(Pu)).mul(255).toVar(), s = We(L(i), 254).toVar(), c = e.div(t).mul(256).add(G(s)).toVar();
5226
5226
  a.element(e).assign(B(o.element(c), o.element(c.add(1)), i.sub(s)));
5227
5227
  })().compute(t * n, [64])];
5228
5228
  }
@@ -5249,7 +5249,7 @@ function vd(e, t, n) {
5249
5249
  }), r;
5250
5250
  }
5251
5251
  function yd({ pixels: e, rows: t, prefix: n, stats: r, cdf: i, width: a, height: o }) {
5252
- let s = _d(a), c = (e) => it(L(e).add(.5).mul(Math.PI / o)), l = (t, n, r) => I(e.element(t.mul(a).add(n)).xyz, pc).mul(r), u = () => N(Fe.greaterThan(G(0)), () => {
5252
+ let s = _d(a), c = (e) => it(I(e).add(.5).mul(Math.PI / o)), l = (t, n, r) => F(e.element(t.mul(a).add(n)).xyz, pc).mul(r), u = () => N(Fe.greaterThan(G(0)), () => {
5253
5253
  ge();
5254
5254
  });
5255
5255
  return [
@@ -5258,7 +5258,7 @@ function yd({ pixels: e, rows: t, prefix: n, stats: r, cdf: i, width: a, height:
5258
5258
  N(e.greaterThanEqual(G(o)), () => {
5259
5259
  ge();
5260
5260
  });
5261
- let n = c(e).toVar(), r = L(0).toVar();
5261
+ let n = c(e).toVar(), r = I(0).toVar();
5262
5262
  he({
5263
5263
  start: R(0),
5264
5264
  end: R(a),
@@ -5270,7 +5270,7 @@ function yd({ pixels: e, rows: t, prefix: n, stats: r, cdf: i, width: a, height:
5270
5270
  })().compute(o, [64]),
5271
5271
  M(() => {
5272
5272
  u();
5273
- let e = L(0).toVar();
5273
+ let e = I(0).toVar();
5274
5274
  he({
5275
5275
  start: R(0),
5276
5276
  end: R(o),
@@ -5285,7 +5285,7 @@ function yd({ pixels: e, rows: t, prefix: n, stats: r, cdf: i, width: a, height:
5285
5285
  N(e.greaterThanEqual(G(o)), () => {
5286
5286
  ge();
5287
5287
  });
5288
- let i = c(e).toVar(), s = r.element(0).y.toVar(), u = L(0).toVar(), d = L(0).toVar();
5288
+ let i = c(e).toVar(), s = r.element(0).y.toVar(), u = I(0).toVar(), d = I(0).toVar();
5289
5289
  he({
5290
5290
  start: R(0),
5291
5291
  end: R(a),
@@ -5298,7 +5298,7 @@ function yd({ pixels: e, rows: t, prefix: n, stats: r, cdf: i, width: a, height:
5298
5298
  })().compute(o, [64]),
5299
5299
  M(() => {
5300
5300
  u();
5301
- let e = L(0).toVar();
5301
+ let e = I(0).toVar();
5302
5302
  he({
5303
5303
  start: R(0),
5304
5304
  end: R(o),
@@ -5307,7 +5307,7 @@ function yd({ pixels: e, rows: t, prefix: n, stats: r, cdf: i, width: a, height:
5307
5307
  }, ({ i: n }) => {
5308
5308
  e.addAssign(t.element(n).y);
5309
5309
  });
5310
- let n = e.greaterThan(0).toVar(), c = L(0).toVar();
5310
+ let n = e.greaterThan(0).toVar(), c = I(0).toVar();
5311
5311
  he({
5312
5312
  start: R(0),
5313
5313
  end: R(o),
@@ -5325,7 +5325,7 @@ function yd({ pixels: e, rows: t, prefix: n, stats: r, cdf: i, width: a, height:
5325
5325
  condition: "<",
5326
5326
  name: "row"
5327
5327
  }, ({ row: e }) => {
5328
- let n = H(c.greaterThan(0), L(vd(o, (e) => t.element(e).z, L(e).add(1).div(o).mul(c))), L(o - 1));
5328
+ let n = H(c.greaterThan(0), I(vd(o, (e) => t.element(e).z, I(e).add(1).div(o).mul(c))), I(o - 1));
5329
5329
  i.element(G(e).mul(s).add(a)).assign(n.add(.5).div(o));
5330
5330
  });
5331
5331
  })().compute(1, [1]),
@@ -5337,7 +5337,7 @@ function yd({ pixels: e, rows: t, prefix: n, stats: r, cdf: i, width: a, height:
5337
5337
  let c = e.mod(a), l = e.div(a), u = r.element(1).z.greaterThan(0).toVar(), d = t.element(l).toVar(), f = H(u, d.y, d.x).toVar(), p = l.mul(a).toVar(), m = vd(a, (e) => {
5338
5338
  let t = n.element(p.add(G(e)));
5339
5339
  return H(u, t.y, t.x);
5340
- }, L(c).add(1).div(a).mul(f)), h = H(f.greaterThan(0), L(m), L(a - 1));
5340
+ }, I(c).add(1).div(a).mul(f)), h = H(f.greaterThan(0), I(m), I(a - 1));
5341
5341
  i.element(l.mul(s).add(c)).assign(h.add(.5).div(a));
5342
5342
  })().compute(a * o, [64])
5343
5343
  ];
@@ -6298,7 +6298,7 @@ function zf({ source: e, display: t, view: n, look: r, context: i }) {
6298
6298
  function Bf({ texture: e, size: t, minEv: n, maxEv: r }) {
6299
6299
  let i = t - 1, a = r - n, o = (t) => mt(e, P(t, Le(0), Le(i))).rgb;
6300
6300
  return M(([e, r]) => {
6301
- let s = P(He(z(z(e.mul(r), Y(0)), Y(1e-10))).sub(L(n)).div(L(a)), Y(0), Y(1)).mul(L(i)).toVar(), c = P(Le(Ne(s)), Le(0), Le(t - 2)).toVar(), l = P(s.sub(Y(c)), Y(0), Y(1)).toVar(), u = Y(0).toVar(), d = Le(0).toVar(), f = Le(0).toVar(), p = Le(1).toVar();
6301
+ let s = P(He(z(z(e.mul(r), Y(0)), Y(1e-10))).sub(I(n)).div(I(a)), Y(0), Y(1)).mul(I(i)).toVar(), c = P(Le(L(s)), Le(0), Le(t - 2)).toVar(), l = P(s.sub(Y(c)), Y(0), Y(1)).toVar(), u = Y(0).toVar(), d = Le(0).toVar(), f = Le(0).toVar(), p = Le(1).toVar();
6302
6302
  N(l.x.greaterThan(l.y), () => {
6303
6303
  N(l.y.greaterThan(l.z), () => {
6304
6304
  u.assign(Y(l.x, l.y, l.z)), d.assign(Le(1, 0, 0)), f.assign(Le(1, 1, 0)), p.assign(Le(1, 1, 1));
@@ -7381,15 +7381,15 @@ var Pp = a("env"), Fp = 1024, Ip = 512, Lp = Math.PI / 180, Rp = new _n(), zp =
7381
7381
  return t.mul(t).mul(e);
7382
7382
  };
7383
7383
  M(([e, t, n]) => {
7384
- let r = z(Y(L(1).sub(n)), e);
7385
- return e.add(r.sub(e).mul(Hp(L(1).sub(t))));
7384
+ let r = z(Y(I(1).sub(n)), e);
7385
+ return e.add(r.sub(e).mul(Hp(I(1).sub(t))));
7386
7386
  });
7387
7387
  var Up = M(([e, t]) => {
7388
7388
  let n = P(e, 0, 1);
7389
- return t.add(L(1).sub(t).mul(Hp(L(1).sub(n))));
7389
+ return t.add(I(1).sub(t).mul(Hp(I(1).sub(n))));
7390
7390
  }), Wp = M(([e, t]) => {
7391
7391
  let n = P(e, 0, 1);
7392
- return t.add(Y(1).sub(t).mul(Hp(L(1).sub(n))));
7392
+ return t.add(Y(1).sub(t).mul(Hp(I(1).sub(n))));
7393
7393
  }), Gp = M(([e]) => {
7394
7394
  let t = U(e);
7395
7395
  return Y(1).add(t).div(z(Y(1).sub(t), Y(Vp)));
@@ -7399,24 +7399,24 @@ var Up = M(([e, t]) => {
7399
7399
  }), qp = M(([e, t]) => {
7400
7400
  let n = e.sub(t), r = z(e.add(t), Vp), i = n.div(r);
7401
7401
  return i.mul(i);
7402
- }), Jp = (e) => Y(qp(e, L(1))), Yp = M(([e, t]) => {
7402
+ }), Jp = (e) => Y(qp(e, I(1))), Yp = M(([e, t]) => {
7403
7403
  let n = P(e, 0, 1), r = t.mul(t).sub(1).add(n.mul(n)), i = U(z(r, 0)), a = i.sub(n).div(z(i.add(n), Vp)), o = n.mul(i.add(n)).sub(1).div(z(n.mul(i.sub(n)).add(1), Vp));
7404
- return H(r.greaterThan(0), P(a.mul(a).mul(.5).mul(o.mul(o).add(1)), 0, 1), L(1));
7404
+ return H(r.greaterThan(0), P(a.mul(a).mul(.5).mul(o.mul(o).add(1)), 0, 1), I(1));
7405
7405
  }), Xp = M(([e, t]) => {
7406
- let n = qp(t, L(1));
7407
- return P(Yp(e, t).sub(n).div(z(L(1).sub(n), Vp)), 0, 1);
7406
+ let n = qp(t, I(1));
7407
+ return P(Yp(e, t).sub(n).div(z(I(1).sub(n), Vp)), 0, 1);
7408
7408
  }), Zp = 1e-30, Qp = M(([e, t]) => {
7409
7409
  let n = t.mul(t), r = n.mul(n), i = e.mul(e).mul(r.sub(1)).add(1);
7410
- return r.div(z(L(oc).mul(i).mul(i), Zp));
7410
+ return r.div(z(I(oc).mul(i).mul(i), Zp));
7411
7411
  }), $p = M(([e, t]) => {
7412
- let n = z(t, uc), r = n.mul(n), i = L(1).div(r.mul(r)), a = e.mul(e).mul(i.sub(1)).add(1);
7413
- return i.div(z(L(oc).mul(a).mul(a), lc));
7414
- }), em = M(([e]) => L(1).div(z(e, uc))), tm = M(([e, t]) => P(L(1).div(z(L(4).mul(t.add(e).sub(t.mul(e))), lc)), 0, 1)), nm = M(([e, t]) => {
7415
- let n = t.mul(t), r = n.mul(n), i = e.add(U(r.add(L(1).sub(r).mul(e.mul(e)))));
7416
- return L(2).mul(e).div(z(i, lc));
7412
+ let n = z(t, uc), r = n.mul(n), i = I(1).div(r.mul(r)), a = e.mul(e).mul(i.sub(1)).add(1);
7413
+ return i.div(z(I(oc).mul(a).mul(a), lc));
7414
+ }), em = M(([e]) => I(1).div(z(e, uc))), tm = M(([e, t]) => P(I(1).div(z(I(4).mul(t.add(e).sub(t.mul(e))), lc)), 0, 1)), nm = M(([e, t]) => {
7415
+ let n = t.mul(t), r = n.mul(n), i = e.add(U(r.add(I(1).sub(r).mul(e.mul(e)))));
7416
+ return I(2).mul(e).div(z(i, lc));
7417
7417
  }), rm = M(([e, t, n]) => {
7418
- let r = n.mul(n), i = r.mul(r), a = t.mul(U(i.add(L(1).sub(i).mul(e.mul(e))))), o = e.mul(U(i.add(L(1).sub(i).mul(t.mul(t)))));
7419
- return L(.5).div(z(a.add(o), lc));
7418
+ let r = n.mul(n), i = r.mul(r), a = t.mul(U(i.add(I(1).sub(i).mul(e.mul(e))))), o = e.mul(U(i.add(I(1).sub(i).mul(t.mul(t)))));
7419
+ return I(.5).div(z(a.add(o), lc));
7420
7420
  }), im = 16, am = 17, om = .5, sm = am, cm = new Kt(new Float32Array([
7421
7421
  1,
7422
7422
  .0302,
@@ -24830,8 +24830,8 @@ var Up = M(([e, t]) => {
24830
24830
  cm.minFilter = Z, cm.magFilter = Z, cm.wrapS = Bt, cm.wrapT = Bt, cm.generateMipmaps = !1, cm.needsUpdate = !0;
24831
24831
  var lm = pt(cm);
24832
24832
  lm.setUpdateMatrix(!1);
24833
- var um = (e, t, n = 0) => J(P(e, 0, 1).mul(im - 1).add(.5).add(L(n).mul(im)).div(im * sm), P(t, 0, 1).mul((im - 1) / im).add(.5 / im)), dm = M(([e, t]) => P(lm.sample(um(t, e)).g, 0, 1)), fm = M(([e, t, n, r, i, a, o, s, c, l]) => {
24834
- let u = lm.sample(um(l, c)).toVar(), d = P(n.sub(1).div(n.add(1)).div(om), 0, 1).mul(am - 1).toVar(), f = We(Ne(d), L(am - 2)).toVar(), p = lm.sample(um(l, c, f.add(1))).toVar(), m = P(B(p.r, p.g, d.sub(f)), 0, 1), h = z(u.r, .05).toVar(), g = P(u.b, 0, 1).toVar(), _ = e.mul(h.sub(m)).add(Y(t.mul(m))), v = r.mul(h.sub(g)).add(Y(g)), y = a.mul(h.sub(g)).add(Y(g)), b = z(B(B(_, v, i), y, o), Y(0)), x = Y(1).add(s.mul(L(1).div(h).sub(1)));
24833
+ var um = (e, t, n = 0) => J(P(e, 0, 1).mul(im - 1).add(.5).add(I(n).mul(im)).div(im * sm), P(t, 0, 1).mul((im - 1) / im).add(.5 / im)), dm = M(([e, t]) => P(lm.sample(um(t, e)).g, 0, 1)), fm = M(([e, t, n, r, i, a, o, s, c, l]) => {
24834
+ let u = lm.sample(um(l, c)).toVar(), d = P(n.sub(1).div(n.add(1)).div(om), 0, 1).mul(am - 1).toVar(), f = We(L(d), I(am - 2)).toVar(), p = lm.sample(um(l, c, f.add(1))).toVar(), m = P(B(p.r, p.g, d.sub(f)), 0, 1), h = z(u.r, .05).toVar(), g = P(u.b, 0, 1).toVar(), _ = e.mul(h.sub(m)).add(Y(t.mul(m))), v = r.mul(h.sub(g)).add(Y(g)), y = a.mul(h.sub(g)).add(Y(g)), b = z(B(B(_, v, i), y, o), Y(0)), x = Y(1).add(s.mul(I(1).div(h).sub(1)));
24835
24835
  return Qs({
24836
24836
  compensation: x,
24837
24837
  E_total: P(b.mul(x), Y(0), Y(1))
@@ -24850,32 +24850,32 @@ var um = (e, t, n = 0) => J(P(e, 0, 1).mul(im - 1).add(.5).add(L(n).mul(im)).div
24850
24850
  return r.mul(i).div(z(t.mul(4), lc));
24851
24851
  }), hm = M(([e, t]) => {
24852
24852
  let n = z(e.mul(e), 1e-4).toVar();
24853
- return J(z(B(n, L(1), t.mul(t)), 1e-4), n);
24853
+ return J(z(B(n, I(1), t.mul(t)), 1e-4), n);
24854
24854
  }), gm = M(([e, t, n, r, i]) => {
24855
- let a = e.mul(t), o = Y(t.mul(r), e.mul(i), a.mul(n)), s = z(I(o, o), Zp), c = a.div(s);
24855
+ let a = e.mul(t), o = Y(t.mul(r), e.mul(i), a.mul(n)), s = z(F(o, o), Zp), c = a.div(s);
24856
24856
  return a.mul(c.mul(c)).div(oc);
24857
24857
  }), _m = M(([e, t, n, r, i, a, o, s]) => {
24858
24858
  let c = s.mul(Y(e.mul(n), t.mul(r), o).length()), l = o.mul(Y(e.mul(i), t.mul(a), s).length());
24859
- return L(.5).div(z(c.add(l), lc));
24859
+ return I(.5).div(z(c.add(l), lc));
24860
24860
  }), vm = M(([e, t, n, r, i]) => {
24861
- let a = e.mul(n), o = t.mul(r), s = a.mul(a).add(o.mul(o)), c = z(i.mul(i), lc), l = U(L(1).add(s.div(c))).sub(1).mul(.5);
24862
- return L(1).div(l.add(1));
24861
+ let a = e.mul(n), o = t.mul(r), s = a.mul(a).add(o.mul(o)), c = z(i.mul(i), lc), l = U(I(1).add(s.div(c))).sub(1).mul(.5);
24862
+ return I(1).div(l.add(1));
24863
24863
  }), ym = M(([e, t, n, r, i, a, o, s]) => {
24864
24864
  let c = gm(e, t, n, r, i), l = vm(e, t, o, s, a);
24865
24865
  return c.mul(l).div(z(a.mul(4), lc));
24866
24866
  }), bm = M(([e, t]) => {
24867
- let n = L(cc).mul(e).mul(1e-9), r = Y(54856e-17, 44201e-17, 52481e-17), i = Y(1681e3, 1795300, 2208400), a = Y(43278e5, 93046e5, 66121e5), o = r.mul(U(L(cc).mul(a))).mul(Oe(i.mul(n).add(t))).mul(Ae(xc({ x: n }).negate().mul(a))).toVar();
24868
- return o.x.addAssign(L(9747e-17).mul(U(L(cc).mul(45282e5))).mul(Oe(L(2239900).mul(n).add(t.x))).mul(Ae(L(-45282e5).mul(xc({ x: n }))))), bc.mul(o.div(1.0685e-7));
24867
+ let n = I(cc).mul(e).mul(1e-9), r = Y(54856e-17, 44201e-17, 52481e-17), i = Y(1681e3, 1795300, 2208400), a = Y(43278e5, 93046e5, 66121e5), o = r.mul(U(I(cc).mul(a))).mul(Oe(i.mul(n).add(t))).mul(je(xc({ x: n }).negate().mul(a))).toVar();
24868
+ return o.x.addAssign(I(9747e-17).mul(U(I(cc).mul(45282e5))).mul(Oe(I(2239900).mul(n).add(t.x))).mul(je(I(-45282e5).mul(xc({ x: n }))))), bc.mul(o.div(1.0685e-7));
24869
24869
  }), xm = M(([e, t, n, r, i]) => {
24870
- let a = B(e, t, at(0, .03, r)).toVar(), o = xc({ x: e.div(a) }).mul(L(1).sub(xc({ x: n }))), s = L(1).sub(o).toVar(), c = Y(0).toVar();
24870
+ let a = B(e, t, at(0, .03, r)).toVar(), o = xc({ x: e.div(a) }).mul(I(1).sub(xc({ x: n }))), s = I(1).sub(o).toVar(), c = Y(0).toVar();
24871
24871
  return N(s.lessThan(0), () => {
24872
24872
  c.assign(Y(1));
24873
24873
  }).Else(() => {
24874
- let t = U(s).toVar(), o = Up(n, qp(a, e)).toVar(), l = L(1).sub(o).toVar(), u = a.lessThan(e).select(L(oc), L(0)), d = L(oc).sub(u), f = Gp(P(i, 0, .9999)).toVar(), p = Kp(f, a).toVar(), m = Y(Up(t, p.x), Up(t, p.y), Up(t, p.z)).toVar(), h = Y(f.x.lessThan(a).select(L(oc), L(0)), f.y.lessThan(a).select(L(oc), L(0)), f.z.lessThan(a).select(L(oc), L(0))), g = L(2).mul(a).mul(r).mul(t).toVar(), _ = Y(d).add(h).toVar(), v = P(Y(o).mul(m), 1e-5, .9999).toVar(), y = U(v).toVar(), b = Y(l.mul(l)).mul(m).div(Y(1).sub(v)).toVar(), x = Y(o).add(b).toVar().toVar(), S = b.sub(Y(l)).toVar();
24875
- S.mulAssign(y), x.addAssign(S.mul(L(2).mul(bm(L(1).mul(g), L(1).mul(_))))), S.mulAssign(y), x.addAssign(S.mul(L(2).mul(bm(L(2).mul(g), L(2).mul(_))))), c.assign(z(x, Y(0)));
24874
+ let t = U(s).toVar(), o = Up(n, qp(a, e)).toVar(), l = I(1).sub(o).toVar(), u = a.lessThan(e).select(I(oc), I(0)), d = I(oc).sub(u), f = Gp(P(i, 0, .9999)).toVar(), p = Kp(f, a).toVar(), m = Y(Up(t, p.x), Up(t, p.y), Up(t, p.z)).toVar(), h = Y(f.x.lessThan(a).select(I(oc), I(0)), f.y.lessThan(a).select(I(oc), I(0)), f.z.lessThan(a).select(I(oc), I(0))), g = I(2).mul(a).mul(r).mul(t).toVar(), _ = Y(d).add(h).toVar(), v = P(Y(o).mul(m), 1e-5, .9999).toVar(), y = U(v).toVar(), b = Y(l.mul(l)).mul(m).div(Y(1).sub(v)).toVar(), x = Y(o).add(b).toVar().toVar(), S = b.sub(Y(l)).toVar();
24875
+ S.mulAssign(y), x.addAssign(S.mul(I(2).mul(bm(I(1).mul(g), I(1).mul(_))))), S.mulAssign(y), x.addAssign(S.mul(I(2).mul(bm(I(2).mul(g), I(2).mul(_))))), c.assign(z(x, Y(0)));
24876
24876
  }), c;
24877
24877
  }), Sm = M(([e, t, n]) => {
24878
- let r = n.invRoughness, i = n.metalFactor, a = L(0).toVar();
24878
+ let r = n.invRoughness, i = n.metalFactor, a = I(0).toVar();
24879
24879
  N(t.isMetallic, () => {
24880
24880
  a.assign(z(r.mul(i), .7));
24881
24881
  }).ElseIf(t.isSmooth, () => {
@@ -24883,43 +24883,43 @@ var um = (e, t, n = 0) => J(P(e, 0, 1).mul(im - 1).add(.5).add(L(n).mul(im)).div
24883
24883
  }).Else(() => {
24884
24884
  a.assign(z(r.mul(i), e.metalness.mul(.1)));
24885
24885
  });
24886
- let o = a.mul(e.specularIntensity).toVar(), s = L(1).sub(a).mul(L(1).sub(e.metalness)).mul(L(1).sub(e.transmission)).toVar(), c = e.sheen.mul(n.maxSheenColor).toVar(), l = L(0).toVar();
24886
+ let o = a.mul(e.specularIntensity).toVar(), s = I(1).sub(a).mul(I(1).sub(e.metalness)).mul(I(1).sub(e.transmission)).toVar(), c = e.sheen.mul(n.maxSheenColor).toVar(), l = I(0).toVar();
24887
24887
  N(t.hasClearcoat, () => {
24888
24888
  l.assign(e.clearcoat.mul(r).mul(.4));
24889
24889
  }).Else(() => {
24890
24890
  l.assign(e.clearcoat.mul(r).mul(.35));
24891
24891
  });
24892
- let u = L(0).toVar();
24892
+ let u = I(0).toVar();
24893
24893
  N(t.isTransmissive, () => {
24894
24894
  let t = n.iorFactor.mul(r).mul(.8);
24895
- u.assign(e.transmission.mul(t).mul(L(.6).add(L(.4).mul(e.ior.div(2)))).mul(L(1).add(e.dispersion.mul(.6))));
24895
+ u.assign(e.transmission.mul(t).mul(I(.6).add(I(.4).mul(e.ior.div(2)))).mul(I(1).add(e.dispersion.mul(.6))));
24896
24896
  }).Else(() => {
24897
24897
  let t = n.iorFactor.mul(r).mul(.7);
24898
- u.assign(e.transmission.mul(t).mul(L(.5).add(L(.5).mul(e.ior.div(2)))).mul(L(1).add(e.dispersion.mul(.5))));
24898
+ u.assign(e.transmission.mul(t).mul(I(.5).add(I(.5).mul(e.ior.div(2)))).mul(I(1).add(e.dispersion.mul(.5))));
24899
24899
  });
24900
- let d = r.mul(t.isSmooth.select(L(.6), L(.5))), f = We(e.iridescence.mul(d).mul(L(.5).add(L(.5).mul(e.iridescenceThicknessRange.y.sub(e.iridescenceThicknessRange.x).div(1e3)))).mul(L(.5).add(L(.5).mul(e.iridescenceIOR.div(2)))), s);
24900
+ let d = r.mul(t.isSmooth.select(I(.6), I(.5))), f = We(e.iridescence.mul(d).mul(I(.5).add(I(.5).mul(e.iridescenceThicknessRange.y.sub(e.iridescenceThicknessRange.x).div(1e3)))).mul(I(.5).add(I(.5).mul(e.iridescenceIOR.div(2)))), s);
24901
24901
  o.addAssign(f), s.subAssign(f);
24902
- let p = o.add(s).add(c).add(l).add(u), m = L(1).div(z(p, .001));
24902
+ let p = o.add(s).add(c).add(l).add(u), m = I(1).div(z(p, .001));
24903
24903
  return Ys({
24904
24904
  specular: o.mul(m),
24905
24905
  diffuse: s.mul(m),
24906
24906
  sheen: c.mul(m),
24907
24907
  clearcoat: l.mul(m),
24908
24908
  transmission: u.mul(m),
24909
- iridescence: L(0)
24909
+ iridescence: I(0)
24910
24910
  });
24911
24911
  }), Cm = M(([e, t, n]) => {
24912
- let r = L(0).toVar();
24912
+ let r = I(0).toVar();
24913
24913
  return N(n.NoL.greaterThan(0), () => {
24914
24914
  r.addAssign(t.diffuse.mul(n.NoL).mul(sc));
24915
- let i = L(0).toVar();
24915
+ let i = I(0).toVar();
24916
24916
  N(e.anisotropy.greaterThan(0), () => {
24917
24917
  let t = hm(e.roughness, e.anisotropy);
24918
24918
  i.assign(ym(t.x, t.y, n.NoH, n.ToH, n.BoH, n.NoV, n.ToV, n.BoV));
24919
24919
  }).Else(() => {
24920
24920
  i.assign(mm(n.NoH, n.NoV, e.roughness));
24921
24921
  }), r.addAssign(t.specular.mul(i)), N(t.sheen.greaterThan(0), () => {
24922
- let i = $p(n.NoH, e.sheenRoughness).mul(n.NoH).div(z(L(4).mul(n.VoH), lc));
24922
+ let i = $p(n.NoH, e.sheenRoughness).mul(n.NoH).div(z(I(4).mul(n.VoH), lc));
24923
24923
  r.addAssign(t.sheen.mul(i));
24924
24924
  }), N(t.clearcoat.greaterThan(0), () => {
24925
24925
  let i = P(e.clearcoatRoughness, dc, 1);
@@ -24927,9 +24927,9 @@ var um = (e, t, n = 0) => J(P(e, 0, 1).mul(im - 1).add(.5).add(L(n).mul(im)).div
24927
24927
  });
24928
24928
  }), r;
24929
24929
  }), wm = M(([e]) => Sm(e, tc.wrap(jc(e.metalness, e.roughness, e.transmission, e.clearcoat, e.emissive, e.subsurface)), rc({
24930
- invRoughness: L(1).sub(e.roughness),
24931
- metalFactor: L(.5).add(L(.5).mul(e.metalness)),
24932
- iorFactor: We(L(2).div(e.ior), 1),
24930
+ invRoughness: I(1).sub(e.roughness),
24931
+ metalFactor: I(.5).add(I(.5).mul(e.metalness)),
24932
+ iorFactor: We(I(2).div(e.ior), 1),
24933
24933
  maxSheenColor: z(e.sheenColor.x, z(e.sheenColor.y, e.sheenColor.z))
24934
24934
  }))), Tm = M(([e, t]) => Cm(e, Ys.wrap(wm(e)), t)), Em = /* @__PURE__ */ wt("\n fn ImportanceSampleGGX( N: vec3f, roughness: f32, Xi: vec2f ) -> vec3f {\n let alpha = roughness * roughness;\n let phi = 6.28318530717958647692f * Xi.x;\n let cosTheta = sqrt( ( 1.0f - Xi.y ) / ( 1.0f + ( alpha * alpha - 1.0f ) * Xi.y ) );\n let sinTheta = sqrt( max( 0.0f, 1.0f - cosTheta * cosTheta ) );\n let H = vec3f( cos( phi ) * sinTheta, sin( phi ) * sinTheta, cosTheta );\n // TBN construction\n let up = select( vec3f( 1.0f, 0.0f, 0.0f ), vec3f( 0.0f, 0.0f, 1.0f ), abs( N.z ) < 0.999f );\n let tangent = normalize( cross( up, N ) );\n let bitangent = cross( N, tangent );\n return normalize( tangent * H.x + bitangent * H.y + N * H.z );\n }\n"), Dm = /* @__PURE__ */ wt("\n fn ImportanceSampleCosine( N: vec3f, xi: vec2f ) -> vec3f {\n let T = normalize( cross( N, N.yzx + vec3f( 0.1f, 0.2f, 0.3f ) ) );\n let B = cross( N, T );\n let phi = 6.28318530717958647692f * xi.x;\n let cosTheta = sqrt( 1.0f - xi.y );\n let sinTheta = sqrt( xi.y );\n let localDir = vec3f( sinTheta * cos( phi ), sinTheta * sin( phi ), cosTheta );\n return normalize( T * localDir.x + B * localDir.y + N * localDir.z );\n }\n"), Om = /* @__PURE__ */ wt("\n fn cosineWeightedSample( N: vec3f, xi: vec2f ) -> vec3f {\n let T = normalize( cross( N, N.yzx + vec3f( 0.1f, 0.2f, 0.3f ) ) );\n let B = cross( N, T );\n let phi = 6.28318530717958647692f * xi.y;\n let cosTheta = sqrt( 1.0f - xi.x );\n let sinTheta = sqrt( xi.x );\n let localDir = vec3f( sinTheta * cos( phi ), sinTheta * sin( phi ), cosTheta );\n return normalize( T * localDir.x + B * localDir.y + N * localDir.z );\n }\n"), km = /* @__PURE__ */ wt("\n fn sampleGGXVNDF( V: vec3f, roughness: f32, Xi: vec2f ) -> vec3f {\n let alpha = roughness * roughness;\n // Transform view direction to local space\n let Vh = normalize( vec3f( alpha * V.x, alpha * V.y, V.z ) );\n // Construct orthonormal basis around view direction\n let lensq = Vh.x * Vh.x + Vh.y * Vh.y;\n let T1 = select( vec3f( 1.0f, 0.0f, 0.0f ), vec3f( -Vh.y, Vh.x, 0.0f ) / sqrt( lensq ), lensq > 1e-8f );\n let T2 = cross( Vh, T1 );\n // Sample point with polar coordinates (r, phi)\n let r = sqrt( Xi.x );\n let phi = 6.28318530717958647692f * Xi.y;\n let t1 = r * cos( phi );\n let t2tmp = r * sin( phi );\n let s = 0.5f * ( 1.0f + Vh.z );\n let t2 = ( 1.0f - s ) * sqrt( 1.0f - t1 * t1 ) + s * t2tmp;\n // Compute normal\n let Nh = T1 * t1 + T2 * t2 + Vh * sqrt( max( 0.0f, 1.0f - t1 * t1 - t2 * t2 ) );\n // Transform the normal back to the ellipsoid configuration\n return normalize( vec3f( alpha * Nh.x, alpha * Nh.y, max( 0.0f, Nh.z ) ) );\n }\n"), Am = /* @__PURE__ */ wt("\n fn sampleGGXVNDFAniso( V: vec3f, alphaX: f32, alphaY: f32, Xi: vec2f ) -> vec3f {\n let Vh = normalize( vec3f( alphaX * V.x, alphaY * V.y, V.z ) );\n let lensq = Vh.x * Vh.x + Vh.y * Vh.y;\n let T1 = select( vec3f( 1.0f, 0.0f, 0.0f ), vec3f( -Vh.y, Vh.x, 0.0f ) / sqrt( lensq ), lensq > 1e-8f );\n let T2 = cross( Vh, T1 );\n let r = sqrt( Xi.x );\n let phi = 6.28318530717958647692f * Xi.y;\n let t1 = r * cos( phi );\n let t2tmp = r * sin( phi );\n let s = 0.5f * ( 1.0f + Vh.z );\n let t2 = ( 1.0f - s ) * sqrt( 1.0f - t1 * t1 ) + s * t2tmp;\n let Nh = T1 * t1 + T2 * t2 + Vh * sqrt( max( 0.0f, 1.0f - t1 * t1 - t2 * t2 ) );\n return normalize( vec3f( alphaX * Nh.x, alphaY * Nh.y, max( 0.0f, Nh.z ) ) );\n }\n"), jm = Lr({
24935
24935
  didScatter: "bool",
@@ -24944,17 +24944,17 @@ var um = (e, t, n = 0) => J(P(e, 0, 1).mul(im - 1).add(.5).add(L(n).mul(im)).div
24944
24944
  throughput: "vec3",
24945
24945
  didReflect: "bool"
24946
24946
  }), Pm = M(([e, t, n]) => {
24947
- let r = L(0).toVar();
24947
+ let r = I(0).toVar();
24948
24948
  N(ve(t).lessThan(.001), () => {
24949
- r.assign(L(1).sub(n.x.mul(2)));
24949
+ r.assign(I(1).sub(n.x.mul(2)));
24950
24950
  }).Else(() => {
24951
- let e = z(L(1).sub(t).add(t.mul(2).mul(n.x)), 1e-4), i = L(1).sub(t.mul(t)).div(e);
24952
- r.assign(L(1).add(t.mul(t)).sub(i.mul(i)).div(t.mul(2)));
24951
+ let e = z(I(1).sub(t).add(t.mul(2).mul(n.x)), 1e-4), i = I(1).sub(t.mul(t)).div(e);
24952
+ r.assign(I(1).add(t.mul(t)).sub(i.mul(i)).div(t.mul(2)));
24953
24953
  }), r.assign(P(r, -1, 1));
24954
- let i = U(z(L(0), L(1).sub(r.mul(r)))), a = L(cc).mul(n.y);
24954
+ let i = U(z(I(0), I(1).sub(r.mul(r)))), a = I(cc).mul(n.y);
24955
24955
  return Tc({ N: e }).mul(Y(i.mul(Oe(a)), i.mul(it(a)), r));
24956
24956
  }), Fm = M(([e, t, n, r, i, a, o, s, c]) => {
24957
- let l = z(n, Y(1e-4)), u = l.div(l.x.add(l.y).add(l.z)).toVar(), d = li(a, R(0), c.add(R(10)), i, o, s).toVar(), f = L(0).toVar();
24957
+ let l = z(n, Y(1e-4)), u = l.div(l.x.add(l.y).add(l.z)).toVar(), d = li(a, R(0), c.add(R(10)), i, o, s).toVar(), f = I(0).toVar();
24958
24958
  N(d.lessThan(u.x), () => {
24959
24959
  f.assign(e.x);
24960
24960
  }).ElseIf(d.lessThan(u.x.add(u.y)), () => {
@@ -24962,12 +24962,12 @@ var um = (e, t, n = 0) => J(P(e, 0, 1).mul(im - 1).add(.5).add(L(n).mul(im)).div
24962
24962
  }).Else(() => {
24963
24963
  f.assign(e.z);
24964
24964
  });
24965
- let p = li(a, R(0), c.add(R(9)), i, o, s).toVar(), m = Ve(z(L(1).sub(p), 1e-6)).negate().div(z(f, 1e-6)).toVar(), h = m.lessThan(r).toVar(), g = m.toVar(), _ = Y(0).toVar();
24965
+ let p = li(a, R(0), c.add(R(9)), i, o, s).toVar(), m = Ve(z(I(1).sub(p), 1e-6)).negate().div(z(f, 1e-6)).toVar(), h = m.lessThan(r).toVar(), g = m.toVar(), _ = Y(0).toVar();
24966
24966
  return N(h, () => {
24967
- let n = Ae(e.mul(m).negate()).toVar(), r = I(u, e.mul(n));
24967
+ let n = je(e.mul(m).negate()).toVar(), r = F(u, e.mul(n));
24968
24968
  _.assign(t.mul(n).div(z(r, 1e-6)));
24969
24969
  }).Else(() => {
24970
- let t = Ae(e.mul(r).negate()).toVar(), n = I(u, t);
24970
+ let t = je(e.mul(r).negate()).toVar(), n = F(u, t);
24971
24971
  _.assign(t.div(z(n, 1e-6))), g.assign(r);
24972
24972
  }), jm({
24973
24973
  didScatter: h,
@@ -24986,24 +24986,24 @@ var um = (e, t, n = 0) => J(P(e, 0, 1).mul(im - 1).add(.5).add(L(n).mul(im)).div
24986
24986
  direction: Y(0),
24987
24987
  throughput: Y(1),
24988
24988
  didReflect: !1
24989
- }).toVar(), f = H(r, t, t.negate()).toVar(), p = H(r, l, n.ior).toVar(), m = H(r, n.ior, u).toVar(), h = ve(I(f, e)), g = p.mul(p).div(z(m.mul(m), lc)).mul(L(1).sub(h.mul(h))).greaterThan(1).toVar(), _ = Yp(h, m.div(z(p, lc))).toVar(), v = P(_, .02, .98).toVar(), y = g.or(li(a, R(0), c.add(R(11)), i, o, s).lessThan(v)).toVar();
24989
+ }).toVar(), f = H(r, t, t.negate()).toVar(), p = H(r, l, n.ior).toVar(), m = H(r, n.ior, u).toVar(), h = ve(F(f, e)), g = p.mul(p).div(z(m.mul(m), lc)).mul(I(1).sub(h.mul(h))).greaterThan(1).toVar(), _ = Yp(h, m.div(z(p, lc))).toVar(), v = P(_, .02, .98).toVar(), y = g.or(li(a, R(0), c.add(R(11)), i, o, s).lessThan(v)).toVar();
24990
24990
  return d.didReflect.assign(y), N(y, () => {
24991
24991
  let t = ci(a, R(0), c.add(R(5)), i, o, s), r = Ze(e, Em({
24992
24992
  N: f,
24993
24993
  roughness: n.roughness,
24994
24994
  Xi: t
24995
24995
  })).toVar();
24996
- N(I(r, f).lessThanEqual(0), () => {
24996
+ N(F(r, f).lessThanEqual(0), () => {
24997
24997
  r.assign(Ze(e, f));
24998
24998
  }), d.direction.assign(r), d.throughput.assign(Y(_.div(z(v, .02))));
24999
24999
  }).Else(() => {
25000
25000
  let t = Qe(e, f, p.div(z(m, lc))).toVar();
25001
- N(I(t, t).lessThan(1e-4), () => {
25001
+ N(F(t, t).lessThan(1e-4), () => {
25002
25002
  d.direction.assign(Ze(e, f)), d.didReflect.assign(!0);
25003
25003
  }).Else(() => {
25004
25004
  d.direction.assign(V(t));
25005
25005
  let e = p.mul(p).div(z(m.mul(m), lc));
25006
- d.throughput.assign(Y(L(1).sub(_).div(z(L(1).sub(v), .02)).mul(e)));
25006
+ d.throughput.assign(Y(I(1).sub(_).div(z(I(1).sub(v), .02)).mul(e)));
25007
25007
  });
25008
25008
  }), d;
25009
25009
  }), Rm = Lr({
@@ -25065,9 +25065,9 @@ var Hm = /* @__PURE__ */ M(([e, t, n]) => {
25065
25065
  return e.add(t.mul(.03).div(r.mul(r)));
25066
25066
  }), Um = /* @__PURE__ */ M(([e, t, n, r]) => {
25067
25067
  let i = H(e.lessThan(t), n, r), a = e.sub(t).mul(i);
25068
- return Ae(L(-.5).mul(a).mul(a));
25068
+ return je(I(-.5).mul(a).mul(a));
25069
25069
  }), Wm = /* @__PURE__ */ M(([e]) => Y(Um(e, 442, .0624, .0374).mul(.362).add(Um(e, 599.8, .0264, .0323).mul(1.056)).sub(Um(e, 501.1, .049, .0382).mul(.065)), Um(e, 568.8, .0213, .0247).mul(.821).add(Um(e, 530.9, .0613, .0322).mul(.286)), Um(e, 437, .0845, .0278).mul(1.217).add(Um(e, 459, .0385, .0725).mul(.681)))), Gm = M(([e, t, n]) => {
25070
- let r = B(L(380), L(700), n).toVar(), i = Hm(e, t, r), a = Wm(r).toVar();
25070
+ let r = B(I(380), I(700), n).toVar(), i = Hm(e, t, r), a = Wm(r).toVar();
25071
25071
  return Bm({
25072
25072
  wavelength: r,
25073
25073
  ior: i,
@@ -25078,22 +25078,22 @@ var Hm = /* @__PURE__ */ M(([e, t, n]) => {
25078
25078
  direction: Y(0),
25079
25079
  halfVector: Y(0),
25080
25080
  didReflect: !1,
25081
- pdf: L(0),
25081
+ pdf: I(0),
25082
25082
  colorWeight: Y(1),
25083
25083
  pathWavelength: c
25084
25084
  }).toVar();
25085
25085
  return N(r.lessThanEqual(.05).and(a.greaterThan(0)), () => {
25086
25086
  p.halfVector.assign(t), p.didReflect.assign(!1);
25087
- let r = n, o = H(i, L(1).div(r), r).toVar();
25087
+ let r = n, o = H(i, I(1).div(r), r).toVar();
25088
25088
  N(c.greaterThan(0), () => {
25089
25089
  let e = Hm(n, a, c);
25090
- o.assign(H(i, L(1).div(e), e));
25090
+ o.assign(H(i, I(1).div(e), e));
25091
25091
  }).Else(() => {
25092
25092
  let e = Bm.wrap(Gm(n, a, li(l, R(0), f.add(R(5)), s, u, d)));
25093
- o.assign(H(i, L(1).div(e.ior), e.ior)), p.colorWeight.assign(e.colorWeight), p.pathWavelength.assign(e.wavelength);
25093
+ o.assign(H(i, I(1).div(e.ior), e.ior)), p.colorWeight.assign(e.colorWeight), p.pathWavelength.assign(e.wavelength);
25094
25094
  });
25095
25095
  let m = Qe(e.negate(), t, o).toVar();
25096
- N(I(m, m).lessThan(.001), () => {
25096
+ N(F(m, m).lessThan(.001), () => {
25097
25097
  p.direction.assign(Ze(e.negate(), t)), p.didReflect.assign(!0), p.pdf.assign(1);
25098
25098
  }).Else(() => {
25099
25099
  p.direction.assign(m), p.pdf.assign(1);
@@ -25105,22 +25105,22 @@ var Hm = /* @__PURE__ */ M(([e, t, n]) => {
25105
25105
  Xi: o
25106
25106
  }).toVar();
25107
25107
  p.halfVector.assign(h);
25108
- let g = H(i, L(1).div(n), n).toVar();
25108
+ let g = H(i, I(1).div(n), n).toVar();
25109
25109
  N(a.greaterThan(0), () => {
25110
25110
  N(c.greaterThan(0), () => {
25111
25111
  let e = Hm(n, a, c);
25112
- g.assign(H(i, L(1).div(e), e));
25112
+ g.assign(H(i, I(1).div(e), e));
25113
25113
  }).Else(() => {
25114
25114
  let e = Bm.wrap(Gm(n, a, li(l, R(0), f.add(R(5)), s, u, d)));
25115
- g.assign(H(i, L(1).div(e.ior), e.ior)), p.colorWeight.assign(e.colorWeight), p.pathWavelength.assign(e.wavelength);
25115
+ g.assign(H(i, I(1).div(e.ior), e.ior)), p.colorWeight.assign(e.colorWeight), p.pathWavelength.assign(e.wavelength);
25116
25116
  });
25117
25117
  });
25118
- let _ = P(I(h, e), .001, 1).toVar(), v = P(I(t, h), .001, 1).toVar(), y = Qp(v, m).toVar(), b = Qe(e.negate(), h, g).toVar();
25119
- N(I(b, b).lessThan(.001), () => {
25120
- p.direction.assign(Ze(e.negate(), h)), p.didReflect.assign(!0), p.pdf.assign(y.mul(v).div(z(L(4).mul(_), fc)));
25118
+ let _ = P(F(h, e), .001, 1).toVar(), v = P(F(t, h), .001, 1).toVar(), y = Qp(v, m).toVar(), b = Qe(e.negate(), h, g).toVar();
25119
+ N(F(b, b).lessThan(.001), () => {
25120
+ p.direction.assign(Ze(e.negate(), h)), p.didReflect.assign(!0), p.pdf.assign(y.mul(v).div(z(I(4).mul(_), fc)));
25121
25121
  }).Else(() => {
25122
25122
  p.direction.assign(b), p.didReflect.assign(!1);
25123
- let e = P(I(h, b), .001, 1), t = _.add(g.mul(e)), n = ve(e).div(t.mul(t));
25123
+ let e = P(F(h, b), .001, 1), t = _.add(g.mul(e)), n = ve(e).div(t.mul(t));
25124
25124
  p.pdf.assign(y.mul(v).mul(n));
25125
25125
  });
25126
25126
  }), p;
@@ -25130,11 +25130,11 @@ var Hm = /* @__PURE__ */ M(([e, t, n]) => {
25130
25130
  throughput: Y(1),
25131
25131
  didReflect: !1,
25132
25132
  pathWavelength: d
25133
- }).toVar(), p = H(r, t, t.negate()).toVar(), m = e.negate().toVar(), h = H(r, l, n.ior).toVar(), g = H(r, n.ior, u).toVar(), _ = ve(I(p, e)), v = h.mul(h).div(g.mul(g)).mul(L(1).sub(_.mul(_))).greaterThan(1).toVar(), y = Yp(_, g.div(h)).toVar(), b = L(0).toVar();
25133
+ }).toVar(), p = H(r, t, t.negate()).toVar(), m = e.negate().toVar(), h = H(r, l, n.ior).toVar(), g = H(r, n.ior, u).toVar(), _ = ve(F(p, e)), v = h.mul(h).div(g.mul(g)).mul(I(1).sub(_.mul(_))).greaterThan(1).toVar(), y = Yp(_, g.div(h)).toVar(), b = I(0).toVar();
25134
25134
  N(v, () => {
25135
25135
  b.assign(1);
25136
25136
  }).Else(() => {
25137
- let e = y, t = L(.95);
25137
+ let e = y, t = I(.95);
25138
25138
  b.assign(B(e, t, n.metalness));
25139
25139
  }), b.assign(P(b, .05, .95));
25140
25140
  let x = v.or(li(a, R(0), c.add(R(4)), i, o, s).lessThan(b)).toVar();
@@ -25142,7 +25142,7 @@ var Hm = /* @__PURE__ */ M(([e, t, n]) => {
25142
25142
  let S = ci(a, R(0), c.add(R(4)), i, o, s).toVar();
25143
25143
  return N(x, () => {
25144
25144
  N(n.roughness.greaterThan(.05), () => {
25145
- let e = Vm.wrap(qm(m, p, n.ior, n.roughness, r, L(0), S, i, L(0), a, o, s, c));
25145
+ let e = Vm.wrap(qm(m, p, n.ior, n.roughness, r, I(0), S, i, I(0), a, o, s, c));
25146
25146
  f.direction.assign(e.direction);
25147
25147
  }).Else(() => {
25148
25148
  f.direction.assign(Ze(e, p));
@@ -25151,14 +25151,14 @@ var Hm = /* @__PURE__ */ M(([e, t, n]) => {
25151
25151
  N(n.roughness.greaterThan(.05).or(n.dispersion.greaterThan(0)), () => {
25152
25152
  let e = Vm.wrap(qm(m, p, n.ior, n.roughness, r, n.dispersion, S, i, d, a, o, s, c));
25153
25153
  f.pathWavelength.assign(e.pathWavelength), N(e.didReflect, () => {
25154
- f.direction.assign(e.direction), f.didReflect.assign(!0), f.throughput.assign(n.color.xyz.div(z(L(1).sub(b), .05)));
25154
+ f.direction.assign(e.direction), f.didReflect.assign(!0), f.throughput.assign(n.color.xyz.div(z(I(1).sub(b), .05)));
25155
25155
  }).Else(() => {
25156
25156
  f.direction.assign(e.direction), f.throughput.assign(e.colorWeight);
25157
25157
  });
25158
25158
  }).Else(() => {
25159
25159
  f.direction.assign(Qe(e, p, h.div(g))), f.throughput.assign(Y(1));
25160
25160
  }), N(f.didReflect.not(), () => {
25161
- f.throughput.mulAssign(n.color.xyz), f.throughput.mulAssign(h.mul(h).div(z(g.mul(g), lc))), f.throughput.mulAssign(L(1).sub(y).div(z(L(1).sub(b), .05)));
25161
+ f.throughput.mulAssign(n.color.xyz), f.throughput.mulAssign(h.mul(h).div(z(g.mul(g), lc))), f.throughput.mulAssign(I(1).sub(y).div(z(I(1).sub(b), .05)));
25162
25162
  });
25163
25163
  }), f;
25164
25164
  }), Ym = M(([e, t, n, r, i, a, o, s, c, l, u, d]) => {
@@ -25171,7 +25171,7 @@ var Hm = /* @__PURE__ */ M(([e, t, n]) => {
25171
25171
  entering: !1,
25172
25172
  direction: e.direction,
25173
25173
  throughput: Y(1),
25174
- alpha: L(1),
25174
+ alpha: I(1),
25175
25175
  pathWavelength: d
25176
25176
  }).toVar();
25177
25177
  return N(n.alphaMode.equal(R(0)).and(n.transmission.lessThanEqual(0)).and(n.subsurface.lessThanEqual(0)), () => {}).Else(() => {
@@ -25184,7 +25184,7 @@ var Hm = /* @__PURE__ */ M(([e, t, n]) => {
25184
25184
  f.alpha.assign(t);
25185
25185
  });
25186
25186
  }), N(g.not().and(n.alphaMode.equal(R(1))), () => {
25187
- let t = H(n.alphaTest.greaterThan(0), n.alphaTest, L(.5));
25187
+ let t = H(n.alphaTest.greaterThan(0), n.alphaTest, I(.5));
25188
25188
  N(n.color.a.mul(n.opacity).lessThan(t), () => {
25189
25189
  f.continueRay.assign(!0), f.direction.assign(e.direction), f.throughput.assign(Y(1)), f.alpha.assign(0), f.isAlphaSkip.assign(!0), g.assign(!0);
25190
25190
  }).Else(() => {
@@ -25192,11 +25192,11 @@ var Hm = /* @__PURE__ */ M(([e, t, n]) => {
25192
25192
  });
25193
25193
  }), N(g.not().and(n.transmission.greaterThan(0)).and(c.greaterThan(R(0))), () => {
25194
25194
  N(m.lessThan(n.transmission), () => {
25195
- let r = I(e.direction, t).lessThan(0), c = Rm.wrap(Jm(e.direction, t, n, r, h, i, a, o, s, l, u, d));
25196
- f.direction.assign(c.direction), f.throughput.assign(c.throughput), f.continueRay.assign(!0), f.isTransmissive.assign(!0), f.didReflect.assign(c.didReflect), f.entering.assign(r), f.alpha.assign(L(1).sub(n.transmission)), f.pathWavelength.assign(c.pathWavelength);
25195
+ let r = F(e.direction, t).lessThan(0), c = Rm.wrap(Jm(e.direction, t, n, r, h, i, a, o, s, l, u, d));
25196
+ f.direction.assign(c.direction), f.throughput.assign(c.throughput), f.continueRay.assign(!0), f.isTransmissive.assign(!0), f.didReflect.assign(c.didReflect), f.entering.assign(r), f.alpha.assign(I(1).sub(n.transmission)), f.pathWavelength.assign(c.pathWavelength);
25197
25197
  });
25198
25198
  }), N(g.not().and(n.subsurface.greaterThan(0)), () => {
25199
- let c = I(e.direction, t).lessThan(0);
25199
+ let c = F(e.direction, t).lessThan(0);
25200
25200
  N(c.not().or(li(i, R(0), s.add(R(8)), r, a, o).lessThan(n.subsurface)), () => {
25201
25201
  let d = Nm.wrap(Lm(e.direction, t, n, c, r, i, a, o, s, l, u)).toVar();
25202
25202
  f.direction.assign(d.direction), f.throughput.assign(d.throughput), f.continueRay.assign(!0), f.isSubsurface.assign(!0), f.didReflect.assign(d.didReflect), f.entering.assign(c), f.alpha.assign(1);
@@ -25335,7 +25335,7 @@ var sh = /* @__PURE__ */ wt("\n fn getTransformedUV( uv: vec2f, transform: mat3x
25335
25335
  }), ph = /* @__PURE__ */ wt("\n fn uvTransformJacobian( t: mat3x3f ) -> vec2f {\n return vec2f( t[1][1], t[0][1] );\n }\n"), mh = M(([e, t, n, r, i, a]) => {
25336
25336
  let o = _t(Nc(e, t, 0).xyz), s = _t(Nc(e, t, 1).xyz).sub(o), c = _t(Nc(e, t, 2).xyz).sub(o), l = _t(Nc(e, t, 3)), u = _t(Nc(e, t, 4).xy), d = l.zw.sub(l.xy), f = u.sub(l.xy), p = d.x.mul(f.y).sub(d.y.mul(f.x)), m = X(0).toVar();
25337
25337
  return N(ve(p).greaterThan(1e-12), () => {
25338
- let e = L(1).div(p), t = s.mul(f.y).sub(c.mul(d.y)).mul(e).toVar(), o = c.mul(d.x).sub(s.mul(f.x)).mul(e).toVar(), l = ph({ t: r }), u = t.mul(l.x).sub(o.mul(l.y)).toVar();
25338
+ let e = I(1).div(p), t = s.mul(f.y).sub(c.mul(d.y)).mul(e).toVar(), o = c.mul(d.x).sub(s.mul(f.x)).mul(e).toVar(), l = ph({ t: r }), u = t.mul(l.x).sub(o.mul(l.y)).toVar();
25339
25339
  N(Re(u).greaterThan(1e-12), () => {
25340
25340
  t.assign(u);
25341
25341
  }), N(a.greaterThanEqual(R(0)), () => {
@@ -25352,7 +25352,7 @@ var sh = /* @__PURE__ */ wt("\n fn getTransformedUV( uv: vec2f, transform: mat3x
25352
25352
  v: o
25353
25353
  }));
25354
25354
  }), N(Re(t).greaterThan(1e-12), () => {
25355
- m.assign(X(V(t), rt(I(F(n, t), o))));
25355
+ m.assign(X(V(t), rt(F(ke(n, t), o))));
25356
25356
  });
25357
25357
  }), m;
25358
25358
  }), hh = M(([e, t, n, r]) => {
@@ -25360,14 +25360,14 @@ var sh = /* @__PURE__ */ wt("\n fn getTransformedUV( uv: vec2f, transform: mat3x
25360
25360
  return N(t.normalMapIndex.greaterThanEqual(R(0)), () => {
25361
25361
  let a = th(Qm, t.normalMapIndex, n.normalUV).xyz.mul(2).sub(1).toVar();
25362
25362
  a.x.mulAssign(t.normalScale.x), a.y.assign(a.y.negate().mul(t.normalScale.x));
25363
- let o = Y(0).toVar(), s = L(1).toVar(), c = r.xyz.sub(e.mul(I(e, r.xyz))).toVar();
25363
+ let o = Y(0).toVar(), s = I(1).toVar(), c = r.xyz.sub(e.mul(F(e, r.xyz))).toVar();
25364
25364
  N(ve(r.w).greaterThan(.5).and(Re(c).greaterThan(1e-6)), () => {
25365
25365
  o.assign(V(c)), s.assign(r.w);
25366
25366
  }).Else(() => {
25367
25367
  let t = ve(e.z).lessThan(.999).select(Y(0, 0, 1), Y(1, 0, 0));
25368
- o.assign(V(F(t, e)));
25368
+ o.assign(V(ke(t, e)));
25369
25369
  });
25370
- let l = F(e, o).mul(s);
25370
+ let l = ke(e, o).mul(s);
25371
25371
  i.assign(V(o.mul(a.x).add(l.mul(a.y)).add(e.mul(a.z))));
25372
25372
  }), i;
25373
25373
  }), gh = M(([e, t, n]) => {
@@ -25378,7 +25378,7 @@ var sh = /* @__PURE__ */ wt("\n fn getTransformedUV( uv: vec2f, transform: mat3x
25378
25378
  let a = J(1).div(J(ht(e))).toVar(), o = pt(e, n.bumpUV).depth(r).r, s = pt(e, J(n.bumpUV.x.add(a.x), n.bumpUV.y)).depth(r).r, c = pt(e, J(n.bumpUV.x, n.bumpUV.y.add(a.y))).depth(r).r, l = J(s.sub(o), c.sub(o)).mul(t.bumpScale);
25379
25379
  i.assign(V(Y(l.x.negate(), l.y.negate(), 1)));
25380
25380
  });
25381
- let a = V(F(ve(e.z).lessThan(.999).select(Y(0, 0, 1), Y(1, 0, 0)), e)), o = F(e, a), s = a.mul(i.x).add(o.mul(i.y)).add(e.mul(i.z));
25381
+ let a = V(ke(ve(e.z).lessThan(.999).select(Y(0, 0, 1), Y(1, 0, 0)), e)), o = ke(e, a), s = a.mul(i.x).add(o.mul(i.y)).add(e.mul(i.z));
25382
25382
  r.assign(V(B(e, s, P(t.bumpScale, 0, 1))));
25383
25383
  }), r;
25384
25384
  }), _h = M(([e, t]) => {
@@ -25428,7 +25428,7 @@ var sh = /* @__PURE__ */ wt("\n fn getTransformedUV( uv: vec2f, transform: mat3x
25428
25428
  n.assign(n.mul(r.rgb));
25429
25429
  }), n;
25430
25430
  }), bh = M(([e, t, n, r]) => {
25431
- let i = X(0).toVar(), a = Y(0).toVar(), o = L(0).toVar(), s = L(0).toVar(), c = Y(0).toVar(), l = ch(e).toVar();
25431
+ let i = X(0).toVar(), a = Y(0).toVar(), o = I(0).toVar(), s = I(0).toVar(), c = Y(0).toVar(), l = ch(e).toVar();
25432
25432
  return i.assign(e.color), a.assign(e.emissive.mul(e.emissiveIntensity)), o.assign(e.metalness), s.assign(e.roughness), c.assign(n), N(l, () => {
25433
25433
  let l = nc.wrap(uh(t, e)).toVar();
25434
25434
  i.assign(dh(e, l));
@@ -25445,7 +25445,7 @@ var sh = /* @__PURE__ */ wt("\n fn getTransformedUV( uv: vec2f, transform: mat3x
25445
25445
  hasTextures: l
25446
25446
  });
25447
25447
  }), xh = M(([e, t, n]) => {
25448
- let r = L(0).toVar();
25448
+ let r = I(0).toVar();
25449
25449
  return N(e.greaterThanEqual(R(0)), () => {
25450
25450
  let i = sh({
25451
25451
  uv: t,
@@ -25458,7 +25458,7 @@ function Ch(e) {
25458
25458
  Sh = e;
25459
25459
  }
25460
25460
  var wh = M(([e, t, n, r, i, a, o]) => {
25461
- let s = L(1).toVar(), c = e.toVar(), l = L(n).toVar();
25461
+ let s = I(1).toVar(), c = e.toVar(), l = I(n).toVar();
25462
25462
  return he({
25463
25463
  start: R(0),
25464
25464
  end: R(16)
@@ -25476,50 +25476,50 @@ var wh = M(([e, t, n, r, i, a, o]) => {
25476
25476
  });
25477
25477
  let d = Gs.wrap(zc(n.materialIndex, o)), f = De(!1).toVar(), p = Hc();
25478
25478
  p && N(p.equal(R(1)), () => {
25479
- let e = L(1).toVar();
25479
+ let e = I(1).toVar();
25480
25480
  Sh && N(d.albedoMapIndex.greaterThanEqual(R(0)), () => {
25481
- let t = n.uv.x, r = n.uv.y, i = L(1).sub(t).sub(r), o = _t(Nc(a, n.triangleIndex, 3)), s = _t(Nc(a, n.triangleIndex, 4).xy), c = sh({
25481
+ let t = n.uv.x, r = n.uv.y, i = I(1).sub(t).sub(r), o = _t(Nc(a, n.triangleIndex, 3)), s = _t(Nc(a, n.triangleIndex, 4).xy), c = sh({
25482
25482
  uv: o.xy.mul(i).add(o.zw.mul(t)).add(s.mul(r)),
25483
25483
  transform: d.albedoTransform
25484
25484
  });
25485
25485
  e.assign(th(Sh, d.albedoMapIndex, c).a);
25486
25486
  }), N(d.alphaMode.equal(R(1)), () => {
25487
- let t = d.color.a.mul(e).mul(d.opacity), n = H(d.alphaTest.greaterThan(0), d.alphaTest, L(.5));
25487
+ let t = d.color.a.mul(e).mul(d.opacity), n = H(d.alphaTest.greaterThan(0), d.alphaTest, I(.5));
25488
25488
  N(t.lessThan(n), () => {
25489
25489
  f.assign(!0);
25490
25490
  });
25491
25491
  }).ElseIf(d.alphaMode.equal(R(2)), () => {
25492
25492
  let t = P(d.color.a.mul(d.opacity).mul(e), 0, 1);
25493
- s.mulAssign(L(1).sub(t)), N(s.lessThan(1e-4), () => {
25493
+ s.mulAssign(I(1).sub(t)), N(s.lessThan(1e-4), () => {
25494
25494
  s.assign(0), me();
25495
25495
  }), f.assign(!0);
25496
25496
  });
25497
25497
  }), N(f, () => {
25498
- let e = z(L(1e-5), Re(n.hitPoint).mul(1e-6));
25498
+ let e = z(I(1e-5), Re(n.hitPoint).mul(1e-6));
25499
25499
  c.assign(n.hitPoint.add(t.mul(e))), l.subAssign(n.dst.add(e));
25500
25500
  }).ElseIf(d.transmission.greaterThan(0), () => {
25501
- let e = _t(Nc(a, n.triangleIndex, 0).xyz), r = _t(Nc(a, n.triangleIndex, 1).xyz), o = _t(Nc(a, n.triangleIndex, 2).xyz), u = V(F(r.sub(e), o.sub(e))).toVar();
25501
+ let e = _t(Nc(a, n.triangleIndex, 0).xyz), r = _t(Nc(a, n.triangleIndex, 1).xyz), o = _t(Nc(a, n.triangleIndex, 2).xyz), u = V(ke(r.sub(e), o.sub(e))).toVar();
25502
25502
  N(n.instanceLeaf.greaterThanEqual(R(0)), () => {
25503
25503
  u.assign(V(Kc(Wc(i, n.instanceLeaf), u)));
25504
25504
  });
25505
25505
  let f = u;
25506
25506
  n.normal.assign(f);
25507
- let p = I(t, f).lessThan(0), m = H(p, f, f.negate());
25507
+ let p = F(t, f).lessThan(0), m = H(p, f, f.negate());
25508
25508
  N(p.not().and(d.attenuationDistance.greaterThan(0)), () => {
25509
25509
  let e = Re(n.hitPoint.sub(c)), t = Km(d.attenuationColor, d.attenuationDistance, e);
25510
25510
  s.mulAssign(t.x.add(t.y).add(t.z).div(3));
25511
25511
  });
25512
- let h = Yp(ve(I(t, m)), z(d.ior, 1)), g = L(1).sub(h).mul(d.transmission);
25512
+ let h = Yp(ve(F(t, m)), z(d.ior, 1)), g = I(1).sub(h).mul(d.transmission);
25513
25513
  s.mulAssign(g), N(s.lessThan(1e-4), () => {
25514
25514
  s.assign(0), me();
25515
25515
  });
25516
- let _ = z(L(1e-5), Re(n.hitPoint).mul(1e-6));
25516
+ let _ = z(I(1e-5), Re(n.hitPoint).mul(1e-6));
25517
25517
  c.assign(n.hitPoint.add(t.mul(_))), l.subAssign(n.dst.add(_));
25518
25518
  }).ElseIf(d.transparent, () => {
25519
- s.mulAssign(L(1).sub(d.opacity)), N(s.lessThan(1e-4), () => {
25519
+ s.mulAssign(I(1).sub(d.opacity)), N(s.lessThan(1e-4), () => {
25520
25520
  s.assign(0), me();
25521
25521
  });
25522
- let e = z(L(1e-5), Re(n.hitPoint).mul(1e-6));
25522
+ let e = z(I(1e-5), Re(n.hitPoint).mul(1e-6));
25523
25523
  c.assign(n.hitPoint.add(t.mul(e))), l.subAssign(n.dst.add(e));
25524
25524
  }).Else(() => {
25525
25525
  s.assign(0), me();
@@ -25528,57 +25528,57 @@ var wh = M(([e, t, n, r, i, a, o]) => {
25528
25528
  });
25529
25529
  M(([e, t]) => ic(e, t).sub(e));
25530
25530
  var Th = M(([e, t, n, r]) => {
25531
- let i = z(L(0), I(t, e.direction)), a = L(0).toVar();
25531
+ let i = z(I(0), F(t, e.direction)), a = I(0).toVar();
25532
25532
  return N(i.greaterThan(0), () => {
25533
- let t = e.intensity.mul(I(e.color, pc)), o = L(1).toVar();
25533
+ let t = e.intensity.mul(F(e.color, pc)), o = I(1).toVar();
25534
25534
  N(n.metalness.greaterThan(.7), () => {
25535
25535
  o.assign(1.5);
25536
25536
  }).ElseIf(n.roughness.greaterThan(.8), () => {
25537
25537
  o.assign(.7);
25538
25538
  });
25539
- let s = L(1).div(L(1).add(L(r).mul(.5)));
25539
+ let s = I(1).div(I(1).add(I(r).mul(.5)));
25540
25540
  a.assign(t.mul(i).mul(o).mul(s));
25541
25541
  }), a;
25542
25542
  }), Eh = M(([e, t, n, r]) => {
25543
- let i = e.position.sub(t), a = Re(i), o = a.mul(a), s = i.div(a), c = z(I(n, s), 0), l = L(0).toVar();
25543
+ let i = e.position.sub(t), a = Re(i), o = a.mul(a), s = i.div(a), c = z(F(n, s), 0), l = I(0).toVar();
25544
25544
  return N(c.greaterThan(0), () => {
25545
- let t = z(I(s, e.normal).negate(), 0);
25545
+ let t = z(F(s, e.normal).negate(), 0);
25546
25546
  N(t.greaterThan(0), () => {
25547
- let n = We(e.area.div(z(o, 1e-12)), L(2 * Math.PI)), i = H(e.normalize.greaterThan(.5), L(1).div(z(e.area, 1e-10)), L(1)), a = e.intensity.mul(I(e.color, pc)).mul(i), s = L(1).toVar();
25547
+ let n = We(e.area.div(z(o, 1e-12)), I(2 * Math.PI)), i = H(e.normalize.greaterThan(.5), I(1).div(z(e.area, 1e-10)), I(1)), a = e.intensity.mul(F(e.color, pc)).mul(i), s = I(1).toVar();
25548
25548
  N(r.metalness.greaterThan(.7), () => {
25549
25549
  s.mulAssign(1.5), N(r.roughness.lessThan(.3), () => {
25550
- s.mulAssign(L(1).add(L(1).sub(r.roughness).mul(.5)));
25550
+ s.mulAssign(I(1).add(I(1).sub(r.roughness).mul(.5)));
25551
25551
  });
25552
25552
  }), N(r.transmission.greaterThan(.5), () => {
25553
- s.mulAssign(L(1).add(r.transmission.mul(.3)));
25553
+ s.mulAssign(I(1).add(r.transmission.mul(.3)));
25554
25554
  }), l.assign(a.mul(n).mul(c).mul(t).mul(s));
25555
25555
  });
25556
25556
  }), l;
25557
25557
  }), Dh = M(([e, t, n, r]) => {
25558
- let i = e.position.sub(t), a = I(i, i), o = L(0).toVar();
25558
+ let i = e.position.sub(t), a = F(i, i), o = I(0).toVar();
25559
25559
  return N(a.greaterThanEqual(.001), () => {
25560
- let t = U(a), s = i.div(t), c = z(L(0), I(n, s));
25560
+ let t = U(a), s = i.div(t), c = z(I(0), F(n, s));
25561
25561
  N(c.greaterThan(0), () => {
25562
- let t = L(1).div(z(a, .1)), n = e.intensity.mul(I(e.color, pc)), i = L(1).toVar();
25562
+ let t = I(1).div(z(a, .1)), n = e.intensity.mul(F(e.color, pc)), i = I(1).toVar();
25563
25563
  N(r.metalness.greaterThan(.7), () => {
25564
25564
  i.mulAssign(1.5), N(r.roughness.lessThan(.3), () => {
25565
- i.mulAssign(L(1).add(L(1).sub(r.roughness).mul(.4)));
25565
+ i.mulAssign(I(1).add(I(1).sub(r.roughness).mul(.4)));
25566
25566
  });
25567
25567
  }), N(r.roughness.greaterThan(.6), () => {
25568
25568
  i.mulAssign(.9);
25569
25569
  }), N(r.transmission.greaterThan(.5), () => {
25570
- i.mulAssign(L(1).add(r.transmission.mul(.2)));
25570
+ i.mulAssign(I(1).add(r.transmission.mul(.2)));
25571
25571
  }), o.assign(n.mul(t).mul(c).mul(i));
25572
25572
  });
25573
25573
  }), o;
25574
25574
  }), Oh = M(([e, t, n, r]) => {
25575
- let i = e.position.sub(t), a = I(i, i), o = L(0).toVar();
25575
+ let i = e.position.sub(t), a = F(i, i), o = I(0).toVar();
25576
25576
  return N(a.greaterThanEqual(.001), () => {
25577
- let t = i.div(U(a)), s = z(L(0), I(n, t));
25577
+ let t = i.div(U(a)), s = z(I(0), F(n, t));
25578
25578
  N(s.greaterThan(0), () => {
25579
- let n = I(t.negate(), e.direction), i = Oe(e.angle);
25579
+ let n = F(t.negate(), e.direction), i = Oe(e.angle);
25580
25580
  N(n.greaterThanEqual(i), () => {
25581
- let t = L(1).div(z(a, .01)), c = at(i, i.add(.1), n), l = e.intensity.mul(I(e.color, pc)), u = H(r.metalness.greaterThan(.7), L(1.5), H(r.roughness.greaterThan(.8), L(.8), L(1)));
25581
+ let t = I(1).div(z(a, .01)), c = at(i, i.add(.1), n), l = e.intensity.mul(F(e.color, pc)), u = H(r.metalness.greaterThan(.7), I(1.5), H(r.roughness.greaterThan(.8), I(.8), I(1)));
25582
25582
  o.assign(l.mul(t).mul(c).mul(s).mul(u));
25583
25583
  });
25584
25584
  });
@@ -25645,7 +25645,7 @@ var Th = M(([e, t, n, r]) => {
25645
25645
  goboScale: e.element(n.add(10))
25646
25646
  });
25647
25647
  }), Ih = M(([e, t]) => {
25648
- let n = t.mul(16), r = Y(e.element(n.add(3)), e.element(n.add(4)), e.element(n.add(5))).toVar(), i = Y(e.element(n.add(6)), e.element(n.add(7)), e.element(n.add(8))).toVar(), a = F(r, i), o = e.element(n.add(15)), s = Re(a).mul(4);
25648
+ let n = t.mul(16), r = Y(e.element(n.add(3)), e.element(n.add(4)), e.element(n.add(5))).toVar(), i = Y(e.element(n.add(6)), e.element(n.add(7)), e.element(n.add(8))).toVar(), a = ke(r, i), o = e.element(n.add(15)), s = Re(a).mul(4);
25649
25649
  return Ah({
25650
25650
  position: Y(e.element(n), e.element(n.add(1)), e.element(n.add(2))),
25651
25651
  u: r,
@@ -25688,26 +25688,26 @@ function Uh(e) {
25688
25688
  Hh = e;
25689
25689
  }
25690
25690
  var Wh = /* @__PURE__ */ M(([e, t]) => {
25691
- let n = L(1).toVar();
25691
+ let n = I(1).toVar();
25692
25692
  return N(e.goboIndex.greaterThanEqual(R(0)), () => {
25693
- let r = e.direction.toVar(), i = t.negate().toVar(), a = I(i, r).toVar();
25693
+ let r = e.direction.toVar(), i = t.negate().toVar(), a = F(i, r).toVar();
25694
25694
  N(a.greaterThan(0), () => {
25695
- let t = V(F(H(ve(r.z).lessThan(.999), Y(0, 0, 1), Y(1, 0, 0)), r)).toVar(), o = F(r, t), s = L(1).div(a).toVar(), c = I(i, t).mul(s), l = I(i, o).mul(s), u = L(.5).div(z(ft(e.angle), L(1e-4))).toVar(), d = P(c.mul(u).add(.5), L(0), L(1)), f = P(l.mul(u).add(.5), L(0), L(1));
25695
+ let t = V(ke(H(ve(r.z).lessThan(.999), Y(0, 0, 1), Y(1, 0, 0)), r)).toVar(), o = ke(r, t), s = I(1).div(a).toVar(), c = F(i, t).mul(s), l = F(i, o).mul(s), u = I(.5).div(z(ft(e.angle), I(1e-4))).toVar(), d = P(c.mul(u).add(.5), I(0), I(1)), f = P(l.mul(u).add(.5), I(0), I(1));
25696
25696
  if (Hh) {
25697
- let t = pt(Hh, J(d, f)).depth(e.goboIndex), r = We(t.r, t.a), i = H(e.goboIntensity.lessThan(0), L(1).sub(r), r), a = P(ve(e.goboIntensity), L(0), L(1));
25698
- n.assign(B(L(1), i, a));
25697
+ let t = pt(Hh, J(d, f)).depth(e.goboIndex), r = We(t.r, t.a), i = H(e.goboIntensity.lessThan(0), I(1).sub(r), r), a = P(ve(e.goboIntensity), I(0), I(1));
25698
+ n.assign(B(I(1), i, a));
25699
25699
  }
25700
25700
  }).Else(() => {
25701
25701
  n.assign(0);
25702
25702
  });
25703
25703
  }), n;
25704
25704
  }), Gh = /* @__PURE__ */ M(([e, t]) => {
25705
- let n = L(1).toVar();
25705
+ let n = I(1).toVar();
25706
25706
  return N(e.goboIndex.greaterThanEqual(R(0)), () => {
25707
- let r = e.direction.toVar(), i = V(F(H(ve(r.z).lessThan(.999), Y(0, 0, 1), Y(1, 0, 0)), r)).toVar(), a = F(r, i), o = L(1).div(z(e.goboScale, L(1e-4))).toVar(), s = I(t, i).mul(o).add(.5).toVar(), c = I(t, a).mul(o).add(.5).toVar(), l = s.sub(s.floor()), u = c.sub(c.floor());
25707
+ let r = e.direction.toVar(), i = V(ke(H(ve(r.z).lessThan(.999), Y(0, 0, 1), Y(1, 0, 0)), r)).toVar(), a = ke(r, i), o = I(1).div(z(e.goboScale, I(1e-4))).toVar(), s = F(t, i).mul(o).add(.5).toVar(), c = F(t, a).mul(o).add(.5).toVar(), l = s.sub(s.floor()), u = c.sub(c.floor());
25708
25708
  if (Hh) {
25709
- let t = pt(Hh, J(l, u)).depth(e.goboIndex), r = We(t.r, t.a), i = H(e.goboIntensity.lessThan(0), L(1).sub(r), r), a = P(ve(e.goboIntensity), L(0), L(1));
25710
- n.assign(B(L(1), i, a));
25709
+ let t = pt(Hh, J(l, u)).depth(e.goboIndex), r = We(t.r, t.a), i = H(e.goboIntensity.lessThan(0), I(1).sub(r), r), a = P(ve(e.goboIntensity), I(0), I(1));
25710
+ n.assign(B(I(1), i, a));
25711
25711
  }
25712
25712
  }), n;
25713
25713
  }), Kh = null;
@@ -25715,20 +25715,20 @@ function qh(e) {
25715
25715
  Kh = e;
25716
25716
  }
25717
25717
  var Jh = /* @__PURE__ */ M(([e, t]) => {
25718
- let n = L(1).toVar();
25718
+ let n = I(1).toVar();
25719
25719
  return N(e.iesIndex.greaterThanEqual(R(0)), () => {
25720
- let r = e.direction.toVar(), i = t.negate().toVar(), a = P(ye(P(I(i, r), L(-1), L(1))).div(L(Math.PI)), L(0), L(1)), o = V(F(H(ve(r.z).lessThan(.999), Y(0, 0, 1), Y(1, 0, 0)), r)).toVar(), s = F(r, o), c = I(i, o), l = Se(I(i, s), c).div(L(2 * Math.PI)).add(.5);
25720
+ let r = e.direction.toVar(), i = t.negate().toVar(), a = P(ye(P(F(i, r), I(-1), I(1))).div(I(Math.PI)), I(0), I(1)), o = V(ke(H(ve(r.z).lessThan(.999), Y(0, 0, 1), Y(1, 0, 0)), r)).toVar(), s = ke(r, o), c = F(i, o), l = Se(F(i, s), c).div(I(2 * Math.PI)).add(.5);
25721
25721
  if (Kh) {
25722
- let t = pt(Kh, J(l, a)).depth(e.iesIndex).r, r = P(e.iesIntensity, L(0), L(1));
25723
- n.assign(B(L(1), t, r));
25722
+ let t = pt(Kh, J(l, a)).depth(e.iesIndex).r, r = P(e.iesIntensity, I(0), I(1));
25723
+ n.assign(B(I(1), t, r));
25724
25724
  }
25725
25725
  }), n;
25726
25726
  }), Yh = /* @__PURE__ */ wt("\n fn sampleCone( direction: vec3f, halfAngle: f32, xi: vec2f ) -> vec3f {\n let cosHalfAngle = cos( halfAngle );\n let cosTheta = cosHalfAngle + xi.x * ( 1.0f - cosHalfAngle );\n let sinTheta = sqrt( 1.0f - cosTheta * cosTheta );\n let phi = 6.28318530717958647692f * xi.y;\n // Create local coordinate system\n let up = select( vec3f( 1.0f, 0.0f, 0.0f ), vec3f( 0.0f, 0.0f, 1.0f ), abs( direction.z ) < 0.999f );\n let tangent = normalize( cross( up, direction ) );\n let bitangent = cross( direction, tangent );\n // Convert to world space\n let localDir = vec3f( sinTheta * cos( phi ), sinTheta * sin( phi ), cosTheta );\n return normalize( tangent * localDir.x + bitangent * localDir.y + direction * localDir.z );\n }\n"), Xh = M(([e, t, n]) => {
25727
- let r = e.normal, i = I(r, n), a = L(-1).toVar();
25727
+ let r = e.normal, i = F(r, n), a = I(-1).toVar();
25728
25728
  return N(i.lessThan(-1e-4), () => {
25729
- let o = L(1).div(i), s = I(e.position.sub(t), r).mul(o).toVar();
25729
+ let o = I(1).div(i), s = F(e.position.sub(t), r).mul(o).toVar();
25730
25730
  N(s.greaterThan(.001), () => {
25731
- let r = t.add(n.mul(s)).sub(e.position), i = Re(e.u), o = Re(e.v), c = e.u.div(i), l = e.v.div(o), u = I(r, c).div(i), d = I(r, l).div(o);
25731
+ let r = t.add(n.mul(s)).sub(e.position), i = Re(e.u), o = Re(e.v), c = e.u.div(i), l = e.v.div(o), u = F(r, c).div(i), d = F(r, l).div(o);
25732
25732
  N(H(e.shape.greaterThan(.5), u.mul(u).add(d.mul(d)).lessThanEqual(1), ve(u).lessThanEqual(1).and(ve(d).lessThanEqual(1))), () => {
25733
25733
  a.assign(s);
25734
25734
  });
@@ -28923,7 +28923,7 @@ function Mv(e, t, n, r) {
28923
28923
  }
28924
28924
  //#endregion
28925
28925
  //#region src/version.js
28926
- var Nv = "9.1.0", Pv = 1e4, Fv = 15e5;
28926
+ var Nv = "9.1.2", Pv = 1e4, Fv = 15e5;
28927
28927
  function Iv(e, t, n = Pv) {
28928
28928
  return e >= n && t / Fv < e / 3;
28929
28929
  }
@@ -31219,9 +31219,9 @@ var Cy = 1 << 18, wy = a("pathtracer"), Ty = 100, Ey = 4, Dy = class extends pi
31219
31219
  _updateCameraUniforms() {
31220
31220
  return !this._matricesApproxEqual(this.lastCameraMatrix, this.camera.matrixWorld) || !this._matricesApproxEqual(this.lastProjectionMatrix, this.camera.projectionMatrixInverse) ? (this.cameraWorldMatrix.value.copy(this.camera.matrixWorld), this.cameraViewMatrix.value.copy(this.camera.matrixWorldInverse), this.cameraProjectionMatrix.value.copy(this.camera.projectionMatrix), this.cameraProjectionMatrixInverse.value.copy(this.camera.projectionMatrixInverse), this.lastCameraMatrix.copy(this.camera.matrixWorld), this.lastProjectionMatrix.copy(this.camera.projectionMatrixInverse), !0) : !1;
31221
31221
  }
31222
- _updateAccumulationUniforms(e, t) {
31223
- let n = this.cameraOptimizer?.isInInteractionMode() ?? !1;
31224
- this.lastInteractionModeState = n, this.accumulationEnabled ? n ? (this.accumulationAlpha.value = 1, this.hasPreviousAccumulated.value = 0) : (this.accumulationAlpha.value = Oi(e), this.hasPreviousAccumulated.value = +(e > 0)) : (this.accumulationAlpha.value = 1, this.hasPreviousAccumulated.value = 0);
31222
+ _updateAccumulationUniforms(e) {
31223
+ let t = this.cameraOptimizer?.isInInteractionMode() ?? !1;
31224
+ this.lastInteractionModeState = t, this.accumulationEnabled ? t ? (this.accumulationAlpha.value = 1, this.hasPreviousAccumulated.value = 0) : (this.accumulationAlpha.value = Oi(e), this.hasPreviousAccumulated.value = +(e > 0)) : (this.accumulationAlpha.value = 1, this.hasPreviousAccumulated.value = 0);
31225
31225
  }
31226
31226
  _publishTexturesToContext(e, t) {
31227
31227
  e.setTexture("pathtracer:color", t.color), e.setTexture("pathtracer:normalDepth", t.normalDepth), e.setTexture("pathtracer:albedo", t.albedo), e.setState("pathtracer:samples", this.frameCount), e.setState("interactionMode", this.cameraOptimizer?.isInInteractionMode() ?? !1), e.setState("renderMode", this.renderMode.value);
@@ -31502,11 +31502,17 @@ var Ry = class {
31502
31502
  }
31503
31503
  setDispatchForCount(e, t) {
31504
31504
  let n = this.kernels.get(e);
31505
- n && (n.dispatchSize = [
31506
- Math.ceil(t / n.workgroupSize[0]),
31505
+ if (!n) return;
31506
+ let r = Math.ceil(t / n.workgroupSize[0]), i = this.renderer?.backend?.device?.limits.maxComputeWorkgroupsPerDimension ?? 65535;
31507
+ n.dispatchSize = r > i ? [
31508
+ i,
31509
+ Math.ceil(r / i),
31510
+ 1
31511
+ ] : [
31512
+ r,
31507
31513
  1,
31508
31514
  1
31509
- ]);
31515
+ ];
31510
31516
  }
31511
31517
  setDispatchForGrid(e, t, n) {
31512
31518
  let r = this.kernels.get(e);
@@ -31572,7 +31578,7 @@ var Gy = (e, t, n, r) => ({
31572
31578
  }, qy = M(([e, t, n, r]) => {
31573
31579
  let i = Y(t[3]).toVar();
31574
31580
  return N(Uy(r), () => {
31575
- let r = n.mul(X(e.x.mul(2).sub(1), L(1).sub(e.y.mul(2)), 0, 1));
31581
+ let r = n.mul(X(e.x.mul(2).sub(1), I(1).sub(e.y.mul(2)), 0, 1));
31576
31582
  i.assign(t.mul(X(r.xy, 0, 1)).xyz);
31577
31583
  }), i;
31578
31584
  }), Jy = M(([e, t, n, r, i, a, o]) => {
@@ -31581,27 +31587,27 @@ var Gy = (e, t, n, r) => ({
31581
31587
  let n = B(i.x, i.y, e.x).toVar(), r = B(a.y, a.x, e.y).toVar(), c = Oe(r).toVar(), l = Y(0).toVar(), u = Y(0).toVar(), d = Y(0).toVar();
31582
31588
  N(o.equal(R(1)), () => {
31583
31589
  let e = Y(t[2].x, 0, t[2].z).toVar();
31584
- N(I(e, e).lessThan(L(1e-8)), () => {
31590
+ N(F(e, e).lessThan(I(1e-8)), () => {
31585
31591
  e.assign(Y(t[1].x, 0, t[1].z));
31586
- }), d.assign(V(e)), u.assign(Y(0, 1, 0)), l.assign(F(u, d));
31592
+ }), d.assign(V(e)), u.assign(Y(0, 1, 0)), l.assign(ke(u, d));
31587
31593
  }).Else(() => {
31588
31594
  l.assign(V(Y(t[0]))), u.assign(V(Y(t[1]))), d.assign(V(Y(t[2])));
31589
31595
  }), s.assign(V(l.mul(it(n).mul(c)).add(u.mul(it(r))).sub(d.mul(Oe(n).mul(c)))));
31590
31596
  }).ElseIf(Uy(r), () => {
31591
31597
  s.assign(V(Y(t[2])).negate());
31592
31598
  }).Else(() => {
31593
- let r = Y(e.x.mul(2).sub(1), L(1).sub(e.y.mul(2)), 1), i = n.mul(X(r, 1));
31599
+ let r = Y(e.x.mul(2).sub(1), I(1).sub(e.y.mul(2)), 1), i = n.mul(X(r, 1));
31594
31600
  s.assign(V(Ue(t[0].xyz, t[1].xyz, t[2].xyz).mul(i.xyz.div(i.w))));
31595
31601
  }), s;
31596
31602
  }), Yy = M(([e, t, n, r, i, a, o, s, c, l, u, d, f, p, m, h, g]) => {
31597
31603
  let _ = qy(e, n, r, i).toVar(), v = Jy(e, n, r, i, a, o, s).toVar(), y = _.toVar(), b = v.toVar(), x = h.equal(R(1)), S = x.and(g.greaterThan(0)).or(x.not().and(l.greaterThan(0)).and(u.lessThan(64)));
31598
31604
  return N(c.and(S).and(d.greaterThan(.001)), () => {
31599
- let e = H(i.equal(Vy), o.y.sub(o.x).mul(.5), H(Uy(i), L(1), r[1].y)), a = H(x, g.mul(d).mul(e), l.div(u.mul(2)).mul(.001).mul(f).mul(p)), s = Zr(t), c = s.x.mul(m.max(.01)), h = s.y, S = Y(0).toVar(), C = d.toVar();
31605
+ let e = H(i.equal(Vy), o.y.sub(o.x).mul(.5), H(Uy(i), I(1), r[1].y)), a = H(x, g.mul(d).mul(e), l.div(u.mul(2)).mul(.001).mul(f).mul(p)), s = Zr(t), c = s.x.mul(m.max(.01)), h = s.y, S = Y(0).toVar(), C = d.toVar();
31600
31606
  N(i.equal(Vy), () => {
31601
31607
  S.assign(Tc({ N: v }).mul(Y(c, h, 0)));
31602
31608
  }).Else(() => {
31603
31609
  let e = V(Y(n[0])), t = V(Y(n[1]));
31604
- S.assign(e.mul(c).add(t.mul(h))), C.assign(d.div(I(v, V(Y(n[2]))).negate()));
31610
+ S.assign(e.mul(c).add(t.mul(h))), C.assign(d.div(F(v, V(Y(n[2]))).negate()));
31605
31611
  }), y.assign(_.add(S.mul(a))), b.assign(V(_.add(v.mul(C)).sub(y)));
31606
31612
  }), Hs({
31607
31613
  origin: y,
@@ -31609,27 +31615,27 @@ var Gy = (e, t, n, r) => ({
31609
31615
  });
31610
31616
  });
31611
31617
  function Xy(e) {
31612
- let { rayBufferRW: t, hitBufferRW: n, gBufferRW: r, resolution: i, frame: a, cameraWorldMatrix: o, cameraProjectionMatrixInverse: s, cameraProjection: c, panoLonRange: l, panoLatRange: u, panoLevelHorizon: d, enableDOF: f, focalLength: p, aperture: m, focusDistance: h, unitsPerMetre: g, apertureScale: _, anamorphicRatio: v, dofMode: y, dofBlur: b, renderWidth: x, chunkRowBase: S, chunkRows: C, transmissiveBounces: w, transparentBackground: T, auxGBufferEnabled: E, listDriven: D = !1, activeIndicesRO: O = null, counters: k = null } = e, A = E.greaterThan(G(0)), ee = (e, x, S) => {
31613
- let C = J(L(e).add(.5), L(x).add(.5)), T = qr({ state: di({
31618
+ let { rayBufferRW: t, hitBufferRW: n, gBufferRW: r, resolution: i, frame: a, cameraWorldMatrix: o, cameraProjectionMatrixInverse: s, cameraProjection: c, panoLonRange: l, panoLatRange: u, panoLevelHorizon: d, enableDOF: f, focalLength: p, aperture: m, focusDistance: h, unitsPerMetre: g, apertureScale: _, anamorphicRatio: v, dofMode: y, dofBlur: b, renderWidth: x, chunkRowBase: S, chunkRows: C, transmissiveBounces: w, auxGBufferEnabled: T, listDriven: E = !1, activeIndicesRO: D = null, counters: O = null } = e, k = T.greaterThan(G(0)), A = (e, x, S) => {
31619
+ let C = J(I(e).add(.5), I(x).add(.5)), T = qr({ state: di({
31614
31620
  pixelCoord: C,
31615
31621
  rayIndex: R(0),
31616
31622
  frame: a
31617
31623
  }).toVar() }).toVar(), E = ui(C, R(1), R(1), T, i, a).toVar().sub(.5), D = J(C.x.add(E.x), C.y.sub(E.y)).div(i), O = Hs.wrap(Yy(D, T, o, s, c, l, u, d, f, p, m, h, g, _, v, y, b));
31618
- _l(t, S, O.origin, R(0), R(0)), vl(t, S, O.direction, G(jy.ACTIVE)), yl(t, S, X(1, 1, 1, 0).xyz, L(0)), bl(t, S, X(Y(0), L(1))), N(A, () => {
31619
- ll(r, S, Y(0, 0, 1), L(1), Y(0), L(0)), Rl(t, S, Y(1));
31620
- }), Ml(t, S, G(0), G(w), L(1), L(1), L(1)), kl(n, S, T);
31624
+ _l(t, S, O.origin, R(0), R(0)), vl(t, S, O.direction, G(jy.ACTIVE)), yl(t, S, X(1, 1, 1, 0).xyz, I(0)), bl(t, S, X(Y(0), I(1))), N(k, () => {
31625
+ ll(r, S, Y(0, 0, 1), I(1), Y(0), I(0)), Rl(t, S, Y(1));
31626
+ }), Ml(t, S, G(0), G(w), I(1), I(1), I(1)), kl(n, S, T);
31621
31627
  };
31622
31628
  return M(() => {
31623
- if (D) {
31629
+ if (E) {
31624
31630
  let e = Fe;
31625
- N(e.lessThan(we(k.element(G(ky.ENTERING_COUNT)))), () => {
31626
- let t = R(O.element(e)), n = t.add(S.mul(x));
31627
- ee(n.mod(x), n.div(x), G(t));
31631
+ N(e.lessThan(we(O.element(G(ky.ENTERING_COUNT)))), () => {
31632
+ let t = R(D.element(e)), n = t.add(S.mul(x));
31633
+ A(n.mod(x), n.div(x), G(t));
31628
31634
  });
31629
31635
  } else {
31630
31636
  let e = R(Dt.x).mul(16).add(R(Be.x)), t = R(Dt.y).mul(16).add(R(Be.y));
31631
31637
  N(e.lessThan(x).and(t.lessThan(C)), () => {
31632
- ee(e, t.add(S), G(t.mul(x).add(e)));
31638
+ A(e, t.add(S), G(t.mul(x).add(e)));
31633
31639
  });
31634
31640
  }
31635
31641
  });
@@ -31642,7 +31648,7 @@ var Zy = 32, Qy = 4096, $y = 4, eb = 1e8, tb = () => be("int", Zy).toVar(), nb =
31642
31648
  }, ob = (e, t) => Y(e[0].xyz.dot(t).add(e[0].w), e[1].xyz.dot(t).add(e[1].w), e[2].xyz.dot(t).add(e[2].w)), sb = (e, t) => Y(e[0].xyz.dot(t), e[1].xyz.dot(t), e[2].xyz.dot(t)), cb = wt("\n fn RayTriangleGeometry( rayOrigin: vec3f, rayDir: vec3f, pA: vec3f, pB: vec3f, pC: vec3f, closestHitDst: f32, woopParams: vec4f ) -> vec4f {\n\n // Returns vec4(t, u, v, hit) where hit > 0.5 means intersection.\n // woopParams: (Sx, Sy, Sz, bitcast<f32>(packed kx|ky<<2|kz<<4))\n var result = vec4f( 1e20f, 0.0f, 0.0f, 0.0f );\n\n let Sx = woopParams.x;\n let Sy = woopParams.y;\n let Sz = woopParams.z;\n // Packed as regular f32 (values 0–42), not bitcast — avoids subnormal FTZ on Apple GPUs.\n let packed = i32( woopParams.w );\n let kx = packed & 3;\n let ky = ( packed >> 2 ) & 3;\n let kz = ( packed >> 4 ) & 3;\n\n let A = pA - rayOrigin;\n let B = pB - rayOrigin;\n let C = pC - rayOrigin;\n\n let Akz = A[ kz ];\n let Bkz = B[ kz ];\n let Ckz = C[ kz ];\n\n let Ax = A[ kx ] - Sx * Akz;\n let Ay = A[ ky ] - Sy * Akz;\n let Bx = B[ kx ] - Sx * Bkz;\n let By = B[ ky ] - Sy * Bkz;\n let Cx = C[ kx ] - Sx * Ckz;\n let Cy = C[ ky ] - Sy * Ckz;\n\n // Edge function tests — all three must share sign (or be exactly zero) for hit.\n let U = Cx * By - Cy * Bx;\n let V = Ax * Cy - Ay * Cx;\n let W = Bx * Ay - By * Ax;\n\n let neg = U < 0.0f || V < 0.0f || W < 0.0f;\n let pos = U > 0.0f || V > 0.0f || W > 0.0f;\n if ( !( neg && pos ) ) {\n\n let det = U + V + W;\n if ( det != 0.0f ) {\n\n let T = U * ( Sz * Akz ) + V * ( Sz * Bkz ) + W * ( Sz * Ckz );\n\n // Sign-aware bounds check on t (multiply both sides by sign(det) once).\n let detSign = select( -1.0f, 1.0f, det > 0.0f );\n let tSigned = T * detSign;\n let detAbs = abs( det );\n\n if ( tSigned > 0.0f && tSigned < closestHitDst * detAbs ) {\n\n // Match Möller-Trumbore convention: u = weight of B, v = weight of C.\n // In Woop's edge functions, U → weight of A, V → weight of B, W → weight of C.\n let invDet = 1.0f / det;\n result = vec4f( T * invDet, V * invDet, W * invDet, 1.0f );\n\n }\n\n }\n\n }\n\n return result;\n\n }\n"), lb = wt("\n fn computeWoopFromInvDir( rayDir: vec3f, invDir: vec3f ) -> vec4f {\n\n let absDir = abs( rayDir );\n\n // kz = argmax(|dir|)\n var kz: i32 = 0;\n if ( absDir.y >= absDir.x ) { kz = 1; }\n if ( absDir.z >= absDir[ u32( kz ) ] ) { kz = 2; }\n\n var kx: i32 = ( kz + 1 ) % 3;\n var ky: i32 = ( kx + 1 ) % 3;\n\n // Preserve triangle winding when the dominant axis component is negative.\n if ( rayDir[ u32( kz ) ] < 0.0f ) {\n let tmp = kx;\n kx = ky;\n ky = tmp;\n }\n\n let Sz = invDir[ u32( kz ) ];\n let Sx = rayDir[ u32( kx ) ] * Sz;\n let Sy = rayDir[ u32( ky ) ] * Sz;\n\n let packed = kx | ( ky << 2 ) | ( kz << 4 );\n return vec4f( Sx, Sy, Sz, f32( packed ) );\n\n }\n"), ub = wt("\n fn fastRayAABBDst( rayOrigin: vec3f, invDir: vec3f, boxMin: vec3f, boxMax: vec3f ) -> f32 {\n\n let t1 = ( boxMin - rayOrigin ) * invDir;\n let t2 = ( boxMax - rayOrigin ) * invDir;\n\n let tmin = min( t1, t2 );\n let tmax = max( t1, t2 );\n\n let tNear = max( max( tmin.x, tmin.y ), tmin.z );\n let tFar = min( min( tmax.x, tmax.y ), tmax.z ) * 1.00000024f; // Robust traversal: 2 ULP padding (Ize 2013)\n\n let isHit = tNear <= tFar && tFar > 0.0f;\n return select( 1e20f, max( tNear, 0.0f ), isHit );\n\n }\n"), db = (e) => M(([t, n, r, i]) => {
31643
31649
  let a = i ?? De(!1), o = n.value?.foldedLeaves === !0, s = ib(o), c = qs({
31644
31650
  didHit: !1,
31645
- dst: L(0x56bc75e2d63100000),
31651
+ dst: I(0x56bc75e2d63100000),
31646
31652
  hitPoint: Y(0),
31647
31653
  normal: Y(0),
31648
31654
  uv: J(0),
@@ -31651,7 +31657,7 @@ var Zy = 32, Qy = 4096, $y = 4, eb = 1e8, tb = () => be("int", Zy).toVar(), nb =
31651
31657
  instanceLeaf: R(-1),
31652
31658
  boxTests: R(0),
31653
31659
  triTests: R(0)
31654
- }).toVar(), l = R(-1).toVar(), u = L(0).toVar(), d = L(0).toVar(), f = tb(), p = R(1).toVar();
31660
+ }).toVar(), l = R(-1).toVar(), u = I(0).toVar(), d = I(0).toVar(), f = tb(), p = R(1).toVar();
31655
31661
  f.element(R(0)).assign(R(0));
31656
31662
  let m = Y(t.origin).toVar(), h = Y(t.direction).toVar(), g = ab(h).toVar(), _ = lb({
31657
31663
  rayDir: h,
@@ -31673,7 +31679,7 @@ var Zy = 32, Qy = 4096, $y = 4, eb = 1e8, tb = () => be("int", Zy).toVar(), nb =
31673
31679
  woopParams: x
31674
31680
  });
31675
31681
  N(p.w.greaterThan(.5), () => {
31676
- let e = p.x, t = p.y, i = p.z, m = Fc(o.w), h = Fc(s.w), g = Fc(f.w), _ = Nc(r, n, 4).z, v = R(_.shiftRight(G(24)).bitAnd(G(3))).toVar(), b = L(1).sub(t).sub(i), x = y.dot(V(m.mul(b).add(h.mul(t)).add(g.mul(i))));
31682
+ let e = p.x, t = p.y, i = p.z, m = Fc(o.w), h = Fc(s.w), g = Fc(f.w), _ = Nc(r, n, 4).z, v = R(_.shiftRight(G(24)).bitAnd(G(3))).toVar(), b = I(1).sub(t).sub(i), x = y.dot(V(m.mul(b).add(h.mul(t)).add(g.mul(i))));
31677
31683
  N(a.or(v.equal(R(2))).or(v.equal(R(0)).and(x.lessThan(-1e-4))).or(v.equal(R(1)).and(x.greaterThan(1e-4))), () => {
31678
31684
  c.didHit.assign(!0), c.dst.assign(e), l.assign(n), u.assign(t), d.assign(i), w.assign(S);
31679
31685
  });
@@ -31689,13 +31695,13 @@ var Zy = 32, Qy = 4096, $y = 4, eb = 1e8, tb = () => be("int", Zy).toVar(), nb =
31689
31695
  let r = () => {
31690
31696
  let r = t, i = Mc(n, r, R(0), R($y));
31691
31697
  e && c.boxTests.addAssign(1);
31692
- let a = Me(i.w).toVar();
31698
+ let a = Ne(i.w).toVar();
31693
31699
  N(s(a), () => {
31694
31700
  N(a.equal(G(pa.TRIANGLE_LEAF)), () => {
31695
- T(Me(i.x), Me(i.y));
31701
+ T(Ne(i.x), Ne(i.y));
31696
31702
  }).Else(() => {
31697
31703
  N(i.z.greaterThan(.5).and(p.lessThan(R(Zy))), () => {
31698
- N(Me(i.y).bitAnd(G(da)).equal(G(0)), () => {
31704
+ N(Ne(i.y).bitAnd(G(da)).equal(G(0)), () => {
31699
31705
  let e = Wc(n, r), t = sb(e, h).toVar();
31700
31706
  v.assign(ob(e, m)), y.assign(t);
31701
31707
  let i = ab(t).toVar();
@@ -31705,11 +31711,11 @@ var Zy = 32, Qy = 4096, $y = 4, eb = 1e8, tb = () => be("int", Zy).toVar(), nb =
31705
31711
  })), S.assign(r), C.assign(p);
31706
31712
  }).Else(() => {
31707
31713
  v.assign(m), y.assign(h), b.assign(g), x.assign(_), S.assign(R(-1));
31708
- }), f.element(p).assign(R(Me(i.x))), p.addAssign(1);
31714
+ }), f.element(p).assign(R(Ne(i.x))), p.addAssign(1);
31709
31715
  });
31710
31716
  });
31711
31717
  }).Else(() => {
31712
- let e = Mc(n, r, R(1), R($y)), t = Mc(n, r, R(2), R($y)), o = Mc(n, r, R(3), R($y)), s = R(a).toVar(), l = R(Me(e.w)).toVar(), u = S.greaterThanEqual(R(0)), d = H(u, v, m).toVar(), h = H(u, b, g).toVar(), _ = ub({
31718
+ let e = Mc(n, r, R(1), R($y)), t = Mc(n, r, R(2), R($y)), o = Mc(n, r, R(3), R($y)), s = R(a).toVar(), l = R(Ne(e.w)).toVar(), u = S.greaterThanEqual(R(0)), d = H(u, v, m).toVar(), h = H(u, b, g).toVar(), _ = ub({
31713
31719
  rayOrigin: d,
31714
31720
  invDir: h,
31715
31721
  boxMin: i.xyz,
@@ -31733,7 +31739,7 @@ var Zy = 32, Qy = 4096, $y = 4, eb = 1e8, tb = () => be("int", Zy).toVar(), nb =
31733
31739
  o ? N(t.lessThan(R(0)), () => T(nb(t), rb(t))).Else(r) : r();
31734
31740
  }), N(c.didHit, () => {
31735
31741
  c.hitPoint.assign(t.origin.add(t.direction.mul(c.dst)));
31736
- let e = L(1).sub(u).sub(d), i = Fc(Nc(r, l, 0).w), a = Fc(Nc(r, l, 1).w), o = Fc(Nc(r, l, 2).w), s = V(i.mul(e).add(a.mul(u)).add(o.mul(d))).toVar();
31742
+ let e = I(1).sub(u).sub(d), i = Fc(Nc(r, l, 0).w), a = Fc(Nc(r, l, 1).w), o = Fc(Nc(r, l, 2).w), s = V(i.mul(e).add(a.mul(u)).add(o.mul(d))).toVar();
31737
31743
  N(w.greaterThanEqual(R(0)), () => {
31738
31744
  s.assign(V(Gc(Wc(n, w), s)));
31739
31745
  }), c.normal.assign(s);
@@ -31785,13 +31791,13 @@ var Zy = 32, Qy = 4096, $y = 4, eb = 1e8, tb = () => be("int", Zy).toVar(), nb =
31785
31791
  let e = s.element(c).toVar();
31786
31792
  _.assign(H(c.lessThan(v), R(-1), _));
31787
31793
  let n = () => {
31788
- let n = e, r = Mc(t, n, R(0), R($y)), i = Me(r.w).toVar();
31794
+ let n = e, r = Mc(t, n, R(0), R($y)), i = Ne(r.w).toVar();
31789
31795
  N(a(i), () => {
31790
31796
  N(i.equal(G(pa.TRIANGLE_LEAF)), () => {
31791
- b(Me(r.x), Me(r.y));
31797
+ b(Ne(r.x), Ne(r.y));
31792
31798
  }).Else(() => {
31793
31799
  N(r.z.greaterThan(.5).and(c.lessThan(R(Zy))), () => {
31794
- N(Me(r.y).bitAnd(G(da)).equal(G(0)), () => {
31800
+ N(Ne(r.y).bitAnd(G(da)).equal(G(0)), () => {
31795
31801
  let e = Wc(t, n), r = sb(e, u).toVar();
31796
31802
  p.assign(ob(e, l)), m.assign(r);
31797
31803
  let i = ab(r).toVar();
@@ -31801,11 +31807,11 @@ var Zy = 32, Qy = 4096, $y = 4, eb = 1e8, tb = () => be("int", Zy).toVar(), nb =
31801
31807
  })), _.assign(n), v.assign(c);
31802
31808
  }).Else(() => {
31803
31809
  p.assign(l), m.assign(u), h.assign(d), g.assign(f), _.assign(R(-1));
31804
- }), s.element(c).assign(R(Me(r.x))), c.addAssign(1);
31810
+ }), s.element(c).assign(R(Ne(r.x))), c.addAssign(1);
31805
31811
  });
31806
31812
  });
31807
31813
  }).Else(() => {
31808
- let e = Mc(t, n, R(1), R($y)), a = Mc(t, n, R(2), R($y)), u = Mc(t, n, R(3), R($y)), f = R(i).toVar(), m = R(Me(e.w)).toVar(), g = _.greaterThanEqual(R(0)), v = H(g, p, l).toVar(), y = H(g, h, d).toVar(), b = ub({
31814
+ let e = Mc(t, n, R(1), R($y)), a = Mc(t, n, R(2), R($y)), u = Mc(t, n, R(3), R($y)), f = R(i).toVar(), m = R(Ne(e.w)).toVar(), g = _.greaterThanEqual(R(0)), v = H(g, p, l).toVar(), y = H(g, h, d).toVar(), b = ub({
31809
31815
  rayOrigin: v,
31810
31816
  invDir: y,
31811
31817
  boxMin: r.xyz,
@@ -31832,14 +31838,14 @@ var Zy = 32, Qy = 4096, $y = 4, eb = 1e8, tb = () => be("int", Zy).toVar(), nb =
31832
31838
  //#endregion
31833
31839
  //#region src/TSL/ShadowTerminator.js
31834
31840
  function hb({ V0: e, V1: t, V2: n, N0: r, N1: i, N2: a, hitPoint: o, instanced: s, bvhBuffer: c, instanceLeaf: l, faceN: u }) {
31835
- let d = L(0).toVar(), f = o.toVar();
31841
+ let d = I(0).toVar(), f = o.toVar();
31836
31842
  N(s, () => {
31837
31843
  let e = Wc(c, l);
31838
31844
  f.assign(Y(e[0].xyz.dot(o).add(e[0].w), e[1].xyz.dot(o).add(e[1].w), e[2].xyz.dot(o).add(e[2].w)));
31839
31845
  });
31840
- let p = t.sub(e).toVar(), m = n.sub(e).toVar(), h = f.sub(e).toVar(), g = I(p, p), _ = I(p, m), v = I(m, m), y = g.mul(v).sub(_.mul(_)).toVar();
31846
+ let p = t.sub(e).toVar(), m = n.sub(e).toVar(), h = f.sub(e).toVar(), g = F(p, p), _ = F(p, m), v = F(m, m), y = g.mul(v).sub(_.mul(_)).toVar();
31841
31847
  return N(y.greaterThan(g.mul(v).mul(1e-12)), () => {
31842
- let o = I(h, p), f = I(h, m), b = P(v.mul(o).sub(_.mul(f)).div(y), 0, 1).toVar(), x = P(g.mul(f).sub(_.mul(o)).div(y), 0, L(1).sub(b)).toVar(), S = L(1).sub(b).sub(x).toVar(), C = e.mul(S).add(t.mul(b)).add(n.mul(x)).toVar(), w = r.mul(S).add(i.mul(b)).add(a.mul(x)).toVar(), T = w.toVar();
31848
+ let o = F(h, p), f = F(h, m), b = P(v.mul(o).sub(_.mul(f)).div(y), 0, 1).toVar(), x = P(g.mul(f).sub(_.mul(o)).div(y), 0, I(1).sub(b)).toVar(), S = I(1).sub(b).sub(x).toVar(), C = e.mul(S).add(t.mul(b)).add(n.mul(x)).toVar(), w = r.mul(S).add(i.mul(b)).add(a.mul(x)).toVar(), T = w.toVar();
31843
31849
  N(s, () => {
31844
31850
  let e = Wc(c, l);
31845
31851
  T.assign(qc({
@@ -31849,31 +31855,31 @@ function hb({ V0: e, V1: t, V2: n, N0: r, N1: i, N2: a, hitPoint: o, instanced:
31849
31855
  v: w
31850
31856
  }));
31851
31857
  });
31852
- let E = I(a.sub(r), e.sub(n)), D = I(a.sub(i), t.sub(n)), O = I(i.sub(r), t.sub(e)), k = E.mul(S).mul(S.sub(1)).add(E.add(D).add(O).mul(S).mul(b)).add(D.mul(b).mul(b.sub(1))).toVar();
31853
- N(I(T, u).greaterThan(0), () => {
31854
- let o = z(I(e.sub(C), r).add(z(z(I(t.sub(e), r), I(n.sub(e), r)), 0)), 0), s = z(I(t.sub(C), i).add(z(z(I(e.sub(t), i), I(n.sub(t), i)), 0)), 0), c = z(I(n.sub(C), a).add(z(z(I(e.sub(n), a), I(t.sub(n), a)), 0)), 0);
31858
+ let E = F(a.sub(r), e.sub(n)), D = F(a.sub(i), t.sub(n)), O = F(i.sub(r), t.sub(e)), k = E.mul(S).mul(S.sub(1)).add(E.add(D).add(O).mul(S).mul(b)).add(D.mul(b).mul(b.sub(1))).toVar();
31859
+ N(F(T, u).greaterThan(0), () => {
31860
+ let o = z(F(e.sub(C), r).add(z(z(F(t.sub(e), r), F(n.sub(e), r)), 0)), 0), s = z(F(t.sub(C), i).add(z(z(F(e.sub(t), i), F(n.sub(t), i)), 0)), 0), c = z(F(n.sub(C), a).add(z(z(F(e.sub(n), a), F(t.sub(n), a)), 0)), 0);
31855
31861
  k.assign(z(We(We(o, s), c), k.mul(.5)));
31856
31862
  }).Else(() => {
31857
- let o = z(I(C.sub(e), r).add(z(z(I(e.sub(t), r), I(e.sub(n), r)), 0)), 0), s = z(I(C.sub(t), i).add(z(z(I(t.sub(e), i), I(t.sub(n), i)), 0)), 0), c = z(I(C.sub(n), a).add(z(z(I(n.sub(e), a), I(n.sub(t), a)), 0)), 0);
31863
+ let o = z(F(C.sub(e), r).add(z(z(F(e.sub(t), r), F(e.sub(n), r)), 0)), 0), s = z(F(C.sub(t), i).add(z(z(F(t.sub(e), i), F(t.sub(n), i)), 0)), 0), c = z(F(C.sub(n), a).add(z(z(F(n.sub(e), a), F(n.sub(t), a)), 0)), 0);
31858
31864
  k.assign(We(We(We(o, s), c).negate(), k.mul(.5)));
31859
31865
  }), d.assign(Re(T).mul(k));
31860
31866
  }), d;
31861
31867
  }
31862
31868
  function gb({ hitPoint: e, offsetNormal: t, lift: n, faceN: r, smoothN: i, L: a, cutoff: o }) {
31863
- let s = I(i, a), c = I(r, a), l = z(o, 1e-6), u = H(o.greaterThan(0).and(s.greaterThan(0)), H(s.lessThan(o), P(L(2).sub(c.add(s).div(l)), 0, 1), P(L(1).sub(c.div(l)), 0, 1)), L(0));
31869
+ let s = F(i, a), c = F(r, a), l = z(o, 1e-6), u = H(o.greaterThan(0).and(s.greaterThan(0)), H(s.lessThan(o), P(I(2).sub(c.add(s).div(l)), 0, 1), P(I(1).sub(c.div(l)), 0, 1)), I(0));
31864
31870
  return ic(e.add(n.mul(u)), t);
31865
31871
  }
31866
31872
  //#endregion
31867
31873
  //#region src/TSL/HitFacet.js
31868
31874
  function _b({ triangleBuffer: e, bvhBuffer: t, triIdx: n, instanceLeaf: r, hitPoint: i, smoothNormal: a, viewDir: o, didHit: s, liftEnabled: c }) {
31869
- let l = Y(0, 0, 1).toVar(), u = L(0).toVar();
31875
+ let l = Y(0, 0, 1).toVar(), u = I(0).toVar();
31870
31876
  return N(s, () => {
31871
- let s = Nc(e, n, 0).toVar(), d = Nc(e, n, 1).toVar(), f = Nc(e, n, 2).toVar(), p = _t(s.xyz).toVar(), m = _t(d.xyz).toVar(), h = _t(f.xyz).toVar(), g = F(m.sub(p), h.sub(p)).toVar(), _ = g.toVar(), v = r.greaterThanEqual(R(0));
31877
+ let s = Nc(e, n, 0).toVar(), d = Nc(e, n, 1).toVar(), f = Nc(e, n, 2).toVar(), p = _t(s.xyz).toVar(), m = _t(d.xyz).toVar(), h = _t(f.xyz).toVar(), g = ke(m.sub(p), h.sub(p)).toVar(), _ = g.toVar(), v = r.greaterThanEqual(R(0));
31872
31878
  N(v, () => {
31873
31879
  _.assign(Kc(Wc(t, r), g));
31874
31880
  });
31875
- let y = H(I(_, _).greaterThan(0), V(_), a).toVar();
31876
- l.assign(H(I(y, o).lessThan(0), y.negate(), y)), N(c, () => {
31881
+ let y = H(F(_, _).greaterThan(0), V(_), a).toVar();
31882
+ l.assign(H(F(y, o).lessThan(0), y.negate(), y)), N(c, () => {
31877
31883
  u.assign(hb({
31878
31884
  V0: p,
31879
31885
  V1: m,
@@ -31903,7 +31909,7 @@ function yb(e, t) {
31903
31909
  return G(r.x).bitOr(G(r.y).shiftLeft(G(11))).bitOr(i.shiftLeft(G(22)));
31904
31910
  }
31905
31911
  function bb(e) {
31906
- let t = J(L(e.bitAnd(G(2047))), L(e.shiftRight(G(11)).bitAnd(G(2047)))).div(2047).mul(2).sub(1).toVar(), n = L(1).sub(ve(t.x)).sub(ve(t.y)).toVar();
31912
+ let t = J(I(e.bitAnd(G(2047))), I(e.shiftRight(G(11)).bitAnd(G(2047)))).div(2047).mul(2).sub(1).toVar(), n = I(1).sub(ve(t.x)).sub(ve(t.y)).toVar();
31907
31913
  N(n.lessThan(0), () => {
31908
31914
  t.assign(J(1).sub(ve(t.yx)).mul(vb(t)));
31909
31915
  });
@@ -31953,23 +31959,23 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
31953
31959
  let s = Sb({
31954
31960
  direction: t,
31955
31961
  environmentMatrix: n
31956
- }).toVar(), c = pt(e, s, 0).rgb.toVar(), l = it(s.y.mul(Math.PI)).toVar(), u = I(c, pc).mul(l), d = z(L(0), u.sub(i)).div(r), f = l.greaterThan(0).select(L(1).div(L(2 * Math.PI * Math.PI).mul(l)), L(0)), p = L(a.x).mul(L(a.y)).mul(d).mul(f);
31962
+ }).toVar(), c = pt(e, s, 0).rgb.toVar(), l = it(s.y.mul(Math.PI)).toVar(), u = F(c, pc).mul(l), d = z(I(0), u.sub(i)).div(r), f = l.greaterThan(0).select(I(1).div(I(2 * Math.PI * Math.PI).mul(l)), I(0)), p = I(a.x).mul(I(a.y)).mul(d).mul(f);
31957
31963
  o.assign(X(c, p));
31958
31964
  }), o;
31959
31965
  }), Tb = M(([e, t, n, r, i, a, o, s, c]) => {
31960
- let l = R(o.x).toVar(), u = o.y, d = P(s.x.mul(u.sub(1)), 0, u.sub(1)), f = R(Ne(d)), p = We(f.add(1), R(u).sub(1)), m = Pe(d), h = B(t.load(Ie(l, f)).x, t.load(Ie(l, p)).x, m).toVar(), g = o.x, _ = o.y, v = P(s.y.mul(g.sub(1)), 0, g.sub(1)), y = P(h.mul(_.sub(1)), 0, _.sub(1)), b = R(Ne(v)), x = R(Ne(y)), S = We(b.add(1), R(g).sub(1)), C = We(x.add(1), R(_).sub(1)), w = Pe(v), T = Pe(y), E = t.load(Ie(b, x)).x, D = t.load(Ie(S, x)).x, O = t.load(Ie(b, C)).x, k = t.load(Ie(S, C)).x, A = J(B(B(E, D, w), B(O, k, w), T).toVar(), h).toVar(), ee = Cb({
31966
+ let l = R(o.x).toVar(), u = o.y, d = P(s.x.mul(u.sub(1)), 0, u.sub(1)), f = R(L(d)), p = We(f.add(1), R(u).sub(1)), m = Pe(d), h = B(t.load(Ie(l, f)).x, t.load(Ie(l, p)).x, m).toVar(), g = o.x, _ = o.y, v = P(s.y.mul(g.sub(1)), 0, g.sub(1)), y = P(h.mul(_.sub(1)), 0, _.sub(1)), b = R(L(v)), x = R(L(y)), S = We(b.add(1), R(g).sub(1)), C = We(x.add(1), R(_).sub(1)), w = Pe(v), T = Pe(y), E = t.load(Ie(b, x)).x, D = t.load(Ie(S, x)).x, O = t.load(Ie(b, C)).x, k = t.load(Ie(S, C)).x, A = J(B(B(E, D, w), B(O, k, w), T).toVar(), h).toVar(), ee = Cb({
31961
31967
  uv: A,
31962
31968
  environmentMatrix: n
31963
31969
  }).toVar(), te = pt(e, A, 0).rgb.mul(r).toVar();
31964
31970
  c.assign(te);
31965
- let j = it(A.y.mul(Math.PI)).toVar(), ne = I(te.div(r), pc).mul(j), re = z(L(0), ne.sub(a)).div(i), ie = j.greaterThan(0).select(L(1).div(L(2 * Math.PI * Math.PI).mul(j)), L(0));
31966
- return X(ee, L(o.x).mul(L(o.y)).mul(re).mul(ie));
31971
+ let j = it(A.y.mul(Math.PI)).toVar(), ne = F(te.div(r), pc).mul(j), re = z(I(0), ne.sub(a)).div(i), ie = j.greaterThan(0).select(I(1).div(I(2 * Math.PI * Math.PI).mul(j)), I(0));
31972
+ return X(ee, I(o.x).mul(I(o.y)).mul(re).mul(ie));
31967
31973
  }), Eb = /* @__PURE__ */ wt("\n fn sampleEnvironment(\n tex: texture_2d<f32>,\n samp: sampler,\n direction: vec3f,\n environmentMatrix: mat4x4f,\n environmentIntensity: f32,\n enableEnvironmentLight: f32\n ) -> vec4f {\n if ( enableEnvironmentLight < 0.5 ) { return vec4f( 0.0 ); }\n let uv = equirectDirectionToUv( direction, environmentMatrix );\n let texSample = textureSampleLevel( tex, samp, uv, 0.0 );\n return texSample * environmentIntensity;\n }\n", [Sb]), Db = M(([e, t, n, r]) => {
31968
31974
  let i = t.toConst(), a = e.toVar();
31969
31975
  a.y.subAssign(r);
31970
31976
  let o = n.mul(n).toConst(), s = a.dot(i).toConst(), c = a.dot(a).sub(o).toConst(), l = s.mul(s).sub(c).toConst(), u = t.toVar();
31971
31977
  return N(l.greaterThanEqual(0), () => {
31972
- let t = U(l).sub(s).toVar(), r = L(1e6).toVar(), c = i.y.toConst();
31978
+ let t = U(l).sub(s).toVar(), r = I(1e6).toVar(), c = i.y.toConst();
31973
31979
  N(c.lessThanEqual(0), () => {
31974
31980
  let t = e.y.negate().div(c).toConst(), n = e.add(i.mul(t)).toConst();
31975
31981
  N(n.dot(n).lessThan(o), () => {
@@ -31988,7 +31994,7 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
31988
31994
  }), kb = M(([e, t]) => {
31989
31995
  let n = Y(0).toVar();
31990
31996
  return N(e.roughness.greaterThan(.98).and(e.metalness.lessThan(.02)).and(e.transmission.equal(0)).and(e.clearcoat.equal(0)).and(e.sheen.equal(0)).and(e.iridescence.equal(0)), () => {
31991
- n.assign(e.color.rgb.mul(L(1).sub(e.metalness)).mul(sc));
31997
+ n.assign(e.color.rgb.mul(I(1).sub(e.metalness)).mul(sc));
31992
31998
  }).Else(() => {
31993
31999
  let r = $s.wrap(pm(e, e.color.rgb)).toVar(), i = r.F0.toVar(), a = Y(0).toVar(), o = e.color.rgb.toVar();
31994
32000
  N(e.dispersion.greaterThan(0).and(e.transmission.greaterThan(.5)), () => {
@@ -31999,7 +32005,7 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
31999
32005
  });
32000
32006
  }), N(e.iridescence.greaterThan(0), () => {
32001
32007
  let n = e.iridescenceThicknessRange.y;
32002
- a.assign(xm(L(1), e.iridescenceIOR, t.VoH, n, i)), i.assign(B(i, a, e.iridescence));
32008
+ a.assign(xm(I(1), e.iridescenceIOR, t.VoH, n, i)), i.assign(B(i, a, e.iridescence));
32003
32009
  });
32004
32010
  let s = B(B(B(r.f0, Y(r.f90), Xp(t.VoH, r.eta)), Wp(t.VoH, r.F0m), e.metalness), Wp(t.VoH, a), e.iridescence).toVar(), c = Y(0).toVar();
32005
32011
  N(e.anisotropy.greaterThan(0), () => {
@@ -32009,41 +32015,41 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32009
32015
  let n = Qp(t.NoH, e.roughness), r = rm(t.NoV, t.NoL, e.roughness);
32010
32016
  c.assign(n.mul(r).mul(s));
32011
32017
  });
32012
- let l = Qs.wrap(fm(r.f0, r.f90, r.eta, r.F0m, e.metalness, a, e.iridescence, i, t.NoV, e.roughness)), u = c.mul(l.compensation), d = Y(1).sub(l.E_total).mul(L(1).sub(e.metalness)).mul(L(1).sub(e.transmission)).mul(o).mul(sc).add(u).toVar();
32018
+ let l = Qs.wrap(fm(r.f0, r.f90, r.eta, r.F0m, e.metalness, a, e.iridescence, i, t.NoV, e.roughness)), u = c.mul(l.compensation), d = Y(1).sub(l.E_total).mul(I(1).sub(e.metalness)).mul(I(1).sub(e.transmission)).mul(o).mul(sc).add(u).toVar();
32013
32019
  N(e.sheen.greaterThan(0), () => {
32014
32020
  let r = $p(t.NoH, e.sheenRoughness), i = tm(t.NoV, t.NoL), a = e.sheenColor.mul(e.sheen).mul(r).mul(i), o = dm(t.NoV, e.sheenRoughness), s = P(e.sheenColor.mul(e.sheen).mul(o), Y(0), Y(1)), c = Y(1).sub(s);
32015
32021
  n.assign(d.mul(c).add(a));
32016
32022
  }).Else(() => {
32017
32023
  n.assign(d);
32018
32024
  }), N(e.clearcoat.greaterThan(0), () => {
32019
- let r = z(e.clearcoatRoughness, dc), i = Y(.04), a = Qs.wrap(fm(i, L(1), L(1.5), Y(0), L(0), Y(0), L(0), i, t.NoV, r)), o = Qp(t.NoH, r), s = rm(t.NoV, t.NoL, r), c = Yp(t.VoH, L(1.5)), l = Y(o.mul(s).mul(c)).mul(a.compensation), u = Y(1).sub(a.E_total.mul(e.clearcoat));
32025
+ let r = z(e.clearcoatRoughness, dc), i = Y(.04), a = Qs.wrap(fm(i, I(1), I(1.5), Y(0), I(0), Y(0), I(0), i, t.NoV, r)), o = Qp(t.NoH, r), s = rm(t.NoV, t.NoL, r), c = Yp(t.VoH, I(1.5)), l = Y(o.mul(s).mul(c)).mul(a.compensation), u = Y(1).sub(a.E_total.mul(e.clearcoat));
32020
32026
  n.assign(n.mul(u).add(l.mul(e.clearcoat)));
32021
32027
  });
32022
32028
  }), n;
32023
32029
  }), Ab = M(([e, t, n, r]) => kb(r, Zs.wrap(Dc(n, e, t, r)))), jb = Y(...Eu), Mb = Y(...Eu.map((e) => (e + 2) / 2)), Nb = /* @__PURE__ */ M(([e, t, n, r]) => {
32024
32030
  let i = Y(0).toVar();
32025
- return N(I(e, t).greaterThanEqual(r.x).and(e.y.greaterThanEqual(r.w.negate())), () => {
32026
- let a = F(e, t), o = U(z(L(1).sub(I(a, a).mul(r.z)), 1e-8));
32031
+ return N(F(e, t).greaterThanEqual(r.x).and(e.y.greaterThanEqual(r.w.negate())), () => {
32032
+ let a = ke(e, t), o = U(z(I(1).sub(F(a, a).mul(r.z)), 1e-8));
32027
32033
  i.assign(n.mul(Xe(Y(o), jb)).mul(Mb));
32028
32034
  }), i;
32029
32035
  }), Pb = /* @__PURE__ */ M(([e, t, n]) => {
32030
- let r = n.x.mul(t.y.mul(1 / (2 * Math.PI))), i = L(1).sub(r), a = U(z(r.mul(L(2).sub(r)), 0)), o = n.y.mul(2 * Math.PI), s = e, c = V(F(H(ve(s.x).greaterThan(.9), Y(0, 1, 0), Y(1, 0, 0)), s)), l = F(s, c);
32036
+ let r = n.x.mul(t.y.mul(1 / (2 * Math.PI))), i = I(1).sub(r), a = U(z(r.mul(I(2).sub(r)), 0)), o = n.y.mul(2 * Math.PI), s = e, c = V(ke(H(ve(s.x).greaterThan(.9), Y(0, 1, 0), Y(1, 0, 0)), s)), l = ke(s, c);
32031
32037
  return V(s.mul(i).add(c.mul(Oe(o)).add(l.mul(it(o))).mul(a)));
32032
32038
  }), Fb = 2 * oc, Ib = M(([e, t]) => {
32033
- let n = L(1).toVar();
32034
- return N(t.lessThan(L(oc).sub(.001)).and(e.greaterThan(0)), () => {
32035
- let r = t.mul(.5).toVar(), i = ft(r).toVar(), a = U(z(L(1).sub(e.mul(e)), 0)).div(z(e, 1e-4)), o = H(r.greaterThan(.05), L(1).div(z(i.sub(r), 1e-6)), L(3).div(z(r.mul(r).mul(r), 1e-9)));
32039
+ let n = I(1).toVar();
32040
+ return N(t.lessThan(I(oc).sub(.001)).and(e.greaterThan(0)), () => {
32041
+ let r = t.mul(.5).toVar(), i = ft(r).toVar(), a = U(z(I(1).sub(e.mul(e)), 0)).div(z(e, 1e-4)), o = H(r.greaterThan(.05), I(1).div(z(i.sub(r), 1e-6)), I(3).div(z(r.mul(r).mul(r), 1e-9)));
32036
32042
  n.assign(z(i.sub(a).mul(o), 0));
32037
32043
  }), n;
32038
32044
  }), Lb = M(([e]) => {
32039
- let t = H(e.normalize.greaterThan(.5), L(1).div(z(e.area, 1e-10)), L(1));
32045
+ let t = H(e.normalize.greaterThan(.5), I(1).div(z(e.area, 1e-10)), I(1));
32040
32046
  return e.color.mul(e.intensity).mul(sc).mul(t);
32041
32047
  }), Rb = M(([e, t, n, r]) => {
32042
- let i = De(!1).toVar(), a = Y(0, 1, 0).toVar(), o = Y(0).toVar(), s = L(0).toVar(), c = L(0).toVar(), l = R(2).toVar();
32048
+ let i = De(!1).toVar(), a = Y(0, 1, 0).toVar(), o = Y(0).toVar(), s = I(0).toVar(), c = I(0).toVar(), l = R(2).toVar();
32043
32049
  return N(e.area.greaterThan(0), () => {
32044
- let u = Y(0).toVar(), d = L(-1).toVar();
32050
+ let u = Y(0).toVar(), d = I(-1).toVar();
32045
32051
  N(e.shape.greaterThan(.5), () => {
32046
- let t = U(n.x).toVar(), r = L(Fb).mul(n.y).toVar();
32052
+ let t = U(n.x).toVar(), r = I(Fb).mul(n.y).toVar();
32047
32053
  u.assign(e.position.add(e.u.mul(t.mul(Oe(r)))).add(e.v.mul(t.mul(it(r)))));
32048
32054
  }).Else(() => {
32049
32055
  let r = Qh(t, e.position.sub(e.u).sub(e.v), e.u.mul(2), e.v.mul(2), n).toVar();
@@ -32053,9 +32059,9 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32053
32059
  u.assign(e.position.add(e.u.mul(n.x.mul(2).sub(1))).add(e.v.mul(n.y.mul(2).sub(1))));
32054
32060
  });
32055
32061
  });
32056
- let f = u.sub(t).toVar(), p = I(f, f).toVar();
32062
+ let f = u.sub(t).toVar(), p = F(f, f).toVar();
32057
32063
  N(p.greaterThanEqual(1e-10), () => {
32058
- let t = U(p).toVar(), n = f.div(t).toVar(), u = I(n.negate(), e.normal).toVar();
32064
+ let t = U(p).toVar(), n = f.div(t).toVar(), u = F(n.negate(), e.normal).toVar();
32059
32065
  l.assign(R(1)), s.assign(t), a.assign(n), o.assign(Lb(e).mul(Ib(u, e.spread)));
32060
32066
  let m = p.div(z(e.area.mul(z(u, .001)), 1e-10)), h = H(d.greaterThan(0), d, m);
32061
32067
  c.assign(h.mul(r)), i.assign(u.greaterThan(0));
@@ -32067,12 +32073,12 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32067
32073
  distance: s,
32068
32074
  pdf: c,
32069
32075
  lightType: l,
32070
- selectionTotalWeight: L(0)
32076
+ selectionTotalWeight: I(0)
32071
32077
  });
32072
32078
  }), zb = M(([e, t, n]) => {
32073
- let r = De(!1).toVar(), i = Y(0, 1, 0).toVar(), a = Y(0).toVar(), o = L(0).toVar(), s = L(0).toVar(), c = R(3).toVar(), l = e.position.sub(t).toVar(), u = I(l, l).toVar();
32079
+ let r = De(!1).toVar(), i = Y(0, 1, 0).toVar(), a = Y(0).toVar(), o = I(0).toVar(), s = I(0).toVar(), c = R(3).toVar(), l = e.position.sub(t).toVar(), u = F(l, l).toVar();
32074
32080
  return N(u.greaterThanEqual(1e-20), () => {
32075
- let t = U(u).toVar(), c = l.div(t).toVar(), d = I(c.negate(), e.direction).toVar(), f = Oe(e.angle).toVar();
32081
+ let t = U(u).toVar(), c = l.div(t).toVar(), d = F(c.negate(), e.direction).toVar(), f = Oe(e.angle).toVar();
32076
32082
  i.assign(c), o.assign(t), s.assign(n), r.assign(d.greaterThanEqual(f)), N(r, () => {
32077
32083
  let n = Vh({
32078
32084
  coneCosine: f,
@@ -32092,10 +32098,10 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32092
32098
  distance: o,
32093
32099
  pdf: s,
32094
32100
  lightType: c,
32095
- selectionTotalWeight: L(0)
32101
+ selectionTotalWeight: I(0)
32096
32102
  });
32097
32103
  }), Bb = M(([e, t, n]) => {
32098
- let r = De(!1).toVar(), i = Y(0, 1, 0).toVar(), a = Y(0).toVar(), o = L(0).toVar(), s = L(0).toVar(), c = R(2).toVar(), l = e.position.sub(t).toVar(), u = I(l, l).toVar();
32104
+ let r = De(!1).toVar(), i = Y(0, 1, 0).toVar(), a = Y(0).toVar(), o = I(0).toVar(), s = I(0).toVar(), c = R(2).toVar(), l = e.position.sub(t).toVar(), u = F(l, l).toVar();
32099
32105
  return N(u.greaterThanEqual(1e-20), () => {
32100
32106
  let t = U(u).toVar(), d = l.div(t), f = Bh({
32101
32107
  lightDistance: t,
@@ -32110,31 +32116,31 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32110
32116
  distance: o,
32111
32117
  pdf: s,
32112
32118
  lightType: c,
32113
- selectionTotalWeight: L(0)
32119
+ selectionTotalWeight: I(0)
32114
32120
  });
32115
32121
  }), Vb = M(([e, t, n, r, i]) => {
32116
- let a = De(!1).toVar(), o = Y(0, 1, 0).toVar(), s = Y(0).toVar(), c = L(0).toVar();
32122
+ let a = De(!1).toVar(), o = Y(0, 1, 0).toVar(), s = Y(0).toVar(), c = I(0).toVar();
32117
32123
  return N(e.intensity.greaterThan(0), () => {
32118
32124
  let l = V(e.direction).toVar(), u = e.color.mul(e.intensity).mul(Gh(e, t)).toVar();
32119
32125
  o.assign(l), c.assign(n), N(e.angle.greaterThan(0), () => {
32120
- let t = Oe(e.angle.mul(.5)).toVar(), a = B(t, L(1), r).toVar(), s = U(z(L(0), L(1).sub(a.mul(a)))).toVar(), d = L(Fb).mul(i).toVar(), f = V(F(H(ve(l.x).greaterThan(.9), Y(0, 1, 0), Y(1, 0, 0)), l)).toVar(), p = F(l, f).toVar();
32126
+ let t = Oe(e.angle.mul(.5)).toVar(), a = B(t, I(1), r).toVar(), s = U(z(I(0), I(1).sub(a.mul(a)))).toVar(), d = I(Fb).mul(i).toVar(), f = V(ke(H(ve(l.x).greaterThan(.9), Y(0, 1, 0), Y(1, 0, 0)), l)).toVar(), p = ke(l, f).toVar();
32121
32127
  o.assign(V(l.mul(a).add(f.mul(Oe(d)).add(p.mul(it(d))).mul(s))));
32122
- let m = L(Fb).mul(z(L(1).sub(t), 1e-10)).toVar();
32128
+ let m = I(Fb).mul(z(I(1).sub(t), 1e-10)).toVar();
32123
32129
  u.assign(u.div(m)), c.assign(n.div(m));
32124
32130
  }), s.assign(u), a.assign(De(!0));
32125
32131
  }), Nh({
32126
32132
  valid: a,
32127
32133
  direction: o,
32128
32134
  emission: s,
32129
- distance: L(1e6),
32135
+ distance: I(1e6),
32130
32136
  pdf: c,
32131
32137
  lightType: R(0),
32132
- selectionTotalWeight: L(0)
32138
+ selectionTotalWeight: I(0)
32133
32139
  });
32134
32140
  }), Hb = M(([e, t, n, r, i, a, o, s, c, l, u, d, f, p, m, h, g, _]) => {
32135
- let v = De(!1).toVar(), y = Y(0, 1, 0).toVar(), b = Y(0).toVar(), x = L(0).toVar(), S = L(0).toVar(), C = R(2).toVar(), w = L(0).toVar(), T = d.add(p).add(h).add(_).toVar();
32141
+ let v = De(!1).toVar(), y = Y(0, 1, 0).toVar(), b = Y(0).toVar(), x = I(0).toVar(), S = I(0).toVar(), C = R(2).toVar(), w = I(0).toVar(), T = d.add(p).add(h).add(_).toVar();
32136
32142
  return N(T.greaterThan(R(0)), () => {
32137
- let E = R(Qr + 64).toVar(), D = E.add(d).toVar(), O = D.add(p).toVar(), k = O.add(h).toVar(), A = R(-1).toVar(), ee = R(-1).toVar(), te = L(0).toVar();
32143
+ let E = R(Qr + 64).toVar(), D = E.add(d).toVar(), O = D.add(p).toVar(), k = O.add(h).toVar(), A = R(-1).toVar(), ee = R(-1).toVar(), te = I(0).toVar();
32138
32144
  N(d.greaterThan(R(0)), () => {
32139
32145
  he({
32140
32146
  start: R(0),
@@ -32154,7 +32160,7 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32154
32160
  type: "int",
32155
32161
  condition: "<"
32156
32162
  }, ({ i: r }) => {
32157
- let i = Ah.wrap(Ih(f, r)), l = H(i.intensity.greaterThan(0), Eh(i, e, t, n), L(0)).toVar();
32163
+ let i = Ah.wrap(Ih(f, r)), l = H(i.intensity.greaterThan(0), Eh(i, e, t, n), I(0)).toVar();
32158
32164
  w.addAssign(l), N(l.greaterThan(0).and(li(o, R(0), D.add(r), a, s, c).mul(w).lessThan(l)), () => {
32159
32165
  A.assign(1), ee.assign(r), te.assign(l);
32160
32166
  });
@@ -32184,7 +32190,7 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32184
32190
  });
32185
32191
  });
32186
32192
  }), N(w.lessThanEqual(0), () => {
32187
- let t = R(r.x.mul(L(T))).toVar(), n = L(1).div(z(L(T), 1)).toVar();
32193
+ let t = R(r.x.mul(I(T))).toVar(), n = I(1).div(z(I(T), 1)).toVar();
32188
32194
  S.assign(n);
32189
32195
  let i = De(!1).toVar(), w = R(0).toVar();
32190
32196
  N(d.greaterThan(R(0)), () => {
@@ -32254,18 +32260,18 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32254
32260
  smoothN: n,
32255
32261
  L: t,
32256
32262
  cutoff: ie
32257
- }), pe = M(([e, t, n]) => wh(e, t, n, mb, S, C, w)), me = h.add(_).add(y).add(x).toVar(), ge = me.greaterThan(R(0)).toVar(), _e = L(0).toVar();
32263
+ }), pe = M(([e, t, n]) => wh(e, t, n, mb, S, C, w)), me = h.add(_).add(y).add(x).toVar(), ge = me.greaterThan(R(0)).toVar(), _e = I(0).toVar();
32258
32264
  return N(ge, () => {
32259
32265
  let a = ci(u, R(0), p.add(R(2)), l, d, f).toVar(), o = Nh.wrap(Hb(e, t, r, a, c, l, u, d, f, p, m, h, g, _, v, y, b, x));
32260
32266
  _e.assign(o.selectionTotalWeight), N(o.valid.and(o.pdf.greaterThan(0)), () => {
32261
- let a = z(L(0), I(t, o.direction)).toVar();
32267
+ let a = z(I(0), F(t, o.direction)).toVar();
32262
32268
  N(a.greaterThan(0).and(zh({
32263
32269
  direction: o.direction,
32264
32270
  surfaceNormal: n
32265
32271
  })), () => {
32266
32272
  let n = fe(o.direction).toVar(), s = e.add(o.direction.mul(o.distance)).sub(n).toVar(), c = Re(s).toVar(), l = pe(n, s.div(c), c.mul(ac));
32267
32273
  N(l.greaterThan(0).or(j), () => {
32268
- let e = Zs.wrap(Dc(t, i, o.direction, r)), n = kb(r, e), s = Ub(r, e).toVar(), c = L(1).toVar();
32274
+ let e = Zs.wrap(Dc(t, i, o.direction, r)), n = kb(r, e), s = Ub(r, e).toVar(), c = I(1).toVar();
32269
32275
  N(s.greaterThan(0).and(o.lightType.equal(R(1))), () => {
32270
32276
  c.assign(Cc({
32271
32277
  pdf1: o.pdf,
@@ -32280,12 +32286,12 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32280
32286
  });
32281
32287
  });
32282
32288
  }), N(o.greaterThan(0).and(_.greaterThan(R(0))), () => {
32283
- let i = z(L(0), I(t, a)).toVar();
32289
+ let i = z(I(0), F(t, a)).toVar();
32284
32290
  N(i.greaterThan(0).and(zh({
32285
32291
  direction: a,
32286
32292
  surfaceNormal: n
32287
32293
  })), () => {
32288
- let n = L(1e30).toVar(), c = R(-1).toVar();
32294
+ let n = I(1e30).toVar(), c = R(-1).toVar();
32289
32295
  he({
32290
32296
  start: R(0),
32291
32297
  end: _,
@@ -32302,9 +32308,9 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32302
32308
  }), N(c.greaterThanEqual(R(0)), () => {
32303
32309
  let l = Ah.wrap(Ih(g, c)), u = e.add(a.mul(n)).sub(de).toVar(), d = Re(u).toVar(), f = pe(de, u.div(d), d.mul(ac));
32304
32310
  N(f.greaterThan(0).or(j), () => {
32305
- let c = z(L(0), I(a, l.normal).negate()).toVar();
32311
+ let c = z(I(0), F(a, l.normal).negate()).toVar();
32306
32312
  N(c.greaterThan(0), () => {
32307
- let a = Zh(e, l.position.sub(l.u).sub(l.v), l.u.mul(2), l.v.mul(2)).toVar(), u = n.mul(n).div(z(l.area.mul(c), lc)), d = H(l.shape.lessThan(.5).and(a.greaterThan(1e-5)), L(1).div(z(a, 1e-10)), u).toVar(), p = Eh(l, e, t, r), m = H(_e.greaterThan(0), p.div(z(_e, 1e-10)), L(1).div(z(L(me), 1))), h = Cc({
32313
+ let a = Zh(e, l.position.sub(l.u).sub(l.v), l.u.mul(2), l.v.mul(2)).toVar(), u = n.mul(n).div(z(l.area.mul(c), lc)), d = H(l.shape.lessThan(.5).and(a.greaterThan(1e-5)), I(1).div(z(a, 1e-10)), u).toVar(), p = Eh(l, e, t, r), m = H(_e.greaterThan(0), p.div(z(_e, 1e-10)), I(1).div(z(I(me), 1))), h = Cc({
32308
32314
  pdf1: o,
32309
32315
  pdf2: d.mul(m).toVar()
32310
32316
  }).toVar(), g = Lb(l).mul(Ib(c, l.spread)).mul(s).mul(i).mul(h).div(z(o, 1e-10));
@@ -32324,20 +32330,20 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32324
32330
  condition: "<",
32325
32331
  name: "envPass"
32326
32332
  }, ({ envPass: e }) => {
32327
- let a = e.equal(R(1)).toVar(), o = Y(0).toVar(), s = Y(0, 1, 0).toVar(), c = L(0).toVar();
32333
+ let a = e.equal(R(1)).toVar(), o = Y(0).toVar(), s = Y(0, 1, 0).toVar(), c = I(0).toVar();
32328
32334
  N(a, () => {
32329
32335
  let e = ci(u, R(0), p.add(R(9)), l, d, f);
32330
- s.assign(Pb(oe, ce, e)), o.assign(Nb(s, oe, se, ce).mul(E)), c.assign(H(o.x.add(o.y).add(o.z).greaterThan(0), L(1).div(ce.y), L(0)));
32336
+ s.assign(Pb(oe, ce, e)), o.assign(Nb(s, oe, se, ce).mul(E)), c.assign(H(o.x.add(o.y).add(o.z).greaterThan(0), I(1).div(ce.y), I(0)));
32331
32337
  }).Else(() => {
32332
32338
  let e = ci(u, R(0), p.add(R(1)), l, d, f).toVar(), t = Y(0).toVar(), n = Tb(T, O, D, E, k, A, ee, e, t).toVar();
32333
32339
  s.assign(n.xyz), o.assign(t), c.assign(n.w);
32334
32340
  }), N(c.greaterThan(0), () => {
32335
- let e = z(L(0), I(t, s)).toVar();
32341
+ let e = z(I(0), F(t, s)).toVar();
32336
32342
  N(e.greaterThan(0).and(zh({
32337
32343
  direction: s,
32338
32344
  surfaceNormal: n
32339
32345
  })), () => {
32340
- let n = pe(fe(s), s, L(0x56bc75e2d63100000));
32346
+ let n = pe(fe(s), s, I(0x56bc75e2d63100000));
32341
32347
  N(n.greaterThan(0).or(j), () => {
32342
32348
  let l = Zs.wrap(Dc(t, i, s, r)), u = kb(r, l), d = Ub(r, l).toVar(), f = H(d.greaterThan(0), H(a, Cc({
32343
32349
  pdf1: c,
@@ -32345,7 +32351,7 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32345
32351
  }), wc({
32346
32352
  pdf1: c,
32347
32353
  pdf2: d
32348
- })), L(1)).toVar(), p = o.mul(u).mul(e).mul(f).div(z(c, 1e-10));
32354
+ })), I(1)).toVar(), p = o.mul(u).mul(e).mul(f).div(z(c, 1e-10));
32349
32355
  le.addAssign(p.mul(n)), N(j, () => {
32350
32356
  ue.addAssign(p);
32351
32357
  });
@@ -32358,12 +32364,12 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32358
32364
  unoccluded: ue
32359
32365
  });
32360
32366
  }), Kb = M(([e, t, n, r, i, a, o, s, c, l, u, d]) => {
32361
- let f = Y(0).toVar(), p = Y(0).toVar(), m = L(0).toVar();
32367
+ let f = Y(0).toVar(), p = Y(0).toVar(), m = I(0).toVar();
32362
32368
  return N(r.greaterThan(0).not(), () => {
32363
32369
  let n = ci(c, R(0), d.add(R(8)), s, l, u);
32364
32370
  f.assign(Om(e, n)), p.assign(t.color.xyz), m.assign(1);
32365
32371
  }).Else(() => {
32366
- let s = z(I(e, n), 0).toVar(), c = z(r, fc).toVar();
32372
+ let s = z(F(e, n), 0).toVar(), c = z(r, fc).toVar();
32367
32373
  f.assign(n), m.assign(c), p.assign(H(a, t.color.xyz.mul(o), i.mul(s).div(c)));
32368
32374
  }), Ph({
32369
32375
  direction: f,
@@ -32371,15 +32377,15 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32371
32377
  combinedPdf: m
32372
32378
  });
32373
32379
  }), qb = M(([e, t, n, r, i, a, o, s, c, l, u, d, f, p, m]) => {
32374
- let h = Y(0).toVar(), g = Y(0).toVar(), _ = L(0).toVar(), v = De(!1).toVar(), y = Y(1).toVar(), b = f.toVar();
32380
+ let h = Y(0).toVar(), g = Y(0).toVar(), _ = I(0).toVar(), v = De(!1).toVar(), y = Y(1).toVar(), b = f.toVar();
32375
32381
  N(d.not(), () => {
32376
32382
  N(p, () => {
32377
32383
  b.assign(Sm(n, u, m));
32378
32384
  }).Else(() => {
32379
32385
  let e = rc({
32380
- invRoughness: L(1).sub(n.roughness),
32381
- metalFactor: L(.5).add(L(.5).mul(n.metalness)),
32382
- iorFactor: We(L(2).div(n.ior), 1),
32386
+ invRoughness: I(1).sub(n.roughness),
32387
+ metalFactor: I(.5).add(I(.5).mul(n.metalness)),
32388
+ iorFactor: We(I(2).div(n.ior), 1),
32383
32389
  maxSheenColor: z(n.sheenColor.x, z(n.sheenColor.y, n.sheenColor.z))
32384
32390
  }).toVar();
32385
32391
  b.assign(Sm(n, u, e));
@@ -32393,7 +32399,7 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32393
32399
  }));
32394
32400
  }).ElseIf(x.lessThan(w), () => {
32395
32401
  N(n.anisotropy.greaterThan(0), () => {
32396
- let i = Xs.wrap(Ec(t, n.anisotropyRotation)), a = i.Ta, o = i.Ba, s = Y(I(e, a), I(e, o), I(e, t)), c = hm(n.roughness, n.anisotropy), l = Am({
32402
+ let i = Xs.wrap(Ec(t, n.anisotropyRotation)), a = i.Ta, o = i.Ba, s = Y(F(e, a), F(e, o), F(e, t)), c = hm(n.roughness, n.anisotropy), l = Am({
32397
32403
  V: s,
32398
32404
  alphaX: c.x,
32399
32405
  alphaY: c.y,
@@ -32422,7 +32428,7 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32422
32428
  Xi: r
32423
32429
  }))), h.assign(Ze(e.negate(), S));
32424
32430
  }).Else(() => {
32425
- let i = I(e, t).greaterThan(0), u = Vm.wrap(qm(e, t, n.ior, n.roughness, i, n.dispersion, r, a, L(0), o, s, c, l));
32431
+ let i = F(e, t).greaterThan(0), u = Vm.wrap(qm(e, t, n.ior, n.roughness, i, n.dispersion, r, a, I(0), o, s, c, l));
32426
32432
  h.assign(u.direction), _.assign(z(b.transmission.mul(u.pdf), fc)), y.assign(u.colorWeight), v.assign(!0);
32427
32433
  }), N(v.not(), () => {
32428
32434
  let r = Zs.wrap(Dc(t, e, h, n));
@@ -32435,12 +32441,12 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32435
32441
  colorWeight: y
32436
32442
  });
32437
32443
  }), Jb = /* @__PURE__ */ wt("\n fn regularizePathContribution( contribution: vec3f, pathLength: f32, fireflyThreshold: f32, frame: i32 ) -> vec3f {\n // Indirect-only clamp: pathLength 0 is a direct/primary contribution (bounce-0 hit, direct NEE,\n // or a directly-viewed backdrop/sun) — that is signal, not a firefly, and clamping it darkens\n // legitimately bright pixels. Fireflies arise on indirect bounces, so only suppress pathLength>=1.\n if ( pathLength < 0.5 ) {\n return contribution;\n }\n let threshold = calculateFireflyThreshold( fireflyThreshold, i32( pathLength ), frame );\n return applySoftSuppressionRGB( contribution, threshold, 0.5f );\n }\n", [Oc, Ac]), Yb = /* @__PURE__ */ wt("\n fn computeNDCDepth( worldPos: vec3f, cameraProjectionMatrix: mat4x4f, cameraViewMatrix: mat4x4f ) -> f32 {\n let clipPos = cameraProjectionMatrix * cameraViewMatrix * vec4f( worldPos, 1.0f );\n let ndcDepth = clipPos.z / clipPos.w * 0.5f + 0.5f;\n return clamp( ndcDepth, 0.0f, 1.0f );\n }\n"), Xb = M(([e, t, n, r, i, a, o, s, c, l]) => {
32438
- let u = L(1).toVar();
32444
+ let u = I(1).toVar();
32439
32445
  return N(e.greaterThanEqual(R(3)), () => {
32440
32446
  let d = z(z(z(t.x, t.y), t.z), 0).toVar();
32441
32447
  N(d.lessThan(8e-4).and(e.greaterThan(R(4))), () => {
32442
32448
  let e = z(d.mul(125), .01), t = li(a, R(0), c.add(R(3)), i, o, s);
32443
- u.assign(H(t.lessThan(e), e, L(0)));
32449
+ u.assign(H(t.lessThan(e), e, I(0)));
32444
32450
  }).Else(() => {
32445
32451
  let t = n.complexityScore.toVar();
32446
32452
  N(n.isMetallic.and(n.isSmooth).and(e.lessThan(R(7))), () => {
@@ -32466,22 +32472,22 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32466
32472
  }), N(n.isEmissive, () => {
32467
32473
  p.addAssign(.1);
32468
32474
  }), p.assign(P(p, 0, 1));
32469
- let m = L(.5).toVar();
32475
+ let m = I(.5).toVar();
32470
32476
  N(l.and(d.greaterThan(.01)), () => {
32471
32477
  let e = P(r.y, 0, 1);
32472
- m.assign(B(L(.3), L(.8), e.mul(e)));
32478
+ m.assign(B(I(.3), I(.8), e.mul(e)));
32473
32479
  });
32474
- let h = at(L(.001), L(.1), d), g = d.mul(B(p.mul(.7), m, .3)).mul(h).toVar(), _ = B(P(t.mul(.4).add(d.mul(.6)).mul(1.2), .15, .95), P(d.mul(.4).add(t.mul(.1)), .03, .6), P(L(e.sub(f)).div(10), 0, 1)).toVar();
32480
+ let h = at(I(.001), I(.1), d), g = d.mul(B(p.mul(.7), m, .3)).mul(h).toVar(), _ = B(P(t.mul(.4).add(d.mul(.6)).mul(1.2), .15, .95), P(d.mul(.4).add(t.mul(.1)), .03, .6), P(I(e.sub(f)).div(10), 0, 1)).toVar();
32475
32481
  _.assign(B(_, z(_, g), .4)), N(t.greaterThan(.5), () => {
32476
32482
  let e = t.sub(.5).mul(.6);
32477
- _.assign(B(_, L(1), e));
32483
+ _.assign(B(_, I(1), e));
32478
32484
  });
32479
- let v = L(.12).add(t.mul(.08)), y = Ae(L(e.sub(f)).negate().mul(v));
32485
+ let v = I(.12).add(t.mul(.08)), y = je(I(e.sub(f)).negate().mul(v));
32480
32486
  _.mulAssign(y);
32481
- let b = H(n.isEmissive, L(.04), L(.02));
32487
+ let b = H(n.isEmissive, I(.04), I(.02));
32482
32488
  _.assign(P(_, b, 1));
32483
32489
  let x = li(a, R(0), c.add(R(3)), i, o, s);
32484
- u.assign(H(x.lessThan(_), _, L(0)));
32490
+ u.assign(H(x.lessThan(_), _, I(0)));
32485
32491
  });
32486
32492
  });
32487
32493
  }), u;
@@ -32500,7 +32506,7 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32500
32506
  }))), _.assign(Ze(u.negate(), v));
32501
32507
  }).ElseIf(g.lessThan(m.add(h)), () => {
32502
32508
  N(n.anisotropy.greaterThan(0), () => {
32503
- let e = Xs.wrap(Ec(l, n.anisotropyRotation)), t = Y(I(u, e.Ta), I(u, e.Ba), I(u, l)), i = hm(n.roughness, n.anisotropy), a = Am({
32509
+ let e = Xs.wrap(Ec(l, n.anisotropyRotation)), t = Y(F(u, e.Ta), F(u, e.Ba), F(u, l)), i = hm(n.roughness, n.anisotropy), a = Am({
32504
32510
  V: t,
32505
32511
  alphaX: i.x,
32506
32512
  alphaY: i.y,
@@ -32533,7 +32539,7 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32533
32539
  normal: "vec3",
32534
32540
  height: "float"
32535
32541
  }), rx = M(([e, t, n, r, i, a, o]) => {
32536
- let s = t.hitPoint.toVar(), c = t.uv.toVar(), l = t.normal.toVar(), u = L(0).toVar(), d = t.triangleIndex, f = _t(Nc(n, d, 0).xyz).toVar(), p = _t(Nc(n, d, 1).xyz), m = _t(Nc(n, d, 2).xyz), h = _t(Nc(n, d, 3)).toVar(), g = _t(Nc(n, d, 4).xy), _ = h.xy.toVar(), v = h.zw, y = g, b = p.sub(f).toVar(), x = m.sub(f).toVar();
32542
+ let s = t.hitPoint.toVar(), c = t.uv.toVar(), l = t.normal.toVar(), u = I(0).toVar(), d = t.triangleIndex, f = _t(Nc(n, d, 0).xyz).toVar(), p = _t(Nc(n, d, 1).xyz), m = _t(Nc(n, d, 2).xyz), h = _t(Nc(n, d, 3)).toVar(), g = _t(Nc(n, d, 4).xy), _ = h.xy.toVar(), v = h.zw, y = g, b = p.sub(f).toVar(), x = m.sub(f).toVar();
32537
32543
  N(o.greaterThanEqual(R(0)), () => {
32538
32544
  let e = Wc(a, o), t = {
32539
32545
  r0: e[0].xyz,
@@ -32550,9 +32556,9 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32550
32556
  });
32551
32557
  let S = v.sub(_).toVar(), C = y.sub(_).toVar(), w = S.x.mul(C.y).sub(C.x.mul(S.y)).toVar();
32552
32558
  return N(ve(w).greaterThan(1e-8), () => {
32553
- let n = L(1).div(w), a = b.mul(C.y).sub(x.mul(S.y)).mul(n).toVar(), o = x.mul(S.x).sub(b.mul(C.x)).mul(n).toVar(), d = t.normal.toVar(), f = r.displacementScale.div(L(10)), p = e.direction, m = I(p, d).toVar(), h = p.sub(d.mul(m)).toVar(), g = I(a, a), _ = I(a, o), v = I(o, o), y = g.mul(v).sub(_.mul(_)).toVar();
32559
+ let n = I(1).div(w), a = b.mul(C.y).sub(x.mul(S.y)).mul(n).toVar(), o = x.mul(S.x).sub(b.mul(C.x)).mul(n).toVar(), d = t.normal.toVar(), f = r.displacementScale.div(I(10)), p = e.direction, m = F(p, d).toVar(), h = p.sub(d.mul(m)).toVar(), g = F(a, a), _ = F(a, o), v = F(o, o), y = g.mul(v).sub(_.mul(_)).toVar();
32554
32560
  N(ve(y).greaterThan(1e-10), () => {
32555
- let e = L(1).div(y), n = I(h, a), b = I(h, o), x = J(v.mul(n).sub(_.mul(b)).mul(e), g.mul(b).sub(_.mul(n)).mul(e)).toVar(), S = m.toVar(), C = z(ve(S), .001), w = f.div(C).toVar(), T = R(i.equal(R(0)).select(R($b), R(ex))).toVar(), E = w.negate().toVar(), D = w.sub(E).div(L(T)).toVar(), O = E.toVar(), k = E.toVar(), A = R(0).toVar();
32561
+ let e = I(1).div(y), n = F(h, a), b = F(h, o), x = J(v.mul(n).sub(_.mul(b)).mul(e), g.mul(b).sub(_.mul(n)).mul(e)).toVar(), S = m.toVar(), C = z(ve(S), .001), w = f.div(C).toVar(), T = R(i.equal(R(0)).select(R($b), R(ex))).toVar(), E = w.negate().toVar(), D = w.sub(E).div(I(T)).toVar(), O = E.toVar(), k = E.toVar(), A = R(0).toVar();
32556
32562
  he({
32557
32563
  start: R(0),
32558
32564
  end: T,
@@ -32560,7 +32566,7 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32560
32566
  condition: "<"
32561
32567
  }, ({ i: e }) => {
32562
32568
  N(A.equal(R(0)), () => {
32563
- let n = E.add(D.mul(L(e))).toVar(), i = t.uv.add(x.mul(n)), a = n.mul(S), o = xh(r.displacementMapIndex, i, r.displacementTransform).sub(.5).mul(f);
32569
+ let n = E.add(D.mul(I(e))).toVar(), i = t.uv.add(x.mul(n)), a = n.mul(S), o = xh(r.displacementMapIndex, i, r.displacementTransform).sub(.5).mul(f);
32564
32570
  N(a.lessThanEqual(o).and(e.greaterThan(R(0))), () => {
32565
32571
  A.assign(1), k.assign(n);
32566
32572
  }).Else(() => {
@@ -32608,15 +32614,15 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32608
32614
  emissionOnly: "vec3",
32609
32615
  distance: "float"
32610
32616
  }), ox = M(([e, t, n, r]) => {
32611
- let i = U(r.x), a = L(1).sub(i), o = r.y.mul(i), s = L(1).sub(a).sub(o);
32617
+ let i = U(r.x), a = I(1).sub(i), o = r.y.mul(i), s = I(1).sub(a).sub(o);
32612
32618
  return e.mul(a).add(t.mul(o)).add(n.mul(s));
32613
- }), sx = M(([e, t, n]) => Re(F(t.sub(e), n.sub(e))).mul(.5)), cx = M(([e, t, n, r]) => {
32614
- let i = V(e.sub(r)), a = V(t.sub(r)), o = V(n.sub(r)), s = ve(I(i, F(a, o))), c = L(1).add(I(a, o)).add(I(i, o)).add(I(i, a));
32615
- return z(L(2).mul(Se(s, z(c, L(1e-10)))), L(0));
32619
+ }), sx = M(([e, t, n]) => Re(ke(t.sub(e), n.sub(e))).mul(.5)), cx = M(([e, t, n, r]) => {
32620
+ let i = V(e.sub(r)), a = V(t.sub(r)), o = V(n.sub(r)), s = ve(F(i, ke(a, o))), c = I(1).add(F(a, o)).add(F(i, o)).add(F(i, a));
32621
+ return z(I(2).mul(Se(s, z(c, I(1e-10)))), I(0));
32616
32622
  }), lx = M(([e, t, n, r]) => {
32617
- let i = t.sub(e), a = n.sub(e), o = n.sub(t), s = z(I(i, i), z(I(a, a), I(o, o))), c = F(i, a), l = I(c, c), u = De(!1).toVar();
32623
+ let i = t.sub(e), a = n.sub(e), o = n.sub(t), s = z(F(i, i), z(F(a, a), F(o, o))), c = ke(i, a), l = F(c, c), u = De(!1).toVar();
32618
32624
  return N(l.greaterThan(1e-20), () => {
32619
- let t = I(c, r.sub(e)), n = t.mul(t).div(l), i = s.mul(s).lessThan(l.mul(64));
32625
+ let t = F(c, r.sub(e)), n = t.mul(t).div(l), i = s.mul(s).lessThan(l.mul(64));
32620
32626
  u.assign(s.greaterThan(n).and(i));
32621
32627
  }), u;
32622
32628
  }), ux = Lr({
@@ -32631,23 +32637,23 @@ var Sb = /* @__PURE__ */ wt("\n fn equirectDirectionToUv( direction: vec3f, envi
32631
32637
  let a = ux({
32632
32638
  direction: Y(0),
32633
32639
  position: Y(0),
32634
- solidAngle: L(0),
32640
+ solidAngle: I(0),
32635
32641
  valid: !1
32636
32642
  }).toVar(), o = V(e.sub(r)), s = V(t.sub(r)), c = V(n.sub(r)), l = cx(e, t, n, r);
32637
32643
  return a.solidAngle.assign(l), N(l.greaterThan(1e-7), () => {
32638
- let u = P(I(dx(F(o, s)), dx(F(o, c))), -1, 1), d = U(z(L(1).sub(u.mul(u)), 0)), f = ye(u), p = i.x.mul(l).sub(f), m = it(p), h = Oe(p), g = P(I(o, s), -1, 1), _ = h.sub(u), v = m.add(d.mul(g)), y = v.mul(h).sub(_.mul(m)).mul(u).sub(v), b = v.mul(m).add(_.mul(h)).mul(d), x = P(H(ve(b).greaterThan(1e-10), y.div(b), L(1)), -1, 1), S = I(c, o), C = dx(c.sub(o.mul(S))), w = U(z(L(1).sub(x.mul(x)), 0)), T = V(o.mul(x).add(C.mul(w))), E = I(T, s), D = L(1).sub(i.y.mul(L(1).sub(E))), O = U(z(L(1).sub(D.mul(D)), 0)), k = dx(T.sub(s.mul(E))), A = V(s.mul(D).add(k.mul(O))), ee = V(F(t.sub(e), n.sub(e))), te = I(ee, A);
32644
+ let u = P(F(dx(ke(o, s)), dx(ke(o, c))), -1, 1), d = U(z(I(1).sub(u.mul(u)), 0)), f = ye(u), p = i.x.mul(l).sub(f), m = it(p), h = Oe(p), g = P(F(o, s), -1, 1), _ = h.sub(u), v = m.add(d.mul(g)), y = v.mul(h).sub(_.mul(m)).mul(u).sub(v), b = v.mul(m).add(_.mul(h)).mul(d), x = P(H(ve(b).greaterThan(1e-10), y.div(b), I(1)), -1, 1), S = F(c, o), C = dx(c.sub(o.mul(S))), w = U(z(I(1).sub(x.mul(x)), 0)), T = V(o.mul(x).add(C.mul(w))), E = F(T, s), D = I(1).sub(i.y.mul(I(1).sub(E))), O = U(z(I(1).sub(D.mul(D)), 0)), k = dx(T.sub(s.mul(E))), A = V(s.mul(D).add(k.mul(O))), ee = V(ke(t.sub(e), n.sub(e))), te = F(ee, A);
32639
32645
  N(ve(te).greaterThan(1e-10), () => {
32640
- let t = I(ee, e.sub(r)).div(te);
32646
+ let t = F(ee, e.sub(r)).div(te);
32641
32647
  N(t.greaterThan(0), () => {
32642
32648
  a.direction.assign(A), a.position.assign(r.add(A.mul(t))), a.valid.assign(!0);
32643
32649
  });
32644
32650
  });
32645
32651
  }), a;
32646
32652
  }), px = M(([e, t, n, r]) => {
32647
- let i = n.sub(t), a = r.sub(t), o = e.sub(t), s = I(i, i), c = I(i, a), l = I(a, a), u = I(o, i), d = I(o, a), f = L(1).div(z(s.mul(l).sub(c.mul(c)), L(1e-10))), p = l.mul(u).sub(c.mul(d)).mul(f), m = s.mul(d).sub(c.mul(u)).mul(f);
32648
- return Y(L(1).sub(p).sub(m), p, m);
32653
+ let i = n.sub(t), a = r.sub(t), o = e.sub(t), s = F(i, i), c = F(i, a), l = F(a, a), u = F(o, i), d = F(o, a), f = I(1).div(z(s.mul(l).sub(c.mul(c)), I(1e-10))), p = l.mul(u).sub(c.mul(d)).mul(f), m = s.mul(d).sub(c.mul(u)).mul(f);
32654
+ return Y(I(1).sub(p).sub(m), p, m);
32649
32655
  }), mx = M(([e, t, n, r]) => {
32650
- let i = U(r.x), a = L(1).sub(i), o = r.y.mul(i), s = L(1).sub(a).sub(o);
32656
+ let i = U(r.x), a = I(1).sub(i), o = r.y.mul(i), s = I(1).sub(a).sub(o);
32651
32657
  return V(e.mul(a).add(t.mul(o)).add(n.mul(s)));
32652
32658
  });
32653
32659
  M(([e]) => e.emissiveIntensity.greaterThan(0).and(Re(e.emissive).greaterThan(0)));
@@ -32674,12 +32680,12 @@ var hx = 2, gx = Lr({
32674
32680
  materialIndex: R(s.z.bitAnd(G(ra)))
32675
32681
  });
32676
32682
  }), vx = M(([e, t, n, r, i, a, o, s, c]) => {
32677
- let l = gx.wrap(_x(e, i, s, c)), u = sx(l.v0, l.v1, l.v2), d = Mc(a, l.materialIndex, R(vc.EMISSIVE_ROUGHNESS), _c), f = Mc(a, l.materialIndex, R(vc.IOR_TRANSMISSION), _c), p = z(d.x.mul(.2126).add(d.y.mul(.7152)).add(d.z.mul(.0722)).mul(f.a).mul(u), L(1e-10)).div(z(o, L(1e-10))), m = L(0).toVar();
32683
+ let l = gx.wrap(_x(e, i, s, c)), u = sx(l.v0, l.v1, l.v2), d = Mc(a, l.materialIndex, R(vc.EMISSIVE_ROUGHNESS), _c), f = Mc(a, l.materialIndex, R(vc.IOR_TRANSMISSION), _c), p = z(d.x.mul(.2126).add(d.y.mul(.7152)).add(d.z.mul(.0722)).mul(f.a).mul(u), I(1e-10)).div(z(o, I(1e-10))), m = I(0).toVar();
32678
32684
  return N(lx(l.v0, l.v1, l.v2, r), () => {
32679
32685
  let e = cx(l.v0, l.v1, l.v2, r);
32680
- m.assign(p.div(z(e, L(1e-10))));
32686
+ m.assign(p.div(z(e, I(1e-10))));
32681
32687
  }).Else(() => {
32682
- let e = V(F(l.v1.sub(l.v0), l.v2.sub(l.v0))), r = z(I(n.negate(), e), .001), i = t.mul(t), a = p.div(u);
32688
+ let e = V(ke(l.v1.sub(l.v0), l.v2.sub(l.v0))), r = z(F(n.negate(), e), .001), i = t.mul(t), a = p.div(u);
32683
32689
  m.assign(a.mul(i).div(r));
32684
32690
  }), z(m, fc);
32685
32691
  }), yx = M(([e, t, n, r]) => {
@@ -32698,27 +32704,27 @@ var hx = 2, gx = Lr({
32698
32704
  normal: Y(0),
32699
32705
  emission: Y(0),
32700
32706
  direction: Y(0),
32701
- distance: L(0),
32702
- pdf: L(0),
32703
- area: L(0),
32704
- cosThetaLight: L(0),
32707
+ distance: I(0),
32708
+ pdf: I(0),
32709
+ area: I(0),
32710
+ cosThetaLight: I(0),
32705
32711
  valid: !1
32706
32712
  }).toVar();
32707
32713
  return N(l.greaterThan(R(0)), () => {
32708
- let m = yx(s, c, l, li(r, R(0), o.add(R(1)), n, i, a)).toVar(), h = c.add(m.mul(R(hx))), g = s.element(h), _ = s.element(h.add(1)), v = R(g.r), y = z(g.g, L(1e-10)), b = _.xyz, x = _.w, S = R(g.a), C = gx.wrap(_x(v, d, f, S)), w = ci(r, R(0), o.add(R(3)), n, i, a).toVar(), T = V(F(C.v1.sub(C.v0), C.v2.sub(C.v0)));
32714
+ let m = yx(s, c, l, li(r, R(0), o.add(R(1)), n, i, a)).toVar(), h = c.add(m.mul(R(hx))), g = s.element(h), _ = s.element(h.add(1)), v = R(g.r), y = z(g.g, I(1e-10)), b = _.xyz, x = _.w, S = R(g.a), C = gx.wrap(_x(v, d, f, S)), w = ci(r, R(0), o.add(R(3)), n, i, a).toVar(), T = V(ke(C.v1.sub(C.v0), C.v2.sub(C.v0)));
32709
32715
  N(lx(C.v0, C.v1, C.v2, e), () => {
32710
32716
  let n = ux.wrap(fx(C.v0, C.v1, C.v2, e, w));
32711
32717
  N(n.valid.and(n.solidAngle.greaterThan(1e-7)), () => {
32712
- let r = n.direction, i = n.position, a = I(r, t), o = I(r, T.negate());
32718
+ let r = n.direction, i = n.position, a = F(r, t), o = F(r, T.negate());
32713
32719
  N(a.greaterThan(0).and(o.greaterThan(0)), () => {
32714
- let t = px(i, C.v0, C.v1, C.v2), a = V(C.n0.mul(t.x).add(C.n1.mul(t.y)).add(C.n2.mul(t.z))), s = Re(i.sub(e)), c = y.div(z(u, L(1e-10))).div(n.solidAngle);
32720
+ let t = px(i, C.v0, C.v1, C.v2), a = V(C.n0.mul(t.x).add(C.n1.mul(t.y)).add(C.n2.mul(t.z))), s = Re(i.sub(e)), c = y.div(z(u, I(1e-10))).div(n.solidAngle);
32715
32721
  p.position.assign(i), p.normal.assign(a), p.emission.assign(b), p.direction.assign(r), p.distance.assign(s), p.pdf.assign(z(c, fc)), p.area.assign(x), p.cosThetaLight.assign(o), p.valid.assign(!0);
32716
32722
  });
32717
32723
  });
32718
32724
  }).Else(() => {
32719
- let n = ox(C.v0, C.v1, C.v2, w), r = mx(C.n0, C.n1, C.n2, w), i = n.sub(e), a = I(i, i), o = U(a), s = i.div(o), c = I(s, t), l = I(s, r.negate());
32725
+ let n = ox(C.v0, C.v1, C.v2, w), r = mx(C.n0, C.n1, C.n2, w), i = n.sub(e), a = F(i, i), o = U(a), s = i.div(o), c = F(s, t), l = F(s, r.negate());
32720
32726
  N(c.greaterThan(0).and(l.greaterThan(0)), () => {
32721
- let e = y.div(z(u, L(1e-10)).mul(x)).mul(a).div(l);
32727
+ let e = y.div(z(u, I(1e-10)).mul(x)).mul(a).div(l);
32722
32728
  p.position.assign(n), p.normal.assign(r), p.emission.assign(b), p.direction.assign(s), p.distance.assign(o), p.pdf.assign(z(e, fc)), p.area.assign(x), p.cosThetaLight.assign(l), p.valid.assign(!0);
32723
32729
  });
32724
32730
  });
@@ -32728,131 +32734,131 @@ var hx = 2, gx = Lr({
32728
32734
  contribution: Y(0),
32729
32735
  hasEmissive: !1,
32730
32736
  emissionOnly: Y(0),
32731
- distance: L(0)
32737
+ distance: I(0)
32732
32738
  }).toVar(), x = ix.wrap(bx(e, t, o, s, c, l, u, f, p, m, h, g, _));
32733
32739
  return N(x.valid.and(x.pdf.greaterThan(0)), () => {
32734
32740
  b.hasEmissive.assign(!0), b.emissionOnly.assign(x.emission), b.distance.assign(x.distance);
32735
- let a = z(L(0), I(t, x.direction));
32736
- N(a.greaterThan(0).and(I(x.direction, n).greaterThan(0)), () => {
32741
+ let a = z(I(0), F(t, x.direction));
32742
+ N(a.greaterThan(0).and(F(x.direction, n).greaterThan(0)), () => {
32737
32743
  let o = e.add(y(e, n, x.direction)), s = x.position.sub(o).toVar(), c = Re(s).toVar(), l = v(o, s.div(c), c.mul(ac));
32738
32744
  N(l.greaterThan(0), () => {
32739
32745
  let e = Zs.wrap(Dc(t, r, x.direction, i)), n = kb(i, e), o = Ub(i, e), s = H(o.greaterThan(0), Cc({
32740
32746
  pdf1: x.pdf,
32741
32747
  pdf2: o
32742
- }), L(1));
32748
+ }), I(1));
32743
32749
  b.contribution.assign(x.emission.mul(n).mul(a).div(x.pdf).mul(l).mul(d).mul(s));
32744
32750
  });
32745
32751
  });
32746
32752
  }), b;
32747
- }), Sx = M(([e, t, n, r, i, a, o, s, c, l, u, d, f, p, m, h, g, _, v, y]) => ax.wrap(xx(e, t, n, r, i, a, o, s, c, l, u, d, f, p, m, h, g, _, v, y)).contribution), Cx = 4, wx = 2, Tx = 32, Ex = M(([e, t, n, r]) => H(t.greaterThan(r), L(1), t.mul(r).add(e.mul(n)))), Dx = M(([e, t, n, r]) => H(t.greaterThan(r), L(0), e.mul(r).sub(t.mul(n)))), Ox = M(([e, t, n, r, i, a]) => {
32748
- let o = e.add(n).mul(.5), s = Re(n.sub(e)), c = a.sub(o), l = z(I(c, c), L(1e-12)), u = z(l, s.mul(.5)), d = I(r, c.div(U(l))), f = U(z(L(1).sub(d.mul(d)), L(0))), p = s.mul(s).mul(.25), m = P(p.div(l), L(0), L(1)), h = H(l.lessThan(p), L(-1), U(z(L(1).sub(m), L(0)))), g = U(z(L(1).sub(h.mul(h)), L(0))), _ = U(z(L(1).sub(i.mul(i)), L(0))), v = Ex(f, d, _, i), y = Ex(Dx(f, d, _, i), v, g, h);
32749
- return z(H(y.greaterThan(L(0)), t.mul(y).div(u), L(0)), L(0));
32753
+ }), Sx = M(([e, t, n, r, i, a, o, s, c, l, u, d, f, p, m, h, g, _, v, y]) => ax.wrap(xx(e, t, n, r, i, a, o, s, c, l, u, d, f, p, m, h, g, _, v, y)).contribution), Cx = 4, wx = 2, Tx = 32, Ex = M(([e, t, n, r]) => H(t.greaterThan(r), I(1), t.mul(r).add(e.mul(n)))), Dx = M(([e, t, n, r]) => H(t.greaterThan(r), I(0), e.mul(r).sub(t.mul(n)))), Ox = M(([e, t, n, r, i, a]) => {
32754
+ let o = e.add(n).mul(.5), s = Re(n.sub(e)), c = a.sub(o), l = z(F(c, c), I(1e-12)), u = z(l, s.mul(.5)), d = F(r, c.div(U(l))), f = U(z(I(1).sub(d.mul(d)), I(0))), p = s.mul(s).mul(.25), m = P(p.div(l), I(0), I(1)), h = H(l.lessThan(p), I(-1), U(z(I(1).sub(m), I(0)))), g = U(z(I(1).sub(h.mul(h)), I(0))), _ = U(z(I(1).sub(i.mul(i)), I(0))), v = Ex(f, d, _, i), y = Ex(Dx(f, d, _, i), v, g, h);
32755
+ return z(H(y.greaterThan(I(0)), t.mul(y).div(u), I(0)), I(0));
32750
32756
  }), kx = M(([e, t, n, r, i, a, o, s, c, l, u, d]) => {
32751
32757
  let f = ix({
32752
32758
  position: Y(0),
32753
32759
  normal: Y(0),
32754
32760
  emission: Y(0),
32755
32761
  direction: Y(0),
32756
- distance: L(0),
32757
- pdf: L(0),
32758
- area: L(0),
32759
- cosThetaLight: L(0),
32762
+ distance: I(0),
32763
+ pdf: I(0),
32764
+ area: I(0),
32765
+ cosThetaLight: I(0),
32760
32766
  valid: !1
32761
- }).toVar(), p = L(1).toVar(), m = R(0).toVar(), h = De(!1).toVar(), g = li(r, R(0), o.add(R(1)), n, i, a).toVar();
32767
+ }).toVar(), p = I(1).toVar(), m = R(0).toVar(), h = De(!1).toVar(), g = li(r, R(0), o.add(R(1)), n, i, a).toVar();
32762
32768
  return he(Tx, () => {
32763
32769
  let t = m.mul(R(Cx)), n = s.element(t.add(R(1))), r = s.element(t.add(R(2)));
32764
32770
  N(n.w.greaterThan(.5), () => {
32765
32771
  h.assign(De(!0)), me();
32766
32772
  });
32767
32773
  let i = R(r.x), a = R(r.y), o = i.mul(R(Cx)), c = s.element(o), l = s.element(o.add(R(1))), u = a.mul(R(Cx)), d = s.element(u), f = s.element(u.add(R(1))), _ = s.element(o.add(R(3))), v = s.element(u.add(R(3))), y = Ox(c.xyz, c.w, l.xyz, _.xyz, _.w, e), b = Ox(d.xyz, d.w, f.xyz, v.xyz, v.w, e), x = y.add(b);
32768
- N(x.lessThanEqual(L(0)), () => {
32774
+ N(x.lessThanEqual(I(0)), () => {
32769
32775
  m.assign(i);
32770
32776
  }).Else(() => {
32771
32777
  let e = y.div(x);
32772
32778
  N(g.lessThan(e), () => {
32773
- g.assign(P(g.div(z(e, L(1e-6))), 0, .999999)), p.mulAssign(e), m.assign(i);
32779
+ g.assign(P(g.div(z(e, I(1e-6))), 0, .999999)), p.mulAssign(e), m.assign(i);
32774
32780
  }).Else(() => {
32775
- let t = L(1).sub(e).toVar();
32776
- g.assign(P(g.sub(e).div(z(t, L(1e-6))), 0, .999999)), p.mulAssign(t), m.assign(a);
32781
+ let t = I(1).sub(e).toVar();
32782
+ g.assign(P(g.sub(e).div(z(t, I(1e-6))), 0, .999999)), p.mulAssign(t), m.assign(a);
32777
32783
  });
32778
32784
  });
32779
32785
  }), N(h, () => {
32780
- let h = m.mul(R(Cx)), _ = s.element(h), v = s.element(h.add(R(2))), y = R(v.x), b = R(v.y), x = z(_.w, L(1e-10)), S = g.mul(x), C = L(0).toVar(), w = y.add(b.sub(R(1))).toVar(), T = L(1e-10).toVar();
32786
+ let h = m.mul(R(Cx)), _ = s.element(h), v = s.element(h.add(R(2))), y = R(v.x), b = R(v.y), x = z(_.w, I(1e-10)), S = g.mul(x), C = I(0).toVar(), w = y.add(b.sub(R(1))).toVar(), T = I(1e-10).toVar();
32781
32787
  he({
32782
32788
  start: R(0),
32783
32789
  end: b
32784
32790
  }, ({ i: e }) => {
32785
- let t = y.add(e), n = l.add(t.mul(R(wx))), r = z(c.element(n).g, L(0));
32786
- C.addAssign(r), N(C.greaterThanEqual(S).and(r.greaterThan(L(0))), () => {
32791
+ let t = y.add(e), n = l.add(t.mul(R(wx))), r = z(c.element(n).g, I(0));
32792
+ C.addAssign(r), N(C.greaterThanEqual(S).and(r.greaterThan(I(0))), () => {
32787
32793
  w.assign(t), T.assign(r), me();
32788
32794
  });
32789
32795
  }), p.mulAssign(T.div(x));
32790
- let E = l.add(w.mul(R(wx))), D = c.element(E), O = c.element(E.add(R(1))), k = R(D.r), A = O.xyz, ee = O.w, te = R(D.a), j = gx.wrap(_x(k, u, d, te)), ne = ci(r, R(0), o.add(R(3)), n, i, a).toVar(), re = V(F(j.v1.sub(j.v0), j.v2.sub(j.v0)));
32796
+ let E = l.add(w.mul(R(wx))), D = c.element(E), O = c.element(E.add(R(1))), k = R(D.r), A = O.xyz, ee = O.w, te = R(D.a), j = gx.wrap(_x(k, u, d, te)), ne = ci(r, R(0), o.add(R(3)), n, i, a).toVar(), re = V(ke(j.v1.sub(j.v0), j.v2.sub(j.v0)));
32791
32797
  N(lx(j.v0, j.v1, j.v2, e), () => {
32792
32798
  let n = ux.wrap(fx(j.v0, j.v1, j.v2, e, ne));
32793
- N(n.valid.and(n.solidAngle.greaterThan(L(1e-7))), () => {
32794
- let r = n.direction, i = n.position, a = I(r, t), o = I(r, re.negate());
32795
- N(a.greaterThan(L(0)).and(o.greaterThan(L(0))), () => {
32796
- let t = px(i, j.v0, j.v1, j.v2), a = V(j.n0.mul(t.x).add(j.n1.mul(t.y)).add(j.n2.mul(t.z))), s = Re(i.sub(e)), c = p.div(z(n.solidAngle, L(1e-10)));
32799
+ N(n.valid.and(n.solidAngle.greaterThan(I(1e-7))), () => {
32800
+ let r = n.direction, i = n.position, a = F(r, t), o = F(r, re.negate());
32801
+ N(a.greaterThan(I(0)).and(o.greaterThan(I(0))), () => {
32802
+ let t = px(i, j.v0, j.v1, j.v2), a = V(j.n0.mul(t.x).add(j.n1.mul(t.y)).add(j.n2.mul(t.z))), s = Re(i.sub(e)), c = p.div(z(n.solidAngle, I(1e-10)));
32797
32803
  f.position.assign(i), f.normal.assign(a), f.emission.assign(A), f.direction.assign(r), f.distance.assign(s), f.pdf.assign(z(c, fc)), f.area.assign(ee), f.cosThetaLight.assign(o), f.valid.assign(!0);
32798
32804
  });
32799
32805
  });
32800
32806
  }).Else(() => {
32801
- let n = ox(j.v0, j.v1, j.v2, ne), r = mx(j.n0, j.n1, j.n2, ne), i = n.sub(e), a = I(i, i), o = U(a), s = i.div(o), c = I(s, t), l = I(s, r.negate());
32802
- N(c.greaterThan(L(0)).and(l.greaterThan(L(0))), () => {
32803
- let e = p.div(z(ee, L(1e-10))).mul(a).div(l);
32807
+ let n = ox(j.v0, j.v1, j.v2, ne), r = mx(j.n0, j.n1, j.n2, ne), i = n.sub(e), a = F(i, i), o = U(a), s = i.div(o), c = F(s, t), l = F(s, r.negate());
32808
+ N(c.greaterThan(I(0)).and(l.greaterThan(I(0))), () => {
32809
+ let e = p.div(z(ee, I(1e-10))).mul(a).div(l);
32804
32810
  f.position.assign(n), f.normal.assign(r), f.emission.assign(A), f.direction.assign(s), f.distance.assign(o), f.pdf.assign(z(e, fc)), f.area.assign(ee), f.cosThetaLight.assign(l), f.valid.assign(!0);
32805
32811
  });
32806
32812
  });
32807
32813
  }), f;
32808
32814
  }), Ax = M(([e, t, n, r, i, a, o, s, c]) => {
32809
- let l = L(0).toVar(), u = R(e).toVar(), d = i.element(o.add(u.shiftRight(R(2)))), f = u.bitAnd(R(3)), p = H(f.equal(R(0)), d.x, H(f.equal(R(1)), d.y, H(f.equal(R(2)), d.z, d.w))).toVar();
32810
- return N(p.greaterThanEqual(L(0)), () => {
32811
- let e = R(p).toVar(), o = L(1).toVar(), d = R(0).toVar(), f = R(0).toVar(), m = De(!1).toVar();
32815
+ let l = I(0).toVar(), u = R(e).toVar(), d = i.element(o.add(u.shiftRight(R(2)))), f = u.bitAnd(R(3)), p = H(f.equal(R(0)), d.x, H(f.equal(R(1)), d.y, H(f.equal(R(2)), d.z, d.w))).toVar();
32816
+ return N(p.greaterThanEqual(I(0)), () => {
32817
+ let e = R(p).toVar(), o = I(1).toVar(), d = R(0).toVar(), f = R(0).toVar(), m = De(!1).toVar();
32812
32818
  he(Tx, () => {
32813
32819
  let t = d.mul(R(Cx));
32814
32820
  N(i.element(t.add(R(1))).w.greaterThan(.5), () => {
32815
32821
  m.assign(De(!0)), me();
32816
32822
  });
32817
32823
  let n = i.element(t.add(R(2))), a = R(n.x), s = R(n.y), c = a.mul(R(Cx)), l = i.element(c), u = i.element(c.add(R(1))), p = i.element(c.add(R(3))), h = s.mul(R(Cx)), g = i.element(h), _ = i.element(h.add(R(1))), v = i.element(h.add(R(3))), y = Ox(l.xyz, l.w, u.xyz, p.xyz, p.w, r), b = Ox(g.xyz, g.w, _.xyz, v.xyz, v.w, r), x = y.add(b), S = e.shiftRight(f).bitAnd(R(1)).equal(R(1));
32818
- N(x.lessThanEqual(L(0)), () => {
32824
+ N(x.lessThanEqual(I(0)), () => {
32819
32825
  N(S, () => {
32820
- o.assign(L(0)), d.assign(s);
32826
+ o.assign(I(0)), d.assign(s);
32821
32827
  }).Else(() => {
32822
32828
  d.assign(a);
32823
32829
  });
32824
32830
  }).Else(() => {
32825
32831
  let e = y.div(x);
32826
32832
  N(S, () => {
32827
- o.mulAssign(L(1).sub(e)), d.assign(s);
32833
+ o.mulAssign(I(1).sub(e)), d.assign(s);
32828
32834
  }).Else(() => {
32829
32835
  o.mulAssign(e), d.assign(a);
32830
32836
  });
32831
32837
  }), f.addAssign(R(1));
32832
- }), N(m.and(o.greaterThan(L(0))), () => {
32833
- let e = d.mul(R(Cx)), f = i.element(e), p = i.element(e.add(R(2))), m = R(p.x), h = R(p.y), g = z(f.w, L(1e-10)), _ = L(0).toVar(), v = R(-1).toVar();
32838
+ }), N(m.and(o.greaterThan(I(0))), () => {
32839
+ let e = d.mul(R(Cx)), f = i.element(e), p = i.element(e.add(R(2))), m = R(p.x), h = R(p.y), g = z(f.w, I(1e-10)), _ = I(0).toVar(), v = R(-1).toVar();
32834
32840
  he({
32835
32841
  start: R(0),
32836
32842
  end: h
32837
32843
  }, ({ i: e }) => {
32838
32844
  let t = m.add(e), n = i.element(a.add(t.mul(R(wx))));
32839
32845
  N(R(n.r).equal(u), () => {
32840
- _.assign(z(n.g, L(0))), v.assign(R(n.a)), me();
32846
+ _.assign(z(n.g, I(0))), v.assign(R(n.a)), me();
32841
32847
  });
32842
32848
  }), o.mulAssign(_.div(g));
32843
32849
  let y = gx.wrap(_x(u, s, c, v));
32844
32850
  N(lx(y.v0, y.v1, y.v2, r), () => {
32845
32851
  let e = cx(y.v0, y.v1, y.v2, r);
32846
- l.assign(o.div(z(e, L(1e-10))));
32852
+ l.assign(o.div(z(e, I(1e-10))));
32847
32853
  }).Else(() => {
32848
- let e = V(F(y.v1.sub(y.v0), y.v2.sub(y.v0))), r = z(I(n.negate(), e), L(.001)), i = sx(y.v0, y.v1, y.v2), a = t.mul(t), s = o.div(z(i, L(1e-10)));
32854
+ let e = V(ke(y.v1.sub(y.v0), y.v2.sub(y.v0))), r = z(F(n.negate(), e), I(.001)), i = sx(y.v0, y.v1, y.v2), a = t.mul(t), s = o.div(z(i, I(1e-10)));
32849
32855
  l.assign(s.mul(a).div(r));
32850
32856
  });
32851
32857
  });
32852
32858
  }), z(l, fc);
32853
32859
  }), jx = 0x8ac7230489e80000, Mx = 1e-4, Nx = 1e-4, Px = .001;
32854
32860
  function Fx(e) {
32855
- let { bvhBuffer: t, triangleBuffer: n, materialBuffer: r, envCDFTexture: i, lightBuffer: a, rayBufferRW: o, hitBufferRW: s, gBufferRW: c, counters: l, activeIndicesRO: u, envTexture: d, environmentIntensity: f, envMatrix: p, enableEnvironmentLight: m, groundProjectionEnabled: h, groundProjectionRadius: g, groundProjectionHeight: _, groundProjectionLevel: v, enableGroundCatcher: y, groundCatcherHeight: b, envTotalSum: x, envCompensationDelta: S, envResolution: C, directionalLightsBuffer: w, numDirectionalLights: T, areaLightsBuffer: E, numAreaLights: D, pointLightsBuffer: O, numPointLights: k, spotLightsBuffer: A, numSpotLights: ee, maxBounceCount: te, maxSubsurfaceSteps: j, maxTransparentBounces: ne, currentBounce: re, transparentBackground: ie, backgroundIntensity: ae, backgroundColor: oe, backgroundBlurriness: se, backgroundBlurSamples: ce, showBackground: le, globalIlluminationIntensity: ue, cameraProjectionMatrix: de, cameraViewMatrix: fe, fireflyThreshold: pe, frame: me, resolution: _e, shadowTerminatorOffset: ve, accumFrame: be, chunkRowBase: xe, emissiveTriangleCount: Se, emissiveVec4Offset: Ce, emissiveTotalPower: Ee, emissiveBoost: Oe, totalTriangleCount: F, enableEmissiveTriangleSampling: ke, lightBVHNodeCount: je, reverseMapVec4Offset: Me, maxRayCount: Ne, auxGBufferEnabled: Pe, hasSun: Ie, sunDirection: Le, sunRadiance: ze, sunParams: Be } = e, He = Pe.greaterThan(G(0)), Ue = a !== void 0, B = (e, t, n, r, i) => {
32861
+ let { bvhBuffer: t, triangleBuffer: n, materialBuffer: r, envCDFTexture: i, lightBuffer: a, rayBufferRW: o, hitBufferRW: s, gBufferRW: c, counters: l, activeIndicesRO: u, envTexture: d, environmentIntensity: f, envMatrix: p, enableEnvironmentLight: m, groundProjectionEnabled: h, groundProjectionRadius: g, groundProjectionHeight: _, groundProjectionLevel: v, enableGroundCatcher: y, groundCatcherHeight: b, envTotalSum: x, envCompensationDelta: S, envResolution: C, directionalLightsBuffer: w, numDirectionalLights: T, areaLightsBuffer: E, numAreaLights: D, pointLightsBuffer: O, numPointLights: k, spotLightsBuffer: A, numSpotLights: ee, maxBounceCount: te, maxSubsurfaceSteps: j, maxTransparentBounces: ne, currentBounce: re, transparentBackground: ie, backgroundIntensity: ae, backgroundColor: oe, backgroundBlurriness: se, backgroundBlurSamples: ce, showBackground: le, globalIlluminationIntensity: ue, cameraProjectionMatrix: de, cameraViewMatrix: fe, fireflyThreshold: pe, frame: me, resolution: _e, shadowTerminatorOffset: ve, accumFrame: be, chunkRowBase: xe, emissiveTriangleCount: Se, emissiveVec4Offset: Ce, emissiveTotalPower: Ee, emissiveBoost: Oe, enableEmissiveTriangleSampling: ke, lightBVHNodeCount: Ae, reverseMapVec4Offset: Me, maxRayCount: Ne, auxGBufferEnabled: L, hasSun: Pe, sunDirection: Ie, sunRadiance: Le, sunParams: ze } = e, Be = L.greaterThan(G(0)), He = a !== void 0, Ue = (e, t, n, r, i) => {
32856
32862
  let a = V(e).toVar(), o = z(n, R(1)).toVar(), s = Y(0).toVar();
32857
32863
  return he({
32858
32864
  start: R(0),
@@ -32867,9 +32873,9 @@ function Fx(e) {
32867
32873
  direction: n,
32868
32874
  environmentMatrix: p,
32869
32875
  environmentIntensity: f,
32870
- enableEnvironmentLight: L(1)
32876
+ enableEnvironmentLight: I(1)
32871
32877
  }).xyz);
32872
- }), s.div(L(o));
32878
+ }), s.div(I(o));
32873
32879
  };
32874
32880
  return M(() => {
32875
32881
  let e = Fe;
@@ -32880,27 +32886,27 @@ function Fx(e) {
32880
32886
  N(e.greaterThanEqual(he), () => {
32881
32887
  ge();
32882
32888
  });
32883
- let F = u.element(e), Pe = il(o, F).toVar();
32884
- N(Pe.bitAnd(G(jy.ACTIVE)).equal(G(0)), () => {
32889
+ let L = u.element(e), B = il(o, L).toVar();
32890
+ N(B.bitAnd(G(jy.ACTIVE)).equal(G(0)), () => {
32885
32891
  ge();
32886
32892
  });
32887
- let Ge = Pe.bitAnd(G(jy.REDIRECTED)).equal(G(0)).toVar(), Ke = nl(o, F).toVar(), qe = rl(o, F).toVar(), Je = al(o, F).toVar(), Ye = sl(o, F).toVar(), Xe = F, Ze = Ol(s, F).toVar(), Qe = R(_e.x).toVar(), $e = R(Xe).add(xe.mul(Qe)), tt = J(L($e.mod(Qe)).add(.5), L($e.div(Qe)).add(.5)), nt = R(re).mul(R(32)), rt = Ll(o, F).toVar(), it = xl(s, F).toVar(), U = wl(s, F).toVar(), ot = Cl(s, F).toVar(), st = Tl(s, F).toVar(), ct = Sl(s, F).toVar(), lt = El(s, F).toVar(), ut = zl(o, F).toVar(), dt = R(re).toVar(), ft = Bl(o, F).toVar(), pt = Vl(o, F).toVar();
32888
- N(He.and(ut.equal(1)), () => {
32893
+ let Ge = B.bitAnd(G(jy.REDIRECTED)).equal(G(0)).toVar(), Ke = nl(o, L).toVar(), qe = rl(o, L).toVar(), Je = al(o, L).toVar(), Ye = sl(o, L).toVar(), Xe = L, Ze = Ol(s, L).toVar(), Qe = R(_e.x).toVar(), $e = R(Xe).add(xe.mul(Qe)), tt = J(I($e.mod(Qe)).add(.5), I($e.div(Qe)).add(.5)), nt = R(re).mul(R(32)), rt = Ll(o, L).toVar(), it = xl(s, L).toVar(), U = wl(s, L).toVar(), ot = Cl(s, L).toVar(), st = Tl(s, L).toVar(), ct = Sl(s, L).toVar(), lt = El(s, L).toVar(), ut = zl(o, L).toVar(), dt = R(re).toVar(), ft = Bl(o, L).toVar(), pt = Vl(o, L).toVar();
32894
+ N(Be.and(ut.equal(1)), () => {
32889
32895
  let e = fe.mul(X(Ke, 1)).z.abs().mul(Hi).add(3);
32890
- ul(c, Xe, gl(o, F).add(We(it, L(1e6))).div(z(e, L(1e-4))).clamp(0, 1));
32896
+ ul(c, Xe, gl(o, L).add(We(it, I(1e6))).div(z(e, I(1e-4))).clamp(0, 1));
32891
32897
  }), N(y.and(dt.equal(0)), () => {
32892
32898
  let e = qe.y.toVar();
32893
- N(e.abs().greaterThan(L(lc)), () => {
32899
+ N(e.abs().greaterThan(I(lc)), () => {
32894
32900
  let a = b.sub(Ke.y).div(e).toVar();
32895
- N(a.greaterThan(L(Mx)).and(a.lessThan(it)), () => {
32896
- let e = Ke.add(qe.mul(a)).toVar(), l = Y(0, 1, 0), u = qe.negate().toVar(), y = Us.wrap(Rc()).toVar(), b = Om(l, ci(tt, R(0), nt.add(R(7)), Ze, _e, me).toVar()).toVar(), te = b.y.mul(sc).toVar(), j = Y(sc), ne = Ks.wrap(Gb(e, l, l, y, u, b, te, j, dt, Ze, tt, _e, me, nt, w, T, E, D, O, k, A, ee, t, n, r, d, f, p, i, x, S, C, m, De(!0), Y(0), l, L(0), Ie, Le, ze, Be)).toVar(), re = z(I(ne.shadowed, pc), L(0)), ue = z(I(ne.unoccluded, pc), L(0)).toVar(), pe = P(re.div(z(ue, L(Nx))), 0, 1).toVar();
32897
- N(ue.lessThan(L(Px)), () => {
32901
+ N(a.greaterThan(I(Mx)).and(a.lessThan(it)), () => {
32902
+ let e = Ke.add(qe.mul(a)).toVar(), l = Y(0, 1, 0), u = qe.negate().toVar(), y = Us.wrap(Rc()).toVar(), b = Om(l, ci(tt, R(0), nt.add(R(7)), Ze, _e, me).toVar()).toVar(), te = b.y.mul(sc).toVar(), j = Y(sc), ne = Ks.wrap(Gb(e, l, l, y, u, b, te, j, dt, Ze, tt, _e, me, nt, w, T, E, D, O, k, A, ee, t, n, r, d, f, p, i, x, S, C, m, De(!0), Y(0), l, I(0), Pe, Ie, Le, ze)).toVar(), re = z(F(ne.shadowed, pc), I(0)), ue = z(F(ne.unoccluded, pc), I(0)).toVar(), pe = P(re.div(z(ue, I(Nx))), 0, 1).toVar();
32903
+ N(ue.lessThan(I(Px)), () => {
32898
32904
  pe.assign(1);
32899
32905
  });
32900
32906
  let M = Ob(Ke, qe, h, g, _, v).toVar(), he = Y(0).toVar();
32901
32907
  N(le, () => {
32902
32908
  N(se.greaterThan(0), () => {
32903
- he.assign(B(M, se.mul(1.3), ce, Ze, tt));
32909
+ he.assign(Ue(M, se.mul(1.3), ce, Ze, tt));
32904
32910
  }).Else(() => {
32905
32911
  he.assign(Eb({
32906
32912
  tex: d,
@@ -32908,18 +32914,18 @@ function Fx(e) {
32908
32914
  direction: M,
32909
32915
  environmentMatrix: p,
32910
32916
  environmentIntensity: f,
32911
- enableEnvironmentLight: L(1)
32917
+ enableEnvironmentLight: I(1)
32912
32918
  }).xyz);
32913
32919
  });
32914
32920
  });
32915
- let ve = H(le, he.mul(ae), oe), ye = H(ie, Y(0), ve.mul(pe)), be = H(ie, L(1).sub(pe), L(1));
32916
- N(He, () => {
32921
+ let ve = H(le, he.mul(ae), oe), ye = H(ie, Y(0), ve.mul(pe)), be = H(ie, I(1).sub(pe), I(1));
32922
+ N(Be, () => {
32917
32923
  ll(c, Xe, l, Yb({
32918
32924
  worldPos: e,
32919
32925
  cameraProjectionMatrix: de,
32920
32926
  cameraViewMatrix: fe
32921
32927
  }), Y(1));
32922
- }), bl(o, F, X(ye, be)), vl(o, F, qe, Pe.bitOr(G(jy.AUX_LOCKED)).bitAnd(G(~jy.ACTIVE))), kl(s, F, Ze), ge();
32928
+ }), bl(o, L, X(ye, be)), vl(o, L, qe, B.bitOr(G(jy.AUX_LOCKED)).bitAnd(G(~jy.ACTIVE))), kl(s, L, Ze), ge();
32923
32929
  });
32924
32930
  });
32925
32931
  }), N(it.greaterThan(jx), () => {
@@ -32931,7 +32937,7 @@ function Fx(e) {
32931
32937
  });
32932
32938
  let t = Y(0).toVar();
32933
32939
  N(Ge.and(se.greaterThan(0)), () => {
32934
- t.assign(B(e, se.mul(1.3), ce, Ze, tt));
32940
+ t.assign(Ue(e, se.mul(1.3), ce, Ze, tt));
32935
32941
  }).Else(() => {
32936
32942
  t.assign(Eb({
32937
32943
  tex: d,
@@ -32939,12 +32945,12 @@ function Fx(e) {
32939
32945
  direction: e,
32940
32946
  environmentMatrix: p,
32941
32947
  environmentIntensity: f,
32942
- enableEnvironmentLight: L(1)
32948
+ enableEnvironmentLight: I(1)
32943
32949
  }).xyz);
32944
32950
  }), n.assign(P(t, Y(0), Y(1)));
32945
- let r = L(1).toVar();
32951
+ let r = I(1).toVar();
32946
32952
  N(Ge.not(), () => {
32947
- let e = ol(o, F);
32953
+ let e = ol(o, L);
32948
32954
  N(e.greaterThan(0), () => {
32949
32955
  let t = wb(d, qe, p, x, S, C).w;
32950
32956
  N(t.greaterThan(0), () => {
@@ -32955,44 +32961,44 @@ function Fx(e) {
32955
32961
  });
32956
32962
  });
32957
32963
  });
32958
- let i = H(Ge.not(), ue, L(1)), a = H(Ge, ae, r.mul(i)), s = H(Ge, L(0), L(dt));
32959
- Ye.assign(X(Ye.xyz.add(Jb(Je.mul(t).mul(a), s, pe, R(be))), Ye.w)), N(Ie, () => {
32964
+ let i = H(Ge.not(), ue, I(1)), a = H(Ge, ae, r.mul(i)), s = H(Ge, I(0), I(dt));
32965
+ Ye.assign(X(Ye.xyz.add(Jb(Je.mul(t).mul(a), s, pe, R(be))), Ye.w)), N(Pe, () => {
32960
32966
  let t = Y(0).toVar();
32961
32967
  N(Ge.and(se.greaterThan(0)), () => {
32962
- let n = se.mul(1.3).toVar(), r = ye(P(I(V(e), Le), -1, 1));
32968
+ let n = se.mul(1.3).toVar(), r = ye(P(F(V(e), Ie), -1, 1));
32963
32969
  N(r.lessThan(n), () => {
32964
- let e = L(1).sub(r.div(n).pow(2)).pow(2);
32965
- t.assign(ze.mul(f).mul(Be.y).mul(e).mul(3 / Math.PI).div(n.mul(n)));
32970
+ let e = I(1).sub(r.div(n).pow(2)).pow(2);
32971
+ t.assign(Le.mul(f).mul(ze.y).mul(e).mul(3 / Math.PI).div(n.mul(n)));
32966
32972
  });
32967
32973
  }).Else(() => {
32968
- t.assign(Nb(V(e), Le, ze, Be).mul(f));
32974
+ t.assign(Nb(V(e), Ie, Le, ze).mul(f));
32969
32975
  }), N(t.x.add(t.y).add(t.z).greaterThan(0), () => {
32970
- let e = L(1).toVar();
32971
- N(Ge.not().and(Pe.bitAnd(G(jy.SUN_NEE)).notEqual(G(0))), () => {
32976
+ let e = I(1).toVar();
32977
+ N(Ge.not().and(B.bitAnd(G(jy.SUN_NEE)).notEqual(G(0))), () => {
32972
32978
  e.assign(Cc({
32973
- pdf1: ol(o, F),
32974
- pdf2: L(1).div(Be.y)
32979
+ pdf1: ol(o, L),
32980
+ pdf2: I(1).div(ze.y)
32975
32981
  }));
32976
32982
  });
32977
- let n = z(dt.sub(1), R(0)), r = H(Ge, ae, e.mul(H(n.greaterThan(R(0)), ue, L(1))));
32978
- Ye.assign(X(Ye.xyz.add(Jb(Je.mul(t).mul(r), H(Ge, L(0), L(n)), pe, R(be))), Ye.w));
32983
+ let n = z(dt.sub(1), R(0)), r = H(Ge, ae, e.mul(H(n.greaterThan(R(0)), ue, I(1))));
32984
+ Ye.assign(X(Ye.xyz.add(Jb(Je.mul(t).mul(r), H(Ge, I(0), I(n)), pe, R(be))), Ye.w));
32979
32985
  });
32980
32986
  });
32981
32987
  }), N(Ge.and(le.not()).and(ie.not()), () => {
32982
32988
  Ye.assign(X(Ye.xyz.add(Je.mul(oe)), Ye.w));
32983
- }), N(Pe.bitAnd(G(jy.HAS_HIT_OPAQUE)).equal(G(0)), () => {
32989
+ }), N(B.bitAnd(G(jy.HAS_HIT_OPAQUE)).equal(G(0)), () => {
32984
32990
  Ye.w.assign(0);
32985
- }), N(He.and(Pe.bitAnd(G(jy.AUX_LOCKED)).equal(G(0))).and(Pe.bitAnd(G(jy.REDIRECTED)).notEqual(G(0))), () => {
32991
+ }), N(Be.and(B.bitAnd(G(jy.AUX_LOCKED)).equal(G(0))).and(B.bitAnd(G(jy.REDIRECTED)).notEqual(G(0))), () => {
32986
32992
  let e = dl(c, Xe);
32987
32993
  ll(c, Xe, V(qe), pl(e).w, P(n.mul(rt), Y(0), Y(1)));
32988
- }), bl(o, F, Ye), vl(o, F, qe, Pe.bitAnd(G(~jy.ACTIVE))), ge();
32994
+ }), bl(o, L, Ye), vl(o, L, qe, B.bitAnd(G(~jy.ACTIVE))), ge();
32989
32995
  });
32990
- let mt = Ke.add(qe.mul(it)).toVar(), W = V(U).toVar(), ht = jl(o, F), gt = R(ht.stackDepth).toVar(), _t = ht.ior1.toVar(), K = ht.ior2.toVar(), vt = ht.ior3.toVar(), yt = R(ht.transTraversals).toVar(), bt = L(ht.wavelength).toVar();
32996
+ let mt = Ke.add(qe.mul(it)).toVar(), W = V(U).toVar(), ht = jl(o, L), gt = R(ht.stackDepth).toVar(), _t = ht.ior1.toVar(), K = ht.ior2.toVar(), vt = ht.ior3.toVar(), yt = R(ht.transTraversals).toVar(), bt = I(ht.wavelength).toVar();
32991
32997
  N(gt.greaterThan(0), () => {
32992
- let e = Nl(o, F).toVar(), t = Hl(o, F), n = t.sigmaS.toVar(), r = t.g.toVar();
32998
+ let e = Nl(o, L).toVar(), t = Hl(o, L), n = t.sigmaS.toVar(), r = t.g.toVar();
32993
32999
  N(z(z(n.x, n.y), n.z).lessThanEqual(0), () => {
32994
- let t = Ae(e.mul(it).negate()).toVar();
32995
- Je.mulAssign(t), N(He.and(Pe.bitAnd(G(jy.AUX_LOCKED)).equal(G(0))), () => {
33000
+ let t = je(e.mul(it).negate()).toVar();
33001
+ Je.mulAssign(t), N(Be.and(B.bitAnd(G(jy.AUX_LOCKED)).equal(G(0))), () => {
32996
33002
  rt.mulAssign(t);
32997
33003
  });
32998
33004
  }).Else(() => {
@@ -33002,8 +33008,8 @@ function Fx(e) {
33002
33008
  ft.addAssign(1);
33003
33009
  let a = P(z(z(Je.x, Je.y), Je.z), .02, 1).toVar();
33004
33010
  N(ft.greaterThanEqual(j).or(li(tt, R(0), nt.add(R(12)), Ze, _e, me).greaterThan(a)).toVar(), () => {
33005
- bl(o, F, Ye), vl(o, F, qe, Pe.bitAnd(G(~jy.ACTIVE))), kl(s, F, Ze), ge();
33006
- }), Je.divAssign(a), Pe.assign(Pe.bitOr(G(jy.REDIRECTED))), _l(o, F, t, ut, ft, pt), vl(o, F, n, Pe), yl(o, F, Je, ol(o, F)), bl(o, F, Ye), kl(s, F, Ze), ge();
33011
+ bl(o, L, Ye), vl(o, L, qe, B.bitAnd(G(~jy.ACTIVE))), kl(s, L, Ze), ge();
33012
+ }), Je.divAssign(a), B.assign(B.bitOr(G(jy.REDIRECTED))), _l(o, L, t, ut, ft, pt), vl(o, L, n, B), yl(o, L, Je, ol(o, L)), bl(o, L, Ye), kl(s, L, Ze), ge();
33007
33013
  });
33008
33014
  });
33009
33015
  });
@@ -33048,15 +33054,15 @@ function Fx(e) {
33048
33054
  }).Else(() => {
33049
33055
  W.assign(wt.normal);
33050
33056
  });
33051
- let kt = q.metalness.toVar(), At = q.transmission.toVar(), jt = at(L(0), L(.15), Tt).toVar(), Mt = P(L(1).sub(kt).mul(L(1).sub(At)).add(jt.mul(kt.mul(L(1).sub(At)).add(At))), 0, 1).greaterThanEqual(L(.25)).toVar(), Nt = rt.toVar(), Pt = (e) => {
33052
- N(He.and(Pe.bitAnd(G(jy.AUX_LOCKED)).equal(G(0))), () => {
33057
+ let kt = q.metalness.toVar(), At = q.transmission.toVar(), jt = at(I(0), I(.15), Tt).toVar(), Mt = P(I(1).sub(kt).mul(I(1).sub(At)).add(jt.mul(kt.mul(I(1).sub(At)).add(At))), 0, 1).greaterThanEqual(I(.25)).toVar(), Nt = rt.toVar(), Pt = (e) => {
33058
+ N(Be.and(B.bitAnd(G(jy.AUX_LOCKED)).equal(G(0))), () => {
33053
33059
  let t = pl(dl(c, Xe)).w;
33054
33060
  ll(c, Xe, e, t, P(Ot.mul(Nt), Y(0), Y(1)));
33055
33061
  });
33056
33062
  }, Ft = () => {
33057
- bl(o, F, Ye), vl(o, F, qe, Pe.bitAnd(G(~jy.ACTIVE))), kl(s, F, Ze);
33063
+ bl(o, L, Ye), vl(o, L, qe, B.bitAnd(G(~jy.ACTIVE))), kl(s, L, Ze);
33058
33064
  };
33059
- N(dt.equal(0).and(He), () => {
33065
+ N(dt.equal(0).and(Be), () => {
33060
33066
  let e = Yb({
33061
33067
  worldPos: mt,
33062
33068
  cameraProjectionMatrix: de,
@@ -33064,7 +33070,7 @@ function Fx(e) {
33064
33070
  });
33065
33071
  ll(c, Xe, Y(0, 0, 1), e, Y(0));
33066
33072
  });
33067
- let It = L(1).toVar(), Lt = L(1).toVar();
33073
+ let It = I(1).toVar(), Lt = I(1).toVar();
33068
33074
  N(gt.equal(1), () => {
33069
33075
  It.assign(_t);
33070
33076
  }).ElseIf(gt.equal(2), () => {
@@ -33076,15 +33082,15 @@ function Fx(e) {
33076
33082
  origin: Ke,
33077
33083
  direction: qe
33078
33084
  }), zt = zm.wrap(Ym(Rt, W, q, Ze, tt, _e, me, nt, R(yt), It, Lt, bt)).toVar();
33079
- bt.assign(zt.pathWavelength), N(He.and(Pe.bitAnd(G(jy.AUX_LOCKED)).equal(G(0))), () => {
33080
- let e = pl(dl(c, Xe)).w, t = H(I(W, qe.negate()).lessThan(0), W.negate(), W).toVar(), n = P(Ot.mul(Nt), Y(0), Y(1)).toVar();
33085
+ bt.assign(zt.pathWavelength), N(Be.and(B.bitAnd(G(jy.AUX_LOCKED)).equal(G(0))), () => {
33086
+ let e = pl(dl(c, Xe)).w, t = H(F(W, qe.negate()).lessThan(0), W.negate(), W).toVar(), n = P(Ot.mul(Nt), Y(0), Y(1)).toVar();
33081
33087
  N(q.alphaMode.equal(R(2)), () => {
33082
- ll(c, Xe, t, e, n), Pe.assign(Pe.bitOr(G(jy.AUX_LOCKED)));
33088
+ ll(c, Xe, t, e, n), B.assign(B.bitOr(G(jy.AUX_LOCKED)));
33083
33089
  }).ElseIf(zt.isAlphaSkip, () => {}).ElseIf(zt.isSubsurface, () => {
33084
- ll(c, Xe, t, e, n), Pe.assign(Pe.bitOr(G(jy.AUX_LOCKED)));
33090
+ ll(c, Xe, t, e, n), B.assign(B.bitOr(G(jy.AUX_LOCKED)));
33085
33091
  }).ElseIf(zt.isTransmissive, () => {
33086
33092
  N(Mt.or(q.dispersion.greaterThan(0)), () => {
33087
- ll(c, Xe, t, e, n), Pe.assign(Pe.bitOr(G(jy.AUX_LOCKED)));
33093
+ ll(c, Xe, t, e, n), B.assign(B.bitOr(G(jy.AUX_LOCKED)));
33088
33094
  }).Else(() => {
33089
33095
  rt.mulAssign(P(Ot, Y(0), Y(1)));
33090
33096
  });
@@ -33099,7 +33105,7 @@ function Fx(e) {
33099
33105
  K.assign(q.ior);
33100
33106
  }), N(gt.equal(3), () => {
33101
33107
  vt.assign(q.ior);
33102
- }), Pl(o, F, H(q.attenuationDistance.greaterThan(0), Ve(z(q.attenuationColor, Y(.001))).negate().div(q.attenuationDistance), Y(0))), Ul(o, F, Y(0), L(0));
33108
+ }), Pl(o, L, H(q.attenuationDistance.greaterThan(0), Ve(z(q.attenuationColor, Y(.001))).negate().div(q.attenuationDistance), Y(0))), Ul(o, L, Y(0), I(0));
33103
33109
  });
33104
33110
  }).Else(() => {
33105
33111
  N(gt.greaterThan(0), () => {
@@ -33117,7 +33123,7 @@ function Fx(e) {
33117
33123
  vt.assign(q.ior);
33118
33124
  });
33119
33125
  let e = Mm.wrap(Im(q.subsurfaceColor, q.subsurfaceRadius, q.subsurfaceRadiusScale)).toVar();
33120
- Pl(o, F, e.sigmaT.sub(e.sigmaS)), Ul(o, F, e.sigmaS, P(q.subsurfaceAnisotropy, -.99, .99));
33126
+ Pl(o, L, e.sigmaT.sub(e.sigmaS)), Ul(o, L, e.sigmaS, P(q.subsurfaceAnisotropy, -.99, .99));
33121
33127
  });
33122
33128
  }).Else(() => {
33123
33129
  N(gt.greaterThan(0), () => {
@@ -33127,25 +33133,25 @@ function Fx(e) {
33127
33133
  }), N(zt.isTransmissive.and(yt.greaterThan(0)), () => {
33128
33134
  yt.subAssign(1);
33129
33135
  }), Je.mulAssign(zt.throughput);
33130
- let e = bb(Dl(s, F)).faceN, t = ic(mt, H(I(e, zt.direction).lessThan(0), e.negate(), e));
33136
+ let e = bb(Dl(s, L)).faceN, t = ic(mt, H(F(e, zt.direction).lessThan(0), e.negate(), e));
33131
33137
  N(zt.isAlphaSkip.not(), () => {
33132
- Pe.assign(Pe.bitOr(G(jy.REDIRECTED)));
33138
+ B.assign(B.bitOr(G(jy.REDIRECTED)));
33133
33139
  }).Else(() => {
33134
33140
  pt.addAssign(1), N(pt.greaterThan(ne), () => {
33135
- Pt(H(I(W, qe.negate()).lessThan(0), W.negate(), W)), Ft(), ge();
33141
+ Pt(H(F(W, qe.negate()).lessThan(0), W.negate(), W)), Ft(), ge();
33136
33142
  });
33137
- }), _l(o, F, t, ut, ft, pt, H(zt.isAlphaSkip, gl(o, F).add(it), L(0))), vl(o, F, zt.direction, Pe), yl(o, F, Je, ol(o, F)), bl(o, F, Ye), Ml(o, F, G(gt), G(yt), _t, K, vt, G(bt.add(.5))), N(He.and(Pe.bitAnd(G(jy.AUX_LOCKED)).equal(G(0))), () => {
33138
- Rl(o, F, rt);
33139
- }), kl(s, F, Ze), ge();
33140
- }), Pe.assign(Pe.bitOr(G(jy.HAS_HIT_OPAQUE | jy.REDIRECTED)));
33143
+ }), _l(o, L, t, ut, ft, pt, H(zt.isAlphaSkip, gl(o, L).add(it), I(0))), vl(o, L, zt.direction, B), yl(o, L, Je, ol(o, L)), bl(o, L, Ye), Ml(o, L, G(gt), G(yt), _t, K, vt, G(bt.add(.5))), N(Be.and(B.bitAnd(G(jy.AUX_LOCKED)).equal(G(0))), () => {
33144
+ Rl(o, L, rt);
33145
+ }), kl(s, L, Ze), ge();
33146
+ }), B.assign(B.bitOr(G(jy.HAS_HIT_OPAQUE | jy.REDIRECTED)));
33141
33147
  let Bt = wt.emissive.toVar();
33142
33148
  N(Re(Bt).greaterThan(0), () => {
33143
- let e = H(Ge.not(), ue, L(1)), i = L(1).toVar();
33144
- Ue && N(ke.equal(R(1)).and(Se.greaterThan(R(0))).and(dt.greaterThan(0)), () => {
33145
- let e = ol(o, F);
33149
+ let e = H(Ge.not(), ue, I(1)), i = I(1).toVar();
33150
+ He && N(ke.equal(R(1)).and(Se.greaterThan(R(0))).and(dt.greaterThan(0)), () => {
33151
+ let e = ol(o, L);
33146
33152
  N(e.greaterThan(0), () => {
33147
- let s = gl(o, F).toVar(), c = Ke.sub(qe.mul(s)).toVar(), l = it.add(s).toVar(), u = L(0).toVar();
33148
- N(je.greaterThan(R(0)), () => {
33153
+ let s = gl(o, L).toVar(), c = Ke.sub(qe.mul(s)).toVar(), l = it.add(s).toVar(), u = I(0).toVar();
33154
+ N(Ae.greaterThan(R(0)), () => {
33149
33155
  u.assign(Ax(R(ct), l, qe, c, a, Ce, Me, n, t));
33150
33156
  }).Else(() => {
33151
33157
  u.assign(vx(R(ct), l, qe, c, n, r, Ee, t, lt));
@@ -33154,9 +33160,9 @@ function Fx(e) {
33154
33160
  pdf2: u
33155
33161
  }));
33156
33162
  });
33157
- }), Ye.assign(X(Ye.xyz.add(Jb(Bt.mul(Je).mul(e).mul(i), L(dt), pe, R(be))), Ye.w));
33163
+ }), Ye.assign(X(Ye.xyz.add(Jb(Bt.mul(Je).mul(e).mul(i), I(dt), pe, R(be))), Ye.w));
33158
33164
  });
33159
- let Vt = qe.negate().toVar(), Ht = V(U), Ut = H(I(Ht, Vt).lessThan(0), Ht.negate(), Ht).toVar(), Wt = bb(Dl(s, F)), Gt = Wt.faceN.toVar(), Kt = Ht.mul(Wt.liftScale), qt = (e) => gb({
33165
+ let Vt = qe.negate().toVar(), Ht = V(U), Ut = H(F(Ht, Vt).lessThan(0), Ht.negate(), Ht).toVar(), Wt = bb(Dl(s, L)), Gt = Wt.faceN.toVar(), Kt = Ht.mul(Wt.liftScale), qt = (e) => gb({
33160
33166
  hitPoint: mt,
33161
33167
  offsetNormal: Gt,
33162
33168
  lift: Kt,
@@ -33165,30 +33171,30 @@ function Fx(e) {
33165
33171
  L: e,
33166
33172
  cutoff: ve
33167
33173
  });
33168
- N(I(Ht, Vt).lessThan(0), () => {
33174
+ N(F(Ht, Vt).lessThan(0), () => {
33169
33175
  W.assign(W.negate());
33170
- }), N(He.and(Pe.bitAnd(G(jy.AUX_LOCKED)).equal(G(0))), () => {
33176
+ }), N(Be.and(B.bitAnd(G(jy.AUX_LOCKED)).equal(G(0))), () => {
33171
33177
  let e = pl(dl(c, Xe)).w;
33172
33178
  N(Mt, () => {
33173
- ll(c, Xe, W, e, P(Ot.mul(Nt), Y(0), Y(1))), Pe.assign(Pe.bitOr(G(jy.AUX_LOCKED)));
33179
+ ll(c, Xe, W, e, P(Ot.mul(Nt), Y(0), Y(1))), B.assign(B.bitOr(G(jy.AUX_LOCKED)));
33174
33180
  }).Else(() => {
33175
- let e = z(I(W, Vt), L(.001)), t = $s.wrap(pm(q, Ot));
33176
- rt.mulAssign(Qs.wrap(fm(t.f0, t.f90, t.eta, t.F0m, q.metalness, Y(0), L(0), t.F0, e, z(Tt, L(.02)))).E_total);
33181
+ let e = z(F(W, Vt), I(.001)), t = $s.wrap(pm(q, Ot));
33182
+ rt.mulAssign(Qs.wrap(fm(t.f0, t.f90, t.eta, t.F0m, q.metalness, Y(0), I(0), t.F0, e, z(Tt, I(.02)))).E_total);
33177
33183
  });
33178
33184
  });
33179
33185
  let Jt = tc.wrap(jc(q.metalness, q.roughness, q.transmission, q.clearcoat, q.emissive, q.subsurface)).toVar(), Yt = si(tt, R(0), dt, Ze, R(-1), _e, me).toVar(), Xt = li(tt, R(0), nt.add(R(2)), Ze, _e, me).toVar(), Zt = Ys({
33180
- specular: L(0),
33181
- diffuse: L(0),
33182
- sheen: L(0),
33183
- clearcoat: L(0),
33184
- transmission: L(0),
33185
- iridescence: L(0)
33186
+ specular: I(0),
33187
+ diffuse: I(0),
33188
+ sheen: I(0),
33189
+ clearcoat: I(0),
33190
+ transmission: I(0),
33191
+ iridescence: I(0)
33186
33192
  }), Qt = rc({
33187
- invRoughness: L(0),
33188
- metalFactor: L(.5),
33189
- iorFactor: L(.67),
33190
- maxSheenColor: L(0)
33191
- }), $t = Y(0).toVar(), en = Y(0).toVar(), tn = L(0).toVar(), nn = De(!1).toVar(), rn = Y(1).toVar();
33193
+ invRoughness: I(0),
33194
+ metalFactor: I(.5),
33195
+ iorFactor: I(.67),
33196
+ maxSheenColor: I(0)
33197
+ }), $t = Y(0).toVar(), en = Y(0).toVar(), tn = I(0).toVar(), nn = De(!1).toVar(), rn = Y(1).toVar();
33192
33198
  N(q.clearcoat.greaterThan(0), () => {
33193
33199
  let e = Hs({
33194
33200
  origin: Ke,
@@ -33210,31 +33216,31 @@ function Fx(e) {
33210
33216
  let e = Js.wrap(qb(Vt, W, q, Yt, Xt, Ze, tt, _e, me, nt, Jt, !1, Zt, !1, Qt));
33211
33217
  $t.assign(e.direction), en.assign(e.value), tn.assign(e.pdf), nn.assign(e.isTransmission), rn.assign(e.colorWeight);
33212
33218
  });
33213
- let an = Ks.wrap(Gb(mt, W, Ut, q, Vt, $t, tn, en, dt, Ze, tt, _e, me, nt, w, T, E, D, O, k, A, ee, t, n, r, d, f, p, i, x, S, C, m, De(!1), Kt, Gt, ve, Ie, Le, ze, Be)).shadowed.toVar(), on = H(dt.greaterThan(0), ue, L(1));
33214
- Ye.assign(X(Ye.xyz.add(Jb(Je.mul(an).mul(on), L(dt), pe, R(be))), Ye.w)), Ue && N(ke.equal(R(1)).and(Se.greaterThan(R(0))), () => {
33219
+ let an = Ks.wrap(Gb(mt, W, Ut, q, Vt, $t, tn, en, dt, Ze, tt, _e, me, nt, w, T, E, D, O, k, A, ee, t, n, r, d, f, p, i, x, S, C, m, De(!1), Kt, Gt, ve, Pe, Ie, Le, ze)).shadowed.toVar(), on = H(dt.greaterThan(0), ue, I(1));
33220
+ Ye.assign(X(Ye.xyz.add(Jb(Je.mul(an).mul(on), I(dt), pe, R(be))), Ye.w)), He && N(ke.equal(R(1)).and(Se.greaterThan(R(0))), () => {
33215
33221
  let e = M(([e, i, a]) => wh(e, i, a, mb, t, n, r));
33216
- N(je.greaterThan(R(0)), () => {
33222
+ N(Ae.greaterThan(R(0)), () => {
33217
33223
  let r = ix.wrap(kx(mt, W, Ze, tt, _e, me, nt, a, a, Ce, n, t));
33218
33224
  N(r.valid.and(r.pdf.greaterThan(0)), () => {
33219
- let t = z(L(0), I(W, r.direction));
33220
- N(t.greaterThan(0).and(I(r.direction, Ut).greaterThan(0)), () => {
33225
+ let t = z(I(0), F(W, r.direction));
33226
+ N(t.greaterThan(0).and(F(r.direction, Ut).greaterThan(0)), () => {
33221
33227
  let n = qt(r.direction).toVar(), i = r.position.sub(n).toVar(), a = Re(i).toVar(), o = e(n, i.div(a), a.mul(ac));
33222
33228
  N(o.greaterThan(0), () => {
33223
33229
  let e = Ab(Vt, r.direction, W, q), n = Wb(Vt, r.direction, W, q), i = H(n.greaterThan(0), Cc({
33224
33230
  pdf1: r.pdf,
33225
33231
  pdf2: n
33226
- }), L(1)), a = r.emission.mul(e).mul(t).div(r.pdf).mul(o).mul(Oe).mul(i);
33227
- Ye.assign(X(Ye.xyz.add(Jb(a.mul(Je).mul(on), L(dt), pe, R(be))), Ye.w));
33232
+ }), I(1)), a = r.emission.mul(e).mul(t).div(r.pdf).mul(o).mul(Oe).mul(i);
33233
+ Ye.assign(X(Ye.xyz.add(Jb(a.mul(Je).mul(on), I(dt), pe, R(be))), Ye.w));
33228
33234
  });
33229
33235
  });
33230
33236
  });
33231
33237
  }).Else(() => {
33232
33238
  let r = Sx(mt, W, Ut, Vt, q, dt, Ze, tt, _e, me, nt, Oe, a, Ce, Se, Ee, n, t, e, M(([e, , t]) => qt(t).sub(e)));
33233
- Ye.assign(X(Ye.xyz.add(Jb(r.mul(Je).mul(on), L(dt), pe, R(be))), Ye.w));
33239
+ Ye.assign(X(Ye.xyz.add(Jb(r.mul(Je).mul(on), I(dt), pe, R(be))), Ye.w));
33234
33240
  });
33235
33241
  });
33236
33242
  let sn = Ph.wrap(Kb(W, q, $t, tn, en, nn, rn, Ze, tt, _e, me, nt)).toVar(), cn = sn.direction.toVar();
33237
- N(nn.not().and(I(cn, Ut).lessThanEqual(0)), () => {
33243
+ N(nn.not().and(F(cn, Ut).lessThanEqual(0)), () => {
33238
33244
  Pt(W), Ft(), ge();
33239
33245
  });
33240
33246
  let Z = z(sn.combinedPdf, .001).toVar();
@@ -33245,10 +33251,10 @@ function Fx(e) {
33245
33251
  }), Je.divAssign(ln), N(ut.greaterThanEqual(te), () => {
33246
33252
  Pt(W), Ft(), ge();
33247
33253
  });
33248
- let un = ic(mt, H(I(Gt, cn).lessThan(0), Gt.negate(), Gt)), dn = nn.not().and(I(W, cn).greaterThan(0));
33249
- Pe.assign(Pe.sub(Pe.bitAnd(G(jy.SUN_NEE))).bitOr(H(dn, G(jy.SUN_NEE), G(0)))), _l(o, F, un, ut.add(1), ft, pt), vl(o, F, cn, Pe), yl(o, F, Je, Z), bl(o, F, Ye), Ml(o, F, G(gt), G(yt), _t, K, vt, G(bt.add(.5))), N(He.and(Pe.bitAnd(G(jy.AUX_LOCKED)).equal(G(0))), () => {
33250
- Rl(o, F, rt);
33251
- }), kl(s, F, Ze);
33254
+ let un = ic(mt, H(F(Gt, cn).lessThan(0), Gt.negate(), Gt)), dn = nn.not().and(F(W, cn).greaterThan(0));
33255
+ B.assign(B.sub(B.bitAnd(G(jy.SUN_NEE))).bitOr(H(dn, G(jy.SUN_NEE), G(0)))), _l(o, L, un, ut.add(1), ft, pt), vl(o, L, cn, B), yl(o, L, Je, Z), bl(o, L, Ye), Ml(o, L, G(gt), G(yt), _t, K, vt, G(bt.add(.5))), N(Be.and(B.bitAnd(G(jy.AUX_LOCKED)).equal(G(0))), () => {
33256
+ Rl(o, L, rt);
33257
+ }), kl(s, L, Ze);
33252
33258
  });
33253
33259
  }
33254
33260
  //#endregion
@@ -33290,12 +33296,12 @@ function Bx(e) {
33290
33296
  return M(() => {
33291
33297
  let e = R(Dt.x).mul(16).add(R(Be.x)), S = R(Dt.y).mul(16).add(R(Be.y));
33292
33298
  N(e.lessThan(v).and(S.lessThan(b)), () => {
33293
- let b = S.add(y), C = G(S.mul(v).add(e)), T = G(b.mul(v).add(e)), O = sl(t, C), te = O.xyz.toVar(), oe = H(m, O.w, L(1)).toVar(), se = ie.and(s.greaterThan(G(0))).and(ee.element(T).equal(G(1))).toVar(), ce = X(0).toVar(), le = X(0).xyz.toVar(), ue = L(0).toVar();
33299
+ let b = S.add(y), C = G(S.mul(v).add(e)), T = G(b.mul(v).add(e)), O = sl(t, C), te = O.xyz.toVar(), oe = H(m, O.w, I(1)).toVar(), se = ie.and(s.greaterThan(G(0))).and(ee.element(T).equal(G(1))).toVar(), ce = X(0).toVar(), le = X(0).xyz.toVar(), ue = I(0).toVar();
33294
33300
  N(j, () => {
33295
33301
  let e = dl(n, C);
33296
33302
  ce.assign(pl(e)), le.assign(X(ml(e), 0).xyz), ue.assign(fl(e));
33297
33303
  });
33298
- let de = J(L(e).add(.5), L(b).add(.5)).div(o);
33304
+ let de = J(I(e).add(.5), I(b).add(.5)).div(o);
33299
33305
  N(c.and(d.not()).and(s.greaterThan(G(0))).and(l).and(x.notEqual(R(11))), () => {
33300
33306
  let e = pt(h, de, 0).toVar();
33301
33307
  te.assign(H(se, e.xyz, B(e.xyz, O.xyz, u))), N(j.and(f), () => {
@@ -33310,14 +33316,14 @@ function Bx(e) {
33310
33316
  }), N(ae, () => {
33311
33317
  let e = Sc(O.xyz), t = w.element(T).toVar(), n = H(se, t, B(t, e.mul(e), u)).toVar();
33312
33318
  w.element(T).assign(n);
33313
- let r = Sc(te).toVar(), i = n.sub(r.mul(r)).max(L(0)).div(L(s).add(1)).sqrt().toVar(), a = i.div(r.add(L(1e-4))), o = H(r.lessThan(L(1)), r.sqrt(), r), c = i.div(o.add(L(1e-4))).lessThan(E);
33319
+ let r = Sc(te).toVar(), i = n.sub(r.mul(r)).max(I(0)).div(I(s).add(1)).sqrt().toVar(), a = i.div(r.add(I(1e-4))), o = H(r.lessThan(I(1)), r.sqrt(), r), c = i.div(o.add(I(1e-4))).lessThan(E);
33314
33320
  N(re.or(ie), () => {
33315
- let e = re.and(s.greaterThanEqual(G(D))).and(c), t = A.element(T).toVar(), n = t.bitAnd(G(1073741823)).toVar(), i = n.toVar(), o = O.w.greaterThan(L(.5)), l = t.bitAnd(G(1073741824)).notEqual(G(0)), u = H(s.equal(G(0)), H(o, G(1073741824), G(0)), H(o.or(l), G(1073741824), G(0))).toVar();
33321
+ let e = re.and(s.greaterThanEqual(G(D))).and(c), t = A.element(T).toVar(), n = t.bitAnd(G(1073741823)).toVar(), i = n.toVar(), o = O.w.greaterThan(I(.5)), l = t.bitAnd(G(1073741824)).notEqual(G(0)), u = H(s.equal(G(0)), H(o, G(1073741824), G(0)), H(o.or(l), G(1073741824), G(0))).toVar();
33316
33322
  N(ie, () => {
33317
33323
  N(s.equal(G(0)), () => {
33318
33324
  i.assign(G(0));
33319
33325
  }), N(se.not().and(s.greaterThan(G(0))), () => {
33320
- let e = s.greaterThanEqual(G(D)).and(a.lessThan(k)).and(r.greaterThan(L(0)));
33326
+ let e = s.greaterThanEqual(G(D)).and(a.lessThan(k)).and(r.greaterThan(I(0)));
33321
33327
  i.assign(H(e, n.add(G(1)), G(0)));
33322
33328
  });
33323
33329
  }), A.element(T).assign(i.bitOr(H(e, G(2147483648), G(0))).bitOr(u));
@@ -33340,10 +33346,10 @@ var Vx = /* @__PURE__ */ wt("\n fn visualizeDepth( depth: f32 ) -> vec3f {\n re
33340
33346
  direction: t
33341
33347
  }), v = qs.wrap(pb(_, n, r).toVar());
33342
33348
  return N(l.equal(R(7)), () => {
33343
- let e = L(v.triTests).div(u);
33349
+ let e = I(v.triTests).div(u);
33344
33350
  g.assign(H(e.lessThan(1), X(Y(e), 1), X(1, 0, 0, 1)));
33345
33351
  }), N(l.equal(R(8)), () => {
33346
- let e = L(v.boxTests).div(u);
33352
+ let e = I(v.boxTests).div(u);
33347
33353
  g.assign(H(e.lessThan(1), X(Y(e), 1), X(1, 0, 0, 1)));
33348
33354
  }), N(l.equal(R(10)), () => {
33349
33355
  N(c, () => {
@@ -33354,7 +33360,7 @@ var Vx = /* @__PURE__ */ wt("\n fn visualizeDepth( depth: f32 ) -> vec3f {\n re
33354
33360
  environmentMatrix: o,
33355
33361
  environmentIntensity: s,
33356
33362
  enableEnvironmentLight: c
33357
- }).toVar(), n = I(e.xyz, pc).toVar(), r = n, i = z(u.mul(.1), .001), l = n.div(i), p = Ve(n.add(1e-6)).add(10).div(10), m = H(u.greaterThan(1), l, p).toVar(), h = Y(0).toVar();
33363
+ }).toVar(), n = F(e.xyz, pc).toVar(), r = n, i = z(u.mul(.1), .001), l = n.div(i), p = Ve(n.add(1e-6)).add(10).div(10), m = H(u.greaterThan(1), l, p).toVar(), h = Y(0).toVar();
33358
33364
  N(m.lessThan(.2), () => {
33359
33365
  h.assign(B(Y(0, 0, 0), Y(0, 0, .5), m.mul(5)));
33360
33366
  }).ElseIf(m.lessThan(.4), () => {
@@ -33384,7 +33390,7 @@ var Vx = /* @__PURE__ */ wt("\n fn visualizeDepth( depth: f32 ) -> vec3f {\n re
33384
33390
  }).Else(() => {
33385
33391
  let t = Us.wrap(Lc(v.materialIndex, i)).toVar(), n = ec.wrap(bh(t, v.uv, v.normal, X(0))).toVar().emissive.toVar(), r = Re(n).toVar();
33386
33392
  N(r.greaterThan(0), () => {
33387
- let t = n.div(z(r.mul(.1), .001)).toVar(), i = Re(e.sub(v.hitPoint)), a = P(L(1).sub(i.div(10)), 0, 1), o = B(t, t.mul(Y(1, .8, .6)), a.mul(.3));
33393
+ let t = n.div(z(r.mul(.1), .001)).toVar(), i = Re(e.sub(v.hitPoint)), a = P(I(1).sub(i.div(10)), 0, 1), o = B(t, t.mul(Y(1, .8, .6)), a.mul(.3));
33388
33394
  g.assign(X(o, 1));
33389
33395
  }).Else(() => {
33390
33396
  g.assign(X(0, 0, .1, 1));
@@ -33456,7 +33462,7 @@ var Vx = /* @__PURE__ */ wt("\n fn visualizeDepth( depth: f32 ) -> vec3f {\n re
33456
33462
  });
33457
33463
  }), N(l.equal(R(6)), () => {
33458
33464
  N(v.didHit, () => {
33459
- let e = v.normal.toVar(), n = V(t.sub(e.mul(I(t, e).mul(2)))).toVar(), r = Eb({
33465
+ let e = v.normal.toVar(), n = V(t.sub(e.mul(F(t, e).mul(2)))).toVar(), r = Eb({
33460
33466
  tex: a,
33461
33467
  samp: et(a),
33462
33468
  direction: n,
@@ -33483,7 +33489,7 @@ function Gx(e) {
33483
33489
  return M(() => {
33484
33490
  let e = R(Dt.x).mul(16).add(R(Be.x)), ne = R(Dt.y).mul(16).add(R(Be.y));
33485
33491
  N(e.lessThan(a).and(ne.lessThan(o)), () => {
33486
- let a = J(L(e).add(.5), L(ne).add(.5)), o = qr({ state: G(ne.mul(R(i.x)).add(e)).add(G(1)) }).toVar(), re = Hs.wrap(Yy(a.div(i), o, s, c, d, f, p, m, h, g, _, v, y, b, x, S, C)), ie = X(1, 0, 1, 1).toVar();
33492
+ let a = J(I(e).add(.5), I(ne).add(.5)), o = qr({ state: G(ne.mul(R(i.x)).add(e)).add(G(1)) }).toVar(), re = Hs.wrap(Yy(a.div(i), o, s, c, d, f, p, m, h, g, _, v, y, b, x, S, C)), ie = X(1, 0, 1, 1).toVar();
33487
33493
  N(ee.equal(R(9)), () => {
33488
33494
  let e = ui(a, R(0), R(1), o, i, j);
33489
33495
  ie.assign(X(e, 1, 1));
@@ -33625,7 +33631,7 @@ var Xx = a("wavefront"), Zx = 256, Qx = [
33625
33631
  }
33626
33632
  this.performanceMonitor?.start();
33627
33633
  let t = this.frameCount, n = this.renderMode.value, r = null;
33628
- n === 1 && t === 0 && (r = this.maxBounces.value, this.maxBounces.value = 1), this._handleResize(), this.manageASVGFForRenderMode(n), e && e.setState("tileRenderingComplete", !0), this.cameraChanged = this._updateCameraUniforms(), this.cameraOptimizer?.updateInteractionMode(this.cameraChanged), this.cameraChanged && (this._curveSizingValid = !1, this._readbackGeneration++, this._convergedFraction = 0, this._convergedGeometryFraction = 0, this._lastActivePixelCount = 0), this._updateAccumulationUniforms(t, n);
33634
+ n === 1 && t === 0 && (r = this.maxBounces.value, this.maxBounces.value = 1), this._handleResize(), this.manageASVGFForRenderMode(n), e && e.setState("tileRenderingComplete", !0), this.cameraChanged = this._updateCameraUniforms(), this.cameraOptimizer?.updateInteractionMode(this.cameraChanged), this.cameraChanged && (this._curveSizingValid = !1, this._readbackGeneration++, this._convergedFraction = 0, this._convergedGeometryFraction = 0, this._lastActivePixelCount = 0), this._updateAccumulationUniforms(t);
33629
33635
  let i = this._updateAuxAccumulationUniforms(t);
33630
33636
  this.frame.value = t, this.seedFrame.value = this._seedTick++, this.tracedFrames++, this._setWfDispatch();
33631
33637
  let a = this.storageTextures.getReadTextures();
@@ -34423,9 +34429,9 @@ var Xx = a("wavefront"), Zx = 256, Qx = [
34423
34429
  this._computeNode = M(([r, i]) => {
34424
34430
  let u = R(Dt.x).mul(8).add(R(Be.x)), d = R(Dt.y).mul(8).add(R(Be.y));
34425
34431
  N(u.lessThan(R(a)).and(d.lessThan(R(o))), () => {
34426
- let f = Hs(Gy(J(L(u).add(.5).div(a), L(d).add(.5).div(o)), r, i, this.cameraRay)), p = qs.wrap(fb(f, t, e)), m = p.normal.mul(.5).add(.5), h = We(p.dst, L(65504)), g = p.didHit.select(X(m, h), X(0, 0, 0, L(65504)));
34432
+ let f = Hs(Gy(J(I(u).add(.5).div(a), I(d).add(.5).div(o)), r, i, this.cameraRay)), p = qs.wrap(fb(f, t, e)), m = p.normal.mul(.5).add(.5), h = We(p.dst, I(65504)), g = p.didHit.select(X(m, h), X(0, 0, 0, I(65504)));
34427
34433
  gt(s, St(G(u), G(d)), g).toWriteOnly(), l && gt(l, St(G(u), G(d)), Ct(G(p.instanceLeaf.add(1)), 0, 0, 0)).toWriteOnly();
34428
- let _ = p.normal.toVar(), v = L(1).toVar();
34434
+ let _ = p.normal.toVar(), v = I(1).toVar();
34429
34435
  N(p.didHit, () => {
34430
34436
  let r = Us.wrap(Lc(p.materialIndex, n)).toVar(), i = nc.wrap(uh(p.uv, r)).toVar(), a = X(0).toVar();
34431
34437
  N(r.normalMapIndex.greaterThanEqual(R(0)), () => {
@@ -34529,10 +34535,10 @@ var Xx = a("wavefront"), Zx = 256, Qx = [
34529
34535
  this._screenSpaceComputeNode = M(([t, n]) => {
34530
34536
  let s = R(Dt.x).mul(16).add(R(Be.x)), c = R(Dt.y).mul(16).add(R(Be.y));
34531
34537
  N(s.lessThan(R(i)).and(c.lessThan(R(a))), () => {
34532
- let l = W(e, Ie(s, c)).w, u = J(L(s).add(.5).div(i), L(c).add(.5).div(a)), d = X(0, 0, l, 1).toVar();
34533
- N(l.lessThan(L(6e4)), () => {
34538
+ let l = W(e, Ie(s, c)).w, u = J(I(s).add(.5).div(i), I(c).add(.5).div(a)), d = X(0, 0, l, 1).toVar();
34539
+ N(l.lessThan(I(6e4)), () => {
34534
34540
  let e = Ky(u, l, t, n, this.cameraRay), i = r.mul(X(e, 1)), a = i.xy.div(i.w), o = J(a.x.mul(.5).add(.5), a.y.mul(-.5).add(.5)), s = u.sub(o), c = o.x.greaterThanEqual(0).and(o.x.lessThanEqual(1)).and(o.y.greaterThanEqual(0)).and(o.y.lessThanEqual(1));
34535
- d.assign(c.select(X(s, l, 1), X(L(1e3), L(1e3), l, 0)));
34541
+ d.assign(c.select(X(s, l, 1), X(I(1e3), I(1e3), l, 0)));
34536
34542
  }), gt(o, St(G(s), G(c)), d).toWriteOnly();
34537
34543
  });
34538
34544
  })(t, n).compute([
@@ -34551,8 +34557,8 @@ var Xx = a("wavefront"), Zx = 256, Qx = [
34551
34557
  let u = R(Dt.x).mul(16).add(R(Be.x)), d = R(Dt.y).mul(16).add(R(Be.y));
34552
34558
  N(u.lessThan(R(s)).and(d.lessThan(R(c))), () => {
34553
34559
  let f = W(e, Ie(u, d)).w, p = X(0, 0, 0, 0).toVar();
34554
- N(i.lessThan(.5).and(f.lessThan(L(6e4))), () => {
34555
- let e = J(L(u).add(.5).div(s), L(d).add(.5).div(c)), i = Ky(e, f, t, n, this.cameraRay), l = r.mul(X(i, 1)), m = l.xy.div(l.w), h = J(m.x.mul(.5).add(.5), m.y.mul(-.5).add(.5)), g = h.x.greaterThanEqual(0).and(h.x.lessThanEqual(1)).and(h.y.greaterThanEqual(0)).and(h.y.lessThanEqual(1)), _ = e.sub(h), v = Y(_.x.div(a).mul(o), _.y.div(a).mul(o), 0);
34560
+ N(i.lessThan(.5).and(f.lessThan(I(6e4))), () => {
34561
+ let e = J(I(u).add(.5).div(s), I(d).add(.5).div(c)), i = Ky(e, f, t, n, this.cameraRay), l = r.mul(X(i, 1)), m = l.xy.div(l.w), h = J(m.x.mul(.5).add(.5), m.y.mul(-.5).add(.5)), g = h.x.greaterThanEqual(0).and(h.x.lessThanEqual(1)).and(h.y.greaterThanEqual(0)).and(h.y.lessThanEqual(1)), _ = e.sub(h), v = Y(_.x.div(a).mul(o), _.y.div(a).mul(o), 0);
34556
34562
  p.assign(g.select(X(v, 1), X(0, 0, 0, .5)));
34557
34563
  }), gt(l, St(G(u), G(d)), p).toWriteOnly();
34558
34564
  });
@@ -34626,7 +34632,7 @@ var Xx = a("wavefront"), Zx = 256, Qx = [
34626
34632
  dispose() {
34627
34633
  this._screenSpaceComputeNode?.dispose(), this._worldSpaceComputeNode?.dispose(), this._screenSpaceStorageTex?.dispose(), this._worldSpaceStorageTex?.dispose(), this.screenSpaceTarget?.dispose(), this.worldSpaceTarget?.dispose(), this._normalDepthTexNode?.dispose();
34628
34634
  }
34629
- }, nS = (e) => H(e.equal(e), e, L(0)).clamp(0, 1e7), rS = (e) => Y(nS(e.x), nS(e.y), nS(e.z)), iS = class extends pi {
34635
+ }, nS = (e) => H(e.equal(e), e, I(0)).clamp(0, 1e7), rS = (e) => Y(nS(e.x), nS(e.y), nS(e.z)), iS = class extends pi {
34630
34636
  constructor(e, t = {}) {
34631
34637
  super("ASVGF", {
34632
34638
  ...t,
@@ -34669,7 +34675,7 @@ var Xx = a("wavefront"), Zx = 256, Qx = [
34669
34675
  let d = Be.x, f = Be.y, p = f.mul(8).add(d), m = R(Dt.x).mul(8).sub(2).toVar(), h = R(Dt.y).mul(8).sub(2).toVar(), g = (i) => {
34670
34676
  let a = i.mod(G(12)), o = i.div(G(12)), d = m.add(R(a)).clamp(R(0), R(s).sub(1)), f = h.add(R(o)).clamp(R(0), R(c).sub(1)), p = W(e, Ie(d, f)).xyz, g = W(t, Ie(d, f)).xyz, _ = Sc(rS(p.div(z(g, Y(Ui))))).toVar();
34671
34677
  l.element(i).assign(_);
34672
- let v = W(n, Ie(d, f)), y = L(d).sub(v.x.mul(s)), b = L(f).sub(v.y.mul(c)), x = R(y.add(.5)).clamp(R(0), R(s).sub(1)), S = R(b.add(.5)).clamp(R(0), R(c).sub(1)), C = v.w.greaterThan(.5), w = W(r, Ie(x, S)).xyz, T = C.select(Sc(w), _);
34678
+ let v = W(n, Ie(d, f)), y = I(d).sub(v.x.mul(s)), b = I(f).sub(v.y.mul(c)), x = R(y.add(.5)).clamp(R(0), R(s).sub(1)), S = R(b.add(.5)).clamp(R(0), R(c).sub(1)), C = v.w.greaterThan(.5), w = W(r, Ie(x, S)).xyz, T = C.select(Sc(w), _);
34673
34679
  u.element(i).assign(T);
34674
34680
  };
34675
34681
  g(p);
@@ -34683,17 +34689,17 @@ var Xx = a("wavefront"), Zx = 256, Qx = [
34683
34689
  }), Et();
34684
34690
  let y = R(Dt.x).mul(8).add(R(d)), b = R(Dt.y).mul(8).add(R(f));
34685
34691
  N(y.lessThan(R(s)).and(b.lessThan(R(c))), () => {
34686
- let e = L(0).toVar(), t = L(0).toVar();
34692
+ let e = I(0).toVar(), t = I(0).toVar();
34687
34693
  for (let n = -2; n <= 2; n++) for (let r = -2; r <= 2; r++) {
34688
34694
  let i = f.add(G(2 + n)).mul(G(12)).add(d.add(G(2 + r))), a = l.element(i);
34689
34695
  e.addAssign(a), t.addAssign(a.mul(a));
34690
34696
  }
34691
- let p = e.div(25), m = U(z(t.div(25).sub(p.mul(p)), L(0))).mul(a).toVar(), h = L(0).toVar();
34697
+ let p = e.div(25), m = U(z(t.div(25).sub(p.mul(p)), I(0))).mul(a).toVar(), h = I(0).toVar();
34692
34698
  for (let e = -2; e <= 2; e++) for (let t = -2; t <= 2; t++) {
34693
- let n = f.add(G(2 + e)).mul(G(12)).add(d.add(G(2 + t))), r = l.element(n), a = u.element(n), o = z(z(ve(r.sub(a)).sub(m), L(0)).div(z(z(r, a), L(.001))).sub(i), L(0)).div(z(L(1).sub(i), L(1e-4)));
34699
+ let n = f.add(G(2 + e)).mul(G(12)).add(d.add(G(2 + t))), r = l.element(n), a = u.element(n), o = z(z(ve(r.sub(a)).sub(m), I(0)).div(z(z(r, a), I(.001))).sub(i), I(0)).div(z(I(1).sub(i), I(1e-4)));
34694
34700
  h.addAssign(o.mul(o));
34695
34701
  }
34696
- let g = h.div(25).clamp(0, 1).toVar(), _ = W(n, Ie(y, b)), v = R(L(y).sub(_.x.mul(s)).add(.5)).clamp(R(0), R(s).sub(1)), x = R(L(b).sub(_.y.mul(c)).add(.5)).clamp(R(0), R(c).sub(1)), S = _.w.greaterThan(.5).select(W(r, Ie(v, x)).w, L(0)).div(4).clamp(0, 1), C = g.mul(S);
34702
+ let g = h.div(25).clamp(0, 1).toVar(), _ = W(n, Ie(y, b)), v = R(I(y).sub(_.x.mul(s)).add(.5)).clamp(R(0), R(s).sub(1)), x = R(I(b).sub(_.y.mul(c)).add(.5)).clamp(R(0), R(c).sub(1)), S = _.w.greaterThan(.5).select(W(r, Ie(v, x)).w, I(0)).div(4).clamp(0, 1), C = g.mul(S);
34697
34703
  gt(o, St(G(y), G(b)), X(C, g, m, 1)).toWriteOnly();
34698
34704
  });
34699
34705
  })().compute([
@@ -34716,14 +34722,14 @@ var Xx = a("wavefront"), Zx = 256, Qx = [
34716
34722
  N(g.lessThan(R(m)).and(_.lessThan(R(h))), () => {
34717
34723
  let v = Ie(g, _), y = W(t, v), b = y.xyz, x = y.w, S = W(n, v).xyz, C = z(S, Y(Ui)), w = rS(b.div(C)), T = X(w, 1).toVar(), E = X(b, x).toVar();
34718
34724
  N(f.greaterThan(.5).and(p.lessThan(.5)), () => {
34719
- let e = W(r, v), t = e.w.greaterThan(.5), n = L(g).sub(e.x.mul(m)), c = L(_).sub(e.y.mul(h)), f = n.greaterThanEqual(0).and(n.lessThan(L(m))).and(c.greaterThanEqual(0)).and(c.lessThan(L(h)));
34725
+ let e = W(r, v), t = e.w.greaterThan(.5), n = I(g).sub(e.x.mul(m)), c = I(_).sub(e.y.mul(h)), f = n.greaterThanEqual(0).and(n.lessThan(I(m))).and(c.greaterThanEqual(0)).and(c.lessThan(I(h)));
34720
34726
  N(t.and(f), () => {
34721
- let e = W(i, v), t = e.xyz.mul(2).sub(1), r = e.w, f = R(n), p = R(c), g = f.add(R(1)), _ = p.add(R(1)), y = n.sub(L(f)), b = c.sub(L(p)), S = f.clamp(R(0), R(m).sub(1)), D = g.clamp(R(0), R(m).sub(1)), O = p.clamp(R(0), R(h).sub(1)), k = _.clamp(R(0), R(h).sub(1)), A = L(1).sub(y).mul(L(1).sub(b)), ee = y.mul(L(1).sub(b)), te = L(1).sub(y).mul(b), j = y.mul(b), ne = (e, n, i) => {
34722
- let o = W(a, Ie(e, n)), s = o.xyz.mul(2).sub(1), c = o.w, l = Xe(I(t, s).clamp(0, 1), L(16)), u = Ae(ve(r.sub(c)).div(z(r, L(.001))).div(L(.05)).negate());
34727
+ let e = W(i, v), t = e.xyz.mul(2).sub(1), r = e.w, f = R(n), p = R(c), g = f.add(R(1)), _ = p.add(R(1)), y = n.sub(I(f)), b = c.sub(I(p)), S = f.clamp(R(0), R(m).sub(1)), D = g.clamp(R(0), R(m).sub(1)), O = p.clamp(R(0), R(h).sub(1)), k = _.clamp(R(0), R(h).sub(1)), A = I(1).sub(y).mul(I(1).sub(b)), ee = y.mul(I(1).sub(b)), te = I(1).sub(y).mul(b), j = y.mul(b), ne = (e, n, i) => {
34728
+ let o = W(a, Ie(e, n)), s = o.xyz.mul(2).sub(1), c = o.w, l = Xe(F(t, s).clamp(0, 1), I(16)), u = je(ve(r.sub(c)).div(z(r, I(.001))).div(I(.05)).negate());
34723
34729
  return i.mul(l).mul(u);
34724
34730
  }, re = ne(S, O, A), ie = ne(D, O, ee), ae = ne(S, k, te), oe = ne(D, k, j), se = re.add(ie).add(ae).add(oe);
34725
- N(se.greaterThan(L(.01)), () => {
34726
- let e = W(o, Ie(S, O)), t = W(o, Ie(D, O)), n = W(o, Ie(S, k)), r = W(o, Ie(D, k)), i = L(1).div(se), a = e.xyz.mul(re).add(t.xyz.mul(ie)).add(n.xyz.mul(ae)).add(r.xyz.mul(oe)).mul(i), c = e.w.mul(re).add(t.w.mul(ie)).add(n.w.mul(ae)).add(r.w.mul(oe)).mul(i), f = W(s, v).x.mul(d).clamp(0, 1), p = rS(B(a, w, B(z(L(1).div(c.add(1)), u), L(1), f))), m = We(c.add(1), l);
34731
+ N(se.greaterThan(I(.01)), () => {
34732
+ let e = W(o, Ie(S, O)), t = W(o, Ie(D, O)), n = W(o, Ie(S, k)), r = W(o, Ie(D, k)), i = I(1).div(se), a = e.xyz.mul(re).add(t.xyz.mul(ie)).add(n.xyz.mul(ae)).add(r.xyz.mul(oe)).mul(i), c = e.w.mul(re).add(t.w.mul(ie)).add(n.w.mul(ae)).add(r.w.mul(oe)).mul(i), f = W(s, v).x.mul(d).clamp(0, 1), p = rS(B(a, w, B(z(I(1).div(c.add(1)), u), I(1), f))), m = We(c.add(1), l);
34727
34733
  T.assign(X(p, m)), E.assign(X(p.mul(C), x));
34728
34734
  });
34729
34735
  });
@@ -34749,17 +34755,17 @@ var Xx = a("wavefront"), Zx = 256, Qx = [
34749
34755
  let e = W(t, f).xyz;
34750
34756
  p.assign(X(e, 1));
34751
34757
  }).ElseIf(s.equal(R(1)), () => {
34752
- let t = L(0).toVar(), n = L(0).toVar();
34758
+ let t = I(0).toVar(), n = I(0).toVar();
34753
34759
  for (let r = -1; r <= 1; r++) for (let i = -1; i <= 1; i++) {
34754
34760
  let a = W(e, Ie(u.add(i).clamp(R(0), R(c).sub(1)), d.add(r).clamp(R(0), R(l).sub(1)))).xyz, o = Sc(a);
34755
34761
  t.addAssign(o), n.addAssign(o.mul(o));
34756
34762
  }
34757
34763
  t.divAssign(9), n.divAssign(9);
34758
- let r = z(n.sub(t.mul(t)), L(0)).div(z(t.mul(t), L(1e-4))).mul(10).clamp(0, 1), i = r.sub(.5).mul(4).clamp(0, 1), a = r.mul(4).clamp(0, 1).sub(r.sub(.75).mul(4).clamp(0, 1)), o = L(1).sub(r.sub(.25).mul(4).clamp(0, 1));
34764
+ let r = z(n.sub(t.mul(t)), I(0)).div(z(t.mul(t), I(1e-4))).mul(10).clamp(0, 1), i = r.sub(.5).mul(4).clamp(0, 1), a = r.mul(4).clamp(0, 1).sub(r.sub(.75).mul(4).clamp(0, 1)), o = I(1).sub(r.sub(.25).mul(4).clamp(0, 1));
34759
34765
  p.assign(X(i, a, o, 1));
34760
34766
  }).ElseIf(s.equal(R(2)), () => {
34761
34767
  let e = W(n, f).w.div(32).clamp(0, 1);
34762
- p.assign(X(L(1).sub(e), e, L(.2), 1));
34768
+ p.assign(X(I(1).sub(e), e, I(.2), 1));
34763
34769
  }).ElseIf(s.equal(R(3)), () => {
34764
34770
  let e = W(i, f), t = ve(e.x).mul(100).clamp(0, 1), n = ve(e.y).mul(100).clamp(0, 1), r = t.add(n).clamp(0, 1);
34765
34771
  p.assign(X(t, n, r.mul(.3), 1));
@@ -34768,7 +34774,7 @@ var Xx = a("wavefront"), Zx = 256, Qx = [
34768
34774
  p.assign(X(e.xyz, 1));
34769
34775
  }).Else(() => {
34770
34776
  let e = W(a, f).x.mul(5).clamp(0, 1);
34771
- p.assign(X(e, e.mul(.5), L(1).sub(e), 1));
34777
+ p.assign(X(e, e.mul(.5), I(1).sub(e), 1));
34772
34778
  }), gt(o, St(G(u), G(d)), p).toWriteOnly();
34773
34779
  });
34774
34780
  })().compute([
@@ -34895,25 +34901,25 @@ var Xx = a("wavefront"), Zx = 256, Qx = [
34895
34901
  -bS,
34896
34902
  .5
34897
34903
  ]
34898
- ], SS = (e, t, n) => at(0, 1, L(1).sub(e.mul(t).add(n).abs())), CS = (e, t, n) => {
34904
+ ], SS = (e, t, n) => at(0, 1, I(1).sub(e.mul(t).add(n).abs())), CS = (e, t, n) => {
34899
34905
  let r = e.mul(t).add(n).abs().mul(-cS);
34900
- return L(1).div(r.mul(r).sub(r).add(1));
34901
- }, wS = (e) => B(L(1.570796), L(1.395402), tt(e)).mul(U(tt(L(1).sub(e)))), TS = (e, t) => L(1).sub(je(e.mul(e).mul(-200))).mul(Xe(tt(e), t)), ES = (e, t) => tt(e).mul(U(t.div(L(1).sub(t).add(aS)))), DS = (e, t, n, r) => {
34902
- let i = z(Se(ES(n, r.mul(B(tt(t), L(1), e)))), L(oS));
34903
- return L(1).div(i);
34906
+ return I(1).div(r.mul(r).sub(r).add(1));
34907
+ }, wS = (e) => B(I(1.570796), I(1.395402), tt(e)).mul(U(tt(I(1).sub(e)))), TS = (e, t) => I(1).sub(Me(e.mul(e).mul(-200))).mul(Xe(tt(e), t)), ES = (e, t) => tt(e).mul(U(t.div(I(1).sub(t).add(aS)))), DS = (e, t, n, r) => {
34908
+ let i = z(Se(ES(n, r.mul(B(tt(t), I(1), e)))), I(oS));
34909
+ return I(1).div(i);
34904
34910
  }, OS = (e, t) => {
34905
- let n = L(1).div(B(L(sS), L(1), tt(e.mul(t))));
34911
+ let n = I(1).div(B(I(sS), I(1), tt(e.mul(t))));
34906
34912
  return J(n, e.mul(n).negate());
34907
34913
  }, kS = (e, t, n) => {
34908
- let r = L(1).div(B(L(n), L(1), B(e.mul(e), e, tt(t))));
34914
+ let r = I(1).div(B(I(n), I(1), B(e.mul(e), e, tt(t))));
34909
34915
  return J(r, e.mul(r).negate());
34910
34916
  }, AS = (e, t) => {
34911
- let n = L(1).div(t);
34917
+ let n = I(1).div(t);
34912
34918
  return J(n, e.mul(n).negate());
34913
34919
  }, jS = (e, t, n, r) => {
34914
- let i = L(1).div(e.mul(t));
34915
- return J(i, I(r, n).mul(i).negate());
34916
- }, MS = (e) => J(1).sub(J(1).sub(Pe(e.mul(.5)).mul(2)).abs()).min(.99999), NS = (e) => Y(I(e, Y(.25, .5, .25)), I(e, Y(.5, 0, -.5)), I(e, Y(-.25, .5, -.25))), PS = (e) => {
34920
+ let i = I(1).div(e.mul(t));
34921
+ return J(i, F(r, n).mul(i).negate());
34922
+ }, MS = (e) => J(1).sub(J(1).sub(Pe(e.mul(.5)).mul(2)).abs()).min(.99999), NS = (e) => Y(F(e, Y(.25, .5, .25)), F(e, Y(.5, 0, -.5)), F(e, Y(-.25, .5, -.25))), PS = (e) => {
34917
34923
  let t = e.x.sub(e.z);
34918
34924
  return z(Y(t.add(e.y), e.x.add(e.z), t.sub(e.y)), Y(0));
34919
34925
  }, FS = (e, t) => t.add(aS).div(e.add(aS)), IS = (e, t) => X(e.xyz.mul(FS(e.x, t)), e.w), LS = (e) => X(NS(PS(e.xyz)), tt(e.w)), RS = (e, t) => U(t.sub(e.mul(e)).abs()), zS = (e, t) => J(e.x.mul(t.x).add(e.y.mul(t.y)), e.z.mul(t.x).add(e.w.mul(t.y))), BS = (e, t) => H(e.equal(0), X(0), t);
@@ -35007,10 +35013,10 @@ var HS = class extends pi {
35007
35013
  return H(Uy(this.cameraRay.cameraProjection), n, V(t.sub(e)));
35008
35014
  }
35009
35015
  _frustumSize(e) {
35010
- return this.minRectDimMulUnproject.mul(H(Uy(this.cameraRay.cameraProjection), L(1), e));
35016
+ return this.minRectDimMulUnproject.mul(H(Uy(this.cameraRay.cameraProjection), I(1), e));
35011
35017
  }
35012
35018
  _pixelUv(e, t) {
35013
- return J(L(e).add(.5).div(this.resW), L(t).add(.5).div(this.resH));
35019
+ return J(I(e).add(.5).div(this.resW), I(t).add(.5).div(this.resH));
35014
35020
  }
35015
35021
  _clampCoord(e, t) {
35016
35022
  return Ie(e.clamp(R(0), R(this.resW).sub(1)), t.clamp(R(0), R(this.resH).sub(1)));
@@ -35019,14 +35025,14 @@ var HS = class extends pi {
35019
35025
  return this._clampCoord(R(e.x.mul(this.resW)), R(e.y.mul(this.resH)));
35020
35026
  }
35021
35027
  _advancedNonLinear(e) {
35022
- let t = this.u.convergence, n = tt(e.div(L(1).add(this.u.maxAccum.mul(t.z)))), r = t.x.mul(B(t.y, L(1), n));
35023
- return L(1).div(L(1).add(r.mul(e)));
35028
+ let t = this.u.convergence, n = tt(e.div(I(1).add(this.u.maxAccum.mul(t.z)))), r = t.x.mul(B(t.y, I(1), n));
35029
+ return I(1).div(I(1).add(r.mul(e)));
35024
35030
  }
35025
35031
  _handover(e) {
35026
35032
  return tt(e.div(z(this.u.handoverFrames, 1)));
35027
35033
  }
35028
35034
  _bilinear(e) {
35029
- let t = e.mul(J(this.resW, this.resH)).sub(.5), n = Ne(t), r = tt(t.sub(n)), i = R(n.x), a = R(n.y), o = (e, t) => H(e.greaterThanEqual(R(0)).and(t.greaterThanEqual(R(0))).and(e.lessThan(R(this.resW))).and(t.lessThan(R(this.resH))), L(1), L(0));
35035
+ let t = e.mul(J(this.resW, this.resH)).sub(.5), n = L(t), r = tt(t.sub(n)), i = R(n.x), a = R(n.y), o = (e, t) => H(e.greaterThanEqual(R(0)).and(t.greaterThanEqual(R(0))).and(e.lessThan(R(this.resW))).and(t.lessThan(R(this.resH))), I(1), I(0));
35030
35036
  return {
35031
35037
  f: r,
35032
35038
  taps: [
@@ -35042,9 +35048,9 @@ var HS = class extends pi {
35042
35048
  o(i.add(1), a.add(1))
35043
35049
  ],
35044
35050
  customWeights: (e) => [
35045
- e[0].mul(L(1).sub(r.x)).mul(L(1).sub(r.y)),
35046
- e[1].mul(r.x).mul(L(1).sub(r.y)),
35047
- e[2].mul(L(1).sub(r.x)).mul(r.y),
35051
+ e[0].mul(I(1).sub(r.x)).mul(I(1).sub(r.y)),
35052
+ e[1].mul(r.x).mul(I(1).sub(r.y)),
35053
+ e[2].mul(I(1).sub(r.x)).mul(r.y),
35048
35054
  e[3].mul(r.x).mul(r.y)
35049
35055
  ],
35050
35056
  filter: (e) => B(B(e[0], e[1], r.x), B(e[2], e[3], r.x), r.y)
@@ -35057,7 +35063,7 @@ var HS = class extends pi {
35057
35063
  _sampleHistory(e, t, n, r, i) {
35058
35064
  let a = X(0).toVar();
35059
35065
  return N(i, () => {
35060
- let n = tt(t).mul(J(this.resW, this.resH)), r = Ne(n.sub(.5)).add(.5), i = tt(n.sub(r)), o = _S, s = i.mul(i.mul(i.mul(-o).add(2 * o)).sub(o)), c = i.mul(i.mul(i.mul(2 - o).sub(3 - o))).add(1), l = i.mul(i.mul(i.mul(-(2 - o)).add(3 - 2 * o)).add(o)), u = i.mul(i.mul(i.mul(o).sub(o))), d = [
35066
+ let n = tt(t).mul(J(this.resW, this.resH)), r = L(n.sub(.5)).add(.5), i = tt(n.sub(r)), o = _S, s = i.mul(i.mul(i.mul(-o).add(2 * o)).sub(o)), c = i.mul(i.mul(i.mul(2 - o).sub(3 - o))).add(1), l = i.mul(i.mul(i.mul(-(2 - o)).add(3 - 2 * o)).add(o)), u = i.mul(i.mul(i.mul(o).sub(o))), d = [
35061
35067
  s.x,
35062
35068
  c.x,
35063
35069
  l.x,
@@ -35067,7 +35073,7 @@ var HS = class extends pi {
35067
35073
  c.y,
35068
35074
  l.y,
35069
35075
  u.y
35070
- ], p = R(r.x).sub(1), m = R(r.y).sub(1), h = X(0).toVar(), g = L(0).toVar();
35076
+ ], p = R(r.x).sub(1), m = R(r.y).sub(1), h = X(0).toVar(), g = I(0).toVar();
35071
35077
  for (let t = 0; t < 4; t++) for (let n = 0; n < 4; n++) {
35072
35078
  if ((n === 0 || n === 3) && (t === 0 || t === 3)) continue;
35073
35079
  let r = d[n].mul(f[t]);
@@ -35107,21 +35113,21 @@ var HS = class extends pi {
35107
35113
  } : (e) => W(u, e), x = M(([a, o]) => {
35108
35114
  let u = R(Dt.x).mul(vS).add(R(Be.x)), x = R(Dt.y).mul(vS).add(R(Be.y));
35109
35115
  N(u.lessThan(R(_)).and(x.lessThan(R(v))), () => {
35110
- let S = Ie(u, x), C = St(G(u), G(x)), w = W(s, S).w.toVar(), T = w.greaterThanEqual(Bi), E = W(c, S).toVar(), D = V(E.xyz.mul(2).sub(1)).toVar(), O = E.w.clamp(.05, 1).toVar(), k = L(Bi).toVar(), A = b(S).toVar();
35116
+ let S = Ie(u, x), C = St(G(u), G(x)), w = W(s, S).w.toVar(), T = w.greaterThanEqual(Bi), E = W(c, S).toVar(), D = V(E.xyz.mul(2).sub(1)).toVar(), O = E.w.clamp(.05, 1).toVar(), k = I(Bi).toVar(), A = b(S).toVar();
35111
35117
  N(T.not(), () => {
35112
35118
  let e = this._pixelUv(u, x), d = this._worldPosAt(e, w, a, o).toVar();
35113
35119
  k.assign(h.mul(X(d, 1)).z.abs()), N(m.greaterThan(0), () => {
35114
- let u = I(D, this._viewVector(d, g, this.viewVector)).abs().toVar(), f = this._frustumSize(k).toVar(), x = y.add(1), C = t ? z(y, L(10)) : W(l, S).y.add(y), w = (t ? L(1).div(C.add(1)) : this._advancedNonLinear(C)).toVar(), T = TS(O, .5).toVar(), E = k.mul(Hi).add(3), ee = A.w.toVar(), te = tt(ee.mul(E).div(f)), j = L(1).sub(this._handover(x)), ne = (t ? te.div(x) : te.mul(w)).mul(j), re = i.minBlurRadius.mul(tt(L(2).sub(C.div(z(i.maxAccum, 1))))), ie = z(tt(U(tt(ne)).mul(n)).mul(m).mul(T), re.mul(T)).toVar(), ae = jS(i.planeDistSensitivity, f, d, D).toVar(), oe = DS(w, i.lobeAngleFraction, O, i.lobeVolumePercent).div(r).toVar(), se = OS(O, i.roughnessFraction.mul(r)).toVar(), ce = AS(ee, w).toVar(), le = i.minHitDistanceWeight.mul(r).mul(T);
35120
+ let u = F(D, this._viewVector(d, g, this.viewVector)).abs().toVar(), f = this._frustumSize(k).toVar(), x = y.add(1), C = t ? z(y, I(10)) : W(l, S).y.add(y), w = (t ? I(1).div(C.add(1)) : this._advancedNonLinear(C)).toVar(), T = TS(O, .5).toVar(), E = k.mul(Hi).add(3), ee = A.w.toVar(), te = tt(ee.mul(E).div(f)), j = I(1).sub(this._handover(x)), ne = (t ? te.div(x) : te.mul(w)).mul(j), re = i.minBlurRadius.mul(tt(I(2).sub(C.div(z(i.maxAccum, 1))))), ie = z(tt(U(tt(ne)).mul(n)).mul(m).mul(T), re.mul(T)).toVar(), ae = jS(i.planeDistSensitivity, f, d, D).toVar(), oe = DS(w, i.lobeAngleFraction, O, i.lobeVolumePercent).div(r).toVar(), se = OS(O, i.roughnessFraction.mul(r)).toVar(), ce = AS(ee, w).toVar(), le = i.minHitDistanceWeight.mul(r).mul(T);
35115
35121
  t || (le = le.mul(w)), le = le.toVar();
35116
35122
  let ue = J(1);
35117
35123
  if (!t) {
35118
35124
  let e = h.mul(X(D, 0)).xy;
35119
35125
  ue = B(J(1).sub(e.abs()), J(1), u), ue = ue.div(z(ue.x, ue.y));
35120
35126
  }
35121
- let de = ue.mul(J(L(1).div(_), L(1).div(v))).mul(ie).toVar(), fe = L(1).toVar();
35127
+ let de = ue.mul(J(I(1).div(_), I(1).div(v))).mul(ie).toVar(), fe = I(1).toVar();
35122
35128
  for (let t = 0; t < xS.length; t++) {
35123
- let n = xS[t], r = e.add(zS(p, J(n[0], n[1])).mul(de)), i = MS(r), l = H(i.x.notEqual(r.x).or(i.y.notEqual(r.y)), L(1), L(Math.exp(-.66 * n[2] * n[2]))).toVar(), u = this._uvToCoord(i), d = W(s, u).w, f = this._worldPosAt(i, d, a, o), m = W(c, u), h = wS(I(D, V(m.xyz.mul(2).sub(1))));
35124
- l.mulAssign(SS(h, oe, L(0))), l.mulAssign(SS(m.w, se.x, se.y)), l.mulAssign(SS(I(D, f), ae.x, ae.y)), l.assign(H(d.greaterThanEqual(Bi), L(0), l));
35129
+ let n = xS[t], r = e.add(zS(p, J(n[0], n[1])).mul(de)), i = MS(r), l = H(i.x.notEqual(r.x).or(i.y.notEqual(r.y)), I(1), I(Math.exp(-.66 * n[2] * n[2]))).toVar(), u = this._uvToCoord(i), d = W(s, u).w, f = this._worldPosAt(i, d, a, o), m = W(c, u), h = wS(F(D, V(m.xyz.mul(2).sub(1))));
35130
+ l.mulAssign(SS(h, oe, I(0))), l.mulAssign(SS(m.w, se.x, se.y)), l.mulAssign(SS(F(D, f), ae.x, ae.y)), l.assign(H(d.greaterThanEqual(Bi), I(0), l));
35125
35131
  let g = BS(l, b(u));
35126
35132
  l.mulAssign(le.add(CS(g.w, ce.x, ce.y))), fe.addAssign(l), A.addAssign(g.mul(l));
35127
35133
  }
@@ -35140,30 +35146,30 @@ var HS = class extends pi {
35140
35146
  N(C.greaterThanEqual(Bi), () => {
35141
35147
  gt(l, g, w).toWriteOnly(), gt(u, g, X(0)).toWriteOnly(), ge();
35142
35148
  });
35143
- let T = e.maxAccum.mul(L(1).sub(v)).toVar(), E = e.maxFast.mul(L(1).sub(v)).toVar(), D = W(n, h), O = V(D.xyz.mul(2).sub(1)).toVar(), k = D.w.clamp(.05, 1).toVar(), A = this._pixelUv(x, S), ee = this._worldPosAt(A, C, y, b).toVar(), te = d.mul(X(ee, 1)).z.abs().toVar(), j = I(O, this._viewVector(ee, p, this.viewVector)).abs().toVar(), ne = this._frustumSize(te).toVar(), re = Y(0).toVar();
35149
+ let T = e.maxAccum.mul(I(1).sub(v)).toVar(), E = e.maxFast.mul(I(1).sub(v)).toVar(), D = W(n, h), O = V(D.xyz.mul(2).sub(1)).toVar(), k = D.w.clamp(.05, 1).toVar(), A = this._pixelUv(x, S), ee = this._worldPosAt(A, C, y, b).toVar(), te = d.mul(X(ee, 1)).z.abs().toVar(), j = F(O, this._viewVector(ee, p, this.viewVector)).abs().toVar(), ne = this._frustumSize(te).toVar(), re = Y(0).toVar();
35144
35150
  re.addAssign(O.mul(.25));
35145
35151
  for (let e = -1; e <= 0; e++) for (let r = -1; r <= 0; r++) {
35146
35152
  if (r === 0 && e === 0) continue;
35147
35153
  let i = this._clampCoord(x.add(r), S.add(e)), a = V(W(n, i).xyz.mul(2).sub(1)), o = W(t, i).w.lessThan(Bi);
35148
35154
  re.addAssign(H(o, a, O).mul(.25));
35149
35155
  }
35150
- let ie = W(r, h), ae = A.sub(ie.xy).toVar(), oe = f.mul(X(ee, 1)).z.abs().toVar(), se = this._bilinear(ae), ce = ne.mul(tt(e.disocclusionThreshold.div(z(j, .05)))).sub(aS).toVar(), le = L(1).sub(v), ue = [], de = [];
35156
+ let ie = W(r, h), ae = A.sub(ie.xy).toVar(), oe = f.mul(X(ee, 1)).z.abs().toVar(), se = this._bilinear(ae), ce = ne.mul(tt(e.disocclusionThreshold.div(z(j, .05)))).sub(aS).toVar(), le = I(1).sub(v), ue = [], de = [];
35151
35157
  for (let e = 0; e < 4; e++) {
35152
- let t = W(c, se.taps[e]), n = H(I(t.xyz, re).greaterThan(gS), L(1), L(0)), r = H(t.w.sub(oe).abs().lessThanEqual(ce), L(1), L(0)), i = H(t.w.lessThan(Bi), L(1), L(0));
35158
+ let t = W(c, se.taps[e]), n = H(F(t.xyz, re).greaterThan(gS), I(1), I(0)), r = H(t.w.sub(oe).abs().lessThanEqual(ce), I(1), I(0)), i = H(t.w.lessThan(Bi), I(1), I(0));
35153
35159
  ue.push(n.mul(r).mul(i).mul(se.inScreen[e]).mul(le).toVar()), de.push(W(s, se.taps[e]).x);
35154
35160
  }
35155
- let fe = se.customWeights(ue).map((e) => e.toVar()), pe = ue[0].add(ue[1]).add(ue[2]).add(ue[3]).greaterThan(3.5).toVar(), me = ue[0].add(ue[1].mul(2)).add(ue[2].mul(4)).add(ue[3].mul(8)), M = this._applyCustomWeights(de, fe, L(0)).toVar(), he = I(O, this._viewVector(ee, m, this.prevViewVector)).abs().add(.001).div(j.add(.001)).toVar();
35156
- he.assign(B(L(.1), L(1), tt(he.mul(he))));
35161
+ let fe = se.customWeights(ue).map((e) => e.toVar()), pe = ue[0].add(ue[1]).add(ue[2]).add(ue[3]).greaterThan(3.5).toVar(), me = ue[0].add(ue[1].mul(2)).add(ue[2].mul(4)).add(ue[3].mul(8)), M = this._applyCustomWeights(de, fe, I(0)).toVar(), he = F(O, this._viewVector(ee, m, this.prevViewVector)).abs().add(.001).div(j.add(.001)).toVar();
35162
+ he.assign(B(I(.1), I(1), tt(he.mul(he))));
35157
35163
  let _e = U(tt(se.filter(ue))).mul(he).toVar();
35158
- M.assign(M.mul(B(_e, L(1), L(1).div(M.add(1))))), M.assign(We(M, T));
35159
- let ve = LS(this._sampleHistory((e) => W(a, e), ae, se, fe, pe)).toVar(), ye = z(this._applyCustomWeights(se.taps.map((e) => W(o, e).x), fe, L(0)), 0).toVar(), be = _.add(1), xe = this._handover(be).toVar(), Se = M.mul(L(1).sub(xe)), Ce = be.div(be.add(Se)).toVar(), we = L(1).div(L(1).add(TS(k, .25).mul(.5).mul(T))), Te = X(B(ve.xyz, w.xyz, Ce), B(ve.w, w.w, z(Ce, we))).toVar(), Ee = e.fireflyMinRelativeScale.add(L(pS).div(M.add(1))).toVar(), De = M.mul(e.maxBlurRadius).mul(mS).toVar();
35160
- De.assign(De.div(De.add(1)).mul(L(1).sub(xe)));
35164
+ M.assign(M.mul(B(_e, I(1), I(1).div(M.add(1))))), M.assign(We(M, T));
35165
+ let ve = LS(this._sampleHistory((e) => W(a, e), ae, se, fe, pe)).toVar(), ye = z(this._applyCustomWeights(se.taps.map((e) => W(o, e).x), fe, I(0)), 0).toVar(), be = _.add(1), xe = this._handover(be).toVar(), Se = M.mul(I(1).sub(xe)), Ce = be.div(be.add(Se)).toVar(), we = I(1).div(I(1).add(TS(k, .25).mul(.5).mul(T))), Te = X(B(ve.xyz, w.xyz, Ce), B(ve.w, w.w, z(Ce, we))).toVar(), Ee = e.fireflyMinRelativeScale.add(I(pS).div(M.add(1))).toVar(), De = M.mul(e.maxBlurRadius).mul(mS).toVar();
35166
+ De.assign(De.div(De.add(1)).mul(I(1).sub(xe)));
35161
35167
  let P = B(Te.x, We(Te.x, ve.x.mul(Ee)), De);
35162
35168
  Te.assign(IS(Te, P));
35163
- let Oe = L(1.2).add(L(1).div(M.add(1)));
35169
+ let Oe = I(1.2).add(I(1).div(M.add(1)));
35164
35170
  Te.assign(X(Te.xyz, B(Te.w, We(Te.w, ve.w.mul(Oe)), De))), gt(l, g, Te).toWriteOnly();
35165
- let F = We(M, E).mul(L(1).sub(xe)), ke = be.div(be.add(F)), Ae = B(ye, w.x, ke).toVar(), je = We(Ae, ve.x.mul(Ee).mul(hS));
35166
- Ae.assign(B(Ae, je, De)), gt(u, g, X(Ae, M, me, H(pe, L(1), L(0)))).toWriteOnly();
35171
+ let ke = We(M, E).mul(I(1).sub(xe)), Ae = be.div(be.add(ke)), je = B(ye, w.x, Ae).toVar(), Me = We(je, ve.x.mul(Ee).mul(hS));
35172
+ je.assign(B(je, Me, De)), gt(u, g, X(je, M, me, H(pe, I(1), I(0)))).toWriteOnly();
35167
35173
  });
35168
35174
  });
35169
35175
  return this._dispatchOf(y);
@@ -35177,14 +35183,14 @@ var HS = class extends pi {
35177
35183
  let e = W(r, h);
35178
35184
  gt(a, g, e).toWriteOnly(), gt(o, g, X(e.x, 0, 0, 0)).toWriteOnly(), ge();
35179
35185
  });
35180
- let v = W(i, h).toVar(), y = v.y.toVar(), b = y.add(u), x = this._handover(u.add(1)).toVar(), S = W(n, h), C = V(S.xyz.mul(2).sub(1)).toVar(), w = S.w.clamp(.05, 1).toVar(), T = this._pixelUv(p, m), E = this._worldPosAt(T, _, d, f).toVar(), D = s.mul(X(E, 1)).z.abs(), O = this._frustumSize(D).toVar(), k = W(r, h).toVar(), A = L(1).div(b.add(1)).toVar(), ee = D.mul(Hi).add(3), te = tt(k.w.mul(ee).div(O)), j = k.w.toVar(), ne = $e(H(b.lessThan(e.historyFixFrameNum), L(1), L(0)).mul(.5).mul(2 / lS).mul(e.historyFixStride).mul(B(L(.25).add(U(te).mul(.75)), L(1), A))).toVar();
35186
+ let v = W(i, h).toVar(), y = v.y.toVar(), b = y.add(u), x = this._handover(u.add(1)).toVar(), S = W(n, h), C = V(S.xyz.mul(2).sub(1)).toVar(), w = S.w.clamp(.05, 1).toVar(), T = this._pixelUv(p, m), E = this._worldPosAt(T, _, d, f).toVar(), D = s.mul(X(E, 1)).z.abs(), O = this._frustumSize(D).toVar(), k = W(r, h).toVar(), A = I(1).div(b.add(1)).toVar(), ee = D.mul(Hi).add(3), te = tt(k.w.mul(ee).div(O)), j = k.w.toVar(), ne = $e(H(b.lessThan(e.historyFixFrameNum), I(1), I(0)).mul(.5).mul(2 / lS).mul(e.historyFixStride).mul(B(I(.25).add(U(te).mul(.75)), I(1), A))).toVar();
35181
35187
  N(ne.notEqual(0), () => {
35182
- let a = DS(A, e.lobeAngleFraction, w, e.lobeVolumePercent).toVar(), o = jS(e.planeDistSensitivity, O, E, C).toVar(), s = AS(j, A).toVar(), u = kS(w.mul(w), U(e.roughnessFraction), sS).toVar(), p = L(1).add(y).toVar();
35188
+ let a = DS(A, e.lobeAngleFraction, w, e.lobeVolumePercent).toVar(), o = jS(e.planeDistSensitivity, O, E, C).toVar(), s = AS(j, A).toVar(), u = kS(w.mul(w), U(e.roughnessFraction), sS).toVar(), p = I(1).add(y).toVar();
35183
35189
  k.mulAssign(p);
35184
35190
  for (let e = -lS; e <= lS; e++) for (let m = -lS; m <= lS; m++) {
35185
35191
  if (m === 0 && e === 0 || Math.abs(m) + Math.abs(e) === lS * 2) continue;
35186
- let h = MS(T.add(J(m, e).mul(ne).mul(J(L(1).div(c), L(1).div(l))))), g = this._uvToCoord(h), _ = W(t, g).w, v = this._worldPosAt(h, _, d, f), y = W(n, g), b = CS(wS(I(V(y.xyz.mul(2).sub(1)), C)), a, L(0)).toVar();
35187
- b.mulAssign(CS(y.w.mul(y.w), u.x, u.y)), b.mulAssign(L(1).add(W(i, g).y)), b.mulAssign(SS(I(C, v), o.x, o.y)), b.assign(H(_.greaterThanEqual(Bi), L(0), b));
35192
+ let h = MS(T.add(J(m, e).mul(ne).mul(J(I(1).div(c), I(1).div(l))))), g = this._uvToCoord(h), _ = W(t, g).w, v = this._worldPosAt(h, _, d, f), y = W(n, g), b = CS(wS(F(V(y.xyz.mul(2).sub(1)), C)), a, I(0)).toVar();
35193
+ b.mulAssign(CS(y.w.mul(y.w), u.x, u.y)), b.mulAssign(I(1).add(W(i, g).y)), b.mulAssign(SS(F(C, v), o.x, o.y)), b.assign(H(_.greaterThanEqual(Bi), I(0), b));
35188
35194
  let x = BS(b, W(r, g));
35189
35195
  b.mulAssign(CS(x.w, s.x, s.y)), p.addAssign(b), k.addAssign(x.mul(b));
35190
35196
  }
@@ -35192,7 +35198,7 @@ var HS = class extends pi {
35192
35198
  });
35193
35199
  let re = k.x.toVar(), ie = tt(y.div(z(e.historyFixFrameNum, aS))), ae = B(re, v.x, ie).toVar();
35194
35200
  gt(o, g, X(ae, 0, 0, 0)).toWriteOnly();
35195
- let oe = ae.toVar(), se = ae.mul(ae).toVar(), ce = L(0).toVar(), le = L(0).toVar(), ue = (e, n, r) => {
35201
+ let oe = ae.toVar(), se = ae.mul(ae).toVar(), ce = I(0).toVar(), le = I(0).toVar(), ue = (e, n, r) => {
35196
35202
  let a = this._clampCoord(p.add(e), m.add(n)), o = W(t, a).w, s = H(o.greaterThanEqual(Bi), ae, W(i, a).x);
35197
35203
  Math.abs(e) <= uS && Math.abs(n) <= uS && (oe.addAssign(s), se.addAssign(s.mul(s))), r && (ce.addAssign(s), le.addAssign(s.mul(s)));
35198
35204
  }, de = e.antiFirefly.greaterThan(.5);
@@ -35204,7 +35210,7 @@ var HS = class extends pi {
35204
35210
  re.assign(B(re.clamp(t.sub(n), t.add(n)), re, x));
35205
35211
  });
35206
35212
  {
35207
- let t = 1 / (uS * 2 + 1) ** 2, n = oe.mul(t), r = RS(n, se.mul(t)).mul(e.fastClampSigmaScale), i = re.clamp(n.sub(r), n.add(r)), a = H(e.maxFast.lessThan(e.maxAccum), L(1), L(0)), o = B(L(1).div(L(1).add(a.mul(y).mul(2))), L(1), x);
35213
+ let t = 1 / (uS * 2 + 1) ** 2, n = oe.mul(t), r = RS(n, se.mul(t)).mul(e.fastClampSigmaScale), i = re.clamp(n.sub(r), n.add(r)), a = H(e.maxFast.lessThan(e.maxAccum), I(1), I(0)), o = B(I(1).div(I(1).add(a.mul(y).mul(2))), I(1), x);
35208
35214
  re.assign(B(i, re, o));
35209
35215
  }
35210
35216
  gt(a, g, IS(k, re)).toWriteOnly();
@@ -35226,7 +35232,7 @@ var HS = class extends pi {
35226
35232
  2,
35227
35233
  4,
35228
35234
  8
35229
- ].map((e) => H(D.bitAnd(G(e)).notEqual(G(0)), L(1), L(0))), ee = k.customWeights(A).map((e) => e.toVar()), te = U(tt(k.filter(A))).toVar(), j = W(s, f).toVar(), ne = j.x.toVar(), re = ne.toVar(), ie = ne.mul(ne).toVar();
35235
+ ].map((e) => H(D.bitAnd(G(e)).notEqual(G(0)), I(1), I(0))), ee = k.customWeights(A).map((e) => e.toVar()), te = U(tt(k.filter(A))).toVar(), j = W(s, f).toVar(), ne = j.x.toVar(), re = ne.toVar(), ie = ne.mul(ne).toVar();
35230
35236
  for (let e = -1; e <= 1; e++) for (let t = -1; t <= 1; t++) {
35231
35237
  if (t === 0 && e === 0) continue;
35232
35238
  let n = this._clampCoord(_.add(t), v.add(e)), r = W(i, n).w, a = H(r.greaterThanEqual(Bi), ne, W(s, n).x);
@@ -35235,18 +35241,18 @@ var HS = class extends pi {
35235
35241
  re.divAssign(9), ie.divAssign(9);
35236
35242
  let ae = RS(re, ie).toVar();
35237
35243
  N(E.lessThan(t.historyFixFrameNum), () => {
35238
- ne.assign(We(ne, re.mul(L(1.2).add(L(1).div(E.add(1))))));
35244
+ ne.assign(We(ne, re.mul(I(1.2).add(I(1).div(E.add(1))))));
35239
35245
  });
35240
- let oe = z(this._sampleHistory((e) => W(l, e), w, k, ee, O).x, 0).toVar(), se = ae.mul(t.antilag.x), ce = t.antilag.y.mul(4), le = oe.clamp(re.sub(se), re.add(se)), ue = oe.sub(le).abs().div(z(oe, le).add(aS)), de = L(1).div(L(1).add(ue.mul(E.mul(te)).div(ce))).toVar(), fe = We(E, t.historyFixFrameNum);
35246
+ let oe = z(this._sampleHistory((e) => W(l, e), w, k, ee, O).x, 0).toVar(), se = ae.mul(t.antilag.x), ce = t.antilag.y.mul(4), le = oe.clamp(re.sub(se), re.add(se)), ue = oe.sub(le).abs().div(z(oe, le).add(aS)), de = I(1).div(I(1).add(ue.mul(E.mul(te)).div(ce))).toVar(), fe = We(E, t.historyFixFrameNum);
35241
35247
  E.assign(B(fe, E, de));
35242
- let pe = m.add(1), me = this._handover(pe), M = te.mul(L(1).sub(this._advancedNonLinear(E.mul(L(1).sub(me)).div(pe)))).mul(de).toVar(), he = L(1).add(M.mul(6)), _e = t.stabilizationStrength.mul(L(1).sub(h)), ve = B(ne, oe.clamp(re.sub(ae.mul(he)), re.add(ae.mul(he))), We(M, _e)).toVar();
35248
+ let pe = m.add(1), me = this._handover(pe), M = te.mul(I(1).sub(this._advancedNonLinear(E.mul(I(1).sub(me)).div(pe)))).mul(de).toVar(), he = I(1).add(M.mul(6)), _e = t.stabilizationStrength.mul(I(1).sub(h)), ve = B(ne, oe.clamp(re.sub(ae.mul(he)), re.add(ae.mul(he))), We(M, _e)).toVar();
35243
35249
  j.assign(IS(j, ve)), gt(e, p, X(ve, 0, 0, 0)).toWriteOnly();
35244
- let ye = t.maxAccum.mul(L(1).sub(h));
35250
+ let ye = t.maxAccum.mul(I(1).sub(h));
35245
35251
  gt(u, p, X(We(E.add(1), ye), x, 0, 0)).toWriteOnly();
35246
35252
  let be = W(r, f), xe = X(PS(j.xyz).mul(z(be.xyz, Y(Ui))), b.w).toVar();
35247
35253
  N(g.equal(R(1)), () => {
35248
35254
  let e = tt(E.div(z(t.maxAccum, 1)));
35249
- xe.assign(X(L(1).sub(e), e, .2, 1));
35255
+ xe.assign(X(I(1).sub(e), e, .2, 1));
35250
35256
  }).ElseIf(g.equal(R(2)), () => {
35251
35257
  xe.assign(X(Y(j.w), 1));
35252
35258
  }).ElseIf(g.equal(R(3)), () => {
@@ -35340,7 +35346,7 @@ var HS = class extends pi {
35340
35346
  for (let [e, t] of this._placeholders) e.dispose(), t.dispose();
35341
35347
  this._placeholders.clear();
35342
35348
  }
35343
- }, US = (e) => H(e.equal(e), e, L(0)).clamp(0, 1e7), WS = /* @__PURE__ */ wt("\n fn temporalAccumulate(\n lum: f32,\n prevMean: f32,\n prevMeanSq: f32,\n alpha: f32,\n spatialVariance: f32,\n varianceBoost: f32\n ) -> vec4f {\n\n let newMean = prevMean + ( lum - prevMean ) * alpha;\n let newMeanSq = prevMeanSq + ( lum * lum - prevMeanSq ) * alpha;\n let temporalVariance = max( newMeanSq - newMean * newMean, 0.0 );\n\n return vec4f(\n newMean,\n newMeanSq,\n temporalVariance * varianceBoost,\n spatialVariance * varianceBoost\n );\n\n }\n"), GS = class extends pi {
35349
+ }, US = (e) => H(e.equal(e), e, I(0)).clamp(0, 1e7), WS = /* @__PURE__ */ wt("\n fn temporalAccumulate(\n lum: f32,\n prevMean: f32,\n prevMeanSq: f32,\n alpha: f32,\n spatialVariance: f32,\n varianceBoost: f32\n ) -> vec4f {\n\n let newMean = prevMean + ( lum - prevMean ) * alpha;\n let newMeanSq = prevMeanSq + ( lum * lum - prevMeanSq ) * alpha;\n let temporalVariance = max( newMeanSq - newMean * newMean, 0.0 );\n\n return vec4f(\n newMean,\n newMeanSq,\n temporalVariance * varianceBoost,\n spatialVariance * varianceBoost\n );\n\n }\n"), GS = class extends pi {
35344
35350
  constructor(e, t = {}) {
35345
35351
  super("VarianceEstimation", {
35346
35352
  ...t,
@@ -35372,13 +35378,13 @@ var HS = class extends pi {
35372
35378
  }), Et();
35373
35379
  let g = R(Dt.x).mul(8).add(R(c)), _ = R(Dt.y).mul(8).add(R(l));
35374
35380
  N(g.lessThan(R(a)).and(_.lessThan(R(o))), () => {
35375
- let n = L(0).toVar(), a = L(0).toVar();
35381
+ let n = I(0).toVar(), a = I(0).toVar();
35376
35382
  for (let e = -1; e <= 1; e++) for (let t = -1; t <= 1; t++) {
35377
35383
  let r = s.element(l.add(1 + e).mul(10).add(c.add(1 + t)));
35378
35384
  n.addAssign(r), a.addAssign(r.mul(r));
35379
35385
  }
35380
35386
  n.divAssign(9), a.divAssign(9);
35381
- let o = z(a.sub(n.mul(n)), L(0)), u = s.element(l.add(1).mul(10).add(c.add(1))), d = W(t, Ie(g, _));
35387
+ let o = z(a.sub(n.mul(n)), I(0)), u = s.element(l.add(1).mul(10).add(c.add(1))), d = W(t, Ie(g, _));
35382
35388
  gt(e, St(G(g), G(_)), WS(u, d.x, d.y, r, o, i)).toWriteOnly();
35383
35389
  });
35384
35390
  })().compute([
@@ -35483,15 +35489,15 @@ var HS = class extends pi {
35483
35489
  return M(() => {
35484
35490
  let v = R(Dt.x).mul(8).add(R(Be.x)), y = R(Dt.y).mul(8).add(R(Be.y));
35485
35491
  N(v.lessThan(R(h)).and(y.lessThan(R(g))), () => {
35486
- let b = Ie(v, y), x = W(t, b), S = x.xyz, C = W(n, b), w = W(r, b).xyz.mul(2).sub(1), T = C.w, E = Sc(S), D = z(W(i, b).xyz, Y(Ui)), O = z(Sc(D), L(Ui)).toVar(), k = m.equal(R(1)), A = (e) => {
35492
+ let b = Ie(v, y), x = W(t, b), S = x.xyz, C = W(n, b), w = W(r, b).xyz.mul(2).sub(1), T = C.w, E = Sc(S), D = z(W(i, b).xyz, Y(Ui)), O = z(Sc(D), I(Ui)).toVar(), k = m.equal(R(1)), A = (e) => {
35487
35493
  let t = W(a, e);
35488
35494
  return B(t.z, z(t.z, t.w), d);
35489
- }, ee = k.select(A(b), x.w.mul(x.w)).toVar(), te = u.mul(U(z(ee, L(0)))).div(O).add(L(1e-4)), j = Y(0).toVar(), ne = L(0).toVar(), re = L(0).toVar();
35495
+ }, ee = k.select(A(b), x.w.mul(x.w)).toVar(), te = u.mul(U(z(ee, I(0)))).div(O).add(I(1e-4)), j = Y(0).toVar(), ne = I(0).toVar(), re = I(0).toVar();
35490
35496
  for (let e = 0; e < 5; e++) for (let i = 0; i < 5; i++) {
35491
- let a = i - 2, o = e - 2, u = _[e * 5 + i], d = v.add(f.mul(a)).clamp(R(0), R(h).sub(1)), p = y.add(f.mul(o)).clamp(R(0), R(g).sub(1)), m = W(t, Ie(d, p)), b = m.xyz, x = W(n, Ie(d, p)), C = W(r, Ie(d, p)).xyz.mul(2).sub(1), D = x.w, O = KS(E, Sc(b), w, C, T, D, S, b, L(u), te, c, l, s), ee = k.select(A(Ie(d, p)), m.w.mul(m.w));
35492
- j.addAssign(b.mul(O)), ne.addAssign(O), re.addAssign(O.mul(O).mul(z(ee, L(0))));
35497
+ let a = i - 2, o = e - 2, u = _[e * 5 + i], d = v.add(f.mul(a)).clamp(R(0), R(h).sub(1)), p = y.add(f.mul(o)).clamp(R(0), R(g).sub(1)), m = W(t, Ie(d, p)), b = m.xyz, x = W(n, Ie(d, p)), C = W(r, Ie(d, p)).xyz.mul(2).sub(1), D = x.w, O = KS(E, Sc(b), w, C, T, D, S, b, I(u), te, c, l, s), ee = k.select(A(Ie(d, p)), m.w.mul(m.w));
35498
+ j.addAssign(b.mul(O)), ne.addAssign(O), re.addAssign(O.mul(O).mul(z(ee, I(0))));
35493
35499
  }
35494
- let ie = j.div(z(ne, L(1e-4))), ae = re.div(z(ne.mul(ne), L(1e-8))), oe = p.equal(R(1)), se = oe.select(ie.mul(D), ie), ce = oe.select(W(o, b).w, U(z(ae, L(0))));
35500
+ let ie = j.div(z(ne, I(1e-4))), ae = re.div(z(ne.mul(ne), I(1e-8))), oe = p.equal(R(1)), se = oe.select(ie.mul(D), ie), ce = oe.select(W(o, b).w, U(z(ae, I(0))));
35495
35501
  gt(e, St(G(v), G(y)), X(se, ce)).toWriteOnly();
35496
35502
  });
35497
35503
  })().compute([
@@ -35547,7 +35553,7 @@ var HS = class extends pi {
35547
35553
  dispose() {
35548
35554
  this._computeNodeA?.dispose(), this._computeNodeB?.dispose(), this._storageTexA?.dispose(), this._storageTexB?.dispose(), this._outputTarget?.dispose(), this._readTexNode?.dispose(), this._normalDepthTexNode?.dispose(), this._shadingNormalTexNode?.dispose(), this._albedoTexNode?.dispose(), this._varianceTexNode?.dispose(), this._srcAlphaTexNode?.dispose();
35549
35555
  }
35550
- }, JS = 6e4, YS = (e) => H(e.equal(e), e, L(0)).clamp(0, 1e7), XS = (e) => Y(YS(e.x), YS(e.y), YS(e.z)), ZS = 4, QS = [
35556
+ }, JS = 6e4, YS = (e) => H(e.equal(e), e, I(0)).clamp(0, 1e7), XS = (e) => Y(YS(e.x), YS(e.y), YS(e.z)), ZS = 4, QS = [
35551
35557
  1 / 256,
35552
35558
  4 / 256,
35553
35559
  6 / 256,
@@ -35601,7 +35607,7 @@ var HS = class extends pi {
35601
35607
  return M(() => {
35602
35608
  let o = R(Dt.x).mul(16).add(R(Be.x)), s = R(Dt.y).mul(16).add(R(Be.y));
35603
35609
  N(o.lessThan(R(i)).and(s.lessThan(R(a))), () => {
35604
- let i = Ie(o, s), a = W(e, i).xyz, c = W(t, i).w.lessThan(L(JS)), l = W(n, i).xyz, u = H(c, z(l, Y(Ui)), Y(1)), d = XS(a.div(u));
35610
+ let i = Ie(o, s), a = W(e, i).xyz, c = W(t, i).w.lessThan(I(JS)), l = W(n, i).xyz, u = H(c, z(l, Y(Ui)), Y(1)), d = XS(a.div(u));
35605
35611
  gt(r, St(G(o), G(s)), X(d, 1)).toWriteOnly();
35606
35612
  });
35607
35613
  })().compute([
@@ -35619,15 +35625,15 @@ var HS = class extends pi {
35619
35625
  return M(() => {
35620
35626
  let _ = R(Dt.x).mul(16).add(R(Be.x)), v = R(Dt.y).mul(16).add(R(Be.y));
35621
35627
  N(_.lessThan(R(h)).and(v.lessThan(R(g))), () => {
35622
- let y = Ie(_, v), b = W(t, y), x = b.xyz, S = Sc(x), C = W(r, y).w, w = W(i, y).xyz.mul(2).sub(1), T = C.lessThan(L(JS)), E = H(T, L(1), L(0)), D = W(a, y).xyz, O = H(T, z(D, Y(Ui)), Y(1)), k = z(Sc(O), L(Ui)), A = p.equal(R(1)), ee = m.lessThan(R(ZS)), te = (e) => {
35628
+ let y = Ie(_, v), b = W(t, y), x = b.xyz, S = Sc(x), C = W(r, y).w, w = W(i, y).xyz.mul(2).sub(1), T = C.lessThan(I(JS)), E = H(T, I(1), I(0)), D = W(a, y).xyz, O = H(T, z(D, Y(Ui)), Y(1)), k = z(Sc(O), I(Ui)), A = p.equal(R(1)), ee = m.lessThan(R(ZS)), te = (e) => {
35623
35629
  let t = W(o, e);
35624
35630
  return H(ee, z(t.z, t.w), t.z);
35625
- }, j = A.select(te(y), b.w.mul(b.w)).toVar(), ne = c.mul(U(z(j, L(0)))).div(k).add(L(1e-4)), re = Y(0).toVar(), ie = L(0).toVar(), ae = L(0).toVar();
35631
+ }, j = A.select(te(y), b.w.mul(b.w)).toVar(), ne = c.mul(U(z(j, I(0)))).div(k).add(I(1e-4)), re = Y(0).toVar(), ie = I(0).toVar(), ae = I(0).toVar();
35626
35632
  for (let e = 0; e < 5; e++) for (let n = 0; n < 5; n++) {
35627
- let a = n - 2, o = e - 2, s = QS[e * 5 + n], c = Ie(_.add(d.mul(a)).clamp(R(0), R(h).sub(1)), v.add(d.mul(o)).clamp(R(0), R(g).sub(1))), f = W(t, c), p = f.xyz, m = Sc(p), y = W(r, c).w, b = W(i, c).xyz.mul(2).sub(1), x = H(y.lessThan(L(JS)), L(1), L(0)), T = S.sub(m).abs().div(ne).negate().exp(), D = Xe(I(w, b).clamp(0, 1), l), O = C.sub(y).abs().div(z(C.mul(u), L(.001))).negate().exp(), k = E.mul(x), ee = E.oneMinus().mul(x.oneMinus()), j = k.add(ee), oe = B(L(1), D.mul(O), k), se = L(s).mul(T).mul(oe).mul(j), ce = A.select(te(c), f.w.mul(f.w));
35628
- re.addAssign(p.mul(se)), ie.addAssign(se), ae.addAssign(se.mul(se).mul(z(ce, L(0))));
35633
+ let a = n - 2, o = e - 2, s = QS[e * 5 + n], c = Ie(_.add(d.mul(a)).clamp(R(0), R(h).sub(1)), v.add(d.mul(o)).clamp(R(0), R(g).sub(1))), f = W(t, c), p = f.xyz, m = Sc(p), y = W(r, c).w, b = W(i, c).xyz.mul(2).sub(1), x = H(y.lessThan(I(JS)), I(1), I(0)), T = S.sub(m).abs().div(ne).negate().exp(), D = Xe(F(w, b).clamp(0, 1), l), O = C.sub(y).abs().div(z(C.mul(u), I(.001))).negate().exp(), k = E.mul(x), ee = E.oneMinus().mul(x.oneMinus()), j = k.add(ee), oe = B(I(1), D.mul(O), k), se = I(s).mul(T).mul(oe).mul(j), ce = A.select(te(c), f.w.mul(f.w));
35634
+ re.addAssign(p.mul(se)), ie.addAssign(se), ae.addAssign(se.mul(se).mul(z(ce, I(0))));
35629
35635
  }
35630
- let oe = re.div(z(ie, L(1e-4))), se = ae.div(z(ie.mul(ie), L(1e-8))), ce = f.equal(R(1)), le = W(n, y).xyz, ue = B(le, oe.mul(O), s), de = ce.select(ue, oe), fe = ce.select(W(n, y).w, U(z(se, L(0))));
35636
+ let oe = re.div(z(ie, I(1e-4))), se = ae.div(z(ie.mul(ie), I(1e-8))), ce = f.equal(R(1)), le = W(n, y).xyz, ue = B(le, oe.mul(O), s), de = ce.select(ue, oe), fe = ce.select(W(n, y).w, U(z(se, I(0))));
35631
35637
  gt(e, St(G(_), G(v)), X(de, fe)).toWriteOnly();
35632
35638
  });
35633
35639
  })().compute([
@@ -35710,9 +35716,9 @@ var HS = class extends pi {
35710
35716
  _buildDownsampleCompute() {
35711
35717
  let e = this._inputTexNode, t = this._downsampleStorageTex, n = this.epsilonU, r = this.inputResW, i = this.inputResH;
35712
35718
  this._downsampleComputeNode = M(() => {
35713
- let a = R(Dt.x).mul(8).add(R(Be.x)), o = R(Dt.y).mul(8).add(R(Be.y)), s = r.div(L(64)), c = i.div(L(64)), l = L(a).mul(s), u = L(o).mul(c), d = L(0).toVar(), f = L(0).toVar();
35719
+ let a = R(Dt.x).mul(8).add(R(Be.x)), o = R(Dt.y).mul(8).add(R(Be.y)), s = r.div(I(64)), c = i.div(I(64)), l = I(a).mul(s), u = I(o).mul(c), d = I(0).toVar(), f = I(0).toVar();
35714
35720
  for (let t = 0; t < 4; t++) for (let r = 0; r < 4; r++) {
35715
- let i = Sc(W(e, Ie(R(l.add(L((r + .5) / 4).mul(s))), R(u.add(L((t + .5) / 4).mul(c))))).xyz);
35721
+ let i = Sc(W(e, Ie(R(l.add(I((r + .5) / 4).mul(s))), R(u.add(I((t + .5) / 4).mul(c))))).xyz);
35716
35722
  N(i.greaterThan(n), () => {
35717
35723
  d.addAssign(i.add(n).log()), f.addAssign(1);
35718
35724
  });
@@ -35736,7 +35742,7 @@ var HS = class extends pi {
35736
35742
  for (let i = 0; i < 16; i++) {
35737
35743
  let a = r.mul(16).add(i), o = a.mod(64), s = a.div(64), c = W(e, Ie(R(o), R(s))), l = c.x, u = c.y;
35738
35744
  N(u.greaterThan(0), () => {
35739
- let e = G(l.div(u).sub(L(tC)).div(L(nC)).mul(L(eC)).floor().clamp(0, L(eC - 1))), r = L(o).add(.5).div(L(64)), i = L(s).add(.5).div(L(64)), a = r.sub(.5), c = i.sub(.5), d = G(a.mul(a).add(c.mul(c)).mul(n).negate().exp().mul(L(iC)));
35745
+ let e = G(l.div(u).sub(I(tC)).div(I(nC)).mul(I(eC)).floor().clamp(0, I(eC - 1))), r = I(o).add(.5).div(I(64)), i = I(s).add(.5).div(I(64)), a = r.sub(.5), c = i.sub(.5), d = G(a.mul(a).add(c.mul(c)).mul(n).negate().exp().mul(I(iC)));
35740
35746
  Ce(t.element(e), d);
35741
35747
  });
35742
35748
  }
@@ -35753,19 +35759,19 @@ var HS = class extends pi {
35753
35759
  _buildHistogramAnalyzeCompute() {
35754
35760
  let e = this._histogramBuffer, t = this._reductionStorageTex, n = this.lowPercentileU, r = this.highPercentileU;
35755
35761
  this._histogramAnalyzeNode = M(() => {
35756
- let i = L(0).toVar();
35762
+ let i = I(0).toVar();
35757
35763
  he(eC, ({ i: t }) => {
35758
- i.addAssign(L(we(e.element(t))));
35764
+ i.addAssign(I(we(e.element(t))));
35759
35765
  });
35760
- let a = i.mul(n), o = i.mul(r), s = L(0).toVar(), c = L(0).toVar(), l = L(0).toVar(), u = L(0).toVar();
35766
+ let a = i.mul(n), o = i.mul(r), s = I(0).toVar(), c = I(0).toVar(), l = I(0).toVar(), u = I(0).toVar();
35761
35767
  he(eC, ({ i: t }) => {
35762
- let n = L(we(e.element(t)));
35768
+ let n = I(we(e.element(t)));
35763
35769
  u.assign(s), s.addAssign(n), N(u.lessThan(o).and(s.greaterThan(a)), () => {
35764
- let e = L(tC).add(L(t).add(.5).mul(L(rC)));
35770
+ let e = I(tC).add(I(t).add(.5).mul(I(rC)));
35765
35771
  c.addAssign(e.mul(n)), l.addAssign(n);
35766
35772
  });
35767
35773
  });
35768
- let d = z(l, L(1)), f = c.div(d), p = f.exp();
35774
+ let d = z(l, I(1)), f = c.div(d), p = f.exp();
35769
35775
  gt(t, St(G(0), G(0)), X(p, i, f, 1)).toWriteOnly();
35770
35776
  })().compute(1, [
35771
35777
  1,
@@ -35846,7 +35852,7 @@ var HS = class extends pi {
35846
35852
  ...t,
35847
35853
  executionMode: fi.ALWAYS
35848
35854
  }), this.renderer = e, this.saturation = K(t.saturation ?? 1), this._transparentBackground = K(0, "int"), this._pathTracer = t.pathTracer ?? null, this._convergenceOverlay = !1, this._debugMaterial = null, this._debugQuad = null, this._debugTexNode = null, this._debugM2Attr = null, this._debugMaskAttr = null, this._debugExposureComp = K(1), this._sourceTexNode = new de();
35849
- let n = this._sourceTexNode.sample(xt()), r = B(Y(I(n.xyz, pc)), n.xyz, this.saturation), i = H(this._transparentBackground, n.w, 1);
35855
+ let n = this._sourceTexNode.sample(xt()), r = B(Y(F(n.xyz, pc)), n.xyz, this.saturation), i = H(this._transparentBackground, n.w, 1);
35850
35856
  this.compositorMaterial = new ne(), this.compositorMaterial.colorNode = X(r, i), this.compositorMaterial.blending = Cn, this.compositorQuad = new ie(this.compositorMaterial);
35851
35857
  }
35852
35858
  _resolveSourceTexture(e) {
@@ -35861,8 +35867,8 @@ var HS = class extends pi {
35861
35867
  if (this._debugMaterial && this._debugM2Attr === e.m2 && this._debugMaskAttr === e.frozenMask) return !0;
35862
35868
  this._debugMaterial?.dispose(), this._debugTexNode?.dispose(), this._debugM2Attr = e.m2, this._debugMaskAttr = e.frozenMask, this._debugTexNode = new de();
35863
35869
  let t = M(() => {
35864
- let t = I(this._debugTexNode.sample(xt()).toVar().xyz, pc).toVar(), n = e.renderWidth, r = e.renderHeight, i = R(xt().x.mul(L(n))).min(n.sub(R(1))).max(R(0)), a = G(R(xt().y.mul(L(r))).min(r.sub(R(1))).max(R(0)).mul(n).add(i)).toVar(), o = st(e.m2, "float").toReadOnly().element(a).toVar(), s = st(e.frozenMask, "uint").toReadOnly().element(a).toVar(), c = o.sub(t.mul(t)).max(L(0)).div(L(e.frame).add(1)).sqrt().toVar(), l = e.usePixelFreeze.greaterThan(R(0)), u = H(t.lessThan(L(1)), t.sqrt(), t).toVar(), d = H(l, c.div(t.add(L(1e-4))), c.div(u.add(L(1e-4)))).toVar(), f = H(l, e.pixelFreezeThreshold, e.noiseThreshold).toVar(), p = d.div(f.max(L(1e-6))).toVar(), m = Y(t.div(t.add(L(1))).sqrt().mul(.55)).toVar(), h = m.toVar(), g = L(e.frame).greaterThanEqual(L(e.adaptiveMinSamples));
35865
- return N(p.greaterThanEqual(L(1)).or(g.not()), () => {
35870
+ let t = F(this._debugTexNode.sample(xt()).toVar().xyz, pc).toVar(), n = e.renderWidth, r = e.renderHeight, i = R(xt().x.mul(I(n))).min(n.sub(R(1))).max(R(0)), a = G(R(xt().y.mul(I(r))).min(r.sub(R(1))).max(R(0)).mul(n).add(i)).toVar(), o = st(e.m2, "float").toReadOnly().element(a).toVar(), s = st(e.frozenMask, "uint").toReadOnly().element(a).toVar(), c = o.sub(t.mul(t)).max(I(0)).div(I(e.frame).add(1)).sqrt().toVar(), l = e.usePixelFreeze.greaterThan(R(0)), u = H(t.lessThan(I(1)), t.sqrt(), t).toVar(), d = H(l, c.div(t.add(I(1e-4))), c.div(u.add(I(1e-4)))).toVar(), f = H(l, e.pixelFreezeThreshold, e.noiseThreshold).toVar(), p = d.div(f.max(I(1e-6))).toVar(), m = Y(t.div(t.add(I(1))).sqrt().mul(.55)).toVar(), h = m.toVar(), g = I(e.frame).greaterThanEqual(I(e.adaptiveMinSamples));
35871
+ return N(p.greaterThanEqual(I(1)).or(g.not()), () => {
35866
35872
  let e = B(Y(1, .8, .1), Y(1, .1, .05), p.sub(1).div(3).clamp(0, 1));
35867
35873
  h.assign(B(m, e, .85));
35868
35874
  }), N(s.equal(G(1)).and(l), () => {
@@ -44698,30 +44704,30 @@ var yk = {
44698
44704
  }
44699
44705
  }
44700
44706
  }
44701
- onRenderComplete({ isStillComplete: e, context: t }) {
44707
+ onRenderComplete({ isStillComplete: e }) {
44702
44708
  this._cleanupCompletionListener();
44703
- let n = this.finalDenoise ? "final" : this.continuousDenoise ? "refresh" : null, r = () => {
44704
- if (this.denoiser?.removeEventListener("end", r), this._pendingStartUpscaler = null, e()) {
44705
- if (n && this._onDisplayRefresh?.(), this.neuralRendering || this.upscaler?.enabled && this.upscalerBackend === "neural") {
44709
+ let t = this.finalDenoise ? "final" : this.continuousDenoise ? "refresh" : null, n = () => {
44710
+ if (this.denoiser?.removeEventListener("end", n), this._pendingStartUpscaler = null, e()) {
44711
+ if (t && this._onDisplayRefresh?.(), this.neuralRendering || this.upscaler?.enabled && this.upscalerBackend === "neural") {
44706
44712
  this._runNeuralPost(e);
44707
44713
  return;
44708
44714
  }
44709
44715
  this.upscaler?.enabled && this.upscaler.start();
44710
44716
  }
44711
44717
  };
44712
- if (!n) {
44713
- r();
44718
+ if (!t) {
44719
+ n();
44714
44720
  return;
44715
44721
  }
44716
- let i = () => {
44717
- e() && (this._pendingStartUpscaler = r, this.denoiser.addEventListener("end", r), n === "final" ? (this._useFinalQuality(), this.denoiser.start()) : this.denoiser.start({ continuous: !0 }));
44722
+ let r = () => {
44723
+ e() && (this._pendingStartUpscaler = n, this.denoiser.addEventListener("end", n), t === "final" ? (this._useFinalQuality(), this.denoiser.start()) : this.denoiser.start({ continuous: !0 }));
44718
44724
  };
44719
44725
  if (this._resetCadence(), this.denoiser.state.isDenoising) {
44720
44726
  let e = () => {
44721
- this.denoiser?.removeEventListener("end", e), this._pendingCloseDenoise === e && (this._pendingCloseDenoise = null), i();
44727
+ this.denoiser?.removeEventListener("end", e), this._pendingCloseDenoise === e && (this._pendingCloseDenoise = null), r();
44722
44728
  };
44723
44729
  this._pendingCloseDenoise = e, this.denoiser.addEventListener("end", e);
44724
- } else i();
44730
+ } else r();
44725
44731
  }
44726
44732
  abort(e, { keepDisplay: t = !1 } = {}) {
44727
44733
  this._cleanupCompletionListener(), this._restoreRenderDisplay(), e && e !== this.mainCanvas && (e.style.opacity = "1"), this.upscaler && this.upscaler.abort();
@@ -45743,7 +45749,7 @@ var dA = class extends Qt {
45743
45749
  }
45744
45750
  this._sceneHelpers?.clear(), this._sceneHelpers = null, this.scene?.clear(), this.scene = null;
45745
45751
  try {
45746
- let e = pt().value, t = ke().value;
45752
+ let e = pt().value, t = Ae().value;
45747
45753
  e?._listeners?.dispose && (e._listeners.dispose.length = 0), t?._listeners?.dispose && (t._listeners.dispose.length = 0);
45748
45754
  } catch (e) {
45749
45755
  sA.warn("failed to clear TSL texture singleton listeners", e);