Download

Does Epic Have a Proper Solution for Anti-Aliasing in VR?

So I’ve been prototyping for my VR game recently and I have come across a serious issue for UE4, which is that all of the anti-aliasing solutions currently available are terrible for VR. I would really like to use UE4 for my VR project because I truly believe, for many reasons, that it is a better engine than Unity. However, in the case of VR Unity wipes the floor with UE4 in visual clarity, especially when using The Lab Renderer. This is sort of ironic considering that for traditional games UE4 often looks much better, but the importance of certain graphical settings in VR is quite different than in traditional games. Specifically, using high amounts of anti-aliasing is much more important for clarity and—most importantly—comfort in VR.

Currently in UE4 we only have four options:

  1. No AA - This looks awful in VR, and even the non-gamers I have tested my prototype with have noticed and complained about “the shimmering edges”. This option is not acceptable.
  2. FXAA - Basically appears to have zero effect in VR.
  3. Temporal AA - Temporal AA is quite awesome for traditional games, and even does a great job of smoothing out edges in VR, but its biggest downfall is twofold. First, the weird ghosting/shimmering effect left behind moving objects is distracting in VR. Second, Temporal AA adds an unacceptable amount of blurring to the entire image. The blur factor is really what kills this option, and it is very distracting, giving the user a feeling that there is a layer of fog on their lenses that they need to rub off. This blurring issues persist even at much higher screen percentages like 200% resolution, and the texture detail is still lost (although the clarity is certainly improved).
  4. High Screen Percentage - While extremely high settings (like the max of 300%) does reduce the aliasing effect, it is still noticeable, and the impact on performance compared to what is gained in return is not feasible.

On the other hand my prototype with Unity (using The Lab Renderer), makes me genuinely feel like my Vive’s screen has a higher resolution than it actually has! This is due to the Adaptive Quality functionality built into Valve’s renderer, which allows the resolution and MSAA to dynamically scale depending on the current performance of the GPU. Not only does it look dramatically better than any settings UE4 can provide, but it is also dramatically more efficient as well! I recommend anyone interested in this to check out a scene using The Lab Renderer in Unity and switch between it and viewing a VR level with UE4. I think you’ll find that visual fidelity is night and day.

So why aren’t I using Unity?.. Well because I honestly can’t stand using it, and I usually run into nothing but problems when working on anything but the smallest of projects. Not only that, but I believe Epic’s core business philosophy is more pro-developer than Unity’s (Epic’s success primarily depends on each developer’s success because of royalties, Unity only needs to care about selling you the software, Epic regularly releases professional and fully integrated tools and improvements with each update, Unity seems bare-bones in comparison and sells the same features in piecemeal on the asset store, UE4’s networking rocks, Unity’s is garbage in comparison last I checked and your alternative is again the asset store, buying a networking library built by one or two part-time dudes that may or may not support it in the future, etc. etc.)

This is all to say, I’d really hate to have to use Unity, but at the moment it looks like I might be forced to do just that for this project. Has anyone found any kind of solutions to this fidelity problem? Any if not, when (Months? A year?) can we expect some kind of alternative AA technique or maybe even an entirely new forward rendering solution (which I’ve heard is planned) for VR?

P.S. Using the Oculus Forward Renderer is not an acceptable option for me.

I can only speak for Gear VR - MSAA x2 works automatically when running UE4 apps/games on Gear VR, so no issues there. I don’t know how that works with Rift/Vive, but it seems that in VR MSAA is the only viable solution, and I don’t think UE4 can do that due to deferred renderer. Nor can Unity do that if you have deferred rendering path.

By that do you mean that there has been experimentation with other AA techniques using a deferred renderer in VR and it hasn’t worked? In that case it sounds like everyone will be waiting for Epic to release an alternative renderer.

I am saying that MSAA doesn’t work with deferred rendering and that’s the AA you want to use in VR. There is a fork of UE4 by Oculus with forward rendering and MSAA I think, but you’d have to build it yourself.

There are bunch of other AA (check new DOOM) methods, but since Epic works on projects that do very well with current solution, they don’t have time/resources/incentive to go after yet another AA method. CryEngine’s AA is on GitHub, so you can implement it for UE4 yourself :slight_smile:

Give CryEngine 5 a go and see if it meets your criteria.

This is what CE has: http://docs.cryengine.com/pages/viewpage.action?pageId=1605684

And here is the code: GitHub - iryoku/smaa: SMAA is a very efficient GPU-based MLAA implementation (DX9, DX10, DX11 and

Feel free to integrate into UE4 :slight_smile:

Hmmm, totally would do that if I had the competence. Unfortunately I’m more of the designer type :frowning:

It is an interesting option, but I’ve had a couple years of experience with UE4 now and I’d hate to start from scratch. Maybe I’ll look into it, although from what I hear the documentation is pretty bad.

Then fill up UE4 wishlist with your wishes, and keep using what UE4 already offers. That’s what I do :slight_smile:

Yeah, I just wish I knew what kind of time frame Epic was thinking for this, because they’ve said they are working on it.

On a positive note the new hotfix that just came out (4.12.5) fixed the visual studio 2015 update 3 problem!

Temporal AA - very bad aliasing on the emissive surfaces(
FXAA, MSAA much worst.

If someone have a good results please share you specs

Have you enabled forward renderer for MSAA?

yeap, very poor quality and didn’t solve problem