@takram/three-clouds 0.5.0 → 0.5.1
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/CHANGELOG.md +7 -0
- package/README.md +8 -8
- package/build/index.cjs +5 -5
- package/build/index.cjs.map +1 -1
- package/build/index.js +24 -12
- package/build/index.js.map +1 -1
- package/build/shared.cjs +16 -16
- package/build/shared.cjs.map +1 -1
- package/build/shared.js +728 -624
- package/build/shared.js.map +1 -1
- package/package.json +8 -8
- package/src/CloudsMaterial.ts +7 -12
- package/src/CloudsResolveMaterial.ts +1 -1
- package/src/PassBase.ts +2 -2
- package/src/ShadowPass.ts +1 -1
- package/src/helpers/FrustumCorners.ts +0 -6
- package/types/CloudsMaterial.d.ts +0 -5
- package/types/helpers/FrustumCorners.d.ts +0 -5
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -199,7 +199,7 @@ This illustrates that greater total cloud layer height increases computational c
|
|
|
199
199
|
|
|
200
200
|
- A large portion of weather sampling is wasted simply checking whether it is outside the cloud shell. However, since we already know the front depth and sample count at the texel from the reprojected previous frame, using this information to better estimate the ray marching range would make it much more efficient.
|
|
201
201
|
|
|
202
|
-
- Compute light shafts of the scene objects (possibly in the [atmosphere package](../atmosphere)). Implementing this would require an additional depth pass to render the scene as seen from the sun, which is too expensive unless shadow map is already in use. It may provide a partial solution to project the main camera
|
|
202
|
+
- Compute light shafts of the scene objects (possibly in the [atmosphere package](../atmosphere)). Implementing this would require an additional depth pass to render the scene as seen from the sun, which is too expensive unless shadow map is already in use. It may provide a partial solution to project the main camera's depth onto the sun's view.
|
|
203
203
|
|
|
204
204
|
### Planned features
|
|
205
205
|
|
|
@@ -477,7 +477,7 @@ Specifies whether this cloud layer should be included in BSM.
|
|
|
477
477
|
|
|
478
478
|
A post-processing effect that renders volumetric clouds. Although it is an effect and can render as a standalone, it is primarily intended to render clouds into buffers and then composited in `AerialPerspectiveEffect`.
|
|
479
479
|
|
|
480
|
-
This is for use with the [`postprocessing`](https://github.com/pmndrs/postprocessing)
|
|
480
|
+
This is for use with the [`postprocessing`](https://github.com/pmndrs/postprocessing)'s `EffectComposer` and is not compatible with the one in Three.js examples.
|
|
481
481
|
|
|
482
482
|
→ [Source](/packages/clouds/src/CloudsEffect.ts)
|
|
483
483
|
|
|
@@ -489,7 +489,7 @@ Nothing novel here, just a combination of existing techniques. See the [referenc
|
|
|
489
489
|
|
|
490
490
|
- **Shadow**
|
|
491
491
|
|
|
492
|
-
Performs ray marching in the sun
|
|
492
|
+
Performs ray marching in the sun's orthographic projection and outputs the necessary values for computing the optical depth of the clouds (BSM) during the main camera's ray marching.
|
|
493
493
|
|
|
494
494
|
→ [Shader](/packages/clouds/src/shaders/shadow.frag)
|
|
495
495
|
|
|
@@ -521,7 +521,7 @@ Nothing novel here, just a combination of existing techniques. See the [referenc
|
|
|
521
521
|
|
|
522
522
|
### Parameters
|
|
523
523
|
|
|
524
|
-
The number of parameters might seem overwhelming at first, but they provide fine control as needed. To get started, try adjusting [`qualityPreset`](#qualitypreset), [`coverage`](#coverage), cloud layer
|
|
524
|
+
The number of parameters might seem overwhelming at first, but they provide fine control as needed. To get started, try adjusting [`qualityPreset`](#qualitypreset), [`coverage`](#coverage), cloud layer's [`altitude`](#altitude), and [`height`](#height) to suit your needs. You can also experiment with the parameters in the [Basic story](https://takram-design-engineering.github.io/three-geospatial/?path=/story/clouds-clouds--basic).
|
|
525
525
|
|
|
526
526
|
- [Rendering](#rendering)
|
|
527
527
|
- [Cloud layers](#cloud-layers)
|
|
@@ -796,7 +796,7 @@ The resolution of each cascade in the shadow map.
|
|
|
796
796
|
maxFar: number | null = null
|
|
797
797
|
```
|
|
798
798
|
|
|
799
|
-
The maximum far plane distance for rendering shadows within the main camera
|
|
799
|
+
The maximum far plane distance for rendering shadows within the main camera's frustum. This limits the main camera's frustum: shadows beyond this distance are not rendered, and setting a value larger than the main camera's far plane has no effect.
|
|
800
800
|
|
|
801
801
|
#### shadow.farScale
|
|
802
802
|
|
|
@@ -804,7 +804,7 @@ The maximum far plane distance for rendering shadows within the main camera’s
|
|
|
804
804
|
farScale: number = 1
|
|
805
805
|
```
|
|
806
806
|
|
|
807
|
-
A scale factor for the main camera
|
|
807
|
+
A scale factor for the main camera's far plane. This is useful when the far plane extends to a point like the horizon occlusion point, even though shadows do not need to be rendered that far. The resulting value is also limited by `shadow.maxFar`.
|
|
808
808
|
|
|
809
809
|
#### shadow.splitMode, shadow.splitLambda
|
|
810
810
|
|
|
@@ -813,7 +813,7 @@ splitMode: 'uniform' | 'logarithmic' | 'practical' = 'practical'
|
|
|
813
813
|
splitLambda: number = 0.6
|
|
814
814
|
```
|
|
815
815
|
|
|
816
|
-
Controls [how the main camera
|
|
816
|
+
Controls [how the main camera's frustum is split](https://developer.nvidia.com/gpugems/gpugems3/part-ii-light-and-shadows/chapter-10-parallel-split-shadow-maps-programmable-gpus). `splitLambda` is only applicable when `splitMode` is set to `practical`.
|
|
817
817
|
|
|
818
818
|
### Advanced clouds parameters
|
|
819
819
|
|
|
@@ -839,7 +839,7 @@ Whether to sample sun and sky irradiance at every sample point during ray marchi
|
|
|
839
839
|
accuratePhaseFunction: boolean = false
|
|
840
840
|
```
|
|
841
841
|
|
|
842
|
-
Whether to use a [numerically-fitted Mie phase function](https://research.nvidia.com/labs/rtr/approximate-mie/) for large particles (d = 10 μm) instead of the dual-lobe Henyey-Greenstein phase function. However, it won
|
|
842
|
+
Whether to use a [numerically-fitted Mie phase function](https://research.nvidia.com/labs/rtr/approximate-mie/) for large particles (d = 10 μm) instead of the dual-lobe Henyey-Greenstein phase function. However, it won't be plausible without a more precise computation of multiple scattering.
|
|
843
843
|
|
|
844
844
|
#### clouds.maxIterationCount
|
|
845
845
|
|
package/build/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./shared.cjs"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./shared.cjs"),a=require("@takram/three-geospatial"),c=require("@takram/three-geospatial/shaders"),n=require("three");class g{size;needsRender=!0;material;mesh;renderTarget;camera=new n.Camera;constructor({size:t,fragmentShader:r}){this.size=t,this.material=new n.RawShaderMaterial({glslVersion:n.GLSL3,vertexShader:`
|
|
2
2
|
in vec3 position;
|
|
3
3
|
out vec2 vUv;
|
|
4
4
|
void main() {
|
|
@@ -382,7 +382,7 @@ float getPerlinNoise(const vec3 point, const vec3 frequency, const int octaveCou
|
|
|
382
382
|
float getPerlinNoise(const vec3 point, const float frequency, const int octaveCount) {
|
|
383
383
|
return getPerlinNoise(point, vec3(frequency), octaveCount);
|
|
384
384
|
}
|
|
385
|
-
`;class u extends g{constructor(){super({size:o.CLOUD_SHAPE_TEXTURE_SIZE,fragmentShader:
|
|
385
|
+
`;class u extends g{constructor(){super({size:o.CLOUD_SHAPE_TEXTURE_SIZE,fragmentShader:a.resolveIncludes(p,{core:{math:c.math},perlin:s,tileableNoise:l})})}}const v=`// Based on the following work with slight modifications.
|
|
386
386
|
// https://github.com/sebh/TileableVolumeNoise
|
|
387
387
|
|
|
388
388
|
/**
|
|
@@ -438,7 +438,7 @@ void main() {
|
|
|
438
438
|
);
|
|
439
439
|
outputColor = dot(fbm, vec3(0.625, 0.25, 0.125));
|
|
440
440
|
}
|
|
441
|
-
`;class d extends g{constructor(){super({size:o.CLOUD_SHAPE_DETAIL_TEXTURE_SIZE,fragmentShader:
|
|
441
|
+
`;class d extends g{constructor(){super({size:o.CLOUD_SHAPE_DETAIL_TEXTURE_SIZE,fragmentShader:a.resolveIncludes(v,{core:{math:c.math},perlin:s,tileableNoise:l})})}}class f{size;needsRender=!0;material;mesh;renderTarget;camera=new n.Camera;constructor({size:t,fragmentShader:r}){this.size=t,this.material=new n.RawShaderMaterial({glslVersion:n.GLSL3,vertexShader:`
|
|
442
442
|
in vec3 position;
|
|
443
443
|
out vec2 vUv;
|
|
444
444
|
void main() {
|
|
@@ -528,7 +528,7 @@ void main() {
|
|
|
528
528
|
|
|
529
529
|
outputColor.a = 1.0;
|
|
530
530
|
}
|
|
531
|
-
`;class T extends f{constructor(){super({size:512,fragmentShader:
|
|
531
|
+
`;class T extends f{constructor(){super({size:512,fragmentShader:a.resolveIncludes(y,{core:{math:c.math},perlin:s,tileableNoise:l})})}}const h=`precision highp float;
|
|
532
532
|
precision highp int;
|
|
533
533
|
|
|
534
534
|
#include "core/math"
|
|
@@ -579,5 +579,5 @@ void main() {
|
|
|
579
579
|
outputColor.rgb = 0.5 * curl(point) + 0.5;
|
|
580
580
|
outputColor.a = 1.0;
|
|
581
581
|
}
|
|
582
|
-
`;class E extends f{constructor(){super({size:128,fragmentShader:
|
|
582
|
+
`;class E extends f{constructor(){super({size:128,fragmentShader:a.resolveIncludes(h,{core:{math:c.math},perlin:s,tileableNoise:l})})}}exports.CLOUD_SHAPE_DETAIL_TEXTURE_SIZE=o.CLOUD_SHAPE_DETAIL_TEXTURE_SIZE;exports.CLOUD_SHAPE_TEXTURE_SIZE=o.CLOUD_SHAPE_TEXTURE_SIZE;exports.CloudLayer=o.CloudLayer;exports.CloudLayers=o.CloudLayers;exports.CloudsEffect=o.CloudsEffect;exports.DEFAULT_LOCAL_WEATHER_URL=o.DEFAULT_LOCAL_WEATHER_URL;exports.DEFAULT_SHAPE_DETAIL_URL=o.DEFAULT_SHAPE_DETAIL_URL;exports.DEFAULT_SHAPE_URL=o.DEFAULT_SHAPE_URL;exports.DEFAULT_TURBULENCE_URL=o.DEFAULT_TURBULENCE_URL;exports.DensityProfile=o.DensityProfile;exports.cloudsPassOptionsDefaults=o.cloudsPassOptionsDefaults;exports.CloudShape=u;exports.CloudShapeDetail=d;exports.LocalWeather=T;exports.Procedural3DTextureBase=g;exports.ProceduralTextureBase=f;exports.Turbulence=E;
|
|
583
583
|
//# sourceMappingURL=index.cjs.map
|
package/build/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","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","
|
|
1
|
+
{"version":3,"file":"index.cjs","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","Camera","size","fragmentShader","RawShaderMaterial","GLSL3","Uniform","Mesh","PlaneGeometry","WebGL3DRenderTarget","RedFormat","texture","LinearFilter","RepeatWrapping","NoColorSpace","renderer","deltaTime","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":"uNAyBO,MAAMA,CAAuD,CACzD,KACT,YAAc,GAEG,SACA,KACA,aACA,OAAS,IAAIC,EAAAA,OAE9B,YAAY,CAAE,KAAAC,EAAM,eAAAC,GAAqD,CACvE,KAAK,KAAOD,EACZ,KAAK,SAAW,IAAIE,oBAAkB,CACpC,YAAaC,EAAAA,MACb,aAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAQzB,eAAAF,EACA,SAAU,CACR,MAAO,IAAIG,EAAAA,QAAQ,CAAC,CAAA,CACtB,CACD,EACD,KAAK,KAAO,IAAIC,EAAAA,KAAK,IAAIC,EAAAA,cAAc,EAAG,CAAC,EAAG,KAAK,QAAQ,EAE3D,KAAK,aAAe,IAAIC,EAAAA,oBAAoBP,EAAMA,EAAMA,EAAM,CAC5D,YAAa,GACb,OAAQQ,EAAAA,SAAA,CACT,EACD,MAAMC,EAAU,KAAK,aAAa,QAClCA,EAAQ,UAAYC,EAAAA,aACpBD,EAAQ,UAAYC,EAAAA,aACpBD,EAAQ,MAAQE,EAAAA,eAChBF,EAAQ,MAAQE,EAAAA,eAChBF,EAAQ,MAAQE,EAAAA,eAChBF,EAAQ,WAAaG,EAAAA,aACrBH,EAAQ,YAAc,EACxB,CAEA,SAAgB,CACd,KAAK,aAAa,QAAA,EAClB,KAAK,SAAS,QAAA,CAChB,CAEA,OAAOI,EAAyBC,EAA0B,CACxD,GAAK,KAAK,YAGV,MAAK,YAAc,GAInB,QAASC,EAAQ,EAAGA,EAAQ,KAAK,KAAM,EAAEA,EACvC,KAAK,SAAS,SAAS,MAAM,MAAQA,EAAQ,KAAK,KAClDF,EAAS,gBAAgB,KAAK,aAAcE,CAAK,EACjDF,EAAS,OAAO,KAAK,KAAM,KAAK,MAAM,EAExCA,EAAS,gBAAgB,IAAI,EAC/B,CAEA,IAAI,SAAyB,CAC3B,OAAO,KAAK,aAAa,OAC3B,CACF,CC3FA,MAAAG,EAAe;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,ECAfC,EAAe;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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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"}
|
package/build/index.js
CHANGED
|
@@ -4,8 +4,14 @@ import { resolveIncludes as r } from "@takram/three-geospatial";
|
|
|
4
4
|
import { math as c } from "@takram/three-geospatial/shaders";
|
|
5
5
|
import { Camera as g, RawShaderMaterial as f, Uniform as p, GLSL3 as v, Mesh as u, PlaneGeometry as y, WebGL3DRenderTarget as E, RedFormat as I, LinearFilter as l, RepeatWrapping as i, NoColorSpace as d, WebGLRenderTarget as R, RGBAFormat as x, LinearMipMapLinearFilter as O } from "three";
|
|
6
6
|
class T {
|
|
7
|
+
size;
|
|
8
|
+
needsRender = !0;
|
|
9
|
+
material;
|
|
10
|
+
mesh;
|
|
11
|
+
renderTarget;
|
|
12
|
+
camera = new g();
|
|
7
13
|
constructor({ size: e, fragmentShader: o }) {
|
|
8
|
-
this.
|
|
14
|
+
this.size = e, this.material = new f({
|
|
9
15
|
glslVersion: v,
|
|
10
16
|
vertexShader: (
|
|
11
17
|
/* glsl */
|
|
@@ -122,7 +128,7 @@ void main() {
|
|
|
122
128
|
float worleyFbm = getWorleyFbm(point);
|
|
123
129
|
outputColor = remap(perlinWorley, worleyFbm - 1.0, 1.0);
|
|
124
130
|
}
|
|
125
|
-
`,
|
|
131
|
+
`, a = `// Ported from GLM: https://github.com/g-truc/glm/blob/master/glm/gtc/noise.inl
|
|
126
132
|
|
|
127
133
|
/**
|
|
128
134
|
* OpenGL Mathematics (GLM)
|
|
@@ -333,7 +339,7 @@ float perlin(const vec4 position, const vec4 rep) {
|
|
|
333
339
|
float n_xyzw = mix(n_yzw.x, n_yzw.y, fade_xyzw.x);
|
|
334
340
|
return 2.2 * n_xyzw;
|
|
335
341
|
}
|
|
336
|
-
`,
|
|
342
|
+
`, s = `// Based on the following work with slight modifications.
|
|
337
343
|
// https://github.com/sebh/TileableVolumeNoise
|
|
338
344
|
|
|
339
345
|
/**
|
|
@@ -428,8 +434,8 @@ class b extends T {
|
|
|
428
434
|
size: m,
|
|
429
435
|
fragmentShader: r(N, {
|
|
430
436
|
core: { math: c },
|
|
431
|
-
perlin:
|
|
432
|
-
tileableNoise:
|
|
437
|
+
perlin: a,
|
|
438
|
+
tileableNoise: s
|
|
433
439
|
})
|
|
434
440
|
});
|
|
435
441
|
}
|
|
@@ -497,15 +503,21 @@ class F extends T {
|
|
|
497
503
|
size: w,
|
|
498
504
|
fragmentShader: r(S, {
|
|
499
505
|
core: { math: c },
|
|
500
|
-
perlin:
|
|
501
|
-
tileableNoise:
|
|
506
|
+
perlin: a,
|
|
507
|
+
tileableNoise: s
|
|
502
508
|
})
|
|
503
509
|
});
|
|
504
510
|
}
|
|
505
511
|
}
|
|
506
512
|
class h {
|
|
513
|
+
size;
|
|
514
|
+
needsRender = !0;
|
|
515
|
+
material;
|
|
516
|
+
mesh;
|
|
517
|
+
renderTarget;
|
|
518
|
+
camera = new g();
|
|
507
519
|
constructor({ size: e, fragmentShader: o }) {
|
|
508
|
-
this.
|
|
520
|
+
this.size = e, this.material = new f({
|
|
509
521
|
glslVersion: v,
|
|
510
522
|
vertexShader: (
|
|
511
523
|
/* glsl */
|
|
@@ -629,8 +641,8 @@ class U extends h {
|
|
|
629
641
|
size: 512,
|
|
630
642
|
fragmentShader: r(A, {
|
|
631
643
|
core: { math: c },
|
|
632
|
-
perlin:
|
|
633
|
-
tileableNoise:
|
|
644
|
+
perlin: a,
|
|
645
|
+
tileableNoise: s
|
|
634
646
|
})
|
|
635
647
|
});
|
|
636
648
|
}
|
|
@@ -693,8 +705,8 @@ class W extends h {
|
|
|
693
705
|
size: 128,
|
|
694
706
|
fragmentShader: r(P, {
|
|
695
707
|
core: { math: c },
|
|
696
|
-
perlin:
|
|
697
|
-
tileableNoise:
|
|
708
|
+
perlin: a,
|
|
709
|
+
tileableNoise: s
|
|
698
710
|
})
|
|
699
711
|
});
|
|
700
712
|
}
|
package/build/index.js.map
CHANGED
|
@@ -1 +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","
|
|
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","Camera","size","fragmentShader","RawShaderMaterial","GLSL3","Uniform","Mesh","PlaneGeometry","WebGL3DRenderTarget","RedFormat","texture","LinearFilter","RepeatWrapping","NoColorSpace","renderer","deltaTime","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,EACzD;AAAA,EACT,cAAc;AAAA,EAEG;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS,IAAIC,EAAA;AAAA,EAE9B,YAAY,EAAE,MAAAC,GAAM,gBAAAC,KAAqD;AACvE,SAAK,OAAOD,GACZ,KAAK,WAAW,IAAIE,EAAkB;AAAA,MACpC,aAAaC;AAAA,MACb;AAAA;AAAA,QAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQzB,gBAAAF;AAAA,MACA,UAAU;AAAA,QACR,OAAO,IAAIG,EAAQ,CAAC;AAAA,MAAA;AAAA,IACtB,CACD,GACD,KAAK,OAAO,IAAIC,EAAK,IAAIC,EAAc,GAAG,CAAC,GAAG,KAAK,QAAQ,GAE3D,KAAK,eAAe,IAAIC,EAAoBP,GAAMA,GAAMA,GAAM;AAAA,MAC5D,aAAa;AAAA,MACb,QAAQQ;AAAA,IAAA,CACT;AACD,UAAMC,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,EACxB;AAAA,EAEA,UAAgB;AACd,SAAK,aAAa,QAAA,GAClB,KAAK,SAAS,QAAA;AAAA,EAChB;AAAA,EAEA,OAAOI,GAAyBC,GAA0B;AACxD,QAAK,KAAK,aAGV;AAAA,WAAK,cAAc;AAInB,eAASC,IAAQ,GAAGA,IAAQ,KAAK,MAAM,EAAEA;AACvC,aAAK,SAAS,SAAS,MAAM,QAAQA,IAAQ,KAAK,MAClDF,EAAS,gBAAgB,KAAK,cAAcE,CAAK,GACjDF,EAAS,OAAO,KAAK,MAAM,KAAK,MAAM;AAExC,MAAAA,EAAS,gBAAgB,IAAI;AAAA;AAAA,EAC/B;AAAA,EAEA,IAAI,UAAyB;AAC3B,WAAO,KAAK,aAAa;AAAA,EAC3B;AACF;AC3FA,MAAAG,IAAe;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,GCAfC,IAAe;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;AAAA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"}
|