2010-10-24 7 views
0

J'ai un ensemble de textures que j'ai besoin de dessiner à différents sommets pour que chaque texture soit visible. Je ne peux pas définir un ensemble statique de sommets puisque je charge les textures dynamiquement et Je ne sais pas combien de textures seront chargées à chaque fois (je les choisis en fonction d'une condition).Comment créer dynamiquement des sommets dans glVertexPointer() dans openGLES

Voici à quoi ressemble mon code.

for(int i=0;i<num_img;i++) 
{  
    glLoadIdentity(); 
    glTranslatef(0.0, 0.0, -3.0); 
    glRotatef(rot, 1.0, 1.0, 1.0); 
    glBindTexture(GL_TEXTURE_2D, texture[i]); 
    glVertexPointer(3, GL_FLOAT, 0, vertices); 
    glNormalPointer(GL_FLOAT, 0, normals); 
    glTexCoordPointer(2, GL_FLOAT, 0, texCoords); 
    glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); 
} 

Y at-il de toute façon de générer dynamiquement des sommets qui peuvent être transmis comme argument final de glVertexPointer()?

Répondre

0

Connaissez-vous le nombre maximum de sommets que vous utiliserez? Peut-être que vous pourriez créer le tableau vertices pour être cette taille maximale alors dans le premier paramètre de glVertexPointer vous ne passez que le nombre de sommets que vous utilisez réellement.

+0

Le premier paramètre de glVertexPointer() n'est-il pas le nombre de coordonnées par sommet, pas le nombre de sommets dans le pointeur? De la docs "Spécifie le nombre de coordonnées par sommet Doit être 2, 3 ou 4. La valeur initiale est 4." – Samuel