tosijs-3d 0.10.8 → 0.10.9

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 CHANGED
@@ -6,6 +6,20 @@ 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.9
10
+
11
+ ### Added
12
+
13
+ - **A compass and a watch** (`import … from 'tosijs-3d/dials'`, not in the barrel: the artwork is 36 KB). Both are drawn by Tonio, and the code only moves their named parts. The compass needle points north as you turn (`sceneCompass(b3d)` follows the active camera, flat or in a headset; north is +Z). On the watch, a dot on the ring is the time of day (noon at the top, midnight at the bottom) and a dot on the bar is how fast it passes, from still to an hour a second. Drag either: `skyWatch(skybox)` reads and writes the sky's `timeOfDay` and `realtimeScale`. Each goes on the system bar as a `<tosi-b3d-panel icon title>`. Feather's `clock` icon is added. `bun run dial-art` re-embeds the SVGs after they are redrawn.
14
+ - **A planet and its sphere terrain are one world** (#3344). Tonio: "if you pick a point in the middle of what looks like the ocean, coast, mountain range on a planet you end up with corresponding terrain in the sphere terrain and vice versa." Either can be the source, stated by one attribute:
15
+ - **`<tosi-b3d-terrain planet="#p">`**: the ground takes its large shape (sea, coasts, mountain ranges) from the planet, scaled to its `radius` with the sea at 0. Its own detail layer and landforms ride on top, and it rebuilds when the planet changes (`planet.shapeKey`). Measured at 200 random places: the ground sits within the detail layer of the globe's height (mean 2.5 m, worst 3.9 m with 5 m of detail), and sea or land agrees except at the waterline.
16
+ - **`<tosi-b3d-planet terrain="#t">`**: the globe is drawn from the ground's own height function, and again whenever the ground's shape changes. This replaces the hand-written `planet.surface = terrain.planetSurface()` loop, and the sphere-map demo now uses it.
17
+
18
+ Linked, not automatic: a gas giant in a moon's sky, or every body of a star system, must not become the ground you stand on. `planet.relativeHeightAt(direction)` is the globe's height above its sea as a fraction of its radius. Both attributes are in the schemas.
19
+ - **Planetary rings catch shadows** (#3320). Both are worked out in the shaders for a sphere and a flat ring lit by one star, with no shadow maps. **The planet's shadow falls across its rings** (the dark wedge behind Saturn): each ring fragment asks whether the ray toward the star passes through the planet, softened slightly at the edge. This applies to any `<tosi-b3d-planet>` with `rings`. **The rings' shadow bands a gas giant**: each fragment finds where the ray toward the star crosses the ring plane and dims by how much ring is there, so the shadow has the ring's own gaps (a lighter stripe where the Cassini gap lets light through). The ring is now one GLSL function (`RING_GLSL` in `gas-giant`) that the ring draws itself from and the planet reads, and `createGasGiantMaterial` takes `ring: () => RingShadow | null` for a planet built by hand. Not yet: the rings' shadow on a ROCKY planet's surface.
20
+
21
+ Size: barrel (min, packages external) 1114.2 KB raw / 379.4 KB gz, +0.46% on 0.10.8.
22
+
9
23
  ## 0.10.8
10
24
 
11
25
  ### Added
@@ -32,6 +32,7 @@ export declare class B3dPlanet extends B3dChild {
32
32
  ringOuter: number;
33
33
  ringOpacity: number;
34
34
  ringColor: string;
35
+ terrain: string;
35
36
  world: string;
36
37
  craters: number;
37
38
  seaShallow: string;
@@ -115,6 +116,35 @@ export declare class B3dPlanet extends B3dChild {
115
116
  private _builtSea;
116
117
  private _seaKey;
117
118
  private _surfaceFromMap;
119
+ /** The sea level of the last build, in this planet's units. */
120
+ private _seaAt;
121
+ /** Bumped by every build: what `shapeKey` reports. */
122
+ private _shapeGen;
123
+ /**
124
+ * Changes whenever this planet's SHAPE does (every build). A terrain that
125
+ * takes its shape from this planet (`planet` on the terrain) compares it to
126
+ * know when to rebuild.
127
+ */
128
+ get shapeKey(): string;
129
+ /**
130
+ * HOW HIGH THE GROUND IS ABOVE THE SEA in a direction from the centre, as
131
+ * a fraction of the planet's radius: what this globe draws there, with
132
+ * its sea at 0 (on a world with no sea, its lowest ground). A terrain
133
+ * with `planet` set multiplies it by its own radius, which is how the
134
+ * ground under a pin is the place the globe shows. Null before the
135
+ * planet is built, and for a gas giant.
136
+ */
137
+ relativeHeightAt(d: {
138
+ x: number;
139
+ y: number;
140
+ z: number;
141
+ }): number | null;
142
+ /** The terrain `terrain` names, when it is a sphere. */
143
+ private _linkedTerrain;
144
+ private _terrainWarned;
145
+ private _terrainBuilt;
146
+ private _surfaceFromTerrain;
147
+ private _followTerrain;
118
148
  /**
119
149
  * Fetch `heightMap` (once per URL and sea setting) and rebuild from it. The
120
150
  * planet shows as a smooth ball, in its colours, until the heights arrive.
@@ -138,6 +168,10 @@ export declare class B3dPlanet extends B3dChild {
138
168
  * buildPlanet). Kept as a named step so the build order still reads.
139
169
  */
140
170
  private buildOcean;
171
+ /** The ring's shape, for its shadow on the planet (null: no ring). */
172
+ private _ring;
173
+ /** The ring as the gas giant material's shadow needs it, now. */
174
+ private _ringShadow;
141
175
  private buildRings;
142
176
  /** The rocky world's look, when `world` names one (and it is not a gas giant). */
143
177
  private _look;
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-planet.d.ts","sourceRoot":"","sources":["../src/b3d-planet.ts"],"names":[],"mappings":"AA2MA,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;AAOzE,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAGzE,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA+CnC;IAED,KAAK,EAAE,GAAG,GAAG,IAAI,CAAO;IACxB;;;;;;;OAOG;IACH,OAAO,EAAE,aAAa,GAAG,IAAI,CAAO;IACpC;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAO;IACrD;;;;;;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;IAmUnB,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;IAoKvB,wEAAwE;IACxE,OAAO,CAAC,UAAU;IAWlB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAgCnB;;;OAGG;IACH,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,UAAU;IA+KlB,kFAAkF;IAClF,OAAO,CAAC,KAAK;IAQb,wEAAwE;IACxE,OAAO,CAAC,IAAI;IAIZ,+DAA+D;IAC/D,OAAO,CAAC,QAAQ,CAAK;IAQrB,OAAO,CAAC,WAAW;IAuBnB,qEAAqE;IACrE,OAAO,CAAC,QAAQ,CAA6D;IAC7E,iEAAiE;IACjE,OAAO,CAAC,aAAa,CAAI;IACzB,8DAA8D;IAC9D,OAAO,CAAC,UAAU,CAAK;IAEvB,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,QAAQ;IAsBhB,sDAAsD;IACtD,UAAU;IA4BV,iDAAiD;IACjD,aAAa;CA4Bd;AAED,eAAO,MAAM,SAAS,4CAA6B,CAAA"}
1
+ {"version":3,"file":"b3d-planet.d.ts","sourceRoot":"","sources":["../src/b3d-planet.ts"],"names":[],"mappings":"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"}
@@ -167,6 +167,7 @@ tosi-b3d {
167
167
  | `seaGlint` | `1` | The sun's glint on the sea, `0…1`: a patch of sparkle, broken up by fine wave texture, that slides over the water as you move |
168
168
  | `seaIce` | `0` | Sea ice toward the poles, `0…1` |
169
169
  | `inlandWater` | `'off'` | `'on'` guesses LAKES from a `colorMap`: where the picture is blue, or nearly black (how NASA's Blue Marble paints deep lakes), it is drawn as water: the map's colour, with the glint. The height map only knows the sea, and a lake is above it. A guess: blue ice or black lava can pass for a lake |
170
+ | `terrain` | `''` | A selector for the sphere `<tosi-b3d-terrain>` this is a GLOBE OF (`'#moon-ground'`): drawn from that ground's own height function, and again whenever its shape changes, so a place on the globe is the place on the ground. (The other way round, a terrain's `planet` gives the ground this planet's shape) |
170
171
  | `relief` | `1` | With a `heightMap` or a `surface` set: how much its true relief is exaggerated. `1` is to scale, which on a globe is flat to the eye; 20 to 60 reads as a relief map |
171
172
  | `world` | `''` | A ROCKY WORLD preset: `'moon'`, `'mercury'`, `'mars'`, `'venus'`, `'io'`, `'titan'` or `'earth'` (see [rocky-world](/rocky-world/)). Choosing one writes its sea, air, clouds, relief, craters and climate into this planet's own settings, which stay yours to tune; `worldOverrides` (a property) changes the preset for this planet |
172
173
  | `craters` | `0` | How cratered, `0…1` (see landform's `sphereCraters`) |
@@ -201,7 +202,7 @@ tosi-b3d {
201
202
  /*{ "parent": "space", "order": 40 }*/
202
203
  import { Color } from 'tosijs';
203
204
  import { isOff, B3dChild, sceneDelta, sceneSeconds } from './b3d-utils.js';
204
- import { GAS_GIANT_GLSL, gasGiantRgb, resolveGasGiant } from './gas-giant.js';
205
+ import { GAS_GIANT_GLSL, RING_GLSL, gasGiantRgb, resolveGasGiant, } from './gas-giant.js';
205
206
  import { climateForGlobe } from './sphere-map.js';
206
207
  import { loadPlanetMap } from './planet-map.js';
207
208
  import { createPlanetClouds } from './planet-clouds.js';
@@ -274,6 +275,14 @@ export class B3dPlanet extends B3dChild {
274
275
  ringOuter: 0,
275
276
  ringOpacity: -1,
276
277
  ringColor: '',
278
+ /*
279
+ THE GROUND THIS IS A GLOBE OF (#3344): a selector for a sphere
280
+ `<tosi-b3d-terrain>` ('#moon-ground'). The planet draws from it, and
281
+ draws again whenever the ground's shape changes, so the globe and the
282
+ ground are one world. '' for none. (A terrain can take its shape from
283
+ a planet instead: its `planet` attribute.)
284
+ */
285
+ terrain: '',
277
286
  // A ROCKY WORLD's look (rocky-world): 'moon', 'mercury', 'mars',
278
287
  // 'venus', 'earth'. A preset: choosing one writes its sea, air, clouds,
279
288
  // relief, craters and climate into this planet's own settings, which
@@ -407,6 +416,7 @@ export class B3dPlanet extends B3dChild {
407
416
  }
408
417
  }
409
418
  update() {
419
+ this._followTerrain();
410
420
  this._followGroundClimate();
411
421
  if (this.rootNode == null)
412
422
  return;
@@ -444,7 +454,9 @@ export class B3dPlanet extends B3dChild {
444
454
  turbulence: attrs.turbulence,
445
455
  storm: attrs.storm,
446
456
  colors: attrs.bandColors,
447
- }));
457
+ }),
458
+ // The rings' shadow on the bands (#3320).
459
+ { ring: () => this._ringShadow() });
448
460
  mesh.parent = this.rootNode;
449
461
  this.planetMesh = mesh;
450
462
  this.vertexHeights = null;
@@ -542,6 +554,8 @@ export class B3dPlanet extends B3dChild {
542
554
  const seaAt = this.surface != null || !hasSea
543
555
  ? 0
544
556
  : this.heightPercentile(this._val('ocean'));
557
+ this._seaAt = seaAt;
558
+ this._shapeGen++;
545
559
  const heightData = new Float32Array(totalVerts * 2);
546
560
  for (let i = 0; i < totalVerts; i++) {
547
561
  const above = heights[i] - seaAt;
@@ -721,6 +735,97 @@ export class B3dPlanet extends B3dChild {
721
735
  return `${this._val('ocean')}|${attrs.flatSea}|${attrs.world}`;
722
736
  }
723
737
  _surfaceFromMap = false;
738
+ /** The sea level of the last build, in this planet's units. */
739
+ _seaAt = 0;
740
+ /** Bumped by every build: what `shapeKey` reports. */
741
+ _shapeGen = 0;
742
+ /**
743
+ * Changes whenever this planet's SHAPE does (every build). A terrain that
744
+ * takes its shape from this planet (`planet` on the terrain) compares it to
745
+ * know when to rebuild.
746
+ */
747
+ get shapeKey() {
748
+ return `${this.seed}|${this._shapeGen}`;
749
+ }
750
+ /**
751
+ * HOW HIGH THE GROUND IS ABOVE THE SEA in a direction from the centre, as
752
+ * a fraction of the planet's radius: what this globe draws there, with
753
+ * its sea at 0 (on a world with no sea, its lowest ground). A terrain
754
+ * with `planet` set multiplies it by its own radius, which is how the
755
+ * ground under a pin is the place the globe shows. Null before the
756
+ * planet is built, and for a gas giant.
757
+ */
758
+ relativeHeightAt(d) {
759
+ const attrs = this;
760
+ if (this.noise == null || attrs.gas)
761
+ return null;
762
+ const len = Math.hypot(d.x, d.y, d.z) || 1;
763
+ const s = this.surface;
764
+ if (s != null) {
765
+ const h = s.heightAt({ x: d.x / len, y: d.y / len, z: d.z / len });
766
+ return (h - s.seaLevel) / s.radius;
767
+ }
768
+ return ((this.heightAt(d.x / len, d.y / len, d.z / len) - this._seaAt) /
769
+ attrs.radius);
770
+ }
771
+ /** The terrain `terrain` names, when it is a sphere. */
772
+ _linkedTerrain() {
773
+ const sel = String(this.terrain ?? '').trim();
774
+ if (sel === '' || this.owner == null)
775
+ return null;
776
+ let el;
777
+ try {
778
+ el =
779
+ this.owner.querySelector(sel) ??
780
+ document.querySelector(sel);
781
+ }
782
+ catch {
783
+ if (!this._terrainWarned) {
784
+ this._terrainWarned = true;
785
+ console.warn(`b3d-planet: terrain "${sel}" is not a valid selector`);
786
+ }
787
+ return null;
788
+ }
789
+ const t = el;
790
+ if (t == null || typeof t.planetSurface !== 'function')
791
+ return null;
792
+ return t;
793
+ }
794
+ _terrainWarned = false;
795
+ _terrainBuilt = '';
796
+ _surfaceFromTerrain = false;
797
+ /*
798
+ FOLLOW THE GROUND (#3344). Tonio: "if you pick a point in the middle of
799
+ what looks like the ocean, coast, mountain range on a planet you end up
800
+ with corresponding terrain in the sphere terrain and vice versa." The
801
+ globe is drawn from the terrain's own height function, again whenever
802
+ its `generationKey` changes. Not when that terrain takes ITS shape from
803
+ this planet: each would follow the other.
804
+ */
805
+ _followTerrain() {
806
+ const t = this._linkedTerrain();
807
+ if (t == null) {
808
+ if (this._surfaceFromTerrain) {
809
+ this._surfaceFromTerrain = false;
810
+ this._terrainBuilt = '';
811
+ this.surface = null;
812
+ this.regenerate();
813
+ }
814
+ return;
815
+ }
816
+ if (typeof t.planetSource === 'function' && t.planetSource() === this)
817
+ return;
818
+ const key = t.generationKey;
819
+ if (!key || key === this._terrainBuilt)
820
+ return;
821
+ const surface = t.planetSurface();
822
+ if (surface == null)
823
+ return;
824
+ this._terrainBuilt = key;
825
+ this._surfaceFromTerrain = true;
826
+ this.surface = surface;
827
+ this.regenerate();
828
+ }
724
829
  /**
725
830
  * Fetch `heightMap` (once per URL and sea setting) and rebuild from it. The
726
831
  * planet shows as a smooth ball, in its colours, until the heights arrive.
@@ -971,7 +1076,25 @@ export class B3dPlanet extends B3dChild {
971
1076
  buildOcean() {
972
1077
  this.oceanMesh = null;
973
1078
  }
1079
+ /** The ring's shape, for its shadow on the planet (null: no ring). */
1080
+ _ring = null;
1081
+ /** The ring as the gas giant material's shadow needs it, now. */
1082
+ _ringShadow() {
1083
+ const ring = this._ring;
1084
+ const root = this.rootNode;
1085
+ if (ring == null || root == null)
1086
+ return null;
1087
+ const c = root.getAbsolutePosition();
1088
+ const up = BABYLON.Vector3.TransformNormal(BABYLON.Axis.Y, root.getWorldMatrix()).normalize();
1089
+ return {
1090
+ ...ring,
1091
+ center: { x: c.x, y: c.y, z: c.z },
1092
+ radius: this.radius * Math.abs(root.absoluteScaling.x),
1093
+ normal: { x: up.x, y: up.y, z: up.z },
1094
+ };
1095
+ }
974
1096
  buildRings() {
1097
+ this._ring = null;
975
1098
  if (this.owner == null || this.rootNode == null)
976
1099
  return;
977
1100
  const attrs = this;
@@ -981,27 +1104,34 @@ export class B3dPlanet extends B3dChild {
981
1104
  const scene = this.owner.scene;
982
1105
  const radius = attrs.radius;
983
1106
  // Register ring shader once
984
- if (!BABYLON.Effect.ShadersStore['planetRing6VertexShader']) {
985
- BABYLON.Effect.ShadersStore['planetRing6VertexShader'] = `
1107
+ if (!BABYLON.Effect.ShadersStore['planetRing7VertexShader']) {
1108
+ BABYLON.Effect.ShadersStore['planetRing7VertexShader'] = `
986
1109
  precision highp float;
987
1110
  attribute vec3 position;
988
1111
  attribute vec2 uv;
1112
+ uniform mat4 world;
989
1113
  uniform mat4 worldViewProjection;
990
1114
  varying vec2 vUV;
1115
+ varying vec3 vWorld;
991
1116
  void main() {
992
1117
  gl_Position = worldViewProjection * vec4(position, 1.0);
1118
+ vWorld = (world * vec4(position, 1.0)).xyz;
993
1119
  vUV = uv;
994
1120
  }
995
1121
  `;
996
- BABYLON.Effect.ShadersStore['planetRing6FragmentShader'] = `
1122
+ BABYLON.Effect.ShadersStore['planetRing7FragmentShader'] = `
997
1123
  #extension GL_OES_standard_derivatives : enable
998
1124
  precision highp float;
999
1125
  varying vec2 vUV;
1126
+ varying vec3 vWorld;
1127
+ uniform vec4 ringLight;
1128
+ uniform vec4 ringPlanet;
1000
1129
  uniform vec3 ringColor;
1001
1130
  uniform float ringOpacity;
1002
1131
  uniform float ringInner;
1003
1132
  uniform float seed;
1004
1133
 
1134
+ ${RING_GLSL}
1005
1135
  float hash(float p) {
1006
1136
  return fract(sin(p * 127.1) * 43758.5453);
1007
1137
  }
@@ -1011,49 +1141,13 @@ export class B3dPlanet extends B3dChild {
1011
1141
  vec2 uv = vUV * 2.0 - 1.0;
1012
1142
  float r = length(uv);
1013
1143
  if (r < ringInner || r > 1.0) discard;
1014
-
1015
- // Normalize to ring band
1016
1144
  float t = (r - ringInner) / (1.0 - ringInner);
1017
-
1018
- // SHARP, as rings are, and irregular: the density along the
1019
- // radius is 1D noise at several scales, TERRACED, so it holds
1020
- // plateaus of different widths and steps between them with edges
1021
- // about a pixel wide. Only detail finer than a pixel fades to its
1022
- // average (drawn, it shimmered into moire and flickered).
1023
1145
  float px = max(fwidth(t), 1e-5);
1024
1146
  float theta = atan(uv.y, uv.x);
1025
-
1026
- // A shepherd moon in the narrow gap: the edges either side of it
1027
- // ripple round the ring, fading away from the gap. (The integer
1028
- // count keeps the ripple whole across atan's jump.)
1029
- float gapB = hash(seed + 1.0) * 0.15 + 0.8;
1030
- float near = abs(t - gapB);
1031
- t += 0.004 * sin(theta * 36.0) * exp(-near / 0.02);
1032
-
1033
- float n = 0.0;
1034
- float a = 0.5;
1035
- float f = 6.0;
1036
- float norm = 0.0;
1037
- for (float i = 0.0; i < 5.0; i++) {
1038
- float x = t * f + seed * 13.1 + i * 7.3;
1039
- float c = floor(x);
1040
- float k = fract(x);
1041
- float vn = mix(hash(c), hash(c + 1.0), k * k * (3.0 - 2.0 * k));
1042
- float fade = 1.0 - smoothstep(0.3, 0.6, f * px);
1043
- n += a * fade * (vn - 0.5);
1044
- norm += a;
1045
- a *= 0.55;
1046
- f *= 2.7;
1047
- }
1048
- n = clamp(n / norm * 1.6 + 0.5, 0.0, 1.0);
1049
- float steps = n * 6.0;
1050
- float sw = max(fwidth(steps), 1e-4);
1051
- float terrace = (floor(steps) + smoothstep(1.0 - sw, 1.0, fract(steps))) / 6.0;
1052
- float density = mix(n, terrace, 0.75);
1053
-
1054
- // The broad profile: faint inside, brightest a little out.
1055
- float profile = 0.35 + 0.65 * sin(3.1416 * pow(t, 0.75));
1056
- float bands = profile * (0.3 + 1.1 * density) * 1.3;
1147
+ // The ring itself is one function, shared with the planet that
1148
+ // reads its shadow (gas-giant RING_GLSL).
1149
+ vec2 ring = b3dRing(t, theta, seed, px);
1150
+ float bands = ring.x;
1057
1151
 
1058
1152
  // Imperfect round the ring: a faint clumping by angle and radius.
1059
1153
  vec2 cq = uv * 9.0 + seed;
@@ -1065,18 +1159,22 @@ export class B3dPlanet extends B3dChild {
1065
1159
  float h01 = hash(ci.x + (ci.y + 1.0) * 57.0);
1066
1160
  float h11 = hash(ci.x + 1.0 + (ci.y + 1.0) * 57.0);
1067
1161
  float clump = mix(mix(h00, h10, cf.x), mix(h01, h11, cf.x), cf.y);
1068
- bands *= 0.95 + 0.1 * clump;
1069
-
1070
- // Gaps: the wide one (Cassini's) and the moon's narrow one,
1071
- // cut clean, a pixel soft.
1072
- float g1 = abs(t - hash(seed) * 0.4 - 0.45);
1073
- float gap1 = smoothstep(0.022 - px, 0.022 + px, g1);
1074
- float gap2 = smoothstep(0.005 - px, 0.005 + px, abs(t - gapB));
1075
- bands *= mix(0.04, 1.0, gap1) * mix(0.06, 1.0, gap2);
1162
+ float k = 0.95 + 0.1 * clump;
1163
+ bands *= k;
1164
+ float alpha = clamp(ring.y * k, 0.0, 1.0) * ringOpacity;
1076
1165
 
1077
- // Edges: crisp, a few pixels at most.
1078
- float edgeFade = smoothstep(0.0, max(0.015, px * 2.0), t) * smoothstep(1.0, 1.0 - max(0.01, px * 2.0), t);
1079
- float alpha = clamp(bands, 0.0, 1.0) * edgeFade * ringOpacity;
1166
+ /*
1167
+ THE PLANET'S SHADOW ON THE RING (#3320): the dark wedge behind
1168
+ the planet. From this point toward the star, does the ray pass
1169
+ through the planet? A sphere, so it is exact, softened over a
1170
+ couple of percent of the radius for the penumbra.
1171
+ */
1172
+ vec3 toL = ringLight.w > 0.5 ? normalize(ringLight.xyz - vWorld) : normalize(ringLight.xyz);
1173
+ vec3 oc = ringPlanet.xyz - vWorld;
1174
+ float along = dot(oc, toL);
1175
+ float miss = length(oc - toL * along);
1176
+ float lit = along > 0.0 ? smoothstep(ringPlanet.w * 0.97, ringPlanet.w * 1.03, miss) : 1.0;
1177
+ bands *= mix(0.03, 1.0, lit);
1080
1178
 
1081
1179
  gl_FragColor = vec4(ringColor * bands, alpha);
1082
1180
  }
@@ -1105,10 +1203,13 @@ export class B3dPlanet extends B3dChild {
1105
1203
  mesh.rotation.x = Math.PI / 2; // Flat in XZ plane
1106
1204
  // In the equator, as rings are. It used to be tipped off it, and as
1107
1205
  // the planet turned (the ring is its child) the ring precessed.
1108
- const mat = new BABYLON.ShaderMaterial('planet-ring-mat', scene, { vertex: 'planetRing6', fragment: 'planetRing6' }, {
1206
+ const mat = new BABYLON.ShaderMaterial('planet-ring-mat', scene, { vertex: 'planetRing7', fragment: 'planetRing7' }, {
1109
1207
  attributes: ['position', 'uv'],
1110
1208
  uniforms: [
1209
+ 'world',
1111
1210
  'worldViewProjection',
1211
+ 'ringLight',
1212
+ 'ringPlanet',
1112
1213
  'ringColor',
1113
1214
  'ringOpacity',
1114
1215
  'ringInner',
@@ -1120,8 +1221,27 @@ export class B3dPlanet extends B3dChild {
1120
1221
  mat.setFloat('ringOpacity', Math.max(0, Math.min(1, opacity)));
1121
1222
  mat.setFloat('ringInner', innerRadii / outerRadii);
1122
1223
  mat.setFloat('seed', attrs.seed % 100);
1224
+ this._ring = {
1225
+ inner: innerRadii,
1226
+ outer: outerRadii,
1227
+ opacity: Math.max(0, Math.min(1, opacity)),
1228
+ seed: attrs.seed % 100,
1229
+ };
1123
1230
  mat.backFaceCulling = false;
1124
1231
  mat.alphaMode = BABYLON.Constants.ALPHA_COMBINE;
1232
+ // Where the star and the planet are, each frame, for the shadow.
1233
+ const light = new BABYLON.Vector4(0, 1, 0, 0);
1234
+ const planet = new BABYLON.Vector4();
1235
+ mat.onBind = () => {
1236
+ sceneLight(scene, light);
1237
+ mat.setVector4('ringLight', light);
1238
+ const root = this.rootNode;
1239
+ if (root != null) {
1240
+ const c = root.getAbsolutePosition();
1241
+ planet.set(c.x, c.y, c.z, radius * Math.abs(root.absoluteScaling.x));
1242
+ }
1243
+ mat.setVector4('ringPlanet', planet);
1244
+ };
1125
1245
  mesh.material = mat;
1126
1246
  mesh.parent = this.rootNode;
1127
1247
  this.ringMesh = mesh;
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-planet.js","sourceRoot":"","sources":["../src/b3d-planet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"b3d-planet.js","sourceRoot":"","sources":["../src/b3d-planet.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export declare class B3dTerrain extends B3dChild {
14
14
  static initAttributes: {
15
15
  lat: number;
16
16
  lon: number;
17
+ planet: string;
17
18
  biome: "on" | "off";
18
19
  biomeSeaLevel: number;
19
20
  biomeLapseRate: number;
@@ -158,6 +159,18 @@ export declare class B3dTerrain extends B3dChild {
158
159
  * on one (`surfaceType` other than `'sphere'`). See [[sphere-map]].
159
160
  */
160
161
  get sphereFrame(): SphereFrame | null;
162
+ /** The `<tosi-b3d-planet>` that `planet` names, or null. */
163
+ planetSource(): {
164
+ relativeHeightAt(d: {
165
+ x: number;
166
+ y: number;
167
+ z: number;
168
+ }): number | null;
169
+ shapeKey: string;
170
+ } | null;
171
+ /** The planet shape the ground was last built from. */
172
+ private _planetBuilt;
173
+ private _followPlanet;
161
174
  /**
162
175
  * Latitude and longitude (degrees) of a spot on the ground; null off a
163
176
  * sphere. `x`, `z` are the terrain's own unshifting coordinates: a scene