@react-three/drei 9.86.3 → 9.87.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/README.md +59 -1
  2. package/core/AccumulativeShadows.cjs.js +1 -1
  3. package/core/AccumulativeShadows.js +7 -8
  4. package/core/ArcballControls.js +1 -1
  5. package/core/BBAnchor.js +2 -2
  6. package/core/Billboard.js +1 -1
  7. package/core/Bounds.js +1 -1
  8. package/core/CameraControls.js +1 -1
  9. package/core/CameraShake.js +1 -1
  10. package/core/CatmullRomLine.js +1 -1
  11. package/core/Caustics.cjs.js +1 -1
  12. package/core/Caustics.js +12 -13
  13. package/core/Center.js +1 -1
  14. package/core/Clone.js +1 -1
  15. package/core/Cloud.js +10 -28
  16. package/core/ContactShadows.js +1 -1
  17. package/core/CubicBezierLine.js +1 -1
  18. package/core/CurveModifier.js +1 -1
  19. package/core/Decal.js +1 -1
  20. package/core/Detailed.js +1 -1
  21. package/core/DeviceOrientationControls.js +1 -1
  22. package/core/Edges.js +1 -1
  23. package/core/Effects.js +1 -1
  24. package/core/Example.js +1 -1
  25. package/core/FaceControls.js +4 -4
  26. package/core/FaceLandmarker.js +1 -1
  27. package/core/Facemesh.d.ts +3 -3
  28. package/core/Facemesh.js +4 -4
  29. package/core/FirstPersonControls.js +1 -1
  30. package/core/Float.js +1 -1
  31. package/core/FlyControls.js +1 -1
  32. package/core/GizmoHelper.js +7 -7
  33. package/core/GizmoViewcube.js +3 -3
  34. package/core/Gltf.js +1 -1
  35. package/core/GradientTexture.js +1 -4
  36. package/core/Grid.cjs.js +1 -1
  37. package/core/Grid.js +7 -8
  38. package/core/Image.cjs.js +1 -1
  39. package/core/Image.js +7 -8
  40. package/core/Instances.js +3 -3
  41. package/core/Lightformer.js +1 -1
  42. package/core/Line.js +1 -1
  43. package/core/MapControls.js +1 -1
  44. package/core/MarchingCubes.js +4 -4
  45. package/core/Mask.js +1 -1
  46. package/core/MeshDiscardMaterial.js +1 -1
  47. package/core/MeshDistortMaterial.js +1 -1
  48. package/core/MeshPortalMaterial.cjs.js +1 -1
  49. package/core/MeshPortalMaterial.js +5 -6
  50. package/core/MeshReflectorMaterial.cjs.js +1 -1
  51. package/core/MeshReflectorMaterial.js +2 -2
  52. package/core/MeshRefractionMaterial.cjs.js +1 -1
  53. package/core/MeshTransmissionMaterial.js +1 -1
  54. package/core/MeshWobbleMaterial.js +1 -1
  55. package/core/MotionPathControls.js +2 -2
  56. package/core/OrbitControls.js +1 -1
  57. package/core/OrthographicCamera.js +1 -1
  58. package/core/Outlines.cjs.js +1 -1
  59. package/core/Outlines.js +4 -5
  60. package/core/PerformanceMonitor.js +1 -1
  61. package/core/PerspectiveCamera.js +1 -1
  62. package/core/PointMaterial.cjs.js +1 -1
  63. package/core/PointMaterial.js +3 -4
  64. package/core/PointerLockControls.js +1 -1
  65. package/core/Points.js +4 -4
  66. package/core/PositionalAudio.js +1 -1
  67. package/core/QuadraticBezierLine.js +3 -3
  68. package/core/Reflector.cjs.js +1 -1
  69. package/core/Reflector.js +2 -2
  70. package/core/RenderCubeTexture.cjs.js +1 -0
  71. package/core/RenderCubeTexture.d.ts +30 -0
  72. package/core/RenderCubeTexture.js +102 -0
  73. package/core/RenderTexture.js +1 -1
  74. package/core/Resize.js +1 -1
  75. package/core/RoundedBox.js +1 -1
  76. package/core/ScreenQuad.js +1 -1
  77. package/core/ScreenSpace.js +1 -1
  78. package/core/Segments.js +3 -3
  79. package/core/Shadow.js +1 -1
  80. package/core/Sky.js +1 -1
  81. package/core/Sparkles.cjs.js +1 -1
  82. package/core/Sparkles.js +3 -4
  83. package/core/SpotLight.cjs.js +1 -1
  84. package/core/SpotLight.js +1 -1
  85. package/core/Stage.cjs.js +1 -1
  86. package/core/Stars.cjs.js +1 -1
  87. package/core/Stars.js +4 -4
  88. package/core/Svg.js +1 -1
  89. package/core/Text.js +1 -1
  90. package/core/Text3D.js +1 -1
  91. package/core/TrackballControls.js +1 -1
  92. package/core/Trail.js +1 -1
  93. package/core/TransformControls.js +1 -1
  94. package/core/Wireframe.cjs.js +1 -1
  95. package/core/Wireframe.js +1 -1
  96. package/core/index.cjs.js +1 -1
  97. package/core/index.d.ts +1 -0
  98. package/core/index.js +2 -1
  99. package/core/meshBounds.js +4 -4
  100. package/core/shapes.js +19 -19
  101. package/core/useBVH.js +1 -1
  102. package/core/useProgress.js +1 -1
  103. package/index.cjs.js +1 -1
  104. package/index.js +1 -0
  105. package/materials/BlurPass.cjs.js +1 -1
  106. package/materials/ConvolutionMaterial.cjs.js +1 -1
  107. package/materials/ConvolutionMaterial.js +1 -2
  108. package/materials/DiscardMaterial.js +1 -1
  109. package/materials/MeshRefractionMaterial.cjs.js +1 -1
  110. package/materials/MeshRefractionMaterial.js +7 -8
  111. package/materials/SpotLightMaterial.cjs.js +1 -1
  112. package/materials/SpotLightMaterial.js +1 -2
  113. package/materials/WireframeMaterial.js +4 -4
  114. package/native/index.cjs.js +1 -1
  115. package/native/index.js +2 -1
  116. package/package.json +1 -1
  117. package/react-three-drei-0.0.0-semantic-release.tgz +0 -0
  118. package/web/Html.cjs.js +1 -1
  119. package/web/Html.js +6 -6
  120. package/web/ScrollControls.js +4 -4
  121. package/web/Select.js +1 -1
  122. package/web/View.js +1 -1
  123. package/web/index.cjs.js +1 -1
  124. package/web/index.js +2 -1
  125. package/web/pivotControls/AxisArrow.js +4 -4
  126. package/web/pivotControls/AxisRotator.js +6 -6
  127. package/web/pivotControls/PlaneSlider.js +3 -3
  128. package/web/pivotControls/context.js +1 -1
  129. package/web/pivotControls/index.js +21 -21
  130. package/helpers/constants.cjs.js +0 -1
  131. package/helpers/constants.d.ts +0 -1
  132. package/helpers/constants.js +0 -5
@@ -5,7 +5,7 @@ import mergeRefs from 'react-merge-refs';
5
5
  import { useFBO } from './useFBO.js';
6
6
 
7
7
  const isFunction = node => typeof node === 'function';
