Salut,
j'ai un léger souci pour l'affichage de sous-textures. J'ai par exemple une texture de 256*128 contenant des sous-textures de 16 x 16. Voici en gros comment je calcule les coordonnées des sous-textures :
Ceci représentant les coordonnées OGL (dans l'espace 0 -> 1) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 float x = 0, y = 0; float xFactor = framesWidth / (float)texture.getWidth(); float yFactor = framesHeight / (float)texture.getHeight(); float xPixelFactor = 1 / (float)texture.getWidth(); for (y = 0; y < 1; y += yFactor) { for (x = 0; x < 1; x += xFactor + xPixelFactor) { frames.add(new Frame(name, texture.getTextureObject(), x, y, (float)(x + xFactor) - xPixelFactor, (float)(y + yFactor), framesWidth, framesHeight)); } }
J'ai introduit un xFactor qui représente la valeur d'un pixel dans l'espace (0 -> 1) pour essai.
Code : Sélectionner tout - Visualiser dans une fenêtre à part x, y, (float)(x + xFactor) - xPixelFactor, (float)(y + yFactor)
Pour vérifier j'ai mis un fond de couleur différente à chaque sous-texture de 16 x 16 dans l'image source.
Le problème est qu'à l'affichage on peut voir que les coordonnées des sous-textures ne sont pas bonnes. Le découpage est mauvais et les couleurs de fond se décalent au fur et à mesure (sur x et sur y). J'ai essayé pas mal de trucs mais sans succès. Quelqu'un aurait-il une idée sur la question ?
Merci d'avance.
Partager