я перепробовал все, я знаю, что моя программа рисует правильные вершины, я в основном указывал на индексы, вот основной цикл
void mainLoop() {
while (!glfwWindowShouldClose(window)) {
glfwSwapBuffers(window);
glEnable(GL_DEPTH_TEST);
glClearColor(0.1, 0.1, 0.3, 1.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glfwPollEvents();
glFrontFace(GL_CW);
glDisable(GL_CULL_FACE);
glfwGetFramebufferSize(window, &WIDTH, &HEIGHT);
glViewport(1, 1, WIDTH, HEIGHT);
glm::mat4 view = glm::lookAt(
glm::vec3(1.2f, 1.2f, 1.2f),
glm::vec3(0.0f, 0.0f, 0.0f),
glm::vec3(0.0f, 0.0f, 1.0f)
);
glm::mat4 projectionmatrix = glm::perspective(glm::radians(45.0f), 800.0f / 800.0f, 1.0f, 10.0f);
glm::mat4 identitymatrix = glm::mat4(1.0f);
glm::mat4 modelmatrix = identitymatrix;
MVPmatrix = projectionmatrix * view * modelmatrix;
GLint loc = glGetUniformLocation(SHADERPROGRAM, "MVPmatrix");
glUniformMatrix4fv(loc, 1, GL_FALSE, &MVPmatrix[0][0]);
short vertex_index[] = { 2U, 4U, 1U, 8U, 6U, 5U, 5U, 2U, 1U, 6U, 3U, 2U, 3U, 8U, 4U, 1U, 8U, 5U, 2U, 3U, 4U, 8U, 7U, 6U, 5U, 6U, 2U, 6U, 7U, 3U, 3U, 7U, 8U, 1U, 4U, 8U };
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(vertex_index) * sizeof(unsigned short), &vertex_index[0], GL_STATIC_DRAW);
glBufferData(GL_ARRAY_BUFFER, temp_vertices.size() * sizeof(glm::vec3), &temp_vertices[0], GL_STATIC_DRAW);
glUseProgram(SHADERPROGRAM);
glDrawElements(GL_TRIANGLES, sizeof(vertex_index) , GL_UNSIGNED_SHORT, (void*)0);
}
}
я действительноне знаю, на данный момент, и я пытался целую вечность.Индексы прямо из файла obj, как и вершины.Также я попытался отключить отбраковку безуспешно, также я попытался добавить значения ручных индексов и даже попытался сместить их.
Импорт вершин для куба работает отлично, но как только я пытаюсь создать индексированный кубупс.