Skip to content

yoweil/vulkan-rt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vulkan-rt

Минималистичный path tracer на Vulkan RT (KHR extension). Рендерит Cornell Box с прямым освещением, тенями и диффузными отскоками, накапливая сэмплы через temporal accumulation

Что делает

  • BLAS + TLAS через VK_KHR_acceleration_structure
  • Ray tracing pipeline: raygen -> closest hit -> 2x miss (primary + shadow)
  • Raygen: до 5 bounces, cosine-weighted hemisphere sampling, Russian roulette
  • Прямое освещение: shadow ray к дисковому источнику, attenuation по расстоянию
  • Накопление: running average по кадрам (accumImage), tone mapping (Reinhard) + gamma 2.2
  • SBT собирается вручную с учётом shaderGroupHandleAlignment / shaderGroupBaseAlignment

Зависимости

  • Vulkan SDK ≥ 1.3 (с glslangValidator в PATH)
  • GLFW 3
  • GLM
  • GPU с поддержкой VK_KHR_ray_tracing_pipeline

Сборка

cmake -B build
cmake --build build -j$(nproc)
./build/vulkan-rt

Шейдеры компилируются автоматически при сборке через glslangValidator.

Структура

src/
  main.cpp            - точка входа
  App.h / App.cpp     - окно, swapchain, главный цикл
  VkContext.h/.cpp    - instance, device, буферы, команды
  AccelStructure.h/.cpp - BLAS / TLAS builder
  RTPipeline.h/.cpp   - дескрипторы, pipeline, SBT
  Scene.h             - Vertex, SceneUBO, Camera, геометрия Cornell Box
shaders/
  raygen.rgen         - основной path tracing loop
  closesthit.rchit    - интерполяция атрибутов по barycentric
  miss.rmiss          - primary miss (нет попадания → выход из цикла)
  shadow.rmiss        - shadow miss (путь не заблокирован)

Платформа

Работает на Linux (X11 и Wayland - GLFW абстрагирует оба) и на Windows. На винде только нужно поправить флаги компилятора в CMakeLists.txt (-Wall -Wextra -> /W4 для MSVC) и подтянуть пакеты через find_package. Требуется дискретная GPU с RT-поддержкой

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors