Il n'y a rien qui causera implicitement des artefacts lors de l'élaboration d'une grille de carrés. Il n'y a pas de problèmes inhérents de z-fighting, de profondeur ou de transparence avec le dessin comme décrit dans cette question.
Dans l'application, créez un tableau de sommets avec deux attributs (position, couleur) pour chaque sommet. Pour chaque carré de la grille, vous aurez besoin de 4 sommets. Cela va décrire 2 triangles indépendants qui composent chaque carré de la grille. Évitez d'utiliser des bandes triangulaires car vous ne souhaitez pas que l'attribut de couleur soit partagé ou interpolé entre des carrés de grille adjacents.
Ainsi, votre tableau de vertex en mémoire sera:
square0Pos0
color0
square0Pos1
color0
square0Pos2
color0
square0Pos3
color0
square1Pos0
color1
...
Créer une simple paire de shaders pass-through qui envoie la couleur de sommet par un variant du fragment shader. La couleur du fragment définit simplement la couleur de sortie à la valeur de la variable.
Si vous positionnez les positions de la grille de -1,0 à 1,0, vous n'avez même pas besoin d'ajouter d'uniformes de transformation ou de logique de shader correspondante. Effectuez un seul appel de dessin pour dessiner votre tableau de sommets avec glDrawArrays(GL_TRIANGLES, ...)
.