Following up on the last update I took some time to fix the issues I had. Many things were tried, but ultimately the piece that helped was the Oculus forward renderer for Unreal Engine 4. This branch of UE4 provides MSAA instead of the TAA or FXAA that is provided with the default deferred renderer. Its definitely a tradeoff: in order to get MSAA you lose the ability to use a lot of lights, multiple reflection capture actors and more (those were the only two that effected me). Also, the branch is not supported so you are accepting a lot of risk in using it.
Using the Oculus renderer was very simple:
- Download the git repo from github (make sure you are on the right commit!)
- Build the project following the instructions in the Readme
- Open your project in the new engine. Make sure you select to make a copy!
- Disable the default AA under Project Settings -> Rendering -> Default PostProcessing Setings
- To enable the renderer you have to enable both it and MSAA using the following console commands:
- r.UseClusteredForward 1
- r.MobileMSAA 4
The console commands went into my level blueprint, I'm sure there is a better way to handle it but I'll have to research how.
While it is definitely a tradeoff between the renderers I am very happy with the results. One side benefit is that the frame timing went down from 9ms per frame to just under 6ms. This leaves a lot of room for things like super sampling, which is great! Aliasing is more visible, but in return you get more details and clarity. If your game only deals with large object at close distances the tradeoff might not be worth it. For something like a golf game though, it absolutely is.
This week I also added a lot of props to really flesh out the level as well as different target types. It has a long way to go but I think its starting to look good!