Epic Games touted their VR-optimized forward renderer as the reason why their forthcoming Robo Recall game looks so crisp in VR. Now the tech is available to all Unreal Engine developers in version 4.14 released today.
While deferred rendering has become a popular choice in game engines lately thanks to its efficient calculations of lighting and shadows, using a forward renderer opens the door to the multi-sample anti-aliasing technique (MSAA) which is especially well suited as it can enhance the sharpness of the scene in VR compared to other methods of anti-aliasing. In Epic’s words:
The forward renderer works by culling lights and reflection captures to a frustum-space grid. Each pixel in the forward pass then iterates over the lights and reflection captures affecting it, shading the material with them. Dynamic shadows for stationary lights are computed beforehand and packed into channels of a screen-space shadow mask allowing multiple shadowing features to be used efficiently.
The company says the forward renderer is “about 22% faster than the deferred renderer on an NVIDIA 970 GTX,” for Robo Recall. Improved rendering performance means more overhead to make increasingly complex and graphically rich scenes (or reduce the power needed to run a scene of the same complexity).
Graphically rich indeed, Robo Recall, which Epic announced last month as an Oculus Rift exclusive shooter for Touch, has some of the best looking graphics you’ll find in VR right now. If you’re curious about the technical differences between a forward renderer and a deferred renderer, see here.
Unreal Engine 4.14 is also packed with other VR enhancements, here’s a quick summary (or see the full release notes here):
Precomputed Lighting Scenarios
We now support precomputing lighting for multiple lighting setups with the same geometry! This is especially important for use cases such as VR and architectural visualization where you need the highest possible quality at the fastest possible performance. In the above example the directional light, sky light and skybox have been placed in a Lighting Scenario level called DayScenario. The streetlights have been placed in NightScenario.
Landscape Editing in VR
[gfycat data_id=”PaltryDelayedFlounder” data_autoplay=true data_controls=false]
You can now create and sculpt terrain and paint landscape materials using motion controllers in VR! You can summon the Landscape Editing tools from the “Modes” panel on your Quick Menu. Then choose a brush from the UI and start painting! If you hold the “Modifier” button on the motion controller, you can erase instead of painting.
VR Multiview Support for Mobile (experimental)
You can now use the mobile multiview path on supported devices! Mobile multiview is similar to instanced stereo on the desktop, and provides an optimized path for stereo rendering on the CPU.
Layer Support for SteamVR and PSVR
Layer support has now been added for both SteamVR and PSVR! It works exactly like it does for the Oculus Rift plugin, using the Stereo Layer component.
VR Loading Movies
The engine now supports loading movies on Oculus, GearVR, SteamVR, and PSVR. These run on the rendering thread, and can mask framerate hiccups as you load up your content. To use the splash screen, you can set a texture using the “Set Splash Screen” node, or choose to automatically have it appear when you load a map with the “Enable Auto Loading Splash Screen” node.
PSVR Support for Multiple Framerate Targets
We now support native 90Hz to 90Hz reprojection and 120Hz to 120Hz reprojection on the PSVR! This means you can opt in to running at a higher framerate to minimize latency and reprojection artifacts. The engine will limit your framerate to your selected option, but it’s still your responsibility to make sure you consistently maintain that framerate!