Ves al contingut
Shadow Graphics Library

Shadow Graphics Library

·251 paraules·2 min

Descripció general
#

Shadow és una biblioteca de renderització en temps real que implementa diverses tècniques centrals utilitzades en els motors de videojocs moderns. Està escrita íntegrament en C++ amb OpenGL, i va ser desenvolupada com el meu Treball de Fi de Grau.

Repositori de GitHub

Sobre el projecte
#

L’objectiu de Shadow va ser estudiar i implementar tècniques de renderització en temps real des de zero, centrant-me en els sistemes gràfics a nivell de motor en lloc d’utilitzar frameworks o pipelines de shading predissenyats. El motor segueix un pipeline de Deferred Rendering i inclou múltiples funcionalitats de post-processat i sombreig.


Característiques de la biblioteca
#

Vaig dissenyar i implementar:

  • Pipeline de Deferred Rendering
    • Layout del G-Buffer i arquitectura multipas
  • Physically-Based Rendering (PBR)
    • Flux de treball de Metalness/Roughness
  • Screen Space Ambient Occlusion (SSAO)
  • Pipeline de post-processat Bloom
  • Normal Mapping
    • Generació de base tangent-espai (TBN)
  • Sistema de gestió de recursos
  • Eines de depuració i visualització amb ImGui
  • Bucle de renderització d’escena i sistema de materials
Visió general de la renderització del motor

Pipeline de renderització
#

Shadow utilitza un flux de treball de Deferred Shading per suportar múltiples llums dinàmiques de manera eficient. Les dades de material s’emmagatzemen en un G-Buffer i la il·luminació es calcula en un pas separat.

Resultat visual
#


Registre de versions
#

v0.1
#

  • Base del motor (finestres, sistema d’entrada, càrrega de recursos)
  • Renderitzador de skybox
  • Inicialització del G-Buffer
  • Implementació base de Deferred Shading

v1.0 (Finalització del Treball de Fi de Grau)
#

  • Physically-Based Rendering (PBR)
  • Pas SSAO
  • Post-processat Bloom
  • Pipeline de Normal Mapping