Ir al contenido
Shadow Graphics Library

Shadow Graphics Library

·251 palabras·2 mins

Descripción general
#

Shadow es una librería de renderizado en tiempo real que implementa varias técnicas centrales utilizadas en los motores de videojuegos modernos. Está escrita íntegramente en C++ con OpenGL, y fue desarrollada como mi Trabajo de Fin de Grado.

Repositorio de GitHub

Sobre el proyecto
#

El objetivo de Shadow fue estudiar e implementar técnicas de renderizado en tiempo real desde cero, centrándome en los sistemas gráficos a nivel de motor en lugar de utilizar frameworks o pipelines de shading prediseñados. El motor sigue un pipeline de Deferred Rendering e incluye múltiples funcionalidades de post-procesado y sombreado.


Características de la librería
#

Diseñé e implementé:

  • Pipeline de Deferred Rendering
    • Layout del G-Buffer y arquitectura multipaso
  • Physically-Based Rendering (PBR)
    • Flujo de trabajo de Metalness/Roughness
  • Screen Space Ambient Occlusion (SSAO)
  • Pipeline de post-procesado Bloom
  • Normal Mapping
    • Generación de base tangente-espacio (TBN)
  • Sistema de gestión de recursos
  • Herramientas de depuración y visualización con ImGui
  • Bucle de renderizado de escena y sistema de materiales
Visión general del renderizado del motor

Pipeline de renderizado
#

Shadow utiliza un flujo de trabajo de Deferred Shading para soportar múltiples luces dinámicas de forma eficiente. Los datos de material se almacenan en un G-Buffer y la iluminación se calcula en un pase separado.

Resultado visual
#


Registro de versiones
#

v0.1
#

  • Base del motor (ventanas, sistema de entrada, carga de recursos)
  • Renderizador de skybox
  • Inicialización del G-Buffer
  • Implementación base de Deferred Shading

v1.0 (Finalización del Trabajo de Fin de Grado)
#

  • Physically-Based Rendering (PBR)
  • Pase SSAO
  • Post-procesado Bloom
  • Pipeline de Normal Mapping