@react-three/drei 9.72.1 → 9.73.0
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 +17 -1
- package/core/MeshPortalMaterial.cjs.js +1 -0
- package/core/MeshPortalMaterial.d.ts +34 -0
- package/core/MeshPortalMaterial.js +60 -0
- package/core/index.cjs.js +1 -1
- package/core/index.d.ts +1 -0
- package/core/index.js +1 -0
- package/core/useEnvironment.cjs.js +1 -1
- package/core/useEnvironment.js +18 -9
- package/index.cjs.js +1 -1
- package/index.js +1 -0
- package/native/index.cjs.js +1 -1
- package/native/index.js +1 -0
- package/package.json +1 -1
- package/web/index.cjs.js +1 -1
- package/web/index.js +1 -0
package/README.md
CHANGED
|
@@ -155,6 +155,7 @@ The `native` route of the library **does not** export `Html` or `Loader`. The de
|
|
|
155
155
|
<li><a href="#view">View</a></li>
|
|
156
156
|
<li><a href="#rendertexture">RenderTexture</a></li>
|
|
157
157
|
<li><a href="#mask">Mask</a></li>
|
|
158
|
+
<li><a href="#portal">Portal</a></li>
|
|
158
159
|
</ul>
|
|
159
160
|
<li><a href="#modifiers">Modifiers</a></li>
|
|
160
161
|
<ul>
|
|
@@ -3213,6 +3214,21 @@ Invert masks individually by providing a 2nd boolean argument to the `useMask` h
|
|
|
3213
3214
|
const stencil = useMask(1, true)
|
|
3214
3215
|
```
|
|
3215
3216
|
|
|
3217
|
+
#### Portal
|
|
3218
|
+
|
|
3219
|
+
A material that creates a portal into another scene. It is drawn onto the geometry of the mesh that it is applied to.
|
|
3220
|
+
|
|
3221
|
+
````jsx
|
|
3222
|
+
<mesh {...props}>
|
|
3223
|
+
<planeGeometry />
|
|
3224
|
+
<MeshPortalMaterial>
|
|
3225
|
+
<mesh>
|
|
3226
|
+
<sphereGeometry />
|
|
3227
|
+
</mesh>
|
|
3228
|
+
</MeshPortalMaterial>
|
|
3229
|
+
</mesh>
|
|
3230
|
+
```
|
|
3231
|
+
|
|
3216
3232
|
# Staging
|
|
3217
3233
|
|
|
3218
3234
|
#### Center
|
|
@@ -3247,7 +3263,7 @@ export type Props = JSX.IntrinsicElements['group'] & {
|
|
|
3247
3263
|
/** Callback, fires in the useLayoutEffect phase, after measurement */
|
|
3248
3264
|
onCentered?: (props: OnCenterCallbackProps) => void
|
|
3249
3265
|
}
|
|
3250
|
-
|
|
3266
|
+
````
|
|
3251
3267
|
|
|
3252
3268
|
```tsx
|
|
3253
3269
|
type OnCenterCallbackProps = {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),n=require("@react-three/fiber"),a=require("./RenderTexture.cjs.js"),u=require("./shaderMaterial.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 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)}require("./useFBO.cjs.js");var l=i(e),c=o(r),s=o(t);const d=u.shaderMaterial({map:null,resolution:new c.Vector2},"void main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }","uniform sampler2D map;\n uniform vec2 resolution;\n void main() {\n vec2 uv = gl_FragCoord.xy / resolution.xy;\n gl_FragColor = texture2D(map, uv);\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n }"),p=s.forwardRef((({children:e,...r},t)=>{n.extend({PortalMaterial:d});const u=s.useRef(null),i=s.useRef(null),{size:o,events:c,viewport:p}=n.useThree();return n.useFrame((()=>{var e;let r=null==(e=u.current)?void 0:e.__r3f.parent;r&&i.current.matrix.copy(r.matrixWorld)})),s.useImperativeHandle(t,(()=>u.current)),s.createElement("portalMaterial",l.default({ref:u,resolution:[o.width*p.dpr,o.height*p.dpr],toneMapped:!1},r),s.createElement(a.RenderTexture,{attach:"map",compute:c.compute},s.createElement("group",{onPointerOver:()=>null,matrixAutoUpdate:!1,ref:i},e)))}));exports.MeshPortalMaterial=p;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { ReactThreeFiber } from '@react-three/fiber';
|
|
4
|
+
declare global {
|
|
5
|
+
namespace JSX {
|
|
6
|
+
interface IntrinsicElements {
|
|
7
|
+
portalMaterial: ReactThreeFiber.ShaderMaterialProps & {
|
|
8
|
+
resolution: ReactThreeFiber.Vector2;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export declare type PortalProps = JSX.IntrinsicElements['mesh'];
|
|
14
|
+
export declare const MeshPortalMaterial: React.ForwardRefExoticComponent<Pick<Omit<ReactThreeFiber.ExtendedColors<ReactThreeFiber.Overwrite<Partial<THREE.Mesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>>, ReactThreeFiber.NodeProps<THREE.Mesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>, typeof THREE.Mesh>>>, ReactThreeFiber.NonFunctionKeys<{
|
|
15
|
+
position?: ReactThreeFiber.Vector3 | undefined;
|
|
16
|
+
up?: ReactThreeFiber.Vector3 | undefined;
|
|
17
|
+
scale?: ReactThreeFiber.Vector3 | undefined;
|
|
18
|
+
rotation?: ReactThreeFiber.Euler | undefined;
|
|
19
|
+
matrix?: ReactThreeFiber.Matrix4 | undefined;
|
|
20
|
+
quaternion?: ReactThreeFiber.Quaternion | undefined;
|
|
21
|
+
layers?: ReactThreeFiber.Layers | undefined;
|
|
22
|
+
dispose?: (() => void) | null | undefined;
|
|
23
|
+
}>> & {
|
|
24
|
+
position?: ReactThreeFiber.Vector3 | undefined;
|
|
25
|
+
up?: ReactThreeFiber.Vector3 | undefined;
|
|
26
|
+
scale?: ReactThreeFiber.Vector3 | undefined;
|
|
27
|
+
rotation?: ReactThreeFiber.Euler | undefined;
|
|
28
|
+
matrix?: ReactThreeFiber.Matrix4 | undefined;
|
|
29
|
+
quaternion?: ReactThreeFiber.Quaternion | undefined;
|
|
30
|
+
layers?: ReactThreeFiber.Layers | undefined;
|
|
31
|
+
dispose?: (() => void) | null | undefined;
|
|
32
|
+
} & import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers, "visible" | "attach" | "args" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "type" | "id" | "uuid" | "name" | "parent" | "modelViewMatrix" | "normalMatrix" | "matrixWorld" | "matrixAutoUpdate" | "matrixWorldAutoUpdate" | "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" | "getObjectsByProperty" | "getWorldPosition" | "getWorldQuaternion" | "getWorldScale" | "getWorldDirection" | "raycast" | "traverse" | "traverseVisible" | "traverseAncestors" | "updateMatrix" | "updateMatrixWorld" | "updateWorldMatrix" | "toJSON" | "clone" | "copy" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "material" | "geometry" | "morphTargetInfluences" | "morphTargetDictionary" | "isMesh" | "updateMorphTargets" | "getVertexPosition"> & React.RefAttributes<typeof THREE.ShaderMaterial & {
|
|
33
|
+
key: string;
|
|
34
|
+
}>>;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
|
+
import * as THREE from 'three';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { extend, useThree, useFrame } from '@react-three/fiber';
|
|
5
|
+
import { RenderTexture } from './RenderTexture.js';
|
|
6
|
+
import { shaderMaterial } from './shaderMaterial.js';
|
|
7
|
+
|
|
8
|
+
const PortalMaterial = shaderMaterial({
|
|
9
|
+
map: null,
|
|
10
|
+
resolution: new THREE.Vector2()
|
|
11
|
+
}, `void main() {
|
|
12
|
+
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
|
|
13
|
+
}`, `uniform sampler2D map;
|
|
14
|
+
uniform vec2 resolution;
|
|
15
|
+
void main() {
|
|
16
|
+
vec2 uv = gl_FragCoord.xy / resolution.xy;
|
|
17
|
+
gl_FragColor = texture2D(map, uv);
|
|
18
|
+
#include <tonemapping_fragment>
|
|
19
|
+
#include <encodings_fragment>
|
|
20
|
+
}`);
|
|
21
|
+
const MeshPortalMaterial = /*#__PURE__*/React.forwardRef(({
|
|
22
|
+
children,
|
|
23
|
+
...props
|
|
24
|
+
}, fref) => {
|
|
25
|
+
extend({
|
|
26
|
+
PortalMaterial
|
|
27
|
+
});
|
|
28
|
+
const ref = React.useRef(null);
|
|
29
|
+
const group = React.useRef(null);
|
|
30
|
+
const {
|
|
31
|
+
size,
|
|
32
|
+
events,
|
|
33
|
+
viewport
|
|
34
|
+
} = useThree();
|
|
35
|
+
useFrame(() => {
|
|
36
|
+
var _ref$current;
|
|
37
|
+
|
|
38
|
+
let parent = (_ref$current = ref.current) == null ? void 0 : _ref$current.__r3f.parent;
|
|
39
|
+
|
|
40
|
+
if (parent) {
|
|
41
|
+
group.current.matrix.copy(parent.matrixWorld);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
React.useImperativeHandle(fref, () => ref.current);
|
|
45
|
+
return /*#__PURE__*/React.createElement("portalMaterial", _extends({
|
|
46
|
+
// @ts-ignore
|
|
47
|
+
ref: ref,
|
|
48
|
+
resolution: [size.width * viewport.dpr, size.height * viewport.dpr],
|
|
49
|
+
toneMapped: false
|
|
50
|
+
}, props), /*#__PURE__*/React.createElement(RenderTexture, {
|
|
51
|
+
attach: "map",
|
|
52
|
+
compute: events.compute
|
|
53
|
+
}, /*#__PURE__*/React.createElement("group", {
|
|
54
|
+
onPointerOver: () => null,
|
|
55
|
+
matrixAutoUpdate: false,
|
|
56
|
+
ref: group
|
|
57
|
+
}, children)));
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
export { MeshPortalMaterial };
|
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("./ScreenSpace.cjs.js"),s=require("./QuadraticBezierLine.cjs.js"),t=require("./CubicBezierLine.cjs.js"),o=require("./CatmullRomLine.cjs.js"),i=require("./Line.cjs.js"),a=require("./PositionalAudio.cjs.js"),u=require("./Text.cjs.js"),c=require("./Text3D.cjs.js"),n=require("./Effects.cjs.js"),j=require("./GradientTexture.cjs.js"),p=require("./Image.cjs.js"),x=require("./Edges.cjs.js"),l=require("./Trail.cjs.js"),q=require("./Sampler.cjs.js"),d=require("./ComputedAttribute.cjs.js"),m=require("./Clone.cjs.js"),h=require("./MarchingCubes.cjs.js"),C=require("./Decal.cjs.js"),M=require("./Svg.cjs.js"),S=require("./Gltf.cjs.js"),T=require("./AsciiRenderer.cjs.js"),b=require("./OrthographicCamera.cjs.js"),f=require("./PerspectiveCamera.cjs.js"),B=require("./CubeCamera.cjs.js"),P=require("./DeviceOrientationControls.cjs.js"),g=require("./FlyControls.cjs.js"),v=require("./MapControls.cjs.js"),A=require("./OrbitControls.cjs.js"),L=require("./TrackballControls.cjs.js"),D=require("./ArcballControls.cjs.js"),E=require("./TransformControls.cjs.js"),R=require("./PointerLockControls.cjs.js"),k=require("./FirstPersonControls.cjs.js"),F=require("./CameraControls.cjs.js"),G=require("./GizmoHelper.cjs.js"),w=require("./GizmoViewcube.cjs.js"),z=require("./GizmoViewport.cjs.js"),O=require("./Grid.cjs.js"),I=require("./useCubeTexture.cjs.js"),H=require("./useFBX.cjs.js"),V=require("./useGLTF.cjs.js"),y=require("./useKTX2.cjs.js"),W=require("./useProgress.cjs.js"),Q=require("./useTexture.cjs.js"),X=require("./useVideoTexture.cjs.js"),K=require("./useFont.cjs.js"),N=require("./Stats.cjs.js"),U=require("./useDepthBuffer.cjs.js"),_=require("./useAspect.cjs.js"),J=require("./useCamera.cjs.js"),Y=require("./useDetectGPU.cjs.js"),Z=require("./useHelper.cjs.js"),$=require("./useBVH.cjs.js"),ee=require("./useContextBridge.cjs.js"),re=require("./useAnimations.cjs.js"),se=require("./useFBO.cjs.js"),te=require("./useIntersect.cjs.js"),oe=require("./useBoxProjectedEnv.cjs.js"),ie=require("./BBAnchor.cjs.js"),ae=require("./useTrailTexture.cjs.js"),ue=require("./useCubeCamera.cjs.js"),ce=require("./Example.cjs.js"),ne=require("./SpriteAnimator.cjs.js"),je=require("./CurveModifier.cjs.js"),pe=require("./MeshDistortMaterial.cjs.js"),xe=require("./MeshWobbleMaterial.cjs.js"),le=require("./MeshReflectorMaterial.cjs.js"),qe=require("./MeshRefractionMaterial.cjs.js"),de=require("./MeshTransmissionMaterial.cjs.js"),me=require("./MeshDiscardMaterial.cjs.js"),he=require("./PointMaterial.cjs.js"),Ce=require("./shaderMaterial.cjs.js"),Me=require("./softShadows.cjs.js"),Se=require("./shapes.cjs.js"),Te=require("./Facemesh.cjs.js"),be=require("./RoundedBox.cjs.js"),fe=require("./ScreenQuad.cjs.js"),Be=require("./Center.cjs.js"),Pe=require("./Resize.cjs.js"),ge=require("./Bounds.cjs.js"),ve=require("./CameraShake.cjs.js"),Ae=require("./Float.cjs.js"),Le=require("./Stage.cjs.js"),De=require("./Backdrop.cjs.js"),Ee=require("./Shadow.cjs.js"),Re=require("./Caustics.cjs.js"),ke=require("./ContactShadows.cjs.js"),Fe=require("./AccumulativeShadows.cjs.js"),Ge=require("./Reflector.cjs.js"),we=require("./SpotLight.cjs.js"),ze=require("./Environment.cjs.js"),Oe=require("./Lightformer.cjs.js"),Ie=require("./Sky.cjs.js"),He=require("./Stars.cjs.js"),Ve=require("./Cloud.cjs.js"),ye=require("./Sparkles.cjs.js"),We=require("./useEnvironment.cjs.js"),Qe=require("./useMatcapTexture.cjs.js"),Xe=require("./useNormalTexture.cjs.js"),Ke=require("./Wireframe.cjs.js"),Ne=require("./Points.cjs.js"),Ue=require("./Instances.cjs.js"),_e=require("./Segments.cjs.js"),Je=require("./Detailed.cjs.js"),Ye=require("./Preload.cjs.js"),Ze=require("./BakeShadows.cjs.js"),$e=require("./meshBounds.cjs.js"),er=require("./AdaptiveDpr.cjs.js"),rr=require("./AdaptiveEvents.cjs.js"),sr=require("./PerformanceMonitor.cjs.js"),tr=require("./RenderTexture.cjs.js"),or=require("./Mask.cjs.js"),ir=require("./Hud.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("camera-controls"),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("../materials/MeshRefractionMaterial.cjs.js"),require("../materials/DiscardMaterial.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("../materials/WireframeMaterial.cjs.js"),require("react-composer"),exports.Billboard=e.Billboard,exports.ScreenSpace=r.ScreenSpace,exports.QuadraticBezierLine=s.QuadraticBezierLine,exports.CubicBezierLine=t.CubicBezierLine,exports.CatmullRomLine=o.CatmullRomLine,exports.Line=i.Line,exports.PositionalAudio=a.PositionalAudio,exports.Text=u.Text,exports.Text3D=c.Text3D,exports.Effects=n.Effects,exports.isWebGL2Available=n.isWebGL2Available,exports.GradientTexture=j.GradientTexture,exports.Image=p.Image,exports.Edges=x.Edges,exports.Trail=l.Trail,exports.useTrail=l.useTrail,exports.Sampler=q.Sampler,exports.useSurfaceSampler=q.useSurfaceSampler,exports.ComputedAttribute=d.ComputedAttribute,exports.Clone=m.Clone,exports.MarchingCube=h.MarchingCube,exports.MarchingCubes=h.MarchingCubes,exports.MarchingPlane=h.MarchingPlane,exports.Decal=C.Decal,exports.Svg=M.Svg,exports.Gltf=S.Gltf,exports.AsciiRenderer=T.AsciiRenderer,exports.OrthographicCamera=b.OrthographicCamera,exports.PerspectiveCamera=f.PerspectiveCamera,exports.CubeCamera=B.CubeCamera,exports.DeviceOrientationControls=P.DeviceOrientationControls,exports.FlyControls=g.FlyControls,exports.MapControls=v.MapControls,exports.OrbitControls=A.OrbitControls,exports.TrackballControls=L.TrackballControls,exports.ArcballControls=D.ArcballControls,exports.TransformControls=E.TransformControls,exports.PointerLockControls=R.PointerLockControls,exports.FirstPersonControls=k.FirstPersonControls,exports.CameraControls=F.CameraControls,exports.GizmoHelper=G.GizmoHelper,exports.useGizmoContext=G.useGizmoContext,exports.GizmoViewcube=w.GizmoViewcube,exports.GizmoViewport=z.GizmoViewport,exports.Grid=O.Grid,exports.useCubeTexture=I.useCubeTexture,exports.useFBX=H.useFBX,exports.useGLTF=V.useGLTF,exports.useKTX2=y.useKTX2,exports.useProgress=W.useProgress,exports.IsObject=Q.IsObject,exports.useTexture=Q.useTexture,exports.useVideoTexture=X.useVideoTexture,exports.useFont=K.useFont,exports.Stats=N.Stats,exports.useDepthBuffer=U.useDepthBuffer,exports.useAspect=_.useAspect,exports.useCamera=J.useCamera,exports.useDetectGPU=Y.useDetectGPU,exports.useHelper=Z.useHelper,exports.Bvh=$.Bvh,exports.useBVH=$.useBVH,exports.useContextBridge=ee.useContextBridge,exports.useAnimations=re.useAnimations,exports.useFBO=se.useFBO,exports.useIntersect=te.useIntersect,exports.useBoxProjectedEnv=oe.useBoxProjectedEnv,exports.BBAnchor=ie.BBAnchor,exports.useTrailTexture=ae.useTrailTexture,exports.useCubeCamera=ue.useCubeCamera,exports.Example=ce.Example,exports.SpriteAnimator=ne.SpriteAnimator,exports.CurveModifier=je.CurveModifier,exports.MeshDistortMaterial=pe.MeshDistortMaterial,exports.MeshWobbleMaterial=xe.MeshWobbleMaterial,exports.MeshReflectorMaterial=le.MeshReflectorMaterial,exports.MeshRefractionMaterial=qe.MeshRefractionMaterial,exports.MeshTransmissionMaterial=de.MeshTransmissionMaterial,exports.MeshDiscardMaterial=me.MeshDiscardMaterial,exports.PointMaterial=he.PointMaterial,exports.PointMaterialImpl=he.PointMaterialImpl,exports.shaderMaterial=Ce.shaderMaterial,exports.SoftShadows=Me.SoftShadows,exports.Box=Se.Box,exports.Capsule=Se.Capsule,exports.Circle=Se.Circle,exports.Cone=Se.Cone,exports.Cylinder=Se.Cylinder,exports.Dodecahedron=Se.Dodecahedron,exports.Extrude=Se.Extrude,exports.Icosahedron=Se.Icosahedron,exports.Lathe=Se.Lathe,exports.Octahedron=Se.Octahedron,exports.Plane=Se.Plane,exports.Polyhedron=Se.Polyhedron,exports.Ring=Se.Ring,exports.Shape=Se.Shape,exports.Sphere=Se.Sphere,exports.Tetrahedron=Se.Tetrahedron,exports.Torus=Se.Torus,exports.TorusKnot=Se.TorusKnot,exports.Tube=Se.Tube,exports.Facemesh=Te.Facemesh,exports.FacemeshDatas=Te.FacemeshDatas,exports.RoundedBox=be.RoundedBox,exports.ScreenQuad=fe.ScreenQuad,exports.Center=Be.Center,exports.Resize=Pe.Resize,exports.Bounds=ge.Bounds,exports.useBounds=ge.useBounds,exports.CameraShake=ve.CameraShake,exports.Float=Ae.Float,exports.Stage=Le.Stage,exports.Backdrop=De.Backdrop,exports.Shadow=Ee.Shadow,exports.Caustics=Re.Caustics,exports.ContactShadows=ke.ContactShadows,exports.AccumulativeShadows=Fe.AccumulativeShadows,exports.RandomizedLight=Fe.RandomizedLight,exports.accumulativeContext=Fe.accumulativeContext,exports.Reflector=Ge.Reflector,exports.SpotLight=we.SpotLight,exports.SpotLightShadow=we.SpotLightShadow,exports.Environment=ze.Environment,exports.EnvironmentCube=ze.EnvironmentCube,exports.EnvironmentMap=ze.EnvironmentMap,exports.EnvironmentPortal=ze.EnvironmentPortal,exports.Lightformer=Oe.Lightformer,exports.Sky=Ie.Sky,exports.calcPosFromAngles=Ie.calcPosFromAngles,exports.Stars=He.Stars,exports.Cloud=Ve.Cloud,exports.Sparkles=ye.Sparkles,exports.useEnvironment=We.useEnvironment,exports.useMatcapTexture=Qe.useMatcapTexture,exports.useNormalTexture=Xe.useNormalTexture,exports.Wireframe=Ke.Wireframe,exports.Point=Ne.Point,exports.Points=Ne.Points,exports.PointsBuffer=Ne.PointsBuffer,exports.PositionPoint=Ne.PositionPoint,exports.Instance=Ue.Instance,exports.Instances=Ue.Instances,exports.Merged=Ue.Merged,exports.Segment=_e.Segment,exports.SegmentObject=_e.SegmentObject,exports.Segments=_e.Segments,exports.Detailed=Je.Detailed,exports.Preload=Ye.Preload,exports.BakeShadows=Ze.BakeShadows,exports.meshBounds=$e.meshBounds,exports.AdaptiveDpr=er.AdaptiveDpr,exports.AdaptiveEvents=rr.AdaptiveEvents,exports.PerformanceMonitor=sr.PerformanceMonitor,exports.usePerformanceMonitor=sr.usePerformanceMonitor,exports.RenderTexture=tr.RenderTexture,exports.Mask=or.Mask,exports.useMask=or.useMask,exports.Hud=ir.Hud;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Billboard.cjs.js"),r=require("./ScreenSpace.cjs.js"),s=require("./QuadraticBezierLine.cjs.js"),t=require("./CubicBezierLine.cjs.js"),o=require("./CatmullRomLine.cjs.js"),i=require("./Line.cjs.js"),a=require("./PositionalAudio.cjs.js"),u=require("./Text.cjs.js"),c=require("./Text3D.cjs.js"),n=require("./Effects.cjs.js"),j=require("./GradientTexture.cjs.js"),p=require("./Image.cjs.js"),x=require("./Edges.cjs.js"),l=require("./Trail.cjs.js"),q=require("./Sampler.cjs.js"),d=require("./ComputedAttribute.cjs.js"),m=require("./Clone.cjs.js"),h=require("./MarchingCubes.cjs.js"),C=require("./Decal.cjs.js"),M=require("./Svg.cjs.js"),S=require("./Gltf.cjs.js"),T=require("./AsciiRenderer.cjs.js"),P=require("./OrthographicCamera.cjs.js"),b=require("./PerspectiveCamera.cjs.js"),f=require("./CubeCamera.cjs.js"),B=require("./DeviceOrientationControls.cjs.js"),g=require("./FlyControls.cjs.js"),v=require("./MapControls.cjs.js"),A=require("./OrbitControls.cjs.js"),L=require("./TrackballControls.cjs.js"),D=require("./ArcballControls.cjs.js"),E=require("./TransformControls.cjs.js"),R=require("./PointerLockControls.cjs.js"),k=require("./FirstPersonControls.cjs.js"),F=require("./CameraControls.cjs.js"),G=require("./GizmoHelper.cjs.js"),w=require("./GizmoViewcube.cjs.js"),z=require("./GizmoViewport.cjs.js"),O=require("./Grid.cjs.js"),I=require("./useCubeTexture.cjs.js"),H=require("./useFBX.cjs.js"),V=require("./useGLTF.cjs.js"),y=require("./useKTX2.cjs.js"),W=require("./useProgress.cjs.js"),Q=require("./useTexture.cjs.js"),X=require("./useVideoTexture.cjs.js"),K=require("./useFont.cjs.js"),N=require("./Stats.cjs.js"),U=require("./useDepthBuffer.cjs.js"),_=require("./useAspect.cjs.js"),J=require("./useCamera.cjs.js"),Y=require("./useDetectGPU.cjs.js"),Z=require("./useHelper.cjs.js"),$=require("./useBVH.cjs.js"),ee=require("./useContextBridge.cjs.js"),re=require("./useAnimations.cjs.js"),se=require("./useFBO.cjs.js"),te=require("./useIntersect.cjs.js"),oe=require("./useBoxProjectedEnv.cjs.js"),ie=require("./BBAnchor.cjs.js"),ae=require("./useTrailTexture.cjs.js"),ue=require("./useCubeCamera.cjs.js"),ce=require("./Example.cjs.js"),ne=require("./SpriteAnimator.cjs.js"),je=require("./CurveModifier.cjs.js"),pe=require("./MeshDistortMaterial.cjs.js"),xe=require("./MeshWobbleMaterial.cjs.js"),le=require("./MeshReflectorMaterial.cjs.js"),qe=require("./MeshRefractionMaterial.cjs.js"),de=require("./MeshTransmissionMaterial.cjs.js"),me=require("./MeshDiscardMaterial.cjs.js"),he=require("./PointMaterial.cjs.js"),Ce=require("./shaderMaterial.cjs.js"),Me=require("./softShadows.cjs.js"),Se=require("./shapes.cjs.js"),Te=require("./Facemesh.cjs.js"),Pe=require("./RoundedBox.cjs.js"),be=require("./ScreenQuad.cjs.js"),fe=require("./Center.cjs.js"),Be=require("./Resize.cjs.js"),ge=require("./Bounds.cjs.js"),ve=require("./CameraShake.cjs.js"),Ae=require("./Float.cjs.js"),Le=require("./Stage.cjs.js"),De=require("./Backdrop.cjs.js"),Ee=require("./Shadow.cjs.js"),Re=require("./Caustics.cjs.js"),ke=require("./ContactShadows.cjs.js"),Fe=require("./AccumulativeShadows.cjs.js"),Ge=require("./Reflector.cjs.js"),we=require("./SpotLight.cjs.js"),ze=require("./Environment.cjs.js"),Oe=require("./Lightformer.cjs.js"),Ie=require("./Sky.cjs.js"),He=require("./Stars.cjs.js"),Ve=require("./Cloud.cjs.js"),ye=require("./Sparkles.cjs.js"),We=require("./useEnvironment.cjs.js"),Qe=require("./useMatcapTexture.cjs.js"),Xe=require("./useNormalTexture.cjs.js"),Ke=require("./Wireframe.cjs.js"),Ne=require("./Points.cjs.js"),Ue=require("./Instances.cjs.js"),_e=require("./Segments.cjs.js"),Je=require("./Detailed.cjs.js"),Ye=require("./Preload.cjs.js"),Ze=require("./BakeShadows.cjs.js"),$e=require("./meshBounds.cjs.js"),er=require("./AdaptiveDpr.cjs.js"),rr=require("./AdaptiveEvents.cjs.js"),sr=require("./PerformanceMonitor.cjs.js"),tr=require("./RenderTexture.cjs.js"),or=require("./Mask.cjs.js"),ir=require("./Hud.cjs.js"),ar=require("./MeshPortalMaterial.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("camera-controls"),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("../materials/MeshRefractionMaterial.cjs.js"),require("../materials/DiscardMaterial.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("../materials/WireframeMaterial.cjs.js"),require("react-composer"),exports.Billboard=e.Billboard,exports.ScreenSpace=r.ScreenSpace,exports.QuadraticBezierLine=s.QuadraticBezierLine,exports.CubicBezierLine=t.CubicBezierLine,exports.CatmullRomLine=o.CatmullRomLine,exports.Line=i.Line,exports.PositionalAudio=a.PositionalAudio,exports.Text=u.Text,exports.Text3D=c.Text3D,exports.Effects=n.Effects,exports.isWebGL2Available=n.isWebGL2Available,exports.GradientTexture=j.GradientTexture,exports.Image=p.Image,exports.Edges=x.Edges,exports.Trail=l.Trail,exports.useTrail=l.useTrail,exports.Sampler=q.Sampler,exports.useSurfaceSampler=q.useSurfaceSampler,exports.ComputedAttribute=d.ComputedAttribute,exports.Clone=m.Clone,exports.MarchingCube=h.MarchingCube,exports.MarchingCubes=h.MarchingCubes,exports.MarchingPlane=h.MarchingPlane,exports.Decal=C.Decal,exports.Svg=M.Svg,exports.Gltf=S.Gltf,exports.AsciiRenderer=T.AsciiRenderer,exports.OrthographicCamera=P.OrthographicCamera,exports.PerspectiveCamera=b.PerspectiveCamera,exports.CubeCamera=f.CubeCamera,exports.DeviceOrientationControls=B.DeviceOrientationControls,exports.FlyControls=g.FlyControls,exports.MapControls=v.MapControls,exports.OrbitControls=A.OrbitControls,exports.TrackballControls=L.TrackballControls,exports.ArcballControls=D.ArcballControls,exports.TransformControls=E.TransformControls,exports.PointerLockControls=R.PointerLockControls,exports.FirstPersonControls=k.FirstPersonControls,exports.CameraControls=F.CameraControls,exports.GizmoHelper=G.GizmoHelper,exports.useGizmoContext=G.useGizmoContext,exports.GizmoViewcube=w.GizmoViewcube,exports.GizmoViewport=z.GizmoViewport,exports.Grid=O.Grid,exports.useCubeTexture=I.useCubeTexture,exports.useFBX=H.useFBX,exports.useGLTF=V.useGLTF,exports.useKTX2=y.useKTX2,exports.useProgress=W.useProgress,exports.IsObject=Q.IsObject,exports.useTexture=Q.useTexture,exports.useVideoTexture=X.useVideoTexture,exports.useFont=K.useFont,exports.Stats=N.Stats,exports.useDepthBuffer=U.useDepthBuffer,exports.useAspect=_.useAspect,exports.useCamera=J.useCamera,exports.useDetectGPU=Y.useDetectGPU,exports.useHelper=Z.useHelper,exports.Bvh=$.Bvh,exports.useBVH=$.useBVH,exports.useContextBridge=ee.useContextBridge,exports.useAnimations=re.useAnimations,exports.useFBO=se.useFBO,exports.useIntersect=te.useIntersect,exports.useBoxProjectedEnv=oe.useBoxProjectedEnv,exports.BBAnchor=ie.BBAnchor,exports.useTrailTexture=ae.useTrailTexture,exports.useCubeCamera=ue.useCubeCamera,exports.Example=ce.Example,exports.SpriteAnimator=ne.SpriteAnimator,exports.CurveModifier=je.CurveModifier,exports.MeshDistortMaterial=pe.MeshDistortMaterial,exports.MeshWobbleMaterial=xe.MeshWobbleMaterial,exports.MeshReflectorMaterial=le.MeshReflectorMaterial,exports.MeshRefractionMaterial=qe.MeshRefractionMaterial,exports.MeshTransmissionMaterial=de.MeshTransmissionMaterial,exports.MeshDiscardMaterial=me.MeshDiscardMaterial,exports.PointMaterial=he.PointMaterial,exports.PointMaterialImpl=he.PointMaterialImpl,exports.shaderMaterial=Ce.shaderMaterial,exports.SoftShadows=Me.SoftShadows,exports.Box=Se.Box,exports.Capsule=Se.Capsule,exports.Circle=Se.Circle,exports.Cone=Se.Cone,exports.Cylinder=Se.Cylinder,exports.Dodecahedron=Se.Dodecahedron,exports.Extrude=Se.Extrude,exports.Icosahedron=Se.Icosahedron,exports.Lathe=Se.Lathe,exports.Octahedron=Se.Octahedron,exports.Plane=Se.Plane,exports.Polyhedron=Se.Polyhedron,exports.Ring=Se.Ring,exports.Shape=Se.Shape,exports.Sphere=Se.Sphere,exports.Tetrahedron=Se.Tetrahedron,exports.Torus=Se.Torus,exports.TorusKnot=Se.TorusKnot,exports.Tube=Se.Tube,exports.Facemesh=Te.Facemesh,exports.FacemeshDatas=Te.FacemeshDatas,exports.RoundedBox=Pe.RoundedBox,exports.ScreenQuad=be.ScreenQuad,exports.Center=fe.Center,exports.Resize=Be.Resize,exports.Bounds=ge.Bounds,exports.useBounds=ge.useBounds,exports.CameraShake=ve.CameraShake,exports.Float=Ae.Float,exports.Stage=Le.Stage,exports.Backdrop=De.Backdrop,exports.Shadow=Ee.Shadow,exports.Caustics=Re.Caustics,exports.ContactShadows=ke.ContactShadows,exports.AccumulativeShadows=Fe.AccumulativeShadows,exports.RandomizedLight=Fe.RandomizedLight,exports.accumulativeContext=Fe.accumulativeContext,exports.Reflector=Ge.Reflector,exports.SpotLight=we.SpotLight,exports.SpotLightShadow=we.SpotLightShadow,exports.Environment=ze.Environment,exports.EnvironmentCube=ze.EnvironmentCube,exports.EnvironmentMap=ze.EnvironmentMap,exports.EnvironmentPortal=ze.EnvironmentPortal,exports.Lightformer=Oe.Lightformer,exports.Sky=Ie.Sky,exports.calcPosFromAngles=Ie.calcPosFromAngles,exports.Stars=He.Stars,exports.Cloud=Ve.Cloud,exports.Sparkles=ye.Sparkles,exports.useEnvironment=We.useEnvironment,exports.useMatcapTexture=Qe.useMatcapTexture,exports.useNormalTexture=Xe.useNormalTexture,exports.Wireframe=Ke.Wireframe,exports.Point=Ne.Point,exports.Points=Ne.Points,exports.PointsBuffer=Ne.PointsBuffer,exports.PositionPoint=Ne.PositionPoint,exports.Instance=Ue.Instance,exports.Instances=Ue.Instances,exports.Merged=Ue.Merged,exports.Segment=_e.Segment,exports.SegmentObject=_e.SegmentObject,exports.Segments=_e.Segments,exports.Detailed=Je.Detailed,exports.Preload=Ye.Preload,exports.BakeShadows=Ze.BakeShadows,exports.meshBounds=$e.meshBounds,exports.AdaptiveDpr=er.AdaptiveDpr,exports.AdaptiveEvents=rr.AdaptiveEvents,exports.PerformanceMonitor=sr.PerformanceMonitor,exports.usePerformanceMonitor=sr.usePerformanceMonitor,exports.RenderTexture=tr.RenderTexture,exports.Mask=or.Mask,exports.useMask=or.useMask,exports.Hud=ir.Hud,exports.MeshPortalMaterial=ar.MeshPortalMaterial;
|
package/core/index.d.ts
CHANGED
package/core/index.js
CHANGED
|
@@ -112,6 +112,7 @@ export { PerformanceMonitor, usePerformanceMonitor } from './PerformanceMonitor.
|
|
|
112
112
|
export { RenderTexture } from './RenderTexture.js';
|
|
113
113
|
export { Mask, useMask } from './Mask.js';
|
|
114
114
|
export { Hud } from './Hud.js';
|
|
115
|
+
export { MeshPortalMaterial } from './MeshPortalMaterial.js';
|
|
115
116
|
import '@babel/runtime/helpers/esm/extends';
|
|
116
117
|
import 'react';
|
|
117
118
|
import '@react-three/fiber';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@react-three/fiber"),r=require("three"),n=require("three-stdlib"),t=require("suspend-react"),s=require("../helpers/environment-assets.cjs.js");const
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@react-three/fiber"),r=require("three"),n=require("three-stdlib"),t=require("suspend-react"),s=require("../helpers/environment-assets.cjs.js");const o=e=>Array.isArray(e);exports.useEnvironment=function({files:i=["/px.png","/nx.png","/py.png","/ny.png","/pz.png","/nz.png"],path:p="",preset:a,encoding:u,extensions:l}={}){let c,d=null,b=!1;if(a){if(!(a in s.presetsObj))throw new Error("Preset must be one of: "+Object.keys(s.presetsObj).join(", "));i=s.presetsObj[a],p="https://raw.githack.com/pmndrs/drei-assets/456060a26bbeb8fdf79326f224b6d99b8bcce736/hdri/"}var f,g;if("object"==typeof(g=i)&&"function"==typeof g.then?(i=t.suspend((async e=>(await e).default),[i]),d=n.EXRLoader):(b=o(i),c=!o(i)&&(null==(f=i.split(".").pop())?void 0:f.toLowerCase()),d=b?r.CubeTextureLoader:"hdr"===c?n.RGBELoader:"exr"===c?n.EXRLoader:null),!d)throw new Error("useEnvironment: Unrecognized file extension: "+i);const h=e.useLoader(d,b?[i]:i,(e=>{null==e.setPath||e.setPath(p),l&&l(e)})),j=b?h[0]:h;return j.mapping=b?r.CubeReflectionMapping:r.EquirectangularReflectionMapping,"colorSpace"in j?j.colorSpace=(null!=u?u:b)?"srgb":"srgb-linear":j.encoding=(null!=u?u:b)?3001:3e3,j};
|
package/core/useEnvironment.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useLoader } from '@react-three/fiber';
|
|
2
|
-
import {
|
|
2
|
+
import { CubeReflectionMapping, EquirectangularReflectionMapping, CubeTextureLoader } from 'three';
|
|
3
3
|
import { EXRLoader, RGBELoader } from 'three-stdlib';
|
|
4
4
|
import { suspend } from 'suspend-react';
|
|
5
5
|
import { presetsObj } from '../helpers/environment-assets.js';
|
|
@@ -17,35 +17,44 @@ function useEnvironment({
|
|
|
17
17
|
encoding = undefined,
|
|
18
18
|
extensions
|
|
19
19
|
} = {}) {
|
|
20
|
-
|
|
20
|
+
let loader = null;
|
|
21
|
+
let isCubeMap = false;
|
|
22
|
+
let extension;
|
|
21
23
|
|
|
22
24
|
if (preset) {
|
|
23
25
|
if (!(preset in presetsObj)) throw new Error('Preset must be one of: ' + Object.keys(presetsObj).join(', '));
|
|
24
26
|
files = presetsObj[preset];
|
|
25
27
|
path = CUBEMAP_ROOT;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
+
}
|
|
28
29
|
|
|
29
30
|
if (isPromise(files)) {
|
|
31
|
+
// Using promises that return inline-EXR URLs by default
|
|
30
32
|
files = suspend(async promise => {
|
|
31
33
|
const result = await promise;
|
|
32
34
|
return result.default;
|
|
33
35
|
}, [files]);
|
|
36
|
+
loader = EXRLoader;
|
|
37
|
+
} else {
|
|
38
|
+
var _files$split$pop;
|
|
39
|
+
|
|
40
|
+
// Everything else
|
|
41
|
+
isCubeMap = isArray(files);
|
|
42
|
+
extension = !isArray(files) && ((_files$split$pop = files.split('.').pop()) == null ? void 0 : _files$split$pop.toLowerCase());
|
|
43
|
+
loader = isCubeMap ? CubeTextureLoader : extension === 'hdr' ? RGBELoader : extension === 'exr' ? EXRLoader : null;
|
|
34
44
|
}
|
|
35
45
|
|
|
36
|
-
const isCubeMap = isArray(files);
|
|
37
|
-
const extension = !isArray(files) && ((_files$split$pop = files.split('.').pop()) == null ? void 0 : _files$split$pop.toLowerCase());
|
|
38
|
-
const loader = isCubeMap ? CubeTextureLoader : isPromise(files) || extension === 'exr' ? EXRLoader : extension === 'hdr' ? RGBELoader : null;
|
|
39
46
|
if (!loader) throw new Error('useEnvironment: Unrecognized file extension: ' + files);
|
|
40
47
|
const loaderResult = useLoader( // @ts-expect-error
|
|
41
48
|
loader, isCubeMap ? [files] : files, loader => {
|
|
42
|
-
loader.setPath(path);
|
|
49
|
+
loader.setPath == null ? void 0 : loader.setPath(path);
|
|
43
50
|
if (extensions) extensions(loader);
|
|
44
51
|
});
|
|
45
52
|
const texture = isCubeMap ? // @ts-ignore
|
|
46
53
|
loaderResult[0] : loaderResult;
|
|
47
54
|
texture.mapping = isCubeMap ? CubeReflectionMapping : EquirectangularReflectionMapping;
|
|
48
|
-
|
|
55
|
+
const sRGBEncoding = 3001;
|
|
56
|
+
const LinearEncoding = 3000;
|
|
57
|
+
if ('colorSpace' in texture) texture.colorSpace = (encoding !== null && encoding !== void 0 ? encoding : isCubeMap) ? 'srgb' : 'srgb-linear';else texture.encoding = (encoding !== null && encoding !== void 0 ? encoding : isCubeMap) ? sRGBEncoding : LinearEncoding;
|
|
49
58
|
return texture;
|
|
50
59
|
}
|
|
51
60
|
|