From 69664b8ff13c9ebd2233f89d78c521a8babf1860 Mon Sep 17 00:00:00 2001 From: Birk Skyum <74932975+birkskyum@users.noreply.github.com> Date: Sun, 3 Nov 2024 14:44:23 +0100 Subject: [PATCH] Disabled unsupported Fog rendering, for Terrain3D on Globe --- CHANGELOG.md | 1 + src/render/draw_terrain.ts | 2 +- src/render/program/terrain_program.test.ts | 30 +++++++ src/render/program/terrain_program.ts | 6 +- test/examples/sky-with-fog-and-terrain.html | 6 ++ .../terrain/fog-sky-blend-globe/expected.png | Bin 0 -> 51164 bytes .../terrain/fog-sky-blend-globe/style.json | 74 ++++++++++++++++++ 7 files changed, 116 insertions(+), 3 deletions(-) create mode 100644 src/render/program/terrain_program.test.ts create mode 100644 test/integration/render/tests/terrain/fog-sky-blend-globe/expected.png create mode 100644 test/integration/render/tests/terrain/fog-sky-blend-globe/style.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 4fee0a2bab..bd944af08a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ ### 🐞 Bug fixes - Fix line-placed map-pitch-aligned texts being too large when viewed from some latitudes on a globe ([#4786](https://github.com/maplibre/maplibre-gl-js/issues/4786)) +- Disabled unsupported Fog rendering, for Terrain3D on Globe ([#4963](https://github.com/maplibre/maplibre-gl-js/pull/4963)) - _...Add new stuff here..._ ## 5.0.0-pre.4 diff --git a/src/render/draw_terrain.ts b/src/render/draw_terrain.ts index 68c24b9d1f..a81f49244e 100644 --- a/src/render/draw_terrain.ts +++ b/src/render/draw_terrain.ts @@ -88,7 +88,7 @@ function drawTerrain(painter: Painter, terrain: Terrain, tiles: Array) { gl.bindTexture(gl.TEXTURE_2D, texture.texture); const eleDelta = terrain.getMeshFrameDelta(tr.zoom); const fogMatrix = tr.calculateFogMatrix(tile.tileID.toUnwrapped()); - const uniformValues = terrainUniformValues(eleDelta, fogMatrix, painter.style.sky, tr.pitch); + const uniformValues = terrainUniformValues(eleDelta, fogMatrix, painter.style.sky, tr.pitch, painter.style.projection?.name === 'globe'); const projectionData = tr.getProjectionData({overscaledTileID: tile.tileID, ignoreTerrainMatrix: true}); program.draw(context, gl.TRIANGLES, depthMode, StencilMode.disabled, colorMode, CullFaceMode.backCCW, uniformValues, terrainData, projectionData, 'terrain', mesh.vertexBuffer, mesh.indexBuffer, mesh.segments); } diff --git a/src/render/program/terrain_program.test.ts b/src/render/program/terrain_program.test.ts new file mode 100644 index 0000000000..993f7a32ad --- /dev/null +++ b/src/render/program/terrain_program.test.ts @@ -0,0 +1,30 @@ +import {terrainUniformValues} from './terrain_program'; +import {Sky} from '../../style/sky'; +import {mat4} from 'gl-matrix'; + +describe('terrainUniformValues', () => { + test('disables fog when in globe projection mode', () => { + const eleDelta = 1.0; + const fogMatrix = mat4.create(); + const sky = new Sky({}); + const pitch = 45; + const isGlobeMode = true; + const uniformValues = terrainUniformValues(eleDelta, fogMatrix, sky, pitch, isGlobeMode); + + expect(uniformValues['u_fog_ground_blend_opacity']).toBe(0); + expect(uniformValues['u_ele_delta']).toBe(eleDelta); + expect(uniformValues['u_fog_matrix']).toBe(fogMatrix); + expect(uniformValues['u_fog_color']).toEqual(sky.properties.get('fog-color')); + expect(uniformValues['u_fog_ground_blend']).toBe(sky.properties.get('fog-ground-blend')); + }); + + test('enables fog when not in globe projection mode', () => { + const eleDelta = 1.0; + const fogMatrix = mat4.create(); + const sky = new Sky({}); + const pitch = 45; + const isGlobeMode = false; + const uniformValues = terrainUniformValues(eleDelta, fogMatrix, sky, pitch, isGlobeMode); + expect(uniformValues['u_fog_ground_blend_opacity']).toBe(sky.calculateFogBlendOpacity(pitch)); + }); +}); \ No newline at end of file diff --git a/src/render/program/terrain_program.ts b/src/render/program/terrain_program.ts index 75aa10750c..4ce37fd41e 100644 --- a/src/render/program/terrain_program.ts +++ b/src/render/program/terrain_program.ts @@ -75,13 +75,15 @@ const terrainUniformValues = ( eleDelta: number, fogMatrix: mat4, sky: Sky, - pitch: number): UniformValues => ({ + pitch: number, + isGlobeMode: boolean): UniformValues => ({ 'u_texture': 0, 'u_ele_delta': eleDelta, 'u_fog_matrix': fogMatrix, 'u_fog_color': sky ? sky.properties.get('fog-color') : Color.white, 'u_fog_ground_blend': sky ? sky.properties.get('fog-ground-blend') : 1, - 'u_fog_ground_blend_opacity': sky ? sky.calculateFogBlendOpacity(pitch) : 0, + // Set opacity to 0 when in globe mode to disable fog + 'u_fog_ground_blend_opacity': isGlobeMode ? 0 : (sky ? sky.calculateFogBlendOpacity(pitch) : 0), 'u_horizon_color': sky ? sky.properties.get('horizon-color') : Color.white, 'u_horizon_fog_blend': sky ? sky.properties.get('horizon-fog-blend') : 1 }); diff --git a/test/examples/sky-with-fog-and-terrain.html b/test/examples/sky-with-fog-and-terrain.html index 10f67b3135..5110ee7a1b 100644 --- a/test/examples/sky-with-fog-and-terrain.html +++ b/test/examples/sky-with-fog-and-terrain.html @@ -108,6 +108,12 @@ }) ); + + map.addControl( + new maplibregl.GlobeControl() + ); + + map.addControl( new maplibregl.TerrainControl({ source: 'terrainSource', diff --git a/test/integration/render/tests/terrain/fog-sky-blend-globe/expected.png b/test/integration/render/tests/terrain/fog-sky-blend-globe/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..c2d244bdbd50752cd67a4b64afc5c6eb13911a4e GIT binary patch literal 51164 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 &BsCX8}N*3&gTYSVqx=(PM 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