Since beginning my own cinematic projects in Unreal, I have struggled to find a simple and easy way to configure Unreal to give me the best possible images, regardless of frame rate. I wasn't interested in creating a game, so I wasn't interested in frame rates. I was more interested in how many seconds I could render a frame, not how many frames I could render in a single second.

The problem was, Unreal was created to be fast, efficient, and it is a constant balance of quality and speed; tipping the scales in favor of speed. I wanted to tip the scales the other way. ALL the way. It was very difficult, however, to figure out how to go about doing this. There are lots of settings in Unreal, all intended to optimize and increase performance. They all come at the expense of render quality. I needed to track them all down and kill them. But finding them was hard. 

I did many, many Google searches. I found several different reliable resources. Unreal's own documentation provides a lot of examples of how to increase quality. Part of the problem is Unreal is constantly coming out with new updates. This is awesome, but this also means sometimes information is out of date and not helpful or relevant anymore. So, I decided to create a compilation of all the tips and tricks I found. So, here it is. The cinematographers guide to Unreal...or...This isn't a game anymore.

Increasing the texture streaming pool.

Removing light mass compression.

The most important thing for screen shots is just bumping up the resolution/resolution scaling.

And the second most important thing is making or optimizing assets specifically for use with real time engines. A clean model with a proper lightmap and good materials is still going to look better than something just thrown into the engine, even with the settings cranked up.

High Precision GBuffer Normal Encoding

Increasing model resolution:

Project settings > Engine - Rendering > Optimizations

Gbuffer Format

Change from default to High Precision Normals.

From Unreal Documentation:

Enabling the High Precision GBuffer Normal Encoding option will allow the GBuffer to use a higher precision Normal encoding. This higher precision GBuffer Normal encoding encodes the Normal vector into three channels with each channel having 16 bits per. Using this higher precision encoding allows techniques like Screen Space Reflections (SSR) to rely on high precision normals.

To enable High Precision GBuffer Normal Encoding:

  1. In the Main Toolbar, select Edit > Project Settings to open the Project Settings.


  2. In the Project Settings under the Engine section, click on the Rendering option and under the Optimizations section change the Gbuffer Format from Default to High Precision Normals.

Also, increase the Reflection Capture Resolution (Project Settings > Rendering > Reflections), which defaults to 128.

In depth video on achieving high quality reflection in Unreal: