From 3c5e958658d1399391d12b7b2a97a8404bbe0a66 Mon Sep 17 00:00:00 2001 From: Larrieu Vivian Date: Fri, 21 Jun 2024 01:07:34 +0200 Subject: [PATCH] Add an Atmosphere layer for Globe (#3888) (#4020) * Port of PoC atmosphere layer. * Fix resize for draw_atmosphere * Add some options. * Allow to change sun date and time * Fix import warning * Render atmosphere only when a Globe projection is selected * Add some comments * Add some comments * Change key * Update changelog * Fix merge with globe branch * Fix documentation and default background color. * Use black clear color only when atmosphere is on * Use atmosphere uniform for globe position, raidus in camera frame and inv projection matrix. * Remove unused project method * Update maplibre-gl-style-spec to 20.3.0 and use sky atmosphere parameter * Fix globe tests and use light position as Sun position. * Avoid type name collisions. * Add atmosphere test for globe projection. * Update expectedBytes for build test. * Fix PR comments. * Update Style test. * Remove unused method on projection * Add Sky Test. * Fix style test and add sky unit test. * Move getSunPos method * Fix mercator updateProjection * Remove isGlobe method and fix merge. * Fix globe atmosphere tests with new projection style. * Clean-up some projection and light. Fix setSky and add tests. * Remove sky test during update. * Clean-up --- CHANGELOG.md | 1 + build/generate-struct-arrays.ts | 4 + src/data/atmosphere_attributes.ts | 5 + src/geo/projection/globe.ts | 60 +++++-- src/geo/projection/mercator.ts | 32 +++- src/geo/projection/projection.ts | 15 ++ src/render/draw_atmosphere.ts | 80 +++++++++ src/render/painter.ts | 6 + src/render/program/atmosphere_program.ts | 35 ++++ src/render/program/program_uniforms.ts | 2 + src/render/program/projection_program.ts | 6 +- src/shaders/atmosphere.fragment.glsl | 168 ++++++++++++++++++ src/shaders/atmosphere.vertex.glsl | 11 ++ src/shaders/shaders.ts | 5 +- src/style/sky.test.ts | 85 +++++++++ src/style/sky.ts | 91 ++++++++++ src/style/style.test.ts | 43 +++++ src/style/style.ts | 47 ++++- src/style/validate_style.ts | 2 + src/ui/map.ts | 29 ++- src/ui/map_tests/map_sky.test.ts | 42 +++++ test/build/min.test.ts | 2 +- test/examples/globe-atmosphere.html | 63 +++++++ .../atmosphere-blend/base/expected.png | Bin 0 -> 71364 bytes .../atmosphere-blend/base/style.json | 49 +++++ .../interpolate-to-0.5/expected.png | Bin 0 -> 4784 bytes .../interpolate-to-0.5/style.json | 56 ++++++ .../interpolate-to-0/expected.png | Bin 0 -> 1952 bytes .../interpolate-to-0/style.json | 56 ++++++ .../interpolate-to-1/expected.png | Bin 0 -> 2719 bytes .../interpolate-to-1/style.json | 56 ++++++ .../globe/atmosphere/base/expected.png | Bin 0 -> 66378 bytes .../globe/atmosphere/base/style.json | 45 +++++ .../light-position-map/expected.png | Bin 0 -> 61718 bytes .../atmosphere/light-position-map/style.json | 49 +++++ .../ligth-position-viewport/expected.png | Bin 0 -> 72297 bytes .../ligth-position-viewport/style.json | 49 +++++ .../globe/atmosphere/zoom/expected.png | Bin 0 -> 10227 bytes .../globe/atmosphere/zoom/style.json | 49 +++++ .../globe/background-pattern/style.json | 3 + .../projection/globe/background/style.json | 3 + .../map-scale-map/style.json | 3 + .../map-scale-viewport/style.json | 3 + .../viewport-scale-map/style.json | 3 + .../viewport-scale-viewport/style.json | 3 + .../projection/globe/circle-planet/style.json | 3 + .../style.json | 3 + .../style.json | 3 + .../collision-text-pitched-rotated/style.json | 3 + .../style.json | 3 + .../base/style.json | 3 + .../pitched-and-rotated/style.json | 3 + .../pitched/style.json | 3 + .../rotated/style.json | 3 + .../globe/fill-extrusion-translate/style.json | 3 + .../globe/fill-extrusion/style.json | 3 + .../globe/fill-planet-pitched/style.json | 3 + .../globe/fill-planet-pole/style.json | 3 + .../globe/fill-planet-solid/style.json | 3 + .../globe/fill-planet-tiles/style.json | 3 + .../globe/fill-seams/checkerboard/style.json | 3 + .../globe/fill-seams/ocean/style.json | 3 + .../globe/fill-translate/style.json | 3 + .../tests/projection/globe/heatmap/style.json | 3 + .../projection/globe/hillshade/style.json | 3 + .../globe/icon-text-translate-map/style.json | 3 + .../icon-text-translate-viewport/style.json | 3 + .../tests/projection/globe/image/style.json | 3 + .../projection/globe/line-gradient/style.json | 3 + .../projection/globe/line-spiral/style.json | 3 + .../globe/line-translate/style.json | 3 + .../projection/globe/raster-planet/style.json | 3 + .../projection/globe/raster-pole/style.json | 3 + .../globe/text-line-pole-to-pole/style.json | 3 + .../globe/text-pitched-rotated/style.json | 3 + .../globe/text-point-pole-to-pole/style.json | 3 + .../text-variable-anchor/base/style.json | 3 + .../pitched-and-rotated/style.json | 3 + .../text-variable-anchor/pitched/style.json | 3 + .../text-variable-anchor/rotated/style.json | 3 + .../globe/zoom-transition/style.json | 3 + 81 files changed, 1345 insertions(+), 24 deletions(-) create mode 100644 src/data/atmosphere_attributes.ts create mode 100644 src/render/draw_atmosphere.ts create mode 100644 src/render/program/atmosphere_program.ts create mode 100644 src/shaders/atmosphere.fragment.glsl create mode 100644 src/shaders/atmosphere.vertex.glsl create mode 100644 src/style/sky.test.ts create mode 100644 src/style/sky.ts create mode 100644 src/ui/map_tests/map_sky.test.ts create mode 100644 test/examples/globe-atmosphere.html create mode 100644 test/integration/render/tests/projection/globe/atmosphere/atmosphere-blend/base/expected.png create mode 100644 test/integration/render/tests/projection/globe/atmosphere/atmosphere-blend/base/style.json create mode 100644 test/integration/render/tests/projection/globe/atmosphere/atmosphere-blend/interpolate-to-0.5/expected.png create mode 100644 test/integration/render/tests/projection/globe/atmosphere/atmosphere-blend/interpolate-to-0.5/style.json create mode 100644 test/integration/render/tests/projection/globe/atmosphere/atmosphere-blend/interpolate-to-0/expected.png create mode 100644 test/integration/render/tests/projection/globe/atmosphere/atmosphere-blend/interpolate-to-0/style.json create mode 100644 test/integration/render/tests/projection/globe/atmosphere/atmosphere-blend/interpolate-to-1/expected.png create mode 100644 test/integration/render/tests/projection/globe/atmosphere/atmosphere-blend/interpolate-to-1/style.json create mode 100644 test/integration/render/tests/projection/globe/atmosphere/base/expected.png create mode 100644 test/integration/render/tests/projection/globe/atmosphere/base/style.json create mode 100644 test/integration/render/tests/projection/globe/atmosphere/light-position-map/expected.png create mode 100644 test/integration/render/tests/projection/globe/atmosphere/light-position-map/style.json create mode 100644 test/integration/render/tests/projection/globe/atmosphere/ligth-position-viewport/expected.png create mode 100644 test/integration/render/tests/projection/globe/atmosphere/ligth-position-viewport/style.json create mode 100644 test/integration/render/tests/projection/globe/atmosphere/zoom/expected.png create mode 100644 test/integration/render/tests/projection/globe/atmosphere/zoom/style.json diff --git a/CHANGELOG.md b/CHANGELOG.md index f57d47a8ce..c5df143680 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ - "Accept" headers set in Request Transformers are not overwritten ([#4210](https://github.com/maplibre/maplibre-gl-js/pull/4210)) - ⚠️ Rename projMatrix to modelViewProjectionMatrix. Also rename invProjMatrix, alignedProjMatrix accordingly ([#4215](https://github.com/maplibre/maplibre-gl-js/pull/4215)) - Publish an unminified prod build ([#4265](https://github.com/maplibre/maplibre-gl-js/pull/4265)) +- Add option to display a realistic atmosphere when using a Globe projection ([#3888](https://github.com/maplibre/maplibre-gl-js/issues/3888)) ### 🐞 Bug fixes diff --git a/build/generate-struct-arrays.ts b/build/generate-struct-arrays.ts index ab2dc0effb..bd26b8a209 100644 --- a/build/generate-struct-arrays.ts +++ b/build/generate-struct-arrays.ts @@ -22,6 +22,7 @@ import fillExtrusionAttributes from '../src/data/bucket/fill_extrusion_attribute import {lineLayoutAttributes} from '../src/data/bucket/line_attributes'; import {lineLayoutAttributesExt} from '../src/data/bucket/line_attributes_ext'; import {patternAttributes} from '../src/data/bucket/pattern_attributes'; +import {atmosphereAttributes} from '../src/data/atmosphere_attributes'; // symbol layer specific arrays import { symbolLayoutAttributes, @@ -191,6 +192,9 @@ createStructArrayType('line_strip_index', createLayout([ {type: 'Uint16', name: 'vertices', components: 1} ])); +// atmosphere bounds array +createStructArrayType('atmosphere_bounds', atmosphereAttributes); + // paint vertex arrays // used by SourceBinder for float properties diff --git a/src/data/atmosphere_attributes.ts b/src/data/atmosphere_attributes.ts new file mode 100644 index 0000000000..322e637470 --- /dev/null +++ b/src/data/atmosphere_attributes.ts @@ -0,0 +1,5 @@ +import {createLayout} from '../util/struct_array'; + +export const atmosphereAttributes = createLayout([ + {name: 'a_pos', type: 'Float32', components: 4} +]); diff --git a/src/geo/projection/globe.ts b/src/geo/projection/globe.ts index d818be5960..add1f4baf4 100644 --- a/src/geo/projection/globe.ts +++ b/src/geo/projection/globe.ts @@ -72,11 +72,19 @@ export class GlobeProjection implements Projection { private _globeProjectionOverride = true; + private _globeMatrix: mat4 = mat4.create(); + private _globeMatrixNoCorrection: mat4 = mat4.create(); private _globeProjMatrix: mat4 = mat4.create(); private _globeProjMatrixNoCorrection: mat4 = mat4.create(); private _cameraPosition: vec3 = [0, 0, 0]; + private _globePosition: vec3 = [0, 0, 0]; + private _globeRadiusPixels: number = 0.0; + + private _projMatrix: mat4 = mat4.create(); + private _invProjMatrix: mat4 = mat4.create(); + get name(): string { return 'globe'; } @@ -129,6 +137,18 @@ export class GlobeProjection implements Projection { return granularitySettingsGlobe; } + get worldCenterPosition(): vec3 { + return this._globePosition; + } + + get worldSize(): number { + return this._globeRadiusPixels; + } + + get invProjMatrix(): mat4 { + return this._invProjMatrix; + } + /** * Returns whether globe view is allowed. * When allowed, globe fill function as normal, displaying a 3D planet, @@ -193,41 +213,55 @@ export class GlobeProjection implements Projection { // We want zoom levels to be consistent between globe and flat views. // This means that the pixel size of features at the map center point // should be the same for both globe and flat view. - const globeRadiusPixels = transform.worldSize / (2.0 * Math.PI) / Math.cos(transform.center.lat * Math.PI / 180); + this._globeRadiusPixels = transform.worldSize / (2.0 * Math.PI) / Math.cos(transform.center.lat * Math.PI / 180); + + mat4.perspective(this._projMatrix, transform.fov * Math.PI / 180, transform.width / transform.height, 0.5, transform.cameraToCenterDistance + this._globeRadiusPixels * 2.0); // just set the far plane far enough - we will calculate our own z in the vertex shader anyway + const invProjMatrix = mat4.create(); + mat4.invert(invProjMatrix, this._projMatrix); + this._invProjMatrix = invProjMatrix; // Construct a completely separate matrix for globe view - const globeMatrix = new Float64Array(16) as any; - const globeMatrixUncorrected = new Float64Array(16) as any; - mat4.perspective(globeMatrix, transform.fov * Math.PI / 180, transform.width / transform.height, 0.5, transform.cameraToCenterDistance + globeRadiusPixels * 2.0); // just set the far plane far enough - we will calculate our own z in the vertex shader anyway + const globeMatrix = mat4.identity(new Float64Array(16) as any); mat4.translate(globeMatrix, globeMatrix, [0, 0, -transform.cameraToCenterDistance]); mat4.rotateX(globeMatrix, globeMatrix, -transform.pitch * Math.PI / 180); mat4.rotateZ(globeMatrix, globeMatrix, -transform.angle); - mat4.translate(globeMatrix, globeMatrix, [0.0, 0, -globeRadiusPixels]); + mat4.translate(globeMatrix, globeMatrix, [0.0, 0, -this._globeRadiusPixels]); // Rotate the sphere to center it on viewed coordinates // Keep a atan-correction-free matrix for transformations done on the CPU with accurate math + const globeMatrixUncorrected = new Float64Array(16) as any; mat4.rotateX(globeMatrixUncorrected, globeMatrix, transform.center.lat * Math.PI / 180.0); mat4.rotateY(globeMatrixUncorrected, globeMatrixUncorrected, -transform.center.lng * Math.PI / 180.0); - mat4.scale(globeMatrixUncorrected, globeMatrixUncorrected, [globeRadiusPixels, globeRadiusPixels, globeRadiusPixels]); // Scale the unit sphere to a sphere with diameter of 1 - this._globeProjMatrixNoCorrection = globeMatrix; + mat4.scale(globeMatrixUncorrected, globeMatrixUncorrected, [this._globeRadiusPixels, this._globeRadiusPixels, this._globeRadiusPixels]); // Scale the unit sphere to a sphere with diameter of 1 + mat4.copy(this._globeMatrixNoCorrection, globeMatrixUncorrected); + mat4.mul(this._globeProjMatrixNoCorrection, this._projMatrix, this._globeMatrixNoCorrection); mat4.rotateX(globeMatrix, globeMatrix, transform.center.lat * Math.PI / 180.0 - this._errorCorrectionUsable); mat4.rotateY(globeMatrix, globeMatrix, -transform.center.lng * Math.PI / 180.0); - mat4.scale(globeMatrix, globeMatrix, [globeRadiusPixels, globeRadiusPixels, globeRadiusPixels]); // Scale the unit sphere to a sphere with diameter of 1 + mat4.scale(this._globeMatrix, globeMatrix, [this._globeRadiusPixels, this._globeRadiusPixels, this._globeRadiusPixels]); // Scale the unit sphere to a sphere with diameter of 1 + mat4.mul(globeMatrix, this._projMatrix, this._globeMatrix); this._globeProjMatrix = globeMatrix; - const invProj = mat4.create(); - mat4.invert(invProj, globeMatrix); + const invGlobeProj = mat4.create(); + mat4.invert(invGlobeProj, this._globeProjMatrix); const cameraPos: vec4 = [0, 0, -1, 1]; - vec4.transformMat4(cameraPos, cameraPos, invProj); + vec4.transformMat4(cameraPos, cameraPos, invGlobeProj); this._cameraPosition = [ cameraPos[0] / cameraPos[3], cameraPos[1] / cameraPos[3], cameraPos[2] / cameraPos[3] ]; - this._cachedClippingPlane = this._computeClippingPlane(transform, globeRadiusPixels); + const globePos: vec4 = [0, 0, 0, 1]; + vec4.transformMat4(globePos, globePos, this._globeMatrix); + this._globePosition = [ + globePos[0] / globePos[3], + globePos[1] / globePos[3], + globePos[2] / globePos[3] + ]; + + this._cachedClippingPlane = this._computeClippingPlane(transform, this._globeRadiusPixels); } public getProjectionData(canonicalTileCoords: {x: number; y: number; z: number}, tilePosMatrix: mat4, useAtanCorrection: boolean = true): ProjectionData { @@ -391,7 +425,7 @@ export class GlobeProjection implements Projection { } public transformLightDirection(transform: { center: LngLat }, dir: vec3): vec3 { - const sphereX = transform.center.lng * Math.PI / 180.0; + const sphereX = -transform.center.lng * Math.PI / 180.0; const sphereY = transform.center.lat * Math.PI / 180.0; const len = Math.cos(sphereY); diff --git a/src/geo/projection/mercator.ts b/src/geo/projection/mercator.ts index 2f32d10d39..7117858315 100644 --- a/src/geo/projection/mercator.ts +++ b/src/geo/projection/mercator.ts @@ -19,8 +19,11 @@ export const MercatorShaderDefine = '#define PROJECTION_MERCATOR'; export const MercatorShaderVariantKey = 'mercator'; export class MercatorProjection implements Projection { - private _cachedMesh: Mesh = null; + private _cachedMesh: Mesh | null = null; private _cameraPosition: vec3 = [0, 0, 0]; + private _worldCenterPosition: vec3 = [0, 0, 0]; + private _worldSize: number = 0; + private _invProjMatrix: mat4 = mat4.create(); get name(): string { return 'mercator'; @@ -64,6 +67,18 @@ export class MercatorProjection implements Projection { return SubdivisionGranularitySetting.noSubdivision; } + get worldCenterPosition(): vec3 { + return this._worldCenterPosition; + } + + get worldSize(): number { + return this._worldSize; + } + + get invProjMatrix(): mat4 { + return this._invProjMatrix; + } + public isRenderingDirty(): boolean { // Mercator projection does no animations of its own, so rendering is never dirty from its perspective. return false; @@ -77,14 +92,25 @@ export class MercatorProjection implements Projection { // Do nothing. } - public updateProjection(t: { invModelViewProjectionMatrix: mat4 }): void { + public updateProjection(transform: TransformLike): void { + this._worldSize = transform.worldSize; + this._invProjMatrix = mat4.clone(transform.invModelViewProjectionMatrix); + const cameraPos: vec4 = [0, 0, -1, 1]; - vec4.transformMat4(cameraPos, cameraPos, t.invModelViewProjectionMatrix); + vec4.transformMat4(cameraPos, cameraPos, transform.invModelViewProjectionMatrix); this._cameraPosition = [ cameraPos[0] / cameraPos[3], cameraPos[1] / cameraPos[3], cameraPos[2] / cameraPos[3] ]; + + const worldPos: vec4 = [0, 0, 0, 1]; + vec4.transformMat4(worldPos, worldPos, transform.invModelViewProjectionMatrix); + this._worldCenterPosition = [ + worldPos[0] / worldPos[3], + worldPos[1] / worldPos[3], + worldPos[2] / worldPos[3] + ]; } public getProjectionData(canonicalTileCoords: {x: number; y: number; z: number}, tilePosMatrix: mat4): ProjectionData { diff --git a/src/geo/projection/projection.ts b/src/geo/projection/projection.ts index 48104fc19f..9836f64dbb 100644 --- a/src/geo/projection/projection.ts +++ b/src/geo/projection/projection.ts @@ -92,6 +92,21 @@ export interface Projection { */ get vertexShaderPreludeCode(): string; + /** + * World center in camera frame. + */ + get worldCenterPosition(): vec3; + + /** + * World size in pixel. + */ + get worldSize(): number; + + /** + * Inverse projection matrix from camera to clip plane. + */ + get invProjMatrix(): mat4; + /** * @internal * An object describing how much subdivision should be applied to rendered geometry. diff --git a/src/render/draw_atmosphere.ts b/src/render/draw_atmosphere.ts new file mode 100644 index 0000000000..0f788a54d3 --- /dev/null +++ b/src/render/draw_atmosphere.ts @@ -0,0 +1,80 @@ +import {StencilMode} from '../gl/stencil_mode'; +import {DepthMode} from '../gl/depth_mode'; +import {CullFaceMode} from '../gl/cull_face_mode'; +import {atmosphereUniformValues} from './program/atmosphere_program'; + +import type {Painter} from './painter'; +import {ColorMode} from '../gl/color_mode'; +import Sky from '../style/sky'; +import {Light} from '../style/light'; +import {AtmosphereBoundsArray, TriangleIndexArray} from '../data/array_types.g'; +import {atmosphereAttributes} from '../data/atmosphere_attributes'; +import {Mesh} from './mesh'; +import {SegmentVector} from '../data/segment'; +import {Transform} from '../geo/transform'; +import {mat4, vec3} from 'gl-matrix'; + +function getSunPos(light: Light, transform: Transform): vec3 { + const _lp = light.properties.get('position'); + const lightPos = [-_lp.x, -_lp.y, -_lp.z] as vec3; + + const lightMat = mat4.identity(new Float64Array(16) as any); + + if (light.properties.get('anchor') === 'map') { + mat4.rotateX(lightMat, lightMat, -transform.pitch * Math.PI / 180); + mat4.rotateZ(lightMat, lightMat, -transform.angle); + mat4.rotateX(lightMat, lightMat, transform.center.lat * Math.PI / 180.0); + mat4.rotateY(lightMat, lightMat, -transform.center.lng * Math.PI / 180.0); + } + + vec3.transformMat4(lightPos, lightPos, lightMat); + + return lightPos; +} + +export function drawAtmosphere(painter: Painter, sky: Sky, light: Light) { + const context = painter.context; + const gl = context.gl; + const program = painter.useProgram('atmosphere'); + const depthMode = new DepthMode(gl.LEQUAL, DepthMode.ReadOnly, [0, 1]); + + const projection = painter.style.projection; + const projectionData = projection.getProjectionData(null, null); + + const sunPos = getSunPos(light, painter.transform); + + const atmosphereBlend = sky.getAtmosphereBlend(); + if (atmosphereBlend === 0) { + // Don't draw anythink if atmosphere is fully transparent + return; + } + + const globePosition = projection.worldCenterPosition; + const globeRadius = projection.worldSize; + const invProjMatrix = projection.invProjMatrix; + + const uniformValues = atmosphereUniformValues(sunPos, atmosphereBlend, globePosition, globeRadius, invProjMatrix); + + // Create the atmosphere mesh the first time we need it + if (!sky.atmosphereMesh) { + const vertexArray = new AtmosphereBoundsArray(); + vertexArray.emplaceBack(-1, -1, 0.0, 1.0); + vertexArray.emplaceBack(+1, -1, 0.0, 1.0); + vertexArray.emplaceBack(+1, +1, 0.0, 1.0); + vertexArray.emplaceBack(-1, +1, 0.0, 1.0); + + const indexArray = new TriangleIndexArray(); + indexArray.emplaceBack(0, 1, 2); + indexArray.emplaceBack(0, 2, 3); + + sky.atmosphereMesh = new Mesh( + context.createVertexBuffer(vertexArray, atmosphereAttributes.members), + context.createIndexBuffer(indexArray), + SegmentVector.simpleSegment(0, 0, vertexArray.length, indexArray.length) + ); + } + + const mesh = sky.atmosphereMesh; + + program.draw(context, gl.TRIANGLES, depthMode, StencilMode.disabled, ColorMode.alphaBlended, CullFaceMode.disabled, uniformValues, null, projectionData, 'atmosphere', mesh.vertexBuffer, mesh.indexBuffer, mesh.segments); +} diff --git a/src/render/painter.ts b/src/render/painter.ts index be233f55b1..46247ab879 100644 --- a/src/render/painter.ts +++ b/src/render/painter.ts @@ -27,6 +27,7 @@ import {drawFillExtrusion} from './draw_fill_extrusion'; import {drawHillshade} from './draw_hillshade'; import {drawRaster} from './draw_raster'; import {drawBackground} from './draw_background'; +import {drawAtmosphere} from './draw_atmosphere'; import {drawDebug, drawDebugPadding, selectDebugSource} from './draw_debug'; import {drawCustom} from './draw_custom'; import {drawDepth, drawCoords} from './draw_terrain'; @@ -536,6 +537,11 @@ export class Painter { this.renderLayer(this, sourceCache, layer, coords); } + // Render atmosphere, only for Globe projection + if (this.style.projection.name === 'globe') { + drawAtmosphere(this, this.style.sky, this.style.light); + } + if (this.options.showTileBoundaries) { const selectedSource = selectDebugSource(this.style, this.transform.zoom); if (selectedSource) { diff --git a/src/render/program/atmosphere_program.ts b/src/render/program/atmosphere_program.ts new file mode 100644 index 0000000000..b0d4f301b5 --- /dev/null +++ b/src/render/program/atmosphere_program.ts @@ -0,0 +1,35 @@ +import type {Context} from '../../gl/context'; +import {UniformValues, UniformLocations, Uniform1f, Uniform3f, UniformMatrix4f} from '../uniform_binding'; +import {mat4, vec3} from 'gl-matrix'; + +export type atmosphereUniformsType = { + 'u_sun_pos': Uniform3f; + 'u_atmosphere_blend': Uniform1f; + 'u_globe_position': Uniform3f; + 'u_globe_radius': Uniform1f; + 'u_inv_proj_matrix': UniformMatrix4f; +}; + +const atmosphereUniforms = (context: Context, locations: UniformLocations): atmosphereUniformsType => ({ + 'u_sun_pos': new Uniform3f(context, locations.u_sun_pos), + 'u_atmosphere_blend': new Uniform1f(context, locations.u_atmosphere_blend), + 'u_globe_position': new Uniform3f(context, locations.u_globe_position), + 'u_globe_radius': new Uniform1f(context, locations.u_globe_radius), + 'u_inv_proj_matrix': new UniformMatrix4f(context, locations.u_inv_proj_matrix), +}); + +const atmosphereUniformValues = ( + sunPos: vec3, + atmosphereBlend: number, + globePosition: vec3, + globeRadius: number, + invProjMatrix: mat4, +): UniformValues => ({ + 'u_sun_pos': sunPos, + 'u_atmosphere_blend': atmosphereBlend, + 'u_globe_position': globePosition, + 'u_globe_radius': globeRadius, + 'u_inv_proj_matrix': invProjMatrix, +}); + +export {atmosphereUniforms, atmosphereUniformValues}; diff --git a/src/render/program/program_uniforms.ts b/src/render/program/program_uniforms.ts index 1ee3e76780..9d34331e41 100644 --- a/src/render/program/program_uniforms.ts +++ b/src/render/program/program_uniforms.ts @@ -11,6 +11,7 @@ import {symbolIconUniforms, symbolSDFUniforms, symbolTextAndIconUniforms} from ' import {backgroundUniforms, backgroundPatternUniforms} from './background_program'; import {terrainUniforms, terrainDepthUniforms, terrainCoordsUniforms} from './terrain_program'; import {projectionErrorMeasurementUniforms} from './projection_error_measurement_program'; +import {atmosphereUniforms} from './atmosphere_program'; const emptyUniforms = (_: any, __: any): any => {}; @@ -44,4 +45,5 @@ export const programUniforms = { terrainDepth: terrainDepthUniforms, terrainCoords: terrainCoordsUniforms, projectionErrorMeasurement: projectionErrorMeasurementUniforms, + atmosphere: atmosphereUniforms, }; diff --git a/src/render/program/projection_program.ts b/src/render/program/projection_program.ts index 27e391037e..378502bf79 100644 --- a/src/render/program/projection_program.ts +++ b/src/render/program/projection_program.ts @@ -1,6 +1,6 @@ -import {Uniform1f, Uniform4f, UniformLocations, UniformMatrix4f} from '../uniform_binding'; +import {Uniform1f, Uniform3f, Uniform4f, UniformLocations, UniformMatrix4f} from '../uniform_binding'; import {Context} from '../../gl/context'; -import {mat4} from 'gl-matrix'; +import {mat4, vec3} from 'gl-matrix'; export type ProjectionPreludeUniformsType = { 'u_projection_matrix': UniformMatrix4f; @@ -15,7 +15,7 @@ export const projectionUniforms = (context: Context, locations: UniformLocations 'u_projection_tile_mercator_coords': new Uniform4f(context, locations.u_projection_tile_mercator_coords), 'u_projection_clipping_plane': new Uniform4f(context, locations.u_projection_clipping_plane), 'u_projection_transition': new Uniform1f(context, locations.u_projection_transition), - 'u_projection_fallback_matrix': new UniformMatrix4f(context, locations.u_projection_fallback_matrix) + 'u_projection_fallback_matrix': new UniformMatrix4f(context, locations.u_projection_fallback_matrix), }); export type ProjectionData = { diff --git a/src/shaders/atmosphere.fragment.glsl b/src/shaders/atmosphere.fragment.glsl new file mode 100644 index 0000000000..813b16de1e --- /dev/null +++ b/src/shaders/atmosphere.fragment.glsl @@ -0,0 +1,168 @@ +in vec3 view_direction; + +uniform vec3 u_sun_pos; +uniform vec3 u_globe_position; +uniform float u_globe_radius; +uniform float u_atmosphere_blend; + +/* + * Shader use from https://github.com/wwwtyro/glsl-atmosphere + * Made some change to adapt to MapLibre Globe geometry + */ + +const float PI = 3.141592653589793; +const int iSteps = 5; +const int jSteps = 3; + +/* radius of the planet */ +const float EARTH_RADIUS = 6371e3; +/* radius of the atmosphere */ +const float ATMOS_RADIUS = 6471e3; + +vec2 rsi(vec3 r0, vec3 rd, float sr) { + // ray-sphere intersection that assumes + // the sphere is centered at the origin. + // No intersection when result.x > result.y + float a = dot(rd, rd); + float b = 2.0 * dot(rd, r0); + float c = dot(r0, r0) - (sr * sr); + float d = (b*b) - 4.0*a*c; + if (d < 0.0) return vec2(1e5,-1e5); + return vec2( + (-b - sqrt(d))/(2.0*a), + (-b + sqrt(d))/(2.0*a) + ); +} + + +vec4 atmosphere(vec3 r, vec3 r0, vec3 pSun, float iSun, float rPlanet, float rAtmos, vec3 kRlh, float kMie, float shRlh, float shMie, float g) { + // Normalize the sun and view directions. + pSun = normalize(pSun); + r = normalize(r); + + // Calculate the step size of the primary ray. + vec2 p = rsi(r0, r, rAtmos); + if (p.x > p.y) return vec4(0,0,0,0); + + if (p.x < 0.0) { + p.x = 0.0; + } + + vec3 pos = r0 + r * p.x; + + vec2 p2 = rsi(r0, r, rPlanet); + if (p2.x <= p2.y && p2.x > 0.0) { + p.y = min(p.y, p2.x); + } + float iStepSize = (p.y - p.x) / float(iSteps); + + // Initialize the primary ray time. + float iTime = p.x + iStepSize * 0.5; + + // Initialize accumulators for Rayleigh and Mie scattering. + vec3 totalRlh = vec3(0,0,0); + vec3 totalMie = vec3(0,0,0); + + // Initialize optical depth accumulators for the primary ray. + float iOdRlh = 0.0; + float iOdMie = 0.0; + + // Calculate the Rayleigh and Mie phases. + float mu = dot(r, pSun); + float mumu = mu * mu; + float gg = g * g; + float pRlh = 3.0 / (16.0 * PI) * (1.0 + mumu); + float pMie = 3.0 / (8.0 * PI) * ((1.0 - gg) * (mumu + 1.0)) / (pow(1.0 + gg - 2.0 * mu * g, 1.5) * (2.0 + gg)); + + // Sample the primary ray. + for (int i = 0; i < iSteps; i++) { + + // Calculate the primary ray sample position. + vec3 iPos = r0 + r * iTime; + + // Calculate the height of the sample. + float iHeight = length(iPos) - rPlanet; + + // Calculate the optical depth of the Rayleigh and Mie scattering for this step. + float odStepRlh = exp(-iHeight / shRlh) * iStepSize; + float odStepMie = exp(-iHeight / shMie) * iStepSize; + + // Accumulate optical depth. + iOdRlh += odStepRlh; + iOdMie += odStepMie; + + // Calculate the step size of the secondary ray. + float jStepSize = rsi(iPos, pSun, rAtmos).y / float(jSteps); + + // Initialize the secondary ray time. + float jTime = jStepSize * 0.5; + + // Initialize optical depth accumulators for the secondary ray. + float jOdRlh = 0.0; + float jOdMie = 0.0; + + // Sample the secondary ray. + for (int j = 0; j < jSteps; j++) { + + // Calculate the secondary ray sample position. + vec3 jPos = iPos + pSun * jTime; + + // Calculate the height of the sample. + float jHeight = length(jPos) - rPlanet; + + // Accumulate the optical depth. + jOdRlh += exp(-jHeight / shRlh) * jStepSize; + jOdMie += exp(-jHeight / shMie) * jStepSize; + + // Increment the secondary ray time. + jTime += jStepSize; + } + + // Calculate attenuation. + vec3 attn = exp(-(kMie * (iOdMie + jOdMie) + kRlh * (iOdRlh + jOdRlh))); + + // Accumulate scattering. + totalRlh += odStepRlh * attn; + totalMie += odStepMie * attn; + + // Increment the primary ray time. + iTime += iStepSize; + } + + // Calculate opacity + //float opacity = exp(-(length(kRlh) * iOdRlh + kMie * iOdMie)); + float opacity = min(0.75, exp(-(length(kRlh) * length(totalRlh) + kMie * length(totalMie)))); + + // Calculate the final color. + vec3 color = iSun * (pRlh * kRlh * totalRlh + pMie * kMie * totalMie); + + return vec4(color, opacity); +} + +void main() { + // The globe is small compare to real Earth. + // To still have a correct atmosphere rendering, we scale the whole world to the EARTH_RADIUS. + // Change camera position accordingly. + vec3 scale_camera_pos = -u_globe_position * EARTH_RADIUS / u_globe_radius; + + vec4 color = atmosphere( + normalize(view_direction), // ray direction + scale_camera_pos, // ray origin + u_sun_pos, // position of the sun + 22.0, // intensity of the sun + EARTH_RADIUS, // radius of the planet in meters + ATMOS_RADIUS, // radius of the atmosphere in meters + vec3(5.5e-6, 13.0e-6, 22.4e-6), // Rayleigh scattering coefficient + 21e-6, // Mie scattering coefficient + 8e3, // Rayleigh scale height + 1.2e3, // Mie scale height + 0.758 // Mie preferred scattering direction + ); + + // Apply exposure. + color.xyz = 1.0 - exp(-1.0 * color.xyz); + + vec4 no_effect_color = vec4(0, 0, 0, 0); + + gl_FragColor = mix(color, no_effect_color, 1.0 - u_atmosphere_blend); +} diff --git a/src/shaders/atmosphere.vertex.glsl b/src/shaders/atmosphere.vertex.glsl new file mode 100644 index 0000000000..e766372aaa --- /dev/null +++ b/src/shaders/atmosphere.vertex.glsl @@ -0,0 +1,11 @@ +in vec4 a_pos; + +uniform mat4 u_inv_proj_matrix; + +out vec3 view_direction; + +void main() { + // Compute each camera ray + view_direction = (u_inv_proj_matrix * a_pos).xyz; + gl_Position = a_pos; +} \ No newline at end of file diff --git a/src/shaders/shaders.ts b/src/shaders/shaders.ts index f7bfc2e4b2..2710eebd58 100644 --- a/src/shaders/shaders.ts +++ b/src/shaders/shaders.ts @@ -61,6 +61,8 @@ import projectionErrorMeasurementVert from './projection_error_measurement.verte import projectionErrorMeasurementFrag from './projection_error_measurement.fragment.glsl.g'; import projectionMercatorVert from './_projection_mercator.vertex.glsl.g'; import projectionGlobeVert from './_projection_globe.vertex.glsl.g'; +import atmosphereFrag from './atmosphere.fragment.glsl.g'; +import atmosphereVert from './atmosphere.vertex.glsl.g'; export type PreparedShader = { fragmentSource: string; @@ -101,7 +103,8 @@ export const shaders = { terrain: compile(terrainFrag, terrainVert), terrainDepth: compile(terrainDepthFrag, terrainVert), terrainCoords: compile(terrainCoordsFrag, terrainVert), - projectionErrorMeasurement: compile(projectionErrorMeasurementFrag, projectionErrorMeasurementVert) + projectionErrorMeasurement: compile(projectionErrorMeasurementFrag, projectionErrorMeasurementVert), + atmosphere: compile(atmosphereFrag, atmosphereVert), }; // Expand #pragmas to #ifdefs. diff --git a/src/style/sky.test.ts b/src/style/sky.test.ts new file mode 100644 index 0000000000..037e0f4af4 --- /dev/null +++ b/src/style/sky.test.ts @@ -0,0 +1,85 @@ +import Sky from './sky'; +import {latest as styleSpec, SkySpecification} from '@maplibre/maplibre-gl-style-spec'; +import {EvaluationParameters} from './evaluation_parameters'; +import {TransitionParameters} from './properties'; + +const spec = styleSpec.sky; + +test('Sky with defaults', () => { + const sky = new Sky({}); + sky.recalculate({zoom: 0, zoomHistory: {}} as EvaluationParameters); + + expect(sky.properties.get('atmosphere-blend')).toEqual(spec['atmosphere-blend'].default); +}); + +test('Sky with options', () => { + const sky = new Sky({ + 'atmosphere-blend': 0.4 + }); + sky.recalculate({zoom: 0, zoomHistory: {}} as EvaluationParameters); + + expect(sky.properties.get('atmosphere-blend')).toBe(0.4); +}); + +test('Sky with interpolate function', () => { + const sky = new Sky({ + 'atmosphere-blend': [ + 'interpolate', + ['linear'], + ['zoom'], + 0, 1, + 5, 1, + 7, 0 + ] + } as SkySpecification); + sky.recalculate({zoom: 6, zoomHistory: {}} as EvaluationParameters); + + expect(sky.properties.get('atmosphere-blend')).toBe(0.5); +}); + +test('Sky#getSky', () => { + const defaults = {'atmosphere-blend': 0.8}; + + expect(new Sky(defaults).getSky()).toEqual(defaults); +}); + +describe('Sky#setSky', () => { + test('sets Sky', () => { + const sky = new Sky({}); + sky.setSky({'atmosphere-blend': 1} as SkySpecification); + sky.updateTransitions({ + now: 0, + transition: { + duration: 3000, + delay: 0 + } + } as any as TransitionParameters); + sky.recalculate({zoom: 16, zoomHistory: {}, now: 1500} as EvaluationParameters); + expect(sky.properties.get('atmosphere-blend')).toBe(0.9); + }); + + test('validates by default', () => { + const sky = new Sky({}); + const skySpy = jest.spyOn(sky, '_validate'); + jest.spyOn(console, 'error').mockImplementation(() => { }); + sky.setSky({'atmosphere-blend': -1}); + sky.updateTransitions({transition: false} as any as TransitionParameters); + sky.recalculate({zoom: 16, zoomHistory: {}, now: 10} as EvaluationParameters); + expect(skySpy).toHaveBeenCalledTimes(1); + expect(console.error).toHaveBeenCalledTimes(1); + expect(skySpy.mock.calls[0][2]).toEqual({}); + }); + + test('respects validation option', () => { + const sky = new Sky({}); + + const skySpy = jest.spyOn(sky, '_validate'); + sky.setSky({'atmosphere-blend': -1} as any, {validate: false}); + sky.updateTransitions({transition: false} as any as TransitionParameters); + sky.recalculate({zoom: 16, zoomHistory: {}, now: 10} as EvaluationParameters); + + expect(skySpy).toHaveBeenCalledTimes(1); + expect(skySpy.mock.calls[0][2]).toEqual({validate: false}); + expect(sky.properties.get('atmosphere-blend')).toBe(-1); + }); +}); diff --git a/src/style/sky.ts b/src/style/sky.ts new file mode 100644 index 0000000000..afafb599ab --- /dev/null +++ b/src/style/sky.ts @@ -0,0 +1,91 @@ +import {DataConstantProperty, PossiblyEvaluated, Properties, Transitionable, Transitioning, TransitionParameters} from './properties'; +import {Evented} from '../util/evented'; +import {EvaluationParameters} from './evaluation_parameters'; +import {emitValidationErrors, validateSky, validateStyle} from './validate_style'; +import {latest as styleSpec} from '@maplibre/maplibre-gl-style-spec'; +import type {StylePropertySpecification, SkySpecification} from '@maplibre/maplibre-gl-style-spec'; +import {Mesh} from '../render/mesh'; +import {StyleSetterOptions} from './style'; + +type SkyProps = { + 'atmosphere-blend': DataConstantProperty; +}; + +type SkyPropsPossiblyEvaluated = { + 'atmosphere-blend': number; +}; + +let skyProperties: Properties; + +const TRANSITION_SUFFIX = '-transition'; + +export default class Sky extends Evented { + properties: PossiblyEvaluated; + + /** + * This is used to cache the gl mesh for the atmosphere, it should be initialized only once. + */ + atmosphereMesh: Mesh | undefined; + + _transitionable: Transitionable; + _transitioning: Transitioning; + + constructor(skyOptions?: SkySpecification) { + super(); + skyProperties = skyProperties || new Properties({ + 'atmosphere-blend': new DataConstantProperty(styleSpec.sky['atmosphere-blend'] as StylePropertySpecification), + }); + this._transitionable = new Transitionable(skyProperties); + this.setSky(skyOptions); + this._transitioning = this._transitionable.untransitioned(); + } + + setSky(sky?: SkySpecification, options: StyleSetterOptions = {}) { + if (this._validate(validateSky, sky, options)) return; + + for (const name in sky) { + const value = sky[name]; + if (name.endsWith(TRANSITION_SUFFIX)) { + this._transitionable.setTransition(name.slice(0, -TRANSITION_SUFFIX.length) as keyof SkyProps, value); + } else { + this._transitionable.setValue(name as keyof SkyProps, value); + } + } + } + + getSky(): SkySpecification { + return this._transitionable.serialize(); + } + + updateTransitions(parameters: TransitionParameters) { + this._transitioning = this._transitionable.transitioned(parameters, this._transitioning); + } + + hasTransition() { + return this._transitioning.hasTransition(); + } + + recalculate(parameters: EvaluationParameters) { + this.properties = this._transitioning.possiblyEvaluate(parameters); + } + + _validate(validate: Function, value: unknown, options?: { + validate?: boolean; + }) { + if (options && options.validate === false) { + return false; + } + + return emitValidationErrors(this, validate.call(validateStyle, { + value, + // Workaround for https://github.com/mapbox/mapbox-gl-js/issues/2407 + style: {glyphs: true, sprite: true}, + styleSpec + })); + } + + getAtmosphereBlend(): number { + // Get the atmosphere blend coefficient + return this.properties.get('atmosphere-blend'); + } +} diff --git a/src/style/style.test.ts b/src/style/style.test.ts index 712387cc8f..b15e90c08a 100644 --- a/src/style/style.test.ts +++ b/src/style/style.test.ts @@ -663,6 +663,7 @@ describe('Style#setState', () => { spys.push(jest.spyOn(style, 'setGeoJSONSourceData').mockImplementation((() => {}) as any)); spys.push(jest.spyOn(style, 'setLayerZoomRange').mockImplementation((() => {}) as any)); spys.push(jest.spyOn(style, 'setLight').mockImplementation((() => {}) as any)); + spys.push(jest.spyOn(style, 'setSky').mockImplementation((() => {}) as any)); await style.once('style.load'); const didChange = style.setState(createStyleJSON()); expect(didChange).toBeFalsy(); @@ -691,6 +692,9 @@ describe('Style#setState', () => { }, light: { anchor: 'viewport' + }, + sky: { + 'atmosphere-blend': 0 } }); style.loadJSON(styleJson); @@ -711,6 +715,7 @@ describe('Style#setState', () => { spys.push(jest.spyOn(style, 'setSprite').mockImplementation((() => {}) as any)); spys.push(jest.spyOn(style, 'setProjection').mockImplementation((() => {}) as any)); spys.push(jest.spyOn(style.map, 'setTerrain').mockImplementation((() => {}) as any)); + spys.push(jest.spyOn(style, 'setSky').mockImplementation((() => {}) as any)); const newStyle = JSON.parse(JSON.stringify(styleJson)) as StyleSpecification; newStyle.layers[0].paint = {'text-color': '#7F7F7F',}; @@ -739,6 +744,9 @@ describe('Style#setState', () => { }; newStyle.zoom = 2; newStyle.projection = {type: 'globe'}; + newStyle.sky = { + 'atmosphere-blend': 1 + }; const didChange = style.setState(newStyle); expect(didChange).toBeTruthy(); for (const spy of spys) { @@ -766,6 +774,7 @@ describe('Style#setState', () => { spys.push(jest.spyOn(style, 'setGlyphs').mockImplementation((() => {}) as any)); spys.push(jest.spyOn(style, 'setSprite').mockImplementation((() => {}) as any)); spys.push(jest.spyOn(style.map, 'setTerrain').mockImplementation((() => {}) as any)); + spys.push(jest.spyOn(style, 'setSky').mockImplementation((() => {}) as any)); const newStyleJson = createStyleJSON(); newStyleJson.transition = {duration: 5}; @@ -2570,4 +2579,38 @@ describe('Style#serialize', () => { expect(style.serialize().projection).toBeDefined(); expect(style.serialize().projection.type).toBe('globe'); }); + + test('include sky property when map has sky', async () => { + const sky = { + 'atmosphere-blend': 0.5, + }; + const styleJson = createStyleJSON({sky}); + const style = new Style(getStubMap()); + style.loadJSON(styleJson); + + await style.once('style.load'); + expect(style.serialize().sky).toBe(sky); + }); + + test('include sky property when sky is set', async () => { + const sky = { + 'atmosphere-blend': 0.5, + }; + const style = new Style(getStubMap()); + style.loadJSON(createStyleJSON()); + + await style.once('style.load'); + style.setSky(sky); + + expect(style.serialize().sky).toBeDefined(); + expect(style.serialize().sky).toBe(sky); + }); + + test('do not include sky property when map does not have sky', async () => { + const style = new Style(getStubMap()); + style.loadJSON(createStyleJSON()); + + await style.once('style.load'); + expect(style.serialize().sky).toBeUndefined(); + }); }); diff --git a/src/style/style.ts b/src/style/style.ts index a0e324708d..d393002f50 100644 --- a/src/style/style.ts +++ b/src/style/style.ts @@ -49,7 +49,8 @@ import type { SourceSpecification, SpriteSpecification, DiffOperations, - ProjectionSpecification + ProjectionSpecification, + SkySpecification } from '@maplibre/maplibre-gl-style-spec'; import type {CustomLayerInterface} from './style_layer/custom_style_layer'; import type {Validator} from './validate_style'; @@ -62,6 +63,7 @@ import { } from '../util/actor_messages'; import {Projection} from '../geo/projection/projection'; import {createProjectionFromName} from '../geo/projection/projection_factory'; +import Sky from './sky'; const empty = emptyStyle() as StyleSpecification; /** @@ -188,6 +190,7 @@ export class Style extends Evented { lineAtlas: LineAtlas; light: Light; projection: Projection; + sky: Sky; _frameRequest: AbortController; _loadStyleRequest: AbortController; @@ -343,6 +346,8 @@ export class Style extends Evented { this.light = new Light(this.stylesheet.light); this.projection = createProjectionFromName(this.stylesheet.projection?.type || 'mercator'); + this.sky = new Sky(this.stylesheet.sky); + this.map.setTerrain(this.stylesheet.terrain ?? null); this.fire(new Event('data', {dataType: 'style'})); @@ -527,6 +532,10 @@ export class Style extends Evented { return true; } + if (this.sky && this.sky.hasTransition()) { + return true; + } + for (const id in this.sourceCaches) { if (this.sourceCaches[id].hasTransition()) { return true; @@ -585,6 +594,7 @@ export class Style extends Evented { } this.light.updateTransitions(parameters); + this.sky.updateTransitions(parameters); this._resetUpdates(); } @@ -629,6 +639,7 @@ export class Style extends Evented { } this.light.recalculate(parameters); + this.sky.recalculate(parameters); this.z = parameters.zoom; if (changed) { @@ -771,7 +782,8 @@ export class Style extends Evented { operations.push(() => this.map.setTerrain.apply(this, op.args)); break; case 'setSky': - throw new Error('Unimplemented: setSky'); + operations.push(() => this.setSky.apply(this, op.args)); + break; case 'setProjection': this.setProjection.apply(this, op.args); break; @@ -1287,6 +1299,7 @@ export class Style extends Evented { name: myStyleSheet.name, metadata: myStyleSheet.metadata, light: myStyleSheet.light, + sky: myStyleSheet.sky, center: myStyleSheet.center, zoom: myStyleSheet.zoom, bearing: myStyleSheet.bearing, @@ -1500,6 +1513,36 @@ export class Style extends Evented { this.projection = createProjectionFromName(projection.type); } + getSky(): SkySpecification { + return this.sky?.getSky(); + } + + setSky(skyOptions?: SkySpecification, options: StyleSetterOptions = {}) { + this._checkLoaded(); + + const sky = this.sky.getSky(); + let _update = false; + for (const key in skyOptions) { + if (!deepEqual(skyOptions[key], sky[key])) { + _update = true; + break; + } + } + if (!_update) return; + + const parameters = { + now: browser.now(), + transition: extend({ + duration: 300, + delay: 0 + }, this.stylesheet.transition) + }; + + this.stylesheet.sky = skyOptions; + this.sky.setSky(skyOptions, options); + this.sky.updateTransitions(parameters); + } + _validate(validate: Validator, key: string, value: any, props: any, options: { validate?: boolean; } = {}) { diff --git a/src/style/validate_style.ts b/src/style/validate_style.ts index 9af298694f..3f8c00566c 100644 --- a/src/style/validate_style.ts +++ b/src/style/validate_style.ts @@ -17,6 +17,7 @@ type ValidateStyle = { glyphs: Validator; layer: Validator; light: Validator; + sky: Validator; terrain: Validator; filter: Validator; paintProperty: Validator; @@ -28,6 +29,7 @@ export const validateStyle = (validateStyleMin as unknown as ValidateStyle); export const validateSource = validateStyle.source; export const validateLight = validateStyle.light; +export const validateSky = validateStyle.sky; export const validateTerrain = validateStyle.terrain; export const validateFilter = validateStyle.filter; export const validatePaintProperty = validateStyle.paintProperty; diff --git a/src/ui/map.ts b/src/ui/map.ts index ffec31b54d..2521e5803c 100644 --- a/src/ui/map.ts +++ b/src/ui/map.ts @@ -54,7 +54,8 @@ import type { LightSpecification, SourceSpecification, TerrainSpecification, - ProjectionSpecification + ProjectionSpecification, + SkySpecification } from '@maplibre/maplibre-gl-style-spec'; import type {MapGeoJSONFeature} from '../util/vectortile_to_geojson'; import type {ControlPosition, IControl} from './control/control'; @@ -2664,6 +2665,32 @@ export class Map extends Camera { return this.style.getLight(); } + /** + * Sets the value of style's sky properties. + * + * @param sky - Sky properties to set. Must conform to the [MapLibre Style Specification](https://maplibre.org/maplibre-style-spec/sky). + * @param options - Options object. + * + * @example + * ```ts + * map.setSky({'atmosphere-blend': 1.0}); + * ``` + */ + setSky(sky: SkySpecification, options: StyleSetterOptions = {}) { + this._lazyInitEmptyStyle(); + this.style.setSky(sky, options); + return this._update(true); + } + + /** + * Returns the value of the style's sky. + * + * @returns sky properties of the style. + */ + getSky(): SkySpecification { + return this.style.getSky(); + } + /** * Sets the `state` of a feature. * A feature's `state` is a set of user-defined key-value pairs that are assigned to a feature at runtime. diff --git a/src/ui/map_tests/map_sky.test.ts b/src/ui/map_tests/map_sky.test.ts new file mode 100644 index 0000000000..1f9ddf5e08 --- /dev/null +++ b/src/ui/map_tests/map_sky.test.ts @@ -0,0 +1,42 @@ +import {createMap, beforeMapTest, sleep} from '../../util/test/util'; + +beforeEach(() => { + beforeMapTest(); + global.fetch = null; +}); + +describe('#setSky', () => { + test('calls style setSky when set', () => { + const map = createMap(); + const spy = jest.fn(); + map.style.setSky = spy; + map.setSky({'atmosphere-blend': 0.5}); + + expect(spy).toHaveBeenCalled(); + }); +}); + +describe('#getSky', () => { + test('returns undefined when not set', () => { + const map = createMap(); + expect(map.getSky()).toBeUndefined(); + }); + + test('calls style getSky when invoked', () => { + const map = createMap(); + const spy = jest.fn(); + map.style.getSky = spy; + map.getSky(); + + expect(spy).toHaveBeenCalled(); + }); + + test('return previous style when set', async () => { + const map = createMap(); + await map.once('style.load'); + map.setSky({'atmosphere-blend': 0.5}); + + expect(map.getSky()).toEqual({'atmosphere-blend': 0.5}); + }); + +}); diff --git a/test/build/min.test.ts b/test/build/min.test.ts index 61b6393309..8c1e536dd8 100644 --- a/test/build/min.test.ts +++ b/test/build/min.test.ts @@ -36,7 +36,7 @@ describe('test min build', () => { const decreaseQuota = 4096; // feel free to update this value after you've checked that it has changed on purpose :-) - const expectedBytes = 834444; + const expectedBytes = 843270; expect(actualBytes).toBeLessThan(expectedBytes + increaseQuota); expect(actualBytes).toBeGreaterThan(expectedBytes - decreaseQuota); diff --git a/test/examples/globe-atmosphere.html b/test/examples/globe-atmosphere.html new file mode 100644 index 0000000000..ee8ea25291 --- /dev/null +++ b/test/examples/globe-atmosphere.html @@ -0,0 +1,63 @@ + + + + Display a globe with an atmosphere + + + + + + + + + +
+ + + diff --git a/test/integration/render/tests/projection/globe/atmosphere/atmosphere-blend/base/expected.png b/test/integration/render/tests/projection/globe/atmosphere/atmosphere-blend/base/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..c3f68372350052977bfa2bccc178e341ac9c548c GIT binary patch literal 71364 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 literal 0 HcmV?d00001 diff --git a/test/integration/render/tests/projection/globe/atmosphere/atmosphere-blend/base/style.json b/test/integration/render/tests/projection/globe/atmosphere/atmosphere-blend/base/style.json new file mode 100644 index 0000000000..a442154b50 --- /dev/null +++ b/test/integration/render/tests/projection/globe/atmosphere/atmosphere-blend/base/style.json @@ -0,0 +1,49 @@ +{ + "version": 8, + "metadata": { + "test": { + "description": "Tests atmosphere with atmosphere-blend to 0.5." + } + }, + "projection": { "type": "globe" }, + "sky": { + "atmosphere-blend": 0.5 + }, + "light": { + "anchor": "map", + "position": [1.5, 90, 90] + }, + "center": [ + 160.0, + 0.0 + ], + "zoom": 1, + "sources": { + "source": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "minzoom": 1, + "maxzoom": 1, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "raster", + "type": "raster", + "source": "source", + "paint": { + "raster-fade-duration": 0 + } + } + ] + } \ No newline at end of file diff --git a/test/integration/render/tests/projection/globe/atmosphere/atmosphere-blend/interpolate-to-0.5/expected.png b/test/integration/render/tests/projection/globe/atmosphere/atmosphere-blend/interpolate-to-0.5/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..c39f55771bbd5c4adadd7a4e04a6edb7f592ab57 GIT binary patch literal 4784 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 literal 0 HcmV?d00001 diff --git a/test/integration/render/tests/projection/globe/atmosphere/base/style.json b/test/integration/render/tests/projection/globe/atmosphere/base/style.json new file mode 100644 index 0000000000..e99cddb72e --- /dev/null +++ b/test/integration/render/tests/projection/globe/atmosphere/base/style.json @@ -0,0 +1,45 @@ +{ + "version": 8, + "metadata": { + "test": { + "description": "Tests that atmosphere is well display with blend to 1.0." + } + }, + "projection": { "type": "globe" }, + "sky": { + "atmosphere-blend": 1.0 + }, + "center": [ + 0.0, + 0.0 + ], + "zoom": 1, + "sources": { + "source": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "minzoom": 1, + "maxzoom": 1, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "raster", + "type": "raster", + "source": "source", + "paint": { + "raster-fade-duration": 0 + } + } + ] + } \ No newline at end of file diff --git a/test/integration/render/tests/projection/globe/atmosphere/light-position-map/expected.png b/test/integration/render/tests/projection/globe/atmosphere/light-position-map/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..216be36e9e7095fcd49deca19c76f59396d42985 GIT binary patch literal 61718 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 CTez42 literal 0 HcmV?d00001 diff --git a/test/integration/render/tests/projection/globe/atmosphere/light-position-map/style.json b/test/integration/render/tests/projection/globe/atmosphere/light-position-map/style.json new file mode 100644 index 0000000000..ed13867460 --- /dev/null +++ b/test/integration/render/tests/projection/globe/atmosphere/light-position-map/style.json @@ -0,0 +1,49 @@ +{ + "version": 8, + "metadata": { + "test": { + "description": "Tests atmosphere with position on right map." + } + }, + "projection": { "type": "globe" }, + "sky": { + "atmosphere-blend": 1.0 + }, + "light": { + "anchor": "map", + "position": [1.5, 90, 90] + }, + "center": [ + 160.0, + 0.0 + ], + "zoom": 1, + "sources": { + "source": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "minzoom": 1, + "maxzoom": 1, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "raster", + "type": "raster", + "source": "source", + "paint": { + "raster-fade-duration": 0 + } + } + ] + } \ No newline at end of file diff --git a/test/integration/render/tests/projection/globe/atmosphere/ligth-position-viewport/expected.png b/test/integration/render/tests/projection/globe/atmosphere/ligth-position-viewport/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..b4ba6fb7972f6da1785cb03d881d2977bbd4cacd GIT binary patch literal 72297 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 literal 0 HcmV?d00001 diff --git a/test/integration/render/tests/projection/globe/atmosphere/ligth-position-viewport/style.json b/test/integration/render/tests/projection/globe/atmosphere/ligth-position-viewport/style.json new file mode 100644 index 0000000000..55b42c5c37 --- /dev/null +++ b/test/integration/render/tests/projection/globe/atmosphere/ligth-position-viewport/style.json @@ -0,0 +1,49 @@ +{ + "version": 8, + "metadata": { + "test": { + "description": "Tests atmosphere with position on left viewport." + } + }, + "projection": { "type": "globe" }, + "sky": { + "atmosphere-blend": 1.0 + }, + "light": { + "anchor": "viewport", + "position": [1.5, 90, 90] + }, + "center": [ + 0.0, + 0.0 + ], + "zoom": 1, + "sources": { + "source": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "minzoom": 1, + "maxzoom": 1, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "raster", + "type": "raster", + "source": "source", + "paint": { + "raster-fade-duration": 0 + } + } + ] + } \ No newline at end of file diff --git a/test/integration/render/tests/projection/globe/atmosphere/zoom/expected.png b/test/integration/render/tests/projection/globe/atmosphere/zoom/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..0421635cd56911ec4d1f08ca7d817d1387b8ed58 GIT binary patch literal 10227 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