20Fermer22
bearbecueLe 13/02/2012 à 23:03
GoldenCrystal (./17) :
./11 > Hmm, juste pour être sûr (car du coup je doute… grin), il faut toujours une passe par lumière différente avec le deffered rendering, n'est-ce pas ? (Ou, demandé autrement, est-ce que la "Passe 2" se fait vraiment en une seule fois ?)


tiens, en fait, j'ai oublie un detail a propos de ca...

ce qui est bien aussi, c'est que tu peux batcher les lights similaires ensembles.
(en gros, avec un seul drawcall, rendre toutes tes lights d'un coup).
donc malgre le probleme de terminologie avec "passe" (ou pour toi passe == drawcall), tu peux effectivement avoir un seul draw call pour 'n' lights trilovetrioui

typiquement dans hh, avec les particules-lights, on a qu'un ou deux gros vertex-buffers, qui contiennent chacun plein (genre ~ 5000 / 10000) de lights.

pour 5000 lights, ca te fait un vertex buffers qui contient 5000 quads, donc 10 000 triangles.

et tu le rend en un seul draw call.

du coup au lieu de:

pass1: 100 drawcalls (objects/GBuffer)
pass2: 5000 drawcalls (lights/LightBuffer)
pass3: 100 drawcalls (objects/FinalRender)

ca te fait:

pass1: 100 drawcalls (objects/GBuffer)
pass2: 1 drawcall (lights/LightBuffer)
pass3: 100 drawcalls (objects/FinalRender)

... #Awesome#