Simulation / Modeling / Design

Caustics Available This Week on Experimental NVIDIA Branch of Unreal Engine 4

NVIDIA’s branch of Unreal Engine 4 (NvRTX UE4 Branch) is popular with developers because it allows teams to maximize the performance of games running on NVIDIA RTX GPUs with cutting-edge features.

8K Ultra Performance Mode Available Now

A great example of this is the new Ultra Performance Mode, which allows for 8K gaming on compatible displays. When paired with a Geforce RTX 3090, DLSS (deep learning super-sampling) enables the creation of 8K game content, so developers can support the new bar in display resolutions. The latest version of NvRTX UE4 Branch can be found here.

There has been high demand for caustics features to be included in the NvRTX UE4 Branch. NVIDIA’s engineers have made significant strides in supporting these requests. As we finalize caustics support for our primary UE4 Branch, we wanted to make these features available to developers early in an additional experimental branch.

On our NvRTX UE4 Branch page, tomorrow, you will be able to access our experimental Caustics Branch, which introduces an improved hybrid translucency mode, multi-bounce refraction optimization, mesh caustics, and water caustics. 

If you’re not familiar with caustics, here are some examples of how they work in games:

Left: NVRTX ray traced scene.
Right: NVRTX ray tracing with water caustics

This example shows the light bouncing off the water, creating bounced refractive light in the shadowed areas under meshes. The water itself becomes more visually believable because of the light that is transmitted through to the bottom that gets refracted and distorted in a realistic way.

This is what it looks like under the water:

Left: NVRTX ray traced scene. 
Right: NVRTX ray tracing with water caustics

The only light source used in these water shots is a direct sunlight.  So as you can see with a single light source there can be a lot of dynamic lighting contribution both above and below the water line.

Mesh caustics:

Left: NVRTX ray traced scene. 
Right: NVRTX ray tracing with mesh caustics

In this example mesh caustics are generating a lot of refracted, reflected and transmitted light. The NVRTX ray traced scene is doing quite a bit: soft shadows, translucency and refraction. But without caustics, the renderer can’t take advantage of how light refracts and transmits through translucent surfaces.

One more example: an offline render that took 560 hours in 2006 compared to real-time caustics in 2020 using RTX graphics:

Left: Offline render that took 560 hours to generate. 
Right: Real-time scene using caustics running at 60fps

While the graphics aren’t identical, the real-time scene is doing things that were previously thought impossible at a high frame rate. Caustics demonstrates new possibilities in ray tracing.

When deciding which version of NvRTX to use, consider the following: The NvRTX Branch has greater stability and compatibility with mainline Unreal versus the NvRTX Caustics Branch. When developing in the NvRTX Branch, there is confidence in the compatibility and stability that NvRTX offers. It’s good for any scale project, from indie to AAA.

The NvRTX Caustics Branch has features implemented in a way that changes key foundational code. In order to implement the caustics feature, the translucency and materials systems had to be altered extensively among others. This means that there might be incompatibility between mainline UE4 code/content and NvRTX code/content. This is why NvRTX Caustics Branch should be thought of as experimental, and as with any cutting-edge code please ensure to make a backup copy of the project in use.

The NvRTX Caustics Branch can generate binaries and has all the expected functionality of the NvRTX Branch it’s based on.

Discuss (0)