tosijs-3d 0.10.2 → 0.10.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/CHANGELOG.md +143 -0
  2. package/dist/b3d-decorator.d.ts.map +1 -1
  3. package/dist/b3d-decorator.js +27 -4
  4. package/dist/b3d-decorator.js.map +1 -1
  5. package/dist/b3d-planet.d.ts +67 -2
  6. package/dist/b3d-planet.d.ts.map +1 -1
  7. package/dist/b3d-planet.js +370 -103
  8. package/dist/b3d-planet.js.map +1 -1
  9. package/dist/b3d-terrain.d.ts +30 -0
  10. package/dist/b3d-terrain.d.ts.map +1 -1
  11. package/dist/b3d-terrain.js +108 -1
  12. package/dist/b3d-terrain.js.map +1 -1
  13. package/dist/b3d-utils.d.ts +6 -0
  14. package/dist/b3d-utils.d.ts.map +1 -1
  15. package/dist/b3d-utils.js +10 -0
  16. package/dist/b3d-utils.js.map +1 -1
  17. package/dist/biome-chart.d.ts +8 -1
  18. package/dist/biome-chart.d.ts.map +1 -1
  19. package/dist/biome-chart.js +15 -3
  20. package/dist/biome-chart.js.map +1 -1
  21. package/dist/biome-plugin.d.ts +49 -1
  22. package/dist/biome-plugin.d.ts.map +1 -1
  23. package/dist/biome-plugin.js +208 -25
  24. package/dist/biome-plugin.js.map +1 -1
  25. package/dist/climate-noise.d.ts +18 -0
  26. package/dist/climate-noise.d.ts.map +1 -0
  27. package/dist/climate-noise.js +78 -0
  28. package/dist/climate-noise.js.map +1 -0
  29. package/dist/debug-sink.d.ts.map +1 -1
  30. package/dist/debug-sink.js +3 -1
  31. package/dist/debug-sink.js.map +1 -1
  32. package/dist/gas-giant-material.d.ts +2 -0
  33. package/dist/gas-giant-material.d.ts.map +1 -1
  34. package/dist/gas-giant-material.js +3 -2
  35. package/dist/gas-giant-material.js.map +1 -1
  36. package/dist/gas-giant.d.ts +1 -1
  37. package/dist/gas-giant.d.ts.map +1 -1
  38. package/dist/gas-giant.js +14 -2
  39. package/dist/gas-giant.js.map +1 -1
  40. package/dist/index.d.ts +8 -2
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +8 -2
  43. package/dist/index.js.map +1 -1
  44. package/dist/land-and-sky.js +35 -5
  45. package/dist/land-and-sky.js.map +1 -1
  46. package/dist/noise-texture.d.ts +8 -0
  47. package/dist/noise-texture.d.ts.map +1 -0
  48. package/dist/noise-texture.js +58 -0
  49. package/dist/noise-texture.js.map +1 -0
  50. package/dist/noise-volume.d.ts +14 -0
  51. package/dist/noise-volume.d.ts.map +1 -1
  52. package/dist/noise-volume.js +41 -0
  53. package/dist/noise-volume.js.map +1 -1
  54. package/dist/planet-clouds.d.ts +34 -0
  55. package/dist/planet-clouds.d.ts.map +1 -0
  56. package/dist/planet-clouds.js +327 -0
  57. package/dist/planet-clouds.js.map +1 -0
  58. package/dist/planet-map-material.d.ts +4 -0
  59. package/dist/planet-map-material.d.ts.map +1 -0
  60. package/dist/planet-map-material.js +74 -0
  61. package/dist/planet-map-material.js.map +1 -0
  62. package/dist/planet-map.d.ts +35 -0
  63. package/dist/planet-map.d.ts.map +1 -0
  64. package/dist/planet-map.js +296 -0
  65. package/dist/planet-map.js.map +1 -0
  66. package/dist/planet-surface-material.d.ts +56 -0
  67. package/dist/planet-surface-material.d.ts.map +1 -0
  68. package/dist/planet-surface-material.js +323 -0
  69. package/dist/planet-surface-material.js.map +1 -0
  70. package/dist/sphere-map.d.ts +113 -0
  71. package/dist/sphere-map.d.ts.map +1 -0
  72. package/dist/sphere-map.js +244 -0
  73. package/dist/sphere-map.js.map +1 -0
  74. package/package.json +2 -1
  75. package/static/attributes.json +68 -3
  76. package/static/attributes.txt +19 -3
