Optimizing BIM for Virtual Reality Experiences

When creating an experience using a building information model (BIM), virtual reality is an incredibly powerful tool; no other methods can immerse users in a space like virtual reality can. However, preparing a BIM as detailed as the Centre Block model for use in a VR experience takes a significant amount of planning and optimization.

Building information models created in Revit are formed using ACIS solids. In order for the models to import and render properly into a game engine to be visualized, they must be converted to a polygon mesh. The mesh can be exported directly from Revit, however the resulting model has no optimization, and in a model of this size, would not fit into the guideline for optimal performance in a virtual reality headset. To keep a high framerate in a headset such as the Oculus Rift, the recommended amount of polygons for a scene is about 2 million. If the framerate drops too low, the user can experience nausea and motion sickness due to lag on the device hardware, or latency, producing unnatural or choppy movement. Polygon count is not the only factor that should be considered when optimizing a model; the number of elements being drawn to the screen (also known as draw calls) and transparent materials are two other major contributors to reduced framerates and latency. The Library of Parliament model exported directly from Revit resulted in 44,735,662 polygons, and about 27,000 separate meshes.

Senate

A number of techniques from both the Architecture, Engineering and Construction (AEC) industry and games industries were used in order to optimize the models while keeping as much detail as possible. CIMS developed a method of sorting an organizing meshes called geometry levels. Each element in the room was classified into geometry levels from 1-4. GL1 was used to classify large surfaces, such as walls, floors, or ceilings. These elements could typically be reduced to a very small amount of polygons, as they had little to no detail built into the geometry. GL2 classified character defining elements, such as arches or structural elements. GL3 was for framing details, such as furniture or moldings. These elements require significantly more detail, and as such, require more polygons. The last classification, GL4, was for fine ornamental details, such as engravings or window tracery. GL4 elements typically had a high amount of detail in a relatively small object. This classification method was informed by the scale of traditional architectural drawings, where GL1 elements would be at a scale of 1:250, GL2 at 1:100, GL3 at 1:50, and GL4 at 1:10.

The first step in optimizing the BIM was to export the individual geometry from Revit as DWG files, and import them into Rhinoceros 3D, which allowed optimization of the models without losing the detail of the model. In Rhinoceros 3D, repeated pieces of geometry, such as columns, were instanced to improve load times and file size.

Once exported from Rhinoceros 3D, some models were able to be imported directly into the game engine, however, others needed additional cleanup and optimization. These files were brought into 3DS Max, which allowed for modifications directly to the polygonal mesh. The types of errors fixed in 3DS Max included duplicate or flipped faces, holes, non watertight edges, and UV mapping or material adjustments. In some cases, meshes were completely re-topologized to improve the mesh quality while also reducing the polygon count.

In order to reduce the amount of polygons in the highly detailed GL4 and some GL3 elements, normal maps were generated in 3DS Max to preserve the detail as a texture, which is then applied to a much lower polygon mesh. Normal maps were also used to add a sense of depth and realism to many of the materials used in the space, including bricks and stonework.

Queen Layers Black

Models that would only be seen from a distance were able to have their polygon count reduced significantly, as the lower level of detail would be undetectable from the predetermined camera location for the scene. The best example of this can be found in the House of Commons, where the balcony seating was able to be reduced to a single polygon for each chair. Other pieces of geometry required various levels of detail to be created, an example being the House of Commons desks. Those located closest to the camera have had minimal reduction to the model, while the desks in the middle have been reduced but preserve some details in the geometry, and the furthest away rely on only normal maps for details.

deskLODs

Using this combination of techniques, the spaces were optimized enough to be visualized in a virtual reality experience, with minimal sacrifices to the detail of the building. The Library of Parliament was initially exported from Revit with 44,735,662 polygons, and after optimization, was reduced to 1,534,966 polygons for the entire space.

Instagram Library 05

Learn more about Parliament: The Virtual Experience here!