Oui je sais que le GLSL est super rapide, mais je me demande si ça va pas être un peu lent si je lui envois à chaque fois les infos pour calculer les coordonnées UVs (left,right,top,bottom et la taille du tileset pour chaque tile dessiné)
Le soucis c'est que j'comprends pas vraiment le pourquoi de ce problème, on dirait que les coordonnées UVs débordent de temps en temps (selon la position du quad dessiné), du coups ça n’apparaît que sur le tileset vu que sur les sprites, chaques image est séparée de quelques pixels..
A la rigueur, je peux modifier les tilesets pour avoir des cases plus grande, mais avec une espèce de bordure, du coups le débordement gênerait pas trop ? (jviens d'y penser là à l'instant, en écrivant
)
edit : Ok, j'ai résolu le problème.Effectivement GL a des erreurs de Texcoords (probablement dû à la précision des floats/double) s'il y a un redimensionnement du viewport.
Pour palier ça, il faut ajouer une bordure sur le tileset, entre chaque tile.
La technique que j'ai utilisé :
J'ai un #define TILESET_BORDER v pour choisir la bordure que je veux entre chaque tile.
Ensuite, lorsque je charge mon image, j'en créé une nouvelle dans laquelle je colle chaque tiles de l'ancienne espacé par 2*TILESET_BORDER (ça me donne donc un petit vide entre chaque tile)
Ensuite, pour chacun des tiles, je duplique les bordures : ça fait des espèces de fondu autours des bords des tiles (je posterais une image si vous comprenez pas et que vous avez le même soucis
)
Je m'occupe de bien régler les coordonnées UVs, et tadam : Dès qu'il y a un débordement dans les coordonnés, ben ça va coller la ligne dupliquée, donc plus de soucis de débordement sur d'autre tiles.
Cool
_________________
Because these are not the words of God, the same God that burnt the knowing.