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:
- 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.
- FXAA - Basically appears to have zero effect in VR.
- 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).
- 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.