Я загружаю меня sh с помощью современного OpenGL (вершинный и фрагментный шейдеры), и у меня есть цветовая униформа.
Я рисую меня sh с глубиной, затем:
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LESS);
и на рисунке l oop Сначала я рисую грани серым цветом, а затем линии черного цвета:
GLint myLoc = glGetUniformLocation(shader_util.get_program_id(), "color");
// draw loop
glm::vec4 vColor { 0.7f, 0.7f, 0.7f, 1.0f };
glProgramUniform4fv(shader_util.get_program_id(), myLoc, 1, glm::value_ptr(vColor));
pMesh->draw_faces();
vColor = { 0.0f, 0.0f, 0.0f, 1.0f };
glProgramUniform4fv(shader_util.get_program_id(), myLoc, 1, glm::value_ptr(vColor));
pMesh->draw_wireframe();
И это методы рисования меня sh:
void Mesh::draw_wireframe()
{
glDrawArrays(GL_LINE_LOOP, 0, (GLsizei) mVertexIndices.size());
}
void Mesh::draw_faces()
{
glDrawArrays(GL_TRIANGLES, 0, (GLsizei)mVertexIndices.size());
}
Проблема в том, что линии выглядят следующим образом с прерываниями на чертеже:
Любой совет, как это исправить?