Real-Time Ray Tracing - Unreal Engine Documentation
Real-Time Ray Tracing - Unreal Engine Documentation
Filter pages... PRODUCTS SOLUTIONS NEWS & EVENTS LEARN COMMUNITY SUPPORT MARKETPLACE DOWNLOAD
ONPerformance
THIS PAGE and Debugging
Stat D3D12RayTracing
Evaluating Denoiser Quality
Additional Notes
Ray tracing techniques have long been used in film, television, and visualization for rendering photo-realistic images for a long time but required powerful computers and time to render each image or frame. For film and
television, it can take many hours or even days to render out high-quality image sequences, but the final result can create real-life 3D content that can blend seamlessly with real-life ones. For architectural visualization Materials
companies, ray tracing has meant creating beautiful renders for the automotive industry or showing what a densely-filled house or office complex could look like when complete all while achieving realistic-looking
results. Reflections
The power of Unreal Engine 4 (UE4) combined with Real-Time Ray Tracing (RTRT) makes it possible to create interactive experiences with subtle lighting effects comparable with many offline renderers in real time. Ray Translucency Index of Refraction
tracing effects look more natural, producing soft shadowing for lights, accurate ambient occlusion (AO), interactive global illumination, reflections and more.
(IOR)
Profile Materials
Sky Lights
Tracing
SEE ALSO
Archviz Interior Rendering
Real-time rendering of Ray Tracing features in the Archviz Interior sample project available on the Epic Games Launcher.
A hybrid Ray Tracer that couples ray tracing capabilities with our existing raster effects.
A Path Tracer for generating reference renders.
Ray Tracer
The Ray Tracer enables ray traced results for shadows, AO, reflections, translucency and global illumination all happening in real-time within your project. It uses a low number of samples coupled with a denoising
algorithm that is perceptually close to the ground truth results of the Path Tracer.
Path Tracer
Operating System Windows 10 RS5 (Build 1809) or later
Programming and Scripting GPU NVIDIA RTX and some GTX series cards with DXR support using the latest device drivers.
1. Go to the main menu and use the Edit menu to open the Project Settings.
https://docs.unrealengine.com/4.27/en-US/RenderingAndGraphics/RayTracing/ 1/9
10/12/21 17:16 Real-Time Ray Tracing | Unreal Engine Documentation
Filter pages...
ONPerformance
THIS PAGE and Debugging
Stat GPU
Stat D3D12RayTracing
Distance-based Culling
Evaluating Denoiser Quality
Additional Notes
Materials
Reflections
Profile Materials
Sky Lights
Tracing
SEE ALSO
Archviz Interior Rendering
NOTE
To enable Ray Tracing, Support Compute Skincache must be enabled for the project. If it is not already enabled, you'll receive a message dialogue asking if you would like to enable it now. If so, click Yes.
4. Restart the engine to launch the Editor with DX12 and to enable Ray Tracing for your project.
Ray Traced Shadows simulate soft area lighting effects for objects in the environment. This means that based on the light's source size or source angle, an object's shadow will have sharper shadows near the contact
surface than farther away where it softens and widens.
Ray Traced Reflections (RTR) simulates accurate environment representation supporting multiple reflection bounces.
This example shows a single bounce of ray traced reflections compared to multiple bounces of ray traced reflection. Using multiple bounces creates real-time inter-reflection between reflective surfaces in the scene.
Ray Traced Reflection Single Bounce Ray Traced Reflections Multiple Bounces
https://docs.unrealengine.com/4.27/en-US/RenderingAndGraphics/RayTracing/ 2/9
10/12/21 17:16 Real-Time Ray Tracing | Unreal Engine Documentation
In contrast, Screen Space Reflections (SSR), Planar Reflections, or even Reflection Capture Actors cannot capture the entire scene dynamically nor does it have some of the limitations present in these other reflection
Filter pages...
methods.
ONPerformance
THIS PAGE and Debugging
In this comparison, SSR is only capable of a single reflection bounce and is limited to what is visible on the screen for representation. On the other hand, RTR is capable of multiple bounces and is not limited to what is
visible, meaning that we can visibly see the sides of the book, reflected floor behind the camera, and additional lightings being reflected on surfaces coming through the window. Stat GPU
Stat D3D12RayTracing
Ray Traced Translucency (RTT) accurately represents glass and liquid materials with physically correct reflections, absorption, and refraction on transparent surfaces.
Ray Tracing Solid Angle and
Distance-based Culling
Evaluating Denoiser Quality
Additional Notes
Materials
Reflections
(IOR)
Ray Traced Ambient Occlusion (RTAO) accurately shadows areas blocking ambient lighting better grounding objects in the environment, such as shadowing the corners and edges where walls meet or adding depth to the Ray Tracing Features Optimization
crevices and wrinkles in skin.
By varying the Intensity and Radius properties of the Ambient Occlusion effect, you can control its size and strength.
Ray Tracing Distance-based and
NOTE
This is currently an experimental RTGI method.
An alternative ray tracing based global illumination global illumination method using a final gather-based technique has been developed that seeks to give back some runtime performance. This technique is a two-pass
algorithm. The first phase distributes shading points—similarly to the original RTGI method—but at a fixed rate of one sample per-pixel. A history of up to 16 shading point samples are stored in screen space during this
phase. During the second phase, the algorithm attempts to reconnect to the shading point history, amortizing the cost of the method.
The original RTGI algorithm intends to emulate the Path Tracer's ground truth reference and is similar in execution of the path tracing result. The new method trades that emulation for performance, which introduces
some limitations; it's currently limited to a single bounce of indirect diffuse GI, and reprojection of the previous frame GI sample data is susceptible to ghosting.
Enable the Final Gather method from the Ray Tracing Global Illumination section of a Post Process Volume using the Types dropdown selection.
To aid in suppressing temporal ghosting artifacts, you can use the following command to modify the world space rejection criteria.
It is currently based on a world distance measured from the original shading point. This rejection crieteria defaults to 10 units.
The Final Gather method also requires the following settings to be used in the Post Process Volume for it to work effectively:
Max Bounces: 1
Samples Per Pixel: 16
NOTE
Any additional Max Bounces beyond 1 are silently discarded and when adjusting the Samples Per Pixel, it's best to increase it by powers of two (for example, 8, 16, 32, 64).
Use Post Process Volumes in your scene to control Ray Tracing and Path Tracing features and properties. Volumes can be added to different areas for interiors and exteriors to apply the features and settings you want.
The following Ray Tracing features are controlled using Post Process Volumes:
Ambient Occlusion
Global Illumination
Reflections
Translucency
NOTE
For additional information about the available post process settings, see Ray Tracing Settings.
Lights
The Ray Tracer supports soft area shadows for all types of lights available in UE4.
On the Sky Light, use SLS Captured Scene or SLS Specified Cubemap with raytraced shadowing to capture the distance parts of the level and apply that to the scene as a light. Check the Cast Raytraced Shadow flag to Stat D3D12RayTracing
enable sky lighting in your scene.
Distance-based Culling
Evaluating Denoiser Quality
Additional Notes
Materials
Reflections
(IOR)
Profile Materials
Sky Lights
Tracing
Stat GPU
Check relevant Ray Tracing GPU performance by using the console command GPU Stats. You'll find relevant information about enabled Ray Tracing features and how much frame time is being spent to render them in
the current view.
Stat D3D12RayTracing
Check relevant Ray Tracing resource usage using the console command Stat D3D12RayTracing.
Under the Level Viewport, select the View Mode dropdown and select Ray Tracing Debug to select from the available debug view modes.
Scenes with ray tracing require objects outside of the camera view to be present in the scene, especially for highly reflective surfaces, which can increase cost of rendering. Culling objects that aren't visible or needed can
help optimize and gain some of that performance back.
Ray tracing provides a few ways of culling objects in the scene: by distance from the camera, or by projecting an area (or a Solid Angle) behind the camera and testing individual object's bounds to determine whether they
should be culled or not, or both simultaneously. The type of culling used can be set by using one of the following values for the console variable r.RayTracing.Culling:
1 culls objects behind the camera by distance and solid angle. (This is the default culling method.)
2 culls objects in front of and behind the camera by distance and solid angle.
3 culls objects in front and behind the camera by distance or solid angle.
The higher the value, more objects are culled in the scene.
The ray tracing console variables (r.RayTracing.*) for culling use two commands to configure Solid Angle culling: Angle and Radius. For example, r.RayTracing.Culling.Angle, and
r.RayTracing.StaticMeshes.WPO.CullingRadius.
Angle sets the projected area angle behind the camera (in degrees) that object's bounds will be tested against for whether they should be culled or not. Increasing the angle will aggressively cull a lot of objects.
Radius culls any object outside of the specified radius. By default, the radius is set to 100 meters (or 10000 cm/Unreal Units).
Evaluating Denoiser Quality
https://docs.unrealengine.com/4.27/en-US/RenderingAndGraphics/RayTracing/ 4/9
10/12/21 17:16 Real-Time Ray Tracing | Unreal Engine Documentation
Evaluate the quality of the Denoiser for different raytracing effects by doing the following:
Filter pages...
ONPerformance
THIS PAGE and Debugging
Disable Temporal Anti-Aliasing and Depth of Field
Both of these are running in linear color space in Unreal Engine's renderer. They do some HDR color weighting tricks to avoid aliasing between shadows and highlights.
Stat GPU
Compare the Denoised single sample per pixel with an Undenoised single sample per pixel.
The result will look incorrect due to the energy difference and that the denoiser is darkening the shadows too much. However, a single sample per pixel will look brighter due to the tonemapper's non-linear Stat D3D12RayTracing
operation.
For a better comparison, the Denoised single sample per pixel should be tested against an Undenoised multiple samples per pixel. Ray Tracing Debug View Modes
The denoised single sample per pixel will not be perfect due to information loss. However, when compared to undenoised multiple samples per pixel, the results are consistent.
Ray Tracing Solid Angle and
Also, keep in mind that the Denoiser supports up to four samples per pixel, which improves the quality and more closely matches the undenoised multiple samples per pixel result. Distance-based Culling
Evaluating Denoiser Quality
Other Debugging Notes
Other Debugging Notes
Use the command r.raytracing.ForceAllRayTracingEffects to quickly enable and disable Ray Tracing in your scene. A value of 0 will disable all effect, 1 will enable all effects, and -1 will use the previous settings
enabled for your project.
Additional Notes
Materials
Additional Notes
Reflections
(IOR)
Testing Material Costs
Complex Materials can affect performance of Ray Tracing features. Use the console command r.RayTracing.EnableMaterials to test performance impact. Light Transmission for Subsurface
Tracing
SEE ALSO
Archviz Interior Rendering
Use the Cast Ray Traced Shadows checkbox to set whether this Material casts ray traced shadows. This is useful for controlling specific elements of your Materials assigned to geometry that should or should
not cast a raytraced shadow.
Reflections
Ray Tracing Reflections can be expensive when rendering multiple bounces with reflections inside of reflections. Without multiple bounces, the intra-reflected material will appear black. Enable
r.RayTracing.Reflections.ReflectionCaptures to use Reflection Capture Actors as the last bounce in Ray Traced Reflections.
Dragging the slider shows a single bounce RTR, two bounces RTR with no reflection capture fallback, and a single bounce with reflection capture fallback.
Enable objects with translucent materials to appear in Ray Traced Reflections by enabling Include Translucent Objects in the Post Process Volume's settings under Rendering Features > Ray Tracing Reflections.
When setting up and using refraction for ray tracing, the Refraction material input is used to control the index of refraction (or IOR) in your translucent materials.
When defining the refraction value in your Material and setting the refraction properties in your Post Process Volume, you're able to adequately control the IOR for your translucent materials.
Material Setup:
https://docs.unrealengine.com/4.27/en-US/RenderingAndGraphics/RayTracing/ 5/9
10/12/21 17:16 Real-Time Ray Tracing | Unreal Engine Documentation
While this is not a requirement, single sided/non-manifold geometry doesn't have a good way of handling volume tracking or ray medium stacking. A two-sided material provides accurate results and is the
Filter pages...
recommended method for handling all translucent materials when using ray tracing translucency.
ONPerformance
THIS PAGE and Debugging
Set the Lighting Mode to Surface Translucency Volume or Surface Forward Shading.
Use the Refraction input to control the index of refraction.
Stat GPU
Distance-based Culling
TIP
Use a Material Instance to dynamically control the IOR of the material with instaneous results.
Evaluating Denoiser Quality
The amount of refraction and light transport that takes place is controlled by using the Refraction input in your material and using Max Refraction Rays and Refraction properties of the Post Process Volume. Additional Notes
The following translucent material is using a refraction value of 0.04 which has a maximum of six refraction rays to pass light through the material. The comparison below demonstrates the difference that refraction Materials
makes when it is enabled and disabled for this translucent material.
Reflections
Different values applied to the Refraction input affect the index of refraction of the translucent material.
(IOR)
Profile Materials
Sky Lights
Tracing
SEE ALSO
Archviz Interior Rendering
Dragging the slider shows the amount of refraction being applied from 0.01, 0.05, and 0.1.
Different values for the Max Refraction Rays property of the Post Process Volume also affects light transport through the material. With a single ray, there are not enough bounces to escape the material, leaving it
appearing dark. Increasing the ray count makes it possible to see objects through refracted glass. However, depending on the number of rays used, some areas may still appear darkened because light can not refract
enough times to escape; additional rays ensure that they escape the volume.
Dragging the slider shows the result of using 1, 3, and 5 refraction rays.
While it is possible to have ray traced refraction using a single-sided material, the results are similar but not equal to that of a two-sided material that exhibits physically accurate results.
NOTE
The Post Process Volume property Max Refraction Rays is available for use with both single-sided and two-sided materials to allow light transport through the volume. However, note that only a two-sided
material provides proper results and is the recommended way of handling all translucent materials using ray tracing features.
Light transmission on Subsurface Profile materials is possible when the light source has its Transmission property enabled.
Filter pages...
During the ray tracing shadow computation, a small scattering simulation is run to compute the expected volumetric scattering distance, through the medium, to the shadow-casting light. The scatter distance is used
during lighting to compute the in-scattering contribution. ONPerformance
THIS PAGE and Debugging
Stat GPU
Sky Lights
Stat D3D12RayTracing
Capturing distant objects, like a Sky Dome should be disabled for Sky Light contribution unless needed. This can save some performance and optmize your scene. For the BP_SkySphere provided with the UE4, this option
is disabled by default and will make reflections from the sky look different than expected. You can control an ojects contribution by enabling/disabling the checkbox for Visible in Ray Tracing in its Details panel properties.
Ray Tracing Debug View Modes
Distance-based Culling
Setting Reflections and Translucency Maximum Roughness
Use Max Roughness to set a threshold for raytraced reflections on Materials. This can be done within the Post Process Volume or using the console command r.RayTracing.Reflections.MaxRoughness. Evaluating Denoiser Quality
Setting a Maximum Ray Distance for Global Illumination, Reflections, and Translucency
This sets a maximum ray distance for each of these features to lower their cost and contribution in the scene. Other Debugging Notes
Use the console to set the MaxRayDistance console variable for each of these raytraced features. You can find them under r.RayTracing.*.
Additional Notes
RTGI Optimizations
Screen Percentage and Sample Per-Pixel now defaults to 50 and 4, respectively. If you need to set these to different values, by default, use their console commands to do so:
Materials
r.RayTracing.GlobalIllumination.ScreenPercentage, and r.RayTracing.GlobalIllumination.SamplesPerPixel.
Light contribution to GI can be enabled/disabled with the Affect Global Illumination property on the light.
Reflections
(IOR)
Geometry with small holes or lots of little details can impact performance, such as foliage and fences.
Indoor environments are slower to render than outdoors ones.
Light Transmission for Subsurface
For example, when light enters from outside, areas that are directly lit is faster than points that are indirectly lit.
Profile Materials
Also, you have to consider that more ray tracing features are being used, such as reflections and translucency
Sky Lights
Ray Tracing Distance-based and Solid Angle Culling
Ray Tracing Features Optimization
Scenes with ray tracing require objects outside of the camera view to be present in the scene, especially for highly reflective surfaces, which can increase cost of rendering. Culling objects that aren't visible or needed can
help optimize and gain some of that performance back. Geometry Considerations with Ray
Ray tracing provides two ways of culling objects in the scene: distance from the camera, or by projecting an area behind the camera and testing individual object's bounds to determine whether they should be culled or Tracing
not. By default, all ray tracing features and geometry use the projected area (or Solid Angle) culling method.
Ray Tracing Distance-based and
The ray tracing console variables (r.RayTracing.*) for culling use two commands to configure Solid Angle culling: Angle and Radius. For example, r.RayTracing.Culling.Angle,
r.RayTracing.Geometry.InstancedStaticMeshes.CullClusterRadius, and r.RayTracing.StaticMeshes.WPO.CullingRadius.
SEE ALSO
Angle sets the projected area angle behind the camera (in degrees) that object's bounds will be tested against for whether they should be culled or not. Increasing the angle will aggressively cull a lot of objects. Archviz Interior Rendering
Radius culls any object outside of the specified radius. By default, the radius is set to 100 meters (or 10000 cm/Unreal Units).
If Distance-based culling is needed, it can be enabled by setting the Radius variables to -1.
NOTE
This list is intended to give you an idea of what is currently supported and is not meant to be a comprehensive list of Ray Tracing feature support in Unreal Engine 4.23.
(Y/N/Partially)
Rendering Path
Deferred Y
Forward N
Types of Lights
Directional Light Y
Sky Light Y
Point Light Y
Spot Light Y
Rect Light Y
Lighting Features
Emissive Surfaces Partially Supported for reflections on surfaces, but does not emit light or cast shadows.
Light Transmission N The translucent shadow is treated as opaque, meaning no colored shadows or light transmission through the material.
Area Shadowing Y
IES Profiles Y
Light Functions N
Volumetric Fog N
Image Based Lighting (IBL) Y Support for HDRI with Sky Light.
Opaque Y
Masked Y
Translucent Y
https://docs.unrealengine.com/4.27/en-US/RenderingAndGraphics/RayTracing/ 7/9
10/12/21 17:16 Real-Time Ray Tracing | Unreal Engine Documentation
Filter pages...
Feature Supported Additional Notes
ONPerformance
THIS PAGE and Debugging
(Y/N/Partially)
Stat GPU
Anisotropic Y
Stat D3D12RayTracing
Additional Notes
Reflections
Preintegrated Skin Partially Works but the result isn't correctly raytraced. It uses the raster pipeline.
Clear Coat Y UE 4.25 includes significant improvements to the Clear Coat Shading Model. (IOR)
Sky Lights
Hair Partially Works but the result isn't correctly raytraced. It uses the raster pipeline.
Cloth Partially Works but the result isn't correctly raytraced. It uses the raster pipeline.
Geometry Considerations with Ray
Tracing
Material Functions Y
Two-Sided Y
SEE ALSO
Archviz Interior Rendering
World Position Offset Y Enabled per-Actor through the details panel with the property Evaluate World Position Offset. Supports, Static Meshes, Instanced Static
Meshes, and Hierarchical Instanced Static Meshes.
Geometry Types
Skeletal Mesh Y
Static Mesh Y
Landscape Y
Splines N
Procedural Mesh Y This type of geometry can be expensive to render in Ray Tracing.
BSP Brushes N
Cascade N
Platform Support
Tags
Ray Tracing
BACK TO TOP
AnswerHub
https://docs.unrealengine.com/4.27/en-US/RenderingAndGraphics/RayTracing/ 8/9
10/12/21 17:16 Real-Time Ray Tracing | Unreal Engine Documentation
© 2004-2021, Epic Games, Inc. All rights reserved. Unreal and its logo are Epic’s trademarks or registered trademarks in the US and elsewhere.
Filter pages...
Stat GPU
Stat D3D12RayTracing
Distance-based Culling
Evaluating Denoiser Quality
Additional Notes
Materials
Reflections
(IOR)
Profile Materials
Sky Lights
Tracing
SEE ALSO
Archviz Interior Rendering
https://docs.unrealengine.com/4.27/en-US/RenderingAndGraphics/RayTracing/ 9/9