package/CHANGELOG.md CHANGED
@@ -6,6 +6,149 @@ All notable changes to **tosijs-3d**. This project is pre-1.0 (`0.x`), so minor
6
6
  versions may carry breaking peer-dependency changes — each is called out in a
7
7
  **⚠️ Breaking** block in its version section below, with what a consumer must do.
8
8
 
9
+ ## 0.10.4
10
+
11
+ ### Added
12
+
13
+ - **Land and Sky: a sphere world switch.** The World tab has `sphere world` and `planet radius` (2 to 6,400 km): the same ground laid on a planet, starting at 45° north, with the latitude climate above. Presets save both.
14
+ - **A sphere world's ground and its globe share one climate.** A terrain in `surfaceType="sphere"` now takes the planet's climate: temperature by latitude (walk toward a pole and it gets colder, to ice), with the regional noise read at the point of the sphere each piece of ground is. A `<tosi-b3d-planet biome="on">` given that terrain's `planetSurface()` copies the ground's climate settings and colours every frame, in its own units (`climateForGlobe`), so the forest, desert and ice you see from orbit are the ones you land on. `biomeTemperature` on such a terrain is the world's mean: the equator is warmer and the poles far colder. ⚠️ This changes how an existing sphere-mode terrain is coloured. The decorator places by the same climate (`groundClimateAt(params, x, y, z)`, which is also the way to ask what the climate is at a place).
15
+ - **One mesh for land and sea.** A planet with a colour map, or without the
16
+ biome shading, is now a single sphere drawn by one shader
17
+ (`createPlanetSurfaceMaterial`): land above sea level, water below, told
18
+ apart per pixel by height. The coast is a smooth line however coarse the
19
+ mesh (it was wherever the ground poked through a sea sphere), the water is
20
+ pale in the shallows and dark in the deep, and the sea has the sun's
21
+ glint, broken into sparkle by fine wave texture. `seaGlint`, `seaIce`.
22
+ On a real-map planet `flatSea="on"` now means "this world has a sea".
23
+ With `biome="on"` the land is classified by the biome shader itself: the
24
+ plugin's own code runs inside the planet material, so it is the same
25
+ chart, palettes, parameters and volcanism as terrain, and
26
+ `planet.biomePlugin.params` is live as before. Every planet that is not a
27
+ gas giant is drawn this way now; the translucent sea sphere is gone.
28
+ What is steep is decided from the heights alone (the slope the biome
29
+ shader reads is taken from the height field per pixel, not from the
30
+ mesh's normals), so the sea bed has slopes too. Changing `ocean` or
31
+ `flatSea` and calling `updateOptions()` rebuilds the mesh, since the sea
32
+ is in it; and `biomePlugin.params` is one object for the life of the
33
+ element, so a control bound to it survives a rebuild.
34
+
35
+ - **Crinkly coastlines on a procedural planet.** The mesh cannot hold a
36
+ coast that turns tighter than about two of its cells, so the octaves of
37
+ detail it cannot carry are added per pixel, to the height that decides
38
+ where the sea ends, how deep it is and how high the land is. They follow
39
+ `detailScale` and `detailAmplitude`: turn those up and the coast breaks
40
+ into inlets and islands. Slope still comes from the mesh's heights.
41
+ - **Lakes glint.** `inlandWater="on"` on a planet with a `colorMap` guesses
42
+ inland water from the picture (blue, or the near-black NASA's Blue Marble
43
+ paints deep lakes) and gives it the sea's glint. The height map only knows
44
+ the sea. The real-worlds Earth has it on, and that demo gained `clouds`,
45
+ `storms` (how many, up to four) and `storm intensity` sliders.
46
+
47
+ ### Changed
48
+
49
+ - **Height dries the land over the land's own height**, from the sea level to the highest the ground reaches, not over the whole relief (most of which may be under water). Land and Sky's moisture is 0.95, up from 0.72, which since the dead row was added had meant steppe rather than forest.
50
+ - **⚠️ The ground's climate varies by region, so worlds look different out of the box.** The biome shader's moisture noise was patches 50 m across at ±0.18, too small and too faint to change a biome, so every island was the same mottle. It is now regions about a kilometre across at ±0.5 (`mNoiseScale` 0.001, `mNoiseAmp` 0.5 on `terrain.biomePlugin.params`): one island is forest, the next is dry. For the old look set them to 0.02 and 0.18. Land and Sky has `moisture variation` and `region size` sliders.
51
+ - **Height dries the land.** On terrain, moisture now falls off with height above the sea (to 1/e over half of `grossAmplitude + detailAmplitude`), so coasts and valleys are green and heights are dry; the decorator reads the same rule (`moistureDryHeight` on the biome params and on `mantaAxes`' config; `0` is off, which is the plugin's default without a terrain). A planet already did this.
52
+ - **The decorator follows the regions.** Its trees and plants were placed from the base climate alone. The ground's temperature and moisture noise is now a seeded lattice the shader reads as a texture and code can evaluate too (`climateNoiseAt`, and the pure `climateNoise`), so the forest stands where the ground is drawn green. Changing the noise settings rebuilds the scatter.
53
+ - **Procedural planet: moisture varies by region.** With `biome="on"` the moisture noise is now broad and strong (`mNoiseScale` 0.035, `mNoiseAmp` 0.5 on `planet.biomePlugin.params`), so a continent carries deserts and forest belts where it was one colour. The demo has a `moisture variation` slider. Set `mNoiseAmp` to 0.18 and `mNoiseScale` to 0.07 for the old look.
54
+ - **A planet's cloud reads its noise from a texture.** A cloud pixel takes
55
+ 54 noise samples, each of which was eight hashes of arithmetic; each is
56
+ one read of a small 3D texture now (the same noise, a different draw of
57
+ it, so the weather is not where it was). The cloud shell was 6 to 9 ms of
58
+ a Quest's frame; measured there afterwards, removing it buys under 1 ms.
59
+ - **A planet's surface reads its noise too**: its climate, the biome
60
+ shader's fine noise (as terrain already did) and the sea's glint. The
61
+ glint is only worked out near the sun's reflection, which is a small part
62
+ of an ocean. Not yet measured on a headset.
63
+
64
+ ### Fixed
65
+
66
+ - **A sphere world was drier than a flat one.** The rain shadow's wind was fixed in the planet's frame, so level ground on one side of the planet read as a leeward slope everywhere, about 0.12 off the moisture. The wind now blows along the ground: slopes still get wet and dry sides, level ground gets neither. The decorator's mirror of it had the same bias and now has none.
67
+ - **Changing a terrain's `surfaceType` or radius rebuilds its surface.** The sampler was built once at scene-ready, so the tiles kept the old shape while everything that reads the radius live moved on.
68
+ - **Land and Sky: the eye height slider works in a headset.** It moved the flat camera only; the headset's rig took its height once, on entry.
69
+ - **Climate regions stay put when the origin moves.** The ground's temperature and moisture noise was read at the render position, so a floating-origin reset shifted it. It is read at the world position now (`worldOffsetX`/`worldOffsetZ` on the biome params, which the terrain keeps up to date).
70
+ - **Cloud broke into mismatched tiles on a Quest.** The shader noise's
71
+ lattice hash now snaps to the integer first, so every cell hashes a shared
72
+ corner to the identical value. (A compiler folding the corner offset into
73
+ the hash made neighbours disagree.) Gas giants and the sea glint share the
74
+ noise and the fix.
75
+ - **A hard edge in planet cloud along the equator**, where a weather cell
76
+ lying across it was wound opposite ways on either side.
77
+ - The cost sweep lists a planet's cloud shell as its own row.
78
+ - **Pausing stops a planet's weather.** Cloud, the air's haze, the sea's
79
+ glint and a gas giant's bands ran on the wall clock; they follow the
80
+ scene's own time now, so they pause and slow with `timeScale`.
81
+ - **A planet's air no longer glows on the night side.** The atmosphere shell
82
+ is added to what is behind it and was added at full strength all the way
83
+ round. It is lit by the sun now, with a little twilight past the
84
+ terminator.
85
+ - **(behaviour) A planet's clouds ride half way up its atmosphere** (they
86
+ were capped at 2% of the radius), so a deeper `atmosphere` lifts them.
87
+
88
+ ### Changed
89
+
90
+ - **Planet storms look like storms.** The winding is a vortex's (tightest
91
+ round the eye, barely bending the outer arms; it used to shear hardest at
92
+ the rim), the disc has spiral rainbands and shows its relief, and the eye
93
+ is a shaded funnel with a hard inner edge where it was a hole in a white
94
+ plate.
95
+
96
+ Size: barrel (min, packages external) 1025.1 KB raw / 347.8 KB gz, +1.95% on 0.10.3.
97
+
98
+ ## 0.10.3
99
+
100
+ ### Added
101
+
102
+ - **One world, two views.** A terrain in `surfaceType="sphere"` can hand out
103
+ its own surface as a globe (`terrain.planetSurface()`), and
104
+ `<tosi-b3d-planet>` draws from it (`planet.surface`, with `relief` to
105
+ exaggerate the heights). The planet you see from orbit is then the ground
106
+ you land on: the same height function, checked to agree to the centimetre.
107
+ - **Places.** `terrain.latLonAt(x, z)` and `terrain.groundAt(lat, lon)`, and
108
+ the pure `sphere-map` module behind them (ground, latitude and longitude,
109
+ and direction on the globe, each from the others), so a pin on the globe is
110
+ a spot on the ground. On the ground +x is east and +z is north.
111
+ - **Real worlds.** `<tosi-b3d-planet heightMap colorMap>` draws a planet
112
+ from its maps: the Moon, Mars and the Earth from NASA's and NOAA's data on
113
+ the CDN (`nasa/moon`, `nasa/mars`, `nasa/earth`, `noaa/earth`). `relief`
114
+ exaggerates the heights, `flatSea` fills the oceans level, `bodyRadiusKm`
115
+ is the real body's radius. The new `planet-map` module reads the 16-bit
116
+ height PNGs itself (a browser's own decoding keeps eight bits):
117
+ `loadPlanetMap`, `decodeGray16Png`, `mapSurface`.
118
+ - **Weather from orbit.** `<tosi-b3d-planet clouds="0.5">` puts a shell of
119
+ cloud inside the air: one coverage dial, winds that reverse with latitude,
120
+ more cloud along the equator and the storm tracks, and a shadow on the
121
+ ground beneath. `cloudColor`, `cloudSpeed`. `planet.storms` places up to
122
+ four cyclones by latitude and longitude, each with an eye, turning the
123
+ right way for its hemisphere, with lightning inside. Provisional: this is
124
+ the weather from orbit only, its own field and its own storms; it does not
125
+ yet agree with the cloud deck and weather cells on that world's ground.
126
+ - `planet.rootNode` is public, for placing a planet.
127
+
128
+ ### Fixed
129
+
130
+ - **(behaviour) Planets turn west to east.** `rotationSpeed` spun them the
131
+ other way, so the Earth ran backwards. A negative `rotationSpeed` turns a
132
+ planet the old way (it used to be ignored).
133
+ - **A planet that has been moved is shaded where it is.** The biome shader
134
+ measured altitude and latitude from the world origin.
135
+ - **A rotating planet's land no longer shimmers.** The biome shader read its
136
+ noise by world position, so a planet turned under its own climate. On a
137
+ planet it now works in the planet's own frame, and reads its climate noise
138
+ in 3D (it was smeared down the sides of the sphere).
139
+ - **Volcanism on a planet is planet-sized.** The volcanic patterns were sized
140
+ in metres of terrain, so on a globe the regions were one value everywhere
141
+ (the dial flipped the whole planet) and the plates were a ninth of its
142
+ width. They scale with the planet now: regions about a twentieth of the
143
+ way round, plates you can see.
144
+ - **A planet's air no longer pinches at the poles.** Its clouds were 2D noise
145
+ over latitude and longitude, which converges to a point at each pole and has
146
+ a seam down the back. They are 3D noise read on the sphere itself now, and
147
+ in the planet's own frame, so they turn with a rotating planet where they
148
+ used to stand still while it turned beneath them.
149
+
150
+ Size: barrel (min, packages external) 1005.5 KB raw / 340.6 KB gz, +1.8% on 0.10.2.
151
+
9
152
  ## 0.10.2
10
153
 
11
154
  ### Added
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-decorator.d.ts","sourceRoot":"","sources":["../src/b3d-decorator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"b3d-decorator.d.ts","sourceRoot":"","sources":["../src/b3d-decorator.ts"],"names":[],"mappings":"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"}
@@ -94,7 +94,7 @@ import { B3dChild, fetchedUrl, isOff, publicName } from './b3d-utils.js';
94
94
  import { assetUrl } from './asset-url.js';
95
95
  import { resolveBudget } from './b3d-quality.js';
96
96
  import { mantaAxes } from './biome-chart.js';
97
- import { attachBiomePlugin } from './biome-plugin.js';
97
+ import { attachBiomePlugin, groundClimateAt, } from './biome-plugin.js';
98
98
  import { rockFromName, rockGeometry } from './procedural-rock.js';
99
99
  import { isDefaultLibrary, scatterPlacements, NearIndex, seatDip, pruneScatterCache, NATURE_KIT_RULES, NATURE_RULES, NATURE_ROLES, roleFor, } from './scatter.js';
100
100
  /*
@@ -330,7 +330,24 @@ export class B3dDecorator extends B3dChild {
330
330
  terrain?.generationKey ?? '',
331
331
  terrain?.provinceField != null ? 'province' : '',
332
332
  p
333
- ? [p.seaLevel, p.baseTemperature, p.lapseRate, p.mapMoisture].join(',')
333
+ ? [
334
+ p.seaLevel,
335
+ p.baseTemperature,
336
+ p.lapseRate,
337
+ p.mapMoisture,
338
+ p.tNoiseScale,
339
+ p.tNoiseAmp,
340
+ p.mNoiseScale,
341
+ p.mNoiseAmp,
342
+ p.moistureDryHeight,
343
+ p.sheetRadius,
344
+ p.sheetU,
345
+ p.sheetV,
346
+ p.equatorTemp,
347
+ p.temperateTemp,
348
+ p.poleTemp,
349
+ p.rainShadow,
350
+ ].join(',')
334
351
  : '',
335
352
  ].join('|');
336
353
  }
@@ -579,6 +596,7 @@ export class B3dDecorator extends B3dChild {
579
596
  lapseRate: 0.004,
580
597
  mapMoisture: 0.5,
581
598
  };
599
+ const noisy = terrain.biomePlugin != null;
582
600
  // The cache holds GROUND only, so it is stale only when the terrain is.
583
601
  const groundKey = String(terrain?.generationKey ?? '');
584
602
  if (groundKey !== this._cacheKey) {
@@ -601,8 +619,13 @@ export class B3dDecorator extends B3dChild {
601
619
  center: here,
602
620
  radius: this.radius,
603
621
  height,
604
- climate: (_x, _z, y) => {
605
- const { temperature, moisture } = mantaAxes(y, cfg);
622
+ climate: (x, z, y) => {
623
+ // The climate the ground is drawn with (its regions, and on a
624
+ // sphere world its latitude), so the forest stands where the
625
+ // ground is green.
626
+ const { temperature, moisture } = noisy
627
+ ? groundClimateAt(cfg, x, y, z)
628
+ : mantaAxes(y, cfg);
606
629
  return {
607
630
  temperature,
608
631
  moisture,
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-decorator.js","sourceRoot":"","sources":["../src/b3d-decorator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"b3d-decorator.js","sourceRoot":"","sources":["../src/b3d-decorator.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import { B3dChild } from './b3d-utils.js';
2
- import { BiomePlugin } from './biome-plugin.js';
2
+ import type { BiomePlugin } from './biome-plugin.js';
3
+ import { type PlanetSurface } from './sphere-map.js';
4
+ import { type PlanetStorm } from './planet-clouds.js';
3
5
  import * as BABYLON from '@babylonjs/core';
4
6
  import type { B3d } from './tosi-b3d.js';
5
7
  import type { GradientFilter } from './gradient-filter.js';
@@ -13,6 +15,14 @@ export declare class B3dPlanet extends B3dChild {
13
15
  static initAttributes: {
14
16
  biome: "on" | "off";
15
17
  gas: string;
18
+ heightMap: string;
19
+ colorMap: string;
20
+ bodyRadiusKm: number;
21
+ flatSea: "on" | "off";
22
+ seaGlint: number;
23
+ seaIce: number;
24
+ inlandWater: "on" | "off";
25
+ relief: number;
16
26
  bands: number;
17
27
  turbulence: number;
18
28
  storm: number;
@@ -31,33 +41,88 @@ export declare class B3dPlanet extends B3dChild {
31
41
  atmosphere: number;
32
42
  atmosphereColor: string;
33
43
  atmosphereTurbulence: number;
44
+ clouds: number;
45
+ cloudColor: string;
46
+ cloudSpeed: number;
34
47
  ocean: number;
35
48
  rings: number;
36
49
  wireframe: boolean;
37
50
  rotationSpeed: number;
38
51
  };
39
52
  owner: B3d | null;
53
+ /**
54
+ * ANOTHER WORLD'S SURFACE, to draw this planet from: set it to a terrain's
55
+ * `planetSurface()` and the globe is that terrain seen from orbit (then
56
+ * `regenerate()`). Its heights are true metres on a planet of its own
57
+ * radius; `relief` says how much to exaggerate them, because real relief
58
+ * is invisible at this size. With a surface set, the planet's own noise
59
+ * settings are unused and the sea sits at the surface's sea level.
60
+ */
61
+ surface: PlanetSurface | null;
62
+ /**
63
+ * STORMS placed on the weather (needs `clouds` above 0): up to four, each
64
+ * `{ lat, lon, size, intensity, lightning }`. A storm is a cyclone that
65
+ * turns the right way for its hemisphere, with an eye, and lightning
66
+ * flickering inside it, which on the night side is all you see of it.
67
+ * Read every frame, so move one by changing its `lat` and `lon`.
68
+ */
69
+ storms: PlanetStorm[];
40
70
  grossFilter: GradientFilter;
