OSM 3D PBR Renderer, can you review result?

Hello! To be short: I spent quite a time, it uses private game engine. Especially many effort is put to vegetation and landscape generation and rendering. All data sources: OSM (whole planet, vectortile format), NASA BlueMarble (custom sql DB), SRTM-G1 (optionally SRTM 4.1 or GDEM 3 can be used, custom sql DB). Here are some screenshots (looks like as a new user I have limitations in images uploading):




all images Imgur: The magic of the Internet

13 Likes

Wow, looks impressive. Are you planning on releasing a game with this or something or is it a project for yourself for learning? :slight_smile:

Is the project open source and is there a github available or something?

2 Likes

Thx. It’s private project combined with private engine, they like push each other. I want at least share demo later but it needs time.

3 Likes

:open_mouth: This realy looks like a lot of work!
What programming language and tools do you use? What vector tiles (for building heights i.e.)?
Will it be an native Application? Online on the web? Smartphones?

1 Like

Core is private C++ game-like engine written from scratch. Vectortile is kind of industrial standard vector-tile-spec/2.1 at master · mapbox/vector-tile-spec · GitHub , it’s way to store data from osm planet pbf in tiles with lods (usually with mercator projection). Desktop application performance is 30-60 fps even when old videocard like Radeon RX 480 is used, but it’s still requires powerful processor with multiple cores to generate additional data for details on fly, I doubt smartphone would handle it. I want to make demo but I need to do some polishing and somehow host 200 GB of data.

2 Likes

Yes, rendering the Earth (partly) is heavy.
Do you generate the tiles yourself, direct from OSM tagging? All Earth? Zoomlevel?
I consider to something alike. Not C++; but the ideas and algorithems are valuable. Difficult! Like: How to place buildings in terrain sloopes.
Do you target Linux and Windows?

There are tools like tilemaker which generate sql db from osm (pbf). It should be multiplatform but I didn’t check anything but windows.

Wow, this looks stunning!

If you’re in need of an efficient way to store OSM data locally, check out GeoDesk. The full worldwide dataset takes up less than 100 GB, and queries are extremely fast. The query engine runs in-process, the entire library is less than 250 KB compiled.

For example, to query all buildings in a given bounding box and extract their height and footprint:

#include <geodesk/geodesk.h>
...
Features world("world");    // Open the world.gol database file
Features buildings = world("a[building]");
    // All areas (ways and relations) tagged "building" 

Box bounds( /* your coordinates here */ );
for(Feature building : buildings(bounds))
{
    double height = building["height"];
        // or 0 if no "height" tag present
    GEOSGeometry* footprint = building.toGeometry(geosContext);
       // Create a (multi)polygon (Mercator-projected)
} 

GeoDesk integrates with the GEOS library for advanced geometric operations (You can also retrieve the individual nodes of features and assemble the shapes yourself.)

100% open-source. GitHub / API Reference

1 Like

I did not ask for tile making OS but for the application OS. I am curious about how your data flow is from (what) OSM API to the geometries/meshes. But take your time and tell us, if and hiw we can use it.

And I answered exactly what you asked )

Just for future reference, quoting the comment from @Pieter_Vander_Vennet in the reddit thread:

Feel free to get an account on source.mapcomplete.org and to configure a runner on “lain”. You have a planet file in /data, 96GB ram and about 500 TB available. It is a shared resource though, so don’t hoard it all the time

First of all, I made a typo. There is about 500GB (not TB) HDD available. Should still be enough though.

Also: we are currently having connectivity problems, so the internet is really slow. (as in: kilobytes per second downlink and 20% packet loss), so will be unusuable for this usecase for a few more weeks. But feel free to already sign in though!

3 Likes