UE4 Rendering FAQ - RHI

Mar 30, 2021.Knowledge

What are best practices for extending the rendering engine, preferably in a maintainable way?

  • Avoid changing engine code and do everything you can in a plugin or project module. If there isn’t an API for a rendering change you want to make, work with us to add one.

What is the best way to switch between render techniques in application when using forward Rendering for VR but not all players are not exclusively using VR, such as PC?

  • Each device renders its own contents, not the other device’s contents, so you can make the decision based on which device the client is running on. The server never renders anything.

Any simple example of CustomMeshFactories with simple data flow? in engine or otherwise?

  • LidarPointCloud is probably the main example for a plugin, and otherwise you can look at the vertex factories contained in the engine

What is the typical movie rendering workflow?

  • Render Movie Queue (4.25) allows you to do batch rendering on a render farm or headless rendering on your local machine. Currently, we have the infrastructure for anyone (engineers) to integrate Render Movie Queue with their render farm managing system. For 4.26 we are planning to integrate Deadline out of the box.
  • Render (Remote) option launches an external process that renders all sequences in your queue. You must save your changes in the project so the external process can read the files from disk.
  • The Render Remote option also allows you to implement a remote render farm while still preserving in-editor renders for quick previews while you adjust settings. The default behavior of the render options are determined by the Project Settings and can be adjusted to run your own code, such as adapting Render (Remote) to use third party render farm management software.
  • Additionally, you have cvar commands which can be a starting place for building your own automated render farms.
  • With Render Movie queue, you can process denoising techniques and remove Temporal Anti-Aliasing. You can subsampling, override games settings and Adjusting cvars like:
    • r.AmbientOcclusion.Denoiser.TemporalAccumulation 0
    • r.GlobalIllumination.Denoiser.TemporalAccumulation 0
    • r.Reflections.Denoiser.TemporalAccumulation 0
    • r.Shadow.Denoiser.TemporalAccumulation 0
  • For now the output formats are: bmp sequence, exr sequence, jpeg sequence, png sequence, audio wav.