@react-three/drei 9.77.9 → 9.77.10

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";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),a=require("@react-three/fiber"),n=require("three-stdlib");function o(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 i=o(r),u=o(t);const l=i.forwardRef((({scale:r=10,frames:t=1/0,opacity:o=1,width:l=1,height:s=1,blur:c=1,far:d=10,resolution:f=512,smooth:h=!0,color:m="#000000",depthWrite:g=!1,renderOrder:p,...v},b)=>{const M=i.useRef(null),w=a.useThree((e=>e.scene)),y=a.useThree((e=>e.gl)),T=i.useRef(null);l*=Array.isArray(r)?r[0]:r||1,s*=Array.isArray(r)?r[1]:r||1;const[R,S,x,O,C,P,j]=i.useMemo((()=>{const e=new u.WebGLRenderTarget(f,f),r=new u.WebGLRenderTarget(f,f);r.texture.generateMipmaps=e.texture.generateMipmaps=!1;const t=new u.PlaneGeometry(l,s).rotateX(Math.PI/2),a=new u.Mesh(t),o=new u.MeshDepthMaterial;o.depthTest=o.depthWrite=!1,o.onBeforeCompile=e=>{e.uniforms={...e.uniforms,ucolor:{value:new u.Color(m)}},e.fragmentShader=e.fragmentShader.replace("void main() {","uniform vec3 ucolor;\n void main() {\n "),e.fragmentShader=e.fragmentShader.replace("vec4( vec3( 1.0 - fragCoordZ ), opacity );","vec4( ucolor * fragCoordZ * 2.0, ( 1.0 - fragCoordZ ) * 1.0 );")};const i=new u.ShaderMaterial(n.HorizontalBlurShader),c=new u.ShaderMaterial(n.VerticalBlurShader);return c.depthTest=i.depthTest=!1,[e,t,o,a,i,c,r]}),[f,l,s,r,m]),q=e=>{O.visible=!0,O.material=C,C.uniforms.tDiffuse.value=R.texture,C.uniforms.h.value=1*e/256,y.setRenderTarget(j),y.render(O,T.current),O.material=P,P.uniforms.tDiffuse.value=j.texture,P.uniforms.v.value=1*e/256,y.setRenderTarget(R),y.render(O,T.current),O.visible=!1};let E,W,k=0;return a.useFrame((()=>{T.current&&(t===1/0||k<t)&&(k++,E=w.background,W=w.overrideMaterial,M.current.visible=!1,w.background=null,w.overrideMaterial=x,y.setRenderTarget(R),y.render(w,T.current),q(c),h&&q(.4*c),y.setRenderTarget(null),M.current.visible=!0,w.overrideMaterial=W,w.background=E)})),i.useImperativeHandle(b,(()=>M.current),[]),i.createElement("group",e({"rotation-x":Math.PI/2},v,{ref:M}),i.createElement("mesh",{renderOrder:p,geometry:S,scale:[1,-1,1],rotation:[-Math.PI/2,0,0]},i.createElement("meshBasicMaterial",{transparent:!0,map:R.texture,opacity:o,depthWrite:g})),i.createElement("orthographicCamera",{ref:T,args:[-l/2,l/2,s/2,-s/2,0,d]}))}));exports.ContactShadows=l;
1
+ "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),a=require("@react-three/fiber"),n=require("three-stdlib");function o(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 i=o(r),u=o(t);const s=i.forwardRef((({scale:r=10,frames:t=1/0,opacity:o=1,width:s=1,height:l=1,blur:c=1,far:d=10,resolution:f=512,smooth:h=!0,color:m="#000000",depthWrite:p=!1,renderOrder:g,...v},b)=>{const y=i.useRef(null),M=a.useThree((e=>e.scene)),w=a.useThree((e=>e.gl)),T=i.useRef(null),{position:R}=v,S="number"==typeof R?R:Array.isArray(R)?R[1]:(null==R?void 0:R.y)||0;s*=Array.isArray(r)?r[0]:r||1,l*=Array.isArray(r)?r[1]:r||1;const[x,O,C,A,P,j,q]=i.useMemo((()=>{const e=new u.WebGLRenderTarget(f,f),r=new u.WebGLRenderTarget(f,f);r.texture.generateMipmaps=e.texture.generateMipmaps=!1;const t=new u.PlaneGeometry(s,l).rotateX(Math.PI/2),a=new u.Mesh(t),o=new u.MeshDepthMaterial;o.depthTest=o.depthWrite=!1,o.onBeforeCompile=e=>{e.uniforms={...e.uniforms,ucolor:{value:new u.Color(m)}},e.fragmentShader=e.fragmentShader.replace("void main() {","uniform vec3 ucolor;\n void main() {\n "),e.fragmentShader=e.fragmentShader.replace("vec4( vec3( 1.0 - fragCoordZ ), opacity );","vec4( ucolor * fragCoordZ * 2.0, ( 1.0 - fragCoordZ ) * 1.0 );")};const i=new u.ShaderMaterial(n.HorizontalBlurShader),c=new u.ShaderMaterial(n.VerticalBlurShader);return c.depthTest=i.depthTest=!1,[e,t,o,a,i,c,r]}),[f,s,l,r,m]),E=e=>{A.visible=!0,A.material=P,P.uniforms.tDiffuse.value=x.texture,P.uniforms.h.value=1*e/256,w.setRenderTarget(q),w.render(A,T.current),A.material=j,j.uniforms.tDiffuse.value=q.texture,j.uniforms.v.value=1*e/256,w.setRenderTarget(x),w.render(A,T.current),A.visible=!1};let W,k,B=0;return a.useFrame((()=>{T.current&&(t===1/0||B<t)&&(B++,W=M.background,k=M.overrideMaterial,y.current.visible=!1,M.background=null,M.overrideMaterial=C,w.setRenderTarget(x),w.render(M,T.current),E(c),h&&E(.4*c),w.setRenderTarget(null),y.current.visible=!0,M.overrideMaterial=k,M.background=W)})),i.useImperativeHandle(b,(()=>y.current),[]),i.createElement("group",e({"rotation-x":Math.PI/2},v,{ref:y}),i.createElement("mesh",{renderOrder:g,geometry:O,scale:[1,-1,1],rotation:[-Math.PI/2,0,0]},i.createElement("meshBasicMaterial",{transparent:!0,map:x.texture,opacity:o,depthWrite:p})),i.createElement("orthographicCamera",{ref:T,args:[-s/2,s/2,l/2,-l/2,0,d],"position-z":S}))}));exports.ContactShadows=s;
@@ -23,6 +23,10 @@ const ContactShadows = /*#__PURE__*/React.forwardRef(({
23
23
  const scene = useThree(state => state.scene);
24
24
  const gl = useThree(state => state.gl);
25
25
  const shadowCamera = React.useRef(null);
26
+ const {
27
+ position
28
+ } = props;
29
+ const shadowCameraZ = typeof position === 'number' ? position : Array.isArray(position) ? position[1] : (position == null ? void 0 : position.y) || 0;
26
30
  width = width * (Array.isArray(scale) ? scale[0] : scale || 1);
27
31
  height = height * (Array.isArray(scale) ? scale[1] : scale || 1);
28
32
  const [renderTarget, planeGeometry, depthMaterial, blurPlane, horizontalBlurMaterial, verticalBlurMaterial, renderTargetBlur] = React.useMemo(() => {
@@ -107,7 +111,8 @@ const ContactShadows = /*#__PURE__*/React.forwardRef(({
107
111
  depthWrite: depthWrite
108
112
  })), /*#__PURE__*/React.createElement("orthographicCamera", {
109
113
  ref: shadowCamera,
110
- args: [-width / 2, width / 2, height / 2, -height / 2, 0, far]
114
+ args: [-width / 2, width / 2, height / 2, -height / 2, 0, far],
115
+ "position-z": shadowCameraZ
111
116
  }));
112
117
  });
113
118