Oculus VR Forward Rendering

Source: https://developer.oculus.com/blog/introducing-the-oculus-unreal-renderer/

https://s3.amazonaws.com/static.oculus.com/website/2016/05/unreal-image-1.jpg

It really looks awesome. They get 73% more performance and they can use MSAA instead of Temporal AA which is a huge improvement, especially in VR! With Temporal AA the artifacts are even visible at 200% screen percentage, 300% looks significantly better but no one can afford that in VR. So forward rendering and MSAA is definitely the right way to go.

Epic, please consider taking the code from Oculus and integrate it into UE4 as an official rendering path if the license of the Oculus code allows that. It does not need to support all existing rendering features, it can be super experimental, but a 73% improvement in rendering performance is very significant for all VR devs, and a significantly sharper image with MSAA is also nice.

Yes please, any word on if this is possible from engine developers?

That should be bad a$$ on Gear VR, please implement!!!

I certainly second this! I’d love to take advantage of this extra performance in VR, even if there are feature-costs… Just at least make this an experimental option, we can check-enable, like Instanced Stereo Rendering is.

Wait, is this for desktop only ? (I am with Gear VR)

Alright, this is officially sucks. Just got a word from Oculus it’s for desktop VR only and while Epic likes it, there is no word on whether it will make it into official master or not.

On GearVR you want to use the mobile renderer, which is already forward. So you don’t need this.

Oculus renderer was mentioned in today’s stream on Twitch.

Oculus based their PC VR renderer on the mobile (GearVR) version and improved it to get it much closer to feature/quality parity with the original PC renderer. More on this here: https://youtu.be/Xk3WUk5T2TQ?t=2525
In a way it’s the PC VR getting Mobile/GearVR’s benefits (like MSAA), so it can’t be the other way around.

Will there be an official clustered forward renderer in the future? Now that most of the work is already complete?

I have one single, stationary directional light in the scene. Everything except the car is static and baked-in.

I tried Oculus’ Renderer for my project. Can’t say it looks quite the same. Here’s a 1:1 comparison:

(Mouse-Over = OVR Clustered Forward)

  • Dynamic shadows are gone (look at the inside of the car)
  • No ambience occlusion (look at the left side of the cockpit)
  • Everything looks more redish for some reason
  • Visual noise on some textures (not visible on the screenshots, looks like small vibrating)
  • No SSR (look at the reflections at the floor and the car)
  • All decals are gone

The really bad thing killing the graphics the graphics most are the missing SSR, AO and the abscence of realtime shadows. I thought, the latter would be supported with clustered forward, too?

Huh. Seems like it’s not quite done.

I’m curious as to why there are no dynamic shadows as Farlands defintately has them.

It would be cool if the mobile forward renderer was made available as an option for desktop, too, and the improvements from this extension were folder back in.

All of these are effects that deferred shading can get away with in a single (additional*) pass which forward can’t or simply can’t do - in general, deferred is quicker. My guess as to why there’s a performance boost would be that there’s many less features, which I’m pretty sure could all be disabled to achieve the same if not better results in Rendering settings.

Clustered forward/forward+ should definitely have support for realtime shadows and AO (see The Order on PS4).

In my experiments, I’ve been able to get cascading shadows from a movable directional light but only when the actor you want to cast shadows is movable. I’ve got an all dynamic scene, but even when I make every mesh in the scene movable I still see a 25 - 30% frame time improvement with all the incompatible features turned off.

Not sure if many interests, I’m porting oculus’s clustered forward renderer to 4.12.

Btw, Valve just released their forward renderer for Unity, and with Epic gonna adding desktop forward renderer support, suddenly forward renderer is coming back from half grave. Thanks to VR, I guess.

4.12 ported. Unfortunatelly my PC suddently wont boot before I can do more test and push to github. :frowning: That’s the time when you miss Mac.

Hello, just wanted to chime in on this thread real fast. I got word from some of our developers that we’ll be using some of the code, but not all. They made it clear that it’s great for optimization, but some of the parts are not what we want by default in the engine. Hope that helps to clarify! Thanks for all the feedback y’all! :smiley:

Hate to be “that guy,” but how exactly would I get this running on a new project? Brand new UE4 user with CV1. Normally I use Unity but for a work project I’ve been experimenting with UE4. Any help with getting this up and running in my project would be great. Cheers :slight_smile: