@react-three/drei 9.120.4 → 9.120.5
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/core/ArcballControls.js +1 -0
- package/core/DeviceOrientationControls.js +1 -0
- package/core/FlyControls.js +1 -0
- package/core/MapControls.js +1 -0
- package/core/OrbitControls.d.ts +6 -6
- package/core/OrbitControls.js +1 -0
- package/core/PointerLockControls.js +1 -0
- package/core/Sparkles.cjs.js +1 -1
- package/core/Sparkles.d.ts +9 -2
- package/core/Sparkles.js +62 -34
- package/core/StatsGl.cjs.js +1 -1
- package/core/StatsGl.d.ts +2 -1
- package/core/StatsGl.js +9 -9
- package/core/TrackballControls.js +1 -0
- package/index.cjs.js +1 -1
- package/package.json +1 -1
- package/web/FaceControls.cjs.js +1 -1
- package/web/FaceControls.d.ts +1 -1
- package/web/FaceControls.js +2 -2
- package/web/ScreenVideoTexture.d.ts +4 -3
- package/web/WebcamVideoTexture.d.ts +4 -3
package/core/ArcballControls.js
CHANGED
package/core/FlyControls.js
CHANGED
package/core/MapControls.js
CHANGED
package/core/OrbitControls.d.ts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { ReactThreeFiber } from '@react-three/fiber';
|
|
2
|
-
import
|
|
2
|
+
import { Camera, Event } from 'three';
|
|
3
3
|
import { OrbitControls as OrbitControlsImpl } from 'three-stdlib';
|
|
4
4
|
import { ForwardRefComponent } from '../helpers/ts-utils';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
};
|
|
5
|
+
type ExtractCallback<T, E extends string> = T extends {
|
|
6
|
+
addEventListener(event: E, callback: infer C): void;
|
|
7
|
+
} ? C : never;
|
|
8
|
+
export type OrbitControlsChangeEvent = Parameters<ExtractCallback<OrbitControlsImpl, 'change'>>[0];
|
|
10
9
|
export type OrbitControlsProps = Omit<ReactThreeFiber.Overwrite<ReactThreeFiber.Object3DNode<OrbitControlsImpl, typeof OrbitControlsImpl>, {
|
|
11
10
|
camera?: Camera;
|
|
12
11
|
domElement?: HTMLElement;
|
|
@@ -20,3 +19,4 @@ export type OrbitControlsProps = Omit<ReactThreeFiber.Overwrite<ReactThreeFiber.
|
|
|
20
19
|
keyEvents?: boolean | HTMLElement;
|
|
21
20
|
}>, 'ref'>;
|
|
22
21
|
export declare const OrbitControls: ForwardRefComponent<OrbitControlsProps, OrbitControlsImpl>;
|
|
22
|
+
export {};
|
package/core/OrbitControls.js
CHANGED
package/core/Sparkles.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),i=require("@react-three/fiber"),o=require("../helpers/constants.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 i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,i.get?i:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=n(e),l=a(t),c=a(r);class u extends c.ShaderMaterial{constructor(){super({uniforms:{time:{value:0},pixelRatio:{value:1}},vertexShader:"\n 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\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 }\n ",fragmentShader:`\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 <${o.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }\n `})}get time(){return this.uniforms.time.value}set time(e){this.uniforms.time.value=e}get pixelRatio(){return this.uniforms.pixelRatio.value}set pixelRatio(e){this.uniforms.pixelRatio.value=e}}const 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 l.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=l.forwardRef((({noise:e=1,count:t=100,speed:r=1,opacity:o=1,scale:n=1,size:a,color:m,children:v,...b},g)=>{l.useMemo((()=>i.extend({SparklesImplMaterial:u})),[]);const y=l.useRef(null),h=i.useThree((e=>e.viewport.dpr)),x=p(n),A=l.useMemo((()=>Float32Array.from(Array.from({length:t},(()=>x.map(c.MathUtils.randFloatSpread))).flat())),[t,...x]),P=d(t,a,Math.random),M=d(t,o),j=d(t,r),O=d(3*t,e),_=d(void 0===m?3*t:t,f(m)?m:new c.Color(m),(()=>1));return i.useFrame((e=>{y.current&&y.current.material&&(y.current.material.time=e.clock.elapsedTime)})),l.useImperativeHandle(g,(()=>y.current),[]),l.createElement("points",s.default({key:`particle-${t}-${JSON.stringify(n)}`},b,{ref:y}),l.createElement("bufferGeometry",null,l.createElement("bufferAttribute",{attach:"attributes-position",args:[A,3]}),l.createElement("bufferAttribute",{attach:"attributes-size",args:[P,1]}),l.createElement("bufferAttribute",{attach:"attributes-opacity",args:[M,1]}),l.createElement("bufferAttribute",{attach:"attributes-speed",args:[j,1]}),l.createElement("bufferAttribute",{attach:"attributes-color",args:[_,3]}),l.createElement("bufferAttribute",{attach:"attributes-noise",args:[O,3]})),v||l.createElement("sparklesImplMaterial",{transparent:!0,pixelRatio:h,depthWrite:!1}))}));exports.Sparkles=v;
|
package/core/Sparkles.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
|
-
import { PointsProps,
|
|
2
|
+
import { PointsProps, MaterialNode } from '@react-three/fiber';
|
|
3
3
|
import { ForwardRefComponent } from '../helpers/ts-utils';
|
|
4
4
|
interface Props {
|
|
5
5
|
count?: number;
|
|
@@ -10,10 +10,17 @@ interface Props {
|
|
|
10
10
|
scale?: number | [number, number, number] | THREE.Vector3;
|
|
11
11
|
noise?: number | [number, number, number] | THREE.Vector3 | Float32Array;
|
|
12
12
|
}
|
|
13
|
+
declare class SparklesImplMaterial extends THREE.ShaderMaterial {
|
|
14
|
+
constructor();
|
|
15
|
+
get time(): number;
|
|
16
|
+
set time(value: number);
|
|
17
|
+
get pixelRatio(): number;
|
|
18
|
+
set pixelRatio(value: number);
|
|
19
|
+
}
|
|
13
20
|
declare global {
|
|
14
21
|
namespace JSX {
|
|
15
22
|
interface IntrinsicElements {
|
|
16
|
-
sparklesImplMaterial:
|
|
23
|
+
sparklesImplMaterial: MaterialNode<SparklesImplMaterial, typeof SparklesImplMaterial>;
|
|
17
24
|
}
|
|
18
25
|
}
|
|
19
26
|
}
|
package/core/Sparkles.js
CHANGED
|
@@ -2,42 +2,70 @@ import _extends from '@babel/runtime/helpers/esm/extends';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import * as THREE from 'three';
|
|
4
4
|
import { extend, useThree, useFrame } from '@react-three/fiber';
|
|
5
|
-
import { shaderMaterial } from './shaderMaterial.js';
|
|
6
5
|
import { version } from '../helpers/constants.js';
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
7
|
+
class SparklesImplMaterial extends THREE.ShaderMaterial {
|
|
8
|
+
constructor() {
|
|
9
|
+
super({
|
|
10
|
+
uniforms: {
|
|
11
|
+
time: {
|
|
12
|
+
value: 0
|
|
13
|
+
},
|
|
14
|
+
pixelRatio: {
|
|
15
|
+
value: 1
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
vertexShader: /* glsl */`
|
|
19
|
+
uniform float pixelRatio;
|
|
20
|
+
uniform float time;
|
|
21
|
+
attribute float size;
|
|
22
|
+
attribute float speed;
|
|
23
|
+
attribute float opacity;
|
|
24
|
+
attribute vec3 noise;
|
|
25
|
+
attribute vec3 color;
|
|
26
|
+
varying vec3 vColor;
|
|
27
|
+
varying float vOpacity;
|
|
28
|
+
|
|
29
|
+
void main() {
|
|
30
|
+
vec4 modelPosition = modelMatrix * vec4(position, 1.0);
|
|
31
|
+
modelPosition.y += sin(time * speed + modelPosition.x * noise.x * 100.0) * 0.2;
|
|
32
|
+
modelPosition.z += cos(time * speed + modelPosition.x * noise.y * 100.0) * 0.2;
|
|
33
|
+
modelPosition.x += cos(time * speed + modelPosition.x * noise.z * 100.0) * 0.2;
|
|
34
|
+
vec4 viewPosition = viewMatrix * modelPosition;
|
|
35
|
+
vec4 projectionPostion = projectionMatrix * viewPosition;
|
|
36
|
+
gl_Position = projectionPostion;
|
|
37
|
+
gl_PointSize = size * 25. * pixelRatio;
|
|
38
|
+
gl_PointSize *= (1.0 / - viewPosition.z);
|
|
39
|
+
vColor = color;
|
|
40
|
+
vOpacity = opacity;
|
|
41
|
+
}
|
|
42
|
+
`,
|
|
43
|
+
fragmentShader: /* glsl */`
|
|
44
|
+
varying vec3 vColor;
|
|
45
|
+
varying float vOpacity;
|
|
46
|
+
void main() {
|
|
47
|
+
float distanceToCenter = distance(gl_PointCoord, vec2(0.5));
|
|
48
|
+
float strength = 0.05 / distanceToCenter - 0.1;
|
|
49
|
+
gl_FragColor = vec4(vColor, strength * vOpacity);
|
|
50
|
+
#include <tonemapping_fragment>
|
|
51
|
+
#include <${version >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}>
|
|
52
|
+
}
|
|
53
|
+
`
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
get time() {
|
|
57
|
+
return this.uniforms.time.value;
|
|
58
|
+
}
|
|
59
|
+
set time(value) {
|
|
60
|
+
this.uniforms.time.value = value;
|
|
61
|
+
}
|
|
62
|
+
get pixelRatio() {
|
|
63
|
+
return this.uniforms.pixelRatio.value;
|
|
64
|
+
}
|
|
65
|
+
set pixelRatio(value) {
|
|
66
|
+
this.uniforms.pixelRatio.value = value;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
41
69
|
const isFloat32Array = def => def && def.constructor === Float32Array;
|
|
42
70
|
const expandColor = v => [v.r, v.g, v.b];
|
|
43
71
|
const isVector = v => v instanceof THREE.Vector2 || v instanceof THREE.Vector3 || v instanceof THREE.Vector4;
|
package/core/StatsGl.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@react-three/fiber"),t=require("react"),r=require("stats-gl");function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@react-three/fiber"),t=require("react"),r=require("stats-gl");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}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 l=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,l.get?l:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var o=n(t),u=l(r);const s=o.forwardRef((({className:t,parent:r,id:l,clearStatsGlStyle:n,...s},a)=>{const c=e.useThree((e=>e.gl)),d=o.useMemo((()=>{const e=new u.default({...s});return e.init(c),e}),[c]);return o.useImperativeHandle(a,(()=>d.domElement),[d]),o.useEffect((()=>{if(d){const o=r&&r.current||document.body;null==o||o.appendChild(d.domElement),d.domElement.querySelectorAll("canvas").forEach((e=>{e.style.removeProperty("position")})),l&&(d.domElement.id=l),n&&d.domElement.removeAttribute("style"),d.domElement.removeAttribute("style");const u=(null!=t?t:"").split(" ").filter((e=>e));u.length&&d.domElement.classList.add(...u);const s=e.addAfterEffect((()=>d.update()));return()=>{u.length&&d.domElement.classList.remove(...u),null==o||o.removeChild(d.domElement),s()}}}),[r,d,t,l,n]),null}));s.displayName="StatsGl",exports.StatsGl=s;
|
package/core/StatsGl.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { ForwardRefComponent } from '../helpers/ts-utils';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import Stats from 'stats-gl';
|
|
4
|
-
type
|
|
4
|
+
type StatsOptions = ConstructorParameters<typeof Stats>[0];
|
|
5
|
+
type Props = Partial<StatsOptions> & {
|
|
5
6
|
id?: string;
|
|
6
7
|
clearStatsGlStyle?: boolean;
|
|
7
8
|
showPanel?: number;
|
package/core/StatsGl.js
CHANGED
|
@@ -17,23 +17,23 @@ const StatsGl = /* @__PURE__ */React.forwardRef(({
|
|
|
17
17
|
stats.init(gl);
|
|
18
18
|
return stats;
|
|
19
19
|
}, [gl]);
|
|
20
|
-
React.useImperativeHandle(fref, () => stats.
|
|
20
|
+
React.useImperativeHandle(fref, () => stats.domElement, [stats]);
|
|
21
21
|
React.useEffect(() => {
|
|
22
22
|
if (stats) {
|
|
23
23
|
const node = parent && parent.current || document.body;
|
|
24
|
-
node == null || node.appendChild(stats.
|
|
25
|
-
stats.
|
|
24
|
+
node == null || node.appendChild(stats.domElement);
|
|
25
|
+
stats.domElement.querySelectorAll('canvas').forEach(canvas => {
|
|
26
26
|
canvas.style.removeProperty('position');
|
|
27
27
|
});
|
|
28
|
-
if (id) stats.
|
|
29
|
-
if (clearStatsGlStyle) stats.
|
|
30
|
-
stats.
|
|
28
|
+
if (id) stats.domElement.id = id;
|
|
29
|
+
if (clearStatsGlStyle) stats.domElement.removeAttribute('style');
|
|
30
|
+
stats.domElement.removeAttribute('style');
|
|
31
31
|
const classNames = (className !== null && className !== void 0 ? className : '').split(' ').filter(cls => cls);
|
|
32
|
-
if (classNames.length) stats.
|
|
32
|
+
if (classNames.length) stats.domElement.classList.add(...classNames);
|
|
33
33
|
const end = addAfterEffect(() => stats.update());
|
|
34
34
|
return () => {
|
|
35
|
-
if (classNames.length) stats.
|
|
36
|
-
node == null || node.removeChild(stats.
|
|
35
|
+
if (classNames.length) stats.domElement.classList.remove(...classNames);
|
|
36
|
+
node == null || node.removeChild(stats.domElement);
|
|
37
37
|
end();
|
|
38
38
|
};
|
|
39
39
|
}
|