Here we will be taking a brief walk-through of the NVIDIA VRWorks APIs. These sets of Application Programming Interfaces, sample code, and libraries are intended for use by the VR developers.
NVIDIA VRWorks appeals to game and application developers, VR headset developers and generally professional developers all in their own way.
A Case for NVIDIA VRWorks
With the advancements in the VR technologies from around the world, there is a clear need for high quality, high-performance set of APIs and libraries to aid the developers to create various applications. These applications include video games and simulations as well as the VR headsets that accompany them.
Such a toolkit would be incomplete without addressing the needs of professional VR environments like CAVES, Immersive Displays & Cluster Solutions.
Now as far as NVIDIA VRWorks goes, when we look at the game and application developers we think more about improving performance mainly with the implementation of Multi-Res Shading and VR SLI.
Game Developer Features
Multi-Res Shading entails rendering a scene with multiple resolutions based on the pixel density of a warped image. With the aid of Maxwell’s multi-projection architecture, GPU features complex scenes with multiple scaled viewports can be rendered in a single pass. The benefit here is a notable performance boost
As for VR SLI, this allows the system to split multiple GPUs and assigned them to a specific eye. By doing this the developer can achieve accelerated stereo rendering on DirectX and OpenGL.
VR Headset Developer Features
NVIDIA VRWorks targets VR headset developers by placing tools in their hands which helps reduce latency and improves industry compatibility with multiple interfaces and devices.
Context Priority is a feature which provides headset developers more control over the GPU scheduling in places such as the asynchronous time warp allowing a scene to sync with the headset wearer’s movements in real-time with reduced latency.
Then there is Direct Mode. This allows the developer to isolate the VR headset as though it is a head-mounted display independent of the normal monitor. This provides more stability and better compatibility with the final product.
Front Buffer Rendering grants access to the GPU to render directly to the front buffer. This reduces latency and consequently improves performance.
CAVES, Immersive Displays, and Cluster Solutions have not been left out. NVIDIA VRWorks brings Warp and Blend APIs which provides independent geometry adjustments across the VR environment. It does this without increased latency.
Then there various Synchronization techniques which prevent distortions in the image output when producing a large Desktop driven by multiple GPUs or clusters. These techniques include Frame Lock, Stereo Lock, Swap Groups and Swap Barriers.
Performance improvements are achieved with GPU Affinity by managing the placement of graphics and whatever is rendered across multiple GPUs.
Finally GPU Direct for Video allows the transfer of video to and from the GPU without the increase in latency. That way the developer can achieve efficient video overlays into VR environments.
Like any visual technologies, NVIDIA VRWorks can be best enjoyed by getting your hands dirty with the actual SDK. You can do this by going to the NVIDIA developer website then register for the VRWorks SDK.