- Notifications
You must be signed in to change notification settings - Fork0
Path tracer en tiempo real implementado sobre Vulkan KHR basado en Ray Tracing In One Weekend Series de Peter Shirley. Trabajo de fin de grado para el doble grado en Ingeniería Informática y Matemáticas de la UGR.
License
Asmilex/Raytracing
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
🔸 Web:asmilex.github.io/Raytracing 🔸
🔹 PDF:Descargar 🔹
Sobre el proyecto •Instalación •Estructura •Contribuyendo •Enlaces de interés
Este repositorio contiene el desarrollo de un path tracer en tiempo real implementado en Vulkan con extensiones de Ray Tracing (KHR) basado en el de Ray Tracing In One Weekend, de Peter Shirley. Se incluye una memoria y varias utilidades relacionadas con el proyecto.
Es el trabajo de fin de grado de mi doble grado en Ingeniería Informática y Matemáticas 🎓.
Requiere tener Vulkan instalado, un driver de Nvidia compatible con Vulkan, Cmake.
Para compilar y ejecutar el proyecto, haz lo siguiente:
git clone --recursive --shallow-submodules https://github.com/Asmilex/Raytracing.gitcd .\Raytracing\application\vulkan_ray_tracing\mkdir buildcd buildcmake ..cmake --build ...\..\bin_x64\Debug\asmiray.exe
Cuando se haya ejecutado, deberían haber aparecido los makefiles necesarios. Si abres VSCode, en la pestaña deRun and Debug, deberías tener una opción para lanzar Asmiray. Debería ir.
A fecha 2022-01-31, el repositorio está compuesto por los siguientes directorios:
./docs
: Documentación del proyecto. Toda la documentación está basada en markdown. Para convertirla en PDF y desplegarla en la web, se utiliza Pandoc. Tienes más información en elREADME correspondiente../RT_in_one_weekend
: Código del ray tracer de laserie de libros de Shirley original en CPU../application
: El futuro ray tracer en GPU se ubicará aquí. Ahora mismo está en pañales.
Puedes acceder aGithub Projects para ver la gestión de las tareas. Resulta especialmente útil para saber en lo que se está trabajando actualmente.
Cada commit debería ir identificado con un emoji antes del mensaje, así como terminar en un issue enlazado. Por ejemplo,[📓] Descripción de función de densidad (#71)
Estos son los iconos usados, así como su significado:
Tipo de commit | Emoji | Cómo se escribe rápidamente |
---|---|---|
Documentación | 📓 | :notebook: |
Archivo de configuración | 🔧 | :wrench: |
Integración continua | 👷 | :construction_worker: |
Commit de Actions | 🤖 | :robot: |
Quitar archivos | 🔥 | :fire: |
Nuevas características | ✨ | :sparkles: |
Test | ⚗️ | :alembic: |
Refactorización | ♻️ | :recycle: |
Bugfix | 🐛 | :bug: |
Los issues también deberían seguir el mismo estilo. Tienes un ejemploaquí
En esta sección se recopilan enlaces útiles para el desarrollo del motor. Se irá actualizando conforme avance.
(Y, seguramente, desaparezca en el futuro)
- Libros de Shirley
- Nvidia Vulkan Ray Tracing tutorial. Parte desde un proyecto básico de Vulkan, y añade lo necesario para tener aceleración de RT usando el framework nvpro-samples. Interesante cuanto menos, y una de las opciones más seguras. Se basa en el código deeste repositorio.
- Nvpro samples vk_raytrace. Una implementación PBR usando como base el tutorial de nvpro samples. Bastante más avanzada, pero los shaders sonmuy útiles.
- En la misma línea, unaimplementación de In One Weekend con esas extensiones por GPSsnoopy. Podría resultar muy útil también.
- Un mini path tracer. Referenciado en Gems II.
- Vulkan Samples.
- Physically Based Rendering
- Libro sobre métodos de Monte Carlo
- Arquitectura de Turing
- Explicación interesante sobre GI de Digital Foundry
- Ray Tracing Gems I
- Ray Tracing Gems II
- Awesome ray tracing
- Generación de números aleatorios en GPU
- The RTX Shader Binding Table
- Tutorial de Vulkan
- Lista con recursos de RT
- ImGui. Se usa como base en nvpro samples, así que viene bien tener la documentación a mano.
- Wavefront material properties
About
Path tracer en tiempo real implementado sobre Vulkan KHR basado en Ray Tracing In One Weekend Series de Peter Shirley. Trabajo de fin de grado para el doble grado en Ingeniería Informática y Matemáticas de la UGR.