Map data may come in handy for a wide range of VR stories and experiences. Not only can users get a perfect overview of where a story is happening – like looking at a model table, they might even be transferred to certain locations that resemble the ‘real world.’ Both, a bird’s eye view and an in situ location require thoughtful preparation. While in bird’s view, the sheer amount of geometries is a blocker especially on mobile devices, in-situ scenes require a lot of preparation to justify using a modelled environment instead of a 360 degree projection onto a geometry. This post will take a look at the challenges we currently experience within our project A100, a city development VR experience.
Complex building data
As described in an earlier post, there are many ways to get map and building data. From proprietary platforms, such as Google map/ earth products to open data portals like Open Street Map or even scientific profiles from the NASA Shuttle Radar Topography Mission. A next step is to prepare this data for your project in a desired format and of course size. For our particular project, a map we needed was part ‘O5’ from the Berlin senate’s city model. It comes as AutoCad .DWG format – in my view a bad choice to serve open data, as for best results, proprietary software is needed to handle this and make neccessary conversions for platforms to create VR with. Using trial versions of a proprietary software stack, we managed to get an FBX export – and that left a mess of double vertices, non-linked geometries and a count of roughly a million polygons for this map part. Considering recommendations from this Oculus blog talking about performance for VR experiences on certain devices, roughly 50 to 100k polygons are acceptable. Using some automated functions in Blender (Deleting: Limited Dissolve, Remove Doubles) we cut polygon count down to 25%, which was still too much for an overview scene on a mobile device. We discussed the option of leaving out buildings on the map that are not in near range of points of interest, but we felt this would give the wrong impression of the scene. So either, we clean each object and simplify it manually, or come up with other solutions.
From CityGML to .obj
One map source available is Berlin’s digital 3D city model, a joint project of the Berlin Senate Department for Economics, Technology and Research as well as Berlin Partner for Business and Technology. It can either be acquired interactively via map functions (create a bounding box) or directly downloaded as zip’d CityGML per district. Since we need something for Unity3D to consume, conversion to .obj format was realized using polygon.city’s citygml2obj converter.