Runs une seule foisglfw glDrawElements triangle dessin étranges
GLfloat vertices[] = {
-0.5f, -0.5f, 0.0f,
0.5f, -0.5f, 0.0f,
0.5f, 0.5f, 0.0f,
-0.5f, 0.5f, 0.0f
};
GLuint triangles[] = {0,1,2};
int lengthV = 3; //Number of vertices
int lenfthT = 1; //Number of triangles
glGenVertexArrays(1, &vaoID);
glBindVertexArray(vaoID);
glGenBuffers(vaoID, &verticesVBOID);
glBindBuffer(GL_ARRAY_BUFFER, verticesVBOID);
glBufferData(GL_ARRAY_BUFFER, lengthV*sizeof(GLfloat)*3, vertices, GL_STATIC_DRAW);
glGenBuffers(vaoID, &trianglesVBOID);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, trianglesVBOID);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, lengthT*sizeof(GLuint)*3, triangles, GL_STATIC_DRAW);
Runs une fois par trame
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, verticesVBOID);
glVertexAttribPointer(0, lengthV, GL_FLOAT, GL_FALSE, 0, nullptr);
glUseProgram(program);
//glDrawArrays(GL_TRIANGLES, 0, verticeCount*3);
glDrawElements(GL_TRIANGLES, lengthT,GL_UNSIGNED_INT, nullptr);
glDisableVertexAttribArray(0);
glfwSwapBuffers(window);
Quand je lance ceci, cela rend, ce qui est juste.
Lorsque je change le nombre de sommets à 4 pour essayer de rendre un quad finalement.
int lengthV = 4;
Cela se produit.
Je ne comprends pas pourquoi cela se produit parce que j'ai seulement changé le nombre de sommets.
Ive J'ai essayé de trouver une réponse mais je n'ai pas pu. J'ai regardé ce problème de personnes et son code ressemble au mien après avoir appliqué la réponse. No display from glDrawElements
Merci J'ai regardé ce site et j'ai pensé que cela signifiait le nombre de sommets. Je suppose que j'aurais dû regarder plus longtemps. :) – LearningThings2