【发布时间】:2008-12-18 17:19:40
【问题描述】:
我想做的是用 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 做到这一点。也许有更好的概念来解决我的问题,或者我只是缺乏一个好主意。
提前致谢。
【问题讨论】:
标签: java opengl vbo lwjgl vertex-buffer