@takram/three-clouds 0.1.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.
Files changed (103) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/README.md +1130 -0
  3. package/assets/local_weather.png +0 -0
  4. package/assets/shape.bin +1 -0
  5. package/assets/shape_detail.bin +1 -0
  6. package/assets/turbulence.png +0 -0
  7. package/build/index.cjs +583 -0
  8. package/build/index.cjs.map +1 -0
  9. package/build/index.js +728 -0
  10. package/build/index.js.map +1 -0
  11. package/build/r3f.cjs +2 -0
  12. package/build/r3f.cjs.map +1 -0
  13. package/build/r3f.js +205 -0
  14. package/build/r3f.js.map +1 -0
  15. package/build/shared.cjs +2189 -0
  16. package/build/shared.cjs.map +1 -0
  17. package/build/shared.js +3825 -0
  18. package/build/shared.js.map +1 -0
  19. package/package.json +77 -0
  20. package/src/CascadedShadowMaps.ts +288 -0
  21. package/src/CloudLayer.ts +85 -0
  22. package/src/CloudLayers.test.ts +61 -0
  23. package/src/CloudLayers.ts +181 -0
  24. package/src/CloudShape.ts +22 -0
  25. package/src/CloudShapeDetail.ts +22 -0
  26. package/src/CloudsEffect.ts +810 -0
  27. package/src/CloudsMaterial.ts +467 -0
  28. package/src/CloudsPass.ts +285 -0
  29. package/src/CloudsResolveMaterial.ts +108 -0
  30. package/src/DensityProfile.ts +38 -0
  31. package/src/LocalWeather.ts +21 -0
  32. package/src/PassBase.ts +28 -0
  33. package/src/Procedural3DTexture.ts +94 -0
  34. package/src/ProceduralTexture.ts +94 -0
  35. package/src/ShaderArrayPass.ts +32 -0
  36. package/src/ShadowMaterial.ts +141 -0
  37. package/src/ShadowPass.ts +185 -0
  38. package/src/ShadowResolveMaterial.ts +72 -0
  39. package/src/Turbulence.ts +21 -0
  40. package/src/bayer.ts +23 -0
  41. package/src/constants.ts +8 -0
  42. package/src/helpers/FrustumCorners.ts +138 -0
  43. package/src/helpers/setArrayRenderTargetLayers.ts +32 -0
  44. package/src/helpers/splitFrustum.ts +59 -0
  45. package/src/index.ts +14 -0
  46. package/src/qualityPresets.ts +117 -0
  47. package/src/r3f/CloudLayer.tsx +95 -0
  48. package/src/r3f/CloudLayers.tsx +54 -0
  49. package/src/r3f/Clouds.tsx +278 -0
  50. package/src/r3f/index.ts +2 -0
  51. package/src/shaders/catmullRomSampling.glsl +113 -0
  52. package/src/shaders/cloudShape.frag +78 -0
  53. package/src/shaders/cloudShapeDetail.frag +56 -0
  54. package/src/shaders/clouds.frag +996 -0
  55. package/src/shaders/clouds.glsl +190 -0
  56. package/src/shaders/clouds.vert +69 -0
  57. package/src/shaders/cloudsEffect.frag +11 -0
  58. package/src/shaders/cloudsResolve.frag +202 -0
  59. package/src/shaders/cloudsResolve.vert +10 -0
  60. package/src/shaders/localWeather.frag +83 -0
  61. package/src/shaders/parameters.glsl +64 -0
  62. package/src/shaders/perlin.glsl +211 -0
  63. package/src/shaders/shadow.frag +197 -0
  64. package/src/shaders/shadow.vert +16 -0
  65. package/src/shaders/shadowResolve.frag +76 -0
  66. package/src/shaders/shadowResolve.vert +10 -0
  67. package/src/shaders/structuredSampling.glsl +101 -0
  68. package/src/shaders/tileableNoise.glsl +88 -0
  69. package/src/shaders/turbulence.frag +51 -0
  70. package/src/shaders/types.glsl +18 -0
  71. package/src/shaders/varianceClipping.glsl +114 -0
  72. package/src/uniforms.ts +218 -0
  73. package/types/CascadedShadowMaps.d.ts +52 -0
  74. package/types/CloudLayer.d.ts +26 -0
  75. package/types/CloudLayers.d.ts +21 -0
  76. package/types/CloudShape.d.ts +5 -0
  77. package/types/CloudShapeDetail.d.ts +5 -0
  78. package/types/CloudsEffect.d.ts +170 -0
  79. package/types/CloudsMaterial.d.ts +86 -0
  80. package/types/CloudsPass.d.ts +44 -0
  81. package/types/CloudsResolveMaterial.d.ts +30 -0
  82. package/types/DensityProfile.d.ts +12 -0
  83. package/types/LocalWeather.d.ts +5 -0
  84. package/types/PassBase.d.ts +14 -0
  85. package/types/Procedural3DTexture.d.ts +20 -0
  86. package/types/ProceduralTexture.d.ts +24 -0
  87. package/types/ShaderArrayPass.d.ts +7 -0
  88. package/types/ShadowMaterial.d.ts +34 -0
  89. package/types/ShadowPass.d.ts +34 -0
  90. package/types/ShadowResolveMaterial.d.ts +20 -0
  91. package/types/Turbulence.d.ts +5 -0
  92. package/types/bayer.d.ts +4 -0
  93. package/types/constants.d.ts +6 -0
  94. package/types/helpers/FrustumCorners.d.ts +18 -0
  95. package/types/helpers/setArrayRenderTargetLayers.d.ts +3 -0
  96. package/types/helpers/splitFrustum.d.ts +9 -0
  97. package/types/index.d.ts +13 -0
  98. package/types/qualityPresets.d.ts +46 -0
  99. package/types/r3f/CloudLayer.d.ts +7 -0
  100. package/types/r3f/CloudLayers.d.ts +15 -0
  101. package/types/r3f/Clouds.d.ts +16 -0
  102. package/types/r3f/index.d.ts +2 -0
  103. package/types/uniforms.d.ts +66 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/Procedural3DTexture.ts","../src/shaders/cloudShape.frag?raw","../src/shaders/perlin.glsl?raw","../src/shaders/tileableNoise.glsl?raw","../src/CloudShape.ts","../src/shaders/cloudShapeDetail.frag?raw","../src/CloudShapeDetail.ts","../src/ProceduralTexture.ts","../src/shaders/localWeather.frag?raw","../src/LocalWeather.ts","../src/shaders/turbulence.frag?raw","../src/Turbulence.ts"],"sourcesContent":null,"names":["Procedural3DTextureBase","size","fragmentShader","Camera","RawShaderMaterial","GLSL3","Uniform","Mesh","PlaneGeometry","WebGL3DRenderTarget","RedFormat","texture","LinearFilter","RepeatWrapping","NoColorSpace","renderer","deltaTime","renderTarget","layer","fragmentShader$3","perlin","tileableNoise","CloudShape","CLOUD_SHAPE_TEXTURE_SIZE","resolveIncludes","math","fragmentShader$2","CloudShapeDetail","CLOUD_SHAPE_DETAIL_TEXTURE_SIZE","ProceduralTextureBase","WebGLRenderTarget","RGBAFormat","LinearMipMapLinearFilter","fragmentShader$1","LocalWeather","Turbulence"],"mappings":";;;;;AAyBO,MAAMA,EAAuD;AAAA,EASlE,YAAY,EAAE,MAAAC,GAAM,gBAAAC,KAAqD;AAP3D,SAAA,cAAA,IAKG,KAAA,SAAS,IAAIC,EAAO,GAGnC,KAAK,OAAOF,GACP,KAAA,WAAW,IAAIG,EAAkB;AAAA,MACpC,aAAaC;AAAA,MACb;AAAA;AAAA,QAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQzB,gBAAAH;AAAA,MACA,UAAU;AAAA,QACR,OAAO,IAAII,EAAQ,CAAC;AAAA,MAAA;AAAA,IACtB,CACD,GACI,KAAA,OAAO,IAAIC,EAAK,IAAIC,EAAc,GAAG,CAAC,GAAG,KAAK,QAAQ,GAE3D,KAAK,eAAe,IAAIC,EAAoBR,GAAMA,GAAMA,GAAM;AAAA,MAC5D,aAAa;AAAA,MACb,eAAe;AAAA,MACf,QAAQS;AAAA,IAAA,CACT;AACK,UAAAC,IAAU,KAAK,aAAa;AAClC,IAAAA,EAAQ,YAAYC,GACpBD,EAAQ,YAAYC,GACpBD,EAAQ,QAAQE,GAChBF,EAAQ,QAAQE,GAChBF,EAAQ,QAAQE,GAChBF,EAAQ,aAAaG,GACrBH,EAAQ,cAAc;AAAA,EAAA;AAAA,EAGxB,UAAgB;AACd,SAAK,aAAa,QAAQ,GAC1B,KAAK,SAAS,QAAQ;AAAA,EAAA;AAAA,EAGxB,OAAOI,GAAyBC,GAA0B;AACpD,QAAA,CAAC,KAAK;AACR;AAEF,SAAK,cAAc;AAIb,UAAAC,IAAeF,EAAS,gBAAgB;AAC9C,aAASG,IAAQ,GAAGA,IAAQ,KAAK,MAAM,EAAEA;AACvC,WAAK,SAAS,SAAS,MAAM,QAAQA,IAAQ,KAAK,MACzCH,EAAA,gBAAgB,KAAK,cAAcG,CAAK,GACjDH,EAAS,OAAO,KAAK,MAAM,KAAK,MAAM;AAExC,IAAAA,EAAS,gBAAgBE,CAAY;AAAA,EAAA;AAAA,EAGvC,IAAI,UAAyB;AAC3B,WAAO,KAAK,aAAa;AAAA,EAAA;AAE7B;AC7FA,MAAeE,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAAC,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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"}
