15Fermer17
BrunniLe 12/12/2018 à 03:28
L'idée originale était de dessiner de l'avant à l'arrière toute la géométrie opaque, comme ça une fois un pixel dessiné, il est inutile de dessiner ce qu'il y a derrière, puisque il est obscurci par ce qu'il y a à l'avant.

Je pensais que ça allait améliorer les performances, car il n'y aurait pas à invoquer le fragment shader (vu que le pixel allait forcément être dismissed), coûteux puisqu'il émule le tilemap system. Mais comme je l'ai vu selon mes tests, le GPU ne fait apparemment pas cette opti dès qu'un pixel à l'avant est écrit conditionnellement (et autant un polygone peut être complètement opaque, un sprite n'est jamais un rectangle complètement opaque… du coup on a besoin d'une condition "écrire le pixel du rectangle du sprite seulement s'il n'a pas la couleur 0, définie comme transparente").

Oui pour le pipeline de la SNES. C'est probablement similaire à la GBA, qui peut ensuite mixer (additionner + multiplier) le résultat de 2 sources (ex. BG2 + OBJ) pour composer la couleur finale smile

Note que je pourrais faire la même chose dans mon shader, mais ça devient super engineeré pour le coup (et ça limite à un nombre fixe de BGs, et je ne suis toujours pas fixé entre 2, 4 ou 8, d'ailleurs votre opinion est bienvenue wink), et pas réaliste pour un grand nombre de sprites.