41
71
  detailFilter: GradientFilter;
42
72
  private noise;
43
73
  private planetMesh;
44
74
  private atmosphereMesh;
45
75
  private oceanMesh;
76
+ private cloudMesh;
46
77
  /** Live-tunable biome shader parameters (biome="on") — see biome-plugin. */
47
78
  biomePlugin: BiomePlugin | null;
79
+ /** The undrawn material the biome plugin lives on (planet-surface-material). */
80
+ private _biomeHost;
81
+ private _biomeParams;
48
82
  private ringMesh;
49
- private rootNode;
83
+ /** The node everything of this planet hangs from: move it to place the planet. */
84
+ rootNode: BABYLON.TransformNode | null;
50
85
  private registered;
51
86
  private _beforeRender;
52
87
  private vertexHeights;
53
88
  content: () => string;
54
89
  sceneReady(owner: B3d, scene: BABYLON.Scene): void;
55
90
  sceneDispose(): void;
91
+ /**
92
+ * A globe OF a ground (a `surface` that carries its climate) is coloured
93
+ * as that ground is: the same settings in the globe's units, and the same
94
+ * colours, copied each frame so the ground's dials move the globe.
95
+ */
96
+ private _followGroundClimate;
56
97
  private update;
57
98
  private buildPlanet;
