Skip to content

Commit 5c3be08

Browse files
stephanheiglastojilj
authored andcommitted
[MAPSPERF-51][GL-JS] Elevated raster layer: raster-elevation-reference support (#9490)
Fixes and improvements to elevated raster layers as requested by TWC. Addresses: MAPSPERF-50 and MAPSPERF-51 **Context** TWC reported ([RICO-15889](https://mapbox.atlassian.net/browse/RICO-15889)) inconsistent shading for raster layers when switching between mercator and globe projections. Maintaining uniform shading is technically unfeasible for draped or baked raster layers across mercator/globe projection. Idea to work around this limitation, is to move layers out of the draping using raster-elevation to get consistent shading of the layer even during mercator/globe transitions. In order to also support terrain (and not intersect with terrain geometry), this PR introduces `raster-elevation-reference: {ground,sea}`, enabling the layer to follow the terrain surface (`ground`) or maintain constant elevation above sea level (`sea` - default) while applying z-bias to resolve depth-testing conflicts. **Demo**: https://labs.tilestream.net/labs-raster-layer/raster-elevation.htm > [!NOTE] > Implementation is for GL-JS only, changes in native are result of shader changes. > Native implementation will follow in separate PR. **Changes** - Add z-bias to fix z-fighting for raster layers independent of elevation - Add new **experimental** paint property `raster-elevation-reference` to apply elevation relative to ground or sea (default) level - Render test `raster-elevation-tiled/terrain-ground-reference` (gl-js only, disabled in native) **How does it look?** https://github.com/user-attachments/assets/a9463bab-b460-4e6e-991a-289e03b576e0 Style config: ~~~json { "id": "image", "type": "raster", "source": "twc-raster-elevation", "slot": "middle", "paint": { "raster-fade-duration": 0, "raster-opacity": 0.5, "raster-elevation": 0.0001, "raster-elevation-reference": "ground" "raster-emissive-strength": 1.0 } } ~~~ ~~~ <public> Fix z-fighting for elevated raster layers. Add paint property raster-elevation-reference to elevate raster layers relative to ground instead of sea level. </public> ~~~ cc @mapbox/gl-js cc @mapbox/gl-native cc @mapbox/maps-ios cc @mapbox/maps-android [RICO-15889]: https://mapbox.atlassian.net/browse/RICO-15889?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --------- Co-authored-by: Aleksandar Stojiljković <aleksandar.stojiljkovic@mapbox.com> GitOrigin-RevId: 8c8269d43c23ddc0647b26184123baa010556359
1 parent e1177ea commit 5c3be08

2 files changed

Lines changed: 14 additions & 14 deletions

File tree

  • extension-compose/src/main/java/com/mapbox/maps/extension/compose/style/layers/generated
  • extension-style/src/main/java/com/mapbox/maps/extension/style/layers/generated

extension-compose/src/main/java/com/mapbox/maps/extension/compose/style/layers/generated/RasterLayerState.kt

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

extension-style/src/main/java/com/mapbox/maps/extension/style/layers/generated/RasterLayer.kt

Lines changed: 13 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)