Algorismes de shading moderns: implementació i comparativa

Muñoz Garcia, Bernat
Compartir
El mercat de jocs i de pel•lícules d'entreteniment demana constantment entorns més realistes i efectes que sorprenguin a l'espectador. Els gràfics 3D interactius (per exemple, dels jocs) han vist una evolució sorprenent en les dues últimes dècades. Hem passat de representacions molt esquemàtiques i simplificades dels entorns, a una qualitat visual que aviat serà indistingible de la realitat. El projecte tracta de desenvolupar un motor 3D des de zero. Es podria haver utilitzat un motor 3D ja disponible com a base, com per exemple el popular Unity, però s’ha decidit crear-lo ja que això dóna l’ oportunitat de conèixer com funcionen els motos comercials i provar noves idees. En resum, és un treball difícil, però molt enriquidor, la qual cosa comporta una gran motivacio. S’han utilitzat noves tecnologies. No només s’ha volgut desenvolupar un motor 3D des de zero, si no que s’han volgut provar noves llibreries gràfiques i nous formats de dades 3d. El mercat té força oferta de les duess, per la qual cosa s’ha aprofitat l’ oportunitat per aprendre duess tecnologies noves. El procés de desenvolupar un projecte utilitzant tecnologies desconegudes permetrà aprendre els seus punts forts i febles, podent fer-ne una anàlisi crítica, que d'altra manera no es tindria. Finalment, s’ha implementat i comparat quatre algorismes de shading. La selecció dels quatre algorismes ha estat en base a les diferents necessitats que intenten cobrir. El primer, el Forward Shading, és l'algorisme clàssic, utilitzat des de fa dècades, però que teòricament escala malament respecte a la quantitat de llums. El segon, el Deferred Shading, teòricament, escala molt bé amb moltes llums, però té un cost base elevat, i un consum alt de memòria. El tercer, el Deferred Lighting, és una variació de l'anterior que intenta reduir el cost base i l'úss de memòria. L'últim, el Inferred Lighting, intenta explotar la baixa freqüència de la il•luminació dels entorns 3D, per suportar una gran quantitat de llums amb un molt bon rendiment. Un cop implementats aquests quatre algorismes, s’han pogut comparar respecte el seu ús de la GPU, i el seu comportament en diferents tipus d'escenes, per tal de tenir una visió global de quin algorisme és adequat en cada situació ​
Aquest document està subjecte a una llicència Creative Commons:Reconeixement - No comercial - Sense obra derivada (by-nc-nd) Creative Commons by-nc-nd3.0