Valve have released the Unity based renderer for its superb VR experience collection The Lab in an effort to encourage adoption of what it sees as optimal rendering techniques for VR experiences.
Although many probably assumed that Valve’s collection of VR experiences, known as The Lab, released to the public just in time for the launch of the HTC Vive, would use the firms in-house developed 3D engine Source 2, it seems that the majority of experiences were actually built using the hugely popular Unity engine (with one notable Robot related exception).
Valve, recognising the popularity of the Unity 3D game engine among virtual reality developers, decided to release their high performance rendering engine which implements techniques developed by them to “provide the highest fidelity experience with the best performance,” for free, to the Unity asset store for developers to learn from and implement. The move was announced by Valve’s Chet Faliszek at Unite Europe in Amsterdam yesterday.
Valve have released source code for The Lab and Unity engine developers are encouraged to dig in to Valve’s custom shaders to learn more about, or indeed directly implement techniques such as Single-Pass Forward rendering, Adaptive Quality and GPU Flushing, all of which Valve implemented in The Lab and reference in a new blog post discussing the new release.
Valve’s focus is very much on preventing performance issues resulting in loss of frames, which can of course lead to discomfort for VR users, before they happen, though the use of dynamic level of detail (Adaptive Quality) for example.
They don’t currently have any focus on utilising a form of Oculus’ Asynchronous Timewarp. ATW, as the name suggests, decouples Timewarp from the render loop, which is a method dealing with frames that aren’t finished rendering by the time they need to be sent to the VR headset. The company explains in more detail in a recent blog post:
On Oculus, ATW is always running and it provides insurance against unpredictable application and multitasking operating system behavior. ATW can smooth over jerky rendering glitches like a suspension system in a car can smooth over the bumps. With ATW, we schedule timewarp at a fixed time relative to the frame, so we deliver a fixed, low orientation latency regardless of application performance.
This consistently low orientation latency allows apps to render efficiently by supporting full parallelism between CPU and GPU. Using the PC resources as efficiently as possible, makes it easier for applications to maintain 90fps. Apps that need more time to render will have higher positional latency compared to more efficient programs, but in all cases orientation latency is kept low.
Valve calls ATW an “ideal safety net,” but suggests a system to avoid relying on it too heavily, which is what this renderer release is all about. Developers looking for help achieving a consistent 90FPS, required to mitigate against artifacts that may lead to nausea, will likely greet Valve sharing its hard-earned coding tricks with open arms.