99
+ private _heightMapLoaded;
100
+ /** The sea the mesh was built with: it is IN the mesh, so a change rebuilds. */
101
+ private _builtSea;
102
+ private _seaKey;
103
+ private _surfaceFromMap;
104
+ /**
105
+ * Fetch `heightMap` (once per URL and sea setting) and rebuild from it. The
106
+ * planet shows as a smooth ball, in its colours, until the heights arrive.
107
+ */
108
+ private _loadHeightMap;
109
+ /** A vertex's height above the base sphere, in this planet's own units. */
110
+ private _heightFor;
58
111
  /** Get the height at a given percentile (0..1) of all vertex heights */
59
112
  private heightPercentile;
60
113
  private buildAtmosphere;
114
+ /** The highest ground above the base sphere, in this planet's units. */
115
+ private _maxHeight;
116
+ /**
117
+ * The weather, seen from orbit (planet-clouds): a shell just above the
118
+ * highest ground and INSIDE the air shell, which stays outside it as the
119
+ * glow at the limb.
120
+ */
121
+ private buildClouds;
122
+ /**
123
+ * There is no sea sphere: the one-mesh planet draws its own sea (see
124
+ * buildPlanet). Kept as a named step so the build order still reads.
125
+ */
61
126
  private buildOcean;
