Что я хочу сделать, так это нарисовать (большой) ландшафт с помощью OpenGL. Итак, у меня есть набор вершин, скажем, 256 x 256, которые я храню в буфере объектов вершин в VRAM. Я правильно их триангулировал, поэтому у меня есть индексный буфер для граней.
// vertexes
glBindBufferARB(GL_ARRAY_BUFFER_ARB, vertexBufferId);
glVertexPointer(3, GL_FLOAT, 0, 0);
// textures
glBindBufferARB(GL_ARRAY_BUFFER_ARB, texCoordBufferId);
glTexCoordPointer(2, GL_FLOAT, 0, 0);
// indexes
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, indexBufferId);
// draw it
glDrawRangeElements(GL11.TRIANGLES, 0, size - 1, size, GL_UNSIGNED_INT, 0);
Я также загрузил квадратную текстуру, которая должна быть применена к каждому треугольнику. Итак, у меня проблема с координатами текстуры:
Каждая вершина включена в 4 треугольника, что означает, что ей нужно 4 текстурных координаты. Но glDrawRangeElements () требует столько же текстурных координат, сколько и вершин.
Так что я не понимаю, как это сделать с VBO. Может быть, есть лучшая концепция для решения моей проблемы, или мне просто не хватает хорошей идеи.
Заранее спасибо.