Я хочу рисовать (большую) местность с помощью 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. Может быть, есть лучшая концепция решения моей проблемы, или мне просто не хватает хорошей идеи.
Заранее спасибо.