package/build/r3f.cjs ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("react/jsx-runtime"),m=require("@react-three/fiber"),P=require("@react-three/postprocessing"),t=require("react"),i=require("three"),g=require("@takram/three-atmosphere/r3f"),E=require("@takram/three-geospatial"),l=require("./shared.cjs"),A=t.createContext(null),W=({layers:e,disableDefault:o=!1,children:d})=>{const[a,f]=t.useState();return t.useLayoutEffect(()=>{e.set(o?Array(4).fill(l.CloudLayer.DEFAULT):l.CloudLayers.DEFAULT),f({layers:e,indexPool:[0,1,2,3],disableDefault:o})},[e,o]),a!=null&&y.jsx(A.Provider,{value:a,children:d})};function w(e,o){const[d,a]=t.useState(typeof e!="string"?e:null);return t.useEffect(()=>{if(typeof e=="string"){const f=new i.TextureLoader;(async()=>{const r=await f.loadAsync(e);r.minFilter=i.LinearMipMapLinearFilter,r.magFilter=i.LinearFilter,r.wrapS=i.RepeatWrapping,r.wrapT=i.RepeatWrapping,r.colorSpace=i.NoColorSpace,r.needsUpdate=!0,o.initTexture(r),a(r)})().catch(r=>{console.error(r)})}else a(e)},[e,o]),d}function D(e,o){const[d,a]=t.useState(typeof e!="string"?e:null);return t.useEffect(()=>{if(typeof e=="string"){const f=E.createData3DTextureLoaderClass(E.parseUint8Array,{width:o,height:o,depth:o,format:i.RedFormat,minFilter:i.LinearFilter,magFilter:i.LinearFilter,wrapS:i.RepeatWrapping,wrapT:i.RepeatWrapping,wrapR:i.RepeatWrapping,colorSpace:i.NoColorSpace}),r=new f;(async()=>{a(await r.loadAsync(e))})().catch(p=>{console.error(p)})}else a(e)},[e,o]),d}function j(e){const[o,d]=t.useState(typeof e!="string"?e:null);return t.useEffect(()=>{if(typeof e=="string"){const a=new E.STBNLoader;(async()=>{d(await a.loadAsync(e))})().catch(f=>{console.error(f)})}else d(e)},[e]),o}const I=t.forwardRef(function({disableDefaultLayers:o=!1,localWeatherTexture:d=l.DEFAULT_LOCAL_WEATHER_URL,shapeTexture:a=l.DEFAULT_SHAPE_URL,shapeDetailTexture:f=l.DEFAULT_SHAPE_DETAIL_URL,turbulenceTexture:r=l.DEFAULT_TURBULENCE_URL,stbnTexture:p=E.DEFAULT_STBN_URL,children:L,...c},h){const{textures:u,transientStates:s,...T}=t.useContext(g.AtmosphereContext),[U,F]=g.separateProps({...l.cloudsPassOptionsDefaults,...T,...u,...c}),n=t.useMemo(()=>new l.CloudsEffect,[]);t.useEffect(()=>()=>{n.dispose()},[n]),m.useFrame(()=>{s!=null&&(n.sunDirection.copy(s.sunDirection),n.ellipsoidCenter.copy(s.ellipsoidCenter),n.ellipsoidMatrix.copy(s.ellipsoidMatrix))}),t.useEffect(()=>{if(s!=null)return s.overlay=n.atmosphereOverlay,s.shadow=n.atmosphereShadow,s.shadowLength=n.atmosphereShadowLength,()=>{s.overlay=null,s.shadow=null,s.shadowLength=null}},[n,s]);const x=t.useCallback(C=>{if(s!=null)switch(C.property){case"atmosphereOverlay":s.overlay=n.atmosphereOverlay;break;case"atmosphereShadow":s.shadow=n.atmosphereShadow;break;case"atmosphereShadowLength":s.shadowLength=n.atmosphereShadowLength;break}},[n,s]);t.useEffect(()=>(n.events.addEventListener("change",x),()=>{n.events.removeEventListener("change",x)}),[n,x]);const S=m.useThree(({gl:C})=>C),_=w(d,S),v=D(a,l.CLOUD_SHAPE_TEXTURE_SIZE),R=D(f,l.CLOUD_SHAPE_DETAIL_TEXTURE_SIZE),b=w(r,S),O=j(p),{camera:q}=t.useContext(P.EffectComposerContext);return y.jsxs(y.Fragment,{children:[y.jsx("primitive",{ref:h,object:n,mainCamera:q,...U,localWeatherTexture:_,shapeTexture:v,shapeDetailTexture:R,turbulenceTexture:b,stbnTexture:O,...F}),y.jsx(W,{layers:n.cloudLayers,disableDefault:o,children:L})]})}),M=t.forwardRef(function({index:o,...d},a){const f=t.useContext(A);if(f==null)throw new Error("CloudLayer can only be used within the Clouds component!");const{layers:r,indexPool:p,disableDefault:L}=f,[c,h]=t.useState();if(t.useLayoutEffect(()=>{if(o!=null){const u=p.indexOf(o);if(u!==-1)return p.splice(u,1),h(o),()=>{p.push(o),h(void 0)}}else{const u=p.sort((s,T)=>s-T).shift();if(u!=null)return h(u),()=>{p.push(u),h(void 0)}}},[o,r,p]),t.useLayoutEffect(()=>{if(c==null)return;const u=r[c];return()=>{u.copy(L?l.CloudLayer.DEFAULT:l.CloudLayers.DEFAULT[c])}},[r,c,L]),t.useEffect(()=>{c!=null&&(typeof a=="function"?a(r[c]):a!=null&&(a.current=r[c]))},[a,r,c]),c!=null){const u=r[c];u.copy(L?l.CloudLayer.DEFAULT:l.CloudLayers.DEFAULT[c]),u.set(d)}return null});exports.CloudLayer=M;exports.Clouds=I;
2
+ //# sourceMappingURL=r3f.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"r3f.cjs","sources":["../src/r3f/CloudLayers.tsx","../src/r3f/Clouds.tsx","../src/r3f/CloudLayer.tsx"],"sourcesContent":null,"names":["CloudLayersContext","CloudLayers","layers","disableDefault","children","context","setContext","useState","useLayoutEffect","CloudLayer","CloudLayersImpl","jsx","useTextureState","input","gl","data","setData","useEffect","loader","TextureLoader","texture","LinearMipMapLinearFilter","LinearFilter","RepeatWrapping","NoColorSpace","error","use3DTextureState","size","Loader","createData3DTextureLoaderClass","parseUint8Array","RedFormat","useSTBNTextureState","STBNLoader","Clouds","forwardRef","disableDefaultLayers","localWeatherTextureProp","DEFAULT_LOCAL_WEATHER_URL","shapeTextureProp","DEFAULT_SHAPE_URL","shapeDetailTextureProp","DEFAULT_SHAPE_DETAIL_URL","turbulenceTextureProp","DEFAULT_TURBULENCE_URL","stbnTextureProp","DEFAULT_STBN_URL","props","forwardedRef","textures","transientStates","contextProps","useContext","AtmosphereContext","atmosphereParameters","others","separateProps","cloudsPassOptionsDefaults","effect","useMemo","CloudsEffect","useFrame","handleChange","useCallback","event","useThree","localWeatherTexture","shapeTexture","CLOUD_SHAPE_TEXTURE_SIZE","shapeDetailTexture","CLOUD_SHAPE_DETAIL_TEXTURE_SIZE","turbulenceTexture","stbnTexture","camera","EffectComposerContext","jsxs","Fragment","indexProp","indexPool","index","setIndex","poolIndex","a","b","layer","CloudLayerImpl"],"mappings":"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"}
package/build/r3f.js ADDED
@@ -0,0 +1,205 @@
1
+ import { jsx as x, jsxs as k, Fragment as B } from "react/jsx-runtime";
2
+ import { useFrame as W, useThree as j } from "@react-three/fiber";
3
+ import { EffectComposerContext as X } from "@react-three/postprocessing";
4
+ import { createContext as Z, useState as L, useLayoutEffect as E, forwardRef as F, useContext as C, useMemo as $, useEffect as h, useCallback as q } from "react";
5
+ import { TextureLoader as G, LinearMipMapLinearFilter as J, LinearFilter as D, RepeatWrapping as f, NoColorSpace as _, RedFormat as K } from "three";
6
+ import { AtmosphereContext as Q, separateProps as V } from "@takram/three-atmosphere/r3f";
7
+ import { DEFAULT_STBN_URL as Y, createData3DTextureLoaderClass as z, parseUint8Array as ee, STBNLoader as te } from "@takram/three-geospatial";
8
+ import { c as w, b as A, d as re, e as oe, D as ae, f as se, g as ne, h as le, a as ce, C as ue } from "./shared.js";
9
+ const v = /* @__PURE__ */ Z(null), ie = ({
10
+ layers: e,
11
+ disableDefault: r = !1,
12
+ children: c
13
+ }) => {
14
+ const [a, u] = L();
15
+ return E(() => {
16
+ e.set(
17
+ r ? Array(4).fill(A.DEFAULT) : w.DEFAULT
18
+ ), u({
19
+ layers: e,
20
+ indexPool: [0, 1, 2, 3],
21
+ disableDefault: r
22
+ });
23
+ }, [e, r]), a != null && /* @__PURE__ */ x(v.Provider, { value: a, children: c });
24
+ };
25
+ function U(e, r) {
26
+ const [c, a] = L(typeof e != "string" ? e : null);
27
+ return h(() => {
28
+ if (typeof e == "string") {
29
+ const u = new G();
30
+ (async () => {
31
+ const t = await u.loadAsync(e);
32
+ t.minFilter = J, t.magFilter = D, t.wrapS = f, t.wrapT = f, t.colorSpace = _, t.needsUpdate = !0, r.initTexture(t), a(t);
33
+ })().catch((t) => {
34
+ console.error(t);
35
+ });
36
+ } else
37
+ a(e);
38
+ }, [e, r]), c;
39
+ }
40
+ function g(e, r) {
41
+ const [c, a] = L(typeof e != "string" ? e : null);
42
+ return h(() => {
43
+ if (typeof e == "string") {
44
+ const u = z(ee, {
45
+ width: r,
46
+ height: r,
47
+ depth: r,
48
+ format: K,
49
+ minFilter: D,
50
+ magFilter: D,
51
+ wrapS: f,
52
+ wrapT: f,
53
+ wrapR: f,
54
+ colorSpace: _
55
+ }), t = new u();
56
+ (async () => {
57
+ a(await t.loadAsync(e));
58
+ })().catch((i) => {
59
+ console.error(i);
60
+ });
61
+ } else
62
+ a(e);
63
+ }, [e, r]), c;
64
+ }
65
+ function he(e) {
66
+ const [r, c] = L(typeof e != "string" ? e : null);
67
+ return h(() => {
68
+ if (typeof e == "string") {
69
+ const a = new te();
70
+ (async () => {
71
+ c(await a.loadAsync(e));
72
+ })().catch((u) => {
73
+ console.error(u);
74
+ });
75
+ } else
76
+ c(e);
77
+ }, [e]), r;
78
+ }
79
+ const Ee = /* @__PURE__ */ F(
80
+ function({
81
+ disableDefaultLayers: r = !1,
82
+ localWeatherTexture: c = ae,
83
+ shapeTexture: a = se,
84
+ shapeDetailTexture: u = ne,
85
+ turbulenceTexture: t = le,
86
+ stbnTexture: i = Y,
87
+ children: p,
88
+ ...n
89
+ }, d) {
90
+ const { textures: l, transientStates: o, ...m } = C(Q), [b, R] = V({
91
+ ...re,
92
+ ...m,
93
+ ...l,
94
+ ...n
95
+ }), s = $(() => new oe(), []);
96
+ h(() => () => {
97
+ s.dispose();
98
+ }, [s]), W(() => {
99
+ o != null && (s.sunDirection.copy(o.sunDirection), s.ellipsoidCenter.copy(o.ellipsoidCenter), s.ellipsoidMatrix.copy(o.ellipsoidMatrix));
100
+ }), h(() => {
101
+ if (o != null)
102
+ return o.overlay = s.atmosphereOverlay, o.shadow = s.atmosphereShadow, o.shadowLength = s.atmosphereShadowLength, () => {
103
+ o.overlay = null, o.shadow = null, o.shadowLength = null;
104
+ };
105
+ }, [s, o]);
106
+ const T = q(
107
+ (y) => {
108
+ if (o != null)
109
+ switch (y.property) {
110
+ case "atmosphereOverlay":
111
+ o.overlay = s.atmosphereOverlay;
112
+ break;
113
+ case "atmosphereShadow":
114
+ o.shadow = s.atmosphereShadow;
115
+ break;
116
+ case "atmosphereShadowLength":
117
+ o.shadowLength = s.atmosphereShadowLength;
118
+ break;
119
+ }
120
+ },
121
+ [s, o]
122
+ );
123
+ h(() => (s.events.addEventListener("change", T), () => {
124
+ s.events.removeEventListener("change", T);
125
+ }), [s, T]);
126
+ const S = j(({ gl: y }) => y), O = U(c, S), P = g(
127
+ a,
128
+ ue
129
+ ), I = g(
130
+ u,
131
+ ce
132
+ ), H = U(t, S), M = he(i), { camera: N } = C(X);
133
+ return /* @__PURE__ */ k(B, { children: [
134
+ /* @__PURE__ */ x(
135
+ "primitive",
136
+ {
137
+ ref: d,
138
+ object: s,
139
+ mainCamera: N,
140
+ ...b,
141
+ localWeatherTexture: O,
142
+ shapeTexture: P,
143
+ shapeDetailTexture: I,
144
+ turbulenceTexture: H,
145
+ stbnTexture: M,
146
+ ...R
147
+ }
148
+ ),
149
+ /* @__PURE__ */ x(
150
+ ie,
151
+ {
152
+ layers: s.cloudLayers,
153
+ disableDefault: r,
154
+ children: p
155
+ }
156
+ )
157
+ ] });
158
+ }
159
+ ), Ce = F(
160
+ function({ index: r, ...c }, a) {
161
+ const u = C(v);
162
+ if (u == null)
163
+ throw new Error(
164
+ "CloudLayer can only be used within the Clouds component!"
165
+ );
166
+ const { layers: t, indexPool: i, disableDefault: p } = u, [n, d] = L();
167
+ if (E(() => {
168
+ if (r != null) {
169
+ const l = i.indexOf(r);
170
+ if (l !== -1)
171
+ return i.splice(l, 1), d(r), () => {
172
+ i.push(r), d(void 0);
173
+ };
174
+ } else {
175
+ const l = i.sort((o, m) => o - m).shift();
176
+ if (l != null)
177
+ return d(l), () => {
178
+ i.push(l), d(void 0);
179
+ };
180
+ }
181
+ }, [r, t, i]), E(() => {
182
+ if (n == null)
183
+ return;
184
+ const l = t[n];
185
+ return () => {
186
+ l.copy(
187
+ p ? A.DEFAULT : w.DEFAULT[n]
188
+ );
189
+ };
190
+ }, [t, n, p]), h(() => {
191
+ n != null && (typeof a == "function" ? a(t[n]) : a != null && (a.current = t[n]));
192
+ }, [a, t, n]), n != null) {
193
+ const l = t[n];
194
+ l.copy(
195
+ p ? A.DEFAULT : w.DEFAULT[n]
196
+ ), l.set(c);
197
+ }
198
+ return null;
199
+ }
200
+ );
201
+ export {
202
+ Ce as CloudLayer,
203
+ Ee as Clouds
204
+ };
205
+ //# sourceMappingURL=r3f.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"r3f.js","sources":["../src/r3f/CloudLayers.tsx","../src/r3f/Clouds.tsx","../src/r3f/CloudLayer.tsx"],"sourcesContent":null,"names":["CloudLayersContext","CloudLayers","layers","disableDefault","children","context","setContext","useState","useLayoutEffect","CloudLayer","CloudLayersImpl","jsx","useTextureState","input","gl","data","setData","useEffect","loader","TextureLoader","texture","LinearMipMapLinearFilter","LinearFilter","RepeatWrapping","NoColorSpace","error","use3DTextureState","size","Loader","createData3DTextureLoaderClass","parseUint8Array","RedFormat","useSTBNTextureState","STBNLoader","Clouds","forwardRef","disableDefaultLayers","localWeatherTextureProp","DEFAULT_LOCAL_WEATHER_URL","shapeTextureProp","DEFAULT_SHAPE_URL","shapeDetailTextureProp","DEFAULT_SHAPE_DETAIL_URL","turbulenceTextureProp","DEFAULT_TURBULENCE_URL","stbnTextureProp","DEFAULT_STBN_URL","props","forwardedRef","textures","transientStates","contextProps","useContext","AtmosphereContext","atmosphereParameters","others","separateProps","cloudsPassOptionsDefaults","effect","useMemo","CloudsEffect","useFrame","handleChange","useCallback","event","useThree","localWeatherTexture","shapeTexture","CLOUD_SHAPE_TEXTURE_SIZE","shapeDetailTexture","CLOUD_SHAPE_DETAIL_TEXTURE_SIZE","turbulenceTexture","stbnTexture","camera","EffectComposerContext","jsxs","Fragment","indexProp","indexPool","index","setIndex","poolIndex","a","b","layer","CloudLayerImpl"],"mappings":"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"}