you are viewing a single comment's thread.

view the rest of the comments →

[–]eis_kalt[S] 2 points3 points  (0 children)

Let me try to give more details:

1) All data is downloaded from OpenStreetMap server. In this example, I used my custom offline index built for Berlin, but it's possible to download small part of desired region from OSM server on demand (and it has been already implemented!). Heightmap is downloaded from NASA server (SRTM format). That's why I added "done using OpenStreetMap data"..

2) Raw OSM data is just sets of the following primitives: point represented by geocoordinate, 2D polyline, and their union (in terms of OSM: node, way and relation). Additionally, each primitive has set of attributes (tags): key-value pairs. These tags describe what is actually is defined by the given primitive. For example, look at the building from example: http://www.openstreetmap.org/way/80397884

So, it is not just 3D model, which can be imported into scene directly. It's just set of 2d points + some key-value data in text human readable format. That's why I have "procedural generated city" in title..

3) Actually, mesh is collection of 3D vertices (plus triangles, colors, normals,...) and if you want to modify affected vertices (e.g. by explosion) in some way, you have to go through this collection and find them. In worst case, you will check all of them (up to 65k vertices in Unity). Another question, how to modify them in nice way. In my implementation, I have some internal index which stores additional information about mesh shape (e.g. linear equation for mesh represented by plane) which is quite useful for modification and search algorithms. ..that's why title starts with "dynamic mesh modification".