From 9d9a600bf7d2f42d6d171d3e35aa622fb8e58205 Mon Sep 17 00:00:00 2001
From: Jakub Pelc <57600346+kubapelc@users.noreply.github.com>
Date: Tue, 29 Oct 2024 15:56:27 +0100
Subject: [PATCH] Fix globe pitch-aligned line-placed texts (#4925)
* Fix map-pitch-aligned line-placed texts on globe
* Add render test
* Only use globe text line render tests with collision circles
* Add another symbol-visibility/visible expected image
* Add changelog entry
---
CHANGELOG.md | 1 +
src/shaders/symbol_sdf.vertex.glsl | 3 +--
src/symbol/collision_index.ts | 3 ++-
src/symbol/projection.ts | 2 +-
.../collision-text-line-equator/expected.png | Bin 0 -> 7088 bytes
.../style.json | 23 ++++++++++++------
.../expected.png | Bin 7921 -> 9558 bytes
.../style.json | 8 +++---
.../globe/text-line-pole-to-pole/expected.png | Bin 5540 -> 0 bytes
.../visible/expected-flaky.png | Bin 0 -> 36875 bytes
10 files changed, 25 insertions(+), 15 deletions(-)
create mode 100644 test/integration/render/tests/projection/globe/collision-text-line-equator/expected.png
rename test/integration/render/tests/projection/globe/{text-line-pole-to-pole => collision-text-line-equator}/style.json (81%)
delete mode 100644 test/integration/render/tests/projection/globe/text-line-pole-to-pole/expected.png
create mode 100644 test/integration/render/tests/symbol-visibility/visible/expected-flaky.png
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fdea4e026a..ed79148658 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,7 @@
- _...Add new stuff here..._
### 🐞 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))
- _...Add new stuff here..._
## 5.0.0-pre.4
diff --git a/src/shaders/symbol_sdf.vertex.glsl b/src/shaders/symbol_sdf.vertex.glsl
index f72fe62f8f..552bf62368 100644
--- a/src/shaders/symbol_sdf.vertex.glsl
+++ b/src/shaders/symbol_sdf.vertex.glsl
@@ -120,8 +120,7 @@ void main() {
float projectionScaling = 1.0;
#ifdef GLOBE
- if(u_pitch_with_map && !u_is_along_line) {
- // Lines would behave in very weird ways if this adjustment was used for them.
+ if(u_pitch_with_map) {
float anchor_pos_tile_y = (u_coord_matrix * vec4(projected_pos.xy / projected_pos.w, z, 1.0)).y;
projectionScaling = mix(projectionScaling, 1.0 / circumferenceRatioAtTileY(anchor_pos_tile_y) * u_pitched_scale, u_projection_transition);
}
diff --git a/src/symbol/collision_index.ts b/src/symbol/collision_index.ts
index 072c795b03..bf80189cd8 100644
--- a/src/symbol/collision_index.ts
+++ b/src/symbol/collision_index.ts
@@ -199,7 +199,8 @@ export class CollisionIndex {
const tileUnitAnchorPoint = new Point(symbol.anchorX, symbol.anchorY);
const perspectiveRatio = this.getPerspectiveRatio(tileUnitAnchorPoint.x, tileUnitAnchorPoint.y, unwrappedTileID, getElevation);
- const labelPlaneFontSize = pitchWithMap ? fontSize / perspectiveRatio : fontSize * perspectiveRatio;
+
+ const labelPlaneFontSize = pitchWithMap ? (fontSize * this.transform.getPitchedTextCorrection(symbol.anchorX, symbol.anchorY, unwrappedTileID) / perspectiveRatio) : fontSize * perspectiveRatio;
const labelPlaneFontScale = labelPlaneFontSize / ONE_EM;
const projectionCache = {projections: {}, offsets: {}, cachedAnchorPoint: undefined, anyProjectionOccluded: false};
diff --git a/src/symbol/projection.ts b/src/symbol/projection.ts
index bc843ef785..c9ea57257a 100644
--- a/src/symbol/projection.ts
+++ b/src/symbol/projection.ts
@@ -279,7 +279,7 @@ export function updateLineLabels(bucket: SymbolBucket,
const perspectiveRatio = getPerspectiveRatio(painter.transform.cameraToCenterDistance, cameraToAnchorDistance);
const fontSize = symbolSize.evaluateSizeForFeature(sizeData, partiallyEvaluatedSize, symbol);
- const pitchScaledFontSize = pitchWithMap ? fontSize / perspectiveRatio : fontSize * perspectiveRatio;
+ const pitchScaledFontSize = pitchWithMap ? (fontSize * painter.transform.getPitchedTextCorrection(symbol.anchorX, symbol.anchorY, unwrappedTileID) / perspectiveRatio) : fontSize * perspectiveRatio;
const placeUnflipped = placeGlyphsAlongLine({
projectionContext,
diff --git a/test/integration/render/tests/projection/globe/collision-text-line-equator/expected.png b/test/integration/render/tests/projection/globe/collision-text-line-equator/expected.png
new file mode 100644
index 0000000000000000000000000000000000000000..638c2581c16484e4c762f169ed1ed6fd2bddaceb
GIT binary patch
literal 7088
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
literal 0
HcmV?d00001
diff --git a/test/integration/render/tests/projection/globe/text-line-pole-to-pole/style.json b/test/integration/render/tests/projection/globe/collision-text-line-equator/style.json
similarity index 81%
rename from test/integration/render/tests/projection/globe/text-line-pole-to-pole/style.json
rename to test/integration/render/tests/projection/globe/collision-text-line-equator/style.json
index 4546aded70..b8419379dc 100644
--- a/test/integration/render/tests/projection/globe/text-line-pole-to-pole/style.json
+++ b/test/integration/render/tests/projection/globe/collision-text-line-equator/style.json
@@ -2,6 +2,7 @@
"version": 8,
"metadata": {
"test": {
+ "collisionDebug": true,
"height": 256,
"width": 256
}
@@ -9,9 +10,15 @@
"sky": {
"atmosphere-blend": 0.0
},
- "zoom": 1,
+ "zoom": 0,
+ "center": [
+ 0,
+ 45
+ ],
"glyphs": "local://glyphs/{fontstack}/{range}.pbf",
- "projection": { "type": "globe" },
+ "projection": {
+ "type": "globe"
+ },
"sources": {
"geojson": {
"type": "geojson",
@@ -21,12 +28,12 @@
"type": "LineString",
"coordinates": [
[
- 0,
- -85
+ -45,
+ 0
],
[
- 0,
- 85
+ 45,
+ 0
]
]
}
@@ -38,7 +45,7 @@
"id": "background",
"type": "background",
"paint": {
- "background-color": "white"
+ "background-color": "grey"
}
},
{
@@ -60,7 +67,7 @@
"source": "geojson",
"layout": {
"symbol-placement": "line",
- "text-field": "AAAA AAAAAA A AAAAA AAAA BB",
+ "text-field": "AAAAAAAAAAA",
"text-font": [
"Open Sans Semibold",
"Arial Unicode MS Bold"
diff --git a/test/integration/render/tests/projection/globe/collision-text-line-pole-to-pole/expected.png b/test/integration/render/tests/projection/globe/collision-text-line-pole-to-pole/expected.png
index af1bc7d712b86926a8a60da2c2192fa01bd64e8d..c08c44cfd0709a175b868127e193eb1cafc31777 100644
GIT binary patch
literal 9558
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
diff --git a/test/integration/render/tests/projection/globe/collision-text-line-pole-to-pole/style.json b/test/integration/render/tests/projection/globe/collision-text-line-pole-to-pole/style.json
index 73b29cea23..a6b1297200 100644
--- a/test/integration/render/tests/projection/globe/collision-text-line-pole-to-pole/style.json
+++ b/test/integration/render/tests/projection/globe/collision-text-line-pole-to-pole/style.json
@@ -12,7 +12,9 @@
},
"zoom": 1,
"glyphs": "local://glyphs/{fontstack}/{range}.pbf",
- "projection": { "type": "globe" },
+ "projection": {
+ "type": "globe"
+ },
"sources": {
"geojson": {
"type": "geojson",
@@ -39,7 +41,7 @@
"id": "background",
"type": "background",
"paint": {
- "background-color": "white"
+ "background-color": "grey"
}
},
{
@@ -61,7 +63,7 @@
"source": "geojson",
"layout": {
"symbol-placement": "line",
- "text-field": "AAAA AAAAAA A AAAAA AAAA BB",
+ "text-field": "AAAAAAAAAA",
"text-font": [
"Open Sans Semibold",
"Arial Unicode MS Bold"
diff --git a/test/integration/render/tests/projection/globe/text-line-pole-to-pole/expected.png b/test/integration/render/tests/projection/globe/text-line-pole-to-pole/expected.png
deleted file mode 100644
index 82dc82b80fb2e26f5e0fb95ea3584088dd890747..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 5540
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
V?BrMr~wR*)D_QV+&V=
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 )j`-#AqYH{{_&wX}<1glR$009P
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