Я следую инструкциям OpenGL, найденным here. Я сейчас на главе 2, и мы рассмотрим преимущества использования glArrayElement
для визуализации объектов. В настоящее время мой код выглядит следующим образом:Использование glArrayElement с LWJGL
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
double vertices[] = {100, 200, 0, 200, 100, 0, 100, 100, 0};
double colors[] = {1, .5, .8, .3, .5, .8, .3, .5, .8};
DoubleBuffer vertexBuffer = BufferUtils.createDoubleBuffer(9).put(vertices);
DoubleBuffer colorBuffer = BufferUtils.createDoubleBuffer(9).put(colors);
glVertexPointer(3, 0, vertexBuffer);
glColorPointer(3, 0, colorBuffer);
while(!Display.isCloseRequested()) {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glArrayElement(0);
glArrayElement(1);
glArrayElement(2);
glVertex3d(300, 200, 0);
glVertex3d(400, 100, 0);
glVertex3d(300, 100, 0);
glEnd();
//Display.sync(60);
Display.update();
}
Второй треугольник, определяемый явно вызовами glVertex3d
оказывается в порядке. Бу первый треугольник вообще не отображается. Я делаю простую ошибку?
Рассматривали ли вы использование поплавков, а не парных? –
В чем преимущество? – williamg