Rendering Overview

Overview of the main features of the rendering subsystem.

Choose your operating system:

Windows

macOS

Linux

The rendering system in Unreal Engine uses DirectX 11 and DirectX 12 pipelines that include deferred shading, global illumination, lit translucency, and post processing, as well as GPU particle simulation utilizing vector fields.

Deferred Shading

All lights are applied deferred in Unreal Engine 4, as opposed to the forward lighting path used in Unreal Engine 3. Materials write out their attributes into the GBuffers, and lighting passes read in the per-pixel material properties and perform lighting with them.

Lighting Paths

There are three lighting paths in UE4:

These are tools with different tradeoffs between quality, performance, and in-game mutability. Each game can pick which path is the most appropriate for their needs.

Lit Translucency

Translucency is lit and shaded in a single forward pass to guarantee correct blending with other translucency, which is not possible with multipass lighting techniques.

Lit Translucency

Translucency can cast shadows onto the opaque world and onto itself and other lit translucency.

Translucent Particle Self-Shadowing

Translucent Particle Self-Shadowing

Translucent Particle Self-Shadowing (Side View)

Translucent Particle Self-Shadowing (Front View)

See Lit translucency for more information.

Sub-Surface Shading

Materials have a new shading model MLM_Subsurface which is intended for materials like wax or jade which appear opaque, but lighting scatters inside them. This is lower quality and cheaper than what you would want for skin rendering.

jade_statue.png

ice_mounds.png

Jade Material

Ice Material

GPU Particles

UE4 supports simulating particles on the GPU. Traditional CPU systems allow for thousands of particles in a frame. GPU simulation allows for hundreds of thousands of particles to be simulated and rendered efficiently.

Spawn Rate - 500

Spawn Rate - 20000

Vector Fields

The most interesting feature of GPU particles, aside from their efficiency, is vector fields. A vector field is a uniform grid of vectors that influences the motion of particles. Vector fields are placed in the world as Actors and can be translated, rotated, and scaled like any other Actor. They are dynamic and may be moved at any time.

Global Vector Field

A field may also be placed within Cascade, limiting its influence to the emitter with which it is associated. When a particle enters the bounds of the vector field its motion will be influenced by it and when a particle leaves the bounds the influence of the field will fade out.

Local Vector Field

Post Process Effects

Unreal Engine 4 provides several post processing effects to allow artists and designers to tweak the overall look and feel of the scene. Examples of elements and effects include bloom (HDR blooming effect on bright objects), ambient occlusion, and tone mapping.

Ambient Occlusion

The Ambient Occlusion effect is an SSAO (Screen Space Ambient Occlusion) implementation and is currently based on the depth buffer only. This means normal map details or smoothing groups will not affect the results. Very low poly meshes might appear more angular with the effect enabled. In UE4, the effect is only applied to the ambient which currently means only to AmbientCubemap.

Ambient Cubemaps

The Ambient Cubemap effect applies a cubemap texture to the lighting of the whole scene. This effect is independent of the position from which a material is lit. Viewer position, material roughness (for specular effects), and the material surface normal are all taken into account. This allows efficient and high quality lighting environments.

Bloom

Bloom is a real world light phenomena that can greatly add to the perceived realism of a rendered image at a moderate render performance cost. Bloom can be seen by the naked eye when looking at very bright objects that are on a much darker background. Even brighter objects also cause other effects (streaks, lens flares) but those are not covered by the classic bloom effect. Because our displays (e.g. TV, TFT, ...) usually do not support HDR (high dynamic range), we cannot really render very bright objects. Instead we simulate the effects that happen in the eye (retina subsurface scattering), when light hits the film (film subsurface scattering) or in front of the camera (milky glass filter). The effect might not always be physically correct, but it can help to hint the relative brightness of objects or add realism to the LDR (low dynamic range) image.

Bloom Effect

Bloom Dirt Mask

The Bloom Dirt Mask effect uses a texture to brighten up the bloom in some defined screen areas. This can be used to create a war camera look, more impressive HDR effect, or camera imperfections.

Eye Adaptation

Eye Adaptation , or Automatic Exposure , causes the exposure of the scene to automatically adjust to recreate the effect experienced as human eyes adjust when going from a bright environment into a dark environment or vice versa.

Lens Flare

The Lens Flare effect is an image-based technique that automatically creates a lens flare when viewing bright objects.

Lens Flare

Tone Mapping

Tone Mapping allows the colors of the rendered scene to be shifted or modified to alter the end result. This can be used to create effects such as a sepia filter, hit effects (i.e., a red flash), and many more.

Tone Mapping - Off

Tone Mapping - On

Vignette

The Vignette effect causes the brightness of the rendered scene to decrease as the distance from the Viewport's center increases.

Vignette Effect

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss