> ## Content Index
> Fetch the complete content index at: https://cms.yufeiran.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# Vulkan Real-Time Ray Tracing
- URL: https://cms.yufeiran.com/en-vulkan-real-time-ray-tracing/
- Published: 2023-03-19T17:37:15.000Z
- Updated: 2026-09-27T12:42:22.000Z
- Author: Feiran Yu
- Tags: #lang-en, #legacy-import

This article introduces the process of implementing **real-time ray tracing** with **Vulkan**.

**Vulkan** is a low-overhead, cross-platform API for 2D, 3D graphics, and compute. Compared with OpenGL, it is lower level. Being lower level means there are more places where performance can be optimized, and it can provide better performance.

**Ray tracing** is a rendering algorithm in 3D computer graphics. It traces the path of light from the light source to objects, and then the reflected paths from those objects. Since computing all paths completely is very expensive, current ray-tracing techniques usually compute only the light paths that are visible to the eye.

**Real-time ray tracing** is not fundamentally different from ray tracing. It uses hardware acceleration, fewer samples, and shorter marching steps to reduce computation, eventually reaching real-time performance, meaning multiple frames per second. For details, see [High-Quality Real-Time Rendering: Real-Time Ray Tracing](https://yangwc.com/2021/08/01/RTRT/?ref=cms.yufeiran.com).

Figure 1 compares real-time ray-traced reflections in *Wolfenstein: Youngblood*.

![2020-Real-time-ray-traced-reflections-in-Wolfenstein-01](https://yufeiran.com/content/images/2023/03/2020-Real-time-ray-traced-reflections-in-Wolfenstein-01.jpg)

| Figure 1: reflections disabled on the left, ray-traced reflections enabled on the right |
| --------------------------------------------------------------------------------------- |

# Technical Route

1. Learn Vulkan.

Process: learn basic Vulkan concepts through [https://vulkan-tutorial.com/](https://vulkan-tutorial.com/?ref=cms.yufeiran.com) and [https://vkguide.dev/](https://vkguide.dev/?ref=cms.yufeiran.com).

[https://github.com/yufeiran/LearnVulkan](https://github.com/yufeiran/LearnVulkan?ref=cms.yufeiran.com)

1. Build a small framework that can render multiple objects.

[https://github.com/yufeiran/miniVulkanRender](https://github.com/yufeiran/miniVulkanRender?ref=cms.yufeiran.com)

[Vulkan: drawing multiple objects with dynamic uniforms](https://www.jianshu.com/p/4a9dff7e8d10?ref=cms.yufeiran.com)

1. Start learning ray tracing.

I plan to study tutorials such as [NVIDIA Vulkan Ray Tracing Tutorials](https://github.com/nvpro-samples/vk%5Fraytracing%5Ftutorial%5FKHR?ref=cms.yufeiran.com), then implement a small ray-tracing framework myself.

At the same time, I am learning the glTF format: [https://github.khronos.org/glTF-Tutorials/gltfTutorial/](https://github.khronos.org/glTF-Tutorials/gltfTutorial/?ref=cms.yufeiran.com)

# Hardware-Accelerated Ray Tracing Principles

I am interested in how GPUs implement hardware-accelerated ray tracing, so I looked up some materials and organized them into a PPT:

**File:** Hardware acceleration ray tracing principles design and applications [Download](https://yufeiran.com/content/files/2023/12/Hardware-acceleration-ray-tracing-principles--design-and-applications-1.pdf?ref=cms.yufeiran.com)

**File:** Hardware acceleration ray tracing principles design and applications [Download](https://yufeiran.com/content/files/2023/12/Hardware-acceleration-ray-tracing-principles--design-and-applications-2.pptx?ref=cms.yufeiran.com)

# CSIG Competition Materials

Competition link:

**File:** AwardMaterials [Download](https://yufeiran.com/content/files/2023/12/AwardMaterials.pdf?ref=cms.yufeiran.com)

**File:** RayTracingReport [Download](https://yufeiran.com/content/files/2023/12/RayTracingReport.pdf?ref=cms.yufeiran.com)

# Demo Video

Your browser does not support the video tag.

## Document

**File:** RaytracingDocument [Download](https://yufeiran.com/content/files/2023/12/RaytracingDocument.pdf?ref=cms.yufeiran.com)

# Renderer Implementation

After completing the competition, I also implemented my own renderer:

[https://github.com/yufeiran/miniVulkanRenderer2](https://github.com/yufeiran/miniVulkanRenderer2?ref=cms.yufeiran.com)

# Reference Links

## Principles

[High-Quality Real-Time Rendering: Real-Time Ray Tracing](https://yangwc.com/2021/08/01/RTRT/?ref=cms.yufeiran.com)

[Deep Dive into GPU Hardware Architecture and Execution Mechanisms](https://www.cnblogs.com/timlly/p/11471507.html?ref=cms.yufeiran.com)

## Tutorials

[RayTracingInVulkan](https://github.com/GPSnoopy/RayTracingInVulkan?ref=cms.yufeiran.com)

[NVIDIA Vulkan Ray Tracing Tutorials](https://github.com/nvpro-samples/vk%5Fraytracing%5Ftutorial%5FKHR?ref=cms.yufeiran.com)

# AMD Hardware-Accelerated Ray Tracing Principles

[https://zhuanlan.zhihu.com/p/337151778](https://zhuanlan.zhihu.com/p/337151778?ref=cms.yufeiran.com)

![](https://yufeiran.com/content/images/2023/03/wallhaven-r2eg1w.png)