@react-three/drei 8.19.1 → 8.19.4
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.
- package/README.md +1 -1
- package/core/ArcballControls.cjs.js +1 -1
- package/core/ArcballControls.js +1 -1
- package/core/Cloud.cjs.js +1 -1
- package/core/Cloud.d.ts +3 -1
- package/core/Cloud.js +4 -1
- package/core/ContactShadows.cjs.js +1 -1
- package/core/ContactShadows.d.ts +3 -1
- package/core/ContactShadows.js +13 -1
- package/core/MeshReflectorMaterial.cjs.js +1 -1
- package/core/MeshReflectorMaterial.js +3 -2
- package/core/OrbitControls.cjs.js +1 -1
- package/core/OrbitControls.js +1 -1
- package/core/PointerLockControls.cjs.js +1 -1
- package/core/PointerLockControls.d.ts +1 -0
- package/core/PointerLockControls.js +2 -1
- package/core/Sampler.cjs.js +1 -1
- package/core/Sampler.js +1 -1
- package/core/TrackballControls.cjs.js +1 -1
- package/core/TrackballControls.js +1 -1
- package/core/index.cjs.js +1 -1
- package/core/index.js +0 -1
- package/core/useFBO.cjs.js +1 -1
- package/core/useFBO.d.ts +1 -1
- package/core/useFBO.js +21 -24
- package/index.cjs.js +1 -1
- package/native/index.cjs.js +1 -1
- package/native/index.js +0 -1
- package/package.json +1 -1
- package/web/ScrollControls.cjs.js +1 -1
- package/web/ScrollControls.js +1 -1
- package/web/index.cjs.js +1 -1
- package/web/index.js +0 -1
package/README.md
CHANGED
|
@@ -1849,7 +1849,7 @@ A cheap canvas-texture-based circular gradient.
|
|
|
1849
1849
|
A [contact shadow](https://threejs.org/examples/?q=con#webgl_shadow_contact) implementation, facing upwards (positive Y) by default. `scale` can be a positive number or a 2D array `[x: number, y: number]`.
|
|
1850
1850
|
|
|
1851
1851
|
```jsx
|
|
1852
|
-
<ContactShadows opacity={1} scale={10} blur={1} far={10} resolution={256} />
|
|
1852
|
+
<ContactShadows opacity={1} scale={10} blur={1} far={10} resolution={256} color="#000000" />
|
|
1853
1853
|
```
|
|
1854
1854
|
|
|
1855
1855
|
Since this is a rather expensive effect you can limit the amount of frames it renders when your objects are static. For instance making it render only once:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("@react-three/fiber"),t=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 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(e),u=o(t);const c=t.forwardRef((({camera:e,makeDefault:s,regress:o,domElement:c,onChange:i,onStart:l,onEnd:f,...d},m)=>{const v=r.useThree((e=>e.invalidate)),b=r.useThree((e=>e.camera)),h=r.useThree((e=>e.gl)),E=r.useThree((e=>e.events)),p=r.useThree((e=>e.set)),g=r.useThree((e=>e.get)),j=r.useThree((e=>e.performance)),O=e||b,T=c||E.connected||h.domElement,L=t.useMemo((()=>new n.ArcballControls(O)),[O]);return r.useFrame((()=>{L.enabled&&L.update()})),t.useEffect((()=>(L.connect(T),()=>{L.dispose()})),[T,o,L,v]),t.useEffect((()=>{const e=e=>{v(),o&&j.regress(),i&&i(e)};return L.addEventListener("change",e),l&&L.addEventListener("start",l),f&&L.addEventListener("end",f),()=>{L.removeEventListener("change",e),l&&L.removeEventListener("start",l),f&&L.removeEventListener("end",f)}}),[i,l,f]),t.useEffect((()=>{if(s){const e=g().controls;return p({controls:L}),()=>p({controls:e})}}),[s,L]),u.createElement("primitive",a.default({ref:m,object:L},d))}));exports.ArcballControls=c;
|
package/core/ArcballControls.js
CHANGED
|
@@ -22,7 +22,7 @@ const ArcballControls = /*#__PURE__*/forwardRef(({
|
|
|
22
22
|
const get = useThree(state => state.get);
|
|
23
23
|
const performance = useThree(state => state.performance);
|
|
24
24
|
const explCamera = camera || defaultCamera;
|
|
25
|
-
const explDomElement = domElement ||
|
|
25
|
+
const explDomElement = domElement || events.connected || gl.domElement;
|
|
26
26
|
const controls = useMemo(() => new ArcballControls$1(explCamera), [explCamera]);
|
|
27
27
|
useFrame(() => {
|
|
28
28
|
if (controls.enabled) controls.update();
|
package/core/Cloud.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("@react-three/fiber"),t=require("./Billboard.cjs.js"),a=require("./shapes.cjs.js"),n=require("./useTexture.cjs.js");function s(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("@babel/runtime/helpers/extends"),require("react-merge-refs"),require("three");var c=s(e);exports.Cloud=function({opacity:e=.5,speed:s=.4,width:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("@react-three/fiber"),t=require("./Billboard.cjs.js"),a=require("./shapes.cjs.js"),n=require("./useTexture.cjs.js");function s(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("@babel/runtime/helpers/extends"),require("react-merge-refs"),require("three");var c=s(e);exports.Cloud=function({opacity:e=.5,speed:s=.4,width:o=10,depth:i=1.5,segments:u=20,texture:l="https://rawcdn.githack.com/pmndrs/drei-assets/9225a9f1fbd449d9411125c2f419b843d0308c9f/cloud.png",color:d="#ffffff",depthTest:f=!0,...h}){const p=c.useRef(),m=n.useTexture(l),b=c.useMemo((()=>[...new Array(u)].map(((e,r)=>({x:o/2-Math.random()*o,y:o/2-Math.random()*o,scale:.4+Math.sin((r+1)/u*Math.PI)*(10*(.2+Math.random())),density:Math.max(.2,Math.random()),rotation:Math.max(.002,.005*Math.random())*s})))),[o,u,s]);return r.useFrame((e=>{var r;return null==(r=p.current)?void 0:r.children.forEach(((r,t)=>{r.children[0].rotation.z+=b[t].rotation,r.children[0].scale.setScalar(b[t].scale+(1+Math.sin(e.clock.getElapsedTime()/10))/2*t/10)}))})),c.createElement("group",h,c.createElement("group",{position:[0,0,u/2*i],ref:p},b.map((({x:r,y:n,scale:s,density:o},u)=>c.createElement(t.Billboard,{key:u,position:[r,n,-u*i]},c.createElement(a.Plane,{scale:s,rotation:[0,0,0]},c.createElement("meshStandardMaterial",{map:m,transparent:!0,opacity:s/6*o*e,depthTest:f,color:d})))))))};
|
package/core/Cloud.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
export declare function Cloud({ opacity, speed, width, depth, segments, texture, ...props }: {
|
|
2
|
+
export declare function Cloud({ opacity, speed, width, depth, segments, texture, color, depthTest, ...props }: {
|
|
3
3
|
[x: string]: any;
|
|
4
4
|
opacity?: number | undefined;
|
|
5
5
|
speed?: number | undefined;
|
|
@@ -7,4 +7,6 @@ export declare function Cloud({ opacity, speed, width, depth, segments, texture,
|
|
|
7
7
|
depth?: number | undefined;
|
|
8
8
|
segments?: number | undefined;
|
|
9
9
|
texture?: string | undefined;
|
|
10
|
+
color?: string | undefined;
|
|
11
|
+
depthTest?: boolean | undefined;
|
|
10
12
|
}): JSX.Element;
|
package/core/Cloud.js
CHANGED
|
@@ -12,6 +12,8 @@ function Cloud({
|
|
|
12
12
|
depth = 1.5,
|
|
13
13
|
segments = 20,
|
|
14
14
|
texture = CLOUD_URL,
|
|
15
|
+
color = "#ffffff",
|
|
16
|
+
depthTest = true,
|
|
15
17
|
...props
|
|
16
18
|
}) {
|
|
17
19
|
const group = React.useRef();
|
|
@@ -49,7 +51,8 @@ function Cloud({
|
|
|
49
51
|
map: cloudTexture,
|
|
50
52
|
transparent: true,
|
|
51
53
|
opacity: scale / 6 * density * opacity,
|
|
52
|
-
depthTest:
|
|
54
|
+
depthTest: depthTest,
|
|
55
|
+
color: color
|
|
53
56
|
}))))));
|
|
54
57
|
}
|
|
55
58
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),a=require("@react-three/fiber"),n=require("three-stdlib");function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});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){return e&&"object"==typeof e&&"default"in e?e:{default:e}}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 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(e),l=u(r),s=u(t);const c=l.forwardRef((({scale:e,frames:r=1/0,opacity:t=1,width:o=1,height:u=1,blur:c=1,far:d=10,resolution:f=256,smooth:h=!0,color:m="#000000",...p},g)=>{const v=a.useThree((({scene:e})=>e)),b=a.useThree((({gl:e})=>e)),M=l.useRef(null);o*=Array.isArray(e)?e[0]:e||1,u*=Array.isArray(e)?e[1]:e||1;const[y,w,T,S,x,R,j]=l.useMemo((()=>{const e=new s.WebGLRenderTarget(f,f),r=new s.WebGLRenderTarget(f,f);r.texture.generateMipmaps=e.texture.generateMipmaps=!1;const t=new s.PlaneBufferGeometry(o,u).rotateX(Math.PI/2),a=new s.Mesh(t),i=new s.MeshDepthMaterial;i.depthTest=i.depthWrite=!1,i.onBeforeCompile=e=>{e.uniforms={...e.uniforms,ucolor:{value:new s.Color(m).convertSRGBToLinear()}},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, ( 1.0 - fragCoordZ ) * 1.0 );")};const l=new s.ShaderMaterial(n.HorizontalBlurShader),c=new s.ShaderMaterial(n.VerticalBlurShader);return c.depthTest=l.depthTest=!1,[e,t,i,a,l,c,r]}),[f,o,u,e]),C=l.useCallback((e=>{S.visible=!0,S.material=x,x.uniforms.tDiffuse.value=y.texture,x.uniforms.h.value=1*e/256,b.setRenderTarget(j),b.render(S,M.current),S.material=R,R.uniforms.tDiffuse.value=j.texture,R.uniforms.v.value=1*e/256,b.setRenderTarget(y),b.render(S,M.current),S.visible=!1}),[]);let O=0;return a.useFrame((()=>{if(M.current&&(r===1/0||O<r)){const e=v.background;v.background=null;const r=v.overrideMaterial;v.overrideMaterial=T,b.setRenderTarget(y),b.render(v,M.current),v.overrideMaterial=r,C(c),h&&C(.4*c),b.setRenderTarget(null),v.background=e,O++}})),l.createElement("group",i.default({"rotation-x":Math.PI/2},p,{ref:g}),l.createElement("mesh",{geometry:w,scale:[1,-1,1],rotation:[-Math.PI/2,0,0]},l.createElement("meshBasicMaterial",{map:y.texture,transparent:!0,opacity:t})),l.createElement("orthographicCamera",{ref:M,args:[-o/2,o/2,u/2,-u/2,0,d]}))}));exports.ContactShadows=c;
|
package/core/ContactShadows.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import * as THREE from 'three';
|
|
2
3
|
export declare const ContactShadows: React.ForwardRefExoticComponent<Pick<Omit<import("@react-three/fiber").GroupProps, "scale"> & {
|
|
3
4
|
opacity?: number | undefined;
|
|
4
5
|
width?: number | undefined;
|
|
@@ -9,4 +10,5 @@ export declare const ContactShadows: React.ForwardRefExoticComponent<Pick<Omit<i
|
|
|
9
10
|
resolution?: number | undefined;
|
|
10
11
|
frames?: number | undefined;
|
|
11
12
|
scale?: number | [x: number, y: number] | undefined;
|
|
12
|
-
|
|
13
|
+
color?: THREE.ColorRepresentation | undefined;
|
|
14
|
+
}, "visible" | "attach" | "attachArray" | "attachObject" | "args" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "type" | "isGroup" | "id" | "uuid" | "name" | "parent" | "modelViewMatrix" | "normalMatrix" | "matrixWorld" | "matrixAutoUpdate" | "matrixWorldNeedsUpdate" | "castShadow" | "receiveShadow" | "frustumCulled" | "renderOrder" | "animations" | "userData" | "customDepthMaterial" | "customDistanceMaterial" | "isObject3D" | "onBeforeRender" | "onAfterRender" | "applyMatrix4" | "applyQuaternion" | "setRotationFromAxisAngle" | "setRotationFromEuler" | "setRotationFromMatrix" | "setRotationFromQuaternion" | "rotateOnAxis" | "rotateOnWorldAxis" | "rotateX" | "rotateY" | "rotateZ" | "translateOnAxis" | "translateX" | "translateY" | "translateZ" | "localToWorld" | "worldToLocal" | "lookAt" | "add" | "remove" | "removeFromParent" | "clear" | "getObjectById" | "getObjectByName" | "getObjectByProperty" | "getWorldPosition" | "getWorldQuaternion" | "getWorldScale" | "getWorldDirection" | "raycast" | "traverse" | "traverseVisible" | "traverseAncestors" | "updateMatrix" | "updateMatrixWorld" | "updateWorldMatrix" | "toJSON" | "clone" | "copy" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | "color" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "smooth" | "blur" | "height" | "opacity" | "width" | "resolution" | "far" | "frames"> & React.RefAttributes<unknown>>;
|
package/core/ContactShadows.js
CHANGED
|
@@ -14,6 +14,7 @@ const ContactShadows = /*#__PURE__*/React.forwardRef(({
|
|
|
14
14
|
far = 10,
|
|
15
15
|
resolution = 256,
|
|
16
16
|
smooth = true,
|
|
17
|
+
color = '#000000',
|
|
17
18
|
...props
|
|
18
19
|
}, ref) => {
|
|
19
20
|
const scene = useThree(({
|
|
@@ -34,7 +35,18 @@ const ContactShadows = /*#__PURE__*/React.forwardRef(({
|
|
|
34
35
|
const depthMaterial = new THREE.MeshDepthMaterial();
|
|
35
36
|
depthMaterial.depthTest = depthMaterial.depthWrite = false;
|
|
36
37
|
|
|
37
|
-
depthMaterial.onBeforeCompile = shader =>
|
|
38
|
+
depthMaterial.onBeforeCompile = shader => {
|
|
39
|
+
shader.uniforms = { ...shader.uniforms,
|
|
40
|
+
ucolor: {
|
|
41
|
+
value: new THREE.Color(color).convertSRGBToLinear()
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
shader.fragmentShader = shader.fragmentShader.replace(`void main() {`, //
|
|
45
|
+
`uniform vec3 ucolor;
|
|
46
|
+
void main() {
|
|
47
|
+
`);
|
|
48
|
+
shader.fragmentShader = shader.fragmentShader.replace('vec4( vec3( 1.0 - fragCoordZ ), opacity );', 'vec4( ucolor, ( 1.0 - fragCoordZ ) * 1.0 );');
|
|
49
|
+
};
|
|
38
50
|
|
|
39
51
|
const horizontalBlurMaterial = new THREE.ShaderMaterial(HorizontalBlurShader);
|
|
40
52
|
const verticalBlurMaterial = new THREE.ShaderMaterial(VerticalBlurShader);
|
|
@@ -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"),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=1,resolution:n=256,blur:i=[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)),g=a.useThree((({scene:e})=>e)),R=(i=Array.isArray(i)?i:[i,i])[0]+i[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)),[E]=d.useState((()=>new r.Vector3)),[V]=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),E.subVectors(B,_),E.dot(D)>0)return;E.reflect(D).negate(),E.add(B),O.extractRotation(b.matrixWorld),P.set(0,0,-1),P.applyMatrix4(O),P.add(_),V.subVectors(B,P),V.reflect(D).negate(),V.add(B),q.position.copy(E),q.up.set(0,1,0),q.up.applyMatrix4(O),q.up.reflect(D),q.lookAt(V),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,encoding:w.outputEncoding,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 o.BlurPass({gl:w,resolution:n,width:i[0],height:i[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:R,mixStrength:t,minDepthThreshold:s,maxDepthThreshold:l,depthScale:p,depthToBlurRatioBias:m,transparent:!0,distortion:f,distortionMap:M,mixContrast:x,"defines-USE_BLUR":R?"":void 0,"defines-USE_DEPTH":p>0?"":void 0,"defines-USE_DISTORTION":M?"":void 0}]}),[w,i,W,n,h,R,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(g,q),R&&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,6 +1,6 @@
|
|
|
1
1
|
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { Plane, Vector3, Matrix4, Vector4, PerspectiveCamera, LinearFilter, WebGLRenderTarget, DepthTexture, DepthFormat, UnsignedShortType } from 'three';
|
|
3
|
+
import { Plane, Vector3, Matrix4, Vector4, PerspectiveCamera, LinearFilter, HalfFloatType, WebGLRenderTarget, DepthTexture, DepthFormat, UnsignedShortType } from 'three';
|
|
4
4
|
import { extend, useThree, useFrame } from '@react-three/fiber';
|
|
5
5
|
import mergeRefs from 'react-merge-refs';
|
|
6
6
|
import { BlurPass } from '../materials/BlurPass.js';
|
|
@@ -109,7 +109,8 @@ const MeshReflectorMaterial = /*#__PURE__*/React.forwardRef(({
|
|
|
109
109
|
const parameters = {
|
|
110
110
|
minFilter: LinearFilter,
|
|
111
111
|
magFilter: LinearFilter,
|
|
112
|
-
encoding: gl.outputEncoding
|
|
112
|
+
encoding: gl.outputEncoding,
|
|
113
|
+
type: HalfFloatType
|
|
113
114
|
};
|
|
114
115
|
const fbo1 = new WebGLRenderTarget(resolution, resolution, parameters);
|
|
115
116
|
fbo1.depthBuffer = true;
|
|
@@ -1 +1 @@
|
|
|
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
|
|
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,onChange:i,onStart:f,onEnd:d,...l},m)=>{const b=t.useThree((e=>e.invalidate)),v=t.useThree((e=>e.camera)),h=t.useThree((e=>e.gl)),p=t.useThree((e=>e.events)),E=t.useThree((e=>e.set)),g=t.useThree((e=>e.get)),O=t.useThree((e=>e.performance)),j=r||v,T=o||p.connected||h.domElement,L=u.useMemo((()=>new n.OrbitControls(j)),[j]);return t.useFrame((()=>{L.enabled&&L.update()})),u.useEffect((()=>(L.connect(T),()=>{L.dispose()})),[T,s,L,b]),u.useEffect((()=>{const e=e=>{b(),s&&O.regress(),i&&i(e)};return L.addEventListener("change",e),f&&L.addEventListener("start",f),d&&L.addEventListener("end",d),()=>{f&&L.removeEventListener("start",f),d&&L.removeEventListener("end",d),L.removeEventListener("change",e)}}),[i,f,d]),u.useEffect((()=>{if(e){const e=g().controls;return E({controls:L}),()=>E({controls:e})}}),[e,L]),u.createElement("primitive",a.default({ref:m,object:L,enableDamping:c},l))}));exports.OrbitControls=c;
|
package/core/OrbitControls.js
CHANGED
|
@@ -22,7 +22,7 @@ const OrbitControls = /*#__PURE__*/React.forwardRef(({
|
|
|
22
22
|
const get = useThree(state => state.get);
|
|
23
23
|
const performance = useThree(state => state.performance);
|
|
24
24
|
const explCamera = camera || defaultCamera;
|
|
25
|
-
const explDomElement = domElement ||
|
|
25
|
+
const explDomElement = domElement || events.connected || gl.domElement;
|
|
26
26
|
const controls = React.useMemo(() => new OrbitControls$1(explCamera), [explCamera]);
|
|
27
27
|
useFrame(() => {
|
|
28
28
|
if (controls.enabled) controls.update();
|
|
@@ -1 +1 @@
|
|
|
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),
|
|
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),u=c(r);const a=u.forwardRef((({domElement:e,selector:r,onChange:o,onLock:c,onUnlock:a,enabled:i=!0,...f},d)=>{const{camera:l,...v}=f,m=t.useThree((({gl:e})=>e)),h=t.useThree((e=>e.camera)),E=t.useThree((e=>e.invalidate)),b=t.useThree((e=>e.raycaster)),k=t.useThree((e=>e.events)),p=l||h,L=e||k.connected||m.domElement,[g]=u.useState((()=>new n.PointerLockControls(p)));return u.useEffect((()=>{if(i){g.connect(L);const e=b.computeOffsets;return b.computeOffsets=e=>({offsetX:e.target.width/2,offsetY:e.target.height/2}),()=>{g.disconnect(),b.computeOffsets=e}}}),[i,g]),u.useEffect((()=>{const e=e=>{E(),o&&o(e)};g.addEventListener("change",e),c&&g.addEventListener("lock",c),a&&g.addEventListener("unlock",a);const t=()=>g.lock(),n=r?Array.from(document.querySelectorAll(r)):[document];return n.forEach((e=>e&&e.addEventListener("click",t))),()=>{g.removeEventListener("change",e),c&&g.addEventListener("lock",c),a&&g.addEventListener("unlock",a),n.forEach((e=>e?e.removeEventListener("click",t):void 0))}}),[o,c,a,r]),u.createElement("primitive",s.default({ref:d,object:g},v))}));exports.PointerLockControls=a;
|
|
@@ -3,6 +3,7 @@ import * as React from 'react';
|
|
|
3
3
|
import * as THREE from 'three';
|
|
4
4
|
import { PointerLockControls as PointerLockControlsImpl } from 'three-stdlib';
|
|
5
5
|
export declare type PointerLockControlsProps = ReactThreeFiber.Object3DNode<PointerLockControlsImpl, typeof PointerLockControlsImpl> & {
|
|
6
|
+
domElement?: HTMLElement;
|
|
6
7
|
selector?: string;
|
|
7
8
|
enabled?: boolean;
|
|
8
9
|
camera?: THREE.Camera;
|
|
@@ -4,6 +4,7 @@ import * as React from 'react';
|
|
|
4
4
|
import { PointerLockControls as PointerLockControls$1 } from 'three-stdlib';
|
|
5
5
|
|
|
6
6
|
const PointerLockControls = /*#__PURE__*/React.forwardRef(({
|
|
7
|
+
domElement,
|
|
7
8
|
selector,
|
|
8
9
|
onChange,
|
|
9
10
|
onLock,
|
|
@@ -23,7 +24,7 @@ const PointerLockControls = /*#__PURE__*/React.forwardRef(({
|
|
|
23
24
|
const raycaster = useThree(state => state.raycaster);
|
|
24
25
|
const events = useThree(state => state.events);
|
|
25
26
|
const explCamera = camera || defaultCamera;
|
|
26
|
-
const explDomElement =
|
|
27
|
+
const explDomElement = domElement || events.connected || gl.domElement;
|
|
27
28
|
const [controls] = React.useState(() => new PointerLockControls$1(explCamera));
|
|
28
29
|
React.useEffect(() => {
|
|
29
30
|
if (enabled) {
|
package/core/Sampler.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three-stdlib
|
|
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 i=u(e),l=c(r);exports.Sampler=({children:e,weight:r,transform:u,instances:c,mesh:o,...a})=>{const s=l.useRef(null),d=l.useRef(null),f=l.useRef(null);return l.useEffect((()=>{var e,r;d.current=null!==(e=null==c?void 0:c.current)&&void 0!==e?e:s.current.children.find((e=>e.hasOwnProperty("instanceMatrix"))),f.current=null!==(r=null==o?void 0:o.current)&&void 0!==r?r:s.current.children.find((e=>"Mesh"===e.type))}),[e,null==o?void 0:o.current,null==c?void 0:c.current]),l.useEffect((()=>{if(void 0===f.current)return;if(void 0===d.current)return;const e=new t.MeshSurfaceSampler(f.current);r&&e.setWeightAttribute(r),e.build();const c=new n.Vector3,i=new n.Vector3,l=new n.Color,o=new n.Object3D;f.current.updateMatrixWorld(!0);for(let r=0;r<d.current.count;r++)e.sample(c,i,l),"function"==typeof u?u({dummy:o,sampledMesh:f.current,position:c,normal:i,color:l},r):o.position.copy(c),o.updateMatrix(),d.current.setMatrixAt(r,o.matrix);d.current.instanceMatrix.needsUpdate=!0}),[e,null==o?void 0:o.current,null==c?void 0:c.current]),l.createElement("group",i.default({ref:s},a),e)};
|
package/core/Sampler.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { MeshSurfaceSampler } from 'three-stdlib
|
|
3
|
+
import { MeshSurfaceSampler } from 'three-stdlib';
|
|
4
4
|
import { Vector3, Color, Object3D } from 'three';
|
|
5
5
|
|
|
6
6
|
const Sampler = ({
|
|
@@ -1 +1 @@
|
|
|
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 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 s=o(e),c=a(r);const u=c.forwardRef((({makeDefault:e,camera:r,domElement:o,regress:a,onChange:u,onStart:i,onEnd:f,...l},d)=>{const{invalidate:v,camera:
|
|
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 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 s=o(e),c=a(r);const u=c.forwardRef((({makeDefault:e,camera:r,domElement:o,regress:a,onChange:u,onStart:i,onEnd:f,...l},d)=>{const{invalidate:v,camera:m,gl:b,events:E,set:p,get:g,performance:h,viewport:j}=t.useThree(),O=r||m,L=o||E.connected||b.domElement,y=c.useMemo((()=>new n.TrackballControls(O)),[O]);return t.useFrame((()=>{y.enabled&&y.update()})),c.useEffect((()=>(y.connect(L),()=>{y.dispose()})),[L,a,y,v]),c.useEffect((()=>{const e=e=>{v(),a&&h.regress(),u&&u(e)};return y.addEventListener("change",e),i&&y.addEventListener("start",i),f&&y.addEventListener("end",f),()=>{i&&y.removeEventListener("start",i),f&&y.removeEventListener("end",f),y.removeEventListener("change",e)}}),[u,i,f]),c.useEffect((()=>{y.handleResize()}),[j]),c.useEffect((()=>{if(e){const e=g().controls;return p({controls:y}),()=>p({controls:e})}}),[e,y]),c.createElement("primitive",s.default({ref:d,object:y},l))}));exports.TrackballControls=u;
|
|
@@ -24,7 +24,7 @@ const TrackballControls = /*#__PURE__*/React.forwardRef(({
|
|
|
24
24
|
viewport
|
|
25
25
|
} = useThree();
|
|
26
26
|
const explCamera = camera || defaultCamera;
|
|
27
|
-
const explDomElement = domElement ||
|
|
27
|
+
const explDomElement = domElement || events.connected || gl.domElement;
|
|
28
28
|
const controls = React.useMemo(() => new TrackballControls$1(explCamera), [explCamera]);
|
|
29
29
|
useFrame(() => {
|
|
30
30
|
if (controls.enabled) controls.update();
|
package/core/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Billboard.cjs.js"),r=require("./QuadraticBezierLine.cjs.js"),s=require("./CubicBezierLine.cjs.js"),t=require("./Line.cjs.js"),o=require("./PositionalAudio.cjs.js"),i=require("./Text.cjs.js"),u=require("./Effects.cjs.js"),a=require("./GradientTexture.cjs.js"),n=require("./Image.cjs.js"),j=require("./Edges.cjs.js"),c=require("./Trail.cjs.js"),p=require("./Sampler.cjs.js"),l=require("./ComputedAttribute.cjs.js"),x=require("./Clone.cjs.js"),q=require("./OrthographicCamera.cjs.js"),d=require("./PerspectiveCamera.cjs.js"),C=require("./CubeCamera.cjs.js"),m=require("./DeviceOrientationControls.cjs.js"),h=require("./FlyControls.cjs.js"),b=require("./MapControls.cjs.js"),B=require("./OrbitControls.cjs.js"),P=require("./TrackballControls.cjs.js"),S=require("./ArcballControls.cjs.js"),M=require("./TransformControls.cjs.js"),T=require("./PointerLockControls.cjs.js"),f=require("./FirstPersonControls.cjs.js"),g=require("./GizmoHelper.cjs.js"),v=require("./GizmoViewcube.cjs.js"),L=require("./GizmoViewport.cjs.js"),A=require("./useCubeTexture.cjs.js"),E=require("./useFBX.cjs.js"),G=require("./useGLTF.cjs.js"),k=require("./useProgress.cjs.js"),D=require("./useTexture.cjs.js"),F=require("./useKTX2.cjs.js"),w=require("./Stats.cjs.js"),z=require("./useDepthBuffer.cjs.js"),I=require("./useAspect.cjs.js"),O=require("./useCamera.cjs.js"),R=require("./useDetectGPU.cjs.js"),y=require("./useHelper.cjs.js"),H=require("./useBVH.cjs.js"),V=require("./useContextBridge.cjs.js"),Q=require("./useAnimations.cjs.js"),X=require("./useFBO.cjs.js"),K=require("./useIntersect.cjs.js"),W=require("./useBoxProjectedEnv.cjs.js"),N=require("./CurveModifier.cjs.js"),U=require("./MeshDistortMaterial.cjs.js"),_=require("./MeshWobbleMaterial.cjs.js"),J=require("./MeshReflectorMaterial.cjs.js"),Y=require("./PointMaterial.cjs.js"),Z=require("./shaderMaterial.cjs.js"),$=require("./softShadows.cjs.js"),ee=require("./shapes.cjs.js"),re=require("./RoundedBox.cjs.js"),se=require("./ScreenQuad.cjs.js"),te=require("./Center.cjs.js"),oe=require("./Bounds.cjs.js"),ie=require("./CameraShake.cjs.js"),ue=require("./Float.cjs.js"),ae=require("./Stage.cjs.js"),ne=require("./Backdrop.cjs.js"),je=require("./Shadow.cjs.js"),ce=require("./ContactShadows.cjs.js"),pe=require("./Reflector.cjs.js"),le=require("./SpotLight.cjs.js"),xe=require("./Environment.cjs.js"),qe=require("./Lightformer.cjs.js"),de=require("./Sky.cjs.js"),Ce=require("./Stars.cjs.js"),me=require("./Cloud.cjs.js"),he=require("./useMatcapTexture.cjs.js"),be=require("./useNormalTexture.cjs.js"),Be=require("./Points.cjs.js"),Pe=require("./Instances.cjs.js"),Se=require("./Segments.cjs.js"),Me=require("./Detailed.cjs.js"),Te=require("./Preload.cjs.js"),fe=require("./BakeShadows.cjs.js"),ge=require("./meshBounds.cjs.js"),ve=require("./AdaptiveDpr.cjs.js"),Le=require("./AdaptiveEvents.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("@react-three/fiber"),require("react-merge-refs"),require("three"),require("three-stdlib"),require("troika-three-text"),require("suspend-react"),require("meshline"),require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Billboard.cjs.js"),r=require("./QuadraticBezierLine.cjs.js"),s=require("./CubicBezierLine.cjs.js"),t=require("./Line.cjs.js"),o=require("./PositionalAudio.cjs.js"),i=require("./Text.cjs.js"),u=require("./Effects.cjs.js"),a=require("./GradientTexture.cjs.js"),n=require("./Image.cjs.js"),j=require("./Edges.cjs.js"),c=require("./Trail.cjs.js"),p=require("./Sampler.cjs.js"),l=require("./ComputedAttribute.cjs.js"),x=require("./Clone.cjs.js"),q=require("./OrthographicCamera.cjs.js"),d=require("./PerspectiveCamera.cjs.js"),C=require("./CubeCamera.cjs.js"),m=require("./DeviceOrientationControls.cjs.js"),h=require("./FlyControls.cjs.js"),b=require("./MapControls.cjs.js"),B=require("./OrbitControls.cjs.js"),P=require("./TrackballControls.cjs.js"),S=require("./ArcballControls.cjs.js"),M=require("./TransformControls.cjs.js"),T=require("./PointerLockControls.cjs.js"),f=require("./FirstPersonControls.cjs.js"),g=require("./GizmoHelper.cjs.js"),v=require("./GizmoViewcube.cjs.js"),L=require("./GizmoViewport.cjs.js"),A=require("./useCubeTexture.cjs.js"),E=require("./useFBX.cjs.js"),G=require("./useGLTF.cjs.js"),k=require("./useProgress.cjs.js"),D=require("./useTexture.cjs.js"),F=require("./useKTX2.cjs.js"),w=require("./Stats.cjs.js"),z=require("./useDepthBuffer.cjs.js"),I=require("./useAspect.cjs.js"),O=require("./useCamera.cjs.js"),R=require("./useDetectGPU.cjs.js"),y=require("./useHelper.cjs.js"),H=require("./useBVH.cjs.js"),V=require("./useContextBridge.cjs.js"),Q=require("./useAnimations.cjs.js"),X=require("./useFBO.cjs.js"),K=require("./useIntersect.cjs.js"),W=require("./useBoxProjectedEnv.cjs.js"),N=require("./CurveModifier.cjs.js"),U=require("./MeshDistortMaterial.cjs.js"),_=require("./MeshWobbleMaterial.cjs.js"),J=require("./MeshReflectorMaterial.cjs.js"),Y=require("./PointMaterial.cjs.js"),Z=require("./shaderMaterial.cjs.js"),$=require("./softShadows.cjs.js"),ee=require("./shapes.cjs.js"),re=require("./RoundedBox.cjs.js"),se=require("./ScreenQuad.cjs.js"),te=require("./Center.cjs.js"),oe=require("./Bounds.cjs.js"),ie=require("./CameraShake.cjs.js"),ue=require("./Float.cjs.js"),ae=require("./Stage.cjs.js"),ne=require("./Backdrop.cjs.js"),je=require("./Shadow.cjs.js"),ce=require("./ContactShadows.cjs.js"),pe=require("./Reflector.cjs.js"),le=require("./SpotLight.cjs.js"),xe=require("./Environment.cjs.js"),qe=require("./Lightformer.cjs.js"),de=require("./Sky.cjs.js"),Ce=require("./Stars.cjs.js"),me=require("./Cloud.cjs.js"),he=require("./useMatcapTexture.cjs.js"),be=require("./useNormalTexture.cjs.js"),Be=require("./Points.cjs.js"),Pe=require("./Instances.cjs.js"),Se=require("./Segments.cjs.js"),Me=require("./Detailed.cjs.js"),Te=require("./Preload.cjs.js"),fe=require("./BakeShadows.cjs.js"),ge=require("./meshBounds.cjs.js"),ve=require("./AdaptiveDpr.cjs.js"),Le=require("./AdaptiveEvents.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("@react-three/fiber"),require("react-merge-refs"),require("three"),require("three-stdlib"),require("troika-three-text"),require("suspend-react"),require("meshline"),require("lodash.pick"),require("lodash.omit"),require("zustand"),require("stats.js"),require("../helpers/useEffectfulState.cjs.js"),require("detect-gpu"),require("three-mesh-bvh"),require("../materials/BlurPass.cjs.js"),require("../materials/ConvolutionMaterial.cjs.js"),require("../materials/MeshReflectorMaterial.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("../helpers/Position.cjs.js"),require("react-composer"),exports.Billboard=e.Billboard,exports.QuadraticBezierLine=r.QuadraticBezierLine,exports.CubicBezierLine=s.CubicBezierLine,exports.Line=t.Line,exports.PositionalAudio=o.PositionalAudio,exports.Text=i.Text,exports.Effects=u.Effects,exports.isWebGL2Available=u.isWebGL2Available,exports.GradientTexture=a.GradientTexture,exports.Image=n.Image,exports.Edges=j.Edges,exports.Trail=c.Trail,exports.useTrail=c.useTrail,exports.Sampler=p.Sampler,exports.ComputedAttribute=l.ComputedAttribute,exports.Clone=x.Clone,exports.OrthographicCamera=q.OrthographicCamera,exports.PerspectiveCamera=d.PerspectiveCamera,exports.CubeCamera=C.CubeCamera,exports.DeviceOrientationControls=m.DeviceOrientationControls,exports.FlyControls=h.FlyControls,exports.MapControls=b.MapControls,exports.OrbitControls=B.OrbitControls,exports.TrackballControls=P.TrackballControls,exports.ArcballControls=S.ArcballControls,exports.TransformControls=M.TransformControls,exports.PointerLockControls=T.PointerLockControls,exports.FirstPersonControls=f.FirstPersonControls,exports.GizmoHelper=g.GizmoHelper,exports.useGizmoContext=g.useGizmoContext,exports.GizmoViewcube=v.GizmoViewcube,exports.GizmoViewport=L.GizmoViewport,exports.useCubeTexture=A.useCubeTexture,exports.useFBX=E.useFBX,exports.useGLTF=G.useGLTF,exports.useProgress=k.useProgress,exports.IsObject=D.IsObject,exports.useTexture=D.useTexture,exports.useKTX2=F.useKTX2,exports.Stats=w.Stats,exports.useDepthBuffer=z.useDepthBuffer,exports.useAspect=I.useAspect,exports.useCamera=O.useCamera,exports.useDetectGPU=R.useDetectGPU,exports.useHelper=y.useHelper,exports.useBVH=H.useBVH,exports.useContextBridge=V.useContextBridge,exports.useAnimations=Q.useAnimations,exports.useFBO=X.useFBO,exports.useIntersect=K.useIntersect,exports.useBoxProjectedEnv=W.useBoxProjectedEnv,exports.CurveModifier=N.CurveModifier,exports.MeshDistortMaterial=U.MeshDistortMaterial,exports.MeshWobbleMaterial=_.MeshWobbleMaterial,exports.MeshReflectorMaterial=J.MeshReflectorMaterial,exports.PointMaterial=Y.PointMaterial,exports.PointMaterialImpl=Y.PointMaterialImpl,exports.shaderMaterial=Z.shaderMaterial,exports.softShadows=$.softShadows,exports.Box=ee.Box,exports.Circle=ee.Circle,exports.Cone=ee.Cone,exports.Cylinder=ee.Cylinder,exports.Dodecahedron=ee.Dodecahedron,exports.Extrude=ee.Extrude,exports.Icosahedron=ee.Icosahedron,exports.Lathe=ee.Lathe,exports.Octahedron=ee.Octahedron,exports.Plane=ee.Plane,exports.Polyhedron=ee.Polyhedron,exports.Ring=ee.Ring,exports.Sphere=ee.Sphere,exports.Tetrahedron=ee.Tetrahedron,exports.Torus=ee.Torus,exports.TorusKnot=ee.TorusKnot,exports.Tube=ee.Tube,exports.RoundedBox=re.RoundedBox,exports.ScreenQuad=se.ScreenQuad,exports.Center=te.Center,exports.Bounds=oe.Bounds,exports.useBounds=oe.useBounds,exports.CameraShake=ie.CameraShake,exports.Float=ue.Float,exports.Stage=ae.Stage,exports.Backdrop=ne.Backdrop,exports.Shadow=je.Shadow,exports.ContactShadows=ce.ContactShadows,exports.Reflector=pe.Reflector,exports.SpotLight=le.SpotLight,exports.Environment=xe.Environment,exports.EnvironmentCube=xe.EnvironmentCube,exports.EnvironmentMap=xe.EnvironmentMap,exports.EnvironmentPortal=xe.EnvironmentPortal,exports.Lightformer=qe.Lightformer,exports.Sky=de.Sky,exports.calcPosFromAngles=de.calcPosFromAngles,exports.Stars=Ce.Stars,exports.Cloud=me.Cloud,exports.useMatcapTexture=he.useMatcapTexture,exports.useNormalTexture=be.useNormalTexture,exports.Point=Be.Point,exports.Points=Be.Points,exports.PointsBuffer=Be.PointsBuffer,exports.Instance=Pe.Instance,exports.Instances=Pe.Instances,exports.Merged=Pe.Merged,exports.Segment=Se.Segment,exports.Segments=Se.Segments,exports.Detailed=Me.Detailed,exports.Preload=Te.Preload,exports.BakeShadows=fe.BakeShadows,exports.meshBounds=ge.meshBounds,exports.AdaptiveDpr=ve.AdaptiveDpr,exports.AdaptiveEvents=Le.AdaptiveEvents;
|
package/core/index.js
CHANGED
package/core/useFBO.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("three"),r=require("@react-three/fiber");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 u=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,u.get?u:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("three"),r=require("@react-three/fiber");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 u=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,u.get?u:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var n=u(e),i=u(t);exports.useFBO=function(e,t,u){const{gl:o,size:s}=r.useThree(),a=n.useMemo((()=>o.getPixelRatio()),[o]),c="number"==typeof e?e:s.width*a,f="number"==typeof t?t:s.height*a,l=("number"==typeof e?u:e)||{},{samples:p,...b}=l,d=n.useMemo((()=>{let e;return e=new i.WebGLRenderTarget(c,f,{minFilter:i.LinearFilter,magFilter:i.LinearFilter,encoding:o.outputEncoding,type:i.HalfFloatType,...b}),e}),[]);return n.useLayoutEffect((()=>{d.setSize(c,f),p&&(d.samples=p)}),[p,d,c,f]),n.useEffect((()=>()=>d.dispose()),[]),d};
|
package/core/useFBO.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ declare type FBOSettings<T extends boolean = false> = {
|
|
|
3
3
|
multisample?: T;
|
|
4
4
|
samples?: number;
|
|
5
5
|
} & THREE.WebGLRenderTargetOptions;
|
|
6
|
-
export declare function useFBO<T extends boolean = false>(width?: number | FBOSettings<T>, height?: number, settings?: FBOSettings<T>):
|
|
6
|
+
export declare function useFBO<T extends boolean = false>(width?: number | FBOSettings<T>, height?: number, settings?: FBOSettings<T>): THREE.WebGLRenderTarget;
|
|
7
7
|
export {};
|
package/core/useFBO.js
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as React from 'react';
|
|
2
2
|
import * as THREE from 'three';
|
|
3
3
|
import { useThree } from '@react-three/fiber';
|
|
4
4
|
|
|
5
5
|
// 👇 uncomment when TS version supports function overloads
|
|
6
6
|
// export function useFBO(settings?: FBOSettings)
|
|
7
7
|
function useFBO(width, height, settings) {
|
|
8
|
-
const
|
|
9
|
-
gl
|
|
10
|
-
}) => gl);
|
|
11
|
-
const size = useThree(({
|
|
8
|
+
const {
|
|
9
|
+
gl,
|
|
12
10
|
size
|
|
13
|
-
}
|
|
14
|
-
const dpr = useMemo(() => gl.getPixelRatio(), [gl]);
|
|
11
|
+
} = useThree();
|
|
12
|
+
const dpr = React.useMemo(() => gl.getPixelRatio(), [gl]);
|
|
15
13
|
|
|
16
14
|
const _width = typeof width === 'number' ? width : size.width * dpr;
|
|
17
15
|
|
|
@@ -19,27 +17,26 @@ function useFBO(width, height, settings) {
|
|
|
19
17
|
|
|
20
18
|
const _settings = (typeof width === 'number' ? settings : width) || {};
|
|
21
19
|
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
} = _settings;
|
|
20
|
+
const {
|
|
21
|
+
samples,
|
|
22
|
+
...targetSettings
|
|
23
|
+
} = _settings;
|
|
24
|
+
const target = React.useMemo(() => {
|
|
28
25
|
let target;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
|
|
26
|
+
target = new THREE.WebGLRenderTarget(_width, _height, {
|
|
27
|
+
minFilter: THREE.LinearFilter,
|
|
28
|
+
magFilter: THREE.LinearFilter,
|
|
29
|
+
encoding: gl.outputEncoding,
|
|
30
|
+
type: THREE.HalfFloatType,
|
|
31
|
+
...targetSettings
|
|
32
|
+
});
|
|
37
33
|
return target;
|
|
38
34
|
}, []);
|
|
39
|
-
|
|
35
|
+
React.useLayoutEffect(() => {
|
|
40
36
|
target.setSize(_width, _height);
|
|
41
|
-
|
|
42
|
-
|
|
37
|
+
if (samples) target.samples = samples;
|
|
38
|
+
}, [samples, target, _width, _height]);
|
|
39
|
+
React.useEffect(() => {
|
|
43
40
|
return () => target.dispose();
|
|
44
41
|
}, []);
|
|
45
42
|
return target;
|