bruce-cesium 7.3.6 → 7.3.7
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/dist/bruce-cesium.es5.js +307 -5
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +305 -3
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/bruce-cesium.js +1 -1
- package/dist/lib/rendering/displaced-surface-primitive.js +270 -1
- package/dist/lib/rendering/displaced-surface-primitive.js.map +1 -1
- package/dist/lib/rendering/entity-render-engine-polygon.js +27 -0
- package/dist/lib/rendering/entity-render-engine-polygon.js.map +1 -1
- package/dist/lib/utils/cesium-entity-styler.js +6 -0
- package/dist/lib/utils/cesium-entity-styler.js.map +1 -1
- package/dist/lib/utils/drawing-utils.js +1 -1
- package/dist/lib/utils/drawing-utils.js.map +1 -1
- package/dist/types/bruce-cesium.d.ts +1 -1
- package/dist/types/rendering/displaced-surface-primitive.d.ts +29 -0
- package/dist/types/rendering/entity-render-engine-polygon.d.ts +6 -0
- package/dist/types/utils/cesium-entity-styler.d.ts +3 -0
- package/package.json +2 -2
package/dist/lib/bruce-cesium.js
CHANGED
|
@@ -83,7 +83,7 @@ __exportStar(require("./widgets/widget-info-view"), exports);
|
|
|
83
83
|
__exportStar(require("./widgets/widget-left-panel"), exports);
|
|
84
84
|
__exportStar(require("./widgets/widget-nav-compass"), exports);
|
|
85
85
|
__exportStar(require("./widgets/widget-view-bar"), exports);
|
|
86
|
-
exports.VERSION = "7.3.
|
|
86
|
+
exports.VERSION = "7.3.7";
|
|
87
87
|
/**
|
|
88
88
|
* Updates the environment instance used by bruce-cesium to one specified.
|
|
89
89
|
* This can be used to ensure that the instance a parent is referencing is shared between bruce-cesium, bruce-models, and the parent app.
|
|
@@ -41,6 +41,44 @@ var DisplacedSurfacePrimitive;
|
|
|
41
41
|
const MASK_TEXTURE_MAX_SIDE = 1024;
|
|
42
42
|
// Stands in for "no floor" and "no clearance", far below anything the sheet can reach.
|
|
43
43
|
const NO_LIMIT_METRES = -1e6;
|
|
44
|
+
// Ripple layers to cycle across the field's own repeat.
|
|
45
|
+
const WATER_WAVES = [
|
|
46
|
+
{ x: 2, y: 1, amplitude: 6.4 },
|
|
47
|
+
{ x: 1, y: 4, amplitude: 3.9 },
|
|
48
|
+
{ x: -6, y: 4, amplitude: 2.5 },
|
|
49
|
+
{ x: 9, y: -9, amplitude: 1.6 },
|
|
50
|
+
{ x: -14, y: 18, amplitude: 1.0 },
|
|
51
|
+
{ x: 38, y: 15, amplitude: 0.63 },
|
|
52
|
+
{ x: -30, y: 68, amplitude: 0.39 },
|
|
53
|
+
{ x: 120, y: 57, amplitude: 0.245 }
|
|
54
|
+
];
|
|
55
|
+
const waveCycles = (wave) => Math.hypot(wave.x, wave.y);
|
|
56
|
+
// Which layer the wavelength setting names. The ladder runs either side of it.
|
|
57
|
+
const WATER_BASE_WAVE = 4;
|
|
58
|
+
// How many metres the field repeats over, as a multiple of the settings' own wavelength.
|
|
59
|
+
const WATER_PERIOD_IN_WAVELENGTHS = waveCycles(WATER_WAVES[WATER_BASE_WAVE]);
|
|
60
|
+
/*
|
|
61
|
+
* How much of the surface's total slope each layer carries, which is its amplitude against its
|
|
62
|
+
* wave number rather than its amplitude alone.
|
|
63
|
+
*/
|
|
64
|
+
const WATER_WAVE_SLOPES = (() => {
|
|
65
|
+
const raw = WATER_WAVES.map((wave) => wave.amplitude * waveCycles(wave));
|
|
66
|
+
const total = raw.reduce((sum, value) => sum + value, 0);
|
|
67
|
+
return raw.map((value) => value / total);
|
|
68
|
+
})();
|
|
69
|
+
// Screen pixels a ripple layer needs to span before it counts at all, and before it counts in
|
|
70
|
+
// full. Below the first it is finer than the pixel grid and turns into moire that crawls as the
|
|
71
|
+
// camera moves; the gap between the two is there so a layer leaves gradually rather than
|
|
72
|
+
// stepping out and leaving a visible change in the surface.
|
|
73
|
+
const WATER_MIN_PIXELS_PER_WAVE = 6;
|
|
74
|
+
const WATER_FULL_PIXELS_PER_WAVE = 16;
|
|
75
|
+
const DEFAULT_WATER_WAVELENGTH_METRES = 26;
|
|
76
|
+
const DEFAULT_WATER_AMPLITUDE_METRES = 0.11;
|
|
77
|
+
const DEFAULT_WATER_SPEED_METRES_PER_SECOND = 0.6;
|
|
78
|
+
const DEFAULT_WATER_REFLECTIVITY = 0.72;
|
|
79
|
+
const DEFAULT_WATER_GLOSSINESS = 140;
|
|
80
|
+
const DEFAULT_WATER_SUN_INTENSITY = 1;
|
|
81
|
+
const DEFAULT_WATER_SKY_COLOR = { red: 150, green: 186, blue: 214, alpha: 1 };
|
|
44
82
|
const GROUND_MIN_METRES = -1000;
|
|
45
83
|
const GROUND_MAX_METRES = 9000;
|
|
46
84
|
const DEFAULT_LOW_COLOR = { red: 255, green: 255, blue: 255, alpha: 0.12 };
|
|
@@ -76,10 +114,17 @@ uniform vec2 u_maskGroundSize;
|
|
|
76
114
|
uniform vec4 u_extentDegrees;
|
|
77
115
|
uniform vec4 u_maskGroundDegrees;
|
|
78
116
|
uniform float u_coverageCutoffVertex;
|
|
117
|
+
uniform vec2 u_extentMetres;
|
|
118
|
+
uniform vec2 u_waveOrigin;
|
|
79
119
|
|
|
80
120
|
out vec2 v_st;
|
|
81
121
|
out float v_value;
|
|
82
122
|
out float v_coverage;
|
|
123
|
+
out vec3 v_positionEC;
|
|
124
|
+
out vec3 v_eastEC;
|
|
125
|
+
out vec3 v_northEC;
|
|
126
|
+
out vec3 v_upEC;
|
|
127
|
+
out vec2 v_waveMetres;
|
|
83
128
|
|
|
84
129
|
float decodeGround(vec2 uv) {
|
|
85
130
|
// Channels arrive normalised to 0..1, so they go back to bytes before being reassembled.
|
|
@@ -198,6 +243,25 @@ void main() {
|
|
|
198
243
|
// Added to the LOW half of the encoded position: a metre-scale offset added to the high half
|
|
199
244
|
// would be lost to float32 rounding at an earth radius.
|
|
200
245
|
vec4 p = czm_translateRelativeToEye(position3DHigh, position3DLow + normal * displacement);
|
|
246
|
+
|
|
247
|
+
// The local frame at this vertex so a shading normal built in east/north/up meters can be turned into something usable.
|
|
248
|
+
v_upEC = czm_normal * normal;
|
|
249
|
+
vec3 east = normalize(cross(vec3(0.0, 0.0, 1.0), normal));
|
|
250
|
+
v_eastEC = czm_normal * east;
|
|
251
|
+
v_northEC = czm_normal * cross(normal, east);
|
|
252
|
+
v_positionEC = (czm_modelViewRelativeToEye * p).xyz;
|
|
253
|
+
|
|
254
|
+
/*
|
|
255
|
+
* Where this vertex sits in the ripple field, in metres from an origin that follows the camera.
|
|
256
|
+
*
|
|
257
|
+
* Subtracted here rather than in the fragment shader because the position it is subtracted from
|
|
258
|
+
* spans the whole archive, which over a sound is tens of kilometres. A wave number times that
|
|
259
|
+
* is thousands of radians, and no fragment shader that may only have mediump can step through a
|
|
260
|
+
* cosine at that magnitude: the ripples come out as a flat surface, which is what a first cut of
|
|
261
|
+
* this did. What crosses into the fragment shader is a small number the camera is standing in.
|
|
262
|
+
*/
|
|
263
|
+
v_waveMetres = st * u_extentMetres - u_waveOrigin;
|
|
264
|
+
|
|
201
265
|
gl_Position = czm_modelViewProjectionRelativeToEye * p;
|
|
202
266
|
}
|
|
203
267
|
`;
|
|
@@ -210,10 +274,27 @@ uniform float u_valuePacked;
|
|
|
210
274
|
uniform float u_valueRange;
|
|
211
275
|
uniform float u_exaggeration;
|
|
212
276
|
uniform float u_metresPerTexel;
|
|
277
|
+
uniform float u_waterOn;
|
|
278
|
+
uniform float u_waterWavelength;
|
|
279
|
+
uniform float u_waterAmplitude;
|
|
280
|
+
uniform float u_waterReflectivity;
|
|
281
|
+
uniform float u_waterGloss;
|
|
282
|
+
uniform float u_waterSun;
|
|
283
|
+
uniform vec3 u_waterSky;
|
|
284
|
+
// One scrolled phase per ripple layer, wrapped into a turn on the CPU.
|
|
285
|
+
uniform vec4 u_wavePhase;
|
|
286
|
+
uniform vec4 u_wavePhaseB;
|
|
287
|
+
// Metres the whole ripple field repeats over.
|
|
288
|
+
uniform float u_wavePeriod;
|
|
213
289
|
|
|
214
290
|
in vec2 v_st;
|
|
215
291
|
in float v_value;
|
|
216
292
|
in float v_coverage;
|
|
293
|
+
in vec3 v_positionEC;
|
|
294
|
+
in vec3 v_eastEC;
|
|
295
|
+
in vec3 v_northEC;
|
|
296
|
+
in vec3 v_upEC;
|
|
297
|
+
in vec2 v_waveMetres;
|
|
217
298
|
|
|
218
299
|
/*
|
|
219
300
|
* Scaled per channel for the same reason the vertex shader's decode is: reassembling the pair reaches
|
|
@@ -225,6 +306,82 @@ float valueAt(vec2 uv) {
|
|
|
225
306
|
return mix(texel.r, packed16, u_valuePacked);
|
|
226
307
|
}
|
|
227
308
|
|
|
309
|
+
/*
|
|
310
|
+
* Slope of the ripple field at a point, in metres of rise per metre travelled.
|
|
311
|
+
*/
|
|
312
|
+
vec2 rippleSlope(vec2 metres, float metresPerPixel, out float detail) {
|
|
313
|
+
vec2 slope = vec2(0.0);
|
|
314
|
+
detail = 0.0;
|
|
315
|
+
float amplitude = u_waterAmplitude * 0.5;
|
|
316
|
+
${WATER_WAVES.map((wave, index) => {
|
|
317
|
+
const cycles = waveCycles(wave);
|
|
318
|
+
return `
|
|
319
|
+
{
|
|
320
|
+
vec2 lattice = vec2(${wave.x.toFixed(1)}, ${wave.y.toFixed(1)});
|
|
321
|
+
float k = 6.2831853 * ${cycles.toFixed(4)} / u_wavePeriod;
|
|
322
|
+
float pixels = u_wavePeriod / ${cycles.toFixed(4)} / max(metresPerPixel, 1e-6);
|
|
323
|
+
float weight = smoothstep(${WATER_MIN_PIXELS_PER_WAVE.toFixed(1)},
|
|
324
|
+
${WATER_FULL_PIXELS_PER_WAVE.toFixed(1)}, pixels);
|
|
325
|
+
vec2 direction = lattice / ${cycles.toFixed(4)};
|
|
326
|
+
float phase = 6.2831853 * dot(lattice, metres) / u_wavePeriod
|
|
327
|
+
+ ${index < 4 ? `u_wavePhase[${index}]` : `u_wavePhaseB[${index - 4}]`};
|
|
328
|
+
slope += direction * (amplitude * ${wave.amplitude.toFixed(4)} * k * cos(phase) * weight);
|
|
329
|
+
detail += ${WATER_WAVE_SLOPES[index].toFixed(5)} * weight;
|
|
330
|
+
}`;
|
|
331
|
+
}).join("")}
|
|
332
|
+
return slope;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
/*
|
|
336
|
+
* The sheet shaded as a water surface: a flat body colour seen through a sun glint and a grazing
|
|
337
|
+
* sky reflection, with the ripple field standing in for a geometry it is far too fine to carry.
|
|
338
|
+
*/
|
|
339
|
+
vec4 water(vec3 relief, vec4 color) {
|
|
340
|
+
float metresPerPixel = czm_metersPerPixel(vec4(v_positionEC, 1.0));
|
|
341
|
+
float detail;
|
|
342
|
+
vec2 slope = rippleSlope(v_waveMetres, metresPerPixel, detail);
|
|
343
|
+
|
|
344
|
+
// relief arrives normalised, so its horizontal part over its vertical part is the slope it means.
|
|
345
|
+
vec2 reliefSlope = relief.xy / max(relief.z, 1e-3);
|
|
346
|
+
vec3 local = normalize(vec3(-(slope + reliefSlope), 1.0));
|
|
347
|
+
vec3 normalEC = normalize(local.x * v_eastEC + local.y * v_northEC + local.z * v_upEC);
|
|
348
|
+
|
|
349
|
+
vec3 view = normalize(-v_positionEC);
|
|
350
|
+
// Drawn with culling off, so the underside of the sheet arrives with its normal pointing away.
|
|
351
|
+
normalEC = dot(normalEC, view) < 0.0 ? -normalEC : normalEC;
|
|
352
|
+
vec3 sun = normalize(czm_sunDirectionEC);
|
|
353
|
+
|
|
354
|
+
// Water at a grazing angle is almost a mirror and water looked straight down is almost clear.
|
|
355
|
+
// That split is the single strongest cue that a blue surface is wet, more than any ripple is.
|
|
356
|
+
float fresnel = u_waterReflectivity
|
|
357
|
+
* (0.02 + 0.98 * pow(1.0 - clamp(dot(normalEC, view), 0.0, 1.0), 5.0));
|
|
358
|
+
|
|
359
|
+
// Softened by the roughness the shading has had to give up.
|
|
360
|
+
fresnel *= mix(0.55, 1.0, detail);
|
|
361
|
+
|
|
362
|
+
// Where the ripples have faded out the surface is not smooth, it is rough below one pixel, so
|
|
363
|
+
// the glint has to widen to cover what the normal no longer says.
|
|
364
|
+
float gloss = mix(u_waterGloss * 0.12, u_waterGloss, detail);
|
|
365
|
+
vec3 halfway = normalize(sun + view);
|
|
366
|
+
// Weighted by the same reflectance as the sky, because a glint is a reflection too.
|
|
367
|
+
float glint = pow(max(dot(normalEC, halfway), 0.0), gloss) * u_waterSun * fresnel;
|
|
368
|
+
float lambert = clamp(dot(normalEC, sun), 0.0, 1.0);
|
|
369
|
+
|
|
370
|
+
vec3 body = color.rgb * (0.55 + 0.6 * lambert);
|
|
371
|
+
vec3 lit = min(mix(body, u_waterSky, fresnel) + vec3(glint), vec3(1.0));
|
|
372
|
+
|
|
373
|
+
/*
|
|
374
|
+
* The same fog the globe under it is already drawing with.
|
|
375
|
+
*/
|
|
376
|
+
lit = czm_fog(length(v_positionEC), lit, u_waterSky);
|
|
377
|
+
|
|
378
|
+
// A reflection seen through a half-transparent sheet is not a reflection, so the surface is
|
|
379
|
+
// allowed to close up exactly where it is being reflective.
|
|
380
|
+
float alpha = color.a * v_coverage;
|
|
381
|
+
alpha = clamp(alpha + (1.0 - alpha) * (fresnel * 0.55 + glint), 0.0, 1.0);
|
|
382
|
+
return vec4(lit, alpha);
|
|
383
|
+
}
|
|
384
|
+
|
|
228
385
|
void main() {
|
|
229
386
|
if (v_coverage < u_coverageCutoff) {
|
|
230
387
|
discard;
|
|
@@ -245,6 +402,12 @@ void main() {
|
|
|
245
402
|
float up = valueAt(v_st + vec2(0.0, u_texelSize.y));
|
|
246
403
|
float scale = u_valueRange * u_exaggeration;
|
|
247
404
|
vec3 n = normalize(vec3((left - right) * scale, (down - up) * scale, 2.0 * u_metresPerTexel));
|
|
405
|
+
|
|
406
|
+
if (u_waterOn > 0.5) {
|
|
407
|
+
out_FragColor = water(n, color);
|
|
408
|
+
return;
|
|
409
|
+
}
|
|
410
|
+
|
|
248
411
|
float lambert = clamp(dot(n, normalize(vec3(-0.5, -0.6, 0.62))), 0.0, 1.0);
|
|
249
412
|
color.rgb *= 0.45 + 0.9 * lambert;
|
|
250
413
|
|
|
@@ -595,6 +758,9 @@ void main() {
|
|
|
595
758
|
this.maskGroundBox = null;
|
|
596
759
|
this.maskGroundRequested = false;
|
|
597
760
|
this.maskGroundLevel = 0;
|
|
761
|
+
this.water = null;
|
|
762
|
+
this.waterStartMs = now();
|
|
763
|
+
this.waveOrigin = new Cesium.Cartesian2(0, 0);
|
|
598
764
|
this.followGround = Boolean(options.followGround);
|
|
599
765
|
this.terrainProvider = options.terrainProvider || null;
|
|
600
766
|
this.extent = options.extent;
|
|
@@ -610,6 +776,23 @@ void main() {
|
|
|
610
776
|
this.maskFillValue = firstOpaqueStop(this.rampPixels);
|
|
611
777
|
this.tiles = buildTiles(hasCoverage);
|
|
612
778
|
this.SetGroundClearance(options.groundClearance || null);
|
|
779
|
+
this.SetWater(options.water || null);
|
|
780
|
+
}
|
|
781
|
+
GetWater() {
|
|
782
|
+
return this.water;
|
|
783
|
+
}
|
|
784
|
+
/**
|
|
785
|
+
* Shades the sheet as water, or stops. Null goes back to the relief shading.
|
|
786
|
+
*
|
|
787
|
+
* Nothing is rebuilt: no mesh, no texture and no shader, since the water path is a branch in
|
|
788
|
+
* the fragment shader the whole scene already carries. So this is cheap enough to drive from
|
|
789
|
+
* a control the user is dragging.
|
|
790
|
+
*/
|
|
791
|
+
SetWater(water) {
|
|
792
|
+
if (water && !this.water) {
|
|
793
|
+
this.waterStartMs = now();
|
|
794
|
+
}
|
|
795
|
+
this.water = water;
|
|
613
796
|
}
|
|
614
797
|
GetFollowsGround() {
|
|
615
798
|
return this.followGround;
|
|
@@ -780,6 +963,12 @@ void main() {
|
|
|
780
963
|
const mesh = this.ensureMesh(context, tile, tile.tier);
|
|
781
964
|
frameState.commandList.push(this.commandFor(context, tile, mesh));
|
|
782
965
|
}
|
|
966
|
+
if (this.water) {
|
|
967
|
+
this.updateWaveOrigin(frameState);
|
|
968
|
+
if (frameState.afterRender) {
|
|
969
|
+
frameState.afterRender.push(() => true);
|
|
970
|
+
}
|
|
971
|
+
}
|
|
783
972
|
}
|
|
784
973
|
isDestroyed() {
|
|
785
974
|
return this.destroyed;
|
|
@@ -991,6 +1180,60 @@ void main() {
|
|
|
991
1180
|
})
|
|
992
1181
|
});
|
|
993
1182
|
}
|
|
1183
|
+
/*
|
|
1184
|
+
* Metres the extent spans west to east and north to south, which is what turns the shader's
|
|
1185
|
+
* 0..1 surface coordinate into the real distance the ripple wavelength is measured in.
|
|
1186
|
+
*/
|
|
1187
|
+
extentMetres() {
|
|
1188
|
+
const southWest = Cesium.Cartesian3.fromDegrees(this.extent.West, this.extent.South, 0);
|
|
1189
|
+
const southEast = Cesium.Cartesian3.fromDegrees(this.extent.East, this.extent.South, 0);
|
|
1190
|
+
const northWest = Cesium.Cartesian3.fromDegrees(this.extent.West, this.extent.North, 0);
|
|
1191
|
+
return new Cesium.Cartesian2(Math.max(1, Cesium.Cartesian3.distance(southWest, southEast)), Math.max(1, Cesium.Cartesian3.distance(southWest, northWest)));
|
|
1192
|
+
}
|
|
1193
|
+
/*
|
|
1194
|
+
* Where each ripple layer has scrolled to, wrapped into one turn.
|
|
1195
|
+
*/
|
|
1196
|
+
wavePhase(from) {
|
|
1197
|
+
var _a;
|
|
1198
|
+
const water = this.water;
|
|
1199
|
+
if (!water) {
|
|
1200
|
+
return new Cesium.Cartesian4(0, 0, 0, 0);
|
|
1201
|
+
}
|
|
1202
|
+
const speed = (_a = water.speed) !== null && _a !== void 0 ? _a : DEFAULT_WATER_SPEED_METRES_PER_SECOND;
|
|
1203
|
+
const period = this.wavePeriod();
|
|
1204
|
+
const seconds = (now() - this.waterStartMs) / 1000;
|
|
1205
|
+
const base = waveCycles(WATER_WAVES[WATER_BASE_WAVE]);
|
|
1206
|
+
const phases = WATER_WAVES.slice(from, from + 4).map((wave) => {
|
|
1207
|
+
const cycles = waveCycles(wave);
|
|
1208
|
+
const waveNumber = 2 * Math.PI * cycles / period;
|
|
1209
|
+
const travels = Math.sqrt(base / cycles);
|
|
1210
|
+
const travelled = seconds * speed * travels * waveNumber;
|
|
1211
|
+
return travelled % (2 * Math.PI);
|
|
1212
|
+
});
|
|
1213
|
+
return new Cesium.Cartesian4(phases[0] || 0, phases[1] || 0, phases[2] || 0, phases[3] || 0);
|
|
1214
|
+
}
|
|
1215
|
+
wavePeriod() {
|
|
1216
|
+
const wavelength = (this.water && this.water.wavelength) || DEFAULT_WATER_WAVELENGTH_METRES;
|
|
1217
|
+
return wavelength * WATER_PERIOD_IN_WAVELENGTHS;
|
|
1218
|
+
}
|
|
1219
|
+
/*
|
|
1220
|
+
* The point the ripple phase is measured from, kept near the camera and snapped to a whole
|
|
1221
|
+
* number of periods in each direction.
|
|
1222
|
+
*/
|
|
1223
|
+
updateWaveOrigin(frameState) {
|
|
1224
|
+
const period = this.wavePeriod();
|
|
1225
|
+
const carto = Cesium.Cartographic.fromCartesian(frameState.camera.positionWC);
|
|
1226
|
+
if (!carto) {
|
|
1227
|
+
return;
|
|
1228
|
+
}
|
|
1229
|
+
const metres = this.extentMetres();
|
|
1230
|
+
const longitude = Cesium.Math.toDegrees(carto.longitude);
|
|
1231
|
+
const latitude = Cesium.Math.toDegrees(carto.latitude);
|
|
1232
|
+
const u = (longitude - this.extent.West) / (this.extent.East - this.extent.West);
|
|
1233
|
+
// North is v zero, the way the vertex shader places the surface.
|
|
1234
|
+
const v = (this.extent.North - latitude) / (this.extent.North - this.extent.South);
|
|
1235
|
+
this.waveOrigin = new Cesium.Cartesian2(Math.floor(u * metres.x / period) * period, Math.floor(v * metres.y / period) * period);
|
|
1236
|
+
}
|
|
994
1237
|
/*
|
|
995
1238
|
* Ground distance between neighbouring texels, so the shading normal is built from a real
|
|
996
1239
|
* slope rather than a made up one.
|
|
@@ -1217,7 +1460,33 @@ void main() {
|
|
|
1217
1460
|
: 0,
|
|
1218
1461
|
u_coverageCutoff: () => COVERAGE_CUTOFF,
|
|
1219
1462
|
u_rampTexture: () => self.rampTexture,
|
|
1220
|
-
u_texelSize: () => new Cesium.Cartesian2(1 / self.source.width, 1 / self.source.height)
|
|
1463
|
+
u_texelSize: () => new Cesium.Cartesian2(1 / self.source.width, 1 / self.source.height),
|
|
1464
|
+
u_waterOn: () => (self.water ? 1 : 0),
|
|
1465
|
+
u_waterWavelength: () => (self.water && self.water.wavelength)
|
|
1466
|
+
|| DEFAULT_WATER_WAVELENGTH_METRES,
|
|
1467
|
+
u_waterAmplitude: () => {
|
|
1468
|
+
var _a;
|
|
1469
|
+
return (_a = (self.water && self.water.amplitude)) !== null && _a !== void 0 ? _a : DEFAULT_WATER_AMPLITUDE_METRES;
|
|
1470
|
+
},
|
|
1471
|
+
u_waterReflectivity: () => {
|
|
1472
|
+
var _a;
|
|
1473
|
+
return (_a = (self.water && self.water.reflectivity)) !== null && _a !== void 0 ? _a : DEFAULT_WATER_REFLECTIVITY;
|
|
1474
|
+
},
|
|
1475
|
+
u_waterGloss: () => (self.water && self.water.glossiness)
|
|
1476
|
+
|| DEFAULT_WATER_GLOSSINESS,
|
|
1477
|
+
u_waterSun: () => {
|
|
1478
|
+
var _a;
|
|
1479
|
+
return (_a = (self.water && self.water.sunIntensity)) !== null && _a !== void 0 ? _a : DEFAULT_WATER_SUN_INTENSITY;
|
|
1480
|
+
},
|
|
1481
|
+
u_waterSky: () => {
|
|
1482
|
+
const sky = (self.water && self.water.skyColor) || DEFAULT_WATER_SKY_COLOR;
|
|
1483
|
+
return new Cesium.Cartesian3(sky.red / 255, sky.green / 255, sky.blue / 255);
|
|
1484
|
+
},
|
|
1485
|
+
u_wavePhase: () => self.wavePhase(0),
|
|
1486
|
+
u_wavePhaseB: () => self.wavePhase(4),
|
|
1487
|
+
u_wavePeriod: () => self.wavePeriod(),
|
|
1488
|
+
u_waveOrigin: () => self.waveOrigin,
|
|
1489
|
+
u_extentMetres: () => self.extentMetres()
|
|
1221
1490
|
}
|
|
1222
1491
|
});
|
|
1223
1492
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"displaced-surface-primitive.js","sourceRoot":"","sources":["../../../src/rendering/displaced-surface-primitive.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"displaced-surface-primitive.js","sourceRoot":"","sources":["../../../src/rendering/displaced-surface-primitive.ts"],"names":[],"mappings":"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"}
|
|
@@ -622,6 +622,23 @@ var EntityRenderEnginePolygon;
|
|
|
622
622
|
return touched;
|
|
623
623
|
}
|
|
624
624
|
EntityRenderEnginePolygon.SetGroundClearance = SetGroundClearance;
|
|
625
|
+
/**
|
|
626
|
+
* Shades every rendered polygon in a set as water rather than as a coloured surface.
|
|
627
|
+
* @param cEntities
|
|
628
|
+
* @param water Pass null to go back to the relief shading.
|
|
629
|
+
*/
|
|
630
|
+
function SetWater(cEntities, water) {
|
|
631
|
+
let touched = 0;
|
|
632
|
+
for (const cEntity of cEntities || []) {
|
|
633
|
+
const surface = GetDisplacedSurface(cEntity);
|
|
634
|
+
if (surface) {
|
|
635
|
+
surface.SetWater(water);
|
|
636
|
+
touched++;
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
return touched;
|
|
640
|
+
}
|
|
641
|
+
EntityRenderEnginePolygon.SetWater = SetWater;
|
|
625
642
|
/**
|
|
626
643
|
* Disposes a cEntity's TextureFrameSeriesAnimator.Animator (if any).
|
|
627
644
|
*/
|
|
@@ -779,6 +796,7 @@ function syncDisplacedSurface(params) {
|
|
|
779
796
|
if (reusable && existingSurface.GetFollowsGround() === placement.followGround) {
|
|
780
797
|
existingSurface.SetBaseHeight(placement.baseHeight);
|
|
781
798
|
existingSurface.SetExaggeration(exaggerationFor(style));
|
|
799
|
+
existingSurface.SetWater(waterFor(style));
|
|
782
800
|
return;
|
|
783
801
|
}
|
|
784
802
|
disposeDisplacedSurface(cEntity, viewer);
|
|
@@ -818,6 +836,7 @@ function syncDisplacedSurface(params) {
|
|
|
818
836
|
valueMax: extrusionArchive.metadata.ValueMax,
|
|
819
837
|
packedValue: texture_frame_series_animator_1.TextureFrameSeriesAnimator.IsPackedValue(extrusionArchive.metadata),
|
|
820
838
|
exaggeration: exaggerationFor(style),
|
|
839
|
+
water: waterFor(style),
|
|
821
840
|
lowColor: mask ? bruce_models_1.Color.ColorFromStr(mask.minColor) : null,
|
|
822
841
|
highColor: mask ? bruce_models_1.Color.ColorFromStr(mask.maxColor) : null,
|
|
823
842
|
// Normalised the same way the animator normalises them, so the surface and the flat drape
|
|
@@ -863,6 +882,14 @@ function exaggerationFor(style) {
|
|
|
863
882
|
}
|
|
864
883
|
return 1;
|
|
865
884
|
}
|
|
885
|
+
const WATER_EFFECT = "WATER";
|
|
886
|
+
/*
|
|
887
|
+
* The water settings a style asks a displaced surface for, or null for the plain relief shading.
|
|
888
|
+
*/
|
|
889
|
+
function waterFor(style) {
|
|
890
|
+
var _a;
|
|
891
|
+
return ((_a = style.effect) === null || _a === void 0 ? void 0 : _a.type) === WATER_EFFECT ? {} : null;
|
|
892
|
+
}
|
|
866
893
|
/*
|
|
867
894
|
* The lon/lat bounding rectangle of a ring, which is the frame Cesium drapes an image material in.
|
|
868
895
|
*/
|