Skip to content

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

Repository files navigation

🔦 Los fundamentos de Ray Tracing en tiempo real 🔦

🔹 PDF: Descargar 🔹


 

🔰 Tabla de contenidos 🔰

Sobre el proyectoInstalaciónEstructuraContribuyendoEnlaces de interés

💡 Y esto, ¿de qué va exactamente?

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 🎓.

⚙️ Instalación

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.git
cd .\Raytracing\application\vulkan_ray_tracing\
mkdir build
cd build
cmake ..
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 de Run and Debug, deberías tener una opción para lanzar Asmiray. Debería ir.

🌲 Estructura del repositorio

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 el README correspondiente.
  • ./RT_in_one_weekend: Código del ray tracer de la serie de libros de Shirley original en CPU.
  • ./application: El futuro ray tracer en GPU se ubicará aquí. Ahora mismo está en pañales.

Visualización de la codebase

🤝 Contribuyendo

📖 Github Projects

Puedes acceder a Github Projects para ver la gestión de las tareas. Resulta especialmente útil para saber en lo que se está trabajando actualmente.

👓 Guía de estilo

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 ejemplo aquí

🔗 Enlaces de interés

En esta sección se recopilan enlaces útiles para el desarrollo del motor. Se irá actualizando conforme avance.

(Y, seguramente, desaparezca en el futuro)

Implementaciones y tutoriales

Conocimiento

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.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published