J'ai créé une classe qui gère les sprites dans une application iphone en utilisant opengl es. Le rendu fonctionne bien mais lorsque la feuille de sprite est grande (plus de 512x512px) et que le sprite a une partie qui ne bouge pas, cette partie semble trembler légèrement (comme si l'antialiasing était calculé différemment pour chaque image). Est-ce normal ou est-ce un bug dans mon code?Les sprites OpenGL tremblent légèrement au rendu
Voici le code:
//set bounds of the cell
int t_x1 = position.x;
int t_y1 = MAX_SPRITE_HEIGHT - position.y;
int t_x2 = t_x1 + width;
int t_y2 = t_y1 - height;
//set vertices position
GLshort verticesBuffer[4*3];
verticesBuffer[0] = t_x1;
verticesBuffer[1] = t_y1;
verticesBuffer[2] = depth;
verticesBuffer[3] = t_x1;
verticesBuffer[4] = t_y2;
verticesBuffer[5] = depth;
verticesBuffer[6] = t_x2;
verticesBuffer[7] = t_y1;
verticesBuffer[8] = depth;
verticesBuffer[9] = t_x2;
verticesBuffer[10] = t_y2;
verticesBuffer[11] = depth;
//set texture coordinates
GLfloat texCoordBuffer[2*4]
texCoordBuffer[0] = a_cellLayer.origin.x/CGImageGetWidth(texture.textureImage);
texCoordBuffer[1] = a_cellLayer.origin.y/CGImageGetHeight(texture.textureImage);
texCoordBuffer[2] = texCoordBuffer[0];
texCoordBuffer[3] = texCoordBuffer[1] + (float)(t_y1-t_y2)/CGImageGetHeight(texture.textureImage);
texCoordBuffer[4] = texCoordBuffer[6];
texCoordBuffer[5] = texCoordBuffer[1];
texCoordBuffer[6] = texCoordBuffer[0] + (float)(t_x2-t_x1)/CGImageGetWidth(texture.textureImage);
texCoordBuffer[7] = texCoordBuffer[3];
//set texture
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, [texture getTexture]);
//set vertices
glVertexPointer(3, GL_SHORT, 0, verticesBuffer);
glEnableClientState(GL_VERTEX_ARRAY);
//apply texture
glTexCoordPointer(2, GL_FLOAT, 0, texCoordBuffer);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
//render
glColor4f(1.0, 1.0, 1.0, 1.0); // R V B Alpha
glNormal3f(0.0f, 0.0f, 1.0f);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4*nbOfXSudivisions*nbOfYSudivisions);
J'ai essayé de changer le type de ma coordonnées de texture avec GL_FIXED mais il ne change rien
Est-ce que quelqu'un a une idée?
Difficile à dire. Utilisez-vous le tampon de profondeur? À quoi ressemble votre matrice de projection? NbOfXSudivisions et nbOfYSudivisions sont-ils définis sur 1? – CiscoIPPhone
Oui nbOfXSudivisions & nbOfYSudivisions sont mis à 1. – Klem
Très drôle ... sprites tremblants !!! – SegFault