@react-three/drei 9.114.6 → 9.116.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 +2 -2
- package/core/AccumulativeShadows.cjs.js +1 -1
- package/core/AdaptiveDpr.cjs.js +1 -1
- package/core/AdaptiveEvents.cjs.js +1 -1
- package/core/ArcballControls.cjs.js +1 -1
- package/core/AsciiRenderer.cjs.js +1 -1
- package/core/BBAnchor.cjs.js +1 -1
- package/core/Backdrop.cjs.js +1 -1
- package/core/BakeShadows.cjs.js +1 -1
- package/core/Billboard.cjs.js +1 -1
- package/core/Bounds.cjs.js +1 -1
- package/core/Bounds.js +0 -1
- package/core/Bvh.cjs.js +1 -1
- package/core/CameraControls.cjs.js +1 -1
- package/core/CameraShake.cjs.js +1 -1
- package/core/CatmullRomLine.cjs.js +1 -1
- package/core/Caustics.cjs.js +1 -1
- package/core/Center.cjs.js +1 -1
- package/core/Clone.cjs.js +1 -1
- package/core/Clone.js +1 -1
- package/core/Cloud.cjs.js +1 -1
- package/core/ComputedAttribute.cjs.js +1 -1
- package/core/ContactShadows.cjs.js +1 -1
- package/core/CubeCamera.cjs.js +1 -1
- package/core/CubeTexture.cjs.js +1 -1
- package/core/CubicBezierLine.cjs.js +1 -1
- package/core/CurveModifier.cjs.js +1 -1
- package/core/Decal.cjs.js +1 -1
- package/core/Detailed.cjs.js +1 -1
- package/core/DetectGPU.cjs.js +1 -1
- package/core/DeviceOrientationControls.cjs.js +1 -1
- package/core/Edges.cjs.js +1 -1
- package/core/Effects.cjs.js +1 -1
- package/core/Effects.js +3 -3
- package/core/Environment.cjs.js +1 -1
- package/core/Environment.js +1 -1
- package/core/Example.cjs.js +1 -1
- package/core/Fbo.cjs.js +1 -1
- package/core/Fbo.js +1 -1
- package/core/Fbx.cjs.js +1 -1
- package/core/FirstPersonControls.cjs.js +1 -1
- package/core/Fisheye.cjs.js +1 -1
- package/core/Float.cjs.js +1 -1
- package/core/FlyControls.cjs.js +1 -1
- package/core/GizmoHelper.cjs.js +1 -1
- package/core/GizmoViewcube.cjs.js +1 -1
- package/core/GizmoViewport.cjs.js +1 -1
- package/core/Gltf.cjs.js +1 -1
- package/core/GradientTexture.cjs.js +1 -1
- package/core/Grid.cjs.js +1 -1
- package/core/Helper.cjs.js +1 -1
- package/core/Hud.cjs.js +1 -1
- package/core/Hud.js +1 -1
- package/core/Image.cjs.js +1 -1
- package/core/Instances.cjs.js +1 -1
- package/core/Instances.d.ts +17 -17
- package/core/Ktx2.cjs.js +1 -1
- package/core/Ktx2.d.ts +1 -1
- package/core/Lightformer.cjs.js +1 -1
- package/core/Line.cjs.js +1 -1
- package/core/MapControls.cjs.js +1 -1
- package/core/MarchingCubes.cjs.js +1 -1
- package/core/Mask.cjs.js +1 -1
- package/core/MatcapTexture.cjs.js +1 -1
- package/core/MeshDiscardMaterial.cjs.js +1 -1
- package/core/MeshDistortMaterial.cjs.js +1 -1
- package/core/MeshPortalMaterial.cjs.js +1 -1
- package/core/MeshReflectorMaterial.cjs.js +1 -1
- package/core/MeshRefractionMaterial.cjs.js +1 -1
- package/core/MeshTransmissionMaterial.cjs.js +1 -1
- package/core/MeshWobbleMaterial.cjs.js +1 -1
- package/core/MotionPathControls.cjs.js +1 -1
- package/core/MultiMaterial.cjs.js +1 -0
- package/core/MultiMaterial.d.ts +2 -0
- package/core/MultiMaterial.js +30 -0
- package/core/NormalTexture.cjs.js +1 -1
- package/core/OrbitControls.cjs.js +1 -1
- package/core/OrthographicCamera.cjs.js +1 -1
- package/core/Outlines.cjs.js +1 -1
- package/core/PerformanceMonitor.cjs.js +1 -1
- package/core/PerformanceMonitor.js +0 -1
- package/core/PerspectiveCamera.cjs.js +1 -1
- package/core/PointMaterial.cjs.js +1 -1
- package/core/PointerLockControls.cjs.js +1 -1
- package/core/Points.cjs.js +1 -1
- package/core/PositionalAudio.cjs.js +1 -1
- package/core/Preload.cjs.js +1 -1
- package/core/Progress.cjs.js +1 -1
- package/core/QuadraticBezierLine.cjs.js +1 -1
- package/core/Reflector.cjs.js +1 -1
- package/core/RenderCubeTexture.cjs.js +1 -1
- package/core/RenderCubeTexture.js +1 -1
- package/core/RenderTexture.cjs.js +1 -1
- package/core/RenderTexture.js +1 -1
- package/core/Resize.cjs.js +1 -1
- package/core/RoundedBox.cjs.js +1 -1
- package/core/Sampler.cjs.js +1 -1
- package/core/ScreenQuad.cjs.js +1 -1
- package/core/ScreenSizer.cjs.js +1 -1
- package/core/ScreenSpace.cjs.js +1 -1
- package/core/Segments.cjs.js +1 -1
- package/core/Shadow.cjs.js +1 -1
- package/core/ShadowAlpha.cjs.js +1 -1
- package/core/ShadowAlpha.js +1 -0
- package/core/Sky.cjs.js +1 -1
- package/core/Sparkles.cjs.js +1 -1
- package/core/Splat.cjs.js +1 -1
- package/core/SpotLight.cjs.js +1 -1
- package/core/SpriteAnimator.cjs.js +1 -1
- package/core/SpriteAnimator.d.ts +9 -0
- package/core/SpriteAnimator.js +35 -25
- package/core/Stage.cjs.js +1 -1
- package/core/Stars.cjs.js +1 -1
- package/core/Stats.cjs.js +1 -1
- package/core/StatsGl.cjs.js +1 -1
- package/core/Svg.cjs.js +1 -1
- package/core/Text.cjs.js +1 -1
- package/core/Text.js +0 -1
- package/core/Text3D.cjs.js +1 -1
- package/core/Texture.cjs.js +1 -1
- package/core/TrackballControls.cjs.js +1 -1
- package/core/Trail.cjs.js +1 -1
- package/core/Trail.js +1 -1
- package/core/TrailTexture.cjs.js +1 -1
- package/core/TransformControls.cjs.js +1 -1
- package/core/VideoTexture.cjs.js +1 -1
- package/core/Wireframe.cjs.js +1 -1
- package/core/calculateScaleFactor.cjs.js +1 -1
- package/core/index.cjs.js +1 -1
- package/core/index.d.ts +1 -0
- package/core/index.js +5 -4
- package/core/meshBounds.cjs.js +1 -1
- package/core/shaderMaterial.cjs.js +1 -1
- package/core/shapes.cjs.js +1 -1
- package/core/softShadows.cjs.js +1 -1
- package/core/softShadows.js +1 -0
- package/core/useAnimations.cjs.js +1 -1
- package/core/useAnimations.js +0 -1
- package/core/useAspect.cjs.js +1 -1
- package/core/useBoxProjectedEnv.cjs.js +1 -1
- package/core/useCamera.cjs.js +1 -1
- package/core/useContextBridge.cjs.js +1 -1
- package/core/useDepthBuffer.cjs.js +1 -1
- package/core/useEnvironment.cjs.js +1 -1
- package/core/useEnvironment.d.ts +2 -2
- package/core/useFont.cjs.js +1 -1
- package/core/useIntersect.cjs.js +1 -1
- package/core/useSpriteLoader.cjs.js +1 -1
- package/helpers/constants.cjs.js +1 -1
- package/helpers/deprecated.cjs.js +1 -1
- package/helpers/environment-assets.cjs.js +1 -1
- package/helpers/useEffectfulState.cjs.js +1 -1
- package/helpers/useEffectfulState.js +1 -3
- package/index.cjs.js +1 -1
- package/index.js +1 -0
- package/materials/BlurPass.cjs.js +1 -1
- package/materials/ConvolutionMaterial.cjs.js +1 -1
- package/materials/DiscardMaterial.cjs.js +1 -1
- package/materials/MeshReflectorMaterial.cjs.js +1 -1
- package/materials/MeshRefractionMaterial.cjs.js +1 -1
- package/materials/MeshRefractionMaterial.js +2 -0
- package/materials/SpotLightMaterial.cjs.js +1 -1
- package/materials/WireframeMaterial.cjs.js +1 -1
- package/native/index.cjs.js +1 -1
- package/native/index.js +5 -4
- package/package.json +14 -14
- package/web/CycleRaycast.cjs.js +1 -1
- package/web/DragControls.cjs.js +1 -1
- package/web/FaceControls.cjs.js +1 -1
- package/web/FaceControls.d.ts +2 -1
- package/web/FaceControls.js +6 -2
- package/web/FaceLandmarker.cjs.js +1 -1
- package/web/FaceLandmarker.js +1 -1
- package/web/Facemesh.cjs.js +1 -1
- package/web/Facemesh.d.ts +14 -47
- package/web/Facemesh.js +1 -2
- package/web/Html.cjs.js +1 -1
- package/web/Html.js +2 -2
- package/web/KeyboardControls.cjs.js +1 -1
- package/web/Loader.cjs.js +1 -1
- package/web/PresentationControls.cjs.js +1 -1
- package/web/ScrollControls.cjs.js +1 -1
- package/web/ScrollControls.js +1 -1
- package/web/Select.cjs.js +1 -1
- package/web/View.cjs.js +1 -1
- package/web/View.js +1 -1
- package/web/index.cjs.js +1 -1
- package/web/index.js +7 -6
- package/web/pivotControls/AxisArrow.cjs.js +1 -1
- package/web/pivotControls/AxisRotator.cjs.js +1 -1
- package/web/pivotControls/PlaneSlider.cjs.js +1 -1
- package/web/pivotControls/ScalingSphere.cjs.js +1 -1
- package/web/pivotControls/context.cjs.js +1 -1
- package/web/pivotControls/index.cjs.js +1 -1
- package/web/useCursor.cjs.js +1 -1
package/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
[](https://codesandbox.io/s/bfplr)
|
|
2
|
-
|
|
3
1
|
[](https://drei.pmnd.rs/)
|
|
4
2
|
[](https://www.npmjs.com/package/@react-three/drei)
|
|
5
3
|
[](https://www.npmjs.com/package/@react-three/drei)
|
|
6
4
|
[](https://discord.com/channels/740090768164651008/741751532592038022)
|
|
7
5
|
[](https://github.com/codespaces/new?template_repository=pmndrs%2Fdrei)
|
|
8
6
|
|
|
7
|
+
[](https://codesandbox.io/s/bfplr)
|
|
8
|
+
|
|
9
9
|
A growing collection of useful helpers and fully functional, ready-made abstractions for [@react-three/fiber](https://github.com/pmndrs/react-three-fiber).
|
|
10
10
|
|
|
11
11
|
If you make a component that is generic enough to be useful to others, think about [CONTRIBUTING](CONTRIBUTING.md)!
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),a=require("@react-three/fiber"),i=require("./shaderMaterial.cjs.js"),s=require("../materials/DiscardMaterial.cjs.js"),n=require("../helpers/constants.cjs.js");function o(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)}var l=o(t),h=o(r);const c=h.createContext(null),u=i.shaderMaterial({color:new l.Color,blend:2,alphaTest:.75,opacity:0,map:null},"varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vUv = uv;\n }",`varying vec2 vUv;\n uniform sampler2D map;\n uniform vec3 color;\n uniform float opacity;\n uniform float alphaTest;\n uniform float blend;\n void main() {\n vec4 sampledDiffuseColor = texture2D(map, vUv);\n gl_FragColor = vec4(color * sampledDiffuseColor.r * blend, max(0.0, (1.0 - (sampledDiffuseColor.r + sampledDiffuseColor.g + sampledDiffuseColor.b) / alphaTest)) * opacity);\n #include <tonemapping_fragment>\n #include <${n.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }`),d=h.forwardRef((({children:e,temporal:t,frames:r=40,limit:i=1/0,blend:s=20,scale:n=10,opacity:o=1,alphaTest:l=.75,color:d="black",colorBlend:p=2,resolution:m=1024,toneMapped:f=!0,...v},M)=>{a.extend({SoftShadowMaterial:u});const b=a.useThree((e=>e.gl)),w=a.useThree((e=>e.scene)),y=a.useThree((e=>e.camera)),C=a.useThree((e=>e.invalidate)),x=h.useRef(null),S=h.useRef(null),[j]=h.useState((()=>new g(b,w,m)));h.useLayoutEffect((()=>{j.configure(x.current)}),[]);const T=h.useMemo((()=>({lights:new Map,temporal:!!t,frames:Math.max(2,r),blend:Math.max(2,r===1/0?s:r),count:0,getMesh:()=>x.current,reset:()=>{j.clear();const e=x.current.material;e.opacity=0,e.alphaTest=0,T.count=0},update:(e=1)=>{const t=x.current.material;T.temporal?(t.opacity=Math.min(o,t.opacity+o/T.blend),t.alphaTest=Math.min(l,t.alphaTest+l/T.blend)):(t.opacity=o,t.alphaTest=l),S.current.visible=!0,j.prepare();for(let t=0;t<e;t++)T.lights.forEach((e=>e.update())),j.update(y,T.blend);S.current.visible=!1,j.finish()}})),[j,y,w,t,r,s,o,l]);return h.useLayoutEffect((()=>{T.reset(),T.temporal||T.frames===1/0||T.update(T.blend)})),h.useImperativeHandle(M,(()=>T),[T]),a.useFrame((()=>{(T.temporal||T.frames===1/0)&&T.count<T.frames&&T.count<i&&(C(),T.update(),T.count++)})),h.createElement("group",v,h.createElement("group",{traverse:()=>null,ref:S},h.createElement(c.Provider,{value:T},e)),h.createElement("mesh",{receiveShadow:!0,ref:x,scale:n,rotation:[-Math.PI/2,0,0]},h.createElement("planeGeometry",null),h.createElement("softShadowMaterial",{transparent:!0,depthWrite:!1,toneMapped:f,color:d,blend:p,map:j.progressiveLightMap2.texture})))})),p=h.forwardRef((({castShadow:t=!0,bias:r=.001,mapSize:a=512,size:i=5,near:s=.5,far:o=500,frames:u=1,position:d=[0,0,0],radius:p=1,amount:g=8,intensity:m=(n.version>=155?Math.PI:1),ambient:f=.5,...v},M)=>{const b=h.useRef(null),w=new l.Vector3(...d).length(),y=h.useContext(c),C=h.useCallback((()=>{let e;if(b.current)for(let t=0;t<b.current.children.length;t++)if(e=b.current.children[t],Math.random()>f)e.position.set(d[0]+l.MathUtils.randFloatSpread(p),d[1]+l.MathUtils.randFloatSpread(p),d[2]+l.MathUtils.randFloatSpread(p));else{let t=Math.acos(2*Math.random()-1)-Math.PI/2,r=2*Math.PI*Math.random();e.position.set(Math.cos(t)*Math.cos(r)*w,Math.abs(Math.cos(t)*Math.sin(r)*w),Math.sin(t)*w)}}),[p,f,w,...d]),x=h.useMemo((()=>({update:C})),[C]);return h.useImperativeHandle(M,(()=>x),[x]),h.useLayoutEffect((()=>{var e;const t=b.current;return y&&(null==(e=y.lights)||e.set(t.uuid,x)),()=>{var e;null==y||null==(e=y.lights)||e.delete(t.uuid)}}),[y,x]),h.createElement("group",e({ref:b},v),Array.from({length:g},((e,n)=>h.createElement("directionalLight",{key:n,castShadow:t,"shadow-bias":r,"shadow-mapSize":[a,a],intensity:m/g},h.createElement("orthographicCamera",{attach:"shadow-camera",args:[-i,i,i,-i,s,o]})))))}));class g{constructor(e,t,r=1024){this.renderer=e,this.res=r,this.scene=t,this.buffer1Active=!1,this.lights=[],this.meshes=[],this.object=null,this.clearColor=new l.Color,this.clearAlpha=0;const a={type:l.HalfFloatType,magFilter:l.NearestFilter,minFilter:l.NearestFilter};this.progressiveLightMap1=new l.WebGLRenderTarget(this.res,this.res,a),this.progressiveLightMap2=new l.WebGLRenderTarget(this.res,this.res,a),this.discardMat=new s.DiscardMaterial,this.targetMat=new l.MeshLambertMaterial({fog:!1}),this.previousShadowMap={value:this.progressiveLightMap1.texture},this.averagingWindow={value:100},this.targetMat.onBeforeCompile=e=>{e.vertexShader="varying vec2 vUv;\n"+e.vertexShader.slice(0,-1)+"vUv = uv; gl_Position = vec4((uv - 0.5) * 2.0, 1.0, 1.0); }";const t=e.fragmentShader.indexOf("void main() {");e.fragmentShader="varying vec2 vUv;\n"+e.fragmentShader.slice(0,t)+"uniform sampler2D previousShadowMap;\n\tuniform float averagingWindow;\n"+e.fragmentShader.slice(t-1,-1)+"\nvec3 texelOld = texture2D(previousShadowMap, vUv).rgb;\n gl_FragColor.rgb = mix(texelOld, gl_FragColor.rgb, 1.0/ averagingWindow);\n }",e.uniforms.previousShadowMap=this.previousShadowMap,e.uniforms.averagingWindow=this.averagingWindow}}clear(){this.renderer.getClearColor(this.clearColor),this.clearAlpha=this.renderer.getClearAlpha(),this.renderer.setClearColor("black",1),this.renderer.setRenderTarget(this.progressiveLightMap1),this.renderer.clear(),this.renderer.setRenderTarget(this.progressiveLightMap2),this.renderer.clear(),this.renderer.setRenderTarget(null),this.renderer.setClearColor(this.clearColor,this.clearAlpha),this.lights=[],this.meshes=[],this.scene.traverse((e=>{!function(e){return!!e.geometry}(e)?function(e){return e.isLight}(e)&&this.lights.push({object:e,intensity:e.intensity}):this.meshes.push({object:e,material:e.material})}))}prepare(){this.lights.forEach((e=>e.object.intensity=0)),this.meshes.forEach((e=>e.object.material=this.discardMat))}finish(){this.lights.forEach((e=>e.object.intensity=e.intensity)),this.meshes.forEach((e=>e.object.material=e.material))}configure(e){this.object=e}update(e,t=100){if(!this.object)return;this.averagingWindow.value=t,this.object.material=this.targetMat;const r=this.buffer1Active?this.progressiveLightMap1:this.progressiveLightMap2,a=this.buffer1Active?this.progressiveLightMap2:this.progressiveLightMap1,i=this.scene.background;this.scene.background=null,this.renderer.setRenderTarget(r),this.previousShadowMap.value=a.texture,this.buffer1Active=!this.buffer1Active,this.renderer.render(this.scene,e),this.renderer.setRenderTarget(null),this.scene.background=i}}exports.AccumulativeShadows=d,exports.RandomizedLight=p,exports.accumulativeContext=c;
|
package/core/AdaptiveDpr.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("react"),r=require("@react-three/fiber");function t(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 n=t(e);exports.AdaptiveDpr=function({pixelated:e}){const t=r.useThree((e=>e.gl)),u=r.useThree((e=>e.internal.active)),i=r.useThree((e=>e.performance.current)),a=r.useThree((e=>e.viewport.initialDpr)),c=r.useThree((e=>e.setDpr));return n.useEffect((()=>{const r=t.domElement;return()=>{u&&c(a),e&&r&&(r.style.imageRendering="auto")}}),[]),n.useEffect((()=>{c(i*a),e&&t.domElement&&(t.domElement.style.imageRendering=1===i?"auto":"pixelated")}),[i]),null};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("react"),r=require("@react-three/fiber");function t(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 n=t(e);exports.AdaptiveEvents=function(){const e=r.useThree((e=>e.get)),t=r.useThree((e=>e.setEvents)),u=r.useThree((e=>e.performance.current));return n.useEffect((()=>{const r=e().events.enabled;return()=>t({enabled:r})}),[]),n.useEffect((()=>t({enabled:1===u})),[u]),null};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/extends"),r=require("@react-three/fiber"),t=require("react"),n=require("three-stdlib");function s(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(t);const c=t.forwardRef((({camera:s,makeDefault:c,regress:o,domElement:u,onChange:i,onStart:l,onEnd:d,...f},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)),g=r.useThree((e=>e.set)),p=r.useThree((e=>e.get)),T=r.useThree((e=>e.performance)),j=s||b,L=u||E.connected||h.domElement,O=t.useMemo((()=>new n.ArcballControls(j)),[j]);return r.useFrame((()=>{O.enabled&&O.update()}),-1),t.useEffect((()=>(O.connect(L),()=>{O.dispose()})),[L,o,O,v]),t.useEffect((()=>{const e=e=>{v(),o&&T.regress(),i&&i(e)};return O.addEventListener("change",e),l&&O.addEventListener("start",l),d&&O.addEventListener("end",d),()=>{O.removeEventListener("change",e),l&&O.removeEventListener("start",l),d&&O.removeEventListener("end",d)}}),[i,l,d]),t.useEffect((()=>{if(c){const e=p().controls;return g({controls:O}),()=>g({controls:e})}}),[c,O]),a.createElement("primitive",e({ref:m,object:O},f))}));exports.ArcballControls=c;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("react"),t=require("@react-three/fiber"),r=require("three-stdlib");function o(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var n=o(e);exports.AsciiRenderer=function({renderIndex:e=1,bgColor:o="black",fgColor:l="white",characters:c=" .:-+*=%@#",invert:i=!0,color:s=!1,resolution:m=.15}){const{size:u,gl:a,scene:d,camera:f}=t.useThree(),E=n.useMemo((()=>{const e=new r.AsciiEffect(a,c,{invert:i,color:s,resolution:m});return e.domElement.style.position="absolute",e.domElement.style.top="0px",e.domElement.style.left="0px",e.domElement.style.pointerEvents="none",e}),[c,i,s,m]);return n.useLayoutEffect((()=>{E.domElement.style.color=l,E.domElement.style.backgroundColor=o}),[l,o]),n.useEffect((()=>(a.domElement.style.opacity="0",a.domElement.parentNode.appendChild(E.domElement),()=>{a.domElement.style.opacity="1",a.domElement.parentNode.removeChild(E.domElement)})),[E]),n.useEffect((()=>{E.setSize(u.width,u.height)}),[E,u]),t.useFrame((e=>{E.render(d,f)}),e),n.createElement(n.Fragment,null)};
|
package/core/BBAnchor.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),n=require("@react-three/fiber");function u(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 c=u(r),a=u(t);const i=new a.Box3,o=new a.Vector3;exports.BBAnchor=({anchor:r,...t})=>{const u=c.useRef(null),a=c.useRef(null);return c.useEffect((()=>{var e;null!=(e=u.current)&&null!=(e=e.parent)&&e.parent&&(a.current=u.current.parent,u.current.parent.parent.add(u.current))}),[]),n.useFrame((()=>{a.current&&(i.setFromObject(a.current),i.getSize(o),u.current.position.set(a.current.position.x+o.x*(Array.isArray(r)?r[0]:r.x)/2,a.current.position.y+o.y*(Array.isArray(r)?r[1]:r.y)/2,a.current.position.z+o.z*(Array.isArray(r)?r[2]:r.z)/2))})),c.createElement("group",e({ref:u},t))};
|
package/core/Backdrop.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function e(e){
|
|
1
|
+
"use strict";function e(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 t=e(require("react"));const r=e=>0===e?0:Math.pow(2,10*e-10);exports.Backdrop=function({children:e,floor:n=.25,segments:o=20,receiveShadow:c,...a}){const u=t.useRef(null);return t.useLayoutEffect((()=>{let e=0;const t=o/o/2,c=u.current.attributes.position;for(let a=0;a<o+1;a++)for(let u=0;u<o+1;u++)c.setXYZ(e++,a/o-t+(0===a?-n:0),u/o-t,r(a/o));c.needsUpdate=!0,u.current.computeVertexNormals()}),[o,n]),t.createElement("group",a,t.createElement("mesh",{receiveShadow:c,rotation:[-Math.PI/2,0,Math.PI/2]},t.createElement("planeGeometry",{ref:u,args:[1,1,o,o]}),e))};
|
package/core/BakeShadows.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("react"),a=require("@react-three/fiber");exports.BakeShadows=function(){const t=a.useThree((e=>e.gl));return e.useEffect((()=>(t.shadowMap.autoUpdate=!1,t.shadowMap.needsUpdate=!0,()=>{t.shadowMap.autoUpdate=t.shadowMap.needsUpdate=!0})),[t.shadowMap]),null};
|
package/core/Billboard.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),n=require("@react-three/fiber");function u(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 o=u(r);const c=o.forwardRef((function({children:r,follow:u=!0,lockX:c=!1,lockY:a=!1,lockZ:i=!1,...l},f){const s=o.useRef(null),d=o.useRef(null),p=new t.Quaternion;return n.useFrame((({camera:e})=>{if(!u||!d.current)return;const r=d.current.rotation.clone();d.current.updateMatrix(),d.current.updateWorldMatrix(!1,!1),d.current.getWorldQuaternion(p),e.getWorldQuaternion(s.current.quaternion).premultiply(p.invert()),c&&(d.current.rotation.x=r.x),a&&(d.current.rotation.y=r.y),i&&(d.current.rotation.z=r.z)})),o.useImperativeHandle(f,(()=>d.current),[]),o.createElement("group",e({ref:d},l),o.createElement("group",{ref:s},r))}));exports.Billboard=c;
|
package/core/Bounds.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var t=require("react"),e=require("three"),r=require("@react-three/fiber");function n(t){var e=Object.create(null);return t&&Object.keys(t).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,n.get?n:{enumerable:!0,get:function(){return t[r]}})}})),e.default=t,Object.freeze(e)}var o=n(t),c=n(e),a=function(t){return t[t.NONE=0]="NONE",t[t.START=1]="START",t[t.ACTIVE=2]="ACTIVE",t}(a||{});const u=t=>t&&t.isOrthographicCamera,i=t=>1-Math.exp(-5*t)+.007*t,s=o.createContext(null);exports.Bounds=function({children:t,maxDuration:e=1,margin:n=1.2,observe:m,fit:p,clip:l,interpolateFunc:x=i,onFit:d}){const f=o.useRef(null),{camera:h,size:y,invalidate:g}=r.useThree(),v=r.useThree((t=>t.controls)),R=o.useRef(d);R.current=d;const w=o.useRef({camPos:new c.Vector3,camRot:new c.Quaternion,camZoom:1}),P=o.useRef({camPos:void 0,camRot:void 0,camZoom:void 0,camUp:void 0,target:void 0}),M=o.useRef(a.NONE),T=o.useRef(0),[V]=o.useState((()=>new c.Box3)),A=o.useMemo((()=>{function t(){const t=V.getSize(new c.Vector3),e=V.getCenter(new c.Vector3),r=Math.max(t.x,t.y,t.z),o=u(h)?4*r:r/(2*Math.atan(Math.PI*h.fov/360)),a=u(h)?4*r:o/h.aspect,i=n*Math.max(o,a);return{box:V,size:t,center:e,distance:i}}return{getSize:t,refresh(t){if((e=t)&&e.isBox3)V.copy(t);else{const e=t||f.current;if(!e)return this;e.updateWorldMatrix(!0,!0),V.setFromObject(e)}var e;if(V.isEmpty()){const t=h.position.length()||10;V.setFromCenterAndSize(new c.Vector3,new c.Vector3(t,t,t))}return w.current.camPos.copy(h.position),w.current.camRot.copy(h.quaternion),u(h)&&(w.current.camZoom=h.zoom),P.current.camPos=void 0,P.current.camRot=void 0,P.current.camZoom=void 0,P.current.camUp=void 0,P.current.target=void 0,this},reset(){const{center:e,distance:r}=t(),n=h.position.clone().sub(e).normalize();P.current.camPos=e.clone().addScaledVector(n,r),P.current.target=e.clone();const o=(new c.Matrix4).lookAt(P.current.camPos,P.current.target,h.up);return P.current.camRot=(new c.Quaternion).setFromRotationMatrix(o),M.current=a.START,T.current=0,this},moveTo(t){return P.current.camPos=Array.isArray(t)?new c.Vector3(...t):t.clone(),M.current=a.START,T.current=0,this},lookAt({target:t,up:e}){P.current.target=Array.isArray(t)?new c.Vector3(...t):t.clone(),P.current.camUp=e?Array.isArray(e)?new c.Vector3(...e):e.clone():h.up.clone();const r=(new c.Matrix4).lookAt(P.current.camPos||h.position,P.current.target,P.current.camUp);return P.current.camRot=(new c.Quaternion).setFromRotationMatrix(r),M.current=a.START,T.current=0,this},to({position:t,target:e}){return this.moveTo(t).lookAt({target:e})},fit(){if(!u(h))return this.reset();let t=0,e=0;const r=[new c.Vector3(V.min.x,V.min.y,V.min.z),new c.Vector3(V.min.x,V.max.y,V.min.z),new c.Vector3(V.min.x,V.min.y,V.max.z),new c.Vector3(V.min.x,V.max.y,V.max.z),new c.Vector3(V.max.x,V.max.y,V.max.z),new c.Vector3(V.max.x,V.max.y,V.min.z),new c.Vector3(V.max.x,V.min.y,V.max.z),new c.Vector3(V.max.x,V.min.y,V.min.z)],o=P.current.camPos||h.position,i=P.current.target||(null==v?void 0:v.target),s=P.current.camUp||h.up,m=i?(new c.Matrix4).lookAt(o,i,s).setPosition(o).invert():h.matrixWorldInverse;for(const n of r)n.applyMatrix4(m),t=Math.max(t,Math.abs(n.y)),e=Math.max(e,Math.abs(n.x));t*=2,e*=2;const p=(h.top-h.bottom)/t,l=(h.right-h.left)/e;return P.current.camZoom=Math.min(p,l)/n,M.current=a.START,T.current=0,R.current&&R.current(this.getSize()),this},clip(){const{distance:e}=t();return h.near=e/100,h.far=100*e,h.updateProjectionMatrix(),v&&(v.maxDistance=10*e,v.update()),g(),this}}}),[V,h,v,n,g]);o.useLayoutEffect((()=>{if(v){const t=()=>{if(v&&P.current.target&&M.current!==a.NONE){const t=(new c.Vector3).setFromMatrixColumn(h.matrix,2),e=w.current.camPos.distanceTo(v.target),r=(P.current.camPos||w.current.camPos).distanceTo(P.current.target),n=(1-T.current)*e+T.current*r;v.target.copy(h.position).addScaledVector(t,-n),v.update()}M.current=a.NONE};return v.addEventListener("start",t),()=>v.removeEventListener("start",t)}}),[v]);const z=o.useRef(0);return o.useLayoutEffect((()=>{(m||0==z.current++)&&(A.refresh(),p&&A.reset().fit(),l&&A.clip())}),[y,l,p,m,h,v]),r.useFrame(((t,r)=>{if(M.current===a.START)M.current=a.ACTIVE,g();else if(M.current===a.ACTIVE){if(T.current+=r/e,T.current>=1)P.current.camPos&&h.position.copy(P.current.camPos),P.current.camRot&&h.quaternion.copy(P.current.camRot),P.current.camUp&&h.up.copy(P.current.camUp),P.current.camZoom&&u(h)&&(h.zoom=P.current.camZoom),h.updateMatrixWorld(),h.updateProjectionMatrix(),v&&P.current.target&&(v.target.copy(P.current.target),v.update()),M.current=a.NONE;else{const t=x(T.current);P.current.camPos&&h.position.lerpVectors(w.current.camPos,P.current.camPos,t),P.current.camRot&&h.quaternion.slerpQuaternions(w.current.camRot,P.current.camRot,t),P.current.camUp&&h.up.set(0,1,0).applyQuaternion(h.quaternion),P.current.camZoom&&u(h)&&(h.zoom=(1-t)*w.current.camZoom+t*P.current.camZoom),h.updateMatrixWorld(),h.updateProjectionMatrix()}g()}})),o.createElement("group",{ref:f},o.createElement(s.Provider,{value:A},t))},exports.useBounds=function(){return o.useContext(s)};
|
package/core/Bounds.js
CHANGED
|
@@ -2,7 +2,6 @@ import * as React from 'react';
|
|
|
2
2
|
import * as THREE from 'three';
|
|
3
3
|
import { useThree, useFrame } from '@react-three/fiber';
|
|
4
4
|
|
|
5
|
-
// eslint-disable-next-line no-shadow
|
|
6
5
|
var AnimationState = /*#__PURE__*/function (AnimationState) {
|
|
7
6
|
AnimationState[AnimationState["NONE"] = 0] = "NONE";
|
|
8
7
|
AnimationState[AnimationState["START"] = 1] = "START";
|
package/core/Bvh.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/extends"),r=require("@react-three/fiber"),t=require("react"),s=require("three"),o=require("three-mesh-bvh");function n(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var s=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,s.get?s:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var u=n(t);const a=e=>e.isMesh;const c=u.forwardRef((({enabled:t=!0,firstHitOnly:n=!1,children:c,strategy:i=o.SAH,verbose:d=!1,setBoundingBox:f=!0,maxDepth:y=40,maxLeafTris:p=10,indirect:m=!1,...B},l)=>{const T=u.useRef(null),g=r.useThree((e=>e.raycaster));return u.useImperativeHandle(l,(()=>T.current),[]),u.useEffect((()=>{if(t){const e={strategy:i,verbose:d,setBoundingBox:f,maxDepth:y,maxLeafTris:p,indirect:m},r=T.current;return g.firstHitOnly=n,r.traverse((r=>{a(r)&&!r.geometry.boundsTree&&r.raycast===s.Mesh.prototype.raycast&&(r.raycast=o.acceleratedRaycast,r.geometry.computeBoundsTree=o.computeBoundsTree,r.geometry.disposeBoundsTree=o.disposeBoundsTree,r.geometry.computeBoundsTree(e))})),()=>{delete g.firstHitOnly,r.traverse((e=>{a(e)&&e.geometry.boundsTree&&(e.geometry.disposeBoundsTree(),e.raycast=s.Mesh.prototype.raycast)}))}}}),[]),u.createElement("group",e({ref:T},B),c)}));exports.Bvh=c,exports.useBVH=function(e,r){r={strategy:o.SAH,verbose:!1,setBoundingBox:!0,maxDepth:40,maxLeafTris:10,indirect:!1,...r},u.useEffect((()=>{if(e.current){e.current.raycast=o.acceleratedRaycast;const t=e.current.geometry;return t.computeBoundsTree=o.computeBoundsTree,t.disposeBoundsTree=o.disposeBoundsTree,t.computeBoundsTree(r),()=>{t.boundsTree&&t.disposeBoundsTree()}}}),[e,JSON.stringify(r)])};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),n=require("@react-three/fiber"),o=require("camera-controls");function a(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=a(r);const c=r.forwardRef(((a,c)=>{r.useMemo((()=>{const e={Box3:t.Box3,MathUtils:{clamp:t.MathUtils.clamp},Matrix4:t.Matrix4,Quaternion:t.Quaternion,Raycaster:t.Raycaster,Sphere:t.Sphere,Spherical:t.Spherical,Vector2:t.Vector2,Vector3:t.Vector3,Vector4:t.Vector4};o.install({THREE:e}),n.extend({CameraControlsImpl:o})}),[]);const{camera:i,domElement:u,makeDefault:l,onStart:d,onEnd:m,onChange:v,regress:E,...f}=a,h=n.useThree((e=>e.camera)),p=n.useThree((e=>e.gl)),L=n.useThree((e=>e.invalidate)),b=n.useThree((e=>e.events)),T=n.useThree((e=>e.setEvents)),g=n.useThree((e=>e.set)),x=n.useThree((e=>e.get)),j=n.useThree((e=>e.performance)),M=i||h,O=u||b.connected||p.domElement,V=r.useMemo((()=>new o(M)),[M]);return n.useFrame(((e,t)=>{V.enabled&&V.update(t)}),-1),r.useEffect((()=>(V.connect(O),()=>{V.disconnect()})),[O,V]),r.useEffect((()=>{const e=e=>{L(),E&&j.regress(),v&&v(e)},t=e=>{d&&d(e)},r=e=>{m&&m(e)};return V.addEventListener("update",e),V.addEventListener("controlstart",t),V.addEventListener("controlend",r),V.addEventListener("control",e),V.addEventListener("transitionstart",e),V.addEventListener("wake",e),()=>{V.removeEventListener("update",e),V.removeEventListener("controlstart",t),V.removeEventListener("controlend",r),V.removeEventListener("control",e),V.removeEventListener("transitionstart",e),V.removeEventListener("wake",e)}}),[V,d,m,L,T,E,v]),r.useEffect((()=>{if(l){const e=x().controls;return g({controls:V}),()=>g({controls:e})}}),[l,V]),s.createElement("primitive",e({ref:c,object:V},f))}));exports.CameraControls=c;
|
package/core/CameraShake.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("react"),r=require("@react-three/fiber"),t=require("three-stdlib");function n(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 c=n(e);const u=c.forwardRef((({intensity:e=1,decay:n,decayRate:u=.65,maxYaw:a=.1,maxPitch:i=.1,maxRoll:s=.1,yawFrequency:o=.1,pitchFrequency:l=.1,rollFrequency:f=.1},m)=>{const d=r.useThree((e=>e.camera)),p=r.useThree((e=>e.controls)),y=c.useRef(e),h=c.useRef(d.rotation.clone()),[b]=c.useState((()=>new t.SimplexNoise)),[v]=c.useState((()=>new t.SimplexNoise)),[w]=c.useState((()=>new t.SimplexNoise)),x=()=>{(y.current<0||y.current>1)&&(y.current=y.current<0?0:1)};return c.useImperativeHandle(m,(()=>({getIntensity:()=>y.current,setIntensity:e=>{y.current=e,x()}})),[]),c.useEffect((()=>{if(p){const e=()=>{h.current=d.rotation.clone()};return p.addEventListener("change",e),e(),()=>{p.removeEventListener("change",e)}}}),[d,p]),r.useFrame(((e,r)=>{const t=Math.pow(y.current,2),c=a*t*b.noise(e.clock.elapsedTime*o,1),m=i*t*v.noise(e.clock.elapsedTime*l,1),p=s*t*w.noise(e.clock.elapsedTime*f,1);d.rotation.set(h.current.x+m,h.current.y+c,h.current.z+p),n&&y.current>0&&(y.current-=u*r,x())})),null}));exports.CameraShake=u;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),n=require("./Line.cjs.js");function o(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("@react-three/fiber"),require("three-stdlib");var s=o(r);const u=s.forwardRef((function({points:r,closed:o=!1,curveType:u="centripetal",tension:c=.5,segments:i=20,vertexColors:l,...a},f){const p=s.useMemo((()=>{const e=r.map((e=>e instanceof t.Vector3?e:new t.Vector3(...e)));return new t.CatmullRomCurve3(e,o,u,c)}),[r,o,u,c]),h=s.useMemo((()=>p.getPoints(i)),[p,i]),m=s.useMemo((()=>{if(!l||l.length<2)return;if(l.length===i+1)return l;const e=l.map((e=>e instanceof t.Color?e:new t.Color(...e)));o&&e.push(e[0].clone());const r=[e[0]],n=i/(e.length-1);for(let t=1;t<i;t++){const o=t%n/n,s=Math.floor(t/n);r.push(e[s].clone().lerp(e[s+1],o))}return r.push(e[e.length-1]),r}),[l,i]);return s.createElement(n.Line,e({ref:f,points:h,vertexColors:m},a))}));exports.CatmullRomLine=u;
|
package/core/Caustics.cjs.js
CHANGED
|
@@ -1 +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"),o=require("./Fbo.cjs.js"),i=require("./Helper.cjs.js"),a=require("./shaderMaterial.cjs.js"),l=require("./Edges.cjs.js"),c=require("three-stdlib"),s=require("../helpers/constants.cjs.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function d(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("./Line.cjs.js");var m=u(e),p=d(r),v=d(t);function f(e=p.FrontSide){const r={value:new p.Matrix4};return Object.assign(new p.MeshNormalMaterial({side:e}),{viewMatrix:r,onBeforeCompile:e=>{e.uniforms.viewMatrix=r,e.fragmentShader="vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n }\n"+e.fragmentShader.replace("#include <normal_fragment_maps>","#include <normal_fragment_maps>\n normal = inverseTransformDirection( normal, viewMatrix );\n")}})}const x=a.shaderMaterial({causticsTexture:null,causticsTextureB:null,color:new p.Color,lightProjMatrix:new p.Matrix4,lightViewMatrix:new p.Matrix4},"varying vec3 vWorldPosition;\n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vec4 worldPosition = modelMatrix * vec4(position, 1.);\n vWorldPosition = worldPosition.xyz;\n }",`varying vec3 vWorldPosition;\n uniform vec3 color;\n uniform sampler2D causticsTexture;\n uniform sampler2D causticsTextureB;\n uniform mat4 lightProjMatrix;\n uniform mat4 lightViewMatrix;\n void main() {\n // Apply caustics\n vec4 lightSpacePos = lightProjMatrix * lightViewMatrix * vec4(vWorldPosition, 1.0);\n lightSpacePos.xyz /= lightSpacePos.w;\n lightSpacePos.xyz = lightSpacePos.xyz * 0.5 + 0.5;\n vec3 front = texture2D(causticsTexture, lightSpacePos.xy).rgb;\n vec3 back = texture2D(causticsTextureB, lightSpacePos.xy).rgb;\n gl_FragColor = vec4((front + back) * color, 1.0);\n #include <tonemapping_fragment>\n #include <${s.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }`),h=a.shaderMaterial({cameraMatrixWorld:new p.Matrix4,cameraProjectionMatrixInv:new p.Matrix4,normalTexture:null,depthTexture:null,lightDir:new p.Vector3(0,1,0),lightPlaneNormal:new p.Vector3(0,1,0),lightPlaneConstant:0,near:.1,far:100,modelMatrix:new p.Matrix4,worldRadius:1/40,ior:1.1,bounces:0,resolution:1024,size:10,intensity:.5},"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }","\n uniform mat4 cameraMatrixWorld;\n uniform mat4 cameraProjectionMatrixInv;\n uniform vec3 lightDir;\n uniform vec3 lightPlaneNormal;\n uniform float lightPlaneConstant;\n uniform float near;\n uniform float far;\n uniform float time;\n uniform float worldRadius;\n uniform float resolution;\n uniform float size;\n uniform float intensity;\n uniform float ior;\n precision highp isampler2D;\n precision highp usampler2D;\n uniform sampler2D normalTexture;\n uniform sampler2D depthTexture;\n uniform float bounces;\n varying vec2 vUv;\n vec3 WorldPosFromDepth(float depth, vec2 coord) {\n float z = depth * 2.0 - 1.0;\n vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0);\n vec4 viewSpacePosition = cameraProjectionMatrixInv * clipSpacePosition;\n // Perspective division\n viewSpacePosition /= viewSpacePosition.w;\n vec4 worldSpacePosition = cameraMatrixWorld * viewSpacePosition;\n return worldSpacePosition.xyz;\n }\n float sdPlane( vec3 p, vec3 n, float h ) {\n // n must be normalized\n return dot(p,n) + h;\n }\n float planeIntersect( vec3 ro, vec3 rd, vec4 p ) {\n return -(dot(ro,p.xyz)+p.w)/dot(rd,p.xyz);\n }\n vec3 totalInternalReflection(vec3 ro, vec3 rd, vec3 pos, vec3 normal, float ior, out vec3 rayOrigin, out vec3 rayDirection) {\n rayOrigin = ro;\n rayDirection = rd;\n rayDirection = refract(rayDirection, normal, 1.0 / ior);\n rayOrigin = pos + rayDirection * 0.1;\n return rayDirection;\n }\n void main() {\n // Each sample consists of random offset in the x and y direction\n float caustic = 0.0;\n float causticTexelSize = (1.0 / resolution) * size * 2.0;\n float texelsNeeded = worldRadius / causticTexelSize;\n float sampleRadius = texelsNeeded / resolution;\n float sum = 0.0;\n if (texture2D(depthTexture, vUv).x == 1.0) {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n return;\n }\n vec2 offset1 = vec2(-0.5, -0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 offset2 = vec2(-0.5, 0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 offset3 = vec2(0.5, 0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 offset4 = vec2(0.5, -0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 uv1 = vUv + offset1 * sampleRadius;\n vec2 uv2 = vUv + offset2 * sampleRadius;\n vec2 uv3 = vUv + offset3 * sampleRadius;\n vec2 uv4 = vUv + offset4 * sampleRadius;\n vec3 normal1 = texture2D(normalTexture, uv1, -10.0).rgb * 2.0 - 1.0;\n vec3 normal2 = texture2D(normalTexture, uv2, -10.0).rgb * 2.0 - 1.0;\n vec3 normal3 = texture2D(normalTexture, uv3, -10.0).rgb * 2.0 - 1.0;\n vec3 normal4 = texture2D(normalTexture, uv4, -10.0).rgb * 2.0 - 1.0;\n float depth1 = texture2D(depthTexture, uv1, -10.0).x;\n float depth2 = texture2D(depthTexture, uv2, -10.0).x;\n float depth3 = texture2D(depthTexture, uv3, -10.0).x;\n float depth4 = texture2D(depthTexture, uv4, -10.0).x;\n // Sanity check the depths\n if (depth1 == 1.0 || depth2 == 1.0 || depth3 == 1.0 || depth4 == 1.0) {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n return;\n }\n vec3 pos1 = WorldPosFromDepth(depth1, uv1);\n vec3 pos2 = WorldPosFromDepth(depth2, uv2);\n vec3 pos3 = WorldPosFromDepth(depth3, uv3);\n vec3 pos4 = WorldPosFromDepth(depth4, uv4);\n vec3 originPos1 = WorldPosFromDepth(0.0, uv1);\n vec3 originPos2 = WorldPosFromDepth(0.0, uv2);\n vec3 originPos3 = WorldPosFromDepth(0.0, uv3);\n vec3 originPos4 = WorldPosFromDepth(0.0, uv4);\n vec3 endPos1, endPos2, endPos3, endPos4;\n vec3 endDir1, endDir2, endDir3, endDir4;\n totalInternalReflection(originPos1, lightDir, pos1, normal1, ior, endPos1, endDir1);\n totalInternalReflection(originPos2, lightDir, pos2, normal2, ior, endPos2, endDir2);\n totalInternalReflection(originPos3, lightDir, pos3, normal3, ior, endPos3, endDir3);\n totalInternalReflection(originPos4, lightDir, pos4, normal4, ior, endPos4, endDir4);\n float lightPosArea = length(cross(originPos2 - originPos1, originPos3 - originPos1)) + length(cross(originPos3 - originPos1, originPos4 - originPos1));\n float t1 = planeIntersect(endPos1, endDir1, vec4(lightPlaneNormal, lightPlaneConstant));\n float t2 = planeIntersect(endPos2, endDir2, vec4(lightPlaneNormal, lightPlaneConstant));\n float t3 = planeIntersect(endPos3, endDir3, vec4(lightPlaneNormal, lightPlaneConstant));\n float t4 = planeIntersect(endPos4, endDir4, vec4(lightPlaneNormal, lightPlaneConstant));\n vec3 finalPos1 = endPos1 + endDir1 * t1;\n vec3 finalPos2 = endPos2 + endDir2 * t2;\n vec3 finalPos3 = endPos3 + endDir3 * t3;\n vec3 finalPos4 = endPos4 + endDir4 * t4;\n float finalArea = length(cross(finalPos2 - finalPos1, finalPos3 - finalPos1)) + length(cross(finalPos3 - finalPos1, finalPos4 - finalPos1));\n caustic += intensity * (lightPosArea / finalArea);\n // Calculate the area of the triangle in light spaces\n gl_FragColor = vec4(vec3(max(caustic, 0.0)), 1.0);\n }"),g={depth:!0,minFilter:p.LinearFilter,magFilter:p.LinearFilter,type:p.UnsignedByteType},P={minFilter:p.LinearMipmapLinearFilter,magFilter:p.LinearFilter,type:p.FloatType,generateMipmaps:!0},y=v.forwardRef((({debug:e,children:r,frames:t=1,ior:a=1.1,color:s="white",causticsOnly:u=!1,backside:d=!1,backsideIOR:y=1.1,worldRadius:M=.3125,intensity:D=.05,resolution:w=2024,lightSource:T=[5,5,5],...j},b)=>{n.extend({CausticsProjectionMaterial:x});const S=v.useRef(null),F=v.useRef(null),z=v.useRef(null),W=v.useRef(null),R=n.useThree((e=>e.gl)),I=i.useHelper(e&&F,p.CameraHelper),C=o.useFBO(w,w,g),O=o.useFBO(w,w,g),_=o.useFBO(w,w,P),V=o.useFBO(w,w,P),[B]=v.useState((()=>f())),[E]=v.useState((()=>f(p.BackSide))),[q]=v.useState((()=>new h)),[A]=v.useState((()=>new c.FullScreenQuad(q)));v.useLayoutEffect((()=>{S.current.updateWorldMatrix(!1,!0)}));let N=0;const k=new p.Vector3,U=new p.Frustum,L=new p.Matrix4,H=new p.Plane,G=new p.Vector3,Q=new p.Vector3,$=new p.Box3,J=new p.Vector3,K=[],X=[],Y=[],Z=[],ee=new p.Vector3;for(let e=0;e<8;e++)K.push(new p.Vector3),X.push(new p.Vector3),Y.push(new p.Vector3),Z.push(new p.Vector3);return n.useFrame((()=>{if(t===1/0||N++<t){var r,n;Array.isArray(T)?G.fromArray(T).normalize():G.copy(S.current.worldToLocal(T.current.getWorldPosition(k)).normalize()),Q.copy(G).multiplyScalar(-1),null==(r=z.current.parent)||r.matrixWorld.identity(),$.setFromObject(z.current,!0),K[0].set($.min.x,$.min.y,$.min.z),K[1].set($.min.x,$.min.y,$.max.z),K[2].set($.min.x,$.max.y,$.min.z),K[3].set($.min.x,$.max.y,$.max.z),K[4].set($.max.x,$.min.y,$.min.z),K[5].set($.max.x,$.min.y,$.max.z),K[6].set($.max.x,$.max.y,$.min.z),K[7].set($.max.x,$.max.y,$.max.z);for(let e=0;e<8;e++)X[e].copy(K[e]);$.getCenter(J),K.map((e=>e.sub(J)));const t=H.set(Q,0);K.map(((e,r)=>t.projectPoint(e,Y[r])));const o=Y.reduce(((e,r)=>e.add(r)),k.set(0,0,0)).divideScalar(Y.length),i=Y.map((e=>e.distanceTo(o))).reduce(((e,r)=>Math.max(e,r))),l=K.map((e=>e.dot(G))).reduce(((e,r)=>Math.max(e,r)));F.current.position.copy(ee.copy(G).multiplyScalar(l).add(J)),F.current.lookAt(z.current.localToWorld(J));const c=L.lookAt(F.current.position,J,k.set(0,1,0));F.current.left=-i,F.current.right=i,F.current.top=i,F.current.bottom=-i;const s=k.set(0,i,0).applyMatrix4(c),m=(F.current.position.y+s.y)/G.y;F.current.near=.1,F.current.far=m,F.current.updateProjectionMatrix(),F.current.updateMatrixWorld();const p=X.map(((e,r)=>e.add(Z[r].copy(G).multiplyScalar(-e.y/G.y)))),v=p.reduce(((e,r)=>e.add(r)),k.set(0,0,0)).divideScalar(p.length),f=2*p.map((e=>Math.hypot(e.x-v.x,e.z-v.z))).reduce(((e,r)=>Math.max(e,r)));W.current.scale.setScalar(f),W.current.position.copy(v),e&&(null==(n=I.current)||n.update()),E.viewMatrix.value=B.viewMatrix.value=F.current.matrixWorldInverse;const x=U.setFromProjectionMatrix(L.multiplyMatrices(F.current.projectionMatrix,F.current.matrixWorldInverse)).planes[4];q.cameraMatrixWorld=F.current.matrixWorld,q.cameraProjectionMatrixInv=F.current.projectionMatrixInverse,q.lightDir=Q,q.lightPlaneNormal=x.normal,q.lightPlaneConstant=x.constant,q.near=F.current.near,q.far=F.current.far,q.resolution=w,q.size=i,q.intensity=D,q.worldRadius=M,z.current.visible=!0,R.setRenderTarget(C),R.clear(),z.current.overrideMaterial=B,R.render(z.current,F.current),R.setRenderTarget(O),R.clear(),d&&(z.current.overrideMaterial=E,R.render(z.current,F.current)),z.current.overrideMaterial=null,q.ior=a,W.current.material.lightProjMatrix=F.current.projectionMatrix,W.current.material.lightViewMatrix=F.current.matrixWorldInverse,q.normalTexture=C.texture,q.depthTexture=C.depthTexture,R.setRenderTarget(_),R.clear(),A.render(R),q.ior=y,q.normalTexture=O.texture,q.depthTexture=O.depthTexture,R.setRenderTarget(V),R.clear(),d&&A.render(R),R.setRenderTarget(null),u&&(z.current.visible=!1)}})),v.useImperativeHandle(b,(()=>S.current),[]),v.createElement("group",m.default({ref:S},j),v.createElement("scene",{ref:z},v.createElement("orthographicCamera",{ref:F,up:[0,1,0]}),r),v.createElement("mesh",{renderOrder:2,ref:W,"rotation-x":-Math.PI/2},v.createElement("planeGeometry",null),v.createElement("causticsProjectionMaterial",{transparent:!0,color:s,causticsTexture:_.texture,causticsTextureB:V.texture,blending:p.CustomBlending,blendSrc:p.OneFactor,blendDst:p.SrcAlphaFactor,depthWrite:!1}),e&&v.createElement(l.Edges,null,v.createElement("lineBasicMaterial",{color:"#ffff00",toneMapped:!1}))))}));exports.Caustics=y;
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),n=require("@react-three/fiber"),o=require("./Fbo.cjs.js"),i=require("./Helper.cjs.js"),a=require("./shaderMaterial.cjs.js"),l=require("./Edges.cjs.js"),c=require("three-stdlib"),s=require("../helpers/constants.cjs.js");function u(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("./Line.cjs.js");var d=u(r),m=u(t);function p(e=d.FrontSide){const r={value:new d.Matrix4};return Object.assign(new d.MeshNormalMaterial({side:e}),{viewMatrix:r,onBeforeCompile:e=>{e.uniforms.viewMatrix=r,e.fragmentShader="vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n }\n"+e.fragmentShader.replace("#include <normal_fragment_maps>","#include <normal_fragment_maps>\n normal = inverseTransformDirection( normal, viewMatrix );\n")}})}const v=a.shaderMaterial({causticsTexture:null,causticsTextureB:null,color:new d.Color,lightProjMatrix:new d.Matrix4,lightViewMatrix:new d.Matrix4},"varying vec3 vWorldPosition;\n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vec4 worldPosition = modelMatrix * vec4(position, 1.);\n vWorldPosition = worldPosition.xyz;\n }",`varying vec3 vWorldPosition;\n uniform vec3 color;\n uniform sampler2D causticsTexture;\n uniform sampler2D causticsTextureB;\n uniform mat4 lightProjMatrix;\n uniform mat4 lightViewMatrix;\n void main() {\n // Apply caustics\n vec4 lightSpacePos = lightProjMatrix * lightViewMatrix * vec4(vWorldPosition, 1.0);\n lightSpacePos.xyz /= lightSpacePos.w;\n lightSpacePos.xyz = lightSpacePos.xyz * 0.5 + 0.5;\n vec3 front = texture2D(causticsTexture, lightSpacePos.xy).rgb;\n vec3 back = texture2D(causticsTextureB, lightSpacePos.xy).rgb;\n gl_FragColor = vec4((front + back) * color, 1.0);\n #include <tonemapping_fragment>\n #include <${s.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }`),f=a.shaderMaterial({cameraMatrixWorld:new d.Matrix4,cameraProjectionMatrixInv:new d.Matrix4,normalTexture:null,depthTexture:null,lightDir:new d.Vector3(0,1,0),lightPlaneNormal:new d.Vector3(0,1,0),lightPlaneConstant:0,near:.1,far:100,modelMatrix:new d.Matrix4,worldRadius:1/40,ior:1.1,bounces:0,resolution:1024,size:10,intensity:.5},"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }","\n uniform mat4 cameraMatrixWorld;\n uniform mat4 cameraProjectionMatrixInv;\n uniform vec3 lightDir;\n uniform vec3 lightPlaneNormal;\n uniform float lightPlaneConstant;\n uniform float near;\n uniform float far;\n uniform float time;\n uniform float worldRadius;\n uniform float resolution;\n uniform float size;\n uniform float intensity;\n uniform float ior;\n precision highp isampler2D;\n precision highp usampler2D;\n uniform sampler2D normalTexture;\n uniform sampler2D depthTexture;\n uniform float bounces;\n varying vec2 vUv;\n vec3 WorldPosFromDepth(float depth, vec2 coord) {\n float z = depth * 2.0 - 1.0;\n vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0);\n vec4 viewSpacePosition = cameraProjectionMatrixInv * clipSpacePosition;\n // Perspective division\n viewSpacePosition /= viewSpacePosition.w;\n vec4 worldSpacePosition = cameraMatrixWorld * viewSpacePosition;\n return worldSpacePosition.xyz;\n }\n float sdPlane( vec3 p, vec3 n, float h ) {\n // n must be normalized\n return dot(p,n) + h;\n }\n float planeIntersect( vec3 ro, vec3 rd, vec4 p ) {\n return -(dot(ro,p.xyz)+p.w)/dot(rd,p.xyz);\n }\n vec3 totalInternalReflection(vec3 ro, vec3 rd, vec3 pos, vec3 normal, float ior, out vec3 rayOrigin, out vec3 rayDirection) {\n rayOrigin = ro;\n rayDirection = rd;\n rayDirection = refract(rayDirection, normal, 1.0 / ior);\n rayOrigin = pos + rayDirection * 0.1;\n return rayDirection;\n }\n void main() {\n // Each sample consists of random offset in the x and y direction\n float caustic = 0.0;\n float causticTexelSize = (1.0 / resolution) * size * 2.0;\n float texelsNeeded = worldRadius / causticTexelSize;\n float sampleRadius = texelsNeeded / resolution;\n float sum = 0.0;\n if (texture2D(depthTexture, vUv).x == 1.0) {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n return;\n }\n vec2 offset1 = vec2(-0.5, -0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 offset2 = vec2(-0.5, 0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 offset3 = vec2(0.5, 0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 offset4 = vec2(0.5, -0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 uv1 = vUv + offset1 * sampleRadius;\n vec2 uv2 = vUv + offset2 * sampleRadius;\n vec2 uv3 = vUv + offset3 * sampleRadius;\n vec2 uv4 = vUv + offset4 * sampleRadius;\n vec3 normal1 = texture2D(normalTexture, uv1, -10.0).rgb * 2.0 - 1.0;\n vec3 normal2 = texture2D(normalTexture, uv2, -10.0).rgb * 2.0 - 1.0;\n vec3 normal3 = texture2D(normalTexture, uv3, -10.0).rgb * 2.0 - 1.0;\n vec3 normal4 = texture2D(normalTexture, uv4, -10.0).rgb * 2.0 - 1.0;\n float depth1 = texture2D(depthTexture, uv1, -10.0).x;\n float depth2 = texture2D(depthTexture, uv2, -10.0).x;\n float depth3 = texture2D(depthTexture, uv3, -10.0).x;\n float depth4 = texture2D(depthTexture, uv4, -10.0).x;\n // Sanity check the depths\n if (depth1 == 1.0 || depth2 == 1.0 || depth3 == 1.0 || depth4 == 1.0) {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n return;\n }\n vec3 pos1 = WorldPosFromDepth(depth1, uv1);\n vec3 pos2 = WorldPosFromDepth(depth2, uv2);\n vec3 pos3 = WorldPosFromDepth(depth3, uv3);\n vec3 pos4 = WorldPosFromDepth(depth4, uv4);\n vec3 originPos1 = WorldPosFromDepth(0.0, uv1);\n vec3 originPos2 = WorldPosFromDepth(0.0, uv2);\n vec3 originPos3 = WorldPosFromDepth(0.0, uv3);\n vec3 originPos4 = WorldPosFromDepth(0.0, uv4);\n vec3 endPos1, endPos2, endPos3, endPos4;\n vec3 endDir1, endDir2, endDir3, endDir4;\n totalInternalReflection(originPos1, lightDir, pos1, normal1, ior, endPos1, endDir1);\n totalInternalReflection(originPos2, lightDir, pos2, normal2, ior, endPos2, endDir2);\n totalInternalReflection(originPos3, lightDir, pos3, normal3, ior, endPos3, endDir3);\n totalInternalReflection(originPos4, lightDir, pos4, normal4, ior, endPos4, endDir4);\n float lightPosArea = length(cross(originPos2 - originPos1, originPos3 - originPos1)) + length(cross(originPos3 - originPos1, originPos4 - originPos1));\n float t1 = planeIntersect(endPos1, endDir1, vec4(lightPlaneNormal, lightPlaneConstant));\n float t2 = planeIntersect(endPos2, endDir2, vec4(lightPlaneNormal, lightPlaneConstant));\n float t3 = planeIntersect(endPos3, endDir3, vec4(lightPlaneNormal, lightPlaneConstant));\n float t4 = planeIntersect(endPos4, endDir4, vec4(lightPlaneNormal, lightPlaneConstant));\n vec3 finalPos1 = endPos1 + endDir1 * t1;\n vec3 finalPos2 = endPos2 + endDir2 * t2;\n vec3 finalPos3 = endPos3 + endDir3 * t3;\n vec3 finalPos4 = endPos4 + endDir4 * t4;\n float finalArea = length(cross(finalPos2 - finalPos1, finalPos3 - finalPos1)) + length(cross(finalPos3 - finalPos1, finalPos4 - finalPos1));\n caustic += intensity * (lightPosArea / finalArea);\n // Calculate the area of the triangle in light spaces\n gl_FragColor = vec4(vec3(max(caustic, 0.0)), 1.0);\n }"),x={depth:!0,minFilter:d.LinearFilter,magFilter:d.LinearFilter,type:d.UnsignedByteType},h={minFilter:d.LinearMipmapLinearFilter,magFilter:d.LinearFilter,type:d.FloatType,generateMipmaps:!0},g=m.forwardRef((({debug:r,children:t,frames:a=1,ior:s=1.1,color:u="white",causticsOnly:g=!1,backside:P=!1,backsideIOR:y=1.1,worldRadius:M=.3125,intensity:D=.05,resolution:w=2024,lightSource:T=[5,5,5],...j},S)=>{n.extend({CausticsProjectionMaterial:v});const F=m.useRef(null),b=m.useRef(null),z=m.useRef(null),W=m.useRef(null),R=n.useThree((e=>e.gl)),I=i.useHelper(r&&b,d.CameraHelper),C=o.useFBO(w,w,x),O=o.useFBO(w,w,x),V=o.useFBO(w,w,h),B=o.useFBO(w,w,h),[E]=m.useState((()=>p())),[_]=m.useState((()=>p(d.BackSide))),[q]=m.useState((()=>new f)),[A]=m.useState((()=>new c.FullScreenQuad(q)));m.useLayoutEffect((()=>{F.current.updateWorldMatrix(!1,!0)}));let N=0;const k=new d.Vector3,U=new d.Frustum,L=new d.Matrix4,H=new d.Plane,G=new d.Vector3,Q=new d.Vector3,$=new d.Box3,J=new d.Vector3,K=[],X=[],Y=[],Z=[],ee=new d.Vector3;for(let e=0;e<8;e++)K.push(new d.Vector3),X.push(new d.Vector3),Y.push(new d.Vector3),Z.push(new d.Vector3);return n.useFrame((()=>{if(a===1/0||N++<a){var e,t;Array.isArray(T)?G.fromArray(T).normalize():G.copy(F.current.worldToLocal(T.current.getWorldPosition(k)).normalize()),Q.copy(G).multiplyScalar(-1),null==(e=z.current.parent)||e.matrixWorld.identity(),$.setFromObject(z.current,!0),K[0].set($.min.x,$.min.y,$.min.z),K[1].set($.min.x,$.min.y,$.max.z),K[2].set($.min.x,$.max.y,$.min.z),K[3].set($.min.x,$.max.y,$.max.z),K[4].set($.max.x,$.min.y,$.min.z),K[5].set($.max.x,$.min.y,$.max.z),K[6].set($.max.x,$.max.y,$.min.z),K[7].set($.max.x,$.max.y,$.max.z);for(let e=0;e<8;e++)X[e].copy(K[e]);$.getCenter(J),K.map((e=>e.sub(J)));const n=H.set(Q,0);K.map(((e,r)=>n.projectPoint(e,Y[r])));const o=Y.reduce(((e,r)=>e.add(r)),k.set(0,0,0)).divideScalar(Y.length),i=Y.map((e=>e.distanceTo(o))).reduce(((e,r)=>Math.max(e,r))),a=K.map((e=>e.dot(G))).reduce(((e,r)=>Math.max(e,r)));b.current.position.copy(ee.copy(G).multiplyScalar(a).add(J)),b.current.lookAt(z.current.localToWorld(J));const l=L.lookAt(b.current.position,J,k.set(0,1,0));b.current.left=-i,b.current.right=i,b.current.top=i,b.current.bottom=-i;const c=k.set(0,i,0).applyMatrix4(l),u=(b.current.position.y+c.y)/G.y;b.current.near=.1,b.current.far=u,b.current.updateProjectionMatrix(),b.current.updateMatrixWorld();const d=X.map(((e,r)=>e.add(Z[r].copy(G).multiplyScalar(-e.y/G.y)))),m=d.reduce(((e,r)=>e.add(r)),k.set(0,0,0)).divideScalar(d.length),p=2*d.map((e=>Math.hypot(e.x-m.x,e.z-m.z))).reduce(((e,r)=>Math.max(e,r)));W.current.scale.setScalar(p),W.current.position.copy(m),r&&(null==(t=I.current)||t.update()),_.viewMatrix.value=E.viewMatrix.value=b.current.matrixWorldInverse;const v=U.setFromProjectionMatrix(L.multiplyMatrices(b.current.projectionMatrix,b.current.matrixWorldInverse)).planes[4];q.cameraMatrixWorld=b.current.matrixWorld,q.cameraProjectionMatrixInv=b.current.projectionMatrixInverse,q.lightDir=Q,q.lightPlaneNormal=v.normal,q.lightPlaneConstant=v.constant,q.near=b.current.near,q.far=b.current.far,q.resolution=w,q.size=i,q.intensity=D,q.worldRadius=M,z.current.visible=!0,R.setRenderTarget(C),R.clear(),z.current.overrideMaterial=E,R.render(z.current,b.current),R.setRenderTarget(O),R.clear(),P&&(z.current.overrideMaterial=_,R.render(z.current,b.current)),z.current.overrideMaterial=null,q.ior=s,W.current.material.lightProjMatrix=b.current.projectionMatrix,W.current.material.lightViewMatrix=b.current.matrixWorldInverse,q.normalTexture=C.texture,q.depthTexture=C.depthTexture,R.setRenderTarget(V),R.clear(),A.render(R),q.ior=y,q.normalTexture=O.texture,q.depthTexture=O.depthTexture,R.setRenderTarget(B),R.clear(),P&&A.render(R),R.setRenderTarget(null),g&&(z.current.visible=!1)}})),m.useImperativeHandle(S,(()=>F.current),[]),m.createElement("group",e({ref:F},j),m.createElement("scene",{ref:z},m.createElement("orthographicCamera",{ref:b,up:[0,1,0]}),t),m.createElement("mesh",{renderOrder:2,ref:W,"rotation-x":-Math.PI/2},m.createElement("planeGeometry",null),m.createElement("causticsProjectionMaterial",{transparent:!0,color:u,causticsTexture:V.texture,causticsTextureB:B.texture,blending:d.CustomBlending,blendSrc:d.OneFactor,blendDst:d.SrcAlphaFactor,depthWrite:!1}),r&&m.createElement(l.Edges,null,m.createElement("lineBasicMaterial",{color:"#ffff00",toneMapped:!1}))))}));exports.Caustics=g;
|
package/core/Center.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/extends"),t=require("three");function r(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 n=r(require("react"));const i=n.forwardRef((function({children:r,disable:i,disableX:c,disableY:o,disableZ:u,left:a,right:l,top:s,bottom:f,front:d,back:p,onCentered:m,precise:b=!0,cacheKey:g=0,...h},x){const y=n.useRef(null),v=n.useRef(null),O=n.useRef(null);return n.useLayoutEffect((()=>{v.current.matrixWorld.identity();const e=(new t.Box3).setFromObject(O.current,b),r=new t.Vector3,n=new t.Sphere,g=e.max.x-e.min.x,h=e.max.y-e.min.y,x=e.max.z-e.min.z;e.getCenter(r),e.getBoundingSphere(n);const j=s?h/2:f?-h/2:0,w=a?-g/2:l?g/2:0,z=d?x/2:p?-x/2:0;v.current.position.set(i||c?0:-r.x+w,i||o?0:-r.y+j,i||u?0:-r.z+z),void 0!==m&&m({parent:y.current.parent,container:y.current,width:g,height:h,depth:x,boundingBox:e,boundingSphere:n,center:r,verticalAlignment:j,horizontalAlignment:w,depthAlignment:z})}),[g,m,s,a,d,i,c,o,u,b,l,f,p]),n.useImperativeHandle(x,(()=>y.current),[]),n.createElement("group",e({ref:y},h),n.createElement("group",{ref:v},n.createElement("group",{ref:O},r)))}));exports.Center=i;
|
package/core/Clone.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),i=require("three-stdlib");function n(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var i=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,i.get?i:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var a=n(r),o=n(t);const c=o.forwardRef((({isChild:r=!1,object:t,children:n,deep:s,castShadow:l,receiveShadow:d,inject:u,keys:m,...y},h)=>{const f={keys:m,deep:s,inject:u,castShadow:l,receiveShadow:d};if(t=o.useMemo((()=>{if(!1===r&&!Array.isArray(t)){let e=!1;if(t.traverse((r=>{r.isSkinnedMesh&&(e=!0)})),e)return i.SkeletonUtils.clone(t)}return t}),[t,r]),Array.isArray(t))return o.createElement("group",e({},y,{ref:h}),t.map((r=>o.createElement(c,e({key:r.uuid,object:r},f)))),n);const{children:p,...b}=function(e,{keys:r=["near","far","color","distance","decay","penumbra","angle","intensity","skeleton","visible","castShadow","receiveShadow","morphTargetDictionary","morphTargetInfluences","name","geometry","material","position","rotation","scale","up","userData","bindMode","bindMatrix","bindMatrixInverse","skeleton"],deep:t,inject:i,castShadow:n,receiveShadow:c}){let s={};for(const t of r)s[t]=e[t];return t&&(s.geometry&&"materialsOnly"!==t&&(s.geometry=s.geometry.clone()),s.material&&"geometriesOnly"!==t&&(s.material=s.material.clone())),i&&(s="function"==typeof i?{...s,children:i(e)}:o.isValidElement(i)?{...s,children:i}:{...s,...i}),e instanceof a.Mesh&&(n&&(s.castShadow=!0),c&&(s.receiveShadow=!0)),s}(t,f),v=t.type[0].toLowerCase()+t.type.slice(1);return o.createElement(v,e({},b,y,{ref:h}),t.children.map((r=>"Bone"===r.type?o.createElement("primitive",e({key:r.uuid,object:r},f)):o.createElement(c,e({key:r.uuid,object:r},f,{isChild:!0})))),n,p)}));exports.Clone=c;
|
package/core/Clone.js
CHANGED
|
@@ -22,7 +22,7 @@ function createSpread(child, {
|
|
|
22
22
|
if (typeof inject === 'function') spread = {
|
|
23
23
|
...spread,
|
|
24
24
|
children: inject(child)
|
|
25
|
-
};else if (
|
|
25
|
+
};else if (/*#__PURE__*/React.isValidElement(inject)) spread = {
|
|
26
26
|
...spread,
|
|
27
27
|
children: inject
|
|
28
28
|
};else spread = {
|
package/core/Cloud.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),n=require("@react-three/fiber"),a=require("./Texture.cjs.js"),o=require("uuid"),u=require("../helpers/deprecated.cjs.js");function c(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 i=c(t);const s=new r.Matrix4,l=new r.Vector3,d=new r.Quaternion,m=new r.Vector3,f=new r.Quaternion,p=new r.Vector3,g=i.createContext(null),h=i.forwardRef((({children:t,material:o=r.MeshLambertMaterial,texture:c="https://rawcdn.githack.com/pmndrs/drei-assets/9225a9f1fbd449d9411125c2f419b843d0308c9f/cloud.png",range:h,limit:y=200,frustumCulled:x,...v},b)=>{var M,w;const C=i.useMemo((()=>class extends o{constructor(){super();const e=parseInt(r.REVISION.replace(/\D+/g,""))>=154?"opaque_fragment":"output_fragment";this.onBeforeCompile=t=>{t.vertexShader="attribute float cloudOpacity;\n varying float vOpacity;\n "+t.vertexShader.replace("#include <fog_vertex>","#include <fog_vertex>\n vOpacity = cloudOpacity;\n "),t.fragmentShader="varying float vOpacity;\n "+t.fragmentShader.replace(`#include <${e}>`,`#include <${e}>\n gl_FragColor = vec4(outgoingLight, diffuseColor.a * vOpacity);\n `)}}}),[o]);n.extend({CloudMaterial:C});const E=i.useRef(null),O=i.useRef([]),A=i.useMemo((()=>new Float32Array(Array.from({length:y},(()=>1)))),[y]),R=i.useMemo((()=>new Float32Array(Array.from({length:y},(()=>[1,1,1])).flat())),[y]),j=a.useTexture(c);let U,V=0,q=0;const F=new r.Quaternion,S=new r.Vector3(0,0,1),D=new r.Vector3;n.useFrame(((e,t)=>{for(V=e.clock.getElapsedTime(),s.copy(E.current.matrixWorld).invert(),e.camera.matrixWorld.decompose(m,f,p),q=0;q<O.current.length;q++)U=O.current[q],U.ref.current.matrixWorld.decompose(l,d,p),l.add(D.copy(U.position).applyQuaternion(d).multiply(p)),d.copy(f).multiply(F.setFromAxisAngle(S,U.rotation+=t*U.rotationFactor)),p.multiplyScalar(U.volume+(1+Math.sin(V*U.density*U.speed))/2*U.growth),U.matrix.compose(l,d,p).premultiply(s),U.dist=l.distanceTo(m);for(O.current.sort(((e,t)=>t.dist-e.dist)),q=0;q<O.current.length;q++)U=O.current[q],A[q]=U.opacity*(U.dist<U.fade-1?U.dist/U.fade:1),E.current.setMatrixAt(q,U.matrix),E.current.setColorAt(q,U.color);E.current.geometry.attributes.cloudOpacity.needsUpdate=!0,E.current.instanceMatrix.needsUpdate=!0,E.current.instanceColor&&(E.current.instanceColor.needsUpdate=!0)})),i.useLayoutEffect((()=>{const e=Math.min(y,void 0!==h?h:y,O.current.length);E.current.count=e,u.setUpdateRange(E.current.instanceMatrix,{offset:0,count:16*e}),E.current.instanceColor&&u.setUpdateRange(E.current.instanceColor,{offset:0,count:3*e}),u.setUpdateRange(E.current.geometry.attributes.cloudOpacity,{offset:0,count:e})}));let I=[null!==(M=j.image.width)&&void 0!==M?M:1,null!==(w=j.image.height)&&void 0!==w?w:1];const L=Math.max(I[0],I[1]);return I=[I[0]/L,I[1]/L],i.createElement("group",e({ref:b},v),i.createElement(g.Provider,{value:O},t,i.createElement("instancedMesh",{matrixAutoUpdate:!1,ref:E,args:[null,null,y],frustumCulled:x},i.createElement("instancedBufferAttribute",{usage:r.DynamicDrawUsage,attach:"instanceColor",args:[R,3]}),i.createElement("planeGeometry",{args:[...I]},i.createElement("instancedBufferAttribute",{usage:r.DynamicDrawUsage,attach:"attributes-cloudOpacity",args:[A,1]})),i.createElement("cloudMaterial",{key:o.name,map:j,transparent:!0,depthWrite:!1}))))})),y=i.forwardRef((({opacity:t=1,speed:a=0,bounds:u=[5,1,1],segments:c=20,color:s="#ffffff",fade:l=10,volume:d=6,smallestVolume:m=.25,distribute:f=null,growth:p=4,concentrate:h="inside",seed:y=Math.random(),...x},v)=>{function b(){const e=1e4*Math.sin(y++);return e-Math.floor(e)}const M=i.useContext(g),w=i.useRef(null),[C]=i.useState((()=>o.v4())),E=i.useMemo((()=>[...new Array(c)].map(((e,t)=>({segments:c,bounds:new r.Vector3(1,1,1),position:new r.Vector3,uuid:C,index:t,ref:w,dist:0,matrix:new r.Matrix4,color:new r.Color,rotation:t*(Math.PI/c)})))),[c,C]);return i.useLayoutEffect((()=>{E.forEach(((e,r)=>{n.applyProps(e,{volume:d,color:s,speed:a,growth:p,opacity:t,fade:l,bounds:u,density:Math.max(.5,b()),rotationFactor:Math.max(.2,.5*b())*a});const o=null==f?void 0:f(e,r);var i;(o||c>1)&&e.position.copy(e.bounds).multiply(null!==(i=null==o?void 0:o.point)&&void 0!==i?i:{x:2*b()-1,y:2*b()-1,z:2*b()-1});const g=Math.abs(e.position.x),y=Math.abs(e.position.y),x=Math.abs(e.position.z),v=Math.max(g,y,x);e.length=1,g===v&&(e.length-=g/e.bounds.x),y===v&&(e.length-=y/e.bounds.y),x===v&&(e.length-=x/e.bounds.z),e.volume=(void 0!==(null==o?void 0:o.volume)?o.volume:Math.max(Math.max(0,m),"random"===h?b():"inside"===h?e.length:1-e.length))*d}))}),[h,u,l,s,t,p,d,y,c,a]),i.useLayoutEffect((()=>{const e=E;return M.current=[...M.current,...e],()=>{M.current=M.current.filter((e=>e.uuid!==C))}}),[E]),i.useImperativeHandle(v,(()=>w.current),[]),i.createElement("group",e({ref:w},x))})),x=i.forwardRef(((t,r)=>i.useContext(g)?i.createElement(y,e({ref:r},t)):i.createElement(h,null,i.createElement(y,e({ref:r},t)))));exports.Cloud=x,exports.CloudInstance=y,exports.Clouds=h;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three");function u(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(t);exports.ComputedAttribute=({compute:t,name:u,...c})=>{const[a]=n.useState((()=>new r.BufferAttribute(new Float32Array(0),1))),i=n.useRef(null);return n.useLayoutEffect((()=>{if(i.current){var e;const r=null!==(e=i.current.parent)&&void 0!==e?e:i.current.__r3f.parent,u=t(r);i.current.copy(u)}}),[t]),n.createElement("primitive",e({ref:i,object:a,attach:`attributes-${u}`},c))};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),a=require("@react-three/fiber"),n=require("three-stdlib");function o(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var i=o(r),u=o(t);const l=i.forwardRef((({scale:r=10,frames:t=1/0,opacity:o=1,width:l=1,height:s=1,blur:c=1,near:d=0,far:f=10,resolution:h=512,smooth:m=!0,color:g="#000000",depthWrite:p=!1,renderOrder:v,...b},M)=>{const w=i.useRef(null),y=a.useThree((e=>e.scene)),T=a.useThree((e=>e.gl)),R=i.useRef(null);l*=Array.isArray(r)?r[0]:r||1,s*=Array.isArray(r)?r[1]:r||1;const[S,x,O,C,P,j,q]=i.useMemo((()=>{const e=new u.WebGLRenderTarget(h,h),r=new u.WebGLRenderTarget(h,h);r.texture.generateMipmaps=e.texture.generateMipmaps=!1;const t=new u.PlaneGeometry(l,s).rotateX(Math.PI/2),a=new u.Mesh(t),o=new u.MeshDepthMaterial;o.depthTest=o.depthWrite=!1,o.onBeforeCompile=e=>{e.uniforms={...e.uniforms,ucolor:{value:new u.Color(g)}},e.fragmentShader=e.fragmentShader.replace("void main() {","uniform vec3 ucolor;\n void main() {\n "),e.fragmentShader=e.fragmentShader.replace("vec4( vec3( 1.0 - fragCoordZ ), opacity );","vec4( ucolor * fragCoordZ * 2.0, ( 1.0 - fragCoordZ ) * 1.0 );")};const i=new u.ShaderMaterial(n.HorizontalBlurShader),c=new u.ShaderMaterial(n.VerticalBlurShader);return c.depthTest=i.depthTest=!1,[e,t,o,a,i,c,r]}),[h,l,s,r,g]),E=e=>{C.visible=!0,C.material=P,P.uniforms.tDiffuse.value=S.texture,P.uniforms.h.value=1*e/256,T.setRenderTarget(q),T.render(C,R.current),C.material=j,j.uniforms.tDiffuse.value=q.texture,j.uniforms.v.value=1*e/256,T.setRenderTarget(S),T.render(C,R.current),C.visible=!1};let W,k,A=0;return a.useFrame((()=>{R.current&&(t===1/0||A<t)&&(A++,W=y.background,k=y.overrideMaterial,w.current.visible=!1,y.background=null,y.overrideMaterial=O,T.setRenderTarget(S),T.render(y,R.current),E(c),m&&E(.4*c),T.setRenderTarget(null),w.current.visible=!0,y.overrideMaterial=k,y.background=W)})),i.useImperativeHandle(M,(()=>w.current),[]),i.createElement("group",e({"rotation-x":Math.PI/2},b,{ref:w}),i.createElement("mesh",{renderOrder:v,geometry:x,scale:[1,-1,1],rotation:[-Math.PI/2,0,0]},i.createElement("meshBasicMaterial",{transparent:!0,map:S.texture,opacity:o,depthWrite:p})),i.createElement("orthographicCamera",{ref:R,args:[-l/2,l/2,s/2,-s/2,d,f]}))}));exports.ContactShadows=l;
|
package/core/CubeCamera.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("three"),r=require("react"),t=require("@react-three/fiber");function n(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 u=n(e),a=n(r);function o({resolution:n=256,near:o=.1,far:c=1e3,envMap:f,fog:s}={}){const i=t.useThree((({gl:e})=>e)),l=t.useThree((({scene:e})=>e)),b=r.useMemo((()=>{const r=new e.WebGLCubeRenderTarget(n);return r.texture.type=e.HalfFloatType,r}),[n]);r.useEffect((()=>()=>{b.dispose()}),[b]);const p=r.useMemo((()=>new u.CubeCamera(o,c,b)),[o,c,b]);let g,m;const d=a.useCallback((()=>{g=l.fog,m=l.background,l.background=f||m,l.fog=s||g,p.update(i,l),l.fog=g,l.background=m}),[i,l,p]);return{fbo:b,camera:p,update:d}}exports.CubeCamera=function({children:e,frames:r=1/0,resolution:n,near:u,far:c,envMap:f,fog:s,...i}){const l=a.useRef(null),{fbo:b,camera:p,update:g}=o({resolution:n,near:u,far:c,envMap:f,fog:s});let m=0;return t.useFrame((()=>{l.current&&(r===1/0||m<r)&&(l.current.visible=!1,g(),l.current.visible=!0,m++)})),a.createElement("group",i,a.createElement("primitive",{object:p}),a.createElement("group",{ref:l},null==e?void 0:e(b.texture)))},exports.useCubeCamera=o;
|
package/core/CubeTexture.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("react"),r=require("three"),t=require("@react-three/fiber");function u(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var n=u(e);function a(e,{path:u}){const[n]=t.useLoader(r.CubeTextureLoader,[e],(e=>e.setPath(u)));return n}a.preload=(e,{path:u})=>t.useLoader.preload(r.CubeTextureLoader,[e],(e=>e.setPath(u))),exports.CubeTexture=function({children:e,files:r,...t}){const u=a(r,{...t});return n.createElement(n.Fragment,null,null==e?void 0:e(u))},exports.useCubeTexture=a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),n=require("./Line.cjs.js");function c(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("@react-three/fiber"),require("three-stdlib");var i=c(r);const o=i.forwardRef((function({start:r,end:c,midA:o,midB:u,segments:s=20,...a},f){const b=i.useMemo((()=>{const e=r instanceof t.Vector3?r:new t.Vector3(...r),n=c instanceof t.Vector3?c:new t.Vector3(...c),i=o instanceof t.Vector3?o:new t.Vector3(...o),a=u instanceof t.Vector3?u:new t.Vector3(...u);return new t.CubicBezierCurve3(e,i,a,n).getPoints(s)}),[r,c,o,u,s]);return i.createElement(n.Line,e({ref:f,points:b},a))}));exports.CubicBezierLine=o;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("react"),r=require("three"),t=require("@react-three/fiber"),u=require("three-stdlib");function n(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var c=n(e),a=n(r);const i=c.forwardRef((({children:e,curve:r},n)=>{const[i]=c.useState((()=>new a.Scene)),[l,o]=c.useState(),f=c.useRef();return c.useEffect((()=>{f.current=new u.Flow(i.children[0]),o(f.current.object3D)}),[e]),c.useEffect((()=>{var e;r&&(null==(e=f.current)||e.updateCurve(0,r))}),[r]),c.useImperativeHandle(n,(()=>({moveAlongCurve:e=>{var r;null==(r=f.current)||r.moveAlongCurve(e)}}))),c.createElement(c.Fragment,null,t.createPortal(e,i),l&&c.createElement("primitive",{object:l}))}));exports.CurveModifier=i;
|
package/core/Decal.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),n=require("@react-three/fiber"),o=require("three-stdlib");function a(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=a(r),s=a(t);function c(e=[0,0,0]){return function(e){return Array.isArray(e)}(e)?e:e instanceof s.Vector3||e instanceof s.Euler?[e.x,e.y,e.z]:[e,e,e]}const l=i.forwardRef((function({debug:r,depthTest:t=!1,polygonOffsetFactor:a=-10,map:l,mesh:u,children:p,position:f,rotation:m,scale:y,...d},h){const b=i.useRef(null);i.useImperativeHandle(h,(()=>b.current));const w=i.useRef(null);return i.useLayoutEffect((()=>{const e=(null==u?void 0:u.current)||b.current.parent,r=b.current;if(!(e instanceof s.Mesh))throw new Error('Decal must have a Mesh as parent or specify its "mesh" prop');const t={position:new s.Vector3,rotation:new s.Euler,scale:new s.Vector3(1,1,1)};if(e){n.applyProps(t,{position:f,scale:y});const a=e.matrixWorld.clone();if(e.matrixWorld.identity(),m&&"number"!=typeof m)n.applyProps(t,{rotation:m});else{const r=new s.Object3D;r.position.copy(t.position),r.lookAt(e.position),"number"==typeof m&&r.rotateZ(m),n.applyProps(t,{rotation:r.rotation})}return r.geometry=new o.DecalGeometry(e,t.position,t.rotation,t.scale),w.current&&(n.applyProps(w.current,t),w.current.traverse((e=>e.raycast=()=>null))),e.matrixWorld=a,()=>{r.geometry.dispose()}}}),[u,...c(f),...c(y),...c(m)]),i.createElement("mesh",e({ref:b,"material-transparent":!0,"material-polygonOffset":!0,"material-polygonOffsetFactor":a,"material-depthTest":t,"material-map":l},d),p,r&&i.createElement("mesh",{ref:w},i.createElement("boxGeometry",null),i.createElement("meshNormalMaterial",{wireframe:!0}),i.createElement("axesHelper",null)))}));exports.Decal=l;
|
package/core/Detailed.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber");function n(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 c=n(r);const u=c.forwardRef((({children:r,hysteresis:n=0,distances:u,...a},s)=>{const l=c.useRef(null);return c.useImperativeHandle(s,(()=>l.current),[]),c.useLayoutEffect((()=>{const{current:e}=l;e.levels.length=0,e.children.forEach(((r,t)=>e.levels.push({object:r,hysteresis:n,distance:u[t]})))})),t.useFrame((e=>{var r;return null==(r=l.current)?void 0:r.update(e.camera)})),c.createElement("lOD",e({ref:l},a),r)}));exports.Detailed=u;
|
package/core/DetectGPU.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("react"),t=require("detect-gpu"),r=require("suspend-react");function n(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);const u=e=>r.suspend((()=>t.getGPUTier(e)),["useDetectGPU"]);exports.DetectGPU=function({children:e,...t}){const r=u(t);return c.createElement(c.Fragment,null,null==e?void 0:e(r))},exports.useDetectGPU=u;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/extends"),r=require("@react-three/fiber"),t=require("react"),n=require("three-stdlib");function u(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 o=u(t);const c=o.forwardRef(((t,u)=>{const{camera:c,onChange:i,makeDefault:s,...l}=t,a=r.useThree((e=>e.camera)),f=r.useThree((e=>e.invalidate)),v=r.useThree((e=>e.get)),d=r.useThree((e=>e.set)),b=c||a,h=o.useMemo((()=>new n.DeviceOrientationControls(b)),[b]);return o.useEffect((()=>{const e=e=>{f(),i&&i(e)};return null==h||null==h.addEventListener||h.addEventListener("change",e),()=>null==h||null==h.removeEventListener?void 0:h.removeEventListener("change",e)}),[i,h,f]),r.useFrame((()=>null==h?void 0:h.update()),-1),o.useEffect((()=>{const e=h;return null==e||e.connect(),()=>null==e?void 0:e.dispose()}),[h]),o.useEffect((()=>{if(s){const e=v().controls;return d({controls:h}),()=>d({controls:e})}}),[s,h]),h?o.createElement("primitive",e({ref:u,object:h},l)):null}));exports.DeviceOrientationControls=c;
|
package/core/Edges.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),n=require("./Line.cjs.js");function u(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("@react-three/fiber"),require("three-stdlib");var s=u(r),c=u(t);const i=s.forwardRef((({threshold:r=15,geometry:t,...u},i)=>{const a=s.useRef(null);s.useImperativeHandle(i,(()=>a.current),[]);const o=s.useMemo((()=>[0,0,0,1,0,0]),[]),f=s.useRef(),l=s.useRef();return s.useLayoutEffect((()=>{const e=a.current.parent,n=null!=t?t:null==e?void 0:e.geometry;if(!n)return;if(f.current===n&&l.current===r)return;f.current=n,l.current=r;const u=new c.EdgesGeometry(n,r).attributes.position.array;a.current.geometry.setPositions(u),a.current.geometry.attributes.instanceStart.needsUpdate=!0,a.current.geometry.attributes.instanceEnd.needsUpdate=!0,a.current.computeLineDistances()})),s.createElement(n.Line,e({segments:!0,points:o,ref:a,raycast:()=>null},u))}));exports.Edges=i;
|
package/core/Effects.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),a=require("@react-three/fiber"),n=require("three-stdlib");function s(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 c=s(r);const l=c.forwardRef((({children:r,multisamping:s=8,renderIndex:l=1,disableRender:u,disableGamma:i,disableRenderPass:o,depthBuffer:d=!0,stencilBuffer:f=!1,anisotropy:p=1,encoding:h,type:m,...g},b)=>{c.useMemo((()=>a.extend({EffectComposer:n.EffectComposer,RenderPass:n.RenderPass,ShaderPass:n.ShaderPass})),[]);const y=c.useRef(null);c.useImperativeHandle(b,(()=>y.current),[]);const{scene:v,camera:E,gl:x,size:P,viewport:R}=a.useThree(),[w]=c.useState((()=>{const e=new t.WebGLRenderTarget(P.width,P.height,{type:m||t.HalfFloatType,format:t.RGBAFormat,depthBuffer:d,stencilBuffer:f,anisotropy:p});return m===t.UnsignedByteType&&null!=h&&("colorSpace"in e?e.texture.colorSpace=h:e.texture.encoding=h),e.samples=s,e}));c.useEffect((()=>{var e,r;null==(e=y.current)||e.setSize(P.width,P.height),null==(r=y.current)||r.setPixelRatio(R.dpr)}),[x,P,R.dpr]),a.useFrame((()=>{var e;u||null==(e=y.current)||e.render()}),l);const C=[];return o||C.push(c.createElement("renderPass",{key:"renderpass",attach:`passes-${C.length}`,args:[v,E]})),i||C.push(c.createElement("shaderPass",{attach:`passes-${C.length}`,key:"gammapass",args:[n.GammaCorrectionShader]})),c.Children.forEach(r,(e=>{e&&C.push(c.cloneElement(e,{key:C.length,attach:`passes-${C.length}`}))})),c.createElement("effectComposer",e({ref:y,args:[x,w]},g),C)}));exports.Effects=l,exports.isWebGL2Available=()=>{try{var e=document.createElement("canvas");return!(!window.WebGL2RenderingContext||!e.getContext("webgl2"))}catch(e){return!1}};
|
package/core/Effects.js
CHANGED
|
@@ -66,18 +66,18 @@ const Effects = /* @__PURE__ */React.forwardRef(({
|
|
|
66
66
|
if (!disableRender) (_composer$current3 = composer.current) == null || _composer$current3.render();
|
|
67
67
|
}, renderIndex);
|
|
68
68
|
const passes = [];
|
|
69
|
-
if (!disableRenderPass) passes.push(
|
|
69
|
+
if (!disableRenderPass) passes.push(/*#__PURE__*/React.createElement("renderPass", {
|
|
70
70
|
key: "renderpass",
|
|
71
71
|
attach: `passes-${passes.length}`,
|
|
72
72
|
args: [scene, camera]
|
|
73
73
|
}));
|
|
74
|
-
if (!disableGamma) passes.push(
|
|
74
|
+
if (!disableGamma) passes.push(/*#__PURE__*/React.createElement("shaderPass", {
|
|
75
75
|
attach: `passes-${passes.length}`,
|
|
76
76
|
key: "gammapass",
|
|
77
77
|
args: [GammaCorrectionShader]
|
|
78
78
|
}));
|
|
79
79
|
React.Children.forEach(children, el => {
|
|
80
|
-
el && passes.push(
|
|
80
|
+
el && passes.push(/*#__PURE__*/React.cloneElement(el, {
|
|
81
81
|
key: passes.length,
|
|
82
82
|
attach: `passes-${passes.length}`
|
|
83
83
|
}));
|