GPU ray-tracing hardware - the future of V-Ray rendering

Chaos Group Labs 2018-08-30 10:01 article  > All

Ray tracing is the most natural method to achieve true photorealism since it is based on the physical behavior of light.

Top image: Archinteriors vol. 51 by Evermotion, rendered in V-Ray

A challenge with ray tracing, however, is that true photorealism takes a lot of computing power. Now we're looking forward to leveraging new GPU hardware that is specifically designed for ray tracing calculations. What this means is that now we have the ability to do ray-traced rendering in real-time.

The announcement of NVIDIA’s upcoming Turing GPU and the RTX product line that will use it is an important milestone in the history of computer graphics and ray tracing in particular. The professional Quadro RTX series was announced at SIGGRAPH 2018 and the consumer GeForce RTX series was announced at Gamescom 2018. These new GPUs will include dedicated hardware (called an RT Core) for helping us accelerate our ray tracing solutions as well as greatly extending the availability and affordability of NVLink to double how much memory is available for your scenes. 

The process of tracing a ray path through a scene can be generally split into two very distinct parts — ray casting and shading.

  • Ray Casting is the process of intersecting a ray with the objects in the scene. It is a complex operation that neds a lot of computing power.
  • Shading is the process of determining the appearance of an object — including calculation of texture maps and material properties. 

Depending on the amount of geometry in the scene and the complexity of the shaders, the balance between ray casting and shading can vary a lot. In typical scenes, ray casting may take as much as 80% for very simple scenes while heavy production scenes may only spend 20% of their time on it. The RTX graphics cards include specialized “RT Cores” to accelerate the ray casting process specifically. So speed increases from using the RT Cores will vary from scene to scene depending on how much time is spent on ray casting.

In general, scenes with simple shaders and lots of geometry spend more time on ray casting and less time on shading and will benefit the most from the RT Cores. In contrast, scenes with complicated shading networks and lots of procedural textures, but relatively simple geometry, may see a smaller speed boost.

To illustrate the above points, Chaos Group rendered the same scene with V-Ray GPU and with an experimental version that implements support for NVIDIA RTX. They rendered the same scene with a grey material override, and then again with the original materials. The scene has 95,668,638,333  triangles in total and was rendered with a fixed sampling rate of 512 samples per pixel.

Scene with a grey material override. In this case, about 76% of the time is spent in ray casting that will benefit from RT Cores.

Same scene with full materials. In this case about 59% of the time is spent in ray casting that will benefit from RT Cores.

The above scene was rendered on a pre-release version of the Turing hardware with pre-release drivers and an experimental modified version of V-Ray GPU where we could track our ray casting amount. With simpler shading, a bigger portion of the render time is spent on ray casting and we should see a larger benefit from RT Cores. Turing hardware itself is significantly faster than the previous Pascal generation, even when running V-Ray GPU without any modifications.

In the video below you can see V-Ray scenes (some of them made by EVERMOTION)  that you can navigate in real-time thanks to new RTX technology.



It is important to note that applications must be explicitly programmed to take advantage of the RT Cores, meaning that existing ray tracing applications won’t benefit from them automatically. Those cores can be programmed through three publicly available APIs — NVIDIA OptiX, Microsoft DirectX (through the DXR extension), and Vulkan. DirectX and Vulkan are intended for use in games and real-time render engines whereas OptiX is best suited for production ray tracing as often found in offline renderers.

Note that all recent releases of V-Ray GPU will work just fine with any RTX GPU, but will not take advantage of the RT Cores just yet. As we add support for RT Cores, V-Ray GPU will continue to support earlier cards as it always has. - Vlado Koylazov, CTO and cofounder of Chaos Group

In the video below, we show a version of V-Ray GPU modified to take advantage of the RT Core and demonstrating that material and geometry updates work fine after the modifications. The video is not designed to demonstrate performance.



We have also explored using the RT Cores in the context of real-time ray tracing in our Project Lavina in order to determine the capabilities of the hardware. We were also interested in whether it is possible to completely replace rasterization with ray tracing for this use case  - Vlado Koylazov.

The RT Cores are only one part of the story though. The RTX graphics cards also support something called NVLink which doubles the memory available to V-Ray GPU for rendering with minimal impact to performance.

With NVLink the VRAM can be pooled. For example, if we have two GPUs with 11GB of VRAM each and connected with NVLink, V-Ray GPU can use that to render scenes that take up to 22 GB. This is completely transparent to the user — V-Ray GPU automatically detects and uses NVLink when available. So, while in the past doubling your cards only allowed you to double your speed, now with NVLink you can also double your VRAM. With the release of the RTX series, NVLink is also available on gaming GPUs - specifically on the GeForce RTX 2080 and GeForce RTX 2080 Ti. 

Read more at Chaos Labs site

Author: Chaos Group Labs Editor: Michał Franczak
You may also like...
Quixel Bridge 2018.5 released

Quixel Bridge 2018.5 released

Bridge 2018.5 ships with major features to further improve the way you manage, import, and export your content.


You need to be logged in to leave a comment. Don't have account? Register now.
  • ul. Przedzalniana 8, 15-688 Bialystok, POLAND