OpenGL: glDrawElements ne pas attirer l'
Je suis bien d'essayer les Vertex Arrays des trucs, mais pour une raison quelconque, le glDrawElements commande ne permet pas de dessiner quoi que ce soit pour moi. Je peux dessiner à l'aide de glBegin/glEnd et glDrawElements entre les deux, mais glDrawElements ne fonctionne pas. Voici un extrait de code:
Ces tableaux de la configurer dans le constructeur:
double points[100];
GLint indices[50];
for (int i=0; i < 50; i++){
points[2*i] = radius * cos(i*2*PI/50);
points[2*i + 1] = radius * sin(i*2*PI/50);
indices[i] = i;
}
Code de travail en utilisant uniquement la matrice de points avec glArrayElement:
void GLCircle::draw()
{
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(2, GL_DOUBLE, 0, points);
glBegin(GL_POLYGON);
for (int i=0; i < 50; i++){
glArrayElement(i);
}
glEnd();
}
Aussi code du travail, à l'aide de matrice de points, indices spécifiques accessibles via les indices de tableau:
void GLCircle::draw()
{
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(2, GL_DOUBLE, 0, points);
glBegin(GL_POLYGON);
for (int i=0; i < 50; i++){
glArrayElement(indices[i]);
}
glEnd();
}
NON-code de travail, la tentative d'utilisation glDrawElements:
void GLCircle::draw()
{
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(2, GL_DOUBLE, 0, points);
glDrawElements(GL_POLYGON, 4, GL_INT, indices);
}
Des conseils? Il n'est pas nécessaire pour moi de l'utiliser à ce point, mais il est troublant de constater que ça ne fonctionne pas...
Vous devez vous connecter pour publier un commentaire.
Le 2e paramètre de
glDrawElements
estcount
, et donc ne devrait pas4
le nombre d'indices (50
)?Les paramètres pour
sont comme suit.. :
1er [mode] paramètre est le type de primitive à rendre.
2e [compter] paramètre doit être le nombre d'éléments à afficher. c'est à dire. le nombre de sommets
3e [type] paramètre doit être le type de la valeur dans le 4e paramètre.. peut être UNIQUEMENT de
4e [indices] paramètre est un pointeur à l'endroit où les indices sont stockées.
Vous pouvez en lire plus sur ce ici..
J'ai juste face au même problème.
Essayer
GL_UNSIGNED_INT