Volume rendering with Ray Tracing

Project Details

  • Type: Product
  • What We Did: Ray Tracing on volume images
  • Tools Used: C++, Vulkan, Unreal
  • Started on: February 2020
  • Current version: alpha stage


VRRTX is a brand new way to visualize volume data. Using RTX Raytracing with high-end GPUs delivering supercomputer performance on a single chip, raw processing power is no longer the most precious resource in high performance computing. The main challenge is converting the terabytes and petabytes of numbers generated by simulations into scientific insight.

Conventional 3D rendering has used a process called rasterization since the 1990’s. Rasterization uses objects created from a mesh of triangles or polygons to represent a 3D model of an object. The rendering pipeline then converts each triangle of the 3D models into pixels on a 2D screen. These pixels may then be further processed or “shaded” before final display on the screen.

Ray Tracing

Ray tracing, which has long been used for non-real-time rendering, provides realistic lighting by simulating the physical behavior of light. Ray tracing calculates the color of pixels by tracing the path that light would take if it were to travel from the eye of the viewer through the virtual 3D scene. As it traverses the scene, the light may reflect from one object to another (causing reflections), be blocked by objects (causing shadows), or pass through transparent or semi-transparent objects (causing refractions). All of these interactions are combined to produce the final color of a pixel that then displayed on the screen.

While ray tracing has long been “the future” or holy grail of computer rendering, we are now seeing the advent of consumer GPUs which have enough compute capability to do interesting ray tracing workloads in real-time. It is expected that many use cases will employ hybrid renderers which combine rasterization and ray tracing, so tight integration with an existing rendering API is very important.