@react-three/drei 9.68.2 → 9.68.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/MeshRefractionMaterial.cjs.js +1 -1
- package/core/MeshRefractionMaterial.js +3 -2
- package/core/Resize.cjs.js +1 -1
- package/core/Resize.js +4 -4
- package/core/shaderMaterial.cjs.js +1 -1
- package/core/shaderMaterial.js +3 -2
- package/index.cjs.js +1 -1
- package/materials/BlurPass.cjs.js +1 -1
- package/materials/BlurPass.js +2 -1
- package/materials/MeshReflectorMaterial.cjs.js +1 -1
- package/materials/MeshReflectorMaterial.js +46 -45
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1887,7 +1887,7 @@ function Scene() {
|
|
|
1887
1887
|
|
|
1888
1888
|
[](https://drei.vercel.app/?path=/story/misc-example--example-st)
|
|
1889
1889
|
|
|
1890
|
-
>
|
|
1890
|
+
> **Warning** solely for [`CONTRIBUTING`](CONTRIBUTING.md#example) purposes
|
|
1891
1891
|
|
|
1892
1892
|
A "counter" example.
|
|
1893
1893
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),a=require("three-mesh-bvh"),n=require("../materials/MeshRefractionMaterial.cjs.js");function i(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 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("three"),require("./shaderMaterial.cjs.js");var u=i(e),s=o(r);exports.MeshRefractionMaterial=function({aberrationStrength:e=0,fastChroma:i=!0,envMap:o,...c}){t.extend({MeshRefractionMaterial:n.MeshRefractionMaterial});const l=r.useRef(),{size:f}=t.useThree(),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),a=require("three-mesh-bvh"),n=require("../materials/MeshRefractionMaterial.cjs.js");function i(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 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("three"),require("./shaderMaterial.cjs.js");var u=i(e),s=o(r);exports.MeshRefractionMaterial=function({aberrationStrength:e=0,fastChroma:i=!0,envMap:o,...c}){t.extend({MeshRefractionMaterial:n.MeshRefractionMaterial});const l=r.useRef(),{size:f}=t.useThree(),h=r.useMemo((()=>{var r,t;const a={},n=(u=o)&&u.isCubeTexture;var u;const s=(null!==(r=n?null==(t=o.image[0])?void 0:t.width:o.image.width)&&void 0!==r?r:1024)/4,c=Math.floor(Math.log2(s)),l=Math.pow(2,c),f=3*Math.max(l,112),h=4*l;return n&&(a.ENVMAP_TYPE_CUBEM=""),a.CUBEUV_TEXEL_WIDTH=""+1/f,a.CUBEUV_TEXEL_HEIGHT=""+1/h,a.CUBEUV_MAX_MIP=`${c}.0`,e>0&&(a.CHROMATIC_ABERRATIONS=""),i&&(a.FAST_CHROMA=""),a}),[e,i]);return r.useLayoutEffect((()=>{var e,r,t;const n=null==(e=l.current)||null==(r=e.__r3f)||null==(t=r.parent)?void 0:t.geometry;n&&(l.current.bvh=new a.MeshBVHUniformStruct,l.current.bvh.updateFrom(new a.MeshBVH(n.clone().toNonIndexed(),{lazyGeneration:!1,strategy:a.SAH})))}),[]),t.useFrame((({camera:e})=>{l.current.viewMatrixInverse=e.matrixWorld,l.current.projectionMatrixInverse=e.projectionMatrixInverse})),s.createElement("meshRefractionMaterial",u.default({key:JSON.stringify(h),defines:h,ref:l,resolution:[f.width,f.height],aberrationStrength:e,envMap:o},c))};
|
|
@@ -2,7 +2,7 @@ import _extends from '@babel/runtime/helpers/esm/extends';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useRef, useMemo, useLayoutEffect } from 'react';
|
|
4
4
|
import { extend, useThree, useFrame } from '@react-three/fiber';
|
|
5
|
-
import { MeshBVH, SAH } from 'three-mesh-bvh';
|
|
5
|
+
import { MeshBVHUniformStruct, MeshBVH, SAH } from 'three-mesh-bvh';
|
|
6
6
|
import { MeshRefractionMaterial as MeshRefractionMaterial$1 } from '../materials/MeshRefractionMaterial.js';
|
|
7
7
|
|
|
8
8
|
const isCubeTexture = def => def && def.isCubeTexture;
|
|
@@ -51,7 +51,8 @@ function MeshRefractionMaterial({
|
|
|
51
51
|
const geometry = (_material$current = material.current) == null ? void 0 : (_material$current$__r = _material$current.__r3f) == null ? void 0 : (_material$current$__r2 = _material$current$__r.parent) == null ? void 0 : _material$current$__r2.geometry; // Update the BVH
|
|
52
52
|
|
|
53
53
|
if (geometry) {
|
|
54
|
-
material.current.bvh
|
|
54
|
+
material.current.bvh = new MeshBVHUniformStruct();
|
|
55
|
+
material.current.bvh.updateFrom(new MeshBVH(geometry.clone().toNonIndexed(), {
|
|
55
56
|
lazyGeneration: false,
|
|
56
57
|
strategy: SAH
|
|
57
58
|
}));
|
package/core/Resize.cjs.js
CHANGED
|
@@ -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"),t=require("three"),r=require("react");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}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 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 c=n(e),a=u(t),l=u(r);const i=l.forwardRef((({children:e,width:t,height:r,depth:n,box3:u,precise:i=!0,...o},f)=>{const s=l.useRef(null),d=l.useRef(null),m=l.useRef(null);return l.useLayoutEffect((()=>{d.current.matrixWorld.identity();let e=u||(new a.Box3).setFromObject(m.current,i);const c=e.max.x-e.min.x,l=e.max.y-e.min.y,o=e.max.z-e.min.z;let f=Math.max(c,l,o);t&&(f=c),r&&(f=l),n&&(f=o),d.current.scale.setScalar(1/f)}),[t,r,n,u,i]),l.useImperativeHandle(f,(()=>s.current),[]),l.createElement("group",c.default({ref:s},o),l.createElement("group",{ref:d},l.createElement("group",{ref:m},e)))}));exports.Resize=i;
|
package/core/Resize.js
CHANGED
|
@@ -16,10 +16,10 @@ const Resize = /*#__PURE__*/React.forwardRef(({
|
|
|
16
16
|
const inner = React.useRef(null);
|
|
17
17
|
React.useLayoutEffect(() => {
|
|
18
18
|
outer.current.matrixWorld.identity();
|
|
19
|
-
|
|
20
|
-
const w =
|
|
21
|
-
const h =
|
|
22
|
-
const d =
|
|
19
|
+
let box = box3 || new THREE.Box3().setFromObject(inner.current, precise);
|
|
20
|
+
const w = box.max.x - box.min.x;
|
|
21
|
+
const h = box.max.y - box.min.y;
|
|
22
|
+
const d = box.max.z - box.min.z;
|
|
23
23
|
let dimension = Math.max(w, h, d);
|
|
24
24
|
if (width) dimension = w;
|
|
25
25
|
if (height) dimension = h;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function e(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var
|
|
1
|
+
"use strict";function e(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)}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("three"));exports.shaderMaterial=function(e,r,n,s){const i=class extends t.ShaderMaterial{key="";constructor(i={}){const a=Object.entries(e);super({uniforms:a.reduce(((e,[r,n])=>({...e,...t.UniformsUtils.clone({[r]:{value:n}})})),{}),vertexShader:r,fragmentShader:n}),a.forEach((([e])=>Object.defineProperty(this,e,{get:()=>this.uniforms[e].value,set:t=>this.uniforms[e].value=t}))),Object.assign(this,i),s&&s(this)}};return i.key=t.MathUtils.generateUUID(),i};
|
package/core/shaderMaterial.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
2
|
|
|
3
3
|
function shaderMaterial(uniforms, vertexShader, fragmentShader, onInit) {
|
|
4
|
-
const material = class
|
|
4
|
+
const material = class extends THREE.ShaderMaterial {
|
|
5
|
+
key = '';
|
|
6
|
+
|
|
5
7
|
constructor(parameters = {}) {
|
|
6
8
|
const entries = Object.entries(uniforms); // Create unforms and shaders
|
|
7
9
|
|
|
@@ -20,7 +22,6 @@ function shaderMaterial(uniforms, vertexShader, fragmentShader, onInit) {
|
|
|
20
22
|
fragmentShader
|
|
21
23
|
}); // Create getter/setters
|
|
22
24
|
|
|
23
|
-
this.key = '';
|
|
24
25
|
entries.forEach(([name]) => Object.defineProperty(this, name, {
|
|
25
26
|
get: () => this.uniforms[name].value,
|
|
26
27
|
set: v => this.uniforms[name].value = v
|