maplibre / maplibre-rs

Experimental Maps for Web, Mobile and Desktop
Apache License 2.0
1.34k stars 77 forks source link

3D Extrusion of Buildings #192

Open Drabble opened 1 year ago

Drabble commented 1 year ago

This is a simple implementation for showcasing 3d possibilities in Maplibre-rs.

We simply take the elements in the buildings layer and extrude them with a fixed height.

In the future, it would be very interesting to add details to the buildings that are extruded and extrude based on the height metadata available in OSM.

Extrusion can be enabled/disabled in the Style configuration.

Finally I probably should split the function in tile_pipelines.rs into smaller functions to make it easier to understand.

maxammann commented 1 year ago

Converted to draft, or it this ready for review? :)

Drabble commented 1 year ago

Converted to draft, or it this ready for review? :)

I think it's not quite ready for production but being an experimental functionality, we could just disable it by default and enable it when we want to.

I guess the main thing left to do is to cleanup the big function with the extrusion to simplify the code and review/discuss about the implementation details.

DerKarlos commented 1 year ago

Yes please, 3D buildings! The changes are not that much: The renderer gets an optional 3D extrude. Therefore some APIs are extended form 2D to 3D. Style access and normals are needed, why a camera to? The extrude code is quite plain. Its good to see, how the the faces are build. I would like to use/test it! How could I merge it into my fork? I compared it with the 3D renderer OSM2World. We should think about it's concepts. I could introduce, how it works if you like and we could discus a merge of ideas with maplibre-rs. https://wiki.openstreetmap.org/wiki/OSM2World We could create an FRC for 3D object rendering

maxammann commented 1 year ago

I'll resolve merge conflicts now!

maxammann commented 12 months ago

@Drabble Hi! Are you still interested in pushing this forward? :) I guess a lot changed, but I think it would be nice to keep this effort updated.