62
127
  private buildRings;
63
128
  private heightAt;
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-planet.d.ts","sourceRoot":"","sources":["../src/b3d-planet.ts"],"names":[],"mappings":"AAuKA,OAAO,EAAS,QAAQ,EAAc,MAAM,gBAAgB,CAAA;AAC5D,OAAO,EAAqB,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAGlE,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC1C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAGxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAoB1D,qBAAa,SAAU,SAAQ,QAAQ;IACrC,MAAM,CAAC,gBAAgB,SAAoB;IAE3C,MAAM,CAAC,eAAe;;;;MAIrB;IAED,MAAM,CAAC,cAAc;eAIH,IAAI,GAAG,KAAK;;;;;;;;;;;;;;;;;;;;;;;;MA4B7B;IAED,KAAK,EAAE,GAAG,GAAG,IAAI,CAAO;IACxB,WAAW,EAAE,cAAc,CAA8B;IACzD,YAAY,EAAE,cAAc,CAA8B;IAE1D,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,SAAS,CAA4B;IAC7C,4EAA4E;IAC5E,WAAW,EAAE,WAAW,GAAG,IAAI,CAAO;IACtC,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,aAAa,CAA4B;IAEjD,OAAO,eAAW;IAElB,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK;IAgB3C,YAAY;IAaZ,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,WAAW;IA0JnB,wEAAwE;IACxE,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,eAAe;IAkJvB,OAAO,CAAC,UAAU;IA0BlB,OAAO,CAAC,UAAU;IAgIlB,OAAO,CAAC,QAAQ;IAqBhB,sDAAsD;IACtD,UAAU;IAyBV,iDAAiD;IACjD,aAAa;CAoBd;AAED,eAAO,MAAM,SAAS,4CAA6B,CAAA"}
1
+ {"version":3,"file":"b3d-planet.d.ts","sourceRoot":"","sources":["../src/b3d-planet.ts"],"names":[],"mappings":"AAuLA,OAAO,EAAS,QAAQ,EAA4B,MAAM,gBAAgB,CAAA;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAErE,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAQzE,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC1C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAGxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAoB1D,qBAAa,SAAU,SAAQ,QAAQ;IACrC,MAAM,CAAC,gBAAgB,SAAoB;IAE3C,MAAM,CAAC,eAAe;;;;MAIrB;IAED,MAAM,CAAC,cAAc;eAIH,IAAI,GAAG,KAAK;;;;;iBAaV,IAAI,GAAG,KAAK;;;qBAKR,IAAI,GAAG,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;MAgCnC;IAED,KAAK,EAAE,GAAG,GAAG,IAAI,CAAO;IACxB;;;;;;;OAOG;IACH,OAAO,EAAE,aAAa,GAAG,IAAI,CAAO;IACpC;;;;;;OAMG;IACH,MAAM,EAAE,WAAW,EAAE,CAAK;IAC1B,WAAW,EAAE,cAAc,CAA8B;IACzD,YAAY,EAAE,cAAc,CAA8B;IAE1D,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,SAAS,CAA4B;IAC7C,4EAA4E;IAC5E,WAAW,EAAE,WAAW,GAAG,IAAI,CAAO;IACtC,gFAAgF;IAChF,OAAO,CAAC,UAAU,CAAwC;IAC1D,OAAO,CAAC,YAAY,CAAqC;IACzD,OAAO,CAAC,QAAQ,CAA4B;IAC5C,kFAAkF;IAClF,QAAQ,EAAE,OAAO,CAAC,aAAa,GAAG,IAAI,CAAO;IAC7C,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,aAAa,CAA4B;IAEjD,OAAO,eAAW;IAElB,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK;IAmB3C,YAAY;IAkBZ;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IA0B5B,OAAO,CAAC,MAAM;IAgBd,OAAO,CAAC,WAAW;IAwOnB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,gFAAgF;IAChF,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,eAAe,CAAQ;IAC/B;;;OAGG;IACH,OAAO,CAAC,cAAc;IA4BtB,2EAA2E;IAC3E,OAAO,CAAC,UAAU;IAYlB,wEAAwE;IACxE,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,eAAe;IA0IvB,wEAAwE;IACxE,OAAO,CAAC,UAAU;IASlB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAgCnB;;;OAGG;IACH,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,UAAU;IAgIlB,OAAO,CAAC,QAAQ;IAqBhB,sDAAsD;IACtD,UAAU;IA4BV,iDAAiD;IACjD,aAAa;CA4Bd;AAED,eAAO,MAAM,SAAS,4CAA6B,CAAA"}