Case study

How to Increase FPS for VR with Meshmatic

IUOE Training Association was looking to use VR simulation to complement their existing training courses for crane and excavator operation. Because they were working with large engineering CAD files, they needed a solution to help them increase the frame rate for VR, while maintaining a high resolution. Since the Oculus Quest is wireless and not tethered to a high-powered PC, optimizing the CAD files was necessary, and this is where Meshmatic helped.

 

IUOE-case-study

The Project

VR training simulation for a crane operator and excavator unit.

Platform

Oculus Quest

The Challenges

  • Cleaning up original CAD file to import into Unreal Engine (UE4)
  • Balancing Oculus Quest FPS with a high resolution
  • Ensuring VR training simulation is realistic and accurate/faithful to the original model

The Goal

Optimizing the original engineering file while maintaining a relatively high resolution, all while having a reasonable FPS on Oculus Quest.

The Solution

Meshmatic helped detect areas needing performance improvements in their CAD files and optimized accordingly. Using Meshmatic’s data analytics tool, our team was able to ensure that areas being optimized would not decrease the accuracy of the visualization.  With a cleaned-up FBX file, our team was able to create a VR training simulation of a crane operating unit using UE and export it to Oculus Quest maintaining a high FPS.

Data prep with Meshmatic

Instead of manually cleaning up complex CAD files and preparing them for real-time visualization, an automated software solution like Meshmatic can identify problem areas in the file and optimize them automatically. Let’s go over some of the areas in the 3D file that Meshmatic optimized and how they helped improve the frame rate for Oculus Quest.

1. Outliner clean up

Ending up with an extensive outliner is a common issue after importing CAD directly to Unreal Engine. CAD software apply rotation, location and scale information to each mesh. Once you move a CAD design out of its native software, and import it into another software (like UE), the rotation, location and scale information is separated into multiple parental nodes, instead of a single parental node, creating an extensive outliner. Fixing this problem requires reverse calculating the quaternion data and merging into a new transform mode.

Using Meshmatic’s outliner optimization tools, we selected the root node and used the “roll up tool”, which analyzes parental relationships throughout the hierarchy and combines all multi-parental relationships into a single parent. This resulted in a highly clean and organized hierarchy without multiple parents, making it significantly smaller and easier to use.

meshmatic-outliner-clean-up-for-vr

Left: Extensive and messy outliner.

Right: Organized and easy to work with outliner after optimizing with Meshmatic.

2. Vertex count reduction

crane-vr-vertices-reduced

After reducing the vertex count from 3.5M to 600K with Meshmatic, the excavator model was easy to work with and quick to render.

Duplicate vertices and objects are a bottleneck to visualization in Oculus Quest where file size needs to be kept to a minimum. The crane operator engineering model, for example, had 3.5 million vertices that needed to be significantly decreased before importing the model to Unity.

With it’s duplicate detector technology, Meshmatic identified 3.1 of the 3.5 million vertices to be duplicates. With the click of a button, the software instanced the 3.1 million duplicate vertices and significantly decreased file complexity. Optimizing duplicate vertices helped improve the project’s FPS for VR.

Duplicate vertices and objects are a bottleneck to visualization in Oculus Quest where file size needs to be kept to a minimum. The crane operator engineering model, for example, had 3.5 million vertices that needed to be significantly decreased before importing the model to Unity.

With it’s duplicate detector technology, Meshmatic identified 3.1 of the 3.5 million vertices to be duplicates. With the click of a button, the software instanced the 3.1 million duplicate vertices and decreased file complexity by ____.

crane-vr-vertices-reduced

3. CAD conversion problems

In order to texture some assets, the 3D model of the city needed to be converted from CAD to polygon mesh. The conversion process created problems in the polygon mesh. For example, the crane tower was made of hundreds of attached planes and screws, which after conversion, turned into a group of hundred small meshes. We also found many non-manifold faces in the meshes that needed to be removed.

Meshmatic’s continuous combine tool found all the meshes that had previous contact points between them and combined them. The previously separated tower mesh, for example, was now combined into a single tower mesh. After combining the parts, we used the remove-non-manifold faces tool to delete the non-manifold faces from the entire tower (as seen in the photo). After this was completed, we were able to import the repaired mesh into Autodesk Maya for UV mapping.

remove-non-manifold-faces-meshmatic

Arrow is pointing at non-manifold faces in the mesh that are difficult to find without an automated software like Meshmatic.

4. Re-orienting normals

fix-normals-meshmatic

Top: Visualization of the Vancouver city model in the Oculus quest before optimizing with Meshmatic.

Bottom: Visualization of the Vancouver city model in the Oculus Quest after optimizing with Meshmatic. 

The orientation of an objects surface plays an important role in the amount of light it reflects and therefore how bright it looks. In Unreal Engine, Normals are used to provide significant physical detail to the surface by perturbing the “normal”, or facing direction, of each individual pixel. 

For this project, our client asked us to make the experience be as accurate as possible, so users could instantly recognize the Vancouver, we decided to use a complete 3D model of the city. While the model was very low-poly, the Oculus Quest struggled to render the light maps and faces (as seen in the image below). To solve this issue, we used Meshmatic to re-generate and re-orient the Normals.

The orientation of an objects surface plays an important role in the amount of light it reflects and therefore how bright it looks. In Unreal Engine, Normals are used to provide significant physical detail to the surface by perturbing the “normal”, or facing direction, of each individual pixel.

For this project, our client asked us to make the experience be as accurate as possible, so users could instantly recognize the Vancouver, we decided to use a complete 3D model of the city. While the model was very low-poly, the Oculus Quest struggled to render the light maps and faces (as seen in the image below). To solve this issue, we used Meshmatic to re-generate and re-orient the Normals.

fix-normals-meshmatic

The results

With the help of Meshmatic, IUOE was able to increase the FPS for VR with a high resolution. They also managed to improve the Quest’s battery life by using an optimized scene. The VR simulation proved to be effective by training employees in a realistic and accurate scene of a crane operator unit.
increase-fps-for-vr
improve-fps-for-vr-with-meshmatic

%

Improved frame rate

%

Increase in efficiency

%

Improvement in resolution

     

© 2022 VRSQUARE Inc. All rights reserved.

1200 – 555 Hastings Street W
Vancouver BC, V6N 5A4 Canada