@react-three/drei 9.78.1 → 9.78.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/core/AccumulativeShadows.cjs.js +1 -1
  2. package/core/AdaptiveDpr.cjs.js +1 -1
  3. package/core/AdaptiveEvents.cjs.js +1 -1
  4. package/core/ArcballControls.cjs.js +1 -1
  5. package/core/AsciiRenderer.cjs.js +1 -1
  6. package/core/BBAnchor.cjs.js +1 -1
  7. package/core/Backdrop.cjs.js +1 -1
  8. package/core/BakeShadows.cjs.js +1 -1
  9. package/core/Billboard.cjs.js +1 -1
  10. package/core/Bounds.cjs.js +1 -1
  11. package/core/CameraControls.cjs.js +1 -1
  12. package/core/CameraShake.cjs.js +1 -1
  13. package/core/CatmullRomLine.cjs.js +1 -1
  14. package/core/Caustics.cjs.js +1 -1
  15. package/core/Center.cjs.js +1 -1
  16. package/core/Clone.cjs.js +1 -1
  17. package/core/Cloud.cjs.js +1 -1
  18. package/core/ComputedAttribute.cjs.js +1 -1
  19. package/core/ContactShadows.cjs.js +1 -1
  20. package/core/CubeCamera.cjs.js +1 -1
  21. package/core/CubicBezierLine.cjs.js +1 -1
  22. package/core/CurveModifier.cjs.js +1 -1
  23. package/core/Decal.cjs.js +1 -1
  24. package/core/Detailed.cjs.js +1 -1
  25. package/core/DeviceOrientationControls.cjs.js +1 -1
  26. package/core/Edges.cjs.js +1 -1
  27. package/core/Effects.cjs.js +1 -1
  28. package/core/Environment.cjs.js +1 -1
  29. package/core/Example.cjs.js +1 -1
  30. package/core/FaceControls.cjs.js +1 -1
  31. package/core/FaceLandmarker.cjs.js +1 -1
  32. package/core/Facemesh.cjs.js +1 -1
  33. package/core/FirstPersonControls.cjs.js +1 -1
  34. package/core/Float.cjs.js +1 -1
  35. package/core/FlyControls.cjs.js +1 -1
  36. package/core/GizmoHelper.cjs.js +1 -1
  37. package/core/GizmoViewcube.cjs.js +1 -1
  38. package/core/GizmoViewport.cjs.js +1 -1
  39. package/core/Gltf.cjs.js +1 -1
  40. package/core/GradientTexture.cjs.js +1 -1
  41. package/core/Grid.cjs.js +1 -1
  42. package/core/Hud.cjs.js +1 -1
  43. package/core/Image.cjs.js +1 -1
  44. package/core/Instances.cjs.js +1 -1
  45. package/core/Lightformer.cjs.js +1 -1
  46. package/core/Line.cjs.js +1 -1
  47. package/core/MapControls.cjs.js +1 -1
  48. package/core/MarchingCubes.cjs.js +1 -1
  49. package/core/Mask.cjs.js +1 -1
  50. package/core/MeshDiscardMaterial.cjs.js +1 -1
  51. package/core/MeshDistortMaterial.cjs.js +1 -1
  52. package/core/MeshPortalMaterial.cjs.js +1 -1
  53. package/core/MeshReflectorMaterial.cjs.js +1 -1
  54. package/core/MeshRefractionMaterial.cjs.js +1 -1
  55. package/core/MeshTransmissionMaterial.cjs.js +1 -1
  56. package/core/MeshWobbleMaterial.cjs.js +1 -1
  57. package/core/OrbitControls.cjs.js +1 -1
  58. package/core/OrthographicCamera.cjs.js +1 -1
  59. package/core/PerformanceMonitor.cjs.js +1 -1
  60. package/core/PerspectiveCamera.cjs.js +1 -1
  61. package/core/PointMaterial.cjs.js +1 -1
  62. package/core/PointerLockControls.cjs.js +1 -1
  63. package/core/Points.cjs.js +1 -1
  64. package/core/PositionalAudio.cjs.js +1 -1
  65. package/core/Preload.cjs.js +1 -1
  66. package/core/QuadraticBezierLine.cjs.js +1 -1
  67. package/core/Reflector.cjs.js +1 -1
  68. package/core/RenderTexture.cjs.js +1 -1
  69. package/core/Resize.cjs.js +1 -1
  70. package/core/RoundedBox.cjs.js +1 -1
  71. package/core/Sampler.cjs.js +1 -1
  72. package/core/ScreenQuad.cjs.js +1 -1
  73. package/core/ScreenSpace.cjs.js +1 -1
  74. package/core/Segments.cjs.js +1 -1
  75. package/core/Shadow.cjs.js +1 -1
  76. package/core/Sky.cjs.js +1 -1
  77. package/core/Sparkles.cjs.js +1 -1
  78. package/core/SpotLight.cjs.js +1 -1
  79. package/core/SpriteAnimator.cjs.js +1 -1
  80. package/core/Stage.cjs.js +1 -1
  81. package/core/Stars.cjs.js +1 -1
  82. package/core/Stats.cjs.js +1 -1
  83. package/core/Svg.cjs.js +1 -1
  84. package/core/Text.cjs.js +1 -1
  85. package/core/Text3D.cjs.js +1 -1
  86. package/core/TrackballControls.cjs.js +1 -1
  87. package/core/Trail.cjs.js +1 -1
  88. package/core/TransformControls.cjs.js +1 -1
  89. package/core/Wireframe.cjs.js +1 -1
  90. package/core/index.cjs.js +1 -1
  91. package/core/index.js +2 -2
  92. package/core/meshBounds.cjs.js +1 -1
  93. package/core/shaderMaterial.cjs.js +1 -1
  94. package/core/shapes.cjs.js +1 -1
  95. package/core/softShadows.cjs.js +1 -1
  96. package/core/useAnimations.cjs.js +1 -1
  97. package/core/useAspect.cjs.js +1 -1
  98. package/core/useBVH.cjs.js +1 -1
  99. package/core/useBoxProjectedEnv.cjs.js +1 -1
  100. package/core/useCamera.cjs.js +1 -1
  101. package/core/useContextBridge.cjs.js +1 -1
  102. package/core/useCubeCamera.cjs.js +1 -1
  103. package/core/useCubeTexture.cjs.js +1 -1
  104. package/core/useDepthBuffer.cjs.js +1 -1
  105. package/core/useDetectGPU.cjs.js +1 -1
  106. package/core/useEnvironment.cjs.js +1 -1
  107. package/core/useFBO.cjs.js +1 -1
  108. package/core/useFBX.cjs.js +1 -1
  109. package/core/useFont.cjs.js +1 -1
  110. package/core/useGLTF.cjs.js +1 -1
  111. package/core/useHelper.cjs.js +1 -1
  112. package/core/useIntersect.cjs.js +1 -1
  113. package/core/useKTX2.cjs.js +1 -1
  114. package/core/useMatcapTexture.cjs.js +1 -1
  115. package/core/useNormalTexture.cjs.js +1 -1
  116. package/core/useProgress.cjs.js +1 -1
  117. package/core/useProgress.js +1 -4
  118. package/core/useTexture.cjs.js +1 -1
  119. package/core/useTrailTexture.cjs.js +1 -1
  120. package/core/useVideoTexture.cjs.js +1 -1
  121. package/helpers/environment-assets.cjs.js +1 -1
  122. package/helpers/useEffectfulState.cjs.js +1 -1
  123. package/index.cjs.js +1 -1
  124. package/materials/BlurPass.cjs.js +1 -1
  125. package/materials/ConvolutionMaterial.cjs.js +1 -1
  126. package/materials/DiscardMaterial.cjs.js +1 -1
  127. package/materials/MeshReflectorMaterial.cjs.js +1 -1
  128. package/materials/MeshRefractionMaterial.cjs.js +1 -1
  129. package/materials/MeshRefractionMaterial.js +0 -1
  130. package/materials/SpotLightMaterial.cjs.js +1 -1
  131. package/materials/WireframeMaterial.cjs.js +1 -1
  132. package/native/index.cjs.js +1 -1
  133. package/package.json +1 -1
  134. package/react-three-drei-0.0.0-semantic-release.tgz +0 -0
  135. package/web/CycleRaycast.cjs.js +1 -1
  136. package/web/Html.cjs.js +1 -1
  137. package/web/KeyboardControls.cjs.js +1 -1
  138. package/web/KeyboardControls.js +1 -5
  139. package/web/Loader.cjs.js +1 -1
  140. package/web/PresentationControls.cjs.js +1 -1
  141. package/web/ScrollControls.cjs.js +1 -1
  142. package/web/Select.cjs.js +1 -1
  143. package/web/Select.js +1 -4
  144. package/web/View.cjs.js +1 -1
  145. package/web/index.cjs.js +1 -1
  146. package/web/index.js +3 -3
  147. package/web/pivotControls/AxisArrow.cjs.js +1 -1
  148. package/web/pivotControls/AxisRotator.cjs.js +1 -1
  149. package/web/pivotControls/PlaneSlider.cjs.js +1 -1
  150. package/web/pivotControls/context.cjs.js +1 -1
  151. package/web/pivotControls/index.cjs.js +1 -1
  152. package/web/useCursor.cjs.js +1 -1
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),n=require("@react-three/fiber"),a=require("react-merge-refs"),c=require("react-composer");function i(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=i(t),o=i(r);const u=new s.Matrix4,l=new s.Matrix4,m=[],f=new s.Mesh;class d extends s.Group{constructor(){super(),this.color=new s.Color("white"),this.instance={current:void 0},this.instanceKey={current:void 0}}get geometry(){var e;return null==(e=this.instance.current)?void 0:e.geometry}raycast(e,t){const r=this.instance.current;if(!r)return;if(!r.geometry||!r.material)return;f.geometry=r.geometry;const n=r.matrixWorld,a=r.userData.instances.indexOf(this.instanceKey);if(!(-1===a||a>r.count)){r.getMatrixAt(a,u),l.multiplyMatrices(n,u),f.matrixWorld=l,r.material instanceof s.Material?f.material.side=r.material.side:f.material.side=r.material[0].side,f.raycast(e,m);for(let e=0,r=m.length;e<r;e++){const r=m[e];r.instanceId=a,r.object=this,t.push(r)}m.length=0}}}const y=o.createContext(null),h=new s.Matrix4,g=new s.Matrix4,p=new s.Matrix4,x=new s.Vector3,M=new s.Quaternion,w=new s.Vector3,b=o.forwardRef((({context:t,children:r,...c},i)=>{o.useMemo((()=>n.extend({PositionMesh:d})),[]);const s=o.useRef(),{subscribe:u,getParent:l}=o.useContext(t||y);return o.useLayoutEffect((()=>u(s)),[]),o.createElement("positionMesh",e({instance:l(),instanceKey:s,ref:a([i,s])},c),r)})),v=o.forwardRef((({children:t,range:r,limit:c=1e3,frames:i=1/0,...u},l)=>{const[{context:m,instance:f}]=o.useState((()=>{const t=o.createContext(null);return{context:t,instance:o.forwardRef(((r,n)=>o.createElement(b,e({context:t},r,{ref:n}))))}})),d=o.useRef(null),[v,E]=o.useState([]),[[A,O]]=o.useState((()=>{const e=new Float32Array(16*c);for(let t=0;t<c;t++)p.identity().toArray(e,16*t);return[e,new Float32Array([...new Array(3*c)].map((()=>1)))]}));o.useEffect((()=>{d.current.instanceMatrix.needsUpdate=!0}));let j=0,R=0;n.useFrame((()=>{if(i===1/0||j<i){d.current.updateMatrix(),d.current.updateMatrixWorld(),h.copy(d.current.matrixWorld).invert(),R=Math.min(c,void 0!==r?r:c,v.length),d.current.count=R,d.current.instanceMatrix.updateRange.count=16*R,d.current.instanceColor.updateRange.count=3*R;for(let e=0;e<v.length;e++){const t=v[e].current;t.matrixWorld.decompose(x,M,w),g.compose(x,M,w).premultiply(h),g.toArray(A,16*e),d.current.instanceMatrix.needsUpdate=!0,t.color.toArray(O,3*e),d.current.instanceColor.needsUpdate=!0}j++}}));const C=o.useMemo((()=>({getParent:()=>d,subscribe:e=>(E((t=>[...t,e])),()=>E((t=>t.filter((t=>t.current!==e.current)))))})),[]);return o.createElement("instancedMesh",e({userData:{instances:v},matrixAutoUpdate:!1,ref:a([l,d]),args:[null,null,0],raycast:()=>null},u),o.createElement("instancedBufferAttribute",{attach:"instanceMatrix",count:A.length/16,array:A,itemSize:16,usage:s.DynamicDrawUsage}),o.createElement("instancedBufferAttribute",{attach:"instanceColor",count:O.length/3,array:O,itemSize:3,usage:s.DynamicDrawUsage}),"function"==typeof t?o.createElement(m.Provider,{value:C},t(f)):o.createElement(y.Provider,{value:C},t))})),E=o.forwardRef((function({meshes:t,children:r,...n},a){const i=Array.isArray(t);if(!i)for(const e of Object.keys(t))t[e].isMesh||delete t[e];return o.createElement("group",{ref:a},o.createElement(c,{components:(i?t:Object.values(t)).map((({geometry:t,material:r})=>o.createElement(v,e({key:t.uuid,geometry:t,material:r},n))))},(e=>i?r(...e):r(Object.keys(t).filter((e=>t[e].isMesh)).reduce(((t,r,n)=>({...t,[r]:e[n]})),{})))))}));exports.Instance=b,exports.Instances=v,exports.Merged=E;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),n=require("@react-three/fiber"),a=require("react-merge-refs"),c=require("react-composer");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var o=i(e),u=s(t),l=s(r),f=i(a),d=i(c);const m=new u.Matrix4,y=new u.Matrix4,p=[],h=new u.Mesh;class x extends u.Group{constructor(){super(),this.color=new u.Color("white"),this.instance={current:void 0},this.instanceKey={current:void 0}}get geometry(){var e;return null==(e=this.instance.current)?void 0:e.geometry}raycast(e,t){const r=this.instance.current;if(!r)return;if(!r.geometry||!r.material)return;h.geometry=r.geometry;const n=r.matrixWorld,a=r.userData.instances.indexOf(this.instanceKey);if(!(-1===a||a>r.count)){r.getMatrixAt(a,m),y.multiplyMatrices(n,m),h.matrixWorld=y,r.material instanceof u.Material?h.material.side=r.material.side:h.material.side=r.material[0].side,h.raycast(e,p);for(let e=0,r=p.length;e<r;e++){const r=p[e];r.instanceId=a,r.object=this,t.push(r)}p.length=0}}}const g=l.createContext(null),M=new u.Matrix4,b=new u.Matrix4,w=new u.Matrix4,v=new u.Vector3,E=new u.Quaternion,A=new u.Vector3,j=l.forwardRef((({context:e,children:t,...r},a)=>{l.useMemo((()=>n.extend({PositionMesh:x})),[]);const c=l.useRef(),{subscribe:i,getParent:s}=l.useContext(e||g);return l.useLayoutEffect((()=>i(c)),[]),l.createElement("positionMesh",o.default({instance:s(),instanceKey:c,ref:f.default([a,c])},r),t)})),O=l.forwardRef((({children:e,range:t,limit:r=1e3,frames:a=1/0,...c},i)=>{const[{context:s,instance:d}]=l.useState((()=>{const e=l.createContext(null);return{context:e,instance:l.forwardRef(((t,r)=>l.createElement(j,o.default({context:e},t,{ref:r}))))}})),m=l.useRef(null),[y,p]=l.useState([]),[[h,x]]=l.useState((()=>{const e=new Float32Array(16*r);for(let t=0;t<r;t++)w.identity().toArray(e,16*t);return[e,new Float32Array([...new Array(3*r)].map((()=>1)))]}));l.useEffect((()=>{m.current.instanceMatrix.needsUpdate=!0}));let O=0,P=0;n.useFrame((()=>{if(a===1/0||O<a){m.current.updateMatrix(),m.current.updateMatrixWorld(),M.copy(m.current.matrixWorld).invert(),P=Math.min(r,void 0!==t?t:r,y.length),m.current.count=P,m.current.instanceMatrix.updateRange.count=16*P,m.current.instanceColor.updateRange.count=3*P;for(let e=0;e<y.length;e++){const t=y[e].current;t.matrixWorld.decompose(v,E,A),b.compose(v,E,A).premultiply(M),b.toArray(h,16*e),m.current.instanceMatrix.needsUpdate=!0,t.color.toArray(x,3*e),m.current.instanceColor.needsUpdate=!0}O++}}));const R=l.useMemo((()=>({getParent:()=>m,subscribe:e=>(p((t=>[...t,e])),()=>p((t=>t.filter((t=>t.current!==e.current)))))})),[]);return l.createElement("instancedMesh",o.default({userData:{instances:y},matrixAutoUpdate:!1,ref:f.default([i,m]),args:[null,null,0],raycast:()=>null},c),l.createElement("instancedBufferAttribute",{attach:"instanceMatrix",count:h.length/16,array:h,itemSize:16,usage:u.DynamicDrawUsage}),l.createElement("instancedBufferAttribute",{attach:"instanceColor",count:x.length/3,array:x,itemSize:3,usage:u.DynamicDrawUsage}),"function"==typeof e?l.createElement(s.Provider,{value:R},e(d)):l.createElement(g.Provider,{value:R},e))})),P=l.forwardRef((function({meshes:e,children:t,...r},n){const a=Array.isArray(e);if(!a)for(const t of Object.keys(e))e[t].isMesh||delete e[t];return l.createElement("group",{ref:n},l.createElement(d.default,{components:(a?e:Object.values(e)).map((({geometry:e,material:t})=>l.createElement(O,o.default({key:e.uuid,geometry:e,material:t},r))))},(r=>a?t(...r):t(Object.keys(e).filter((t=>e[t].isMesh)).reduce(((e,t,n)=>({...e,[t]:r[n]})),{})))))}));exports.Instance=j,exports.Instances=O,exports.Merged=P;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("@react-three/fiber"),t=require("react"),a=require("three"),c=require("react-merge-refs");function l(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var n=l(t),i=l(a);const o=n.forwardRef((({args:t,map:a,toneMapped:l=!1,color:o="white",form:u="rect",intensity:s=1,scale:m=1,target:f,children:p,...y},g)=>{const b=n.useRef(null);return n.useLayoutEffect((()=>{p||y.material||(r.applyProps(b.current.material,{color:o}),b.current.material.color.multiplyScalar(s))}),[o,s,p,y.material]),n.useLayoutEffect((()=>{f&&b.current.lookAt(Array.isArray(f)?new i.Vector3(...f):f)}),[f]),m=Array.isArray(m)&&2===m.length?[m[0],m[1],1]:m,n.createElement("mesh",e({ref:c([b,g]),scale:m},y),"circle"===u?n.createElement("ringGeometry",{args:[0,1,64]}):"ring"===u?n.createElement("ringGeometry",{args:[.5,1,64]}):"rect"===u?n.createElement("planeGeometry",null):n.createElement(u,{args:t}),p||(y.material?null:n.createElement("meshBasicMaterial",{toneMapped:l,map:a,side:i.DoubleSide})))}));exports.Lightformer=o;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("@react-three/fiber"),t=require("react"),a=require("three"),l=require("react-merge-refs");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var u=n(e),i=c(t),o=c(a),s=n(l);const f=i.forwardRef((({args:e,map:t,toneMapped:a=!1,color:l="white",form:n="rect",intensity:c=1,scale:f=1,target:m,children:p,...d},y)=>{const g=i.useRef(null);return i.useLayoutEffect((()=>{p||d.material||(r.applyProps(g.current.material,{color:l}),g.current.material.color.multiplyScalar(c))}),[l,c,p,d.material]),i.useLayoutEffect((()=>{m&&g.current.lookAt(Array.isArray(m)?new o.Vector3(...m):m)}),[m]),f=Array.isArray(f)&&2===f.length?[f[0],f[1],1]:f,i.createElement("mesh",u.default({ref:s.default([g,y]),scale:f},d),"circle"===n?i.createElement("ringGeometry",{args:[0,1,64]}):"ring"===n?i.createElement("ringGeometry",{args:[.5,1,64]}):"rect"===n?i.createElement("planeGeometry",null):i.createElement(n,{args:e}),p||(d.material?null:i.createElement("meshBasicMaterial",{toneMapped:a,map:t,side:o.DoubleSide})))}));exports.Lightformer=f;
package/core/Line.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),n=require("@react-three/fiber"),i=require("three-stdlib");function o(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=o(t);const a=s.forwardRef((function({points:t,color:o="black",vertexColors:a,linewidth:c,lineWidth:l,segments:u,dashed:f,...d},m){const h=n.useThree((e=>e.size)),b=s.useMemo((()=>u?new i.LineSegments2:new i.Line2),[u]),[p]=s.useState((()=>new i.LineMaterial)),y=s.useMemo((()=>{const e=u?new i.LineSegmentsGeometry:new i.LineGeometry,n=t.map((e=>{const t=Array.isArray(e);return e instanceof r.Vector3?[e.x,e.y,e.z]:e instanceof r.Vector2?[e.x,e.y,0]:t&&3===e.length?[e[0],e[1],e[2]]:t&&2===e.length?[e[0],e[1],0]:e}));if(e.setPositions(n.flat()),a){const t=a.map((e=>e instanceof r.Color?e.toArray():e));e.setColors(t.flat())}return e}),[t,u,a]);return s.useLayoutEffect((()=>{b.computeLineDistances()}),[t,b]),s.useLayoutEffect((()=>{f?p.defines.USE_DASH="":delete p.defines.USE_DASH,p.needsUpdate=!0}),[f,p]),s.useEffect((()=>()=>y.dispose()),[y]),s.createElement("primitive",e({object:b,ref:m},d),s.createElement("primitive",{object:y,attach:"geometry"}),s.createElement("primitive",e({object:p,attach:"material",color:o,vertexColors:Boolean(a),resolution:[h.width,h.height],linewidth:null!=c?c:l,dashed:f},d)))}));exports.Line=a;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),n=require("@react-three/fiber"),i=require("three-stdlib");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var a=o(e),c=s(t);const u=c.forwardRef((function({points:e,color:t="black",vertexColors:o,linewidth:s,lineWidth:u,segments:l,dashed:f,...d},m){const h=n.useThree((e=>e.size)),p=c.useMemo((()=>l?new i.LineSegments2:new i.Line2),[l]),[b]=c.useState((()=>new i.LineMaterial)),y=c.useMemo((()=>{const t=l?new i.LineSegmentsGeometry:new i.LineGeometry,n=e.map((e=>{const t=Array.isArray(e);return e instanceof r.Vector3?[e.x,e.y,e.z]:e instanceof r.Vector2?[e.x,e.y,0]:t&&3===e.length?[e[0],e[1],e[2]]:t&&2===e.length?[e[0],e[1],0]:e}));if(t.setPositions(n.flat()),o){const e=o.map((e=>e instanceof r.Color?e.toArray():e));t.setColors(e.flat())}return t}),[e,l,o]);return c.useLayoutEffect((()=>{p.computeLineDistances()}),[e,p]),c.useLayoutEffect((()=>{f?b.defines.USE_DASH="":delete b.defines.USE_DASH,b.needsUpdate=!0}),[f,b]),c.useEffect((()=>()=>y.dispose()),[y]),c.createElement("primitive",a.default({object:p,ref:m},d),c.createElement("primitive",{object:y,attach:"geometry"}),c.createElement("primitive",a.default({object:b,attach:"material",color:t,vertexColors:Boolean(o),resolution:[h.width,h.height],linewidth:null!=s?s:u,dashed:f},d)))}));exports.Line=u;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),n=require("three-stdlib");function a(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=a(r);const o=s.forwardRef(((r={enableDamping:!0},a)=>{const{domElement:o,camera:c,makeDefault:u,onChange:i,onStart:d,onEnd:l,...f}=r,m=t.useThree((e=>e.invalidate)),v=t.useThree((e=>e.camera)),b=t.useThree((e=>e.gl)),h=t.useThree((e=>e.events)),E=t.useThree((e=>e.set)),p=t.useThree((e=>e.get)),g=o||h.connected||b.domElement,j=c||v,L=s.useMemo((()=>new n.MapControls(j)),[j]);return s.useEffect((()=>{L.connect(g);const e=e=>{m(),i&&i(e)};return L.addEventListener("change",e),d&&L.addEventListener("start",d),l&&L.addEventListener("end",l),()=>{L.dispose(),L.removeEventListener("change",e),d&&L.removeEventListener("start",d),l&&L.removeEventListener("end",l)}}),[i,d,l,L,m,g]),s.useEffect((()=>{if(u){const e=p().controls;return E({controls:L}),()=>E({controls:e})}}),[u,L]),t.useFrame((()=>L.update()),-1),s.createElement("primitive",e({ref:a,object:L,enableDamping:!0},f))}));exports.MapControls=o;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),n=require("three-stdlib");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=a(e),u=o(r);const c=u.forwardRef(((e={enableDamping:!0},r)=>{const{domElement:a,camera:o,makeDefault:c,onChange:i,onStart:d,onEnd:l,...f}=e,m=t.useThree((e=>e.invalidate)),v=t.useThree((e=>e.camera)),b=t.useThree((e=>e.gl)),p=t.useThree((e=>e.events)),h=t.useThree((e=>e.set)),E=t.useThree((e=>e.get)),g=a||p.connected||b.domElement,j=o||v,O=u.useMemo((()=>new n.MapControls(j)),[j]);return u.useEffect((()=>{O.connect(g);const e=e=>{m(),i&&i(e)};return O.addEventListener("change",e),d&&O.addEventListener("start",d),l&&O.addEventListener("end",l),()=>{O.dispose(),O.removeEventListener("change",e),d&&O.removeEventListener("start",d),l&&O.removeEventListener("end",l)}}),[i,d,l,O,m,g]),u.useEffect((()=>{if(c){const e=E().controls;return h({controls:O}),()=>h({controls:e})}}),[c,O]),t.useFrame((()=>O.update()),-1),u.createElement("primitive",s.default({ref:r,object:O,enableDamping:!0},f))}));exports.MapControls=c;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),n=require("react-merge-refs"),u=require("three-stdlib"),a=require("@react-three/fiber");function c(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var o=c(r),s=c(t);const l=s.createContext(null),i=s.forwardRef((({resolution:r=28,maxPolyCount:t=1e4,enableUvs:c=!1,enableColors:o=!1,children:i,...f},d)=>{const m=s.useRef(null),b=s.useMemo((()=>new u.MarchingCubes(r,null,c,o,t)),[r,t,c,o]),g=s.useMemo((()=>({getParent:()=>m})),[]);return a.useFrame((()=>{b.update(),b.reset()}),-1),s.createElement(s.Fragment,null,s.createElement("primitive",e({object:b,ref:n([m,d])},f),s.createElement(l.Provider,{value:g},i)))})),f=s.forwardRef((({strength:r=.5,subtract:t=12,color:u,...c},i)=>{const{getParent:f}=s.useContext(l),d=s.useMemo((()=>f()),[f]),m=s.useRef(),b=new o.Vector3;return a.useFrame((e=>{d.current&&m.current&&(m.current.getWorldPosition(b),d.current.addBall(.5+.5*b.x,.5+.5*b.y,.5+.5*b.z,r,t,u))})),s.createElement("group",e({ref:n([i,m])},c))})),d=s.forwardRef((({planeType:r="x",strength:t=.5,subtract:u=12,...c},o)=>{const{getParent:i}=s.useContext(l),f=s.useMemo((()=>i()),[i]),d=s.useRef(),m=s.useMemo((()=>"x"===r?"addPlaneX":"y"===r?"addPlaneY":"addPlaneZ"),[r]);return a.useFrame((()=>{f.current&&d.current&&f.current[m](t,u)})),s.createElement("group",e({ref:n([o,d])},c))}));exports.MarchingCube=f,exports.MarchingCubes=i,exports.MarchingPlane=d;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),n=require("react-merge-refs"),u=require("three-stdlib"),a=require("@react-three/fiber");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var c=l(e),s=o(r),f=o(t),i=l(n);const d=f.createContext(null),b=f.forwardRef((({resolution:e=28,maxPolyCount:r=1e4,enableUvs:t=!1,enableColors:n=!1,children:l,...o},s)=>{const b=f.useRef(null),m=f.useMemo((()=>new u.MarchingCubes(e,null,t,n,r)),[e,r,t,n]),g=f.useMemo((()=>({getParent:()=>b})),[]);return a.useFrame((()=>{m.update(),m.reset()}),-1),f.createElement(f.Fragment,null,f.createElement("primitive",c.default({object:m,ref:i.default([b,s])},o),f.createElement(d.Provider,{value:g},l)))})),m=f.forwardRef((({strength:e=.5,subtract:r=12,color:t,...n},u)=>{const{getParent:l}=f.useContext(d),o=f.useMemo((()=>l()),[l]),b=f.useRef(),m=new s.Vector3;return a.useFrame((n=>{o.current&&b.current&&(b.current.getWorldPosition(m),o.current.addBall(.5+.5*m.x,.5+.5*m.y,.5+.5*m.z,e,r,t))})),f.createElement("group",c.default({ref:i.default([u,b])},n))})),g=f.forwardRef((({planeType:e="x",strength:r=.5,subtract:t=12,...n},u)=>{const{getParent:l}=f.useContext(d),o=f.useMemo((()=>l()),[l]),s=f.useRef(),b=f.useMemo((()=>"x"===e?"addPlaneX":"y"===e?"addPlaneY":"addPlaneZ"),[e]);return a.useFrame((()=>{o.current&&s.current&&o.current[b](r,t)})),f.createElement("group",c.default({ref:i.default([u,s])},n))}));exports.MarchingCube=m,exports.MarchingCubes=b,exports.MarchingPlane=g;
package/core/Mask.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react");function n(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var c=n(t),i=n(r);const l=i.forwardRef((({id:t=1,colorWrite:r=!1,depthWrite:n=!1,...l},s)=>{const a=i.useRef(null),u=i.useMemo((()=>({colorWrite:r,depthWrite:n,stencilWrite:!0,stencilRef:t,stencilFunc:c.AlwaysStencilFunc,stencilFail:c.ReplaceStencilOp,stencilZFail:c.ReplaceStencilOp,stencilZPass:c.ReplaceStencilOp})),[t,r,n]);return i.useLayoutEffect((()=>{Object.assign(a.current.material,u)})),i.useImperativeHandle(s,(()=>a.current),[]),i.createElement("mesh",e({ref:a,renderOrder:-t},l))}));exports.Mask=l,exports.useMask=function(e,t=!1){return{stencilWrite:!0,stencilRef:e,stencilFunc:t?c.NotEqualStencilFunc:c.EqualStencilFunc,stencilFail:c.KeepStencilOp,stencilZFail:c.KeepStencilOp,stencilZPass:c.KeepStencilOp}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var i=n(e),l=c(t),u=c(r);const s=u.forwardRef((({id:e=1,colorWrite:t=!1,depthWrite:r=!1,...n},c)=>{const s=u.useRef(null),a=u.useMemo((()=>({colorWrite:t,depthWrite:r,stencilWrite:!0,stencilRef:e,stencilFunc:l.AlwaysStencilFunc,stencilFail:l.ReplaceStencilOp,stencilZFail:l.ReplaceStencilOp,stencilZPass:l.ReplaceStencilOp})),[e,t,r]);return u.useLayoutEffect((()=>{Object.assign(s.current.material,a)})),u.useImperativeHandle(c,(()=>s.current),[]),u.createElement("mesh",i.default({ref:s,renderOrder:-e},n))}));exports.Mask=s,exports.useMask=function(e,t=!1){return{stencilWrite:!0,stencilRef:e,stencilFunc:t?l.NotEqualStencilFunc:l.EqualStencilFunc,stencilFail:l.KeepStencilOp,stencilZFail:l.KeepStencilOp,stencilZPass:l.KeepStencilOp}};
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),a=require("../materials/DiscardMaterial.cjs.js");function i(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("./shaderMaterial.cjs.js"),require("three");var c=i(r);const s=c.forwardRef(((r,i)=>(t.extend({DiscardMaterialImpl:a.DiscardMaterial}),c.createElement("discardMaterialImpl",e({ref:i},r)))));exports.MeshDiscardMaterial=s;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),a=require("../materials/DiscardMaterial.cjs.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("./shaderMaterial.cjs.js"),require("three");var u=i(e),l=c(r);const n=l.forwardRef(((e,r)=>(t.extend({DiscardMaterialImpl:a.DiscardMaterial}),l.createElement("discardMaterialImpl",u.default({ref:r},e)))));exports.MeshDiscardMaterial=n;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),i=require("@react-three/fiber");function o(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,i.get?i:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=o(t);class c extends r.MeshPhysicalMaterial{constructor(e={}){super(e),this.setValues(e),this._time={value:0},this._distort={value:.4},this._radius={value:1}}onBeforeCompile(e){e.uniforms.time=this._time,e.uniforms.radius=this._radius,e.uniforms.distort=this._distort,e.vertexShader=`\n uniform float time;\n uniform float radius;\n uniform float distort;\n #define GLSLIFY 1\nvec3 mod289(vec3 x){return x-floor(x*(1.0/289.0))*289.0;}vec4 mod289(vec4 x){return x-floor(x*(1.0/289.0))*289.0;}vec4 permute(vec4 x){return mod289(((x*34.0)+1.0)*x);}vec4 taylorInvSqrt(vec4 r){return 1.79284291400159-0.85373472095314*r;}float snoise(vec3 v){const vec2 C=vec2(1.0/6.0,1.0/3.0);const vec4 D=vec4(0.0,0.5,1.0,2.0);vec3 i=floor(v+dot(v,C.yyy));vec3 x0=v-i+dot(i,C.xxx);vec3 g=step(x0.yzx,x0.xyz);vec3 l=1.0-g;vec3 i1=min(g.xyz,l.zxy);vec3 i2=max(g.xyz,l.zxy);vec3 x1=x0-i1+C.xxx;vec3 x2=x0-i2+C.yyy;vec3 x3=x0-D.yyy;i=mod289(i);vec4 p=permute(permute(permute(i.z+vec4(0.0,i1.z,i2.z,1.0))+i.y+vec4(0.0,i1.y,i2.y,1.0))+i.x+vec4(0.0,i1.x,i2.x,1.0));float n_=0.142857142857;vec3 ns=n_*D.wyz-D.xzx;vec4 j=p-49.0*floor(p*ns.z*ns.z);vec4 x_=floor(j*ns.z);vec4 y_=floor(j-7.0*x_);vec4 x=x_*ns.x+ns.yyyy;vec4 y=y_*ns.x+ns.yyyy;vec4 h=1.0-abs(x)-abs(y);vec4 b0=vec4(x.xy,y.xy);vec4 b1=vec4(x.zw,y.zw);vec4 s0=floor(b0)*2.0+1.0;vec4 s1=floor(b1)*2.0+1.0;vec4 sh=-step(h,vec4(0.0));vec4 a0=b0.xzyw+s0.xzyw*sh.xxyy;vec4 a1=b1.xzyw+s1.xzyw*sh.zzww;vec3 p0=vec3(a0.xy,h.x);vec3 p1=vec3(a0.zw,h.y);vec3 p2=vec3(a1.xy,h.z);vec3 p3=vec3(a1.zw,h.w);vec4 norm=taylorInvSqrt(vec4(dot(p0,p0),dot(p1,p1),dot(p2,p2),dot(p3,p3)));p0*=norm.x;p1*=norm.y;p2*=norm.z;p3*=norm.w;vec4 m=max(0.6-vec4(dot(x0,x0),dot(x1,x1),dot(x2,x2),dot(x3,x3)),0.0);m=m*m;return 42.0*dot(m*m,vec4(dot(p0,x0),dot(p1,x1),dot(p2,x2),dot(p3,x3)));}\n ${e.vertexShader}\n `,e.vertexShader=e.vertexShader.replace("#include <begin_vertex>","\n float updateTime = time / 50.0;\n float noise = snoise(vec3(position / 2.0 + updateTime * 5.0));\n vec3 transformed = vec3(position * (noise * pow(distort, 2.0) + radius));\n ")}get time(){return this._time.value}set time(e){this._time.value=e}get distort(){return this._distort.value}set distort(e){this._distort.value=e}get radius(){return this._radius.value}set radius(e){this._radius.value=e}}const v=s.forwardRef((({speed:t=1,...r},o)=>{const[v]=s.useState((()=>new c));return i.useFrame((e=>v&&(v.time=e.clock.getElapsedTime()*t))),s.createElement("primitive",e({object:v,ref:o,attach:"material"},r))}));exports.MeshDistortMaterial=v;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),i=require("@react-three/fiber");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,i.get?i:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var c=o(e),v=s(t);class n extends r.MeshPhysicalMaterial{constructor(e={}){super(e),this.setValues(e),this._time={value:0},this._distort={value:.4},this._radius={value:1}}onBeforeCompile(e){e.uniforms.time=this._time,e.uniforms.radius=this._radius,e.uniforms.distort=this._distort,e.vertexShader=`\n uniform float time;\n uniform float radius;\n uniform float distort;\n #define GLSLIFY 1\nvec3 mod289(vec3 x){return x-floor(x*(1.0/289.0))*289.0;}vec4 mod289(vec4 x){return x-floor(x*(1.0/289.0))*289.0;}vec4 permute(vec4 x){return mod289(((x*34.0)+1.0)*x);}vec4 taylorInvSqrt(vec4 r){return 1.79284291400159-0.85373472095314*r;}float snoise(vec3 v){const vec2 C=vec2(1.0/6.0,1.0/3.0);const vec4 D=vec4(0.0,0.5,1.0,2.0);vec3 i=floor(v+dot(v,C.yyy));vec3 x0=v-i+dot(i,C.xxx);vec3 g=step(x0.yzx,x0.xyz);vec3 l=1.0-g;vec3 i1=min(g.xyz,l.zxy);vec3 i2=max(g.xyz,l.zxy);vec3 x1=x0-i1+C.xxx;vec3 x2=x0-i2+C.yyy;vec3 x3=x0-D.yyy;i=mod289(i);vec4 p=permute(permute(permute(i.z+vec4(0.0,i1.z,i2.z,1.0))+i.y+vec4(0.0,i1.y,i2.y,1.0))+i.x+vec4(0.0,i1.x,i2.x,1.0));float n_=0.142857142857;vec3 ns=n_*D.wyz-D.xzx;vec4 j=p-49.0*floor(p*ns.z*ns.z);vec4 x_=floor(j*ns.z);vec4 y_=floor(j-7.0*x_);vec4 x=x_*ns.x+ns.yyyy;vec4 y=y_*ns.x+ns.yyyy;vec4 h=1.0-abs(x)-abs(y);vec4 b0=vec4(x.xy,y.xy);vec4 b1=vec4(x.zw,y.zw);vec4 s0=floor(b0)*2.0+1.0;vec4 s1=floor(b1)*2.0+1.0;vec4 sh=-step(h,vec4(0.0));vec4 a0=b0.xzyw+s0.xzyw*sh.xxyy;vec4 a1=b1.xzyw+s1.xzyw*sh.zzww;vec3 p0=vec3(a0.xy,h.x);vec3 p1=vec3(a0.zw,h.y);vec3 p2=vec3(a1.xy,h.z);vec3 p3=vec3(a1.zw,h.w);vec4 norm=taylorInvSqrt(vec4(dot(p0,p0),dot(p1,p1),dot(p2,p2),dot(p3,p3)));p0*=norm.x;p1*=norm.y;p2*=norm.z;p3*=norm.w;vec4 m=max(0.6-vec4(dot(x0,x0),dot(x1,x1),dot(x2,x2),dot(x3,x3)),0.0);m=m*m;return 42.0*dot(m*m,vec4(dot(p0,x0),dot(p1,x1),dot(p2,x2),dot(p3,x3)));}\n ${e.vertexShader}\n `,e.vertexShader=e.vertexShader.replace("#include <begin_vertex>","\n float updateTime = time / 50.0;\n float noise = snoise(vec3(position / 2.0 + updateTime * 5.0));\n vec3 transformed = vec3(position * (noise * pow(distort, 2.0) + radius));\n ")}get time(){return this._time.value}set time(e){this._time.value=e}get distort(){return this._distort.value}set distort(e){this._distort.value=e}get radius(){return this._radius.value}set radius(e){this._radius.value=e}}const x=v.forwardRef((({speed:e=1,...t},r)=>{const[o]=v.useState((()=>new n));return i.useFrame((t=>o&&(o.time=t.clock.getElapsedTime()*e))),v.createElement("primitive",c.default({object:o,ref:r,attach:"material"},t))}));exports.MeshDistortMaterial=x;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),n=require("@react-three/fiber"),a=require("./useIntersect.cjs.js"),i=require("./useFBO.cjs.js"),l=require("./RenderTexture.cjs.js"),o=require("./shaderMaterial.cjs.js"),u=require("three-stdlib");function s(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var v=s(r),c=s(t);const d=o.shaderMaterial({blur:0,map:null,sdf:null,blend:0,size:0,resolution:new v.Vector2},"varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vUv = uv;\n }","uniform sampler2D sdf;\n uniform sampler2D map;\n uniform float blur;\n uniform float size;\n uniform float time;\n uniform vec2 resolution;\n varying vec2 vUv;\n #include <packing>\n void main() {\n vec2 uv = gl_FragCoord.xy / resolution.xy;\n vec4 t = texture2D(map, uv);\n float k = blur;\n float d = texture2D(sdf, vUv).r/size;\n float alpha = 1.0 - smoothstep(0.0, 1.0, clamp(d/k + 1.0, 0.0, 1.0));\n gl_FragColor = vec4(t.rgb, blur == 0.0 ? t.a : t.a * alpha);\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n }"),m=c.forwardRef((({children:r,events:t,blur:o=0,eventPriority:u=0,renderPriority:s=0,worldUnits:m=!1,resolution:x=512,...p},F)=>{n.extend({PortalMaterialImpl:d});const h=c.useRef(null),{scene:y,gl:b,size:w,viewport:M,setEvents:U}=n.useThree(),T=i.useFBO(x,x),[R,S]=c.useState(0);n.useFrame((()=>{const e=h.current.blend>0?Math.max(1,s):0;R!==e&&S(e)})),c.useEffect((()=>{void 0!==t&&U({enabled:!t})}),[t]);const[D,_]=c.useState(!0),j=a.useIntersect(_);c.useLayoutEffect((()=>{var e;j.current=null==(e=h.current)?void 0:e.__r3f.parent}),[]),c.useLayoutEffect((()=>{if(j.current&&o&&null===h.current.sdf){const e=new v.Mesh(j.current.geometry,new v.MeshBasicMaterial),r=(new v.Box3).setFromBufferAttribute(e.geometry.attributes.position),t=new v.OrthographicCamera(r.min.x*(1+2/x),r.max.x*(1+2/x),r.max.y*(1+2/x),r.min.y*(1+2/x),.1,1e3);t.position.set(0,0,1),t.lookAt(0,0,0),b.setRenderTarget(T),b.render(e,t);const n=g(x,x,b)(T.texture),a=new Float32Array(x*x);b.readRenderTargetPixels(n,0,0,x,x,a);let i=1/0;for(let e=0;e<a.length;e++)a[e]<i&&(i=a[e]);i=-i,h.current.size=i,h.current.sdf=n.texture,b.setRenderTarget(null)}}),[x,o]),c.useImperativeHandle(F,(()=>h.current));const P=c.useCallback(((e,r,t)=>{var n;if(!j.current)return!1;if(r.pointer.set(e.offsetX/r.size.width*2-1,-e.offsetY/r.size.height*2+1),r.raycaster.setFromCamera(r.pointer,r.camera),0===(null==(n=h.current)?void 0:n.blend)){const[e]=r.raycaster.intersectObject(j.current);if(!e)return r.raycaster.camera=void 0,!1}}),[]);return c.createElement("portalMaterialImpl",e({ref:h,blur:o,blend:0,resolution:[w.width*M.dpr,w.height*M.dpr],toneMapped:!1,attach:"material"},p),c.createElement(l.RenderTexture,{attach:"map",frames:D?1/0:0,eventPriority:u,renderPriority:s,compute:P},r,c.createElement(f,{events:t,rootScene:y,priority:R,material:h,worldUnits:m})))}));function f({events:e,rootScene:r,material:t,priority:a,worldUnits:l}){const o=n.useThree((e=>e.scene)),s=n.useThree((e=>e.setEvents)),d=i.useFBO(),m=i.useFBO();c.useLayoutEffect((()=>{o.matrixAutoUpdate=!1}),[]),c.useEffect((()=>{void 0!==e&&s({enabled:e})}),[e]);const[f,g]=c.useMemo((()=>{const e={value:0};return[new u.FullScreenQuad(new v.ShaderMaterial({uniforms:{a:{value:d.texture},b:{value:m.texture},blend:e},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform sampler2D a;\n uniform sampler2D b;\n uniform float blend;\n varying vec2 vUv;\n #include <packing>\n void main() {\n vec4 ta = texture2D(a, vUv);\n vec4 tb = texture2D(b, vUv);\n gl_FragColor = mix(tb, ta, blend);\n #include <encodings_fragment>\n }"})),e]}),[]);return n.useFrame((e=>{var n;let i=null==t||null==(n=t.current)?void 0:n.__r3f.parent;if(i){var u,s,v,c;if(l)o.matrixWorld.identity();else a&&1===(null==(u=t.current)?void 0:u.blend)&&i.updateWorldMatrix(!0,!1),o.matrixWorld.copy(i.matrixWorld);if(a)(null==(s=t.current)?void 0:s.blend)>0&&(null==(v=t.current)?void 0:v.blend)<1?(g.value=t.current.blend,e.gl.setRenderTarget(d),e.gl.render(o,e.camera),e.gl.setRenderTarget(m),e.gl.render(r,e.camera),e.gl.setRenderTarget(null),f.render(e.gl)):1===(null==(c=t.current)?void 0:c.blend)&&e.gl.render(o,e.camera)}}),a),c.createElement(c.Fragment,null)}const g=(e,r,t)=>{let n=new v.WebGLRenderTarget(e,r,{minFilter:v.LinearMipmapLinearFilter,magFilter:v.LinearFilter,type:v.FloatType,format:v.RedFormat,generateMipmaps:!0}),a=new v.WebGLRenderTarget(e,r,{minFilter:v.NearestFilter,magFilter:v.NearestFilter}),i=new v.WebGLRenderTarget(e,r,{minFilter:v.NearestFilter,magFilter:v.NearestFilter}),l=new v.WebGLRenderTarget(e,r,{minFilter:v.NearestFilter,magFilter:v.NearestFilter}),o=new v.WebGLRenderTarget(e,r,{minFilter:v.NearestFilter,magFilter:v.NearestFilter}),s=new v.WebGLRenderTarget(e,r,{minFilter:v.NearestFilter,magFilter:v.NearestFilter,type:v.FloatType,format:v.RedFormat}),c=new v.WebGLRenderTarget(e,r,{minFilter:v.NearestFilter,magFilter:v.NearestFilter,type:v.FloatType,format:v.RedFormat});const d=new u.FullScreenQuad(new v.ShaderMaterial({uniforms:{tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform sampler2D tex;\n varying vec2 vUv;\n #include <packing>\n void main() {\n gl_FragColor = pack2HalfToRGBA(vUv * (round(texture2D(tex, vUv).x)));\n }"})),m=new u.FullScreenQuad(new v.ShaderMaterial({uniforms:{tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform sampler2D tex;\n varying vec2 vUv;\n #include <packing>\n void main() {\n gl_FragColor = pack2HalfToRGBA(vUv * (1.0 - round(texture2D(tex, vUv).x)));\n }"})),f=new u.FullScreenQuad(new v.ShaderMaterial({uniforms:{tex:{value:null},offset:{value:0},level:{value:0},maxSteps:{value:0}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:`\n varying vec2 vUv;\n uniform sampler2D tex;\n uniform float offset;\n uniform float level;\n uniform float maxSteps;\n #include <packing>\n void main() {\n float closestDist = 9999999.9;\n vec2 closestPos = vec2(0.0);\n for (float x = -1.0; x <= 1.0; x += 1.0) {\n for (float y = -1.0; y <= 1.0; y += 1.0) {\n vec2 voffset = vUv;\n voffset += vec2(x, y) * vec2(${1/e}, ${1/r}) * offset;\n vec2 pos = unpackRGBATo2Half(texture2D(tex, voffset));\n float dist = distance(pos.xy, vUv);\n if(pos.x != 0.0 && pos.y != 0.0 && dist < closestDist) {\n closestDist = dist;\n closestPos = pos;\n }\n }\n }\n gl_FragColor = pack2HalfToRGBA(closestPos);\n }`})),g=new u.FullScreenQuad(new v.ShaderMaterial({uniforms:{tex:{value:null},size:{value:new v.Vector2(e,r)}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n varying vec2 vUv;\n uniform sampler2D tex;\n uniform vec2 size;\n #include <packing>\n void main() {\n gl_FragColor = vec4(distance(size * unpackRGBATo2Half(texture2D(tex, vUv)), size * vUv), 0.0, 0.0, 0.0);\n }"})),x=new u.FullScreenQuad(new v.ShaderMaterial({uniforms:{inside:{value:c.texture},outside:{value:s.texture},tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n varying vec2 vUv;\n uniform sampler2D inside;\n uniform sampler2D outside;\n uniform sampler2D tex;\n #include <packing>\n void main() {\n float i = texture2D(inside, vUv).x;\n float o =texture2D(outside, vUv).x;\n if (texture2D(tex, vUv).x == 0.0) {\n gl_FragColor = vec4(o, 0.0, 0.0, 0.0);\n } else {\n gl_FragColor = vec4(-i, 0.0, 0.0, 0.0);\n }\n }"}));return u=>{let p=n;u.minFilter=v.NearestFilter,u.magFilter=v.NearestFilter,d.material.uniforms.tex.value=u,t.setRenderTarget(a),d.render(t);const F=Math.ceil(Math.log(Math.max(e,r))/Math.log(2));let h=a,y=null;for(let e=0;e<F;e++){const r=Math.pow(2,F-e-1);y=h===a?l:a,f.material.uniforms.level.value=e,f.material.uniforms.maxSteps.value=F,f.material.uniforms.offset.value=r,f.material.uniforms.tex.value=h.texture,t.setRenderTarget(y),f.render(t),h=y}t.setRenderTarget(s),g.material.uniforms.tex.value=y.texture,g.render(t),m.material.uniforms.tex.value=u,t.setRenderTarget(i),m.render(t),h=i;for(let e=0;e<F;e++){const r=Math.pow(2,F-e-1);y=h===i?o:i,f.material.uniforms.level.value=e,f.material.uniforms.maxSteps.value=F,f.material.uniforms.offset.value=r,f.material.uniforms.tex.value=h.texture,t.setRenderTarget(y),f.render(t),h=y}return t.setRenderTarget(c),g.material.uniforms.tex.value=y.texture,g.render(t),t.setRenderTarget(p),x.material.uniforms.tex.value=u,x.render(t),t.setRenderTarget(null),p}};exports.MeshPortalMaterial=m;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),n=require("@react-three/fiber"),a=require("./useIntersect.cjs.js"),i=require("./useFBO.cjs.js"),l=require("./RenderTexture.cjs.js"),o=require("./shaderMaterial.cjs.js"),u=require("three-stdlib");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function v(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var c=s(e),d=v(r),m=v(t);const f=o.shaderMaterial({blur:0,map:null,sdf:null,blend:0,size:0,resolution:new d.Vector2},"varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vUv = uv;\n }","uniform sampler2D sdf;\n uniform sampler2D map;\n uniform float blur;\n uniform float size;\n uniform float time;\n uniform vec2 resolution;\n varying vec2 vUv;\n #include <packing>\n void main() {\n vec2 uv = gl_FragCoord.xy / resolution.xy;\n vec4 t = texture2D(map, uv);\n float k = blur;\n float d = texture2D(sdf, vUv).r/size;\n float alpha = 1.0 - smoothstep(0.0, 1.0, clamp(d/k + 1.0, 0.0, 1.0));\n gl_FragColor = vec4(t.rgb, blur == 0.0 ? t.a : t.a * alpha);\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n }"),g=m.forwardRef((({children:e,events:r,blur:t=0,eventPriority:o=0,renderPriority:u=0,worldUnits:s=!1,resolution:v=512,...g},F)=>{n.extend({PortalMaterialImpl:f});const h=m.useRef(null),{scene:y,gl:b,size:w,viewport:M,setEvents:U}=n.useThree(),T=i.useFBO(v,v),[R,S]=m.useState(0);n.useFrame((()=>{const e=h.current.blend>0?Math.max(1,u):0;R!==e&&S(e)})),m.useEffect((()=>{void 0!==r&&U({enabled:!r})}),[r]);const[_,D]=m.useState(!0),j=a.useIntersect(D);m.useLayoutEffect((()=>{var e;j.current=null==(e=h.current)?void 0:e.__r3f.parent}),[]),m.useLayoutEffect((()=>{if(j.current&&t&&null===h.current.sdf){const e=new d.Mesh(j.current.geometry,new d.MeshBasicMaterial),r=(new d.Box3).setFromBufferAttribute(e.geometry.attributes.position),t=new d.OrthographicCamera(r.min.x*(1+2/v),r.max.x*(1+2/v),r.max.y*(1+2/v),r.min.y*(1+2/v),.1,1e3);t.position.set(0,0,1),t.lookAt(0,0,0),b.setRenderTarget(T),b.render(e,t);const n=p(v,v,b)(T.texture),a=new Float32Array(v*v);b.readRenderTargetPixels(n,0,0,v,v,a);let i=1/0;for(let e=0;e<a.length;e++)a[e]<i&&(i=a[e]);i=-i,h.current.size=i,h.current.sdf=n.texture,b.setRenderTarget(null)}}),[v,t]),m.useImperativeHandle(F,(()=>h.current));const P=m.useCallback(((e,r,t)=>{var n;if(!j.current)return!1;if(r.pointer.set(e.offsetX/r.size.width*2-1,-e.offsetY/r.size.height*2+1),r.raycaster.setFromCamera(r.pointer,r.camera),0===(null==(n=h.current)?void 0:n.blend)){const[e]=r.raycaster.intersectObject(j.current);if(!e)return r.raycaster.camera=void 0,!1}}),[]);return m.createElement("portalMaterialImpl",c.default({ref:h,blur:t,blend:0,resolution:[w.width*M.dpr,w.height*M.dpr],toneMapped:!1,attach:"material"},g),m.createElement(l.RenderTexture,{attach:"map",frames:_?1/0:0,eventPriority:o,renderPriority:u,compute:P},e,m.createElement(x,{events:r,rootScene:y,priority:R,material:h,worldUnits:s})))}));function x({events:e,rootScene:r,material:t,priority:a,worldUnits:l}){const o=n.useThree((e=>e.scene)),s=n.useThree((e=>e.setEvents)),v=i.useFBO(),c=i.useFBO();m.useLayoutEffect((()=>{o.matrixAutoUpdate=!1}),[]),m.useEffect((()=>{void 0!==e&&s({enabled:e})}),[e]);const[f,g]=m.useMemo((()=>{const e={value:0};return[new u.FullScreenQuad(new d.ShaderMaterial({uniforms:{a:{value:v.texture},b:{value:c.texture},blend:e},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform sampler2D a;\n uniform sampler2D b;\n uniform float blend;\n varying vec2 vUv;\n #include <packing>\n void main() {\n vec4 ta = texture2D(a, vUv);\n vec4 tb = texture2D(b, vUv);\n gl_FragColor = mix(tb, ta, blend);\n #include <encodings_fragment>\n }"})),e]}),[]);return n.useFrame((e=>{var n;let i=null==t||null==(n=t.current)?void 0:n.__r3f.parent;if(i){var u,s,d,m;if(l)o.matrixWorld.identity();else a&&1===(null==(u=t.current)?void 0:u.blend)&&i.updateWorldMatrix(!0,!1),o.matrixWorld.copy(i.matrixWorld);if(a)(null==(s=t.current)?void 0:s.blend)>0&&(null==(d=t.current)?void 0:d.blend)<1?(g.value=t.current.blend,e.gl.setRenderTarget(v),e.gl.render(o,e.camera),e.gl.setRenderTarget(c),e.gl.render(r,e.camera),e.gl.setRenderTarget(null),f.render(e.gl)):1===(null==(m=t.current)?void 0:m.blend)&&e.gl.render(o,e.camera)}}),a),m.createElement(m.Fragment,null)}const p=(e,r,t)=>{let n=new d.WebGLRenderTarget(e,r,{minFilter:d.LinearMipmapLinearFilter,magFilter:d.LinearFilter,type:d.FloatType,format:d.RedFormat,generateMipmaps:!0}),a=new d.WebGLRenderTarget(e,r,{minFilter:d.NearestFilter,magFilter:d.NearestFilter}),i=new d.WebGLRenderTarget(e,r,{minFilter:d.NearestFilter,magFilter:d.NearestFilter}),l=new d.WebGLRenderTarget(e,r,{minFilter:d.NearestFilter,magFilter:d.NearestFilter}),o=new d.WebGLRenderTarget(e,r,{minFilter:d.NearestFilter,magFilter:d.NearestFilter}),s=new d.WebGLRenderTarget(e,r,{minFilter:d.NearestFilter,magFilter:d.NearestFilter,type:d.FloatType,format:d.RedFormat}),v=new d.WebGLRenderTarget(e,r,{minFilter:d.NearestFilter,magFilter:d.NearestFilter,type:d.FloatType,format:d.RedFormat});const c=new u.FullScreenQuad(new d.ShaderMaterial({uniforms:{tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform sampler2D tex;\n varying vec2 vUv;\n #include <packing>\n void main() {\n gl_FragColor = pack2HalfToRGBA(vUv * (round(texture2D(tex, vUv).x)));\n }"})),m=new u.FullScreenQuad(new d.ShaderMaterial({uniforms:{tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform sampler2D tex;\n varying vec2 vUv;\n #include <packing>\n void main() {\n gl_FragColor = pack2HalfToRGBA(vUv * (1.0 - round(texture2D(tex, vUv).x)));\n }"})),f=new u.FullScreenQuad(new d.ShaderMaterial({uniforms:{tex:{value:null},offset:{value:0},level:{value:0},maxSteps:{value:0}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:`\n varying vec2 vUv;\n uniform sampler2D tex;\n uniform float offset;\n uniform float level;\n uniform float maxSteps;\n #include <packing>\n void main() {\n float closestDist = 9999999.9;\n vec2 closestPos = vec2(0.0);\n for (float x = -1.0; x <= 1.0; x += 1.0) {\n for (float y = -1.0; y <= 1.0; y += 1.0) {\n vec2 voffset = vUv;\n voffset += vec2(x, y) * vec2(${1/e}, ${1/r}) * offset;\n vec2 pos = unpackRGBATo2Half(texture2D(tex, voffset));\n float dist = distance(pos.xy, vUv);\n if(pos.x != 0.0 && pos.y != 0.0 && dist < closestDist) {\n closestDist = dist;\n closestPos = pos;\n }\n }\n }\n gl_FragColor = pack2HalfToRGBA(closestPos);\n }`})),g=new u.FullScreenQuad(new d.ShaderMaterial({uniforms:{tex:{value:null},size:{value:new d.Vector2(e,r)}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n varying vec2 vUv;\n uniform sampler2D tex;\n uniform vec2 size;\n #include <packing>\n void main() {\n gl_FragColor = vec4(distance(size * unpackRGBATo2Half(texture2D(tex, vUv)), size * vUv), 0.0, 0.0, 0.0);\n }"})),x=new u.FullScreenQuad(new d.ShaderMaterial({uniforms:{inside:{value:v.texture},outside:{value:s.texture},tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n varying vec2 vUv;\n uniform sampler2D inside;\n uniform sampler2D outside;\n uniform sampler2D tex;\n #include <packing>\n void main() {\n float i = texture2D(inside, vUv).x;\n float o =texture2D(outside, vUv).x;\n if (texture2D(tex, vUv).x == 0.0) {\n gl_FragColor = vec4(o, 0.0, 0.0, 0.0);\n } else {\n gl_FragColor = vec4(-i, 0.0, 0.0, 0.0);\n }\n }"}));return u=>{let p=n;u.minFilter=d.NearestFilter,u.magFilter=d.NearestFilter,c.material.uniforms.tex.value=u,t.setRenderTarget(a),c.render(t);const F=Math.ceil(Math.log(Math.max(e,r))/Math.log(2));let h=a,y=null;for(let e=0;e<F;e++){const r=Math.pow(2,F-e-1);y=h===a?l:a,f.material.uniforms.level.value=e,f.material.uniforms.maxSteps.value=F,f.material.uniforms.offset.value=r,f.material.uniforms.tex.value=h.texture,t.setRenderTarget(y),f.render(t),h=y}t.setRenderTarget(s),g.material.uniforms.tex.value=y.texture,g.render(t),m.material.uniforms.tex.value=u,t.setRenderTarget(i),m.render(t),h=i;for(let e=0;e<F;e++){const r=Math.pow(2,F-e-1);y=h===i?o:i,f.material.uniforms.level.value=e,f.material.uniforms.maxSteps.value=F,f.material.uniforms.offset.value=r,f.material.uniforms.tex.value=h.texture,t.setRenderTarget(y),f.render(t),h=y}return t.setRenderTarget(v),g.material.uniforms.tex.value=y.texture,g.render(t),t.setRenderTarget(p),x.material.uniforms.tex.value=u,x.render(t),t.setRenderTarget(null),p}};exports.MeshPortalMaterial=g;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),a=require("@react-three/fiber"),i=require("react-merge-refs"),n=require("../materials/BlurPass.cjs.js"),s=require("../materials/MeshReflectorMaterial.cjs.js");function o(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}require("../materials/ConvolutionMaterial.cjs.js");var l=o(t);a.extend({MeshReflectorMaterialImpl:s.MeshReflectorMaterial});const u=l.forwardRef((({mixBlur:t=0,mixStrength:s=1,resolution:o=256,blur:u=[0,0],minDepthThreshold:d=.9,maxDepthThreshold:c=1,depthScale:p=0,depthToBlurRatioBias:m=.25,mirror:h=0,distortion:x=1,mixContrast:f=1,distortionMap:M,reflectorOffset:T=0,...S},y)=>{const w=a.useThree((({gl:e})=>e)),b=a.useThree((({camera:e})=>e)),R=a.useThree((({scene:e})=>e)),g=(u=Array.isArray(u)?u:[u,u])[0]+u[1]>0,v=l.useRef(null),[D]=l.useState((()=>new r.Plane)),[j]=l.useState((()=>new r.Vector3)),[B]=l.useState((()=>new r.Vector3)),[U]=l.useState((()=>new r.Vector3)),[O]=l.useState((()=>new r.Matrix4)),[P]=l.useState((()=>new r.Vector3(0,0,-1))),[V]=l.useState((()=>new r.Vector4)),[E]=l.useState((()=>new r.Vector3)),[F]=l.useState((()=>new r.Vector3)),[W]=l.useState((()=>new r.Vector4)),[_]=l.useState((()=>new r.Matrix4)),[q]=l.useState((()=>new r.PerspectiveCamera)),I=l.useCallback((()=>{var e;const t=v.current.parent||(null==(e=v.current)?void 0:e.__r3f.parent);if(!t)return;if(B.setFromMatrixPosition(t.matrixWorld),U.setFromMatrixPosition(b.matrixWorld),O.extractRotation(t.matrixWorld),j.set(0,0,1),j.applyMatrix4(O),B.addScaledVector(j,T),E.subVectors(B,U),E.dot(j)>0)return;E.reflect(j).negate(),E.add(B),O.extractRotation(b.matrixWorld),P.set(0,0,-1),P.applyMatrix4(O),P.add(U),F.subVectors(B,P),F.reflect(j).negate(),F.add(B),q.position.copy(E),q.up.set(0,1,0),q.up.applyMatrix4(O),q.up.reflect(j),q.lookAt(F),q.far=b.far,q.updateMatrixWorld(),q.projectionMatrix.copy(b.projectionMatrix),_.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),_.multiply(q.projectionMatrix),_.multiply(q.matrixWorldInverse),_.multiply(t.matrixWorld),D.setFromNormalAndCoplanarPoint(j,B),D.applyMatrix4(q.matrixWorldInverse),V.set(D.normal.x,D.normal.y,D.normal.z,D.constant);const r=q.projectionMatrix;W.x=(Math.sign(V.x)+r.elements[8])/r.elements[0],W.y=(Math.sign(V.y)+r.elements[9])/r.elements[5],W.z=-1,W.w=(1+r.elements[10])/r.elements[14],V.multiplyScalar(2/V.dot(W)),r.elements[2]=V.x,r.elements[6]=V.y,r.elements[10]=V.z+1,r.elements[14]=V.w}),[b,T]),[C,k,L,z]=l.useMemo((()=>{const e={minFilter:r.LinearFilter,magFilter:r.LinearFilter,type:r.HalfFloatType},a=new r.WebGLRenderTarget(o,o,e);a.depthBuffer=!0,a.depthTexture=new r.DepthTexture(o,o),a.depthTexture.format=r.DepthFormat,a.depthTexture.type=r.UnsignedShortType;const i=new r.WebGLRenderTarget(o,o,e);return[a,i,new n.BlurPass({gl:w,resolution:o,width:u[0],height:u[1],minDepthThreshold:d,maxDepthThreshold:c,depthScale:p,depthToBlurRatioBias:m}),{mirror:h,textureMatrix:_,mixBlur:t,tDiffuse:a.texture,tDepth:a.depthTexture,tDiffuseBlur:i.texture,hasBlur:g,mixStrength:s,minDepthThreshold:d,maxDepthThreshold:c,depthScale:p,depthToBlurRatioBias:m,distortion:x,distortionMap:M,mixContrast:f,"defines-USE_BLUR":g?"":void 0,"defines-USE_DEPTH":p>0?"":void 0,"defines-USE_DISTORTION":M?"":void 0}]}),[w,u,_,o,h,g,t,s,d,c,p,m,x,M,f]);return a.useFrame((()=>{var e;const t=v.current.parent||(null==(e=v.current)?void 0:e.__r3f.parent);if(!t)return;t.visible=!1;const r=w.xr.enabled,a=w.shadowMap.autoUpdate;I(),w.xr.enabled=!1,w.shadowMap.autoUpdate=!1,w.setRenderTarget(C),w.state.buffers.depth.setMask(!0),w.autoClear||w.clear(),w.render(R,q),g&&L.render(w,C,k),w.xr.enabled=r,w.shadowMap.autoUpdate=a,t.visible=!0,w.setRenderTarget(null)})),l.createElement("meshReflectorMaterialImpl",e({attach:"material",key:"key"+z["defines-USE_BLUR"]+z["defines-USE_DEPTH"]+z["defines-USE_DISTORTION"],ref:i([v,y])},z,S))}));exports.MeshReflectorMaterial=u;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),a=require("@react-three/fiber"),n=require("react-merge-refs"),i=require("../materials/BlurPass.cjs.js"),o=require("../materials/MeshReflectorMaterial.cjs.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function l(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}require("../materials/ConvolutionMaterial.cjs.js");var u=s(e),d=l(t),c=s(n);a.extend({MeshReflectorMaterialImpl:o.MeshReflectorMaterial});const p=d.forwardRef((({mixBlur:e=0,mixStrength:t=1,resolution:n=256,blur:o=[0,0],minDepthThreshold:s=.9,maxDepthThreshold:l=1,depthScale:p=0,depthToBlurRatioBias:m=.25,mirror:h=0,distortion:f=1,mixContrast:x=1,distortionMap:M,reflectorOffset:T=0,...S},y)=>{const w=a.useThree((({gl:e})=>e)),b=a.useThree((({camera:e})=>e)),R=a.useThree((({scene:e})=>e)),g=(o=Array.isArray(o)?o:[o,o])[0]+o[1]>0,v=d.useRef(null),[j]=d.useState((()=>new r.Plane)),[D]=d.useState((()=>new r.Vector3)),[B]=d.useState((()=>new r.Vector3)),[_]=d.useState((()=>new r.Vector3)),[O]=d.useState((()=>new r.Matrix4)),[P]=d.useState((()=>new r.Vector3(0,0,-1))),[U]=d.useState((()=>new r.Vector4)),[V]=d.useState((()=>new r.Vector3)),[E]=d.useState((()=>new r.Vector3)),[F]=d.useState((()=>new r.Vector4)),[W]=d.useState((()=>new r.Matrix4)),[q]=d.useState((()=>new r.PerspectiveCamera)),I=d.useCallback((()=>{var e;const t=v.current.parent||(null==(e=v.current)?void 0:e.__r3f.parent);if(!t)return;if(B.setFromMatrixPosition(t.matrixWorld),_.setFromMatrixPosition(b.matrixWorld),O.extractRotation(t.matrixWorld),D.set(0,0,1),D.applyMatrix4(O),B.addScaledVector(D,T),V.subVectors(B,_),V.dot(D)>0)return;V.reflect(D).negate(),V.add(B),O.extractRotation(b.matrixWorld),P.set(0,0,-1),P.applyMatrix4(O),P.add(_),E.subVectors(B,P),E.reflect(D).negate(),E.add(B),q.position.copy(V),q.up.set(0,1,0),q.up.applyMatrix4(O),q.up.reflect(D),q.lookAt(E),q.far=b.far,q.updateMatrixWorld(),q.projectionMatrix.copy(b.projectionMatrix),W.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),W.multiply(q.projectionMatrix),W.multiply(q.matrixWorldInverse),W.multiply(t.matrixWorld),j.setFromNormalAndCoplanarPoint(D,B),j.applyMatrix4(q.matrixWorldInverse),U.set(j.normal.x,j.normal.y,j.normal.z,j.constant);const r=q.projectionMatrix;F.x=(Math.sign(U.x)+r.elements[8])/r.elements[0],F.y=(Math.sign(U.y)+r.elements[9])/r.elements[5],F.z=-1,F.w=(1+r.elements[10])/r.elements[14],U.multiplyScalar(2/U.dot(F)),r.elements[2]=U.x,r.elements[6]=U.y,r.elements[10]=U.z+1,r.elements[14]=U.w}),[b,T]),[C,k,L,z]=d.useMemo((()=>{const a={minFilter:r.LinearFilter,magFilter:r.LinearFilter,type:r.HalfFloatType},u=new r.WebGLRenderTarget(n,n,a);u.depthBuffer=!0,u.depthTexture=new r.DepthTexture(n,n),u.depthTexture.format=r.DepthFormat,u.depthTexture.type=r.UnsignedShortType;const d=new r.WebGLRenderTarget(n,n,a);return[u,d,new i.BlurPass({gl:w,resolution:n,width:o[0],height:o[1],minDepthThreshold:s,maxDepthThreshold:l,depthScale:p,depthToBlurRatioBias:m}),{mirror:h,textureMatrix:W,mixBlur:e,tDiffuse:u.texture,tDepth:u.depthTexture,tDiffuseBlur:d.texture,hasBlur:g,mixStrength:t,minDepthThreshold:s,maxDepthThreshold:l,depthScale:p,depthToBlurRatioBias:m,distortion:f,distortionMap:M,mixContrast:x,"defines-USE_BLUR":g?"":void 0,"defines-USE_DEPTH":p>0?"":void 0,"defines-USE_DISTORTION":M?"":void 0}]}),[w,o,W,n,h,g,e,t,s,l,p,m,f,M,x]);return a.useFrame((()=>{var e;const t=v.current.parent||(null==(e=v.current)?void 0:e.__r3f.parent);if(!t)return;t.visible=!1;const r=w.xr.enabled,a=w.shadowMap.autoUpdate;I(),w.xr.enabled=!1,w.shadowMap.autoUpdate=!1,w.setRenderTarget(C),w.state.buffers.depth.setMask(!0),w.autoClear||w.clear(),w.render(R,q),g&&L.render(w,C,k),w.xr.enabled=r,w.shadowMap.autoUpdate=a,t.visible=!0,w.setRenderTarget(null)})),d.createElement("meshReflectorMaterialImpl",u.default({attach:"material",key:"key"+z["defines-USE_BLUR"]+z["defines-USE_DEPTH"]+z["defines-USE_DISTORTION"],ref:c.default([v,y])},z,S))}));exports.MeshReflectorMaterial=p;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),a=require("three-mesh-bvh"),n=require("../materials/MeshRefractionMaterial.cjs.js");function i(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("three"),require("./shaderMaterial.cjs.js");var o=i(r);exports.MeshRefractionMaterial=function({aberrationStrength:i=0,fastChroma:u=!0,envMap:s,...c}){t.extend({MeshRefractionMaterial:n.MeshRefractionMaterial});const l=r.useRef(),{size:h}=t.useThree(),M=r.useMemo((()=>{var e,r;const t={},a=(n=s)&&n.isCubeTexture;var n;const o=(null!==(e=a?null==(r=s.image[0])?void 0:r.width:s.image.width)&&void 0!==e?e:1024)/4,c=Math.floor(Math.log2(o)),l=Math.pow(2,c),h=3*Math.max(l,112),M=4*l;return a&&(t.ENVMAP_TYPE_CUBEM=""),t.CUBEUV_TEXEL_WIDTH=""+1/h,t.CUBEUV_TEXEL_HEIGHT=""+1/M,t.CUBEUV_MAX_MIP=`${c}.0`,i>0&&(t.CHROMATIC_ABERRATIONS=""),u&&(t.FAST_CHROMA=""),t}),[i,u]);return r.useLayoutEffect((()=>{var e,r,t;const n=null==(e=l.current)||null==(r=e.__r3f)||null==(t=r.parent)?void 0:t.geometry;n&&(l.current.bvh=new a.MeshBVHUniformStruct,l.current.bvh.updateFrom(new a.MeshBVH(n.clone().toNonIndexed(),{lazyGeneration:!1,strategy:a.SAH})))}),[]),t.useFrame((({camera:e})=>{l.current.viewMatrixInverse=e.matrixWorld,l.current.projectionMatrixInverse=e.projectionMatrixInverse})),o.createElement("meshRefractionMaterial",e({key:JSON.stringify(M),defines:M,ref:l,resolution:[h.width,h.height],aberrationStrength:i,envMap:s},c))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),a=require("three-mesh-bvh"),n=require("../materials/MeshRefractionMaterial.cjs.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("three"),require("./shaderMaterial.cjs.js");var u=i(e),s=o(r);exports.MeshRefractionMaterial=function({aberrationStrength:e=0,fastChroma:i=!0,envMap:o,...c}){t.extend({MeshRefractionMaterial:n.MeshRefractionMaterial});const l=r.useRef(),{size:f}=t.useThree(),h=r.useMemo((()=>{var r,t;const a={},n=(u=o)&&u.isCubeTexture;var u;const s=(null!==(r=n?null==(t=o.image[0])?void 0:t.width:o.image.width)&&void 0!==r?r:1024)/4,c=Math.floor(Math.log2(s)),l=Math.pow(2,c),f=3*Math.max(l,112),h=4*l;return n&&(a.ENVMAP_TYPE_CUBEM=""),a.CUBEUV_TEXEL_WIDTH=""+1/f,a.CUBEUV_TEXEL_HEIGHT=""+1/h,a.CUBEUV_MAX_MIP=`${c}.0`,e>0&&(a.CHROMATIC_ABERRATIONS=""),i&&(a.FAST_CHROMA=""),a}),[e,i]);return r.useLayoutEffect((()=>{var e,r,t;const n=null==(e=l.current)||null==(r=e.__r3f)||null==(t=r.parent)?void 0:t.geometry;n&&(l.current.bvh=new a.MeshBVHUniformStruct,l.current.bvh.updateFrom(new a.MeshBVH(n.clone().toNonIndexed(),{lazyGeneration:!1,strategy:a.SAH})))}),[]),t.useFrame((({camera:e})=>{l.current.viewMatrixInverse=e.matrixWorld,l.current.projectionMatrixInverse=e.projectionMatrixInverse})),s.createElement("meshRefractionMaterial",u.default({key:JSON.stringify(h),defines:h,ref:l,resolution:[f.width,f.height],aberrationStrength:e,envMap:o},c))};
@@ -1 +1 @@
1
- "use strict";var n=require("@babel/runtime/helpers/extends"),e=require("three"),t=require("react"),a=require("@react-three/fiber"),r=require("./useFBO.cjs.js"),o=require("../materials/DiscardMaterial.cjs.js");function i(n){var e=Object.create(null);return n&&Object.keys(n).forEach((function(t){if("default"!==t){var a=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,a.get?a:{enumerable:!0,get:function(){return n[t]}})}})),e.default=n,Object.freeze(e)}require("./shaderMaterial.cjs.js");var s=i(e),l=i(t);class c extends s.MeshPhysicalMaterial{constructor(n=6,e=!1){super(),this.uniforms={chromaticAberration:{value:.05},transmission:{value:0},_transmission:{value:1},transmissionMap:{value:null},roughness:{value:0},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:1/0},attenuationColor:{value:new s.Color("white")},anisotropicBlur:{value:.1},time:{value:0},distortion:{value:0},distortionScale:{value:.5},temporalDistortion:{value:0},buffer:{value:null}},this.onBeforeCompile=t=>{t.uniforms={...t.uniforms,...this.uniforms},e?t.defines.USE_SAMPLER="":t.defines.USE_TRANSMISSION="",t.fragmentShader="\n uniform float chromaticAberration; \n uniform float anisotropicBlur; \n uniform float time;\n uniform float distortion;\n uniform float distortionScale;\n uniform float temporalDistortion;\n uniform sampler2D buffer;\n\n vec3 random3(vec3 c) {\n float j = 4096.0*sin(dot(c,vec3(17.0, 59.4, 15.0)));\n vec3 r;\n r.z = fract(512.0*j);\n j *= .125;\n r.x = fract(512.0*j);\n j *= .125;\n r.y = fract(512.0*j);\n return r-0.5;\n }\n\n float seed = 0.0;\n uint hash( uint x ) {\n x += ( x << 10u );\n x ^= ( x >> 6u );\n x += ( x << 3u );\n x ^= ( x >> 11u );\n x += ( x << 15u );\n return x;\n }\n\n // Compound versions of the hashing algorithm I whipped together.\n uint hash( uvec2 v ) { return hash( v.x ^ hash(v.y) ); }\n uint hash( uvec3 v ) { return hash( v.x ^ hash(v.y) ^ hash(v.z) ); }\n uint hash( uvec4 v ) { return hash( v.x ^ hash(v.y) ^ hash(v.z) ^ hash(v.w) ); }\n\n // Construct a float with half-open range [0:1] using low 23 bits.\n // All zeroes yields 0.0, all ones yields the next smallest representable value below 1.0.\n float floatConstruct( uint m ) {\n const uint ieeeMantissa = 0x007FFFFFu; // binary32 mantissa bitmask\n const uint ieeeOne = 0x3F800000u; // 1.0 in IEEE binary32\n m &= ieeeMantissa; // Keep only mantissa bits (fractional part)\n m |= ieeeOne; // Add fractional part to 1.0\n float f = uintBitsToFloat( m ); // Range [1:2]\n return f - 1.0; // Range [0:1]\n }\n\n // Pseudo-random value in half-open range [0:1].\n float random( float x ) { return floatConstruct(hash(floatBitsToUint(x))); }\n float random( vec2 v ) { return floatConstruct(hash(floatBitsToUint(v))); }\n float random( vec3 v ) { return floatConstruct(hash(floatBitsToUint(v))); }\n float random( vec4 v ) { return floatConstruct(hash(floatBitsToUint(v))); }\n\n float rand() {\n float result = random(vec3(gl_FragCoord.xy, seed));\n seed += 1.0;\n return result;\n }\n\n const float F3 = 0.3333333;\n const float G3 = 0.1666667;\n\n float snoise(vec3 p) {\n vec3 s = floor(p + dot(p, vec3(F3)));\n vec3 x = p - s + dot(s, vec3(G3));\n vec3 e = step(vec3(0.0), x - x.yzx);\n vec3 i1 = e*(1.0 - e.zxy);\n vec3 i2 = 1.0 - e.zxy*(1.0 - e);\n vec3 x1 = x - i1 + G3;\n vec3 x2 = x - i2 + 2.0*G3;\n vec3 x3 = x - 1.0 + 3.0*G3;\n vec4 w, d;\n w.x = dot(x, x);\n w.y = dot(x1, x1);\n w.z = dot(x2, x2);\n w.w = dot(x3, x3);\n w = max(0.6 - w, 0.0);\n d.x = dot(random3(s), x);\n d.y = dot(random3(s + i1), x1);\n d.z = dot(random3(s + i2), x2);\n d.w = dot(random3(s + 1.0), x3);\n w *= w;\n w *= w;\n d *= w;\n return dot(d, vec4(52.0));\n }\n\n float snoiseFractal(vec3 m) {\n return 0.5333333* snoise(m)\n +0.2666667* snoise(2.0*m)\n +0.1333333* snoise(4.0*m)\n +0.0666667* snoise(8.0*m);\n }\n"+t.fragmentShader,t.fragmentShader=t.fragmentShader.replace("#include <transmission_pars_fragment>","\n #ifdef USE_TRANSMISSION\n // Transmission code is based on glTF-Sampler-Viewer\n // https://github.com/KhronosGroup/glTF-Sample-Viewer\n uniform float _transmission;\n uniform float thickness;\n uniform float attenuationDistance;\n uniform vec3 attenuationColor;\n #ifdef USE_TRANSMISSIONMAP\n uniform sampler2D transmissionMap;\n #endif\n #ifdef USE_THICKNESSMAP\n uniform sampler2D thicknessMap;\n #endif\n uniform vec2 transmissionSamplerSize;\n uniform sampler2D transmissionSamplerMap;\n uniform mat4 modelMatrix;\n uniform mat4 projectionMatrix;\n varying vec3 vWorldPosition;\n vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n // Direction of refracted light.\n vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n // Compute rotation-independant scaling of the model matrix.\n vec3 modelScale;\n modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n // The thickness is specified in local space.\n return normalize( refractionVector ) * thickness * modelScale;\n }\n float applyIorToRoughness( const in float roughness, const in float ior ) {\n // Scale roughness with IOR so that an IOR of 1.0 results in no microfacet refraction and\n // an IOR of 1.5 results in the default amount of microfacet refraction.\n return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n }\n vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n float framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); \n #ifdef USE_SAMPLER\n #ifdef texture2DLodEXT\n return texture2DLodEXT(transmissionSamplerMap, fragCoord.xy, framebufferLod);\n #else\n return texture2D(transmissionSamplerMap, fragCoord.xy, framebufferLod);\n #endif\n #else\n return texture2D(buffer, fragCoord.xy);\n #endif\n }\n vec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n if ( isinf( attenuationDistance ) ) {\n // Attenuation distance is +∞, i.e. the transmitted color is not attenuated at all.\n return radiance;\n } else {\n // Compute light attenuation using Beer's law.\n vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); // Beer's law\n return transmittance * radiance;\n }\n }\n vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n const in vec3 attenuationColor, const in float attenuationDistance ) {\n vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n vec3 refractedRayExit = position + transmissionRay;\n // Project refracted vector on the framebuffer, while mapping to normalized device coordinates.\n vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n vec2 refractionCoords = ndcPos.xy / ndcPos.w;\n refractionCoords += 1.0;\n refractionCoords /= 2.0;\n // Sample framebuffer to get pixel the refracted ray hits.\n vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n vec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n // Get the specular component.\n vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n return vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n }\n #endif\n"),t.fragmentShader=t.fragmentShader.replace("#include <transmission_fragment>",` \n // Improve the refraction to use the world pos\n material.transmission = _transmission;\n material.transmissionAlpha = 1.0;\n material.thickness = thickness;\n material.attenuationDistance = attenuationDistance;\n material.attenuationColor = attenuationColor;\n #ifdef USE_TRANSMISSIONMAP\n material.transmission *= texture2D( transmissionMap, vUv ).r;\n #endif\n #ifdef USE_THICKNESSMAP\n material.thickness *= texture2D( thicknessMap, vUv ).g;\n #endif\n \n vec3 pos = vWorldPosition;\n vec3 v = normalize( cameraPosition - pos );\n vec3 n = inverseTransformDirection( normal, viewMatrix );\n vec3 transmission = vec3(0.0);\n float transmissionR, transmissionB, transmissionG;\n float randomCoords = rand();\n float thickness_smear = thickness * max(pow(roughnessFactor, 0.33), anisotropicBlur);\n vec3 distortionNormal = vec3(0.0);\n vec3 temporalOffset = vec3(time, -time, -time) * temporalDistortion;\n if (distortion > 0.0) {\n distortionNormal = distortion * vec3(snoiseFractal(vec3((pos * distortionScale + temporalOffset))), snoiseFractal(vec3(pos.zxy * distortionScale - temporalOffset)), snoiseFractal(vec3(pos.yxz * distortionScale + temporalOffset)));\n }\n for (float i = 0.0; i < ${n}.0; i ++) {\n vec3 sampleNorm = normalize(n + roughnessFactor * roughnessFactor * 2.0 * normalize(vec3(rand() - 0.5, rand() - 0.5, rand() - 0.5)) * pow(rand(), 0.33) + distortionNormal);\n transmissionR = getIBLVolumeRefraction(\n sampleNorm, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n pos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness + thickness_smear * (i + randomCoords) / float(${n}),\n material.attenuationColor, material.attenuationDistance\n ).r;\n transmissionG = getIBLVolumeRefraction(\n sampleNorm, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n pos, modelMatrix, viewMatrix, projectionMatrix, material.ior * (1.0 + chromaticAberration * (i + randomCoords) / float(${n})) , material.thickness + thickness_smear * (i + randomCoords) / float(${n}),\n material.attenuationColor, material.attenuationDistance\n ).g;\n transmissionB = getIBLVolumeRefraction(\n sampleNorm, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n pos, modelMatrix, viewMatrix, projectionMatrix, material.ior * (1.0 + 2.0 * chromaticAberration * (i + randomCoords) / float(${n})), material.thickness + thickness_smear * (i + randomCoords) / float(${n}),\n material.attenuationColor, material.attenuationDistance\n ).b;\n transmission.r += transmissionR;\n transmission.g += transmissionG;\n transmission.b += transmissionB;\n }\n transmission /= ${n}.0;\n totalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\n`)},Object.keys(this.uniforms).forEach((n=>Object.defineProperty(this,n,{get:()=>this.uniforms[n].value,set:e=>this.uniforms[n].value=e})))}}const m=l.forwardRef((({buffer:e,transmissionSampler:t=!1,backside:i=!1,side:m=s.FrontSide,transmission:u=1,thickness:f=0,backsideThickness:d=0,samples:v=10,resolution:h,backsideResolution:p,background:x,anisotropy:g,anisotropicBlur:S,...M},C)=>{a.extend({MeshTransmissionMaterial:c});const b=l.useRef(null),[y]=l.useState((()=>new o.DiscardMaterial)),w=r.useFBO(p||h),k=r.useFBO(h);let D,R,T;return a.useFrame((n=>{b.current.time=n.clock.getElapsedTime(),b.current.buffer!==k.texture||t||(T=b.current.__r3f.parent,T&&(R=n.gl.toneMapping,D=n.scene.background,n.gl.toneMapping=s.NoToneMapping,x&&(n.scene.background=x),T.material=y,i&&(n.gl.setRenderTarget(w),n.gl.render(n.scene,n.camera),T.material=b.current,T.material.buffer=w.texture,T.material.thickness=d,T.material.side=s.BackSide),n.gl.setRenderTarget(k),n.gl.render(n.scene,n.camera),T.material.thickness=f,T.material.side=m,T.material.buffer=k.texture,n.scene.background=D,n.gl.setRenderTarget(null),T.material=b.current,n.gl.toneMapping=R))})),l.useImperativeHandle(C,(()=>b.current),[]),l.createElement("meshTransmissionMaterial",n({args:[v,t],ref:b},M,{buffer:e||k.texture,_transmission:u,anisotropicBlur:null!=S?S:g,transmission:t?u:0,thickness:f,side:m}))}));exports.MeshTransmissionMaterial=m;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("@babel/runtime/helpers/extends"),e=require("three"),t=require("react"),a=require("@react-three/fiber"),r=require("./useFBO.cjs.js"),o=require("../materials/DiscardMaterial.cjs.js");function i(n){return n&&"object"==typeof n&&"default"in n?n:{default:n}}function s(n){if(n&&n.__esModule)return n;var e=Object.create(null);return n&&Object.keys(n).forEach((function(t){if("default"!==t){var a=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,a.get?a:{enumerable:!0,get:function(){return n[t]}})}})),e.default=n,Object.freeze(e)}require("./shaderMaterial.cjs.js");var l=i(n),c=s(e),m=s(t);class u extends c.MeshPhysicalMaterial{constructor(n=6,e=!1){super(),this.uniforms={chromaticAberration:{value:.05},transmission:{value:0},_transmission:{value:1},transmissionMap:{value:null},roughness:{value:0},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:1/0},attenuationColor:{value:new c.Color("white")},anisotropicBlur:{value:.1},time:{value:0},distortion:{value:0},distortionScale:{value:.5},temporalDistortion:{value:0},buffer:{value:null}},this.onBeforeCompile=t=>{t.uniforms={...t.uniforms,...this.uniforms},e?t.defines.USE_SAMPLER="":t.defines.USE_TRANSMISSION="",t.fragmentShader="\n uniform float chromaticAberration; \n uniform float anisotropicBlur; \n uniform float time;\n uniform float distortion;\n uniform float distortionScale;\n uniform float temporalDistortion;\n uniform sampler2D buffer;\n\n vec3 random3(vec3 c) {\n float j = 4096.0*sin(dot(c,vec3(17.0, 59.4, 15.0)));\n vec3 r;\n r.z = fract(512.0*j);\n j *= .125;\n r.x = fract(512.0*j);\n j *= .125;\n r.y = fract(512.0*j);\n return r-0.5;\n }\n\n float seed = 0.0;\n uint hash( uint x ) {\n x += ( x << 10u );\n x ^= ( x >> 6u );\n x += ( x << 3u );\n x ^= ( x >> 11u );\n x += ( x << 15u );\n return x;\n }\n\n // Compound versions of the hashing algorithm I whipped together.\n uint hash( uvec2 v ) { return hash( v.x ^ hash(v.y) ); }\n uint hash( uvec3 v ) { return hash( v.x ^ hash(v.y) ^ hash(v.z) ); }\n uint hash( uvec4 v ) { return hash( v.x ^ hash(v.y) ^ hash(v.z) ^ hash(v.w) ); }\n\n // Construct a float with half-open range [0:1] using low 23 bits.\n // All zeroes yields 0.0, all ones yields the next smallest representable value below 1.0.\n float floatConstruct( uint m ) {\n const uint ieeeMantissa = 0x007FFFFFu; // binary32 mantissa bitmask\n const uint ieeeOne = 0x3F800000u; // 1.0 in IEEE binary32\n m &= ieeeMantissa; // Keep only mantissa bits (fractional part)\n m |= ieeeOne; // Add fractional part to 1.0\n float f = uintBitsToFloat( m ); // Range [1:2]\n return f - 1.0; // Range [0:1]\n }\n\n // Pseudo-random value in half-open range [0:1].\n float random( float x ) { return floatConstruct(hash(floatBitsToUint(x))); }\n float random( vec2 v ) { return floatConstruct(hash(floatBitsToUint(v))); }\n float random( vec3 v ) { return floatConstruct(hash(floatBitsToUint(v))); }\n float random( vec4 v ) { return floatConstruct(hash(floatBitsToUint(v))); }\n\n float rand() {\n float result = random(vec3(gl_FragCoord.xy, seed));\n seed += 1.0;\n return result;\n }\n\n const float F3 = 0.3333333;\n const float G3 = 0.1666667;\n\n float snoise(vec3 p) {\n vec3 s = floor(p + dot(p, vec3(F3)));\n vec3 x = p - s + dot(s, vec3(G3));\n vec3 e = step(vec3(0.0), x - x.yzx);\n vec3 i1 = e*(1.0 - e.zxy);\n vec3 i2 = 1.0 - e.zxy*(1.0 - e);\n vec3 x1 = x - i1 + G3;\n vec3 x2 = x - i2 + 2.0*G3;\n vec3 x3 = x - 1.0 + 3.0*G3;\n vec4 w, d;\n w.x = dot(x, x);\n w.y = dot(x1, x1);\n w.z = dot(x2, x2);\n w.w = dot(x3, x3);\n w = max(0.6 - w, 0.0);\n d.x = dot(random3(s), x);\n d.y = dot(random3(s + i1), x1);\n d.z = dot(random3(s + i2), x2);\n d.w = dot(random3(s + 1.0), x3);\n w *= w;\n w *= w;\n d *= w;\n return dot(d, vec4(52.0));\n }\n\n float snoiseFractal(vec3 m) {\n return 0.5333333* snoise(m)\n +0.2666667* snoise(2.0*m)\n +0.1333333* snoise(4.0*m)\n +0.0666667* snoise(8.0*m);\n }\n"+t.fragmentShader,t.fragmentShader=t.fragmentShader.replace("#include <transmission_pars_fragment>","\n #ifdef USE_TRANSMISSION\n // Transmission code is based on glTF-Sampler-Viewer\n // https://github.com/KhronosGroup/glTF-Sample-Viewer\n uniform float _transmission;\n uniform float thickness;\n uniform float attenuationDistance;\n uniform vec3 attenuationColor;\n #ifdef USE_TRANSMISSIONMAP\n uniform sampler2D transmissionMap;\n #endif\n #ifdef USE_THICKNESSMAP\n uniform sampler2D thicknessMap;\n #endif\n uniform vec2 transmissionSamplerSize;\n uniform sampler2D transmissionSamplerMap;\n uniform mat4 modelMatrix;\n uniform mat4 projectionMatrix;\n varying vec3 vWorldPosition;\n vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n // Direction of refracted light.\n vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n // Compute rotation-independant scaling of the model matrix.\n vec3 modelScale;\n modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n // The thickness is specified in local space.\n return normalize( refractionVector ) * thickness * modelScale;\n }\n float applyIorToRoughness( const in float roughness, const in float ior ) {\n // Scale roughness with IOR so that an IOR of 1.0 results in no microfacet refraction and\n // an IOR of 1.5 results in the default amount of microfacet refraction.\n return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n }\n vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n float framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); \n #ifdef USE_SAMPLER\n #ifdef texture2DLodEXT\n return texture2DLodEXT(transmissionSamplerMap, fragCoord.xy, framebufferLod);\n #else\n return texture2D(transmissionSamplerMap, fragCoord.xy, framebufferLod);\n #endif\n #else\n return texture2D(buffer, fragCoord.xy);\n #endif\n }\n vec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n if ( isinf( attenuationDistance ) ) {\n // Attenuation distance is +∞, i.e. the transmitted color is not attenuated at all.\n return radiance;\n } else {\n // Compute light attenuation using Beer's law.\n vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); // Beer's law\n return transmittance * radiance;\n }\n }\n vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n const in vec3 attenuationColor, const in float attenuationDistance ) {\n vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n vec3 refractedRayExit = position + transmissionRay;\n // Project refracted vector on the framebuffer, while mapping to normalized device coordinates.\n vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n vec2 refractionCoords = ndcPos.xy / ndcPos.w;\n refractionCoords += 1.0;\n refractionCoords /= 2.0;\n // Sample framebuffer to get pixel the refracted ray hits.\n vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n vec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n // Get the specular component.\n vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n return vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n }\n #endif\n"),t.fragmentShader=t.fragmentShader.replace("#include <transmission_fragment>",` \n // Improve the refraction to use the world pos\n material.transmission = _transmission;\n material.transmissionAlpha = 1.0;\n material.thickness = thickness;\n material.attenuationDistance = attenuationDistance;\n material.attenuationColor = attenuationColor;\n #ifdef USE_TRANSMISSIONMAP\n material.transmission *= texture2D( transmissionMap, vUv ).r;\n #endif\n #ifdef USE_THICKNESSMAP\n material.thickness *= texture2D( thicknessMap, vUv ).g;\n #endif\n \n vec3 pos = vWorldPosition;\n vec3 v = normalize( cameraPosition - pos );\n vec3 n = inverseTransformDirection( normal, viewMatrix );\n vec3 transmission = vec3(0.0);\n float transmissionR, transmissionB, transmissionG;\n float randomCoords = rand();\n float thickness_smear = thickness * max(pow(roughnessFactor, 0.33), anisotropicBlur);\n vec3 distortionNormal = vec3(0.0);\n vec3 temporalOffset = vec3(time, -time, -time) * temporalDistortion;\n if (distortion > 0.0) {\n distortionNormal = distortion * vec3(snoiseFractal(vec3((pos * distortionScale + temporalOffset))), snoiseFractal(vec3(pos.zxy * distortionScale - temporalOffset)), snoiseFractal(vec3(pos.yxz * distortionScale + temporalOffset)));\n }\n for (float i = 0.0; i < ${n}.0; i ++) {\n vec3 sampleNorm = normalize(n + roughnessFactor * roughnessFactor * 2.0 * normalize(vec3(rand() - 0.5, rand() - 0.5, rand() - 0.5)) * pow(rand(), 0.33) + distortionNormal);\n transmissionR = getIBLVolumeRefraction(\n sampleNorm, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n pos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness + thickness_smear * (i + randomCoords) / float(${n}),\n material.attenuationColor, material.attenuationDistance\n ).r;\n transmissionG = getIBLVolumeRefraction(\n sampleNorm, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n pos, modelMatrix, viewMatrix, projectionMatrix, material.ior * (1.0 + chromaticAberration * (i + randomCoords) / float(${n})) , material.thickness + thickness_smear * (i + randomCoords) / float(${n}),\n material.attenuationColor, material.attenuationDistance\n ).g;\n transmissionB = getIBLVolumeRefraction(\n sampleNorm, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n pos, modelMatrix, viewMatrix, projectionMatrix, material.ior * (1.0 + 2.0 * chromaticAberration * (i + randomCoords) / float(${n})), material.thickness + thickness_smear * (i + randomCoords) / float(${n}),\n material.attenuationColor, material.attenuationDistance\n ).b;\n transmission.r += transmissionR;\n transmission.g += transmissionG;\n transmission.b += transmissionB;\n }\n transmission /= ${n}.0;\n totalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\n`)},Object.keys(this.uniforms).forEach((n=>Object.defineProperty(this,n,{get:()=>this.uniforms[n].value,set:e=>this.uniforms[n].value=e})))}}const f=m.forwardRef((({buffer:n,transmissionSampler:e=!1,backside:t=!1,side:i=c.FrontSide,transmission:s=1,thickness:f=0,backsideThickness:d=0,samples:v=10,resolution:h,backsideResolution:p,background:x,anisotropy:g,anisotropicBlur:M,...S},C)=>{a.extend({MeshTransmissionMaterial:u});const b=m.useRef(null),[y]=m.useState((()=>new o.DiscardMaterial)),w=r.useFBO(p||h),k=r.useFBO(h);let D,R,T;return a.useFrame((n=>{b.current.time=n.clock.getElapsedTime(),b.current.buffer!==k.texture||e||(T=b.current.__r3f.parent,T&&(R=n.gl.toneMapping,D=n.scene.background,n.gl.toneMapping=c.NoToneMapping,x&&(n.scene.background=x),T.material=y,t&&(n.gl.setRenderTarget(w),n.gl.render(n.scene,n.camera),T.material=b.current,T.material.buffer=w.texture,T.material.thickness=d,T.material.side=c.BackSide),n.gl.setRenderTarget(k),n.gl.render(n.scene,n.camera),T.material.thickness=f,T.material.side=i,T.material.buffer=k.texture,n.scene.background=D,n.gl.setRenderTarget(null),T.material=b.current,n.gl.toneMapping=R))})),m.useImperativeHandle(C,(()=>b.current),[]),m.createElement("meshTransmissionMaterial",l.default({args:[v,e],ref:b},S,{buffer:n||k.texture,_transmission:s,anisotropicBlur:null!=M?M:g,transmission:e?s:0,thickness:f,side:i}))}));exports.MeshTransmissionMaterial=f;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),a=require("@react-three/fiber");function i(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var n=i(t);class o extends r.MeshStandardMaterial{constructor(e={}){super(e),this.setValues(e),this._time={value:0},this._factor={value:1}}onBeforeCompile(e){e.uniforms.time=this._time,e.uniforms.factor=this._factor,e.vertexShader=`\n uniform float time;\n uniform float factor;\n ${e.vertexShader}\n `,e.vertexShader=e.vertexShader.replace("#include <begin_vertex>","float theta = sin( time + position.y ) / 2.0 * factor;\n float c = cos( theta );\n float s = sin( theta );\n mat3 m = mat3( c, 0, s, 0, 1, 0, -s, 0, c );\n vec3 transformed = vec3( position ) * m;\n vNormal = vNormal * m;")}get time(){return this._time.value}set time(e){this._time.value=e}get factor(){return this._factor.value}set factor(e){this._factor.value=e}}const s=n.forwardRef((({speed:t=1,...r},i)=>{const[s]=n.useState((()=>new o));return a.useFrame((e=>s&&(s.time=e.clock.getElapsedTime()*t))),n.createElement("primitive",e({object:s,ref:i,attach:"material"},r))}));exports.MeshWobbleMaterial=s;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),a=require("@react-three/fiber");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var n=i(e),s=o(t);class c extends r.MeshStandardMaterial{constructor(e={}){super(e),this.setValues(e),this._time={value:0},this._factor={value:1}}onBeforeCompile(e){e.uniforms.time=this._time,e.uniforms.factor=this._factor,e.vertexShader=`\n uniform float time;\n uniform float factor;\n ${e.vertexShader}\n `,e.vertexShader=e.vertexShader.replace("#include <begin_vertex>","float theta = sin( time + position.y ) / 2.0 * factor;\n float c = cos( theta );\n float s = sin( theta );\n mat3 m = mat3( c, 0, s, 0, 1, 0, -s, 0, c );\n vec3 transformed = vec3( position ) * m;\n vNormal = vNormal * m;")}get time(){return this._time.value}set time(e){this._time.value=e}get factor(){return this._factor.value}set factor(e){this._factor.value=e}}const u=s.forwardRef((({speed:e=1,...t},r)=>{const[i]=s.useState((()=>new c));return a.useFrame((t=>i&&(i.time=t.clock.getElapsedTime()*e))),s.createElement("primitive",n.default({object:i,ref:r,attach:"material"},t))}));exports.MeshWobbleMaterial=u;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("@react-three/fiber"),t=require("react"),n=require("three-stdlib");function s(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var a=s(t);const o=a.forwardRef((({makeDefault:t,camera:s,regress:o,domElement:c,enableDamping:u=!0,keyEvents:i=!1,onChange:d,onStart:f,onEnd:l,...m},v)=>{const b=r.useThree((e=>e.invalidate)),E=r.useThree((e=>e.camera)),h=r.useThree((e=>e.gl)),g=r.useThree((e=>e.events)),p=r.useThree((e=>e.setEvents)),O=r.useThree((e=>e.set)),T=r.useThree((e=>e.get)),j=r.useThree((e=>e.performance)),L=s||E,q=c||g.connected||h.domElement,y=a.useMemo((()=>new n.OrbitControls(L)),[L]);return r.useFrame((()=>{y.enabled&&y.update()}),-1),a.useEffect((()=>(i&&y.connect(!0===i?q:i),y.connect(q),()=>{y.dispose()})),[i,q,o,y,b]),a.useEffect((()=>{const e=e=>{b(),o&&j.regress(),d&&d(e)},r=e=>{f&&f(e)},t=e=>{l&&l(e)};return y.addEventListener("change",e),y.addEventListener("start",r),y.addEventListener("end",t),()=>{y.removeEventListener("start",r),y.removeEventListener("end",t),y.removeEventListener("change",e)}}),[d,f,l,y,b,p]),a.useEffect((()=>{if(t){const e=T().controls;return O({controls:y}),()=>O({controls:e})}}),[t,y]),a.createElement("primitive",e({ref:v,object:y,enableDamping:u},m))}));exports.OrbitControls=o;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),n=require("three-stdlib");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var a=s(e),u=o(r);const c=u.forwardRef((({makeDefault:e,camera:r,regress:s,domElement:o,enableDamping:c=!0,keyEvents:i=!1,onChange:f,onStart:d,onEnd:l,...m},v)=>{const b=t.useThree((e=>e.invalidate)),E=t.useThree((e=>e.camera)),h=t.useThree((e=>e.gl)),p=t.useThree((e=>e.events)),g=t.useThree((e=>e.setEvents)),O=t.useThree((e=>e.set)),j=t.useThree((e=>e.get)),T=t.useThree((e=>e.performance)),y=r||E,L=o||p.connected||h.domElement,q=u.useMemo((()=>new n.OrbitControls(y)),[y]);return t.useFrame((()=>{q.enabled&&q.update()}),-1),u.useEffect((()=>(i&&q.connect(!0===i?L:i),q.connect(L),()=>{q.dispose()})),[i,L,s,q,b]),u.useEffect((()=>{const e=e=>{b(),s&&T.regress(),f&&f(e)},t=e=>{d&&d(e)},r=e=>{l&&l(e)};return q.addEventListener("change",e),q.addEventListener("start",t),q.addEventListener("end",r),()=>{q.removeEventListener("start",t),q.removeEventListener("end",r),q.removeEventListener("change",e)}}),[f,d,l,q,b,g]),u.useEffect((()=>{if(e){const e=j().controls;return O({controls:q}),()=>O({controls:e})}}),[e,q]),u.createElement("primitive",a.default({ref:v,object:q,enableDamping:c},m))}));exports.OrbitControls=c;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),u=require("react-merge-refs"),n=require("./useFBO.cjs.js");function a(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("three");var c=a(r);const s=c.forwardRef((({envMap:r,resolution:a=256,frames:s=1/0,children:i,makeDefault:o,...l},f)=>{const g=t.useThree((({set:e})=>e)),h=t.useThree((({camera:e})=>e)),m=t.useThree((({size:e})=>e)),d=c.useRef(null),b=c.useRef(null),p=n.useFBO(a);c.useLayoutEffect((()=>{l.manual||d.current.updateProjectionMatrix()}),[m,l]),c.useLayoutEffect((()=>{d.current.updateProjectionMatrix()})),c.useLayoutEffect((()=>{if(o){const e=h;return g((()=>({camera:d.current}))),()=>g((()=>({camera:e})))}}),[d,o,g]);let j=0,O=null;const v="function"==typeof i;return t.useFrame((e=>{v&&(s===1/0||j<s)&&(b.current.visible=!1,e.gl.setRenderTarget(p),O=e.scene.background,r&&(e.scene.background=r),e.gl.render(e.scene,d.current),e.scene.background=O,e.gl.setRenderTarget(null),b.current.visible=!0,j++)})),c.createElement(c.Fragment,null,c.createElement("orthographicCamera",e({left:m.width/-2,right:m.width/2,top:m.height/2,bottom:m.height/-2,ref:u([d,f])},l),!v&&i),c.createElement("group",{ref:b},v&&i(p.texture)))}));exports.OrthographicCamera=s;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),u=require("react-merge-refs"),n=require("./useFBO.cjs.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("three");var o=a(e),s=c(r),i=a(u);const l=s.forwardRef((({envMap:e,resolution:r=256,frames:u=1/0,children:a,makeDefault:c,...l},f)=>{const d=t.useThree((({set:e})=>e)),g=t.useThree((({camera:e})=>e)),h=t.useThree((({size:e})=>e)),b=s.useRef(null),m=s.useRef(null),p=n.useFBO(r);s.useLayoutEffect((()=>{l.manual||b.current.updateProjectionMatrix()}),[h,l]),s.useLayoutEffect((()=>{b.current.updateProjectionMatrix()})),s.useLayoutEffect((()=>{if(c){const e=g;return d((()=>({camera:b.current}))),()=>d((()=>({camera:e})))}}),[b,c,d]);let j=0,O=null;const y="function"==typeof a;return t.useFrame((r=>{y&&(u===1/0||j<u)&&(m.current.visible=!1,r.gl.setRenderTarget(p),O=r.scene.background,e&&(r.scene.background=e),r.gl.render(r.scene,b.current),r.scene.background=O,r.gl.setRenderTarget(null),m.current.visible=!0,j++)})),s.createElement(s.Fragment,null,s.createElement("orthographicCamera",o.default({left:h.width/-2,right:h.width/2,top:h.height/2,bottom:h.height/-2,ref:i.default([b,f])},l),!y&&a),s.createElement("group",{ref:m},y&&a(p.texture)))}));exports.OrthographicCamera=l;
@@ -1 +1 @@
1
- "use strict";var e=require("react"),n=require("@react-three/fiber");function r(e){var n=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var t=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,t.get?t:{enumerable:!0,get:function(){return e[r]}})}})),n.default=e,Object.freeze(n)}var t=r(e);const a=e.createContext(null);exports.PerformanceMonitor=function({iterations:r=10,ms:o=250,threshold:c=.75,step:s=.1,factor:l=.5,flipflops:i=1/0,bounds:f=(e=>e>100?[60,100]:[40,60]),onIncline:u,onDecline:h,onChange:p,onFallback:b,children:g}){const d=Math.pow(10,0),[m,k]=e.useState((()=>({fps:0,index:0,factor:l,flipped:0,refreshrate:0,fallback:!1,frames:[],averages:[],subscriptions:new Map,subscribe:e=>{const n=Symbol();return m.subscriptions.set(n,e.current),()=>{m.subscriptions.delete(n)}}})));let v=0;return n.useFrame((()=>{const{frames:e,averages:n}=m;if(!m.fallback&&n.length<r){e.push(performance.now());const t=e[e.length-1]-e[0];if(t>=o){if(m.fps=Math.round(e.length/t*1e3*d)/d,m.refreshrate=Math.max(m.refreshrate,m.fps),n[m.index++%r]=m.fps,n.length===r){const[e,t]=f(m.refreshrate),a=n.filter((e=>e>=t)),o=n.filter((n=>n<e));a.length>r*c&&(m.factor=Math.min(1,m.factor+s),m.flipped++,u&&u(m),m.subscriptions.forEach((e=>e.onIncline&&e.onIncline(m)))),o.length>r*c&&(m.factor=Math.max(0,m.factor-s),m.flipped++,h&&h(m),m.subscriptions.forEach((e=>e.onDecline&&e.onDecline(m)))),v!==m.factor&&(v=m.factor,p&&p(m),m.subscriptions.forEach((e=>e.onChange&&e.onChange(m)))),m.flipped>i&&!m.fallback&&(m.fallback=!0,b&&b(m),m.subscriptions.forEach((e=>e.onFallback&&e.onFallback(m)))),m.averages=[]}m.frames=[]}}})),t.createElement(a.Provider,{value:m},g)},exports.usePerformanceMonitor=function({onIncline:n,onDecline:r,onChange:t,onFallback:o}){const c=e.useContext(a),s=e.useRef({onIncline:n,onDecline:r,onChange:t,onFallback:o});e.useLayoutEffect((()=>{s.current.onIncline=n,s.current.onDecline=r,s.current.onChange=t,s.current.onFallback=o}),[n,r,t,o]),e.useLayoutEffect((()=>c.subscribe(s)),[c])};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),n=require("@react-three/fiber");function r(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var t=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,t.get?t:{enumerable:!0,get:function(){return e[r]}})}})),n.default=e,Object.freeze(n)}var t=r(e);const o=e.createContext(null);exports.PerformanceMonitor=function({iterations:r=10,ms:a=250,threshold:c=.75,step:s=.1,factor:l=.5,flipflops:i=1/0,bounds:f=(e=>e>100?[60,100]:[40,60]),onIncline:u,onDecline:p,onChange:b,onFallback:h,children:d}){const g=Math.pow(10,0),[m,k]=e.useState((()=>({fps:0,index:0,factor:l,flipped:0,refreshrate:0,fallback:!1,frames:[],averages:[],subscriptions:new Map,subscribe:e=>{const n=Symbol();return m.subscriptions.set(n,e.current),()=>{m.subscriptions.delete(n)}}})));let v=0;return n.useFrame((()=>{const{frames:e,averages:n}=m;if(!m.fallback&&n.length<r){e.push(performance.now());const t=e[e.length-1]-e[0];if(t>=a){if(m.fps=Math.round(e.length/t*1e3*g)/g,m.refreshrate=Math.max(m.refreshrate,m.fps),n[m.index++%r]=m.fps,n.length===r){const[e,t]=f(m.refreshrate),o=n.filter((e=>e>=t)),a=n.filter((n=>n<e));o.length>r*c&&(m.factor=Math.min(1,m.factor+s),m.flipped++,u&&u(m),m.subscriptions.forEach((e=>e.onIncline&&e.onIncline(m)))),a.length>r*c&&(m.factor=Math.max(0,m.factor-s),m.flipped++,p&&p(m),m.subscriptions.forEach((e=>e.onDecline&&e.onDecline(m)))),v!==m.factor&&(v=m.factor,b&&b(m),m.subscriptions.forEach((e=>e.onChange&&e.onChange(m)))),m.flipped>i&&!m.fallback&&(m.fallback=!0,h&&h(m),m.subscriptions.forEach((e=>e.onFallback&&e.onFallback(m)))),m.averages=[]}m.frames=[]}}})),t.createElement(o.Provider,{value:m},d)},exports.usePerformanceMonitor=function({onIncline:n,onDecline:r,onChange:t,onFallback:a}){const c=e.useContext(o),s=e.useRef({onIncline:n,onDecline:r,onChange:t,onFallback:a});e.useLayoutEffect((()=>{s.current.onIncline=n,s.current.onDecline=r,s.current.onChange=t,s.current.onFallback=a}),[n,r,t,a]),e.useLayoutEffect((()=>c.subscribe(s)),[c])};
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),u=require("react-merge-refs"),n=require("./useFBO.cjs.js");function c(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("three");var a=c(r);const s=a.forwardRef((({envMap:r,resolution:c=256,frames:s=1/0,makeDefault:i,children:l,...f},o)=>{const m=t.useThree((({set:e})=>e)),g=t.useThree((({camera:e})=>e)),b=t.useThree((({size:e})=>e)),d=a.useRef(null),p=a.useRef(null),h=n.useFBO(c);a.useLayoutEffect((()=>{f.manual||(d.current.aspect=b.width/b.height)}),[b,f]),a.useLayoutEffect((()=>{d.current.updateProjectionMatrix()}));let v=0,j=null;const O="function"==typeof l;return t.useFrame((e=>{O&&(s===1/0||v<s)&&(p.current.visible=!1,e.gl.setRenderTarget(h),j=e.scene.background,r&&(e.scene.background=r),e.gl.render(e.scene,d.current),e.scene.background=j,e.gl.setRenderTarget(null),p.current.visible=!0,v++)})),a.useLayoutEffect((()=>{if(i){const e=g;return m((()=>({camera:d.current}))),()=>m((()=>({camera:e})))}}),[d,i,m]),a.createElement(a.Fragment,null,a.createElement("perspectiveCamera",e({ref:u([d,o])},f),!O&&l),a.createElement("group",{ref:p},O&&l(h.texture)))}));exports.PerspectiveCamera=s;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),u=require("react-merge-refs"),n=require("./useFBO.cjs.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("three");var s=a(e),l=c(r),f=a(u);const i=l.forwardRef((({envMap:e,resolution:r=256,frames:u=1/0,makeDefault:a,children:c,...i},o)=>{const d=t.useThree((({set:e})=>e)),b=t.useThree((({camera:e})=>e)),m=t.useThree((({size:e})=>e)),p=l.useRef(null),g=l.useRef(null),h=n.useFBO(r);l.useLayoutEffect((()=>{i.manual||(p.current.aspect=m.width/m.height)}),[m,i]),l.useLayoutEffect((()=>{p.current.updateProjectionMatrix()}));let j=0,v=null;const y="function"==typeof c;return t.useFrame((r=>{y&&(u===1/0||j<u)&&(g.current.visible=!1,r.gl.setRenderTarget(h),v=r.scene.background,e&&(r.scene.background=e),r.gl.render(r.scene,p.current),r.scene.background=v,r.gl.setRenderTarget(null),g.current.visible=!0,j++)})),l.useLayoutEffect((()=>{if(a){const e=b;return d((()=>({camera:p.current}))),()=>d((()=>({camera:e})))}}),[p,a,d]),l.createElement(l.Fragment,null,l.createElement("perspectiveCamera",s.default({ref:f.default([p,o])},i),!y&&c),l.createElement("group",{ref:g},y&&c(h.texture)))}));exports.PerspectiveCamera=i;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react");function n(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var a=n(t),o=n(r);class i extends a.PointsMaterial{constructor(e){super(e),this.onBeforeCompile=(e,t)=>{const{isWebGL2:r}=t.capabilities;e.fragmentShader=e.fragmentShader.replace("#include <output_fragment>",`\n ${r?"#include <output_fragment>":"#extension GL_OES_standard_derivatives : enable\n#include <output_fragment>"}\n vec2 cxy = 2.0 * gl_PointCoord - 1.0;\n float r = dot(cxy, cxy);\n float delta = fwidth(r); \n float mask = 1.0 - smoothstep(1.0 - delta, 1.0 + delta, r);\n gl_FragColor = vec4(gl_FragColor.rgb, mask * gl_FragColor.a );\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n `)}}}const l=o.forwardRef(((t,r)=>{const[n]=o.useState((()=>new i(null)));return o.createElement("primitive",e({},t,{object:n,ref:r,attach:"material"}))}));exports.PointMaterial=l,exports.PointMaterialImpl=i;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function a(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var o=n(e),l=a(t),i=a(r);class u extends l.PointsMaterial{constructor(e){super(e),this.onBeforeCompile=(e,t)=>{const{isWebGL2:r}=t.capabilities;e.fragmentShader=e.fragmentShader.replace("#include <output_fragment>",`\n ${r?"#include <output_fragment>":"#extension GL_OES_standard_derivatives : enable\n#include <output_fragment>"}\n vec2 cxy = 2.0 * gl_PointCoord - 1.0;\n float r = dot(cxy, cxy);\n float delta = fwidth(r); \n float mask = 1.0 - smoothstep(1.0 - delta, 1.0 + delta, r);\n gl_FragColor = vec4(gl_FragColor.rgb, mask * gl_FragColor.a );\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n `)}}}const c=i.forwardRef(((e,t)=>{const[r]=i.useState((()=>new u(null)));return i.createElement("primitive",o.default({},e,{object:r,ref:t,attach:"material"}))}));exports.PointMaterial=c,exports.PointMaterialImpl=u;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),n=require("three-stdlib");function c(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var o=c(r);const s=o.forwardRef((({domElement:r,selector:c,onChange:s,onLock:i,onUnlock:a,enabled:u=!0,makeDefault:l,...d},f)=>{const{camera:h,...m}=d,v=t.useThree((e=>e.setEvents)),E=t.useThree((e=>e.gl)),k=t.useThree((e=>e.camera)),b=t.useThree((e=>e.invalidate)),p=t.useThree((e=>e.events)),L=t.useThree((e=>e.get)),g=t.useThree((e=>e.set)),T=h||k,j=r||p.connected||E.domElement,[y]=o.useState((()=>new n.PointerLockControls(T)));return o.useEffect((()=>{if(u){y.connect(j);const e=L().events.compute;return v({compute(e,t){const r=t.size.width/2,n=t.size.height/2;t.pointer.set(r/t.size.width*2-1,-n/t.size.height*2+1),t.raycaster.setFromCamera(t.pointer,t.camera)}}),()=>{y.disconnect(),v({compute:e})}}}),[u,y]),o.useEffect((()=>{const e=e=>{b(),s&&s(e)};y.addEventListener("change",e),i&&y.addEventListener("lock",i),a&&y.addEventListener("unlock",a);const t=()=>y.lock(),r=c?Array.from(document.querySelectorAll(c)):[document];return r.forEach((e=>e&&e.addEventListener("click",t))),()=>{y.removeEventListener("change",e),i&&y.addEventListener("lock",i),a&&y.addEventListener("unlock",a),r.forEach((e=>e?e.removeEventListener("click",t):void 0))}}),[s,i,a,c,y,b]),o.useEffect((()=>{if(l){const e=L().controls;return g({controls:y}),()=>g({controls:e})}}),[l,y]),o.createElement("primitive",e({ref:f,object:y},m))}));exports.PointerLockControls=s;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),n=require("three-stdlib");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=o(e),i=c(r);const u=i.forwardRef((({domElement:e,selector:r,onChange:o,onLock:c,onUnlock:u,enabled:a=!0,makeDefault:l,...d},f)=>{const{camera:h,...m}=d,v=t.useThree((e=>e.setEvents)),E=t.useThree((e=>e.gl)),b=t.useThree((e=>e.camera)),p=t.useThree((e=>e.invalidate)),k=t.useThree((e=>e.events)),L=t.useThree((e=>e.get)),g=t.useThree((e=>e.set)),j=h||b,y=e||k.connected||E.domElement,[O]=i.useState((()=>new n.PointerLockControls(j)));return i.useEffect((()=>{if(a){O.connect(y);const e=L().events.compute;return v({compute(e,t){const r=t.size.width/2,n=t.size.height/2;t.pointer.set(r/t.size.width*2-1,-n/t.size.height*2+1),t.raycaster.setFromCamera(t.pointer,t.camera)}}),()=>{O.disconnect(),v({compute:e})}}}),[a,O]),i.useEffect((()=>{const e=e=>{p(),o&&o(e)};O.addEventListener("change",e),c&&O.addEventListener("lock",c),u&&O.addEventListener("unlock",u);const t=()=>O.lock(),n=r?Array.from(document.querySelectorAll(r)):[document];return n.forEach((e=>e&&e.addEventListener("click",t))),()=>{O.removeEventListener("change",e),c&&O.addEventListener("lock",c),u&&O.addEventListener("unlock",u),n.forEach((e=>e?e.removeEventListener("click",t):void 0))}}),[o,c,u,r,O,p]),i.useEffect((()=>{if(l){const e=L().controls;return g({controls:O}),()=>g({controls:e})}}),[l,O]),i.createElement("primitive",s.default({ref:f,object:O},m))}));exports.PointerLockControls=u;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),n=require("@react-three/fiber"),a=require("react-merge-refs");function i(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=i(t),o=i(r);const c=new s.Matrix4,u=new s.Ray,l=new s.Sphere,f=new s.Vector3;class d extends s.Group{constructor(){super(),this.size=0,this.color=new s.Color("white"),this.instance={current:void 0},this.instanceKey={current:void 0}}get geometry(){var e;return null==(e=this.instance.current)?void 0:e.geometry}raycast(e,t){var r,n;const a=this.instance.current;if(!a||!a.geometry)return;const i=a.userData.instances.indexOf(this.instanceKey);if(-1===i||i>a.geometry.drawRange.count)return;const o=null!==(r=null==(n=e.params.Points)?void 0:n.threshold)&&void 0!==r?r:1;if(l.set(this.getWorldPosition(f),o),!1===e.ray.intersectsSphere(l))return;c.copy(a.matrixWorld).invert(),u.copy(e.ray).applyMatrix4(c);const d=o/((this.scale.x+this.scale.y+this.scale.z)/3),m=d*d,y=u.distanceSqToPoint(this.position);if(y<m){const r=new s.Vector3;u.closestPointToPoint(this.position,r),r.applyMatrix4(this.matrixWorld);const n=e.ray.origin.distanceTo(r);if(n<e.near||n>e.far)return;t.push({distance:n,distanceToRay:Math.sqrt(y),point:r,index:i,face:null,object:this})}}}let m,y;const p=o.createContext(null),h=new s.Matrix4,g=new s.Vector3,b=o.forwardRef((({children:t,range:r,limit:i=1e3,...c},u)=>{const l=o.useRef(null),[f,d]=o.useState([]),[[b,x,w]]=o.useState((()=>[new Float32Array(3*i),Float32Array.from({length:3*i},(()=>1)),Float32Array.from({length:i},(()=>1))]));o.useEffect((()=>{l.current.geometry.attributes.position.needsUpdate=!0})),n.useFrame((()=>{for(l.current.updateMatrix(),l.current.updateMatrixWorld(),h.copy(l.current.matrixWorld).invert(),l.current.geometry.drawRange.count=Math.min(i,void 0!==r?r:i,f.length),m=0;m<f.length;m++)y=f[m].current,y.getWorldPosition(g).applyMatrix4(h),g.toArray(b,3*m),l.current.geometry.attributes.position.needsUpdate=!0,y.matrixWorldNeedsUpdate=!0,y.color.toArray(x,3*m),l.current.geometry.attributes.color.needsUpdate=!0,w.set([y.size],m),l.current.geometry.attributes.size.needsUpdate=!0}));const P=o.useMemo((()=>({getParent:()=>l,subscribe:e=>(d((t=>[...t,e])),()=>d((t=>t.filter((t=>t.current!==e.current)))))})),[]);return o.createElement("points",e({userData:{instances:f},matrixAutoUpdate:!1,ref:a([u,l]),raycast:()=>null},c),o.createElement("bufferGeometry",null,o.createElement("bufferAttribute",{attach:"attributes-position",count:b.length/3,array:b,itemSize:3,usage:s.DynamicDrawUsage}),o.createElement("bufferAttribute",{attach:"attributes-color",count:x.length/3,array:x,itemSize:3,usage:s.DynamicDrawUsage}),o.createElement("bufferAttribute",{attach:"attributes-size",count:w.length,array:w,itemSize:1,usage:s.DynamicDrawUsage})),o.createElement(p.Provider,{value:P},t))})),x=o.forwardRef((({children:t,...r},i)=>{o.useMemo((()=>n.extend({PositionPoint:d})),[]);const s=o.useRef(),{subscribe:c,getParent:u}=o.useContext(p);return o.useLayoutEffect((()=>c(s)),[]),o.createElement("positionPoint",e({instance:u(),instanceKey:s,ref:a([i,s])},r),t)})),w=o.forwardRef((({children:t,positions:r,colors:i,sizes:c,stride:u=3,...l},f)=>{const d=o.useRef(null);return n.useFrame((()=>{const e=d.current.geometry.attributes;e.position.needsUpdate=!0,i&&(e.color.needsUpdate=!0),c&&(e.size.needsUpdate=!0)})),o.createElement("points",e({ref:a([f,d])},l),o.createElement("bufferGeometry",null,o.createElement("bufferAttribute",{attach:"attributes-position",count:r.length/u,array:r,itemSize:u,usage:s.DynamicDrawUsage}),i&&o.createElement("bufferAttribute",{attach:"attributes-color",count:i.length/u,array:i,itemSize:3,usage:s.DynamicDrawUsage}),c&&o.createElement("bufferAttribute",{attach:"attributes-size",count:c.length/u,array:c,itemSize:1,usage:s.DynamicDrawUsage})),t)})),P=o.forwardRef(((t,r)=>t.positions instanceof Float32Array?o.createElement(w,e({},t,{ref:r})):o.createElement(b,e({},t,{ref:r}))));exports.Point=x,exports.Points=P,exports.PointsBuffer=w,exports.PositionPoint=d;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),n=require("@react-three/fiber"),a=require("react-merge-refs");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=i(e),u=o(t),c=o(r),l=i(a);const f=new u.Matrix4,d=new u.Ray,m=new u.Sphere,y=new u.Vector3;class p extends u.Group{constructor(){super(),this.size=0,this.color=new u.Color("white"),this.instance={current:void 0},this.instanceKey={current:void 0}}get geometry(){var e;return null==(e=this.instance.current)?void 0:e.geometry}raycast(e,t){var r,n;const a=this.instance.current;if(!a||!a.geometry)return;const i=a.userData.instances.indexOf(this.instanceKey);if(-1===i||i>a.geometry.drawRange.count)return;const o=null!==(r=null==(n=e.params.Points)?void 0:n.threshold)&&void 0!==r?r:1;if(m.set(this.getWorldPosition(y),o),!1===e.ray.intersectsSphere(m))return;f.copy(a.matrixWorld).invert(),d.copy(e.ray).applyMatrix4(f);const s=o/((this.scale.x+this.scale.y+this.scale.z)/3),c=s*s,l=d.distanceSqToPoint(this.position);if(l<c){const r=new u.Vector3;d.closestPointToPoint(this.position,r),r.applyMatrix4(this.matrixWorld);const n=e.ray.origin.distanceTo(r);if(n<e.near||n>e.far)return;t.push({distance:n,distanceToRay:Math.sqrt(l),point:r,index:i,face:null,object:this})}}}let h,g;const b=c.createContext(null),x=new u.Matrix4,w=new u.Vector3,P=c.forwardRef((({children:e,range:t,limit:r=1e3,...a},i)=>{const o=c.useRef(null),[f,d]=c.useState([]),[[m,y,p]]=c.useState((()=>[new Float32Array(3*r),Float32Array.from({length:3*r},(()=>1)),Float32Array.from({length:r},(()=>1))]));c.useEffect((()=>{o.current.geometry.attributes.position.needsUpdate=!0})),n.useFrame((()=>{for(o.current.updateMatrix(),o.current.updateMatrixWorld(),x.copy(o.current.matrixWorld).invert(),o.current.geometry.drawRange.count=Math.min(r,void 0!==t?t:r,f.length),h=0;h<f.length;h++)g=f[h].current,g.getWorldPosition(w).applyMatrix4(x),w.toArray(m,3*h),o.current.geometry.attributes.position.needsUpdate=!0,g.matrixWorldNeedsUpdate=!0,g.color.toArray(y,3*h),o.current.geometry.attributes.color.needsUpdate=!0,p.set([g.size],h),o.current.geometry.attributes.size.needsUpdate=!0}));const P=c.useMemo((()=>({getParent:()=>o,subscribe:e=>(d((t=>[...t,e])),()=>d((t=>t.filter((t=>t.current!==e.current)))))})),[]);return c.createElement("points",s.default({userData:{instances:f},matrixAutoUpdate:!1,ref:l.default([i,o]),raycast:()=>null},a),c.createElement("bufferGeometry",null,c.createElement("bufferAttribute",{attach:"attributes-position",count:m.length/3,array:m,itemSize:3,usage:u.DynamicDrawUsage}),c.createElement("bufferAttribute",{attach:"attributes-color",count:y.length/3,array:y,itemSize:3,usage:u.DynamicDrawUsage}),c.createElement("bufferAttribute",{attach:"attributes-size",count:p.length,array:p,itemSize:1,usage:u.DynamicDrawUsage})),c.createElement(b.Provider,{value:P},e))})),v=c.forwardRef((({children:e,...t},r)=>{c.useMemo((()=>n.extend({PositionPoint:p})),[]);const a=c.useRef(),{subscribe:i,getParent:o}=c.useContext(b);return c.useLayoutEffect((()=>i(a)),[]),c.createElement("positionPoint",s.default({instance:o(),instanceKey:a,ref:l.default([r,a])},t),e)})),E=c.forwardRef((({children:e,positions:t,colors:r,sizes:a,stride:i=3,...o},f)=>{const d=c.useRef(null);return n.useFrame((()=>{const e=d.current.geometry.attributes;e.position.needsUpdate=!0,r&&(e.color.needsUpdate=!0),a&&(e.size.needsUpdate=!0)})),c.createElement("points",s.default({ref:l.default([f,d])},o),c.createElement("bufferGeometry",null,c.createElement("bufferAttribute",{attach:"attributes-position",count:t.length/i,array:t,itemSize:i,usage:u.DynamicDrawUsage}),r&&c.createElement("bufferAttribute",{attach:"attributes-color",count:r.length/i,array:r,itemSize:3,usage:u.DynamicDrawUsage}),a&&c.createElement("bufferAttribute",{attach:"attributes-size",count:a.length/i,array:a,itemSize:1,usage:u.DynamicDrawUsage})),e)})),z=c.forwardRef(((e,t)=>e.positions instanceof Float32Array?c.createElement(E,s.default({},e,{ref:t})):c.createElement(P,s.default({},e,{ref:t}))));exports.Point=v,exports.Points=z,exports.PointsBuffer=E,exports.PositionPoint=p;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),n=require("@react-three/fiber"),u=require("react-merge-refs");function o(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var c=o(r);const s=c.forwardRef((({url:r,distance:o=1,loop:s=!0,autoplay:a,...i},f)=>{const d=c.useRef(),l=n.useThree((({camera:e})=>e)),[p]=c.useState((()=>new t.AudioListener)),b=n.useLoader(t.AudioLoader,r);return c.useEffect((()=>{const e=d.current;e&&(e.setBuffer(b),e.setRefDistance(o),e.setLoop(s),a&&!e.isPlaying&&e.play())}),[b,l,o,s]),c.useEffect((()=>{const e=d.current;return l.add(p),()=>{l.remove(p),e&&(e.isPlaying&&e.stop(),e.source&&e.source._connected&&e.disconnect())}}),[]),c.createElement("positionalAudio",e({ref:u([d,f]),args:[p]},i))}));exports.PositionalAudio=s;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),u=require("@react-three/fiber"),n=require("react-merge-refs");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function a(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var c=o(e),s=a(r),i=o(n);const f=s.forwardRef((({url:e,distance:r=1,loop:n=!0,autoplay:o,...a},f)=>{const d=s.useRef(),l=u.useThree((({camera:e})=>e)),[p]=s.useState((()=>new t.AudioListener)),b=u.useLoader(t.AudioLoader,e);return s.useEffect((()=>{const e=d.current;e&&(e.setBuffer(b),e.setRefDistance(r),e.setLoop(n),o&&!e.isPlaying&&e.play())}),[b,l,r,n]),s.useEffect((()=>{const e=d.current;return l.add(p),()=>{l.remove(p),e&&(e.isPlaying&&e.stop(),e.source&&e.source._connected&&e.disconnect())}}),[]),s.createElement("positionalAudio",c.default({ref:i.default([d,f]),args:[p]},a))}));exports.PositionalAudio=f;
@@ -1 +1 @@
1
- "use strict";var e=require("three"),r=require("react"),t=require("@react-three/fiber");function c(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var c=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,c.get?c:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var u=c(r);exports.Preload=function({all:r,scene:c,camera:a}){const n=t.useThree((({gl:e})=>e)),s=t.useThree((({camera:e})=>e)),i=t.useThree((({scene:e})=>e));return u.useLayoutEffect((()=>{const t=[];r&&(c||i).traverse((e=>{!1===e.visible&&(t.push(e),e.visible=!0)})),n.compile(c||i,a||s);const u=new e.WebGLCubeRenderTarget(128);new e.CubeCamera(.01,1e5,u).update(n,c||i),u.dispose(),t.forEach((e=>e.visible=!1))}),[]),null};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),r=require("react"),t=require("@react-three/fiber");function u(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var c=u(r);exports.Preload=function({all:r,scene:u,camera:n}){const a=t.useThree((({gl:e})=>e)),s=t.useThree((({camera:e})=>e)),i=t.useThree((({scene:e})=>e));return c.useLayoutEffect((()=>{const t=[];r&&(u||i).traverse((e=>{!1===e.visible&&(t.push(e),e.visible=!0)})),a.compile(u||i,n||s);const c=new e.WebGLCubeRenderTarget(128);new e.CubeCamera(.01,1e5,c).update(a,u||i),c.dispose(),t.forEach((e=>e.visible=!1))}),[]),null};
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),n=require("react-merge-refs"),c=require("./Line.cjs.js");function o(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("@react-three/fiber"),require("three-stdlib");var s=o(r);const i=new t.Vector3,a=s.forwardRef((function({start:r=[0,0,0],end:o=[0,0,0],mid:a,segments:u=20,...f},v){const d=s.useRef(null),[l]=s.useState((()=>new t.QuadraticBezierCurve3(void 0,void 0,void 0))),y=s.useCallback(((e,r,n,c=20)=>(e instanceof t.Vector3?l.v0.copy(e):l.v0.set(...e),r instanceof t.Vector3?l.v2.copy(r):l.v2.set(...r),n instanceof t.Vector3?l.v1.copy(n):Array.isArray(n)?l.v1.set(...n):l.v1.copy(l.v0.clone().add(l.v2.clone().sub(l.v0)).add(i.set(0,l.v0.y-l.v2.y,0))),l.getPoints(c))),[]);s.useLayoutEffect((()=>{d.current.setPoints=(e,r,t)=>{const n=y(e,r,t);d.current.geometry&&d.current.geometry.setPositions(n.map((e=>e.toArray())).flat())}}),[]);const b=s.useMemo((()=>y(r,o,a,u)),[r,o,a,u]);return s.createElement(c.Line,e({ref:n([d,v]),points:b},f))}));exports.QuadraticBezierLine=a;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),n=require("react-merge-refs"),o=require("./Line.cjs.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}require("@react-three/fiber"),require("three-stdlib");var i=c(e),s=u(t),a=c(n);const f=new r.Vector3,d=s.forwardRef((function({start:e=[0,0,0],end:t=[0,0,0],mid:n,segments:c=20,...u},d){const l=s.useRef(null),[v]=s.useState((()=>new r.QuadraticBezierCurve3(void 0,void 0,void 0))),y=s.useCallback(((e,t,n,o=20)=>(e instanceof r.Vector3?v.v0.copy(e):v.v0.set(...e),t instanceof r.Vector3?v.v2.copy(t):v.v2.set(...t),n instanceof r.Vector3?v.v1.copy(n):Array.isArray(n)?v.v1.set(...n):v.v1.copy(v.v0.clone().add(v.v2.clone().sub(v.v0)).add(f.set(0,v.v0.y-v.v2.y,0))),v.getPoints(o))),[]);s.useLayoutEffect((()=>{l.current.setPoints=(e,t,r)=>{const n=y(e,t,r);l.current.geometry&&l.current.geometry.setPositions(n.map((e=>e.toArray())).flat())}}),[]);const b=s.useMemo((()=>y(e,t,n,c)),[e,t,n,c]);return s.createElement(o.Line,i.default({ref:a.default([l,d]),points:b},u))}));exports.QuadraticBezierLine=d;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),a=require("@react-three/fiber"),n=require("react-merge-refs"),s=require("../materials/BlurPass.cjs.js"),o=require("../materials/MeshReflectorMaterial.cjs.js");function i(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}require("../materials/ConvolutionMaterial.cjs.js");var l=i(t);a.extend({MeshReflectorMaterial:o.MeshReflectorMaterial});const u=l.forwardRef((({mixBlur:t=0,mixStrength:o=.5,resolution:i=256,blur:u=[0,0],args:c=[1,1],minDepthThreshold:d=.9,maxDepthThreshold:p=1,depthScale:m=0,depthToBlurRatioBias:h=.25,mirror:x=0,children:f,debug:M=0,distortion:w=1,mixContrast:T=1,distortionMap:b,...y},g)=>{l.useEffect((()=>{console.warn("Reflector has been deprecated and will be removed next major. Replace it with <MeshReflectorMaterial />!")}),[]);const S=a.useThree((({gl:e})=>e)),R=a.useThree((({camera:e})=>e)),j=a.useThree((({scene:e})=>e)),v=(u=Array.isArray(u)?u:[u,u])[0]+u[1]>0,B=l.useRef(null),[D]=l.useState((()=>new r.Plane)),[F]=l.useState((()=>new r.Vector3)),[P]=l.useState((()=>new r.Vector3)),[V]=l.useState((()=>new r.Vector3)),[W]=l.useState((()=>new r.Matrix4)),[E]=l.useState((()=>new r.Vector3(0,0,-1))),[q]=l.useState((()=>new r.Vector4)),[O]=l.useState((()=>new r.Vector3)),[U]=l.useState((()=>new r.Vector3)),[C]=l.useState((()=>new r.Vector4)),[L]=l.useState((()=>new r.Matrix4)),[k]=l.useState((()=>new r.PerspectiveCamera)),z=l.useCallback((()=>{if(P.setFromMatrixPosition(B.current.matrixWorld),V.setFromMatrixPosition(R.matrixWorld),W.extractRotation(B.current.matrixWorld),F.set(0,0,1),F.applyMatrix4(W),O.subVectors(P,V),O.dot(F)>0)return;O.reflect(F).negate(),O.add(P),W.extractRotation(R.matrixWorld),E.set(0,0,-1),E.applyMatrix4(W),E.add(V),U.subVectors(P,E),U.reflect(F).negate(),U.add(P),k.position.copy(O),k.up.set(0,1,0),k.up.applyMatrix4(W),k.up.reflect(F),k.lookAt(U),k.far=R.far,k.updateMatrixWorld(),k.projectionMatrix.copy(R.projectionMatrix),L.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),L.multiply(k.projectionMatrix),L.multiply(k.matrixWorldInverse),L.multiply(B.current.matrixWorld),D.setFromNormalAndCoplanarPoint(F,P),D.applyMatrix4(k.matrixWorldInverse),q.set(D.normal.x,D.normal.y,D.normal.z,D.constant);const e=k.projectionMatrix;C.x=(Math.sign(q.x)+e.elements[8])/e.elements[0],C.y=(Math.sign(q.y)+e.elements[9])/e.elements[5],C.z=-1,C.w=(1+e.elements[10])/e.elements[14],q.multiplyScalar(2/q.dot(C)),e.elements[2]=q.x,e.elements[6]=q.y,e.elements[10]=q.z+1,e.elements[14]=q.w}),[]),[A,I,G,_]=l.useMemo((()=>{const e={type:r.HalfFloatType,minFilter:r.LinearFilter,magFilter:r.LinearFilter},a=new r.WebGLRenderTarget(i,i,e);a.depthBuffer=!0,a.depthTexture=new r.DepthTexture(i,i),a.depthTexture.format=r.DepthFormat,a.depthTexture.type=r.UnsignedShortType;const n=new r.WebGLRenderTarget(i,i,e);return[a,n,new s.BlurPass({gl:S,resolution:i,width:u[0],height:u[1],minDepthThreshold:d,maxDepthThreshold:p,depthScale:m,depthToBlurRatioBias:h}),{mirror:x,textureMatrix:L,mixBlur:t,tDiffuse:a.texture,tDepth:a.depthTexture,tDiffuseBlur:n.texture,hasBlur:v,mixStrength:o,minDepthThreshold:d,maxDepthThreshold:p,depthScale:m,depthToBlurRatioBias:h,transparent:!0,debug:M,distortion:w,distortionMap:b,mixContrast:T,"defines-USE_BLUR":v?"":void 0,"defines-USE_DEPTH":m>0?"":void 0,"defines-USE_DISTORTION":b?"":void 0}]}),[S,u,L,i,x,v,t,o,d,p,m,h,M,w,b,T]);return a.useFrame((()=>{if(null==B||!B.current)return;B.current.visible=!1;const e=S.xr.enabled,t=S.shadowMap.autoUpdate;z(),S.xr.enabled=!1,S.shadowMap.autoUpdate=!1,S.setRenderTarget(A),S.state.buffers.depth.setMask(!0),S.autoClear||S.clear(),S.render(j,k),v&&G.render(S,A,I),S.xr.enabled=e,S.shadowMap.autoUpdate=t,B.current.visible=!0,S.setRenderTarget(null)})),l.createElement("mesh",e({ref:n([B,g])},y),l.createElement("planeGeometry",{args:c}),f?f("meshReflectorMaterial",_):l.createElement("meshReflectorMaterial",_))}));exports.Reflector=u;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),a=require("@react-three/fiber"),n=require("react-merge-refs"),o=require("../materials/BlurPass.cjs.js"),s=require("../materials/MeshReflectorMaterial.cjs.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function l(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}require("../materials/ConvolutionMaterial.cjs.js");var u=i(e),d=l(t),c=i(n);a.extend({MeshReflectorMaterial:s.MeshReflectorMaterial});const p=d.forwardRef((({mixBlur:e=0,mixStrength:t=.5,resolution:n=256,blur:s=[0,0],args:i=[1,1],minDepthThreshold:l=.9,maxDepthThreshold:p=1,depthScale:m=0,depthToBlurRatioBias:h=.25,mirror:f=0,children:x,debug:M=0,distortion:b=1,mixContrast:w=1,distortionMap:y,...T},g)=>{d.useEffect((()=>{console.warn("Reflector has been deprecated and will be removed next major. Replace it with <MeshReflectorMaterial />!")}),[]);const S=a.useThree((({gl:e})=>e)),R=a.useThree((({camera:e})=>e)),j=a.useThree((({scene:e})=>e)),v=(s=Array.isArray(s)?s:[s,s])[0]+s[1]>0,B=d.useRef(null),[D]=d.useState((()=>new r.Plane)),[P]=d.useState((()=>new r.Vector3)),[F]=d.useState((()=>new r.Vector3)),[V]=d.useState((()=>new r.Vector3)),[W]=d.useState((()=>new r.Matrix4)),[E]=d.useState((()=>new r.Vector3(0,0,-1))),[O]=d.useState((()=>new r.Vector4)),[q]=d.useState((()=>new r.Vector3)),[U]=d.useState((()=>new r.Vector3)),[C]=d.useState((()=>new r.Vector4)),[_]=d.useState((()=>new r.Matrix4)),[L]=d.useState((()=>new r.PerspectiveCamera)),k=d.useCallback((()=>{if(F.setFromMatrixPosition(B.current.matrixWorld),V.setFromMatrixPosition(R.matrixWorld),W.extractRotation(B.current.matrixWorld),P.set(0,0,1),P.applyMatrix4(W),q.subVectors(F,V),q.dot(P)>0)return;q.reflect(P).negate(),q.add(F),W.extractRotation(R.matrixWorld),E.set(0,0,-1),E.applyMatrix4(W),E.add(V),U.subVectors(F,E),U.reflect(P).negate(),U.add(F),L.position.copy(q),L.up.set(0,1,0),L.up.applyMatrix4(W),L.up.reflect(P),L.lookAt(U),L.far=R.far,L.updateMatrixWorld(),L.projectionMatrix.copy(R.projectionMatrix),_.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),_.multiply(L.projectionMatrix),_.multiply(L.matrixWorldInverse),_.multiply(B.current.matrixWorld),D.setFromNormalAndCoplanarPoint(P,F),D.applyMatrix4(L.matrixWorldInverse),O.set(D.normal.x,D.normal.y,D.normal.z,D.constant);const e=L.projectionMatrix;C.x=(Math.sign(O.x)+e.elements[8])/e.elements[0],C.y=(Math.sign(O.y)+e.elements[9])/e.elements[5],C.z=-1,C.w=(1+e.elements[10])/e.elements[14],O.multiplyScalar(2/O.dot(C)),e.elements[2]=O.x,e.elements[6]=O.y,e.elements[10]=O.z+1,e.elements[14]=O.w}),[]),[z,A,I,G]=d.useMemo((()=>{const a={type:r.HalfFloatType,minFilter:r.LinearFilter,magFilter:r.LinearFilter},i=new r.WebGLRenderTarget(n,n,a);i.depthBuffer=!0,i.depthTexture=new r.DepthTexture(n,n),i.depthTexture.format=r.DepthFormat,i.depthTexture.type=r.UnsignedShortType;const u=new r.WebGLRenderTarget(n,n,a);return[i,u,new o.BlurPass({gl:S,resolution:n,width:s[0],height:s[1],minDepthThreshold:l,maxDepthThreshold:p,depthScale:m,depthToBlurRatioBias:h}),{mirror:f,textureMatrix:_,mixBlur:e,tDiffuse:i.texture,tDepth:i.depthTexture,tDiffuseBlur:u.texture,hasBlur:v,mixStrength:t,minDepthThreshold:l,maxDepthThreshold:p,depthScale:m,depthToBlurRatioBias:h,transparent:!0,debug:M,distortion:b,distortionMap:y,mixContrast:w,"defines-USE_BLUR":v?"":void 0,"defines-USE_DEPTH":m>0?"":void 0,"defines-USE_DISTORTION":y?"":void 0}]}),[S,s,_,n,f,v,e,t,l,p,m,h,M,b,y,w]);return a.useFrame((()=>{if(null==B||!B.current)return;B.current.visible=!1;const e=S.xr.enabled,t=S.shadowMap.autoUpdate;k(),S.xr.enabled=!1,S.shadowMap.autoUpdate=!1,S.setRenderTarget(z),S.state.buffers.depth.setMask(!0),S.autoClear||S.clear(),S.render(j,L),v&&I.render(S,z,A),S.xr.enabled=e,S.shadowMap.autoUpdate=t,B.current.visible=!0,S.setRenderTarget(null)})),d.createElement("mesh",u.default({ref:c.default([B,g])},T),d.createElement("planeGeometry",{args:i}),x?x("meshReflectorMaterial",G):d.createElement("meshReflectorMaterial",G))}));exports.Reflector=p;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),n=require("@react-three/fiber"),a=require("./useFBO.cjs.js");function u(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var i=u(r),c=u(t);const l=c.forwardRef((({children:r,compute:t,width:u,height:l,samples:o=8,renderPriority:f=0,eventPriority:m=0,frames:p=1/0,stencilBuffer:d=!1,depthBuffer:g=!0,generateMipmaps:v=!1,...b},h)=>{const{size:y,viewport:O}=n.useThree(),j=a.useFBO((u||y.width)*O.dpr,(l||y.height)*O.dpr,{samples:o,stencilBuffer:d,depthBuffer:g,generateMipmaps:v}),[P]=c.useState((()=>new i.Scene)),x=c.useCallback(((e,r,t)=>{var n,a;let u=null==(n=j.texture)?void 0:n.__r3f.parent;for(;u&&!(u instanceof i.Object3D);)u=u.__r3f.parent;if(!u)return!1;t.raycaster.camera||t.events.compute(e,t,null==(a=t.previousRoot)?void 0:a.getState());const[c]=t.raycaster.intersectObject(u);if(!c)return!1;const l=c.uv;if(!l)return!1;r.raycaster.setFromCamera(r.pointer.set(2*l.x-1,2*l.y-1),r.camera)}),[]);return c.useImperativeHandle(h,(()=>j.texture),[j]),c.createElement(c.Fragment,null,n.createPortal(c.createElement(s,{renderPriority:f,frames:p,fbo:j},r,c.createElement("group",{onPointerOver:()=>null})),P,{events:{compute:t||x,priority:m}}),c.createElement("primitive",e({object:j.texture},b)))}));function s({frames:e,renderPriority:r,children:t,fbo:a}){let u,i=0;return n.useFrame((r=>{(e===1/0||i<e)&&(u=r.gl.autoClear,r.gl.autoClear=!0,r.gl.setRenderTarget(a),r.gl.render(r.scene,r.camera),r.gl.setRenderTarget(null),r.gl.autoClear=u,i++)}),r),c.createElement(c.Fragment,null,t)}exports.RenderTexture=l;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),n=require("@react-three/fiber"),a=require("./useFBO.cjs.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var l=u(e),c=i(r),o=i(t);const s=o.forwardRef((({children:e,compute:r,width:t,height:u,samples:i=8,renderPriority:s=0,eventPriority:p=0,frames:d=1/0,stencilBuffer:m=!1,depthBuffer:g=!0,generateMipmaps:b=!1,...v},h)=>{const{size:y,viewport:j}=n.useThree(),O=a.useFBO((t||y.width)*j.dpr,(u||y.height)*j.dpr,{samples:i,stencilBuffer:m,depthBuffer:g,generateMipmaps:b}),[P]=o.useState((()=>new c.Scene)),x=o.useCallback(((e,r,t)=>{var n,a;let u=null==(n=O.texture)?void 0:n.__r3f.parent;for(;u&&!(u instanceof c.Object3D);)u=u.__r3f.parent;if(!u)return!1;t.raycaster.camera||t.events.compute(e,t,null==(a=t.previousRoot)?void 0:a.getState());const[i]=t.raycaster.intersectObject(u);if(!i)return!1;const l=i.uv;if(!l)return!1;r.raycaster.setFromCamera(r.pointer.set(2*l.x-1,2*l.y-1),r.camera)}),[]);return o.useImperativeHandle(h,(()=>O.texture),[O]),o.createElement(o.Fragment,null,n.createPortal(o.createElement(f,{renderPriority:s,frames:d,fbo:O},e,o.createElement("group",{onPointerOver:()=>null})),P,{events:{compute:r||x,priority:p}}),o.createElement("primitive",l.default({object:O.texture},v)))}));function f({frames:e,renderPriority:r,children:t,fbo:a}){let u,i=0;return n.useFrame((r=>{(e===1/0||i<e)&&(u=r.gl.autoClear,r.gl.autoClear=!0,r.gl.setRenderTarget(a),r.gl.render(r.scene,r.camera),r.gl.setRenderTarget(null),r.gl.autoClear=u,i++)}),r),o.createElement(o.Fragment,null,t)}exports.RenderTexture=s;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react");function n(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var u=n(r),c=n(t);const a=c.forwardRef((({children:r,width:t,height:n,depth:a,box3:i,precise:l=!0,...o},s)=>{const f=c.useRef(null),m=c.useRef(null),d=c.useRef(null);return c.useLayoutEffect((()=>{m.current.matrixWorld.identity();let e=i||(new u.Box3).setFromObject(d.current,l);const r=e.max.x-e.min.x,c=e.max.y-e.min.y,o=e.max.z-e.min.z;let s=Math.max(r,c,o);t&&(s=r),n&&(s=c),a&&(s=o),m.current.scale.setScalar(1/s)}),[t,n,a,i,l]),c.useImperativeHandle(s,(()=>f.current),[]),c.createElement("group",e({ref:f},o),c.createElement("group",{ref:m},c.createElement("group",{ref:d},r)))}));exports.Resize=a;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var c=n(e),a=u(t),l=u(r);const i=l.forwardRef((({children:e,width:t,height:r,depth:n,box3:u,precise:i=!0,...o},f)=>{const s=l.useRef(null),d=l.useRef(null),m=l.useRef(null);return l.useLayoutEffect((()=>{d.current.matrixWorld.identity();let e=u||(new a.Box3).setFromObject(m.current,i);const c=e.max.x-e.min.x,l=e.max.y-e.min.y,o=e.max.z-e.min.z;let f=Math.max(c,l,o);t&&(f=c),r&&(f=l),n&&(f=o),d.current.scale.setScalar(1/f)}),[t,r,n,u,i]),l.useImperativeHandle(f,(()=>s.current),[]),l.createElement("group",c.default({ref:s},o),l.createElement("group",{ref:d},l.createElement("group",{ref:m},e)))}));exports.Resize=i;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),n=require("three-stdlib");function s(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var a=s(r);const c=1e-5;const u=a.forwardRef((function({args:[r=1,s=1,u=1]=[],radius:o=.05,steps:i=1,smoothness:b=4,creaseAngle:f=.4,children:l,...h},d){const m=a.useMemo((()=>function(e,r,n){const s=new t.Shape,a=n-c;return s.absarc(c,c,c,-Math.PI/2,-Math.PI,!0),s.absarc(c,r-2*a,c,Math.PI,Math.PI/2,!0),s.absarc(e-2*a,r-2*a,c,Math.PI/2,0,!0),s.absarc(e-2*a,c,c,0,-Math.PI/2,!0),s}(r,s,o)),[r,s,o]),p=a.useMemo((()=>({depth:u-2*o,bevelEnabled:!0,bevelSegments:2*b,steps:i,bevelSize:o-c,bevelThickness:o,curveSegments:b})),[u,o,b]),v=a.useRef();return a.useLayoutEffect((()=>{v.current&&(v.current.center(),n.toCreasedNormals(v.current,f))}),[m,p]),a.createElement("mesh",e({ref:d},h),a.createElement("extrudeGeometry",{ref:v,args:[m,p]}),l)}));exports.RoundedBox=u;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),n=require("three-stdlib");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var u=a(e),c=s(t);const o=1e-5;const f=c.forwardRef((function({args:[e=1,t=1,a=1]=[],radius:s=.05,steps:f=1,smoothness:l=4,creaseAngle:i=.4,children:b,...d},h){const m=c.useMemo((()=>function(e,t,n){const a=new r.Shape,s=n-o;return a.absarc(o,o,o,-Math.PI/2,-Math.PI,!0),a.absarc(o,t-2*s,o,Math.PI,Math.PI/2,!0),a.absarc(e-2*s,t-2*s,o,Math.PI/2,0,!0),a.absarc(e-2*s,o,o,0,-Math.PI/2,!0),a}(e,t,s)),[e,t,s]),p=c.useMemo((()=>({depth:a-2*s,bevelEnabled:!0,bevelSegments:2*l,steps:f,bevelSize:s-o,bevelThickness:s,curveSegments:l})),[a,s,l]),v=c.useRef();return c.useLayoutEffect((()=>{v.current&&(v.current.center(),n.toCreasedNormals(v.current,i))}),[m,p]),c.createElement("mesh",u.default({ref:h},d),c.createElement("extrudeGeometry",{ref:v,args:[m,p]}),b)}));exports.RoundedBox=f;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three-stdlib"),n=require("three");function u(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var c=u(r);function o(e,r=16,u,o,l){const[a,i]=c.useState((()=>{const e=Array.from({length:r},(()=>[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])).flat();return new n.InstancedBufferAttribute(Float32Array.from(e),16)}));return c.useLayoutEffect((()=>{if(void 0===e.current)return;const c=new t.MeshSurfaceSampler(e.current);o&&c.setWeightAttribute(o),c.build();const s=new n.Vector3,f=new n.Vector3,d=new n.Color,p=new n.Object3D;e.current.updateMatrixWorld(!0);for(let t=0;t<r;t++)c.sample(s,f,d),"function"==typeof u?u({dummy:p,sampledMesh:e.current,position:s,normal:f,color:d},t):p.position.copy(s),p.updateMatrix(),null!=l&&l.current&&l.current.setMatrixAt(t,p.matrix),p.matrix.toArray(a.array,16*t);null!=l&&l.current&&(l.current.instanceMatrix.needsUpdate=!0),a.needsUpdate=!0,i(a.clone())}),[e,l,o,r,u]),a}exports.Sampler=function({children:r,weight:t,transform:n,instances:u,mesh:l,count:a=16,...i}){const s=c.useRef(null),f=c.useRef(null),d=c.useRef(null);return c.useLayoutEffect((()=>{var e,r;f.current=null!==(e=null==u?void 0:u.current)&&void 0!==e?e:s.current.children.find((e=>e.hasOwnProperty("instanceMatrix"))),d.current=null!==(r=null==l?void 0:l.current)&&void 0!==r?r:s.current.children.find((e=>"Mesh"===e.type))}),[r,null==l?void 0:l.current,null==u?void 0:u.current]),o(d,a,n,t,f),c.createElement("group",e({ref:s},i),r)},exports.useSurfaceSampler=o;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three-stdlib"),n=require("three");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var o=u(e),l=c(r);function a(e,r=16,u,c,o){const[a,i]=l.useState((()=>{const e=Array.from({length:r},(()=>[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])).flat();return new n.InstancedBufferAttribute(Float32Array.from(e),16)}));return l.useLayoutEffect((()=>{if(void 0===e.current)return;const l=new t.MeshSurfaceSampler(e.current);c&&l.setWeightAttribute(c),l.build();const s=new n.Vector3,f=new n.Vector3,d=new n.Color,p=new n.Object3D;e.current.updateMatrixWorld(!0);for(let t=0;t<r;t++)l.sample(s,f,d),"function"==typeof u?u({dummy:p,sampledMesh:e.current,position:s,normal:f,color:d},t):p.position.copy(s),p.updateMatrix(),null!=o&&o.current&&o.current.setMatrixAt(t,p.matrix),p.matrix.toArray(a.array,16*t);null!=o&&o.current&&(o.current.instanceMatrix.needsUpdate=!0),a.needsUpdate=!0,i(a.clone())}),[e,o,c,r,u]),a}exports.Sampler=function({children:e,weight:r,transform:t,instances:n,mesh:u,count:c=16,...i}){const s=l.useRef(null),f=l.useRef(null),d=l.useRef(null);return l.useLayoutEffect((()=>{var e,r;f.current=null!==(e=null==n?void 0:n.current)&&void 0!==e?e:s.current.children.find((e=>e.hasOwnProperty("instanceMatrix"))),d.current=null!==(r=null==u?void 0:u.current)&&void 0!==r?r:s.current.children.find((e=>"Mesh"===e.type))}),[e,null==u?void 0:u.current,null==n?void 0:n.current]),a(d,c,t,r,f),l.createElement("group",o.default({ref:s},i),e)},exports.useSurfaceSampler=a;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react");function n(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var u=n(r),c=n(t);function o(){const e=new u.BufferGeometry,r=new Float32Array([-1,-1,3,-1,-1,3]);return e.setAttribute("position",new u.BufferAttribute(r,2)),e}const f=c.forwardRef((function({children:r,...t},n){const u=c.useMemo(o,[]);return c.createElement("mesh",e({ref:n,geometry:u,frustumCulled:!1},t),r)}));exports.ScreenQuad=f;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var o=n(e),f=u(t),c=u(r);function i(){const e=new f.BufferGeometry,t=new Float32Array([-1,-1,3,-1,-1,3]);return e.setAttribute("position",new f.BufferAttribute(t,2)),e}const a=c.forwardRef((function({children:e,...t},r){const n=c.useMemo(i,[]);return c.createElement("mesh",o.default({ref:r,geometry:n,frustumCulled:!1},t),e)}));exports.ScreenQuad=a;