Tu n'as pas forcément besoin de faire de tri, il suffit juste d'utiliser 2 std::vector par exemple :
tiles[couche][tile]
Et ensuite t'a plus qu'à faire une boucle qui récupère tout et qui insère le tout dans un autre vecteur (ça s'appelle le tri par insertion et c'est plus rapide.)
for (int couche = 0; couche < tiles.size(); couche++) {
for (int tile = 0; tile < tiles[couche].size(); tile++) {
tilesVisible.push_back(tiles[couche][tile]);
}
}
Bref moi c'est comme ça que je fais mais en récupérant uniquement la partie du monde qui se trouve dans la vue.
Je n'ai pas trouvé de meilleur solution que de les dessiner une par une. (vu que j'utilise de la transparence le depth test ne marche pas.)
Mais pour toi, si tu n'utilises pas de transparence, alors oui il y a une meilleur solution et tu pourrais même dessiner tout d'un coup en donnant une composante z à tes vertexarray.
PS : je ne tiens pas vraiment à rouvrir un nouveau sujet pour discuter de ça pour l'instant je voulais juste dire que se serait bien mais c'est pas urgent vu que d'autres librairie le font déjà et puis je vais je pense ouvrir un sujet pour en discuter sur le forum Anglais.
Je disais juste ça si l'envie te venait un jour d'ajouté de nouvelles fonctionnalité à ta librairie.
Mais pour le sol animé le mieux est quand même je pense d'utiliser un shader ou peut être une texture 3D
PS 2 : tu m'as donné une idée je pense que je vais mixer les 2, tiles en bloc et tiles plates, ça pourrait être sympa!