J'ai produit ce moteur de jeu 2D basé sur des tuiles qui sera utilisé dans plusieurs projets.La méthode la plus efficace pour dessiner plusieurs quads en OpenGL
J'ai une classe appelée « ScreenObject » qui se compose principalement d'un
Dictionary<Point, Tile>
La clé Point est de montrer où rendre la tuile sur l'écran, et la tuile contient une ou plusieurs textures être tiré à ce moment-là. Ce ScreenObject est l'endroit où les tuiles seront modifiées, supprimées, ajoutées, etc.
Ma méthode originale de dessiner les carreaux dans le test que j'ai fait était de parcourir le ScreenObject et dessiner chaque quadruple à chaque emplacement séparément. D'après ce que j'ai lu, c'est un énorme gaspillage de ressources. Ce n'était pas horriblement lent dans les tests, mais après avoir terminé les cours d'animation et les classes d'effets, je suis sûr que ce serait extrêmement lent.
Et une dernière chose, si cela ne vous dérange pas .. Comme je l'ai déjà dit, la classe Tile peut contenir plusieurs textures à dessiner à l'emplacement Point sur l'écran.
Je reconnais peut-être deux options pour moi ici. Ajoutez un quad à cet endroit pour chaque texture à dessiner ou, d'une façon ou d'une autre, utilisez une texture multiple pour le même quad (si c'est possible). Même si chaque tuile contenait une seule texture, ce serait 64 quads à dessiner sur l'écran. La plupart des tuiles contiendront 2-5 textures, de sorte que le nombre de quads augmenterait considérablement avec cette méthode. Serait-il possible d'ajouter un quad pour chaque nouvelle texture, ou est-ce que j'ignore une meilleure façon de le faire?