@react-three/drei 7.27.0 → 7.27.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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"),i=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:i.MeshReflectorMaterial});const p=d.forwardRef((({mixBlur:e=0,mixStrength:t=.5,resolution:n=256,blur:i=[0,0],minDepthThreshold:s=.9,maxDepthThreshold:l=1,depthScale:p=0,depthToBlurRatioBias:m=.25,mirror:h,debug:f=0,distortion:x=1,distortionMap:M,...b},T)=>{const w=a.useThree((({gl:e})=>e)),g=a.useThree((({camera:e})=>e)),y=a.useThree((({scene:e})=>e)),S=(i=Array.isArray(i)?i:[i,i])[0]+i[1]>0,R=d.useRef(null),[v]=d.useState((()=>new r.Plane)),[j]=d.useState((()=>new r.Vector3)),[B]=d.useState((()=>new r.Vector3)),[D]=d.useState((()=>new r.Vector3)),[P]=d.useState((()=>new r.Matrix4)),[_]=d.useState((()=>new r.Vector3(0,0,-1))),[F]=d.useState((()=>new r.Vector4)),[V]=d.useState((()=>new r.Vector3)),[W]=d.useState((()=>new r.Vector3)),[O]=d.useState((()=>new r.Vector4)),[q]=d.useState((()=>new r.Matrix4)),[U]=d.useState((()=>new r.PerspectiveCamera)),E=d.useCallback((()=>{var e;const t=R.current.parent||(null==(e=R.current)?void 0:e.__r3f.parent);if(!t)return;if(B.setFromMatrixPosition(t.matrixWorld),D.setFromMatrixPosition(g.matrixWorld),P.extractRotation(t.matrixWorld),j.set(0,0,1),j.applyMatrix4(P),V.subVectors(B,D),V.dot(j)>0)return;V.reflect(j).negate(),V.add(B),P.extractRotation(g.matrixWorld),_.set(0,0,-1),_.applyMatrix4(P),_.add(D),W.subVectors(B,_),W.reflect(j).negate(),W.add(B),U.position.copy(V),U.up.set(0,1,0),U.up.applyMatrix4(P),U.up.reflect(j),U.lookAt(W),U.far=g.far,U.updateMatrixWorld(),U.projectionMatrix.copy(g.projectionMatrix),q.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),q.multiply(U.projectionMatrix),q.multiply(U.matrixWorldInverse),q.multiply(t.matrixWorld),v.setFromNormalAndCoplanarPoint(j,B),v.applyMatrix4(U.matrixWorldInverse),F.set(v.normal.x,v.normal.y,v.normal.z,v.constant);const r=U.projectionMatrix;O.x=(Math.sign(F.x)+r.elements[8])/r.elements[0],O.y=(Math.sign(F.y)+r.elements[9])/r.elements[5],O.z=-1,O.w=(1+r.elements[10])/r.elements[14],F.multiplyScalar(2/F.dot(O)),r.elements[2]=F.x,r.elements[6]=F.y,r.elements[10]=F.z+1,r.elements[14]=F.w}),[]),[I,C,L,k]=d.useMemo((()=>{const a={minFilter:r.LinearFilter,magFilter:r.LinearFilter,format:r.RGBFormat,encoding:w.outputEncoding},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 o.BlurPass({gl:w,resolution:n,width:i[0],height:i[1],minDepthThreshold:s,maxDepthThreshold:l,depthScale:p,depthToBlurRatioBias:m}),{mirror:h,textureMatrix:q,mixBlur:e,tDiffuse:u.texture,tDepth:u.depthTexture,tDiffuseBlur:d.texture,hasBlur:S,mixStrength:t,minDepthThreshold:s,maxDepthThreshold:l,depthScale:p,depthToBlurRatioBias:m,transparent:!0,debug:f,distortion:x,distortionMap:M,"defines-USE_BLUR":S?"":void 0,"defines-USE_DEPTH":p>0?"":void 0,"defines-USE_DISTORTION":M?"":void 0}]}),[w,i,q,n,h,S,e,t,s,l,p,m,f,x,M]);return a.useFrame((()=>{var e;const t=R.current.parent||(null==(e=R.current)?void 0:e.__r3f.parent);if(!t)return;t.visible=!1;const r=w.xr.enabled,a=w.shadowMap.autoUpdate;E(),w.xr.enabled=!1,w.shadowMap.autoUpdate=!1,w.setRenderTarget(I),w.state.buffers.depth.setMask(!0),w.autoClear||w.clear(),w.render(y,U),S&&L.render(w,I,C),w.xr.enabled=r,w.shadowMap.autoUpdate=a,t.visible=!0,w.setRenderTarget(null)})),d.createElement("meshReflectorMaterialImpl",u.default({attach:"material",ref:c.default([R,T])},k,b))}));exports.MeshReflectorMaterial=p;
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=.5,resolution:n=256,blur:o=[0,0],minDepthThreshold:s=.9,maxDepthThreshold:l=1,depthScale:p=0,depthToBlurRatioBias:m=.25,mirror:h=.5,debug:f=0,distortion:x=1,distortionMap:M,...T},S)=>{const b=a.useThree((({gl:e})=>e)),y=a.useThree((({camera:e})=>e)),w=a.useThree((({scene:e})=>e)),g=(o=Array.isArray(o)?o:[o,o])[0]+o[1]>0,R=d.useRef(null),[v]=d.useState((()=>new r.Plane)),[j]=d.useState((()=>new r.Vector3)),[B]=d.useState((()=>new r.Vector3)),[D]=d.useState((()=>new r.Vector3)),[_]=d.useState((()=>new r.Matrix4)),[P]=d.useState((()=>new r.Vector3(0,0,-1))),[U]=d.useState((()=>new r.Vector4)),[E]=d.useState((()=>new r.Vector3)),[O]=d.useState((()=>new r.Vector3)),[F]=d.useState((()=>new r.Vector4)),[V]=d.useState((()=>new r.Matrix4)),[W]=d.useState((()=>new r.PerspectiveCamera)),q=d.useCallback((()=>{var e;const t=R.current.parent||(null==(e=R.current)?void 0:e.__r3f.parent);if(!t)return;if(B.setFromMatrixPosition(t.matrixWorld),D.setFromMatrixPosition(y.matrixWorld),_.extractRotation(t.matrixWorld),j.set(0,0,1),j.applyMatrix4(_),E.subVectors(B,D),E.dot(j)>0)return;E.reflect(j).negate(),E.add(B),_.extractRotation(y.matrixWorld),P.set(0,0,-1),P.applyMatrix4(_),P.add(D),O.subVectors(B,P),O.reflect(j).negate(),O.add(B),W.position.copy(E),W.up.set(0,1,0),W.up.applyMatrix4(_),W.up.reflect(j),W.lookAt(O),W.far=y.far,W.updateMatrixWorld(),W.projectionMatrix.copy(y.projectionMatrix),V.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),V.multiply(W.projectionMatrix),V.multiply(W.matrixWorldInverse),V.multiply(t.matrixWorld),v.setFromNormalAndCoplanarPoint(j,B),v.applyMatrix4(W.matrixWorldInverse),U.set(v.normal.x,v.normal.y,v.normal.z,v.constant);const r=W.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}),[]),[I,k,L,C]=d.useMemo((()=>{const a={minFilter:r.LinearFilter,magFilter:r.LinearFilter,format:r.RGBFormat,encoding:b.outputEncoding},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:b,resolution:n,width:o[0],height:o[1],minDepthThreshold:s,maxDepthThreshold:l,depthScale:p,depthToBlurRatioBias:m}),{mirror:h,textureMatrix:V,mixBlur:e,tDiffuse:u.texture,tDepth:u.depthTexture,tDiffuseBlur:d.texture,hasBlur:g,mixStrength:t,minDepthThreshold:s,maxDepthThreshold:l,depthScale:p,depthToBlurRatioBias:m,transparent:!0,debug:f,distortion:x,distortionMap:M,"defines-USE_BLUR":g?"":void 0,"defines-USE_DEPTH":p>0?"":void 0,"defines-USE_DISTORTION":M?"":void 0}]}),[b,o,V,n,h,g,e,t,s,l,p,m,f,x,M]);return a.useFrame((()=>{var e;const t=R.current.parent||(null==(e=R.current)?void 0:e.__r3f.parent);if(!t)return;t.visible=!1;const r=b.xr.enabled,a=b.shadowMap.autoUpdate;q(),b.xr.enabled=!1,b.shadowMap.autoUpdate=!1,b.setRenderTarget(I),b.state.buffers.depth.setMask(!0),b.autoClear||b.clear(),b.render(w,W),g&&L.render(b,I,k),b.xr.enabled=r,b.shadowMap.autoUpdate=a,t.visible=!0,b.setRenderTarget(null)})),d.createElement("meshReflectorMaterialImpl",u.default({attach:"material",key:"key"+C["defines-USE_BLUR"]+C["defines-USE_DEPTH"]+C["defines-USE_DISTORTION"],ref:c.default([R,S])},C,T))}));exports.MeshReflectorMaterial=p;
@@ -18,7 +18,7 @@ const MeshReflectorMaterial = /*#__PURE__*/React.forwardRef(({
18
18
  maxDepthThreshold = 1,
19
19
  depthScale = 0,
20
20
  depthToBlurRatioBias = 0.25,
21
- mirror,
21
+ mirror = 0.5,
22
22
  debug = 0,
23
23
  distortion = 1,
24
24
  distortionMap,
@@ -172,7 +172,9 @@ const MeshReflectorMaterial = /*#__PURE__*/React.forwardRef(({
172
172
  gl.setRenderTarget(null);
173
173
  });
174
174
  return /*#__PURE__*/React.createElement("meshReflectorMaterialImpl", _extends({
175
- attach: "material",
175
+ attach: "material" // Defines can't be updated dynamically, so we need to recreate the material
176
+ ,
177
+ key: 'key' + reflectorProps['defines-USE_BLUR'] + reflectorProps['defines-USE_DEPTH'] + reflectorProps['defines-USE_DISTORTION'],
176
178
  ref: mergeRefs([materialRef, ref])
177
179
  }, reflectorProps, props));
178
180
  });