8
- const PerspectiveCamera = /*@__PURE__*/React.forwardRef(({
8
+ const PerspectiveCamera = /*#__PURE__*/React.forwardRef(({
9
9
  envMap,
10
10
  resolution = 256,
11
11
  frames = Infinity,
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),n=require("../helpers/constants.cjs.js");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 i=a(e),l=o(t),c=o(r);const s=n.version>=154?"opaque_fragment":"output_fragment";class u extends l.PointsMaterial{constructor(e){super(e),this.onBeforeCompile=(e,t)=>{const{isWebGL2:r}=t.capabilities;e.fragmentShader=e.fragmentShader.replace(`#include <${s}>`,`\n ${r?`#include <${s}>`:`#extension GL_OES_standard_derivatives : enable\n#include <${s}>`}\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 <${n.version>=154?"colorspace_fragment":"encodings_fragment"}>\n `)}}}const f=c.forwardRef(((e,t)=>{const[r]=c.useState((()=>new u(null)));return c.createElement("primitive",i.default({},e,{object:r,ref:t,attach:"material"}))}));exports.PointMaterial=f,exports.PointMaterialImpl=u;
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),c=a(r);const i=parseInt(l.REVISION.replace(/\D+/g,""))>=154?"opaque_fragment":"output_fragment";class s extends l.PointsMaterial{constructor(e){super(e),this.onBeforeCompile=(e,t)=>{const{isWebGL2:r}=t.capabilities;e.fragmentShader=e.fragmentShader.replace(`#include <${i}>`,`\n ${r?`#include <${i}>`:`#extension GL_OES_standard_derivatives : enable\n#include <${i}>`}\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 <${parseInt(l.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>\n `)}}}const u=c.forwardRef(((e,t)=>{const[r]=c.useState((()=>new s(null)));return c.createElement("primitive",o.default({},e,{object:r,ref:t,attach:"material"}))}));exports.PointMaterial=u,exports.PointMaterialImpl=s;
@@ -1,9 +1,8 @@
1
1
  import _extends from '@babel/runtime/helpers/esm/extends';
2
2
  import * as THREE from 'three';
3
3
  import * as React from 'react';
4
- import { version } from '../helpers/constants.js';
5
4
 
6
- const opaque_fragment = version >= 154 ? 'opaque_fragment' : 'output_fragment';
5
+ const opaque_fragment = parseInt(THREE.REVISION.replace(/\D+/g, '')) >= 154 ? 'opaque_fragment' : 'output_fragment';
7
6
  class PointMaterialImpl extends THREE.PointsMaterial {
8
7
  constructor(props) {
9
8
  super(props);
@@ -19,12 +18,12 @@ class PointMaterialImpl extends THREE.PointsMaterial {
19
18
  float mask = 1.0 - smoothstep(1.0 - delta, 1.0 + delta, r);
20
19
  gl_FragColor = vec4(gl_FragColor.rgb, mask * gl_FragColor.a );
21
20
  #include <tonemapping_fragment>
22
- #include <${version >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}>
21
+ #include <${parseInt(THREE.REVISION.replace(/\D+/g, '')) >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}>
23
22
  `);
24
23
  };
25
24
  }
26
25
  }
27
- const PointMaterial = /*@__PURE__*/React.forwardRef((props, ref) => {
26
+ const PointMaterial = /*#__PURE__*/React.forwardRef((props, ref) => {
28
27
  const [material] = React.useState(() => new PointMaterialImpl(null));
29
28
  return /*#__PURE__*/React.createElement("primitive", _extends({}, props, {
30
29
  object: material,
@@ -3,7 +3,7 @@ import { useThree } from '@react-three/fiber';
3
3
  import * as React from 'react';
4
4
  import { PointerLockControls as PointerLockControls$1 } from 'three-stdlib';
5
5
 
6
- const PointerLockControls = /*@__PURE__*/React.forwardRef(({
6
+ const PointerLockControls = /*#__PURE__*/React.forwardRef(({
7
7
  domElement,
8
8
  selector,
9
9
  onChange,
package/core/Points.js CHANGED
@@ -66,7 +66,7 @@ const position = /*@__PURE__*/new THREE.Vector3();
66
66
  /**
67
67
  * Instance implementation, relies on react + context to update the attributes based on the children of this component
68
68
  */
69
- const PointsInstances = /*@__PURE__*/React.forwardRef(({
69
+ const PointsInstances = /*#__PURE__*/React.forwardRef(({
70
70
  children,
71
71
  range,
72
72
  limit = 1000,
@@ -136,7 +136,7 @@ const PointsInstances = /*@__PURE__*/React.forwardRef(({
136
136
  value: api
137
137
  }, children));
138
138
  });
139
- const Point = /*@__PURE__*/React.forwardRef(({
139
+ const Point = /*#__PURE__*/React.forwardRef(({
140
140
  children,
141
141
  ...props
142
142
  }, ref) => {
@@ -160,7 +160,7 @@ const Point = /*@__PURE__*/React.forwardRef(({
160
160
  * Buffer implementation, relies on complete buffers of the correct number, leaves it to the user to update them
161
161
  */
162
162
 
163
- const PointsBuffer = /*@__PURE__*/React.forwardRef(({
163
+ const PointsBuffer = /*#__PURE__*/React.forwardRef(({
164
164
  children,
165
165
  positions,
166
166
  colors,
@@ -197,7 +197,7 @@ const PointsBuffer = /*@__PURE__*/React.forwardRef(({
197
197
  usage: THREE.DynamicDrawUsage
198
198
  })), children);
199
199
  });
200
- const Points = /*@__PURE__*/React.forwardRef((props, forwardedRef) => {
200
+ const Points = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {
201
201
  if (props.positions instanceof Float32Array) {
202
202
  return /*#__PURE__*/React.createElement(PointsBuffer, _extends({}, props, {
203
203
  ref: forwardedRef
@@ -4,7 +4,7 @@ import { AudioListener, AudioLoader } from 'three';
4
4
  import { useThree, useLoader } from '@react-three/fiber';
5
5
  import mergeRefs from 'react-merge-refs';
6
6
 
7
- const PositionalAudio = /*@__PURE__*/React.forwardRef(({
7
+ const PositionalAudio = /*#__PURE__*/React.forwardRef(({
8
8
  url,
9
9
  distance = 1,
10
10
  loop = true,
@@ -1,11 +1,11 @@
1
1
  import _extends from '@babel/runtime/helpers/esm/extends';
2
2
  import * as React from 'react';
3
- import { QuadraticBezierCurve3, Vector3 } from 'three';
3
+ import { Vector3, QuadraticBezierCurve3 } from 'three';
4
4
  import mergeRefs from 'react-merge-refs';
5
5
  import { Line } from './Line.js';
6
6
 
7
- const v = /*@__PURE__*/new Vector3();
8
- const QuadraticBezierLine = /*@__PURE__*/React.forwardRef(function QuadraticBezierLine({
7
+ const v = new Vector3();
8
+ const QuadraticBezierLine = /*#__PURE__*/React.forwardRef(function QuadraticBezierLine({
9
9
  start = [0, 0, 0],
10
10
  end = [0, 0, 0],
11
11
  mid,
@@ -1 +1 @@
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");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function i(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"),require("../helpers/constants.cjs.js");var l=s(e),u=i(t),d=s(n);const c=u.forwardRef((({mixBlur:e=0,mixStrength:t=.5,resolution:n=256,blur:s=[0,0],args:i=[1,1],minDepthThreshold:c=.9,maxDepthThreshold:p=1,depthScale:m=0,depthToBlurRatioBias:h=.25,mirror:x=0,children:f,debug:M=0,distortion:b=1,mixContrast:w=1,distortionMap:y,...T},g)=>{u.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=u.useRef(null),[D]=u.useState((()=>new r.Plane)),[P]=u.useState((()=>new r.Vector3)),[F]=u.useState((()=>new r.Vector3)),[V]=u.useState((()=>new r.Vector3)),[W]=u.useState((()=>new r.Matrix4)),[E]=u.useState((()=>new r.Vector3(0,0,-1))),[O]=u.useState((()=>new r.Vector4)),[q]=u.useState((()=>new r.Vector3)),[U]=u.useState((()=>new r.Vector3)),[C]=u.useState((()=>new r.Vector4)),[_]=u.useState((()=>new r.Matrix4)),[L]=u.useState((()=>new r.PerspectiveCamera)),k=u.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]=u.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 l=new r.WebGLRenderTarget(n,n,a);return[i,l,new o.BlurPass({gl:S,resolution:n,width:s[0],height:s[1],minDepthThreshold:c,maxDepthThreshold:p,depthScale:m,depthToBlurRatioBias:h}),{mirror:x,textureMatrix:_,mixBlur:e,tDiffuse:i.texture,tDepth:i.depthTexture,tDiffuseBlur:l.texture,hasBlur:v,mixStrength:t,minDepthThreshold:c,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,x,v,e,t,c,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)})),u.createElement("mesh",l.default({ref:d.default([B,g])},T),u.createElement("planeGeometry",{args:i}),f?f("meshReflectorMaterial",G):u.createElement("meshReflectorMaterial",G))}));exports.Reflector=c;
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;
package/core/Reflector.js CHANGED
@@ -6,14 +6,14 @@ import mergeRefs from 'react-merge-refs';
6
6
  import { BlurPass } from '../materials/BlurPass.js';
7
7
  import { MeshReflectorMaterial } from '../materials/MeshReflectorMaterial.js';
8
8
 
9
- /*@__PURE__*/extend({
9
+ extend({
10
10
  MeshReflectorMaterial
11
11
  });
12
12
 
13
13
  /**
14
14
  * @deprecated Use MeshReflectorMaterial instead
15
15
  */
16
- const Reflector = /*@__PURE__*/React.forwardRef(({
16
+ const Reflector = /*#__PURE__*/React.forwardRef(({
17
17
  mixBlur = 0,
18
18
  mixStrength = 0.5,
19
19
  resolution = 256,
@@ -0,0 +1 @@
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");function a(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 u=a(e),o=i(r),c=i(t);const s=c.forwardRef((({children:e,compute:r,renderPriority:t=-1,eventPriority:a=0,frames:i=1/0,stencilBuffer:s=!1,depthBuffer:l=!0,generateMipmaps:p=!1,resolution:m=896,near:d=.1,far:b=1e3,flip:h=!1,position:g,rotation:x,scale:y,quaternion:v,matrix:P,matrixAutoUpdate:j,...E},O)=>{const{size:w,viewport:q}=n.useThree(),M=c.useRef(null),T=c.useMemo((()=>{const e=new o.WebGLCubeRenderTarget(Math.max((m||w.width)*q.dpr,(m||w.height)*q.dpr),{stencilBuffer:s,depthBuffer:l,generateMipmaps:p});return e.texture.isRenderTargetTexture=!h,e.texture.flipY=!0,e.texture.type=o.HalfFloatType,e}),[m,h]);c.useEffect((()=>()=>T.dispose()),[T]);const[C]=c.useState((()=>new o.Scene)),F=c.useCallback(((e,r,t)=>{r.pointer.set(e.offsetX/r.size.width*2-1,-e.offsetY/r.size.height*2+1),r.raycaster.setFromCamera(r.pointer,r.camera)}),[]);return c.useImperativeHandle(O,(()=>({scene:C,fbo:T,camera:M.current})),[T]),c.createElement(c.Fragment,null,n.createPortal(c.createElement(f,{renderPriority:t,frames:i,camera:M},e,c.createElement("group",{onPointerOver:()=>null})),C,{events:{compute:r||F,priority:a}}),c.createElement("primitive",u.default({object:T.texture},E)),c.createElement("cubeCamera",{ref:M,args:[d,b,T],position:g,rotation:x,scale:y,quaternion:v,matrix:P,matrixAutoUpdate:j}))}));function f({frames:e,renderPriority:r,children:t,camera:a}){let i=0;return n.useFrame((r=>{(e===1/0||i<e)&&(a.current.update(r.gl,r.scene),i++)}),r),c.createElement(c.Fragment,null,t)}exports.RenderCubeTexture=s;
@@ -0,0 +1,30 @@
1
+ import * as THREE from 'three';
2
+ import * as React from 'react';
3
+ import { ReactThreeFiber } from '@react-three/fiber';
4
+ import { ForwardRefComponent } from '../helpers/ts-utils';
5
+ export type RenderCubeTextureProps = Omit<JSX.IntrinsicElements['texture'], 'rotation'> & {
6
+ stencilBuffer?: boolean;
7
+ depthBuffer?: boolean;
8
+ generateMipmaps?: boolean;
9
+ renderPriority?: number;
10
+ eventPriority?: number;
11
+ frames?: number;
12
+ compute?: (event: any, state: any, previous: any) => false | undefined;
13
+ flip?: boolean;
14
+ resolution?: number;
15
+ children: React.ReactNode;
16
+ near?: number;
17
+ far?: number;
18
+ position?: ReactThreeFiber.Vector3;
19
+ rotation?: ReactThreeFiber.Euler;
20
+ scale?: ReactThreeFiber.Vector3;
21
+ quaternion?: ReactThreeFiber.Quaternion;
22
+ matrix?: ReactThreeFiber.Matrix4;
23
+ matrixAutoUpdate?: boolean;
24
+ };
25
+ export type RenderCubeTextureApi = {
26
+ scene: THREE.Scene;
27
+ fbo: THREE.WebGLCubeRenderTarget;
28
+ camera: THREE.CubeCamera;
29
+ };
30
+ export declare const RenderCubeTexture: ForwardRefComponent<RenderCubeTextureProps, RenderCubeTextureApi>;
@@ -0,0 +1,102 @@
1
+ import _extends from '@babel/runtime/helpers/esm/extends';
2
+ import * as THREE from 'three';
3
+ import * as React from 'react';
4
+ import { useThree, createPortal, useFrame } from '@react-three/fiber';
5
+
6
+ const RenderCubeTexture = /*#__PURE__*/React.forwardRef(({
7
+ children,
8
+ compute,
9
+ renderPriority = -1,
10
+ eventPriority = 0,
11
+ frames = Infinity,
12
+ stencilBuffer = false,
13
+ depthBuffer = true,
14
+ generateMipmaps = false,
15
+ resolution = 896,
16
+ near = 0.1,
17
+ far = 1000,
18
+ flip = false,
19
+ position,
20
+ rotation,
21
+ scale,
22
+ quaternion,
23
+ matrix,
24
+ matrixAutoUpdate,
25
+ ...props
26
+ }, forwardRef) => {
27
+ const {
28
+ size,
29
+ viewport
30
+ } = useThree();
31
+ const camera = React.useRef(null);
32
+ const fbo = React.useMemo(() => {
33
+ const fbo = new THREE.WebGLCubeRenderTarget(Math.max((resolution || size.width) * viewport.dpr, (resolution || size.height) * viewport.dpr), {
34
+ stencilBuffer,
35
+ depthBuffer,
36
+ generateMipmaps
37
+ });
38
+ fbo.texture.isRenderTargetTexture = !flip;
39
+ fbo.texture.flipY = true;
40
+ fbo.texture.type = THREE.HalfFloatType;
41
+ return fbo;
42
+ }, [resolution, flip]);
43
+ React.useEffect(() => {
44
+ return () => fbo.dispose();
45
+ }, [fbo]);
46
+ const [vScene] = React.useState(() => new THREE.Scene());
47
+ const uvCompute = React.useCallback((event, state, previous) => {
48
+ // https://github.com/pmndrs/react-three-fiber/pull/782
49
+ // Events trigger outside of canvas when moved, use offsetX/Y by default and allow overrides
50
+ state.pointer.set(event.offsetX / state.size.width * 2 - 1, -(event.offsetY / state.size.height) * 2 + 1);
51
+ state.raycaster.setFromCamera(state.pointer, state.camera);
52
+ }, []);
53
+ React.useImperativeHandle(forwardRef, () => ({
54
+ scene: vScene,
55
+ fbo,
56
+ camera: camera.current
57
+ }), [fbo]);
58
+ return /*#__PURE__*/React.createElement(React.Fragment, null, createPortal( /*#__PURE__*/React.createElement(Container, {
59
+ renderPriority: renderPriority,
60
+ frames: frames,
61
+ camera: camera
62
+ }, children, /*#__PURE__*/React.createElement("group", {
63
+ onPointerOver: () => null
64
+ })), vScene, {
65
+ events: {
66
+ compute: compute || uvCompute,
67
+ priority: eventPriority
68
+ }
69
+ }), /*#__PURE__*/React.createElement("primitive", _extends({
70
+ object: fbo.texture
71
+ }, props)), /*#__PURE__*/React.createElement("cubeCamera", {
72
+ ref: camera,
73
+ args: [near, far, fbo],
74
+ position: position,
75
+ rotation: rotation,
76
+ scale: scale,
77
+ quaternion: quaternion,
78
+ matrix: matrix,
79
+ matrixAutoUpdate: matrixAutoUpdate
80
+ }));
81
+ });
82
+
83
+ // The container component has to be separate, it can not be inlined because "useFrame(state" when run inside createPortal will return
84
+ // the portals own state which includes user-land overrides (custom cameras etc), but if it is executed in <RenderTexture>'s render function
85
+ // it would return the default state.
86
+ function Container({
87
+ frames,
88
+ renderPriority,
89
+ children,
90
+ camera
91
+ }) {
92
+ let count = 0;
93
+ useFrame(state => {
94
+ if (frames === Infinity || count < frames) {
95
+ camera.current.update(state.gl, state.scene);
96
+ count++;
97
+ }
98
+ }, renderPriority);
99
+ return /*#__PURE__*/React.createElement(React.Fragment, null, children);
100
+ }
101
+
102
+ export { RenderCubeTexture };
@@ -4,7 +4,7 @@ import * as React from 'react';
4
4
  import { useThree, createPortal, useFrame } from '@react-three/fiber';
5
5
  import { useFBO } from './useFBO.js';
6
6
 
7
- const RenderTexture = /*@__PURE__*/React.forwardRef(({
7
+ const RenderTexture = /*#__PURE__*/React.forwardRef(({
8
8
  children,
9
9
  compute,
10
10
  width,
package/core/Resize.js CHANGED
@@ -2,7 +2,7 @@ import _extends from '@babel/runtime/helpers/esm/extends';
2
2
  import * as THREE from 'three';
3
3
  import * as React from 'react';
4
4
 
5
- const Resize = /*@__PURE__*/React.forwardRef(({
5
+ const Resize = /*#__PURE__*/React.forwardRef(({
6
6
  children,
7
7
  width,
8
8
  height,
@@ -13,7 +13,7 @@ function createShape(width, height, radius0) {
13
13
  shape.absarc(width - radius * 2, eps, eps, 0, -Math.PI / 2, true);
14
14
  return shape;
15
15
  }
16
- const RoundedBox = /*@__PURE__*/React.forwardRef(function RoundedBox({
16
+ const RoundedBox = /*#__PURE__*/React.forwardRef(function RoundedBox({
17
17
  args: [width = 1, height = 1, depth = 1] = [],
18
18
  radius = 0.05,
19
19
  steps = 1,
@@ -10,7 +10,7 @@ function createScreenQuadGeometry() {
10
10
  geometry.setAttribute('position', new THREE.BufferAttribute(vertices, 2));
11
11
  return geometry;
12
12
  }
13
- const ScreenQuad = /*@__PURE__*/React.forwardRef(function ScreenQuad({
13
+ const ScreenQuad = /*#__PURE__*/React.forwardRef(function ScreenQuad({
14
14
  children,
15
15
  ...restProps
16
16
  }, ref) {
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import mergeRefs from 'react-merge-refs';
4
4
  import { useFrame } from '@react-three/fiber';
5
5
 
6
- const ScreenSpace = /*@__PURE__*/React.forwardRef(({
6
+ const ScreenSpace = /*#__PURE__*/React.forwardRef(({
7
7
  children,
8
8
  depth = -1,
9
9
  ...rest
package/core/Segments.js CHANGED
@@ -5,8 +5,8 @@ import mergeRefs from 'react-merge-refs';
5
5
  import { extend, useFrame } from '@react-three/fiber';
6
6
  import { Line2, LineMaterial, LineSegmentsGeometry } from 'three-stdlib';
7
7
 
8
- const context = /*@__PURE__*/React.createContext(null);
9
- const Segments = /*@__PURE__*/React.forwardRef((props, forwardedRef) => {
8
+ const context = /*#__PURE__*/React.createContext(null);
9
+ const Segments = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {
10
10
  React.useMemo(() => extend({
11
11
  SegmentObject
12
12
  }), []);
@@ -76,7 +76,7 @@ class SegmentObject {
76
76
  }
77
77
  }
78
78
  const normPos = pos => pos instanceof THREE.Vector3 ? pos : new THREE.Vector3(...(typeof pos === 'number' ? [pos, pos, pos] : pos));
79
- const Segment = /*@__PURE__*/React.forwardRef(({
79
+ const Segment = /*#__PURE__*/React.forwardRef(({
80
80
  color,
81
81
  start,
82
82
  end
package/core/Shadow.js CHANGED
@@ -2,7 +2,7 @@ import _extends from '@babel/runtime/helpers/esm/extends';
2
2
  import * as React from 'react';
3
3
  import { Color, DoubleSide } from 'three';
4
4
 
5
- const Shadow = /*@__PURE__*/React.forwardRef(({
5
+ const Shadow = /*#__PURE__*/React.forwardRef(({
6
6
  fog = false,
7
7
  renderOrder,
8
8
  depthWrite = false,
package/core/Sky.js CHANGED
@@ -11,7 +11,7 @@ function calcPosFromAngles(inclination, azimuth, vector = new Vector3()) {
11
11
  vector.z = Math.sin(phi);
12
12
  return vector;
13
13
  }
14
- const Sky = /*@__PURE__*/React.forwardRef(({
14
+ const Sky = /*#__PURE__*/React.forwardRef(({
15
15
  inclination = 0.6,
16
16
  azimuth = 0.1,
17
17
  distance = 1000,
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),o=require("@react-three/fiber"),i=require("./shaderMaterial.cjs.js"),n=require("../helpers/constants.cjs.js");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 o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var l=a(e),c=s(t),u=s(r);const f=i.shaderMaterial({time:0,pixelRatio:1}," uniform float pixelRatio;\n uniform float time;\n attribute float size; \n attribute float speed; \n attribute float opacity;\n attribute vec3 noise;\n attribute vec3 color;\n varying vec3 vColor;\n varying float vOpacity;\n void main() {\n vec4 modelPosition = modelMatrix * vec4(position, 1.0);\n modelPosition.y += sin(time * speed + modelPosition.x * noise.x * 100.0) * 0.2;\n modelPosition.z += cos(time * speed + modelPosition.x * noise.y * 100.0) * 0.2;\n modelPosition.x += cos(time * speed + modelPosition.x * noise.z * 100.0) * 0.2;\n vec4 viewPosition = viewMatrix * modelPosition;\n vec4 projectionPostion = projectionMatrix * viewPosition;\n gl_Position = projectionPostion;\n gl_PointSize = size * 25. * pixelRatio;\n gl_PointSize *= (1.0 / - viewPosition.z);\n vColor = color;\n vOpacity = opacity;\n }",` varying vec3 vColor;\n varying float vOpacity;\n void main() {\n float distanceToCenter = distance(gl_PointCoord, vec2(0.5));\n float strength = 0.05 / distanceToCenter - 0.1;\n gl_FragColor = vec4(vColor, strength * vOpacity);\n #include <tonemapping_fragment>\n #include <${n.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }`),m=e=>e&&e.constructor===Float32Array,p=e=>e instanceof u.Vector2||e instanceof u.Vector3||e instanceof u.Vector4,d=e=>Array.isArray(e)?e:p(e)?e.toArray():[e,e,e];function v(e,t,r){return c.useMemo((()=>{if(void 0!==t){if(m(t))return t;if(t instanceof u.Color){const r=Array.from({length:3*e},(()=>{return[(e=t).r,e.g,e.b];var e})).flat();return Float32Array.from(r)}if(p(t)||Array.isArray(t)){const r=Array.from({length:3*e},(()=>d(t))).flat();return Float32Array.from(r)}return Float32Array.from({length:e},(()=>t))}return Float32Array.from({length:e},r)}),[t])}const b=c.forwardRef((({noise:e=1,count:t=100,speed:r=1,opacity:i=1,scale:n=1,size:a,color:s,children:p,...b},y)=>{c.useMemo((()=>o.extend({SparklesImplMaterial:f})),[]);const g=c.useRef(null),h=o.useThree((e=>e.viewport.dpr)),A=d(n),P=c.useMemo((()=>Float32Array.from(Array.from({length:t},(()=>A.map(u.MathUtils.randFloatSpread))).flat())),[t,...A]),x=v(t,a,Math.random),j=v(t,i),M=v(t,r),O=v(3*t,e),_=v(void 0===s?3*t:t,m(s)?s:new u.Color(s),(()=>1));return o.useFrame((e=>{g.current&&g.current.material&&(g.current.material.time=e.clock.elapsedTime)})),c.useImperativeHandle(y,(()=>g.current),[]),c.createElement("points",l.default({key:`particle-${t}-${JSON.stringify(n)}`},b,{ref:g}),c.createElement("bufferGeometry",null,c.createElement("bufferAttribute",{attach:"attributes-position",args:[P,3]}),c.createElement("bufferAttribute",{attach:"attributes-size",args:[x,1]}),c.createElement("bufferAttribute",{attach:"attributes-opacity",args:[j,1]}),c.createElement("bufferAttribute",{attach:"attributes-speed",args:[M,1]}),c.createElement("bufferAttribute",{attach:"attributes-color",args:[_,3]}),c.createElement("bufferAttribute",{attach:"attributes-noise",args:[O,3]})),p||c.createElement("sparklesImplMaterial",{transparent:!0,pixelRatio:h,depthWrite:!1}))}));exports.Sparkles=b;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),o=require("@react-three/fiber"),i=require("./shaderMaterial.cjs.js");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 o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var l=n(e),s=a(t),c=a(r);const u=i.shaderMaterial({time:0,pixelRatio:1}," uniform float pixelRatio;\n uniform float time;\n attribute float size; \n attribute float speed; \n attribute float opacity;\n attribute vec3 noise;\n attribute vec3 color;\n varying vec3 vColor;\n varying float vOpacity;\n void main() {\n vec4 modelPosition = modelMatrix * vec4(position, 1.0);\n modelPosition.y += sin(time * speed + modelPosition.x * noise.x * 100.0) * 0.2;\n modelPosition.z += cos(time * speed + modelPosition.x * noise.y * 100.0) * 0.2;\n modelPosition.x += cos(time * speed + modelPosition.x * noise.z * 100.0) * 0.2;\n vec4 viewPosition = viewMatrix * modelPosition;\n vec4 projectionPostion = projectionMatrix * viewPosition;\n gl_Position = projectionPostion;\n gl_PointSize = size * 25. * pixelRatio;\n gl_PointSize *= (1.0 / - viewPosition.z);\n vColor = color;\n vOpacity = opacity;\n }",` varying vec3 vColor;\n varying float vOpacity;\n void main() {\n float distanceToCenter = distance(gl_PointCoord, vec2(0.5));\n float strength = 0.05 / distanceToCenter - 0.1;\n gl_FragColor = vec4(vColor, strength * vOpacity);\n #include <tonemapping_fragment>\n #include <${parseInt(c.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>\n }`),f=e=>e&&e.constructor===Float32Array,m=e=>e instanceof c.Vector2||e instanceof c.Vector3||e instanceof c.Vector4,p=e=>Array.isArray(e)?e:m(e)?e.toArray():[e,e,e];function d(e,t,r){return s.useMemo((()=>{if(void 0!==t){if(f(t))return t;if(t instanceof c.Color){const r=Array.from({length:3*e},(()=>{return[(e=t).r,e.g,e.b];var e})).flat();return Float32Array.from(r)}if(m(t)||Array.isArray(t)){const r=Array.from({length:3*e},(()=>p(t))).flat();return Float32Array.from(r)}return Float32Array.from({length:e},(()=>t))}return Float32Array.from({length:e},r)}),[t])}const v=s.forwardRef((({noise:e=1,count:t=100,speed:r=1,opacity:i=1,scale:n=1,size:a,color:m,children:v,...b},y)=>{s.useMemo((()=>o.extend({SparklesImplMaterial:u})),[]);const g=s.useRef(null),h=o.useThree((e=>e.viewport.dpr)),A=p(n),P=s.useMemo((()=>Float32Array.from(Array.from({length:t},(()=>A.map(c.MathUtils.randFloatSpread))).flat())),[t,...A]),x=d(t,a,Math.random),M=d(t,i),O=d(t,r),j=d(3*t,e),_=d(void 0===m?3*t:t,f(m)?m:new c.Color(m),(()=>1));return o.useFrame((e=>{g.current&&g.current.material&&(g.current.material.time=e.clock.elapsedTime)})),s.useImperativeHandle(y,(()=>g.current),[]),s.createElement("points",l.default({key:`particle-${t}-${JSON.stringify(n)}`},b,{ref:g}),s.createElement("bufferGeometry",null,s.createElement("bufferAttribute",{attach:"attributes-position",args:[P,3]}),s.createElement("bufferAttribute",{attach:"attributes-size",args:[x,1]}),s.createElement("bufferAttribute",{attach:"attributes-opacity",args:[M,1]}),s.createElement("bufferAttribute",{attach:"attributes-speed",args:[O,1]}),s.createElement("bufferAttribute",{attach:"attributes-color",args:[_,3]}),s.createElement("bufferAttribute",{attach:"attributes-noise",args:[j,3]})),v||s.createElement("sparklesImplMaterial",{transparent:!0,pixelRatio:h,depthWrite:!1}))}));exports.Sparkles=v;
package/core/Sparkles.js CHANGED
@@ -3,9 +3,8 @@ import * as React from 'react';
3
3
  import * as THREE from 'three';
4
4
  import { extend, useThree, useFrame } from '@react-three/fiber';
5
5
  import { shaderMaterial } from './shaderMaterial.js';
6
- import { version } from '../helpers/constants.js';
7
6
 
8
- const SparklesImplMaterial = /*@__PURE__*/shaderMaterial({
7
+ const SparklesImplMaterial = shaderMaterial({
9
8
  time: 0,
10
9
  pixelRatio: 1
11
10
  }, ` uniform float pixelRatio;
@@ -36,7 +35,7 @@ const SparklesImplMaterial = /*@__PURE__*/shaderMaterial({
36
35
  float strength = 0.05 / distanceToCenter - 0.1;
37
36
  gl_FragColor = vec4(vColor, strength * vOpacity);
38
37
  #include <tonemapping_fragment>
39
- #include <${version >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}>
38
+ #include <${parseInt(THREE.REVISION.replace(/\D+/g, '')) >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}>
40
39
  }`);
41
40
  const isFloat32Array = def => def && def.constructor === Float32Array;
42
41
  const expandColor = v => [v.r, v.g, v.b];
@@ -72,7 +71,7 @@ function usePropAsIsOrAsAttribute(count, prop, setDefault) {
72
71
  }, setDefault);
73
72
  }, [prop]);
74
73
  }
75
- const Sparkles = /*@__PURE__*/React.forwardRef(({
74
+ const Sparkles = /*#__PURE__*/React.forwardRef(({
76
75
  noise = 1,
77
76
  count = 100,
78
77
  speed = 1,
@@ -1 +1 @@
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("three-stdlib"),o=require("react-merge-refs"),i=require("../materials/SpotLightMaterial.cjs.js");function u(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("../helpers/constants.cjs.js");var s=u(e),c=l(t),p=u(o),d="#define GLSLIFY 1\nvarying vec2 vUv;uniform sampler2D uShadowMap;uniform float uTime;void main(){vec3 color=texture2D(uShadowMap,vUv).xyz;gl_FragColor=vec4(color,1.);}";const m=e=>null==e?void 0:e.isSpotLight;function h({opacity:e=1,radiusTop:t,radiusBottom:n,depthBuffer:o,color:u="white",distance:l=5,angle:s=.15,attenuation:p=5,anglePower:d=5}){const m=c.useRef(null),h=a.useThree((e=>e.size)),f=a.useThree((e=>e.camera)),g=a.useThree((e=>e.viewport.dpr)),[v]=c.useState((()=>new i.SpotLightMaterial)),[w]=c.useState((()=>new r.Vector3));t=void 0===t?.1:t,n=void 0===n?7*s:n,a.useFrame((()=>{v.uniforms.spotPosition.value.copy(m.current.getWorldPosition(w)),m.current.lookAt(m.current.parent.target.getWorldPosition(w))}));const S=c.useMemo((()=>{const e=new r.CylinderGeometry(t,n,l,128,64,!0);return e.applyMatrix4((new r.Matrix4).makeTranslation(0,-l/2,0)),e.applyMatrix4((new r.Matrix4).makeRotationX(-Math.PI/2)),e}),[l,t,n]);return c.createElement(c.Fragment,null,c.createElement("mesh",{ref:m,geometry:S,raycast:()=>null},c.createElement("primitive",{object:v,attach:"material","uniforms-opacity-value":e,"uniforms-lightColor-value":u,"uniforms-attenuation-value":p,"uniforms-anglePower-value":d,"uniforms-depth-value":o,"uniforms-cameraNear-value":f.near,"uniforms-cameraFar-value":f.far,"uniforms-resolution-value":o?[h.width*g,h.height*g]:[0,0]})))}function f(e,t,n,o,i){const[[u,l]]=c.useState((()=>[new r.Vector3,new r.Vector3]));c.useLayoutEffect((()=>{if(!m(e.current))throw new Error("SpotlightShadow must be a child of a SpotLight");e.current.shadow.mapSize.set(n,o),e.current.shadow.needsUpdate=!0}),[e,n,o]),a.useFrame((()=>{if(!e.current)return;const r=e.current.position,a=e.current.target.position;l.copy(a).sub(r);var n=l.length();l.normalize().multiplyScalar(n*i),u.copy(r).add(l),t.current.position.copy(u),t.current.lookAt(e.current.target.position)}))}function g({distance:e=.4,alphaTest:t=.5,map:o,shader:i=d,width:u=512,height:l=512,scale:s=1,children:p,...m}){const h=c.useRef(null),g=m.spotlightRef,v=m.debug;f(g,h,u,l,e);const w=c.useMemo((()=>new r.WebGLRenderTarget(u,l,{format:r.RGBAFormat,encoding:r.LinearEncoding,stencilBuffer:!1})),[u,l]),S=c.useRef({uShadowMap:{value:o},uTime:{value:0}});c.useEffect((()=>{S.current.uShadowMap.value=o}),[o]);const y=c.useMemo((()=>new n.FullScreenQuad(new r.ShaderMaterial({uniforms:S.current,vertexShader:"\n varying vec2 vUv;\n\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n ",fragmentShader:i}))),[i]);return c.useEffect((()=>()=>{y.material.dispose(),y.dispose()}),[y]),c.useEffect((()=>()=>w.dispose()),[w]),a.useFrame((({gl:e},t)=>{S.current.uTime.value+=t,e.setRenderTarget(w),y.render(e),e.setRenderTarget(null)})),c.createElement(c.Fragment,null,c.createElement("mesh",{ref:h,scale:s,castShadow:!0},c.createElement("planeGeometry",null),c.createElement("meshBasicMaterial",{transparent:!0,side:r.DoubleSide,alphaTest:t,alphaMap:w.texture,"alphaMap-wrapS":r.RepeatWrapping,"alphaMap-wrapT":r.RepeatWrapping,opacity:v?1:0},p)))}function v({distance:e=.4,alphaTest:t=.5,map:a,width:n=512,height:o=512,scale:i,children:u,...l}){const s=c.useRef(null),p=l.spotlightRef,d=l.debug;return f(p,s,n,o,e),c.createElement(c.Fragment,null,c.createElement("mesh",{ref:s,scale:i,castShadow:!0},c.createElement("planeGeometry",null),c.createElement("meshBasicMaterial",{transparent:!0,side:r.DoubleSide,alphaTest:t,alphaMap:a,"alphaMap-wrapS":r.RepeatWrapping,"alphaMap-wrapT":r.RepeatWrapping,opacity:d?1:0},u)))}const w=c.forwardRef((({opacity:e=1,radiusTop:t,radiusBottom:r,depthBuffer:a,color:n="white",distance:o=5,angle:i=.15,attenuation:u=5,anglePower:l=5,volumetric:d=!0,debug:m=!1,children:f,...g},v)=>{const w=c.useRef(null);return c.createElement("group",null,m&&w.current&&c.createElement("spotLightHelper",{args:[w.current]}),c.createElement("spotLight",s.default({ref:p.default([v,w]),angle:i,color:n,distance:o,castShadow:!0},g),d&&c.createElement(h,{debug:m,opacity:e,radiusTop:t,radiusBottom:r,depthBuffer:a,color:n,distance:o,angle:i,attenuation:u,anglePower:l})),f&&c.cloneElement(f,{spotlightRef:w,debug:m}))}));exports.SpotLight=w,exports.SpotLightShadow=function(e){return e.shader?c.createElement(g,e):c.createElement(v,e)};
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("three-stdlib"),o=require("react-merge-refs"),i=require("../materials/SpotLightMaterial.cjs.js");function u(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)}var s=u(e),c=l(t),p=u(o),d="#define GLSLIFY 1\nvarying vec2 vUv;uniform sampler2D uShadowMap;uniform float uTime;void main(){vec3 color=texture2D(uShadowMap,vUv).xyz;gl_FragColor=vec4(color,1.);}";const m=e=>null==e?void 0:e.isSpotLight;function h({opacity:e=1,radiusTop:t,radiusBottom:n,depthBuffer:o,color:u="white",distance:l=5,angle:s=.15,attenuation:p=5,anglePower:d=5}){const m=c.useRef(null),h=a.useThree((e=>e.size)),f=a.useThree((e=>e.camera)),g=a.useThree((e=>e.viewport.dpr)),[v]=c.useState((()=>new i.SpotLightMaterial)),[w]=c.useState((()=>new r.Vector3));t=void 0===t?.1:t,n=void 0===n?7*s:n,a.useFrame((()=>{v.uniforms.spotPosition.value.copy(m.current.getWorldPosition(w)),m.current.lookAt(m.current.parent.target.getWorldPosition(w))}));const S=c.useMemo((()=>{const e=new r.CylinderGeometry(t,n,l,128,64,!0);return e.applyMatrix4((new r.Matrix4).makeTranslation(0,-l/2,0)),e.applyMatrix4((new r.Matrix4).makeRotationX(-Math.PI/2)),e}),[l,t,n]);return c.createElement(c.Fragment,null,c.createElement("mesh",{ref:m,geometry:S,raycast:()=>null},c.createElement("primitive",{object:v,attach:"material","uniforms-opacity-value":e,"uniforms-lightColor-value":u,"uniforms-attenuation-value":p,"uniforms-anglePower-value":d,"uniforms-depth-value":o,"uniforms-cameraNear-value":f.near,"uniforms-cameraFar-value":f.far,"uniforms-resolution-value":o?[h.width*g,h.height*g]:[0,0]})))}function f(e,t,n,o,i){const[[u,l]]=c.useState((()=>[new r.Vector3,new r.Vector3]));c.useLayoutEffect((()=>{if(!m(e.current))throw new Error("SpotlightShadow must be a child of a SpotLight");e.current.shadow.mapSize.set(n,o),e.current.shadow.needsUpdate=!0}),[e,n,o]),a.useFrame((()=>{if(!e.current)return;const r=e.current.position,a=e.current.target.position;l.copy(a).sub(r);var n=l.length();l.normalize().multiplyScalar(n*i),u.copy(r).add(l),t.current.position.copy(u),t.current.lookAt(e.current.target.position)}))}function g({distance:e=.4,alphaTest:t=.5,map:o,shader:i=d,width:u=512,height:l=512,scale:s=1,children:p,...m}){const h=c.useRef(null),g=m.spotlightRef,v=m.debug;f(g,h,u,l,e);const w=c.useMemo((()=>new r.WebGLRenderTarget(u,l,{format:r.RGBAFormat,encoding:r.LinearEncoding,stencilBuffer:!1})),[u,l]),S=c.useRef({uShadowMap:{value:o},uTime:{value:0}});c.useEffect((()=>{S.current.uShadowMap.value=o}),[o]);const y=c.useMemo((()=>new n.FullScreenQuad(new r.ShaderMaterial({uniforms:S.current,vertexShader:"\n varying vec2 vUv;\n\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n ",fragmentShader:i}))),[i]);return c.useEffect((()=>()=>{y.material.dispose(),y.dispose()}),[y]),c.useEffect((()=>()=>w.dispose()),[w]),a.useFrame((({gl:e},t)=>{S.current.uTime.value+=t,e.setRenderTarget(w),y.render(e),e.setRenderTarget(null)})),c.createElement(c.Fragment,null,c.createElement("mesh",{ref:h,scale:s,castShadow:!0},c.createElement("planeGeometry",null),c.createElement("meshBasicMaterial",{transparent:!0,side:r.DoubleSide,alphaTest:t,alphaMap:w.texture,"alphaMap-wrapS":r.RepeatWrapping,"alphaMap-wrapT":r.RepeatWrapping,opacity:v?1:0},p)))}function v({distance:e=.4,alphaTest:t=.5,map:a,width:n=512,height:o=512,scale:i,children:u,...l}){const s=c.useRef(null),p=l.spotlightRef,d=l.debug;return f(p,s,n,o,e),c.createElement(c.Fragment,null,c.createElement("mesh",{ref:s,scale:i,castShadow:!0},c.createElement("planeGeometry",null),c.createElement("meshBasicMaterial",{transparent:!0,side:r.DoubleSide,alphaTest:t,alphaMap:a,"alphaMap-wrapS":r.RepeatWrapping,"alphaMap-wrapT":r.RepeatWrapping,opacity:d?1:0},u)))}const w=c.forwardRef((({opacity:e=1,radiusTop:t,radiusBottom:r,depthBuffer:a,color:n="white",distance:o=5,angle:i=.15,attenuation:u=5,anglePower:l=5,volumetric:d=!0,debug:m=!1,children:f,...g},v)=>{const w=c.useRef(null);return c.createElement("group",null,m&&w.current&&c.createElement("spotLightHelper",{args:[w.current]}),c.createElement("spotLight",s.default({ref:p.default([v,w]),angle:i,color:n,distance:o,castShadow:!0},g),d&&c.createElement(h,{debug:m,opacity:e,radiusTop:t,radiusBottom:r,depthBuffer:a,color:n,distance:o,angle:i,attenuation:u,anglePower:l})),f&&c.cloneElement(f,{spotlightRef:w,debug:m}))}));exports.SpotLight=w,exports.SpotLightShadow=function(e){return e.shader?c.createElement(g,e):c.createElement(v,e)};
package/core/SpotLight.js CHANGED
@@ -179,7 +179,7 @@ function SpotLightShadow(props) {
179
179
  if (props.shader) return /*#__PURE__*/React.createElement(SpotlightShadowWithShader, props);
180
180
  return /*#__PURE__*/React.createElement(SpotlightShadowWithoutShader, props);
181
181
  }
182
- const SpotLight = /*@__PURE__*/React.forwardRef(({
182
+ const SpotLight = /*#__PURE__*/React.forwardRef(({
183
183
  // Volumetric
184
184
  opacity = 1,
185
185
  radiusTop,
package/core/Stage.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),n=require("./Environment.cjs.js"),i=require("./ContactShadows.cjs.js"),r=require("./Center.cjs.js"),a=require("./AccumulativeShadows.cjs.js"),s=require("./Bounds.cjs.js");function l(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(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}require("@react-three/fiber"),require("three"),require("three-stdlib"),require("./useEnvironment.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("./shaderMaterial.cjs.js"),require("../materials/DiscardMaterial.cjs.js"),require("../helpers/constants.cjs.js");var o=l(e),c=u(t);const d={rembrandt:{main:[1,2,1],fill:[-2,-.5,-2]},portrait:{main:[-1,2,.5],fill:[-1,.5,-1.5]},upfront:{main:[0,2,1],fill:[-1,.5,-1.5]},soft:{main:[-2,4,4],fill:[-1,.5,-1.5]}};function m({radius:e,adjustCamera:t}){const n=s.useBounds();return c.useEffect((()=>{t&&n.refresh().clip().fit()}),[e,t]),null}exports.Stage=function({children:e,center:t,adjustCamera:l=!0,intensity:u=.5,shadows:f="contact",environment:p="city",preset:h="rembrandt",...j}){var v,b,g,y,E,q,w,C;const S="string"==typeof h?d[h]:h,[{radius:O,height:z},B]=c.useState({radius:0,width:0,height:0,depth:0}),M=null!==(v=null==f?void 0:f.bias)&&void 0!==v?v:-1e-4,L=null!==(b=null==f?void 0:f.normalBias)&&void 0!==b?b:0,_=null!==(g=null==f?void 0:f.size)&&void 0!==g?g:1024,x=null!==(y=null==f?void 0:f.offset)&&void 0!==y?y:0,P="contact"===f||"contact"===(null==f?void 0:f.type),k="accumulative"===f||"accumulative"===(null==f?void 0:f.type),A={..."object"==typeof f?f:{}},D=p?"string"==typeof p?{preset:p}:p:null,F=c.useCallback((e=>{const{width:n,height:i,depth:r,boundingSphere:a}=e;B({radius:a.radius,width:n,height:i,depth:r}),null!=t&&t.onCentered&&t.onCentered(e)}),[]);return c.createElement(c.Fragment,null,c.createElement("ambientLight",{intensity:u/3}),c.createElement("spotLight",{penumbra:1,position:[S.main[0]*O,S.main[1]*O,S.main[2]*O],intensity:2*u,castShadow:!!f,"shadow-bias":M,"shadow-normalBias":L,"shadow-mapSize":_}),c.createElement("pointLight",{position:[S.fill[0]*O,S.fill[1]*O,S.fill[2]*O],intensity:u}),c.createElement(s.Bounds,o.default({fit:!!l,clip:!!l,margin:Number(l),observe:!0},j),c.createElement(m,{radius:O,adjustCamera:l}),c.createElement(r.Center,o.default({},t,{position:[0,x/2,0],onCentered:F}),e)),c.createElement("group",{position:[0,-z/2-x/2,0]},P&&c.createElement(i.ContactShadows,o.default({scale:4*O,far:O,blur:2},A)),k&&c.createElement(a.AccumulativeShadows,o.default({temporal:!0,frames:100,alphaTest:.9,toneMapped:!0,scale:4*O},A),c.createElement(a.RandomizedLight,{amount:null!==(E=A.amount)&&void 0!==E?E:8,radius:null!==(q=A.radius)&&void 0!==q?q:O,ambient:null!==(w=A.ambient)&&void 0!==w?w:.5,intensity:null!==(C=A.intensity)&&void 0!==C?C:1,position:[S.main[0]*O,S.main[1]*O,S.main[2]*O],size:4*O,bias:-M,mapSize:_}))),p&&c.createElement(n.Environment,D))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),i=require("./Environment.cjs.js"),n=require("./ContactShadows.cjs.js"),r=require("./Center.cjs.js"),a=require("./AccumulativeShadows.cjs.js"),s=require("./Bounds.cjs.js");function l(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(i){if("default"!==i){var n=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,n.get?n:{enumerable:!0,get:function(){return e[i]}})}})),t.default=e,Object.freeze(t)}require("@react-three/fiber"),require("three"),require("three-stdlib"),require("./useEnvironment.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("./shaderMaterial.cjs.js"),require("../materials/DiscardMaterial.cjs.js");var o=l(e),c=u(t);const d={rembrandt:{main:[1,2,1],fill:[-2,-.5,-2]},portrait:{main:[-1,2,.5],fill:[-1,.5,-1.5]},upfront:{main:[0,2,1],fill:[-1,.5,-1.5]},soft:{main:[-2,4,4],fill:[-1,.5,-1.5]}};function m({radius:e,adjustCamera:t}){const i=s.useBounds();return c.useEffect((()=>{t&&i.refresh().clip().fit()}),[e,t]),null}exports.Stage=function({children:e,center:t,adjustCamera:l=!0,intensity:u=.5,shadows:f="contact",environment:p="city",preset:h="rembrandt",...v}){var j,b,g,y,E,q,w,C;const S="string"==typeof h?d[h]:h,[{radius:O,height:z},B]=c.useState({radius:0,width:0,height:0,depth:0}),M=null!==(j=null==f?void 0:f.bias)&&void 0!==j?j:-1e-4,L=null!==(b=null==f?void 0:f.normalBias)&&void 0!==b?b:0,_=null!==(g=null==f?void 0:f.size)&&void 0!==g?g:1024,x=null!==(y=null==f?void 0:f.offset)&&void 0!==y?y:0,P="contact"===f||"contact"===(null==f?void 0:f.type),k="accumulative"===f||"accumulative"===(null==f?void 0:f.type),A={..."object"==typeof f?f:{}},D=p?"string"==typeof p?{preset:p}:p:null,F=c.useCallback((e=>{const{width:i,height:n,depth:r,boundingSphere:a}=e;B({radius:a.radius,width:i,height:n,depth:r}),null!=t&&t.onCentered&&t.onCentered(e)}),[]);return c.createElement(c.Fragment,null,c.createElement("ambientLight",{intensity:u/3}),c.createElement("spotLight",{penumbra:1,position:[S.main[0]*O,S.main[1]*O,S.main[2]*O],intensity:2*u,castShadow:!!f,"shadow-bias":M,"shadow-normalBias":L,"shadow-mapSize":_}),c.createElement("pointLight",{position:[S.fill[0]*O,S.fill[1]*O,S.fill[2]*O],intensity:u}),c.createElement(s.Bounds,o.default({fit:!!l,clip:!!l,margin:Number(l),observe:!0},v),c.createElement(m,{radius:O,adjustCamera:l}),c.createElement(r.Center,o.default({},t,{position:[0,x/2,0],onCentered:F}),e)),c.createElement("group",{position:[0,-z/2-x/2,0]},P&&c.createElement(n.ContactShadows,o.default({scale:4*O,far:O,blur:2},A)),k&&c.createElement(a.AccumulativeShadows,o.default({temporal:!0,frames:100,alphaTest:.9,toneMapped:!0,scale:4*O},A),c.createElement(a.RandomizedLight,{amount:null!==(E=A.amount)&&void 0!==E?E:8,radius:null!==(q=A.radius)&&void 0!==q?q:O,ambient:null!==(w=A.ambient)&&void 0!==w?w:.5,intensity:null!==(C=A.intensity)&&void 0!==C?C:1,position:[S.main[0]*O,S.main[1]*O,S.main[2]*O],size:4*O,bias:-M,mapSize:_}))),p&&c.createElement(i.Environment,D))};
package/core/Stars.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@react-three/fiber"),r=require("three"),n=require("../helpers/constants.cjs.js");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=a(e);class i extends r.ShaderMaterial{constructor(){super({uniforms:{time:{value:0},fade:{value:1}},vertexShader:"\n uniform float time;\n attribute float size;\n varying vec3 vColor;\n void main() {\n vColor = color;\n vec4 mvPosition = modelViewMatrix * vec4(position, 0.5);\n gl_PointSize = size * (30.0 / -mvPosition.z) * (3.0 + sin(time + 100.0));\n gl_Position = projectionMatrix * mvPosition;\n }",fragmentShader:`\n uniform sampler2D pointTexture;\n uniform float fade;\n varying vec3 vColor;\n void main() {\n float opacity = 1.0;\n if (fade == 1.0) {\n float d = distance(gl_PointCoord, vec2(0.5, 0.5));\n opacity = 1.0 / (1.0 + exp(16.0 * (d - 0.25)));\n }\n gl_FragColor = vec4(vColor, opacity);\n\n #include <tonemapping_fragment>\n\t #include <${n.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }`})}}const c=e=>(new r.Vector3).setFromSpherical(new r.Spherical(e,Math.acos(1-2*Math.random()),2*Math.random()*Math.PI)),s=o.forwardRef((({radius:e=100,depth:n=50,count:a=5e3,saturation:s=0,factor:l=4,fade:u=!1,speed:f=1},m)=>{const d=o.useRef(),[p,v,g]=o.useMemo((()=>{const t=[],o=[],i=Array.from({length:a},(()=>(.5+.5*Math.random())*l)),u=new r.Color;let f=e+n;const m=n/a;for(let e=0;e<a;e++)f-=m*Math.random(),t.push(...c(f).toArray()),u.setHSL(e/a,s,.9),o.push(u.r,u.g,u.b);return[new Float32Array(t),new Float32Array(o),new Float32Array(i)]}),[a,n,l,e,s]);t.useFrame((e=>d.current&&(d.current.uniforms.time.value=e.clock.getElapsedTime()*f)));const[h]=o.useState((()=>new i));return o.createElement("points",{ref:m},o.createElement("bufferGeometry",null,o.createElement("bufferAttribute",{attach:"attributes-position",args:[p,3]}),o.createElement("bufferAttribute",{attach:"attributes-color",args:[v,3]}),o.createElement("bufferAttribute",{attach:"attributes-size",args:[g,1]})),o.createElement("primitive",{ref:d,object:h,attach:"material",blending:r.AdditiveBlending,"uniforms-fade-value":u,depthWrite:!1,transparent:!0,vertexColors:!0}))}));exports.Stars=s;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("react"),r=require("@react-three/fiber");function n(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=n(e),o=n(t);class i extends e.ShaderMaterial{constructor(){super({uniforms:{time:{value:0},fade:{value:1}},vertexShader:"\n uniform float time;\n attribute float size;\n varying vec3 vColor;\n void main() {\n vColor = color;\n vec4 mvPosition = modelViewMatrix * vec4(position, 0.5);\n gl_PointSize = size * (30.0 / -mvPosition.z) * (3.0 + sin(time + 100.0));\n gl_Position = projectionMatrix * mvPosition;\n }",fragmentShader:`\n uniform sampler2D pointTexture;\n uniform float fade;\n varying vec3 vColor;\n void main() {\n float opacity = 1.0;\n if (fade == 1.0) {\n float d = distance(gl_PointCoord, vec2(0.5, 0.5));\n opacity = 1.0 / (1.0 + exp(16.0 * (d - 0.25)));\n }\n gl_FragColor = vec4(vColor, opacity);\n\n #include <tonemapping_fragment>\n\t #include <${parseInt(a.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>\n }`})}}const c=t=>(new e.Vector3).setFromSpherical(new e.Spherical(t,Math.acos(1-2*Math.random()),2*Math.random()*Math.PI)),l=o.forwardRef((({radius:t=100,depth:n=50,count:a=5e3,saturation:l=0,factor:s=4,fade:u=!1,speed:f=1},m)=>{const d=o.useRef(),[p,v,g]=o.useMemo((()=>{const r=[],o=[],i=Array.from({length:a},(()=>(.5+.5*Math.random())*s)),u=new e.Color;let f=t+n;const m=n/a;for(let e=0;e<a;e++)f-=m*Math.random(),r.push(...c(f).toArray()),u.setHSL(e/a,l,.9),o.push(u.r,u.g,u.b);return[new Float32Array(r),new Float32Array(o),new Float32Array(i)]}),[a,n,s,t,l]);r.useFrame((e=>d.current&&(d.current.uniforms.time.value=e.clock.getElapsedTime()*f)));const[h]=o.useState((()=>new i));return o.createElement("points",{ref:m},o.createElement("bufferGeometry",null,o.createElement("bufferAttribute",{attach:"attributes-position",args:[p,3]}),o.createElement("bufferAttribute",{attach:"attributes-color",args:[v,3]}),o.createElement("bufferAttribute",{attach:"attributes-size",args:[g,1]})),o.createElement("primitive",{ref:d,object:h,attach:"material",blending:e.AdditiveBlending,"uniforms-fade-value":u,depthWrite:!1,transparent:!0,vertexColors:!0}))}));exports.Stars=l;
package/core/Stars.js CHANGED
@@ -1,7 +1,7 @@
1
+ import * as THREE from 'three';
2
+ import { Color, AdditiveBlending, ShaderMaterial, Vector3, Spherical } from 'three';
1
3
  import * as React from 'react';
2
4
  import { useFrame } from '@react-three/fiber';
3
- import { Color, AdditiveBlending, ShaderMaterial, Vector3, Spherical } from 'three';
4
- import { version } from '../helpers/constants.js';
5
5
 
6
6
  class StarfieldMaterial extends ShaderMaterial {
7
7
  constructor() {
@@ -37,7 +37,7 @@ class StarfieldMaterial extends ShaderMaterial {
37
37
  gl_FragColor = vec4(vColor, opacity);
38
38
 
39
39
  #include <tonemapping_fragment>
40
- #include <${version >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}>
40
+ #include <${parseInt(THREE.REVISION.replace(/\D+/g, '')) >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}>
41
41
  }`
42
42
  });
43
43
  }
@@ -45,7 +45,7 @@ class StarfieldMaterial extends ShaderMaterial {
45
45
  const genStar = r => {
46
46
  return new Vector3().setFromSpherical(new Spherical(r, Math.acos(1 - Math.random() * 2), Math.random() * 2 * Math.PI));
47
47
  };
48
- const Stars = /*@__PURE__*/React.forwardRef(({
48
+ const Stars = /*#__PURE__*/React.forwardRef(({
49
49
  radius = 100,
50
50
  depth = 50,
51
51
  count = 5000,
package/core/Svg.js CHANGED
@@ -5,7 +5,7 @@ import { forwardRef, useMemo, useEffect, Fragment } from 'react';
5
5
  import { DoubleSide } from 'three';
6
6
  import { SVGLoader } from 'three-stdlib';
7
7
 
8
- const Svg = /*@__PURE__*/forwardRef(function R3FSvg({
8
+ const Svg = /*#__PURE__*/forwardRef(function R3FSvg({
9
9
  src,
10
10
  skipFill,
11
11
  skipStrokes,
package/core/Text.js CHANGED
@@ -5,7 +5,7 @@ import { useThree } from '@react-three/fiber';
5
5
  import { suspend } from 'suspend-react';
6
6
 
7
7
  // eslint-disable-next-line prettier/prettier
8
- const Text = /*@__PURE__*/React.forwardRef(({
8
+ const Text = /*#__PURE__*/React.forwardRef(({
9
9
  sdfGlyphSize = 64,
10
10
  anchorX = 'center',
11
11
  anchorY = 'middle',
package/core/Text3D.js CHANGED
@@ -14,7 +14,7 @@ const getTextFromChildren = children => {
14
14
  });
15
15
  return [label, ...rest];
16
16
  };
17
- const Text3D = /*@__PURE__*/React.forwardRef(({
17
+ const Text3D = /*#__PURE__*/React.forwardRef(({
18
18
  font: _font,
19
19
  letterSpacing = 0,
20
20
  lineHeight = 1,
@@ -3,7 +3,7 @@ import { useThree, useFrame } from '@react-three/fiber';
3
3
  import * as React from 'react';
4
4
  import { TrackballControls as TrackballControls$1 } from 'three-stdlib';
5
5
 
6
- const TrackballControls = /*@__PURE__*/React.forwardRef(({
6
+ const TrackballControls = /*#__PURE__*/React.forwardRef(({
7
7
  makeDefault,
8
8
  camera,
9
9
  domElement,
package/core/Trail.js CHANGED
@@ -62,7 +62,7 @@ function useTrail(target, settings) {
62
62
  });
63
63
  return points;
64
64
  }
65
- const Trail = /*@__PURE__*/React.forwardRef((props, forwardRef) => {
65
+ const Trail = /*#__PURE__*/React.forwardRef((props, forwardRef) => {
66
66
  const {
67
67
  children
68
68
  } = props;
@@ -6,7 +6,7 @@ import * as React from 'react';
6
6
  import * as THREE from 'three';
7
7
  import { TransformControls as TransformControls$1 } from 'three-stdlib';
8
8
 
9
- const TransformControls = /*@__PURE__*/React.forwardRef(({
9
+ const TransformControls = /*#__PURE__*/React.forwardRef(({
10
10
  children,
11
11
  domElement,
12
12
  onChange,