Algorismes de shading moderns: implementació i comparativa
Share
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ó