Recent advances in virtual reality hardware have lowered costs and improved the portability and ergonomics of virtual reality training systems. Advances in hardware and software have been driven largely by the entertainment sector and adopted for modeling and simulation. However, while working with a team at NASA's Goddard Space Flight Center we discovered problems of scale and performance that game-centric technologies fail to address.
Maintaining high framerates in VR is important in order to prevent the user from experiencing motion sickness. Some of our projects involved the display of highly detailed CAD models in VR. This presented severe performance challenges to our existing software and required a new renderer design that more closely conforms to the graphics hardware. An orbital mechanics simulator we developed involves large scales beyond the precision of 32-bit floating point math. The use of 64-bit double floats provides improved precision, but the actual implementation proved to be more nuanced and required balance with our goals of improved performance.
To solve these problems, we first performed an analysis of graphics hardware. Notable hardware trends were used to create a design framework that provided guidance during implementation of a new Vulkan-based renderer. A series of benchmarks was devised to test our new design against our original OpenGL renderer. Our results demonstrate that the techniques described here yielded more efficient GPU utilization and order-of-magnitude performance gains, in a variety of scenarios. Novel techniques will be described which allow deployment of applications to midrange hardware across multiple domains while maintaining optimal frame rates in VR.