@egen-civitas/esm-app-shell 2.1.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/0e44e729978549df.js +1 -0
  3. package/dist/0e44e729978549df.js.map +1 -0
  4. package/dist/100e7c99afd2869a.js +1 -0
  5. package/dist/100e7c99afd2869a.js.map +1 -0
  6. package/dist/104a9d544f2d1bee.js +1 -0
  7. package/dist/104a9d544f2d1bee.js.map +1 -0
  8. package/dist/165cd7c9a57e9fd4.js +1 -0
  9. package/dist/165cd7c9a57e9fd4.js.map +1 -0
  10. package/dist/20c375935cdfd472.js +1 -0
  11. package/dist/20c375935cdfd472.js.map +1 -0
  12. package/dist/2387ac2d7d438c25.js +1 -0
  13. package/dist/2387ac2d7d438c25.js.map +1 -0
  14. package/dist/28213ad7c964ca67.js +1 -0
  15. package/dist/28213ad7c964ca67.js.map +1 -0
  16. package/dist/28ee358f798f3afc.js +1 -0
  17. package/dist/28ee358f798f3afc.js.map +1 -0
  18. package/dist/2a6578b999e69afa.js +1 -0
  19. package/dist/2a6578b999e69afa.js.map +1 -0
  20. package/dist/2e996b9d664c67d5.js +1 -0
  21. package/dist/2e996b9d664c67d5.js.map +1 -0
  22. package/dist/2f3c2b970b4f3f2a.js +1 -0
  23. package/dist/2f3c2b970b4f3f2a.js.map +1 -0
  24. package/dist/301f10a4f624d74f.js +1 -0
  25. package/dist/301f10a4f624d74f.js.map +1 -0
  26. package/dist/3421840c2ad1831a.js +1 -0
  27. package/dist/3421840c2ad1831a.js.map +1 -0
  28. package/dist/35750147bebf81e6.js +1 -0
  29. package/dist/35750147bebf81e6.js.map +1 -0
  30. package/dist/38e195234254e1ed.js +1 -0
  31. package/dist/38e195234254e1ed.js.map +1 -0
  32. package/dist/392ff79c3df465de.js +1 -0
  33. package/dist/392ff79c3df465de.js.map +1 -0
  34. package/dist/39e4bad4d556fdf0.js +1 -0
  35. package/dist/39e4bad4d556fdf0.js.map +1 -0
  36. package/dist/3f0bf1710c0f5c33.js +1 -0
  37. package/dist/3f0bf1710c0f5c33.js.map +1 -0
  38. package/dist/40a802fc37195f5f.js +1 -0
  39. package/dist/40a802fc37195f5f.js.map +1 -0
  40. package/dist/4ce174ac213a420d.js +1 -0
  41. package/dist/4ce174ac213a420d.js.map +1 -0
  42. package/dist/503f6ee851a6c84c.js +1 -0
  43. package/dist/503f6ee851a6c84c.js.map +1 -0
  44. package/dist/5905268ff5778527.js +20 -0
  45. package/dist/5905268ff5778527.js.map +1 -0
  46. package/dist/5a15fdd1c746d468.js +1 -0
  47. package/dist/5a15fdd1c746d468.js.map +1 -0
  48. package/dist/5c94ce2b2b091a81.js +1 -0
  49. package/dist/5c94ce2b2b091a81.js.map +1 -0
  50. package/dist/6740948aa3c94b36.js +1 -0
  51. package/dist/6740948aa3c94b36.js.map +1 -0
  52. package/dist/6face530dd71d3ab.js +1 -0
  53. package/dist/6face530dd71d3ab.js.map +1 -0
  54. package/dist/6ff5fd266c168d37.js +1 -0
  55. package/dist/6ff5fd266c168d37.js.map +1 -0
  56. package/dist/7133b1158c1eee9f.js +1 -0
  57. package/dist/7133b1158c1eee9f.js.map +1 -0
  58. package/dist/7405a39d009c0cd9.js +1 -0
  59. package/dist/7405a39d009c0cd9.js.map +1 -0
  60. package/dist/746d6624966d97cc.js +1 -0
  61. package/dist/746d6624966d97cc.js.map +1 -0
  62. package/dist/7486f1056be8aac2.js +1 -0
  63. package/dist/7486f1056be8aac2.js.map +1 -0
  64. package/dist/7fe1ae38f4e52228.js +1 -0
  65. package/dist/7fe1ae38f4e52228.js.map +1 -0
  66. package/dist/8a1e9fb14542294e.js +1 -0
  67. package/dist/8a1e9fb14542294e.js.map +1 -0
  68. package/dist/996aced69a32fb34.js +1 -0
  69. package/dist/996aced69a32fb34.js.map +1 -0
  70. package/dist/99b0e92c982b69e3.wasm +0 -0
  71. package/dist/99ff6ed3397c063c.js +1 -0
  72. package/dist/99ff6ed3397c063c.js.map +1 -0
  73. package/dist/9da38ddd134bbac0.wasm +0 -0
  74. package/dist/9f95152ca23cbda2.js +1 -0
  75. package/dist/9f95152ca23cbda2.js.map +1 -0
  76. package/dist/9fb2e1c5007395e8.js +1 -0
  77. package/dist/9fb2e1c5007395e8.js.map +1 -0
  78. package/dist/a2203b7ab1be4fe5.js +1 -0
  79. package/dist/a2203b7ab1be4fe5.js.map +1 -0
  80. package/dist/a5299431ca4e1890.js +1 -0
  81. package/dist/a5299431ca4e1890.js.map +1 -0
  82. package/dist/af9d1a058dafb22f.js +1 -0
  83. package/dist/b4c358eb41ead1a6.js +1 -0
  84. package/dist/b4c358eb41ead1a6.js.map +1 -0
  85. package/dist/b97ae94953bb55a1.js +1 -0
  86. package/dist/b97ae94953bb55a1.js.map +1 -0
  87. package/dist/bd220d0c8e3bcf3e.js +1 -0
  88. package/dist/bd220d0c8e3bcf3e.js.map +1 -0
  89. package/dist/c2c6850fc4d942cc.js +1 -0
  90. package/dist/c2c6850fc4d942cc.js.map +1 -0
  91. package/dist/c4bf6419e95bcb10.js +1 -0
  92. package/dist/c4bf6419e95bcb10.js.map +1 -0
  93. package/dist/c5be968929b7b675.js +1 -0
  94. package/dist/c5be968929b7b675.js.map +1 -0
  95. package/dist/c6231509ea43d4cf.js +1 -0
  96. package/dist/c6231509ea43d4cf.js.map +1 -0
  97. package/dist/c8956121db18ddca.js +1 -0
  98. package/dist/c8956121db18ddca.js.map +1 -0
  99. package/dist/cabfdf9ddd4121e9.wasm +0 -0
  100. package/dist/d2cacd093023c7fc.js +1 -0
  101. package/dist/d2cacd093023c7fc.js.map +1 -0
  102. package/dist/d427071073895236.js +1 -0
  103. package/dist/d427071073895236.js.map +1 -0
  104. package/dist/d63e75be7857458a.wasm +0 -0
  105. package/dist/d714a019d4dfd0f1.js +1 -0
  106. package/dist/d714a019d4dfd0f1.js.map +1 -0
  107. package/dist/db9d140f9cb6fbb6.js +1 -0
  108. package/dist/db9d140f9cb6fbb6.js.map +1 -0
  109. package/dist/deb33db385797b5e.js +1 -0
  110. package/dist/deb33db385797b5e.js.map +1 -0
  111. package/dist/ea485a963430e479.js +1 -0
  112. package/dist/ea485a963430e479.js.map +1 -0
  113. package/dist/eb96cd859ce842b3.js +1 -0
  114. package/dist/eb96cd859ce842b3.js.map +1 -0
  115. package/dist/{egen.f35ccbd9a7ae43e2.js → egen.092645d8fcc83793.js} +4 -4
  116. package/dist/egen.092645d8fcc83793.js.map +1 -0
  117. package/dist/f3f2147432dcd6ef.js +1 -0
  118. package/dist/f3f2147432dcd6ef.js.map +1 -0
  119. package/dist/f443206d9f3ee012.js +1 -0
  120. package/dist/f443206d9f3ee012.js.map +1 -0
  121. package/dist/f4941e9d6d02713b.js +1 -0
  122. package/dist/f4941e9d6d02713b.js.map +1 -0
  123. package/dist/f516f10149ceaf20.js +1 -0
  124. package/dist/f516f10149ceaf20.js.map +1 -0
  125. package/dist/f7e95e9103f6bea5.js +1 -0
  126. package/dist/f7e95e9103f6bea5.js.map +1 -0
  127. package/dist/f87c9fff5312393d.js +1 -0
  128. package/dist/f87c9fff5312393d.js.map +1 -0
  129. package/dist/fdd8e6bc172cc6c8.js +1 -0
  130. package/dist/fdd8e6bc172cc6c8.js.map +1 -0
  131. package/dist/index.html +1 -1
  132. package/package.json +3 -3
  133. package/dist/eb27d690cf45cd5e.js +0 -20
  134. package/dist/eb27d690cf45cd5e.js.map +0 -1
  135. package/dist/egen.f35ccbd9a7ae43e2.js.map +0 -1
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_egen_civitas_esm_app_shell=self.webpackChunk_egen_civitas_esm_app_shell||[]).push([["9021"],{9900(a,r,n){n.d(r,{a:()=>v,b:()=>g,c:()=>y,d:()=>x,e:()=>T,f:()=>w});var i=n(9968),s=n(909),o=n(3027);function l(a,r){(null==r||r>a.length)&&(r=a.length);for(var n=0,i=Array(r);n<r;n++)i[n]=a[n];return i}function u(a,r,n){return(u=f()?Reflect.construct:function(a,r,n){var i=[null];i.push.apply(i,r);var s=new(Function.bind.apply(a,i));return n&&h(s,n.prototype),s}).apply(null,arguments)}function c(a){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable}))),i.forEach(function(r){var i;i=n[r],r in a?Object.defineProperty(a,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):a[r]=i})}return a}function d(a,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(r)):(function(a){var r=Object.keys(a);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);r.push.apply(r,n)}return r})(Object(r)).forEach(function(n){Object.defineProperty(a,n,Object.getOwnPropertyDescriptor(r,n))}),a}function h(a,r){return(h=Object.setPrototypeOf||function(a,r){return a.__proto__=r,a})(a,r)}function m(a){return function(a){if(Array.isArray(a))return l(a)}(a)||function(a){if("u">typeof Symbol&&null!=a[Symbol.iterator]||null!=a["@@iterator"])return Array.from(a)}(a)||function(a){if(a){if("string"==typeof a)return l(a,void 0);var r=Object.prototype.toString.call(a).slice(8,-1);if("Object"===r&&a.constructor&&(r=a.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return l(a,void 0)}}(a)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(){try{var a=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(a){}return(f=function(){return!!a})()}function v(a){return!0===(null==a?void 0:a.depthPrepass)}var p=!0;try{p="0"!==new URLSearchParams(window.location.search).get("dbgdepthprepass")}catch(a){}function g(a){return p&&a.transparent&&a.depthTest&&!a.wireframe&&!a.shapeBlend&&!function(a){var r=null==a?void 0:a.layers;if(!r)return!1;var n=!0,i=!1,s=void 0;try{for(var o,l=r[Symbol.iterator]();!(n=(o=l.next()).done);n=!0){var u=o.value;if("transmission"===u.data.type&&u.data.visible)return!0}}catch(a){i=!0,s=a}finally{try{n||null==l.return||l.return()}finally{if(i)throw s}}return!1}(a.data)}var y={enabled:!1},_=new WeakMap;function x(a){if(!y.enabled)return a;var r=_.get(a);return r||(r=d(c({},a),{bloom:d(c({},a.bloom),{kernelSize:0}),depthOfField:d(c({},a.depthOfField),{enabled:!1})}),_.set(a,r)),r}var b=new WeakSet;function T(a){if(!a.isPointLight&&!a.isSpotLight&&!a.isDirectionalLight)return!1;if(y.enabled){if(!0===a.castShadow)return a.castShadow=!1,b.add(a),!0}else if(b.has(a)&&(b.delete(a),!1===a.castShadow))return a.castShadow=!0,!0;return!1}function w(a,r){var n,l,h,f,v,p,g,y,_,x,b,T,w,z,V,C,k,M,A,R,P,N,B,D,E,I,F,L,U,O,G,q,W;switch(a.type){case"cavity":return d(c({},S(a,r)),{ridge:a.ridge,valley:a.valley});case"dust":return d(c({},S(a,r)),{color:(0,i.a)(a.color,r),coverage:null!=(n=(0,s._)(a.coverage,r))?n:.2,softness:null!=(l=(0,s._)(a.softness,r))?l:.2,noiseStrength:null!=(h=(0,s._)(a.noiseStrength,r))?h:.2,noiseScale:null!=(f=(0,s._)(a.noiseScale,r))?f:1});case"fresnel":return v=a.bias,p=a.scale,g=a.intensity,y=a.factor,_=a.color,d(c({},S(a,r)),{color:(0,i.a)(_,r),bias:v,scale:p,intensity:g,factor:y});case"gradient":return x=a.gradientType,b=a.smooth,T=a.colors,w=a.steps,z=a.angle,V=a.offset,C=a.morph,d(c({},S(a,r)),{gradientType:x,smooth:b,colors:T.map(function(a){return new o.Jc(a[0],a[1],a[2],a[3])}),num:T.length,steps:w,offset:u(o.Dc,m(V.map(function(a){return"number"==typeof a?a:0}))),morph:u(o.Dc,m(C.map(function(a){return"number"==typeof a?a:0}))),angle:z});case"depth":return k=a.gradientType,M=a.near,A=a.far,R=a.isVector,P=a.isWorldSpace,N=a.origin,B=a.direction,D=a.colors,E=a.steps,I=a.smooth,d(c({},S(a,r)),{gradientType:k,near:M,far:A,isVector:R,isWorldSpace:P,origin:u(o.Fc,m(N)),direction:B?u(o.Fc,m(B)):new o.Fc(1,0,0),colors:D.map(function(a){return void 0!==a?new o.Jc(a[0],a[1],a[2],a[3]):new o.Jc(0,0,0,0)}),steps:E.slice(0,D.length),smooth:I});case"normal":return F=a.cnormal,d(c({},S(a,r)),{cnormal:new o.Fc(F[0],F[1],F[2])});case"noise":return d(c({},S(a,r)),{scale:a.scale,move:a.move,fA:u(o.Dc,m(a.fA.map(function(a){return"number"==typeof a?a:0}))),fB:u(o.Dc,m(a.fB.map(function(a){return"number"==typeof a?a:0}))),size:u(o.Fc,m(a.size)),distortion:u(o.Dc,m(a.distortion.map(function(a){return"number"==typeof a?a:0}))),colorA:(0,i.a)(a.colorA,r),colorB:(0,i.a)(a.colorB,r),colorC:(0,i.a)(a.colorC,r),colorD:(0,i.a)(a.colorD,r),noiseType:a.noiseType,voronoiStyle:a.voronoiStyle,highCut:a.highCut,lowCut:a.lowCut,smoothness:a.smoothness,seed:a.seed,quality:a.quality});case"rainbow":return d(c({},S(a,r)),{filmThickness:a.filmThickness,movement:a.movement,wavelengths:u(o.Fc,m(a.wavelengths)),noiseStrength:a.noiseStrength,noiseScale:a.noiseScale,offset:u(o.Fc,m(a.offset))});case"toon":return d(c({},S(a,r)),{positioning:a.positioning,colors:a.colors.map(function(a){return new o.Jc(a[0],a[1],a[2],a[3])}),num:a.colors.length,steps:a.steps,source:u(o.Fc,m(a.source)),isWorldSpace:a.isWorldSpace,noiseStrength:a.noiseStrength,noiseScale:a.noiseScale,shadowColor:(0,i.a)(a.shadowColor,r),offset:u(o.Fc,m(a.offset))});case"outline":return d(c({},S(a,r)),{outlineColor:(0,i.a)(a.outlineColor,r),contourColor:(0,i.a)(a.contourColor,r),outlineWidth:a.outlineWidth,contourWidth:a.contourWidth,outlineThreshold:a.outlineThreshold,contourThreshold:a.contourThreshold,outlineSmoothing:a.outlineSmoothing,contourFrequency:a.contourFrequency,contourDirection:u(o.Fc,m(a.contourDirection)),positionalLines:a.positionalLines,compensation:a.compensation});case"transmission":return d(c({},S(a,r)),{thickness:a.thickness,ior:a.ior,roughness:a.roughness,attenuationColor:void 0!==a.attenuationColor?(0,i.a)(a.attenuationColor,r):{r:1,g:1,b:1,a:1},attenuationDistance:null!=(L=a.attenuationDistance)?L:0});case"reflection":return d(c({},S(a,r)),{blur:null!=(U=(0,s._)(a.blur,r))?U:0,thickness:null!=(O=(0,s._)(a.thickness,r))?O:.001,steps:null!=(G=(0,s._)(a.steps,r))?G:60,stepSize:null!=(q=(0,s._)(a.stepSize,r))?q:.005,tracingMode:a.tracingMode,mirror:null!=(W=a.mirror)?W:0});case"pattern":return d(c({},S(a,r)),{style:a.style,projection:a.projection,axis:a.axis,blending:a.blending,offset:u(o.Dc,m(a.offset.map(function(a){return"number"==typeof a?a:0}))),colorA:(0,i.a)(a.colorA,r),colorB:(0,i.a)(a.colorB,r),frequency:u(o.Dc,m(a.frequency.map(function(a){return"number"==typeof a?a:0}))),size:a.size,variation:a.variation,smoothness:a.smoothness,zigzag:a.zigzag,rotation:a.rotation,vertical:u(o.Dc,m(a.vertical.map(function(a){return"number"==typeof a?a:0}))),horizontal:u(o.Dc,m(a.horizontal.map(function(a){return"number"==typeof a?a:0}))),sides:a.sides});case"vertexColor":return S(a,r);default:return d(c({},S(a,r)),{color:(0,i.a)(a.color,r)})}}function S(a,r){var n,i=a.alpha,s=a.mode,o=a.isMask,l="string"==typeof i?Number(null!=(n=r.getVariable(i))?n:100)/100:i;return d(c({},{type:a.type}),{alpha:l,mode:s,isMask:o})}},5672(a,r,n){n.d(r,{a:()=>s,b:()=>o});var i=new Set;function s(a){i.add(a)}function o(a){if(0!==i.size){var r=Array.from(i);i.clear();var n=!0,s=!1,o=void 0;try{for(var l,u=r[Symbol.iterator]();!(n=(l=u.next()).done);n=!0)l.value.render(a)}catch(a){s=!0,o=a}finally{try{n||null==u.return||u.return()}finally{if(s)throw o}}}}},479(a,r,n){n.d(r,{a:()=>o,b:()=>l,c:()=>u,d:()=>c,e:()=>d});var i=null,s=null;function o(a){i=a}function l(){return i}function u(a){s=a}function c(){if(null===s)throw Error('[spe] Classic (WebGL) particles are not available in this build — it was compiled WebGPU-only. Re-export the scene with renderer "Both" or "WebGL 2", or load the full runtime.');return s}function d(a){return!0===(null==a?void 0:a.isWebGPUSplineRenderer)}},5294(a,r,n){function i(){for(var a=new Float32Array(128),r=0,n=0;n<80;++n)if(n%5!=0){var i=2.39996323*n,s=Math.sqrt(n)/Math.sqrt(80);a[r++]=s*Math.cos(i),a[r++]=s*Math.sin(i)}return a}function s(a,r,n){return{focusDistance:n?a/2e3:(a+992)/2e3,focusRange:Math.max(r/2e3,1e-6)}}n.d(r,{a:()=>i,b:()=>s,c:()=>o});var o={focusDistance:0,focalLength:200,bokehScale:1}},3756(a,r,n){n.r(r),n.d(r,{SPE_BLENDING_MULTIPLY:()=>a4,SPE_BLENDING_NORMAL:()=>a5,SPE_BLENDING_OVERLAY:()=>a8,SPE_BLENDING_SCREEN:()=>a6,TSLLayerParams:()=>a1,TSLRootMaterial:()=>nj,TSLSharedMaterial:()=>nK,WebGPUPostPipeline:()=>eT,WebGPUSplineRenderer:()=>aq,createEditorGridNodeMaterial:()=>o_,createWebGPUSplineRenderer:()=>oT,getTSLLayerBuilder:()=>rn,hasTSLLayerBuilder:()=>ri,isWebGPUSupported:()=>ox,ownUniformValue:()=>a$,registerTSLLayer:()=>rr,setRenderUniformValue:()=>a0,simpleCalpha:()=>a3,speBlend:()=>a9,speObjectNormal:()=>aX,speObjectPosition:()=>aJ,splitUniformValueSlots:()=>aZ,standardCalpha:()=>a2,unsupportedTSLLayerBuilder:()=>ra,webgpuGlobals:()=>u.Vc});var i=n(9900),s=n(2646),o=n(5672);n(5401),n(371);var l=n(5294),u=n(2061),c=n(479),d=n(5541),h=n(5963),m=n(8005);n(6679);var f=n(8526),v=n(3227);n(2995),n(3763);var p=n(7295);n(7913),n(1955),n(7173),n(1483),n(5181);var g=n(909);n(6259),n(843),n(3486),n(461);var y=n(3940),_=n(9616),x=n(7565),b=n(3027);function T(a,r){(null==r||r>a.length)&&(r=a.length);for(var n=0,i=Array(r);n<r;n++)i[n]=a[n];return i}function w(a,r,n,i,s,o,l){try{var u=a[o](l),c=u.value}catch(a){n(a);return}u.done?r(c):Promise.resolve(c).then(i,s)}function S(a){return function(){var r=this,n=arguments;return new Promise(function(i,s){var o=a.apply(r,n);function l(a){w(o,i,s,l,u,"next",a)}function u(a){w(o,i,s,l,u,"throw",a)}l(void 0)})}}function z(a,r,n){return r=R(r),function(a,r){if(r&&("object"===L(r)||"function"==typeof r))return r;if(void 0===a)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return a}(a,O()?Reflect.construct(r,n||[],R(a).constructor):r.apply(a,n))}function V(a,r){if(!(a instanceof r))throw TypeError("Cannot call a class as a function")}function C(a,r,n){return(C=O()?Reflect.construct:function(a,r,n){var i=[null];i.push.apply(i,r);var s=new(Function.bind.apply(a,i));return n&&E(s,n.prototype),s}).apply(null,arguments)}function k(a,r){for(var n=0;n<r.length;n++){var i=r[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(a,i.key,i)}}function M(a,r,n){return r&&k(a.prototype,r),n&&k(a,n),a}function A(a,r,n){return(A="u">typeof Reflect&&Reflect.get?Reflect.get:function(a,r,n){var i=function(a,r){for(;!Object.prototype.hasOwnProperty.call(a,r)&&null!==(a=R(a)););return a}(a,r);if(i){var s=Object.getOwnPropertyDescriptor(i,r);return s.get?s.get.call(n||a):s.value}})(a,r,n||a)}function R(a){return(R=Object.setPrototypeOf?Object.getPrototypeOf:function(a){return a.__proto__||Object.getPrototypeOf(a)})(a)}function P(a,r){if("function"!=typeof r&&null!==r)throw TypeError("Super expression must either be null or a function");a.prototype=Object.create(r&&r.prototype,{constructor:{value:a,writable:!0,configurable:!0}}),r&&E(a,r)}function N(a,r){return null!=r&&"u">typeof Symbol&&r[Symbol.hasInstance]?!!r[Symbol.hasInstance](a):a instanceof r}function B(a){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable}))),i.forEach(function(r){var i;i=n[r],r in a?Object.defineProperty(a,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):a[r]=i})}return a}function D(a,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(r)):(function(a){var r=Object.keys(a);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);r.push.apply(r,n)}return r})(Object(r)).forEach(function(n){Object.defineProperty(a,n,Object.getOwnPropertyDescriptor(r,n))}),a}function E(a,r){return(E=Object.setPrototypeOf||function(a,r){return a.__proto__=r,a})(a,r)}function I(a,r){return function(a){if(Array.isArray(a))return a}(a)||function(a,r){var n,i,s=null==a?null:"u">typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(null!=s){var o=[],l=!0,u=!1;try{for(s=s.call(a);!(l=(n=s.next()).done)&&(o.push(n.value),!r||o.length!==r);l=!0);}catch(a){u=!0,i=a}finally{try{l||null==s.return||s.return()}finally{if(u)throw i}}return o}}(a,r)||U(a,r)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function F(a){return function(a){if(Array.isArray(a))return T(a)}(a)||function(a){if("u">typeof Symbol&&null!=a[Symbol.iterator]||null!=a["@@iterator"])return Array.from(a)}(a)||U(a)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function L(a){return a&&"u">typeof Symbol&&a.constructor===Symbol?"symbol":typeof a}function U(a,r){if(a){if("string"==typeof a)return T(a,r);var n=Object.prototype.toString.call(a).slice(8,-1);if("Object"===n&&a.constructor&&(n=a.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return T(a,r)}}function O(){try{var a=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(a){}return(O=function(){return!!a})()}function G(a,r){var n,i,s,o={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(l,"next",{value:c(0)}),u(l,"throw",{value:c(1)}),u(l,"return",{value:c(2)}),"function"==typeof Symbol&&u(l,Symbol.iterator,{value:function(){return this}}),l;function c(u){return function(c){var d=[u,c];if(n)throw TypeError("Generator is already executing.");for(;l&&(l=0,d[0]&&(o=0)),o;)try{if(n=1,i&&(s=2&d[0]?i.return:d[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,d[1])).done)return s;switch(i=0,s&&(d=[2&d[0],s.value]),d[0]){case 0:case 1:s=d;break;case 4:return o.label++,{value:d[1],done:!1};case 5:o.label++,i=d[1],d=[0];continue;case 7:d=o.ops.pop(),o.trys.pop();continue;default:if(!(s=(s=o.trys).length>0&&s[s.length-1])&&(6===d[0]||2===d[0])){o=0;continue}if(3===d[0]&&(!s||d[1]>s[0]&&d[1]<s[3])){o.label=d[1];break}if(6===d[0]&&o.label<s[1]){o.label=s[1],s=d;break}if(s&&o.label<s[2]){o.label=s[2],o.ops.push(d);break}s[2]&&o.ops.pop(),o.trys.pop();continue}d=r.call(a,o)}catch(a){d=[6,a],i=0}finally{n=s=0}if(5&d[0])throw d[1];return{value:d[0]?d[1]:void 0,done:!0}}}}n(2784);var q=[[.478712,.875764],[-.337956,-.793959],[-.955259,-.028164],[.864527,.325689],[.209342,-.395657],[-.106779,.672585],[.156213,.235113],[-.413644,-.082856],[-.415667,.323909],[.141896,-.93998],[.954932,-.182516],[-.766184,.410799],[-.434912,-.458845],[.415242,-.078724],[.728335,-.491777],[-.058086,-.066401],[.20299,.686837],[-.808362,-.556402],[.507386,-.640839],[-.723494,-.22924],[.48974,.317826],[-.622663,.765301],[-.01064,.929347],[.663146,.647618],[-.096674,-.413835],[.525945,-.321063],[-.122533,.366019],[.195235,-.687983],[-.563203,.098748],[.418563,.561335],[-.378595,.800367],[.826922,.001024],[-.085372,-.766651],[-.92192,.183673],[-.590008,-.721799],[.167751,-.164393],[.032961,-.56253],[.6329,-.107059],[-.46408,.569669],[-.173676,-.958758],[-.242648,-.234303],[-.275362,.157163],[.382295,-.795131],[.562955,.115562],[.190586,.470121],[.770764,-.297576],[.237281,.93105],[-.666642,-.455871],[-.905649,-.298379],[.33952,.157829],[.701438,-.7041],[-.062758,.160346],[-.220674,.957141],[.642692,.432706],[-.77339,-.015272],[-.671467,.24688],[.158051,.062859],[.806009,.527232],[-.05762,-.247071],[.333436,-.51671],[-.550658,-.315773],[-.652078,.589846],[.008818,.530556],[-.210004,.519896]],W=(0,u.vc)(new b.Tc(1,1,1)).setGroup(u.Ub),H=(0,u.vc)(.1).setGroup(u.Ub),j=(0,u.vc)(2e3).setGroup(u.Ub),K=(0,u.vc)(0).setGroup(u.Ub),J=(0,u.vc)(new b.Fc(.005,.01,0)).setGroup(u.Ub),X=(0,u.I)(function(a){var r=I(a,4),n=r[0],i=r[1],s=r[2],o=r[3],l=o.x,c=o.y,d=s.y.sub(o.z),h=l.mul(c.mul(d).negate().clamp(-60,60).exp()),m=c.mul(n.y).clamp(-60,60).toVar(),f=(0,u._b)(m.greaterThanEqual(0),(0,u.za)(1),(0,u.za)(-1)).mul(m.abs().max(1e-4));return h.mul(i).mul((0,u.za)(1).sub(f.negate().exp())).div(f).max(0).negate().exp().oneMinus()}),Q=(0,u.I)(function(){var a=u.Mb.sub(u.ba).toVar(),r=a.length().max(1e-6);return X(a,r,u.ba,J)}),Y=(tV=(0,u.za)(1).sub((0,u.ic)(.5,K)).add((0,u.ic)(1.5,K)),tC=(0,u.ic)(.5,K),tk=(0,u.za)(1).sub((0,u.za)(1).sub((0,u.Rb)(H,j).mul(tV)).mul((0,u.za)(1).sub(Q().mul(tC)))),(0,u.Ba)(W,tk));function Z(a){var r=a.fog,n=a.backupFog,i=[a,a.scene!==a?a.scene:void 0],s=!0,o=!1,l=void 0;if(null!=r&&void 0!==n){var u=!0,c=!1,d=void 0;try{for(var h,m,f,v,p=i[Symbol.iterator]();!(u=(v=p.next()).done);u=!0){var g=v.value;g&&(g.fogNode=Y)}}catch(a){c=!0,d=a}finally{try{u||null==p.return||p.return()}finally{if(c)throw d}}W.value.copy(n.color),H.value=n.near,j.value=n.far,K.value=y.pa.getModeIndex({mode:a.fogMode}),J.value.set(null!=(h=a.fogDensity)?h:y.pa.getDensity({}),null!=(m=a.fogHeightFalloff)?m:y.pa.getHeightFalloff({}),null!=(f=a.fogHeightBase)?f:y.pa.getHeightBase({}))}else if(null===r)try{for(var _,x=i[Symbol.iterator]();!(s=(_=x.next()).done);s=!0){var b=_.value;(null==b?void 0:b.fogNode)&&(b.fogNode=null)}}catch(a){o=!0,l=a}finally{try{s||null==x.return||x.return()}finally{if(o)throw l}}}var $=function(a){return a},ee=function(a){return a},et=function(a,r,n){return(0,u.Aa)(a.add(.5).mul(r)).add(.5).div(n)},ea=new u.v,er=new b.Tc,en=function(){function a(){V(this,a),this._gBuffer=null,this._aoBuffer=null,this._hbaoMaterial=null,this._resolveMaterial=null,this._boundBlueNoise=null,this._frameIndex=0,this._projectionMatrixInverse=(0,u.vc)(new b.Oc),this._isOrtho=(0,u.vc)(0),this._resolution=(0,u.vc)(new b.Dc(1,1)),this._fullResolution=(0,u.vc)(new b.Dc(1,1)),this._radiusOfInfluence=(0,u.vc)(128),this._radiusInScreenSpace=(0,u.vc)(1),this._exponent=(0,u.vc)(1),this._aoColor=(0,u.vc)(new b.Tc(0,0,0)),this._bias=(0,u.vc)(.5),this._frame=(0,u.vc)(0),this._fogEnabled=(0,u.vc)(0),this._fogNear=(0,u.vc)(1),this._fogFar=(0,u.vc)(1e3),this._fogMode=(0,u.vc)(0),this._fogHeightParams=(0,u.vc)(new b.Fc(.005,.01,0)),this._cameraWorldMatrix=(0,u.vc)(new b.Oc);var r=new u.c;r.name="SplineHBAO.gbuffer",r.side=b.l,r.fragmentNode=(0,u.Dc)(u.ub.mul(u.ya),1),r.lights=!1,r.blending=b.m,r.needsUpdate=!0,this._normalMaterial=r}return M(a,[{key:"_ensureTarget",value:function(a,r,n,i){return a&&a.width===r&&a.height===n?{target:a,changed:!1}:(null==a||a.dispose(),{target:i(),changed:!0})}},{key:"_buildHBAOMaterial",value:function(a,r){var n=(0,u.oc)(this._gBuffer.depthTexture),i=(0,u.oc)(this._gBuffer.texture),s=(0,u.oc)(r),o=this._projectionMatrixInverse,l=this._isOrtho,c=this._resolution,d=this._fullResolution,h=this._radiusOfInfluence,m=this._radiusInScreenSpace,f=this._exponent,v=this._aoColor,p=this._bias,g=this._frame,y=this._fogEnabled,_=this._fogNear,x=this._fogFar,T=this._fogMode,w=this._fogHeightParams,S=this._cameraWorldMatrix,z=!0===a.reversedDepthBuffer,V=function(a){return n.sample(a)},C=function(a,r){return(0,u.Ha)(a,r,o)},k=(0,u.I)(function(){for(var a=(0,u.yc)().toVar(),r=(0,u.Aa)(a.mul(c)).toVar(),n=d.div(c).toVar(),o=et(r,n,d).toVar(),b=V(o).toVar(),k=C(o,b).toVar(),M=(0,u.xb)(i.sample(o).xyz).toVar(),A=(0,u.eb)(m.div((0,u.hb)(k.z.negate(),(0,u.za)(1),l)),(0,u.za)(5)).toVar(),R=(0,u.Ta)((0,u.Na)(u.Yb.xy.x).bitAnd((0,u.Na)(127)),(0,u.Na)(u.Yb.xy.y).bitAnd((0,u.Na)(127))),P=s.load(R).xyz.x,N=(0,u.Ca)(P.add((0,u.za)(.61803398875).mul(g))).mul(6.283),B=(0,u.ma)(N).toVar(),D=(0,u.dc)(N).toVar(),E=A.div(5).toVar(),F=(0,u.za)(0).toVar(),L=0;L<4;L++)for(var U=E.add(1).toVar(),O=0;O<4;O++){var G,W=I(q[4*L+O],2),H=W[0],j=W[1],K=(0,u.Bc)(B.mul(H).sub(D.mul(j)),D.mul(H).add(B.mul(j))),J=ee(C(G=et(r.add((0,u.Wb)(K.mul(U))).toVar(),n,d),V(G))).toVar();U.addAssign(E);var Q=ee(J.sub(k)).toVar(),Y=$(Q.dot(Q)).toVar(),Z=(0,u.hc)(Y),ea=$(M.dot(Q)).div((0,u.eb)(Z,(0,u.za)(1e-4))),er=Y.mul((0,u.za)(-1).div(h.mul(h))).add(1);F.addAssign((0,u.ga)(ea.sub(p),0,1).mul((0,u.ga)(er,0,1)))}var en=(0,u.za)(1).div((0,u.za)(1).sub(p));F.mulAssign(en.div(16));var ei=(0,u.ga)((0,u.za)(1).sub(F.mul(2)),0,1),es=(0,u.Nb)(ei,f).toVar(),eo=z?b.lessThanEqual(0):b.greaterThanEqual(1);es.assign(eo.select((0,u.za)(1),es));var el=(0,u.Cc)((0,u.hb)(v,(0,u.Cc)(1),es)).toVar(),eu=(0,u.ec)(_,x,k.z.negate()),ec=S.mul((0,u.Dc)(k,1)).xyz,ed=S.mul((0,u.Dc)(0,0,0,1)).xyz,eh=ec.sub(ed).toVar(),em=X(eh,eh.length().max(1e-6),ed,w),ef=(0,u.za)(1).sub((0,u.ic)(.5,T)).add((0,u.ic)(1.5,T)),ev=(0,u.ic)(.5,T),ep=(0,u.za)(1).sub((0,u.za)(1).sub(eu.mul(ef)).mul((0,u.za)(1).sub(em.mul(ev)))).mul(y);return el.assign((0,u.hb)(el,(0,u.Cc)(1),ep)),(0,u.Dc)(el,1)}),M=new u.c;return M.name="SplineHBAO.hbao",M.colorNode=k(),M.depthTest=!1,M.depthWrite=!1,M.blending=b.m,M.needsUpdate=!0,M}},{key:"_buildResolveMaterial",value:function(){var a=(0,u.oc)(this._aoBuffer.texture),r=(0,u.oc)(this._gBuffer.depthTexture),n=this._resolution,i=this._fullResolution,s=(0,u.I)(function(){var s=(0,u.yc)().toVar(),o=(0,u.Bc)((0,u.za)(1).div(n.x),(0,u.za)(1).div(n.y)).toVar(),l=s.sub(o.mul(.5)).toVar(),c=l.add((0,u.Bc)(o.x,0)).toVar(),d=l.add((0,u.Bc)(0,o.y)).toVar(),h=l.add(o).toVar(),m=r.sample(s).toVar(),f=i.div(n).toVar(),v=function(a){return r.sample(et(a,f,i))},p=(0,u.Aa)(l.mul(n)).toVar(),g=m.sub(v(p)).abs().toVar(),y=m.sub(v(p.add((0,u.Bc)(1,0)))).abs().toVar(),_=m.sub(v(p.add((0,u.Bc)(0,1)))).abs().toVar(),x=m.sub(v(p.add((0,u.Bc)(1,1)))).abs().toVar(),b=g.min(y).min(_).min(x).toVar(),T=h.toVar();return T.assign(b.equal(_).select(d,T)),T.assign(b.equal(y).select(c,T)),T.assign(b.equal(g).select(l,T)),a.sample(T)}),o=new u.c;return o.name="SplineHBAO.resolve",o.colorNode=s(),o.depthTest=!1,o.depthWrite=!1,o.blending=b.m,o.needsUpdate=!0,o}},{key:"render",value:function(a,r,n,i,s,o){var l,u,c=o.width,d=o.height,h=!0!==i.aoFullRes,m=h?.5:1,f=Math.max(1,Math.round(c*m)),v=Math.max(1,Math.round(d*m)),p=null===this._hbaoMaterial,g=this._ensureTarget(this._gBuffer,c,d,function(){return new b.Kc(c,d,{type:b.Ba,depthTexture:new b.Cd(c,d),minFilter:b.qa,magFilter:b.qa})});if(this._gBuffer=g.target,p=p||g.changed,h){var y=this._ensureTarget(this._aoBuffer,f,v,function(){return new b.Kc(f,v,{minFilter:b.qa,magFilter:b.qa,depthBuffer:!1})});this._aoBuffer=y.target,p=p||y.changed}((p=p||this._boundBlueNoise!==s)||h&&null===this._resolveMaterial)&&(null==(l=this._hbaoMaterial)||l.dispose(),null==(u=this._resolveMaterial)||u.dispose(),this._hbaoMaterial=this._buildHBAOMaterial(a,s),this._resolveMaterial=h?this._buildResolveMaterial():null,this._boundBlueNoise=s);var _=n.projectionMatrix.elements,x=0===_[11];if(this._projectionMatrixInverse.value.copy(n.projectionMatrixInverse),this._isOrtho.value=+!!x,this._resolution.value.set(f,v),this._fullResolution.value.set(c,d),this._radiusOfInfluence.value=i.radius,x){var T=2/_[5];this._radiusInScreenSpace.value=i.radius*(v/T*.5)}else{var w=v*_[5]/2;this._radiusInScreenSpace.value=.5*i.radius*w}this._bias.value=i.bias,this._aoColor.value.setRGB(i.aoColor.r,i.aoColor.g,i.aoColor.b),this._fogEnabled.value=+!!i.fogEnabled,this._fogNear.value=i.fogNear,this._fogFar.value=i.fogFar,this._fogMode.value=i.fogMode,this._fogHeightParams.value.set(i.fogDensity,i.fogHeightFalloff,i.fogHeightBase),this._cameraWorldMatrix.value.copy(n.matrixWorld),this._frame.value=this._frameIndex,this._frameIndex++;var S=r.overrideMaterial,z=a.getRenderTarget(),V=a.getMRT(),C=a.getClearColor(er),k=a.getClearAlpha(),M=n.layers.mask;n.layers.set(5),r.overrideMaterial=this._normalMaterial,a.setMRT(null),a.setClearColor(0,0),a.setRenderTarget(this._gBuffer),a.render(r,n),r.overrideMaterial=S,n.layers.mask=M,ea.material=this._hbaoMaterial,ea.name="SplineHBAO.hbao",a.setRenderTarget(h?this._aoBuffer:o),ea.render(a),h&&(ea.material=this._resolveMaterial,ea.name="SplineHBAO.resolve",a.setRenderTarget(o),ea.render(a)),a.setRenderTarget(z),a.setMRT(V),a.setClearColor(C,k)}},{key:"dispose",value:function(){var a,r,n,i;null==(a=this._gBuffer)||a.dispose(),this._gBuffer=null,null==(r=this._aoBuffer)||r.dispose(),this._aoBuffer=null,this._normalMaterial.dispose(),null==(n=this._hbaoMaterial)||n.dispose(),this._hbaoMaterial=null,null==(i=this._resolveMaterial)||i.dispose(),this._resolveMaterial=null,this._boundBlueNoise=null}}]),a}(),ei={texture:null,version:0,rotation:new b.Pc,quality:"full"},es=new Set;function eo(a){var r,n=ei.texture,i=a.lights&&"physical"===a.category&&null!==n&&("full"===ei.quality||!1!==(null==(r=a.envReflectiveInLow)?void 0:r.call(a))),s=N(a.envNode,ec);i?s&&a.envNode.sourceTexture===n||(a.envNode=new ec(n),a.needsUpdate=!0):s&&(a.envNode=null,a.needsUpdate=!0)}var el=new WeakMap;function eu(a,r){var n=null;return{getUV:function(){if(null===n){var i=u.Lb.negate().reflect(r);n=(i=(i=(0,u.Pb)(a).mix(i,r)).normalize()).transformDirection(u.fa)}return n},getTextureLevel:function(){return a}}}var ec=function(a){function r(a){var n;return V(this,r),(n=z(this,r,[null])).sourceTexture=a,n}return P(r,a),M(r,[{key:"setup",value:function(a){var r,n,i,s=(r=this.sourceTexture,void 0===(n=el.get(r))&&(n=(0,u.Gb)(r),el.set(r,n)),n),o=a.context,l=s.context(eu(u.Vb,u.ub)).mul(u.cb);o.radiance.addAssign(new u.b(l));var c=s.context({getUV:function(){return u.vb},getTextureLevel:function(){return(0,u.za)(1)}}).mul(Math.PI).mul(u.cb);o.iblIrradiance.addAssign(new u.b(c));var d=null==(i=o.lightingModel)?void 0:i.clearcoatRadiance;if(d){var h=s.context(eu(u.ja,u.ia)).mul(u.cb);d.addAssign(new u.b(h))}return null}}],[{key:"type",get:function(){return"SplineEnvironmentNode"}}]),r}(u.n),ed=function(a){function r(){return V(this,r),z(this,r,arguments)}return P(r,a),r}(b.ve),eh=function(a){function r(){return V(this,r),z(this,r,arguments)}return P(r,a),M(r,[{key:"setup",value:function(a){var n;return N(null==(n=a.material)?void 0:n.envNode,ec)?null:A(R(r.prototype),"setup",this).call(this,a)}}],[{key:"type",get:function(){return"SplineSkyHemisphereLightNode"}}]),r}(u.A),em=function(a){return a},ef=function(a){return a},ev=256/(2*Math.PI),ep=function(a,r,n,i,s){var o=(0,u.Cc)(0).toVar();return(0,u.J)(i.lessThan(.5),function(){o.assign(a.sample(r).level(s).rgb)}).Else(function(){for(var i=(0,u.Cc)(0).toVar(),l=(0,u.za)(0).toVar(),c=0;c<12;c++){var d=Math.sqrt((c+.5)/12),h=2.399963229728653*c,m=d*Math.cos(h),f=d*Math.sin(h),v=Math.exp(-2.5*d*d),p=a.sample((0,u.Bc)(em(r.x).add(n.mul(m)),em(r.y).add(n.mul(f)))).level(s).rgb;i.addAssign(p.mul(v)),l.addAssign((0,u.za)(v))}o.assign(i.div(l))}),o},eg=function(a,r,n,i){var s=(0,u.Dc)(r.mul(2).sub(1),(0,u.za)(1).sub(n).mul(2).sub(1),i,1),o=a.mul(s).toVar();return o.xyz.div(o.w)},ey=function(a,r,n,i){var s=u.Vc.reflectionEnvEnabled,o=u.Vc.reflectionMissColor,l=n.greaterThan(.05),c=null!=i?i:(0,u._b)(l,(0,u.za)(.6),(0,u.za)(1)),d=(0,u.T)(r.z,r.x).div(2*Math.PI).add(.5),h=(0,u.S)((0,u.ga)(r.y,(0,u.za)(-1),(0,u.za)(1))).div(Math.PI).add(.5),m=(0,u.gb)((0,u.Za)(n.mul(c).mul(.25*ev).add(1)),(0,u.za)(8)),f=a.sample((0,u.Bc)(d,h)).level(m).rgb;return(0,u._b)(s.greaterThan(.5),f,o)},e_=function(a){var r=a.dials,n=a.surface,i=a.camera,s=a.resources,o=r.blur,l=r.thickness,c=r.steps,d=r.stepSize,h=r.tracingMode,m=s.colorMap,f=s.depthPyramid,v=s.depthPyramidNode,p=s.envMap,g=a.usePlanar,y=u.Vc.reflectionDepthSize,_=u.Vc.reflectionDepthLevels,x=function(a,r){return f.load(a).level(r).r.add(1e-6)},b=u.Vc.orthographicUniform.greaterThan(.5),T=(0,u._b)(b,(0,u.Cc)(0,0,-1),(0,u.xb)(n.originView)).toVar(),w=n.normalV.toVar(),S=(0,u.Sb)(T,w).toVar(),z=(0,u.ga)(o.mul(.1),(0,u.za)(0),(0,u.za)(1)).toVar(),V=u.Vc.resolution,C=z.greaterThan(.05),k=a.singleRay?(0,u.za)(1):(0,u._b)(C,(0,u.za)(.6),(0,u.za)(1)),M=function(a,r,s,o){var c=(0,u.xb)((0,u.sc)(a,i.worldMatrix)).toVar(),f=(0,u.za)(1).sub((0,u.ec)((0,u.za)(.85),(0,u.za)(.99),a.z)).toVar(),T=n.originView.toVar(),S=T.z.negate().max(i.near).toVar(),C=(0,u.za)(S.mul(10)).toVar();(0,u.J)(a.z.greaterThan(1e-5),function(){var r=i.near.negate().sub(T.z).div(a.z);C.assign((0,u.gb)(C,r.mul(.95).max(1e-4)))});var M,A,R,P=T.add(a.mul(C)).toVar(),N=(0,u.Cc)(n.screenUv,n.fragWindowZ).toVar(),B=(A=(M=i.projectionMatrix.mul((0,u.Dc)(P,1)).toVar()).xyz.div(M.w),(0,u.Cc)(A.x.mul(.5).add(.5),A.y.mul(-.5).add(.5),A.z)).toVar(),D=z.mul(V.y).mul(.075).toVar();if(o){var E=D.mul(y.y.div(V.y)).toVar(),I=(0,u.gb)((0,u.za)(.8),(0,u.za)(12).div(E.max(.001))).toVar();o.assign(E.mul(I)),R=(0,u.za)(1).sub(I.mul(I)).max(0).sqrt().toVar()}var F=B.sub(N).toVar(),L=(0,u.eb)(F.xy.length(),(0,u.za)(1e-5)).toVar(),U=(0,u.za)(0).toVar(),O=(0,u.Cc)(0).toVar(),G=function(){var a=_.sub(1).toVar(),n=(0,u.Na)(1).toVar(),i=(0,u.Na)(0).toVar(),s=function(a,r){return(0,u.gb)(a,r)},o=F.div(F.z).toVar(),c=(0,u.Cc)(N).toVar(),d=(0,u.Bc)((0,u._b)(F.x.greaterThanEqual(0),(0,u.za)(1),(0,u.za)(-1)),(0,u._b)(F.y.greaterThanEqual(0),(0,u.za)(1),(0,u.za)(-1))).toVar(),h=d.mul(1e-5).toVar();d.assign((0,u.ga)(d,(0,u.Bc)(0),(0,u.Bc)(1)));var m=function(a){return(0,u.Bc)((0,u.qc)(v,a))},f=function(a,r){return a.mul(r).floor()},p=function(a,r,n){var i=(0,u.Bc)(1).div(n),s=r.div(n).add(i.mul(d)).sub(a.xy).div(F.xy).toVar(),o=a.add(F.mul((0,u.gb)(s.x,s.y))).toVar();return o.xy.addAssign((0,u._b)(s.x.lessThan(s.y),(0,u.Bc)(h.x,0),(0,u.Bc)(0,h.y))),o},g=m(n),b=f(c.xy,g);c.assign(p(c,b,g)),(0,u.K)(256,function(){(0,u.J)(n.lessThan((0,u.Na)(0)).or(i.greaterThanEqual(r)),function(){(0,u.G)()});var d=m(n).toVar(),h=f(c.xy,d).toVar(),v=x((0,u.Ta)((0,u.Na)(h.x),(0,u.Na)(h.y)),n).toVar(),g=(0,u.Cc)(c).toVar();(0,u.J)(F.z.greaterThan(0),function(){var r=v.sub(c.z).toVar();(0,u.J)(r.greaterThan(0),function(){g.assign(c.add(o.mul(r)))});var i=f(g.xy,d).toVar();(0,u.J)((0,u.Na)(h.x).notEqual((0,u.Na)(i.x)).or((0,u.Na)(h.y).notEqual((0,u.Na)(i.y))),function(){g.assign(p(c,h,d)),n.assign(s(a,n.add((0,u.Na)(2))))}).Else(function(){(0,u.J)(n.equal((0,u.Na)(1)).and(r.abs().greaterThan(l)),function(){g.assign(p(c,h,d)),n.assign((0,u.Na)(2))})})}).Else(function(){(0,u.J)(c.z.lessThan(v),function(){g.assign(p(c,h,d)),n.assign(s(a,n.add((0,u.Na)(2))))})}),c.assign(g),n.subAssign((0,u.Na)(1)),i.addAssign((0,u.Na)(1))});var T=c.x.greaterThan(0).and(c.x.lessThan(1)).and(c.y.greaterThan(0)).and(c.y.lessThan(1)).and(c.z.greaterThan(0)).and(c.z.lessThan(1));(0,u.J)(n.lessThan((0,u.Na)(0)).and(i.lessThan(r)).and(T),function(){U.assign(1),O.assign(c);for(var a=c.xy.sub(N.xy).length().div(L).clamp(0,1),r=a.sub((0,u.za)(2).div(y.y).div(L)).max(0),n=(0,u.Cc)(N.add(F.mul(r))).toVar(),i=(0,u.Cc)(N.add(F.mul(a))).toVar(),s=(0,u.Cc)(i).toVar(),o=0;o<4;o++){s.assign((0,u.hb)(n,i,.5));var l=em(x((0,u.Ta)(ef(s.xy).mul(y)),(0,u.Na)(0)));(0,u.J)(s.z.sub(l).greaterThan(0),function(){i.assign(s)}).Else(function(){n.assign(s)})}O.assign(s)})},q=function(){var a=(0,u.eb)(d,(0,u.za)(1e-4)),n=(0,u.za)(a).toVar(),i=(0,u.Cc)(N).toVar(),s=(0,u.Cc)(N).toVar(),o=(0,u.za)(-1).toVar();(0,u.K)(256,function(c){var d=c.i;(0,u.J)(d.greaterThanEqual(r),function(){(0,u.G)()});var h=(0,u.za)(d).mul(n).div(L).toVar();(0,u.J)(h.greaterThan(1),function(){(0,u.G)()}),s.assign(F.mul(h).add(N));var m=s.x.lessThan(0).or(s.x.greaterThan(1)).or(s.y.lessThan(0)).or(s.y.greaterThan(1)).or(s.z.lessThan(0)).or(s.z.greaterThan(1));(0,u.J)(m,function(){(0,u.G)()});var f=x((0,u.Ta)(s.xy.mul(y)),(0,u.Na)(0)).toVar(),v=s.z.sub(f).toVar();(0,u.J)(o.lessThanEqual(0).and(v.greaterThan(0)),function(){for(var a=(0,u.Cc)(i).toVar(),r=(0,u.Cc)(s).toVar(),n=(0,u.Cc)(s).toVar(),o=(0,u.za)(v).toVar(),c=0;c<4;c++){n.assign((0,u.hb)(a,r,.5));var d=em(x((0,u.Ta)(ef(n.xy).mul(y)),(0,u.Na)(0)));o.assign(n.z.sub(d)),(0,u.J)(o.greaterThan(0),function(){r.assign(n)}).Else(function(){a.assign(n)})}(0,u.J)(o.abs().lessThan(l),function(){U.assign(1),O.assign(n),(0,u.G)()})}),o.assign(v),i.assign(s),n.addAssign(a.div(2))})};(0,u.J)(f.greaterThan(0).and(g.not()),function(){"number"==typeof h?1===h?G():q():(0,u.J)(h.greaterThan(.5),function(){G()}).Else(function(){q()})});var W=ey(p,c,z,R).toVar(),H=(0,u.Cc)(W).toVar();return(0,u.J)(U.greaterThan(.5),function(){var r=O.xy.sub(N.xy).length().div(L).clamp(0,1).toVar(),n=T.z.negate().max(1e-4).toVar(),l=P.z.negate().max(1e-4).toVar(),c=(0,u.hb)((0,u.za)(1).div(n),(0,u.za)(1).div(l),r).toVar(),d=(0,u.hb)(T.div(n),P.div(l),r).div(c),h=(0,u.hb)(T,P,r),v=(0,u._b)(b,h,d).toVar(),p=v.sub(T).length().toVar(),g=i.projectionMatrix.element(1).y.mul(V.y).mul(.5),C=(0,u._b)(b,(0,u.za)(1),v.z.abs().max(1e-4)),M=z.mul(k).mul(.25).mul(p).mul(g).div(C),A=(0,u.eb)(M,D).toVar(),R=A.mul(y.y.div(V.y)).toVar(),B=R.toVar(),E=A.toVar();if(o){var I=(0,u.gb)((0,u.za)(.8),(0,u.za)(12).div(R.max(.001))).toVar();o.assign(R.mul(I)),B.assign(R.mul((0,u.za)(1).sub(I.mul(I)).max(0).sqrt())),E.assign(B.mul(V.y.div(y.y)))}var F=(0,u.za)(_.sub(1)),U=(0,u.gb)((0,u.Za)(B.add(1)),F),G=s?ep(m,O.xy,E.mul(.75).div(V.y),B.mul(.75),U.sub(1).max(0).floor()).toVar():m.sample(O.xy).level(U).rgb.toVar(),q=function(a){return(0,u.ec)((0,u.za)(0),(0,u.za)(.07),a).mul((0,u.ec)((0,u.za)(0),(0,u.za)(.07),(0,u.za)(1).sub(a)))},j=q(O.x).mul(q(O.y)),K=O.xy.mul(y),J=x((0,u.Ta)(K),(0,u.Na)(0)),X=eg(i.projectionMatrixInverse,O.x,O.y,J).toVar(),Q=(0,u.ua)(X.sub(T),w),Y=(0,u.ec)(S.mul(-.05),S.mul(-.005),Q),Z=(0,u.za)(1).div(y.x),$=(0,u.za)(1).div(y.y),ee=x((0,u.Ta)(K.sub((0,u.Bc)(1,0))),(0,u.Na)(0)),et=x((0,u.Ta)(K.add((0,u.Bc)(1,0))),(0,u.Na)(0)),ea=x((0,u.Ta)(K.sub((0,u.Bc)(0,1))),(0,u.Na)(0)),er=x((0,u.Ta)(K.add((0,u.Bc)(0,1))),(0,u.Na)(0)),en=eg(i.projectionMatrixInverse,O.x.sub(Z),O.y,ee),ei=eg(i.projectionMatrixInverse,O.x.add(Z),O.y,et),es=eg(i.projectionMatrixInverse,O.x,O.y.sub($),ea),eo=eg(i.projectionMatrixInverse,O.x,O.y.add($),er),el=(0,u.xb)((0,u.na)(ei.sub(en),eo.sub(es))).toVar(),eu=(0,u._b)(el.z.lessThan(0),el.negate(),el),ec=(0,u.ec)((0,u.za)(.02),(0,u.za)(.12),(0,u.ua)(eu,a).negate()),ed=f.mul(j).mul(Y).mul(ec);H.assign((0,u.hb)(W,G,ed))}),H};if(a.singleRay)return M(S,c,!0,a.singleRay.footprintOut).toVar();var A=a.noisePixel,R=(0,u.Ca)((0,u.za)(52.9829189).mul((0,u.Ca)(A.x.mul(.06711056).add(A.y.mul(.00583715))))).mul(2*Math.PI).toVar(),P=(0,u._b)(S.y.abs().greaterThan(.99),(0,u.Cc)(1,0,0),(0,u.Cc)(0,1,0)),N=(0,u.xb)((0,u.na)(P,S)).toVar(),B=(0,u.na)(S,N).toVar(),D=function(a){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:4,n=z.mul(.25*Math.sqrt((a+.5)/r)),i=R.add(2.399963229728653*a);return(0,u.xb)(S.mul((0,u.ma)(n)).add(N.mul((0,u.ma)(i)).add(B.mul((0,u.dc)(i))).mul((0,u.dc)(n)))).toVar()},E=C.and(g.not()),I=(0,u._b)(E,D(0),S).toVar(),F=(0,u.Cc)(0).toVar();F.addAssign(M(I,c,!0));var L=(0,u.za)(1).toVar();return(0,u.J)(E,function(){F.addAssign(M(D(2),c,!1)),L.assign(2),(0,u.J)(z.greaterThan(.35),function(){F.addAssign(M(D(1),c,!1)),F.addAssign(M(D(3),c,!1)),L.assign(4)})}),F.div(L).toVar()},ex=new b.Dc,eb=function(a){function r(a){var n;return V(this,r),(n=z(this,r)).postprocessingState=y.ra.defaultData,n.sceneTransitionPass={uniforms:{mixRatio:(0,u.vc)(0),uDPR:{value:1},uResolution:{value:new b.Dc}}},n.sceneTransitionFromTexture=null,n.watermarkTexture=null,n.uiCanvasTexture=null,n.uiOverlayEnabled=!1,n._isUIOverlayEnabled=!1,n._helpersEnabled=!0,n._renderToScreen=!0,n._rt=null,n._effectChain=null,n._effectChainDirty=!1,n.blueNoiseTexture=new b.nd,n._rebuildCount=0,n._rebuildLogAt=0,n._chainUiTexture=null,n._chainWatermark=null,n._chainTransitionTexture=null,n._chainHdr=!1,n.lastOutputTarget=null,n._renderer=a,n}return P(r,a),M(r,[{key:"renderToScreen",get:function(){return this._renderToScreen},set:function(a){this._renderToScreen=a}},{key:"texture",get:function(){return this._rt&&this._rt.texture}},{key:"renderTarget",get:function(){return this._rt}},{key:"isUIOverlayEnabled",get:function(){return this._isUIOverlayEnabled}},{key:"enableUIOverlay",value:function(){this._isUIOverlayEnabled=!0}},{key:"disableUIOverlay",value:function(){this._isUIOverlayEnabled=!1}},{key:"enableHelpers",value:function(){this._helpersEnabled=!0}},{key:"disableHelpers",value:function(){this._helpersEnabled=!1}},{key:"helpersEnabled",get:function(){return this._helpersEnabled}},{key:"setWatermark",value:function(a){this.watermarkTexture=a,this._effectChainDirty=!0}},{key:"updateBlueNoiseTexture",value:function(a){this.blueNoiseTexture.dispose();var r=new b.nd(a,128,128);r.wrapS=b.ka,r.wrapT=b.ka,r.minFilter=b.na,r.magFilter=b.na,r.needsUpdate=!0,this.blueNoiseTexture=r}},{key:"updatePostprocessing",value:function(a){this.postprocessingState=a;var r=eb._topologyJSON(a);this._postprocessingJSON!==r&&(this._postprocessingJSON=r,this._effectChainDirty=!0)}},{key:"_needsEffectChain",value:function(){if(this._renderer.temporalAAEnabled||this.uiOverlayEnabled&&this.uiCanvasTexture||this.watermarkTexture||this.sceneTransitionFromTexture)return!0;if(!0!==this.postprocessingState.enabled)return!1;var a=this.postprocessingState,r=!0,n=!1,i=void 0;try{for(var s,o=Object.keys(a)[Symbol.iterator]();!(r=(s=o.next()).done);r=!0){var l=a[s.value];if(l&&"object"==(void 0===l?"undefined":L(l))&&!0===l.enabled)return!0}}catch(a){n=!0,i=a}finally{try{r||null==o.return||o.return()}finally{if(n)throw i}}return!1}},{key:"render",value:function(){var a=this.scene,r=this.camera;if(a&&r){var n=this._renderer;if(!n.warmupInFlight){var i=!1;if(!this._renderToScreen&&null===n.getRenderTarget()){n.getDrawingBufferSize(ex);var s=Math.max(1,Math.round(ex.x)),o=Math.max(1,Math.round(ex.y));null===this._rt?this._rt=new b.Kc(s,o,{depthBuffer:!0}):(this._rt.width!==s||this._rt.height!==o)&&(this._rt.dispose(),this._rt=new b.Kc(s,o,{depthBuffer:!0})),n.setRenderTarget(this._rt),i=!0}this.lastOutputTarget=i?this._rt:n.getRenderTarget();try{this._renderFrame(a,r)}finally{i&&n.setRenderTarget(null)}}}}},{key:"_renderFrame",value:function(a,r){var n=this._renderer;n.renderStarted=!0,n.normalizeCameraCoordinateSystem(r);var i=this._needsEffectChain(),s=null;this._effectChainDirty?s="postprocessing/watermark":i!==(null!==this._effectChain)?s="chain presence":null!==this._effectChain&&(this._chainUiTexture!==(this.uiOverlayEnabled?this.uiCanvasTexture:null)?s="ui overlay texture":this._chainWatermark!==this.watermarkTexture?s="watermark texture":null!==this.sceneTransitionFromTexture&&this._chainTransitionTexture!==this.sceneTransitionFromTexture?s="transition texture":this._chainHdr!==n.hdrChainActive&&(s="grading pipeline"));var o=null!==s;if(o&&null!==this._effectChain){this._rebuildCount++;var l=Date.now();l-this._rebuildLogAt>1e3&&(this._rebuildLogAt=l,this._rebuildCount=0)}if(o&&(this._effectChain,null==(c=this._effectChain)||c.dispose(),this._effectChain=null,this._effectChainDirty=!1,i&&(this._effectChain=n.createEffectChain(),u.Uc.chainBuilds++,u.Uc.lastChainBuildReason=null!=s?s:"initial",this._chainUiTexture=this.uiOverlayEnabled?this.uiCanvasTexture:null,this._chainWatermark=this.watermarkTexture,this._chainTransitionTexture=this.sceneTransitionFromTexture,this._chainHdr=n.hdrChainActive)),this._effectChain){this._effectChain.syncValues(this.postprocessingState,n),null!==this._chainTransitionTexture&&null===this.sceneTransitionFromTexture&&(this.sceneTransitionPass.uniforms.mixRatio.value=1);var c,d,h,m,f,v,p,g=n.temporalAAEnabled?n.taaHistory:null;g&&(n.getDrawingBufferSize(ex),g.beginJitter(r,ex.x,ex.y)),null==(d=(h=this._effectChain).renderTAAResolve)||d.call(h,n),null==(m=(f=this._effectChain).renderBloomPasses)||m.call(f,n),null==(v=(p=this._effectChain).renderDoFPasses)||v.call(p,n),this._effectChain.render(),null==g||g.endJitter()}else n.renderScenePass(a,r);this._helpersEnabled&&(this.sceneHelpers||this.sceneHelpersOnTop)&&n.renderHelperOverlay(this.sceneHelpers,this.sceneHelpersOnTop,r,this._effectChain?this._effectChain.sceneDepthTexture():null)}},{key:"resize",value:function(a,r,n){var i;null==(i=this._effectChain)||i.resize()}},{key:"setViewport",value:function(a,r,n,i){N(a,b.Jc)?this._renderer.setViewport(a.x,a.y,a.z,a.w):this._renderer.setViewport(a,r,n,i)}},{key:"setScissor",value:function(a,r,n,i){N(a,b.Jc)?this._renderer.setScissor(a.x,a.y,a.z,a.w):this._renderer.setScissor(a,r,n,i)}},{key:"setScissorTest",value:function(a){this._renderer.setScissorTest(a)}},{key:"dispose",value:function(){var a,r;null==(a=this._effectChain)||a.dispose(),this._effectChain=null,null==(r=this._rt)||r.dispose(),this._rt=null,this.blueNoiseTexture.dispose()}}],[{key:"_topologyJSON",value:function(a){var r={},n=!0,i=!1,s=void 0;try{for(var o,l=Object.keys(a)[Symbol.iterator]();!(n=(o=l.next()).done);n=!0){var u=o.value,c=a[u],d=eb.UNIFORM_BACKED_FIELDS[u];if(d&&c&&"object"==(void 0===c?"undefined":L(c))){var h=B({},c),m=!0,f=!1,v=void 0;try{for(var p,g=d[Symbol.iterator]();!(m=(p=g.next()).done);m=!0){var y=p.value;delete h[y]}}catch(a){f=!0,v=a}finally{try{m||null==g.return||g.return()}finally{if(f)throw v}}r[u]=h}else r[u]=c}}catch(a){i=!0,s=a}finally{try{n||null==l.return||l.return()}finally{if(i)throw s}}return JSON.stringify(r)}}]),r}(b.Bc),eT=eb;eT.UNIFORM_BACKED_FIELDS={bloom:["intensity","opacity"],chromaticAberration:["offset","opacity"],vignette:["offset","darkness","opacity"],noise:["opacity"],hueSaturation:["hue","saturation","opacity"],brightnessContrast:["brightness","contrast","opacity"],depthOfField:["focusDistance","focalLength","bokehScale","opacity"],pixelation:["granularity","opacity"]};var ew=function(){try{return"1"===new URLSearchParams(window.location.search).get("dbgdestroys")}catch(a){return!1}}(),eS=[],ez=6,eV=function(){return -1},eC=!1,ek=null;function eM(a,r,n){var i;eS.push({t:Math.round(performance.now()),frame:eV(),kind:a,label:r||"(unlabeled)",size:n,stack:(null!=(i=Error().stack)?i:"").split("\n").slice(2,9).join("\n")}),eS.length>32&&eS.shift()}var eA=function(a,r){return{start:(0,u.Na)(0),end:(0,u.Na)(r),type:"int",condition:"<",name:a}},eR=u.ga;function eP(a,r){var n=new b.Kc(a,r,{depthBuffer:!1,type:b.Aa,format:b.Oa});return n.texture.generateMipmaps=!1,n.texture.minFilter=b.na,n.texture.magFilter=b.na,n}var eN=null;function eB(){return null===eN&&((eN=eP(64,8)).texture.name="SplinePCSSPyramidAtlas"),eN.texture}function eD(a,r,n,i,s,o){var l=new u.c,c=(0,u.oc)(r);return l.fragmentNode=(0,u.I)(function(){var a=u.Yb,r=0!==o?a.x.sub(o):a.x,l=(0,u.Na)(r).mul(n).toVar(),d=(0,u.Na)(a.y).mul(n).toVar(),h=(0,u.za)(1e9).toVar(),m=(0,u.za)(-1e9).toVar();return(0,u.K)(eA("ly",n),eA("lx",n),function(a){var r=a.lx,n=a.ly,o=eR(l.add(r),(0,u.Na)(0),(0,u.Na)(i)),f=eR(d.add(n),(0,u.Na)(0),(0,u.Na)(i)),v=c.load((0,u.Ta)(o,f));h.assign((0,u.gb)(h,v.x)),m.assign((0,u.eb)(m,s?v.y:v.x))}),(0,u.Dc)(h,m,0,1)})(),l.name=a,l.lights=!1,l.blending=b.m,l.depthTest=!1,l.depthWrite=!1,l.needsUpdate=!0,l}var eE=new Set;function eI(a){if(!a.__spePcssPyramid){a.__spePcssPyramid={fresh:!1,slot:-1,passKey:"",mid:null,small:null,toMid:null,toSmall:null};var r=!0,n=!1,i=void 0;try{for(var s,o=eE[Symbol.iterator]();!(r=(s=o.next()).done);r=!0){var l=s.value;void 0===l.deref()&&eE.delete(l)}}catch(a){n=!0,i=a}finally{try{r||null==o.return||o.return()}finally{if(n)throw i}}eE.add(new WeakRef(a.__spePcssPyramid))}return a.__spePcssPyramid}var eF=Array(8).fill(null);function eL(a){var r;return!0===(null==(r=a.__spePcssPyramid)?void 0:r.fresh)}var eU=!1,eO=new b.Fc,eG=function(a){return a},eq=function(a){return a},eW=function(a){return a},eH=!0,ej=!0,eK=!0,eJ=!0;try{var eX=new URLSearchParams(window.location.search),eQ=eX.get("dbgpcss");"classic"===eQ||"0"===eQ?(eH=!1,ej=!1,eK=!1,eJ=!1):(eH="0"!==eX.get("dbgpcsssplit"),ej="0"!==eX.get("dbgpcsshw"),eK="0"!==eX.get("dbgpcsshiz"),eJ="0"!==eX.get("dbgshadowmask"))}catch(a){}var eY=!1,eZ=function(){return ej&&eY},e$=function(){return eK&&eY},e0=function(){return eJ&&eY},e1=function(){return e$()},e2=function(){return e0()},e3=[[0,-.333334],[-.5,.333334],[.5,-.777778],[-.75,-.111112],[.25,.555556],[-.25,-.555556],[.75,.111112],[-.875,.777778],[.125,-.925926],[-.375,-.25926],[.625,.407408],[-.625,-.703704],[.375,-.037038],[-.125,.62963],[.875,-.481482],[-.9375,.185186]],e5=16;function e4(a){return a.__spePcssKnobs||(a.__spePcssKnobs={mapSize:(0,u.vc)(2048),radius:(0,u.vc)(1),penumbraSize:(0,u.vc)(.5),depthEps:(0,u.vc)(1e-4),penumbraFrameScale:(0,u.vc)(1),penumbraFrameOffset:(0,u.vc)(0),pyramidEnabled:(0,u.vc)(0),pyramidSlot:(0,u.vc)(0),maskChannel:(0,u.vc)(new b.Jc(0,0,0,0)),planeNormalMat:(0,u.vc)((new b.Gc).set(0,0,0,0,0,0,0,0,0))}),a.__spePcssKnobs}function e6(a,r){e4(a).maskChannel.value.set(+(0===r),+(1===r),+(2===r),+(3===r))}function e8(a,r,n){var i,s,o,l,u,c,d,h,m=e4(a);m.mapSize.value=null!=(i=null==(u=a.mapSize)?void 0:u.x)?i:2048,m.radius.value=null!=(s=a.radius)?s:1,m.penumbraSize.value=null!=(o=null!=r?r:a.penumbraSize)?o:.5,(null==(c=a.camera)?void 0:c.isOrthographicCamera)&&a.matrix?m.planeNormalMat.value.getNormalMatrix(a.matrix):m.planeNormalMat.value.set(0,0,0,0,0,0,0,0,0);var f="number"==typeof(null==(d=a.camera)?void 0:d.far)&&"number"==typeof(null==(h=a.camera)?void 0:h.near)?a.camera.far-a.camera.near:0;m.depthEps.value=f>.001?1.25/f:1e-4;var v=a.__speRangeEnvelope,p=v?v.far-v.near:0;v&&p>.001&&f>.001&&a.camera?(m.penumbraFrameScale.value=f/p,m.penumbraFrameOffset.value=(a.camera.near-v.near)/p):(m.penumbraFrameScale.value=1,m.penumbraFrameOffset.value=0);var g=0;if(n&&n.fresh&&n.slot>=0&&e$()){var y=m.mapSize.value;80/1024+(2*m.radius.value+2)/Math.max(1,y)<=1/8&&(g=1)}return m.pyramidEnabled.value=g,m.pyramidSlot.value=Math.max(0,null!=(l=null==n?void 0:n.slot)?l:0),1===m.pyramidEnabled.value}function e7(a,r){var n=a.planeNormalMat.mul(r).toVar(),i=n.z,s=(0,u.cc)(i).add((0,u.ic)((0,u.P)(i),(0,u.za)(0))).mul((0,u.eb)((0,u.P)(i),(0,u.za)(1e-4)));return(0,u.Bc)(n.x.negate().div(s),n.y.div(s)).toVar()}var e9=function(a,r){return(0,u.ga)((0,u.ua)(a,r),(0,u.za)(-.05),(0,u.za)(.05))};function te(a,r,n,i,s,o,l){var c=eZ()?Math.max(4,e5>>1):e5,d=eH?Math.max(4,e5>>1):e5,h=eZ(),m=e4(r),f=m.mapSize,v=(0,u.Bc)(f,f),p=m.radius,g=m.penumbraSize,y=(0,u.oc)(a),_=function(a){return y.load((0,u.Ta)((0,u.ga)(a,(0,u.Bc)(0),(0,u.Bc)(1)).mul(v))).x},x=(0,u.za)(1).div(v.x).toVar(),b=(0,u.za)(80).div(x.mul(1024)).toVar(),T=m.depthEps,w=e7(m,l),S=function(){for(var r=(0,u.za)(0).toVar(),l=(0,u.za)(0).toVar(),f=0;f<d;f++)!function(a){var o=eq((0,u.Ga)((0,u.Na)(a),(0,u.Na)(d),s)).mul(x).mul(b),c=_(eq(n.add(o))).toVar();(0,u.J)(c.lessThan(i.add(e9(w,o)).add(T)),function(){r.addAssign(c),l.addAssign(1)})}(f);var v=(0,u.za)(0).toVar();(0,u.J)(l.greaterThan(0),function(){var a=r.div(l).toVar(),n=m.penumbraFrameScale,s=m.penumbraFrameOffset,o=i.sub(a).mul(n).div(a.mul(n).add(s)).toVar();v.assign((0,u.ga)(o.mul(o).mul(200).mul(g),(0,u.za)(0),(0,u.za)(1)))});for(var y=(0,u.za)(0).toVar(),S=0;S<c;S++){var z=eq((0,u.Ga)((0,u.Na)(S),(0,u.Na)(c),s)).mul(x),V=eq(z.mul(p.mul(2)).add(z.mul(v.mul(b)))),C=eG(i.add(e9(w,V)));h?y.addAssign(eG((0,u.oc)(a,eq(n.add(V))).compare(C))):y.addAssign((0,u.ic)(C,_(eq(n.add(V)))))}o.assign(y.div(c))};if(e$()){var z=(0,u.oc)(eB()),V=m.pyramidEnabled,C=m.pyramidSlot,k=(0,u.za)(8),M=(0,u.za)(0).toVar();(0,u.J)(V.greaterThan(.5),function(){for(var a=(0,u.ga)(n,(0,u.Bc)(0),(0,u.Bc)(1)),r=a.x.mul(k).toVar(),s=a.y.mul(k).toVar(),o=C.mul(k),l=(0,u.za)(1e9).toVar(),c=(0,u.za)(-1e9).toVar(),d=-1;d<=1;d++)for(var h=-1;h<=1;h++){var m=(0,u.ga)(r.add((0,u.za)(h)),(0,u.za)(0),k.sub(1)),f=(0,u.ga)(s.add((0,u.za)(d)),(0,u.za)(0),k.sub(1)),v=eq((0,u.Bc)(m.add(o),f)),g=z.load((0,u.Ta)(v));l.assign((0,u.gb)(l,eG(g.x))),c.assign((0,u.eb)(c,eG(g.y)))}var y=x.mul(p.mul(2).add(b)),_=(0,u.gb)((0,u.Va)(w).mul(y),(0,u.za)(.05)).toVar();(0,u.J)(l.greaterThanEqual(i.add(T).add(_)),function(){M.assign(1)}).ElseIf(c.lessThan(i.sub(_)),function(){M.assign(2)})}),(0,u.J)(M.equal(1),function(){o.assign(1)}).ElseIf(M.equal(2),function(){o.assign(0)}).Else(S)}else S()}var tt=(0,u.I)(function(a){var r=a.depthTexture,n=a.shadowCoord,i=a.shadow,s=e4(i),o=n.xy.toVar(),l=n.z.toVar(),c=u.vb.toVar(),d=u.Vc.pcssHalton,h=(0,u.Fa)(u.Yb.xy.add(d)).mul(6.28318530718).toVar(),m=(0,u.za)(1).toVar();if(e0()){var f=s.maskChannel,v=u.Vc.shadowMaskEnabled,p=u.Vc.shadowMaskGBuffer,g=u.Vc.shadowMaskTexture,y=(0,u.za)(0).toVar(),_=(0,u.za)(1).toVar();(0,u.J)(v.greaterThan(.5).and((0,u.ua)(f,(0,u.Dc)(1,1,1,1)).greaterThan(.5)),function(){for(var a=u.Zb,r=u.Vc.shadowMaskResolution,n=u.Vc.shadowMaskFullResolution,i=u.Kb.z,s=a.mul(r).sub((0,u.Bc)(.5,.5)).toVar(),o=(0,u.Aa)(s).toVar(),l=s.sub(o).toVar(),c=(0,u.eb)((0,u.P)(i).mul(.02),(0,u.za)(.05)),d=(0,u.za)(0).toVar(),h=(0,u.za)(0).toVar(),m=0;m<=1;m++)for(var v=0;v<=1;v++){var x=eq((0,u.ga)(o.add((0,u.Bc)(v,m)),(0,u.Bc)(0,0),r.sub((0,u.Bc)(1,1)))),b=eq(x.add((0,u.Bc)(.5,.5)).div(r)),T=eq((0,u.Aa)(b.mul(n)).add((0,u.Bc)(.5,.5)).div(n)),w=eG(p.sample(T).w),S=eG((0,u.ua)(g.sample(b),f)),z=eG(0===v?(0,u.za)(1).sub(l.x):eG(l.x)),V=eG(0===m?(0,u.za)(1).sub(l.y):eG(l.y)),C=eG((0,u.ic)((0,u.P)(w.sub(i)),c)),k=eG(z.mul(V).mul(C)).toVar();d.addAssign(k),h.addAssign(S.mul(k))}(0,u.J)(d.greaterThan(.001),function(){y.assign(1),_.assign(h.div(d))})}),(0,u.J)(y.greaterThan(.5),function(){m.assign(_)}).Else(function(){te(r,i,o,l,h,m,c)})}else te(r,i,o,l,h,m,c);return m}),ta=(0,u.I)(function(a){for(var r=a.depthTexture,n=a.shadowCoord,i=e4(a.shadow),s=n.xy.toVar(),o=n.z.toVar(),l=e7(i,u.vb.toVar()),c=i.mapSize,d=i.radius.mul((0,u.za)(1).div(c)).toVar(),h=(0,u.Fa)(u.Yb.xy).mul(6.28318530718).toVar(),m=(0,u.za)(0).toVar(),f=0;f<5;f++){var v=eq((0,u.Ga)((0,u.Na)(f),(0,u.Na)(5),h)).mul(d).toVar();m.addAssign(eG((0,u.oc)(r,eq(s.add(v))).compare(o.add(e9(l,v)))))}return m.mul(.2)}),tr=(0,u.I)(function(a){for(var r=a.depthTexture,n=a.bd3D,i=a.dp,s=a.shadow,o=e5,l=e4(s),c=l.mapSize,d=l.radius,h=(0,u.za)(1).div(c).toVar(),m=u.Vc.pcssHalton,f=(0,u.Fa)(u.Yb.xy.add(m)).mul(6.28318530718).toVar(),v=d.add(5).toVar(),p=(0,u.za)(0).toVar(),g=0;g<o;g++){var y=eq((0,u.Ga)((0,u.Na)(g),(0,u.Na)(o),f)).mul(h).toVar(),_=eW((0,u.Cc)(y.x,y.y,eG(y.x).negate()).mul(v)),x=eW(n.add(_));p.addAssign(eG((0,u.oa)(r,x).compare(i)))}return p.div(o)});function tn(a,r){return r.isPointLight?(u.Uc.pcssHookServes++,td):r.isSpotLight||r.isDirectionalLight?(u.Uc.pcssHookServes++,tc):null}var ti=(0,u.vc)(1);function ts(a){ti.value=+!!a}var to=function(a,r){return a(r)},tl=["depthTexture","shadowCoord","shadow","depthLayer","bd3D","dp"];function tu(a,r){return function(n){var i=function(a){var r={};if(null==a)return r;var n=!0,i=!1,s=void 0;try{for(var o,l=tl[Symbol.iterator]();!(n=(o=l.next()).done);n=!0){var u=o.value,c=a[u];void 0!==c&&(r[u]=c)}}catch(a){i=!0,s=a}finally{try{n||null==l.return||l.return()}finally{if(i)throw s}}return r}(n),s=to(a,i),o=to(r,i);return(0,u.I)(function(){var a=(0,u.za)(1).toVar();return(0,u.J)(ti.greaterThan(.5),function(){a.assign(s)}).Else(function(){a.assign(o)}),a})()}}var tc=tu(tt,ta),td=tu(tr,u.N),th=new u.v,tm=new b.Tc,tf=new b.Dc,tv=function(){function a(){V(this,a),this._gBuffer=null,this._maskTarget=null,this._resolveMaterial=null,this._resolveKey="",this._cameraWorld=(0,u.vc)(new b.Oc),this._projInv=(0,u.vc)(new b.Oc),this._lightRows=[];var r=new u.c;r.name="SplineShadowMask.gbuffer",r.fragmentNode=(0,u.Dc)(u.ub,u.Kb.z),r.lights=!1,r.blending=b.m,r.needsUpdate=!0,this._gBufferMaterial=r}return M(a,[{key:"_ensureTarget",value:function(a,r,n,i){return a&&a.width===r&&a.height===n?{target:a,changed:!1}:(null==a||a.dispose(),{target:i(),changed:!0})}},{key:"_buildResolveMaterial",value:function(a){var r=new u.c;r.name="SplineShadowMask.resolve";var n=(0,u.oc)(this._gBuffer.depthTexture),i=(0,u.oc)(this._gBuffer.texture),s=this._cameraWorld,o=this._projInv,l=this._gBuffer.width,c=this._gBuffer.height;this._lightRows=a.map(function(){return{matrix:(0,u.vc)(new b.Oc),bias:(0,u.vc)(0),normalBias:(0,u.vc)(0)}});var d=this._lightRows;return r.fragmentNode=(0,u.I)(function(){var r=(0,u.yc)(),h=(0,u.Aa)(r.mul((0,u.Bc)(l,c))).add((0,u.Bc)(.5,.5)).div((0,u.Bc)(l,c)).toVar(),m=n.sample(h),f=(0,u.Ha)(h,m,o).toVar(),v=i.sample(h).toVar(),p=s.mul((0,u.Dc)(f,1)).xyz.toVar(),g=(0,u.xb)(s.mul((0,u.Dc)(v.xyz,0)).xyz).toVar(),y=u.Vc.pcssHalton,_=(0,u.Fa)(u.Yb.xy.add(y)).mul(6.28318530718).toVar(),x=[(0,u.za)(1).toVar(),(0,u.za)(1).toVar(),(0,u.za)(1).toVar(),(0,u.za)(1).toVar()];return a.forEach(function(a,r){var n=d[r],i=p.add(g.mul(n.normalBias)),s=n.matrix.mul((0,u.Dc)(i,1)).toVar(),o=s.xyz.div(s.w),l=(0,u.Cc)(o.x,(0,u.za)(1).sub(o.y),o.z).toVar(),c=l.z.add(n.bias).toVar(),h=l.x.greaterThanEqual(0).and(l.x.lessThanEqual(1)).and(l.y.greaterThanEqual(0)).and(l.y.lessThanEqual(1)).and(c.lessThanEqual(1));(0,u.J)(h,function(){te(a.shadow.map.depthTexture,a.shadow,l.xy,c,_,x[r],g)})}),(0,u.Dc)(x[0],x[1],x[2],x[3])})(),r.lights=!1,r.blending=b.m,r.depthTest=!1,r.depthWrite=!1,r.needsUpdate=!0,r}},{key:"render",value:function(a,r,n,i,s){var o=this,l=null!=s?s:a.getDrawingBufferSize(tf),c=Math.max(1,Math.round(l.x)),d=Math.max(1,Math.round(l.y)),h=Math.max(1,Math.round(c/2)),m=Math.max(1,Math.round(d/2)),f=!1,v=this._ensureTarget(this._gBuffer,c,d,function(){var a=new b.Kc(c,d,{type:b.Ba,depthTexture:new b.Cd(c,d),minFilter:b.qa,magFilter:b.qa});return a.texture.name="SplineShadowMask.gbuffer",a});this._gBuffer=v.target,f=f||v.changed;var p=this._ensureTarget(this._maskTarget,h,m,function(){var a=new b.Kc(h,m,{depthBuffer:!1,minFilter:b.qa,magFilter:b.qa});return a.texture.name="SplineShadowMask.mask",a});this._maskTarget=p.target,f=f||p.changed;var g="".concat(this._gBuffer.texture.uuid,":").concat(i.map(function(a){var r,n,i;return null!=(r=null==(i=a.shadow.map)||null==(n=i.depthTexture)?void 0:n.uuid)?r:"none"}).join(","));(null===this._resolveMaterial||this._resolveKey!==g)&&(null==(P=this._resolveMaterial)||P.dispose(),this._resolveMaterial=this._buildResolveMaterial(i),this._resolveKey=g),this._cameraWorld.value.copy(n.matrixWorld),this._projInv.value.copy(n.projectionMatrix).invert(),i.forEach(function(a,r){null==(s=(l=a.shadow).updateMatrices)||s.call(l,a.light);var n,i,s,l,u=o._lightRows[r];a.shadow.matrix&&u.matrix.value.copy(a.shadow.matrix),u.bias.value=null!=(n=a.shadow.bias)?n:0,u.normalBias.value=null!=(i=a.shadow.normalBias)?i:0});var y=!0===r.isScene,_=[],x=[];r.traverse(function(a){!0===a.isMesh&&!1!==a.visible&&((Array.isArray(a.material)?a.material:[a.material]).some(function(a){return!0===(null==a?void 0:a.transparent)})?(_.push(a),a.visible=!1):y||(x.push({obj:a,material:a.material}),a.material=o._gBufferMaterial))});var T=r.overrideMaterial,w=a.getRenderTarget(),S=a.getMRT(),z=a.getClearColor(tm),V=a.getClearAlpha(),C=n.layers,k=C.mask;C.disable(3),r.overrideMaterial=this._gBufferMaterial,a.setMRT(null),a.setClearColor(0,0),a.setRenderTarget(this._gBuffer),a.render(r,n),r.overrideMaterial=T,C.mask=k;var M=!0,A=!1,R=void 0;try{for(var P,N,B=_[Symbol.iterator]();!(M=(N=B.next()).done);M=!0)N.value.visible=!0}catch(a){A=!0,R=a}finally{try{M||null==B.return||B.return()}finally{if(A)throw R}}var D=!0,E=!1,I=void 0;try{for(var F,L=x[Symbol.iterator]();!(D=(F=L.next()).done);D=!0){var U=F.value;U.obj.material=U.material}}catch(a){E=!0,I=a}finally{try{D||null==L.return||L.return()}finally{if(E)throw I}}return th.material=this._resolveMaterial,th.name="SplineShadowMask.resolve",a.setRenderTarget(this._maskTarget),th.render(a),a.setRenderTarget(w),a.setMRT(S),a.setClearColor(z,V),u.Vc.shadowMaskTexture.value=this._maskTarget.texture,u.Vc.shadowMaskGBuffer.value=this._gBuffer.texture,u.Vc.shadowMaskResolution.value.set(h,m),u.Vc.shadowMaskFullResolution.value.set(c,d),i.forEach(function(a,r){e6(a.shadow,r)}),u.Uc.shadowMaskResolves++,{targetsChanged:f}}},{key:"dispose",value:function(){var a,r,n;null==(a=this._gBuffer)||a.dispose(),this._gBuffer=null,null==(r=this._maskTarget)||r.dispose(),this._maskTarget=null,this._gBufferMaterial.dispose(),null==(n=this._resolveMaterial)||n.dispose(),this._resolveMaterial=null,this._resolveKey=""}}]),a}(),tp=new u.v,tg=function(){function a(r){V(this,a),this.cam=r,this._savedSkewX=0,this._savedSkewY=0,this._savedShiftX=0,this._savedShiftY=0,this._jitterActive=!1}return M(a,[{key:"setViewOffset",value:function(a,r,n,i){this.clearViewOffset();var s=this.cam.projectionMatrix.elements,o=-2*n/a,l=2*i/r;this._savedSkewX=s[8],this._savedSkewY=s[9],this._savedShiftX=s[12],this._savedShiftY=s[13],s[8]+=o*s[11],s[9]+=l*s[11],s[12]+=o*s[15],s[13]+=l*s[15],this.cam.projectionMatrixInverse.copy(this.cam.projectionMatrix).invert(),this._jitterActive=!0}},{key:"clearViewOffset",value:function(){if(this._jitterActive){var a=this.cam.projectionMatrix.elements;a[8]=this._savedSkewX,a[9]=this._savedSkewY,a[12]=this._savedShiftX,a[13]=this._savedShiftY,this.cam.projectionMatrixInverse.copy(this.cam.projectionMatrix).invert(),this._jitterActive=!1}}}]),a}();function ty(a,r){for(var n=0,i=1,s=a;s>0;)i/=r,n+=s%r*i,s=Math.floor(s/r);return n}var t_=Array.from({length:16},function(a,r){return[ty(r+1,2),ty(r+1,3)]}),tx="h16";try{var tb=new URLSearchParams(window.location.search).get("dbgjitseq");("r2"===tb||"h64"===tb||"white"===tb||"half"===tb)&&(tx=tb)}catch(a){}function tT(a){return(0,u.Cc)(a.x.div(4).add(a.y.div(2)).add(a.z.div(4)),a.x.div(2).sub(a.z.div(2)),a.x.div(-4).add(a.y.div(2)).sub(a.z.div(4)))}function tw(a){var r=!(arguments.length>1)||void 0===arguments[1]||arguments[1],n=(0,u.Cc)(a.x.add(a.y).sub(a.z),a.x.add(a.z),a.x.sub(a.y).sub(a.z));return r?(0,u.ga)(n,(0,u.Cc)(0),(0,u.Cc)(1)):(0,u.eb)(n,(0,u.Cc)(0))}var tS=function(a){function r(a,n,i,s){var o,l=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return V(this,r),(o=z(this,r,["vec4"]))._resolution=(0,u.vc)(new b.Dc(1,1)),o._historyValid=(0,u.vc)(0),o._jitterUV=(0,u.vc)(new b.Dc(0,0)),o._resolveMaterials=null,o._rebuildResolveMaterials=null,o.beautyNode=a,o.depthNode=n,o.velocityNode=i,o._hdr=l,o._history=null!=s?s:tz(),o._ownsHistory=void 0===s,o._outputTexNode=(0,u.oc)(o._history.rtA.texture),o}return P(r,a),M(r,[{key:"outputTextureNode",get:function(){return this._outputTexNode}},{key:"renderResolve",value:function(a){u.Ec.setProjectionMatrix(this._history.unjitteredProjection);var r,n=this.beautyNode.passNode.renderTarget,i=n.texture.width,s=n.texture.height,o=this._history;(o.rtA.width!==i||o.rtA.height!==s)&&(o.resize(i,s),null==(r=this._rebuildResolveMaterials)||r.call(this)),this._resolution.value.set(i,s),this._historyValid.value=+!!o.valid,this._jitterUV.value.copy(o.jitterOffsetUV);var l=o.flip?o.rtB:o.rtA,c=this._resolveMaterials?this._resolveMaterials[+!!o.flip]:null,d=a.getRenderTarget(),h=a.getMRT();a.setMRT(null),o.valid||(a.setRenderTarget(o.rtA),a.clear(!0,!1,!1),a.setRenderTarget(o.rtB),a.clear(!0,!1,!1)),a.setRenderTarget(l),c&&(tp.material=c,tp.name="SplineTAA.resolve",tp.render(a)),a.setRenderTarget(d),a.setMRT(h),this._outputTexNode.value=l.texture,o.valid=!0,o.flip=!o.flip,u.Uc.taaResolves++,u.Uc.taaJitterIndex=o.jitterIndex,u.Uc.taaHistoryValid=!0,u.Uc.taaResolveSize="".concat(i,"x").concat(s)}},{key:"setup",value:function(a){var r,n=this,i=!0===a.renderer.reversedDepthBuffer,s=!0===(null==(r=a.renderer.backend)?void 0:r.isWebGLBackend),o=!1,l=!1,c=!1,d=!1,h=!1,m=!1,f=!1,v=!1,p=!1,g=!1;try{var y=new URLSearchParams(window.location.search).get("dbgtaa");o="1"===y,l="zv"===y,c="nc"===y,d="err"===y,h="hist"===y,m="red"===y,f="ns"===y,v="fb90"===y,p="mark"===new URLSearchParams(window.location.search).get("dbgjit"),g="hold"===y}catch(a){}var _=this.beautyNode,x=this.velocityNode,T=this.depthNode,w=this._resolution,S=this._historyValid,z=this._jitterUV,V=function(a){var r=_.sample(a);return(0,u.Dc)(tT(r.rgb),r.a)},C=function(a){var r=(0,u.I)(function(){var r=(0,u.yc)().toVar();if(p)return(0,u.Dc)(z.x.mul(400).add(.5),z.y.mul(400).add(.5),(0,u.za)(.5),(0,u.za)(1));for(var y=(0,u.Bc)((0,u.za)(1).div(w.x),(0,u.za)(1).div(w.y)).toVar(),_=[[-1,1],[0,1],[1,1],[-1,0],[0,0],[1,0],[-1,-1],[0,-1],[1,-1]].map(function(a){var n=I(a,2),i=n[0],s=n[1];return r.add((0,u.Bc)(y.x.mul(i),y.y.mul(s))).toVar()}),C=(0,u.za)(i?-1e3:1e3).toVar(),k=(0,u.Bc)(_[4]).toVar(),M=0;M<9;M++){var A=T.load((0,u.Ta)(_[M].mul(w))).r.toVar(),R=i?A.greaterThan(C):A.lessThan(C);C.assign(R.select(A,C)),k.assign(R.select(_[M],k))}var P=x.load((0,u.Ta)(k.mul(w))).xy.mul((0,u.Bc)(.5,-.5)).toVar();l&&P.assign((0,u.Bc)(0,0));var N=r.sub(P).toVar(),B=s?(0,u.Bc)(N.x,(0,u.za)(1).sub(N.y)).toVar():N,D=V(r).toVar();if(o)return(0,u.Dc)(P.x.mul(20).add(.5),P.y.mul(20).add(.5),S,(0,u.za)(1));if(m){var E=new b.nd(new Uint8Array([255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255]),2,2);return E.needsUpdate=!0,(0,u.oc)(E).sample(r)}if(h){var F=s?(0,u.Bc)(r.x,(0,u.za)(1).sub(r.y)):r;return a.sample(F)}if(d){var L=s?(0,u.Bc)(r.x,(0,u.za)(1).sub(r.y)):r,U=a.sample(B),O=a.sample(L),G=D.x,q=function(a){return tT(a.rgb).x};return(0,u.Dc)(q(U).sub(G).abs().mul(8),q(O).sub(G).abs().mul(8),(0,u.za)(0),(0,u.za)(1))}var W=B.mul(w).toVar(),H=(0,u.Aa)(W.sub(.5)).add(.5).toVar(),j=W.sub(H).toVar(),K=j.mul(j.mul(j.mul(-.5).add(1)).add(-.5)).toVar(),J=j.mul(j).mul(j.mul(1.5).add(-2.5)).add(1).toVar(),X=j.mul(j.mul(j.mul(-1.5).add(2)).add(.5)).toVar(),Q=j.mul(j).mul(j.mul(.5).add(-.5)).toVar(),Y=J.add(X).toVar(),Z=X.div(Y).toVar(),$=H.sub(1).div(w).toVar(),ee=H.add(2).div(w).toVar(),et=H.add(Z).div(w).toVar(),ea=(0,u.Dc)(0).toVar();ea.addAssign(a.sample((0,u.Bc)(et.x,$.y)).mul(Y.x.mul(K.y))),ea.addAssign(a.sample((0,u.Bc)($.x,et.y)).mul(K.x.mul(Y.y))),ea.addAssign(a.sample((0,u.Bc)(et.x,et.y)).mul(Y.x.mul(Y.y))),ea.addAssign(a.sample((0,u.Bc)(ee.x,et.y)).mul(Q.x.mul(Y.y))),ea.addAssign(a.sample((0,u.Bc)(et.x,ee.y)).mul(Y.x.mul(Q.y)));var er=(0,u.Dc)(tT(ea.rgb),ea.a).toVar();if(g)return(0,u.Dc)(tw(er.rgb).mul((0,u.Cc)(1,.55,.55)),ea.a);var en=V(_[0]).toVar(),ei=V(_[1]).toVar(),es=V(_[2]).toVar(),eo=V(_[3]).toVar(),el=V(_[4]).toVar(),eu=V(_[5]).toVar(),ec=V(_[6]).toVar(),ed=V(_[7]).toVar(),eh=V(_[8]).toVar(),em=(0,u.Dc)((0,u.gb)(en,(0,u.gb)(ei,(0,u.gb)(es,(0,u.gb)(eo,(0,u.gb)(el,(0,u.gb)(eu,(0,u.gb)(ec,(0,u.gb)(ed,eh))))))))).toVar(),ef=(0,u.Dc)((0,u.eb)(en,(0,u.eb)(ei,(0,u.eb)(es,(0,u.eb)(eo,(0,u.eb)(el,(0,u.eb)(eu,(0,u.eb)(ec,(0,u.eb)(ed,eh))))))))).toVar(),ev=(0,u.Dc)((0,u.gb)(ei,(0,u.gb)(eo,(0,u.gb)(el,(0,u.gb)(eu,ed))))).toVar(),ep=(0,u.Dc)((0,u.eb)(ei,(0,u.eb)(eo,(0,u.eb)(el,(0,u.eb)(eu,ed))))).toVar();em.assign(em.add(ev).mul(.5)),ef.assign(ef.add(ep).mul(.5));var eg=ef.r.sub(em.r).mul(.25).mul(.5).toVar(),ey=D.gb.toVar();f||(em.y.assign(ey.x.sub(eg)),em.z.assign(ey.y.sub(eg)),ef.y.assign(ey.x.add(eg)),ef.z.assign(ey.y.add(eg)));var e_=(0,u.Dc)(c?er:(0,u.ga)(er,em,ef)).toVar(),ex=v||c?(0,u.za)(.9):(0,u.za)(.9).mul(S),eb=(0,u.Dc)((0,u.hb)(D,e_,ex)).toVar(),eT=u.Vc.tapAngle,ew=(0,u.Qb)(r.mul(w).add((0,u.Bc)(eT.mul(127.1),eT.mul(311.7)))).sub(.5).mul(1/255);return(0,u.Dc)(tw(eb.rgb,!n._hdr).add((0,u.Cc)(ew)),eb.a)}),y=new u.c;return y.name="SplineTAA.resolve",y.colorNode=r(),y.depthTest=!1,y.depthWrite=!1,y.blending=b.m,y.needsUpdate=!0,y};return this._rebuildResolveMaterials=function(){n._resolveMaterials&&(n._resolveMaterials[0].dispose(),n._resolveMaterials[1].dispose()),n._resolveMaterials=[C((0,u.oc)(n._history.rtB.texture)),C((0,u.oc)(n._history.rtA.texture))]},this._rebuildResolveMaterials(),this._outputTexNode}},{key:"dispose",value:function(){this._ownsHistory&&this._history.dispose(),this._resolveMaterials&&(this._resolveMaterials[0].dispose(),this._resolveMaterials[1].dispose(),this._resolveMaterials=null),u.Ec.setProjectionMatrix(null)}}],[{key:"type",get:function(){return"SplineTAANode"}}]),r}(u.a);function tz(){var a=!1;try{var r=new URLSearchParams(window.location.search).get("dbgfp16");a="1"===r||"hist"===r||"st"===r}catch(a){}var n=!1,i=function(){return a||n},s=function(a,r,n){var s=new b.Kc(a,r,{minFilter:b.qa,magFilter:b.qa,depthBuffer:!1});return i()?s.texture.type=b.Ba:(0,u.Sc)()&&(s.texture.internalFormat="rgba8unorm-srgb"),s.texture.name=n,s},o=s(1,1,"SplineTAA.A"),l=s(1,1,"SplineTAA.B"),c=null,d=!1,h=0,m=0,f=0,v=0;return{rtA:o,rtB:l,flip:!1,valid:!1,jitterIndex:0,unjitteredProjection:new b.Oc,jitterOffsetUV:new b.Dc(0,0),beginJitter:function(a,r,n){if(!d){if(d=!0,(null===c||c.cam!==a)&&(null==c||c.clearViewOffset(),c=new tg(a)),this.unjitteredProjection.copy(a.projectionMatrix),u.Vc.unjitteredProjection.value.copy(a.projectionMatrix),"r2"===tx){var i,s,o,l=++this.jitterIndex;i=(.5+.7548776662466927*l)%1,s=(.5+.5698402909980532*l)%1}else if("white"===tx)this.jitterIndex++,i=Math.random(),s=Math.random();else if("h64"===tx)i=ty(this.jitterIndex%64+1,2),s=ty(this.jitterIndex%64+1,3),this.jitterIndex=(this.jitterIndex+1)%64;else if("half"===tx){var p=I(t_[this.jitterIndex],2),g=p[0],y=p[1];i=.5+.5*(g-.5),s=.5+.5*(y-.5),this.jitterIndex=(this.jitterIndex+1)%t_.length}else i=(o=I(t_[this.jitterIndex],2))[0],s=o[1],this.jitterIndex=(this.jitterIndex+1)%t_.length;h=r,m=n,f=i-.5,v=s-.5,u.Vc.cameraJitterPx.value.set(2*f,2*v),c.setViewOffset(r,n,f,v),this.jitterOffsetUV.set(-(i-.5)/r,-(s-.5)/n),u.Uc.taaJitterIndex=this.jitterIndex,u.Uc.taaJitterApplies++}},suspendJitter:function(){d&&(null==c||c.clearViewOffset())},resumeJitter:function(){d&&null!==c&&c.setViewOffset(h,m,f,v)},endJitter:function(){d=!1,this.jitterOffsetUV.set(0,0),null==c||c.clearViewOffset()},resize:function(a,r){this.rtA.dispose(),this.rtB.dispose(),this.rtA=s(a,r,"SplineTAA.A"),this.rtB=s(a,r,"SplineTAA.B"),this.valid=!1},setHdr:function(a){if(n!==a){var r=i();n=a,i()!==r&&this.resize(this.rtA.width,this.rtA.height)}},dispose:function(){this.rtA.dispose(),this.rtB.dispose(),this.valid=!1,d=!1,null==c||c.clearViewOffset(),c=null}}}var tV,tC,tk,tM,tA=function(){function a(){V(this,a),this._frames=0}return M(a,[{key:"frames",get:function(){return this._frames}},{key:"stalled",get:function(){return this._frames>=3}},{key:"update",value:function(a,r){this._frames=a>0&&!r?this._frames+1:0}}]),a}(),tR=new u.v,tP=new b.Dc,tN=function(a){function r(a){V(this,r),(n=z(this,r,["vec4"])).textureNode=a,n.updateBeforeType=u.L.FRAME,n._renderTargetEdges=new b.Kc(1,1,{depthBuffer:!1,type:b.Ba}),n._renderTargetEdges.texture.name="SMAANode.edges",n._renderTargetWeights=new b.Kc(1,1,{depthBuffer:!1,type:b.Ba}),n._renderTargetWeights.texture.name="SMAANode.weights",n._renderTargetBlend=new b.Kc(1,1,{depthBuffer:!1,type:b.Ba}),n._renderTargetBlend.texture.name="SMAANode.blend";var n,i=new Image;i.crossOrigin="anonymous",i.src=(0,x.b)("smaa-node-area.png"),i.onload=function(){n._areaTexture.needsUpdate=!0},n._areaTexture=new b.Ic,n._areaTexture.name="SMAANode.area",n._areaTexture.image=i,n._areaTexture.minFilter=b.qa,n._areaTexture.generateMipmaps=!1,n._areaTexture.flipY=!1;var s=new Image;return s.crossOrigin="anonymous",s.src=(0,x.b)("smaa-node-search.png"),s.onload=function(){n._searchTexture.needsUpdate=!0},n._searchTexture=new b.Ic,n._searchTexture.name="SMAANode.search",n._searchTexture.image=s,n._searchTexture.magFilter=b.na,n._searchTexture.minFilter=b.na,n._searchTexture.generateMipmaps=!1,n._searchTexture.flipY=!1,n._invSize=(0,u.vc)(new b.Dc),n._areaTextureUniform=(0,u.oc)(n._areaTexture),n._searchTextureUniform=(0,u.oc)(n._searchTexture),n._edgesTextureUniform=(0,u.oc)(n._renderTargetEdges.texture),n._weightsTextureUniform=(0,u.oc)(n._renderTargetWeights.texture),n._materialEdges=new u.c,n._materialEdges.name="SMAANode.edges",n._materialWeights=new u.c,n._materialWeights.name="SMAANode.weights",n._materialBlend=new u.c,n._materialBlend.name="SMAANode.blend",n._textureNode=(0,u.Eb)(n,n._renderTargetBlend.texture),n}return P(r,a),M(r,[{key:"getTextureNode",value:function(){return this._textureNode}},{key:"setSize",value:function(a,r){this._invSize.value.set(1/a,1/r),this._renderTargetEdges.setSize(a,r),this._renderTargetWeights.setSize(a,r),this._renderTargetBlend.setSize(a,r)}},{key:"updateBefore",value:function(a){var r=a.renderer;tM=u.w.resetRendererState(r,tM);var n=r.getDrawingBufferSize(tP);this.setSize(n.width,n.height),r.setRenderTarget(this._renderTargetEdges),tR.material=this._materialEdges,tR.render(r),r.setRenderTarget(this._renderTargetWeights),tR.material=this._materialWeights,tR.render(r),r.setRenderTarget(this._renderTargetBlend),tR.material=this._materialBlend,tR.render(r),u.w.restoreRendererState(r,tM)}},{key:"setup",value:function(a){var r=this,n=(0,u.Bc)(.00625,.0017857142857142857),i=1/7,s=this.textureNode.uvNode||(0,u.yc)(),o=(0,u.I)(function(){var a=(0,u.Dc)(s.xy,s.xy).add((0,u.Dc)(r._invSize.xy,r._invSize.xy).mul((0,u.Dc)(-1,0,0,-1))),n=(0,u.Dc)(s.xy,s.xy).add((0,u.Dc)(r._invSize.xy,r._invSize.xy).mul((0,u.Dc)(1,0,0,1))),i=(0,u.Dc)(s.xy,s.xy).add((0,u.Dc)(r._invSize.xy,r._invSize.xy).mul((0,u.Dc)(-2,0,0,-2)));return(0,u.Ac)("vec4","vOffset0").assign(a),(0,u.Ac)("vec4","vOffset1").assign(n),(0,u.Ac)("vec4","vOffset2").assign(i),u.mb}),l=(0,u.I)(function(){var a=(0,u.Ac)("vec4","vOffset0"),n=(0,u.Ac)("vec4","vOffset1"),i=(0,u.Ac)("vec4","vOffset2"),o=(0,u.Bc)(.1,.1),l=(0,u.Dc)().toVar(),c=r.textureNode.sample(s).rgb.toVar(),d=r.textureNode.sample(a.xy).rgb.toVar(),h=(0,u.P)(c.sub(d));l.x=(0,u.eb)(h.r,h.g,h.b);var m=r.textureNode.sample(a.zw).rgb.toVar();h=(0,u.P)(c.sub(m)),l.y=(0,u.eb)(h.r,h.g,h.b);var f=(0,u.ic)(o,l.xy).toVar();(0,u.ua)(f,(0,u.Bc)(1,1)).equal(0).discard();var v=r.textureNode.sample(n.xy).rgb.toVar();h=(0,u.P)(c.sub(v)),l.z=(0,u.eb)(h.r,h.g,h.b);var p=r.textureNode.sample(n.zw).rgb.toVar();h=(0,u.P)(c.sub(p)),l.w=(0,u.eb)(h.r,h.g,h.b);var g=(0,u.eb)(l.x,l.y,l.z,l.w).toVar(),y=r.textureNode.sample(i.xy).rgb.toVar();h=(0,u.P)(c.sub(y)),l.z=(0,u.eb)(h.r,h.g,h.b);var _=r.textureNode.sample(i.zw).rgb.toVar();return h=(0,u.P)(c.sub(_)),l.w=(0,u.eb)(h.r,h.g,h.b),g=(0,u.eb)(g,l.z,l.w),f.xy.mulAssign((0,u.Bc)((0,u.ic)((0,u.za)(.5).mul(g),l.xy))),(0,u.Dc)(f,0,0)}),c=(0,u.I)(function(a){var r=I(a,4),n=r[0],i=r[1],s=r[2],o=r[3],l=(0,u.Bc)(i).toVar();return l.r=s.add(l.r.mul(o)),(0,u.za)(255).mul(n.sample(l)).r}),d=(0,u.I)(function(a){var r=I(a,5),s=r[0],o=r[1],l=r[2],c=r[3],d=r[4],h=(0,u.za)(16).mul((0,u.za)(4).mul((0,u.Bc)(l,c)).round()).add(o);return(h=n.mul(h).add((0,u.za)(.5).mul(n))).y.addAssign((0,u.za)(i).mul(d)),s.sample(h).rg}),h=(0,u.I)(function(a){var n=I(a,4),i=n[0],s=n[1],o=n[2],l=n[3],d=(0,u.Bc)(0,1).toVar(),h=(0,u.Bc)(o).toVar();return(0,u.K)({start:(0,u.Na)(0),end:(0,u.Na)(8),type:"int",condition:"<"},function(){d.assign(i.sample(h).rg),h.subAssign((0,u.Bc)(2,0).mul(r._invSize)),(0,u.J)(h.x.lessThanEqual(l).or(d.g.lessThanEqual((0,u.za)(.8281)).or(d.r.notEqual((0,u.za)(0)))),function(){(0,u.G)()})}),h.x.addAssign((0,u.za)(.25).mul(r._invSize.x)),h.x.addAssign(r._invSize.x),h.x.addAssign((0,u.za)(2).mul(r._invSize.x)),h.x.subAssign(r._invSize.x.mul(c(s,d,0,.5))),h.x}),m=(0,u.I)(function(a){var n=I(a,4),i=n[0],s=n[1],o=n[2],l=n[3],d=(0,u.Bc)(0,1).toVar(),h=(0,u.Bc)(o).toVar();return(0,u.K)({start:(0,u.Na)(0),end:(0,u.Na)(8),type:"int",condition:"<"},function(){d.assign(i.sample(h).rg),h.addAssign((0,u.Bc)(2,0).mul(r._invSize)),(0,u.J)(h.x.greaterThanEqual(l).or(d.g.lessThanEqual((0,u.za)(.8281)).or(d.r.notEqual((0,u.za)(0)))),function(){(0,u.G)()})}),h.x.subAssign((0,u.za)(.25).mul(r._invSize.x)),h.x.subAssign(r._invSize.x),h.x.subAssign((0,u.za)(2).mul(r._invSize.x)),h.x.addAssign(r._invSize.x.mul(c(s,d,.5,.5))),h.x}),f=(0,u.I)(function(a){var n=I(a,4),i=n[0],s=n[1],o=n[2],l=n[3],d=(0,u.Bc)(1,0).toVar(),h=(0,u.Bc)(o).toVar();return(0,u.K)({start:(0,u.Na)(0),end:(0,u.Na)(8),type:"int",condition:"<"},function(){d.assign(i.sample(h).rg),h.addAssign((0,u.Bc)(0,-2).mul(r._invSize)),(0,u.J)(h.y.lessThanEqual(l).or(d.r.lessThanEqual((0,u.za)(.8281)).or(d.g.notEqual((0,u.za)(0)))),function(){(0,u.G)()})}),h.y.addAssign((0,u.za)(.25).mul(r._invSize.y)),h.y.addAssign(r._invSize.y),h.y.addAssign((0,u.za)(2).mul(r._invSize.y)),h.y.subAssign(r._invSize.y.mul(c(s,d.gr,0,.5))),h.y}),v=(0,u.I)(function(a){var n=I(a,4),i=n[0],s=n[1],o=n[2],l=n[3],d=(0,u.Bc)(1,0).toVar(),h=(0,u.Bc)(o).toVar();return(0,u.K)({start:(0,u.Na)(0),end:(0,u.Na)(8),type:"int",condition:"<"},function(){d.assign(i.sample(h).rg),h.subAssign((0,u.Bc)(0,-2).mul(r._invSize)),(0,u.J)(h.y.greaterThanEqual(l).or(d.r.lessThanEqual((0,u.za)(.8281)).or(d.g.notEqual((0,u.za)(0)))),function(){(0,u.G)()})}),h.y.subAssign((0,u.za)(.25).mul(r._invSize.y)),h.y.subAssign(r._invSize.y),h.y.subAssign((0,u.za)(2).mul(r._invSize.y)),h.y.addAssign(r._invSize.y.mul(c(s,d.gr,.5,.5))),h.y}),p=(0,u.I)(function(){var a=s.xy.div(r._invSize),n=(0,u.Dc)(s.xy,s.xy).add((0,u.Dc)(r._invSize.xy,r._invSize.xy).mul((0,u.Dc)(-.25,-.125,1.25,-.125))).toVar(),i=(0,u.Dc)(s.xy,s.xy).add((0,u.Dc)(r._invSize.xy,r._invSize.xy).mul((0,u.Dc)(-.125,-.25,-.125,1.25))).toVar(),o=(0,u.Dc)(n.xz,i.yw).add((0,u.Dc)(-2,2,-2,2).mul((0,u.Dc)(r._invSize.xx,r._invSize.yy)).mul((0,u.za)(8))).toVar();return(0,u.Ac)("vec2","vPixcoord").assign(a),(0,u.Ac)("vec4","vOffset0").assign(n),(0,u.Ac)("vec4","vOffset1").assign(i),(0,u.Ac)("vec4","vOffset2").assign(o),u.mb}),g=(0,u.I)(function(){var a=(0,u.Ac)("vec2","vPixcoord"),n=(0,u.Ac)("vec4","vOffset0"),i=(0,u.Ac)("vec4","vOffset1"),o=(0,u.Ac)("vec4","vOffset2"),l=(0,u.Dc)(0,0,0,0).toVar(),c=(0,u.Dc)(0,0,0,0).toVar(),p=r._edgesTextureUniform.sample(s).rg.toVar();return(0,u.J)(p.g.greaterThan((0,u.za)(0)),function(){var s=(0,u.Bc)().toVar(),f=(0,u.Bc)().toVar();f.x=h(r._edgesTextureUniform,r._searchTextureUniform,n.xy,o.x),f.y=i.y,s.x=f.x;var v=r._edgesTextureUniform.sample(f).r.toVar(),p=(0,u.Bc)().toVar();p.x=m(r._edgesTextureUniform,r._searchTextureUniform,n.zw,o.y),p.y=i.y,s.y=p.x,s=s.div(r._invSize.x).sub(a.x);var g=(0,u.hc)((0,u.P)(s)),y=r._edgesTextureUniform.sample(p.add((0,u.Bc)(1,0).mul(r._invSize))).r.toVar();l.r=y,l.rg=d(r._areaTextureUniform,g,v,y,(0,u.za)(c.y))}),(0,u.J)(p.r.greaterThan((0,u.za)(0)),function(){var s=(0,u.Bc)().toVar(),h=(0,u.Bc)().toVar();h.y=f(r._edgesTextureUniform,r._searchTextureUniform,i.xy,o.z),h.x=n.x,s.x=h.y;var m=r._edgesTextureUniform.sample(h).g.toVar(),p=(0,u.Bc)().toVar();p.y=v(r._edgesTextureUniform,r._searchTextureUniform,i.zw,o.w),p.x=n.x,s.y=p.y,s=s.div(r._invSize.y).sub(a.y);var g=(0,u.hc)((0,u.P)(s)),y=r._edgesTextureUniform.sample(p.add((0,u.Bc)(0,1).mul(r._invSize))).g.toVar();l.ba=d(r._areaTextureUniform,g,m,y,(0,u.za)(c.x))}),l}),y=(0,u.I)(function(){var a=(0,u.Dc)(s.xy,s.xy).add((0,u.Dc)(r._invSize.xy,r._invSize.xy).mul((0,u.Dc)(1,0,0,1)));return(0,u.Ac)("vec4","vOffset1").assign(a),u.mb}),_=(0,u.I)(function(){var a=(0,u.Ac)("vec4","vOffset1"),n=(0,u.Dc)().toVar(),i=(0,u.Dc)().toVar();return i.xz=r._weightsTextureUniform.sample(s).xz,i.y=r._weightsTextureUniform.sample(a.zw).g,i.w=r._weightsTextureUniform.sample(a.xy).a,(0,u.J)((0,u.ua)(i,(0,u.Dc)(1)).lessThan(1e-5),function(){n.assign(r.textureNode.sample(s))}).Else(function(){var a=(0,u.Bc)().toVar();a.x=i.a.greaterThan(i.b).select(i.a,i.b.negate()),a.y=i.g.greaterThan(i.r).select(i.g,i.r.negate()),(0,u.J)((0,u.P)(a.x).greaterThan((0,u.P)(a.y)),function(){a.y.assign(0)}).Else(function(){a.x.assign(0)});var o=r.textureNode.sample(s).toVar(),l=(0,u.Bc)(s).toVar();l.addAssign((0,u.cc)(a).mul(r._invSize));var c=r.textureNode.sample(l).toVar(),d=(0,u.P)(a.x).greaterThan((0,u.P)(a.y)).select((0,u.P)(a.x),(0,u.P)(a.y)).toVar(),h=(0,u.hb)(o,c,d);n.assign(h)}),n});return this._materialEdges.vertexNode=o().context(a.getSharedContext()),this._materialEdges.fragmentNode=l().context(a.getSharedContext()),this._materialEdges.needsUpdate=!0,this._materialWeights.vertexNode=p().context(a.getSharedContext()),this._materialWeights.fragmentNode=g().context(a.getSharedContext()),this._materialWeights.needsUpdate=!0,this._materialBlend.vertexNode=y().context(a.getSharedContext()),this._materialBlend.fragmentNode=_().context(a.getSharedContext()),this._materialBlend.needsUpdate=!0,this._textureNode}},{key:"dispose",value:function(){this._renderTargetEdges.dispose(),this._renderTargetWeights.dispose(),this._renderTargetBlend.dispose(),this._areaTexture.dispose(),this._searchTexture.dispose(),this._materialEdges.dispose(),this._materialWeights.dispose(),this._materialBlend.dispose()}},{key:"_getAreaTexture",value:function(){return""}},{key:"_getSearchTexture",value:function(){return""}}],[{key:"type",get:function(){return"SMAANode"}}]),r}(u.a),tB=new b.Dc,tD=new b.Tc,tE=function(){function a(){V(this,a),this._rt=null,this._texNode=null,this._smaaNode=null,this._material=null,this._quad=null,this._depthTexNode=null,this._seedMaterial=null,this._seedQuad=null}return M(a,[{key:"_ensureTarget",value:function(a,r,n){if(null===this._rt||this._rt.width!==a||this._rt.height!==r){null==(s=this._rt)||s.dispose();var i,s,o=new b.Kc(a,r,{depthBuffer:!0,stencilBuffer:!1,samples:0});o.texture.name="SplineHelperOverlay.color",this._rt=o}if(null===this._texNode){this._texNode=(0,u.oc)(this._rt.texture),this._smaaNode=(i=this._texNode,new tN((0,u.la)(i)));var l=new u.c;l.name="SplineHelperOverlayComposite",l.fragmentNode=this._smaaNode,l.transparent=!0,l.blending=b.r,l.blendEquation=b.t,l.blendSrc=b.z,l.blendDst=b.D,l.blendSrcAlpha=b.z,l.blendDstAlpha=b.D,l.depthTest=!1,l.depthWrite=!1,this._material=l,this._quad=new u.v(l);var c=new u.c;c.name="SplineHelperOverlayDepthSeed",this._depthTexNode=(0,u.oc)(n),c.depthNode=this._depthTexNode.x,c.fragmentNode=(0,u.Dc)(0),c.colorWrite=!1,c.depthTest=!1,c.depthWrite=!0,this._seedMaterial=c,this._seedQuad=new u.v(c)}else this._texNode.value!==this._rt.texture&&(this._texNode.value=this._rt.texture),this._depthTexNode.value!==n&&(this._depthTexNode.value=n);return this._rt}},{key:"render",value:function(a,r,n,i,s){a.getDrawingBufferSize(tB);var o=this._ensureTarget(tB.x,tB.y,s),l=a.getRenderTarget(),c=a.autoClear;a.getClearColor(tD);var d=a.getClearAlpha();if(a.autoClear=!1,a.setRenderTarget(o),a.setClearColor(0,0),a.clear(!0,!0,!1),this._seedQuad.render(a),r&&a.render(r,i),a.clear(!1,!0,!1),n&&a.render(n,i),a.setRenderTarget(l),a.setClearColor(tD,d),(0,u.Tc)()){var h=a.toneMapping,m=a.outputColorSpace;a.toneMapping=b.Y,a.outputColorSpace=b.Hc.workingColorSpace,this._quad.render(a),a.toneMapping=h,a.outputColorSpace=m}else this._quad.render(a);a.autoClear=c}},{key:"dispose",value:function(){var a,r,n,i;null==(a=this._rt)||a.dispose(),this._rt=null,null==(r=this._smaaNode)||r.dispose(),null==(n=this._material)||n.dispose(),null==(i=this._seedMaterial)||i.dispose()}}]),a}(),tI=new WeakMap,tF=new Set,tL=0,tU=new WeakMap,tO=new Set,tG=0;function tq(a){var r,n=null==(r=a.parent)?void 0:r.selectedTexture;return n&&!0===n.isTexture?n:null}function tW(a){for(var r=a.src.array,n=a.attr.array,i=0,s=Math.min(r.length,n.length);i<s;i++)n[i]=r[i];a.attr.needsUpdate=!0}var tH=new WeakMap;function tj(a,r,n,i){var s=a.num(0),o=a.num(1),l=a.num(.5),u=a.num(2),c=a.num(1e-6),d=function(r){return a.sub(o,r)};switch(r){case 0:return n;case 1:return a.min(a.add(n,i),o);case 3:return a.mul(a.add(n,i),l);case 4:var h=a.max(d(a.div(d(n),a.max(i,c))),s);return a.mix(i,h,a.step(c,i));case 5:var m=a.min(a.div(n,a.max(d(i),c)),o);return a.mix(m,i,a.step(o,i));case 6:return a.min(n,i);case 7:return a.abs(a.sub(n,i));case 8:return a.sub(a.add(n,i),a.mul(u,a.mul(n,i)));case 9:return a.max(n,i);case 10:return a.mul(n,i);case 11:var f=a.min(a.div(n,a.max(i,c)),o);return a.mix(o,f,a.step(c,i));case 12:return d(a.abs(a.sub(d(n),i)));case 14:var v=a.mul(u,a.mul(n,i)),p=d(a.mul(u,a.mul(d(n),d(i))));return a.mix(v,p,a.step(l,n));case 15:var g=a.min(a.div(a.mul(n,n),a.max(d(i),c)),o);return a.mix(g,i,a.step(o,i));case 16:return d(a.mul(d(n),d(i)));case 17:var y=a.mul(u,i),_=a.add(a.mul(n,y),a.mul(a.mul(n,n),d(y))),x=a.add(a.mul(a.sqrt(a.max(n,s)),a.sub(y,o)),a.mul(a.mul(u,n),d(i)));return a.mix(_,x,a.step(l,i));case 18:return a.max(a.sub(a.add(n,i),o),s);default:return i}}var tK={num:function(a){return(0,u.za)(a)},add:function(a,r){return a.add(r)},sub:function(a,r){return a.sub(r)},mul:function(a,r){return a.mul(r)},div:function(a,r){return a.div(r)},min:function(a,r){return(0,u.gb)(a,r)},max:function(a,r){return(0,u.eb)(a,r)},abs:function(a){return(0,u.P)(a)},sqrt:function(a){return(0,u.hc)(a)},step:function(a,r){return(0,u.ic)(a,r)},mix:function(a,r,n){return(0,u.hb)(a,r,n)}};function tJ(a,r,n,i,s){if(0===n)return a;if(2===n)return(0,u.hb)(a,r,(0,u.gb)(s,i));var o=tj(tK,n,a,r);return(0,u.hb)(a,o,i)}function tX(a,r,n,i){if(0===n)return a;if(2===n)return(0,u.eb)(a,(0,u.gb)(r,i));var s=tj(tK,n,a,r);return(0,u.hb)(a,s,i)}var tQ=null;function tY(){return null===tQ&&(tQ=(0,u.pb)({output:u.Bb,velocity:u.Ec})),tQ}var tZ=(0,u.I)(function(a){var r=a.lightDistance,n=a.cutoffDistance,i=a.decayExponent,s=n.greaterThan(0).and(i.greaterThan(0));return(0,u._b)(s,r.div(n).oneMinus().clamp().pow(i),(0,u.za)(1))}),t$=function(a){function r(){return V(this,r),z(this,r,arguments)}return P(r,a),M(r,[{key:"setupDirect",value:function(a){var r=this.getLightVector(a),n=r.normalize(),i=tZ({lightDistance:r.length(),cutoffDistance:this.cutoffDistanceNode,decayExponent:this.decayExponentNode});return{lightColor:this.colorNode.mul(i),lightDirection:n}}}],[{key:"type",get:function(){return"SplinePointLightNode"}}]),r}(u.x),t0=function(a){function r(){return V(this,r),z(this,r,arguments)}return P(r,a),M(r,[{key:"setupDirect",value:function(a){var r,n,i=this.light,s=this.getLightVector(a),o=s.normalize(),l=o.dot((0,u.Wa)(i)),c=this.getSpotAttenuation(a,l),d=tZ({lightDistance:s.length(),cutoffDistance:this.cutoffDistanceNode,decayExponent:this.decayExponentNode}),h=this.colorNode.mul(c).mul(d);if(i.colorNode?(n=this.getLightCoord(a),r=i.colorNode(n)):i.map&&(n=this.getLightCoord(a),r=(0,u.oc)(i.map,n.xy).onRenderUpdate(function(){return i.map})),r&&n){var m=n.mul(2).sub(1).abs().lessThan(1).all();h=(0,u._b)(m,h.mul(r),h)}return{lightColor:h,lightDirection:o}}}],[{key:"type",get:function(){return"SplineSpotLightNode"}}]),r}(u.B),t1=null,t2=new b.Fc,t3=new b.Fc,t5=new b.Tc,t4=new b.Tc,t6=new b.Tc,t8=new b.Fc,t7=new b.Fc,t9=new b.Dc,ae=new b.Fc(1,0,0),at=new b.Fc(0,1,0),aa=new b.Fc(0,0,1),ar=new b.Fc,an=new b.Fc,ai=new b.Fc,as=new b.Fc,ao=new b.Oc,al=new b.Fc,au=new b.Fc,ac=new b.rd,ad=new b.Jc,ah=new b.Jc,am=new b.Dc,af=new b.Dc,av=new b.Fc,ap=new b.Fc,ag=new b.Fc,ay=new b.Fc,a_=new b.Fc,ax=[],ab=!1,aT=!1,aw=!1,aS="full",az="g16",aV=!1,aC=!1,ak=!1,aM="default",aA=!1,aR=!0,aP=!0,aN=!0,aB=!0,aD=!0,aE=h.a;try{var aI=new URLSearchParams(window.location.search),aF=aI.get("instancing");if(null!==aF)if("off"===aF||"0"===aF||"false"===aF||"no"===aF)aD=!1;else{var aL=Number.parseInt(aF,10);Number.isFinite(aL)&&aL>1&&(aE=aL)}ab="0"===aI.get("dbgao"),aT="0"===aI.get("dbgshadow"),aw="1"===aI.get("dbgfp16"),aV="0"===aI.get("dbgsky"),aC="0"===aI.get("dbgssr"),ak="0"===aI.get("dbgibl");var aU=aI.get("pbrcolor");"0"===aU?aM="off":("linear"===aU||"aces"===aU||"agx"===aU||"neutral"===aU)&&(aM=aU),aA="0"===aI.get("dbgplanar"),aR="0"!==aI.get("dbgplanarpyr"),aP="0"!==aI.get("dbgssrpyr"),aN="0"!==aI.get("dbgssrhalf"),aB="0"!==aI.get("dbgssrresolve");var aO=aI.get("dbgprefilter");"0"===aO?aS="off":"base"===aO?aS="base":"k4"===aO&&(az="k4")}catch(a){}var aG=function(a){function r(){var a,n,i,s,o,l,c,d,h,f,g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return V(this,r),(n=z(this,r,[{canvas:g.canvas,alpha:null==(i=g.alpha)||i,antialias:null!=(s=g.antialias)&&s,forceWebGL:null!=(o=g.forceWebGL)&&o,powerPreference:g.powerPreference,trackTimestamp:null!=(l=g.trackTimestamp)?l:!0===globalThis.__SPLINE_TRACK_TIMESTAMP__,stencil:!1,requiredLimits:g.requiredLimits,canvasColorSpace:"display-p3",outputBufferType:aw?b.Ba:b.ua,asyncCompilation:!0===g.asyncCompilation||"load"===g.asyncCompilation}])).viewportWidth=1,n.viewportHeight=1,n.resolution=new b.Dc,n.dummyCamera=new p.a,n.sceneTransitionDuration=0,n.sceneTransitionTimeRemaining=-1,n.manageShadowUpdates=!1,n.forceShadowUpdates=!1,n._shadowMapMissingAtSync=!1,n._shadowSyncPromotions=-1,n._lightShadowStateDirty=!1,n._lightShadowSignatures=new WeakMap,n._shadowMapIds=new WeakMap,n._shadowMapIdSeq=0,n.temporalAAEnabled=!0,n.hdrChainActive=!1,n.isWebGPUSplineRenderer=!0,n.shadowFilterHook=tn,n._gaugeSnapshot="",n._gaugeChangedAt=0,n._gaugeStallWarned=!1,n._skipStalls=new tA,n._stallWarned=!1,n._asyncCompilationMode=!1,n._asyncLoadWarmupsInFlight=0,n.sceneBundlesEnabled=!1,n.sceneBundlesForceRerecord=!1,n._appliedWidth=-1,n._appliedHeight=-1,n._appliedRatio=-1,n._bundleStates=new WeakMap,n._skySystem=null,n._skyFeatureWarned=!1,n.skyAnimationAllowed=!1,n.skyEnvironmentNeeded=!0,n._bundledPages=new Set,n._bundleValveArmed=!1,n._destroyedSubmitErrors=0,n._destroyedSubmitLastFrame=-10,n._warmupTarget=null,n.renderStarted=!1,n._warmupInFlight=!1,n._warmupPendingTarget=null,n._warmupPendingMRT=null,n._grabWarmupTarget=null,n._warnedHelperIncompat=new WeakSet,n._maskLights=[],n._maskBlocked=!1,n.suppressShadowMask=!1,n._grabTargetEpoch=0,n._retiredGrabTargets=[],n._retiredGpuBuffers=[],n._bundleEpochDirty=!1,n._encodeMaterials={},n._transmissionChain=[],n._reflectionColorChain=[],n._reflectionDepthChain=[],n._reflectionPassesKey="",n._reflectionResolveMarchKey="",n._planarChain=[],n._frameSerial=0,n._asyncCompilationMode=null!=(c=g.asyncCompilation)&&c,n._updateCompilationBurst(),ew&&function(){if(!eC){if(eC=!0,eV=function(){return u.Vc.frameIndex.value},("u"<typeof GPUBuffer?"undefined":L(GPUBuffer))<"u"){var a=GPUBuffer.prototype.destroy;GPUBuffer.prototype.destroy=function(){return eM("buffer",this.label,this.size),a.call(this)}}if(("u"<typeof GPUTexture?"undefined":L(GPUTexture))<"u"){var r=GPUTexture.prototype.destroy;GPUTexture.prototype.destroy=function(){return eM("texture",this.label,"".concat(this.width,"x").concat(this.height)),r.call(this)}}console.info("[spline/webgpu] ?dbgdestroys=1 — GPU resource destroy logging armed; reproduce the error and read the [dbgdestroys] dumps")}}(),n.pipeline=new eT(n),n.library.addLight(eh,ed),n.shadowMap.enabled=!0,n.shadowMap.type=b.g,eY=!0===(null==(d=n.backend)?void 0:d.isWebGPUBackend),n._deferGpuBufferDestruction(),function(a){if(null!=a&&"function"==typeof a._draw&&!0!==a.__splineDrawGuardInstalled){a.__splineDrawGuardInstalled=!0;var r=a._draw.bind(a);a._draw=function(a,n,i,s,o,l,u,c,d){if(u.vertexCount>0&&null===a.getIndex()&&null===a.getIndirect()&&!0!==a.object.isBatchedMesh)for(var h=u.firstVertex+u.vertexCount,m=0;m<l.length;m++){var f=l[m];if(!0!==f.isInstancedBufferAttribute&&!0!==f.isInstancedInterleavedBuffer&&void 0!==f.count&&f.count<h)return}return r(a,n,i,s,o,l,u,c,d)}}}(n.backend),n.outputColorSpace=b.Jb,n.toneMapping=b.Y,(a=n.library).addLight(t$,m.a),a.addLight(t0,v.b),a.addLight(u.z,v.a),a.lightNodes.delete(b.ze),a.lightNodes.delete(b.ye),a.addLight(t$,b.ze),a.addLight(t0,b.ye),n.sceneBundlesEnabled=!0===g.sceneBundles||"rerecord"===g.sceneBundles,n.sceneBundlesForceRerecord="rerecord"===g.sceneBundles,n.auxiliary=!0===g.auxiliary,null==(h=(f=n.domElement).removeAttribute)||h.call(f,"data-engine"),n}return P(r,a),M(r,[{key:"lastFrameIncomplete",get:function(){var a;return!!(this._warmupInFlight||this._compilationHasWork&&!this._gaugesStalled)||0!==(null!=(a=this._skippedAsyncDraws)?a:0)&&!this._skipStalls.stalled}},{key:"_gaugesStalled",get:function(){return this._gaugeChangedAt>0&&performance.now()-this._gaugeChangedAt>aG._GAUGE_STALL_MS}},{key:"_trackGaugeStall",value:function(){var a=this._asyncCompilationGauges,r=void 0!==a&&(a.queued>0||a.pipelines>0),n=r?"".concat(a.queued,"/").concat(a.pipelines):"";return r?n!==this._gaugeSnapshot?(this._gaugeSnapshot=n,void(this._gaugeChangedAt=performance.now())):void(this._gaugesStalled&&!this._gaugeStallWarned&&(this._gaugeStallWarned=!0,console.warn("[spline/webgpu] async pipeline driver stalled (".concat(n," in flight, no movement for ").concat(aG._GAUGE_STALL_MS,"ms) — treating frames as final so screenshots, thumbnails and the on-demand render loop keep working.")))):(this._gaugeSnapshot="",void(this._gaugeChangedAt=0))}},{key:"_trackStalledSkips",value:function(a){var r=this._compilationHasWork&&!this._gaugesStalled;this._skipStalls.update(a,r),u.Uc.stalledSkipFrames=this._skipStalls.frames,this._skipStalls.stalled&&!this._stallWarned&&(this._stallWarned=!0,console.warn("[spline/webgpu] ".concat(a,' draw(s) are permanently skipped — their render pipelines never became ready (look for "pipeline creation failed" above). Those objects will not appear; the frame is treated as final so screenshots, thumbnails and the on-demand render loop keep working.')))}},{key:"_asyncCompilationGauges",get:function(){return this.info.asyncCompilation}},{key:"_compilationHasWork",get:function(){var a=this._asyncCompilationGauges;return void 0!==a&&(a.queued>0||a.pipelines>0)}},{key:"asyncCompilationEnabled",get:function(){return!0===this._asyncCompilation}},{key:"taaHistory",get:function(){return this._taaHistory||(this._taaHistory=tz()),this._taaHistory}},{key:"init",value:function(){var a=this,n=this;return S(function(){var i,s,o;return G(this,function(l){switch(l.label){case 0:return[4,A(R(r.prototype),"init",a).call(n)];case 1:if(l.sent(),(o=this.backend.gl)&&"drawingBufferColorSpace"in o)try{o.drawingBufferColorSpace="display-p3"}catch(a){console.warn(a)}return[2,(null==(s=this.backend.device)||null==(i=s.lost)||i.then(function(a){var r,n;u.Uc.deviceLost="".concat(null!=(r=null==a?void 0:a.reason)?r:"unknown",": ").concat(null!=(n=null==a?void 0:a.message)?n:"").trim()}),this)]}})}).call(this)}},{key:"setSize",value:function(a,n){var i=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(this._appliedWidth!==a||this._appliedHeight!==n||this._appliedRatio!==this.getPixelRatio()){this._appliedWidth=a,this._appliedHeight=n,this._appliedRatio=this.getPixelRatio();var s=this.viewportWidth!==a||this.viewportHeight!==n;this.viewportWidth=a,this.viewportHeight=n,A(R(r.prototype),"setSize",this).call(this,a,n,i),s&&this.pipeline.resize(a,n,i)}return this}},{key:"setPixelRatio",value:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return this.getPixelRatio()!==a&&A(R(r.prototype),"setPixelRatio",this).call(this,a),this}},{key:"hdTransmission",get:function(){return 1===u.Vc.transmissionLod.value},set:function(a){u.Vc.transmissionLod.value=!0===a?1:2}},{key:"renderScenePass",value:function(a,r){this.render(a,r)}},{key:"_renderObjects",value:function(a,r,n,s){for(var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,l=null===o&&null===n.overrideMaterial,u=0,c=a.length;u<c;u++){var d=a[u],h=d.object,m=d.geometry,f=d.material,v=d.group,p=d.clippingContext;l&&(0,i.a)(f)?this._renderWithDepthPrepass(h,n,r,m,f,v,s,p):this._currentRenderObjectFunction(h,n,r,m,f,v,s,p,o)}}},{key:"_renderWithDepthPrepass",value:function(a,r,n,i,s,o,l,c){var d=this,h=function(i,s){return d._handleObjectFunction(a,i,r,n,l,o,c,s)};a.onBeforeRender(this,r,n,i,s,o),s.side===b.l&&!1===s.forceSinglePass?(h(s.getDepthPrepassTwin(b.k),null),s.side=b.k,h(s,"backSide"),h(s.getDepthPrepassTwin(b.j),null),s.side=b.j,h(s,null),s.side=b.l,u.Uc.depthPrepassDraws+=2):(h(s.getDepthPrepassTwin(s.side),null),h(s,null),u.Uc.depthPrepassDraws++),a.onAfterRender(this,r,n,i,s,o)}},{key:"skySystem",get:function(){return this._skySystem}},{key:"skyAnimationActive",get:function(){var a;return!0===(null==(a=this._skySystem)?void 0:a.animationActive)}},{key:"_liveBundledPages",value:function(){var a,r,n,i,s,o,l,u;return G(this,function(c){switch(c.label){case 0:a=!0,r=!1,n=void 0,c.label=1;case 1:c.trys.push([1,8,9,10]),i=this._bundledPages[Symbol.iterator](),c.label=2;case 2:if(a=(s=i.next()).done)return[3,7];if(void 0!==(l=(o=s.value).deref()))return[3,3];return this._bundledPages.delete(o),[3,5];case 3:return[4,l];case 4:c.sent(),c.label=5;case 5:c.label=6;case 6:return a=!0,[3,2];case 7:return[3,10];case 8:return u=c.sent(),r=!0,n=u,[3,10];case 9:try{a||null==i.return||i.return()}finally{if(r)throw n}return[7];case 10:return[2]}})}},{key:"_armBundleValve",value:function(){var a=this;if(!this._bundleValveArmed){var r=this.backend.device;"function"==typeof(null==r?void 0:r.addEventListener)&&(this._bundleValveArmed=!0,r.addEventListener("uncapturederror",function(r){if(a.sceneBundlesEnabled&&(null!=(c=null==r||null==(d=r.error)?void 0:d.message)?c:"").toLowerCase().includes("destroyed")){var n=u.Vc.frameIndex.value,i=(n-a._destroyedSubmitLastFrame+16)%16;if(a._destroyedSubmitErrors=i<=2?a._destroyedSubmitErrors+1:1,a._destroyedSubmitLastFrame=n,!(a._destroyedSubmitErrors<4)){a.sceneBundlesEnabled=!1,u.Uc.bundleDisabled=!0;var s=!0,o=!1,l=void 0;try{for(var c,d,h,m=a._liveBundledPages()[Symbol.iterator]();!(s=(h=m.next()).done);s=!0){var f=h.value,v=a._bundleStates.get(f);v&&(v.disabled=!0),f.isBundleGroup=!1}}catch(a){o=!0,l=a}finally{try{s||null==m.return||m.return()}finally{if(o)throw l}}a._bundledPages.clear()}}}))}}},{key:"_updateSceneBundle",value:function(a,r){if(void 0!==this.backend.beginBundle){var n,i=this._bundleStates.get(a);if(void 0===i){var s={signature:-1,rebuilds:0,resourceRebuilds:0,checks:0,disabled:!1,camHash:0,prevCamHash:0,epoch:0,lastEpoch:0,bufferIds:new WeakMap,bufferIdSeq:0,watched:new WeakSet,onResourceDispose:function(){s.epoch++}};i=s,this._bundleStates.set(a,i),this._bundledPages.add(new WeakRef(a)),this._armBundleValve()}if(!i.disabled){for(var o=r.matrixWorld.elements,l=r.projectionMatrix.elements,c=-0x7ee3623b,d=0;d<16;d++)c^=1e4*o[d],c=Math.imul(c=Math.imul(c,0x1000193)^1e4*l[d],0x1000193);i.camHash=c;var h=-0x7ee3623b,m=function(a){h^=a,h=Math.imul(h,0x1000193)};m(this._grabTargetEpoch),m(+(null!==a.fog));var f=i,v=function(a){!a||"function"!=typeof a.addEventListener||f.watched.has(a)||(f.watched.add(a),a.addEventListener("dispose",f.onResourceDispose))},p=function(a){if(!a)return 0;var r=f.bufferIds.get(a);return void 0===r&&(r=++f.bufferIdSeq,f.bufferIds.set(a,r)),r},g=function(a){v(a),m(a.id),m(a.version),m(+(!0===a.transparent)),"function"==typeof a.assetsLoaded&&m(+!!a.assetsLoaded())},y=!1;if(a.traverse(function(a){if(!0===a.isMesh||!0===a.isLine||!0===a.isPoints||!0===a.isSprite){!0===a.isDecalObject&&"function"==typeof a.updateDecal&&a.updateDecal()&&(y=!0),a.frustumCulled&&(a.frustumCulled=!1),m(a.id),m(+!!a.visible),m(a.layers.mask),m(a.renderOrder),m(+(0>a.matrixWorld.determinantAffine()));var r=a.geometry;v(r),m(r.id),m(r.drawRange.start),m(r.drawRange.count===1/0?-1:r.drawRange.count),m(p(r.index)),m(p(r.attributes.position)),m(null!=(l=r.instanceCount)?l:-1),m(void 0===a.count?-1:a.count);var n=a.material,i=!0,s=!1,o=void 0;if(Array.isArray(n))try{for(var l,u,c=n[Symbol.iterator]();!(i=(u=c.next()).done);i=!0){var d=u.value;g(d)}}catch(a){s=!0,o=a}finally{try{i||null==c.return||c.return()}finally{if(s)throw o}}else n&&g(n)}else!0===a.isLight?(m(a.id),m(+!!a.visible),m(+!!a.castShadow)):(m(a.id),m(+!!a.visible))}),m(i.epoch),i.checks++,u.Uc.bundleChecks=i.checks,i.checks%600==0){var _,x,b,T,w=this._bundleDebug;u.Uc.bundleIncompleteRecords=null!=(x=null==w?void 0:w.incompleteRecords)?x:0,u.Uc.bundleRecords=null!=(b=null==w?void 0:w.records)?b:0,u.Uc.bundleReplays=null!=(T=null==w?void 0:w.replays)?T:0,i.prevCamHash=i.camHash}if(!0!==a.isBundleGroup)return a.isBundleGroup=!0,a.static=!0,"number"!=typeof a.version&&(a.version=0),void(i.signature=h);if(this.sceneBundlesForceRerecord)return a.version=(null!=(_=a.version)?_:0)+1,void(i.signature=h);if(h!==i.signature){if(i.signature=h,a.version=(null!=(n=a.version)?n:0)+1,i.epoch!==i.lastEpoch||y)return i.lastEpoch=i.epoch,i.resourceRebuilds++,void(u.Uc.bundleResourceRebuilds=i.resourceRebuilds);i.rebuilds++,u.Uc.bundleRebuilds=i.rebuilds,i.checks>30&&i.rebuilds/i.checks>.1&&(i.disabled=!0,a.isBundleGroup=!1,u.Uc.bundleDisabled=!0)}}}}},{key:"_ensureWarmupTarget",value:function(){if(null===this._warmupTarget){var a=new b.Kc(2,2,{count:2});a.textures[0].name="output",a.textures[0].type=b.ua,a.textures[1].name="velocity",a.textures[1].type=b.Ba;var r=new b.Cd(2,2);r.isRenderTargetTexture=!0,a.depthTexture=r,this._warmupTarget=a}return this._warmupTarget}},{key:"warmupInFlight",get:function(){return this._warmupInFlight}},{key:"setRenderTarget",value:function(a){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._warmupInFlight?this._warmupPendingTarget=[a,n,i]:A(R(r.prototype),"setRenderTarget",this).call(this,a,n,i)}},{key:"setMRT",value:function(a){return this._warmupInFlight?this._warmupPendingMRT=[a]:A(R(r.prototype),"setMRT",this).call(this,a),this}},{key:"compileSceneAsync",value:function(a,n){var i=this,s=this,o=function(){return A(R(r.prototype),"setRenderTarget",i)},l=function(){return A(R(r.prototype),"setMRT",i)};return S(function(){var r,i,u,c,d,m;return G(this,function(f){switch(f.label){case 0:if(!n)return[2];if(i=N(a,h.f)?a.activePage:a,ts(y.sa.isSoft(null==i||null==(r=i.data)?void 0:r.shadow)),i&&Z(i),!1!==this._asyncCompilationMode)return[2,("load"===this._asyncCompilationMode&&(this._setThreeAsyncCompilation(!0),this._updateCompilationBurst()),this._compileSceneAsyncBackground(a,n))];if(this.renderStarted||this._warmupInFlight)return[2];u=this.getRenderTarget(),c=this.getMRT(),this._warmupInFlight=!0,this._warmupPendingTarget=null,this._warmupPendingMRT=null,this._updateCompilationBurst(),f.label=1;case 1:return f.trys.push([1,3,4,5]),this.normalizeCameraCoordinateSystem(n),this.temporalAAEnabled&&(o().call(s,this._ensureWarmupTarget()),l().call(s,tY())),[4,this.compileAsync(a,n)];case 2:return f.sent(),[3,5];case 3:return console.warn("[spline/webgpu] pipeline warm-up failed:",f.sent()),[3,5];case 4:return d=this._warmupPendingTarget,m=this._warmupPendingMRT,this._warmupInFlight=!1,this._warmupPendingTarget=null,this._warmupPendingMRT=null,this._updateCompilationBurst(),null!==d?o().call(s,d[0],d[1],d[2]):o().call(s,u),null!==m?l().call(s,m[0]):l().call(s,c),[7];case 5:return[2]}})}).call(this)}},{key:"_compileSceneAsyncBackground",value:function(a,n){var i=this,s=this,o=function(){return A(R(r.prototype),"setRenderTarget",i)},l=function(){return A(R(r.prototype),"setMRT",i)};return S(function(){var r,i,u,c;return G(this,function(d){switch(d.label){case 0:this._asyncLoadWarmupsInFlight++,this._updateCompilationBurst(),d.label=1;case 1:return d.trys.push([1,5,6,7]),[4,this.init()];case 2:d.sent(),this.normalizeCameraCoordinateSystem(n),i=this.getRenderTarget(),u=this.getMRT();try{this.temporalAAEnabled&&(o().call(s,this._ensureWarmupTarget()),l().call(s,tY())),r=this.compileAsync(a,n)}finally{o().call(s,i),l().call(s,u)}return c=this._warmupGrabContext(a,n),[4,r];case 3:return d.sent(),[4,c];case 4:return d.sent(),[3,7];case 5:return console.warn("[spline/webgpu] pipeline warm-up failed:",d.sent()),[3,7];case 6:return this._asyncLoadWarmupsInFlight--,this._updateCompilationBurst(),this._maybeCloseAsyncLoadWindow(),[7];case 7:return[2]}})}).call(this)}},{key:"_disposeWarmupTargets",value:function(){var a,r,n,i,s,o;null==(r=this._warmupTarget)||null==(a=r.depthTexture)||a.dispose(),null==(n=this._warmupTarget)||n.dispose(),this._warmupTarget=null,null==(s=this._grabWarmupTarget)||null==(i=s.depthTexture)||i.dispose(),null==(o=this._grabWarmupTarget)||o.dispose(),this._grabWarmupTarget=null}},{key:"_warmupGrabContext",value:function(a,n){var i,s,o=N(a,h.f)?a:a.scene;if(!0!==(null==(i=o.needsTransmission)?void 0:i.call(o))&&!0!==(null==(s=o.needsReflection)?void 0:s.call(o)))return null;if(null===this._grabWarmupTarget){var l=new b.Kc(2,2);l.texture.type=b.ua;var u=new b.Cd(2,2);u.isRenderTargetTexture=!0,l.depthTexture=u,this._grabWarmupTarget=l}var c=this.getRenderTarget(),d=this.getMRT();try{return A(R(r.prototype),"setRenderTarget",this).call(this,this._grabWarmupTarget),A(R(r.prototype),"setMRT",this).call(this,null),this.compileAsync(a,n)}finally{A(R(r.prototype),"setRenderTarget",this).call(this,c),A(R(r.prototype),"setMRT",this).call(this,d)}}},{key:"_setThreeAsyncCompilation",value:function(a){this.setAsyncCompilation(a)}},{key:"_updateCompilationBurst",value:function(){var a=this._warmupInFlight||this._asyncLoadWarmupsInFlight>0||"load"===this._asyncCompilationMode&&this.asyncCompilationEnabled;this.setCompilationBurst(a),u.Uc.compilationBurst=a}},{key:"_maybeCloseAsyncLoadWindow",value:function(){var a;"load"===this._asyncCompilationMode&&(!this.asyncCompilationEnabled||this._asyncLoadWarmupsInFlight>0||0!==this._frameSerial&&((null!=(a=this._skippedAsyncDraws)?a:0)>0&&!this._skipStalls.stalled||this._compilationHasWork||(this._setThreeAsyncCompilation(!1),this._updateCompilationBurst())))}},{key:"normalizeCameraCoordinateSystem",value:function(a){var r;(a.coordinateSystem!==this.coordinateSystem||void 0!==a.perspCamera&&a.perspCamera.coordinateSystem!==this.coordinateSystem||void 0!==a.orthoCamera&&a.orthoCamera.coordinateSystem!==this.coordinateSystem)&&(a.coordinateSystem=this.coordinateSystem,void 0!==a.perspCamera&&(a.perspCamera.coordinateSystem=this.coordinateSystem),void 0!==a.orthoCamera&&(a.orthoCamera.coordinateSystem=this.coordinateSystem),null==(r=a.updateProjectionMatrix)||r.call(a))}},{key:"_prepareHelpers",value:function(a,r,n){var i=this;a.traverse(function(a){if(!0===a.isPoints){var s=function(a){if(Array.isArray(a.material)||null===a.parent||void 0===a.geometry.getAttribute("position"))return null;var r,n,i,s,o,l,c,d,h,m,f,v,p,g,y=a.material;return!0===y.isNodeMaterial?null:!0===y.isPointsMaterial?function(a,r){if(r.size<=1)return null;var n,i,s,o,l,c,d,h,m,f,v,p,g,y,_,x,T,w=tU.get(a);return w&&(w.epoch!==tG||w.srcMaterial!==r||w.geometry!==a.geometry||w.position.src!==a.geometry.getAttribute("position")||w.map!==r.map||w.selectedMap!==tq(a))&&(w.sprite.removeFromParent(),w.material.dispose(),w=void 0),w||(i=(n=a.geometry).getAttribute("position"),s=n.getAttribute("aSelection"),o=n.getAttribute("aVisibility"),l=r.map,c=tq(a),(d=new b.pd(i.array,3)).setUsage(b.mc),h={src:i,attr:d,version:i.version},m=[],f=function(a){var r=new b.pd(new Float32Array(a.count),1);r.setUsage(b.mc);var n={src:a,attr:r,version:a.version};return tW(n),m.push(n),n},v=s?f(s):null,p=o?f(o):null,(g=new u.t).name="SplinePointsTwin(".concat(r.name||r.type,")"),g.positionNode=(0,u.La)(h.attr,"vec3"),g.size=r.size,g.sizeAttenuation=r.sizeAttenuation,g.transparent=r.transparent,g.depthTest=r.depthTest,g.depthWrite=r.depthWrite,g.blending=r.blending,g.fog=!1,y=v?(0,u.La)(v.attr,"float"):null,_=p?(0,u.La)(p.attr,"float"):null,g.colorNode=(0,u.I)(function(){null!==_?(0,u.H)(_.lessThan(.5)):null!==y&&(0,u.H)(y.greaterThan(.5));var a=null!==l?(0,u.oc)(l,(0,u.yc)()):(0,u.Dc)(1);return(null!==y&&null!==l&&null!==c?(0,u.hb)(a,(0,u.oc)(c,(0,u.yc)()),y):a).mul((0,u.Dc)(u.bb,1))})(),(x=new b.id(g)).name="SplinePointsTwin(".concat(a.name||a.type,")"),x.frustumCulled=!1,x.raycast=function(){},T={sprite:x,material:g,srcMaterial:r,geometry:n,map:l,selectedMap:c,position:h,mirrors:m,epoch:tG},tO.add(new WeakRef(T)),w=T,tU.set(a,w)),w.sprite.parent!==a.parent&&a.parent.add(w.sprite),function(a,r){var n=r.sprite,i=r.position,s=r.srcMaterial;i.version!==i.src.version&&(r.position.attr.needsUpdate=!0,i.version=i.src.version);var o=!0,l=!1,u=void 0;try{for(var c,d=r.mirrors[Symbol.iterator]();!(o=(c=d.next()).done);o=!0){var h=c.value;h.version!==h.src.version&&(tW(h),h.version=h.src.version)}}catch(a){l=!0,u=a}finally{try{o||null==d.return||d.return()}finally{if(l)throw u}}n.count=Math.max(0,Math.min(r.geometry.drawRange.count,i.src.count)),r.material.size=s.size,r.material.opacity=s.opacity,r.material.color.copy(s.color),n.layers.mask=a.layers.mask,n.renderOrder=a.renderOrder}(a,w),w.sprite}(a,y):!function(a,r){if(!0!==r.isShaderMaterial)return!1;var n,i,s=r.uniforms,o=null==s||null==(n=s.pointSize)?void 0:n.value,l=null==s||null==(i=s.color)?void 0:i.value;return"number"==typeof o&&o>1&&Array.isArray(l)&&l.length>=3&&void 0!==a.geometry.getAttribute("hover")&&void 0!==a.geometry.getAttribute("selected")}(a,y)?null:((r=tH.get(a))&&(r.epoch!==tG||r.srcMaterial!==y||r.geometry!==a.geometry||!function(a,r){var n=[[a.position,"position"],[a.hover,"hover"],[a.selected,"selected"]],i=!0,s=!1,o=void 0;try{for(var l,u=n[Symbol.iterator]();!(i=(l=u.next()).done);i=!0){var c=I(l.value,2),d=c[0],h=c[1],m=r.getAttribute(h);if(void 0===m)return!1;if(d.src!==m){if(m.count!==d.attr.count)return!1;d.src=m,d.version=-1}}}catch(a){s=!0,o=a}finally{try{i||null==u.return||u.return()}finally{if(s)throw o}}return!0}(r,a.geometry))&&(r.sprite.removeFromParent(),r.material.dispose(),r=void 0),r||(n=a.geometry,i=y.uniforms,o=(s=function(a,r){var n=new b.pd(new Float32Array(a.count*r),r);n.setUsage(b.mc);var i={src:a,attr:n,version:a.version};return tW(i),i})(n.getAttribute("position"),3),l=s(n.getAttribute("hover"),1),c=s(n.getAttribute("selected"),1),d=(0,u.vc)(i.pointSize.value),h=(0,u.vc)((new b.Tc).fromArray(i.color.value)),(m=new u.t).name="SplinePointsTwin(".concat(y.name||y.type,")"),m.positionNode=(0,u.La)(o.attr,"vec3"),f=(0,u.La)(l.attr,"float"),v=(0,u.La)(c.attr,"float"),m.sizeNode=d.add(f.mul(4)),m.sizeAttenuation=!1,m.transparent=y.transparent,m.depthTest=y.depthTest,m.depthWrite=y.depthWrite,m.blending=y.blending,m.fog=!1,m.colorNode=(0,u.I)(function(){var a=(0,u.Va)((0,u.yc)().mul(2).sub(1)).toVar();(0,u.H)(a.greaterThan(1));var r=(0,u._b)(v.equal(1),(0,u.Cc)(.22,.9,.7),h.add(f.mul(.25)));return(0,u.Dc)((0,u._b)(a.greaterThan(.75),(0,u.Cc)(1),r),1)})(),(p=new b.id(m)).name="SplinePointsTwin(".concat(a.name||a.type,")"),p.frustumCulled=!1,p.raycast=function(){},g={sprite:p,material:m,srcMaterial:y,geometry:n,pointSize:d,color:h,position:o,hover:l,selected:c,epoch:tG},tO.add(new WeakRef(g)),r=g,tH.set(a,r)),r.sprite.parent!==a.parent&&a.parent.add(r.sprite),function(a,r){for(var n=0,i=[r.position,r.hover,r.selected];n<i.length;n++){var s=i[n];s.version!==s.src.version&&(tW(s),s.version=s.src.version)}var o=r.srcMaterial.uniforms;r.pointSize.value=o.pointSize.value,r.color.value.fromArray(o.color.value);var l=Math.max(0,Math.min(r.geometry.drawRange.count,r.position.src.count));r.sprite.count=l,r.material.opacity=r.srcMaterial.opacity,r.sprite.layers.mask=a.layers.mask,r.sprite.renderOrder=a.renderOrder}(a,r),r.sprite)}(a);if(null!==s)return s.visible=a.visible,void(a.visible&&(r.push(a),a.visible=!1))}var o=!1,l=Array.isArray(a.material)?a.material:a.material?[a.material]:[],c=!0,d=!1,h=void 0;try{for(var m,f,v,p=l[Symbol.iterator]();!(c=(v=p.next()).done);c=!0){var g=v.value;if(!0===g.isShaderMaterial&&!0!==g.isNodeMaterial){o=!0,g.type;break}}}catch(a){d=!0,h=a}finally{try{c||null==p.return||p.return()}finally{if(d)throw h}}if(o&&!Array.isArray(a.material)){var y,_=!0===(y=a.material).isLineMaterial?function(a){var r,n,i,s=tI.get(a);if(!s||s.epoch!==tL){var o=new u.f;o.name="SplineHelperTwin(".concat(a.name||a.type,")"),o.worldUnits=!1,s={twin:o,epoch:tL},tI.set(a,s),tF.add(new WeakRef(o))}var l=s.twin;l.color.copy(a.color),l.linewidth=a.linewidth,l.opacity=a.opacity,l.transparent=a.transparent,l.depthTest=a.depthTest,l.depthWrite=a.depthWrite,l.side=a.side;var c=!0===a.dashed;l.dashed!==c&&(l.dashed=c,l.needsUpdate=!0),c&&(l.dashScale=null!=(r=a.dashScale)?r:1,l.dashSize=null!=(n=a.dashSize)?n:1,l.gapSize=null!=(i=a.gapSize)?i:1);var d=!0===a.vertexColors||2===a.vertexColors;return l.vertexColors!==d&&(l.vertexColors=d,l.needsUpdate=!0),l}(y):null;if(_)return n.push({object:a,original:a.material}),void(a.material=_)}o||!0!==(null==(f=a.geometry)?void 0:f.isInstancedBufferGeometry)||Number.isFinite(null!=(m=a.geometry.instanceCount)?m:0)||(o=!0),o&&a.visible&&(i._warnedHelperIncompat.has(a)||i._warnedHelperIncompat.add(a),r.push(a),a.visible=!1)})}},{key:"renderHelperOverlay",value:function(a,r,n,i){var s=[],o=[];if(a&&this._prepareHelpers(a,s,o),r&&this._prepareHelpers(r,s,o),i)null!=this._helperOverlay||(this._helperOverlay=new tE),this._helperOverlay.render(this,a,r,n,i),u.Uc.helperOverlayMode="smaa";else{var l=this.autoClear;this.autoClear=!1,a&&this.render(a,n),r&&(this.clearDepth(),this.render(r,n)),this.autoClear=l,u.Uc.helperOverlayMode="direct"}var c=!0,d=!1,h=void 0;try{for(var m,f,v=o[Symbol.iterator]();!(c=(f=v.next()).done);c=!0){var p=f.value;p.object.material=p.original}}catch(a){d=!0,h=a}finally{try{c||null==v.return||v.return()}finally{if(d)throw h}}var g=!0,y=!1,_=void 0;try{for(var x,b=s[Symbol.iterator]();!(g=(x=b.next()).done);g=!0)x.value.visible=!0}catch(a){y=!0,_=a}finally{try{g||null==b.return||b.return()}finally{if(y)throw _}}}},{key:"createEffectChain",value:function(){return function(a){var r=a.pipeline,n=r.postprocessingState,i=!0===n.enabled,s=(0,u.Db)(r.scene,r.camera),o=a.hdrChainActive;try{var c=new URLSearchParams(window.location.search).get("dbgfp16");("scene"===c||"st"===c)&&(o=!0)}catch(a){}var d=s.getTextureNode(),h=d,m=null;if(a.temporalAAEnabled){s.setMRT(tY()),h=m=function(a,r,n,i){var s=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return new tS(a,r,n,i,s)}(d,s.getTextureNode("depth"),s.getTextureNode("velocity"),a.taaHistory,o),s.getTexture("velocity").type=b.Ba;try{if("1"===new URLSearchParams(window.location.search).get("dbgvel")){var f=s.getTextureNode("velocity");h=(0,u.Dc)(f.x.mul(20).add(.5),f.y.mul(20).add(.5),(0,u.za)(.5),(0,u.za)(1))}}catch(a){}}o?s.getTexture("output").type=b.Ba:(0,u.Sc)()&&(s.getTexture("output").internalFormat="rgba8unorm-srgb");var v=function(a,r){return"number"==typeof a&&Number.isFinite(a)?a:r},p={bloomIntensity:(0,u.vc)(1),caOffset:(0,u.vc)(new b.Dc(0,0)),caAspect:(0,u.vc)(1),vignetteOffset:(0,u.vc)(0),vignetteDarkness:(0,u.vc)(0),hueVector:(0,u.vc)(new b.Fc(1,0,0)),saturationFactor:(0,u.vc)(0),brightness:(0,u.vc)(0),bcContrastScale:(0,u.vc)(1),dofFocusDistance:(0,u.vc)(0),dofFocalLength:(0,u.vc)(0),dofBokehScale:(0,u.vc)(1),dofCameraNear:(0,u.vc)(50),dofCameraFar:(0,u.vc)(1e4),dofOrtho:(0,u.vc)(0),pixelCells:(0,u.vc)(new b.Dc(1,1)),bloomOpacity:(0,u.vc)(1),caOpacity:(0,u.vc)(1),vignetteOpacity:(0,u.vc)(1),noiseOpacity:(0,u.vc)(1),hueSaturationOpacity:(0,u.vc)(1),brightnessContrastOpacity:(0,u.vc)(1),dofOpacity:(0,u.vc)(1)},g=function(a,n){p.bloomIntensity.value=v(a.bloom.intensity,1),p.bloomOpacity.value=v(a.bloom.opacity,1),p.caOffset.value.set(v(null==(c=a.chromaticAberration.offset)?void 0:c[0],10),v(null==(d=a.chromaticAberration.offset)?void 0:d[1],10)),p.caOpacity.value=v(a.chromaticAberration.opacity,1),p.vignetteOffset.value=v(a.vignette.offset,.5),p.vignetteDarkness.value=v(a.vignette.darkness,.5),p.vignetteOpacity.value=v(a.vignette.opacity,1),p.noiseOpacity.value=v(a.noise.opacity,1),p.hueVector.value.fromArray((s=Math.sin(i=v(a.hueSaturation.hue,0)),[(2*(o=Math.cos(i))+1)/3,(-Math.sqrt(3)*s-o+1)/3,(Math.sqrt(3)*s-o+1)/3])),p.saturationFactor.value=(u=v(a.hueSaturation.saturation,0))>0?1-1/(1.001-u):-u,p.hueSaturationOpacity.value=v(a.hueSaturation.opacity,1),p.brightness.value=v(a.brightnessContrast.brightness,0);var i,s,o,u,c,d,h=Math.min(v(a.brightnessContrast.contrast,0),.9999);p.bcContrastScale.value=h>0?1/(1-h):1+h,p.brightnessContrastOpacity.value=v(a.brightnessContrast.opacity,1);var m=r.camera,f=!0===(null==m?void 0:m.isPerspectiveCamera),g=(0,l.b)(v(a.depthOfField.focusDistance,l.c.focusDistance),v(a.depthOfField.focalLength,l.c.focalLength),f);p.dofFocusDistance.value=g.focusDistance,p.dofFocalLength.value=g.focusRange,p.dofBokehScale.value=v(a.depthOfField.bokehScale,l.c.bokehScale),p.dofOpacity.value=v(a.depthOfField.opacity,1),p.dofCameraNear.value=v(null==m?void 0:m.near,50),p.dofCameraFar.value=v(null==m?void 0:m.far,1e4),p.dofOrtho.value=+!f;var y=n.resolution.x?n.resolution:new b.Dc(n.viewportWidth*n.getPixelRatio(),n.viewportHeight*n.getPixelRatio());p.caAspect.value=y.y>0?y.x/y.y:1;var _=Math.floor(v(a.pixelation.granularity,30));_%2>0&&(_+=1);var x=_>0;p.pixelCells.value.set(x?y.x/_:y.x,x?y.y/_:y.y)};g(n,a);var x=h,T=x.rgb,w=x.a,S=i&&n.pixelation.enabled,z=p.pixelCells,V=function(a){return a.mul(z).floor().add(.5).div(z)},C=m?m.outputTextureNode:d;if(S){var k=C.sample(V((0,u.yc)()));T=(0,u.hb)(T,k.rgb,1),w=(0,u.hb)(w,k.a,1)}if(i&&n.chromaticAberration.enabled){var M=n.chromaticAberration,A=p.caOffset.mul(.001).mul((0,u.Bc)(1,p.caAspect)),R=function(a){return S?V(a):a},P=C.sample(R((0,u.yc)().add(A))),N=C.sample(R((0,u.yc)().sub(A))),B=(0,u.eb)((0,u.eb)(P.a,N.a),w);T=tJ(T,(0,u.Cc)(P.r,T.g,N.b),M.blendFunction,p.caOpacity,B),w=tX(w,B,M.blendFunction,p.caOpacity)}var D=null;if(i&&n.depthOfField.enabled){var E=(0,_.e)("depthOfField");if(E){var I=n.depthOfField,F=D=E((0,u.Dc)(T,w),C,s.getTextureNode("depth"),{focusDistance:p.dofFocusDistance,focusRange:p.dofFocalLength,bokehScale:p.dofBokehScale,cameraNear:p.dofCameraNear,cameraFar:p.dofCameraFar,orthographic:p.dofOrtho},{halfFloat:o,inputUv:S?V:void 0});T=tJ(T,F.rgb,I.blendFunction,p.dofOpacity,F.a),w=tX(w,F.a,I.blendFunction,p.dofOpacity)}else(0,_.f)("depthOfField","webgpu")}var L=null;if(i&&n.bloom.enabled){var U=(0,_.e)("bloom");if(U){var O=n.bloom;L=U(m?m.outputTextureNode:d,{kernelSize:(0,y.qa)(O.kernelSize),blurScale:v(O.blurScale,1),luminanceThreshold:v(O.luminanceThreshold,.9),luminanceSmoothing:v(O.luminanceSmoothing,.025)});var G=(0,u.ga)(L.mul(p.bloomIntensity),0,1);T=tJ(T,G.rgb,O.blendFunction,p.bloomOpacity,G.a),w=tX(w,G.a,O.blendFunction,p.bloomOpacity)}else(0,_.f)("bloom","webgpu")}if(i&&n.hueSaturation.enabled){var q=n.hueSaturation,W=p.hueVector,H=(0,u.Cc)((0,u.ua)(T,W),(0,u.ua)(T,W.zxy),(0,u.ua)(T,W.yzx)),j=H.r.add(H.g).add(H.b).div(3);T=tJ(T,H.add((0,u.Cc)(j).sub(H).mul(p.saturationFactor)).min(1),q.blendFunction,p.hueSaturationOpacity,w)}if(i&&n.brightnessContrast.enabled){var K=n.brightnessContrast,J=T.add((0,u.Cc)(p.brightness));T=tJ(T,(J=J.sub(.5).mul(p.bcContrastScale).add(.5)).min(1),K.blendFunction,p.brightnessContrastOpacity,w)}if(i&&n.vignette.enabled){var X=n.vignette,Q=(0,u.Va)((0,u.yc)().sub(.5)).mul(p.vignetteDarkness.add(p.vignetteOffset)),Y=(0,u.ec)(p.vignetteOffset.mul(.799),(0,u.za)(.8),Q).oneMinus();T=tJ(T,T.mul(Y),X.blendFunction,p.vignetteOpacity,w)}if(i&&n.noise.enabled){var Z=n.noise,$=(0,u.Ca)((0,u.dc)((0,u.ib)((0,u.ua)((0,u.yc)().mul(u.rc),(0,u.Bc)(12.9898,78.233)),Math.PI)).mul(43758.5453));T=tJ(T,(0,u.Cc)($),Z.blendFunction,p.noiseOpacity,w)}i&&(o?T=T.max(0):(T=(0,u.ga)(T,0,1),w=(0,u.ga)(w,0,1)));var ee=(0,u.Dc)(T,w);if(r.uiOverlayEnabled&&r.uiCanvasTexture){var et=(0,u.oc)(r.uiCanvasTexture,(0,u.yc)().flipY()),ea=(0,u.hb)(ee.rgb,et.rgb,et.a),er=(0,u.ga)(ee.a.add(et.a),0,1);ee=(0,u.Dc)(ea,er)}var en=r.sceneTransitionFromTexture;if(en){var ei=(0,u.oc)(en,(0,u.yc)()),es=r.sceneTransitionPass.uniforms.mixRatio;ee=(0,u.hb)(ei,ee,es)}var eo=r.watermarkTexture;if(eo){var el=eo.image,eu=(null==el?void 0:el.width)||128,ec=(null==el?void 0:el.height)||32,ed=new b.Dc(a.viewportWidth*a.getPixelRatio(),a.viewportHeight*a.getPixelRatio()),eh=12*a.getPixelRatio(),em=.5*eu*a.getPixelRatio(),ef=.5*ec*a.getPixelRatio(),ev=(0,u.Bc)((ed.x-em-eh)/ed.x,eh/ed.y),ep=(0,u.Bc)(em/ed.x,ef/ed.y),eg=(0,u.yc)().flipY().sub(ev).div(ep),ey=eg.x.greaterThanEqual(0).and(eg.x.lessThanEqual(1)).and(eg.y.greaterThanEqual(0)).and(eg.y.lessThanEqual(1)),e_=(0,u.ga)(eg,0,1),ex=(0,u.oc)(eo,e_),eb=ex.a.mul(ey.select((0,u.za)(1),(0,u.za)(0)));ee=(0,u.Dc)((0,u.hb)(ee.rgb,ex.rgb,eb),(0,u.ga)(ee.a.add(eb),0,1))}var eT=new u.D(a,ee);return{syncValues:g,render:function(){s.scene=r.scene,s.camera=r.camera,eT.render()},renderTAAResolve:m?function(a){s.scene=r.scene,s.camera=r.camera,m.renderResolve(a)}:null,renderBloomPasses:L?function(a){s.scene=r.scene,s.camera=r.camera,L.renderBloom(a)}:null,renderDoFPasses:D?function(a){s.scene=r.scene,s.camera=r.camera,D.renderDoF(a)}:null,resize:function(){},sceneDepthTexture:function(){var a,r;return null!=(a=null==(r=s.renderTarget)?void 0:r.depthTexture)?a:null},dispose:function(){null==m||m.dispose(),null==L||L.dispose(),null==D||D.dispose(),s.dispose(),eT.dispose()}}}(this)}},{key:"renderSplineSceneWithDummyCamera",value:function(a,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;this.dummyCamera.updateCameraState(r.dataPatched),this.dummyCamera.matrix.copy(r.matrixWorld);var i=r.height,s=r.width,o=this.viewportWidth/this.viewportHeight;s<i?s=i*o:i=s/o,this.dummyCamera.setViewplaneSize(s,i);for(var l=0;l<n;l++)this.renderSplineScene(a,this.dummyCamera)}},{key:"renderSplineScene",value:function(a,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},l=n.sceneHelpers,c=void 0===l?this.sceneHelpers:l,m=n.sceneHelpersOnTop,f=void 0===m?this.sceneHelpersOnTop:m;if(!this._warmupInFlight){this._maybeCloseAsyncLoadWindow(),this._frameSerial++,this._disposeRetiredGrabTargets(),(null!=(z=null==(M=(0,d.d)())?void 0:M.drainRetired())?z:0)+(null!=(V=null==(A=(0,s.g)())?void 0:A.drainRetired())?V:0)>0&&this._retireBundleRecords(),ew&&null!=(S=this.backend.device)&&S!==ek&&"function"==typeof S.addEventListener&&(ek=S,S.addEventListener("uncapturederror",function(a){var r,n,i=null!=(r=null==a||null==(n=a.error)?void 0:n.message)?r:"";!i.toLowerCase().includes("destroyed")||ez<=0||(ez--,console.warn("[spline/webgpu][dbgdestroys] submit rejected at frame ".concat(eV()," (t=").concat(Math.round(performance.now()),"ms):\n").concat(i.slice(0,400),"\n— last ").concat(eS.length," destroy() calls, newest last (a stack WITHOUT _disposeRetiredGrabTargets bypassed the deferral):"),eS.map(function(a){return B({},a)})))}));var v=null!=(C=this._skippedAsyncDraws)?C:0;u.Uc.skippedAsyncDraws=v,this._skippedAsyncDraws=0,this._trackStalledSkips(v),this._trackGaugeStall(),(0,o.b)(this);var g=N(a,h.f)?a.activePage:a,y=g.visible;g.visible=!0;var _=g.scene;if(Z(g),this.renderStarted=!0,aD&&N(a,h.f)){var x=a.updateInstanceGroups(g,aE);u.Uc.instancingGroups=x.instancingGroups,u.Uc.instancedDrawsSaved=x.instancedDrawsSaved,u.Uc.instancingRegroups=x.instancingRegroups,u.Uc.instancingParks=x.instancingParks,u.Uc.instancingIneligible=x.instancingIneligible}this.sceneBundlesEnabled&&this._bundleEpochDirty&&(this._bundleEpochDirty=!1,this._updateSceneBundle(g,r)),this.normalizeCameraCoordinateSystem(r),this._applyCIOffscreenTargetIfRequested(),this.setClearColor(g.bgColor,g.bgColor.a),void 0!==this.clearAlphaOverride&&this.setClearAlpha(this.clearAlphaOverride);var T=aV?null:g.skyState;if(!0===(null==T?void 0:T.enabled)){if(this.skyEnvironmentNeeded=!this.auxiliary&&(!aC&&(_.needsReflectionDirty||_.needsReflection())||!ak&&!0===T.lighting),null===this._skySystem){var w=t1;null===w?this._skyFeatureWarned||(this._skyFeatureWarned=!0,console.warn("[spline] scene uses the atmospheric sky, but the sky feature is compiled out of this build")):this._skySystem=w(this)}null==(F=this._skySystem)||F.update(g,r)}else(null==(R=this._skySystem)?void 0:R.attached)&&this._skySystem.detach();if(!this.auxiliary){var S,z,V,C,k,M,A,R,P,D,E,I,F,L,U,O,G=null,q=0;!ak&&!0===(null==T?void 0:T.enabled)&&this._skySystem&&(G=null!=(L=this._skySystem.iblTexture)?L:null,q=null!=(U=this._skySystem.iblRotationY)?U:0),function(a){if(ei.quality!==a){ei.quality=a;var r=!0,n=!1,i=void 0;try{for(var s,o=es[Symbol.iterator]();!(r=(s=o.next()).done);r=!0){var l=s.value;eo(l)}}catch(a){n=!0,i=a}finally{try{r||null==o.return||o.return()}finally{if(n)throw i}}}}("low"===(null==T?void 0:T.lightingQuality)?"low":"full"),function(a){if(ei.texture!==a){ei.texture=a,ei.version++;var r=!0,n=!1,i=void 0;try{for(var s,o=es[Symbol.iterator]();!(r=(s=o.next()).done);r=!0){var l=s.value;eo(l)}}catch(a){n=!0,i=a}finally{try{r||null==o.return||o.return()}finally{if(n)throw i}}}}(G),ei.rotation.set(0,-q,0),g.environmentIntensity=!0===(null==T?void 0:T.enabled)&&null!=(O=T.lightingIntensity)?O:1}var W,H,j="off"===aM?null:g.gradingState,K="default"!==aM&&"off"!==aM,J=K||"linear"===(null==j?void 0:j.pipeline),X=K?"linear"===aM?"none":aM:null!=(W=null==j?void 0:j.toneMapping)?W:"aces";this.toneMapping=J?"aces"===X?b.aa:"agx"===X?b.ca:"neutral"===X?b.da:b.Y:b.Y,this.toneMappingExposure=J&&null!=(H=null==j?void 0:j.exposure)?H:1,this.outputColorSpace=J?b.Ib:b.Jb,this.hdrChainActive=J,this.temporalAAEnabled&&this.taaHistory.setHdr(J),u.Vc.pixelRatio.value=this.getPixelRatio(),0!==this.resolution.x&&0!==this.resolution.y?u.Vc.resolution.value.set(this.resolution.x,this.resolution.y):u.Vc.resolution.value.set(this.viewportWidth*this.getPixelRatio(),this.viewportHeight*this.getPixelRatio());var Q=(u.Vc.frameIndex.value+1)%16;u.Vc.frameIndex.value=Q;var Y=e3[Q];u.Vc.pcssHalton.value.set(Y[0],Y[1]),u.Vc.tapAngle.value=Math.random()*Math.PI*2,u.Vc.tapAngle2.value=Math.random()*Math.PI*2,this._syncLightState(g),this.sceneBundlesEnabled&&this._lightShadowStateDirty&&(this._lightShadowStateDirty=!1,this._updateSceneBundle(g,r)),u.Vc.unjitteredProjection.value.copy(r.projectionMatrix);var $=this.temporalAAEnabled?this.taaHistory:null;if($){var ee=this.getDrawingBufferSize(af);$.beginJitter(r,ee.x,ee.y)}this._renderShadowMaskPass(g,r),u.Vc.orthographicUniform.value=+(0===r.projectionMatrix.elements[11]);var et=_.shapeBlendIntances.length>0?(0,s.e)():null,ea=!0,er=!1,en=void 0;if(null!==et)try{for(var el,eu=_.shapeBlendIntances[Symbol.iterator]();!(ea=(el=eu.next()).done);ea=!0){var ec=el.value;et(ec).update(ec,this,r)}}catch(a){er=!0,en=a}finally{try{ea||null==eu.return||eu.return()}finally{if(er)throw en}}var ed=_.hairInstances.length>0?(0,d.b)():null,eh=!0,em=!1,ef=void 0;if(null!==ed)try{for(var ev,ep=_.hairInstances[Symbol.iterator]();!(eh=(ev=ep.next()).done);eh=!0){var eg=ev.value;ed(eg).update(eg,this)}}catch(a){em=!0,ef=a}finally{try{eh||null==ep.return||ep.return()}finally{if(em)throw ef}}_.needsTransmission()&&this._renderTransmissionPass(g,r),_.needsNormal()&&this._renderNormalPass(g,r,_.normalPassNeeds()),g.overrideMaterial=_.wireframeState?h.e:null,r.layers.enable(3),r.layers.enable(8),r.layers.enable(4);var ey=g.data.ao,e_=ey.occlusion&&!ab&&!i.c.enabled;if(u.Vc.aoEnabled.value=e_,u.Vc.aoEnabledUniform.value=+!!e_,e_){var ex,eb,eT=null!=(ex=this._skippedAsyncDraws)?ex:0;this._renderAOPass(g,r,ey),(null!=(eb=this._skippedAsyncDraws)?eb:0)>eT&&(u.Vc.aoEnabledUniform.value=0)}if(!aC&&_.needsReflection()?(this._renderReflectionPass(g,r),aA?u.Vc.reflectionPlanarEnabled.value=0:this._renderPlanarReflectionPass(g,r),this._renderReflectionResolvePass(g,r)):u.Vc.reflectionResolveEnabled.value=0,this.sceneBundlesEnabled&&this._updateSceneBundle(g,r),this.pipeline.isUIOverlayEnabled&&(null==(P=g.uiCanvas)?void 0:P.enabled)&&g.uiCanvas.texture&&g.uiCanvas.texture.image.width>0){var eC=this.getPixelRatio();(g.uiCanvas.width!==this.viewportWidth||g.uiCanvas.height!==this.viewportHeight||g.uiCanvas.dpr!==eC)&&g.uiCanvas.applySize({width:this.viewportWidth,height:this.viewportHeight},eC),g.uiCanvas.render(this),this.pipeline.uiCanvasTexture=g.uiCanvas.texture,this.pipeline.uiOverlayEnabled=!0}else this.pipeline.uiOverlayEnabled=!1;this.pipeline.sceneHelpers=c,this.pipeline.sceneHelpersOnTop=f,this.pipeline.scene=g,this.pipeline.camera=r;var eM=(0,i.d)(g.postprocessing);if(this.pipeline.postprocessingState!==eM&&this.pipeline.updatePostprocessing(eM),this.pipeline.render(),null==$||$.endJitter(),null==(E=this._skySystem)||null==(D=E.endFrame)||D.call(E),u.Uc.outputInterpositions=null!=(k=null==(I=this._frameBufferTargets)?void 0:I.size)?k:0,this.manageShadowUpdates){var eA,eR,eP,eN=(null!=(eA=this._skippedAsyncDraws)?eA:0)>0&&!this._skipStalls.stalled,eB=null!=(eR=null==(eP=this.info.asyncCompilation)?void 0:eP.promotions)?eR:0,eD=eB!==this._shadowSyncPromotions;this._shadowSyncPromotions=eB,_.shadowsDirty=this._shadowMapMissingAtSync||this._warmupInFlight||eN||eD}N(r,p.a)&&r.copyHistory(),g.visible=y}}},{key:"_fitDirectionalShadowRange",value:function(a,r,n){if(0!==n){var i,s,o=a.shadow.camera,l=a.shadow;l.__speRangeEnvelope||(l.__speRangeEnvelope={near:o.near,far:o.far});var u=l.__speRangeEnvelope.near,c=null!=(i=null==(s=a.data)?void 0:s.depth)?i:l.__speRangeEnvelope.far;if(l.__speRangeEnvelope.far=c,ag.setFromMatrixPosition(a.matrixWorld),a.target?(a.target.updateMatrixWorld(),ay.setFromMatrixPosition(a.target.matrixWorld)):ay.set(0,0,0),a_.subVectors(ay,ag),!(1e-10>a_.lengthSq())){a_.normalize();for(var d=1/0,h=-1/0,m=0;m<n;m++){var f=4*m,v=(r[f]-ag.x)*a_.x+(r[f+1]-ag.y)*a_.y+(r[f+2]-ag.z)*a_.z,p=r[f+3];v-p<d&&(d=v-p),v+p>h&&(h=v+p)}var g=Math.max(10,.05*(h-d)),y=25*Math.floor((d-g)/25),_=25*Math.ceil((h+g)/25);y=Math.max(y,u),(_=Math.min(_,c))-y>=1&&(o.near!==y||o.far!==_)&&(o.near=y,o.far=_,o.updateProjectionMatrix())}}}},{key:"_gatherShadowBounds",value:function(a){var r=0;return a.traverseVisible(function(a){if(!0===a.castShadow||!0===a.receiveShadow){if(!0===a.isHairSystem){var n,i,s=null!=(i=a.shadowBoundsRadius)?i:0;if(s>0){a.getShadowBoundsCenter?a.getShadowBoundsCenter(av):av.setFromMatrixPosition(a.matrixWorld);var o=4*r;ax[o]=av.x,ax[o+1]=av.y,ax[o+2]=av.z,ax[o+3]=s,r++}return}if(!0===a.isMesh&&a.geometry&&!0!==a.isInstanceGroup){var l=a.geometry.boundingSphere;if(null===l&&(a.geometry.computeBoundingSphere(),l=a.geometry.boundingSphere),!0===a.isInstancedMesh&&(null===a.boundingSphere&&a.computeBoundingSphere(),l=null!=(n=a.boundingSphere)?n:l),l&&Number.isFinite(l.radius)&&!(l.radius<=0)){av.copy(l.center).applyMatrix4(a.matrixWorld),ap.setFromMatrixScale(a.matrixWorld);var u=l.radius*Math.max(Math.abs(ap.x),Math.abs(ap.y),Math.abs(ap.z)),c=4*r;ax[c]=av.x,ax[c+1]=av.y,ax[c+2]=av.z,ax[c+3]=u,r++}}}}),r}},{key:"_syncLightState",value:function(a){var r,n,s,o,l=this,c=y.sa.isSoft(a.data.shadow);ts(c),u.Uc.shadowTypeSoft=c,function(a){switch(a){case"low":e5=8;break;case"high":e5=32;break;default:e5=16}}(null==(n=a.data.shadow)?void 0:n.softShadowQuality),c&&e1()&&(eU||(null==(s=this.initTexture)||s.call(this,eB()),eU=!0));var d=-1;u.Uc.pcssLights=0,u.Uc.pcssPyramidActive=0,this._maskLights.length=0,this._maskBlocked=!1,u.Uc.nodeResurrections=null!=(r=null==(o=this._nodes)?void 0:o._spResurrections)?r:0;var h=!1,m=u.Vc.toonLightData.array,f=0,v=this.manageShadowUpdates,p=a.scene.shadowsDirty||this.forceShadowUpdates;this._shadowMapMissingAtSync=!1;var g=-0x7ee3623b,_=function(a){g^=a,g=Math.imul(g,0x1000193)};a.traverseVisible(function(r){var n;if((0,i.e)(r)&&(a.scene.shadowsDirty=!0),v&&(r.isPointLight||r.isSpotLight||r.isDirectionalLight)&&r.shadow&&(r.shadow.autoUpdate=p,p&&!0===r.castShadow&&null==r.shadow.map&&(l._shadowMapMissingAtSync=!0)),aT&&(r.isPointLight||r.isSpotLight||r.isDirectionalLight)&&r.castShadow&&(r.castShadow=!1),(r.isPointLight||r.isSpotLight||r.isDirectionalLight)&&(_(r.id),_(+(!0===r.castShadow)),_(l._shadowMapId(null==(o=r.shadow)?void 0:o.map))),r.isPointLight&&r.castShadow&&r.shadow&&(void 0!==(n=r.shadow).filterNode&&null!==n.filterNode?n.filterNode!==td&&u.Uc.pcssForeignFilter++:(n.filterNode=td,u.Uc.pcssInstalled++),e8(r.shadow),u.Uc.pcssLights++),(r.isSpotLight||r.isDirectionalLight)&&r.castShadow&&r.shadow){r.isDirectionalLight&&(d<0&&(d=l._gatherShadowBounds(a)),l._fitDirectionalShadowRange(r,ax,d)),void 0!==(s=r.shadow).filterNode&&null!==s.filterNode?s.filterNode!==tc&&u.Uc.pcssForeignFilter++:(Object.defineProperty(s,"penumbraSize",{get:function(){var a,n;return null!=(a=null==(n=r.data)?void 0:n.penumbraSize)?a:.5},configurable:!0}),s.filterNode=tc,u.Uc.pcssInstalled++);var s,o,g,y,x,b=!v||p||!0===r.shadow.needsUpdate;if(c&&e1()&&(b?(T=r.shadow).__spePcssPyramid&&(T.__spePcssPyramid.fresh=!1):eL(r.shadow)||function(a,r){var n,i,s,o,l,c,d,h,m=null!=(n=null==(s=r.map)?void 0:s.depthTexture)?n:null;if(null!=m){var f=eI(r);if(!(0>function(a){var r=eI(a);if(r.slot>=0)return r.slot;for(var n=0;n<8;n++){var i=eF[n];if(null===i||void 0===i.deref())return eF[n]=new WeakRef(a),r.slot=n,n}return -1}(r))){var v=Math.max(1,Math.round(null!=(i=null==(o=r.mapSize)?void 0:o.x)?i:2048)),p=8*f.slot,g="".concat(m.uuid,":").concat(v);f.passKey!==g&&(null==(c=f.toMid)||null==(l=c.material)||l.dispose(),null==(h=f.toSmall)||null==(d=h.material)||d.dispose(),null===f.mid&&(f.mid=eP(64,64),f.mid.texture.name="SplinePCSSPyramidMid"),null===f.small&&(f.small=eP(8,8),f.small.texture.name="SplinePCSSPyramidSmall"),f.toMid=new u.v(eD("SplinePCSSPyramidToMid".concat(v),m,Math.ceil(v/64),v-1,!1,0)),f.toSmall=new u.v(eD("SplinePCSSPyramidToSmall",f.mid.texture,8,63,!0,0)),f.passKey=g),eB();var y=a.getRenderTarget();a.setRenderTarget(f.mid),f.toMid.render(a),a.setRenderTarget(f.small),f.toSmall.render(a),a.setRenderTarget(y),eO.set(p,0,0),a.copyTextureToTexture(f.small.texture,eN.texture,null,eO),f.fresh=!0,u.Uc.pcssPyramidBuilds++}}}(l,r.shadow),x={slot:null!=(w=null==(S=r.shadow.__spePcssPyramid)?void 0:S.slot)?w:-1,fresh:eL(r.shadow)}),c&&e2()&&(e6(r.shadow,-1),l._maskLights.push({light:r,shadow:r.shadow}),(b||null==r.shadow.map)&&(l._maskBlocked=!0)),e8(r.shadow,null!=(g=null==(y=r.data)?void 0:y.penumbraSize)?g:.5,x)&&u.Uc.pcssPyramidActive++,!h){h=!0;var T,w,S,z,V,C=r.shadow;u.Uc.pcssRadius0=null!=(z=C.radius)?z:-1,u.Uc.pcssPenumbra0=null!=(V=C.penumbraSize)?V:-1}u.Uc.pcssLights++}!(f>=u.Oc)&&(r.isPointLight||r.isSpotLight?(t3.setFromMatrixPosition(r.matrixWorld),m[f].set(t3.x,t3.y,t3.z,0),f++):r.isDirectionalLight&&r.target&&(r.target.updateMatrixWorld(),t3.setFromMatrixPosition(r.matrixWorld),t3.sub(t2.setFromMatrixPosition(r.target.matrixWorld)).normalize(),m[f].set(t3.x,t3.y,t3.z,1),f++))}),u.Vc.toonLightCount.value=f;var x=this._lightShadowSignatures.get(a);this._lightShadowSignatures.set(a,g),this._lightShadowStateDirty=void 0!==x&&x!==g}},{key:"_shadowMapId",value:function(a){if(null==a)return 0;var r=this._shadowMapIds.get(a);return void 0===r&&(r=++this._shadowMapIdSeq,this._shadowMapIds.set(a,r)),r}},{key:"_renderShadowMaskPass",value:function(a,r){var n=0;e2()&&!this.suppressShadowMask&&this.manageShadowUpdates&&!this._maskBlocked&&this._maskLights.length>=1&&this._maskLights.length<=4&&this._maskLights.every(function(a){var r;return null!=(null==(r=a.shadow.map)?void 0:r.depthTexture)})&&(null!=this._shadowMask||(this._shadowMask=new tv),this._shadowMask.render(this,a,r,this._maskLights).targetsChanged&&this._grabTargetEpoch++,n=this._maskLights.length),u.Vc.shadowMaskEnabled.value=+(n>0),u.Uc.shadowMaskActive=n}},{key:"retireRenderTarget",value:function(a){a&&this._retiredGrabTargets.push(a),this._grabTargetEpoch++}},{key:"_disposeRetiredGrabTargets",value:function(){if(this._retiredGrabTargets.length>0){var a=!0,r=!1,n=void 0;try{for(var i,s=this._retiredGrabTargets[Symbol.iterator]();!(a=(i=s.next()).done);a=!0)i.value.dispose()}catch(a){r=!0,n=a}finally{try{a||null==s.return||s.return()}finally{if(r)throw n}}this._retiredGrabTargets.length=0}if(this._retiredGpuBuffers.length>0){var o=!0,l=!1,u=void 0;try{for(var c,d=this._retiredGpuBuffers[Symbol.iterator]();!(o=(c=d.next()).done);o=!0){var h=c.value;try{h.destroy()}catch(a){}}}catch(a){l=!0,u=a}finally{try{o||null==d.return||d.return()}finally{if(l)throw u}}this._retiredGpuBuffers.length=0}}},{key:"_retireBundleRecords",value:function(){var a=!0,r=!1,n=void 0;try{for(var i,s,o=this._liveBundledPages()[Symbol.iterator]();!(a=(s=o.next()).done);a=!0){var l=s.value;null==(i=this._bundleStates.get(l))||i.onResourceDispose()}}catch(a){r=!0,n=a}finally{try{a||null==o.return||o.return()}finally{if(r)throw n}}this._bundleEpochDirty=!0}},{key:"_deferGpuBufferDestruction",value:function(){var a=this,r=this.backend,n=this._retiredGpuBuffers;r.destroyUniformBuffer=function(i){var s=r.get(i);(null==s?void 0:s.buffer)&&n.push(s.buffer),r.delete(i),a._retireBundleRecords()};var i=r.attributeUtils;if(i){var s=i._getBufferAttribute.bind(i);i.destroyAttribute=function(i){var o=r.get(s(i));(null==o?void 0:o.buffer)&&n.push(o.buffer),r.delete(i),a._retireBundleRecords()}}}},{key:"_reallocGrabTarget",value:function(a,r,n,i){return a&&a.width===r&&a.height===n?a:(this.retireRenderTarget(a),i())}},{key:"_withShadowUpdatesSuspended",value:function(a,r){var n=[];a.traverse(function(a){a.isLight&&a.shadow&&null!=a.shadow.map&&(n.push({shadow:a.shadow,auto:a.shadow.autoUpdate,needs:a.shadow.needsUpdate}),a.shadow.autoUpdate=!1,a.shadow.needsUpdate=!1)});try{r()}finally{var i=!0,s=!1,o=void 0;try{for(var l,u=n[Symbol.iterator]();!(i=(l=u.next()).done);i=!0){var c=l.value;c.shadow.autoUpdate=c.auto,c.shadow.needsUpdate=c.needs}}catch(a){s=!0,o=a}finally{try{i||null==u.return||u.return()}finally{if(s)throw o}}}}},{key:"_renderPrepass",value:function(a,r){var n=this;this._withShadowUpdatesSuspended(a,function(){n.render(a,r)})}},{key:"_renderAOPass",value:function(a,r,n){var i,s,o,l,c,d,h,m,f,v,p=this.getDrawingBufferSize(af),g=Math.max(1,Math.round(p.x)),_=Math.max(1,Math.round(p.y));this._aoRenderTarget=this._reallocGrabTarget(this._aoRenderTarget,g,_,function(){return new b.Kc(g,_,{depthBuffer:!1})}),u.Vc.aoRenderTarget.value=this._aoRenderTarget.texture,this._hbao||(this._hbao=new en),this._hbao.render(this,a,r,{radius:n.radius,bias:null!=(i=n.bias)?i:.5,aoFullRes:!0===n.aoFullRes,aoColor:null!=(s=a.aoColor)?s:{r:0,g:0,b:0},fogEnabled:null!==(null!=(o=a.fog)?o:null),fogNear:null!=(l=null==(f=a.backupFog)?void 0:f.near)?l:1,fogFar:null!=(c=null==(v=a.backupFog)?void 0:v.far)?c:1e3,fogMode:y.pa.getModeIndex({mode:a.fogMode}),fogDensity:null!=(d=a.fogDensity)?d:y.pa.getDensity({}),fogHeightFalloff:null!=(h=a.fogHeightFalloff)?h:y.pa.getHeightFalloff({}),fogHeightBase:null!=(m=a.fogHeightBase)?m:y.pa.getHeightBase({})},this.pipeline.blueNoiseTexture,this._aoRenderTarget)}},{key:"_renderNormalPass",value:function(a,r,n){var i=this,s=n.outline&&n.cavity?"both":n.cavity?"normals":"hash",o=this.getDrawingBufferSize(af),l=Math.max(1,Math.round(o.x)),c=Math.max(1,Math.round(o.y));void 0!==this._normalTarget&&this._normalTargetFlavor!==s&&(this.retireRenderTarget(this._normalTarget),this._normalTarget=void 0),this._normalTargetFlavor=s,this._normalTarget=this._reallocGrabTarget(this._normalTarget,l,c,function(){var a=new b.Kc(l,c,{count:"both"===s?2:1,type:"normals"===s?b.Ba:b.Aa,depthTexture:new b.Cd(l,c)});"both"===s&&(a.textures[0].name="g0",a.textures[1].name="g1",a.textures[1].type=b.Ba);var r=!0,n=!1,i=void 0;try{for(var o,u=a.textures[Symbol.iterator]();!(r=(o=u.next()).done);r=!0){var d=o.value;d.minFilter=b.na,d.magFilter=b.na}}catch(a){n=!0,i=a}finally{try{r||null==u.return||u.return()}finally{if(n)throw i}}return a});var d=this._encodeMaterials[s];if(void 0===d){null!=this._depthContrastUniform||(this._depthContrastUniform=(0,u.vc)(1));var h=new u.c;h.name="SplineNormalPassEncode_".concat(s);var m=(0,u.Y)("randomColor","vec3"),f=function(){var a=(0,u.xb)(u.vb),r=u.ra.sub(.5).mul(i._depthContrastUniform).add(.5),n=(0,u.hb)((0,u.hb)(m,a,.2),(0,u.Cc)(r),.4);return(0,u.Dc)(n,m.x)},v=function(){var a=(0,u.xb)(u.ub),r=(0,u._b)(u.Da,a,a.negate());return(0,u.Dc)(r,m.x)};h.fragmentNode="both"===s?(0,u.pb)({g0:f(),g1:v()}):"normals"===s?v():f(),h.lights=!1,h.blending=b.m,h.needsUpdate=!0,this._encodeMaterials[s]=h,d=h}this._depthContrastUniform.value=N(r,p.a)?(r.far-r.near)/1e4:1;var g=a.overrideMaterial,y=this.getRenderTarget(),_=this.getClearColor(t5),x=this.getClearAlpha();r.layers.enable(8),r.layers.disable(0),r.layers.disable(3),a.overrideMaterial=d,this.setClearColor(0,0),this.setRenderTarget(this._normalTarget),this._renderPrepass(a,r),this.setRenderTarget(y),this.setClearColor(_,x),a.overrideMaterial=g,r.layers.enable(0),r.layers.enable(3);var T=this._normalTarget.textures;u.Vc.normalRenderTarget.value="normals"===s?u.Pc:T[0],u.Vc.normalRenderTargetDepth.value=this._normalTarget.depthTexture,u.Vc.normalViewRenderTarget.value="both"===s?T[1]:"normals"===s?T[0]:u.Pc}},{key:"blitTextureToTarget",value:function(a,r){var n=this._uiBlitPass;if(!n){var i=(0,u.oc)(u.Pc),s=new u.c;s.name="SplineUICanvasBlit",s.fragmentNode=i.sample((0,u.yc)()),s.lights=!1,s.blending=b.m,s.depthTest=!1,s.depthWrite=!1,s.needsUpdate=!0,n={quad:new u.v(s),input:i},this._uiBlitPass=n}var o=this.getRenderTarget(),l=this.getMRT();n.input.value=a,this.setMRT(null),this.setRenderTarget(r),this.clear(),n.quad.render(this),this.setRenderTarget(o),this.setMRT(l)}},{key:"_getPrefilterPass",value:function(a){this._prefilterPasses||(this._prefilterPasses=[]);var r=this._prefilterPasses[a];if(r)return r;var n=(0,u.oc)(u.Pc),i=(0,u.vc)(new b.Dc(1,0)),s=new u.c;s.name="SplineTransmissionPrefilter";var o=(0,u.yc)(),l=function(a){return n.sample(o.add(i.mul(a))).rgb},c=l(0).mul(.40262).add(l(1.182408).mul(.29869)).add(l(-1.182408).mul(.29869));return s.fragmentNode=(0,u.Dc)(c,1),s.lights=!1,s.blending=b.m,s.depthTest=!1,s.depthWrite=!1,s.needsUpdate=!0,r={quad:new u.v(s),input:n,step:i},this._prefilterPasses[a]=r,r}},{key:"_getDownsamplePass",value:function(a){this._downsamplePasses||(this._downsamplePasses=[]);var r=this._downsamplePasses[a];return r||(r=this._buildDownsamplePassEntry(az,"SplineTransmissionDownsample"),this._downsamplePasses[a]=r,r)}},{key:"_buildDownsamplePassEntry",value:function(a,r){var n=(0,u.oc)(u.Pc),i=(0,u.vc)(new b.Dc(1,1)),s=new u.c;s.name=r;var o=(0,u.yc)(),l=function(a,r){return n.sample(o.add((0,u.Bc)(a,r).mul(i))).rgb},c=null;if("k4"===a)for(var d=-1;d<=1;d++)for(var h=-1;h<=1;h++){var m=(0===h?2:1)*(0===d?2:1)/16,f=l(h,d).mul(m);c=c?c.add(f):f}else for(var v=[-1.5,-.5,.5,1.5],p=[.1665,.3335,.3335,.1665],g=0;g<4;g++)for(var y=0;y<4;y++){var _=p[y]*p[g],x=l(v[y],v[g]).mul(_);c=c?c.add(x):x}return s.fragmentNode=(0,u.Dc)(c,1),s.lights=!1,s.blending=b.m,s.depthTest=!1,s.depthWrite=!1,s.needsUpdate=!0,{quad:new u.v(s),input:n,step:i}}},{key:"_getPlanarDownsamplePass",value:function(a){this._planarDownsamplePasses||(this._planarDownsamplePasses=[]);var r=this._planarDownsamplePasses[a];return r||(r=this._buildDownsamplePassEntry("g16","SplinePlanarDownsample"),this._planarDownsamplePasses[a]=r,r)}},{key:"_batchedMipCopies",value:function(a){var r=this.backend,n=null==r?void 0:r.device;if(!n||"function"!=typeof(null==r?void 0:r.get)){var i=!0,s=!1,o=void 0;try{for(var l,u=a[Symbol.iterator]();!(i=(l=u.next()).done);i=!0){var c=l.value;this.copyTextureToTexture(c.src,c.dst,null,null,0,c.dstLevel)}}catch(a){s=!0,o=a}finally{try{i||null==u.return||u.return()}finally{if(s)throw o}}return}var d=n.createCommandEncoder({label:"SplineCascadeMipCopies"}),h=0,m=!0,f=!1,v=void 0;try{for(var p,g=a[Symbol.iterator]();!(m=(p=g.next()).done);m=!0){var y,_,x=p.value,b=null==(y=r.get(x.src))?void 0:y.texture,T=null==(_=r.get(x.dst))?void 0:_.texture;b&&T?(d.copyTextureToTexture({texture:b,mipLevel:0,origin:{x:0,y:0,z:0}},{texture:T,mipLevel:x.dstLevel,origin:{x:0,y:0,z:0}},{width:x.width,height:x.height,depthOrArrayLayers:1}),h++):this.copyTextureToTexture(x.src,x.dst,null,null,0,x.dstLevel)}}catch(a){f=!0,v=a}finally{try{m||null==g.return||g.return()}finally{if(f)throw v}}h>0&&n.queue.submit([d.finish()])}},{key:"_getReflectionDownsamplePass",value:function(a){this._reflectionDownsamplePasses||(this._reflectionDownsamplePasses=[]);var r=this._reflectionDownsamplePasses[a];return r||(r=this._buildDownsamplePassEntry("g16","SplineReflectionDownsample"),this._reflectionDownsamplePasses[a]=r,r)}},{key:"_renderTransmissionPass",value:function(a,r){var n=this.getDrawingBufferSize(af),i=this.hdTransmission?1:2,s=Math.max(1,Math.round(n.x/i)),o=Math.max(1,Math.round(n.y/i)),l=!0===(null==(v=this.backend)?void 0:v.isWebGPUBackend)?aS:"off";this._transmissionTarget=this._reallocGrabTarget(this._transmissionTarget,s,o,function(){var a=new b.Kc(s,o,{depthBuffer:!0}),r=a.texture;return"off"===l?(r.generateMipmaps=!0,r.minFilter=b.sa):(r.generateMipmaps=!1,r.minFilter=b.qa),r.magFilter=b.qa,a});var c=[];a.traverse(function(a){if(a.isMesh||a.isLine||a.isPoints||a.isSprite){var r=a.layers;r&&8&r.mask&&8!==r.mask&&(c.push({layers:r,mask:r.mask}),r.mask=8)}});var d=this.getRenderTarget();r.layers.disable(3),this.setRenderTarget(this._transmissionTarget),this._renderPrepass(a,r),this.setRenderTarget(d),r.layers.enable(3);var h=!0,m=!1,f=void 0;try{for(var v,p,g=c[Symbol.iterator]();!(h=(p=g.next()).done);h=!0){var y=p.value;y.layers.mask=y.mask}}catch(a){m=!0,f=a}finally{try{h||null==g.return||g.return()}finally{if(m)throw f}}var _=this._transmissionTarget.texture;if("off"!==l){var x=function(a,r){var n=new b.Kc(a,r,{depthBuffer:!1});return n.texture.generateMipmaps=!1,n.texture.minFilter=b.qa,n.texture.magFilter=b.qa,n};this._transmissionBlurTmp=this._reallocGrabTarget(this._transmissionBlurTmp,s,o,function(){return x(s,o)});var T=Math.floor(Math.log2(Math.max(s,o)))+1,w=this._transmissionBlurTarget;this._transmissionBlurTarget=this._reallocGrabTarget(this._transmissionBlurTarget,s,o,function(){var a=new b.Kc(s,o,{depthBuffer:!1}),r=a.texture;return r.minFilter=b.sa,r.magFilter=b.qa,"base"===l?r.generateMipmaps=!0:(r.generateMipmaps=!1,r.mipmaps=Array.from({length:T},function(a,r){return{width:Math.max(1,s>>r),height:Math.max(1,o>>r)}})),a}),"full"===l&&this._transmissionBlurTarget!==w&&this.initTexture(this._transmissionBlurTarget.texture);var S=this._getPrefilterPass(0);S.input.value=this._transmissionTarget.texture,S.step.value.set(1/s,0),this.setRenderTarget(this._transmissionBlurTmp),S.quad.render(this);var z=this._getPrefilterPass(1);if(z.input.value=this._transmissionBlurTmp.texture,z.step.value.set(0,1/o),"base"===l)this.setRenderTarget(this._transmissionBlurTarget),z.quad.render(this);else{for(var V,C,k=function(a){C._transmissionChain[a]=C._reallocGrabTarget(C._transmissionChain[a],Math.max(1,s>>a),Math.max(1,o>>a),function(){return x(Math.max(1,s>>a),Math.max(1,o>>a))})},M=0;M<T;M++)C=this,k(M);for(var A=T;A<this._transmissionChain.length;A++)null==(V=this._transmissionChain[A])||V.dispose(),this._transmissionChain[A]=void 0;this._transmissionChain.length=T,this.setRenderTarget(this._transmissionChain[0]),z.quad.render(this);for(var R=1;R<T;R++){var P=this._transmissionChain[R-1],N=this._getDownsamplePass(R-1);N.input.value=P.texture,N.step.value.set(1/P.width,1/P.height),this.setRenderTarget(this._transmissionChain[R]),N.quad.render(this)}for(var B=0;B<T;B++)this.copyTextureToTexture(this._transmissionChain[B].texture,this._transmissionBlurTarget.texture,null,null,0,B)}this.setRenderTarget(d),_=this._transmissionBlurTarget.texture}u.Vc.transmissionRenderTarget.value=_,u.Vc.transmissionActualSize.value.set(s,o),u.Vc.aspectRatio.value=n.x>=n.y?u.Vc.aspectRatio.value.set(n.y/n.x,1):u.Vc.aspectRatio.value.set(1,n.x/n.y)}},{key:"_buildReflectionDepthPasses",value:function(a,r,n){var i=!0,s=!1,o=void 0;if(this._reflectionDepthPasses)try{for(var l,c,d,h=this._reflectionDepthPasses[Symbol.iterator]();!(i=(d=h.next()).done);i=!0){var m=d.value;null==m||null==(c=m.quad.material)||c.dispose()}}catch(a){s=!0,o=a}finally{try{i||null==h.return||h.return()}finally{if(s)throw o}}var f=[],v=new u.c;v.name="SplineReflectionDepthBlit";var p=(0,u.oc)(this._reflectionTarget.depthTexture);v.fragmentNode=(0,u.Dc)((0,u.Cc)(p.sample((0,u.yc)())),1),v.lights=!1,v.blending=b.m,v.depthTest=!1,v.depthWrite=!1,v.needsUpdate=!0,f.push({quad:new u.v(v)});for(var g=1;g<n;g++)l=this,function(n){var i=Math.max(1,a>>n-1),s=Math.max(1,r>>n-1),o=new u.c;o.name="SplineReflectionDepthMin".concat(n);var c=(0,u.oc)(l._reflectionDepthChain[n-1].texture),d=u.Yb,h=(0,u.Na)(d.x).mul(2),m=(0,u.Na)(d.y).mul(2),v=function(a,r){return c.load((0,u.Ta)(h.add(a),m.add(r))).x},p=function(a,r){return(0,u.gb)(a,r)},g=p(p(v(0,0),v(1,0)),p(v(1,1),v(0,1))),y=!!(1&i),_=!!(1&s);y&&(g=p(g,p(v(2,0),v(2,1)))),_&&(g=p(g,p(v(0,2),v(1,2)))),y&&_&&(g=p(g,v(2,2))),o.fragmentNode=(0,u.Dc)((0,u.Cc)(g),1),o.lights=!1,o.blending=b.m,o.depthTest=!1,o.depthWrite=!1,o.needsUpdate=!0,f.push({quad:new u.v(o)})}(g);this._reflectionDepthPasses=f}},{key:"_renderReflectionPass",value:function(a,r){var n,i=function(a){n._reflectionDepthChain[a]=n._reallocGrabTarget(n._reflectionDepthChain[a],Math.max(1,m>>a),Math.max(1,v>>a),function(){return y(Math.max(1,m>>a),Math.max(1,v>>a))})},s=this,o=this.getDrawingBufferSize(af),l=1/0,c=0,d=0;a.traverse(function(a){if(a.isMesh&&16&a.layers.mask){var n=s._reflectiveMeshCoverage(a,r,o.y),i=Array.isArray(a.material)?a.material:[a.material],u=!0,h=!1,m=void 0;try{for(var v,p=i[Symbol.iterator]();!(u=(v=p.next()).done);u=!0){var g=v.value;if(null==g?void 0:g.layers){var y=(0,f.b)(g);!y||(l=Math.min(l,y.min*n.scale),c=Math.max(c,y.max*n.scale),y.max*n.scale>.45&&(d=Math.max(d,n.diameterPx)))}}}catch(a){h=!0,m=a}finally{try{u||null==p.return||p.return()}finally{if(h)throw m}}}});var h=1;if(aN&&l!==1/0)for(l>=6?h=4:l>=2&&(h=2);h>1&&d>0&&d/h<128;)h>>=1;var m=Math.max(1,Math.round(o.x/h)),v=Math.max(1,Math.round(o.y/h)),p=Math.floor(Math.log2(Math.max(m,v)))+1,g=!0===(null==(N=this.backend)?void 0:N.isWebGPUBackend)&&aP;this._reflectionTarget=this._reallocGrabTarget(this._reflectionTarget,m,v,function(){var a=new b.Kc(m,v,{depthTexture:new b.Cd(m,v)});return g?(a.texture.generateMipmaps=!1,a.texture.minFilter=b.qa):(a.texture.generateMipmaps=!0,a.texture.minFilter=b.sa),a.texture.magFilter=b.qa,a});var y=function(a,r){var n=new b.Kc(a,r,{depthBuffer:!1,type:b.Aa,format:b.Ma});return n.texture.generateMipmaps=!1,n.texture.minFilter=b.na,n.texture.magFilter=b.na,n},_=this._reflectionDepthPyramid;this._reflectionDepthPyramid=this._reallocGrabTarget(this._reflectionDepthPyramid,m,v,function(){var a=y(m,v);return a.texture.mipmaps=Array.from({length:p},function(a,r){return{width:Math.max(1,m>>r),height:Math.max(1,v>>r)}}),a}),this._reflectionDepthPyramid!==_&&this.initTexture(this._reflectionDepthPyramid.texture);for(var x=0;x<p;x++)n=this,i(x);for(var T=p;T<this._reflectionDepthChain.length;T++)null==(B=this._reflectionDepthChain[T])||B.dispose(),this._reflectionDepthChain[T]=void 0;this._reflectionDepthChain.length=p;var w=this.auxiliary||!0!==(null==(D=this._skySystem)?void 0:D.attached)?null:null!=(P=this._skySystem.environmentTexture)?P:null,S=u.Vc.reflectionEnvMap,z=null!=w?w:u.Qc;!this.auxiliary&&S.value!==z&&(S.value=z,this._grabTargetEpoch++),u.Vc.reflectionEnvEnabled.value=+(null!==w);var V=this.getClearColor(t4);u.Vc.reflectionMissColor.value.set(V.r,V.g,V.b);var C=[];a.traverse(function(a){if(a.isMesh||a.isLine||a.isPoints||a.isSprite){var r=a.layers;r&&16&r.mask&&16!==r.mask&&(C.push({layers:r,mask:r.mask}),r.mask=16)}});var k=this.getRenderTarget();r.layers.disable(4),this.setRenderTarget(this._reflectionTarget),this._renderPrepass(a,r),r.layers.enable(4);var M=!0,A=!1,R=void 0;try{for(var P,N,B,D,E,I=C[Symbol.iterator]();!(M=(E=I.next()).done);M=!0){var L=E.value;L.layers.mask=L.mask}}catch(a){A=!0,R=a}finally{try{M||null==I.return||I.return()}finally{if(A)throw R}}this._reflectionPassesKey!=="".concat(m,"x").concat(v)&&(this._buildReflectionDepthPasses(m,v,p),this._reflectionPassesKey="".concat(m,"x").concat(v));for(var U=this._reflectionDepthPasses,O=0;O<p;O++)this.setRenderTarget(this._reflectionDepthChain[O]),U[O].quad.render(this);this._batchedMipCopies(Array.from({length:p},function(a,r){return{src:s._reflectionDepthChain[r].texture,dst:s._reflectionDepthPyramid.texture,dstLevel:r,width:Math.max(1,m>>r),height:Math.max(1,v>>r)}}));var G=this._reflectionTarget.texture;if(g){var q,W,H=function(a){W._reflectionColorChain[a]=W._reallocGrabTarget(W._reflectionColorChain[a],Math.max(1,m>>a),Math.max(1,v>>a),function(){return J(Math.max(1,m>>a),Math.max(1,v>>a))})},j=this._reflectionColorPyramid;this._reflectionColorPyramid=this._reallocGrabTarget(this._reflectionColorPyramid,m,v,function(){var a=new b.Kc(m,v,{depthBuffer:!1}),r=a.texture;return r.minFilter=b.sa,r.magFilter=b.qa,r.generateMipmaps=!1,r.mipmaps=Array.from({length:p},function(a,r){return{width:Math.max(1,m>>r),height:Math.max(1,v>>r)}}),a}),this._reflectionColorPyramid!==j&&this.initTexture(this._reflectionColorPyramid.texture);for(var K=c>0?p:1,J=function(a,r){var n=new b.Kc(a,r,{depthBuffer:!1});return n.texture.generateMipmaps=!1,n.texture.minFilter=b.qa,n.texture.magFilter=b.qa,n},X=1;X<K;X++)W=this,H(X);for(var Q=K;Q<this._reflectionColorChain.length;Q++)null==(q=this._reflectionColorChain[Q])||q.dispose(),this._reflectionColorChain[Q]=void 0;this._reflectionColorChain.length=K;for(var Y=1;Y<K;Y++){var Z=1===Y?this._reflectionTarget:this._reflectionColorChain[Y-1],$=this._getReflectionDownsamplePass(Y-1);$.input.value=Z.texture,$.step.value.set(1/Z.width,1/Z.height),this.setRenderTarget(this._reflectionColorChain[Y]),$.quad.render(this)}this._batchedMipCopies([{src:this._reflectionTarget.texture,dst:this._reflectionColorPyramid.texture,dstLevel:0,width:m,height:v}].concat(F(Array.from({length:K-1},function(a,r){return{src:s._reflectionColorChain[r+1].texture,dst:s._reflectionColorPyramid.texture,dstLevel:r+1,width:Math.max(1,m>>r+1),height:Math.max(1,v>>r+1)}})))),G=this._reflectionColorPyramid.texture}this.setRenderTarget(k),u.Vc.reflectionRenderTarget.value=G,u.Vc.reflectionDepthPyramid.value=this._reflectionDepthPyramid.texture,u.Vc.reflectionDepthSize.value.set(m,v),u.Vc.reflectionDepthLevels.value=p,this._reflectionGrabInfo={div:h,w:m,h:v,minBlur:l,maxBlur:c}}},{key:"_reflectiveMeshCoverage",value:function(a,r,n){var i,s=a.geometry;if(!s)return{diameterPx:n,scale:1};null===s.boundingSphere&&s.computeBoundingSphere();var o=s.boundingSphere;if(!o)return{diameterPx:n,scale:1};var l=a.matrixWorld.elements,u=Math.sqrt(Math.max(l[0]*l[0]+l[1]*l[1]+l[2]*l[2],l[4]*l[4]+l[5]*l[5]+l[6]*l[6],l[8]*l[8]+l[9]*l[9]+l[10]*l[10])),c=o.radius*u;t8.copy(o.center).applyMatrix4(a.matrixWorld);var d=r.projectionMatrix.elements[5]*n/2,h=1;!0===r.isPerspectiveCamera&&(t7.setFromMatrixPosition(r.matrixWorld),h=Math.max(t8.distanceTo(t7),null!=(i=r.near)?i:.1));var m=2*c*d/h;return{diameterPx:m,scale:Math.min(1,m/(.66*n))}}},{key:"_renderReflectionResolvePass",value:function(a,r){var n,i,s,o,l=this,c=this._reflectionGrabInfo,d=!0===(null==(o=this.backend)?void 0:o.isWebGPUBackend)&&aB&&void 0!==c&&c.maxBlur>.45;if(d){var h=!0;a.traverse(function(a){if(a.isMesh&&16&a.layers.mask){var n=Array.isArray(a.material)?a.material:[a.material],i=null,s=!0,o=!1,u=void 0;try{for(var c,d=n[Symbol.iterator]();!(s=(c=d.next()).done);s=!0){var m=c.value;if((null==m?void 0:m.layers)&&(i=(0,f.c)(m),null!==i))break}}catch(a){o=!0,u=a}finally{try{s||null==d.return||d.return()}finally{if(o)throw u}}"variable"!==i?null!==i?(a.userData.__srMode=i.blur>.45?1+i.tracingMode:0,a.userData.__srBlur=i.blur*l._reflectiveMeshCoverage(a,r,l.getDrawingBufferSize(t9).y).scale,a.userData.__srThickness=i.thickness,a.userData.__srStepSize=i.stepSize,a.userData.__srSteps=i.steps):a.userData.__srMode=0:h=!1}}),d=h}var m=d?c.w:4,v=d?c.h:4,p=function(a,r){return function(){var n=new b.Kc(a,r,{type:b.Ba,depthBuffer:!1});return n.texture.generateMipmaps=!1,n.texture.minFilter=b.qa,n.texture.magFilter=b.qa,n}};if(this._reflectionResolveTarget=this._reallocGrabTarget(this._reflectionResolveTarget,m,v,p(m,v)),u.Vc.reflectionResolveTarget.value=this._reflectionResolveTarget.texture,!d)return void(u.Vc.reflectionResolveEnabled.value=0);var g=c.w,y=c.h;if(this._reflectionGBufferTarget=this._reallocGrabTarget(this._reflectionGBufferTarget,g,y,function(){var a=new b.Kc(g,y,{count:2,type:b.Ba,depthTexture:new b.Cd(g,y)}),r=!0,n=!1,i=void 0;try{for(var s,o=a.textures[Symbol.iterator]();!(r=(s=o.next()).done);r=!0){var l=s.value;l.generateMipmaps=!1,l.minFilter=b.na,l.magFilter=b.na}}catch(a){n=!0,i=a}finally{try{r||null==o.return||o.return()}finally{if(n)throw i}}return a.textures[0].name="g0",a.textures[1].name="g1",a}),this._reflectionResolveMarchTarget=this._reallocGrabTarget(this._reflectionResolveMarchTarget,g,y,p(g,y)),this._reflectionResolveBlurTmp=this._reallocGrabTarget(this._reflectionResolveBlurTmp,g,y,p(g,y)),!this._reflectionGBufferMaterial){var _=new u.c;_.name="SplineReflectionGBuffer";var x=(0,u.xc)("__splinePlanarMirror","float"),T=u.Vc.reflectionPlanarEnabled.greaterThan(.5),w=(0,u.xc)("__srMode","float"),S=(0,u._b)(x.greaterThan(.5).and(T),(0,u.za)(0),w);_.fragmentNode=(0,u.pb)({g0:(0,u.Dc)((0,u.xb)(u.ub),S),g1:(0,u.Dc)((0,u.xc)("__srBlur","float"),(0,u.xc)("__srThickness","float"),(0,u.xc)("__srStepSize","float"),(0,u.xc)("__srSteps","float"))}),_.lights=!1,_.blending=b.m,_.needsUpdate=!0,this._reflectionGBufferMaterial=_}var z=null!=(n=this._skippedAsyncDraws)?n:0,V=a.overrideMaterial,C=this.getRenderTarget(),k=this.getClearColor(t6),M=this.getClearAlpha(),A=r.layers.mask;a.overrideMaterial=this._reflectionGBufferMaterial,r.layers.mask=16,this.setClearColor(0,0),this.setRenderTarget(this._reflectionGBufferTarget),this._renderPrepass(a,r),a.overrideMaterial=V,r.layers.mask=A,this.setClearColor(k,M);var R=u.Vc.reflectionRenderTarget.value,P=u.Vc.reflectionEnvMap.value,N=this._reflectionGBufferTarget,B="".concat(g,"x").concat(y,"|").concat(N.textures[0].uuid,"|").concat(R.uuid,"|").concat(this._reflectionDepthPyramid.texture.uuid,"|").concat(P.uuid,"|").concat(this._reflectionResolveMarchTarget.texture.uuid,"|").concat(this._reflectionResolveBlurTmp.texture.uuid);B!==this._reflectionResolveMarchKey&&(this._buildReflectionResolveMarch(R,P,g,y),this._reflectionResolveMarchKey=B);var D=this._reflectionResolveMarch;D.proj.value.copy(r.projectionMatrix),D.projInv.value.copy(r.projectionMatrix).invert(),D.camWorld.value.copy(r.matrixWorld),D.near.value=null!=(i=r.near)?i:.1,this.setRenderTarget(this._reflectionResolveMarchTarget),D.quad.render(this),this.setRenderTarget(this._reflectionResolveBlurTmp),this._reflectionResolveBlur.h.render(this),this.setRenderTarget(this._reflectionResolveTarget),this._reflectionResolveBlur.v.render(this),this.setRenderTarget(C),u.Vc.reflectionResolveEnabled.value=1,(null!=(s=this._skippedAsyncDraws)?s:0)>z&&(u.Vc.reflectionResolveEnabled.value=0)}},{key:"_buildReflectionResolveMarch",value:function(a,r,n,i){this._reflectionResolveMarch&&this._reflectionResolveMarch.quad.material.dispose(),this._reflectionResolveBlur&&(this._reflectionResolveBlur.h.material.dispose(),this._reflectionResolveBlur.v.material.dispose());var s=(0,u.vc)(new b.Oc),o=(0,u.vc)(new b.Oc),l=(0,u.vc)(new b.Oc),c=(0,u.vc)(.1),d=this._reflectionGBufferTarget,h=(0,u.oc)(d.textures[0]),m=(0,u.oc)(d.textures[1]),f=(0,u.oc)(d.depthTexture),v=(0,u.oc)(a),p=(0,u.oc)(this._reflectionDepthPyramid.texture),g=(0,u.oc)(r),y=new u.c;y.name="SplineReflectionResolve",y.fragmentNode=(0,u.I)(function(){var a=u.Yb,r=(0,u.Ta)((0,u.Na)(a.x),(0,u.Na)(a.y)),n=(0,u.yc)(),i=h.load(r).toVar(),d=f.sample(n).toVar(),y=(0,u.Dc)(0).toVar(),_=(0,u.za)(0).toVar();return(0,u.J)(i.w.greaterThan(.5),function(){var a=m.load(r).toVar(),h=eg(o,n.x,n.y,d),f=e_({dials:{blur:a.x,thickness:a.y,stepSize:a.z,steps:(0,u.Na)(a.w),tracingMode:i.w.sub(1)},surface:{originView:h,normalV:(0,u.xb)(i.xyz),screenUv:n,fragWindowZ:d},camera:{projectionMatrix:s,projectionMatrixInverse:o,worldMatrix:l,near:c},resources:{colorMap:v,depthPyramid:p,depthPyramidNode:p,envMap:g},usePlanar:(0,u._)(!1),noisePixel:(0,u.Bc)(r),singleRay:{footprintOut:_}});y.assign((0,u.Dc)(f,_.add(1)))}),y})(),y.lights=!1,y.blending=b.m,y.depthTest=!1,y.depthWrite=!1,y.needsUpdate=!0,this._reflectionResolveMarch={quad:new u.v(y),proj:s,projInv:o,camWorld:l,near:c};var _=(0,u.oc)(this._reflectionResolveMarchTarget.texture),x=(0,u.oc)(this._reflectionResolveBlurTmp.texture),T=function(a){var r=new u.c;r.name="SplineReflectionResolveBlur".concat(a.toUpperCase());var s="x"===a?_:x,o="x"===a?1/n:1/i;return r.fragmentNode=(0,u.I)(function(){for(var r=(0,u.yc)(),n=_.sample(r).toVar().w.sub(1).max(0).clamp(.5,12).toVar(),i=(0,u.Dc)(0).toVar(),l=0,c=-6;c<=6;c++){var d=Math.exp(-(c/3*(c/3*.5)));l+=d;var h="x"===a?(0,u.Bc)(n.mul(c/6*o),0):(0,u.Bc)(0,n.mul(c/6*o)),m=s.sample(r.add(h)).toVar(),f="x"===a?m.w.min(1):m.w;i.addAssign((0,u.Dc)(m.rgb,f).mul(d))}return i.div(l)})(),r.lights=!1,r.blending=b.m,r.depthTest=!1,r.depthWrite=!1,r.needsUpdate=!0,new u.v(r)};this._reflectionResolveBlur={h:T("x"),v:T("y")}}},{key:"_renderPlanarReflectionPass",value:function(a,r){var n=this,i=null;if(a.traverse(function(a){if(a.isMesh&&16&a.layers.mask&&(a.userData.__splinePlanarMirror=0,(Array.isArray(a.material)?a.material:[a.material]).some(function(a){return(null==a?void 0:a.layers)&&(0,f.a)(a)}))){var r=a.geometry;if(r){null===r.boundingBox&&r.computeBoundingBox();var n,s,o=r.boundingBox,l=o.max.x-o.min.x,u=o.max.y-o.min.y,c=o.max.z-o.min.z,d=a.matrixWorld.elements,h=Math.hypot(d[0],d[1],d[2]),m=Math.hypot(d[4],d[5],d[6]),v=Math.hypot(d[8],d[9],d[10]);l<=u&&l<=c?(n=ae,s=u*m*(c*v)):u<=l&&u<=c?(n=at,s=l*h*(c*v)):(n=aa,s=l*h*(u*m)),(!i||s>i.area)&&(i={mesh:a,normalAxis:n,area:s})}}}),!i)return void(u.Vc.reflectionPlanarEnabled.value=0);var s=i.mesh,o=i.mesh.matrixWorld;if(ar.copy(i.normalAxis).transformDirection(o),an.setFromMatrixPosition(o),ai.setFromMatrixPosition(r.matrixWorld),as.subVectors(an,ai),as.dot(ar)>0&&ar.negate(),as.dot(ar)>0)return void(u.Vc.reflectionPlanarEnabled.value=0);s.userData.__splinePlanarMirror=1,this._planarVirtualCamera&&this._planarVirtualCamera.type===r.type||(this._planarVirtualCamera=r.clone());var l=this._planarVirtualCamera;if(as.subVectors(an,ai),as.reflect(ar).negate(),as.add(an),ao.extractRotation(r.matrixWorld),al.set(0,0,-1).applyMatrix4(ao).add(ai),au.subVectors(an,al),au.reflect(ar).negate(),au.add(an),l.position.copy(as),l.up.set(0,1,0).applyMatrix4(ao),l.up.reflect(ar),l.lookAt(au),l.updateMatrixWorld(),l.projectionMatrix.copy(r.projectionMatrix),l.projectionMatrixInverse.copy(l.projectionMatrix).invert(),!0===r.isPerspectiveCamera){ac.setFromNormalAndCoplanarPoint(ar,an),ac.applyMatrix4(l.matrixWorldInverse),ad.set(ac.normal.x,ac.normal.y,ac.normal.z,ac.constant);var c=l.projectionMatrix.elements;ah.x=(Math.sign(ad.x)+c[8])/c[0],ah.y=(Math.sign(ad.y)+c[9])/c[5],ah.z=-1,ah.w=(1+c[10])/c[14],ad.multiplyScalar(1/ad.dot(ah)),c[2]=ad.x,c[6]=ad.y,c[10]=ad.z,c[14]=ad.w}var d=this.getDrawingBufferSize(am),h=Math.max(1,Math.round(d.x)),m=Math.max(1,Math.round(d.y)),v=!0===(null==(T=this.backend)?void 0:T.isWebGPUBackend)&&aR;this._planarTarget=this._reallocGrabTarget(this._planarTarget,h,m,function(){var a=new b.Kc(h,m);return v?(a.texture.generateMipmaps=!1,a.texture.minFilter=b.qa):(a.texture.generateMipmaps=!0,a.texture.minFilter=b.sa),a.texture.magFilter=b.qa,a});var p=[];a.traverse(function(a){if(a.isMesh||a.isLine||a.isPoints||a.isSprite){var r=a.layers;r&&16&r.mask&&16!==r.mask&&(p.push({layers:r,mask:r.mask}),r.mask=16)}}),l.layers.mask=-17&r.layers.mask;var g=this.getRenderTarget();this.setRenderTarget(this._planarTarget),this._renderPrepass(a,l),this.setRenderTarget(g);var y=!0,_=!1,x=void 0;try{for(var T,w,S=p[Symbol.iterator]();!(y=(w=S.next()).done);y=!0){var z=w.value;z.layers.mask=z.mask}}catch(a){_=!0,x=a}finally{try{y||null==S.return||S.return()}finally{if(_)throw x}}var V=this._planarTarget.texture;if(v){var C,k,M=function(a){k._planarChain[a]=k._reallocGrabTarget(k._planarChain[a],Math.max(1,h>>a),Math.max(1,m>>a),function(){return P(Math.max(1,h>>a),Math.max(1,m>>a))})},A=Math.floor(Math.log2(Math.max(h,m)))+1,R=this._planarPyramid;this._planarPyramid=this._reallocGrabTarget(this._planarPyramid,h,m,function(){var a=new b.Kc(h,m,{depthBuffer:!1}),r=a.texture;return r.minFilter=b.sa,r.magFilter=b.qa,r.generateMipmaps=!1,r.mipmaps=Array.from({length:A},function(a,r){return{width:Math.max(1,h>>r),height:Math.max(1,m>>r)}}),a}),this._planarPyramid!==R&&this.initTexture(this._planarPyramid.texture);for(var P=function(a,r){var n=new b.Kc(a,r,{depthBuffer:!1});return n.texture.generateMipmaps=!1,n.texture.minFilter=b.qa,n.texture.magFilter=b.qa,n},N=1;N<A;N++)k=this,M(N);for(var B=A;B<this._planarChain.length;B++)null==(C=this._planarChain[B])||C.dispose(),this._planarChain[B]=void 0;this._planarChain.length=A;for(var D=1;D<A;D++){var E=1===D?this._planarTarget:this._planarChain[D-1],I=this._getPlanarDownsamplePass(D-1);I.input.value=E.texture,I.step.value.set(1/E.width,1/E.height),this.setRenderTarget(this._planarChain[D]),I.quad.render(this)}this.setRenderTarget(g),this._batchedMipCopies([{src:this._planarTarget.texture,dst:this._planarPyramid.texture,dstLevel:0,width:h,height:m}].concat(F(Array.from({length:A-1},function(a,r){return{src:n._planarChain[r+1].texture,dst:n._planarPyramid.texture,dstLevel:r+1,width:Math.max(1,h>>r+1),height:Math.max(1,m>>r+1)}})))),V=this._planarPyramid.texture}var L=u.Vc.reflectionPlanarTarget;L.value!==V&&(L.value=V,this._grabTargetEpoch++),u.Vc.reflectionPlanarEnabled.value=1}},{key:"renderFromSceneForSceneTransitionPass",value:function(a,r,n){var i=this.getDrawingBufferSize(af),s=Math.max(1,Math.round(i.x)),o=Math.max(1,Math.round(i.y));this._transitionCaptureTarget=this._reallocGrabTarget(this._transitionCaptureTarget,s,o,function(){return new b.Kc(s,o,{depthBuffer:!0})});var l=this.getRenderTarget();this.setRenderTarget(this._transitionCaptureTarget);try{this.renderSplineScene(a,r)}finally{this.setRenderTarget(l)}this.pipeline.sceneTransitionFromTexture=this._transitionCaptureTarget.texture,this.sceneTransitionDuration=n,this.sceneTransitionTimeRemaining=n;var u=this.pipeline.sceneTransitionPass.uniforms;u.uDPR.value=this.getPixelRatio(),u.uResolution.value.set(i.x,i.y).divideScalar(this.getPixelRatio())}},{key:"captureFrame",value:function(a){return S(function(a){var r,n,i,s,o,l,u,c,d,h,m,f,v,p,g,y,_,x,b,T,w,S,z,V,C,k,M=arguments;return G(this,function(A){switch(A.label){case 0:if(i=void 0!==(n=(r=M.length>1&&void 0!==M[1]?M[1]:{}).includeHelpers)&&n,o=void 0===(s=r.settleFrames)?0:s,!0===(null==(l=this.xr)?void 0:l.isPresenting))return[2,null];c=this._frameSerial,d=this.getRenderTarget(),h=this.pipeline.renderToScreen,m=this.pipeline.helpersEnabled,f=this.suppressShadowMask,this.suppressShadowMask=!0,i||this.pipeline.disableHelpers(),this.pipeline.renderToScreen=!1,this.setRenderTarget(null),A.label=1;case 1:A.trys.push([1,,6,7]),v=0,A.label=2;case 2:if(!(v<o))return[3,5];return a(),[4,"function"!=typeof requestAnimationFrame||("u"<typeof document?"undefined":L(document))<"u"&&!0===document.hidden?Promise.resolve():new Promise(function(a){var r=!1,n=function(){r||(r=!0,clearTimeout(i),a())},i=setTimeout(n,250);requestAnimationFrame(n)})];case 3:A.sent(),A.label=4;case 4:return v++,[3,2];case 5:return a(),[3,7];case 6:return this.suppressShadowMask=f,this.pipeline.renderToScreen=h,this.setRenderTarget(d),m&&this.pipeline.enableHelpers(),[7];case 7:if(this._frameSerial===c||this.lastFrameIncomplete||!(p=this.pipeline.lastOutputTarget)||!(null==(u=this.backend.get(p.textures[0]))?void 0:u.textureDescriptorGPU))return[2,null];g=p.width,y=p.height,_=this,x=new Uint8Array(g*y*4),T=256*Math.ceil((b=4*g)/256),w=Math.max(1,Math.min(y,Math.floor(1048576/T))),S=0,A.label=8;case 8:if(!(S<y))return[3,11];return z=Math.min(w,y-S),[4,_.readRenderTargetPixelsAsync(p,0,S,g,z)];case 9:if(V=A.sent(),T===b)x.set(V.subarray(0,z*b),S*b);else for(C=0;C<z;C++)k=C*T,x.set(V.subarray(k,k+b),(S+C)*b);A.label=10;case 10:return S+=w,[3,8];case 11:return[2,{pixels:x,width:g,height:y}]}})}).apply(this,arguments)}},{key:"_applyCIOffscreenTargetIfRequested",value:function(){var a=this;if(!0===globalThis.__SPLINE_RENDER_OFFSCREEN__){var r=Math.max(1,Math.round(this.viewportWidth*this.getPixelRatio())),n=Math.max(1,Math.round(this.viewportHeight*this.getPixelRatio()));this._ciOffscreenTarget?(this._ciOffscreenTarget.width!==r||this._ciOffscreenTarget.height!==n)&&(this._ciOffscreenTarget.dispose(),this._ciOffscreenTarget=new b.Kc(r,n,{depthBuffer:!0})):(this._ciOffscreenTarget=new b.Kc(r,n,{depthBuffer:!0}),globalThis.__splineReadOffscreenPixels=function(){return S(function(){var a,r;return G(this,function(n){switch(n.label){case 0:return a=this._ciOffscreenTarget,[4,this.readRenderTargetPixelsAsync(a,0,0,a.width,a.height)];case 1:return r=n.sent(),[2,{width:a.width,height:a.height,pixels:Array.from(r)}]}})}).call(a)}),null===this.getRenderTarget()&&this.setRenderTarget(this._ciOffscreenTarget)}}},{key:"dispose",value:function(){this._disposeRetiredGrabTargets(),this._disposeWarmupTargets(),null==(o=(0,d.d)())||o.drainRetired(),null==(l=(0,s.g)())||l.drainRetired(),null==(c=this._skySystem)||c.dispose(),this._skySystem=null,null==(h=this._hbao)||h.dispose(),this._hbao=void 0,null==(m=this._shadowMask)||m.dispose(),this._shadowMask=void 0,function(){var a=!0,r=!1,n=void 0;try{for(var i,s=eE[Symbol.iterator]();!(a=(i=s.next()).done);a=!0){var o,l,u,c,d,h,m=i.value.deref();void 0!==m&&(null==(o=m.mid)||o.dispose(),m.mid=null,null==(l=m.small)||l.dispose(),m.small=null,null==(c=m.toMid)||null==(u=c.material)||u.dispose(),null==(h=m.toSmall)||null==(d=h.material)||d.dispose(),m.toMid=null,m.toSmall=null,m.passKey="",m.fresh=!1,m.slot=-1)}}catch(a){r=!0,n=a}finally{try{a||null==s.return||s.return()}finally{if(r)throw n}}eE.clear(),eF.fill(null),null==eN||eN.dispose(),eN=null,eU=!1}(),null==(f=this._aoRenderTarget)||f.dispose(),this._aoRenderTarget=void 0,null==(v=this._normalTarget)||v.dispose(),this._normalTarget=void 0,null==(p=this._ciOffscreenTarget)||p.dispose(),this._ciOffscreenTarget=void 0,null==(g=this._transitionCaptureTarget)||g.dispose(),this._transitionCaptureTarget=void 0,null==(y=this._transmissionTarget)||y.dispose(),this._transmissionTarget=void 0,null==(_=this._transmissionBlurTmp)||_.dispose(),this._transmissionBlurTmp=void 0,null==(x=this._transmissionBlurTarget)||x.dispose(),this._transmissionBlurTarget=void 0;var a=!0,n=!1,i=void 0;try{for(var o,l,c,h,m,f,v,p,g,y,_,x,b,T,w,S,z,V,C,k,M,P,N,B,D,E,I,F,L,U=this._transmissionChain[Symbol.iterator]();!(a=(L=U.next()).done);a=!0){var O=L.value;null==O||O.dispose()}}catch(a){n=!0,i=a}finally{try{a||null==U.return||U.return()}finally{if(n)throw i}}this._transmissionChain.length=0,null==(T=this._reflectionTarget)||null==(b=T.depthTexture)||b.dispose(),null==(w=this._reflectionTarget)||w.dispose(),this._reflectionTarget=void 0,null==(S=this._reflectionColorPyramid)||S.dispose(),this._reflectionColorPyramid=void 0;var G=!0,q=!1,W=void 0;try{for(var H,j=this._reflectionColorChain[Symbol.iterator]();!(G=(H=j.next()).done);G=!0){var K=H.value;null==K||K.dispose()}}catch(a){q=!0,W=a}finally{try{G||null==j.return||j.return()}finally{if(q)throw W}}if(this._reflectionColorChain.length=0,this._reflectionDownsamplePasses){var J=!0,X=!1,Q=void 0;try{for(var Y,Z,$=this._reflectionDownsamplePasses[Symbol.iterator]();!(J=(Z=$.next()).done);J=!0){var ee=Z.value;null==ee||null==(Y=ee.quad.material)||Y.dispose()}}catch(a){X=!0,Q=a}finally{try{J||null==$.return||$.return()}finally{if(X)throw Q}}this._reflectionDownsamplePasses=void 0}null==(z=this._planarTarget)||z.dispose(),this._planarTarget=void 0,null==(V=this._planarPyramid)||V.dispose(),this._planarPyramid=void 0;var et=!0,ea=!1,er=void 0;try{for(var en,ei=this._planarChain[Symbol.iterator]();!(et=(en=ei.next()).done);et=!0){var es=en.value;null==es||es.dispose()}}catch(a){ea=!0,er=a}finally{try{et||null==ei.return||ei.return()}finally{if(ea)throw er}}if(this._planarChain.length=0,this._planarDownsamplePasses){var eo=!0,el=!1,eu=void 0;try{for(var ec,ed,eh=this._planarDownsamplePasses[Symbol.iterator]();!(eo=(ed=eh.next()).done);eo=!0){var em=ed.value;null==em||null==(ec=em.quad.material)||ec.dispose()}}catch(a){el=!0,eu=a}finally{try{eo||null==eh.return||eh.return()}finally{if(el)throw eu}}this._planarDownsamplePasses=void 0}null==(C=this._reflectionDepthPyramid)||C.dispose(),this._reflectionDepthPyramid=void 0;var ef=!0,ev=!1,ep=void 0;try{for(var eg,ey=this._reflectionDepthChain[Symbol.iterator]();!(ef=(eg=ey.next()).done);ef=!0){var e_=eg.value;null==e_||e_.dispose()}}catch(a){ev=!0,ep=a}finally{try{ef||null==ey.return||ey.return()}finally{if(ev)throw ep}}if(this._reflectionDepthChain.length=0,this._reflectionDepthPasses){var ex=!0,eb=!1,eT=void 0;try{for(var ew,eS,ez=this._reflectionDepthPasses[Symbol.iterator]();!(ex=(eS=ez.next()).done);ex=!0){var eV=eS.value;null==eV||null==(ew=eV.quad.material)||ew.dispose()}}catch(a){eb=!0,eT=a}finally{try{ex||null==ez.return||ez.return()}finally{if(eb)throw eT}}this._reflectionDepthPasses=void 0}if(this._reflectionPassesKey="",null==(M=this._reflectionGBufferTarget)||null==(k=M.depthTexture)||k.dispose(),null==(P=this._reflectionGBufferTarget)||P.dispose(),this._reflectionGBufferTarget=void 0,null==(N=this._reflectionResolveMarchTarget)||N.dispose(),this._reflectionResolveMarchTarget=void 0,null==(B=this._reflectionResolveBlurTmp)||B.dispose(),this._reflectionResolveBlurTmp=void 0,null==(D=this._reflectionResolveTarget)||D.dispose(),this._reflectionResolveTarget=void 0,null==(E=this._reflectionGBufferMaterial)||E.dispose(),this._reflectionGBufferMaterial=void 0,this._reflectionResolveMarch&&(this._reflectionResolveMarch.quad.material.dispose(),this._reflectionResolveMarch=void 0),this._reflectionResolveBlur&&(this._reflectionResolveBlur.h.material.dispose(),this._reflectionResolveBlur.v.material.dispose(),this._reflectionResolveBlur=void 0),this._reflectionResolveMarchKey="",this._reflectionGrabInfo=void 0,this._prefilterPasses){var eC=!0,ek=!1,eM=void 0;try{for(var eA,eR,eP=this._prefilterPasses[Symbol.iterator]();!(eC=(eR=eP.next()).done);eC=!0){var eB=eR.value;null==eB||null==(eA=eB.quad.material)||eA.dispose()}}catch(a){ek=!0,eM=a}finally{try{eC||null==eP.return||eP.return()}finally{if(ek)throw eM}}this._prefilterPasses=void 0}if(this._downsamplePasses){var eD=!0,eI=!1,eL=void 0;try{for(var eO,eG,eq=this._downsamplePasses[Symbol.iterator]();!(eD=(eG=eq.next()).done);eD=!0){var eW=eG.value;null==eW||null==(eO=eW.quad.material)||eO.dispose()}}catch(a){eI=!0,eL=a}finally{try{eD||null==eq.return||eq.return()}finally{if(eI)throw eL}}this._downsamplePasses=void 0}this._uiBlitPass&&(this._uiBlitPass.quad.material.dispose(),this._uiBlitPass=void 0),null==(I=this._helperOverlay)||I.dispose(),this._helperOverlay=void 0,function(){var a=!0,r=!1,n=void 0;try{for(var i,s,o=tF[Symbol.iterator]();!(a=(s=o.next()).done);a=!0)null==(i=s.value.deref())||i.dispose()}catch(a){r=!0,n=a}finally{try{a||null==o.return||o.return()}finally{if(r)throw n}}tF.clear(),tL++}(),function(){var a=!0,r=!1,n=void 0;try{for(var i,s=tO[Symbol.iterator]();!(a=(i=s.next()).done);a=!0){var o=i.value.deref();void 0!==o&&(o.sprite.removeFromParent(),o.material.dispose())}}catch(a){r=!0,n=a}finally{try{a||null==s.return||s.return()}finally{if(r)throw n}}tO.clear(),tG++}(),null==(F=this._taaHistory)||F.dispose(),this._taaHistory=void 0;var eH=!0,ej=!1,eK=void 0;try{for(var eJ,eX=Object.values(this._encodeMaterials)[Symbol.iterator]();!(eH=(eJ=eX.next()).done);eH=!0){var eQ=eJ.value;null==eQ||eQ.dispose()}}catch(a){ej=!0,eK=a}finally{try{eH||null==eX.return||eX.return()}finally{if(ej)throw eK}}this._encodeMaterials={},this._bundledPages.clear(),this.pipeline.dispose(),this.dummyCamera.dispose(),A(R(r.prototype),"dispose",this).call(this),this._disposeRetiredGrabTargets(),u.Vc.transmissionRenderTarget.value=u.Pc,u.Vc.normalRenderTarget.value=u.Pc,u.Vc.aoRenderTarget.value=u.Pc,u.Vc.reflectionRenderTarget.value=u.Qc,u.Vc.reflectionDepthPyramid.value=u.Qc,u.Vc.reflectionEnvMap.value=u.Qc,u.Vc.reflectionPlanarTarget.value=u.Qc,u.Vc.reflectionPlanarEnabled.value=0,u.Vc.reflectionResolveTarget.value=u.Rc,u.Vc.reflectionResolveEnabled.value=0}}]),r}(u.C),aq=aG;aq._GAUGE_STALL_MS=3e3;var aW=function(a,r){return a.element(r)};function aH(a){return null!=a&&!0===a.isInstancedMesh&&null!=a.instanceMatrix&&!0===a.instanceMatrix.isInstancedBufferAttribute}var aj=new WeakMap;function aK(a){return u.nb.mul(function(a){var r,n=a.spInstanceMatrixNode;if(void 0!==n)return n;var i=a.object,s=i.instanceMatrix,o=Math.max(null!=(r=i.count)?r:1,1);if(!0===s.isStorageInstancedBufferAttribute)return aW((0,u.jc)(s,"mat4",o),u.Ja);if(16*o*4<=a.getUniformBufferLimit())return aW((0,u.$)(s.array,"mat4",o),u.Ja);var l=aj.get(s);void 0===l&&(l=new b.Me(s.array,16,1),aj.set(s,l));var c=s.usage===b.mc?u.Ma:u.La;return(0,u.ab)(c(l,"vec4",16,0),c(l,"vec4",16,4),c(l,"vec4",16,8),c(l,"vec4",16,12))}(a))}var aJ=(0,u.I)(function(a){return aH(a.object)?u.Hb:u.Ib}).once()().toVar("speObjectPosition"),aX=(0,u.I)(function(a){var r;return(null==(r=a.material)?void 0:r.shapeBlendObjectNormal)||(aH(a.object)?a.geometry.hasAttribute("normal")?u.sb:(0,u.Cc)(0,1,0):u.tb)}).once()().toVar("speObjectNormal"),aQ=((0,u.I)(function(a){return aH(a.object)?aK(a):u.nb}).once()(),(0,u.I)(function(a){if(!aH(a.object))return u.kb;var r=aK(a),n=function(a){return aW(r,a).xyz};return(0,u.Cc)(n(0).length(),n(1).length(),n(2).length()).toVarying("v_speModelScale")}).once()().toVar("speModelScale")),aY=((0,u.I)(function(a){return aH(a.object)?(0,u.$a)(aK(a)).inverse().transpose():u.jb}).once()(),(0,u.I)(function(a){return aH(a.object)?aK(a).inverse():u.ob}).once()(),new WeakMap);function aZ(a){if(!aY.has(a)){var r={own:a.value,render:a.value};aY.set(a,r),Object.defineProperty(a,"value",{configurable:!0,enumerable:!0,get:function(){return r.render},set:function(a){r.render=a,r.own=a}})}}function a$(a){var r=aY.get(a);return void 0!==r?r.own:a.value}function a0(a,r){var n=aY.get(a);void 0!==n?n.render=r:a.value=r}var a1=function(){function a(r){V(this,a),this.layerId=r,this.uniforms={},this.byName=new Map,this.liveValues=new Map}return M(a,[{key:"set",value:function(a,r,n){return this.byName.set(a,r),this.uniforms["f".concat(this.layerId,"_").concat(a)]=r,void 0!==n&&this.liveValues.set(a,n),this}},{key:"has",value:function(a){return this.byName.has(a)}},{key:"names",value:function(){return F(this.byName.keys())}},{key:"get",value:function(a){var r=this.byName.get(a);if(void 0===r)throw Error('TSLLayerParams: unknown param "'.concat(a,'" (layer f').concat(this.layerId,")"));return r}},{key:"getFloat",value:function(a){return this.get(a)}},{key:"getInt",value:function(a){return this.get(a)}},{key:"getBool",value:function(a){return this.get(a)}},{key:"getVec2",value:function(a){return this.get(a)}},{key:"getVec3",value:function(a){return this.get(a)}},{key:"getVec4",value:function(a){return this.get(a)}},{key:"getColor",value:function(a){return this.get(a)}},{key:"getValue",value:function(a){if(this.liveValues.has(a))return this.liveValues.get(a);var r=this.byName.get(a);return void 0===r?void 0:a$(r)}},{key:"getLiveValue",value:function(a){return this.liveValues.get(a)}},{key:"getNodeValue",value:function(a){var r=this.byName.get(a);return void 0===r?void 0:a$(r)}},{key:"setValue",value:function(a,r){var n=this.byName.get(a);void 0===n||void 0===r||(this.liveValues.has(a)&&this.liveValues.set(a,r),n.value=r)}}]),a}();function a2(a,r,n){var i=(0,u.za)(a).toVar(),s=(0,u.za)((0,u.hb)(i.div((0,u.ga)(i.add(r.accumAlpha),(0,u.za)(1e-5),(0,u.za)(1))),i,n)).toVar();return r.accumAlpha.addAssign((0,u.zb)(r.accumAlpha).mul(i).mul((0,u.zb)(n))),s}function a3(a,r){var n=(0,u.za)(a).toVar(),i=(0,u.za)(n.div((0,u.ga)(n.add(r.accumAlpha),(0,u.za)(1e-5),(0,u.za)(1)))).toVar();return r.accumAlpha.addAssign((0,u.zb)(r.accumAlpha).mul(n)),i}var a5=0,a4=1,a6=2,a8=3,a7=(0,u.I)(function(a){var r=a.a.toVar(),n=a.b.toVar(),i=a.alpha.toVar(),s=a.mode,o=(0,u.Cc)(1).toVar();return(0,u.J)(s.equal((0,u.Na)(0)),function(){o.assign((0,u.hb)(r,n,i))}).ElseIf(s.equal((0,u.Na)(1)),function(){o.assign((0,u.hb)(r,r.mul(n),i))}).ElseIf(s.equal((0,u.Na)(2)),function(){o.assign((0,u.hb)(r,(0,u.zb)((0,u.zb)(r).mul((0,u.zb)(n))),i))}).ElseIf(s.equal((0,u.Na)(3)),function(){var a=(0,u.ic)(r,(0,u.Cc)(.5)),s=(0,u.hb)((0,u.zb)((0,u.zb)(r).mul((0,u.zb)(n)).mul(2)),r.mul(n).mul(2),a);o.assign((0,u.hb)(r,s,i).clamp(0,1))}),o});function a9(a,r,n,i){return a7({a:a,b:r,alpha:n,mode:i})}var re=new Map,rt=new Set,ra=function(a,r,n){var i=r.alpha.mul(r.mask);return{color:(0,u.Cc)(1,0,0),calpha:a3(i,n)}};function rr(a,r){re.set(a,r)}function rn(a){var r=re.get(a);return void 0!==r?r:(rt.has(a)||(rt.add(a),console.warn('[spe] Material layer type "'.concat(a,'" is not available in this runtime build (no WebGPU port, or compiled out) — rendering flat red.'))),ra)}function ri(a){return re.has(a)}var rs=u.y.diffuseContribution,ro=u.y.specularColorBlended,rl=(0,u.I)(function(a){var r=u.ub.dot(a.lightDirection),n=(0,u.Bc)(r.mul(.5).add(.5),0),i=n.fwidth().mul(.5);return(0,u.hb)((0,u.Cc)(.7),(0,u.Cc)(1),(0,u.ec)((0,u.za)(.7).sub(i.x),(0,u.za)(.7).add(i.x),n.x))}),ru=(0,u.I)(function(a){var r=a.lightDirection.add(u.Lb).normalize(),n=u.ub.dot(r).clamp(),i=u.Lb.dot(r).clamp(),s=i.mul(-5.55473).sub(6.98316).mul(i).exp2(),o=u.fc.mul(s.oneMinus()).add(s),l=(0,u.za)(.25),c=u.bc.mul(.5).add(1).mul(1/Math.PI).mul(n.pow(u.bc));return o.mul(l).mul(c)});function rc(a){var r=u.Vc.aoRenderTarget.sample(u.Zb).rgb,n=u.Vc.aoEnabledUniform;return null!==a&&(n=n.mul((0,u._b)(a,(0,u.za)(1),(0,u.za)(0)))),(0,u.hb)((0,u.Cc)(1),r,n)}var rd=function(a){function r(){var a;return V(this,r),a=z(this,r,arguments),a.aoOcclusionGate=null,a}return P(r,a),M(r,[{key:"finish",value:function(a){for(var n,i=arguments.length,s=Array(i>1?i-1:0),o=1;o<i;o++)s[o-1]=arguments[o];null==(n=A(R(r.prototype),"finish",this))||n.call.apply(n,[this,a].concat(F(s)));var l=a.context,c=l.reflectedLight,d=l.outgoingLight,h=rc(this.aoOcclusionGate),m=c.directDiffuse.add(c.indirectDiffuse);d.subAssign(m.mul((0,u.zb)(h)))}}]),r}(function(a){function r(){return V(this,r),z(this,r,arguments)}return P(r,a),M(r,[{key:"direct",value:function(a){var r=a.lightDirection,n=a.lightColor,i=a.reflectedLight,s=rl({lightDirection:r}).mul(n);i.directDiffuse.addAssign(s.mul(u.sa.rgb.mul(1/Math.PI))),i.directSpecular.addAssign(s.mul(ru({lightDirection:r})))}}]),r}(u.j)),rh=function(a){function r(){var a;return V(this,r),a=z(this,r,arguments),a.envIrradianceActive=!1,a}return P(r,a),M(r,[{key:"direct",value:function(a,n){var i,s,o;if(!0===(null==(o=a.lightNode)||null==(s=o.light)||null==(i=s.userData)?void 0:i.splineDiffuseOnly)){if(this.envIrradianceActive)return;var l=u.ub.dot(a.lightDirection).clamp().mul(a.lightColor),c=u.y.BRDF_Lambert({diffuseColor:rs});return void a.reflectedLight.directDiffuse.addAssign(l.mul(c))}A(R(r.prototype),"direct",this).call(this,a,n)}}]),r}(u.m),rm=[{a:"y",b:"z",pole:"x"},{a:"z",b:"x",pole:"y"},{a:"x",b:"y",pole:"z"}];function rf(a,r){return"x"===r?a.x:"y"===r?a.y:a.z}function rv(a,r){return(0,u.qb)(a,(0,u.Cc)(r,1)).div(2).add(.5).xy}function rp(a){var r,n,i,s=null!=(r=a.getValue("projection"))?r:0,o=null!=(n=a.getValue("axis"))?n:0,l=o>=0&&o<=2?o:0,c=null!=(i=a.getValue("projectionAxis"))?i:-1,d=c>=0&&c<=2?c:1,h=a.get("mat"),m=a.getVec2("size");if(1===s){var f=0===l?aJ.zy:1===l?aJ.xz:aJ.xy,v=(0,u.Bc)(f.add(1).div(2)).toVar();return{uvs:[(0,u.Bc)(rv(h,v.mul(2).sub(1).div(m.mul(.5)))).toVar()],weights:null}}if(2===s){var p=(0,u.Cc)((0,u.xb)(aJ)).toVar(),g=rm[d],y=g.a,_=g.b,x=g.pole,b=(0,u.za)((0,u.T)(rf(p,y),rf(p,_)).div(6.283).add(.5)).toVar(),T=(0,u.za)((0,u.S)(rf(p,x)).div(3.1415).add(.5)).toVar(),w=(0,u.Bc)(b,T).toVar();return{uvs:[(0,u.Bc)(rv(h,w.mul(2).sub(1))).toVar()],weights:null}}if(3===s){var S=(0,u.Cc)((0,u.xb)(aJ)).toVar(),z=rm[d],V=z.a,C=z.b,k=z.pole,M=(0,u.za)((0,u.T)(rf(S,V),rf(S,C)).div(6.283).add(.5)).toVar(),A=(0,u.za)(rf(aJ,k).div(m.y.mul(.5))).toVar(),R=(0,u.za)(A.div(2).add(.5)).toVar(),P=(0,u.Bc)(M,R).toVar();return{uvs:[(0,u.Bc)(rv(h,P.mul(2).sub(1))).toVar()],weights:null}}if(4===s){for(var N=a.getFloat("blending"),B=(0,u.Cc)(aJ).toVar(),D=(0,u.Bc)(B.xy.add(1).div(2)).toVar(),E=(0,u.Bc)(B.zy.add(1).div(2)).toVar(),I=(0,u.Bc)(B.xz.add(1).div(2)).toVar(),F=0,L=[D,E,I];F<L.length;F++){var U=L[F];U.assign(rv(h,U.mul(2).sub(1).div(m.mul(.5))))}var O=(0,u.za)((0,u.zb)(N).mul(125).add(3)).toVar(),G=(0,u.Cc)(aX).toVar(),q=(0,u.Cc)((0,u.P)((0,u.xb)(G))).toVar();return q.assign((0,u.Nb)(q,(0,u.Cc)(O))),q.divAssign((0,u.ua)(q,(0,u.Cc)(1))),{uvs:[D,E,I],weights:q}}return{uvs:[(0,u.Bc)(rv(h,(0,u.yc)().mul(2).sub(1))).toVar()],weights:null}}var rg=function(a,r,n){var i,s,o,l,c,d,h=null!=(o=a.getValue("projection"))?o:0,m=null!=(l=a.getValue("axis"))?l:0,f=m>=0&&m<=2?m:0,v=null!=(c=a.getValue("side"))?c:0,p=a.get("texture"),g=a.getFloat("crop"),y=rp(a),_=y.uvs,x=y.weights,T=F(_),w=null;if(1===h){if(d=p.sample(_[0]),2!==v){var S=0===f?(0,u.Cc)(1,0,0):1===f?(0,u.Cc)(0,1,0):(0,u.Cc)(0,0,1),z=(0,u.ua)(aX,S);w=(0,u.ic)((0,u.za)(0),1===v?z.mul(-1):z)}}else if(2===h||3===h)d=function(a,r){if(a.value.minFilter===b.na&&a.value.magFilter===b.na)return a.sample(r);var n=(0,u.Bc)((0,u.pa)(r)).toVar(),i=(0,u.Bc)((0,u.qa)(r)).toVar();return n.x.subAssign((0,u.Aa)(n.x.add(.5))),i.x.subAssign((0,u.Aa)(i.x.add(.5))),a.sample(r).grad(n,i)}(p,_[0]);else if(4===h){var V=p.sample(_[0]),C=p.sample(_[1]),k=p.sample(_[2]);d=V.mul(x.z).add(C.mul(x.x)).add(k.mul(x.y))}else d=p.sample(_[0]);var M=a.has("loaded")?a.getFloat("loaded"):(0,u.za)(1),A=(0,u.Dc)((0,u.hb)((0,u.Dc)(0,0,0,1),d,M)).toVar(),R=(0,u.Cc)(A.rgb).toVar(),P=(0,u.za)(r.alpha.mul(A.a)).toVar();return null!==w&&P.mulAssign(w),(0,u.J)(g.greaterThan(.5),function(){var a=!0,r=!1,n=void 0;try{for(var i,s=T[Symbol.iterator]();!(a=(i=s.next()).done);a=!0){var o=i.value;(0,u.J)(o.x.lessThan(0).or(o.x.greaterThan(1)).or(o.y.lessThan(0)).or(o.y.greaterThan(1)),function(){P.assign(0)})}}catch(a){r=!0,n=a}finally{try{a||null==s.return||s.return()}finally{if(r)throw n}}}),P.mulAssign(r.mask),{color:R,calpha:(i=r.isMask,s=(0,u.za)(P.div((0,u.ga)(P.add(n.accumAlpha),(0,u.za)(1e-5),(0,u.za)(1)))).toVar(),n.accumAlpha.addAssign((0,u.zb)(n.accumAlpha).mul(P).mul((0,u.zb)(i))),s)}};function ry(a,r,n){var i=(0,u.Bc)(r).toVar(),s=(0,u.Bc)((0,u.pa)(i)).toVar(),o=(0,u.Bc)((0,u.qa)(i)).toVar(),l=function(r){return n.mul((0,u._a)(a.sample(r).rgb))},c=(0,u.za)(l(i)).toVar(),d=(0,u.za)(l(i.add(s)).sub(c)).toVar(),h=(0,u.za)(l(i.add(o)).sub(c)).toVar();return(0,u.Bc)(d,h)}function r_(a,r,n){var i=(0,u.Cc)((0,u.pa)(a)).toVar(),s=(0,u.Cc)((0,u.qa)(a)).toVar(),o=(0,u.Cc)((0,u.xb)(r)).toVar(),l=(0,u.Cc)((0,u.xb)((0,u.na)(s,o))).toVar(),c=(0,u.Cc)((0,u.xb)((0,u.na)(o,i))).toVar(),d=(0,u.za)((0,u.ua)(i,l).mul(u.ya)).toVar(),h=(0,u.Cc)((0,u.cc)(d).mul(n.x.mul(l).add(n.y.mul(c)))).toVar();return(0,u.xb)((0,u.P)(d).mul(o).sub(h))}function rx(a,r){var n,i=a.get("texture"),s=a.has("loaded")?a.getFloat("loaded"):(0,u.za)(1),o=function(a){var n=i.sample(a),s="luminance"===r?(0,u._a)(n.rgb):n[r];return(0,u.za)(s).toVar()},l=rp(a),c=l.uvs,d=l.weights;if(null!==d){var h=o(c[0]),m=o(c[1]),f=o(c[2]);n=h.mul(d.z).add(m.mul(d.x)).add(f.mul(d.y))}else n=o(c[0]);return(0,u.hb)((0,u.za)(1),n,s)}rr("texture",rg),rr("video",rg);var rb=u.yb,rT=u.K,rw=(0,u.I)(function(a){var r=a.c,n=(0,u.dc)((0,u.ua)(r,(0,u.Cc)(17,59.4,15))).mul(4096),i=(0,u.Ca)(n.mul(512)),s=n.mul(.125),o=(0,u.Ca)(s.mul(512)),l=s.mul(.125),c=(0,u.Ca)(l.mul(512));return(0,u.Cc)(o,c,i).sub(.5)}).setLayout({name:"spe_random3",type:"vec3",inputs:[{name:"c",type:"vec3"}]});function rS(a){return rw({c:a})}var rz=(0,u.I)(function(a){var r=a.p,n=(0,u.Aa)(r.add((0,u.ua)(r,(0,u.Cc)(.3333333)))).toVar(),i=r.sub(n).add((0,u.ua)(n,(0,u.Cc)(.1666667))).toVar(),s=(0,u.ic)((0,u.Cc)(0),i.sub(i.yzx)).toVar(),o=s.mul((0,u.zb)(s.zxy)).toVar(),l=(0,u.zb)(s.zxy.mul((0,u.zb)(s))).toVar(),c=i.sub(o).add(.1666667).toVar(),d=i.sub(l).add(.3333334).toVar(),h=i.sub(1).add(.5000001000000001).toVar(),m=(0,u.Dc)((0,u.ua)(i,i),(0,u.ua)(c,c),(0,u.ua)(d,d),(0,u.ua)(h,h)).toVar();m.assign((0,u.Dc)(.6).sub(m).max(0));var f=(0,u.Dc)((0,u.ua)(rS(n),i),(0,u.ua)(rS(n.add(o)),c),(0,u.ua)(rS(n.add(l)),d),(0,u.ua)(rS(n.add(1)),h)).toVar();return m.mulAssign(m),m.mulAssign(m),f.mulAssign(m),(0,u.ua)(f,(0,u.Dc)(52))}).setLayout({name:"spe_simplexFast",type:"float",inputs:[{name:"p",type:"vec3"}]});function rV(a){return rz({p:a})}var rC=(0,u.I)(function(a){var r=a.m,n=(0,u.$a)((0,u.Cc)(-.37,.36,.85),(0,u.Cc)(-.14,-.93,.34),(0,u.Cc)(.92,.01,.4)),i=(0,u.$a)((0,u.Cc)(-.55,-.39,.74),(0,u.Cc)(.33,-.91,-.24),(0,u.Cc)(.77,.12,.63)),s=(0,u.$a)((0,u.Cc)(-.71,.52,-.47),(0,u.Cc)(-.08,-.72,-.68),(0,u.Cc)(-.7,-.45,.56));return rV(r.mul(n)).mul(.5333333).add(rV(r.mul(2).mul(i)).mul(.2666667)).add(rV(r.mul(4).mul(s)).mul(.1333333)).add(rV(r.mul(8)).mul(.0666667))}).setLayout({name:"spe_simplexFractal",type:"float",inputs:[{name:"m",type:"vec3"}]}),rk=(0,u.I)(function(a){var r=a.x;return(0,u.ib)(r.mul(34).add(1).mul(r),289)}).setLayout({name:"spe_permute",type:"vec4",inputs:[{name:"x",type:"vec4"}]});function rM(a){return rk({x:a})}var rA=(0,u.I)(function(a){return(0,u.lc)(1.79284291400159,a.r.mul(.85373472095314))}).setLayout({name:"spe_taylorInvSqrt",type:"vec4",inputs:[{name:"r",type:"vec4"}]}),rR=(0,u.I)(function(a){var r=a.v,n=(0,u.Bc)(1/6,1/3),i=(0,u.Dc)(0,.5,1,2),s=(0,u.Aa)(r.add((0,u.ua)(r,n.yyy))).toVar(),o=r.sub(s).add((0,u.ua)(s,n.xxx)).toVar(),l=(0,u.ic)(o.yzx,o.xyz).toVar(),c=(0,u.zb)(l).toVar(),d=(0,u.gb)(l.xyz,c.zxy).toVar(),h=(0,u.eb)(l.xyz,c.zxy).toVar(),m=o.sub(d).add(n.xxx.mul(1)).toVar(),f=o.sub(h).add(n.xxx.mul(2)).toVar(),v=o.sub(1).add(n.xxx.mul(3)).toVar();s.assign((0,u.ib)(s,289));var p=rM(rM(rM(s.z.add((0,u.Dc)(0,d.z,h.z,1))).add(s.y).add((0,u.Dc)(0,d.y,h.y,1))).add(s.x).add((0,u.Dc)(0,d.x,h.x,1))).toVar(),g=i.wyz.mul(1/7).sub(i.xzx).toVar(),y=p.sub((0,u.Aa)(p.mul(g.z).mul(g.z)).mul(49)).toVar(),_=(0,u.Aa)(y.mul(g.z)).toVar(),x=(0,u.Aa)(y.sub(_.mul(7))).toVar(),b=_.mul(g.x).add(g.yyyy).toVar(),T=x.mul(g.x).add(g.yyyy).toVar(),w=(0,u.lc)(1,(0,u.P)(b)).sub((0,u.P)(T)).toVar(),S=(0,u.Dc)(b.xy,T.xy).toVar(),z=(0,u.Dc)(b.zw,T.zw).toVar(),V=(0,u.Aa)(S).mul(2).add(1).toVar(),C=(0,u.Aa)(z).mul(2).add(1).toVar(),k=(0,u.ic)(w,(0,u.Dc)(0)).negate().toVar(),M=S.xzyw.add(V.xzyw.mul(k.xxyy)).toVar(),A=z.xzyw.add(C.xzyw.mul(k.zzww)).toVar(),R=(0,u.Cc)(M.xy,w.x).toVar(),P=(0,u.Cc)(M.zw,w.y).toVar(),N=(0,u.Cc)(A.xy,w.z).toVar(),B=(0,u.Cc)(A.zw,w.w).toVar(),D=rA({r:(0,u.Dc)((0,u.ua)(R,R),(0,u.ua)(P,P),(0,u.ua)(N,N),(0,u.ua)(B,B))}).toVar();R.mulAssign(D.x),P.mulAssign(D.y),N.mulAssign(D.z),B.mulAssign(D.w);var E=(0,u.eb)((0,u.lc)(.6,(0,u.Dc)((0,u.ua)(o,o),(0,u.ua)(m,m),(0,u.ua)(f,f),(0,u.ua)(v,v))),0).toVar();return E.mulAssign(E),(0,u.ua)(E.mul(E),(0,u.Dc)((0,u.ua)(R,o),(0,u.ua)(P,m),(0,u.ua)(N,f),(0,u.ua)(B,v))).mul(42)}).setLayout({name:"spe_simplexAshima",type:"float",inputs:[{name:"v",type:"vec3"}]});function rP(a){return rR({v:a})}var rN=(0,u.I)(function(a){var r=a.x;return r.sub((0,u.Aa)(r.mul(1/289)).mul(289))}).setLayout({name:"spe_mod289",type:"vec4",inputs:[{name:"x",type:"vec4"}]}),rB=(0,u.I)(function(a){var r=a.x;return rN({x:r.mul(34).add(1).mul(r)})}).setLayout({name:"spe_perm",type:"vec4",inputs:[{name:"x",type:"vec4"}]});function rD(a){return rB({x:a})}var rE=(0,u.I)(function(a){var r=a.p,n=(0,u.Aa)(r).toVar(),i=r.sub(n).toVar();i.assign(i.mul(i).mul((0,u.lc)(3,i.mul(2))));var s=n.xxyy.add((0,u.Dc)(0,1,0,1)).toVar(),o=rD(s.xyxy).toVar(),l=rD(o.xyxy.add(s.zzww)).toVar().add(n.zzzz).toVar(),c=rD(l).toVar(),d=rD(l.add(1)).toVar(),h=(0,u.Ca)(c.mul(1/41)).toVar(),m=(0,u.Ca)(d.mul(1/41)).toVar().mul(i.z).add(h.mul((0,u.zb)(i.z))).toVar(),f=m.yw.mul(i.x).add(m.xz.mul((0,u.zb)(i.x))).toVar();return f.y.mul(i.y).add(f.x.mul((0,u.zb)(i.y)))}).setLayout({name:"spe_valueNoise",type:"float",inputs:[{name:"p",type:"vec3"}]}),rI=(0,u.I)(function(a){var r=(0,u.Cc)(a.x).toVar(),n=(0,u.za)(0).toVar(),i=(0,u.za)(.5).toVar(),s=(0,u.Cc)(100).toVar();return(0,u.K)(5,function(){n.addAssign(i.mul(rE({p:r}))),r.assign(r.mul(2).add(s)),i.mulAssign(.5)}),n}).setLayout({name:"spe_fbm",type:"float",inputs:[{name:"x",type:"vec3"}]}),rF=(0,u.I)(function(a){var r=a.t;return r.mul(r).mul(r).mul(r.mul(r.mul(6).sub(15)).add(10))}).setLayout({name:"spe_fade",type:"vec3",inputs:[{name:"t",type:"vec3"}]}),rL=(0,u.I)(function(a){var r=a.P,n=(0,u.Aa)(r).toVar(),i=n.add((0,u.Cc)(1)).toVar();n.assign((0,u.ib)(n,289)),i.assign((0,u.ib)(i,289));var s=(0,u.Ca)(r).toVar(),o=s.sub((0,u.Cc)(1)).toVar(),l=(0,u.Dc)(n.x,i.x,n.x,i.x).toVar(),c=(0,u.Dc)(n.yy,i.yy).toVar(),d=(0,u.Dc)(n.zzzz).toVar(),h=(0,u.Dc)(i.zzzz).toVar(),m=rM(rM(l).add(c)).toVar(),f=rM(m.add(d)).toVar(),v=rM(m.add(h)).toVar(),p=f.div(7).toVar(),g=(0,u.Ca)((0,u.Aa)(p).div(7)).sub(.5).toVar();p.assign((0,u.Ca)(p));var y=(0,u.Dc)(.5).sub((0,u.P)(p)).sub((0,u.P)(g)).toVar(),_=(0,u.ic)(y,(0,u.Dc)(0)).toVar();p.subAssign(_.mul((0,u.ic)(0,p).sub(.5))),g.subAssign(_.mul((0,u.ic)(0,g).sub(.5)));var x=v.div(7).toVar(),b=(0,u.Ca)((0,u.Aa)(x).div(7)).sub(.5).toVar();x.assign((0,u.Ca)(x));var T=(0,u.Dc)(.5).sub((0,u.P)(x)).sub((0,u.P)(b)).toVar(),w=(0,u.ic)(T,(0,u.Dc)(0)).toVar();x.subAssign(w.mul((0,u.ic)(0,x).sub(.5))),b.subAssign(w.mul((0,u.ic)(0,b).sub(.5)));var S=(0,u.Cc)(p.x,g.x,y.x).toVar(),z=(0,u.Cc)(p.y,g.y,y.y).toVar(),V=(0,u.Cc)(p.z,g.z,y.z).toVar(),C=(0,u.Cc)(p.w,g.w,y.w).toVar(),k=(0,u.Cc)(x.x,b.x,T.x).toVar(),M=(0,u.Cc)(x.y,b.y,T.y).toVar(),A=(0,u.Cc)(x.z,b.z,T.z).toVar(),R=(0,u.Cc)(x.w,b.w,T.w).toVar(),P=rA({r:(0,u.Dc)((0,u.ua)(S,S),(0,u.ua)(V,V),(0,u.ua)(z,z),(0,u.ua)(C,C))}).toVar();S.mulAssign(P.x),V.mulAssign(P.y),z.mulAssign(P.z),C.mulAssign(P.w);var N=rA({r:(0,u.Dc)((0,u.ua)(k,k),(0,u.ua)(A,A),(0,u.ua)(M,M),(0,u.ua)(R,R))}).toVar();k.mulAssign(N.x),A.mulAssign(N.y),M.mulAssign(N.z),R.mulAssign(N.w);var B=(0,u.ua)(S,s).toVar(),D=(0,u.ua)(z,(0,u.Cc)(o.x,s.yz)).toVar(),E=(0,u.ua)(V,(0,u.Cc)(s.x,o.y,s.z)).toVar(),I=(0,u.ua)(C,(0,u.Cc)(o.xy,s.z)).toVar(),F=(0,u.ua)(k,(0,u.Cc)(s.xy,o.z)).toVar(),L=(0,u.ua)(M,(0,u.Cc)(o.x,s.y,o.z)).toVar(),U=(0,u.ua)(A,(0,u.Cc)(s.x,o.yz)).toVar(),O=(0,u.ua)(R,o).toVar(),G=rF({t:s}).toVar(),q=(0,u.hb)((0,u.Dc)(B,D,E,I),(0,u.Dc)(F,L,U,O),G.z).toVar(),W=(0,u.hb)(q.xy,q.zw,G.y).toVar();return(0,u.hb)(W.x,W.y,G.x).toVar().mul(2.2)}).setLayout({name:"spe_perlin",type:"float",inputs:[{name:"P",type:"vec3"}]});function rU(a){return rL({P:a})}var rO=(0,u.I)(function(a){var r=(0,u.Ca)(a.p3.mul(.1031)).toVar();return r.addAssign((0,u.ua)(r,r.yzx.add(33.33))),(0,u.Ca)(r.x.add(r.y).mul(r.z))}).setLayout({name:"spe_hashwithoutsine13",type:"float",inputs:[{name:"p3",type:"vec3"}]}),rG=(0,u.I)(function(a){var r=(0,u.Ca)(a.p3.mul((0,u.Cc)(.1031,.103,.0973))).toVar();return r.addAssign((0,u.ua)(r,r.yxz.add(33.33))),(0,u.Ca)(r.xxy.add(r.yxx).mul(r.zyx))}).setLayout({name:"spe_hashwithoutsine33",type:"vec3",inputs:[{name:"p3",type:"vec3"}]});function rq(a){return rG({p3:a})}var rW=(0,u.I)(function(a){var r=a.a,n=a.b,i=a.k,s=(0,u.ec)(0,1,n.sub(r).mul(.5).div(i).add(.5)).toVar(),o=i.mul(s).mul((0,u.zb)(s)).toVar();return(0,u.hb)(n,r,s).sub(o)}).setLayout({name:"spe_smin",type:"float",inputs:[{name:"a",type:"float"},{name:"b",type:"float"},{name:"k",type:"float"}]});function rH(a,r,n){return rW({a:a,b:r,k:n})}var rj=(0,u.I)(function(a){var r=a.a,n=a.b,i=a.k,s=(0,u.ec)(1,0,r.sub(n).mul(.5).div(i).add(.5)).toVar(),o=i.mul(s).mul((0,u.zb)(s)).toVar();return(0,u.hb)(r,n,s).add(o)}).setLayout({name:"spe_smax",type:"float",inputs:[{name:"a",type:"float"},{name:"b",type:"float"},{name:"k",type:"float"}]});function rK(a,r,n){return rj({a:a,b:r,k:n})}var rJ=(0,u.I)(function(a){var r=a.value,n=a.input_min,i=a.input_max,s=a.output_min,o=a.output_max,l=i.sub(n).toVar(),u=o.sub(s).toVar(),c=r.sub(n).div(l).toVar();return s.add(c.mul(u))}).setLayout({name:"spe_remap",type:"float",inputs:[{name:"value",type:"float"},{name:"input_min",type:"float"},{name:"input_max",type:"float"},{name:"output_min",type:"float"},{name:"output_max",type:"float"}]});function rX(a,r,n,i,s){return rJ({value:a,input_min:r,input_max:n,output_min:i,output_max:s})}var rQ=(0,u.I)(function(a){var r=a.x,n=a.style,i=a.smoothness,s=a.seed,o=a.quality,l=(0,u.Ua)((0,u.Aa)(r)).toVar(),c=(0,u.Ca)(r).toVar(),d=(0,u.za)(8).toVar(),h=(0,u.za)(8).toVar(),m=(0,u.za)(8).toVar(),f=(0,u.za)(8).toVar(),v=(0,u.za)(8).toVar(),p=(0,u.za)(8).toVar(),g=(0,u.Ua)(0).toVar(),y=(0,u.Cc)(0).toVar(),_=(0,u.Na)(o).toVar(),x=function(){return{start:_.negate(),end:_,condition:"<=",type:"int"}};rT(x(),x(),x(),function(a){var r=a.i,n=a.j,o=a.k,m=(0,u.Ua)(r,n,o).toVar(),v=(0,u.Cc)(m).add(rq((0,u.Cc)(l.add(m)).add(s))).sub(c).toVar(),p=(0,u.Va)(v).toVar();d.assign(rH(p,d,i)),(0,u.J)(p.lessThan(h),function(){f.assign(h),h.assign(p),g.assign((0,u.Ua)(r,n,o)),y.assign(v)}).ElseIf(p.lessThan(f),function(){f.assign(p)})}),(0,u.J)(n.notEqual((0,u.Na)(0)).and(n.notEqual((0,u.Na)(5))).and(n.notEqual((0,u.Na)(7))),function(){rT(x(),x(),x(),function(a){var r=a.i,n=a.j,o=a.k,d=g.add((0,u.Ua)(r,n,o)).toVar(),h=(0,u.Cc)(d).add(rq((0,u.Cc)(l.add(d)).add(s))).sub(c).toVar(),f=(0,u.ua)(y.add(h).mul(.5),h.sub(y)).toVar(),_=(0,u.ua)(y.add(h).mul(.5),(0,u.xb)(h.sub(y))).toVar();v.assign(rH(f,v,i)),p.assign((0,u.gb)(p,_));var x=(0,u.Ua)(r,n,o).toVar();(0,u.J)((0,u.R)(rb(x,g)),function(){var a=(0,u.Cc)(x).add(rq((0,u.Cc)(l.add(x)).add(s))).sub(c).toVar(),r=(0,u.Va)(a).toVar();m.assign(rH(r,m,i))})})});var b=(0,u.za)(0).toVar();return(0,u.J)(n.equal((0,u.Na)(0)),function(){b.assign(d)}).ElseIf(n.equal((0,u.Na)(1)),function(){b.assign(m)}).ElseIf(n.equal((0,u.Na)(2)),function(){b.assign(m.sub(d))}).ElseIf(n.equal((0,u.Na)(3)),function(){var a=(0,u.za)(3).toVar(),r=(0,u.eb)(a.sub((0,u.P)(h.sub(f))),0).div(a).toVar();b.assign((0,u.gb)(h,f).sub(r.mul(r).mul(a).mul(1/4)))}).ElseIf(n.equal((0,u.Na)(4)),function(){b.assign((0,u.wa)(v.mul(5)))}).ElseIf(n.equal((0,u.Na)(5)),function(){b.assign((0,u.Nb)(d,3))}).ElseIf(n.equal((0,u.Na)(6)),function(){var a=i.mul(.25).add(.0125).toVar(),r=(0,u.Nb)(i,3).mul(.25).add(.0125).toVar();b.assign((0,u.ec)(a.sub(a.mul(r)),a.add(a.mul(r)),p))}).ElseIf(n.equal((0,u.Na)(7)),function(){b.assign(rO({p3:(0,u.Cc)(l.add(g)).add(s)}))}),b}).setLayout({name:"spe_voronoi",type:"float",inputs:[{name:"x",type:"vec3"},{name:"style",type:"int"},{name:"smoothness",type:"float"},{name:"seed",type:"float"},{name:"quality",type:"int"}]});function rY(a,r,n,i,s){return rQ({x:a,style:r,smoothness:n,seed:i,quality:s})}var rZ=[rV,function(a){return rC({m:a})},rP,function(a){return rI({x:a})},rU],r$=function(a){return a},r0=(0,u.I)(function(a){var r=a.v;return(0,u.xb)((0,u._b)((0,u.P)(r.x).greaterThan((0,u.P)(r.z)),(0,u.Cc)(r.y.negate(),r.x,0),(0,u.Cc)(0,r.z.negate(),r.y)))}).setLayout({name:"spe_displaceOrthogonal",type:"vec3",inputs:[{name:"v",type:"vec3"}]});function r1(a,r,n,i){return a.add(r).mul(n).mul(.001).add(1e-4).add(i.mul(.1))}var r2=new Map,r3=(0,u.I)(function(a){var r=a.n,n=a.scale,i=a.intensity,s=a.offset,o=a.movement,l=a.smoothness,c=a.p,d=(0,u.za)(rY(r1(c,s,n,o),a.voronoiStyle,l,a.seed,a.quality)).toVar();return d.assign(rX(d,a.lowCut,a.highCut,(0,u.za)(0),(0,u.za)(1))),d.assign(rK(d,(0,u.za)(0),l.mul(.25))),d.assign(rH(d,(0,u.za)(1),l.mul(.25))),c.add(r.mul(d).mul(i))}).setLayout({name:"spe_displaceVoronoi",type:"vec3",inputs:[{name:"p",type:"vec3"},{name:"n",type:"vec3"},{name:"scale",type:"float"},{name:"intensity",type:"float"},{name:"offset",type:"vec3"},{name:"movement",type:"float"},{name:"voronoiStyle",type:"int"},{name:"smoothness",type:"float"},{name:"seed",type:"float"},{name:"highCut",type:"float"},{name:"lowCut",type:"float"},{name:"quality",type:"int"}]});rr("color",function(a,r,n){var i=r.alpha.mul(r.mask);return{color:a.getColor("color"),calpha:a3(i,n)}});var r5=function(a){return a};rr("depth",function(a,r,n){var i,s,o,l,c,d=a.get("colors"),h=a.get("steps"),m=(null!=(i=a.getValue("colors"))?i:d.array).length,f=!0===a.getValue("smooth"),v=(null!=(s=a.getValue("isVector"))?s:1)>.5,p=0===(null!=(o=a.getValue("gradientType"))?o:0),g=(null!=(l=a.getValue("isWorldSpace"))?l:0)>.5,y=a.getFloat("near"),_=a.getFloat("far");if(v){var x=a.getVec3("origin"),b=g?u.Mb:aJ;if(p){var T=(0,u.xb)(a.getVec3("direction"));c=(0,u.ua)(T,b.sub(x))}else c=(0,u.Va)(b.sub(x))}else c=(0,u.Va)(u.Mb.sub(u.ba));for(var w=c.sub(y).div(_.sub(y)).toVar(),S=(0,u.Dc)(d.element(0)).toVar(),z=1;z<m;z++){var V=r5(h.element(z-1)),C=r5(h.element(z)),k=(0,u.ga)(w.sub(V).div(C.sub(V)),(0,u.za)(0),(0,u.za)(1)),M=f?(0,u.ec)((0,u.za)(0),(0,u.za)(1),k):k;S.assign((0,u.hb)(S,d.element(z),M))}var A=r.alpha.mul(S.a).mul(r.mask);return{color:S.rgb,calpha:a2(A,n,r.isMask)}}),rr("cavity",function(a,r,n){var i=(0,u.ga)(a.getFloat("ridge"),0,2),s=(0,u.ga)(a.getFloat("valley"),0,2),o=u.Vc.normalViewRenderTarget,l=u.Vc.resolution,c=(0,u.Y)("randomColor","vec3").x.toVar(),d=u.Zb.toVar(),h=(0,u.Bc)((0,u.za)(1).div(l.x),(0,u.za)(1).div(l.y)).toVar(),m=function(a,r){return o.sample(d.add((0,u.Bc)(a,r)).toVar()).toVar()},f=m((0,u.za)(0),h.y.negate()),v=m((0,u.za)(0),h.y),p=m(h.x.negate(),(0,u.za)(0)),g=m(h.x,(0,u.za)(0)),y=function(a){return a.a.equal(c).and((0,u.ua)(a.xyz,a.xyz).greaterThan(.5))},_=y(f).and(y(v)).and(y(p)).and(y(g)),x=f.y.sub(v.y).add(g.x.sub(p.x)).toVar(),b=(0,u.za)(.5).div((0,u.eb)(i.mul(i),(0,u.za)(1e-4))).toVar(),T=(0,u.za)(.7).div((0,u.eb)(s.mul(s),(0,u.za)(1e-4))).toVar(),w=function(a,r){return(0,u._b)(a.lessThan((0,u.za)(.5).div(r)),a.mul((0,u.za)(1).sub(a.mul(r))),(0,u.za)(.25).div(r))},S=(0,u._b)(_,(0,u._b)(x.greaterThan(0),w(x,b).mul(2),w(x.negate(),T).mul(-2)),(0,u.za)(0)).toVar(),z=(0,u._b)(S.abs().lessThan(.001),(0,u.za)(0),S).toVar(),V=(0,u.Cc)((0,u.ga)(z.mul(.5).add(.5),0,1)),C=(0,u._b)(z.notEqual(0),(0,u.za)(1),(0,u.za)(0)),k=(0,u._b)(r.isMask,(0,u.za)(1),C);return{color:V,calpha:a2(r.alpha.mul(r.mask).mul(k),n,r.isMask)}});var r4=(0,u.I)(function(a){var r,n,i=null!=(r=null==(n=a.material)?void 0:n.vertexObjectNormal)?r:null;return i?(0,u.tc)(i).transformNormalByInverseViewMatrix(u.ea).normalize():u.wb}).once()().toVar("speVertexNormalWorld");rr("dust",function(a,r,n){var i=a.getFloat("coverage"),s=a.getFloat("softness"),o=a.getFloat("noiseStrength"),l=a.getFloat("noiseScale"),c=(0,u.ua)((0,u.xb)(r4),(0,u.Cc)(0,1,0)),d=(0,u.za)(0).toVar();(0,u.J)(o.notEqual(0),function(){var a=rV(aJ.div(l).toVar().add((0,u.Cc)(1.7,9.2,1)));d.assign(a.mul(o))});var h=(0,u.eb)(s,1e-4).toVar(),m=(0,u.hb)(h.add(1),h.add(1).negate(),(0,u.ga)(i,0,1)).toVar(),f=(0,u.ec)(m.sub(h),m.add(h),c.add(d)).mul(r.alpha).mul(r.mask);return{color:a.getColor("color"),calpha:a2(f,n,r.isMask)}});var r6=function(a,r){return a.element(r)};rr("fresnel",function(a,r,n){var i=r6(u.ca,2).w.equal(-1),s=(0,u.Cc)(r6(u.ea,0).z,r6(u.ea,1).z,r6(u.ea,2).z).negate(),o=u.Mb.sub(u.ba),l=(0,u._b)(i,o,s),c=a.getFloat("bias").add(a.getFloat("scale").mul((0,u.Nb)((0,u.P)(a.getFloat("factor").add((0,u.ua)((0,u.xb)(l),(0,u.xb)(r4)))),a.getFloat("intensity")))),d=(0,u.ga)(c,0,1).mul(r.alpha).mul(r.mask);return{color:a.getColor("color"),calpha:a2(d,n,r.isMask)}});var r8=function(a){return a};rr("gradient",function(a,r,n){var i,s,o=a.get("colors"),l=a.get("steps"),c=Math.min(10,(null!=(i=a.getValue("colors"))?i:o.array).length,(null!=(s=a.getValue("steps"))?s:l.array).length),d=a.getInt("gradientType"),h=a.getBool("smooth"),m=a.getVec2("offset"),f=a.getVec2("morph"),v=a.getFloat("angle"),p=(0,u.yc)(),g=(0,u.Dc)(o.element(0)).toVar(),y=(0,u.Bc)(f.div(p)).toVar(),_=(0,u.Bc)((0,u.za)(.5).add(y.x),y.y).toVar(),x=(0,u.Bc)((0,u.ma)(v).mul(_.x).sub((0,u.dc)(v).mul(_.y)),(0,u.dc)(v).mul(_.x).add((0,u.ma)(v).mul(_.y))).toVar(),b=(0,u.Bc)(p.sub(.5).add(m).div(2).add(x.div(2))),T=(0,u.za)((0,u.ua)(b,x).div((0,u.ua)(x,x))).toVar();(0,u.J)(d.equal((0,u.Na)(1)),function(){T.assign((0,u.ta)(p.add(f).mul(3),p.add(m).add(1)).add(v))}).ElseIf(d.equal((0,u.Na)(2)),function(){var a=(0,u.T)(p.x.add(f.x).sub(.5).add(m.x),p.y.add(f.y).sub(.5).add(m.y)).mul(-1);T.assign((0,u.Ca)(v.div(u.M).div(-2).add(a.div(u.M).mul(.5))))});for(var w=1;w<c;w++){var S=r8(l.element(w-1)),z=r8(l.element(w)),V=(0,u.ga)(T.sub(S).div(z.sub(S)),(0,u.za)(0),(0,u.za)(1)),C=r8((0,u._b)(h,(0,u.ec)((0,u.za)(0),(0,u.za)(1),V),V));g.assign((0,u.hb)(g,o.element(w),C))}var k=r.alpha.mul(g.a).mul(r.mask);return{color:g.rgb,calpha:a2(k,n,r.isMask)}}),rr("matcap",function(a,r,n){var i=a.getFloat("rotation"),s=(0,u.xb)(u.Kb.negate()),o=(0,u.xb)((0,u.Cc)(s.z,0,s.x.negate())),l=(0,u.na)(s,o),c=(0,u.Bc)((0,u.ua)(o,u.ub),(0,u.ua)(l,u.ub)),d=(0,u.ma)(i),h=(0,u.dc)(i),m=(0,u.Bc)(d.mul(c.x).sub(h.mul(c.y)),h.mul(c.x).add(d.mul(c.y))).mul(.495).add(.5),f=a.get("texture").sample(m),v=r.alpha.mul(r.mask);return{color:f.rgb,calpha:a2(v,n,r.isMask)}}),rr("noise",function(a,r,n){try{if("0"===new URLSearchParams(window.location.search).get("dbgnoise"))return{color:(0,u.Cc)(0),calpha:(0,u.za)(0)}}catch(a){}var i=Math.trunc(null!=(v=a.getValue("noiseType"))?v:0),s=(0,u.za)((0,u.eb)((0,u.P)(a.getFloat("scale")),.001)).toVar(),o=(0,u.Cc)(aJ.div(a.getVec3("size"))).toVar();o.divAssign(s);var l=a.getFloat("move"),c=a.getVec4("colorA"),d=a.getVec4("colorC"),h=(0,u.Dc)(0).toVar();if(5===i){var m=a.getFloat("smoothness"),f=(0,u.za)(rY(o.add(l),a.getInt("voronoiStyle"),m,a.getFloat("seed"),a.getInt("quality"))).toVar();f.assign(rX(f,a.getFloat("lowCut"),a.getFloat("highCut"),(0,u.za)(0),(0,u.za)(1))),f.assign(rK(f,(0,u.za)(0),m.mul(.25))),f.assign(rH(f,(0,u.za)(1),m.mul(.25))),h.assign((0,u.hb)(c,d,f))}else{var v,p,g=null!=(p=rZ[i])?p:rZ[0],y=a.getVec4("colorB"),_=a.getVec4("colorD"),x=(0,u.Cc)(a.getVec2("distortion"),1).toVar(),b=(0,u.Cc)(a.getVec2("fA"),1).toVar(),T=(0,u.Cc)(a.getVec2("fB"),1).toVar(),w=(0,u.Cc)(g(o),g(o.add((0,u.Cc)(1))),g(o.add((0,u.Cc)(1)))).toVar(),S=(0,u.Cc)(g(o.add(x.mul(w)).add(b).add(l)),g(o.add(x.mul(w)).add(T).add(l)),g(o.mul(w))).toVar(),z=(0,u.za)(g(o.add(S))).toVar();h.assign((0,u.hb)(c,y,(0,u.ga)(z.mul(z).mul(4),(0,u.za)(0),(0,u.za)(1)))),h.assign((0,u.hb)(h,d,(0,u.ga)((0,u.Va)(w),(0,u.za)(0),(0,u.za)(1)))),h.assign((0,u.hb)(h,_,(0,u.ga)((0,u.Va)(S.x),(0,u.za)(0),(0,u.za)(1))))}var V=r.alpha.mul(h.a).mul(r.mask);return{color:(0,u.ga)(h,(0,u.za)(0),(0,u.za)(1)).rgb,calpha:a2(V,n,r.isMask)}}),rr("normal",function(a,r,n){return{color:(0,u.Cb)((0,u.xb)(u.ub)).mul((0,u.ic)((0,u.Cc)(.5),a.getVec3("cnormal"))),calpha:a3(r.alpha.mul(r.mask),n)}});var r7=2*Math.PI,r9=Math.PI/180,ne=(0,u.I)(function(a){var r=(0,u.Ca)(a.p.xyx.mul(.1031)).toVar();return r.addAssign((0,u.ua)(r,r.yzx.add(33.33))),(0,u.Ca)(r.x.add(r.y).mul(r.z))}).setLayout({name:"spe_pattern_hash12",type:"float",inputs:[{name:"p",type:"vec2"}]}),nt=(0,u.I)(function(a){var r=a.uv,n=(0,u.za)(a.a.mul(r9)).toVar(),i=(0,u.Bc)((0,u.ma)(n).mul(r.x.sub(.5)).add((0,u.dc)(n).mul(r.y.sub(.5))).add(.5),(0,u.ma)(n).mul(r.y.sub(.5)).sub((0,u.dc)(n).mul(r.x.sub(.5))).add(.5));return(0,u.Ca)(i)}).setLayout({name:"spe_pattern_rotate_uv",type:"vec2",inputs:[{name:"uv",type:"vec2"},{name:"a",type:"float"}]});function na(a,r){return nt({uv:a,a:r})}var nr=(0,u.I)(function(a){var r=(0,u.Bc)(a.uv.mul(a.frequency)).toVar(),n=(0,u.Bc)((0,u.Aa)(r)).toVar(),i=(0,u.za)((0,u.ib)(n.y,2)).toVar();r.x.addAssign(i.mul(a.zigzag));var s=(0,u.Bc)((0,u.Ca)(r)).toVar();s.assign(s.mul(2).sub(1)),n.assign((0,u.Aa)(r));var o=(0,u.za)(ne({p:n}).mul(5).add(1)).toVar(),l=(0,u.za)((0,u.hb)((0,u.za)(1),o,a.variation)).toVar();return s.mulAssign(l),s}).setLayout({name:"spe_pattern_tile_and_center",type:"vec2",inputs:[{name:"uv",type:"vec2"},{name:"frequency",type:"vec2"},{name:"variation",type:"float"},{name:"zigzag",type:"float"},{name:"rotation",type:"float"}]});function nn(a,r,n,i,s){return nr({uv:a,frequency:r,variation:n,zigzag:i,rotation:s})}var ni=(0,u.I)(function(a){var r=(0,u.Bc)(nn(a.uv,a.frequency,a.variation,a.zigzag,a.rotation)).toVar();return(0,u.ec)(a.smoothness.negate(),a.smoothness,(0,u.Va)(r).sub(a.size))}).setLayout({name:"spe_pattern_circle",type:"float",inputs:[{name:"uv",type:"vec2"},{name:"frequency",type:"vec2"},{name:"size",type:"float"},{name:"variation",type:"float"},{name:"smoothness",type:"float"},{name:"zigzag",type:"float"},{name:"rotation",type:"float"}]}),ns=(0,u.I)(function(a){var r=(0,u.Bc)(nn(a.uv,a.frequency,a.variation,a.zigzag,a.rotation)).toVar(),n=(0,u.za)((0,u.Va)(r)).toVar(),i=(0,u.za)((0,u.ec)(a.smoothness.negate(),a.smoothness,n.sub(a.size))).toVar(),s=(0,u.za)((0,u.ec)(a.smoothness.negate(),a.smoothness,n.sub(a.size.mul(.5)))).toVar();return i.add((0,u.zb)(s))}).setLayout({name:"spe_pattern_ring",type:"float",inputs:[{name:"uv",type:"vec2"},{name:"frequency",type:"vec2"},{name:"size",type:"float"},{name:"variation",type:"float"},{name:"smoothness",type:"float"},{name:"zigzag",type:"float"},{name:"rotation",type:"float"}]}),no=(0,u.I)(function(a){var r=(0,u.za)((0,u.za)(r7).div((0,u.za)(a.n))).toVar(),n=(0,u.za)(a.r.mul((0,u.nc)(r.mul(.5)))).toVar(),i=(0,u.Bc)(a.p.yx.negate()).toVar(),s=(0,u.za)(r.mul((0,u.Aa)((0,u.T)(i.y,i.x).add(r.mul(.5)).div(r)))).toVar(),o=(0,u.Bc)((0,u.ma)(s),(0,u.dc)(s)).toVar();return i.assign((0,u.Bc)(o.x.mul(i.x).add(o.y.mul(i.y)),o.y.negate().mul(i.x).add(o.x.mul(i.y)))),(0,u.Va)(i.sub((0,u.Bc)(a.r,(0,u.ga)(i.y,n.negate(),n)))).mul((0,u.cc)(i.x.sub(a.r)))}).setLayout({name:"spe_pattern_sdf_ngon",type:"float",inputs:[{name:"p",type:"vec2"},{name:"r",type:"float"},{name:"n",type:"int"}]}),nl=(0,u.I)(function(a){var r=(0,u.Bc)(nn(a.uv,a.frequency,a.variation,a.zigzag,a.rotation)).toVar();return(0,u.ec)(a.smoothness.negate(),a.smoothness,no({p:r,r:a.size,n:a.sides}))}).setLayout({name:"spe_pattern_polygon",type:"float",inputs:[{name:"uv",type:"vec2"},{name:"frequency",type:"vec2"},{name:"size",type:"float"},{name:"variation",type:"float"},{name:"smoothness",type:"float"},{name:"zigzag",type:"float"},{name:"rotation",type:"float"},{name:"sides",type:"int"}]}),nu=(0,u.I)(function(a){var r=a.b,n=(0,u.Bc)((0,u.P)(a.p)).toVar();n.assign((0,u._b)(n.y.greaterThan(n.x),n.yx,n.xy));var i=(0,u.Bc)(n.sub(r)).toVar(),s=(0,u.za)((0,u.eb)(i.y,i.x)).toVar(),o=(0,u.Bc)((0,u._b)(s.greaterThan(0),i,(0,u.Bc)(r.y.sub(n.x),s.negate()))).toVar();return(0,u.cc)(s).mul((0,u.Va)((0,u.eb)(o,(0,u.Bc)(0)))).add(a.r)}).setLayout({name:"spe_pattern_sdf_cross",type:"float",inputs:[{name:"p",type:"vec2"},{name:"b",type:"vec2"},{name:"r",type:"float"}]}),nc=(0,u.I)(function(a){var r=(0,u.Bc)(nn(a.uv,a.frequency,a.variation,a.zigzag,a.rotation)).toVar();return(0,u.ec)(a.smoothness.negate(),a.smoothness,nu({p:r,b:(0,u.Bc)(a.size,a.size.mul(.25)),r:a.smoothness}))}).setLayout({name:"spe_pattern_xcross",type:"float",inputs:[{name:"uv",type:"vec2"},{name:"frequency",type:"vec2"},{name:"size",type:"float"},{name:"variation",type:"float"},{name:"smoothness",type:"float"},{name:"zigzag",type:"float"},{name:"rotation",type:"float"}]}),nd=(0,u.I)(function(a){var r=a.b,n=(0,u.Bc)((0,u.P)(a.p)).toVar(),i=(0,u.Bc)(r.sub(n.mul(2))).toVar(),s=i.x.mul(r.x).sub(i.y.mul(r.y)),o=(0,u.za)((0,u.ga)(s.div((0,u.ua)(r,r)),(0,u.za)(-1),(0,u.za)(1))).toVar();return(0,u.za)((0,u.Va)(n.sub(r.mul(.5).mul((0,u.Bc)((0,u.zb)(o),o.add(1)))))).toVar().mul((0,u.cc)(n.x.mul(r.y).add(n.y.mul(r.x)).sub(r.x.mul(r.y))))}).setLayout({name:"spe_pattern_sdf_diamond",type:"float",inputs:[{name:"p",type:"vec2"},{name:"b",type:"vec2"}]}),nh=(0,u.I)(function(a){var r=(0,u.Bc)(nn(a.uv,a.frequency,a.variation,a.zigzag,a.rotation)).toVar();return(0,u.ec)(a.smoothness.negate(),a.smoothness,nd({p:r,b:(0,u.Bc)(a.size)}))}).setLayout({name:"spe_pattern_diamond",type:"float",inputs:[{name:"uv",type:"vec2"},{name:"frequency",type:"vec2"},{name:"size",type:"float"},{name:"variation",type:"float"},{name:"smoothness",type:"float"},{name:"zigzag",type:"float"},{name:"rotation",type:"float"}]}),nm=(0,u.I)(function(a){var r=(0,u.Bc)(a.uv.mul(a.frequency)).toVar(),n=(0,u.Bc)((0,u.Aa)(r)).toVar(),i=(0,u.za)((0,u.ib)(n.y,2)).toVar();r.x.addAssign(i.add(a.zigzag.mul(i)));var s=(0,u.za)((0,u.Aa)(r.x)).toVar();return(0,u.ib)(s,2)}).setLayout({name:"spe_pattern_checkerboard",type:"float",inputs:[{name:"uv",type:"vec2"},{name:"frequency",type:"vec2"},{name:"size",type:"float"},{name:"variation",type:"float"},{name:"smoothness",type:"float"},{name:"zigzag",type:"float"},{name:"rotation",type:"float"}]}),nf=(0,u.I)(function(a){var r=(0,u.Bc)(nn(a.uv,a.frequency,(0,u.za)(0),a.zigzag,a.rotation)).toVar(),n=(0,u.za)((0,u.Aa)(a.uv.mul(a.frequency)).y).toVar(),i=(0,u.za)(ne({p:(0,u.Bc)(n)})).toVar(),s=(0,u.za)((0,u.hb)(a.size,a.size.mul(i),a.variation)).toVar();return(0,u.ec)(s.sub(a.smoothness),s.add(a.smoothness),(0,u.P)(r.y))}).setLayout({name:"spe_pattern_line",type:"float",inputs:[{name:"uv",type:"vec2"},{name:"frequency",type:"vec2"},{name:"size",type:"float"},{name:"variation",type:"float"},{name:"smoothness",type:"float"},{name:"zigzag",type:"float"},{name:"rotation",type:"float"}]}),nv=(0,u.I)(function(a){var r=a.a,n=a.b,i=a.c,s=a.d,o=(0,u.Bc)(a.p.sub((0,u.Bc)(s,r)).mul(i)).toVar();o.x.assign((0,u.ib)(o.x,r7)),(0,u.J)(o.x.greaterThan(Math.PI),function(){o.x.assign((0,u.za)(r7).sub(o.x))});var l=(0,u.za)(0).toVar(),c=(0,u.za)(r7).toVar();(0,u.K)(24,function(){var a=(0,u.za)(l.add(c).mul(.5)).toVar(),r=(0,u.za)(a.sub(o.x).add(n.mul(i).mul((0,u.dc)(a)).mul(o.y.sub(n.mul(i).mul((0,u.ma)(a)))))).toVar();(0,u.J)(r.lessThan(0),function(){l.assign(a)}).Else(function(){c.assign(a)})});var d=(0,u.za)(l.add(c).mul(.5)).toVar(),h=(0,u.Bc)(d,n.mul(i).mul((0,u.ma)(d))).toVar();return(0,u.Va)(o.sub(h)).div(i)}).setLayout({name:"spe_pattern_udf_cos",type:"float",inputs:[{name:"p",type:"vec2"},{name:"a",type:"float"},{name:"b",type:"float"},{name:"c",type:"float"},{name:"d",type:"float"}]}),np=(0,u.I)(function(a){var r=(0,u.za)(a.frequency.x).toVar(),n=(0,u.Bc)(a.uv.mul(r)).toVar(),i=(0,u.Bc)((0,u.Aa)(n)).toVar(),s=(0,u.za)((0,u.ib)(i.y,2)).toVar();n.x.addAssign(s.mul(a.zigzag));var o=(0,u.Bc)(n.x,(0,u.Ca)(n.y)).toVar(),l=(0,u.za)(a.frequency.y.mul(.1)).toVar(),c=(0,u.za)(nv({p:o,a:(0,u.za)(.5),b:(0,u.za)(.125),c:l.mul(r7),d:(0,u.za)(0)})).toVar(),d=(0,u.za)(ne({p:(0,u.Bc)(i.y)})).toVar(),h=(0,u.za)((0,u.hb)(a.size,a.size.mul(d),a.variation)).toVar();return(0,u.ec)(a.smoothness.negate(),a.smoothness,c.sub(h.mul(.5)))}).setLayout({name:"spe_pattern_wave",type:"float",inputs:[{name:"uv",type:"vec2"},{name:"frequency",type:"vec2"},{name:"size",type:"float"},{name:"variation",type:"float"},{name:"smoothness",type:"float"},{name:"zigzag",type:"float"},{name:"rotation",type:"float"}]});function ng(a,r){var n={uv:r.uv,frequency:r.frequency,size:r.size,variation:r.variation,smoothness:r.smoothness,zigzag:r.zigzag,rotation:r.rotation};switch(a){case 1:return ns(n);case 2:return nl(D(B({},n),{sides:r.sides}));case 3:return nc(n);case 4:return nh(n);case 5:return nm(n);case 6:return nf(n);case 7:return np(n);default:return ni(n)}}rr("pattern",function(a,r,n){var i,s,o,l,c,d=null!=(i=a.getValue("style"))?i:0,h=null!=(s=a.getValue("projection"))?s:0,m=null!=(o=a.getValue("axis"))?o:0,f=a.getFloat("blending"),v=a.getVec2("offset"),p=a.getVec4("colorA"),g=a.getVec4("colorB"),y=a.getVec2("frequency"),_=a.getFloat("size"),x=a.getFloat("variation"),b=a.getFloat("smoothness"),T=a.getFloat("zigzag"),w=a.getFloat("rotation"),S=a.getVec2("vertical"),z=a.getVec2("horizontal"),V=a.getInt("sides"),C={frequency:y,size:_,variation:x,smoothness:(0,u.za)((0,u.Nb)(b,5)).toVar(),zigzag:T,rotation:w,sides:V};if(4===h){var k=(0,u.Cc)(aJ).toVar(),M=(0,u.za)(.0125).toVar(),A=(0,u.Bc)((0,u.Ca)(k.xy.mul(M))).toVar(),R=(0,u.Bc)((0,u.Ca)(k.zy.mul(M))).toVar(),P=(0,u.Bc)((0,u.Ca)(k.xz.mul(M))).toVar();A.assign(na(A.add(v),w)),R.assign(na(R.add(v),w)),P.assign(na(P.add(v),w));var N=(0,u.za)(ng(d,B({uv:A},C))).toVar(),D=(0,u.za)(ng(d,B({uv:R},C))).toVar(),E=(0,u.za)(ng(d,B({uv:P},C))).toVar(),I=(0,u.za)((0,u.zb)(f).mul(125).add(3)).toVar(),F=(0,u.Cc)(aX).toVar(),L=(0,u.Cc)((0,u.P)((0,u.xb)(F))).toVar();L.assign((0,u.Nb)(L,(0,u.Cc)(I))),L.divAssign((0,u.ua)(L,(0,u.Cc)(1))),N.mulAssign(L.z),D.mulAssign(L.x),E.mulAssign(L.y),l=(0,u.za)(N.add(D).add(E)).toVar(),c=(0,u.Bc)(A.mul(L.z).add(R.mul(L.x)).add(P.mul(L.y))).toVar()}else{var U=(0,u.Bc)(0).toVar();if(0===h)U.assign((0,u.yc)());else if(2===h){var O,G,q=(0,u.Cc)(aJ).toVar(),W=(0,u.za)((0,u.Va)(q)).toVar();0===m?(O=(0,u.za)((0,u.T)(q.y,q.z)).toVar(),G=(0,u.za)((0,u.Q)(q.x.div(W))).toVar()):1===m?(O=(0,u.za)((0,u.T)(q.x,q.z)).toVar(),G=(0,u.za)((0,u.Q)(q.y.div(W))).toVar()):(O=(0,u.za)((0,u.T)(q.y,q.x)).toVar(),G=(0,u.za)((0,u.Q)(q.z.div(W))).toVar()),U.assign((0,u.Bc)(O,G).div(Math.PI))}U.addAssign(v),U.assign((0,u.Ca)(U)),U.assign(na(U,w)),l=ng(d,B({uv:U},C)),c=U}var H=(0,u.Dc)((0,u.hb)(p,g,l)).toVar();H.a.assign((0,u.ga)(H.a,(0,u.za)(0),(0,u.za)(1))),H.a.mulAssign((0,u.ic)(S.x,c.y).mul((0,u.ic)(c.y,S.y))),H.a.mulAssign((0,u.ic)(z.x,(0,u.P)(c.x)).mul((0,u.ic)((0,u.P)(c.x),z.y)));var j=r.alpha.mul((0,u.ga)(H.a,(0,u.za)(0),(0,u.za)(1))).mul(r.mask);return{color:(0,u.ga)(H,(0,u.Dc)(0),(0,u.Dc)(1)).rgb,calpha:a2(j,n,r.isMask)}});var ny=function(a,r){return a.element(r)};rr("rainbow",function(a,r,n){var i=a.getFloat("filmThickness"),s=a.getFloat("movement"),o=a.getVec3("wavelengths"),l=a.getFloat("noiseStrength"),c=a.getFloat("noiseScale"),d=a.getVec3("offset"),h=(0,u.za)(0).toVar();!1!==r.noiseCompiledIn&&(0,u.J)(l.notEqual(0),function(){var a=aJ.div(c).toVar(),r=rV(a.mul(1.6).add((0,u.Cc)(1.8,1.5,1.9).mul(rV(a))).add((0,u.Cc)(1.7,9.2,1)));h.assign(r.mul(l))});var m=o.mul((0,u.Cc)(1,.8,.6)).add(1),f=ny(u.ca,2).w.equal(-1),v=(0,u.Cc)(ny(u.ea,0).z,ny(u.ea,1).z,ny(u.ea,2).z).negate(),p=u.Mb.sub(u.ba),g=(0,u._b)(f,p,v),y=(0,u.ua)((0,u.xb)(g.add(d.mul(-.001))),(0,u.xb)(r4)),_=(0,u.ma)(i.add(h).div(m).mul(y).add(s)).mul(.5).add(.5),x=(0,u.Cc)((0,u.ga)(_,0,2)).toVar(),b=(0,u.ga)(x.r.add(x.g).add(x.b),0,1);return{color:x,calpha:a2(r.alpha.mul(b).mul(r.mask),n,r.isMask)}});var n_=function(a){return a},nx=u.K,nb=u.K,nT=(0,u.I)(function(a){var r=a.x,n=(0,u.Cc)((0,u.ua)(r,(0,u.Cc)(127.1,311.7,74.7)),(0,u.ua)(r,(0,u.Cc)(269.5,183.3,246.1)),(0,u.ua)(r,(0,u.Cc)(113.5,271.9,124.6)));return(0,u.Ca)((0,u.dc)(n).mul(43758.5453123))}).setLayout({name:"spe_toonHash3",type:"vec3",inputs:[{name:"x",type:"vec3"}]}),nw=(0,u.I)(function(a){var r=a.x,n=(0,u.Aa)(r).toVar(),i=(0,u.Ca)(r).toVar(),s=(0,u.za)(100).toVar(),o=function(){return{start:(0,u.Na)(-1),end:(0,u.Na)(1),condition:"<=",type:"int"}};return nb(o(),o(),o(),function(a){var r=a.i,o=a.j,l=a.k,c=(0,u.Cc)(r,o,l).toVar(),d=c.sub(i).add(nT({x:n.add(c)})).toVar(),h=(0,u.ua)(d,d).toVar();(0,u.J)(h.lessThan(s),function(){s.assign(h)})}),s.sqrt()}).setLayout({name:"spe_toonVoronoiF1",type:"float",inputs:[{name:"x",type:"vec3"}]});rr("toon",function(a,r,n){var i,s,o=a.getInt("positioning"),l=a.get("colors"),c=a.get("steps"),d=a.getVec3("source"),h=a.getBool("isWorldSpace"),m=a.getFloat("noiseStrength"),f=a.getFloat("noiseScale"),v=a.getVec4("shadowColor"),p=a.getVec3("offset"),g=(0,u.xb)(r4).toVar(),y=(0,u.za)(0).toVar();!0===n.lightsAvailable&&(0,u.J)(o.equal((0,u.Na)(0)),function(){nx({start:(0,u.Na)(0),end:u.Vc.toonLightCount,condition:"<",type:"int"},function(a){var r=a.i,n=u.Vc.toonLightData.element(r).toVar(),i=n.xyz,s=n.w,o=(0,u._b)(s.greaterThan(.5),(0,u.xb)(i),(0,u.xb)(i.sub(u.Mb))),l=(0,u.ua)(o,g).mul(.5).add(.5);y.assign((0,u.eb)(y,l))}),y.assign((0,u.ga)(y,0,1))}),(0,u.J)(o.equal((0,u.Na)(1)),function(){var a=(0,u.hb)(aJ,u.Mb,(0,u._b)(h,(0,u.za)(1),(0,u.za)(0))),r=(0,u.xb)(d.sub(a));y.assign((0,u.ua)(r,g).mul(.5).add(.5))}).ElseIf(o.equal((0,u.Na)(2)),function(){var a=u.ba.sub(p),r=(0,u.xb)(a.sub(u.Mb));y.assign((0,u.ua)(r,g).mul(.5).add(.5))}),(0,u.J)(m.greaterThan(0),function(){var a=aJ.div(f),r=(0,u.za)(1).sub(nw({x:a}));y.addAssign(r.mul(m))}),y.assign((0,u.ga)(y,0,1));for(var _=Math.min(10,(null!=(i=a.getValue("colors"))?i:l.array).length,(null!=(s=a.getValue("steps"))?s:c.array).length),x=(0,u.Dc)(l.element(0)).toVar(),b=1;b<_;b++){var T=n_(c.element(b-1)),w=n_(c.element(b)),S=(0,u.ga)(y.sub(T).div(w.sub(T)),(0,u.za)(0),(0,u.za)(1));x.assign((0,u.hb)(x,l.element(b),(0,u.ec)(0,1,S)))}!0===n.lightsAvailable&&(0,u.J)(o.equal((0,u.Na)(0)),function(){var a=(0,u.za)(1),r=(0,u.hb)(x.rgb,v.rgb,v.a);x.rgb.assign((0,u.hb)(r,x.rgb,a))});var z=r.alpha.mul(x.a).mul(r.mask);return{color:x.rgb,calpha:a3(z,n)}});var nS=function(a){return a},nz=function(a){return a};rr("transmission",function(a,r,n){var i=a.getFloat("thickness"),s=a.getFloat("ior"),o=a.getFloat("roughness"),l=u.Vc.transmissionRenderTarget,c=u.Vc.transmissionSamplerSize,d=function(a){return u.ea.element(a)},h=(0,u.xb)((0,u.Cc)(d(0).z.negate(),d(1).z.negate(),d(2).z.negate())),m=(0,u.xb)(u.Mb.sub(u.ba)),f=u.Vc.orthographicUniform,v=(0,u._b)(f.greaterThan(.5),h,m).toVar(),p=(0,u.xb)(r4).toVar(),g=(0,u.Tb)(v,p,(0,u.za)(1).div(s)).toVar(),y=(0,u.xb)(g).mul(i).mul(aQ).toVar(),_=function(a){var r=u.Vc.unjitteredProjection.mul(u.ea).mul((0,u.Dc)(a,1)),n=r.xy.div(r.w);return(0,u.Bc)(n.x.mul(.5).add(.5),n.y.mul(-.5).add(.5))},x=_(u.Mb.add(y).toVar()).toVar(),b=(_(u.Mb).toVar(),o.mul((0,u.ga)(s.mul(2).sub(2),(0,u.za)(0),(0,u.za)(1))).toVar()),T=(0,u.Za)(c.x).mul(b).toVar(),w=(0,u.gb)(T.div(5.5),(0,u.za)(8.5)).toVar(),S=null,z="fit",V=!0,C=!1,k=12,M="white",A=1;try{var R=new URLSearchParams(window.location.search),P=R.get("dbglod");null!==P&&(S=Number(P));var N=R.get("dbgtap");"ring"===N&&(z="ring"),("single"===N||"1"===N)&&(z="single"),("r50"===N||"r75"===N||"full"===N)&&(z=N),"singlewide"===N&&(z="singlewide"),("fit"===N||"singlefit"===N)&&(z="fit");var B=R.get("dbgwidth");null!==B&&Number.isFinite(Number(B))&&(A=Math.max(0,Number(B))),"6"===N&&(z="ring",k=6),"0"===R.get("dbgwarp")&&(V=!1),"1"===R.get("dbgdither")&&(C=!0);var D=R.get("dbgangle");("classic"===D||"0"===D)&&(M=D)}catch(a){}null!==S&&Number.isFinite(S)&&w.assign((0,u.za)(S));var E,I=function(){if("singlewide"===z)return(0,u.gb)(w.add(1),(0,u.za)(8.5)).toVar();if("fit"!==z)return w;var a=u.Vc.transmissionActualSize.x.div(u.Vc.resolution.x),r=b.mul(w).mul(5*A).mul(a).toVar();return(0,u.gb)((0,u.Za)((0,u.xa)(w.mul(2)).add(r.mul(r).mul(3))).mul(.5),(0,u.za)(8.5)).toVar()}(),F=function(a){var r,n,i,s,o;return l.sample(V?(r=u.Vc.transmissionActualSize.div((0,u.xa)((0,u.Aa)(I))),n=a.mul(r).sub(.5),i=(0,u.Aa)(n),o=(s=n.sub(i)).mul(s).mul((0,u.Bc)(3,3).sub(s.mul(2))),i.add(.5).add(o).div(r)):a).level(I).rgb},L="r50"===z?.5:"r75"===z?.75:1;if("single"===z||"singlewide"===z||"fit"===z)if("fit"===z){for(var U=(0,u.Aa)(I).toVar(),O=I.sub(U).toVar(),G=(0,u.hc)((0,u.xa)(O.mul(2)).sub(1)).mul(1.1547).toVar(),q=(0,u.Bc)((0,u.xa)(U)).div(u.Vc.transmissionActualSize).mul(G).toVar(),W=(0,u.Cc)(0).toVar(),H=0;H<12;H++){var j=nz((0,u.Ga)(H,12,(0,u.za)(0))),K=nz(x.add(j.mul(q)));W.addAssign(l.sample(K).level(U).rgb)}E=W.div(12).toVar()}else E=F(x).toVar();else{var J=(0,u.Bc)((0,u.za)(1).div(u.Vc.resolution.x),(0,u.za)(1).div(u.Vc.resolution.y)).toVar(),X=(0,u.Fa)("classic"===M?u.Yb.xy.add(u.Vc.cameraJitterPx):u.Yb.xy).mul(6.28318530718);"white"===M&&(X=X.add(u.Vc.tapAngle));for(var Q=X.toVar(),Y=u.Vc.tapAngle.mul(13.7).toVar(),Z=u.Vc.tapAngle2.mul(5.3).toVar(),$=(0,u.Bc)((0,u.xa)((0,u.Aa)(I).add(1))).div(u.Vc.transmissionActualSize).toVar(),ee=(0,u.Fa)(u.Yb.xy.add((0,u.Bc)(Y,Z))).toVar(),et=(0,u.Fa)(u.Yb.xy.add((0,u.Bc)(Z.mul(1.71),Y.mul(2.39)))).toVar(),ea=(0,u.Cc)(0).toVar(),er=0;er<k;er++){var en=nz((0,u.Ga)(er,k,Q)).mul(J).mul(b).mul(w.mul(10)).mul(L),ei=nz(x.add(en));if(C){var es=nS((0,u.Ca)(ee.add(.7548776662*er))),eo=nS((0,u.Ca)(et.add(.5698402911*er))),el=nz((0,u.Bc)(es.sub(.5),eo.sub(.5)).mul($));ei=nz(ei.add(el))}ea.addAssign(F(ei))}E=ea.div(k).toVar()}if(a.has("attenuationDistance")){var eu=a.getFloat("attenuationDistance"),ec=(0,u.Cc)(a.getColor("attenuationColor")).toVar();(0,u.J)(eu.greaterThan(0),function(){var a=(0,u.Nb)((0,u.eb)(ec,(0,u.Cc)(1e-4)),(0,u.Cc)(i.div(eu)));E.mulAssign(a)})}var ed=r.alpha.mul(r.mask).toVar(),eh=ed.div((0,u.ga)(ed.add(n.accumAlpha),(0,u.za)(1e-5),(0,u.za)(1))).toVar();return n.accumAlpha.addAssign((0,u.za)(1).sub(n.accumAlpha).mul(r.alpha)),{color:E,calpha:eh}}),rr("reflection",function(a,r,n){var i,s=a.getFloat("blur"),o=a.getFloat("thickness"),l=a.getInt("steps"),c=a.getFloat("stepSize"),d=null!=(i=a.getValue("tracingMode"))?i:0,h=u.Vc.reflectionRenderTarget,m=u.Vc.reflectionDepthPyramid,f=u.Vc.reflectionDepthPyramid,v=u.Vc.reflectionDepthLevels,p=u.Vc.reflectionEnvMap,g=u.Vc.reflectionPlanarTarget,y=u.Vc.reflectionPlanarEnabled,_=(0,u.xc)("__splinePlanarMirror","float"),x=y.greaterThan(.5).and(_.greaterThan(.5)),b=u.Vc.reflectionResolveTarget,T=u.Vc.reflectionResolveEnabled,w=u.Vc.orthographicUniform.greaterThan(.5),S=(0,u._b)(w,(0,u.Cc)(0,0,-1),(0,u.xb)(u.Kb)).toVar(),z=(0,u.xb)(u.ub).toVar(),V=(0,u.Sb)(S,z).toVar(),C=(0,u.ga)(s.mul(.1),(0,u.za)(0),(0,u.za)(1)).toVar(),k=u.Vc.resolution,M=(0,u.Cc)(0).toVar(),A=T.greaterThan(.5).and(C.greaterThan(.05)).and(x.not()),R=ey(p,(0,u.xb)((0,u.sc)(V,u.fa)).toVar(),C).toVar(),P=b.sample(u.Zb).level((0,u.za)(0)).toVar();(0,u.J)(A,function(){var a=P.a.toVar();M.assign((0,u.hb)(R,P.rgb.div(a.max(1e-4)),(0,u.ga)(a.mul(2),(0,u.za)(0),(0,u.za)(1))))}).Else(function(){M.assign(e_({dials:{blur:s,thickness:o,steps:l,stepSize:c,tracingMode:d},surface:{originView:u.Kb,normalV:z,screenUv:u.Zb,fragWindowZ:u.ra},camera:{projectionMatrix:u.ca,projectionMatrixInverse:u.da,worldMatrix:u.fa,near:u.aa},resources:{colorMap:h,depthPyramid:m,depthPyramidNode:f,envMap:p},usePlanar:x,noisePixel:u.Zb.mul(k).floor()}))}),(0,u.J)(x,function(){var a=(0,u.Bc)((0,u.za)(1).sub(u.Zb.x),u.Zb.y).toVar(),r=(0,u.za)(v.sub(1)),n=(0,u.gb)((0,u.Za)(C.mul(k.y).mul(.075).add(1)),r).toVar(),i=n.sub(1).max(0).floor().toVar(),s=(0,u.za)(2).pow(n).sub(1).max(0).toVar(),o=s.mul(.75).div(k.y).toVar();M.assign(ep(g,a,o,s.mul(.75),i))});var N=r.alpha.mul(r.mask).toVar(),B=N.div((0,u.ga)(N.add(n.accumAlpha),(0,u.za)(1e-5),(0,u.za)(1))).toVar();return n.accumAlpha.addAssign((0,u.za)(1).sub(n.accumAlpha).mul(N)),{color:M,calpha:B}});var nV=function(a){return a};function nC(a){var r=a.data,n=[a.kind,a.type,"v=".concat(!!r.visible),"m=".concat(!!r.isMask),"p=".concat(a.params.names().join(","))];if("light"!==a.type){var i=g.ba[a.type],s=!0,o=!1,l=void 0;if(void 0!==i)try{for(var u,c,d=i[Symbol.iterator]();!(s=(c=d.next()).done);s=!0){var h=c.value;n.push("".concat(h,"=").concat(String(r[h])))}}catch(a){o=!0,l=a}finally{try{s||null==d.return||d.return()}finally{if(o)throw l}}}var m=!0,f=!1,v=void 0;try{for(var p,y=a.uniformKinds[Symbol.iterator]();!(m=(p=y.next()).done);m=!0){var _=I(p.value,2),x=_[0],b=_[1];("vec4array"===b||"floatArray"===b)&&n.push("".concat(x,"#").concat((null!=(u=a.params.getValue(x))?u:[]).length))}}catch(a){f=!0,v=a}finally{try{m||null==y.return||y.return()}finally{if(f)throw v}}if("rainbow"===a.type&&n.push("noise=".concat(!1!==a.noiseCompiledIn),"forced=".concat(!0===a.noiseForced)),"displace"===a.type&&n.push("dt=".concat(String(r.displacementType))),"texture"===a.type||"video"===a.type||"matcap"===a.type){if(0===a.holders.length)throw Error("structuralKey: ".concat(a.type," layer has no holder"));var T,w=null!=(T=r.texture)?T:{};n.push("holder=".concat(a.holders.map(function(a){return a.instanceId}).join(",")),"wrap=".concat(String(w.wrapping)),"min=".concat(String(w.minFilter)),"mag=".concat(String(w.magFilter)))}return n.join(";")}rr("outline",function(a,r,n){for(var i=a.getColor("outlineColor"),s=a.getColor("contourColor"),o=a.getFloat("outlineWidth"),l=a.getFloat("contourWidth"),c=a.getFloat("outlineThreshold"),d=a.getFloat("contourThreshold"),h=a.getFloat("outlineSmoothing"),m=a.getFloat("contourFrequency"),f=a.getVec3("contourDirection"),v=a.getBool("positionalLines"),p=a.getBool("compensation"),g=u.Vc.normalRenderTarget,y=u.Vc.normalRenderTargetDepth,_=u.Vc.resolution,x=u.Vc.pixelRatio,b=(0,u.Y)("randomColor","vec3").x.toVar(),T=u.ra.toVar(),w=u.Zb.toVar(),S=(0,u.Bc)((0,u.za)(1).div(_.x),(0,u.za)(1).div(_.y)).toVar(),z=u.Vc.pcssHalton,V=(0,u.Fa)(u.Yb.xy.add(z)).mul(6.28318530718).toVar(),C=p.select(o.div(2),o),k=S.mul(C).mul(x).toVar(),M=[[-1,-1],[0,-1],[1,-1],[-1,0],[0,0],[1,0],[-1,1],[0,1],[1,1]],A=[],R=(0,u.za)(0).toVar(),P=0;P<9;P++)!function(a){var r,n=I(M[a],2),i=n[0],s=n[1],o=4===a?w:nV(w.add((0,u.Bc)(k.x.mul(i),k.y.mul(s))).add((r=a,(0,u.Ga)(r,9,V).mul(S)))),l=nV(o).toVar(),c=g.sample(l).toVar();A.push(c),(0,u.J)(c.a.notEqual(b).and(c.a.notEqual(0)),function(){var a=y.sample(l).r.add(1e-4);(0,u.J)(T.greaterThan(a),function(){R.assign(1)})})}(P);var N=A[2].rgb.add(A[5].rgb.mul(2)).add(A[8].rgb).sub(A[0].rgb.add(A[3].rgb.mul(2)).add(A[6].rgb)),B=A[0].rgb.add(A[1].rgb.mul(2)).add(A[2].rgb).sub(A[6].rgb.add(A[7].rgb.mul(2)).add(A[8].rgb)),D=(0,u.hc)((0,u.ua)(N,N).add((0,u.ua)(B,B))).mul(R.oneMinus()).toVar(),E=(0,u.Cc)(i).toVar(),F=(0,u.ec)(c.sub(h),c.add(h),D).toVar(),L=(0,u.xb)(r4).toVar(),U=(0,u.za)(1).sub(d).toVar();(0,u.J)(v,function(){var a=aJ.mul(f),r=a.x.add(a.y).add(a.z).toVar(),n=(0,u.Ca)(r.mul(m).mul(.01)),i=(0,u.Ea)(r.mul(m)),o=(0,u.ec)(i.mul(l.mul(.01)),i.mul(l.mul(.02)),n).toVar();(0,u.J)(o.lessThan(1).and(F.equal(0)),function(){E.assign(s),F.assign(1)})}).Else(function(){var a=L.mul(f),r=a.x.add(a.y).add(a.z).toVar(),n=(0,u.Ea)(r.mul(d)).toVar(),i=(0,u.dc)(r.mul(m)).toVar(),o=(0,u.ec)((0,u.za)(0),n.mul(l),(0,u.za)(1).sub(i)).toVar();(0,u.J)(n.greaterThan(U.mul(.5)).and(o.lessThan(1)).and(F.equal(0)),function(){E.assign(s),F.assign((0,u.za)(1).sub(o))})});var O=r.alpha.mul(F).mul(r.mask).toVar(),G=O.div((0,u.ga)(O.add(n.accumAlpha),(0,u.za)(1e-5),(0,u.za)(1))).toVar();return n.accumAlpha.addAssign((0,u.za)(1).sub(n.accumAlpha).mul(O)),{color:E,calpha:G}}),rr("vertexColor",function(a,r,n){var i=(0,u.Fc)(),s=r.alpha.mul(r.mask).mul(i.a);return{color:i.rgb,calpha:a3(s,n)}});var nk=function(a){return a};function nM(a){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=new b.Tc(a);return new g.i(n.r,n.g,n.b,r)}function nA(a,r){if(N(a,g.i))return a;if(N(a,b.Tc))return new g.i(a.r,a.g,a.b,1);if("number"==typeof a)return nM(a);if("object"==(void 0===a?"undefined":L(a))&&null!==a&&"r"in a&&"g"in a&&"b"in a){var n;return new g.i(a.r,a.g,a.b,null!=(n=a.a)?n:1)}return r()}function nR(){var a=Array(10).fill(new b.Jc(0,0,0,1)).map(function(a){return a.clone()});return a[1]=new b.Jc(1,1,1,1),a}function nP(){var a=Array(10).fill(1);return a[0]=0,a}var nN={color:{color:{kind:"color",def:function(){return nM(y.x)}}},vertexColor:{},cavity:{ridge:{kind:"float",def:function(){return 1}},valley:{kind:"float",def:function(){return 1}}},fresnel:{color:{kind:"color",def:function(){return nM(0xffffff)}},bias:{kind:"float",def:function(){return .1}},scale:{kind:"float",def:function(){return 1}},intensity:{kind:"float",def:function(){return 2}},factor:{kind:"float",def:function(){return 1}}},dust:{color:{kind:"color",def:function(){return nM(0x9d8765)}},coverage:{kind:"float",def:function(){return .2}},softness:{kind:"float",def:function(){return .2}},noiseStrength:{kind:"float",def:function(){return .2}},noiseScale:{kind:"float",def:function(){return 1}}},rainbow:{filmThickness:{kind:"float",def:function(){return 30}},movement:{kind:"float",def:function(){return 0}},wavelengths:{kind:"vec3",def:function(){return new b.Fc}},noiseStrength:{kind:"float",def:function(){return 0}},noiseScale:{kind:"float",def:function(){return 1}},offset:{kind:"vec3",def:function(){return new b.Fc}}},transmission:{thickness:{kind:"float",def:function(){return 10}},ior:{kind:"float",def:function(){return 1.5}},roughness:{kind:"float",def:function(){return .5}},attenuationColor:{kind:"color",def:function(){return nM(0xffffff)}},attenuationDistance:{kind:"float",def:function(){return 0}}},reflection:{blur:{kind:"float",def:function(){return 0}},thickness:{kind:"float",def:function(){return .001}},steps:{kind:"int",def:function(){return 60}},stepSize:{kind:"float",def:function(){return .005}},tracingMode:{kind:"int",def:function(){return 1}}},toon:{positioning:{kind:"int",def:function(){return 0}},colors:{kind:"vec4array",def:nR},steps:{kind:"floatArray",def:nP},source:{kind:"vec3",def:function(){return new b.Fc}},isWorldSpace:{kind:"bool",def:function(){return!0}},noiseStrength:{kind:"float",def:function(){return 0}},noiseScale:{kind:"float",def:function(){return 1}},shadowColor:{kind:"colorVec4",def:function(){return new g.i(0,0,0,0)}},offset:{kind:"vec3",def:function(){return new b.Fc}}},outline:{outlineColor:{kind:"color",def:function(){return nM(0xffffff)}},contourColor:{kind:"color",def:function(){return nM(0xffffff)}},outlineWidth:{kind:"float",def:function(){return .1}},contourWidth:{kind:"float",def:function(){return .1}},outlineThreshold:{kind:"float",def:function(){return .1}},contourThreshold:{kind:"float",def:function(){return .1}},outlineSmoothing:{kind:"float",def:function(){return .1}},contourFrequency:{kind:"float",def:function(){return .1}},contourDirection:{kind:"vec3",def:function(){return new b.Fc(0,1,0)}},positionalLines:{kind:"bool",def:function(){return!1}},compensation:{kind:"bool",def:function(){return!0}}},depth:{gradientType:{kind:"int",def:function(){return 0}},smooth:{kind:"bool",def:function(){return!1}},near:{kind:"float",def:function(){return 50}},far:{kind:"float",def:function(){return 200}},isVector:{kind:"float",def:function(){return 1}},isWorldSpace:{kind:"float",def:function(){return 0}},origin:{kind:"vec3",def:function(){return new b.Fc}},direction:{kind:"vec3",def:function(){return new b.Fc(1,0,0)}},colors:{kind:"vec4array",def:function(){return[new b.Jc(0,0,0,1),new b.Jc(1,1,1,1)]}},steps:{kind:"floatArray",def:function(){return[0,1]}}},noise:{scale:{kind:"float",def:function(){return 1}},size:{kind:"vec3",def:function(){return new b.Fc(100,100,100)}},move:{kind:"float",def:function(){return 1}},fA:{kind:"vec2",def:function(){return new b.Dc(1.7,9.2)}},fB:{kind:"vec2",def:function(){return new b.Dc(8.3,2.8)}},distortion:{kind:"vec2",def:function(){return new b.Dc(1,1)}},colorA:{kind:"colorVec4",def:function(){return new g.i(.4,.4,.4,1)}},colorB:{kind:"colorVec4",def:function(){return new g.i(.4,.4,.4,1)}},colorC:{kind:"colorVec4",def:function(){return new g.i(1,1,1,1)}},colorD:{kind:"colorVec4",def:function(){return new g.i(1,1,1,1)}},noiseType:{kind:"int",def:function(){return 0}},voronoiStyle:{kind:"int",def:function(){return 0}},highCut:{kind:"float",def:function(){return 1}},lowCut:{kind:"float",def:function(){return 0}},smoothness:{kind:"float",def:function(){return .5}},seed:{kind:"float",def:function(){return .5}},quality:{kind:"int",def:function(){return 1}}},normal:{cnormal:{kind:"vec3",def:function(){return new b.Fc(1,1,1)}}},gradient:{gradientType:{kind:"int",def:function(){return 0}},smooth:{kind:"bool",def:function(){return!1}},colors:{kind:"vec4array",def:nR},steps:{kind:"floatArray",def:nP},offset:{kind:"vec2",def:function(){return new b.Dc}},morph:{kind:"vec2",def:function(){return new b.Dc}},angle:{kind:"float",def:function(){return 0}}},pattern:{style:{kind:"int",def:function(){return 0}},projection:{kind:"int",def:function(){return 0}},axis:{kind:"axis",def:function(){return"x"}},blending:{kind:"float",def:function(){return 0}},offset:{kind:"vec2",def:function(){return new b.Dc}},colorA:{kind:"colorVec4",def:function(){return new g.i(0,0,0,1)}},colorB:{kind:"colorVec4",def:function(){return new g.i(1,1,1,1)}},frequency:{kind:"vec2",def:function(){return new b.Dc(10,10)}},size:{kind:"float",def:function(){return .5}},variation:{kind:"float",def:function(){return 0}},smoothness:{kind:"float",def:function(){return .5}},zigzag:{kind:"float",def:function(){return 0}},rotation:{kind:"float",def:function(){return 0}},vertical:{kind:"vec2",def:function(){return new b.Dc(0,1)}},horizontal:{kind:"vec2",def:function(){return new b.Dc(0,1)}},sides:{kind:"int",def:function(){return 6}}}},nB=new b.Jc;function nD(a,r){var n=a.material;if((null==n||!0!==n.isTSLNodeMaterial)&&(null==(n=null==(i=a.object)?void 0:i.material)||!0!==n.isTSLNodeMaterial))return r;if("light"===r.kind){var i,s,o,l,u=n.lightLayer;return null==u?r:(null==(o=u.data)?void 0:o.category)===(null==(l=r.data)?void 0:l.category)?u:r}var c=null==(s=n.layers)?void 0:s[r.structIndex];return void 0!==c&&c.type===r.type?c:r}function nE(a,r){if("number"!=typeof r||!Number.isInteger(r)||r<0)throw Error("[spe] ".concat(a,".element() needs a build-time constant index (got ").concat(String(r),"). Array params are inlined as per-slot uniforms; a dynamic index needs a real uniformArray."));return r}function nI(a,r,n,i){var s,o,l=a.params;switch(n){case"float":s=(0,u.vc)(Number(null!=i?i:0));break;case"int":s=(0,u.vc)(Number(null!=i?i:0),"int");break;case"axis":s=(0,u.vc)(["x","y","z"].indexOf(String(i)),"int");break;case"bool":s=(0,u.vc)(!!i);break;case"vec2":s=(0,u.vc)(N(i,b.Dc)?i:new b.Dc);break;case"vec3":s=(0,u.vc)(N(i,b.Fc)?i:new b.Fc);break;case"vec4":s=(0,u.vc)(N(i,b.Jc)?i:new b.Jc);break;case"color":var c=nA(i,function(){return nM(0xffffff)});s=(0,u.vc)(c),o=c;break;case"colorVec4":var d=nA(i,function(){return new g.i(1,1,1,1)}),h=new b.Jc(d.r,d.g,d.b,d.a),m=(0,u.vc)(h);m.onObjectUpdate(function(n){var i,s=null!=(i=nD(n,a).params.getLiveValue(r))?i:d;h.set(s.r,s.g,s.b,s.a)}),s=m,o=d;break;case"vec4array":var f,v,p=Array.isArray(i)?i:[];f=p.length>0?p:[new b.Jc],v=new Map,s={element:function(n){var i=nE(r,n),s=v.get(i);if(void 0===s){var o,l=(0,u.vc)(null!=(o=f[i])?o:new b.Jc);l.onObjectUpdate(function(n){var s,o;return null!=(s=(null!=(o=nD(n,a).params.getValue(r))?o:f)[i])?s:nB}),s=l,v.set(i,s)}return s},array:f,get value(){return f},set value(e){if(Array.isArray(e))for(var y=0;y<Math.min(f.length,e.length);y++){var _,x,T,w,S,z,V,C,k=e[y];Array.isArray(k)?f[y].set(null!=(_=k[0])?_:0,null!=(x=k[1])?x:0,null!=(T=k[2])?T:0,null!=(w=k[3])?w:1):k&&"object"==(void 0===k?"undefined":L(k))&&f[y].set(null!=(S=k.x)?S:0,null!=(z=k.y)?z:0,null!=(V=k.z)?V:0,null!=(C=k.w)?C:1)}}},o=p;break;case"floatArray":var M,A,R=Array.isArray(i)?i:[0];M=R.length>0?R:[0],A=new Map,s={element:function(n){var i=nE(r,n),s=A.get(i);if(void 0===s){var o,l=(0,u.vc)(null!=(o=M[i])?o:0);l.onObjectUpdate(function(n){var s,o=nD(n,a).params.getValue(r);return Number(null!=(s=(null!=o?o:M)[i])?s:0)}),s=l,A.set(i,s)}return s},array:M,get value(){return M},set value(e){if(Array.isArray(e))for(var P=0;P<Math.min(M.length,e.length);P++)M[P]=Number(e[P])}},o=R}"vec4array"!==n&&"floatArray"!==n&&"colorVec4"!==n&&(aZ(s),s.onObjectUpdate(function(n){var i=nD(n,a).params.getValue(r);void 0!==i&&a0(s,i)})),l.set(r,s,o),a.uniformKinds.set(r,n)}var nF=function(){function a(r,n,i,s){V(this,a),this.repeat=r,this.offset=n,this.rotation=i,this.target=s,this.updateMatrix()}return M(a,[{key:"updateMatrix",value:function(){this.target.setUvTransform(this.offset[0],this.offset[1],this.repeat[0],this.repeat[1],0,0,0).premultiply((new b.Gc).makeRotation(this.rotation*b.Cc.DEG2RAD))}}]),a}(),nL=function(){function a(r,n,i,s){V(this,a),this.kind=r,this.id=n,this.uuid=i,this.data=s,this.uniformKinds=new Map,this.holders=[],this.structIndex=-1,this.params=new a1(n)}return M(a,[{key:"type",get:function(){return this.data.type}},{key:"uniforms",get:function(){return this.params.uniforms}},{key:"alphaNode",get:function(){return this.params.getFloat("alpha")}},{key:"modeNode",get:function(){return this.params.getInt("mode")}},{key:"isMaskNode",get:function(){return this.params.getFloat("isMask")}},{key:"isMaskEnabled",get:function(){return"isMask"in this.data&&!!this.data.isMask}},{key:"hasValue",value:function(a){return this.params.has(a)}},{key:"setValue",value:function(a,r){if("noiseStrength"===a&&!1===this.noiseCompiledIn&&"number"==typeof r&&0!==r&&void 0!==this.onNoiseMismatch){var n=this.onNoiseMismatch;return this.onNoiseMismatch=void 0,this.params.setValue(a,r),void(n(r)&&(this.noiseCompiledIn=!0))}this.params.setValue(a,r)}},{key:"getNode",value:function(a){return this.params.has(a)?this.params.get(a):void 0}},{key:"getValue",value:function(a){return this.params.getValue(a)}},{key:"getName",value:function(a){var r=/f\d+_(.*)/.exec(a);if(r&&r.length>1)return r[1];console.log("Layer.getName: error ".concat(a))}},{key:"getNames",value:function(){return this.params.names()}},{key:"assetsLoaded",get:function(){return this.holders.every(function(a){return a.loaded})}},{key:"dispose",value:function(){var a=!0,r=!1,n=void 0;try{for(var i,s=this.holders[Symbol.iterator]();!(a=(i=s.next()).done);a=!0){var o=i.value;N(o,g.n)||o.deref()}}catch(a){r=!0,n=a}finally{try{a||null==s.return||s.return()}finally{if(r)throw n}}this.holders.length=0}}]),a}(),nU=function(a){function r(a,n,i){var s;return V(this,r),(s=z(this,r,["light",a,n,i])).node={alphaOverride:void 0,alpha:{value:1}},s}return P(r,a),M(r,[{key:"lightData",get:function(){return this.data}},{key:"category",get:function(){var a;return null!=(a=this.lightData.category)?a:"phong"}}]),r}(nL);function nO(a,r){var n,i=a.data;"displace"!==i.type?("alpha"in i&&a.params.has("alpha")&&a.params.setValue("alpha",(0,g.Z)(i.alpha,r)*!!i.visible),"outline"===i.type&&a.params.has("compensation")&&a.params.setValue("compensation",!!i.compensation&&!!i.visible)):a.params.has("intensity")&&a.params.setValue("intensity",(null!=(n=(0,g._)(i.intensity,r))?n:1)*!!i.visible)}function nG(a,r){var n,i;nI(a,"alpha","float",null!=(n=r.alpha)?n:1),nI(a,"mode","int",null!=(i=r.mode)?i:0),nI(a,"isMask","float",+!!r.isMask)}function nq(a,r,n,i){var s,o,l,u,c,d,h,m,f,v,p,y,_,x,b,T,w,S,z,V,C,k,M,A,R=new nU(a,r,n);return nI(R,"alpha","float",(0,g.Z)(n.alpha,i)),nI(R,"mode","int",null!=(s=n.mode)?s:0),nI(R,"bumpMapIntensity","float",null!=(o=n.bumpMapIntensity)?o:5),nI(R,"alphaOverride","float",(0,g.Z)(n.alphaOverride,i)),n.visible&&("lambert"===n.category?(nI(R,"emissive","color",null!=(l=i.color(n.emissive))?l:nM(0)),nI(R,"occlusion","bool",null==(u=n.occlusion)||u)):"toon"===n.category?(nI(R,"shininess","float",null!=(c=n.shininess)?c:30),nI(R,"specular","color",null!=(d=i.color(n.specular))?d:nM(1118481))):"physical"===n.category?(nI(R,"roughness","float",null!=(v=n.roughness)?v:.3),nI(R,"metalness","float",null!=(p=n.metalness)?p:0),nI(R,"reflectivity","float",null!=(y=n.reflectivity)?y:.5),nI(R,"occlusion","bool",null==(_=n.occlusion)||_),nI(R,"normalScale","float",null!=(x=n.normalScale)?x:1),nI(R,"aoMapIntensity","float",null!=(b=n.aoMapIntensity)?b:1),nI(R,"emissive","color",void 0!==n.emissive&&null!=(T=i.color(n.emissive))?T:nM(0)),nI(R,"emissiveIntensity","float",null!=(w=n.emissiveIntensity)?w:1),void 0!==n.clearcoat&&(nI(R,"clearcoat","float",n.clearcoat),nI(R,"clearcoatRoughness","float",null!=(S=n.clearcoatRoughness)?S:.1)),void 0!==n.sheen&&(nI(R,"sheen","float",n.sheen),nI(R,"sheenColor","color",void 0!==n.sheenColor&&null!=(z=i.color(n.sheenColor))?z:nM(0xffffff)),nI(R,"sheenRoughness","float",null!=(V=n.sheenRoughness)?V:.5)),void 0!==n.ior&&(nI(R,"ior","float",n.ior),nI(R,"specularIntensity","float",null!=(C=n.specularIntensity)?C:1),nI(R,"specularColor","color",void 0!==n.specularColor&&null!=(k=i.color(n.specularColor))?k:nM(0xffffff))),void 0!==n.iridescence&&(nI(R,"iridescence","float",n.iridescence),nI(R,"iridescenceIOR","float",null!=(M=n.iridescenceIOR)?M:1.3),nI(R,"iridescenceThickness","float",null!=(A=n.iridescenceThickness)?A:400))):(nI(R,"shininess","float",null!=(h=n.shininess)?h:30),nI(R,"specular","color",void 0!==n.specular&&null!=(m=i.color(n.specular))?m:nM(1118481)),nI(R,"occlusion","bool",null==(f=n.occlusion)||f))),R.node.alphaOverride=R.params.get("alphaOverride"),nO(R,i),R}function nW(a,r,n,i){var s=new nL("fragment",a,r,n),o="texture"===n.type?null!=n.texture.image?null!=(v=i.uiBuffer(n.texture.image))?v:i.image(n.texture.image):i.getImage(""):"video"===n.type?i.video(n.texture.video):null!=n.texture.image?i.image(n.texture.image):i.getImage("");s.holders.push(o);var l=null!=(p=n.texture.wrapping)?p:"texture"===n.type?1e3:1001,c=(h=null!=(y=n.texture.minFilter)?y:1008,m=null!=(_=n.texture.magFilter)?_:1006,(f=(0,u.oc)(o.getTexture(l,h,m))).onRenderUpdate(function(){return o.getTexture(l,h,m)}),f);s.params.set("texture",c);var d=null!=(x=(0,g._)(null!=(T=n.texture.rotation)?T:0,i))?x:0;if("matcap"===n.type)nI(s,"rotation","float",d*b.Cc.DEG2RAD);else{var h,m,f,v,p,y,_,x,T,w,S,z,V,C,k,M,A,R,P,N,B,D,E,I,F,L,U,O,G=(0,u.vc)(new b.Dc(1,1));G.onRenderUpdate(function(){var a,r,i,s,u=o.getTexture(l,null!=(a=n.texture.minFilter)?a:1008,null!=(r=n.texture.magFilter)?r:1006).image;G.value.set(null!=(i=null==u?void 0:u.width)?i:1,null!=(s=null==u?void 0:u.height)?s:1)}),s.params.set("textureSize",G),s.uniformKinds.set("textureSize","vec2");var q=(0,u.vc)(o.loaded||o.isBuffer?1:0);q.onRenderUpdate(function(){return o.loaded||o.isBuffer?1:0}),s.params.set("loaded",q),s.uniformKinds.set("loaded","float"),nI(s,"crop","float",+!!n.crop),nI(s,"projection","int",null!=(z=n.projection)?z:0),nI(s,"axis","axis",n.axis),nI(s,"projectionAxis","axis",n.projectionAxis),nI(s,"side","int",null!=(V=n.side)?V:0),nI(s,"size","vec2",n.size?new b.Dc(null!=(C=(0,g._)(n.size[0],i))?C:0,null!=(k=(0,g._)(n.size[1],i))?k:0):new b.Dc(100,100)),nI(s,"blending","float",null!=(M=n.blending)?M:0);var W=new b.Gc,H=new nF([null!=(A=(0,g._)(null!=(R=null==(F=n.texture.repeat)?void 0:F[0])?R:1,i))?A:1,null!=(P=(0,g._)(null!=(N=null==(L=n.texture.repeat)?void 0:L[1])?N:1,i))?P:1],[null!=(B=(0,g._)(null!=(D=null==(U=n.texture.offset)?void 0:U[0])?D:0,i))?B:0,null!=(E=(0,g._)(null!=(I=null==(O=n.texture.offset)?void 0:O[1])?I:0,i))?E:0],d,W),j=(0,u.vc)(W);aZ(j),j.onObjectUpdate(function(a){var r=nD(a,s).params.getNodeValue("mat");void 0!==r&&a0(j,r)}),s.params.set("mat",j,H)}return nG(s,{alpha:(0,g.Z)(n.alpha,i),mode:null!=(w=n.mode)?w:0,isMask:null!=(S=n.isMask)&&S}),nO(s,i),s}var nH={displace_noise:[{nums:["intensity","scale","movement","smoothness","seed","highCut","lowCut"],vecs:["offset"]}],displace_map:[{nums:["intensity"],vecs:[]}],depth:[{nums:["near","far"],vecs:["origin","direction"]}],cavity:[{nums:["ridge","valley"],vecs:[]}],fresnel:[{nums:["bias","scale","intensity","factor"],vecs:[]}],dust:[{nums:["coverage","softness","noiseStrength","noiseScale"],vecs:[]}],rainbow:[{nums:["filmThickness","movement","noiseStrength","noiseScale"],vecs:["offset","wavelengths"]}],noise:[{nums:["scale","move","seed","highCut","lowCut","smoothness"],vecs:["size","distortion","fA","fB"]}],pattern:[{nums:["blending","size","variation","smoothness","zigzag","rotation"],vecs:["offset","frequency","vertical","horizontal"]}],outline:[{nums:["outlineWidth","contourWidth","outlineThreshold","contourThreshold","outlineSmoothing","contourFrequency"],vecs:["contourDirection"]}],toon:[{nums:["noiseStrength","noiseScale"],vecs:["offset","source"]}],transmission:[{nums:["roughness","thickness","ior"],vecs:[]}],reflection:[{nums:["blur","thickness","steps","stepSize"],vecs:[]}],texture:[{nums:[],vecs:["size"]},{nums:["rotation"],vecs:["repeat","offset"],path:["texture"]}],video:[{nums:[],vecs:["size"]},{nums:["rotation"],vecs:["repeat","offset"],path:["texture"]}],gradient:[{nums:["angle"],vecs:["offset","morph"]}],matcap:[{nums:["rotation"],vecs:[],path:["texture"]}]},nj=function(a){function r(a,n){var i,s=!(arguments.length>2)||void 0===arguments[2]||arguments[2],o=arguments.length>3?arguments[3]:void 0,l=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return V(this,r),(i=z(this,r)).allowVariableSaves=s,i.isTSLNodeMaterial=!0,i.layerIdGen=0,i.layers=[],i.flavors=[],i.depthTwins=[],i.depthPrepass=!1,i.depthPrepassCutoff=0,i.depthPrepassTwins=[],i.flatShading=!1,i.wireframe=!1,i.emissiveNode=null,i.shapeBlendOptions=null,i.envMapRotation=ei.rotation,i._shapeBlendResources=null,i._shapeBlendColorNode=null,i.shapeBlendObjectNormal=null,i.displacedObjectNormal=null,i.syntheticMapLayers=new Map,i._structuralKey=null,i._structuralKeyVersion=-1,i.forceRainbowNoise=new Set,i.root=null!=o?o:i,i.isDepthPrepassTwin=l,i.fog=!0,i.dithering=!0,i.vertexColors=!1,i.transparent=!0,o?(i.lastContext=o.lastContext,i.syncFromRoot()):i.reset0(a,n),es.add(i),i.addEventListener("dispose",function(){es.delete(i)}),i}return P(r,a),M(r,[{key:"_invalidateStructuralKey",value:function(){this._structuralKey=null,this._structuralKeyVersion=-1}},{key:"customProgramCacheKey",value:function(){var a=this._structuralKey;if(null===a||this._structuralKeyVersion!==this.version){try{a=function(a){var r=a.lightLayer,n=r.data,i=function(r){if(!r)return -1;if("string"!=typeof r){var n,i,s,o=null==(s=a.syntheticMapLayers)?void 0:s.get(r);return void 0!==o?"img(".concat(nC(o),";o=").concat(JSON.stringify(null!=(n=r.offset)?n:null),";r=").concat(JSON.stringify(null!=(i=r.repeat)?i:null),")"):"img"}var l=a.layers.findIndex(function(a){return a.uuid===r});if(-1===l||"fragment"!==a.layers[l].kind)return -1;var u=a.layers[l].type;return"texture"===u||"video"===u?l:-1},s="physical"===a.category,o=["spe-tsl-v1","lights=".concat(a.lights),"cat=".concat(a.category),"lvis=".concat(!0===n.visible),"lidx=".concat(a.layers.indexOf(r)),"bump=".concat(i(n.bumpMap)),"rough=".concat(s?i(n.roughnessMap):-1),"metal=".concat(s?i(n.metalnessMap):-1),"nrm=".concat(s?i(n.normalMap):-1),"ao=".concat(s?i(n.aoMap):-1),"emis=".concat(s?i(n.emissiveMap):-1),"rch=".concat(s?null!=(d=n.roughnessMapChannel)?d:"luminance":""),"mch=".concat(s?null!=(h=n.metalnessMapChannel)?h:"b":""),"ach=".concat(s?null!=(m=n.aoMapChannel)?m:"r":"")],l=!0,u=!1,c=void 0;try{for(var d,h,m,f,v=a.layers[Symbol.iterator]();!(l=(f=v.next()).done);l=!0){var p=f.value;o.push(nC(p))}}catch(a){u=!0,c=a}finally{try{l||null==v.return||v.return()}finally{if(u)throw c}}return o.join("|")}(this),null!==this.shapeBlendOptions&&(a+="|sb:".concat(this.uuid,":").concat(+(null!==this._shapeBlendResources)))}catch(n){a=A(R(r.prototype),"customProgramCacheKey",this).call(this)}this._structuralKey=a,this._structuralKeyVersion=this.version}var n=N(this.envNode,ec)?ei.version:0,i=this.physicalLobes();return"".concat(a,"|env").concat(n,"|lobes").concat(!!i.clearcoat|2*!!i.sheen|4*!!i.iridescence)}},{key:"isRoot",get:function(){return this.root===this}},{key:"applyDepthPrepassPolicy",value:function(){if(this.isDepthPrepassTwin)return this.depthPrepass=!1,this.colorWrite=!1,void(this.depthWrite=!0);var a=(0,i.b)({transparent:this.transparent,depthTest:this.depthTest,wireframe:this.wireframe,shapeBlend:null!==this.shapeBlendOptions,data:this.root.data});this.depthPrepass=a,this.depthWrite=!a}},{key:"getDepthPrepassTwin",value:function(a){var r=this.depthPrepassTwins[a];if(void 0===r){var n=this.root;(r=new nj(n.data,n.lastContext,n.allowVariableSaves,n,!0)).flatShading=this.flatShading,r.side=a,r.wireframe=!1,r.depthPrepassCutoff=g.g,r.applyDepthPrepassPolicy(),this.depthPrepassTwins[a]=r,n.depthTwins.push(r)}return r}},{key:"vertexObjectNormal",get:function(){var a;return null!=(a=this.shapeBlendObjectNormal)?a:this.root.displacedObjectNormal}},{key:"category",get:function(){return this.lightLayer.category}},{key:"envReflectiveInLow",value:function(){var a=!1,r=!0,n=!1,i=void 0;try{for(var s,o=this.layers[Symbol.iterator]();!(r=(s=o.next()).done);r=!0){var l=s.value.data;if("physical"===(null==l?void 0:l.category)&&(a=!0,void 0!==l.roughnessMap||void 0!==l.metalnessMap||"number"!=typeof l.roughness||"number"!=typeof l.metalness||void 0!==l.clearcoat||void 0!==l.sheen||void 0!==l.iridescence||void 0!==l.ior||l.metalness>.3||l.roughness<.4))return!0}}catch(a){n=!0,i=a}finally{try{r||null==o.return||o.return()}finally{if(n)throw i}}return!a}},{key:"hasAO",get:function(){var a;return null!=(a=this.lightLayer.getValue("occlusion"))&&a}},{key:"fragment",get:function(){}},{key:"reset",value:function(a,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];(this.data!==a||n)&&this.reset0(a,r)}},{key:"reset0",value:function(a,r){var n=this;this.lastContext=r,this.data=a;var s=null!=(d=a.layers)?d:y.ea.defaultTwoLayerData("phong").layers,o=!0,l=!1,c=void 0;try{for(var d,h,m,f=this.layers[Symbol.iterator]();!(o=(m=f.next()).done);o=!0)m.value.dispose()}catch(a){l=!0,c=a}finally{try{o||null==f.return||f.return()}finally{if(l)throw c}}var v=!0,p=!1,_=void 0;try{for(var x,T=this.syntheticMapLayers.values()[Symbol.iterator]();!(v=(x=T.next()).done);v=!0)x.value.dispose()}catch(a){p=!0,_=a}finally{try{v||null==T.return||T.return()}finally{if(p)throw _}}this.syntheticMapLayers.clear();var w=[],S=!0,z=!1,V=void 0;try{for(var k,M=s[Symbol.iterator]();!(S=(k=M.next()).done);S=!0){var A=k.value;try{var R=function(a,r,n,s){if("light"===n.type)return nq(a,r,n,s);if("texture"===n.type||"video"===n.type||"matcap"===n.type)return nW(a,r,n,s);if("displace"===n.type)return function(a,r,n,i){if("noise"!==n.displacementType)throw Error();var s,o,l,u=new nL("vertex",a,r,n),c=function(a,r){var n;return null!=(n=(0,g._)(a,i))?n:r};return nI(u,"offset","vec3",C(b.Fc,F(n.offset.map(function(a){return c(a,0)})))),nI(u,"scale","float",c(n.scale,10)),nI(u,"intensity","float",c(n.intensity,8)),nI(u,"movement","float",c(n.movement,1)),nI(u,"noiseType","int",null!=(s=n.noiseType)?s:0),nI(u,"voronoiStyle","int",null!=(o=n.voronoiStyle)?o:0),nI(u,"smoothness","float",c(n.smoothness,.5)),nI(u,"seed","float",c(n.seed,0)),nI(u,"highCut","float",c(n.highCut,1)),nI(u,"lowCut","float",c(n.lowCut,0)),nI(u,"quality","int",null!=(l=(0,g._)(n.quality,i))?l:1),nO(u,i),u}(a,r,n,s);var o=new nL("fragment",a,r,n),l=(0,i.f)(n,s),u=null!=(m=nN[n.type])?m:nN.color,c=!0,d=!1,h=void 0;try{for(var m,f,v,p=Object.entries(u)[Symbol.iterator]();!(c=(v=p.next()).done);c=!0){var y=I(v.value,2),_=y[0],x=y[1];nI(o,_,x.kind,null!=(f=l[_])?f:x.def())}}catch(a){d=!0,h=a}finally{try{c||null==p.return||p.return()}finally{if(d)throw h}}if("transmission"===n.type){var T=("u"<typeof window?"undefined":L(window))<"u"?window.innerWidth:1,w=("u"<typeof window?"undefined":L(window))<"u"?window.innerHeight:1;nI(o,"aspectRatio","vec2",T>=w?new b.Dc(w/T,1):new b.Dc(1,T/w))}return nG(o,l),nO(o,s),o}(this.layerIdGen++,A.id,A.data,r.shared);"rainbow"===R.type&&this.armRainbowNoiseSpecialization(R),w.push(R)}catch(a){console.warn("[spe] material layer '".concat(A.data.type,"' (").concat(A.id,") failed to build — skipping this layer"),a)}}}catch(a){z=!0,V=a}finally{try{S||null==M.return||M.return()}finally{if(z)throw V}}this.layers=w,this.layers.reverse();for(var P=0;P<this.layers.length;P++)this.layers[P].structIndex=P;this.name=null!=(h=a.name)?h:"Untitled Material";var E=this.layers.find(function(a){return N(a,nU)});if(void 0===E&&(E=nq(0,"",D(B({},y.da.defaultData("light","phong")),{visible:!1}),r.shared)),this.lightLayer=E,this.lights=!!this.lightLayer.data.visible,this.ctx={accumAlpha:(0,u.za)(0).toVar("accumAlpha"),lightsAvailable:this.lights&&("phong"===this.category||"lambert"===this.category||"physical"===this.category)},this.colorNode=(0,u.I)(function(){return n.buildColorStack()})(),this.buildVertexStack(),this.normalNode=this.buildNormalNode(this.displacedNormalView()),this.emissiveNode=this.lights&&"lambert"===this.category&&this.lightLayer.params.has("emissive")?this.lightLayer.params.get("emissive"):null,this.aoNode=null,this.lights&&"physical"===this.category){var U=this.lightLayer.params,O=this.lightLayer.lightData;if(U.has("emissive")){var G=this.findTextureMapLayer(O.emissiveMap);this.emissiveNode=(0,u.I)(function(){var a=(0,u.Cc)(U.getColor("emissive")).mul(U.getFloat("emissiveIntensity"));return null!==G&&(a=a.mul(function(a){var r,n=a.get("texture"),i=a.has("loaded")?a.getFloat("loaded"):(0,u.za)(1),s=rp(a),o=s.uvs,l=s.weights;if(null!==l){var c=(0,u.Cc)(n.sample(o[0]).rgb).toVar(),d=(0,u.Cc)(n.sample(o[1]).rgb).toVar(),h=(0,u.Cc)(n.sample(o[2]).rgb).toVar();r=c.mul(l.z).add(d.mul(l.x)).add(h.mul(l.y))}else r=(0,u.Cc)(n.sample(o[0]).rgb);return(0,u.hb)((0,u.Cc)(0),r,i)}(G.params))),a})()}var q=this.findTextureMapLayer(O.aoMap);null!==q&&(this.aoNode=(0,u.I)(function(){var a;return(0,u.hb)((0,u.za)(1),rx(q.params,null!=(a=O.aoMapChannel)?a:"r"),U.getFloat("aoMapIntensity"))})())}this.transparent=(0,g.Y)(a,r.shared),this.applyDepthPrepassPolicy(),eo(this),this.needsUpdate=!0;var W=!0,H=!1,j=void 0;try{for(var K,J=this.flavors[Symbol.iterator]();!(W=(K=J.next()).done);W=!0){var X=K.value;null==X||X.syncFromRoot()}}catch(a){H=!0,j=a}finally{try{W||null==J.return||J.return()}finally{if(H)throw j}}var Q=!0,Y=!1,Z=void 0;try{for(var $,ee=this.depthTwins[Symbol.iterator]();!(Q=($=ee.next()).done);Q=!0)$.value.syncFromRoot()}catch(a){Y=!0,Z=a}finally{try{Q||null==ee.return||ee.return()}finally{if(Y)throw Z}}this.saveVariableLocations(r)}},{key:"setTransparent",value:function(a,r){if(!this.isRoot)return void this.root.setTransparent(a,r);var n=this.transparent!==a;if(n){this.transparent=a,this.needsUpdate=!0;var i=!0,s=!1,o=void 0;try{for(var l,u=this.flavors[Symbol.iterator]();!(i=(l=u.next()).done);i=!0){var c=l.value;void 0!==c&&(c.transparent=a,c.needsUpdate=!0)}}catch(a){s=!0,o=a}finally{try{i||null==u.return||u.return()}finally{if(s)throw o}}var d=!0,h=!1,m=void 0;try{for(var f,v=this.depthTwins[Symbol.iterator]();!(d=(f=v.next()).done);d=!0){var p=f.value;p.transparent=a,p.needsUpdate=!0}}catch(a){h=!0,m=a}finally{try{d||null==v.return||v.return()}finally{if(h)throw m}}}this.applyDepthPrepassPolicy();var g=!0,y=!1,_=void 0;try{for(var x,b=this.flavors[Symbol.iterator]();!(g=(x=b.next()).done);g=!0){var T=x.value;null==T||T.applyDepthPrepassPolicy()}}catch(a){y=!0,_=a}finally{try{g||null==b.return||b.return()}finally{if(y)throw _}}n&&(null==r||r.markNeedsUpdateRendererDirty())}},{key:"syncFromRoot",value:function(){var a=this.root;this.data=a.data,this.layers=a.layers,this.lightLayer=a.lightLayer,this.ctx=a.ctx,this.name=a.name,this.lights=a.lights,this.colorNode=a.colorNode,this.positionNode=a.positionNode,this.normalNode=this.buildNormalNode(this.displacedNormalView()),this.emissiveNode=a.emissiveNode,this.aoNode=a.aoNode,this.transparent=a.transparent,this.applyDepthPrepassPolicy(),this._applyShapeBlendGraph(),eo(this),this.needsUpdate=!0}},{key:"getFlavor",value:function(a,r,n,i){if(!this.isRoot)return this.root.getFlavor(a,r,n,i);var s,o=n?6:3*!!a+r;if(0===(o+=7*((null!=(s=null==i?void 0:i.resolutionLevel)?s:0)-4*(null!=i&&!!i.useChildrenColors))))return this;o-=1;var l=this.flavors[o];return void 0===l&&((l=new nj(this.data,this.lastContext,this.allowVariableSaves,this)).flatShading=a,l.side=r,l.wireframe=n,i&&(l.shapeBlendOptions=B({},i),l.defines={SHAPEBLEND:i.resolutionLevel,SHAPEBLEND_C:+!!i.useChildrenColors},l._invalidateStructuralKey()),l.applyDepthPrepassPolicy(),this.flavors[o]=l),l}},{key:"getShapeBlendBaseColor",value:function(){var a,r,n,i=this.layers.find(function(a){return"fragment"===a.kind&&"color"===a.type}),s=null==i?void 0:i.getValue("color"),o=null==i?void 0:i.getValue("alpha");return{r:null!=(a=null==s?void 0:s.r)?a:1,g:null!=(r=null==s?void 0:s.g)?r:1,b:null!=(n=null==s?void 0:s.b)?n:1,a:null!=o?o:1}}},{key:"setShapeBlendResources",value:function(a){this._shapeBlendResources=a,this._applyShapeBlendGraph()}},{key:"_applyShapeBlendGraph",value:function(){var a=this;if(this.shapeBlendOptions&&this._shapeBlendResources){var r=(0,s.c)();if(null!==r){var n=r(this._shapeBlendResources);this.positionNode=n.position,this.shapeBlendObjectNormal=n.normal,this.normalNode=this.buildNormalNode((0,u.rb)((0,u.tc)(n.normal))),this.castShadowPositionNode=n.position,this.shapeBlendOptions.useChildrenColors&&(this._shapeBlendColorNode=n.color,this.colorNode=(0,u.I)(function(){return a.buildColorStack()})()),this.needsUpdate=!0}}}},{key:"lightLayerIndex",value:function(){return this.layers.findIndex(function(a){return N(a,nU)})}},{key:"findTextureMapLayer",value:function(a){if(!a)return null;if("string"!=typeof a)return y.V.is(a)?this.syntheticMapLayer(a):null;var r=this.layers.find(function(r){return r.uuid===a});return void 0===r||"fragment"!==r.kind?null:"texture"===r.type||"video"===r.type?r:null}},{key:"syntheticMapLayer",value:function(a){if(!this.isRoot)return this.root.syntheticMapLayer(a);var r=this.syntheticMapLayers.get(a);if(void 0!==r)return r;try{var n,i,s,o,l,u=y.da.defaultData("texture"),c=D(B({},u),{visible:!1,texture:D(B({},u.texture),{image:a.image,wrapping:null!=(n=a.wrapping)?n:1e3,offset:null!=(i=a.offset)?i:[0,0],repeat:null!=(s=a.repeat)?s:[1,1],minFilter:null!=(o=a.minFilter)?o:1008,magFilter:null!=(l=a.magFilter)?l:1006})}),d=nW(this.layerIdGen++,"mapImage".concat(this.layerIdGen),c,this.lastContext.shared);return this.syntheticMapLayers.set(a,d),d}catch(a){return console.warn("[spe] light-layer map image failed to build — skipped",a),null}}},{key:"buildNormalNode",value:function(a){if(this.lights&&"physical"===this.category&&!this.wireframe){var r=this.lightLayer.lightData,n=this.findTextureMapLayer(r.normalMap);if(null!==n){var i=this.lightLayer.params.getFloat("normalScale");return(0,u.I)(function(){return function(a,r,n){var i=(0,u.Cc)(null!=n?n:u.ub).toVar(),s=u.Kb,o=a.get("texture"),l=a.has("loaded")?a.getFloat("loaded"):(0,u.za)(1),c=function(a){var n=(0,u.Bc)(a).toVar(),c=(0,u.Cc)(o.sample(n).rgb.mul(2).sub(1)).toVar(),d=(0,u.Cc)((0,u.hb)((0,u.Cc)(0,0,1),c,l)).toVar();d.xy.mulAssign(r);var h=(0,u.Cc)((0,u.pa)(s)).toVar(),m=(0,u.Cc)((0,u.qa)(s)).toVar(),f=(0,u.Bc)((0,u.pa)(n)).toVar(),v=(0,u.Bc)((0,u.qa)(n)).toVar(),p=(0,u.Cc)((0,u.xb)(i)).toVar(),g=(0,u.Cc)((0,u.na)(m,p)).toVar(),y=(0,u.Cc)((0,u.na)(p,h)).toVar(),_=(0,u.Cc)(g.mul(f.x).add(y.mul(v.x))).toVar(),x=(0,u.Cc)(g.mul(f.y).add(y.mul(v.y))).toVar(),b=(0,u.za)((0,u.eb)((0,u.ua)(_,_),(0,u.ua)(x,x))).toVar(),T=(0,u.za)((0,u._b)(b.equal(0),(0,u.za)(0),u.ya.mul((0,u.Oa)(b)))).toVar();return(0,u.xb)(_.mul(d.x.mul(T)).add(x.mul(d.y.mul(T))).add(p.mul(d.z)))},d=rp(a),h=d.uvs,m=d.weights;if(null!==m){var f=c(h[0]),v=c(h[1]),p=c(h[2]);return(0,u.xb)(f.mul(m.z).add(v.mul(m.x)).add(p.mul(m.y)))}return c(h[0])}(n.params,i,a)})()}}var s=this.findTextureMapLayer(this.lightLayer.lightData.bumpMap),o=this.lights&&"lambert"!==this.category;if(null===s||!o||this.wireframe)return a;var l=this.lightLayer.params.getFloat("bumpMapIntensity");return(0,u.I)(function(){return function(a,r,n){var i=(0,u.Cc)(null!=n?n:u.ub).toVar(),s=u.Kb,o=a.get("texture"),l=rp(a),c=l.uvs,d=l.weights;if(null!==d){var h=r_(s,i,ry(o,c[0],r)),m=r_(s,i,ry(o,c[1],r)),f=r_(s,i,ry(o,c[2],r));return(0,u.xb)(h.mul(d.z).add(m.mul(d.x)).add(f.mul(d.y)))}return r_(s,i,ry(o,c[0],r))}(s.params,l,a)})()}},{key:"buildVertexStack",value:function(){var a,r,n=this.layers.filter(function(a){return"vertex"===a.kind});if(0===n.length)return this.positionNode=null,void(this.displacedObjectNormal=null);var i=(a=n.map(function(a){return a.params}),r=(0,u.Ac)("vec3","vDisplacedNormal"),{position:(0,u.I)(function(n){for(var i,s=u.Ib,o=u.tb,l=0;l<a.length;l++){var c=function(a,r,n){var i=function(a,r){var n,i=Math.trunc(null!=(n=a.getValue("noiseType"))?n:0),s={n:r,scale:a.getFloat("scale"),intensity:a.getFloat("intensity"),offset:a.getVec3("offset"),movement:a.getFloat("movement")};if(5===i)return function(r){return r3(D(B({},s),{p:r,voronoiStyle:a.getInt("voronoiStyle"),smoothness:a.getFloat("smoothness"),seed:a.getFloat("seed"),highCut:a.getFloat("highCut"),lowCut:a.getFloat("lowCut"),quality:a.getInt("quality")}))};var o=function(a){var r=r2.get(a);if(void 0===r){var n,i=null!=(n=rZ[a])?n:rZ[0];r=(0,u.I)(function(a){var r=a.n,n=a.scale,s=a.intensity,o=a.offset,l=a.movement,u=a.p;return u.add(r.mul(i(r1(u,o,n,l))).mul(s))}).setLayout({name:"spe_displaceScalar".concat(a),type:"vec3",inputs:[{name:"p",type:"vec3"},{name:"n",type:"vec3"},{name:"scale",type:"float"},{name:"intensity",type:"float"},{name:"offset",type:"vec3"},{name:"movement",type:"float"}]}),r2.set(a,r)}return r}(i);return function(a){return o(D(B({},s),{p:a}))}}(a,n),s=(0,u.Cc)(i(r)).toVar(),o=(0,u.Cc)(r0({v:n})).toVar(),l=(0,u.xb)((0,u.na)(n,o)).toVar(),c=(0,u.Cc)(i(r.add(o))).toVar(),d=(0,u.Cc)(i(r.add(l))).toVar();return{position:s,normal:(0,u.xb)((0,u.na)(c.sub(s),d.sub(s)))}}(a[l],r$(u.Ib),o);s=0===l?c.position:r$(s.add(c.position).mul(.5)),o=c.normal}var d=(0,u.Cc)(s).toVar();return r.assign(o),!0===(null==(i=n.needsPreviousData)?void 0:i.call(n))&&u.Jb.assign(d),d})(),normal:r});this.positionNode=i.position,this.displacedObjectNormal=i.normal}},{key:"displacedNormalView",value:function(){var a=this.root.displacedObjectNormal;return null===a?null:(0,u.rb)((0,u.tc)(a))}},{key:"maskSourceFor",value:function(a){var r=this.layers[a];if("fragment"===r.kind&&r.isMaskEnabled)return null;var n=this.layers[a+1];return void 0!==n&&"fragment"===n.kind&&n.isMaskEnabled&&n.data.visible?n:null}},{key:"runLayerBuilder",value:function(a,r,n){var i,s=(0,u.za)(1);null!==r&&(s=this.evaluateMask(r));var o={alpha:null!=(i=null==n?void 0:n.alpha)?i:a.alphaNode,isMask:a.isMaskNode,mask:s,mode:a.modeNode,noiseCompiledIn:a.noiseCompiledIn},l=rn(a.type)(a.params,o,this.ctx);return(null==n?void 0:n.color)?D(B({},l),{color:n.color}):l}},{key:"evaluateMask",value:function(a){var r=this.runLayerBuilder(a,null);return(0,u._a)(r.color.mul(r.calpha))}},{key:"buildColorStack",value:function(){for(var a=this.lightLayerIndex(),r=-1===a?0:a,n=null,i=0;i<r;i++){var s=this.layers[i];if("fragment"===s.kind){if(null===n){var o=this._shapeBlendColorNode;n=nk(this.runLayerBuilder(s,this.maskSourceFor(i),o?{color:nk(o.rgb),alpha:o.w}:void 0).color);continue}if(!s.isMaskEnabled){var l=this.runLayerBuilder(s,this.maskSourceFor(i));n=a9(n,l.color,l.calpha,s.modeNode)}}}return null!=n?n:(0,u.ka)(y.x)}},{key:"setup",value:function(a){a.context.setupClearcoatNormal=function(){return(0,u.mc)(u.ub,"NORMAL","vec3")},A(R(r.prototype),"setup",this).call(this,a)}},{key:"setupLightingModel",value:function(){var a=this.lightLayer.params.has("occlusion")?this.lightLayer.params.getBool("occlusion"):null;return function(a){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];switch(a){case"physical":var s=new rh(!0===(null==n?void 0:n.clearcoat),!0===(null==n?void 0:n.sheen),!0===(null==n?void 0:n.iridescence),!1,!1,!1);return s.envIrradianceActive=i,s;case"lambert":return new u.j(!1);case"toon":var o=new rd;return o.aoOcclusionGate=r,o;default:return new u.j}}(this.category,a,this.physicalLobes(),N(this.envNode,ec))}},{key:"physicalLobes",value:function(){var a=this.lightLayer.params;return{clearcoat:a.has("clearcoat"),sheen:a.has("sheen"),iridescence:a.has("iridescence")}}},{key:"setupVariants",value:function(a){if(this.lights){var r=null,n=null;if("physical"===this.category){var i=this.lightLayer.lightData,s=this.findTextureMapLayer(i.roughnessMap);null!==s&&(r=(0,u.I)(function(){var a;return rx(s.params,null!=(a=i.roughnessMapChannel)?a:"luminance")})());var o=this.findTextureMapLayer(i.metalnessMap);null!==o&&(n=(0,u.I)(function(){var a;return rx(o.params,null!=(a=i.metalnessMapChannel)?a:"b")})())}!function(a,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;if("phong"===a||"toon"===a)u.bc.assign(r.getFloat("shininess").max(1e-4)),u.fc.assign(r.getColor("specular"));else if("physical"===a){var s=r.getFloat("metalness"),o=r.getFloat("roughness"),l=r.getFloat("reflectivity");if(null!==n&&(o=n.mul(o)),null!==i&&(s=(0,u.ga)(i.mul(s),(0,u.za)(0),(0,u.za)(1))),u.fb.assign(s),u.Vb.assign((0,u.ga)(o,(0,u.za)(.0525),(0,u.za)(1))),r.has("ior")){var c=r.getFloat("ior"),d=r.has("specularColor")?(0,u.Cc)(r.getColor("specularColor")):(0,u.Cc)(1),h=r.has("specularIntensity")?r.getFloat("specularIntensity"):(0,u.za)(1);u.Pa.assign(c),u.fc.assign((0,u.gb)((0,u.Ob)(u.Pa.sub(1).div(u.Pa.add(1))).mul(d),(0,u.Cc)(1)).mul(h)),ro.assign((0,u.hb)(u.fc,u.sa.rgb,s)),u.gc.assign((0,u.hb)(h,(0,u.za)(1),s))}else{var m=(0,u.Cc)(l.pow(2).mul(.16));u.fc.assign(m),ro.assign((0,u.hb)(m,u.sa.rgb,s)),u.gc.assign((0,u.za)(1))}if(rs.assign(u.sa.rgb.mul((0,u.zb)(s))),r.has("clearcoat")&&(u.ha.assign(r.getFloat("clearcoat")),u.ja.assign((0,u.ga)(r.getFloat("clearcoatRoughness"),(0,u.za)(.0525),(0,u.za)(1)))),r.has("sheen")){var f=r.has("sheenColor")?(0,u.Cc)(r.getColor("sheenColor")):(0,u.Cc)(1);u.$b.assign(f.mul(r.getFloat("sheen"))),u.ac.assign((0,u.ga)(r.getFloat("sheenRoughness"),(0,u.za)(.07),(0,u.za)(1)))}r.has("iridescence")&&(u.Qa.assign(r.getFloat("iridescence")),u.Ra.assign(r.getFloat("iridescenceIOR")),u.Sa.assign(r.getFloat("iridescenceThickness")))}}(this.category,this.lightLayer.params,r,n)}}},{key:"setupLighting",value:function(a){var r=this,n=!0===this.lights||null!==this.lightsNode,i=!0===this.lights?this.setupMaterialLightings(a):[],s=n?null!=(d=this.lightsNode)?d:a.lightsNode:null,o=!0===this.lights?(0,u.Cc)(0):u.sa.rgb,l=(0,u.Cc)(0),c=(0,u.Cc)(0);if(s&&(i.length>0||s.getScope().hasLights)){var d,h,m=this.setupLightingModel()||null,f=(0,u.Xa)(s,m,i,this.backdropNode,this.backdropAlphaNode),v=null!=(h=f._value)?h:f._value=f.getContext();l=v.reflectedLight.directSpecular,c=v.reflectedLight.indirectSpecular,o=f}return null!==this.emissiveNode&&void 0!==this.emissiveNode&&(u.va.assign((0,u.Cc)(this.emissiveNode)),o=o.add(u.va)),(0,u.I)(function(){return r.applyPostLighting(o,l,c)})()}},{key:"applyPostLighting",value:function(a,r,n){var i,s=this.ctx.accumAlpha,o=!0===this.lights,l=this.lightLayerIndex(),c=-1===l?0:l+1,d=(0,u.za)(1);if(o){var h,m,f,v,p,g,y,_,x,b,T,w=-1===l?null:this.maskSourceFor(l);null!==w&&(d=this.evaluateMask(w)),m=(h={outgoing:a,directSpecular:r,indirectSpecular:n,shadingAlpha:this.lightLayer.alphaNode,shadingBlend:this.lightLayer.modeNode,mask:d,occlusion:this.lightLayer.params.has("occlusion")?this.lightLayer.params.getBool("occlusion"):null,ctx:this.ctx}).outgoing,f=h.directSpecular,v=h.indirectSpecular,p=h.shadingAlpha,g=h.shadingBlend,y=h.mask,x=void 0===(_=h.occlusion)?null:_,b=h.ctx,T=(0,u.Cc)(m).toVar(),(0,u.J)((0,u.R)((0,u.yb)(T,u.sa.rgb)),function(){var a=(0,u.ga)((0,u.Va)(f.add(v)),(0,u.za)(0),(0,u.za)(1));b.accumAlpha.addAssign((0,u.zb)(b.accumAlpha).mul(p).mul(y).mul(a)),T.assign(a9(u.sa.rgb,T,p.mul(y),g)),T.mulAssign(rc(x))}),i=T}else i=(0,u.Cc)(a).toVar();for(var S=i,z=!1,V=c;V<this.layers.length;V++){var C=this.layers[V];if("fragment"===C.kind&&!C.isMaskEnabled){var k=this.runLayerBuilder(C,this.maskSourceFor(V));S=a9(S,k.color,k.calpha,C.modeNode),z=!0}}if(z&&i.assign(S),!o){var M=-1===l?null:this.maskSourceFor(l);null!==M&&(d=this.evaluateMask(M))}var A=this.lightLayer.params.has("alphaOverride")?this.lightLayer.params.getFloat("alphaOverride"):(0,u.za)(1),R=o?s:s.mul(d);if(u.sa.a.assign(R.mul(A)),u.sa.a.lessThanEqual((0,u.db)("depthPrepassCutoff","float")).discard(),this.dithering){var P=(0,u.Qb)(u.Yb.xy),N=(0,u.Cc)(.25/255,-.25/255,.25/255),B=(0,u.hb)(N.mul(2),N.mul(-2),P);i.assign(i.add(B))}return i}},{key:"getLayersOfType",value:function(a){return this.layers.filter(function(r){return r.type===a})}},{key:"getLayerByUuid",value:function(a){return this.layers.find(function(r){return r.uuid===a})}},{key:"armRainbowNoiseSpecialization",value:function(a){var r=this,n=this.root.forceRainbowNoise.has(a.uuid),i=a.data;if(a.noiseForced=n,a.noiseCompiledIn=n||(0,g.aa)(i.noiseStrength),!1===a.noiseCompiledIn){var s=a.uuid;a.onNoiseMismatch=function(a){return r.root.ensureRainbowNoiseCompiled(s,a)}}}},{key:"ensureRainbowNoiseCompiled",value:function(a,r){if(!this.isRoot)return this.root.ensureRainbowNoiseCompiled(a,r);var n,i,s,o=null==(n=this.data.layers)?void 0:n.data(a);return void 0!==o&&"rainbow"===o.type&&(!this.forceRainbowNoise.has(a)&&!(0,g.aa)(o.noiseStrength)||!1===(null==(i=this.getLayerByUuid(a))?void 0:i.noiseCompiledIn))&&(this.forceRainbowNoise.add(a),this.reset0(this.data,this.lastContext),void 0!==r&&(null==(s=this.getLayerByUuid(a))||s.setValue("noiseStrength",r)),!0)}},{key:"updateByOp",value:function(a,r,n){if(this.isRoot)if(void 0!==r?this.data=r:r=this.data,this.setTransparent((0,g.Y)(r,n.shared),n.scene),"layers"===a.path[0]){var i=a.path[1];if(void 0===i)return n.scene.markNeedsUpdateRendererDirty(),void this.reset0(r,n);0===a.type&&void 0!==a.props.occlusion&&n.scene.markNeedsUpdateRendererDirty();var s=this.layers.find(function(a){return a.uuid===i});if(!s)return;var o=r.layers.data(i);if(!o)return;this.updateLayerByOp(s,D(B({},a),{path:a.path.slice(2)}),o,n)?this.reset0(r,n):eo(this)}else this.reset0(r,n);else this.root.updateByOp(a,r,n)}},{key:"updateLayerTextureByOp",value:function(a,r,n){if(1!==r.path.length||0!==r.type)return!0;var i=r.props,s=n.texture;if(!s)return!0;var o=a.data.texture,l=!0,u=!1,c=void 0;try{for(var d,h,m,f=Object.keys(i)[Symbol.iterator]();!(l=(m=f.next()).done);l=!0){var v=m.value;if("repeat"!==v&&"offset"!==v&&"rotation"!==v||nj.hasVariableString(s[v])||nj.hasVariableString(null==o?void 0:o[v]))return!0}}catch(a){u=!0,c=a}finally{try{l||null==f.return||f.return()}finally{if(u)throw c}}if("matcap"===a.type)return"repeat"in i||"offset"in i||(a.data=n,a.setValue("rotation",(null!=(d=s.rotation)?d:0)*b.Cc.DEG2RAD),!1);var p=a.getValue("mat");if(!p)return!0;if(a.data=n,"repeat"in i){var g,y,_=s.repeat;p.repeat=[null!=(g=null==_?void 0:_[0])?g:1,null!=(y=null==_?void 0:_[1])?y:1]}if("offset"in i){var x,T,w=s.offset;p.offset=[null!=(x=null==w?void 0:w[0])?x:0,null!=(T=null==w?void 0:w[1])?T:0]}return"rotation"in i&&(p.rotation=null!=(h=s.rotation)?h:0),p.updateMatrix(),!1}},{key:"updateLayerByOp",value:function(a,r,n,i){if("texture"===r.path[0])return this.updateLayerTextureByOp(a,r,n);if(void 0!==r.path[0]||0!==r.type)return!0;var s=r.props;if("type"in s||"category"in s||"visible"in s||"noiseType"in s)return i.scene.markNeedsUpdateRendererDirty(),!0;var o=!0,l=!1,u=void 0;try{for(var c,d=Object.keys(s)[Symbol.iterator]();!(o=(c=d.next()).done);o=!0){var h=c.value;if("isMask"===h)return!0;if("rainbow"===a.type&&"noiseStrength"===h&&void 0!==a.noiseCompiledIn){var m=n[h];if((!0===a.noiseForced||(0,g.aa)(m))!==a.noiseCompiledIn)return!0}var f=g.ba[a.type];if(void 0!==f&&f.includes(h))return!0;var v=g.ca[a.type];if(void 0!==v&&v.includes(h)){var p=a.getValue(h),y=s[h];if(Array.isArray(p)&&Array.isArray(y)&&p.length!==y.length)return!0}var _=n[h],x=a.data[h];if("axis"!==h&&("string"==typeof _||"string"==typeof x)||Array.isArray(_)&&_.some(function(a){return"string"==typeof a})||Array.isArray(x)&&x.some(function(a){return"string"==typeof a}))return!0}}catch(a){l=!0,u=a}finally{try{o||null==d.return||d.return()}finally{if(l)throw u}}a.data=n;var b=!0,T=!1,w=void 0;try{for(var S,z=Object.keys(s)[Symbol.iterator]();!(b=(S=z.next()).done);b=!0){var V=S.value;this.applyLayerValue(a,V,n,i.shared)}}catch(a){T=!0,w=a}finally{try{b||null==z.return||z.return()}finally{if(T)throw w}}return!1}},{key:"applyLayerValue",value:function(a,r,n,i){if("alpha"!==r&&"visible"!==r&&"intensity"!==r||(nO(a,i),"intensity"===r&&"displace"!==a.type)){if("alphaOverride"===r&&N(a,nU))return void a.setValue("alphaOverride",(0,g.Z)(n[r],i));if(a.hasValue(r)){var s=a.uniformKinds.get(r),o=n[r];switch(s){case"color":case"colorVec4":var l=a.getValue(r),u="string"==typeof o?i.color(o):nA(o,function(){return null!=l?l:new g.i(1,1,1,1)});l&&u&&l.setRGBA(u.r,u.g,u.b,"a"in u?u.a:1);break;case"vec2":var c,d,h=a.getValue(r);h&&Array.isArray(o)&&h.set(Number(null!=(c=o[0])?c:h.x),Number(null!=(d=o[1])?d:h.y));break;case"vec3":var m,f,v,p=a.getValue(r);p&&Array.isArray(o)&&p.set(Number(null!=(m=o[0])?m:p.x),Number(null!=(f=o[1])?f:p.y),Number(null!=(v=o[2])?v:p.z));break;case"vec4array":var y=a.getValue(r);if(y&&Array.isArray(o))for(var _=0;_<Math.min(y.length,o.length);_++){var x=o[_];y[_].set(x[0],x[1],x[2],x[3])}break;case"floatArray":var b=a.getValue(r);if(b&&Array.isArray(o))for(var T=0;T<Math.min(b.length,o.length);T++)b[T]=Number(o[T]);break;case"axis":a.setValue(r,["x","y","z"].indexOf(String(o)));break;case"bool":a.setValue(r,!!o);break;default:("number"==typeof o||"boolean"==typeof o)&&a.setValue(r,o)}}}}},{key:"onVariableUpdate",value:function(a,r,n){if("alphaOverride"===a[0])return this.setTransparent((0,g.Y)(this.data,n.shared),n.scene),void this.lightLayer.setValue("alphaOverride",Math.max(0,Math.min(Number(r)/100,1)));if("layer"===a[0]){var i=a[1],s=a[2];if(i&&s){var o=this.layers.find(function(a){return a.uuid===i});if(null==o?void 0:o.hasValue(s)){if("alpha"===s)return this.setTransparent((0,g.Y)(this.data,n.shared),n.scene),void o.setValue(s,Math.max(0,Math.min(Number(r)/100,1)));var l=o.getValue(s),u=a[3];("x"===u||"y"===u||"z"===u)&&(null==l?void 0:l.isVector3)||("x"===u||"y"===u)&&(null==l?void 0:l.isVector2)?l[u]=Number(r):N(l,b.Ic)||o.setValue(s,r)}}}}},{key:"saveVariableLocations",value:function(a){var r,n,i=this;if(this.allowVariableSaves){var s=null==(r=this.data.layers)?void 0:r.find(function(a){return"light"===a.data.type});s&&a.shared.getVariable(s.data.alphaOverride,["material",this.uuid,"alphaOverride"]),null==(n=this.data.layers)||n.forEach(function(r){var n=r.data;"alpha"in n&&"string"==typeof n.alpha&&a.shared.getVariable(n.alpha,["material",i.uuid,"layer",r.id,"alpha"]);var s=nH["displace"===r.data.type?"noise"===n.displacementType?"displace_noise":"displace_map":r.data.type],o=!0,l=!1,u=void 0;if(s)try{for(var c,d=s[Symbol.iterator]();!(o=(c=d.next()).done);o=!0)!function(){var s=c.value,o=n,l=!0,u=!1,d=void 0;try{for(var h,m,f,v=(null!=(h=s.path)?h:[])[Symbol.iterator]();!(l=(f=v.next()).done);l=!0){var p=f.value;p in o&&(o=o[p])}}catch(a){u=!0,d=a}finally{try{l||null==v.return||v.return()}finally{if(u)throw d}}var g=!0,y=!1,_=void 0;try{for(var x,b=s.nums[Symbol.iterator]();!(g=(x=b.next()).done);g=!0){var T=x.value;T in o&&a.shared.getVariable(o[T],["material",i.uuid,"layer",r.id].concat(F(null!=(m=s.path)?m:[]),[T]))}}catch(a){y=!0,_=a}finally{try{g||null==b.return||b.return()}finally{if(y)throw _}}var w=!0,S=!1,z=void 0;try{for(var V,C=s.vecs[Symbol.iterator]();!(w=(V=C.next()).done);w=!0)!function(){var n=V.value;n in o&&o[n].forEach(function(o,l){var u;a.shared.getVariable(o,["material",i.uuid,"layer",r.id].concat(F(null!=(u=s.path)?u:[]),[n,0===l?"x":1===l?"y":"z"]))})}()}catch(a){S=!0,z=a}finally{try{w||null==C.return||C.return()}finally{if(S)throw z}}}()}catch(a){l=!0,u=a}finally{try{o||null==d.return||d.return()}finally{if(l)throw u}}})}}},{key:"clampUniformsForPreview",value:function(a,r){var n=!0,i=!1,s=void 0;try{for(var o,l=this.layers[Symbol.iterator]();!(n=(o=l.next()).done);n=!0){var u=o.value;if("displace"===u.type){var c,d=u.uniforms["f".concat(u.id,"_intensity")];c=d.value,d.value=Math.min(Math.max(c,a),r)}}}catch(a){i=!0,s=a}finally{try{n||null==l.return||l.return()}finally{if(i)throw s}}}},{key:"updateFrame",value:function(){}},{key:"assetsLoaded",value:function(){if(!this.layers.every(function(a){return a.assetsLoaded}))return!1;var a=!0,r=!1,n=void 0;try{for(var i,s=this.root.syntheticMapLayers.values()[Symbol.iterator]();!(a=(i=s.next()).done);a=!0)if(!i.value.assetsLoaded)return!1}catch(a){r=!0,n=a}finally{try{a||null==s.return||s.return()}finally{if(r)throw n}}return!0}},{key:"nodeMaterialDispose",value:function(){if(this.isRoot){var a=!0,r=!1,n=void 0;try{for(var i,s=this.layers[Symbol.iterator]();!(a=(i=s.next()).done);a=!0)i.value.dispose()}catch(a){r=!0,n=a}finally{try{a||null==s.return||s.return()}finally{if(r)throw n}}var o=!0,l=!1,u=void 0;try{for(var c,d=this.syntheticMapLayers.values()[Symbol.iterator]();!(o=(c=d.next()).done);o=!0)c.value.dispose()}catch(a){l=!0,u=a}finally{try{o||null==d.return||d.return()}finally{if(l)throw u}}this.syntheticMapLayers.clear()}this.dispose();var h=!0,m=!1,f=void 0;try{for(var v,p=this.flavors[Symbol.iterator]();!(h=(v=p.next()).done);h=!0){var g=v.value;null==g||g.dispose()}}catch(a){m=!0,f=a}finally{try{h||null==p.return||p.return()}finally{if(m)throw f}}var y=!0,_=!1,x=void 0;try{for(var b,T=this.depthTwins[Symbol.iterator]();!(y=(b=T.next()).done);y=!0)b.value.dispose()}catch(a){_=!0,x=a}finally{try{y||null==T.return||T.return()}finally{if(_)throw x}}}}],[{key:"hasVariableString",value:function(a){return"string"==typeof a||Array.isArray(a)&&a.some(function(a){return"string"==typeof a})}}]),r}(u.c),nK=function(a){function r(a,n,i){var s;return V(this,r),(s=z(this,r,[a,n,!1])).isTSLSharedMaterial=!0,s.uuid=i,s.allowVariableSaves=!0,s.saveVariableLocations(n),s}return P(r,a),r}(nj);function nJ(a,r){var n=a.xyz;return r.add((0,u.na)(n,(0,u.na)(n,r).add(r.mul(a.w))).mul(2))}function nX(a){var r=rP(a),n=rP((0,u.Cc)(a.y.sub(19.1),a.z.add(33.4),a.x.add(47.2))),i=rP((0,u.Cc)(a.z.add(74.2),a.x.sub(124.5),a.y.add(99.4)));return(0,u.Cc)(r,n,i)}var nQ=(0,u.I)(function(a){var r=a.p.add(a.seed).toVar(),n=(0,u.Cc)(.1,0,0),i=(0,u.Cc)(0,.1,0),s=(0,u.Cc)(0,0,.1),o=nX(r.sub(n)).toVar(),l=nX(r.add(n)).toVar(),c=nX(r.sub(i)).toVar(),d=nX(r.add(i)).toVar(),h=nX(r.sub(s)).toVar(),m=nX(r.add(s)).toVar(),f=d.z.sub(c.z).sub(m.y).add(h.y),v=m.x.sub(h.x).sub(l.z).add(o.z),p=l.y.sub(o.y).sub(d.x).add(c.x);return(0,u.xb)((0,u.Cc)(f,v,p).mul(5))});function nY(a,r){return nQ({p:a,seed:r})}function nZ(a,r,n){return(0,u.Cc)(rU(a.add((0,u.Cc)(n)).mul(r)),rU(a.add((0,u.Cc)(n.add(20))).mul(r)),rU(a.add((0,u.Cc)(n.sub(30))).mul(r)))}function n$(a){return{f:function(r){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return null!=(n=a.node(r))?n:a.getUniform(r,i)},v3:function(r){var n;return null!=(n=a.node(r))?n:a.getUniform(r,null)},v4:function(r){var n;return null!=(n=a.node(r))?n:a.getUniform(r,null)},tex:function(r){var n;return null!=(n=a.node(r))?n:a.getTexture(r,null)}}}var n0=function(){function a(){V(this,a),this.nodes=new Map,this.textureNodes=new Map}return M(a,[{key:"getUniform",value:function(a,r){var n=this.nodes.get(a);return n||(n=(0,u.vc)(r),this.nodes.set(a,n)),n}},{key:"getTexture",value:function(a,r){var n=this.textureNodes.get(a);return n||(n=(0,u.oc)(null!=r?r:new b.Ic),this.textureNodes.set(a,n)),n}},{key:"node",value:function(a){var r;return null!=(r=this.nodes.get(a))?r:this.textureNodes.get(a)}},{key:"adopt",value:function(a){var r=!0,n=!1,i=void 0;try{for(var s,o,l=Object.keys(a)[Symbol.iterator]();!(r=(o=l.next()).done);r=!0)s=this,function(){var r=o.value,n=a[r].value;if(N(n,b.Ic)||n&&"object"==(void 0===n?"undefined":L(n))&&n.isTexture){var i=s.getTexture(r,n);i.value=n,Object.defineProperty(a,r,{configurable:!0,enumerable:!0,value:{get value(){return i.value},set value(e){i.value=e}}})}else{var l=s.getUniform(r,n);l.value=n,Object.defineProperty(a,r,{configurable:!0,enumerable:!0,value:{get value(){return l.value},set value(e){l.value=e}}})}}()}catch(a){n=!0,i=a}finally{try{r||null==l.return||l.return()}finally{if(n)throw i}}}}]),a}(),n1=function(){function a(r,n,i,s){var o=this;V(this,a),this.name=r,this.kind=n,this.initialTexture=i,this.currentIndex=0,this.registry=new n0,this.depTextureNodes=new Map,this.dependencies=[],this.nodeMaterial=null,this._uniformsStore={};var l=function(){return new b.Kc(s,s,{type:b.Aa,minFilter:b.na,magFilter:b.na,wrapS:b.la,wrapT:b.la,depthBuffer:!1})};this.renderTargets=[l(),l()],this.material=Object.defineProperty({},"uniforms",{get:function(){return o._uniformsStore},set:function(a){o.registry.adopt(a),o._uniformsStore=a}})}return M(a,[{key:"currentRenderTarget",get:function(){return this.renderTargets[this.currentIndex]}},{key:"nextRenderTarget",get:function(){return this.renderTargets[1-this.currentIndex]}},{key:"advance",value:function(){this.currentIndex=1-this.currentIndex}},{key:"dispose",value:function(){var a;this.renderTargets[0].dispose(),this.renderTargets[1].dispose(),null==(a=this.nodeMaterial)||a.dispose()}}]),a}(),n2=new u.v,n3=function(){function a(r,n,i,s){V(this,a),this.sizeX=r,this.sizeY=n,this.renderer=i,this.features=s,this.variables=[],this._copyMaterial=null,this._copyTextureNode=(0,u.oc)(new b.Ic)}return M(a,[{key:"addVariable",value:function(a,r,n){var i=new n1(a,"uCurrentPosition"===a?"position":"uCurrentVelocity"===a?"velocity":"emissionRate",n,this.sizeX);return this.variables.push(i),i}},{key:"setVariableDependencies",value:function(a,r){a.dependencies=r;var n=!0,i=!1,s=void 0;try{for(var o,l=r[Symbol.iterator]();!(n=(o=l.next()).done);n=!0){var c=o.value;a.depTextureNodes.has(c.name)||a.depTextureNodes.set(c.name,(0,u.oc)(c.currentRenderTarget.texture))}}catch(a){i=!0,s=a}finally{try{n||null==l.return||l.return()}finally{if(i)throw s}}}},{key:"init",value:function(){if(!this._copyMaterial){var a=new u.c;a.name="WebGPUComputation.copy",a.fragmentNode=(0,u.Dc)(this._copyTextureNode),a.depthTest=!1,a.depthWrite=!1,a.blending=b.m,this._copyMaterial=a}var r=!0,n=!1,i=void 0;try{for(var s,o,l=this.variables[Symbol.iterator]();!(r=(o=l.next()).done);r=!0)s=this,function(){var a=o.value;s._copyTextureNode.value=a.initialTexture;var r=!0,n=!1,i=void 0;try{for(var l,c=a.renderTargets[Symbol.iterator]();!(r=(l=c.next()).done);r=!0){var d=l.value;s._renderQuad(s._copyMaterial,d)}}catch(a){n=!0,i=a}finally{try{r||null==c.return||c.return()}finally{if(n)throw i}}var h=new u.c;h.name="WebGPUComputation.".concat(a.kind),h.fragmentNode=function(a,r){var n,i,s,o;switch(a){case"position":return n=n$(r.registry),(0,u.I)(function(){var a=(0,u.yc)(),i=r.depTexture("uCurrentPosition"),s=r.depTexture("uCurrentVelocity"),o=r.depTexture("uCurrentEmissionRate"),l=i.sample(a).toVar().xyz.toVar(),c=o.sample(a).toVar(),d=c.x.toVar(),h=c.y.toVar(),m=c.z.toVar(),f=n.tex("uOriginalPosition").sample(a).xyz.mul(n.v3("uEmitterSize")).toVar(),v=s.sample(a).toVar(),p=v.xyz.toVar(),g=v.w.toVar(),y=n.f("uMaxLifeTime",1),_=(0,u.ic)(.5,g),x=(0,u.za)(3).mul(_),b=p.mul((0,u.za)(1).add(x)),T=p.mul((0,u.gb)(n.f("uFPSRatio",1),(0,u.za)(5)));l.addAssign((0,u.hb)(T,b,_));var w=nJ(n.v4("uWorldQuaternion"),f).add(n.v3("uWorldOffset"));l.assign((0,u.hb)(l,w,d)),m.assign((0,u.hb)(m,n.f("uTime"),d));var S=(0,u.eb)(y.sub(n.f("uTime").sub(m)),(0,u.za)(0)).div(y);return(0,u.hb)((0,u.Dc)(0),(0,u.Dc)(l,S),h)})();case"velocity":return i=n$(r.registry),s=r.features,(0,u.I)(function(){var a=(0,u.yc)(),n=r.depTexture("uCurrentPosition"),o=r.depTexture("uCurrentVelocity"),l=r.depTexture("uCurrentEmissionRate"),c=n.sample(a).xyz.toVar(),d=i.tex("uOriginalPosition").sample(a).xyz.toVar(),h=i.tex("uDirections").sample(a).xyz.toVar(),m=o.sample(a).xyz.toVar(),f=l.sample(a).toVar(),v=f.x.toVar(),p=f.y.toVar(),g=o.sample(a).w.toVar(),y=(0,u.za)(1).sub(i.f("uRandomMassFactor").mul(d.xy.dot((0,u.Bc)(12.9898,78.233)).sin().mul(43758.5453).fract().mul(.5).add(.5))).toVar(),_=i.f("uSpeed",1),x=i.f("uNoiseStrength"),b=i.f("uNoiseScale"),T=i.f("uNoiseSeed");(0,u.J)(p.equal(1),function(){s.USE_CURL_NOISE&&((0,u.J)(b.greaterThan(0),function(){m.assign(nY(c.mul(b).mul(.002),T).mul(x.add(1)).mul(.05).mul(_))}),(0,u.J)(x.greaterThan(0).and(b.equal(0)),function(){m.addAssign(nY(c,T).mul(x).mul(.05).mul(_))})),s.USE_SIMPLEX_NOISE&&((0,u.J)(b.greaterThan(0),function(){m.assign((0,u.Cc)(rP(c.mul(b).mul(.001)).mul(x.add(1)).mul(.1)).mul(_))}),(0,u.J)(x.greaterThan(0).and(b.equal(0)),function(){m.addAssign((0,u.Cc)(rP(c.mul(x).mul(.001)).mul(.05)).mul(_))})),s.USE_FBM_NOISE&&((0,u.J)(b.greaterThan(0),function(){m.assign(nZ(c.mul(b).mul(.001),x.add(1),T).mul(_))}),(0,u.J)(x.greaterThan(0).and(b.equal(0)),function(){m.addAssign(nZ(c.mul(x).mul(.001),x.add(1),T).mul(.1).mul(_))})),function(a,r,n,i,s){if(a.features.USE_COLLIDER){var o=(0,u.eb)(r.f("uBounce").mul(2),(0,u.za)(.01)).toVar(),l=r.f("particleSize");if(a.features.USE_SPHERE_COLLIDER){var c=r.v3("uColliderSize"),d=nJ(r.v4("uColliderQuaternionInvert"),n.sub(r.v3("uColliderPos"))).toVar().div(c).toVar(),h=(0,u.Va)(d).toVar();(0,u.J)(h.lessThanEqual((0,u.za)(1).add(l.div((0,u.Va)(c)))).and(s.equal(0)),function(){var a=d.mul((0,u.za)(1).add(l.div((0,u.Va)(c)))),n=(0,u.xb)(a.div(c.mul(c)));n=nJ(r.v4("uColliderQuaternion"),n),i.assign((0,u.Sb)(i,n).mul(o)),s.assign(1)}).Else(function(){s.assign(0)})}if(a.features.USE_BOX_COLLIDER){var m=r.v3("uColliderSize").div(2),f=nJ(r.v4("uColliderQuaternionInvert"),n.sub(r.v3("uColliderPos"))).toVar(),v=(0,u.P)(f).sub(m).toVar(),p=(0,u.eb)(v.x,(0,u.eb)(v.y,v.z)).toVar();(0,u.J)(p.lessThanEqual(l.mul(.5)).and(s.equal(0)),function(){var a=(0,u.Cc)(0).toVar();(0,u.J)(v.x.greaterThan(v.y).and(v.x.greaterThan(v.z)),function(){a.assign((0,u.Cc)((0,u.cc)(f.x),0,0))}).ElseIf(v.y.greaterThan(v.z),function(){a.assign((0,u.Cc)(0,(0,u.cc)(f.y),0))}).Else(function(){a.assign((0,u.Cc)(0,0,(0,u.cc)(f.z)))});var n=nJ(r.v4("uColliderQuaternion"),a);i.assign((0,u.Sb)(i,n).mul(o)),s.assign(1)}).Else(function(){s.assign(0)})}}}(r,i,c,m,g),function(a,r,n,i){if(a.features.USE_ATTRACTOR){var s=r.f("uForceIntensity"),o=r.f("uForceDamping");if(a.features.USE_FORCE_LOCAL_SPACE){var l,c,d=r.f("particleSize");if(a.features.USE_SPHERE_COLLIDER){var h=r.v3("uColliderSize"),m=nJ(r.v4("uColliderQuaternionInvert"),n.sub(r.v3("uColliderPos")));l=(0,u.Va)(m.div(h)).toVar(),c=(0,u.za)(1)}else{var f=r.v3("uColliderSize").div(2),v=nJ(r.v4("uColliderQuaternionInvert"),n.sub(r.v3("uColliderPos"))),p=(0,u.P)(v).sub(f);l=(0,u.eb)(p.x,(0,u.eb)(p.y,p.z)).toVar(),c=d}(0,u.J)(l.lessThanEqual(c),function(){var d=a.features.USE_SPHERE_COLLIDER?(0,u.za)(1).sub(l).mul(s):(0,u.eb)((0,u.za)(1).sub(c.div(l)),(0,u.za)(0)).mul(s),h=n.sub(r.v3("uColliderPos")),m=(0,u.xb)(h).mul(d);i.subAssign(m),i.mulAssign(o)})}else{var g=n.sub(r.v3("uColliderPos")),y=(0,u.xb)(g).mul(s);i.subAssign(y),i.mulAssign(o)}}}(r,i,c,m),function(a,r,n,i,s,o,l){if(a.features.USE_VORTEX){var c=r.f("particleSize"),d=r.v3("uColliderSize").div(2),h=nJ(r.v4("uColliderQuaternionInvert"),n.sub(r.v3("uColliderPos"))).toVar(),m=(0,u.P)(h).sub(d).toVar(),f=(0,u.eb)(m.x,(0,u.eb)(m.y,m.z)).toVar();(0,u.J)(f.lessThanEqual(c),function(){var a=r.f("uForceIntensity"),c=r.v3("uColliderPos").add(nJ(r.v4("uColliderQuaternion"),(0,u.Cc)(0))).sub(n).toVar(),d=(0,u.Cc)(0,1,.01),h=(0,u.xb)((0,u.na)(d,nJ(r.v4("uColliderQuaternion"),c))).toVar(),m=(0,u.Va)(c.mul(a).mul(3)).toVar();i.assign(h.mul(m).mul(.005));var f=nJ(r.v4("uWorldQuaternion"),s);i.addAssign(f.mul(l).mul((0,u.za)(1).sub(r.f("uForceDamping"))).div(o.mul(.5)))})}}(r,i,c,m,h,y,_)});var w=s.USE_NORMALS?h:i.v3("uDirectionsAxis");return m.assign((0,u.hb)(m,nJ(i.v4("uWorldQuaternion"),w).mul(_),v)),m.addAssign(i.v3("uGravity").div(y.mul(.5)).mul((0,u.za)(1).sub(g))),(0,u.Dc)(m,g)})();case"emissionRate":return o=n$(r.registry),(0,u.I)(function(){var a=(0,u.yc)(),n=r.depTexture("uCurrentEmissionRate"),i=o.tex("uIndex").sample(a).x.toVar(),s=n.sample(a).toVar(),l=s.y.toVar(),c=s.z.toVar(),d=o.f("uLastIndexEmitted"),h=o.f("uParticlesToEmit"),m=(0,u.ic)(d,i),f=(0,u.ic)(i,d.add(h).sub(1)),v=m.mul(f);return c.assign((0,u.hb)(c,o.f("uTime"),v)),(0,u.Dc)(v,(0,u.hb)(l,(0,u.za)(1),v),c,1)})()}}(a.kind,{features:s.features,registry:a.registry,depTexture:function(r){var n=a.depTextureNodes.get(r);if(!n)throw Error('WebGPUComputationRenderer: variable "'.concat(a.name,'" reads undeclared dependency "').concat(r,'"'));return n},resolution:new b.Dc(s.sizeX,s.sizeY)}),h.depthTest=!1,h.depthWrite=!1,h.blending=b.m,h.needsUpdate=!0,a.nodeMaterial=h}()}catch(a){n=!0,i=a}finally{try{r||null==l.return||l.return()}finally{if(n)throw i}}}},{key:"compute",value:function(){var a=!0,r=!1,n=void 0;try{for(var i,s=this.variables[Symbol.iterator]();!(a=(i=s.next()).done);a=!0){var o=i.value;if(o.nodeMaterial){var l=!0,u=!1,c=void 0;try{for(var d,h=o.dependencies[Symbol.iterator]();!(l=(d=h.next()).done);l=!0){var m=d.value;o.depTextureNodes.get(m.name).value=m.currentRenderTarget.texture}}catch(a){u=!0,c=a}finally{try{l||null==h.return||h.return()}finally{if(u)throw c}}this._renderQuad(o.nodeMaterial,o.nextRenderTarget)}}}catch(a){r=!0,n=a}finally{try{a||null==s.return||s.return()}finally{if(r)throw n}}var f=!0,v=!1,p=void 0;try{for(var g,y=this.variables[Symbol.iterator]();!(f=(g=y.next()).done);f=!0)g.value.advance()}catch(a){v=!0,p=a}finally{try{f||null==y.return||y.return()}finally{if(v)throw p}}}},{key:"getCurrentRenderTarget",value:function(a){return a.currentRenderTarget}},{key:"_renderQuad",value:function(a,r){var n=this.renderer,i=n.getRenderTarget(),s=n.getMRT();n.setMRT(null),n.setRenderTarget(r),n2.material=a,n2.render(n),n.setRenderTarget(i),n.setMRT(s)}},{key:"dispose",value:function(){var a=!0,r=!1,n=void 0;try{for(var i,s,o=this.variables[Symbol.iterator]();!(a=(s=o.next()).done);a=!0)s.value.dispose()}catch(a){r=!0,n=a}finally{try{a||null==o.return||o.return()}finally{if(r)throw n}}null==(i=this._copyMaterial)||i.dispose()}}]),a}();function n5(a,r){switch(a){case"linearFadeOut":return(0,u.za)(1).sub(r);case"linearInOut":return r.lessThan(.5).select(r,(0,u.za)(1).sub(r));case"exponentialInOut":return r.lessThan(.4).select(r.div(.4),r.greaterThan(.6).select((0,u.za)(1).sub(r.sub(.6).div(.4)),(0,u.za)(1)));case"constant":return(0,u.za)(1);default:return r}}function n4(a){return a.dot((0,u.Bc)(12.9898,78.233)).sin().mul(43758.5453).fract()}var n6=function(a){function r(a,n){V(this,r),(i=z(this,r)).easeOpacity="linearFadeIn",i.easeSize="linearFadeIn",i.useSizeEnd=!1,i.isColoringRandom=!1,i._uniformsStore={},i._uPosition=(0,u.oc)(new b.Ic),i._uTexture=(0,u.oc)(new b.Ic),i._uColor=(0,u.vc)(new b.Jc(1,1,1,1)),i._uColor2=(0,u.vc)(new b.Jc(1,1,1,1)),i._uSize=(0,u.vc)(1),i._uSizeEnd=(0,u.vc)(1),i._uWorldOffset=(0,u.vc)(new b.Fc),i._uWorldQuaternion=(0,u.vc)(new b.Jc(0,0,0,1)),i._uRotation=(0,u.vc)(0),i._uRotationEnd=(0,u.vc)(0),i._center=(0,u.vc)(new b.Dc(.5,.5)),i._uRandScaleFactor=(0,u.vc)(0),i._uRandRotationFactor=(0,u.vc)(0),i.context=n,i.name="WebGPUParticleMaterial",i.transparent=!0,i.depthTest=!0,i.depthWrite=!1,i.lights=!1;var i,s=function(a){return{get value(){return a.value},set value(t){a.value=t}}},o=function(a){return{get value(){return a.value},set value(t){var r,n,i,s,o,l,u;r=t,n=a.value,Array.isArray(r)?n.set(Number(null!=(i=r[0])?i:1),Number(null!=(s=r[1])?s:1),Number(null!=(o=r[2])?o:1),Number(null!=(l=r[3])?l:1)):r&&"object"==(void 0===r?"undefined":L(r))&&"r"in r&&n.set(r.r,r.g,r.b,null!=(u=r.a)?u:1)}}},l=function(a){return{get value(){return a.value},set value(t){t&&t.isTexture&&(a.value=t)}}};return i._binders={uPosition:l(i._uPosition),uTexture:l(i._uTexture),uColor:o(i._uColor),uColor2:o(i._uColor2),uSize:s(i._uSize),uSizeEnd:s(i._uSizeEnd),uWorldOffset:s(i._uWorldOffset),uWorldQuaternion:s(i._uWorldQuaternion),uRotation:s(i._uRotation),uRotationEnd:s(i._uRotationEnd),center:s(i._center),uRandScaleFactor:s(i._uRandScaleFactor),uRandRotationFactor:s(i._uRandRotationFactor)},i._uniformsStore=B({},i._binders),i.updateState(a),i._rebuildGraph(),i}return P(r,a),M(r,[{key:"uniforms",get:function(){return this._uniformsStore},set:function(a){var r=!0,n=!1,i=void 0;try{for(var s,o=Object.keys(a)[Symbol.iterator]();!(r=(s=o.next()).done);r=!0){var l,u=s.value,c=this._binders[u];if(c){var d=null==(l=a[u])?void 0:l.value;Object.defineProperty(a,u,{configurable:!0,enumerable:!0,value:c}),void 0!==d&&(c.value=d)}}}catch(a){n=!0,i=a}finally{try{r||null==o.return||o.return()}finally{if(n)throw i}}this._uniformsStore=a}},{key:"updateState",value:function(a){var r=!1;if(void 0!==a.coloring){var n="random"===a.coloring;r||(r=n!==this.isColoringRandom),this.isColoringRandom=n}if(void 0!==a.color&&(this.uniforms.uColor.value=Array.isArray(a.color)?a.color:this.context.shared.color(a.color)),void 0!==a.color2&&(this.uniforms.uColor2.value=Array.isArray(a.color2)?a.color2:this.context.shared.color(a.color2)),void 0!==a.size){this.uniforms.uSize.value=a.size[0],this.uniforms.uSizeEnd.value=a.size[1];var i=a.size[0]!==a.size[1];r||(r=i!==this.useSizeEnd),this.useSizeEnd=i}void 0!==a.ease&&a.ease!==this.easeOpacity&&(this.easeOpacity=a.ease,r=!0),void 0!==a.easeSize&&a.easeSize!==this.easeSize&&(this.easeSize=a.easeSize,r=!0),r&&this._rebuildGraph(),this.needsUpdate=!0}},{key:"_rebuildGraph",value:function(){var a=this,r=(0,u.Y)("particleRef","vec2"),n=this._uPosition,i=(0,u.I)(function(){var i,s,o,l=n.sample(r).toVar(),c=l.w.toVar(),d=l.xyz.sub(a._uWorldOffset);i=a._uWorldQuaternion,s=d,o=i.xyz,d=s.add(o.cross(o.cross(s).add(s.mul(i.w))).mul(2));var h=(0,u.Y)("position","vec3"),m=(0,u.za)(1).sub(c),f=a.useSizeEnd?h.mul((0,u.Cc)((0,u.hb)(a._uSize,a._uSizeEnd,m))):h.mul((0,u.Cc)(a._uSize.mul(n5(a.easeSize,m)))),v=u.nb,p=v.element(0).xyz.length(),g=v.element(1).xyz.length(),y=n4(r).toVar(),_=(0,u.za)(1).sub(a._uRandScaleFactor.mul(y)),x=(0,u.Bc)(p,g).mul(_).toVar(),b=2*Math.PI,T=y.mul(a._uRandRotationFactor).mul(b),w=(0,u.za)(1).sub(a._uRotation).mul(b),S=(0,u.za)(1).sub(a._uRotationEnd).mul(b),z=(0,u.hb)(w.add(T),S.add(T),c).toVar(),V=a._center,C=f.xy.sub(V.sub((0,u.Bc)(.5))).mul(x).toVar(),k=(0,u.Bc)((0,u.ma)(z).mul(C.x).sub((0,u.dc)(z).mul(C.y)),(0,u.dc)(z).mul(C.x).add((0,u.ma)(z).mul(C.y))).toVar(),M=u.lb.mul((0,u.Dc)(d,1)).toVar();return M.xy.addAssign(k),u.ca.mul(M)}),s=(0,u.I)(function(){var i=n.sample(r).w.toVar();i.lessThanEqual(.005).discard();var s=(0,u.za)(1).sub(i),o=a.isColoringRandom?n4(r):s,l=(0,u.hb)(a._uColor,a._uColor2,o).toVar(),c=n5(a.easeOpacity,s).toVar(),d=a._uTexture.sample((0,u.yc)()).toVar();return(0,u.Dc)(d.rgb.mul(l.rgb),l.a.mul(d.a).mul(c))});this.vertexNode=i(),this.colorNode=s(),this.needsUpdate=!0}},{key:"nodeMaterialDispose",value:function(){this.dispose()}}]),r}(u.c);function n8(a,r){return function(n,i,s,o){var l=s.mod(r).add(n.add(.5).div(a)).div(r),c=(0,u.Aa)(s.div(r)).add(i.add(.5).div(a)).div(r);return o.sample((0,u.Bc)(l,c))}}(0,c.a)({createComputation:function(a,r,n,i){return new n3(a,r,n,i)},createMaterial:function(a,r){return new n6(a,r)}});var n7=[[0,0,0],[1,0,0],[1,0,0],[1,1,0],[0,1,0],[1,1,0],[0,0,0],[0,1,0],[0,0,1],[1,0,1],[1,0,1],[1,1,1],[0,1,1],[1,1,1],[0,0,1],[0,1,1],[0,0,0],[0,0,1],[1,0,0],[1,0,1],[1,1,0],[1,1,1],[0,1,0],[0,1,1]];function n9(a){var r=(0,u.uc)(a.x.mul(65535).add(.5)),n=r.bitAnd((0,u.uc)(255)).toFloat().mul(.00392156862),i=r.shiftRight((0,u.uc)(8)).bitAnd((0,u.uc)(255)).toFloat().mul(.00392156862);return(0,u.Dc)(i,n,a.y,a.z)}function ie(a){var r=function(a){switch(a){case 5:return{levelShiftX:[4,6,12,24,48,96,192],scale:16,originOffset:16};case 7:return{levelShiftX:[4,6,12,24,48,96,192,384,768,1536],scale:4,originOffset:64};case 8:return{levelShiftX:[4,8,16,32,64,128,256,512,1024,2048,4096],scale:2,originOffset:128};default:return{levelShiftX:[4,8,16,32,64,128,256,512],scale:8,originOffset:32}}}(a.resolutionLevel),n=r.levelShiftX,i=r.scale,s=r.originOffset,o=a.pyramidLevelSizes.length,l=o%2==0?o-3:o-2,c=o%2==0,d=Math.pow(2,a.resolutionLevel),h=a.pyramidLevelSizes[o-1]/d,m=n8(d,h),f=a.pyramid1Size.width,v=a.pyramid1Size.height,p=a.pyramid2Size.width,g=a.pyramid2Size.height,y=(0,u.wc)(n7.map(function(a){var r=I(a,3),n=r[0],i=r[1],s=r[2];return new b.Fc(n,i,s)}));return function(r){var o=(0,u.Cc)(0).toVar(),_=(0,u.Cc)(0,0,1).toVar(),x=(0,u.Dc)(0).toVar(),b=r.toVar(),T=(0,u.Aa)(b.div(3)).toVar(),w=function(a,r){return(0,u.Bc)(a.x.add(r).add(.5).div(p),a.y.add(.5).div(g))},S=f-2,z=p-1,V=(0,u.Bc)(0,0).toVar(),C=a.pyramid2.sample(w(V,z)).toVar();return(0,u.J)(T.lessThan(C.x),function(){for(var r=(0,u.za)(0).toVar(),p=function(a){var n=C.add((0,u.Dc)(r)).toVar(),i=(0,u.Dc)(n.yzw,r),s=(0,u.Dc)((0,u.Dc)(T).greaterThanEqual(i)).mul((0,u.Dc)((0,u.Dc)(T).lessThan(n))).toVar();V.mulAssign(2),V.addAssign((0,u.Bc)(0,1).mul(s.x).add((0,u.Bc)(1,1).mul(s.y)).add((0,u.Bc)(1,0).mul(s.z))),r.assign(s.dot(i)),null==a||a()},g=0;g<l;)!function(r){var i=n[r];p(function(){var r;z-=i,C.assign(a.pyramid1.sample((r=S,(0,u.Bc)(V.x.add(r).add(.5).div(f),V.y.add(.5).div(v)))))});var s=n[++r];p(function(){S-=s,C.assign(a.pyramid2.sample(w(V,z)))}),g=++r}(g);c&&p(null);var k=V.x.mod(d).toVar(),M=V.y.mod(d).toVar(),A=(0,u.Aa)(V.x.div(d)).add((0,u.Aa)(V.y.div(d)).mul(h)).toVar(),R=b.sub(r.mul(3)).mul(.0625).add(.03125),P=m(k,M,A,a.voxel).toVar().w.add(.5).mul(.00390625),N=a.triTable.sample((0,u.Bc)(R,P)).x.mul(2).toInt().toVar(),B=(0,u.Cc)(k,M,A).add(y.element(N)).toVar(),D=(0,u.Cc)(k,M,A).add(y.element(N.add(1))).toVar(),E=m(B.x,B.y,B.z,a.potential).toVar(),I=m(D.x,D.y,D.z,a.potential).toVar(),F=E.x.div(E.x.sub(I.x));x.assign((0,u.hb)(n9(E.yzw),n9(I.yzw),F)),o.assign(B.add(D.sub(B).mul(F)).sub((0,u.Cc)(s)).mul(i));var L=m(B.x,B.y,B.z,a.voxel),U=m(D.x,D.y,D.z,a.voxel);_.assign((0,u.xb)((0,u.hb)(L.xyz,U.xyz,F)))}),{position:o,normal:_,color:x}}}function it(a,r){var n;!0===(null==(n=a.needsPreviousData)?void 0:n.call(a))&&u.Jb.assign(r)}var ia=function(a){return a},ir=function(a){return a},ii=s.h,is=s.i;function io(a,r){var n=a.xyz;return r.add(n.cross(n.cross(r).add(r.mul(a.w))).mul(2))}function il(a,r,n,i){var s=(0,u.ga)(a,-1,1),o=a.sub(s).mul(2).add(1),l=(0,u.ga)((0,u.za)(.5).add(s.mul(.5).mul(r.sub(s.mul(o).mul(n))).div(i)),0,1);return(0,u.hb)(r,s.mul(o).mul(n),l).sub(s.mul(i).mul(l).mul((0,u.za)(1).sub(l)))}function iu(a,r,n,i,s){var o=(0,u.za)(0).toVar(),l=n.y,c=n.z,d=n.w,h=(0,u.J)(a.lessThan(.5),function(){o.assign((0,u.Va)(r).sub(l))}).ElseIf(a.lessThan(1.5),function(){var a=(0,u.Cc)(l,c,d),n=(0,u.Va)(r.div(a)),i=(0,u.Va)(r.div(a.mul(a)));o.assign(n.mul(n.sub(1)).div(i))}).ElseIf(a.lessThan(2.5),function(){var a=(0,u.Cc)(l,c,d),n=(0,u.P)(r).sub(a).toVar();o.assign((0,u.Va)((0,u.eb)(n,(0,u.Cc)(0))).add((0,u.gb)((0,u.eb)(n.x,(0,u.eb)(n.y,n.z)),0)))}).ElseIf(a.lessThan(3.5),function(){var a=(0,u.P)((0,u.Bc)((0,u.Va)(r.xz),r.y)).sub((0,u.Bc)(c,l)).toVar();o.assign((0,u.gb)((0,u.eb)(a.x,a.y),0).add((0,u.Va)((0,u.eb)(a,(0,u.Bc)(0)))))}).ElseIf(a.lessThan(4.5),function(){var a=(0,u.Bc)((0,u.Va)(r.xz),r.y).toVar(),n=(0,u.Bc)(d,l),i=(0,u.Bc)(d.sub(c),l.mul(2)),s=(0,u.Bc)(a.x.sub((0,u.gb)(a.x,a.y.lessThan(0).select(c,d))),(0,u.P)(a.y).sub(l)).toVar(),h=a.sub(n).add(i.mul((0,u.ga)((0,u.ua)(n.sub(a),i).div((0,u.ua)(i,i)),0,1))).toVar(),m=h.x.lessThan(0).and(s.y.lessThan(0)).select((0,u.za)(-1),(0,u.za)(1));o.assign(m.mul((0,u.hc)((0,u.gb)((0,u.ua)(s,s),(0,u.ua)(h,h)))))}).ElseIf(a.lessThan(5.5),function(){var a=(0,u.Bc)((0,u.Va)(r.xy).sub(l),r.z);o.assign((0,u.Va)(a).sub(c))}),m=function(){var a=(0,u.P)(r.x).toVar(),n=(0,u.Bc)(l,c),s=i.w,h=n.y.mul(a).greaterThan(n.x.mul(r.y)).select((0,u.ua)((0,u.Bc)(a,r.y),n),(0,u.Va)((0,u.Bc)(a,r.y))),m=(0,u.Cc)(a,r.y,r.z);o.assign((0,u.hc)((0,u.ua)(m,m).add(d.mul(d)).sub(d.mul(h).mul(2))).sub(s))};return s?h.ElseIf(a.lessThan(6.5),m).Else(function(){o.assign(s(r,n,i))}):h.Else(m),o}function ic(a){var r=!(arguments.length>1)||void 0===arguments[1]||arguments[1],n=a.spatialDivisions,i=a.spatialn;return function(s,o){var l=r?(0,u.Dc)(0).toVar():(0,u.Dc)(0),c=(0,u.za)(1e3).toVar(),d=r?(0,u.za)(0).toVar():(0,u.za)(0),h=r?(0,u.za)(0).toVar():(0,u.za)(0),m=o.y.add(o.z.mul(n)).add(.5).div(n*n),f=function(n,i){var o=i.toVar();(0,u.K)(ii,function(i){var m=i.i;(0,u.J)(o.lessThan(1),function(){(0,u.G)()}),o.mulAssign(.5),(0,u.J)((0,u.Ca)(o).greaterThanEqual(.5),function(){var i=(0,u.za)(m).add(n).add(.5).mul(1/is),o=a.shapeRow(i,0).toVar(),f=a.shapeRow(i,1).toVar(),v=a.shapeRow(i,2).toVar(),p=a.shapeRow(i,3).toVar(),g=io(f,s.sub(o.xyz)).div(p.z).toVar(),y=iu(v.x,g,v,p,a.meshSdf).sub(p.y).mul(p.z).toVar(),_=p.x.toVar(),x=o.w;if(c.assign(il(x,c,y,_)),r){var b=(0,u.ic)(-1.5,x).mul((0,u.ic)(x,-.5)),T=(0,u.ec)(h,0,y.negate()),w=(0,u.hb)((0,u.za)(1),T,b);l.mulAssign(w),d.mulAssign(w),h.assign((0,u.eb)(h,_)),_.addAssign(a.colorKBump);var S=a.shapeRow(i,4).toVar(),z=(0,u.ec)(_,0,y).mul(S.a.greaterThanEqual(0).toFloat()).toVar();d.addAssign(z),l.addAssign(S.mul(z))}})})},v=function(r){var s=r.mul(4*ii).toVar(),l=a.spatialTex.sample((0,u.Bc)(o.x.mul(i).add(r).add(.5).div(i*n),m)).toVar();f(s,l.x),f(s.add(ii),l.y),f(s.add(2*ii),l.z),f(s.add(3*ii),l.w)};return 1===i?v((0,u.za)(0)):(0,u.K)(i,function(a){var r=a.i;v((0,u.za)(r).toVar())}),r&&l.divAssign(d),{sdf:(0,u.hb)(c,(0,u.za)(0),(0,u.ic)(1e20,c)).toVar(),color:l,colorDivisor:d}}}var id=[4,4,4],ih=function(a,r){return(0,u.Lc)(a,r)};function im(a){var r,n,i,s,o,l,c,d,h=a.resolution,m=h-1,f=a.colorResolution,v=a.capacity,p=h/4,g=p-1,y=(0,u.vc)(a.bboxHalf),_=(0,u.vc)(a.bboxOffset),x=(0,u.vc)(1e30),T=(0,u.vc)(new b.Fc(0,0,0)),w=(0,u.vc)(new b.Fc(p,p,p)),S=a.env.spatialDivisions,z=(0,u.za)(a.buildSeq).mul(0),V=null!=(r=a.sparseStorage)?r:null,C=V?V.poolBricks:0,k=V?Math.ceil(C/4096):0,M=null!=(n=null==V?void 0:V.meshlet)?n:null,A=M?M.drawIndex:null,R=M?Math.floor(v/24):0,P=M?M.vertexBlocks:0,N=function(a,r,n,i){var s=new u.F(a,r,n);return s.format=b.Ma,s.type=b.Aa,s.minFilter=b.na,s.magFilter=b.na,s.name=i,s},E=V?N(256,256,4*Math.max(k,1),"SplineShapeBlend.ultraSdfPool"):null!=(i=null==(l=a.reuseTextures)?void 0:l.sdfTexture)?i:N(h,h,h,"SplineShapeBlend.ultraSdf");E.format=b.Ma,E.type=b.Aa,E.minFilter=b.na,E.magFilter=b.na;var L=null!=(s=null==(c=a.reuseTextures)?void 0:c.colorTexture)?s:new u.F(f,f,f);L.name="SplineShapeBlend.ultraColor";var U=null!=(o=null==(d=a.reuseTextures)?void 0:d.coarseTexture)?o:new u.F(p,p,p);U.format=b.Ma,U.type=b.Aa,U.minFilter=b.na,U.magFilter=b.na,U.name="SplineShapeBlend.ultraCoarse";var O=(0,u.Ka)(8,"uint").toAtomic(),G=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return O.element(a)},q=V?(0,u.Ka)(M?12:4,"int").toAtomic():null,W=function(a){return q.element(a)},H=V?(0,u.Ka)(Math.max(C,1),"float"):null,j=p*p*p,K=V?(0,u.Ka)(j*(M?4:1),"float"):null,J=function(a){return(0,u.Na)(a.x.add(a.y.mul(p)).add(a.z.mul(p*p)))},X=function(a){return K.element(J(a))},Q=function(a){return K.element(J(a).add((0,u.Na)(j)))},Y=function(a){return K.element(J(a).add((0,u.Na)(2*j)))},Z=function(a){return K.element(J(a).add((0,u.Na)(3*j)))},$=function(a){return K.element(a.add((0,u.Na)(3*j)))},ee=V?(0,u.Ka)(Math.max(C,1),"float"):null,et=M?(0,u.Ka)(3*Math.max(R,1),"float"):null,ea=function(a){return et.element(a)},er=function(a){return ea((0,u.Na)(a))},en=function(a){return ea((0,u.Na)(a.add(R)))},ei=function(a){return ea(a.add((0,u.Na)(2*R)))},es=M?(0,u.Ka)(Math.max(P,1),"float"):null,eo=function(a){return es.element(a)},el=M?(0,u.Ka)(24*Math.max(R,1),"uint"):null,eu=function(a){return el.element(a)},ec=M?(0,u.vc)(0):null,ed=M?(0,u.vc)(new b.Oc):null,eh=M?(0,u.vc)(2):null,em=(0,u.wc)(Array.from(a.numTrisTable)),ef=(0,u.wc)(n7.map(function(a){var r=I(a,3),n=r[0],i=r[1],s=r[2];return new b.Fc(n,i,s)})),ev=ic(a.env,!1),ep=ic(a.env),eg=function(a,r){return a.div(r).mul(2).sub(1)},ey=function(a,r){return a.div(r).mul(S-1).floor()},e_=(0,u.I)(function(){for(var a=0;a<8;a++)(0,u.W)(G(a),(0,u.uc)(0))})(),ex=(0,u.I)(function(){(0,u.J)((0,u.Na)(u.Ja).greaterThanEqual((0,u.Na)(v)),function(){(0,u.O)()}),a.buffers.positions.element((0,u.Na)(u.Ja)).assign((0,u.Dc)(0))})(),eb=M?(0,u.I)(function(){(0,u.J)((0,u.Na)(u.Ja).greaterThanEqual((0,u.Na)(v)),function(){(0,u.O)()}),A.element((0,u.Na)(u.Ja)).assign((0,u.uc)(z))})():null,eT=(0,u.pc)(U),ew=function(a){return eT.load((0,u.Ua)((0,u.ga)(a,(0,u.Cc)(0),(0,u.Cc)(g)))).x},eS=function(a){return X((0,u.ga)(a,(0,u.Cc)(0),(0,u.Cc)(g)))},ez=function(a,r){var n=(0,u.eb)(a,0),i=(0,u.Aa)(n.div(4096)),s=n.sub(i.mul(4096)),o=(0,u.Aa)(s.div(64)),l=s.sub(o.mul(64));return(0,u.Cc)(l,o,i).mul(4).add(r)},eV=(0,u.I)(function(){var r,n,i=(0,u.Cc)(u.Ia).add(T).toVar();(0,u.J)(i.x.greaterThan(g).or(i.y.greaterThan(g)).or(i.z.greaterThan(g)),function(){(0,u.O)()});var s=(r=eg(i.mul(4).add((0,u.Cc)(1.5)),m),n=(0,u.za)(1e3).toVar(),(0,u.K)(is,function(i){var s=i.i;(0,u.J)((0,u.za)(s).greaterThanEqual(a.npart),function(){(0,u.G)()});var o=(0,u.za)(s).add(.5).mul(1/is),l=a.env.shapeRow(o,0).toVar(),c=a.env.shapeRow(o,1).toVar(),d=a.env.shapeRow(o,2).toVar(),h=a.env.shapeRow(o,3).toVar(),m=io(c,r.sub(l.xyz)).div(h.z).toVar(),f=iu(d.x,m,d,h,a.env.meshSdf).sub(h.y).mul(h.z).toVar();n.assign(il(l.w,n,f,h.x))}),n);(0,u.kc)(U,(0,u.Ua)(i),(0,u.Dc)(s.add(z),0,0,0)).toStack()})(),eC=function(a){(0,u.J)(a.x.greaterThan(g).or(a.y.greaterThan(g)).or(a.z.greaterThan(g)),function(){(0,u.O)()})},ek=V?(0,u.I)(function(){var a=(0,u.Cc)(u.Ia).toVar();eC(a),X(a).assign((0,u.za)(-1).add(z)),M&&(Q(a).assign((0,u.za)(-1).add(z)),Y(a).assign((0,u.za)(-1).add(z)))})():null,eM=V?(0,u.I)(function(){var a=(0,u.Cc)(u.Ia).add(T).toVar();eC(a);var r=ew(a).toVar(),n=eS(a).toVar();(0,u.J)((0,u.P)(r).greaterThan(x).and(n.greaterThan(-.5)),function(){var r=(0,u.U)(W(1),(0,u.Na)(1)).toVar();H.element(r).assign(n),X(a).assign((0,u.za)(-1).add(z))})})():null,eA=V?(0,u.I)(function(){var a=(0,u.Cc)(u.Ia).add(T).toVar();eC(a);var r=ew(a).toVar(),n=eS(a).toVar();(0,u.J)((0,u.P)(r).lessThanEqual(x).and(n.lessThan(-.5)),function(){var r=(0,u.za)(-1).toVar(),n=(0,u.X)(W(1),(0,u.Na)(1)).toVar();(0,u.J)(n.greaterThanEqual(1),function(){r.assign(H.element(n.sub(1)))}).Else(function(){(0,u.U)(W(1),(0,u.Na)(1));var a=(0,u.U)(W(0),(0,u.Na)(1)).toVar();(0,u.J)(a.lessThan((0,u.Na)(C)),function(){r.assign(a.toFloat())}).Else(function(){(0,u.W)(W(2),(0,u.Na)(1))})}),(0,u.J)(r.greaterThan(-.5),function(){ee.element((0,u.Na)(r)).assign(a.x.add(a.y.mul(256)).add(a.z.mul(65536))),X(a).assign(r.add(z))})})})():null,eR=V?(0,u.I)(function(){var a=(0,u.V)(W(0)).toVar(),r=(0,u.V)(W(2)).toVar();if((0,u.W)(G(1),(0,u.uc)(a)),(0,u.W)(G(2),(0,u.uc)(r)),(0,u.W)(W(2),(0,u.Na)(0)),M){var n=(0,u.V)(W(3)).toVar(),i=(0,u.V)(W(5)).toVar();(0,u.W)(G(4),(0,u.uc)(n)),(0,u.W)(G(5),(0,u.uc)(i)),(0,u.W)(W(5),(0,u.Na)(0));var s=(0,u.V)(W(6)).toVar(),o=(0,u.V)(W(8)).toVar();(0,u.W)(G(6),(0,u.uc)(s)),(0,u.W)(G(7),(0,u.uc)(o)),(0,u.W)(W(8),(0,u.Na)(0))}})():null,eP=M?(0,u.I)(function(){var a=(0,u.Cc)(u.Ia).toVar();(0,u.J)(a.x.greaterThanEqual(w.x).or(a.y.greaterThanEqual(w.y)).or(a.z.greaterThanEqual(w.z)),function(){(0,u.O)()});var r=a.add(T).toVar();eC(r);var n=Y(r).toVar();(0,u.J)(n.greaterThan(-.5),function(){eo((0,u.U)(W(7),(0,u.Na)(1)).toVar()).assign(n),Y(r).assign((0,u.za)(-1).add(z))});var i=Q(r).toVar();(0,u.J)(i.lessThan(-.5),function(){(0,u.O)()}),Q(r).assign((0,u.za)(-1).add(z)),(0,u.K)(48,function(){(0,u.J)(i.lessThan(-.5),function(){(0,u.G)()}),ei((0,u.U)(W(4),(0,u.Na)(1)).toVar()).assign(i),i.assign(er(i))})})():null,eN=M?(0,u.I)(function(){var a=(0,u.Cc)(u.Ia).add(T).toVar();eC(a);var r=(0,u.za)(0).toVar();(0,u.J)(eS(a).greaterThan(-.5),function(){for(var n=a.mul(4).toVar(),i=eK.map(function(a){var r=I(a,3),i=r[0],s=r[1],o=r[2];return eG((0,u.Cc)(n.x.add(4*i),n.y.add(4*s),n.z.add(4*o))).toVar()}),s=i[0],o=1;o<8;o++)s=s.add(i[o]);for(var l=(0,u.xb)(s).toVar(),c=(0,u.ua)(i[0],l),d=1;d<8;d++)c=(0,u.gb)(c,(0,u.ua)(i[d],l));(0,u.J)(c.greaterThan(eh),function(){r.assign((0,u.za)(1))})}),Z(a).assign(r.add(z))})():null,eB=Math.min(4096,Math.max(C,1)),eD=function(){var a=(0,u.Cc)(u.Ia).toVar(),r=(0,u.Aa)(a.x.mul(.25)).toVar(),n=(0,u.Aa)(a.y.mul(.25)).toVar();return{slot:n.mul(eB).add(r).toVar(),local:(0,u.Cc)(a.x.sub(r.mul(4)),a.y.sub(n.mul(4)),a.z).toVar()}},eE=function(a){var r,n,i,s,o;return r=ee.element((0,u.Na)(a)),n=(0,u.Aa)(r.div(65536)),i=r.sub(n.mul(65536)),s=(0,u.Aa)(i.div(256)),o=i.sub(s.mul(256)),(0,u.Cc)(o,s,n)},eI=V?(0,u.I)(function(){var a=(0,u.Cc)(u.Ia).add(T.mul(4)).toVar(),r=a.mul(.25).floor().toVar(),n=eS(r).toVar();(0,u.J)(n.lessThan(-.5),function(){(0,u.O)()});var i=ev(eg(a,m),ey(a,m)).sdf;(0,u.kc)(E,(0,u.Ua)(ez(n,a.sub(r.mul(4)))),(0,u.Dc)(i.add(z),0,0,0)).toStack()})():null,eF=V?(0,u.I)(function(){var a=eD(),r=a.slot,n=a.local;(0,u.J)(r.greaterThanEqual(C),function(){(0,u.O)()});var i=eE(r).toVar();(0,u.J)(eS(i).notEqual(r),function(){(0,u.O)()});var s=i.mul(4).add(n).toVar(),o=ev(eg(s,m),ey(s,m)).sdf;(0,u.kc)(E,(0,u.Ua)(ez(r,n)),(0,u.Dc)(o.add(z),0,0,0)).toStack()})():(0,u.I)(function(){var a=(0,u.Cc)(u.Ia).add(T.mul(4)).toVar(),r=ew(a.mul(.25).floor()).toVar();(0,u.J)((0,u.P)(r).greaterThan(x),function(){(0,u.kc)(E,(0,u.Ua)(a),(0,u.Dc)(r.add(z),0,0,0)).toStack(),(0,u.O)()});var n=ev(eg(a,m),ey(a,m)).sdf;(0,u.kc)(E,(0,u.Ua)(a),(0,u.Dc)(n.add(z),0,0,0)).toStack()})(),eL=(0,u.I)(function(){var a=(0,u.Cc)(u.Ia).add(T.mul(2)).toVar();(0,u.J)(a.x.greaterThan(f-1).or(a.y.greaterThan(f-1)).or(a.z.greaterThan(f-1)),function(){(0,u.O)()}),(0,u.J)((0,u.P)(ew(a.mul(.5).floor())).greaterThan(x),function(){(0,u.O)()});var r=ep(eg(a,f-1),ey(a,f-1)),n=r.color,i=r.colorDivisor.greaterThan(0).select(n,(0,u.Dc)(0));(0,u.kc)(L,(0,u.Ua)(a),(0,u.ga)(i.add(z),(0,u.Dc)(0),(0,u.Dc)(1))).toStack()})(),eU=(0,u.pc)(E),eO=V?function(a,r,n){var i=(0,u.ga)((0,u.Cc)(a,r,n),(0,u.Cc)(0),(0,u.Cc)(m)),s=i.mul(.25).floor(),o=eS(s),l=eU.load((0,u.Ua)(ez(o,i.sub(s.mul(4))))).x;return o.lessThan(-.5).select(ew(s),l)}:function(a,r,n){return eU.load((0,u.Ua)((0,u.ga)((0,u.Cc)(a,r,n),(0,u.Cc)(0),(0,u.Cc)(m)))).x},eG=function(a){var r=a.x,n=a.y,i=a.z,s=eO(r.add(1),n,i).sub(eO(r.sub(1),n,i)),o=eO(r,n.add(1),i).sub(eO(r,n.sub(1),i)),l=eO(r,n,i.add(1)).sub(eO(r,n,i.sub(1)));return s.equal(0).and(o.equal(0)).and(l.equal(0)).select((0,u.Cc)(.199,.299,.399),(0,u.xb)((0,u.Cc)(s,o,l)))},eq=function(r,n,i){var s,o=(s=function(a,s,o,l){return eO(r.add(a),n.add(s),i.add(o)).lessThan(0).toFloat().mul(l)})(0,0,0,1).add(s(1,0,0,2)).add(s(0,1,0,8)).add(s(1,1,0,4)).add(s(0,0,1,16)).add(s(1,0,1,32)).add(s(0,1,1,128)).add(s(1,1,1,64)).toVar(),l=em.element((0,u.Na)(o)).toVar();(0,u.J)(l.lessThan(.5),function(){(0,u.O)()});var c=(0,u.U)(G(),(0,u.uc)(l)).toVar();(0,u.J)((0,u.za)(c).add(l).mul(3).lessThanEqual(v),function(){var s=o.add(.5).mul(.00390625);(0,u.K)(5,function(o){var d=o.i;(0,u.J)((0,u.za)(d).greaterThanEqual(l),function(){(0,u.G)()});var h=(0,u.za)(d).toVar();(0,u.K)(3,function(o){var l,d,f,v,p,g,x,b,T,w,S,z,V,C,k,M=o.i,A=(0,u.za)(M).toVar();l=h.mul(3).add(A),d=(0,u.Na)(c).add((0,u.Na)(h)).mul(3).add((0,u.Na)(A)),f=l.mul(.0625).add(.03125),v=a.triTable.sample((0,u.Bc)(f,s)).x.mul(2).toInt().toVar(),p=(0,u.Cc)(r,n,i).add(ef.element(v)).toVar(),g=(0,u.Cc)(r,n,i).add(ef.element(v.add(1))).toVar(),x=eO(p.x,p.y,p.z).toVar(),b=eO(g.x,g.y,g.z).toVar(),T=x.div(x.sub(b)).toVar(),S=(w=p.add(g.sub(p).mul(T)).toVar().div(m).mul(2).sub(1).toVar()).mul(y).add((0,u.Cc)(_)),z=(0,u.xb)((0,u.hb)(eG(p),eG(g),T)),V=w.add(1).mul(.5),C=(0,u.pc)(L,V,(0,u.Na)(0)),k=d.toVar(),a.buffers.positions.element(k).assign((0,u.Dc)(S,1)),a.buffers.normals.element(k).assign((0,u.Dc)(z,0)),a.buffers.colors.element(k).assign(C)})})})},eW=V?(0,u.I)(function(){var a=eD(),r=a.slot,n=a.local;(0,u.J)(r.greaterThanEqual(C),function(){(0,u.O)()});var i=eE(r).toVar();(0,u.J)(eS(i).notEqual(r),function(){(0,u.O)()});var s=i.x.mul(4).add(n.x).toVar(),o=i.y.mul(4).add(n.y).toVar(),l=i.z.mul(4).add(n.z).toVar();(0,u.J)(s.greaterThanEqual(m).or(o.greaterThanEqual(m)).or(l.greaterThanEqual(m)),function(){(0,u.O)()}),eq(s,o,l)})():(0,u.I)(function(){var a=(0,u.Cc)(u.Ia).x.toVar(),r=(0,u.Cc)(u.Ia).y.toVar(),n=(0,u.Cc)(u.Ia).z.toVar();(0,u.J)(a.greaterThanEqual(m).or(r.greaterThanEqual(m)).or(n.greaterThanEqual(m)),function(){(0,u.O)()}),(0,u.J)((0,u.P)(ew((0,u.Cc)(a,r,n).mul(.25).floor())).greaterThan(x),function(){(0,u.O)()}),eq(a,r,n)})(),eH=function(){var a=(0,u.Cc)(u.Nc).toVar(),r=a.y.mul(eB).add(a.x).toVar(),n=(0,u.Cc)(0).toVar(),i=(0,u.za)(0).toVar();return(0,u.J)(r.lessThan(C),function(){n.assign(eE(r)),(0,u.J)(eS(n).equal(r),function(){i.assign((0,u.za)(1))})}),{brick:n,valid:i}},ej=function(){var a=(0,u.Cc)(u.Nc).add(T).toVar(),r=(0,u.za)(0).toVar();return(0,u.J)(a.x.lessThanEqual(g).and(a.y.lessThanEqual(g)).and(a.z.lessThanEqual(g)),function(){(0,u.J)(eS(a).greaterThan(-.5),function(){r.assign((0,u.za)(1))})}),{brick:a,valid:r}},eK=[[0,0,0],[1,0,0],[0,1,0],[1,1,0],[0,0,1],[1,0,1],[0,1,1],[1,1,1]],eJ=[[0,1],[2,3],[4,5],[6,7],[0,2],[1,3],[4,6],[5,7],[0,4],[1,5],[2,6],[3,7]],eX=function(r){return(0,u.I)(function(){for(var n=ih("float",64),i=ih("float",1),s=(0,u.Cc)(u.Ya).toVar(),o=(0,u.Na)(s.x.add(s.y.mul(4)).add(s.z.mul(16))).toVar(),l=r(),c=l.brick,d=l.valid,h=Z(c).toVar(),f=(0,u.za)(1).add(h).toVar(),v=h.greaterThan(.5),p=v.and(s.x.lessThan(2).and(s.y.lessThan(2)).and(s.z.lessThan(2))).or(v.not()),g=c.x.mul(4).add(s.x.mul(f)).toVar(),x=c.y.mul(4).add(s.y.mul(f)).toVar(),b=c.z.mul(4).add(s.z.mul(f)).toVar(),T=eK.map(function(a){var r=I(a,3),n=r[0],i=r[1],s=r[2];return eO(g.add(f.mul(n)),x.add(f.mul(i)),b.add(f.mul(s))).toVar()}),w=T[0].lessThan(0).toFloat(),S=1;S<8;S++)w=w.add(T[S].lessThan(0).toFloat());var V=w.toVar(),C=(0,u.za)(0).toVar();(0,u.J)(d.greaterThan(.5).and(p).and(g.add(f).lessThanEqual(m)).and(x.add(f).lessThanEqual(m)).and(b.add(f).lessThanEqual(m)).and(V.greaterThan(.5)).and(V.lessThan(7.5)),function(){C.assign((0,u.za)(1))}),n.element(o).assign(C.add(z)),(0,u.Mc)(),(0,u.J)(o.equal((0,u.Na)(0)).and(d.greaterThan(.5)),function(){var a=(0,u.za)(0).toVar();(0,u.K)(64,function(r){var i=r.i;a.addAssign(n.element(i))});var r=(0,u.za)(-1).toVar();(0,u.J)(a.greaterThan(.5),function(){var a=(0,u.X)(W(7),(0,u.Na)(1)).toVar();(0,u.J)(a.greaterThanEqual(1),function(){r.assign(eo(a.sub(1)))}).Else(function(){(0,u.U)(W(7),(0,u.Na)(1));var a=(0,u.U)(W(6),(0,u.Na)(1)).toVar();(0,u.J)(a.lessThan((0,u.Na)(P)),function(){r.assign(a.toFloat())}).Else(function(){(0,u.W)(W(8),(0,u.Na)(1))})}),(0,u.J)(r.greaterThan(-.5),function(){Y(c).assign(r.add(z))})}),i.element((0,u.Na)(0)).assign(r)}),(0,u.Mc)();var k=i.element((0,u.Na)(0)).toVar(),M=C.greaterThan(.5).or(v.and(p).and(d.greaterThan(.5)).and(g.add(f).lessThanEqual(m)).and(x.add(f).lessThanEqual(m)).and(b.add(f).lessThanEqual(m)));(0,u.J)(M.and(k.greaterThan(-.5)),function(){var r=(0,u.Cc)(0).toVar(),n=(0,u.za)(0).toVar(),i=!0,l=!1,c=void 0;try{for(var d,h=eJ[Symbol.iterator]();!(i=(d=h.next()).done);i=!0)!function(){var a=I(d.value,2),i=a[0],s=a[1];(0,u.J)(T[i].lessThan(0).toFloat().notEqual(T[s].lessThan(0).toFloat()),function(){var a=T[i].div(T[i].sub(T[s])),o=I(eK[i],3),l=o[0],c=o[1],d=o[2],h=I(eK[s],3),m=h[0],v=h[1],p=h[2];r.addAssign((0,u.Cc)(l,c,d).add((0,u.Cc)(m-l,v-c,p-d).mul(a)).mul(f)),n.addAssign(1)})}()}catch(a){l=!0,c=a}finally{try{i||null==h.return||h.return()}finally{if(l)throw c}}var p=r.div((0,u.eb)(n,1)).toVar();(0,u.J)(n.lessThan(.5),function(){p.assign((0,u.Cc)(f.mul(.5)))});for(var w=(0,u.Cc)(g,x,b).add(p).toVar().div(m).mul(2).sub(1).toVar(),S=w.mul(y).add((0,u.Cc)(_)),z=(0,u.Cc)(0).toVar(),V=p.div(f).toVar(),C=0;C<8;C++){var M=I(eK[C],3),A=M[0],R=M[1],P=M[2],N=A?ia(V.x):(0,u.za)(1).sub(ia(V.x)),B=R?ia(V.y):(0,u.za)(1).sub(ia(V.y)),D=P?ia(V.z):(0,u.za)(1).sub(ia(V.z));z.addAssign(eG(ir((0,u.Cc)(g.add(f.mul(A)),x.add(f.mul(R)),b.add(f.mul(P))))).mul(N.mul(B).mul(D)))}var E=(0,u.xb)(z),F=w.add(1).mul(.5),U=(0,u.pc)(L,F,(0,u.Na)(0)),O=(0,u.Na)(v.select(s.x.add(s.y.mul(2)).add(s.z.mul(4)),(0,u.za)(o))).toVar(),G=(0,u.Na)(k.mul(64)).add(O).toVar();a.buffers.positions.element(G).assign((0,u.Dc)(S,1)),a.buffers.normals.element(G).assign((0,u.Dc)(E,0)),a.buffers.colors.element(G).assign(U)})})()},eQ=M?eX(eH):null,eY=M?eX(ej):null,eZ=function(a){return(0,u.I)(function(){var r=ih("float",64),n=ih("float",64),i=ih("float",48),s=(0,u.Cc)(u.Ya).toVar(),o=(0,u.Na)(s.x.add(s.y.mul(4)).add(s.z.mul(16))).toVar(),l=a(),c=l.brick,d=l.valid,h=c.x.mul(4).add(s.x).toVar(),f=c.y.mul(4).add(s.y).toVar(),v=c.z.mul(4).add(s.z).toVar(),g=eO(h,f,v).lessThan(0).toFloat().toVar(),y=function(a,r,n){return $((0,u.Na)((0,u.Aa)(a.mul(.25))).add((0,u.Na)((0,u.Aa)(r.mul(.25))).mul(p)).add((0,u.Na)((0,u.Aa)(n.mul(.25))).mul(p*p)))},_=function(a){return a.mul(.5).fract().lessThan(.25)},x=function(a,r){return a.greaterThanEqual(r).and(a.add(r).lessThanEqual(m))},b=(0,u.za)(0).toVar(),T=(0,u.za)(0).toVar(),w=(0,u.za)(0).toVar(),S=(0,u.za)(1).toVar(),V=(0,u.za)(1).toVar(),C=(0,u.za)(1).toVar(),k=function(a,r,n,i,s,o,l,c,p){var b=y.apply(void 0,F(p[0])).add(y.apply(void 0,F(p[1]))).add(y.apply(void 0,F(p[2]))).add(y.apply(void 0,F(p[3]))).greaterThan(3.5).toVar(),T=eO(h.add(n),f.add(i),v.add(s)).lessThan(0).toFloat(),w=eO(h.add(2*n),f.add(2*i),v.add(2*s)).lessThan(0).toFloat();(0,u.J)(d.greaterThan(.5).and(b.not()).and(c.add(1).lessThanEqual(m)).and(x(o,(0,u.za)(1))).and(x(l,(0,u.za)(1))).and(g.notEqual(T)),function(){a.assign((0,u.za)(1)),r.assign((0,u.za)(1))}),(0,u.J)(d.greaterThan(.5).and(b).and(_(h)).and(_(f)).and(_(v)).and(c.add(2).lessThanEqual(m)).and(x(o,(0,u.za)(2))).and(x(l,(0,u.za)(2))).and(g.notEqual(w)),function(){a.assign((0,u.za)(1)),r.assign((0,u.za)(2))})};k(b,S,1,0,0,f,v,h,[[h,f.sub(1),v.sub(1)],[h,f,v.sub(1)],[h,f,v],[h,f.sub(1),v]]),k(T,V,0,1,0,v,h,f,[[h.sub(1),f,v.sub(1)],[h.sub(1),f,v],[h,f,v],[h,f,v.sub(1)]]),k(w,C,0,0,1,h,f,v,[[h.sub(1),f.sub(1),v],[h,f.sub(1),v],[h,f,v],[h.sub(1),f,v]]);var M=b.add(T).add(w).mul(2).toVar();r.element(o).assign(M.add(z)),(0,u.Mc)(),(0,u.J)(o.equal((0,u.Na)(0)).and(d.greaterThan(.5)),function(){var a=(0,u.za)(0).toVar();(0,u.K)(64,function(i){var s=i.i;n.element(s).assign(a),a.addAssign(r.element(s))}),(0,u.U)(G(0),(0,u.uc)(a));var s=(0,u.Aa)(a.add(7).mul(1/8)).toVar(),o=(0,u.za)(-1).toVar(),l=(0,u.za)(-1).toVar();(0,u.K)(48,function(r){var n=r.i;(0,u.J)((0,u.za)(n).greaterThanEqual(s),function(){(0,u.G)()});var c=(0,u.za)(n).toVar(),d=(0,u.za)(-1).toVar(),h=(0,u.X)(W(4),(0,u.Na)(1)).toVar();(0,u.J)(h.greaterThanEqual(1),function(){d.assign(ei(h.sub(1)))}).Else(function(){(0,u.U)(W(4),(0,u.Na)(1));var a=(0,u.U)(W(3),(0,u.Na)(1)).toVar();(0,u.J)(a.lessThan((0,u.Na)(R)),function(){d.assign(a.toFloat())}).Else(function(){(0,u.W)(W(5),(0,u.Na)(1))})}),i.element((0,u.Na)(c)).assign(d),(0,u.J)(d.greaterThan(-.5),function(){en(d).assign((0,u.gb)(a.sub(c.mul(8)),8)),er(d).assign((0,u.za)(-1)),(0,u.J)(l.greaterThan(-.5),function(){er(l).assign(d)}).Else(function(){o.assign(d)}),l.assign(d)})}),Q(c).assign(o)}),(0,u.Mc)(),(0,u.J)(M.greaterThan(.5),function(){var a=function(a,r,n){var i=(0,u.Aa)(a.mul(.25)),s=(0,u.Aa)(r.mul(.25)),o=(0,u.Aa)(n.mul(.25)),l=(0,u.Na)(i).add((0,u.Na)(s).mul(p)).add((0,u.Na)(o).mul(p*p)),c=(0,u.Na)(a.sub(i.mul(4))).add((0,u.Na)(r.sub(s.mul(4))).mul(4)).add((0,u.Na)(n.sub(o.mul(4))).mul(16));return(0,u.uc)(l.mul(64).add(c))},r=n.element(o).toVar(),s=function(a,n,s){var o=i.element((0,u.Na)((0,u.Aa)(r.mul(1/8)))).toVar();(0,u.J)(o.greaterThan(-.5),function(){var i=r.sub((0,u.Aa)(r.mul(1/8)).mul(8)),l=(0,u.Na)(o.mul(24).add(i.mul(3))).toVar();eu(l).assign(a),eu(l.add((0,u.Na)(1))).assign(n),eu(l.add((0,u.Na)(2))).assign(s)}),r.addAssign(1)},l=function(r,n){(0,u.J)(r.greaterThan(.5),function(){var r=a.apply(void 0,F(n[0])).toVar(),i=a.apply(void 0,F(n[1])).toVar(),o=a.apply(void 0,F(n[2])).toVar(),l=a.apply(void 0,F(n[3])).toVar();(0,u.J)(g.greaterThan(.5),function(){s(r,i,o),s(r,o,l)}).Else(function(){s(r,l,o),s(r,o,i)})})};l(b,[[h,f.sub(S),v.sub(S)],[h,f,v.sub(S)],[h,f,v],[h,f.sub(S),v]]),l(T,[[h.sub(V),f,v.sub(V)],[h.sub(V),f,v],[h,f,v],[h,f,v.sub(V)]]),l(w,[[h.sub(C),f.sub(C),v],[h,f.sub(C),v],[h,f,v],[h.sub(C),f,v]])})})()},e$=M?eZ(eH):null,e0=M?eZ(ej):null,e1=M?(0,u.I)(function(){var a=ih("float",48),r=ih("float",2),n=(0,u.Cc)(u.Ya).toVar(),i=(0,u.Na)(n.x.add(n.y.mul(4)).add(n.z.mul(16))).toVar(),s=(0,u.Cc)(u.Nc).toVar(),o=s.y.mul(eB).add(s.x).toVar();(0,u.J)(i.equal((0,u.Na)(0)),function(){var n=(0,u.za)(0).toVar();(0,u.J)(o.lessThan(C),function(){var r=eE(o).toVar();(0,u.J)(eS(r).equal(o),function(){var i=(0,u.za)(0).toVar();(0,u.J)(ec.greaterThan(.5),function(){for(var a=(0,u.Cc)(0).toVar(),n=(0,u.Cc)(0).toVar(),s=0;s<8;s++){var o=ir(r.mul(4).add((0,u.Cc)(4*(1&s),4*(s>>1&1),4*(s>>2&1)))),l=ir(o.div(m).mul(2).sub(1)).mul(y).add((0,u.Cc)(_)),c=ed.mul((0,u.Dc)(l,1)).toVar(),d=ia(c.w);a.addAssign((0,u.Cc)(ia(c.x).lessThan(d.negate()).toFloat(),ia(c.y).lessThan(d.negate()).toFloat(),ia(c.z).lessThan(0).toFloat())),n.addAssign((0,u.Cc)(ia(c.x).greaterThan(d).toFloat(),ia(c.y).greaterThan(d).toFloat(),ia(c.z).greaterThan(d).toFloat()))}(0,u.J)((0,u.eb)((0,u.eb)(a.x,(0,u.eb)(a.y,a.z)),(0,u.eb)(n.x,(0,u.eb)(n.y,n.z))).greaterThan(7.5),function(){i.assign((0,u.za)(1))})}),(0,u.J)(i.lessThan(.5),function(){var i=Q(r).toVar();(0,u.K)(48,function(r){var s=r.i;(0,u.J)(i.lessThan(-.5),function(){(0,u.G)()}),a.element(s).assign(i),n.addAssign(en(i)),i.assign(er(i))})})})});var i=(0,u.za)(0).toVar();(0,u.J)(n.greaterThan(.5),function(){var a=(0,u.U)(G(3),(0,u.uc)(n.mul(3))).toVar();i.assign((0,u.za)(a))}),r.element((0,u.Na)(0)).assign(i.add(z)),r.element((0,u.Na)(1)).assign(n)}),(0,u.Mc)();var l=r.element((0,u.Na)(1)).toVar(),c=r.element((0,u.Na)(0)).toVar(),d=(0,u.za)(i).toVar();(0,u.K)(6,function(){(0,u.J)(d.greaterThanEqual(l),function(){(0,u.G)()});var r=a.element((0,u.Na)((0,u.Aa)(d.mul(1/8)))).toVar(),n=d.sub((0,u.Aa)(d.mul(1/8)).mul(8)),i=(0,u.Na)(r.mul(24).add(n.mul(3))).toVar(),s=(0,u.Na)(c.add(d.mul(3))).toVar(),o=function(a){var r=eu(0===a?i:i.add((0,u.Na)(a))).toVar(),n=(0,u.Na)(r.shiftRight((0,u.uc)(6))).toVar(),s=(0,u.Na)(r.bitAnd((0,u.uc)(63))).toVar(),o=K.element(n.add((0,u.Na)(2*j))).toVar(),l=$(n),c=s.bitAnd((0,u.Na)(3)),d=s.shiftRight((0,u.Na)(2)).bitAnd((0,u.Na)(3)),h=s.shiftRight((0,u.Na)(4)).bitAnd((0,u.Na)(3)),m=c.shiftRight((0,u.Na)(1)).add(d.shiftRight((0,u.Na)(1)).mul((0,u.Na)(2))).add(h.shiftRight((0,u.Na)(1)).mul((0,u.Na)(4)));return{blockF:o,li:(0,u.Na)(l.greaterThan(.5).select(m,s)).toVar()}},h=o(0),m=o(1),f=o(2);(0,u.J)(h.blockF.greaterThan(-.5).and(m.blockF.greaterThan(-.5)).and(f.blockF.greaterThan(-.5)),function(){var a=function(a){return(0,u.uc)((0,u.Na)(a.blockF.mul(64)).add(a.li))};A.element(s).assign(a(h)),A.element(s.add((0,u.Na)(1))).assign(a(m)),A.element(s.add((0,u.Na)(2))).assign(a(f))}).Else(function(){A.element(s).assign((0,u.uc)(0)),A.element(s.add((0,u.Na)(1))).assign((0,u.uc)(0)),A.element(s.add((0,u.Na)(2))).assign((0,u.uc)(0))}),d.addAssign(64)})})():null,e2=Math.ceil(h/id[0]),e3=Math.ceil(f/id[0]),e5=Math.ceil(p/id[0]),e4=function(a,r){return a.compute(r,Array.isArray(r)?id:void 0)},e6=[eB,Math.max(1,Math.ceil(C/eB)),1];return{resolution:h,sparse:null!==V,poolBricks:C,meshlet:null!==M,vertexBlocks:P,needsInit:null!==V,sdfTexture:E,colorTexture:L,coarseTexture:U,counterAttribute:O.value,storageAttributes:[O,q,H,K,ee,et,es,el].filter(function(a){return null!==a}).map(function(a){return a.value}),uniforms:B({bboxHalf:y,bboxOffset:_,activeThreshold:x,windowOrigin:T},M?{windowSize:w,cullEnabled:ec,cullMVP:ed,adaptCos:eh}:{}),kernels:B(D(B(D(B({zero:e4(e_,1),clear:ex.compute([Math.ceil(v/256),1,1],[256,1,1]),coarse:e4(eV,[e5,e5,e5])},ek?{init:e4(ek,[e5,e5,e5])}:{},eM?{release:e4(eM,[e5,e5,e5])}:{},eA?{alloc:e4(eA,[e5,e5,e5])}:{},eR?{stats:e4(eR,1)}:{}),{sdf:e4(eF,V?e6:[e2,e2,e2])}),eI?{sdfWindow:e4(eI,[e2,e2,e2])}:{}),{color:e4(eL,[e3,e3,e3]),extract:M?e4(e$,e6):e4(eW,V?e6:[e2,e2,e2])}),M?{clearDraw:eb.compute([Math.ceil(v/256),1,1],[256,1,1]),meshRelease:e4(eP,[e5,e5,e5]),verts:e4(eQ,e6),vertsWindow:e4(eY,[p,p,p]),extractWindow:e4(e0,[p,p,p]),classify:e4(eN,[e5,e5,e5]),gather:e4(e1,e6)}:{})}}var iv=function(a){return a},ip=new u.v,ig=(0,u.oc)(new b.Ic),iy=(0,u.vc)(1),i_=(0,u.vc)(1),ix=(0,u.vc)(0),ib=(0,u.vc)(0),iT=(0,u.vc)(1),iw=null,iS=!1,iz=!1,iV="",iC=!1,ik=!1,iM=!1,iA=!1,iR=!1,iP=!1,iN=!1,iB=!1,iD=!1;try{var iE,iI=new URLSearchParams(window.location.search);iS="vertex"===iI.get("dbgsbmarch"),iz="0"===iI.get("dbgsbultra"),iV=null!=(iE=iI.get("dbgsbchain"))?iE:"",iC="1"===iI.get("dbgsbnoclear"),ik="0"===iI.get("dbgsbsparse"),iM="0"===iI.get("dbgsbincr"),iA="1"===iI.get("dbgsblod"),iR="1"===iI.get("dbgsbpool"),iP="0"===iI.get("dbgsbpool"),iN="0"===iI.get("dbgsbmesh"),iB="0"===iI.get("dbgsbadapt"),iD="1"===iI.get("dbgsbcull")}catch(a){}var iF={updates:0,skips:0,computes:0,readbacksResolved:0,readbackErrors:0,fieldsFull:0,fieldsWindowed:0,lastWindowBricks:0,refines:0,lastDispatchRes:0,regathers:0,readbackPending:!1,lastTotal:-1,lastPass:"",marchPositions:null},iL=Math.cos(8*Math.PI/180);function iU(a,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return new b.Kc(a,r,{count:n,format:b.Ja,type:b.Aa,depthBuffer:!1,stencilBuffer:!1,generateMipmaps:!1,minFilter:b.na,magFilter:b.na,wrapS:b.la,wrapT:b.la})}var iO=function(){function a(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;V(this,a),this.wantsReplacement=!1,this.capacityHint=0,this._builtOnce=!1,this.level=-1,this.spatialnAtBuild=-1,this._passesRenderer=null,this._marchCapacity=0,this._marchBuffers=null,this._computeNode=null,this._computeNodeKey="",this._legacyMaterialsLevel=-1,this._computeDirty=!1,this._cachedAtBuild=!1,this._ultra=null,this._ultraDrag=null,this._lastDispatched=null,this._refinePending=!1,this._lastFieldChangeMs=0,this._ultraResAtBuild=0,this._ultraReadbackPending=!1,this._ultraReadbackQueued=!1,this._ultraWantedCapacity=0,this._poolAtBuild=0,this._ultraWantedPoolBricks=0,this.poolHint=0,this._drawIndex=null,this._vertexBuffers=null,this._vertBlocksAtBuild=0,this._ultraWantedVertexBlocks=0,this.vertHint=0,this._cullCamera=null,this._lastGatherMVP=new b.Oc,this._hasGatherMVP=!1,this._ultraRetired=[],this._retiredStorage=[],this._ultraBuildSeq=0,this._lastRenderer=null,this._meshBaker=null,this._meshAtBuild=!1,this._meshSlots=new Map,this._meshBakeFailed=new Map,this._meshWarnedFull=!1,this.shapesTex=(0,u.oc)(new b.Ic),this.spatialTexNode=(0,u.oc)(new b.Ic),this.potentialTexNode=(0,u.oc)(new b.Ic),this.voxelTexNode=(0,u.oc)(new b.Ic),this.pyramid1TexNode=(0,u.oc)(new b.Ic),this.pyramid2TexNode=(0,u.oc)(new b.Ic),this.npartUniform=(0,u.vc)(0),this.spatialnUniform=(0,u.vc)(1),this.spanUniform=(0,u.vc)(0),this.spatialMaterial=null,this.potentialMaterial=null,this.voxelMaterial=null,this.spatialTargets=[],this.potentialTargets=[],this.voxelTargets=[],this.pyramidTargets=[],this.retired=!1,this._onSettled=[],this.capacityHint=r,this.poolHint=n,this.vertHint=i;var o=(0,s.a)(),l=new b.nd(o.triTable,16,256,b.Ma,b.Aa);l.needsUpdate=!0;var c=new b.nd(o.numTrisTable,256,1,b.Ma,b.Aa);c.needsUpdate=!0,this.triTableTexNode=(0,u.oc)(l),this.numTrisTableTexNode=(0,u.oc)(c)}return M(a,[{key:"shapeRow",value:function(a,r){return this.shapesTex.sample((0,u.Bc)(a,(r+.5)/5))}},{key:"_quadMaterial",value:function(a,r){var n=new u.c;return n.name=a,n.fragmentNode=r,n.depthTest=!1,n.depthWrite=!1,n.blending=b.m,n.needsUpdate=!0,n}},{key:"_buildSpatialMaterial",value:function(a){var r=this,n=a.spatialDivisions,i=s.h,o=s.i,l=this.npartUniform,c=this.spatialnUniform,d=this.spanUniform,h=a.spatialn,m=(0,u.I)(function(){var a=(0,u.Bc)(n*h,Math.pow(n,2)),s=(0,u.Aa)((0,u.yc)().mul(a)).toVar(),m=s.y.toVar(),f=m.sub((0,u.Aa)(m.div(n)).mul(n)).toVar();m.assign((0,u.Aa)(m.div(n)));var v=s.x.toVar(),p=v.sub((0,u.Aa)(v.div(c)).mul(c)).toVar().mul(4*i).toVar();v.assign((0,u.Aa)(v.div(c)));var g=(0,u.Cc)(v,f,m),y=g.div(n).mul(2).sub(1).sub(d).toVar(),_=g.add(1).div(n).mul(2).sub(1).add(d).toVar(),x=function(a){for(var n=(0,u.za)(0).toVar(),s=i-1;s>=0;s--){var c=a.add(s),d=c.add(.5).div(o),h=r.shapeRow(d,0),m=h.xyz,f=iv(h.w);n.mulAssign(2);var v=iv(y.x).lessThan(iv(m.x)).and(iv(m.x).lessThan(iv(_.x))).and(iv(y.y).lessThan(iv(m.y))).and(iv(m.y).lessThan(iv(_.y))).and(iv(y.z).lessThan(iv(m.z))).and(iv(m.z).lessThan(iv(_.z))).and(c.lessThan(iv(l))).or(f.equal(-2));n.addAssign(v.select((0,u.za)(1),(0,u.za)(0)))}return n};return(0,u.Dc)(x(p),x(p.add(i)),x(p.add(2*i)),x(p.add(3*i)))})();return this._quadMaterial("SplineShapeBlend.spatial",m)}},{key:"_fieldEnv",value:function(a,r){var n,i,s=this;return{shapeRow:function(a,r){return s.shapeRow(a,r)},spatialTex:this.spatialTexNode,spatialDivisions:a.spatialDivisions,spatialn:a.spatialn,colorKBump:r,meshSdf:this._meshBaker?(n=this._meshBaker.atlas,i=(0,u.pc)(n),function(a,r,n){var s=(0,u.eb)((0,u.Cc)(r.z,r.w,n.w),(0,u.Cc)(1e-5)).toVar(),o=r.y,l=(0,u.Cc)(o.mod(4).mul(48),(0,u.Aa)(o.div(4)).mul(48),0).toVar(),c=(0,u.ga)(a.div(s).mul(.5).add(.5),(0,u.Cc)(0),(0,u.Cc)(1)).mul(47).toVar(),d=(0,u.gb)((0,u.Aa)(c),(0,u.Cc)(46)).toVar(),h=c.sub(d).toVar(),m=l.add(d).toVar(),f=function(a,r,n){return i.load((0,u.Ua)(m.add((0,u.Cc)(a,r,n)))).x},v=h.x,p=h.y,g=h.z,y=(0,u.hb)(f(0,0,0),f(1,0,0),v),_=(0,u.hb)(f(0,1,0),f(1,1,0),v),x=(0,u.hb)(f(0,0,1),f(1,0,1),v),b=(0,u.hb)(f(0,1,1),f(1,1,1),v),T=(0,u.hb)((0,u.hb)(y,_,p),(0,u.hb)(x,b,p),g),w=(0,u.eb)(s.x,(0,u.eb)(s.y,s.z)),S=(0,u.P)(a).sub(s),z=(0,u.Va)((0,u.eb)(S,(0,u.Cc)(0)));return T.mul(w).add(z)}):void 0}}},{key:"_buildPotentialMaterial",value:function(a){var r=a.spatialDivisions,n=a.resolution,i=n-1,s=1/n,o=a.zLayersPerRow,l=a.basePyramidSize,c=ic(this._fieldEnv(a,2*s)),d=(0,u.I)(function(){var a=(0,u.Aa)((0,u.yc)().mul((0,u.Bc)(l,l))).toVar(),d=a.x.mod(n),h=a.y.mod(n),m=(0,u.Aa)(a.x.mul(s)).add((0,u.Aa)(a.y.mul(s)).mul(o)),f=(0,u.Cc)(d,h,m),v=c(f.div(i).mul(2).sub(1).toVar(),(0,u.Aa)(f.div(i).mul(r-1)).toVar()),p=v.sdf,g=v.color,y=(0,u.uc)(g.x.mul(255)),_=(0,u.uc)(g.y.mul(255)),x=y.shiftLeft((0,u.uc)(8)).bitOr(_);return(0,u.Dc)(p,x.toFloat().mul(1525902e-11),g.z,g.w)})();return this._quadMaterial("SplineShapeBlend.potential",d)}},{key:"_buildVoxelMaterial",value:function(a){var r=this,n=a.resolution,i=n-1,s=1/n,o=a.zLayersPerRow,l=a.basePyramidSize,c=n8(n,o),d=this.potentialTexNode,h=function(){var a=(0,u.Aa)((0,u.yc)().mul((0,u.Bc)(l,l))).toVar();return{xi:a.x.mod(n).toVar(),yi:a.y.mod(n).toVar(),zi:(0,u.Aa)(a.x.mul(s)).add((0,u.Aa)(a.y.mul(s)).mul(o)).toVar()}},m=function(a,r,n){var i=function(i,s,o,l){return c(a.add(i),r.add(s),n.add(o),d).x.lessThan(0).toFloat().mul(l)};return i(0,0,0,1).add(i(1,0,0,2)).add(i(0,1,0,8)).add(i(1,1,0,4)).add(i(0,0,1,16)).add(i(1,0,1,32)).add(i(0,1,1,128)).add(i(1,1,1,64))},f=(0,u.I)(function(){var a,r,n,s=h(),o=s.xi,l=s.yi,f=s.zi,v=(a=c(o.add(1),l,f,d).x.sub(c(o.sub(1),l,f,d).x),r=c(o,l.add(1),f,d).x.sub(c(o,l.sub(1),f,d).x),n=c(o,l,f.add(1),d).x.sub(c(o,l,f.sub(1),d).x),a.equal(0).and(r.equal(0)).and(n.equal(0)).select((0,u.Cc)(.199,.299,.399),(0,u.xb)((0,u.Cc)(a,r,n)))).toVar(),p=(0,u.Dc)(v,0).toVar(),g=o.greaterThanEqual(i).or(l.greaterThanEqual(i)).or(f.greaterThanEqual(i));return(0,u.J)(g.not(),function(){p.assign((0,u.Dc)(v,m(o,l,f)))}),p})(),v=(0,u.I)(function(){var a=h(),n=a.xi,s=a.yi,o=a.zi,l=(0,u.Dc)(0).toVar(),c=n.greaterThanEqual(i).or(s.greaterThanEqual(i)).or(o.greaterThanEqual(i));return(0,u.J)(c.not(),function(){var a=m(n,s,o);l.assign(r.numTrisTableTexNode.sample((0,u.Bc)(a.add(.5).div(256),.5)))}),l})();return this._quadMaterial("SplineShapeBlend.voxel",(0,u.pb)({output:f,numTris:v}))}},{key:"_spatialTargetFor",value:function(a){var r=a.resolutionLevel,n=this.spatialTargets[r];return n||(n=iU(a.spatialDivisions*a.spatialn,Math.pow(a.spatialDivisions,2)),this.spatialTargets[r]=n),n}},{key:"_targetsFor",value:function(a){var r=a.resolutionLevel,n=this._spatialTargetFor(a),i=this.potentialTargets[r];i||(i=iU(a.basePyramidSize,a.basePyramidSize),this.potentialTargets[r]=i);var s=this.voxelTargets[r];s||((s=iU(a.basePyramidSize,a.basePyramidSize,2)).textures[0].name="output",s.textures[1].name="numTris",s.textures[1].format=b.Ma,this.voxelTargets[r]=s);var o=this.pyramidTargets[r];return o||(o=[iU(a.pyramidTexture1Width,a.pyramidTexture1Height),iU(a.pyramidTexture2Width,a.pyramidTexture2Height)],this.pyramidTargets[r]=o),{spatial:n,potential:i,voxel:s,pyramid:o}}},{key:"_marchResources",value:function(a){var r=this._targetsFor(a),n=+(a.pyramidLevelSizes.length%2!=0),i=1-n;return{resolutionLevel:a.resolutionLevel,pyramidLevelSizes:a.pyramidLevelSizes,triTable:this.triTableTexNode,potential:this.potentialTexNode,voxel:this.voxelTexNode,pyramid1:this.pyramid1TexNode,pyramid2:this.pyramid2TexNode,pyramid1Size:{width:r.pyramid[i].width,height:r.pyramid[i].height},pyramid2Size:{width:r.pyramid[n].width,height:r.pyramid[n].height}}}},{key:"_maxMarchSlots",value:function(a){var r,n,i,s,o=null==(s=a.backend)||null==(i=s.device)?void 0:i.limits;return 192*Math.floor(Math.min(null!=(r=null==o?void 0:o.maxStorageBufferBindingSize)?r:0x8000000,null!=(n=null==o?void 0:o.maxBufferSize)?n:0x10000000)/16/192)}},{key:"_ensureMarchCapacity",value:function(a,r){if(null!==this._marchBuffers&&a<=this._marchCapacity)return!1;var n=Math.min(Math.max(r,24576),192*Math.ceil(1.5*a/192));if(null!==this._marchBuffers&&n<=this._marchCapacity)return!1;if(null!==this._marchBuffers)for(var i=0,s=[this._marchBuffers.positions,this._marchBuffers.normals,this._marchBuffers.colors];i<s.length;i++){var o=s[i].value;o&&this._retiredStorage.push(o)}return this._marchBuffers={positions:(0,u.Ka)(n,"vec4"),normals:(0,u.Ka)(n,"vec4"),colors:(0,u.Ka)(n,"vec4")},this._marchCapacity=n,this._computeNode=null,!0}},{key:"update",value:function(a,r,n){var i,o,l,c,d=!0,h=!1,m=void 0;if(iF.updates++,this._lastRenderer=r,void 0!==n&&(this._cullCamera=n),a._meshSdfBaked.size>0)try{for(var f,v,p=a._meshSdfBaked[Symbol.iterator]();!(d=(v=p.next()).done);d=!0){var g=I(v.value,2),y=g[0];g[1].owner!==this&&a._meshSdfBaked.delete(y)}}catch(a){h=!0,m=a}finally{try{d||null==p.return||p.return()}finally{if(h)throw m}}var _=(0,s.l)(a),x=!0===(null==(f=r.backend)?void 0:f.isWebGPUBackend);if(x&&a._meshSdfWanted.size>0&&null===this._meshBaker&&(this._meshBaker=(H=++this._ultraBuildSeq,(j=new u.F(192,48*Math.ceil(4),48)).format=b.Ma,j.type=b.Aa,j.minFilter=b.na,j.magFilter=b.na,j.name="SplineShapeBlend.meshSdfAtlas",K=(0,u.za)(H).mul(0),J=(0,u.vc)(new b.Fc(0,0,0)),X=(0,u.vc)(0),Q=(0,u.vc)(new b.Fc(1,1,1)),Y=(0,u.Ka)(73728,"vec4"),Z=function(a){return Y.element(a)},$=(0,u.I)(function(){var a=(0,u.Cc)(u.Ia).toVar();(0,u.J)(a.x.greaterThanEqual(48).or(a.y.greaterThanEqual(48)).or(a.z.greaterThanEqual(48)),function(){(0,u.O)()});var r=a.div(47).mul(2).sub(1).mul(Q).toVar(),n=(0,u.za)(1e30).toVar(),i=(0,u.za)(1e15).toVar();(0,u.K)(24576,function(a){var s=a.i;(0,u.J)((0,u.za)(s).greaterThanEqual(X),function(){(0,u.G)()});var o=(0,u.Na)((0,u.za)(s).toVar()).mul(3).toVar(),l=Z(o).xyz.toVar(),c=Z(o.add((0,u.Na)(1))).xyz.toVar(),d=Z(o.add((0,u.Na)(2))).xyz.toVar(),h=c.sub(l).toVar(),m=d.sub(l).toVar(),f=r.sub(l).toVar(),v=(0,u.ua)(h,f).toVar(),p=(0,u.ua)(m,f).toVar(),g=r.sub(c).toVar(),y=(0,u.ua)(h,g).toVar(),_=(0,u.ua)(m,g).toVar(),x=r.sub(d).toVar(),b=(0,u.ua)(h,x).toVar(),T=(0,u.ua)(m,x).toVar(),w=(0,u.Cc)(0).toVar(),S=y.mul(T).sub(b.mul(_)).toVar(),z=b.mul(p).sub(v.mul(T)).toVar(),V=v.mul(_).sub(y.mul(p)).toVar();(0,u.J)(v.lessThanEqual(0).and(p.lessThanEqual(0)),function(){w.assign(l)}).ElseIf(y.greaterThanEqual(0).and(_.lessThanEqual(y)),function(){w.assign(c)}).ElseIf(T.greaterThanEqual(0).and(b.lessThanEqual(T)),function(){w.assign(d)}).ElseIf(V.lessThanEqual(0).and(v.greaterThanEqual(0)).and(y.lessThanEqual(0)),function(){var a=v.div(v.sub(y));w.assign(l.add(h.mul(a)))}).ElseIf(z.lessThanEqual(0).and(p.greaterThanEqual(0)).and(T.lessThanEqual(0)),function(){var a=p.div(p.sub(T));w.assign(l.add(m.mul(a)))}).ElseIf(S.lessThanEqual(0).and(_.sub(y).greaterThanEqual(0)).and(b.sub(T).greaterThanEqual(0)),function(){var a=_.sub(y).div(_.sub(y).add(b.sub(T)));w.assign(c.add(d.sub(c).mul(a)))}).Else(function(){var a=(0,u.za)(1).div(S.add(z).add(V)),r=z.mul(a),n=V.mul(a);w.assign(l.add(h.mul(r)).add(m.mul(n)))});var C=r.sub(w).toVar(),k=(0,u.ua)(C,C).toVar();(0,u.J)(k.lessThan(n),function(){n.assign(k);var a=(0,u.na)(h,m),r=(0,u.ua)(C,a).greaterThanEqual(0).select((0,u.za)(1),(0,u.za)(-1));i.assign((0,u.hc)(k).mul(r))})});var s=(0,u.eb)(Q.x,(0,u.eb)(Q.y,Q.z));(0,u.kc)(j,(0,u.Ua)(a.add(J)),(0,u.Dc)(i.div(s).add(K),0,0,0)).toStack()})(),ee=Math.ceil(12),{atlas:j,slots:16,kernel:$.compute([ee,ee,ee],[4,4,4]),uniforms:{slotOrigin:J,triCount:X,boxHalf:Q},setTriangles:function(a,r){var n=Y.value;n.array.set(a.subarray(0,12*r)),n.needsUpdate=!0}})),0===a.npart)return null!==this._meshBaker&&a._meshSdfWanted.size>0&&this._bakeNextMeshChild(a,r),void(a.geometry.drawRange.count=0);this.npartUniform.value=a.npart,this.spatialnUniform.value=a.spatialn,this.spanUniform.value=a.spatialPassUniforms.span.value,a.shapesDataTexture.value&&(this.shapesTex.value=a.shapesDataTexture.value);var T=!iS&&x,w=T&&!iz&&a.ultraFieldResolution>0,S=w&&!iP&&(iR||a.ultraFieldResolution>=512)?Math.min(Math.pow(a.ultraFieldResolution/4,3),Math.max(Math.min((et=a.ultraFieldResolution/4)*et*et,Math.max(8192,16*et*et)),this._ultraWantedPoolBricks,this.poolHint)):0,z=S>0&&!iN,V=this._maxMarchSlots(r),C=z?Math.min(Math.floor(V/64),Math.max(Math.min(262144,Math.max(2048,2*(ea=a.ultraFieldResolution/4)*ea)),this._ultraWantedVertexBlocks,this.vertHint)):0,k=null!==this._meshBaker,M=a.needsRebuild||this.level!==a.resolutionLevel||this.spatialnAtBuild!==a.spatialn||this._cachedAtBuild!==T||this._ultraResAtBuild!==(w?a.ultraFieldResolution:0)||this._poolAtBuild!==S||this._vertBlocksAtBuild!==C||this._meshAtBuild!==k;if(M&&this._builtOnce)return this.wantsReplacement=!0,this.capacityHint=Math.max(this._marchCapacity,this._ultraWantedCapacity),this.poolHint=Math.max(this.poolHint,this._ultraWantedPoolBricks),void(this.vertHint=Math.max(this.vertHint,this._ultraWantedVertexBlocks));var A=T&&this._ensureMarchCapacity(Math.min(Math.max(V,24576),Math.max(a.geometry.drawRange.count,this.capacityHint,w?Math.max(Math.max(24576,192*Math.ceil(16*(er=a.ultraFieldResolution)*er/192)),this._ultraWantedCapacity):24576)),V);if(A&&this._builtOnce)return this.wantsReplacement=!0,this.capacityHint=Math.max(this._marchCapacity,this._ultraWantedCapacity),this.poolHint=Math.max(this.poolHint,this._ultraWantedPoolBricks),void(this.vertHint=Math.max(this.vertHint,this._ultraWantedVertexBlocks));var R=this._spatialTargetFor(a),P=w?null:this._targetsFor(a),N=M||A,E=w&&null!==this._ultra&&this._ultraResAtBuild===a.ultraFieldResolution&&!A&&this.level===a.resolutionLevel&&this.spatialnAtBuild===a.spatialn&&this._cachedAtBuild===T;if(N&&E)a.needsRebuild=!1,this._ultra.uniforms.bboxHalf.value=a.bboxSize/2,this._ultra.uniforms.bboxOffset.value=a.bboxOffset,this._ultraDrag&&(this._ultraDrag.uniforms.bboxHalf.value=a.bboxSize/2,this._ultraDrag.uniforms.bboxOffset.value=a.bboxOffset);else if(N){a.needsRebuild=!1;var F=this.spatialnAtBuild!==a.spatialn;this.level=a.resolutionLevel,this.spatialnAtBuild=a.spatialn,this._meshAtBuild=k,(F||null===this.spatialMaterial)&&(null==(en=this.spatialMaterial)||en.dispose(),this.spatialMaterial=this._buildSpatialMaterial(a)),this.spatialTexNode.value=R.texture;var L=this._ultra,U=this._ultraDrag;if(this._ultra=null,this._ultraDrag=null,this._lastDispatched=null,this._refinePending=!1,w){var O=a.ultraFieldResolution,G=null!==L&&this._ultraResAtBuild===O;if(G&&!A)this._ultra=L,L.uniforms.bboxHalf.value=a.bboxSize/2,L.uniforms.bboxOffset.value=a.bboxOffset,this._ultraDrag=U,U&&(U.uniforms.bboxHalf.value=a.bboxSize/2,U.uniforms.bboxOffset.value=a.bboxOffset);else{var q=G&&0===S&&!L.sparse;L&&!q&&this._ultraRetired.push(L.sdfTexture,L.colorTexture,L.coarseTexture),z&&null===this._drawIndex&&(this._drawIndex=(0,u.Ka)(this._marchCapacity,"uint")),z&&null===this._vertexBuffers&&(this._vertexBuffers={positions:(0,u.Ka)(64*C,"vec4"),normals:(0,u.Ka)(64*C,"vec4"),colors:(0,u.Ka)(64*C,"vec4")}),this._ultra=im({resolution:O,colorResolution:O/2,bboxHalf:a.bboxSize/2,bboxOffset:a.bboxOffset,capacity:this._marchCapacity,env:this._fieldEnv(a,2/(O/2)),npart:this.npartUniform,triTable:this.triTableTexNode,numTrisTable:(0,s.a)().numTrisTable,buffers:z?this._vertexBuffers:this._marchBuffers,buildSeq:++this._ultraBuildSeq,sparseStorage:S>0?{poolBricks:S,meshlet:z?{drawIndex:this._drawIndex,vertexBlocks:C}:void 0}:void 0,reuseTextures:q?{sdfTexture:L.sdfTexture,colorTexture:L.colorTexture,coarseTexture:L.coarseTexture}:void 0}),this._poolAtBuild=S,this._vertBlocksAtBuild=C;var W=iA&&O>=128&&!z?O/2:0;U&&(!G||0===W)&&this._ultraRetired.push(U.sdfTexture,U.colorTexture,U.coarseTexture),W>0&&(this._ultraDrag=im({resolution:W,colorResolution:W/2,bboxHalf:a.bboxSize/2,bboxOffset:a.bboxOffset,capacity:this._marchCapacity,env:this._fieldEnv(a,2/(W/2)),npart:this.npartUniform,triTable:this.triTableTexNode,numTrisTable:(0,s.a)().numTrisTable,buffers:this._marchBuffers,buildSeq:++this._ultraBuildSeq,reuseTextures:G&&U?{sdfTexture:U.sdfTexture,colorTexture:U.colorTexture,coarseTexture:U.coarseTexture}:void 0}))}this._ultraResAtBuild=O}else{L&&this._ultraRetired.push(L.sdfTexture,L.colorTexture,L.coarseTexture),U&&this._ultraRetired.push(U.sdfTexture,U.colorTexture,U.coarseTexture),(this._legacyMaterialsLevel!==a.resolutionLevel||F||null===this.potentialMaterial||null===this.voxelMaterial)&&(null==(es=this.potentialMaterial)||es.dispose(),null==(eo=this.voxelMaterial)||eo.dispose(),this.potentialMaterial=this._buildPotentialMaterial(a),this.voxelMaterial=this._buildVoxelMaterial(a),this._legacyMaterialsLevel=a.resolutionLevel),this.potentialTexNode.value=P.potential.texture,this.voxelTexNode.value=P.voxel.textures[0];var H,j,K,J,X,Q,Y,Z,$,ee,et,ea,er,en,ei,es,eo,el=+(a.pyramidLevelSizes.length%2!=0);this.pyramid1TexNode.value=P.pyramid[1-el].texture,this.pyramid2TexNode.value=P.pyramid[el].texture,this._ultraResAtBuild=0}var eu=a.material;void 0===eu.defines&&(eu.defines={}),iV.includes("nomat")||(eu.defines.SHAPEBLEND=a.resolutionLevel),iV.includes("nomat")||null==(ei=eu.setShapeBlendResources)||ei.call(eu,w?{resolutionLevel:a.resolutionLevel,pyramidLevelSizes:a.pyramidLevelSizes,triTable:this.triTableTexNode,potential:this.potentialTexNode,voxel:this.voxelTexNode,pyramid1:this.pyramid1TexNode,pyramid2:this.pyramid2TexNode,pyramid1Size:{width:1,height:1},pyramid2Size:{width:1,height:1},cached:z?D(B({},this._vertexBuffers),{drawIndex:this._drawIndex}):this._marchBuffers}:D(B({},this._marchResources(a)),{cached:T?this._marchBuffers:void 0})),this._cachedAtBuild=T;var ec="".concat(a.resolutionLevel,":").concat(this._marchCapacity);this._computeNodeKey!==ec&&(this._computeNode=null,this._computeNodeKey=ec)}if(N)return this._builtOnce=!0,void(this._computeDirty=!0);null!==this._meshBaker&&a._meshSdfWanted.size>0&&this._bakeNextMeshChild(a,r);var ed=this._passesRenderer!==r,eh=_&&!iM&&!this._computeDirty&&!ed&&!a._fieldDirtyFull;if(!(_||this._computeDirty||ed)){if(w&&this._refinePending&&null!==this._ultra&&performance.now()-this._lastFieldChangeMs>250)return this._refinePending=!1,this._passesRenderer=r,iF.refines++,void this._runUltra(a,r,!1,this._ultra);if(w&&iD&&null!==this._ultra&&this._ultra.meshlet&&this._lastDispatched===this._ultra&&!this._ultraReadbackPending&&this._updateCullUniforms(a,this._ultra)&&(!this._hasGatherMVP||!this._lastGatherMVP.equals(this._ultra.uniforms.cullMVP.value)))return this._lastGatherMVP.copy(this._ultra.uniforms.cullMVP.value),this._hasGatherMVP=!0,iF.regathers++,r.compute(this._ultra.kernels.zero),iC||r.compute(this._ultra.kernels.clearDraw),r.compute(this._ultra.kernels.gather),this._ultra.kernels.stats&&r.compute(this._ultra.kernels.stats),void this._runUltraReadback(a,r);if(!a.drawRangeNeedsForceUpdate)return void iF.skips++;if(w)return void(this._ultraReadbackPending||this._runUltraReadback(a,r))}if(this._passesRenderer=r,iV.includes("none")&&iF.readbacksResolved>0)return void(this._computeDirty=!1);var em=r.getRenderTarget(),ef=r.getMRT(),ev=r.autoClear;if(r.setMRT(null),r.autoClear=!1,iF.lastPass="spatial",r.setRenderTarget(R),ip.material=this.spatialMaterial,ip.render(r),w){r.autoClear=ev,r.setRenderTarget(em),r.setMRT(ef);var ep=null!==this._ultraDrag&&_&&!this._computeDirty;return this._refinePending=ep,this._lastFieldChangeMs=performance.now(),this._runUltra(a,r,eh,ep?this._ultraDrag:this._ultra),void(this._computeDirty=!1)}return"spatial"===iV&&iF.readbacksResolved>0?(r.autoClear=ev,r.setRenderTarget(em),r.setMRT(ef)):(iF.lastPass="potential",r.setRenderTarget(P.potential),ip.material=this.potentialMaterial,ip.render(r),"potential"===iV&&iF.readbacksResolved>0?(r.autoClear=ev,r.setRenderTarget(em),r.setMRT(ef)):(iF.lastPass="voxel",r.setRenderTarget(P.voxel),ip.material=this.voxelMaterial,ip.render(r),"voxel"===iV&&iF.readbacksResolved>0?(r.autoClear=ev,r.setRenderTarget(em),r.setMRT(ef)):(iF.lastPass="pyramid",this._renderPyramid(a,r,P.voxel,P.pyramid),r.autoClear=ev,r.setRenderTarget(em),r.setMRT(ef),iF.lastPass="march",T&&(null===this._computeNode&&(this._computeNode=(i=this._marchResources(a),o=this._marchBuffers,l=this._marchCapacity,c=ie(i),(0,u.I)(function(){var a=c(u.Ja.toFloat()),r=a.position,n=a.normal,i=a.color;o.positions.element(u.Ja).assign((0,u.Dc)(r,1)),o.normals.element(u.Ja).assign((0,u.Dc)(n,0)),o.colors.element(u.Ja).assign(i)})().compute(l))),r.compute(this._computeNode),iF.computes++)))),void(this._computeDirty=!1)}},{key:"_bakeNextMeshChild",value:function(a,r){var n=this._meshBaker,i=!0,o=!1,l=void 0;try{for(var u,c=a._meshSdfWanted[Symbol.iterator]();!(i=(u=c.next()).done);i=!0){var d=I(u.value,2),h=d[0],m=d[1],f=(0,s.j)(m);if(this._meshBakeFailed.get(h)!==f){var v,p=this._meshSlots.get(h);if(void 0===p){var g=!0,y=!1,_=void 0;if(this._meshSlots.size>=n.slots)try{for(var x,T=this._meshSlots.keys()[Symbol.iterator]();!(g=(x=T.next()).done);g=!0){var w=x.value;a._meshSdfBaked.has(w)||a._meshSdfWanted.has(w)||(this._meshSlots.delete(w),this._meshBakeFailed.delete(w))}}catch(a){y=!0,_=a}finally{try{g||null==T.return||T.return()}finally{if(y)throw _}}if(this._meshSlots.size>=n.slots){this._meshWarnedFull||(this._meshWarnedFull=!0,console.warn("Spline shape blend: more than ".concat(n.slots," distinct mesh children — the extra meshes are left out of the blend.")));continue}var S=new Set(this._meshSlots.values());for(p=0;S.has(p);)p++;this._meshSlots.set(h,p)}var z=function(a){var r=a.getAttribute("position");if(!r||r.count<3)return null;var n=a.getIndex(),i=Math.floor((n?n.count:r.count)/3);if(0===i)return null;var s=Math.max(1,Math.ceil(i/24576));s>1&&console.warn("Spline shape blend: mesh child has ".concat(i," triangles — baking every ").concat(s,"th (SDF detail reduced)."));for(var o=Math.floor(i/s),l=new Float32Array(12*o),u=new b.Fc(0,0,0),c=new b.Fc,d=0,h=0;h<o;h++)for(var m=h*s*3,f=0;f<3;f++){var v=n?n.getX(m+f):m+f;c.fromBufferAttribute(r,v),l[d++]=c.x,l[d++]=c.y,l[d++]=c.z,l[d++]=0,u.x=Math.max(u.x,Math.abs(c.x)),u.y=Math.max(u.y,Math.abs(c.y)),u.z=Math.max(u.z,Math.abs(c.z))}if(0===u.x&&0===u.y&&0===u.z)return null;var p=Math.max(u.x,u.y,u.z);return u.x=1.08*Math.max(u.x,.05*p),u.y=1.08*Math.max(u.y,.05*p),u.z=1.08*Math.max(u.z,.05*p),{data:l,triCount:o,boxHalf:u}}(m);if(null!==z)return n.setTriangles(z.data,z.triCount),n.uniforms.slotOrigin.value.copy((v=p,new b.Fc(v%4*48,48*Math.floor(v/4),0))),n.uniforms.triCount.value=z.triCount,n.uniforms.boxHalf.value.copy(z.boxHalf),r.compute(n.kernel),a._meshSdfBaked.set(h,{slot:p,boxHalf:z.boxHalf.clone(),posVersion:f,owner:this}),void a._meshSdfWanted.delete(h);this._meshBakeFailed.set(h,f)}}}catch(a){o=!0,l=a}finally{try{i||null==c.return||c.return()}finally{if(o)throw l}}}},{key:"_updateCullUniforms",value:function(a,r){if(!r.meshlet)return!1;var n=this._cullCamera;return iD&&n&&void 0!==n.projectionMatrix&&void 0!==n.matrixWorldInverse?(r.uniforms.cullMVP.value.multiplyMatrices(u.Vc.unjitteredProjection.value,n.matrixWorldInverse).multiply(a.matrixWorld),r.uniforms.cullEnabled.value=1,!0):(r.uniforms.cullEnabled.value=0,!1)}},{key:"_runUltra",value:function(a,r,n,i){iF.lastPass="ultra-kernels",iF.lastDispatchRes=i.resolution,iF.marchPositions=(i.meshlet?this._vertexBuffers:this._marchBuffers).positions.value,this._lastDispatched=i;var s,o=i.resolution,l=o/4;i.uniforms.activeThreshold.value=ik?1e30:2/(o-1)*(3*Math.sqrt(3)+4)+.25*a._maxBlendK;var u=i.meshlet&&!iB;i.meshlet&&(i.uniforms.adaptCos.value=u?iL:2);var c=0,d=0,h=0,m=l,f=l,v=l;if(n){var p=i.uniforms.activeThreshold.value+2/(a.spatialDivisions-1)+4/(o-1),g=function(a){return Math.floor(.5*(a+1)*(o-1)/4)},y=function(a){return Math.min(l-1,Math.max(0,g(a)))},_=function(a){return Math.min(l,Math.max(1,g(a)+1))};if(c=y(a._fieldDirtyMin.x-p),d=y(a._fieldDirtyMin.y-p),h=y(a._fieldDirtyMin.z-p),m=_(a._fieldDirtyMax.x+p)-c,f=_(a._fieldDirtyMax.y+p)-d,v=_(a._fieldDirtyMax.z+p)-h,iF.fieldsWindowed++,u){var x=Math.min(l,c+m+1),b=Math.min(l,d+f+1),T=Math.min(l,h+v+1);c=Math.max(0,c-1),d=Math.max(0,d-1),h=Math.max(0,h-1),m=x-c,f=b-d,v=T-h}}else iF.fieldsFull++;iF.lastWindowBricks=m*f*v,i.uniforms.windowOrigin.value.set(c,d,h),null==(s=i.uniforms.windowSize)||s.value.set(m,f,v);var w=0===c&&0===d&&0===h&&m===l&&f===l&&v===l,S=[Math.ceil(m/4),Math.ceil(f/4),Math.ceil(v/4)];i.meshlet&&this._updateCullUniforms(a,i)&&(this._lastGatherMVP.copy(i.uniforms.cullMVP.value),this._hasGatherMVP=!0),r.compute(i.kernels.zero),iC||r.compute(i.meshlet?i.kernels.clearDraw:i.kernels.clear),i.needsInit&&i.kernels.init&&(r.compute(i.kernels.init),i.needsInit=!1),r.compute(i.kernels.coarse,S),i.kernels.release&&r.compute(i.kernels.release,S),i.kernels.alloc&&r.compute(i.kernels.alloc,S),i.kernels.meshRelease&&r.compute(i.kernels.meshRelease,S),i.sparse?w?r.compute(i.kernels.sdf):r.compute(i.kernels.sdfWindow,[m,f,v]):r.compute(i.kernels.sdf,[m,f,v]),i.kernels.classify&&r.compute(i.kernels.classify,S),r.compute(i.kernels.color,[Math.ceil(m/2),Math.ceil(f/2),Math.ceil(v/2)]),i.meshlet?(w?(r.compute(i.kernels.verts),r.compute(i.kernels.extract)):(r.compute(i.kernels.vertsWindow,[m,f,v]),r.compute(i.kernels.extractWindow,[m,f,v])),r.compute(i.kernels.gather)):r.compute(i.kernels.extract),i.kernels.stats&&r.compute(i.kernels.stats),iF.computes++,this._ultraReadbackPending?this._ultraReadbackQueued=!0:this._runUltraReadback(a,r)}},{key:"_disposeRetired",value:function(){var a=!0,r=!1,n=void 0;try{for(var i,s=this._ultraRetired[Symbol.iterator]();!(a=(i=s.next()).done);a=!0)i.value.dispose()}catch(a){r=!0,n=a}finally{try{a||null==s.return||s.return()}finally{if(r)throw n}}if(this._ultraRetired.length=0,this._retiredStorage.length>0){var o=null==(h=this._lastRenderer)||null==(d=h.backend)?void 0:d.attributeUtils,l=!0,u=!1,c=void 0;if(o)try{for(var d,h,m,f=this._retiredStorage[Symbol.iterator]();!(l=(m=f.next()).done);l=!0){var v=m.value;o.destroyAttribute(v)}}catch(a){u=!0,c=a}finally{try{l||null==f.return||f.return()}finally{if(u)throw c}}this._retiredStorage.length=0}var p=!0,g=!1,y=void 0;try{for(var _,x=this._onSettled[Symbol.iterator]();!(p=(_=x.next()).done);p=!0)(0,_.value)()}catch(a){g=!0,y=a}finally{try{p||null==x.return||x.return()}finally{if(g)throw y}}this._onSettled.length=0}},{key:"runWhenSettled",value:function(a){this._onSettled.push(a)}},{key:"transferSettleQueue",value:function(a){var r;(r=a._onSettled).push.apply(r,F(this._onSettled)),this._onSettled.length=0}},{key:"_runUltraReadback",value:function(a,r){var n,i=this,s=null!=(n=this._lastDispatched)?n:this._ultra;this._ultraReadbackPending=!0,iF.readbackPending=!0,r.getArrayBufferAsync(s.counterAttribute).then(function(n){if(i._ultraReadbackPending=!1,iF.readbackPending=!1,!i.retired){i._disposeRetired();var o=new Uint32Array(n),l=s.meshlet?Math.floor(o[3]/3):o[0];if(iF.readbacksResolved++,iF.lastTotal=l,s.sparse&&o.length>2&&o[2]>0&&(i._ultraWantedPoolBricks=Math.ceil(1.5*Math.max(o[1],s.poolBricks)),i._computeDirty=!0),s.meshlet&&o.length>5&&o[5]>0){var u=Math.min(24*o[4],i._maxMarchSlots(r));u>i._marchCapacity&&(i._ultraWantedCapacity=Math.max(i._ultraWantedCapacity,u),i._computeDirty=!0)}if(s.meshlet&&o.length>7&&o[7]>0){var c=Math.min(Math.ceil(1.5*o[6]),Math.floor(i._maxMarchSlots(r)/64));c>s.vertexBlocks&&(i._ultraWantedVertexBlocks=Math.max(i._ultraWantedVertexBlocks,c),i._computeDirty=!0)}var d=Math.floor(i._marchCapacity/3);if(a.geometry.drawRange.count=3*Math.min(Math.ceil(1.25*l),d),a.markSceneShadowsDirty(),a.drawRangeNeedsForceUpdate=!1,i._ultraReadbackQueued&&(i._ultraReadbackQueued=!1,i._runUltraReadback(a,r)),l>d){var h=Math.min(3*l,i._maxMarchSlots(r));h>i._marchCapacity&&(i._ultraWantedCapacity=h,i._computeDirty=!0)}}}).catch(function(){iF.readbackErrors++,i._ultraReadbackPending=!1,iF.readbackPending=!1})}},{key:"_renderPyramid",value:function(a,r,n,i){var s=this,o=a.pyramidLevelSizes,l=o.length-1-1;ix.value=0,ib.value=0;for(var c=l;c>=0;c--){var d=c%2==l%2?i[0]:i[1],h=c===l?n:c%2==l%2?i[1]:i[0];ig.value=h.textures.length>1?h.textures[1]:h.texture,iy.value=h.width,i_.value=h.height;var m=o[c];2===c&&a.resolutionLevel%2!=0&&(m=3),iT.value=m,d.viewport.set(ib.value,0,m,m),r.setRenderTarget(d),ip.material=function(){if(null!==iw)return iw;var a=(0,u.I)(function(){var a=(0,u.Bc)(iy,i_),r=(0,u.Bc)(1).div(a),n=(0,u.yc)().mul(iT).sub((0,u.Bc)(.5)).mul(2).add((0,u.Bc)(.5)).toVar();n.x.addAssign(ix);var i=n.div(a).toVar(),s=ig.sample(i).x.toVar();i.x.addAssign(r.x);var o=ig.sample(i).x.toVar();i.y.addAssign(r.y);var l=ig.sample(i).x.toVar();i.x.subAssign(r.x);var c=ig.sample(i).x.toVar(),d=s.add(o),h=d.add(l),m=h.add(c);return(0,u.Dc)(m,h,d,s)})(),r=new u.c;return r.name="SplineShapeBlend.pyramid",r.fragmentNode=a,r.depthTest=!1,r.depthWrite=!1,r.blending=b.m,r.needsUpdate=!0,iw=r,r}(),ip.render(r),d.viewport.set(0,0,d.width,d.height);var f=ix.value;ix.value=ib.value,ib.value=f,c<l&&(ib.value+=o[c+1])}iF.lastPass="pyramid-readback";var v=+(o.length%2!=0);r.readRenderTargetPixelsAsync(i[v],i[v].width-1,0,1,1).then(function(r){var n=r[0];iF.readbacksResolved++,iF.lastTotal=n,!s.retired&&(s._disposeRetired(),(3*n>a.geometry.drawRange.count||a.drawRangeNeedsForceUpdate)&&(a.geometry.drawRange.count=3*Math.floor(1.2*n)),a.drawRangeNeedsForceUpdate=!1,null!==s._marchBuffers&&a.geometry.drawRange.count>s._marchCapacity&&(s._computeDirty=!0))}).catch(function(){})}},{key:"dispose",value:function(){var a=!0,r=!1,n=void 0;try{for(var i,s,o,l,u,c,d,h,m,f,v,p,g,y,_,x,b=F(this.spatialTargets).concat(F(this.potentialTargets),F(this.voxelTargets),F(this.pyramidTargets.flat()))[Symbol.iterator]();!(a=(x=b.next()).done);a=!0){var T=x.value;null==T||T.dispose()}}catch(a){r=!0,n=a}finally{try{a||null==b.return||b.return()}finally{if(r)throw n}}null==(i=this.spatialMaterial)||i.dispose(),null==(s=this.potentialMaterial)||s.dispose(),null==(o=this.voxelMaterial)||o.dispose();var w=null==(u=this._lastRenderer)||null==(l=u.backend)?void 0:l.attributeUtils,S=function(a){if(w&&null!==a)for(var r=0,n=[a.positions,a.normals,a.colors];r<n.length;r++){var i=n[r].value;i&&w.destroyAttribute(i)}},z=function(a){if(null!==a){var r=!0,n=!1,i=void 0;try{for(var s,o,l=Object.values(a.kernels)[Symbol.iterator]();!(r=(o=l.next()).done);r=!0){var u=o.value;null==u||null==(s=u.dispose)||s.call(u)}}catch(a){n=!0,i=a}finally{try{r||null==l.return||l.return()}finally{if(n)throw i}}var c=!0,d=!1,h=void 0;if(w)try{for(var m,f=a.storageAttributes[Symbol.iterator]();!(c=(m=f.next()).done);c=!0){var v=m.value;w.destroyAttribute(v)}}catch(a){d=!0,h=a}finally{try{c||null==f.return||f.return()}finally{if(d)throw h}}}};S(this._marchBuffers),S(this._vertexBuffers);var V=null==(c=this._drawIndex)?void 0:c.value;w&&V&&w.destroyAttribute(V),this._drawIndex=null,null==(h=this._computeNode)||null==(d=h.dispose)||d.call(h),this._marchBuffers=null,this._vertexBuffers=null,this._computeNode=null,this._computeNodeKey="",this._marchCapacity=0,z(this._ultra),null==(m=this._ultra)||m.sdfTexture.dispose(),null==(f=this._ultra)||f.colorTexture.dispose(),null==(v=this._ultra)||v.coarseTexture.dispose(),this._ultra=null,z(this._ultraDrag),null==(p=this._ultraDrag)||p.sdfTexture.dispose(),null==(g=this._ultraDrag)||g.colorTexture.dispose(),null==(y=this._ultraDrag)||y.coarseTexture.dispose(),this._ultraDrag=null,null==(_=this._meshBaker)||_.atlas.dispose(),this._meshBaker=null,this._lastDispatched=null,this._disposeRetired(),this._lastRenderer=null}}]),a}(),iG=new WeakMap,iq=new WeakMap,iW=[];(0,s.b)(function(a){if(a.cached){var r,n;return r=a.cached,n=function(){return r.drawIndex?r.drawIndex.element(u.Gc):u.Gc},{position:(0,u.I)(function(a){var i=r.positions.element(n()).xyz.toVar();return it(a,i),i})(),normal:(0,u.Hc)(r.normals.element(n()).xyz),color:(0,u.Hc)(r.colors.element(n()))}}var i=ie(a),s=(0,u.Ac)("vec3","vShapeBlendNormal"),o=(0,u.Ac)("vec4","vShapeBlendColor");return{position:(0,u.I)(function(a){var r=i(u.Gc.toFloat()),n=r.position,l=r.normal,c=r.color;return s.assign(l),o.assign(c),it(a,n),n})(),normal:s,color:o}}),(0,s.d)(function(a){var r=iG.get(a);if(null==r?void 0:r.wantsReplacement){var n=iq.get(a);iq.set(a,r),r.retired=!0;var i=new iO(r.capacityHint,r.poolHint,r.vertHint);r.transferSettleQueue(i),n&&i.runWhenSettled(function(){return n.dispose()}),r=i,iG.set(a,r)}return r||(r=new iO,iG.set(a,r)),r}),(0,s.f)({release:function(a){var r,n;return r=iG.get(a),n=iq.get(a),void(iG.delete(a),iq.delete(a),n&&iW.push(n),r&&(r.retired=!0,iW.push(r)))},drainRetired:function(){var a=iW.length;if(a>0){var r=!0,n=!1,i=void 0;try{for(var s,o=iW[Symbol.iterator]();!(r=(s=o.next()).done);r=!0)s.value.dispose()}catch(a){n=!0,i=a}finally{try{r||null==o.return||o.return()}finally{if(n)throw i}}iW.length=0}return a}});var iH=[64,1,1],ij=d.e,iK=ij-1,iJ=function(a,r){return void 0!==r?(0,u.vc)(a,r):(0,u.vc)(a)},iX=function(a,r){var n=a.xyz,i=(0,u.na)(n,r),s=(0,u.na)(n,i);return r.add(i.mul(a.w).mul(2)).add(s.mul(2))},iQ=(0,u.I)(function(a){var r,n,i=I(a,2),s=i[0],o=i[1],l=(0,u.ua)(s,o).add(1).toVar(),c=(0,u.Cc)(0).toVar();return(0,u.J)(l.lessThan(1e-7),function(){l.assign(0),(0,u.J)((0,u.P)(s.x).greaterThan((0,u.P)(s.z)),function(){c.assign((0,u.Cc)(s.y.negate(),s.x,0))}).Else(function(){c.assign((0,u.Cc)(0,s.z.negate(),s.y))})}).Else(function(){c.assign((0,u.na)(s,o))}),r=(0,u.Dc)(c,l),(n=(0,u.ua)(r,r)).lessThan(1e-10).select((0,u.Dc)(0,0,0,1),r.mul((0,u.Oa)((0,u.eb)(n,1e-20))))}),iY=function(a){var r;return(r=a.mul(34).add(10).mul(a)).sub((0,u.Aa)(r.mul(1/289)).mul(289))},iZ=(0,u.I)(function(a){var r,n=I(a,1)[0],i=1/6,s=1/3,o=(0,u.Aa)(n.add((0,u.ua)(n,(0,u.Cc)(s)))).toVar(),l=n.sub(o).add((0,u.ua)(o,(0,u.Cc)(i))).toVar(),c=(0,u.ic)(l.yzx,l.xyz).toVar(),d=(0,u.Cc)(1).sub(c).toVar(),h=(0,u.gb)(c,d.zxy).toVar(),m=(0,u.eb)(c,d.zxy).toVar(),f=l.sub(h).add(i).toVar(),v=l.sub(m).add(s).toVar(),p=l.sub(.5).toVar();o.assign(o.sub((0,u.Aa)(o.mul(1/289)).mul(289)));var g=iY(iY(iY((0,u.Dc)(0,h.z,m.z,1).add(o.z)).add(o.y).add((0,u.Dc)(0,h.y,m.y,1))).add(o.x).add((0,u.Dc)(0,h.x,m.x,1))).toVar(),y=.0714285714285-1,_=g.sub((0,u.Aa)(g.mul(.020408163265265303)).mul(49)).toVar(),x=(0,u.Aa)(_.mul(.142857142857)).toVar(),b=(0,u.Aa)(_.sub(x.mul(7))).toVar(),T=x.mul(.285714285714).add(y).toVar(),w=b.mul(.285714285714).add(y).toVar(),S=(0,u.Dc)(1).sub((0,u.P)(T)).sub((0,u.P)(w)).toVar(),z=(0,u.Dc)(T.xy,w.xy).toVar(),V=(0,u.Dc)(T.zw,w.zw).toVar(),C=(0,u.Aa)(z).mul(2).add(1).toVar(),k=(0,u.Aa)(V).mul(2).add(1).toVar(),M=(0,u.ic)(S,(0,u.Dc)(0)).negate().toVar(),A=z.xzyw.add(C.xzyw.mul(M.xxyy)).toVar(),R=V.xzyw.add(k.xzyw.mul(M.zzww)).toVar(),P=(0,u.Cc)(A.xy,S.x).toVar(),N=(0,u.Cc)(A.zw,S.y).toVar(),B=(0,u.Cc)(R.xy,S.z).toVar(),D=(0,u.Cc)(R.zw,S.w).toVar(),E=(r=(0,u.Dc)((0,u.ua)(P,P),(0,u.ua)(N,N),(0,u.ua)(B,B),(0,u.ua)(D,D)),(0,u.Dc)(1.79284291400159).sub(r.mul(.85373472095314))).toVar();P.assign(P.mul(E.x)),N.assign(N.mul(E.y)),B.assign(B.mul(E.z)),D.assign(D.mul(E.w));var F=(0,u.eb)((0,u.Dc)(.5).sub((0,u.Dc)((0,u.ua)(l,l),(0,u.ua)(f,f),(0,u.ua)(v,v),(0,u.ua)(p,p))),(0,u.Dc)(0)).toVar();return F.assign(F.mul(F)),(0,u.ua)(F.mul(F),(0,u.Dc)((0,u.ua)(P,l),(0,u.ua)(N,f),(0,u.ua)(B,v),(0,u.ua)(D,p))).mul(105)}),i$=function(a){function r(a,n,i,s,o){var l;return V(this,r),(l=z(this,r)).tangentWorld=a,l.specularPower=n,l.specularIntensity=i,l.diffuseIntensity=s,l.ambientFloor=o,l}return P(r,a),M(r,[{key:"direct",value:function(a){var r=a.lightDirection,n=a.lightColor,i=a.reflectedLight,s=(0,u.xb)(u.ea.mul((0,u.Dc)(this.tangentWorld,0)).xyz),o=u.Lb,l=(0,u.xb)(r.add(o)),c=(0,u.eb)((0,u.Va)((0,u.na)(s,r)),0),d=(0,u.eb)((0,u.Va)((0,u.na)(s,l)),0);i.directDiffuse.addAssign(n.mul(c).mul(this.diffuseIntensity).mul(u.sa.rgb)),i.directSpecular.addAssign(n.mul((0,u.Nb)(d,this.specularPower)).mul(this.specularIntensity).mul((0,u.Cc)(1,.95,.9)))}},{key:"indirect",value:function(a){var r=a.context,n=r.irradiance,i=r.ambientOcclusion,s=r.reflectedLight;s.indirectDiffuse.addAssign(n.mul(1/Math.PI).add(this.ambientFloor).mul(u.sa.rgb)),s.indirectDiffuse.mulAssign(i)}}]),r}(u.h),i0=function(a){function r(){return V(this,r),z(this,r,arguments)}return P(r,a),M(r,[{key:"direct",value:function(a){var r=a.lightDirection,n=a.lightColor,i=a.reflectedLight,s=u.ub,o=u.Lb,l=(0,u.xb)(r.add(o)),c=(0,u.ua)(s,r).clamp(),d=(0,u.ua)(s,l).clamp();i.directDiffuse.addAssign(n.mul(c).mul(.85).mul(u.sa.rgb)),i.directSpecular.addAssign(n.mul((0,u.Nb)(d,60)).mul(.3).mul((0,u.Cc)(.3,.28,.25)))}},{key:"indirect",value:function(a){var r=a.context,n=r.irradiance,i=r.ambientOcclusion,s=r.reflectedLight;s.indirectDiffuse.addAssign(n.mul(1/Math.PI).add(.15).mul(u.sa.rgb)),s.indirectDiffuse.mulAssign(i)}}]),r}(u.h),i1=function(a){function r(a){var n;return V(this,r),(n=z(this,r)).model=a,n.lights=!0,n}return P(r,a),M(r,[{key:"setupLightingModel",value:function(){return this.model}}]),r}(u.c),i2=new b.Ec,i3=new b.Ec,i5=new b.Fc,i4=function(){function a(){V(this,a),this.uNumStrands=iJ(0,"int"),this.uNumVerts=iJ(0,"int"),this.uDamping=iJ(.03),this.uLocalStiffness=iJ(.67),this.uGlobalStiffness=iJ(.5),this.uGlobalRange=iJ(.15),this.uStiffnessFalloff=iJ(.1),this.uGravity=iJ(0),this.uVspCoeff=iJ(.01),this.uVspThreshold=iJ(50),this.uKink=iJ(0),this.uKinkFreq=iJ(0),this.uUnitScale=iJ(100),this.uClumpStrength=iJ(0),this.uClumpSize=iJ(32,"int"),this.uClumpTipScale=iJ(1.5),this.uReset=iJ(1),this.uHasWind=iJ(0),this.uWind0=iJ(new b.Fc),this.uWind1=iJ(new b.Fc),this.uWind2=iJ(new b.Fc),this.uWind3=iJ(new b.Fc),this.uBoneQuat=iJ(new b.Jc(0,0,0,1)),this.uBoneTrans=iJ(new b.Fc),this.uDeltaQuat=iJ(new b.Jc(0,0,0,1)),this.uPrevBoneTrans=iJ(new b.Fc),this.uHairRoot=iJ(new b.Tc),this.uHairMid=iJ(new b.Tc),this.uHairTip=iJ(new b.Tc),this.uHeadColor=iJ(new b.Tc),this.uNoiseA=iJ(new b.Tc),this.uNoiseB=iJ(new b.Tc),this.uNoiseC=iJ(new b.Tc),this.uNoiseD=iJ(new b.Tc),this.uNoiseScale=iJ(.018),this.uNoiseMixHair=iJ(0),this.uNoiseMixHead=iJ(0),this.uWidth=iJ(.525),this.uSpecPow=iJ(40),this.uSpecInt=iJ(.4),this.uDiffInt=iJ(.6),this.uAmbInt=iJ(.25),this.uOpacity=iJ(1),this.uTipFade=iJ(.4),this.uColorSource=iJ(0),this.uShadeRoot=iJ(.6),this.uShadeTip=iJ(1.15),this.uShadowTexelWorld=iJ(0),this._armed=!1,this._uploadedGeneration=-1,this._prevBoneQuat=new b.Ec,this._prevBonePos=new b.Fc,this._hasPrevBone=!1,this._renderer=null,this.initialPos=(0,u.Ka)(d.g,"vec4"),this.rootColors=(0,u.Ka)(d.f,"vec4"),this.positions=(0,u.Ka)(d.g,"vec4"),this.positionsPrev=(0,u.Ka)(d.g,"vec4"),this.positionsPrevPrev=(0,u.Ka)(d.g,"vec4"),this.tangents=(0,u.Ka)(d.g,"vec4"),this.restLengths=(0,u.Ka)(d.g,"float"),this.vspQuats=(0,u.Ka)(d.f,"vec4"),this.vspTrans=(0,u.Ka)(d.f,"vec4"),this.kIntegrate=this._buildIntegrate(),this.kStrandLevel=this._buildStrandLevel(),this.kVsp=this._buildVsp(),this.kLocalShape=this._buildLocalShape(),this.kLengthWind=this._buildLengthWind(),this.kClump=this._buildClump(),this.kRigidFollow=this._buildRigidFollow(),this.ribbonMaterial=this._buildRibbonMaterial(),this.scalpMaterial=this._buildScalpMaterial()}return M(a,[{key:"boneQuatNode",value:function(){return this.uBoneQuat}},{key:"boneTransNode",value:function(){return this.uBoneTrans}},{key:"_buildIntegrate",value:function(){var a=this;return(0,u.I)(function(){var r=(0,u.Na)(u.Ja).toVar();(0,u.J)(r.greaterThanEqual(a.uNumVerts),function(){(0,u.O)()});var n=r.div(ij).toVar(),i=r.sub(n.mul(ij)).toVar(),s=a.boneQuatNode(),o=a.boneTransNode(),l=a.initialPos.element(r).toVar(),c=(0,u.Dc)(iX(s,l.xyz).add(o),l.w).toVar(),h=a.positions.element(r).toVar(),m=a.positionsPrev.element(r).toVar(),f=m.toVar();(0,u.J)(a.uReset.greaterThan(.5),function(){h.assign(c),f.assign(c)});var v=c.toVar();(0,u.J)(h.w.greaterThan(0),function(){var r=(0,u.za)(d.i),n=(0,u.wa)(a.uDamping.negate().mul(r).mul(60)),i=h.xyz.add(h.xyz.sub(f.xyz).mul(n)).add((0,u.Cc)(0,-1,0).mul(a.uGravity).mul(r).mul(r));v.assign((0,u.Dc)(i,h.w))}),(0,u.J)(a.uGlobalStiffness.greaterThan(0).and(a.uGlobalRange.greaterThan(0)).and(v.w.greaterThan(0)).and(i.toFloat().lessThan(a.uGlobalRange.mul(ij))),function(){var n=r.sub(i),o=a.initialPos.element(n),l=(0,u.xb)(iX(s,o.xyz)).y.mul(.5).add(.5),d=a.uGlobalStiffness.mul((0,u.Nb)((0,u.eb)(l,0),a.uStiffnessFalloff)),h=c.xyz.sub(v.xyz).mul(d);v.assign((0,u.Dc)(v.xyz.add(h),v.w))}),(0,u.J)(a.uKink.greaterThan(0).and(v.w.greaterThan(0)),function(){var r=i.toFloat().div(ij),s=n.sub(n.div(256).mul(256)).toFloat().mul(.0245),l=r.mul(a.uKinkFreq).mul(6.2831853).add(s),d=a.uKink.mul(r).mul(.15).mul(a.uUnitScale),h=(0,u.xb)(c.xyz.sub(o)).toVar(),m=(0,u.Cc)(0).toVar();(0,u.J)((0,u.P)(h.y).lessThan(.99),function(){m.assign((0,u.xb)((0,u.na)(h,(0,u.Cc)(0,1,0))))}).Else(function(){m.assign((0,u.xb)((0,u.na)(h,(0,u.Cc)(1,0,0))))});var f=(0,u.xb)((0,u.na)(h,m)),p=m.mul((0,u.dc)(l)).mul(d).add(f.mul((0,u.ma)(l.mul(1.3).add(s))).mul(d).mul(.7));v.assign((0,u.Dc)(v.xyz.add(p),v.w))}),a.positionsPrevPrev.element(r).assign(m),a.positionsPrev.element(r).assign(h),a.positions.element(r).assign(v)})().compute(iH[0],iH)}},{key:"_buildStrandLevel",value:function(){var a=this;return(0,u.I)(function(){var r=(0,u.Na)(u.Ja).toVar();(0,u.J)(r.greaterThanEqual(a.uNumStrands),function(){(0,u.O)()});var n=r.mul(ij).toVar(),i=a.positionsPrevPrev.element(n.add(1)),s=a.positionsPrev.element(n),o=a.positionsPrev.element(n.add(1)),l=a.positions.element(n),c=a.positions.element(n.add(1)),d=o.xyz.sub(s.xyz),h=c.xyz.sub(l.xyz),m=iQ(d.div((0,u.eb)((0,u.Va)(d),1e-7)),h.div((0,u.eb)((0,u.Va)(h),1e-7))).toVar(),f=l.xyz.sub(iX(m,s.xyz)),v=a.uVspCoeff.toVar(),p=(0,u.Va)(c.xyz.sub(o.xyz.mul(2)).add(i.xyz));(0,u.J)(p.greaterThan(a.uVspThreshold),function(){v.assign(1)}),a.vspQuats.element(r).assign(m),a.vspTrans.element(r).assign((0,u.Dc)(f,v))})().compute(iH[0],iH)}},{key:"_buildVsp",value:function(){var a=this;return(0,u.I)(function(){var r=(0,u.Na)(u.Ja).toVar();(0,u.J)(r.greaterThanEqual(a.uNumVerts),function(){(0,u.O)()});var n=r.div(ij).toVar(),i=r.sub(n.mul(ij)).toVar();(0,u.J)(i.lessThan(2),function(){(0,u.O)()});var s=a.vspQuats.element(n),o=a.vspTrans.element(n),l=o.w,c=a.positions.element(r).toVar(),d=a.positionsPrev.element(r).toVar(),h=function(a){return(0,u.Dc)(a.xyz.mul((0,u.za)(1).sub(l)).add(iX(s,a.xyz).add(o.xyz).mul(l)),a.w)};a.positions.element(r).assign(h(c)),a.positionsPrev.element(r).assign(h(d))})().compute(iH[0],iH)}},{key:"_buildLocalShape",value:function(){var a=this;return(0,u.I)(function(){var r=(0,u.Na)(u.Ja).toVar();(0,u.J)(r.greaterThanEqual(a.uNumStrands),function(){(0,u.O)()});var n=r.mul(ij).toVar(),i=(0,u.gb)(a.uLocalStiffness,.95).mul(.5),s=a.boneQuatNode();(0,u.K)(iK-1,function(r){var o=r.i,l=n.add(o).add(1).toVar(),c=a.positions.element(l).toVar(),d=a.positions.element(l.add(1)).toVar(),h=a.positions.element(l.sub(1)),m=iX(s,a.initialPos.element(l).xyz),f=iX(s,a.initialPos.element(l.add(1)).xyz),v=iX(s,a.initialPos.element(l.sub(1)).xyz),p=c.xyz.sub(h.xyz),g=f.sub(m),y=m.sub(v),_=iX(iQ(y.div((0,u.eb)((0,u.Va)(y),1e-7)),p.div((0,u.eb)((0,u.Va)(p),1e-7))),g).add(c.xyz).sub(d.xyz).mul(i);(0,u.J)(c.w.greaterThan(0),function(){c.assign((0,u.Dc)(c.xyz.sub(_),c.w))}),(0,u.J)(d.w.greaterThan(0),function(){d.assign((0,u.Dc)(d.xyz.add(_),d.w))}),a.positions.element(l).assign(c),a.positions.element(l.add(1)).assign(d)})})().compute(iH[0],iH)}},{key:"_buildLengthWind",value:function(){var a=this;return(0,u.I)(function(){var r=(0,u.Na)(u.Ja).toVar();(0,u.J)(r.greaterThanEqual(a.uNumStrands),function(){(0,u.O)()});var n=r.mul(ij).toVar();(0,u.J)(a.uHasWind.greaterThan(.5),function(){var i=r.sub(r.div(20).mul(20)).toFloat().div(20),s=a.uWind0.mul(i).add(a.uWind1.mul((0,u.za)(1).sub(i))).add(a.uWind2.mul(i)).add(a.uWind3.mul((0,u.za)(1).sub(i))).toVar();(0,u.K)(iK-2,function(r){var i=r.i,o=n.add(i).add(2).toVar(),l=a.positions.element(o).toVar(),c=a.positions.element(o.add(1)),h=l.xyz.sub(c.xyz),m=(0,u.na)((0,u.na)(h,s),h).negate();l.assign((0,u.Dc)(l.xyz.add(m.mul(d.i).mul(.1)),l.w)),a.positions.element(o).assign(l)})}),(0,u.K)(5,function(){(0,u.K)(iK,function(r){var i=r.i,s=n.add(i).toVar(),o=a.positions.element(s).toVar(),l=a.positions.element(s.add(1)).toVar(),c=a.restLengths.element(s),d=l.xyz.sub(o.xyz),h=(0,u.eb)((0,u.Va)(d),1e-7),m=(0,u.za)(1).sub(c.div(h)),f=d.mul(m),v=o.w.greaterThan(0),p=l.w.greaterThan(0),g=v.select(p.select((0,u.za)(.5),(0,u.za)(1)),(0,u.za)(0)),y=p.select(v.select((0,u.za)(.5),(0,u.za)(1)),(0,u.za)(0));o.assign((0,u.Dc)(o.xyz.add(f.mul(g)),o.w)),l.assign((0,u.Dc)(l.xyz.sub(f.mul(y)),l.w)),a.positions.element(s).assign(o),a.positions.element(s.add(1)).assign(l)})}),(0,u.K)(iK,function(r){var i=r.i,s=n.add(i).add(1).toVar(),o=a.positions.element(s.sub(1)),l=a.positions.element(s).toVar(),c=l.xyz.sub(o.xyz),d=(0,u.eb)((0,u.Va)(c),1e-7),h=a.restLengths.element(s.sub(1));(0,u.J)(d.greaterThan(h),function(){l.assign((0,u.Dc)(o.xyz.add(c.div(d).mul(h)),l.w)),a.positions.element(s).assign(l)})}),(0,u.K)(ij,function(r){var i=r.i,s=n.add(i).toVar(),o=i.equal(ij-1).select(s.sub(1),s).toVar(),l=(0,u.xb)(a.positions.element(o.add(1)).xyz.sub(a.positions.element(o).xyz));a.tangents.element(s).assign((0,u.Dc)(l,0))})})().compute(iH[0],iH)}},{key:"_buildClump",value:function(){var a=this;return(0,u.I)(function(){var r=(0,u.Na)(u.Ja).toVar();(0,u.J)(r.greaterThanEqual(a.uNumStrands),function(){(0,u.O)()});var n=a.uClumpSize.toVar(),i=r.div(n).mul(n).toVar();(0,u.J)(r.equal(i),function(){(0,u.O)()}),(0,u.J)(i.greaterThanEqual(a.uNumStrands),function(){(0,u.O)()});var s=r.mul(ij).toVar(),o=i.mul(ij).toVar();(0,u.K)(iK,function(r){var n=r.i.add(1).toVar(),i=n.toFloat().div(iK),l=a.uClumpStrength.mul((0,u.Nb)(i,(0,u.za)(1).div((0,u.eb)(a.uClumpTipScale,.5)))),c=s.add(n).toVar(),d=a.positions.element(c).toVar(),h=a.positions.element(o.add(n));d.assign((0,u.Dc)((0,u.hb)(d.xyz,h.xyz,l),d.w)),a.positions.element(c).assign(d)})})().compute(iH[0],iH)}},{key:"_buildRigidFollow",value:function(){var a=this;return(0,u.I)(function(){var r=(0,u.Na)(u.Ja).toVar();(0,u.J)(r.greaterThanEqual(a.uNumVerts),function(){(0,u.O)()});var n=a.uDeltaQuat,i=a.uPrevBoneTrans,s=a.boneTransNode(),o=function(a){var o=a.element(r).toVar();o.assign((0,u.Dc)(iX(n,o.xyz.sub(i)).add(s),o.w)),a.element(r).assign(o)};o(a.positions),o(a.positionsPrev),o(a.positionsPrevPrev);var l=a.tangents.element(r).toVar();l.assign((0,u.Dc)(iX(n,l.xyz),0)),a.tangents.element(r).assign(l)})().compute(iH[0],iH)}},{key:"pastelNoise",value:function(a){var r=a.sub(this.boneTransNode()).mul(this.uNoiseScale),n=iZ(r).mul(.5).add(.5),i=iZ(r.add((0,u.Cc)(31.7,17.3,53.1))).mul(.5).add(.5),s=iZ(r.mul(.7).add((0,u.Cc)(71.9,11.2,43.8))).mul(.5).add(.5),o=(0,u.hb)(this.uNoiseA,this.uNoiseB,n);return o=(0,u.hb)(o,this.uNoiseC,i.mul(.6)),o=(0,u.hb)(o,this.uNoiseD,s.mul(.25))}},{key:"_buildRibbonMaterial",value:function(){var a=this,r=(0,u.Ac)("vec3","vHairTangent"),n=(0,u.Ac)("vec3","vHairNormal"),i=(0,u.Ac)("vec2","vHairUv"),s=(0,u.Ac)("float","vHairRand"),o=(0,u.Ac)("vec3","vHairInherit"),l=new i1(new i$(r,this.uSpecPow,this.uSpecInt,this.uDiffInt,this.uAmbInt));l.name="SplineHairRibbons",l.userData.hairShadowVariant="texel-floor-v6",l.transparent=!1,l.depthTest=!0,l.depthWrite=!0,l.side=b.l;var c=function(l){return(0,u.I)(function(){var c,d,h=(0,u.Na)(u.Ja).toVar(),m=h.div(iK).toVar(),f=h.sub(m.mul(iK)).toVar(),v=m.mul(ij).add(f).toVar(),p=(0,u.Na)(u.Gc).toVar(),g=p.bitAnd(1).toFloat().toVar(),y=p.shiftRight(1).bitAnd(1).toFloat().toVar(),_=a.positions.element(v).xyz.toVar(),x=a.positions.element(v.add(1)).xyz.toVar(),b=a.tangents.element(v).xyz,T=a.tangents.element(v.add(1)).xyz,w=(0,u.hb)(_,x,y).toVar(),S=(0,u.hb)(b,T,y).toVar(),z=(0,u.xb)(u.ba.sub(w)),V=(0,u.na)(S,z).toVar(),C=(0,u.Va)(V).toVar();V.assign(C.greaterThan(1e-7).select(V.div(C),(0,u.Cc)(1,0,0)));var k=f.toFloat().div(iK),M=f.add(1).toFloat().div(iK),A=(0,u.hb)(k,M,y).toVar(),R=a.uWidth.mul((0,u.za)(1).sub(A.mul(a.uTipFade))).toVar(),P=l?(d=(c=a.uShadowTexelWorld).greaterThan(0).select(c.mul(1.5).clamp((0,u.za)(2),(0,u.za)(8)),(0,u.za)(0)),(0,u.eb)(d.sub(R),0).toVar()):null;P&&R.addAssign(P);var N=g.mul(2).sub(1),B=w.add(V.mul(R).mul(N)).toVar();P&&B.assign(B.sub(z.mul(P)));var D=a.positionsPrev.element(v).xyz,E=a.positionsPrev.element(v.add(1)).xyz;u.Jb.assign((0,u.hb)(D,E,y).add(V.mul(R).mul(N)));var I=(0,u.Ca)((0,u.dc)(m.toFloat().mul(12.9898)).mul(43758.5453));return s.assign(I),o.assign(a.rootColors.element(m).xyz),r.assign(S),n.assign((0,u.xb)(z.sub(S.mul((0,u.ua)(S,z))))),i.assign((0,u.Bc)(g,A)),B})},d=(0,u.I)(function(){var r=i.y,n=(0,u.hb)(a.uHairRoot,a.uHairMid,(0,u.gb)(r.mul(2),1)),l=r.lessThan(.5).select(n,(0,u.hb)(a.uHairMid,a.uHairTip,r.sub(.5).mul(2))).toVar(),c=o.mul((0,u.hb)(a.uShadeRoot,a.uShadeTip,r));l.assign(a.uColorSource.greaterThan(.5).select(c,l)),l.assign((0,u.hb)(l,a.pastelNoise(u.Mb),a.uNoiseMixHair));var d=(0,u.za)(1).sub((0,u.P)(i.x.sub(.5)).mul(2));return(0,u.za)(1).sub(r.mul(a.uTipFade)).mul((0,u.Nb)((0,u.eb)(d,0),.5)).toVar().lessThan(.25).discard(),s.greaterThanEqual(a.uOpacity).discard(),(0,u.Dc)(l,1)});return l.positionNode=c(!1)(),l.castShadowPositionNode=c(!0)(),l.normalNode=n,l.colorNode=d(),l.needsUpdate=!0,l}},{key:"_buildScalpMaterial",value:function(){var a=this,r=new i1(new i0);return r.name="SplineHairScalp",r.colorNode=(0,u.I)(function(){var r=(0,u.hb)(a.uHeadColor,a.pastelNoise(u.Mb),a.uNoiseMixHead);return(0,u.Dc)(r,1)})(),r.needsUpdate=!0,r}},{key:"update",value:function(a,r){if(!0===(null==(n=r.backend)?void 0:n.isWebGPUBackend)&&(this._renderer=r,!1!==a.visible)){if(!this._armed){this._armed=!0;var n,i,s,o=a.ribbonMesh.material;a.ribbonMesh.material=this.ribbonMaterial,null==(i=o.dispose)||i.call(o);var l=a.scalpMesh.material;a.scalpMesh.material=this.scalpMaterial,null==(s=l.dispose)||s.call(l),a.ribbonMesh.visible=!0}a.checkDataDrift();var u=a.activeGuideStrands,c=u*ij;a.generation!==this._uploadedGeneration&&(this._uploadedGeneration=a.generation,this.initialPos.value.array.set(a.roots.initialPositions),this.initialPos.value.needsUpdate=!0,this.restLengths.value.array.set(a.roots.restLengths),this.restLengths.value.needsUpdate=!0,this.rootColors.value.array.set(a.roots.rootColors),this.rootColors.value.needsUpdate=!0,a.ribbonMesh.geometry.instanceCount=u*iK,a.resetRequested=!0),this._syncUniforms(a),a.boneTransform(i2,i5),this.uBoneQuat.value.set(i2.x,i2.y,i2.z,i2.w),this.uBoneTrans.value.copy(i5);var h=this._hasPrevBone&&(.9999995>Math.abs(this._prevBoneQuat.dot(i2))||this._prevBonePos.distanceToSquared(i5)>1e-8),m=Math.floor(a.pendingSimSeconds/d.i);m>d.j&&(m=d.j),a.pendingSimSeconds=Math.max(0,Math.min(a.pendingSimSeconds-m*d.i,d.i)),a.resetRequested&&m<1&&(m=1),m<1&&h&&(i3.copy(this._prevBoneQuat).invert().premultiply(i2),this.uDeltaQuat.value.set(i3.x,i3.y,i3.z,i3.w),this.uPrevBoneTrans.value.copy(this._prevBonePos),this._dispatch(r,this.kRigidFollow,c));for(var f=0;f<m;f++){this.uReset.value=a.resetRequested&&0===f?1:0,a.simTime+=d.i,this._updateWind(a),this._dispatch(r,this.kIntegrate,c),this._dispatch(r,this.kStrandLevel,u),this._dispatch(r,this.kVsp,c);for(var v=0;v<2;v++)this._dispatch(r,this.kLocalShape,u);this._dispatch(r,this.kLengthWind,u),a.data.clumpStrength>.001&&this._dispatch(r,this.kClump,u)}m>0&&(a.resetRequested=!1),this._prevBoneQuat.copy(i2),this._prevBonePos.copy(i5),this._hasPrevBone=!0}}},{key:"_dispatch",value:function(a,r,n){r.count=n,a.compute(r)}},{key:"_updateWind",value:function(a){var r=a.data,n=Math.max(a.roots.unitScale,.001),i=r.windStrength/n;this.uHasWind.value=+(r.windStrength>.001);var s=.7*a.simTime,o=Math.sin(s)*i,l=Math.cos(s)*i*.5;this.uWind0.value.set(o,0,l),this.uWind1.value.set(.7*o,.5*i,1.2*l),this.uWind2.value.set(-(.3*o),0,.5*l),this.uWind3.value.set(.5*o,-.3*i,-(.8*l))}},{key:"_shadowTexelWorld",value:function(a){for(var r=a;r.parent;)r=r.parent;var n=r;if(!(null==n?void 0:n.traverse))return 0;var i=0;return n.traverse(function(a){var r,n,s,o;if(!0===a.isDirectionalLight&&!0===a.castShadow&&!1!==a.visible){var l=null==(n=a.shadow)?void 0:n.camera,u=null!=(r=null==(o=a.shadow)||null==(s=o.mapSize)?void 0:s.x)?r:0;"number"!=typeof(null==l?void 0:l.right)||"number"!=typeof(null==l?void 0:l.left)||u<=0||(i=Math.max(i,(l.right-l.left)/u))}}),i}},{key:"_syncUniforms",value:function(a){var r,n,i=a.data,s=a.roots.unitScale;this.uNumStrands.value=a.activeGuideStrands,this.uNumVerts.value=a.activeGuideStrands*ij,this.uDamping.value=i.damping,this.uLocalStiffness.value=i.localStiffness,this.uGlobalStiffness.value=i.globalStiffness,this.uGlobalRange.value=i.globalRange,this.uStiffnessFalloff.value=i.stiffnessFalloff,this.uGravity.value=i.gravity*s,this.uVspCoeff.value=i.vspCoefficient,this.uVspThreshold.value=.5*s,this.uKink.value=i.kink,this.uKinkFreq.value=i.kinkFrequency,this.uUnitScale.value=s,this.uClumpStrength.value=i.clumpStrength,this.uClumpSize.value=Math.max(1,Math.round(i.clumpSize)),this.uClumpTipScale.value=i.clumpTipScale;var o=function(a,r){a.value.setRGB(r.r,r.g,r.b,b.Ib)};o(this.uHairRoot,i.hairRootColor),o(this.uHairMid,i.hairMidColor),o(this.uHairTip,i.hairTipColor),o(this.uHeadColor,i.headColor),o(this.uNoiseA,i.noiseColorA),o(this.uNoiseB,i.noiseColorB),o(this.uNoiseC,i.noiseColorC),o(this.uNoiseD,i.noiseColorD);var l=+!!i.noiseEnabled;this.uNoiseScale.value=i.noiseScale/Math.max(s,.001),this.uNoiseMixHair.value=i.noiseMixHair*l,this.uNoiseMixHead.value=i.noiseMixHead*l,this.uWidth.value=.003*i.hairWidth*d.h*a.widthWorldScale,this.uShadowTexelWorld.value=this._shadowTexelWorld(a),this.uColorSource.value="object"===i.hairColorSource&&"object"===i.headShape&&i.baseObjectId?1:0,this.uShadeRoot.value=null!=(r=i.hairShadeRoot)?r:.6,this.uShadeTip.value=null!=(n=i.hairShadeTip)?n:1.15,this.uSpecPow.value=i.specularPower,this.uSpecInt.value=i.specularIntensity,this.uDiffInt.value=i.diffuseIntensity,this.uAmbInt.value=i.ambientIntensity,this.uOpacity.value=i.opacity,this.uTipFade.value=i.tipFade}},{key:"dispose",value:function(){for(var a,r,n=0,i=[this.kIntegrate,this.kStrandLevel,this.kVsp,this.kLocalShape,this.kLengthWind,this.kClump,this.kRigidFollow];n<i.length;n++)i[n].dispose();this.ribbonMaterial.dispose(),this.scalpMaterial.dispose();var s=null==(r=this._renderer)||null==(a=r.backend)?void 0:a.attributeUtils;if(s)for(var o=0,l=[this.initialPos,this.rootColors,this.positions,this.positionsPrev,this.positionsPrevPrev,this.tangents,this.restLengths,this.vspQuats,this.vspTrans];o<l.length;o++){var u=l[o];s.destroyAttribute(u.value)}this._renderer=null}}]),a}(),i6=new WeakMap,i8=[];(0,d.a)(function(a){var r;return void 0===(r=i6.get(a))&&(r=new i4,i6.set(a,r)),r}),(0,d.c)({release:function(a){var r;void 0!==(r=i6.get(a))&&(i6.delete(a),i8.push(r))},drainRetired:function(){var a=i8.length;if(a>0){var r=!0,n=!1,i=void 0;try{for(var s,o=i8[Symbol.iterator]();!(r=(s=o.next()).done);r=!0)s.value.dispose()}catch(a){n=!0,i=a}finally{try{r||null==o.return||o.return()}finally{if(n)throw i}}i8.length=0}return a}});var i7="\nconst PI: f32 = 3.14159265358979323846;\n\nconst TRANSMITTANCE_TEXTURE_WIDTH: i32 = 256;\nconst TRANSMITTANCE_TEXTURE_HEIGHT: i32 = 64;\nconst SCATTERING_TEXTURE_R_SIZE: i32 = 32;\nconst SCATTERING_TEXTURE_MU_SIZE: i32 = 128;\nconst SCATTERING_TEXTURE_MU_S_SIZE: i32 = 32;\nconst SCATTERING_TEXTURE_NU_SIZE: i32 = 8;\nconst SCATTERING_TEXTURE_WIDTH: i32 = 256;\nconst SCATTERING_TEXTURE_HEIGHT: i32 = 128;\nconst SCATTERING_TEXTURE_DEPTH: i32 = 32;\nconst IRRADIANCE_TEXTURE_WIDTH: i32 = 64;\nconst IRRADIANCE_TEXTURE_HEIGHT: i32 = 16;\n\nstruct DensityProfileLayer {\n width: f32,\n exp_term: f32,\n exp_scale: f32,\n linear_term: f32,\n constant_term: f32,\n pad0: f32,\n pad1: f32,\n pad2: f32,\n}\n\nstruct DensityProfile {\n layers: array<DensityProfileLayer, 2>,\n}\n\n\n\n\nstruct Atm {\n solar_irradiance: vec3f,\n sun_angular_radius: f32,\n rayleigh_scattering: vec3f,\n bottom_radius: f32,\n mie_scattering: vec3f,\n top_radius: f32,\n mie_extinction: vec3f,\n mie_phase_function_g: f32,\n absorption_extinction: vec3f,\n mu_s_min: f32,\n ground_albedo: vec3f,\n pad0: f32,\n sky_spectral_radiance_to_luminance: vec3f,\n pad1: f32,\n sun_spectral_radiance_to_luminance: vec3f,\n pad2: f32,\n rayleigh_density: DensityProfile,\n mie_density: DensityProfile,\n absorption_density: DensityProfile,\n}\n\nfn ClampCosine(mu: f32) -> f32 {\n return clamp(mu, -1.0, 1.0);\n}\n\nfn ClampDistance(d: f32) -> f32 {\n return max(d, 0.0);\n}\n\nfn ClampRadius(atm: Atm, r: f32) -> f32 {\n return clamp(r, atm.bottom_radius, atm.top_radius);\n}\n\nfn SafeSqrt(a: f32) -> f32 {\n return sqrt(max(a, 0.0));\n}\n\n\n\nfn smoothstepGl(edge0: f32, edge1: f32, x: f32) -> f32 {\n let t = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);\n return t * t * (3.0 - 2.0 * t);\n}\n\n\n\n\nfn tex2DBilinear(t: texture_2d<f32>, uv: vec2f, size: vec2i) -> vec4f {\n let coord = uv * vec2f(size) - 0.5;\n let i0 = vec2i(floor(coord));\n let f = coord - floor(coord);\n let maxc = size - 1;\n let c00 = textureLoad(t, clamp(i0, vec2i(0), maxc), 0);\n let c10 = textureLoad(t, clamp(i0 + vec2i(1, 0), vec2i(0), maxc), 0);\n let c01 = textureLoad(t, clamp(i0 + vec2i(0, 1), vec2i(0), maxc), 0);\n let c11 = textureLoad(t, clamp(i0 + vec2i(1, 1), vec2i(0), maxc), 0);\n return mix(mix(c00, c10, f.x), mix(c01, c11, f.x), f.y);\n}\n\nfn tex3DTrilinear(t: texture_3d<f32>, uvw: vec3f, size: vec3i) -> vec4f {\n let coord = uvw * vec3f(size) - 0.5;\n let i0 = vec3i(floor(coord));\n let f = coord - floor(coord);\n let maxc = size - 1;\n let c000 = textureLoad(t, clamp(i0, vec3i(0), maxc), 0);\n let c100 = textureLoad(t, clamp(i0 + vec3i(1, 0, 0), vec3i(0), maxc), 0);\n let c010 = textureLoad(t, clamp(i0 + vec3i(0, 1, 0), vec3i(0), maxc), 0);\n let c110 = textureLoad(t, clamp(i0 + vec3i(1, 1, 0), vec3i(0), maxc), 0);\n let c001 = textureLoad(t, clamp(i0 + vec3i(0, 0, 1), vec3i(0), maxc), 0);\n let c101 = textureLoad(t, clamp(i0 + vec3i(1, 0, 1), vec3i(0), maxc), 0);\n let c011 = textureLoad(t, clamp(i0 + vec3i(0, 1, 1), vec3i(0), maxc), 0);\n let c111 = textureLoad(t, clamp(i0 + vec3i(1, 1, 1), vec3i(0), maxc), 0);\n let z0 = mix(mix(c000, c100, f.x), mix(c010, c110, f.x), f.y);\n let z1 = mix(mix(c001, c101, f.x), mix(c011, c111, f.x), f.y);\n return mix(z0, z1, f.z);\n}\n\nfn GetLayerDensity(layer: DensityProfileLayer, altitude: f32) -> f32 {\n let density = layer.exp_term * exp(layer.exp_scale * altitude) +\n layer.linear_term * altitude + layer.constant_term;\n return clamp(density, 0.0, 1.0);\n}\n\nfn GetProfileDensity(profile: DensityProfile, altitude: f32) -> f32 {\n if (altitude < profile.layers[0].width) {\n return GetLayerDensity(profile.layers[0], altitude);\n }\n return GetLayerDensity(profile.layers[1], altitude);\n}\n\nfn DistanceToTopAtmosphereBoundary(atm: Atm, r: f32, mu: f32) -> f32 {\n let discriminant = r * r * (mu * mu - 1.0) + atm.top_radius * atm.top_radius;\n return ClampDistance(-r * mu + SafeSqrt(discriminant));\n}\n\nfn DistanceToBottomAtmosphereBoundary(atm: Atm, r: f32, mu: f32) -> f32 {\n let discriminant = r * r * (mu * mu - 1.0) +\n atm.bottom_radius * atm.bottom_radius;\n return ClampDistance(-r * mu - SafeSqrt(discriminant));\n}\n\nfn RayIntersectsGround(atm: Atm, r: f32, mu: f32) -> bool {\n return mu < 0.0 &&\n r * r * (mu * mu - 1.0) + atm.bottom_radius * atm.bottom_radius >= 0.0;\n}\n\nfn GetTextureCoordFromUnitRange(x: f32, texture_size: i32) -> f32 {\n return 0.5 / f32(texture_size) + x * (1.0 - 1.0 / f32(texture_size));\n}\n\nfn GetUnitRangeFromTextureCoord(u: f32, texture_size: i32) -> f32 {\n return (u - 0.5 / f32(texture_size)) / (1.0 - 1.0 / f32(texture_size));\n}\n\nfn GetTransmittanceTextureUvFromRMu(atm: Atm, r: f32, mu: f32) -> vec2f {\n let H = sqrt(atm.top_radius * atm.top_radius -\n atm.bottom_radius * atm.bottom_radius);\n let rho = SafeSqrt(r * r - atm.bottom_radius * atm.bottom_radius);\n let d = DistanceToTopAtmosphereBoundary(atm, r, mu);\n let d_min = atm.top_radius - r;\n let d_max = rho + H;\n let x_mu = (d - d_min) / (d_max - d_min);\n let x_r = rho / H;\n return vec2f(\n GetTextureCoordFromUnitRange(x_mu, TRANSMITTANCE_TEXTURE_WIDTH),\n GetTextureCoordFromUnitRange(x_r, TRANSMITTANCE_TEXTURE_HEIGHT));\n}\n\nfn GetRMuFromTransmittanceTextureUv(\n atm: Atm, uv: vec2f, r: ptr<function, f32>, mu: ptr<function, f32>) {\n let x_mu = GetUnitRangeFromTextureCoord(uv.x, TRANSMITTANCE_TEXTURE_WIDTH);\n let x_r = GetUnitRangeFromTextureCoord(uv.y, TRANSMITTANCE_TEXTURE_HEIGHT);\n let H = sqrt(atm.top_radius * atm.top_radius -\n atm.bottom_radius * atm.bottom_radius);\n let rho = H * x_r;\n *r = sqrt(rho * rho + atm.bottom_radius * atm.bottom_radius);\n let d_min = atm.top_radius - *r;\n let d_max = rho + H;\n let d = d_min + x_mu * (d_max - d_min);\n if (d == 0.0) {\n *mu = 1.0;\n } else {\n *mu = (H * H - rho * rho - d * d) / (2.0 * (*r) * d);\n }\n *mu = ClampCosine(*mu);\n}\n\nfn GetTransmittanceToTopAtmosphereBoundary(\n atm: Atm, transmittance_texture: texture_2d<f32>, r: f32, mu: f32) -> vec3f {\n let uv = GetTransmittanceTextureUvFromRMu(atm, r, mu);\n return tex2DBilinear(transmittance_texture, uv,\n vec2i(TRANSMITTANCE_TEXTURE_WIDTH, TRANSMITTANCE_TEXTURE_HEIGHT)).rgb;\n}\n\nfn GetTransmittance(\n atm: Atm, transmittance_texture: texture_2d<f32>,\n r: f32, mu: f32, d: f32, ray_r_mu_intersects_ground: bool) -> vec3f {\n let r_d = ClampRadius(atm, sqrt(d * d + 2.0 * r * mu * d + r * r));\n let mu_d = ClampCosine((r * mu + d) / r_d);\n\n if (ray_r_mu_intersects_ground) {\n return min(\n GetTransmittanceToTopAtmosphereBoundary(atm, transmittance_texture, r_d, -mu_d) /\n GetTransmittanceToTopAtmosphereBoundary(atm, transmittance_texture, r, -mu),\n vec3f(1.0, 1.0, 1.0));\n } else {\n return min(\n GetTransmittanceToTopAtmosphereBoundary(atm, transmittance_texture, r, mu) /\n GetTransmittanceToTopAtmosphereBoundary(atm, transmittance_texture, r_d, mu_d),\n vec3f(1.0, 1.0, 1.0));\n }\n}\n\nfn GetTransmittanceToSun(\n atm: Atm, transmittance_texture: texture_2d<f32>, r: f32, mu_s: f32) -> vec3f {\n let sin_theta_h = atm.bottom_radius / r;\n let cos_theta_h = -sqrt(max(1.0 - sin_theta_h * sin_theta_h, 0.0));\n\n let step = smoothstepGl(-sin_theta_h * atm.sun_angular_radius,\n sin_theta_h * atm.sun_angular_radius,\n mu_s - cos_theta_h);\n\n return GetTransmittanceToTopAtmosphereBoundary(atm, transmittance_texture, r, mu_s) * step;\n}\n\nfn RayleighPhaseFunction(nu: f32) -> f32 {\n let k = 3.0 / (16.0 * PI);\n return k * (1.0 + nu * nu);\n}\n\nfn MiePhaseFunction(g: f32, nu: f32) -> f32 {\n let k = 3.0 / (8.0 * PI) * (1.0 - g * g) / (2.0 + g * g);\n return k * (1.0 + nu * nu) / pow(abs(1.0 + g * g - 2.0 * g * nu), 1.5);\n}\n\nfn GetScatteringTextureUvwzFromRMuMuSNu(\n atm: Atm, r: f32, mu: f32, mu_s: f32, nu: f32,\n ray_r_mu_intersects_ground: bool) -> vec4f {\n let H = sqrt(atm.top_radius * atm.top_radius -\n atm.bottom_radius * atm.bottom_radius);\n let rho = SafeSqrt(r * r - atm.bottom_radius * atm.bottom_radius);\n let u_r = GetTextureCoordFromUnitRange(rho / H, SCATTERING_TEXTURE_R_SIZE);\n\n let r_mu = r * mu;\n let discriminant = r_mu * r_mu - r * r +\n atm.bottom_radius * atm.bottom_radius;\n var u_mu: f32;\n\n if (ray_r_mu_intersects_ground) {\n let d = -r_mu - SafeSqrt(discriminant);\n let d_min = r - atm.bottom_radius;\n let d_max = rho;\n var x: f32 = 0.0;\n if (d_max != d_min) {\n x = (d - d_min) / (d_max - d_min);\n }\n u_mu = 0.5 - 0.5 * GetTextureCoordFromUnitRange(x, SCATTERING_TEXTURE_MU_SIZE / 2);\n } else {\n let d = -r_mu + SafeSqrt(discriminant + H * H);\n let d_min = atm.top_radius - r;\n let d_max = rho + H;\n u_mu = 0.5 + 0.5 * GetTextureCoordFromUnitRange(\n (d - d_min) / (d_max - d_min), SCATTERING_TEXTURE_MU_SIZE / 2);\n }\n\n let d = DistanceToTopAtmosphereBoundary(atm, atm.bottom_radius, mu_s);\n let d_min = atm.top_radius - atm.bottom_radius;\n let d_max = H;\n let a = (d - d_min) / (d_max - d_min);\n let A = -2.0 * atm.mu_s_min * atm.bottom_radius / (d_max - d_min);\n\n let u_mu_s = GetTextureCoordFromUnitRange(\n max(1.0 - a / A, 0.0) / (1.0 + a), SCATTERING_TEXTURE_MU_S_SIZE);\n\n let u_nu = (nu + 1.0) / 2.0;\n return vec4f(u_nu, u_mu_s, u_mu, u_r);\n}\n\nfn GetRMuMuSNuFromScatteringTextureUvwz(\n atm: Atm, uvwz: vec4f,\n r: ptr<function, f32>, mu: ptr<function, f32>, mu_s: ptr<function, f32>,\n nu: ptr<function, f32>, ray_r_mu_intersects_ground: ptr<function, bool>) {\n let H = sqrt(atm.top_radius * atm.top_radius -\n atm.bottom_radius * atm.bottom_radius);\n let rho = H * GetUnitRangeFromTextureCoord(uvwz.w, SCATTERING_TEXTURE_R_SIZE);\n *r = sqrt(rho * rho + atm.bottom_radius * atm.bottom_radius);\n\n if (uvwz.z < 0.5) {\n let d_min = *r - atm.bottom_radius;\n let d_max = rho;\n let d = d_min + (d_max - d_min) * GetUnitRangeFromTextureCoord(\n 1.0 - 2.0 * uvwz.z, SCATTERING_TEXTURE_MU_SIZE / 2);\n if (d == 0.0) {\n *mu = -1.0;\n } else {\n *mu = ClampCosine(-(rho * rho + d * d) / (2.0 * (*r) * d));\n }\n *ray_r_mu_intersects_ground = true;\n } else {\n let d_min = atm.top_radius - *r;\n let d_max = rho + H;\n let d = d_min + (d_max - d_min) * GetUnitRangeFromTextureCoord(\n 2.0 * uvwz.z - 1.0, SCATTERING_TEXTURE_MU_SIZE / 2);\n if (d == 0.0) {\n *mu = 1.0;\n } else {\n *mu = ClampCosine((H * H - rho * rho - d * d) / (2.0 * (*r) * d));\n }\n *ray_r_mu_intersects_ground = false;\n }\n\n let x_mu_s = GetUnitRangeFromTextureCoord(uvwz.y, SCATTERING_TEXTURE_MU_S_SIZE);\n let d_min = atm.top_radius - atm.bottom_radius;\n let d_max = H;\n let A = -2.0 * atm.mu_s_min * atm.bottom_radius / (d_max - d_min);\n let a = (A - x_mu_s * A) / (1.0 + x_mu_s * A);\n let d = d_min + min(a, A) * (d_max - d_min);\n if (d == 0.0) {\n *mu_s = 1.0;\n } else {\n *mu_s = ClampCosine((H * H - d * d) / (2.0 * atm.bottom_radius * d));\n }\n\n *nu = ClampCosine(uvwz.x * 2.0 - 1.0);\n}\n\nfn GetRMuMuSNuFromScatteringTextureFragCoord(\n atm: Atm, frag_coord: vec3f,\n r: ptr<function, f32>, mu: ptr<function, f32>, mu_s: ptr<function, f32>,\n nu: ptr<function, f32>, ray_r_mu_intersects_ground: ptr<function, bool>) {\n let SCATTERING_TEXTURE_SIZE = vec4f(\n f32(SCATTERING_TEXTURE_NU_SIZE - 1),\n f32(SCATTERING_TEXTURE_MU_S_SIZE),\n f32(SCATTERING_TEXTURE_MU_SIZE),\n f32(SCATTERING_TEXTURE_R_SIZE));\n\n let frag_coord_nu = floor(frag_coord.x / f32(SCATTERING_TEXTURE_MU_S_SIZE));\n let frag_coord_mu_s = frag_coord.x -\n f32(SCATTERING_TEXTURE_MU_S_SIZE) * floor(frag_coord.x / f32(SCATTERING_TEXTURE_MU_S_SIZE));\n\n let uvwz = vec4f(frag_coord_nu, frag_coord_mu_s, frag_coord.y, frag_coord.z) /\n SCATTERING_TEXTURE_SIZE;\n\n GetRMuMuSNuFromScatteringTextureUvwz(\n atm, uvwz, r, mu, mu_s, nu, ray_r_mu_intersects_ground);\n\n *nu = clamp(*nu,\n (*mu) * (*mu_s) - sqrt((1.0 - (*mu) * (*mu)) * (1.0 - (*mu_s) * (*mu_s))),\n (*mu) * (*mu_s) + sqrt((1.0 - (*mu) * (*mu)) * (1.0 - (*mu_s) * (*mu_s))));\n}\n\nfn GetIrradianceTextureUvFromRMuS(atm: Atm, r: f32, mu_s: f32) -> vec2f {\n let x_r = (r - atm.bottom_radius) / (atm.top_radius - atm.bottom_radius);\n let x_mu_s = mu_s * 0.5 + 0.5;\n return vec2f(GetTextureCoordFromUnitRange(x_mu_s, IRRADIANCE_TEXTURE_WIDTH),\n GetTextureCoordFromUnitRange(x_r, IRRADIANCE_TEXTURE_HEIGHT));\n}\n\nfn GetIrradiance(\n atm: Atm, irradiance_texture: texture_2d<f32>, r: f32, mu_s: f32) -> vec3f {\n let uv = GetIrradianceTextureUvFromRMuS(atm, r, mu_s);\n return tex2DBilinear(irradiance_texture, uv,\n vec2i(IRRADIANCE_TEXTURE_WIDTH, IRRADIANCE_TEXTURE_HEIGHT)).rgb;\n}\n",i9=function(a){return"\n".concat(i7,"\n\nfn ComputeOpticalLengthToTopAtmosphereBoundary(\n atm: Atm, profile: DensityProfile, r: f32, mu: f32) -> f32 {\n const SAMPLE_COUNT: i32 = 500;\n let dx = DistanceToTopAtmosphereBoundary(atm, r, mu) / f32(SAMPLE_COUNT);\n var result: f32 = 0.0;\n for (var i: i32 = 0; i <= SAMPLE_COUNT; i++) {\n let d_i = f32(i) * dx;\n let r_i = sqrt(d_i * d_i + 2.0 * r * mu * d_i + r * r);\n let y_i = GetProfileDensity(profile, r_i - atm.bottom_radius);\n var weight_i: f32 = 1.0;\n if (i == 0 || i == SAMPLE_COUNT) {\n weight_i = 0.5;\n }\n result += y_i * weight_i * dx;\n }\n return result;\n}\n\nfn ComputeTransmittanceToTopAtmosphereBoundary(\n atm: Atm, r: f32, mu: f32) -> vec3f {\n var density = vec3f(0.0);\n density += atm.rayleigh_scattering *\n ComputeOpticalLengthToTopAtmosphereBoundary(atm, atm.rayleigh_density, r, mu);\n density += atm.mie_extinction *\n ComputeOpticalLengthToTopAtmosphereBoundary(atm, atm.mie_density, r, mu);\n density += atm.absorption_extinction *\n ComputeOpticalLengthToTopAtmosphereBoundary(atm, atm.absorption_density, r, mu);\n return exp(-density);\n}\n\nfn ComputeTransmittanceToTopAtmosphereBoundaryTexture(\n atm: Atm, frag_coord: vec2f) -> vec3f {\n let TRANSMITTANCE_TEXTURE_SIZE = vec2f(\n f32(TRANSMITTANCE_TEXTURE_WIDTH), f32(TRANSMITTANCE_TEXTURE_HEIGHT));\n var r: f32;\n var mu: f32;\n GetRMuFromTransmittanceTextureUv(\n atm, frag_coord / TRANSMITTANCE_TEXTURE_SIZE, &r, &mu);\n return ComputeTransmittanceToTopAtmosphereBoundary(atm, r, mu);\n}\n\nfn ComputeSingleScatteringIntegrand(\n atm: Atm, transmittance_texture: texture_2d<f32>,\n r: f32, mu: f32, mu_s: f32, nu: f32, d: f32,\n ray_r_mu_intersects_ground: bool,\n rayleigh: ptr<function, vec3f>, mie: ptr<function, vec3f>) {\n let r_d = ClampRadius(atm, sqrt(d * d + 2.0 * r * mu * d + r * r));\n let mu_s_d = ClampCosine((r * mu_s + d * nu) / r_d);\n\n let transmittance =\n GetTransmittance(atm, transmittance_texture, r, mu, d, ray_r_mu_intersects_ground) *\n GetTransmittanceToSun(atm, transmittance_texture, r_d, mu_s_d);\n\n *rayleigh = transmittance *\n GetProfileDensity(atm.rayleigh_density, r_d - atm.bottom_radius);\n *mie = transmittance *\n GetProfileDensity(atm.mie_density, r_d - atm.bottom_radius);\n}\n\nfn DistanceToNearestAtmosphereBoundary(\n atm: Atm, r: f32, mu: f32, ray_r_mu_intersects_ground: bool) -> f32 {\n if (ray_r_mu_intersects_ground) {\n return DistanceToBottomAtmosphereBoundary(atm, r, mu);\n }\n return DistanceToTopAtmosphereBoundary(atm, r, mu);\n}\n\nfn ComputeSingleScattering(\n atm: Atm, transmittance_texture: texture_2d<f32>,\n r: f32, mu: f32, mu_s: f32, nu: f32,\n ray_r_mu_intersects_ground: bool,\n rayleigh: ptr<function, vec3f>, mie: ptr<function, vec3f>) {\n const SAMPLE_COUNT: i32 = 50;\n let dx = DistanceToNearestAtmosphereBoundary(\n atm, r, mu, ray_r_mu_intersects_ground) / f32(SAMPLE_COUNT);\n\n var rayleigh_sum = vec3f(0.0);\n var mie_sum = vec3f(0.0);\n\n for (var i: i32 = 0; i <= SAMPLE_COUNT; i++) {\n let d_i = f32(i) * dx;\n var rayleigh_i: vec3f;\n var mie_i: vec3f;\n ComputeSingleScatteringIntegrand(\n atm, transmittance_texture, r, mu, mu_s, nu, d_i,\n ray_r_mu_intersects_ground, &rayleigh_i, &mie_i);\n\n var weight_i: f32 = 1.0;\n if (i == 0 || i == SAMPLE_COUNT) {\n weight_i = 0.5;\n }\n rayleigh_sum += rayleigh_i * weight_i;\n mie_sum += mie_i * weight_i;\n }\n\n *rayleigh = rayleigh_sum * dx * atm.solar_irradiance * atm.rayleigh_scattering;\n *mie = mie_sum * dx * atm.solar_irradiance * atm.mie_scattering;\n}\n\nfn ComputeSingleScatteringTexture(\n atm: Atm, transmittance_texture: texture_2d<f32>, frag_coord: vec3f,\n rayleigh: ptr<function, vec3f>, mie: ptr<function, vec3f>) {\n var r: f32;\n var mu: f32;\n var mu_s: f32;\n var nu: f32;\n var ray_r_mu_intersects_ground: bool;\n GetRMuMuSNuFromScatteringTextureFragCoord(\n atm, frag_coord, &r, &mu, &mu_s, &nu, &ray_r_mu_intersects_ground);\n ComputeSingleScattering(\n atm, transmittance_texture, r, mu, mu_s, nu,\n ray_r_mu_intersects_ground, rayleigh, mie);\n}\n\n// The n-th-order lookup used during precompute: the delta textures are\n// float32, so they go through the manual trilinear helper.\nfn GetScatteringDelta(\n atm: Atm, scattering_texture: texture_3d<f32>,\n r: f32, mu: f32, mu_s: f32, nu: f32,\n ray_r_mu_intersects_ground: bool) -> vec3f {\n let uvwz = GetScatteringTextureUvwzFromRMuMuSNu(\n atm, r, mu, mu_s, nu, ray_r_mu_intersects_ground);\n\n let tex_coord_x = uvwz.x * f32(SCATTERING_TEXTURE_NU_SIZE - 1);\n let tex_x = floor(tex_coord_x);\n let lerp = tex_coord_x - tex_x;\n\n let uvw0 = vec3f((tex_x + uvwz.y) / f32(SCATTERING_TEXTURE_NU_SIZE), uvwz.z, uvwz.w);\n let uvw1 = vec3f((tex_x + 1.0 + uvwz.y) / f32(SCATTERING_TEXTURE_NU_SIZE), uvwz.z, uvwz.w);\n\n let size = vec3i(SCATTERING_TEXTURE_WIDTH, SCATTERING_TEXTURE_HEIGHT, SCATTERING_TEXTURE_DEPTH);\n return tex3DTrilinear(scattering_texture, uvw0, size).rgb * (1.0 - lerp) +\n tex3DTrilinear(scattering_texture, uvw1, size).rgb * lerp;\n}\n\nfn GetScatteringOrder(\n atm: Atm,\n single_rayleigh_scattering_texture: texture_3d<f32>,\n single_mie_scattering_texture: texture_3d<f32>,\n multiple_scattering_texture: texture_3d<f32>,\n r: f32, mu: f32, mu_s: f32, nu: f32,\n ray_r_mu_intersects_ground: bool,\n scattering_order: i32) -> vec3f {\n if (scattering_order == 1) {\n let rayleigh = GetScatteringDelta(\n atm, single_rayleigh_scattering_texture, r, mu, mu_s, nu,\n ray_r_mu_intersects_ground);\n let mie = GetScatteringDelta(\n atm, single_mie_scattering_texture, r, mu, mu_s, nu,\n ray_r_mu_intersects_ground);\n return rayleigh * RayleighPhaseFunction(nu) +\n mie * MiePhaseFunction(atm.mie_phase_function_g, nu);\n } else {\n return GetScatteringDelta(\n atm, multiple_scattering_texture, r, mu, mu_s, nu,\n ray_r_mu_intersects_ground);\n }\n}\n\nfn GetRMuSFromIrradianceTextureUv(\n atm: Atm, uv: vec2f, r: ptr<function, f32>, mu_s: ptr<function, f32>) {\n let x_mu_s = GetUnitRangeFromTextureCoord(uv.x, IRRADIANCE_TEXTURE_WIDTH);\n let x_r = GetUnitRangeFromTextureCoord(uv.y, IRRADIANCE_TEXTURE_HEIGHT);\n *r = atm.bottom_radius + x_r * (atm.top_radius - atm.bottom_radius);\n *mu_s = ClampCosine(2.0 * x_mu_s - 1.0);\n}\n\nfn ComputeDirectIrradiance(\n atm: Atm, transmittance_texture: texture_2d<f32>, r: f32, mu_s: f32) -> vec3f {\n let alpha_s = atm.sun_angular_radius;\n\n var average_cosine_factor: f32;\n if (mu_s < -alpha_s) {\n average_cosine_factor = 0.0;\n } else if (mu_s > alpha_s) {\n average_cosine_factor = mu_s;\n } else {\n average_cosine_factor = (mu_s + alpha_s) * (mu_s + alpha_s) / (4.0 * alpha_s);\n }\n\n return atm.solar_irradiance *\n GetTransmittanceToTopAtmosphereBoundary(atm, transmittance_texture, r, mu_s) *\n average_cosine_factor;\n}\n\nfn ComputeIndirectIrradiance(\n atm: Atm,\n single_rayleigh_scattering_texture: texture_3d<f32>,\n single_mie_scattering_texture: texture_3d<f32>,\n multiple_scattering_texture: texture_3d<f32>,\n r: f32, mu_s: f32, scattering_order: i32) -> vec3f {\n const SAMPLE_COUNT: i32 = 32;\n let dphi = PI / f32(SAMPLE_COUNT);\n let dtheta = PI / f32(SAMPLE_COUNT);\n\n var result = vec3f(0.0);\n let omega_s = vec3f(sqrt(1.0 - mu_s * mu_s), 0.0, mu_s);\n\n for (var j: i32 = 0; j < SAMPLE_COUNT / 2; j++) {\n let theta = (f32(j) + 0.5) * dtheta;\n for (var i: i32 = 0; i < 2 * SAMPLE_COUNT; i++) {\n let phi = (f32(i) + 0.5) * dphi;\n let omega = vec3f(cos(phi) * sin(theta), sin(phi) * sin(theta), cos(theta));\n let domega = dtheta * dphi * sin(theta);\n let nu = dot(omega, omega_s);\n\n result += GetScatteringOrder(atm,\n single_rayleigh_scattering_texture, single_mie_scattering_texture,\n multiple_scattering_texture,\n r, omega.z, mu_s, nu, false, scattering_order) * omega.z * domega;\n }\n }\n\n return result;\n}\n\nfn ComputeDirectIrradianceTexture(\n atm: Atm, transmittance_texture: texture_2d<f32>, frag_coord: vec2f) -> vec3f {\n var r: f32;\n var mu_s: f32;\n let IRRADIANCE_TEXTURE_SIZE = vec2f(\n f32(IRRADIANCE_TEXTURE_WIDTH), f32(IRRADIANCE_TEXTURE_HEIGHT));\n GetRMuSFromIrradianceTextureUv(\n atm, frag_coord / IRRADIANCE_TEXTURE_SIZE, &r, &mu_s);\n return ComputeDirectIrradiance(atm, transmittance_texture, r, mu_s);\n}\n\nfn ComputeIndirectIrradianceTexture(\n atm: Atm,\n single_rayleigh_scattering_texture: texture_3d<f32>,\n single_mie_scattering_texture: texture_3d<f32>,\n multiple_scattering_texture: texture_3d<f32>,\n frag_coord: vec2f, scattering_order: i32) -> vec3f {\n var r: f32;\n var mu_s: f32;\n let IRRADIANCE_TEXTURE_SIZE = vec2f(\n f32(IRRADIANCE_TEXTURE_WIDTH), f32(IRRADIANCE_TEXTURE_HEIGHT));\n GetRMuSFromIrradianceTextureUv(\n atm, frag_coord / IRRADIANCE_TEXTURE_SIZE, &r, &mu_s);\n return ComputeIndirectIrradiance(atm,\n single_rayleigh_scattering_texture, single_mie_scattering_texture,\n multiple_scattering_texture, r, mu_s, scattering_order);\n}\n\nfn ComputeScatteringDensity(\n atm: Atm,\n transmittance_texture: texture_2d<f32>,\n single_rayleigh_scattering_texture: texture_3d<f32>,\n single_mie_scattering_texture: texture_3d<f32>,\n multiple_scattering_texture: texture_3d<f32>,\n irradiance_texture: texture_2d<f32>,\n r: f32, mu: f32, mu_s: f32, nu: f32, scattering_order: i32) -> vec3f {\n let zenith_direction = vec3f(0.0, 0.0, 1.0);\n let omega = vec3f(sqrt(1.0 - mu * mu), 0.0, mu);\n var sun_dir_x: f32 = 0.0;\n if (omega.x != 0.0) {\n sun_dir_x = (nu - mu * mu_s) / omega.x;\n }\n let sun_dir_y = sqrt(max(1.0 - sun_dir_x * sun_dir_x - mu_s * mu_s, 0.0));\n let omega_s = vec3f(sun_dir_x, sun_dir_y, mu_s);\n\n const SAMPLE_COUNT: i32 = 16;\n let dphi = PI / f32(SAMPLE_COUNT);\n let dtheta = PI / f32(SAMPLE_COUNT);\n var rayleigh_mie = vec3f(0.0);\n\n for (var l: i32 = 0; l < SAMPLE_COUNT; l++) {\n let theta = (f32(l) + 0.5) * dtheta;\n let cos_theta = cos(theta);\n let sin_theta = sin(theta);\n let ray_r_theta_intersects_ground = RayIntersectsGround(atm, r, cos_theta);\n\n var distance_to_ground: f32 = 0.0;\n var transmittance_to_ground = vec3f(0.0);\n var ground_albedo = vec3f(0.0);\n if (ray_r_theta_intersects_ground) {\n distance_to_ground = DistanceToBottomAtmosphereBoundary(atm, r, cos_theta);\n transmittance_to_ground = GetTransmittance(\n atm, transmittance_texture, r, cos_theta, distance_to_ground, true);\n // NOTE: the reference leaves ground_albedo at vec3(0) here (it\n // declares it but never assigns atm.ground_albedo) — transcribed\n // as-is so the LUTs match bit-for-bit in spirit.\n }\n\n for (var m: i32 = 0; m < 2 * SAMPLE_COUNT; m++) {\n let phi = (f32(m) + 0.5) * dphi;\n let omega_i = vec3f(cos(phi) * sin_theta, sin(phi) * sin_theta, cos_theta);\n let domega_i = dtheta * dphi * sin(theta);\n\n let nu1 = dot(omega_s, omega_i);\n var incident_radiance = GetScatteringOrder(atm,\n single_rayleigh_scattering_texture, single_mie_scattering_texture,\n multiple_scattering_texture, r, omega_i.z, mu_s, nu1,\n ray_r_theta_intersects_ground, scattering_order - 1);\n\n let ground_normal = normalize(zenith_direction * r + omega_i * distance_to_ground);\n let ground_irradiance = GetIrradiance(\n atm, irradiance_texture, atm.bottom_radius, dot(ground_normal, omega_s));\n incident_radiance += transmittance_to_ground * ground_albedo *\n (1.0 / PI) * ground_irradiance;\n\n let nu2 = dot(omega, omega_i);\n\n let rayleigh_density = GetProfileDensity(\n atm.rayleigh_density, r - atm.bottom_radius);\n let mie_density = GetProfileDensity(\n atm.mie_density, r - atm.bottom_radius);\n\n rayleigh_mie += incident_radiance * (\n atm.rayleigh_scattering * rayleigh_density * RayleighPhaseFunction(nu2) +\n atm.mie_scattering * mie_density * MiePhaseFunction(atm.mie_phase_function_g, nu2)) *\n domega_i;\n }\n }\n\n return rayleigh_mie;\n}\n\nfn ComputeMultipleScattering(\n atm: Atm,\n transmittance_texture: texture_2d<f32>,\n scattering_density_texture: texture_3d<f32>,\n r: f32, mu: f32, mu_s: f32, nu: f32,\n ray_r_mu_intersects_ground: bool) -> vec3f {\n const SAMPLE_COUNT: i32 = 50;\n let dx = DistanceToNearestAtmosphereBoundary(\n atm, r, mu, ray_r_mu_intersects_ground) / f32(SAMPLE_COUNT);\n\n var rayleigh_mie_sum = vec3f(0.0);\n\n for (var i: i32 = 0; i <= SAMPLE_COUNT; i++) {\n let d_i = f32(i) * dx;\n\n let r_i = ClampRadius(atm, sqrt(d_i * d_i + 2.0 * r * mu * d_i + r * r));\n let mu_i = ClampCosine((r * mu + d_i) / r_i);\n let mu_s_i = ClampCosine((r * mu_s + d_i * nu) / r_i);\n\n let rayleigh_mie_i =\n GetScatteringDelta(atm, scattering_density_texture, r_i, mu_i, mu_s_i, nu,\n ray_r_mu_intersects_ground) *\n GetTransmittance(atm, transmittance_texture, r, mu, d_i,\n ray_r_mu_intersects_ground) * dx;\n\n var weight_i: f32 = 1.0;\n if (i == 0 || i == SAMPLE_COUNT) {\n weight_i = 0.5;\n }\n rayleigh_mie_sum += rayleigh_mie_i * weight_i;\n }\n\n return rayleigh_mie_sum;\n}\n\nfn ComputeScatteringDensityTexture(\n atm: Atm,\n transmittance_texture: texture_2d<f32>,\n single_rayleigh_scattering_texture: texture_3d<f32>,\n single_mie_scattering_texture: texture_3d<f32>,\n multiple_scattering_texture: texture_3d<f32>,\n irradiance_texture: texture_2d<f32>,\n frag_coord: vec3f, scattering_order: i32) -> vec3f {\n var r: f32;\n var mu: f32;\n var mu_s: f32;\n var nu: f32;\n var ray_r_mu_intersects_ground: bool;\n GetRMuMuSNuFromScatteringTextureFragCoord(\n atm, frag_coord, &r, &mu, &mu_s, &nu, &ray_r_mu_intersects_ground);\n\n return ComputeScatteringDensity(atm, transmittance_texture,\n single_rayleigh_scattering_texture, single_mie_scattering_texture,\n multiple_scattering_texture, irradiance_texture, r, mu, mu_s, nu,\n scattering_order);\n}\n\nfn ComputeMultipleScatteringTexture(\n atm: Atm,\n transmittance_texture: texture_2d<f32>,\n scattering_density_texture: texture_3d<f32>,\n frag_coord: vec3f, nu: ptr<function, f32>) -> vec3f {\n var r: f32;\n var mu: f32;\n var mu_s: f32;\n var ray_r_mu_intersects_ground: bool;\n GetRMuMuSNuFromScatteringTextureFragCoord(\n atm, frag_coord, &r, &mu, &mu_s, nu, &ray_r_mu_intersects_ground);\n\n return ComputeMultipleScattering(atm, transmittance_texture,\n scattering_density_texture, r, mu, mu_s, *nu,\n ray_r_mu_intersects_ground);\n}\n\n\nstruct PassParams {\n luminance_from_radiance: mat3x3f,\n blend: vec4f,\n layer: i32,\n scattering_order: i32,\n}\n\nfn RadianceToLuminance(pass_params: PassParams, rad: vec3f) -> vec3f {\n return pass_params.luminance_from_radiance * rad;\n}\n\n@group(0) @binding(0) var<uniform> atm: Atm;\n@group(0) @binding(1) var<uniform> pass_params: PassParams;\n").concat(a,"\n")};function se(a){var r=a.backend.device;if(!r)throw Error("[spline/sky] WebGPU device unavailable for LUT precompute");return r}function st(a,r){a.initTexture(r);var n=a.backend.get(r);if(!(null==n?void 0:n.texture))throw Error("[spline/sky] three did not allocate a GPU texture");return n.texture}function sa(a,r,n,i){var s=new u.E(a,r);return s.type=n,s.minFilter=b.na,s.magFilter=b.na,s.generateMipmaps=!1,s.mipmapsAutoUpdate=!1,s.name=i,s}function sr(a,r,n,i,s,o){var l=new u.F(a,r,n);return l.type=i,l.minFilter=o,l.magFilter=o,l.generateMipmaps=!1,l.mipmapsAutoUpdate=!1,l.name=s,l}var sn={transmittance:{code:i9("\n@group(0) @binding(2) var out_transmittance: texture_storage_2d<rgba32float, write>;\n")+"\n@compute @workgroup_size(8, 8, 1)\nfn main(@builtin(global_invocation_id) gid: vec3u) {\n let coord = vec2i(gid.xy);\n let frag_coord = vec2f(coord) + vec2f(0.5, 0.5);\n textureStore(out_transmittance, coord,\n vec4f(ComputeTransmittanceToTopAtmosphereBoundaryTexture(atm, frag_coord), 1.0));\n}\n",entries:[{storage:"2d",format:"rgba32float"}]},directIrradiance:{code:i9("\n@group(0) @binding(2) var irradiance_read: texture_2d<f32>;\n@group(0) @binding(3) var out_irradiance: texture_storage_2d<rgba32float, write>;\n@group(0) @binding(4) var out_delta_irradiance: texture_storage_2d<rgba32float, write>;\n@group(0) @binding(5) var transmittance: texture_2d<f32>;\n")+"\n@compute @workgroup_size(8, 8, 1)\nfn main(@builtin(global_invocation_id) gid: vec3u) {\n let coord = vec2i(gid.xy);\n let frag_coord = vec2f(coord) + vec2f(0.5, 0.5);\n\n textureStore(out_delta_irradiance, coord,\n vec4f(ComputeDirectIrradianceTexture(atm, transmittance, frag_coord), 1.0));\n\n var result = vec4f(0.0, 0.0, 0.0, 1.0);\n if (pass_params.blend[1] == 1.0) {\n result += textureLoad(irradiance_read, coord, 0);\n }\n textureStore(out_irradiance, coord, result);\n}\n",entries:[{sampled:"2d"},{storage:"2d",format:"rgba32float"},{storage:"2d",format:"rgba32float"},{sampled:"2d"}]},singleScattering:{code:i9("\n@group(0) @binding(2) var out_delta_rayleigh: texture_storage_3d<rgba32float, write>;\n@group(0) @binding(3) var out_delta_mie: texture_storage_3d<rgba32float, write>;\n@group(0) @binding(4) var scattering_read: texture_3d<f32>;\n@group(0) @binding(5) var out_scattering: texture_storage_3d<rgba16float, write>;\n@group(0) @binding(6) var transmittance: texture_2d<f32>;\n")+"\n@compute @workgroup_size(8, 8, 1)\nfn main(@builtin(global_invocation_id) gid: vec3u) {\n var coord = vec3i(gid);\n coord.z = pass_params.layer;\n let frag_coord = vec3f(coord) + vec3f(0.5, 0.5, 0.5);\n\n var delta_rayleigh: vec3f;\n var delta_mie: vec3f;\n ComputeSingleScatteringTexture(atm, transmittance, frag_coord,\n &delta_rayleigh, &delta_mie);\n\n textureStore(out_delta_rayleigh, coord, vec4f(delta_rayleigh, 1.0));\n textureStore(out_delta_mie, coord, vec4f(delta_mie, 1.0));\n\n var scattering = vec4f(\n RadianceToLuminance(pass_params, delta_rayleigh),\n RadianceToLuminance(pass_params, delta_mie).r);\n if (pass_params.blend[2] == 1.0) {\n scattering += textureLoad(scattering_read, coord, 0);\n }\n textureStore(out_scattering, coord, scattering);\n}\n",entries:[{storage:"3d",format:"rgba32float"},{storage:"3d",format:"rgba32float"},{sampled:"3d"},{storage:"3d",format:"rgba16float"},{sampled:"2d"}]},scatteringDensity:{code:i9("\n@group(0) @binding(2) var out_delta_scattering_density: texture_storage_3d<rgba32float, write>;\n@group(0) @binding(3) var transmittance: texture_2d<f32>;\n@group(0) @binding(4) var single_rayleigh_scattering: texture_3d<f32>;\n@group(0) @binding(5) var single_mie_scattering: texture_3d<f32>;\n@group(0) @binding(6) var multiple_scattering: texture_3d<f32>;\n@group(0) @binding(7) var irradiance: texture_2d<f32>;\n")+"\n@compute @workgroup_size(8, 8, 1)\nfn main(@builtin(global_invocation_id) gid: vec3u) {\n var coord = vec3i(gid);\n coord.z = pass_params.layer;\n let frag_coord = vec3f(coord) + vec3f(0.5, 0.5, 0.5);\n\n let scattering_density = ComputeScatteringDensityTexture(\n atm, transmittance, single_rayleigh_scattering, single_mie_scattering,\n multiple_scattering, irradiance, frag_coord, pass_params.scattering_order);\n\n textureStore(out_delta_scattering_density, coord, vec4f(scattering_density, 1.0));\n}\n",entries:[{storage:"3d",format:"rgba32float"},{sampled:"2d"},{sampled:"3d"},{sampled:"3d"},{sampled:"3d"},{sampled:"2d"}]},indirectIrradiance:{code:i9("\n@group(0) @binding(2) var out_delta_irradiance: texture_storage_2d<rgba32float, write>;\n@group(0) @binding(3) var irradiance_read: texture_2d<f32>;\n@group(0) @binding(4) var out_irradiance: texture_storage_2d<rgba32float, write>;\n@group(0) @binding(5) var single_rayleigh_scattering: texture_3d<f32>;\n@group(0) @binding(6) var single_mie_scattering: texture_3d<f32>;\n@group(0) @binding(7) var multiple_scattering: texture_3d<f32>;\n")+"\n@compute @workgroup_size(8, 8, 1)\nfn main(@builtin(global_invocation_id) gid: vec3u) {\n let coord = vec2i(gid.xy);\n let frag_coord = vec2f(coord) + vec2f(0.5, 0.5);\n\n let delta_irradiance_value = ComputeIndirectIrradianceTexture(\n atm, single_rayleigh_scattering, single_mie_scattering,\n multiple_scattering, frag_coord, pass_params.scattering_order);\n textureStore(out_delta_irradiance, coord, vec4f(delta_irradiance_value, 1.0));\n\n var irradiance = vec4f(RadianceToLuminance(pass_params, delta_irradiance_value), 1.0);\n if (pass_params.blend[1] == 1.0) {\n irradiance += textureLoad(irradiance_read, coord, 0);\n }\n textureStore(out_irradiance, coord, irradiance);\n}\n",entries:[{storage:"2d",format:"rgba32float"},{sampled:"2d"},{storage:"2d",format:"rgba32float"},{sampled:"3d"},{sampled:"3d"},{sampled:"3d"}]},multipleScattering:{code:i9("\n@group(0) @binding(2) var out_delta_multiple_scattering: texture_storage_3d<rgba32float, write>;\n@group(0) @binding(3) var scattering_read: texture_3d<f32>;\n@group(0) @binding(4) var out_scattering: texture_storage_3d<rgba16float, write>;\n@group(0) @binding(5) var transmittance: texture_2d<f32>;\n@group(0) @binding(6) var delta_scattering_density: texture_3d<f32>;\n")+"\n@compute @workgroup_size(8, 8, 1)\nfn main(@builtin(global_invocation_id) gid: vec3u) {\n var coord = vec3i(gid);\n coord.z = pass_params.layer;\n let frag_coord = vec3f(coord) + vec3f(0.5, 0.5, 0.5);\n\n var nu: f32;\n let delta_multiple_scattering_value = ComputeMultipleScatteringTexture(\n atm, transmittance, delta_scattering_density, frag_coord, &nu);\n\n textureStore(out_delta_multiple_scattering, coord,\n vec4f(delta_multiple_scattering_value, 1.0));\n\n var scattering = vec4f(\n RadianceToLuminance(pass_params, delta_multiple_scattering_value) /\n RayleighPhaseFunction(nu),\n 0.0);\n if (pass_params.blend[1] == 1.0) {\n scattering += textureLoad(scattering_read, coord, 0);\n }\n textureStore(out_scattering, coord, scattering);\n}\n",entries:[{storage:"3d",format:"rgba32float"},{sampled:"3d"},{storage:"3d",format:"rgba16float"},{sampled:"2d"},{sampled:"3d"}]}};function si(a,r,n,i,s,o){return S(function(){var l,u,c,d,h,m,f,v,p,g,y,_,x;return G(this,function(b){switch(b.label){case 0:return l=se(a),u=st(a,r),c=256*Math.ceil(n*(o?8:16)/256),d=l.createBuffer({size:c*i*s,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ}),(h=l.createCommandEncoder()).copyTextureToBuffer({texture:u},{buffer:d,bytesPerRow:c,rowsPerImage:i},{width:n,height:i,depthOrArrayLayers:s}),l.queue.submit([h.finish()]),[4,d.mapAsync(GPUMapMode.READ)];case 1:for(b.sent(),m=d.getMappedRange(),f=new Float32Array(n*i*s*4),v=0;v<s;v++)for(p=0;p<i;p++)if(g=(v*i+p)*c,o)for(_=0,y=new Uint16Array(m,g,4*n);_<4*n;_++)f[(v*i+p)*n*4+_]=function(a){var r=(32768&a)>>15,n=(31744&a)>>10,i=1023&a;return 0===n?(r?-1:1)*6103515625e-14*(i/1024):31===n?i?NaN:1/0*(r?-1:1):(r?-1:1)*Math.pow(2,n-15)*(1+i/1024)}(y[_]);else x=new Float32Array(m,g,4*n),f.set(x,(v*i+p)*n*4);return[2,(d.unmap(),d.destroy(),f)]}})})()}function ss(a,r){return .5/r+a*(1-1/r)}function so(a,r,n,i,s){for(var o=Math.min(Math.max(i*r-.5,0),r-1),l=Math.min(Math.max(s*n-.5,0),n-1),u=Math.floor(o),c=Math.floor(l),d=Math.min(u+1,r-1),h=Math.min(c+1,n-1),m=o-u,f=l-c,v=[0,0,0],p=0;p<3;p++){var g=a[4*(c*r+u)+p],y=a[4*(c*r+d)+p],_=a[4*(h*r+u)+p],x=a[4*(h*r+d)+p];v[p]=(g*(1-m)+y*m)*(1-f)+(_*(1-m)+x*m)*f}return v}function sl(a){return .2126*a[0]+.7152*a[1]+.0722*a[2]}function su(a,r,n,i){var s,o,l,u,c,d,h,m,f,v,p,g=(s=r.transmittance,f=-Math.sqrt(Math.max(0,1-(m=a.bottomRadius/n)*m)),v=(l=Math.min(1,Math.max(0,(i-f-(o=-m*a.sunAngularRadius))/(m*a.sunAngularRadius-o))))*l*(3-2*l),[(c=Math.sqrt(a.topRadius*a.topRadius-a.bottomRadius*a.bottomRadius),d=Math.sqrt(Math.max(0,n*n-a.bottomRadius*a.bottomRadius)),u=n*n*(i*i-1)+a.topRadius*a.topRadius,p=so(s,256,64,ss((Math.max(0,-n*i+Math.sqrt(Math.max(0,u)))-(h=a.topRadius-n))/(d+c-h),256),ss(d/c,64)))[0]*v,p[1]*v,p[2]*v]),y=a.sunSpectralRadianceToLuminance;return[a.solarIrradiance[0]*g[0]*y[0],a.solarIrradiance[1]*g[1]*y[1],a.solarIrradiance[2]*g[2]*y[2]]}function sc(a,r,n,i){var s,o,l=(s=r.irradiance,o=(n-a.bottomRadius)/(a.topRadius-a.bottomRadius),so(s,64,16,ss(.5*i+.5,64),ss(o,16))),u=a.skySpectralRadianceToLuminance;return[l[0]*u[0],l[1]*u[1],l[2]*u[2]]}var sd="6.0e4",sh="\nfn GetExtrapolatedSingleMieScattering(atm: Atm, scattering: vec4f) -> vec3f {\n if (scattering.r == 0.0) {\n return vec3f(0.0);\n }\n return scattering.rgb * scattering.a / scattering.r *\n (atm.rayleigh_scattering.r / atm.mie_scattering.r) *\n (atm.mie_scattering / atm.rayleigh_scattering);\n}\n\nfn GetCombinedScattering(\n atm: Atm,\n scattering_texture: texture_3d<f32>,\n scattering_sampler: sampler,\n r: f32, mu: f32, mu_s: f32, nu: f32,\n ray_r_mu_intersects_ground: bool,\n single_mie_scattering: ptr<function, vec3f>) -> vec3f {\n let uvwz = GetScatteringTextureUvwzFromRMuMuSNu(\n atm, r, mu, mu_s, nu, ray_r_mu_intersects_ground);\n\n let tex_coord_x = uvwz.x * f32(SCATTERING_TEXTURE_NU_SIZE - 1);\n let tex_x = floor(tex_coord_x);\n let lerp = tex_coord_x - tex_x;\n\n let uvw0 = vec3f((tex_x + uvwz.y) / f32(SCATTERING_TEXTURE_NU_SIZE), uvwz.z, uvwz.w);\n let uvw1 = vec3f((tex_x + 1.0 + uvwz.y) / f32(SCATTERING_TEXTURE_NU_SIZE), uvwz.z, uvwz.w);\n\n let combined_scattering =\n textureSampleLevel(scattering_texture, scattering_sampler, uvw0, 0.0) * (1.0 - lerp) +\n textureSampleLevel(scattering_texture, scattering_sampler, uvw1, 0.0) * lerp;\n let scattering = combined_scattering.xyz;\n *single_mie_scattering = GetExtrapolatedSingleMieScattering(atm, combined_scattering);\n\n return scattering;\n}\n\n// GLSL relies on sqrt(negative) = NaN making both branch conditions false;\n// WGSL leaves that indeterminate, so the discriminant is tested explicitly —\n// same control flow for every defined input.\nfn GetSkyRadiance(\n atm: Atm,\n transmittance_texture: texture_2d<f32>,\n scattering_texture: texture_3d<f32>,\n scattering_sampler: sampler,\n camera_in: vec3f, view_ray: vec3f, shadow_length: f32,\n sun_direction: vec3f, transmittance: ptr<function, vec3f>) -> vec3f {\n var camera = camera_in;\n var r = length(camera);\n var rmu = dot(camera, view_ray);\n let disc = rmu * rmu - r * r + atm.top_radius * atm.top_radius;\n var distance_to_top_atmosphere_boundary = -1.0;\n if (disc >= 0.0) {\n distance_to_top_atmosphere_boundary = -rmu - sqrt(disc);\n }\n\n if (distance_to_top_atmosphere_boundary > 0.0) {\n camera = camera + view_ray * distance_to_top_atmosphere_boundary;\n r = atm.top_radius;\n rmu += distance_to_top_atmosphere_boundary;\n } else if (r > atm.top_radius) {\n *transmittance = vec3f(0.0);\n return vec3f(0.0);\n }\n\n let mu = rmu / r;\n let mu_s = dot(camera, sun_direction) / r;\n let nu = dot(view_ray, sun_direction);\n let ray_r_mu_intersects_ground = RayIntersectsGround(atm, r, mu);\n\n if (ray_r_mu_intersects_ground) {\n *transmittance = vec3f(0.0);\n } else {\n *transmittance = GetTransmittanceToTopAtmosphereBoundary(\n atm, transmittance_texture, r, mu);\n }\n\n var single_mie_scattering: vec3f;\n var scattering: vec3f;\n\n if (shadow_length == 0.0) {\n scattering = GetCombinedScattering(\n atm, scattering_texture, scattering_sampler,\n r, mu, mu_s, nu, ray_r_mu_intersects_ground,\n &single_mie_scattering);\n } else {\n let d = shadow_length;\n let r_p = ClampRadius(atm, sqrt(d * d + 2.0 * r * mu * d + r * r));\n let mu_p = (r * mu + d) / r_p;\n let mu_s_p = (r * mu_s + d * nu) / r_p;\n\n scattering = GetCombinedScattering(\n atm, scattering_texture, scattering_sampler,\n r_p, mu_p, mu_s_p, nu, ray_r_mu_intersects_ground,\n &single_mie_scattering);\n\n let shadow_transmittance = GetTransmittance(\n atm, transmittance_texture, r, mu, shadow_length,\n ray_r_mu_intersects_ground);\n\n scattering = scattering * shadow_transmittance;\n single_mie_scattering = single_mie_scattering * shadow_transmittance;\n }\n\n return scattering * RayleighPhaseFunction(nu) + single_mie_scattering *\n MiePhaseFunction(atm.mie_phase_function_g, nu);\n}\n\n/**\n * The transmittance half of GetSkyRadiance, without the radiance.\n *\n * The clouds march calls GetSkyRadiance once per LIT step purely for its\n * transmittance out-param and drops the returned radiance on the floor —\n * paying two 3D scattering-LUT samples, the single-Mie extrapolation and\n * both phase functions (a pow among them) for a value nothing reads. Whether a\n * driver's optimizer notices is up to the driver; this is the same control\n * flow and the same lookup with the dead half deleted, so the value is\n * bit-identical either way.\n */\nfn GetSkyTransmittance(\n atm: Atm,\n transmittance_texture: texture_2d<f32>,\n camera_in: vec3f, view_ray: vec3f) -> vec3f {\n var camera = camera_in;\n var r = length(camera);\n var rmu = dot(camera, view_ray);\n let disc = rmu * rmu - r * r + atm.top_radius * atm.top_radius;\n var distance_to_top_atmosphere_boundary = -1.0;\n if (disc >= 0.0) {\n distance_to_top_atmosphere_boundary = -rmu - sqrt(disc);\n }\n\n if (distance_to_top_atmosphere_boundary > 0.0) {\n camera = camera + view_ray * distance_to_top_atmosphere_boundary;\n r = atm.top_radius;\n rmu += distance_to_top_atmosphere_boundary;\n } else if (r > atm.top_radius) {\n return vec3f(0.0);\n }\n\n let mu = rmu / r;\n if (RayIntersectsGround(atm, r, mu)) {\n return vec3f(0.0);\n }\n return GetTransmittanceToTopAtmosphereBoundary(\n atm, transmittance_texture, r, mu);\n}\n\nfn GetSunAndSkyIrradiance(\n atm: Atm,\n transmittance_texture: texture_2d<f32>,\n irradiance_texture: texture_2d<f32>,\n p: vec3f, normal: vec3f, sun_direction: vec3f,\n sky_irradiance: ptr<function, vec3f>) -> vec3f {\n let r = length(p);\n let mu_s = dot(p, sun_direction) / r;\n\n *sky_irradiance = GetIrradiance(atm, irradiance_texture, r, mu_s) *\n (1.0 + dot(normal, p) / r) * 0.5;\n\n return atm.solar_irradiance *\n GetTransmittanceToSun(atm, transmittance_texture, r, mu_s) *\n max(dot(normal, sun_direction), 0.0);\n}\n\n// atmosphere.glsl wrappers: radiance -> luminance via the spectral factors.\nfn GetSkyRadianceLum(\n atm: Atm,\n transmittance_texture: texture_2d<f32>,\n scattering_texture: texture_3d<f32>,\n scattering_sampler: sampler,\n camera: vec3f, view_ray: vec3f, shadow_length: f32,\n sun_direction: vec3f, transmittance: ptr<function, vec3f>) -> vec3f {\n return GetSkyRadiance(atm, transmittance_texture, scattering_texture,\n scattering_sampler, camera, view_ray, shadow_length, sun_direction,\n transmittance) * atm.sky_spectral_radiance_to_luminance;\n}\n\nfn GetSunAndSkyIrradianceLum(\n atm: Atm,\n transmittance_texture: texture_2d<f32>,\n irradiance_texture: texture_2d<f32>,\n p: vec3f, normal: vec3f, sun_direction: vec3f,\n sky_irradiance: ptr<function, vec3f>) -> vec3f {\n let sun_irradiance = GetSunAndSkyIrradiance(\n atm, transmittance_texture, irradiance_texture, p, normal,\n sun_direction, sky_irradiance);\n *sky_irradiance = *sky_irradiance * atm.sky_spectral_radiance_to_luminance;\n return sun_irradiance * atm.sun_spectral_radiance_to_luminance;\n}\n\n/**\n * The sky half of GetSunAndSkyIrradianceLum. Same story as\n * GetSkyTransmittance: the clouds march reads only the sky out-param and\n * discards the sun return, whose GetTransmittanceToSun is a second manual\n * bilinear (four texel loads) plus a smoothstep. Multiplication order is\n * kept exactly as the two-function chain evaluates it, so the result is\n * bit-identical.\n */\nfn GetSkyIrradianceLum(\n atm: Atm,\n irradiance_texture: texture_2d<f32>,\n p: vec3f, normal: vec3f, sun_direction: vec3f) -> vec3f {\n let r = length(p);\n let mu_s = dot(p, sun_direction) / r;\n return GetIrradiance(atm, irradiance_texture, r, mu_s) *\n (1.0 + dot(normal, p) / r) * 0.5 *\n atm.sky_spectral_radiance_to_luminance;\n}\n\n// Rebuild the Atm struct from the packed uniforms the TSL entries receive\n// (density profiles are precompute-only and stay zeroed).\nfn UnpackAtm(\n solar_irradiance: vec3f,\n rayleigh_scattering: vec3f,\n mie_scattering: vec3f,\n sky_srtl: vec3f,\n sun_srtl: vec3f,\n // x: sun_angular_radius, y: bottom_radius, z: top_radius, w: mie_phase_g\n scalars: vec4f,\n mu_s_min: f32) -> Atm {\n var atm: Atm;\n atm.solar_irradiance = solar_irradiance;\n atm.rayleigh_scattering = rayleigh_scattering;\n atm.mie_scattering = mie_scattering;\n atm.sky_spectral_radiance_to_luminance = sky_srtl;\n atm.sun_spectral_radiance_to_luminance = sun_srtl;\n atm.sun_angular_radius = scalars.x;\n atm.bottom_radius = scalars.y;\n atm.top_radius = scalars.z;\n atm.mie_phase_function_g = scalars.w;\n atm.mu_s_min = mu_s_min;\n return atm;\n}\n\n// ray.vert's interpolation, reproduced exactly: the reference normalizes the\n// corner rays in the VERTEX shader, interpolates the unit vectors, then\n// renormalizes per fragment — bilinear-mixing the four unit corner rays here\n// is that same math (not the same as unprojecting the fragment directly).\nfn SkyViewRay(\n uv: vec2f, ray00: vec3f, ray10: vec3f, ray01: vec3f, ray11: vec3f) -> vec3f {\n return normalize(mix(mix(ray00, ray10, uv.x), mix(ray01, ray11, uv.x), uv.y));\n}\n",sm="\n let atm = UnpackAtm(solarIrradiance, rayleighScattering, mieScattering,\n skySrtl, sunSrtl, atmScalars, muSMin);\n let earth_center = vec3f(0.0, -atm.bottom_radius, 0.0);\n let camera = cameraPos - earth_center;\n let sun_dir = normalize(sunDir);\n let view_ray = SkyViewRay(uv, ray00, ray10, ray01, ray11);\n\n var transmittance: vec3f;\n let sky = GetSkyRadianceLum(atm, transmittanceTex, scatteringTex,\n scatteringSamp, camera, view_ray, 0.0, sun_dir, &transmittance);\n\n return vec4f(min(sky, vec3f(".concat(sd,")), 1.0);\n"),sf="\nfn mod289v4(x: vec4f) -> vec4f { return x - floor(x * (1.0 / 289.0)) * 289.0; }\n\nfn permuteV4(x: vec4f) -> vec4f { return mod289v4(((x * 34.0) + 10.0) * x); }\n\nfn taylorInvSqrt(r: vec4f) -> vec4f { return 1.79284291400159 - 0.85373472095314 * r; }\n\nfn mod289v3(x: vec3f) -> vec3f { return x - floor(x * (1.0 / 289.0)) * 289.0; }\n\nfn simplexNoise(v: vec3f) -> f32 {\n let C = vec2f(1.0 / 6.0, 1.0 / 3.0);\n let D = vec4f(0.0, 0.5, 1.0, 2.0);\n\n // First corner\n var i = floor(v + dot(v, C.yyy));\n let x0 = v - i + dot(i, C.xxx);\n\n // Other corners\n let g = step(x0.yzx, x0.xyz);\n let l = 1.0 - g;\n let i1 = min(g.xyz, l.zxy);\n let i2 = max(g.xyz, l.zxy);\n\n let x1 = x0 - i1 + C.xxx;\n let x2 = x0 - i2 + C.yyy;\n let x3 = x0 - D.yyy;\n\n // Permutations\n i = mod289v3(i);\n let p = permuteV4(permuteV4(permuteV4(\n i.z + vec4f(0.0, i1.z, i2.z, 1.0)) +\n i.y + vec4f(0.0, i1.y, i2.y, 1.0)) +\n i.x + vec4f(0.0, i1.x, i2.x, 1.0));\n\n let n_ = 0.142857142857;\n let ns = n_ * D.wyz - D.xzx;\n\n let j = p - 49.0 * floor(p * ns.z * ns.z);\n\n let x_ = floor(j * ns.z);\n let y_ = floor(j - 7.0 * x_);\n\n let x = x_ * ns.x + ns.yyyy;\n let y = y_ * ns.x + ns.yyyy;\n let h = 1.0 - abs(x) - abs(y);\n\n let b0 = vec4f(x.xy, y.xy);\n let b1 = vec4f(x.zw, y.zw);\n\n let s0 = floor(b0) * 2.0 + 1.0;\n let s1 = floor(b1) * 2.0 + 1.0;\n let sh = -step(h, vec4f(0.0));\n\n let a0 = b0.xzyw + s0.xzyw * sh.xxyy;\n let a1 = b1.xzyw + s1.xzyw * sh.zzww;\n\n var p0 = vec3f(a0.xy, h.x);\n var p1 = vec3f(a0.zw, h.y);\n var p2 = vec3f(a1.xy, h.z);\n var p3 = vec3f(a1.zw, h.w);\n\n // Normalise gradients\n let norm = taylorInvSqrt(vec4f(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3)));\n p0 *= norm.x;\n p1 *= norm.y;\n p2 *= norm.z;\n p3 *= norm.w;\n\n // Mix final noise value\n var m = max(0.5 - vec4f(dot(x0, x0), dot(x1, x1), dot(x2, x2), dot(x3, x3)), vec4f(0.0));\n m = m * m;\n return 105.0 * dot(m * m, vec4f(dot(p0, x0), dot(p1, x1), dot(p2, x2), dot(p3, x3)));\n}\n\nfn simplexFBM(x: vec3f, octaves: i32, freq_in: f32) -> f32 {\n var final_: f32 = 0.0;\n var denom: f32 = 0.0;\n var amp: f32 = 1.0;\n var freq = freq_in;\n\n for (var i: i32 = 0; i < octaves; i++) {\n final_ += amp * simplexNoise(x * freq);\n denom += amp;\n\n freq *= 2.0;\n amp *= 0.5;\n }\n\n return final_ / denom;\n}\n\nfn mod7v3(x: vec3f) -> vec3f { return x - floor(x * (1.0 / 7.0)) * 7.0; }\n\nfn permuteV3(x: vec3f) -> vec3f { return mod289v3((34.0 * x + 10.0) * x); }\n\nfn worleyNoise(P: vec3f) -> f32 {\n let K = 0.142857142857;\n let Ko = 0.428571428571;\n let K2 = 0.020408163265306;\n let Kz = 0.166666666667;\n let Kzo = 0.416666666667;\n let jitter = 1.0;\n\n let Pi = mod289v3(floor(P));\n let Pf = fract(P) - 0.5;\n\n let Pfx = Pf.x + vec3f(1.0, 0.0, -1.0);\n let Pfy = Pf.y + vec3f(1.0, 0.0, -1.0);\n let Pfz = Pf.z + vec3f(1.0, 0.0, -1.0);\n\n let p = permuteV3(Pi.x + vec3f(-1.0, 0.0, 1.0));\n let p1 = permuteV3(p + Pi.y - 1.0);\n let p2 = permuteV3(p + Pi.y);\n let p3 = permuteV3(p + Pi.y + 1.0);\n\n let p11 = permuteV3(p1 + Pi.z - 1.0);\n let p12 = permuteV3(p1 + Pi.z);\n let p13 = permuteV3(p1 + Pi.z + 1.0);\n\n let p21 = permuteV3(p2 + Pi.z - 1.0);\n let p22 = permuteV3(p2 + Pi.z);\n let p23 = permuteV3(p2 + Pi.z + 1.0);\n\n let p31 = permuteV3(p3 + Pi.z - 1.0);\n let p32 = permuteV3(p3 + Pi.z);\n let p33 = permuteV3(p3 + Pi.z + 1.0);\n\n let ox11 = fract(p11 * K) - Ko;\n let oy11 = mod7v3(floor(p11 * K)) * K - Ko;\n let oz11 = floor(p11 * K2) * Kz - Kzo;\n\n let ox12 = fract(p12 * K) - Ko;\n let oy12 = mod7v3(floor(p12 * K)) * K - Ko;\n let oz12 = floor(p12 * K2) * Kz - Kzo;\n\n let ox13 = fract(p13 * K) - Ko;\n let oy13 = mod7v3(floor(p13 * K)) * K - Ko;\n let oz13 = floor(p13 * K2) * Kz - Kzo;\n\n let ox21 = fract(p21 * K) - Ko;\n let oy21 = mod7v3(floor(p21 * K)) * K - Ko;\n let oz21 = floor(p21 * K2) * Kz - Kzo;\n\n let ox22 = fract(p22 * K) - Ko;\n let oy22 = mod7v3(floor(p22 * K)) * K - Ko;\n let oz22 = floor(p22 * K2) * Kz - Kzo;\n\n let ox23 = fract(p23 * K) - Ko;\n let oy23 = mod7v3(floor(p23 * K)) * K - Ko;\n let oz23 = floor(p23 * K2) * Kz - Kzo;\n\n let ox31 = fract(p31 * K) - Ko;\n let oy31 = mod7v3(floor(p31 * K)) * K - Ko;\n let oz31 = floor(p31 * K2) * Kz - Kzo;\n\n let ox32 = fract(p32 * K) - Ko;\n let oy32 = mod7v3(floor(p32 * K)) * K - Ko;\n let oz32 = floor(p32 * K2) * Kz - Kzo;\n\n let ox33 = fract(p33 * K) - Ko;\n let oy33 = mod7v3(floor(p33 * K)) * K - Ko;\n let oz33 = floor(p33 * K2) * Kz - Kzo;\n\n let dx11 = Pfx + jitter * ox11;\n let dy11 = Pfy.x + jitter * oy11;\n let dz11 = Pfz.x + jitter * oz11;\n\n let dx12 = Pfx + jitter * ox12;\n let dy12 = Pfy.x + jitter * oy12;\n let dz12 = Pfz.y + jitter * oz12;\n\n let dx13 = Pfx + jitter * ox13;\n let dy13 = Pfy.x + jitter * oy13;\n let dz13 = Pfz.z + jitter * oz13;\n\n let dx21 = Pfx + jitter * ox21;\n let dy21 = Pfy.y + jitter * oy21;\n let dz21 = Pfz.x + jitter * oz21;\n\n let dx22 = Pfx + jitter * ox22;\n let dy22 = Pfy.y + jitter * oy22;\n let dz22 = Pfz.y + jitter * oz22;\n\n let dx23 = Pfx + jitter * ox23;\n let dy23 = Pfy.y + jitter * oy23;\n let dz23 = Pfz.z + jitter * oz23;\n\n let dx31 = Pfx + jitter * ox31;\n let dy31 = Pfy.z + jitter * oy31;\n let dz31 = Pfz.x + jitter * oz31;\n\n let dx32 = Pfx + jitter * ox32;\n let dy32 = Pfy.z + jitter * oy32;\n let dz32 = Pfz.y + jitter * oz32;\n\n let dx33 = Pfx + jitter * ox33;\n let dy33 = Pfy.z + jitter * oy33;\n let dz33 = Pfz.z + jitter * oz33;\n\n let d11 = dx11 * dx11 + dy11 * dy11 + dz11 * dz11;\n let d12 = dx12 * dx12 + dy12 * dy12 + dz12 * dz12;\n let d13 = dx13 * dx13 + dy13 * dy13 + dz13 * dz13;\n let d21 = dx21 * dx21 + dy21 * dy21 + dz21 * dz21;\n let d22 = dx22 * dx22 + dy22 * dy22 + dz22 * dz22;\n let d23 = dx23 * dx23 + dy23 * dy23 + dz23 * dz23;\n let d31 = dx31 * dx31 + dy31 * dy31 + dz31 * dz31;\n let d32 = dx32 * dx32 + dy32 * dy32 + dz32 * dz32;\n let d33 = dx33 * dx33 + dy33 * dy33 + dz33 * dz33;\n\n let d1 = min(min(d11, d12), d13);\n let d2 = min(min(d21, d22), d23);\n let d3 = min(min(d31, d32), d33);\n var d = min(min(d1, d2), d3);\n let dx = min(min(d.x, d.y), d.z);\n return sqrt(dx);\n}\n",sv="\n let atm = UnpackAtm(solarIrradiance, rayleighScattering, mieScattering,\n skySrtl, sunSrtl, atmScalars, muSMin);\n\n var ctx: CloudsCtx;\n ctx.maxDistance = cloudsParamsA.x;\n ctx.sigmaS = cloudsParamsA.y;\n ctx.sigmaA = cloudsParamsA.z;\n ctx.cloudLayerThickness = cloudsParamsA.w;\n ctx.cloudLayerBottom = cloudsParamsB.x;\n ctx.highCloudsHeight = cloudsParamsB.y;\n ctx.highCloudsScale = cloudsParamsB.z;\n ctx.weatherMapScale = cloudsParamsB.w;\n ctx.baseNoiseScale = cloudsParamsC.x;\n ctx.detailNoiseScale = cloudsParamsC.y;\n ctx.cirrusDensity = cloudsParamsC.z;\n ctx.altoDensity = cloudsParamsC.w;\n ctx.windSpeed = cloudsParamsD.x;\n ctx.weatherMapBlend = cloudsParamsD.y;\n ctx.time = cloudsParamsD.z;\n ctx.minStep = cloudsParamsD.w;\n ctx.sigmaT = ctx.sigmaA + ctx.sigmaS;\n ctx.fogFactor = ctx.maxDistance / 6.0;\n ctx.bottomRadius = atm.bottom_radius;\n ctx.sunDir = normalize(sunDir);\n ctx.earthCenter = vec3f(0.0, -atm.bottom_radius, 0.0);\n\n let rd = SkyViewRay(uv, ray00, ray10, ray01, ray11);\n\n let volumetric = RaymarchVolumetricCloud(ctx, atm,\n transmittanceTex, scatteringTex, scatteringSamp, irradianceTex,\n baseNoiseTex, noiseSamp, detailNoiseTex,\n weatherCurTex, weatherSamp, weatherNextTex,\n cameraPos, rd);\n let hightAlt = HighAltitudeCloud(ctx, atm,\n transmittanceTex, scatteringTex, scatteringSamp,\n highCloudsTex, weatherSamp,\n cameraPos, rd);\n\n var cloud = volumetric;\n cloud = vec4f(cloud.rgb + (1.0 - cloud.a) * hightAlt.rgb,\n cloud.a + (1.0 - cloud.a) * hightAlt.a);\n\n return vec4f(min(cloud.rgb, vec3f(".concat(sd,")), cloud.a);\n"),sp="\n let atm = UnpackAtm(solarIrradiance, rayleighScattering, mieScattering,\n skySrtl, sunSrtl, atmScalars, muSMin);\n let earth_center = vec3f(0.0, -atm.bottom_radius, 0.0);\n let camera = cameraPos - earth_center;\n let sun_dir = normalize(sunDir);\n\n let azimuth = (uv.x - 0.5) * 2.0 * PI;\n let latitude = (uv.y - 0.5) * PI;\n let cosLat = cos(latitude);\n let rd = vec3f(cosLat * cos(azimuth), sin(latitude), cosLat * sin(azimuth));\n\n var transmittance: vec3f;\n let sky = GetSkyRadianceLum(atm, transmittanceTex, scatteringTex,\n scatteringSamp, camera, rd, 0.0, sun_dir, &transmittance);\n\n var cloud = vec4f(0.0);\n if (cloudsOn > 0.5) {\n var ctx: CloudsCtx;\n ctx.maxDistance = cloudsParamsA.x;\n ctx.sigmaS = cloudsParamsA.y;\n ctx.sigmaA = cloudsParamsA.z;\n ctx.cloudLayerThickness = cloudsParamsA.w;\n ctx.cloudLayerBottom = cloudsParamsB.x;\n ctx.highCloudsHeight = cloudsParamsB.y;\n ctx.highCloudsScale = cloudsParamsB.z;\n ctx.weatherMapScale = cloudsParamsB.w;\n ctx.baseNoiseScale = cloudsParamsC.x;\n ctx.detailNoiseScale = cloudsParamsC.y;\n ctx.cirrusDensity = cloudsParamsC.z;\n ctx.altoDensity = cloudsParamsC.w;\n ctx.windSpeed = cloudsParamsD.x;\n ctx.weatherMapBlend = cloudsParamsD.y;\n ctx.time = cloudsParamsD.z;\n ctx.minStep = cloudsParamsD.w;\n ctx.sigmaT = ctx.sigmaA + ctx.sigmaS;\n ctx.fogFactor = ctx.maxDistance / 6.0;\n ctx.bottomRadius = atm.bottom_radius;\n ctx.sunDir = sun_dir;\n ctx.earthCenter = earth_center;\n\n let volumetric = RaymarchVolumetricCloud(ctx, atm,\n transmittanceTex, scatteringTex, scatteringSamp, irradianceTex,\n baseNoiseTex, noiseSamp, detailNoiseTex,\n weatherCurTex, weatherSamp, weatherNextTex,\n cameraPos, rd);\n let hightAlt = HighAltitudeCloud(ctx, atm,\n transmittanceTex, scatteringTex, scatteringSamp,\n highCloudsTex, weatherSamp,\n cameraPos, rd);\n cloud = volumetric;\n cloud = vec4f(cloud.rgb + (1.0 - cloud.a) * hightAlt.rgb,\n cloud.a + (1.0 - cloud.a) * hightAlt.a);\n }\n\n let WHITE_POINT: f32 = 11.07;\n var color = min(sky, vec3f(".concat(sd,")) * (1.0 - cloud.a) +\n min(cloud.rgb, vec3f(").concat(sd,"));\n color = Hable(color, exposure, WHITE_POINT);\n color = pow(color, vec3f(1.0 / gamma));\n\n return vec4f(color, 1.0);\n"),sg="\nfn HableTonemap(x: vec3f) -> vec3f {\n let A = 0.15;\n let B = 0.50;\n let C = 0.10;\n let D = 0.20;\n let E = 0.02;\n let F = 0.30;\n return ((x * (A * x + C * B) + D * E) / (x * (A * x + B) + D * F)) - E / F;\n}\n\nfn Hable(color: vec3f, exposure: f32, whitePoint: f32) -> vec3f {\n return HableTonemap(color * exposure) / HableTonemap(vec3f(whitePoint));\n}\n",sy="\n".concat(sf,"\nfn remap(value: f32, min1: f32, max1: f32, min2: f32, max2: f32) -> f32 {\n return min2 + (value - min1) * (max2 - min2) / (max1 - min1);\n}\n\n@group(0) @binding(0) var outNoise: texture_storage_3d<rgba16float, write>;\n\n// The reference dispatches 8x8x8 workgroups; WebGPU's default\n// maxComputeInvocationsPerWorkgroup is 256, so this port uses 4x4x4 (the\n// driver dispatches size/4 groups — same texel coverage, same math).\n@compute @workgroup_size(4, 4, 4)\nfn main(@builtin(global_invocation_id) gid: vec3u) {\n let id = vec3i(gid);\n let size = vec3i(textureDimensions(outNoise));\n if (any(id >= size)) {\n return;\n }\n\n let f = vec3f(id);\n\n let p = simplexFBM(f, 4, 0.25) * 0.5 + 0.5;\n let w = 1.0 - worleyNoise(f * 0.125) / 0.866;\n\n var result: vec4f;\n result.r = remap(p, 0.0, 1.0, w, 1.0);\n result.g = worleyNoise(f * 0.25);\n result.b = worleyNoise(f * 0.5);\n result.a = worleyNoise(f);\n\n textureStore(outNoise, id, result);\n}\n"),s_="\n".concat(sf,"\n@group(0) @binding(0) var outNoise: texture_storage_3d<rgba16float, write>;\n\n// The reference dispatches 8x8x8 workgroups; WebGPU's default\n// maxComputeInvocationsPerWorkgroup is 256, so this port uses 4x4x4 (the\n// driver dispatches size/4 groups — same texel coverage, same math).\n@compute @workgroup_size(4, 4, 4)\nfn main(@builtin(global_invocation_id) gid: vec3u) {\n let id = vec3i(gid);\n let size = vec3i(textureDimensions(outNoise));\n if (any(id >= size)) {\n return;\n }\n\n let f = vec3f(id);\n\n var result: vec4f;\n result.r = 1.0 - worleyNoise(f * 0.25);\n result.g = 1.0 - worleyNoise(f * 0.5);\n result.b = 1.0 - worleyNoise(f);\n result.a = 1.0;\n\n textureStore(outNoise, id, result);\n}\n"),sx=Math.fround,sb=.5*Math.PI/180,sT=[1.11776,1.14259,1.01249,1.14716,1.72765,1.73054,1.6887,1.61253,1.91198,2.03474,2.02042,2.02212,1.93377,1.95809,1.91686,1.8298,1.8685,1.8931,1.85149,1.8504,1.8341,1.8345,1.8147,1.78158,1.7533,1.6965,1.68194,1.64654,1.6048,1.52143,1.55622,1.5113,1.474,1.4482,1.41018,1.36775,1.34188,1.31429,1.28303,1.26758,1.2367,1.2082,1.18737,1.14683,1.12362,1.1058,1.07124,1.04992],sw=[118e-29,2182e-31,2818e-31,6636e-31,1527e-30,2763e-30,552e-29,8451e-30,1582e-29,2316e-29,3669e-29,4924e-29,7752e-29,9016e-29,148e-27,1602e-28,2139e-28,2755e-28,3091e-28,35e-26,4266e-28,4672e-28,4398e-28,4701e-28,5019e-28,4305e-28,374e-27,3215e-28,2662e-28,2238e-28,1852e-28,1473e-28,1209e-28,9423e-29,7455e-29,6566e-29,5105e-29,415e-28,4228e-29,3237e-29,2451e-29,2801e-29,2534e-29,1624e-29,1465e-29,2078e-29,1383e-29,7105e-30],sS=[360,1299e-7,3917e-9,6061e-7,365,2321e-7,6965e-9,.001086,370,4149e-7,1239e-8,.001946,375,7416e-7,2202e-8,.003486,380,.001368,39e-6,.006450001,385,.002236,64e-6,.01054999,390,.004243,12e-5,.02005001,395,.00765,217e-6,.03621,400,.01431,396e-6,.06785001,405,.02319,64e-5,.1102,410,.04351,.00121,.2074,415,.07763,.00218,.3713,420,.13438,.004,.6456,425,.21477,.0073,1.0390501,430,.2839,.0116,1.3856,435,.3285,.01684,1.62296,440,.34828,.023,1.74706,445,.34806,.0298,1.7826,450,.3362,.038,1.77211,455,.3187,.048,1.7441,460,.2908,.06,1.6692,465,.2511,.0739,1.5281,470,.19536,.09098,1.28764,475,.1421,.1126,1.0419,480,.09564,.13902,.8129501,485,.05795001,.1693,.6162,490,.03201,.20802,.46518,495,.0147,.2586,.3533,500,.0049,.323,.272,505,.0024,.4073,.2123,510,.0093,.503,.1582,515,.0291,.6082,.1117,520,.06327,.71,.07824999,525,.1096,.7932,.05725001,530,.1655,.862,.04216,535,.2257499,.9148501,.02984,540,.2904,.954,.0203,545,.3597,.9803,.0134,550,.4334499,.9949501,.008749999,555,.5120501,1,.005749999,560,.5945,.995,.0039,565,.6784,.9786,.002749999,570,.7621,.952,.0021,575,.8425,.9154,.0018,580,.9163,.87,.001650001,585,.9786,.8163,.0014,590,1.0263,.757,.0011,595,1.0567,.6949,.001,600,1.0622,.631,8e-4,605,1.0456,.5668,6e-4,610,1.0026,.503,34e-5,615,.9384,.4412,24e-5,620,.8544499,.381,19e-5,625,.7514,.321,1e-4,630,.6424,.265,4999999e-11,635,.5419,.217,3e-5,640,.4479,.175,2e-5,645,.3608,.1382,1e-5,650,.2835,.107,0,655,.2187,.0816,0,660,.1649,.061,0,665,.1212,.04458,0,670,.0874,.032,0,675,.0636,.0232,0,680,.04677,.017,0,685,.0329,.01192,0,690,.0227,.00821,0,695,.01584,.005723,0,700,.01135916,.004102,0,705,.008110916,.002929,0,710,.005790346,.002091,0,715,.004109457,.001484,0,720,.002899327,.001047,0,725,.00204919,74e-5,0,730,.001439971,52e-5,0,735,9999493e-10,3611e-7,0,740,6900786e-10,2492e-7,0,745,4760213e-10,1719e-7,0,750,3323011e-10,12e-5,0,755,2348261e-10,848e-7,0,760,1661505e-10,6e-5,0,765,117413e-9,424e-7,0,770,8307527e-11,3e-5,0,775,5870652e-11,212e-7,0,780,4150994e-11,1499e-8,0,785,2935326e-11,106e-7,0,790,2067383e-11,74657e-10,0,795,1455977e-11,52578e-10,0,800,1025398e-11,37029e-10,0,805,7221456e-12,26078e-10,0,810,5085868e-12,18366e-10,0,815,3581652e-12,12934e-10,0,820,2522525e-12,91093e-11,0,825,1776509e-12,64153e-11,0,830,1251141e-12,45181e-11,0],sz={maxOzoneNumberDensity:5374e15,rayleigh:124062e-11,rayleighScaleHeight:8e3,mieScaleHeight:1200,mieAngstromAlpha:0,mieAngstromBeta:.005328,mieSingleScatteringAlbedo:.9,miePhaseFunctionG:.9,groundAlbedo:.1,numScatteringOrders:4};function sV(a,r,n){if(n<a[0])return r[0];for(var i=0;i<a.length-1;i++)if(n<a[i+1]){var s=(n-a[i])/(a[i+1]-a[i]);return r[i]*(1-s)+r[i+1]*s}return r[r.length-1]}function sC(a,r){if(a<=360||a>=830)return 0;var n=(a-360)/5,i=Math.floor(n);return n-=i,sS[4*i+r]*(1-n)+sS[4*(i+1)+r]*n}function sk(a,r,n){for(var i=0,s=0,o=0,l=sV(a,r,680),u=sV(a,r,550),c=sV(a,r,440),d=360;d<830;d+=1){var h=sC(d,1),m=sC(d,2),f=sC(d,3),v=3.2406*h+-1.5372*m+-.4986*f,p=-.9689*h+1.8758*m+.0415*f,g=.0557*h+-.204*m+1.057*f,y=sV(a,r,d);i+=v*y/l*Math.pow(sx(d/680),n),s+=p*y/u*Math.pow(sx(d/550),n),o+=g*y/c*Math.pow(sx(d/440),n)}return[i*=683,s*=683,o*=683]}var sM=Math.PI/180;function sA(a,r,n,i,s){return[sx(a/1e3),sx(r),sx(1e3*n),sx(1e3*i),sx(s)]}function sR(a){return new Float32Array(F(a).concat(F(a)))}var sP=sx(sM),sN=sx(Math.PI),sB=sx(2*Math.PI);function sD(a){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:80,n=sx(52*sP),i=sx(sx(23.44)*sP),s=sx(a%86400/86400),o=sx(i*Math.sin(sx(sx(sx(2*sN)*(r-80))/365))),l=sx(sx(s-.5)*sB),u=sx(Math.sin(n)*Math.sin(o)+Math.cos(n)*Math.cos(o)*Math.cos(l)),c=sx(1-sx(u*u)),d=sx(Math.sqrt(c>0?c:0));return[sx(d*Math.sin(l)),u,sx(d*Math.cos(l))]}var sE=Math.fround;function sI(a){return sE(a-Math.floor(a))}function sF(a,r,n){return sE(sE(sE(sE(sE(r-a)*sE(3-sE(2*n)))*n)*n)+a)}var sL=sE(sE(3.14159265)/0x80000000);function sU(a,r,n,i,s){var o,l,u,c=I((o=a>>>0,l=r>>>0,o=(o^Math.imul(s,0x9e3779b1))>>>0,l=Math.imul(l=((l=(l^Math.imul(s,0x85ebca77))>>>0)^((o=Math.imul(o,0xc3c04403)>>>0)<<16|o>>>16))>>>0,0x71ef7dcd)>>>0,u=sE(sE(o=Math.imul(o=(o^(l<<16|l>>>16))>>>0,0x7a1865fd)>>>0)*sL),[sE(Math.sin(u)),sE(Math.cos(u))]),2),d=c[0],h=c[1],m=sE(n-a),f=sE(i-r);return sE(sE(m*d)+sE(f*h))}function sO(a,r,n){for(var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,l=0,u=0,c=0;c<a;c++)l=sE(l+sE(s*function(a,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=Math.trunc(a),s=Math.trunc(r),o=i+1,l=s+1,u=sE(a-i),c=sE(r-s),d=sU(i,s,a,r,n),h=sU(o,s,a,r,n),m=sF(d,h,u),f=sF(d=sU(i,l,a,r,n),h=sU(o,l,a,r,n),u);return sF(m,f,c)}(sE(r*i),sE(n*i),o))),u=sE(u+s),s=sE(.5*s),i=sE(2*i);return sE(l/u)}function sG(a,r,n){for(var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=Math.floor(a),o=Math.floor(r),l=sE(a-s),u=sE(r-o),c=1e9,d=-1;d<=1;d++)for(var h=-1;h<=1;h++){var m=I(function(a,r,n){a=sE(a+n),r=sE(r+n);var i=sE(sE(a*sE(127.1))+sE(r*sE(311.7))),s=sE(sE(a*sE(269.5))+sE(r*sE(183.3)));return[sI(sE(sE(Math.sin(i))*sE(43758.5453123))),sI(sE(sE(Math.sin(s))*sE(43758.5453123)))]}(sE(sE(sE(s+h)+n)%n),sE(sE(sE(o+d)+n)%n),i),2),f=m[0],v=m[1],p=sE(f+h),g=sE(v+d),y=sE(p-l),_=sE(g-u),x=sE(Math.sqrt(sE(sE(y*y)+sE(_*_))));x<c&&(c=x)}return c}function sq(a,r,n){var i=sE(sE(n-a)/sE(r-a));return i<0&&(i=0),i>1&&(i=1),sE(sE(i*i)*sE(3-sE(2*i)))}function sW(a,r,n){return sE(sE(a*sE(1-n))+sE(r*n))}function sH(a){return Math.trunc(a)>>>0}var sj=new Float32Array(1),sK=new Uint32Array(sj.buffer);function sJ(a){sj[0]=a;var r=sK[0],n=r>>>16&32768,i=r>>>23&255,s=8388607&r;if(255===i)return 31744|n|512*(0!==s);var o=i-112;return o>=31?31744|n:o<=0?n:(n|o<<10|s>>>13)+(s>>>12&1)}var sX=new Map,sQ={cirrus:"sky-cirrus.png",alto:"sky-alto.png"};function sY(a){return S(function(){var r,n,i;return G(this,function(s){switch(s.label){case 0:return[4,fetch(r=(0,x.b)(sQ[a]),{mode:"cors"})];case 1:if(!(n=s.sent()).ok)throw Error("skyAssets: fetching ".concat(r," failed (").concat(n.status,")"));return i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:return[2,new(i.apply(Uint8Array,[void 0,s.sent()]))]}})})()}function sZ(a){return S(function(){var r,n,i,s,o,l,u,c;return G(this,function(d){switch(d.label){case 0:return r=512,[4,createImageBitmap(new Blob([a],{type:"image/png"}),{colorSpaceConversion:"none"})];case 1:if(n=d.sent(),!(i=new OffscreenCanvas(r,r).getContext("2d")))throw Error("skyAssets: no 2d context for PNG decode");for(i.drawImage(n,0,0,r,r),n.close(),s=i.getImageData(0,0,r,r).data,o=new Uint8Array(r*r),l=0;l<r;l++)for(c=0,u=511-l;c<r;c++)o[l*r+c]=s[4*(u*r+c)];return[2,o]}})})()}var s$="\nconst HDRI_PI: f32 = 3.141592653589793;\n\nfn HdriRotateByEuler(dir: vec3f, euler: vec3f) -> vec3f {\n let cx = cos(euler.x); let sx = sin(euler.x);\n let cy = cos(euler.y); let sy = sin(euler.y);\n let cz = cos(euler.z); let sz = sin(euler.z);\n\n let rot = mat3x3f(\n cy * cz, cy * sz, -sy,\n sx * sy * cz - cx * sz, sx * sy * sz + cx * cz, sx * cy,\n cx * sy * cz + sx * sz, cx * sy * sz - sx * cz, cx * cy\n );\n return rot * dir;\n}\n\n/** Direction → equirect uv — Hana's compute_equirectangular_uvs with the v\n * term flipped for three's flipY image upload (see the header note; u is\n * Hana's exact 1 − (long + π)/2π). */\nfn HdriDirToUv(dir0: vec3f, euler: vec3f) -> vec2f {\n let dir = HdriRotateByEuler(normalize(dir0), euler);\n let longitude = atan2(dir.x, dir.z);\n let latitude = asin(clamp(dir.y, -1.0, 1.0));\n let u = 1.0 - (longitude + HDRI_PI) / (2.0 * HDRI_PI);\n let v = (latitude + HDRI_PI / 2.0) / HDRI_PI;\n return vec2f(u, v);\n}\n\n/** Mip level whose texel footprint covers the given angle. Used per tap by\n * HdriSampleBlurred so the gaussian rings never undersample the gaps\n * between taps (same LOD-selection idea as the reflection layer's\n * cone-width blur). 0 when the footprint is smaller than one texel. */\nfn HdriBlurLod(texWidth: f32, footprintAngle: f32) -> f32 {\n let texelsPerRadian = texWidth / (2.0 * HDRI_PI);\n return clamp(log2(max(footprintAngle * texelsPerRadian, 1.0)), 0.0, 16.0);\n}\n\n/** Interleaved gradient noise (Jimenez) — the same per-pixel hash family\n * the reflection layer's blur uses. Deliberately STATIC here (no frame\n * animation, no TAA reliance): the blur must look identical whether or\n * not temporal AA runs, so the dither is a fixed spatial pattern. */\nfn HdriIGN(pix: vec2f) -> f32 {\n return fract(\n 52.9829189 * fract(dot(pix, vec2f(0.06711056, 0.00583715))));\n}\n\n/**\n * Gaussian-blurred equirect sample: a 13-tap disc around the ray — center\n * plus two hex rings at 1σ and 2σ (σ = half the blur angle), true gaussian\n * ring weights (e^0, e^-0.5, e^-2) — with every tap reading a σ-footprint\n * mip so the rings blend seamlessly. Reads like a gaussian of ~σ instead\n * of the boxy bilinear lozenges a bare mip pick produces at large radii;\n * a mip pyramid alone is a stack of 2\xd72 box filters.\n *\n * jitter (x = disc rotation in radians, y = ring radius scale)\n * decorrelates the kernel per pixel: a FIXED sparse disc leaves\n * tap-replica and mip-interpolation structure — subtle bands parallel to\n * strong source edges. The background pass feeds it static per-pixel IGN\n * (structured banding becomes fine, temporally stable spatial noise —\n * deliberately NOT frame-animated, so nothing depends on TAA); the tiny\n * env re-projection passes (0, 1).\n */\nfn HdriSampleBlurred(\n envTex: texture_2d<f32>, envSamp: sampler,\n dir: vec3f, euler: vec3f, blurAngle: f32, jitter: vec2f) -> vec3f {\n let st0 = HdriDirToUv(dir, euler);\n if (blurAngle <= 0.0) {\n return textureSampleLevel(envTex, envSamp, st0, 0.0).rgb;\n }\n let sigma = blurAngle * 0.5;\n let lod = HdriBlurLod(f32(textureDimensions(envTex, 0).x), sigma);\n\n // Tangent frame around the ray (the offsets live on its normal plane).\n let axis = select(\n vec3f(0.0, 1.0, 0.0), vec3f(1.0, 0.0, 0.0), abs(dir.y) > 0.99);\n let t1 = normalize(cross(axis, dir));\n let t2 = cross(dir, t1);\n\n let r1 = sigma * jitter.y;\n let r2 = 2.0 * sigma * jitter.y;\n let wRing1 = 0.60653066; // e^-0.5, taps at 1σ\n let wRing2 = 0.13533528; // e^-2, taps at 2σ\n var sum = textureSampleLevel(envTex, envSamp, st0, lod).rgb;\n var wSum = 1.0;\n for (var i = 0u; i < 6u; i = i + 1u) {\n // Ring 2 sits on the hex vertices, ring 1 on the rotated midpoints.\n let a1 = (f32(i) + 0.5) * (HDRI_PI / 3.0) + jitter.x;\n let d1 = normalize(dir + (t1 * cos(a1) + t2 * sin(a1)) * r1);\n sum += textureSampleLevel(\n envTex, envSamp, HdriDirToUv(d1, euler), lod).rgb * wRing1;\n let a2 = f32(i) * (HDRI_PI / 3.0) + jitter.x;\n let d2 = normalize(dir + (t1 * cos(a2) + t2 * sin(a2)) * r2);\n sum += textureSampleLevel(\n envTex, envSamp, HdriDirToUv(d2, euler), lod).rgb * wRing2;\n wSum += wRing1 + wRing2;\n }\n return sum / wSum;\n}\n";function s0(a){return Math.pow(a/255,2.2)}var s1=function(){function a(r,n){V(this,a),this._uRotation=(0,u.vc)(new b.Fc),this._uBlurAngle=(0,u.vc)(0),this.backgroundMesh=null,this._envTarget=null,this._envQuad=null,this._boundTexture=null,this._lastEnvKey=null,this._sampleTexture=null,this._sourceTexture=null,this._sourceVersion=-1,this._lighting=null,this._lightingKey=null,this._active=!1,this._renderer=r,this._rays=n}return M(a,[{key:"attached",get:function(){var a;return null!=(null==(a=this.backgroundMesh)?void 0:a.parent)}},{key:"active",get:function(){return this._active}},{key:"environmentTexture",get:function(){var a,r;return null!=(a=null==(r=this._envTarget)?void 0:r.texture)?a:null}},{key:"lightingInfo",value:function(a){var r="".concat(a.uuid,"|").concat(a.version);return r!==this._lightingKey&&(this._lightingKey=r,this._lighting=function(a){if((0,g.l)(a)){var r=a.data,n=a.width,i=a.height;o=function(a,s){var o=Math.min(n-1,Math.floor((a+.5)/64*n)),l=Math.min(i-1,Math.floor((s+.5)/32*i)),u=4*((i-1-l)*n+o);return[Math.pow(Math.max(b.Yc.fromHalfFloat(r[u]),0),2.2),Math.pow(Math.max(b.Yc.fromHalfFloat(r[u+1]),0),2.2),Math.pow(Math.max(b.Yc.fromHalfFloat(r[u+2]),0),2.2)]}}else{if(("u"<typeof document?"undefined":L(document))>"u")return null;var s=document.createElement("canvas");s.width=64,s.height=32;var o,l,u=s.getContext("2d",{willReadFrequently:!0});if(null===u)return null;try{u.drawImage(a,0,0,64,32),l=u.getImageData(0,0,64,32).data}catch(a){return null}o=function(a,r){var n=4*(64*r+a);return[s0(l[n]),s0(l[n+1]),s0(l[n+2])]}}for(var c=function(a){return .2126*a[0]+.7152*a[1]+.0722*a[2]},d=[0,0,0],h=[0,0,0],m=0,f=0,v=0,p=0;p<32;p++)for(var y=Math.sin((p+.5)/32*Math.PI),_=p<16,x=0;x<64;x++){var T=o(x,p);v=Math.max(v,c(T));var w=_?d:h;w[0]+=T[0]*y,w[1]+=T[1]*y,w[2]+=T[2]*y,_?m+=y:f+=y}for(var S=[d[0]/m,d[1]/m,d[2]/m],z=[h[0]/f,h[1]/f,h[2]/f],V=c(S),C=c(z),k=(V*m+C*f)/Math.max(m+f,1e-6),M=.9*v,A=[0,0,0],R=[0,0,0],P=0,N=0;N<32;N++)for(var B=Math.sin((N+.5)/32*Math.PI),D=0;D<64;D++){var E=o(D,N),I=c(E);if(!(I<M)){var F=function(a,r){var n=(r+.5)/32*Math.PI,i=Math.PI-(a+.5)/64*2*Math.PI,s=Math.sin(n);return[s*Math.sin(i),Math.cos(n),s*Math.cos(i)]}(D,N),U=B*I;A[0]+=F[0]*U,A[1]+=F[1]*U,A[2]+=F[2]*U,R[0]+=E[0]*B,R[1]+=E[1]*B,R[2]+=E[2]*B,P+=B}}var O=Math.hypot(A[0],A[1],A[2]),G=P>0?[R[0]/P,R[1]/P,R[2]/P]:[1,1,1],q=c(G);return{skyColor:S,skyLum:V,groundColor:z,groundLum:C,meanLum:k,sunDir:O>1e-4?[A[0]/O,A[1]/O,A[2]/O]:[0,1,0],sunColor:G,sunLum:q,sunPeak:k>1e-6?q/k:1}}(a.image)),this._lighting}},{key:"_ensureSampleTexture",value:function(a){if(null===this._sampleTexture||this._sourceTexture!==a){null==(r=this._sampleTexture)||r.dispose();var r,n=(0,g.l)(a.image)?(0,g.m)(a.image):new b.Ic(a.image);n.name="sky-hdri-source",n.wrapS=b.ka,n.wrapT=b.la,n.minFilter=b.sa,n.magFilter=b.qa,n.generateMipmaps=!0,n.flipY=!(0,g.l)(a.image),n.needsUpdate=!0,this._sampleTexture=n,this._sourceTexture=a,this._sourceVersion=a.version}else a.version!==this._sourceVersion&&(this._sampleTexture.image=a.image,this._sampleTexture.needsUpdate=!0,this._sourceVersion=a.version);return this._sampleTexture}},{key:"_buildBackgroundNode",value:function(a){return(0,u.Kc)("fn hdriBackground(\n uv: vec2f,\n ray00: vec3f, ray10: vec3f, ray01: vec3f, ray11: vec3f,\n rotation: vec3f, blurAngle: f32,\n resolution: vec2f,\n envTex: texture_2d<f32>, envSamp: sampler) -> vec4f {\n let ray = normalize(\n mix(mix(ray00, ray10, uv.x), mix(ray01, ray11, uv.x), 1.0 - uv.y));\n // Static per-pixel disc rotation + radius scale — the hex ring is\n // 60\xb0-symmetric so a third of a turn covers the full phase.\n let pix = uv * resolution;\n let rotJitter = HdriIGN(pix) * (HDRI_PI / 3.0);\n let radJitter = 0.85 + 0.3 * HdriIGN(pix + vec2f(59.0, 37.0));\n return vec4f(\n HdriSampleBlurred(\n envTex, envSamp, ray, rotation, blurAngle,\n vec2f(rotJitter, radJitter)),\n 1.0);\n}",[(0,u.Jc)(s$)])({uv:u.Zb,ray00:this._rays.ray00,ray10:this._rays.ray10,ray01:this._rays.ray01,ray11:this._rays.ray11,rotation:this._uRotation,blurAngle:this._uBlurAngle,resolution:u.Vc.resolution,envTex:(0,u.oc)(a),envSamp:(0,u.Xb)(a)})}},{key:"_ensureBackgroundMesh",value:function(a){if(this.backgroundMesh)return this.backgroundMesh;var r=new b.dd;r.setAttribute("position",new b.Zc(new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),3));var n=new u.c;n.name="SplineSkyHdriBackground",n.lights=!1,n.depthWrite=!1,n.depthTest=!1,n.colorNode=this._buildBackgroundNode(a),n.vertexNode=(0,u.Kc)("fn hdriBackgroundVertex(position: vec3f) -> vec4f {\n return vec4f(position.xy, 0.5, 1.0);\n}")({position:u.Hb});var i=new b.ld(r,n);return i.name="SplineSkyHdriBackground",i.userData.splineSkyBackground=!0,i.frustumCulled=!1,i.renderOrder=-1e9,i.matrixAutoUpdate=!1,i.raycast=function(){},this.backgroundMesh=i,i}},{key:"_ensureEnvQuad",value:function(a){var r=(0,u.Kc)("fn hdriEnvPass(\n uv: vec2f,\n rotation: vec3f, blurAngle: f32,\n envTex: texture_2d<f32>, envSamp: sampler) -> vec4f {\n let azimuth = (uv.x - 0.5) * 2.0 * HDRI_PI;\n let latitude = (uv.y - 0.5) * HDRI_PI;\n let cosLat = cos(latitude);\n let rd = vec3f(cosLat * cos(azimuth), sin(latitude), cosLat * sin(azimuth));\n return vec4f(\n HdriSampleBlurred(\n envTex, envSamp, rd, rotation, blurAngle, vec2f(0.0, 1.0)),\n 1.0);\n}",[(0,u.Jc)(s$)])({uv:(0,u.yc)(),rotation:this._uRotation,blurAngle:this._uBlurAngle,envTex:(0,u.oc)(a),envSamp:(0,u.Xb)(a)});if(null===this._envQuad){var n=new u.c;n.name="SplineSkyHdriEnvironmentPass",n.lights=!1,n.fragmentNode=r,this._envQuad=new u.v(n)}else{var i=this._envQuad.material;i.fragmentNode=r,i.needsUpdate=!0}}},{key:"_bindTexture",value:function(a){if(this._boundTexture!==a)if(this._boundTexture=a,this._ensureEnvQuad(a),this.backgroundMesh){var r=this.backgroundMesh.material;r.colorNode=this._buildBackgroundNode(a),r.needsUpdate=!0}else this._ensureBackgroundMesh(a)}},{key:"update",value:function(a,r,n,i){var s,o,l=!(arguments.length>4)||void 0===arguments[4]||arguments[4];if(null===r)return void this.detach();this._active=!0,this._uRotation.value.set(0,null!=n?n:0,0),this._uBlurAngle.value=i;var u=this._ensureSampleTexture(r);this._bindTexture(u);var c=this._ensureBackgroundMesh(u);if(null===this._envTarget){this._envTarget=new b.Kc(256,128,{type:b.Ba,depthBuffer:!1});var d=this._envTarget.texture;d.name="sky-hdri-environment",d.generateMipmaps=!0,d.minFilter=b.sa,d.magFilter=b.qa,d.wrapS=b.ka}var h=this._uRotation.value,m="".concat(u.uuid,"|").concat(u.version,"|").concat(h.x,",").concat(h.y,",").concat(h.z,"|").concat(i);if(m!==this._lastEnvKey){this._lastEnvKey=m;var f=this._renderer,v=f.getRenderTarget();f.setRenderTarget(this._envTarget),this._envQuad.render(this._renderer),f.setRenderTarget(v)}l?c.parent!==a&&(null==(s=c.parent)||s.remove(c),a.add(c)):null==(o=c.parent)||o.remove(c)}},{key:"detach",value:function(){var a,r;this._active=!1,null==(r=this.backgroundMesh)||null==(a=r.parent)||a.remove(this.backgroundMesh)}},{key:"dispose",value:function(){var a,r,n,i,s,o,l;this.detach(),null==(a=this._envTarget)||a.dispose(),this._envTarget=null,this._lastEnvKey=null,null==(n=this._envQuad)||null==(r=n.material)||r.dispose(),this._envQuad=null,null==(s=this.backgroundMesh)||null==(i=s.material)||i.dispose(),null==(o=this.backgroundMesh)||o.geometry.dispose(),this.backgroundMesh=null,this._boundTexture=null,null==(l=this._sampleTexture)||l.dispose(),this._sampleTexture=null,this._sourceTexture=null,this._sourceVersion=-1}}]),a}(),s2=new b.Tc,s3=new b.Dc,s5=new b.Jc,s4=new b.Jc,s6=128,s8=10,s7=0,s9=4,oe=2,ot=8,oa=32,or=128,on=25,oi=1.5,os={clear:[0,0],mostlyClear:[.3,.3],partlyCloudy:[.3,.3],mostlyCloudy:[.3,.3],overcast:[.3,.3],storm:[.3,.3]},oo=null;try{var ol=new URLSearchParams(window.location.search).get("dbgskystep");null!==ol&&""!==ol&&Number.isFinite(Number(ol))&&(oo=Math.max(0,Number(ol)))}catch(a){}var ou={clear:1,mostlyClear:.95,partlyCloudy:.9,mostlyCloudy:.8,overcast:.6,storm:.5},oc={clear:1,mostlyClear:.92,partlyCloudy:.8,mostlyCloudy:.55,overcast:.3,storm:.15},od={clear:1,mostlyClear:.97,partlyCloudy:.92,mostlyCloudy:.8,overcast:.65,storm:.5},oh="\n uv: vec2f,\n ray00: vec3f, ray10: vec3f, ray01: vec3f, ray11: vec3f,\n cameraPos: vec3f, sunDir: vec3f,\n solarIrradiance: vec3f, rayleighScattering: vec3f, mieScattering: vec3f,\n skySrtl: vec3f, sunSrtl: vec3f, atmScalars: vec4f, muSMin: f32,\n transmittanceTex: texture_2d<f32>,\n scatteringTex: texture_3d<f32>, scatteringSamp: sampler",om="".concat(oh,",\n irradianceTex: texture_2d<f32>,\n baseNoiseTex: texture_3d<f32>, noiseSamp: sampler,\n detailNoiseTex: texture_3d<f32>,\n weatherCurTex: texture_2d<f32>, weatherSamp: sampler,\n weatherNextTex: texture_2d<f32>,\n highCloudsTex: texture_2d<f32>,\n cloudsParamsA: vec4f, cloudsParamsB: vec4f,\n cloudsParamsC: vec4f, cloudsParamsD: vec4f"),of=function(){function a(r){var n,i,s,o,l,c=this;V(this,a),this._luts=null,this._baseNoise=null,this._detailNoise=null,this._highCloudsReady=!1,this._skyTarget=null,this._cloudsTarget=null,this._skyQuad=null,this._cloudsQuad=null,this._envTarget=null,this._envQuad=null,this._lastEnvKey=null,this.backgroundMesh=null,this._auxMesh=null,this._auxHidden=[],this._hdri=null,this._uRay00=(0,u.vc)(new b.Fc),this._uRay10=(0,u.vc)(new b.Fc),this._uRay01=(0,u.vc)(new b.Fc),this._uRay11=(0,u.vc)(new b.Fc),this._uCameraPos=(0,u.vc)(new b.Fc(0,.1,0)),this._uSunDir=(0,u.vc)(new b.Fc(0,1,0)),this._uCloudsParamsC=(0,u.vc)(new b.Jc(on,oi,.3,.3)),this._uCloudsParamsD=(0,u.vc)(new b.Jc(0,1,0,0)),this._uExposure=(0,u.vc)(5e-4),this._uGamma=(0,u.vc)(2.2),this._uEnvCloudsOn=(0,u.vc)(0),this._lastPage=null,this._lastVersion=-1,this._appliedWeather=null,this._appliedSeed=0,this._blendStart=0,this._blendFrom=1,this._presetFrom="partlyCloudy",this._presetTo="partlyCloudy",this._windOffsetKm=0,this._lastFrameTime=null,this._cloudsEnabled=!0,this._cloudsTargetCleared=!1,this._animating=!1,this._lastSkyPassKey=null,this._lastCloudsPassKey=null,this._sunLight=null,this._iblHdriTexture=null,this._iblRotationY=0,this._pmremBumpAt=0,this._pmremPending=!1,this._skyHemi=null,this._userAmbientSuppressed=!1,this._lightingLuts=null,this._lightingLutsRequested=!1,this._noonSunLum=0,this._noonSkyLum=0,this._noonSunRgb=null,this._lightingPage=null,this._lightingOn=!1,this.assetsReady=Promise.resolve(),this.fixedSkySize=null,this.fixedCloudsSize=null,this.fixedTimeSeconds=null,this.numScatteringOrdersOverride=null,this.highCloudDensityOverride=null,this.minStepKmOverride=null,this._cloudsArgs=null,this._cloudsLib=null,this._renderer=r,this._auxiliary=!0===r.auxiliary,this._atmosphereUniforms=(s=sk(i=(n=function(a){for(var r=[],n=[],i=[],s=[],o=[],l=[],u=[],c=360;c<=830;c+=10){var d=.001*c,h=a.mieAngstromBeta/a.mieScaleHeight*Math.pow(d,-a.mieAngstromAlpha);r.push(c),n.push(sT[(c-360)/10]),i.push(a.rayleigh*Math.pow(d,-4)),s.push(h*a.mieSingleScatteringAlbedo),o.push(h),l.push(a.maxOzoneNumberDensity*sw[(c-360)/10]),u.push(a.groundAlbedo)}return{wavelengths:r,solarIrradiance:n,rayleighScattering:i,mieScattering:s,mieExtinction:o,absorptionExtinction:l,groundAlbedo:u}}(sz)).wavelengths,n.solarIrradiance,-3),o=sk(i,n.solarIrradiance,0),{solarIrradiance:(l=function(a,r){return[sx(sV(i,a,680)*r),sx(sV(i,a,550)*r),sx(sV(i,a,440)*r)]})(n.solarIrradiance,1),rayleighScattering:l(n.rayleighScattering,1e3),mieScattering:l(n.mieScattering,1e3),mieExtinction:l(n.mieExtinction,1e3),absorptionExtinction:l(n.absorptionExtinction,1e3),groundAlbedo:l(n.groundAlbedo,1),skySpectralRadianceToLuminance:[sx(s[0]),sx(s[1]),sx(s[2])],sunSpectralRadianceToLuminance:[sx(o[0]),sx(o[1]),sx(o[2])],bottomRadius:6360,topRadius:6420,muSMin:sx(Math.cos(120*sM)),sunAngularRadius:sx(sb),miePhaseG:sx(sz.miePhaseFunctionG),rayleighDensity:sR(sA(0,1,-1/sz.rayleighScaleHeight,0,0)),mieDensity:sR(sA(0,1,-1/sz.mieScaleHeight,0,0)),absorptionDensity:new Float32Array(F(sA(25e3,0,0,1/15e3,-2/3)).concat(F(sA(0,0,0,-1/15e3,8/3)))),luminanceFromRadiance:new Float32Array([1,0,0,0,1,0,0,0,1])});var d=function(a){var r=new b.nd(new Uint16Array(262144),256,256,b.Ja,b.Ba);return r.wrapS=b.ka,r.wrapT=b.ka,r.minFilter=b.qa,r.magFilter=b.qa,r.name=a,r.needsUpdate=!0,r};this._weatherCur=d("sky-weather-current"),this._weatherNext=d("sky-weather-next"),this._highClouds=new b.nd(new Uint8Array(524288),512,512,b.Oa,b.ua),this._highClouds.wrapS=b.ka,this._highClouds.wrapT=b.ka,this._highClouds.minFilter=b.qa,this._highClouds.magFilter=b.qa,this._highClouds.name="sky-high-clouds",this._highClouds.needsUpdate=!0,this.assetsReady=S(function(){var a,r,n,i,s;return G(this,function(o){switch(o.label){case 0:return[4,Promise.all([sY("cirrus").then(sZ),sY("alto").then(sZ)])];case 1:for(r=(a=I.apply(void 0,[o.sent(),2]))[0],n=a[1],i=new Uint8Array(524288),s=0;s<262144;s++)i[2*s+0]=r[s],i[2*s+1]=n[s];return[2,i]}})})().then(function(a){c._highClouds.image.data.set(a),c._highClouds.needsUpdate=!0,c._highCloudsReady=!0},function(){})}return M(a,[{key:"attached",get:function(){var a,r;return null!=(null==(a=this.backgroundMesh)?void 0:a.parent)||!0===(null==(r=this._hdri)?void 0:r.active)}},{key:"animationActive",get:function(){return this.attached&&(this._animating||this._pmremPending)}},{key:"luts",get:function(){return this._luts}},{key:"readbackLut",value:function(a){var r=this._luts;return r?"transmittance"===a?si(this._renderer,r.transmittance,256,64,1,!1):"irradiance"===a?si(this._renderer,r.irradiance,64,16,1,!1):si(this._renderer,r.scattering,256,128,32,!0):Promise.reject(Error("sky LUTs not ready"))}},{key:"readbackNoise",value:function(a){var r="base"===a?this._baseNoise:this._detailNoise;if(!r)return Promise.reject(Error("sky noise not ready"));var n="base"===a?128:32;return si(this._renderer,r,n,n,n,!0)}},{key:"skyTexture",get:function(){var a,r;return null!=(a=null==(r=this._skyTarget)?void 0:r.texture)?a:null}},{key:"cloudsTexture",get:function(){var a,r;return null!=(a=null==(r=this._cloudsTarget)?void 0:r.texture)?a:null}},{key:"environmentTexture",get:function(){var a,r,n;return!0===(null==(r=this._hdri)?void 0:r.active)?this._hdri.environmentTexture:null!=(a=null==(n=this._envTarget)?void 0:n.texture)?a:null}},{key:"iblTexture",get:function(){var a,r,n;return this._lightingOn?!0===(null==(r=this._hdri)?void 0:r.active)?this._iblHdriTexture:null!=(a=null==(n=this._envTarget)?void 0:n.texture)?a:null:null}},{key:"iblRotationY",get:function(){var a;return!0===(null==(a=this._hdri)?void 0:a.active)?this._iblRotationY:0}},{key:"_requestEnvPmrem",value:function(a){var r,n=null==(r=this._envTarget)?void 0:r.texture;void 0!==n&&(a-this._pmremBumpAt>=150?(this._pmremBumpAt=a,this._pmremPending=!1,n.needsPMREMUpdate=!0):this._pmremPending=!0)}},{key:"weatherTextureData",get:function(){return{current:this._weatherCur.image.data,next:this._weatherNext.image.data}}},{key:"_ensureLuts",value:function(){var a;this._luts||(this._luts=function(a,r,n){var i=se(a),s=sa(256,64,b.Aa,"sky-lut-transmittance"),o=[sa(64,16,b.Aa,"sky-lut-irradiance-a"),sa(64,16,b.Aa,"sky-lut-irradiance-b")],l=[sr(256,128,32,b.Ba,"sky-lut-scattering-a",b.qa),sr(256,128,32,b.Ba,"sky-lut-scattering-b",b.qa)],u=sa(64,16,b.Aa,"sky-delta-irradiance"),c=sr(256,128,32,b.Aa,"sky-delta-rayleigh",b.na),d=sr(256,128,32,b.Aa,"sky-delta-mie",b.na),h=sr(256,128,32,b.Aa,"sky-delta-density",b.na),m={transmittance:st(a,s),irr:o.map(function(r){return st(a,r)}),scat:l.map(function(r){return st(a,r)}),deltaIrradiance:st(a,u),deltaRayleigh:st(a,c),deltaMie:st(a,d),deltaDensity:st(a,h)},f=m.deltaRayleigh,v=function(a){var r=new Float32Array(80),n=0,i=function(a,i){r[n++]=a[0],r[n++]=a[1],r[n++]=a[2],r[n++]=i};i(a.solarIrradiance,a.sunAngularRadius),i(a.rayleighScattering,a.bottomRadius),i(a.mieScattering,a.topRadius),i(a.mieExtinction,a.miePhaseG),i(a.absorptionExtinction,a.muSMin),i(a.groundAlbedo,0),i(a.skySpectralRadianceToLuminance,0),i(a.sunSpectralRadianceToLuminance,0);for(var s=0,o=[a.rayleighDensity,a.mieDensity,a.absorptionDensity];s<o.length;s++)for(var l=o[s],u=0;u<2;u++){for(var c=0;c<5;c++)r[n++]=l[5*u+c];n+=3}return r}(r),p=i.createBuffer({label:"sky-atm-uniforms",size:v.byteLength,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});i.queue.writeBuffer(p,0,v.buffer,0,v.byteLength);var g=[],y=function(a){return g.push(a),(g.length-1)*256},_=new Map,x=!0,T=!1,w=void 0;try{for(var S,z=Object.entries(sn)[Symbol.iterator]();!(x=(S=z.next()).done);x=!0)!function(){var a=I(S.value,2),r=a[0],n=a[1],s=[{binding:0,visibility:GPUShaderStage.COMPUTE,buffer:{type:"uniform"}},{binding:1,visibility:GPUShaderStage.COMPUTE,buffer:{type:"uniform",hasDynamicOffset:!0}}];n.entries.forEach(function(a,r){"sampled"in a?s.push({binding:2+r,visibility:GPUShaderStage.COMPUTE,texture:{sampleType:"unfilterable-float",viewDimension:a.sampled}}):s.push({binding:2+r,visibility:GPUShaderStage.COMPUTE,storageTexture:{access:"write-only",format:a.format,viewDimension:a.storage}})});var o=i.createBindGroupLayout({label:"sky-".concat(r,"-bgl"),entries:s}),l=i.createComputePipeline({label:"sky-".concat(r),layout:i.createPipelineLayout({bindGroupLayouts:[o]}),compute:{module:i.createShaderModule({label:"sky-".concat(r,"-wgsl"),code:n.code}),entryPoint:"main"}});_.set(r,{pipeline:l,layout:o})}()}catch(a){T=!0,w=a}finally{try{x||null==z.return||z.return()}finally{if(T)throw w}}var V=[],C=0,k=0,M=function(a,r){return[a/8,r/8,1]};V.push([{kernel:"transmittance",textures:[m.transmittance],slotOffset:y({blend:[0,0,0,0],layer:0,scatteringOrder:0}),groups:M(256,64)}]),V.push([{kernel:"directIrradiance",textures:[m.irr[C],m.irr[1-C],m.deltaIrradiance,m.transmittance],slotOffset:y({blend:[0,0,0,0],layer:0,scatteringOrder:0}),groups:M(64,16)}]),C=1-C;for(var A=[],R=0;R<32;R++)A.push({kernel:"singleScattering",textures:[m.deltaRayleigh,m.deltaMie,m.scat[k],m.scat[1-k],m.transmittance],slotOffset:y({blend:[0,0,0,0],layer:R,scatteringOrder:0}),groups:M(256,128)});V.push(A),k=1-k;for(var P=2;P<=n;P++){for(var N=[],B=0;B<32;B++)N.push({kernel:"scatteringDensity",textures:[m.deltaDensity,m.transmittance,m.deltaRayleigh,m.deltaMie,f,m.deltaIrradiance],slotOffset:y({blend:[0,0,0,0],layer:B,scatteringOrder:P}),groups:M(256,128)});V.push(N),V.push([{kernel:"indirectIrradiance",textures:[m.deltaIrradiance,m.irr[C],m.irr[1-C],m.deltaRayleigh,m.deltaMie,f],slotOffset:y({blend:[0,1,0,0],layer:0,scatteringOrder:P-1}),groups:M(64,16)}]),C=1-C;for(var D=[],E=0;E<32;E++)D.push({kernel:"multipleScattering",textures:[f,m.scat[k],m.scat[1-k],m.transmittance,m.deltaDensity],slotOffset:y({blend:[0,1,0,0],layer:E,scatteringOrder:P}),groups:M(256,128)});V.push(D),k=1-k}var L=new Float32Array(256*g.length/4);g.forEach(function(a,r){var n;L[(n=256*r/4)+0]=1,L[n+5]=1,L[n+10]=1,L[n+12]=a.blend[0],L[n+13]=a.blend[1],L[n+14]=a.blend[2],L[n+15]=a.blend[3],new Int32Array(L.buffer,L.byteOffset+4*(n+16),2).set([a.layer,a.scatteringOrder])});var U=i.createBuffer({label:"sky-pass-params",size:L.byteLength,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});i.queue.writeBuffer(U,0,L.buffer,0,L.byteLength);var O=new Map,G=function(a){var r=O.get(a);return r||(r=a.createView({mipLevelCount:1}),O.set(a,r)),r},q=!0,W=!1,H=void 0;try{for(var j,K=V[Symbol.iterator]();!(q=(j=K.next()).done);q=!0){var J=j.value,X=i.createCommandEncoder({label:"sky-precompute"}),Q=X.beginComputePass(),Y=!0,Z=!1,$=void 0;try{for(var ee,et=J[Symbol.iterator]();!(Y=(ee=et.next()).done);Y=!0)!function(){var a=ee.value,r=_.get(a.kernel),n=r.pipeline,s=r.layout,o=[{binding:0,resource:{buffer:p}},{binding:1,resource:{buffer:U,size:256}}];a.textures.forEach(function(a,r){o.push({binding:2+r,resource:G(a)})});var l=i.createBindGroup({layout:s,entries:o});Q.setPipeline(n),Q.setBindGroup(0,l,[a.slotOffset]),Q.dispatchWorkgroups.apply(Q,F(a.groups))}()}catch(a){Z=!0,$=a}finally{try{Y||null==et.return||et.return()}finally{if(Z)throw $}}Q.end(),i.queue.submit([X.finish()])}}catch(a){W=!0,H=a}finally{try{q||null==K.return||K.return()}finally{if(W)throw H}}var ea=o[C],er=l[k],en=[o[1-C],l[1-k],u,c,d,h],ei=!0,es=!1,eo=void 0;try{for(var el,eu=en[Symbol.iterator]();!(ei=(el=eu.next()).done);ei=!0)el.value.dispose()}catch(a){es=!0,eo=a}finally{try{ei||null==eu.return||eu.return()}finally{if(es)throw eo}}return p.destroy(),U.destroy(),{transmittance:s,scattering:er,irradiance:ea,dispose:function(){s.dispose(),er.dispose(),ea.dispose()}}}(this._renderer,this._atmosphereUniforms,null!=(a=this.numScatteringOrdersOverride)?a:sz.numScatteringOrders))}},{key:"_ensureNoise",value:function(){var a=this;if(!this._baseNoise){var r=this._renderer.backend.device;if(!r)throw Error("[spline/sky] WebGPU device unavailable");var n=function(a,r){var n=new u.F(a,a,a);return n.type=b.Ba,n.minFilter=b.qa,n.magFilter=b.qa,n.wrapS=b.ka,n.wrapT=b.ka,n.wrapR=b.ka,n.generateMipmaps=!1,n.mipmapsAutoUpdate=!1,n.name=r,n};this._baseNoise=n(128,"sky-base-noise"),this._detailNoise=n(32,"sky-detail-noise");var i=function(n,i,s){a._renderer.initTexture(i);var o=a._renderer.backend.get(i).texture,l=r.createShaderModule({code:n}),u=r.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.COMPUTE,storageTexture:{access:"write-only",format:"rgba16float",viewDimension:"3d"}}]}),c=r.createComputePipeline({layout:r.createPipelineLayout({bindGroupLayouts:[u]}),compute:{module:l,entryPoint:"main"}}),d=r.createCommandEncoder({label:"sky-noise"}),h=d.beginComputePass();h.setPipeline(c),h.setBindGroup(0,r.createBindGroup({layout:u,entries:[{binding:0,resource:o.createView({mipLevelCount:1})}]}));var m=s/4;h.dispatchWorkgroups(m,m,m),h.end(),r.queue.submit([d.finish()])};i(sy,this._baseNoise,128),i(s_,this._detailNoise,32)}}},{key:"_atmArgs",value:function(){var a=this._atmosphereUniforms;return{solarIrradiance:(0,u.vc)(C(b.Fc,F(a.solarIrradiance))),rayleighScattering:(0,u.vc)(C(b.Fc,F(a.rayleighScattering))),mieScattering:(0,u.vc)(C(b.Fc,F(a.mieScattering))),skySrtl:(0,u.vc)(C(b.Fc,F(a.skySpectralRadianceToLuminance))),sunSrtl:(0,u.vc)(C(b.Fc,F(a.sunSpectralRadianceToLuminance))),atmScalars:(0,u.vc)(new b.Jc(a.sunAngularRadius,a.bottomRadius,a.topRadius,a.miePhaseG)),muSMin:(0,u.vc)(a.muSMin)}}},{key:"_ensurePasses",value:function(){if(!this._skyQuad){this._ensureLuts(),this._ensureNoise();var a=this._luts,r=D(B({uv:(0,u.yc)(),ray00:this._uRay00,ray10:this._uRay10,ray01:this._uRay01,ray11:this._uRay11,cameraPos:this._uCameraPos,sunDir:this._uSunDir},this._atmArgs()),{transmittanceTex:(0,u.oc)(a.transmittance),scatteringTex:(0,u.pc)(a.scattering),scatteringSamp:(0,u.Xb)(a.scattering)}),n=(0,u.Jc)(i7+sh),i=(0,u.Kc)("fn skyPass(".concat(oh,") -> vec4f {").concat(sm,"}"),[n]),s=new u.c;s.name="SplineSkyPass",s.lights=!1,s.fragmentNode=i(r),this._skyQuad=new u.v(s);var o=(0,u.Jc)(i7+sh+"\nfn remap(value: f32, min1: f32, max1: f32, min2: f32, max2: f32) -> f32 {\n return min2 + (value - min1) * (max2 - min2) / (max1 - min1);\n}\n\nfn saturateF(x: f32) -> f32 {\n return clamp(x, 0.0, 1.0);\n}\n\nfn triplanarSample(\n t: texture_2d<f32>, s: sampler, p: vec3f, n: vec3f, scale: f32) -> vec4f {\n var blend = abs(n);\n blend = pow(blend, vec3f(4.0));\n blend /= dot(blend, vec3f(1.0));\n\n let cx = textureSampleLevel(t, s, p.yz * scale, 0.0);\n let cy = textureSampleLevel(t, s, p.xz * scale, 0.0);\n let cz = textureSampleLevel(t, s, p.xy * scale, 0.0);\n\n return cx * blend.x + cy * blend.y + cz * blend.z;\n}\n\n/** Weight below which a triplanar axis is dropped instead of sampled.\n *\n * The weights are normalized pow(|n|, 4). Inside the cloud shell n is the\n * planet's up vector at the sample, and the march reaches at most\n * CLOUDS_PARAMS.maxDistance (128 km) over a 6360 km radius: |n.x| and |n.z|\n * stay under sin(128 / 6363) = 0.021, so their weights stay under 2e-7 —\n * four orders of magnitude under the fp16 quantum of the [0, 1] weather\n * channels they scale. The threshold sits well above that worst case on\n * purpose: it keeps the branch UNIFORM across the pass (every ray in the\n * layer drops the same two axes) instead of flickering per texel, and it\n * bounds the error at one threshold per dropped axis. */\nconst TRIPLANAR_WEIGHT_EPS: f32 = 1.0e-5;\n\n/**\n * triplanarSample with negligible axes skipped — three texture samples down\n * to one for any sample inside the cloud shell. This is the hot one: the\n * weather map is read once per density sample (twice mid-transition) and there\n * are up to seven density samples per lit step, so between this and the blend\n * branch below the weather taps go from six per density sample to one. When\n * all three axes clear the threshold the accumulation matches triplanarSample\n * exactly (adding into a zero-initialized vec4 is exact).\n */\nfn triplanarSampleAdaptive(\n t: texture_2d<f32>, s: sampler, p: vec3f, n: vec3f, scale: f32) -> vec4f {\n var blend = abs(n);\n blend = pow(blend, vec3f(4.0));\n blend /= dot(blend, vec3f(1.0));\n\n var c = vec4f(0.0);\n if (blend.x > TRIPLANAR_WEIGHT_EPS) {\n c += textureSampleLevel(t, s, p.yz * scale, 0.0) * blend.x;\n }\n if (blend.y > TRIPLANAR_WEIGHT_EPS) {\n c += textureSampleLevel(t, s, p.xz * scale, 0.0) * blend.y;\n }\n if (blend.z > TRIPLANAR_WEIGHT_EPS) {\n c += textureSampleLevel(t, s, p.xy * scale, 0.0) * blend.z;\n }\n return c;\n}\n\nfn raySphereIntersectFar(r0: vec3f, rd: vec3f, s0: vec3f, sr: f32) -> f32 {\n let a = dot(rd, rd);\n let s0_r0 = r0 - s0;\n let b = 2.0 * dot(rd, s0_r0);\n let c = dot(s0_r0, s0_r0) - (sr * sr);\n\n let d = b * b - 4.0 * a * c;\n if (d < 0.0) {\n return -1.0;\n }\n\n return (-b + sqrt(d)) / (2.0 * a);\n}\n\nfn raySphereIntersect(r0: vec3f, rd: vec3f, s0: vec3f, sr: f32) -> f32 {\n let a = dot(rd, rd);\n let s0_r0 = r0 - s0;\n let b = 2.0 * dot(rd, s0_r0);\n let c = dot(s0_r0, s0_r0) - (sr * sr);\n\n let d = b * b - 4.0 * a * c;\n if (d < 0.0) {\n return -1.0;\n }\n\n let sqrtD = sqrt(d);\n\n let t0 = (-b - sqrtD) / (2.0 * a);\n if (t0 > 0.0) {\n return t0;\n }\n\n let t1 = (-b + sqrtD) / (2.0 * a);\n if (t1 > 0.0) {\n return t1;\n }\n\n return -1.0;\n}\n\nconst CLOUD_RAY_STEPS: i32 = 160;\nconst LIGHT_RAY_STEPS: i32 = 6;\n\nconst cirrusSpeedFactor: f32 = 3.5;\nconst altoSpeedFactor: f32 = 2.0;\nconst detailStrength: f32 = 0.1;\nconst CLOUD_EPS: f32 = 1e-5;\n\nstruct CloudsCtx {\n maxDistance: f32,\n sigmaS: f32,\n sigmaA: f32,\n cloudLayerThickness: f32,\n cloudLayerBottom: f32,\n highCloudsHeight: f32,\n highCloudsScale: f32,\n weatherMapScale: f32,\n baseNoiseScale: f32,\n detailNoiseScale: f32,\n cirrusDensity: f32,\n altoDensity: f32,\n windSpeed: f32,\n weatherMapBlend: f32,\n time: f32,\n /** Floor on the march step length, km. 0 = the reference's fixed\n * CLOUD_RAY_STEPS division of the span (see RaymarchVolumetricCloud). */\n minStep: f32,\n sigmaT: f32,\n fogFactor: f32,\n bottomRadius: f32,\n sunDir: vec3f,\n earthCenter: vec3f,\n}\n\nfn HenyeyGreenstein(g: f32, costh: f32) -> f32 {\n return (1.0 - g * g) / (4.0 * PI * pow(1.0 + g * g - 2.0 * g * costh, 1.5));\n}\n\nfn HeightGradient(h: f32, cloudType: f32) -> f32 {\n let stratus = smoothstepGl(0.0, 0.07, h) * smoothstepGl(0.2, 0.07, h);\n let cumulus = smoothstepGl(0.0, 0.2, h) * smoothstepGl(0.65, 0.35, h);\n let cumulonimbus = smoothstepGl(0.0, 0.1, h) * smoothstepGl(0.95, 0.4, h);\n\n let a = 1.0 - cloudType;\n let wS = a * a;\n let wCu = 2.0 * cloudType * a;\n let wCb = cloudType * cloudType;\n\n return wS * stratus + wCu * cumulus + wCb * cumulonimbus;\n}\n\nfn SampleDensity(\n ctx: CloudsCtx,\n baseNoise: texture_3d<f32>, noiseSamp: sampler,\n detailNoise: texture_3d<f32>,\n currentWeatherMap: texture_2d<f32>, weatherSamp: sampler,\n nextWeatherMap: texture_2d<f32>,\n pos: vec3f) -> f32 {\n let heightFraction = (length(pos - ctx.earthCenter) - ctx.bottomRadius - ctx.cloudLayerBottom) /\n ctx.cloudLayerThickness;\n if (heightFraction < 0.0 || heightFraction > 1.0) {\n return 0.0;\n }\n\n let n = normalize(pos - ctx.earthCenter);\n // triplanar fixes 2d texture stretching on sphere\n let weatherPos = pos + ctx.time * ctx.windSpeed;\n let weatherScale = 1.0 / ctx.weatherMapScale;\n // The blend sits pinned at 1 except during the 2 s preset transition, and\n // mix(a, b, 1) is b — so outside a transition the \"current\" map's taps are\n // dead weight on every density sample. The blend is a uniform, so this\n // branch is coherent across the whole pass; a driver cannot fold it away\n // on its own. (At the endpoints the result differs from the mix by at most\n // one ulp, and only if the implementation lowers mix to an fma.)\n var weather: vec3f;\n if (ctx.weatherMapBlend >= 1.0) {\n weather = triplanarSampleAdaptive(nextWeatherMap, weatherSamp,\n weatherPos, n, weatherScale).rgb;\n } else if (ctx.weatherMapBlend <= 0.0) {\n weather = triplanarSampleAdaptive(currentWeatherMap, weatherSamp,\n weatherPos, n, weatherScale).rgb;\n } else {\n let weather0 = triplanarSampleAdaptive(currentWeatherMap, weatherSamp,\n weatherPos, n, weatherScale).rgb;\n let weather1 = triplanarSampleAdaptive(nextWeatherMap, weatherSamp,\n weatherPos, n, weatherScale).rgb;\n weather = mix(weather0, weather1, ctx.weatherMapBlend);\n }\n\n let coverage = weather.r;\n let precipitation = weather.g;\n let cloudType = weather.b;\n let heightGradient = HeightGradient(heightFraction, cloudType);\n\n // Zero coverage: the reference's remap below divides by zero and the\n // resulting NaN dies in GLSL's NaN-hostile clamp/compares (density 0).\n // WGSL's min/max SWALLOW NaN — saturate(NaN) becomes 1.0, a full-density\n // phantom cloud — so the \"no coverage, no cloud\" outcome is made\n // explicit here instead of riding on NaN semantics.\n // (Negated form so NaN coverage — the upstream partlyCloudy/seed-0\n // weather-map quirk — also lands here instead of resurrecting.)\n if (!(coverage > 0.0)) {\n return 0.0;\n }\n\n // === base form ===\n let base_uv = pos / ctx.baseNoiseScale + ctx.time * ctx.windSpeed / ctx.baseNoiseScale;\n let baseN = textureSampleLevel(baseNoise, noiseSamp, base_uv, 0.0);\n let lowFBM = baseN.g * 0.625 + baseN.b * 0.25 + baseN.a * 0.125;\n var baseCloud = remap(baseN.r, -(1.0 - lowFBM), 1.0, 0.0, 1.0);\n\n // === compose ===\n baseCloud = remap(baseCloud, 1.0 - coverage, 1.0, 0.0, 1.0);\n baseCloud *= coverage;\n baseCloud *= heightGradient;\n\n if (baseCloud < 0.0) {\n return 0.0;\n }\n\n // === details ===\n let detail_uv = pos / ctx.detailNoiseScale + ctx.time * ctx.windSpeed / ctx.detailNoiseScale;\n let detailN = textureSampleLevel(detailNoise, noiseSamp, detail_uv, 0.0).rgb;\n let detailFBM = dot(detailN, vec3f(0.625, 0.25, 0.125));\n let detailCloud = remap(baseCloud, detailFBM * detailStrength, 1.0, 0.0, 1.0);\n\n // Detail erosion can push detailCloud negative; pow(<0, e) is NaN and\n // WGSL's NaN-swallowing saturate below would resurrect it to FULL\n // density (the GLSL NaN dies in the reference's clamp/compares —\n // effective density 0). Negated compare so NaN input lands here too.\n if (!(detailCloud > 0.0)) {\n return 0.0;\n }\n\n let density = pow(detailCloud, mix(1.0, 0.5, precipitation));\n\n return saturateF(density);\n}\n\nconst SCATTERING_OCTAVES: i32 = 4;\n\n/**\n * The per-octave phase terms of MultipleOctaveScattering.\n *\n * They depend only on mu (the view/sun cosine) and a fixed geometric\n * sequence — nothing that varies along a ray. The reference nonetheless\n * recomputes all eight Henyey-Greenstein lobes, each with a pow, inside the\n * light march: once per LIT step, up to CLOUD_RAY_STEPS times per pixel.\n * Hoisted to once per pixel here; same values, same order, so the sum below\n * is bit-identical.\n */\nfn OctaveScatteringPhases(mu: f32) -> vec4f {\n let phaseAttenuation = 0.2;\n\n var c: f32 = 1.0;\n var phases = vec4f(0.0);\n\n for (var i: i32 = 0; i < SCATTERING_OCTAVES; i++) {\n phases[i] = mix(\n HenyeyGreenstein(-0.2 * c, mu), HenyeyGreenstein(0.8 * c, mu), 0.3);\n c *= phaseAttenuation;\n }\n\n return phases;\n}\n\nfn MultipleOctaveScattering(\n ctx: CloudsCtx, density: f32, phases: vec4f) -> f32 {\n let attenuation = 0.5;\n let contribution = 0.6;\n\n var a: f32 = 1.0;\n var b: f32 = 1.0;\n\n var luminance: f32 = 0.0;\n\n for (var i: i32 = 0; i < SCATTERING_OCTAVES; i++) {\n luminance += b * phases[i] * exp(-ctx.sigmaT * density * a);\n\n a *= attenuation;\n b *= contribution;\n }\n\n return luminance;\n}\n\nfn IntersectCloudLayer(\n ctx: CloudsCtx, ro: vec3f, rd: vec3f,\n tEnter: ptr<function, f32>, tExit: ptr<function, f32>) -> bool {\n let innerRadius = ctx.bottomRadius + ctx.cloudLayerBottom;\n let outerRadius = ctx.bottomRadius + ctx.cloudLayerBottom + ctx.cloudLayerThickness;\n\n let tInnerNear = raySphereIntersect(ro, rd, ctx.earthCenter, innerRadius);\n let tInnerFar = raySphereIntersectFar(ro, rd, ctx.earthCenter, innerRadius);\n let tOuterNear = raySphereIntersect(ro, rd, ctx.earthCenter, outerRadius);\n let tOuterFar = raySphereIntersectFar(ro, rd, ctx.earthCenter, outerRadius);\n\n let distToCenter = length(ro - ctx.earthCenter);\n\n if (distToCenter < innerRadius) { // cam below layer\n *tEnter = tInnerFar;\n *tExit = tOuterFar;\n } else if (distToCenter < outerRadius) { // cam inside layer\n *tEnter = 0.0;\n if (tInnerNear > 0.0) {\n *tExit = tInnerNear;\n } else {\n *tExit = tOuterFar;\n }\n } else { // cam above layer\n if (tOuterNear < 0.0) {\n return false;\n }\n *tEnter = tOuterNear;\n if (tInnerNear > 0.0) {\n *tExit = tInnerNear;\n } else {\n *tExit = tOuterFar;\n }\n }\n\n if (*tExit < 0.0 || *tEnter >= *tExit) {\n return false;\n }\n\n *tEnter = max(*tEnter, 0.0);\n return true;\n}\n\nfn ComputeLightVisibility(\n ctx: CloudsCtx,\n baseNoise: texture_3d<f32>, noiseSamp: sampler,\n detailNoise: texture_3d<f32>,\n currentWeatherMap: texture_2d<f32>, weatherSamp: sampler,\n nextWeatherMap: texture_2d<f32>,\n pos: vec3f, lightDir: vec3f, phases: vec4f) -> f32 {\n var tLightEnter: f32;\n var tLightExit: f32;\n if (!IntersectCloudLayer(ctx, pos, lightDir, &tLightEnter, &tLightExit)) {\n return 0.0;\n }\n\n tLightExit = min(tLightExit, ctx.cloudLayerThickness * 1.0);\n\n let dt = (tLightExit - tLightEnter) / f32(LIGHT_RAY_STEPS);\n let startPos = pos + lightDir * tLightEnter;\n var d: f32 = 0.0;\n\n for (var i: i32 = 0; i < LIGHT_RAY_STEPS; i++) {\n d += SampleDensity(ctx, baseNoise, noiseSamp, detailNoise,\n currentWeatherMap, weatherSamp, nextWeatherMap,\n startPos + lightDir * dt * f32(i));\n }\n d *= dt;\n\n return MultipleOctaveScattering(ctx, d, phases);\n}\n\nfn RaymarchVolumetricCloud(\n ctx: CloudsCtx, atm: Atm,\n transmittanceTex: texture_2d<f32>,\n scatteringTex: texture_3d<f32>, scatteringSamp: sampler,\n irradianceTex: texture_2d<f32>,\n baseNoise: texture_3d<f32>, noiseSamp: sampler,\n detailNoise: texture_3d<f32>,\n currentWeatherMap: texture_2d<f32>, weatherSamp: sampler,\n nextWeatherMap: texture_2d<f32>,\n ro: vec3f, rd: vec3f) -> vec4f {\n var tEnter: f32;\n var tExit: f32;\n\n if (!IntersectCloudLayer(ctx, ro, rd, &tEnter, &tExit)) {\n return vec4f(0.0);\n }\n\n tExit = min(tExit, ctx.maxDistance);\n let span = tExit - tEnter;\n\n // The reference always divides the span into CLOUD_RAY_STEPS, so the step\n // length swings with the ray's elevation: a near-vertical ray crosses the\n // 4 km shell in 25 m steps — 8x finer than the 195 m base-noise texel it is\n // sampling, so runs of those samples re-read one texel — while a grazing\n // 128 km ray gets 800 m and is the case the step budget is actually FOR. A\n // floor on the step length spends the full budget on the grazing rays and\n // stops over-marching the steep ones. ctx.minStep = 0 reproduces the\n // reference exactly (?dbgskystep=0, and CI pins it via minStepKmOverride);\n // see MIN_MARCH_STEP_KM for the measured cost/benefit.\n let refDt = span / f32(CLOUD_RAY_STEPS);\n let dt = max(refDt, ctx.minStep);\n let steps = select(\n min(CLOUD_RAY_STEPS, i32(ceil(span / dt))),\n CLOUD_RAY_STEPS,\n ctx.minStep <= 0.0);\n\n var t = max(tEnter, 0.0);\n var pos = ro + rd * t;\n\n var radiance = vec3f(0.0);\n var totalTransmittance = vec3f(1.0);\n\n let mu = dot(rd, ctx.sunDir);\n let horizDist = length(pos - ro);\n // Loop-invariant for the whole march (see OctaveScatteringPhases).\n let phases = OctaveScatteringPhases(mu);\n\n var sky_transmittance: vec3f;\n var sunLight: vec3f;\n var skyIrradiance: vec3f;\n\n for (var i: i32 = 0; i < steps; i++) {\n if (t > tExit) {\n break;\n }\n\n pos = ro + rd * t;\n\n if (horizDist * horizDist > ctx.maxDistance * ctx.maxDistance) {\n break;\n }\n\n let density = SampleDensity(ctx, baseNoise, noiseSamp, detailNoise,\n currentWeatherMap, weatherSamp, nextWeatherMap, pos);\n\n if (density > 0.0) {\n // get lightning — only the sun-ward transmittance and the sky\n // irradiance are read, so both lookups take the halved variants\n // (same values, see GetSkyTransmittance / GetSkyIrradianceLum).\n sky_transmittance = GetSkyTransmittance(\n atm, transmittanceTex, pos - ctx.earthCenter, ctx.sunDir);\n skyIrradiance = GetSkyIrradianceLum(atm, irradianceTex,\n pos - ctx.earthCenter, normalize(pos - ctx.earthCenter), ctx.sunDir);\n sunLight = sky_transmittance * atm.sun_spectral_radiance_to_luminance;\n // night\n skyIrradiance = max(vec3f(10.0), skyIrradiance);\n sunLight = max(vec3f(100.0), sunLight);\n\n let vis = ComputeLightVisibility(ctx, baseNoise, noiseSamp, detailNoise,\n currentWeatherMap, weatherSamp, nextWeatherMap, pos, ctx.sunDir,\n phases);\n\n let sampleSigmaS = ctx.sigmaS * density;\n let sampleSigmaT = max(ctx.sigmaT * density, CLOUD_EPS);\n\n let powder = exp(-density * sampleSigmaT);\n let powderEffect = mix(1.0, powder, smoothstepGl(0.5, -0.5, mu));\n var inscatter = (sunLight * vis + skyIrradiance) * sampleSigmaS;\n inscatter *= powderEffect;\n\n let transmittance = exp(-sampleSigmaT * dt);\n\n // Energy conserving\n radiance += totalTransmittance * (inscatter - inscatter * transmittance) / sampleSigmaT;\n totalTransmittance *= transmittance;\n\n if (length(totalTransmittance) <= 0.1) {\n totalTransmittance = vec3f(0.0);\n break;\n }\n }\n\n t += dt;\n }\n\n // Convert transmittance to alpha\n let alpha = 1.0 - dot(totalTransmittance, vec3f(0.2126, 0.7152, 0.0722));\n\n let fog = exp(-horizDist / ctx.fogFactor); // ! hack probably should use bruneton transmittance\n\n return vec4f(radiance, alpha) * fog;\n}\n\n// High-altitude clouds (above the volumetric) 2D\nfn HighAltitudeCloud(\n ctx: CloudsCtx, atm: Atm,\n transmittanceTex: texture_2d<f32>,\n scatteringTex: texture_3d<f32>, scatteringSamp: sampler,\n highCloudsMap: texture_2d<f32>, weatherSamp: sampler,\n ro: vec3f, rd: vec3f) -> vec4f {\n if (abs(rd.y) < CLOUD_EPS) {\n return vec4f(0.0);\n }\n\n var result = vec4f(0.0);\n\n let t = raySphereIntersect(ro, rd, ctx.earthCenter, ctx.bottomRadius + ctx.highCloudsHeight);\n if (t < 0.0) {\n return result;\n }\n\n let pos = ro + rd * t;\n let normal = normalize(pos - ctx.earthCenter);\n let mu = dot(-rd, ctx.sunDir);\n let phase = mix(HenyeyGreenstein(-0.1, mu), HenyeyGreenstein(0.2, mu), 0.2);\n\n // Sun-ward: transmittance only (the radiance return was discarded).\n let trans = GetSkyTransmittance(\n atm, transmittanceTex, pos - ctx.earthCenter, ctx.sunDir);\n let sunLight = trans * atm.sun_spectral_radiance_to_luminance;\n var zenithTrans: vec3f;\n let skyLight = GetSkyRadianceLum(atm, transmittanceTex, scatteringTex, scatteringSamp,\n pos - ctx.earthCenter, vec3f(0.0, 1.0, 0.0), 0.0, ctx.sunDir, &zenithTrans);\n\n let scatter = sunLight * phase + skyLight;\n\n // === Cirrus (R) ===\n let cirrusDensity = triplanarSample(highCloudsMap, weatherSamp,\n pos + ctx.time * ctx.windSpeed * cirrusSpeedFactor, normal,\n 1.0 / ctx.highCloudsScale).r;\n\n if (cirrusDensity > CLOUD_EPS) {\n let alpha = cirrusDensity * ctx.cirrusDensity;\n result = vec4f(result.rgb + (1.0 - result.a) * scatter * alpha,\n result.a + (1.0 - result.a) * alpha);\n }\n\n // === Alto (G) ===\n let altoDensity = triplanarSample(highCloudsMap, weatherSamp,\n pos + ctx.time * ctx.windSpeed * altoSpeedFactor, normal,\n 1.0 / ctx.highCloudsScale).g;\n\n if (altoDensity > CLOUD_EPS) {\n let alpha = altoDensity * ctx.altoDensity;\n result = vec4f(result.rgb + (1.0 - result.a) * scatter * alpha,\n result.a + (1.0 - result.a) * alpha);\n }\n\n let fog = exp(-length((ro + rd * t) - ro) / ctx.fogFactor);\n return result * fog;\n}\n"),l=(0,u.Kc)("fn cloudsPass(".concat(om,") -> vec4f {").concat(sv,"}"),[o]),c=D(B({},r),{irradianceTex:(0,u.oc)(a.irradiance),baseNoiseTex:(0,u.pc)(this._baseNoise),noiseSamp:(0,u.Xb)(this._baseNoise),detailNoiseTex:(0,u.pc)(this._detailNoise),weatherCurTex:(0,u.oc)(this._weatherCur),weatherSamp:(0,u.Xb)(this._weatherCur),weatherNextTex:(0,u.oc)(this._weatherNext),highCloudsTex:(0,u.oc)(this._highClouds),cloudsParamsA:(0,u.vc)(new b.Jc(s6,s8,s7,s9)),cloudsParamsB:(0,u.vc)(new b.Jc(oe,ot,oa,or)),cloudsParamsC:this._uCloudsParamsC,cloudsParamsD:this._uCloudsParamsD}),d=new u.c;d.name="SplineSkyCloudsPass",d.lights=!1,d.fragmentNode=l(c),this._cloudsQuad=new u.v(d),this._cloudsArgs=c,this._cloudsLib=o}}},{key:"_ensureEnvPass",value:function(){if(!this._envQuad){this._ensurePasses();var a=(0,u.Kc)("fn skyEnvPass(".concat(om,",\n exposure: f32, gamma: f32, cloudsOn: f32) -> vec4f {").concat(sp,"}"),[(0,u.Jc)(sg),this._cloudsLib]),r=new u.c;r.name="SplineSkyEnvironmentPass",r.lights=!1,r.fragmentNode=a(D(B({},this._cloudsArgs),{exposure:this._uExposure,gamma:this._uGamma,cloudsOn:this._uEnvCloudsOn})),this._envQuad=new u.v(r)}}},{key:"_ensureBackgroundMesh",value:function(a,r){if(this.backgroundMesh)return this.backgroundMesh;var n=new b.dd;n.setAttribute("position",new b.Zc(new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),3));var i=new u.c;i.name="SplineSkyBackground",i.lights=!1,i.depthWrite=!1,i.depthTest=!1,i.colorNode=this._buildComposeNode(a,r),i.vertexNode=(0,u.Kc)("fn skyBackgroundVertex(position: vec3f) -> vec4f {\n return vec4f(position.xy, 0.5, 1.0);\n}")({position:u.Hb});var s=new b.ld(n,i);return s.name="SplineSkyBackground",s.userData.splineSkyBackground=!0,s.frustumCulled=!1,s.renderOrder=-1e9,s.matrixAutoUpdate=!1,s.raycast=function(){},this.backgroundMesh=s,s}},{key:"_syncState",value:function(a){var r=a.skyState,n=a!==this._lastPage;if(n||a.skyStateVersion!==this._lastVersion){this._lastPage=a,this._lastVersion=a.skyStateVersion;var i=r.weather;if(i!==this._appliedWeather||r.seed!==this._appliedSeed||n){var s=function(a,r){var n="".concat(a,"|").concat(sE(r)),i=sX.get(n);if(void 0!==i)return sX.delete(n),sX.set(n,i),i;var s=function(a){for(var r=new Uint16Array(262144),n=0;n<65536;n++)r[4*n+0]=sJ(a[3*n+0]),r[4*n+1]=sJ(a[3*n+1]),r[4*n+2]=sJ(a[3*n+2]),r[4*n+3]=15360;return r}(function(a,r){switch(r=sE(r),a){case"clear":return new Float32Array(196608);case"mostlyClear":return function(a){for(var r=new Float32Array(196608),n=sH(a),i=0;i<256;i++)for(var s=0;s<256;s++){var o=sE(i/256),l=sE(s/256),u=3*(256*s+i),c=sE(sE(.5*sO(3,o,l,24,1,n))+.5);r[u+0]=sE(sq(sE(.45),sE(.8),c)*sE(.7)),r[u+1]=0,r[u+2]=sE(.3)}return r}(r);case"partlyCloudy":return function(a){for(var r=new Float32Array(196608),n=sE(Math.max(1,sH(a))),i=0;i<256;i++)for(var s=0;s<256;s++){var o=sE(i/256),l=sE(s/256),u=3*(256*s+i),c=sE(1-sG(sE(24*o),sE(24*l),24,a)),d=sE(sE(.5*sO(3,o,l,16,n,0))+.5),h=sE(d*sq(sE(.3),1,c)),m=sE(sW(0,sE(.35),sq(sE(.1),sE(.4),h))*c);r[u+0]=h,r[u+1]=0,r[u+2]=h<.1?0:m}return r}(r);case"mostlyCloudy":return function(a){for(var r=new Float32Array(196608),n=sE(Math.max(1,sH(a))),i=0;i<256;i++)for(var s=0;s<256;s++){var o=sE(i/256),l=sE(s/256),u=3*(256*s+i),c=sE(1-sG(sE(32*o),sE(32*l),32,a)),d=sE(sE(.5*sO(3,o,l,16,n,0))+.5),h=sE(d*sq(0,sE(.9),c)),m=sE(sW(0,sE(.6),sq(sE(.1),sE(.4),h))*c);r[u+0]=h,r[u+1]=0,r[u+2]=h<.1?0:m}return r}(r);case"overcast":return function(a){for(var r=new Float32Array(196608),n=sH(a),i=0;i<256;i++)for(var s=0;s<256;s++){var o=sE(i/256),l=sE(s/256),u=3*(256*s+i),c=sE(sE(.5*sO(3,o,l,16,1,n))+.5);r[u+0]=sq(sE(.2),1,c),r[u+1]=sE(.3),r[u+2]=sE(.8)}return r}(r);case"storm":return function(a){for(var r=new Float32Array(196608),n=sH(a),i=0;i<256;i++)for(var s=0;s<256;s++){var o=sE(i/256),l=sE(s/256),u=3*(256*s+i),c=sE(sE(.5*sO(3,o,l,16,1,n))+.5);r[u+0]=sq(sE(.1),1,c),r[u+1]=sE(sE(.5*sO(2,o,l,8,1,n))+.5),r[u+2]=1}return r}(r)}}(a,r));return sX.size>=8&&sX.delete(sX.keys().next().value),sX.set(n,s),s}(i,r.seed);if(null===this._appliedWeather||n)this._weatherCur.image.data.set(s),this._weatherNext.image.data.set(s),this._weatherCur.needsUpdate=!0,this._weatherNext.needsUpdate=!0,this._blendFrom=1,this._blendStart=0,this._presetFrom=i,this._presetTo=i;else{var o=this._weatherCur.image.data,l=this._weatherNext.image.data;o.set(l),l.set(s),this._weatherCur.needsUpdate=!0,this._weatherNext.needsUpdate=!0,this._blendStart=performance.now(),this._blendFrom=0,this._presetFrom=this._presetTo,this._presetTo=i}this._appliedWeather=i,this._appliedSeed=r.seed}this._uExposure.value=5e-4*r.exposure,this._cloudsEnabled=r.clouds}}},{key:"_cornerRay",value:function(a,r,n,i){var s=s5.set(a,r,-1,1).applyMatrix4(n.projectionMatrixInverse);return this._eyeRayToWorld(s.x,s.y,n,i)}},{key:"_eyeRayToWorld",value:function(a,r,n,i){var s=s4.set(a,r,-1,0).applyMatrix4(n.matrixWorld);return i.set(s.x,s.y,s.z).normalize()}},{key:"_updateCornerRays",value:function(a,r){if(-1!==a.projectionMatrix.elements[11]){var n=Math.tan(("number"==typeof a.fov&&a.fov>0?a.fov:45)*Math.PI/360),i=n*r;return this._eyeRayToWorld(-i,-n,a,this._uRay00.value),this._eyeRayToWorld(i,-n,a,this._uRay10.value),this._eyeRayToWorld(-i,n,a,this._uRay01.value),void this._eyeRayToWorld(i,n,a,this._uRay11.value)}this._cornerRay(-1,-1,a,this._uRay00.value),this._cornerRay(1,-1,a,this._uRay10.value),this._cornerRay(-1,1,a,this._uRay01.value),this._cornerRay(1,1,a,this._uRay11.value)}},{key:"update",value:function(a,r){var n,i,s,o,l,u,c,d,h,m,f,v,p,g,y,_=this;if(this._auxiliary&&this.endFrame(),"hdri"===(null==(h=a.skyState)?void 0:h.mode))return void this._updateHdri(a,r,a.skyState);!0===(null==(m=this._hdri)?void 0:m.active)&&this._hdri.detach(),this._ensurePasses(),this._syncState(a);var x=a.skyState,T=performance.now(),w=null===this._lastFrameTime?0:(T-this._lastFrameTime)/1e3;this._lastFrameTime=T;var S=x.animateWind&&!0===this._renderer.skyAnimationAllowed&&null===this.fixedTimeSeconds;S&&(this._windOffsetKm+=x.windSpeed/1e3*300*Math.min(w,.25),this._windOffsetKm%=9600);var z=null!=(n=this.fixedTimeSeconds)?n:3600*x.timeOfDay,V=sD(z);this._uSunDir.value.set(V[0],V[1],V[2]);var C=1;this._blendStart>0&&(C=Math.min(1,this._blendFrom+(T-this._blendStart)/1e3/2))>=1&&(this._blendStart=0);var k=null!=(i=null!=(s=this.minStepKmOverride)?s:oo)?i:.05;null!==this.fixedTimeSeconds?this._uCloudsParamsD.value.set(x.windSpeed/1e3,C,this.fixedTimeSeconds,k):this._uCloudsParamsD.value.set(1,C,this._windOffsetKm,k);var M=this.highCloudDensityOverride,A=os[this._presetFrom],R=os[this._presetTo];this._uCloudsParamsC.value.set(on,oi,null!==M?M[0]:A[0]+(R[0]-A[0])*C,null!==M?M[1]:A[1]+(R[1]-A[1])*C),this._animating=this._cloudsEnabled&&(this._blendStart>0||S&&0!==x.windSpeed),this._lightingOn=!0===x.lighting,!0!==x.lighting||this._auxiliary?null!==this._lightingPage&&this._teardownLighting():(this._ensureLightingLuts(),this._updateLighting(a,C,x.exposure,null!=(o=x.lightingIntensity)?o:1));var P=this._renderer.getDrawingBufferSize(s3);this._updateCornerRays(r,P.y>0?P.x/P.y:1);var N=Math.max(1,Math.round(null!=(l=null==(f=this.fixedSkySize)?void 0:f.x)?l:P.x)),B=Math.max(1,Math.round(null!=(u=null==(v=this.fixedSkySize)?void 0:v.y)?u:P.y)),D=Math.max(1,Math.round(null!=(c=null==(p=this.fixedCloudsSize)?void 0:p.x)?c:P.x/4)),E=Math.max(1,Math.round(null!=(d=null==(g=this.fixedCloudsSize)?void 0:g.y)?d:P.y/4)),I=function(a,r,n,i){if(a&&a.width===r&&a.height===n)return a;void 0!==_._renderer.retireRenderTarget?_._renderer.retireRenderTarget(a):null==a||a.dispose();var s=new b.Kc(r,n,{type:b.Ba,depthBuffer:!1});return s.texture.name=i,s},F=this._skyTarget,L=this._cloudsTarget;this._skyTarget=I(this._skyTarget,N,B,"sky-pass"),this._cloudsTarget=I(this._cloudsTarget,D,E,"sky-clouds-pass"),L!==this._cloudsTarget&&(this._cloudsTargetCleared=!1);var U=this._renderer,O=U.getRenderTarget(),G=this._uCloudsParamsD.value,q=this._uCloudsParamsC.value,W=this._uRay00.value,H=this._uRay10.value,j=this._uRay01.value,K=this._uRay11.value,J="".concat(z,"|").concat(W.x,",").concat(W.y,",").concat(W.z,"|").concat(H.x,",").concat(H.y,",").concat(H.z,"|").concat(j.x,",").concat(j.y,",").concat(j.z,"|").concat(K.x,",").concat(K.y,",").concat(K.z),X=J===this._lastSkyPassKey&&F===this._skyTarget;this._lastSkyPassKey=J,X||(U.setRenderTarget(this._skyTarget),this._skyQuad.render(this._renderer));var Q=this._cloudsEnabled?"".concat(J,"|").concat(G.x,",").concat(G.y,",").concat(G.z,",").concat(G.w,"|").concat(q.z,",").concat(q.w,"|").concat(this._appliedWeather,"|").concat(this._appliedSeed,"|").concat(this._highCloudsReady):"off",Y=Q===this._lastCloudsPassKey&&L===this._cloudsTarget;if(this._lastCloudsPassKey=Q,U.setRenderTarget(this._cloudsTarget),this._cloudsEnabled)Y||this._cloudsQuad.render(this._renderer),this._cloudsTargetCleared=!1;else if(!this._cloudsTargetCleared){var Z=U.getClearColor(s2),$=U.getClearAlpha();U.setClearColor(0,0),U.clear(!0,!1,!1),U.setClearColor(Z,$),this._cloudsTargetCleared=!0}if(!1!==this._renderer.skyEnvironmentNeeded){if(this._ensureEnvPass(),null===this._envTarget){this._envTarget=new b.Kc(256,128,{type:b.Ba,depthBuffer:!1});var ee=this._envTarget.texture;ee.name="sky-environment",ee.generateMipmaps=!0,ee.minFilter=b.sa,ee.magFilter=b.qa,ee.wrapS=b.ka}this._uEnvCloudsOn.value=+!!this._cloudsEnabled;var et=S?.25*Math.round(G.z/.25):G.z,ea=this._blendStart>0?Math.floor(16*C)/16:C,er="".concat(z,"|").concat(this._uExposure.value,"|").concat(this._uGamma.value,"|").concat(this._cloudsEnabled,"|").concat(G.x,",").concat(ea,",").concat(et,",").concat(G.w,"|").concat(this._presetFrom,">").concat(this._presetTo,"|").concat(null!=M?M:"","|").concat(this._appliedWeather,"|").concat(this._appliedSeed,"|").concat(this._highCloudsReady);er!==this._lastEnvKey?(this._lastEnvKey=er,U.setRenderTarget(this._envTarget),this._envQuad.render(this._renderer),this._requestEnvPmrem(T)):this._pmremPending&&this._requestEnvPmrem(T)}U.setRenderTarget(O);var en=this._ensureBackgroundMesh(this._skyTarget.texture,this._cloudsTarget.texture);(F!==this._skyTarget||L!==this._cloudsTarget)&&this._rebindComposeTextures(),en.parent!==a&&(null==(y=en.parent)||y.remove(en),a.add(en)),this._auxiliary&&this._auxBorrowPage(a,en)}},{key:"_auxBorrowPage",value:function(a,r){this._auxMesh=null!==r&&r.parent===a?r:null;var n=!0,i=!1,s=void 0;try{for(var o,l=a.children[Symbol.iterator]();!(n=(o=l.next()).done);n=!0){var u=o.value;u!==r&&u.visible&&!0===u.userData.splineSkyBackground&&(u.visible=!1,this._auxHidden.push(u))}}catch(a){i=!0,s=a}finally{try{n||null==l.return||l.return()}finally{if(i)throw s}}}},{key:"endFrame",value:function(){if(this._auxiliary){null==(s=this._auxMesh)||null==(i=s.parent)||i.remove(this._auxMesh),this._auxMesh=null;var a=!0,r=!1,n=void 0;try{for(var i,s,o,l=this._auxHidden[Symbol.iterator]();!(a=(o=l.next()).done);a=!0)o.value.visible=!0}catch(a){r=!0,n=a}finally{try{a||null==l.return||l.return()}finally{if(r)throw n}}this._auxHidden.length=0}}},{key:"_updateHdri",value:function(a,r,n){null==(d=this.backgroundMesh)||null==(c=d.parent)||c.remove(this.backgroundMesh),this._animating=!1;var i,s,o,l,u,c,d,h,m,f,v,p,g,y,_=this._renderer.getDrawingBufferSize(s3);this._updateCornerRays(r,_.y>0?_.x/_.y:1),null===this._hdri&&(this._hdri=new s1(this._renderer,{ray00:this._uRay00,ray10:this._uRay10,ray01:this._uRay01,ray11:this._uRay11}));var x=a.skyHdriHolder,b=null!==x&&x.loaded?x.getTexture(1001):null;this._iblHdriTexture=b,this._iblRotationY=null!=(i=null==(h=n.hdri)?void 0:h.rotation)?i:0,this._lightingOn=!0===n.lighting&&null!==b;var T=r.fov,w=("number"==typeof T&&T>0?T:45)*Math.PI/180/Math.max(1,_.y/(null!=(s=null==(m=(f=this._renderer).getPixelRatio)?void 0:m.call(f))?s:1)),S=(null!=(o=null==(v=n.hdri)?void 0:v.blur)?o:0)*w;if(this._hdri.update(a,b,null==(p=n.hdri)?void 0:p.rotation,S,!1!==(null==(g=n.hdri)?void 0:g.showBackground)),this._auxiliary)return void this._auxBorrowPage(a,this._hdri.backgroundMesh);var z=!0===n.lighting&&null!==b?this._hdri.lightingInfo(b):null;null!==z?this._updateHdriLighting(a,z,null!=(l=null==(y=n.hdri)?void 0:y.rotation)?l:0,null!=(u=n.lightingIntensity)?u:1):null!==this._lightingPage&&this._teardownLighting()}},{key:"_updateHdriLighting",value:function(a,r,n,i){null!==this._lightingPage&&this._lightingPage!==a&&this._teardownLighting(),this._lightingPage=a;var s=function(a){var r=Math.max(a[0],a[1],a[2],1e-6);return[a[0]/r,a[1]/r,a[2]/r]},o=this._sunLight;null===o&&((o=new b.Be(0xffffff,0)).name="SplineSkySun",o.layers.enable(3),o.raycast=function(){},this._sunLight=o),o.parent!==a&&a.add(o),o.userData.splineDiffuseOnly=!0;var l=Math.cos(n),u=Math.sin(n),c=r.sunDir;o.position.set(l*c[0]-u*c[2],c[1],u*c[0]+l*c[2]).multiplyScalar(1e5);var d=s(r.sunColor);o.color.setRGB(d[0],d[1],d[2]);var h=Math.min(Math.max((r.sunPeak-1)/2,0),1);o.intensity=Math.PI*Math.min(r.sunLum,1)*h*i;var m=a.ambientLight;null!=m&&(null!==m.parent&&m.removeFromParent(),this._userAmbientSuppressed=!0);var f=this._skyHemi;null===f&&((f=new ed(0xffffff,8947848,0)).name="SplineSkyAmbient",f.layers.enable(3),f.raycast=function(){},this._skyHemi=f),f.parent!==a&&a.add(f);var v=s(r.skyColor);f.color.setRGB(v[0],v[1],v[2]);var p=s(r.groundColor),g=r.skyLum>1e-6?Math.min(r.groundLum/r.skyLum,1):.62;f.groundColor.setRGB(p[0]*g,p[1]*g,p[2]*g),f.intensity=.75*Math.PI*(r.skyLum/.5)*i}},{key:"_ensureLightingLuts",value:function(){var a=this;if(!this._lightingLutsRequested&&null!==this._luts){this._lightingLutsRequested=!0;var r=this._luts;Promise.all([si(this._renderer,r.transmittance,256,64,1,!1),si(this._renderer,r.irradiance,64,16,1,!1)]).then(function(r){var n=I(r,2);a._lightingLuts={transmittance:n[0],irradiance:n[1]};var i=a._atmosphereUniforms,s=i.bottomRadius+.1,o=sD(43200)[1],l=su(i,a._lightingLuts,s,o);a._noonSunRgb=[l[0],l[1],l[2]],a._noonSunLum=sl(l),a._noonSkyLum=sl(sc(i,a._lightingLuts,s,o))},function(){a._lightingLutsRequested=!1})}}},{key:"_updateLighting",value:function(a,r,n,i){var s=this,o=this._lightingLuts,l=this._noonSunRgb;if(null!==o&&null!==l&&!(this._noonSunLum<=0)&&!(this._noonSkyLum<=0)){null!==this._lightingPage&&this._lightingPage!==a&&this._teardownLighting(),this._lightingPage=a;var u=this._atmosphereUniforms,c=u.bottomRadius+.1,d=this._uSunDir.value,h=d.y,m=function(a){return a[s._presetFrom]+(a[s._presetTo]-a[s._presetFrom])*r},f=function(a,r){var n=[a[0]/Math.max(l[0],1e-12),a[1]/Math.max(l[1],1e-12),a[2]/Math.max(l[2],1e-12)],i=sl(n),s=[i+(n[0]-i)*r,i+(n[1]-i)*r,i+(n[2]-i)*r],o=Math.max(s[0],s[1],s[2],1e-12);return[s[0]/o,s[1]/o,s[2]/o]},v=m(ou),p=su(u,o,c,h),g=sl(p),y=this._sunLight;if(null===y&&((y=new b.Be(0xffffff,0)).name="SplineSkySun",y.layers.enable(3),y.raycast=function(){},this._sunLight=y),y.parent!==a&&a.add(y),y.userData.splineDiffuseOnly=!1,y.position.set(d.x,d.y,d.z).multiplyScalar(1e5),g>0){var _=f(p,v);y.color.setRGB(_[0],_[1],_[2])}y.intensity=Math.PI*(g/this._noonSunLum)*m(oc)*n*i;var x=a.ambientLight;null!=x&&(null!==x.parent&&x.removeFromParent(),this._userAmbientSuppressed=!0);var T=this._skyHemi;null===T&&((T=new ed(0xffffff,8947848,0)).name="SplineSkyAmbient",T.layers.enable(3),T.raycast=function(){},this._skyHemi=T),T.parent!==a&&a.add(T);var w=sc(u,o,c,h),S=sl(w),z=I(f(w,v),3),V=z[0],C=z[1],k=z[2];T.color.setRGB(V,C,k),T.groundColor.setRGB(.62*V,.62*C,.62*k),T.intensity=.75*Math.PI*(S/this._noonSkyLum)*m(od)*n*i}}},{key:"_teardownLighting",value:function(){var a=this._lightingPage;if(this._lightingPage=null,null==(n=this._sunLight)||null==(r=n.parent)||r.remove(this._sunLight),null==(s=this._skyHemi)||null==(i=s.parent)||i.remove(this._skyHemi),this._userAmbientSuppressed){this._userAmbientSuppressed=!1;var r,n,i,s,o,l,u=null==a?void 0:a.ambientLight,c=null==a||null==(l=a.data)||null==(o=l.ambient)?void 0:o.enabled;u&&!1!==c&&a.add(u)}}},{key:"_buildComposeNode",value:function(a,r){return(0,u.Kc)("fn skyCompose(\n uv: vec2f,\n skyTex: texture_2d<f32>, skySamp: sampler,\n cloudsTex: texture_2d<f32>,\n exposure: f32, gamma: f32) -> vec4f {\n let WHITE_POINT: f32 = 11.07;\n // three's screenUV is GL-style bottom-origin while the pass targets hold\n // top-row-first content — flip v to line the compose up with the view.\n let uvFlipped = vec2f(uv.x, 1.0 - uv.y);\n let sky = textureSampleLevel(skyTex, skySamp, uvFlipped, 0.0).rgb;\n let clouds = textureSampleLevel(cloudsTex, skySamp, uvFlipped, 0.0);\n\n var color = vec4f(sky * (1.0 - clouds.a) + clouds.rgb, 1.0);\n color = vec4f(Hable(color.rgb, exposure, WHITE_POINT), color.a);\n color = vec4f(pow(color.rgb, vec3f(1.0 / gamma)), color.a);\n\n return color;\n}",[(0,u.Jc)(sg)])({uv:u.Zb,skyTex:(0,u.oc)(a),skySamp:(0,u.Xb)(a),cloudsTex:(0,u.oc)(r),exposure:this._uExposure,gamma:this._uGamma})}},{key:"_rebindComposeTextures",value:function(){var a,r=null==(a=this.backgroundMesh)?void 0:a.material;r&&this._skyTarget&&this._cloudsTarget&&(r.colorNode=this._buildComposeNode(this._skyTarget.texture,this._cloudsTarget.texture),r.needsUpdate=!0)}},{key:"detach",value:function(){var a,r,n;null==(r=this.backgroundMesh)||null==(a=r.parent)||a.remove(this.backgroundMesh),null==(n=this._hdri)||n.detach(),this._teardownLighting(),this._lightingOn=!1}},{key:"dispose",value:function(){var a,r,n,i,s,o,l,u,c,d,h,m,f,v;this.detach(),null==(a=this._hdri)||a.dispose(),this._hdri=null,null==(r=this._sunLight)||r.dispose(),this._sunLight=null,null==(n=this._skyHemi)||n.dispose(),this._skyHemi=null,null==(i=this._luts)||i.dispose(),this._luts=null,null==(s=this._baseNoise)||s.dispose(),null==(o=this._detailNoise)||o.dispose(),this._weatherCur.dispose(),this._weatherNext.dispose(),this._highClouds.dispose(),null==(l=this._skyTarget)||l.dispose(),null==(u=this._cloudsTarget)||u.dispose(),null==(c=this._envTarget)||c.dispose(),this._envTarget=null,this._lastEnvKey=null,null==(h=this._envQuad)||null==(d=h.material)||d.dispose(),null==(f=this.backgroundMesh)||null==(m=f.material)||m.dispose(),null==(v=this.backgroundMesh)||v.geometry.dispose(),this.backgroundMesh=null,this._skyQuad=null,this._cloudsQuad=null,this._envQuad=null,this._cloudsArgs=null,this._cloudsLib=null,this._lastSkyPassKey=null,this._lastCloudsPassKey=null}}]),a}();t1=function(a){return new of(a)};var ov=(0,u.Ac)("vec4","vSplatColor"),op=(0,u.Ac)("vec2","vSplatPosition");function og(a,r,n){return a.element(r).element(n)}var oy=function(a){function r(a){V(this,r),(n=z(this,r)).uniformsNeedUpdate=!1,n._covariancesTex=(0,u.oc)(new b.Ic),n._centersColorsTex=(0,u.oc)(new b.Ic),n._meshMatrixWorldsTex=(0,u.oc)(new b.Ic),n._focal=(0,u.vc)(new b.Dc),n._viewport=(0,u.vc)(new b.Dc),n._basisViewport=(0,u.vc)(new b.Dc),n._covariancesTextureSize=(0,u.vc)(new b.Dc(1024,1024)),n._centersColorsTextureSize=(0,u.vc)(new b.Dc(1024,1024)),n._orthoZoom=(0,u.vc)(-1),n._velocityMRT=(0,u.pb)({velocity:(0,u.Dc)(0)}),n.name="WebGPUSplatMaterial",n.transparent=!0,n.depthTest=!0,n.depthWrite=!1,n.side=b.l,n.lights=!1;var n,i=function(a){return{get value(){return a.value},set value(t){t&&t.isTexture&&(a.value=t)}}},s=function(a){return{get value(){return a.value},set value(t){a.value=t}}},o=function(a){return{value:a}};return n.uniforms={covariancesTexture:i(n._covariancesTex),centersColorsTexture:i(n._centersColorsTex),meshMatrixWorldsTexture:i(n._meshMatrixWorldsTex),focal:s(n._focal),viewport:s(n._viewport),basisViewport:s(n._basisViewport),covariancesTextureSize:s(n._covariancesTextureSize),centersColorsTextureSize:s(n._centersColorsTextureSize),orthoZoom:s(n._orthoZoom),meshIndexIntervals:o(a),debugColor:o(new b.Tc)},n._buildGraph(a),n}return P(r,a),M(r,[{key:"_buildGraph",value:function(a){var r=this._covariancesTex,n=this._centersColorsTex,i=this._meshMatrixWorldsTex,s=this._focal,o=this._basisViewport,l=this._covariancesTextureSize,c=this._centersColorsTextureSize,d=this._orthoZoom,h=(0,u.I)(function(){var h=(0,u.Y)("splatIndex","uint"),m=function(a,r,n){var i=h.mul((0,u.uc)(a)).add((0,u.uc)(r)).toFloat().div(n.x);return(0,u.Bc)((0,u.Ca)(i),(0,u.Aa)(i).div(n.y))},f=n.sample(m(1,0,c)).toVar(),v=(0,u.Z)((0,u.zc)(f.y,f.z,f.w),"vec3").toVar(),p=f.x;ov.assign((0,u.Dc)(p.bitAnd((0,u.uc)(255)).toFloat(),p.shiftRight((0,u.uc)(8)).bitAnd((0,u.uc)(255)).toFloat(),p.shiftRight((0,u.uc)(16)).bitAnd((0,u.uc)(255)).toFloat(),p.shiftRight((0,u.uc)(24)).bitAnd((0,u.uc)(255)).toFloat()).mul(1/255));var g=(0,u.Y)("position","vec3").xy.mul(2).toVar();op.assign(g);for(var y=(0,u.za)(0),_=1;_<a.length-1;_++)y=y.add(h.greaterThanEqual((0,u.uc)(a[_])).select((0,u.za)(1),(0,u.za)(0)));var x=y.mul(4).toVar(),b=function(a){return i.sample((0,u.Bc)(x.add(a).div(1024),0))},T=(0,u.ab)(b(0),b(1),b(2),b(3)),w=u.ea.mul(T).toVar(),S=w.mul((0,u.Dc)(v,1)).toVar(),z=u.ca.mul(S).toVar(),V=r.sample(m(3,0,l)).xy.toVar(),C=r.sample(m(3,1,l)).xy.toVar(),k=r.sample(m(3,2,l)).xy.toVar(),M=V.x,A=V.y,R=C.x,P=C.y,N=k.x,B=k.y,D=(0,u.$a)(M,A,R,A,P,N,R,N,B),E=(0,u.za)(1).div(S.z.mul(S.z)).toVar(),I=(0,u.$a)(w.element(0).xyz,w.element(1).xyz,w.element(2).xyz).transpose(),F=(0,u.$a)(s.x.div(S.z),0,s.x.mul(S.x).negate().mul(E),0,s.y.div(S.z),s.y.mul(S.y).negate().mul(E),0,0,0),L=function(a){var r=a.transpose().mul(D).mul(a);return(0,u.Dc)(og(r,0,0).add(.3),og(r,0,1),og(r,1,1).add(.3),0).xyz},U=d.greaterThan(0),O=U.select(L(I),L(I.mul(F))).toVar(),G=z.xyz.div(z.w).toVar(),q=O.x,W=O.z,H=O.y,j=q.mul(W).sub(H.mul(H)),K=q.add(W),J=K.mul(.5),X=(0,u.hc)((0,u.eb)(K.mul(K).div(4).sub(j),0)).toVar(),Q=J.add(X).toVar(),Y=(0,u.eb)(J.sub(X),0).toVar(),Z=(0,u.xb)((0,u.Bc)(H,Q.sub(q))).toVar(),$=(0,u.Bc)(Z.y,Z.x.negate()).toVar(),ee=Z.mul((0,u.gb)((0,u.hc)(Q.mul(2)),1024)).toVar(),et=$.mul((0,u.gb)((0,u.hc)(Y.mul(2)),1024)).toVar(),ea=ee.mul(g.x).add(et.mul(g.y)).mul(o).toVar();return ea.assign(U.select(ea.mul(d),ea)),(0,u.Dc)(G.xy.add(ea),G.z,1)}),m=(0,u.I)(function(){var a=op.dot(op).negate().toVar();a.lessThan(-4).discard();var r=(0,u.wa)(a).mul(ov.w);return(0,u.Dc)(ov.xyz,r)});this.vertexNode=h(),this.colorNode=m(),this.needsUpdate=!0}},{key:"setup",value:function(a){var n,i,s=null==(n=(i=a.renderer).getMRT)?void 0:n.call(i);this.mrtNode=s?this._velocityMRT:null,A(R(r.prototype),"setup",this).call(this,a)}},{key:"nodeMaterialDispose",value:function(){this.dispose()}}]),r}(u.c);function o_(){var a=(0,u.vc)(1),r=(0,u.vc)(.6),n=(0,u.vc)(1),i=(0,u.vc)(1),s=(0,u.vc)(new b.Tc(0xfd5b5d)),o=(0,u.vc)(new b.Tc(2857471)),l=(0,u.vc)(new b.Tc(3728051)),c=(0,u.vc)(9),d=(0,u.vc)(new b.Dc),h=new u.c;h.name="EditorGridNodeMaterial",h.transparent=!0,h.lights=!1,h.fog=!1;var m=(0,u._b)(c.equal(10),l,o),f=(0,u._b)(c.equal(8),l,s);h.colorNode=(0,u._b)(u.Ib.x.equal(d.x),m,(0,u._b)(u.Ib.z.equal(d.y),f,(0,u.Cc)(.5)));var v=u.Kb.z.negate(),p=(0,u.ec)(n.mul(500),n.mul(4500),v).mul(i);return h.opacityNode=(0,u.hb)(a.mul(r),(0,u.za)(0),p),h.uniforms={angleFadeFactor:a,opacityFactor:r,gridScale:{get value(){return 0===i.value?1/0:n.value},set value(e){Number.isFinite(e)?(n.value=e,i.value=1):i.value=0}},red:s,blue:o,green:l,mode:c,offset:d},h}function ox(){return("u"<typeof navigator?"undefined":L(navigator))<"u"&&void 0!==navigator.gpu}(0,h.b)({createSplatMaterial:function(a){return new oy(a)}}),(0,g.P)({createRootMaterial:function(a,r){return new nj(a,r)},createSharedMaterial:function(a,r,n){return new nK(a,r,n)}}),(0,g.U)({tsl:u.y,NodeMaterial:u.c,MeshBasicNodeMaterial:u.i,MeshStandardNodeMaterial:u.o,MeshPhysicalNodeMaterial:u.p,MeshPhongNodeMaterial:u.l,MeshLambertNodeMaterial:u.k,MeshToonNodeMaterial:u.q,MeshMatcapNodeMaterial:u.r,MeshNormalNodeMaterial:u.g,SpriteNodeMaterial:u.s,PointsNodeMaterial:u.t,LineBasicNodeMaterial:u.d,LineDashedNodeMaterial:u.e,Color:b.Tc,Vector2:b.Dc,Vector3:b.Fc,Vector4:b.Jc,Matrix3:b.Gc,Matrix4:b.Oc,Texture:b.Ic,CanvasTexture:b.Bd,DataTexture:b.nd,VideoTexture:b.yd,FrontSide:b.j,BackSide:b.k,DoubleSide:b.l,NormalBlending:b.n,AdditiveBlending:b.o,MultiplyBlending:b.q,SubtractiveBlending:b.p,RepeatWrapping:b.ka,ClampToEdgeWrapping:b.la,MirroredRepeatWrapping:b.ma,NearestFilter:b.na,LinearFilter:b.qa,LinearMipmapLinearFilter:b.sa,SRGBColorSpace:b.Ib,LinearSRGBColorSpace:b.Jb}),(0,g.S)(function(){var a=new u.u;return a.depthWrite=!1,a.opacity=.5,a});var ob=["maxUniformBuffersPerShaderStage","maxSampledTexturesPerShaderStage","maxSamplersPerShaderStage","maxStorageBuffersPerShaderStage","maxStorageBufferBindingSize","maxBufferSize","maxVertexBuffers","maxVertexAttributes","maxUniformBufferBindingSize","maxColorAttachmentBytesPerSample"];function oT(){return S(function(){var a,r,n,i,s,o,l,u,c,d=arguments;return G(this,function(h){switch(h.label){case 0:a=d.length>0&&void 0!==d[0]?d[0]:{},n=!1;try{n="default"===new URLSearchParams(window.location.search).get("dbglimits")}catch(a){}if(!n)return[3,1];return o={},[3,5];case 1:if(null==(r=a.requiredLimits))return[3,2];return l=r,[3,4];case 2:var m;return[4,(m=a,S(function(){var a,r,n,i,s,o,l,u,c,d;return G(this,function(h){switch(h.label){case 0:if(m.forceWebGL||("u"<typeof navigator?"undefined":L(navigator))>"u"||void 0===navigator.gpu)return[3,4];h.label=1;case 1:return h.trys.push([1,3,,4]),[4,navigator.gpu.requestAdapter({powerPreference:m.powerPreference,featureLevel:"compatibility"})];case 2:if(!(a=h.sent()))return[2];r={},n=a.limits,i=!0,s=!1,o=void 0;try{for(l=ob[Symbol.iterator]();!(i=(u=l.next()).done);i=!0)d=n[c=u.value],"number"==typeof d&&Number.isFinite(d)&&(r[c]=d)}catch(a){s=!0,o=a}finally{try{i||null==l.return||l.return()}finally{if(s)throw o}}return[2,r];case 3:return h.sent(),[2];case 4:return[2]}})})())];case 3:l=h.sent(),h.label=4;case 4:o=l,h.label=5;case 5:return i=o,[4,(s=new aq(D(B({},a),{requiredLimits:i}))).init()];case 6:h.sent();try{u=new URLSearchParams(window.location.search),"off"===u.get("taa")&&(s.temporalAAEnabled=!1),"1"===u.get("nojit")&&((c=s.taaHistory).beginJitter=function(){},c.endJitter=function(){}),"1"===u.get("dbghdt")&&(s.hdTransmission=!0)}catch(a){}return[2,s]}})}).apply(this,arguments)}}}]);