Я изучаю OpenGL, и у меня проблема с неправильным рендерингом. Это проблема, с которой я сталкиваюсь, есть промежутки между сторонами пирамид.Ошибка отображения OpenGL - неправильный дисплей
Вот вершины я использую, чтобы построить.
// Create Pyramid Vertex Buffer
FloatBuffer vertexBuffer = BufferUtils.createFloatBuffer(3 * 12);
vertexBuffer.put(new float[]
{
// Side one
0f, 0.8f, 0f,
-0.8f, -0.8f, 0.8f,
0.8f, -0.8f, 0.8f,
// Side two
0f, 0.8f, 0f,
0.8f, -0.8f, 0.8f,
0.8f, -0.8f, -0.8f,
// Side three
0f, 0.8f, 0f,
0.8f, -0.8f, -0.8f,
-0.8f, -0.8f, -0.8f,
// Side four
0f, 0.8f, 0f,
-0.8f, -0.8f, -0.8f,
-0.8f, -0.8f, 0.8f
});
vertexBuffer.rewind();
Я думал, что это потому, что модель выходит из экрана. Так я думал, что перевод на оси должно быть хорошо, и я добавил эту строку перед вызовом glDrawArrays
glTranslatef(0f, 0f, -1f);
Это придумал это странное поведение, имеющую более стороны втягиваются.
Три стороны оказаны, но только должен смотреть только два! Как я могу решить эту проблему? Я также включил проверку глубины.
Вот как я инициализировать OpenGL
// Initialize OpenGL
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-1, 1, -1, 1, 1, -1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glViewport(0, 0, Display.getWidth(), Display.getHeight());
Можете ли вы разместить свой код создания видового экрана? Я не могу сказать, будет ли треугольник обрезаться вашим ближайшим усеченным уклоном или, может быть, дальним уклоном или даже комбинацией того и другого. Я думаю, что вы видите внутреннюю часть пирамиды на своей второй картине и на заднем плане в черном пятне первой картины. Тем не менее, это похоже на интуитивную интуитивность, так как движение дальше должно привести к тому, что вы получите в первой картине, и если вы приблизитесь, вы увидите внутреннюю часть пирамиды. Кроме того, есть ли у вас какие-либо другие преобразования? И какой параметр vert сопоставляется с каким цветом? X-> Красный, Y-> Зеленый? – zero298
@ zero298 Я включил код для инициализации opengl. Также у меня нет шейдеров. У меня есть работа с изменением функции glOrtho, но я до сих пор не понимаю, почему. –