19Fermer21
bearbecueLe 13/02/2012 à 22:52
ah merde heu oui les ombres...

bah, admettons que t'aie deja toutes tes shadowmaps (grin) (non mais en fait pour les generer de toutes facons ca change pas entre du forward et du deffered, donc bon)
tu bind chaque shadowmap au shader de rendu de chaque light.
ca implique que chaque light doit savoir rendre ses propres ombres, mais ca parait logique. c'est particulierement simple a gerer.
apres, les shaders de rendu finaux de tes materiaux n'ont absolument pas a se preoccuper de savoir si telle light avait ou pas des ombres, quel type d'ombres c'etait, etc...
ils recuperent tout aplati dans le light-buffer.

de leur point de vue, ils connaissent meme pas la notion d'ombres. pour eux, ils recuperent dans le light-buffer l'irradiance pour chaque pixel, c'est a dire la lumiere qui arrive sur chaque pixel, ombres comprises, lumiere ambiante comprise, SSAO compris, sperical harmonics compris, lightmaps comprises, illumination globale temps-reel comprise (cheeky)

bref.. c'est beau, c'est chaud... mangez-en grin

tandisqu'en forward, non seulement tu dois faire plein de versions de tes shaders de rendu, pour des nombres differents de lights si tu veux des shaders qui gerent plus d'une light (y se passe quoi si t'as qu'une light? 2? 5? embarrassed), MAIS en plus faut que tu prevoie toutes les combinaisons de types de lights differentes (spotlight?, pointlight? lumiere directionnelle genre soleil? lights exotiques genre des "lignes" (neons), area-lights, whatever..), ET les combinaisons de leurs differents types d'ombres possibles...

bref, c'est un bordel innomable...