@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"),
|
|
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
|
});
|