我想要做的就是绘制用OpenGL(大)的地形是什么。所以,我有一组顶点,可以说256×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个纹理COORDS。但glDrawRangeElements()需要尽可能多的纹理COORDS为顶点。

所以我不看的方式如何与驻国际中心组织做到这一点。也许有解决我的问题,我仅仅是缺少一个好主意,更好的概念。

预先感谢。

有帮助吗?

解决方案

如果您的质地应重复(或反射镜)本身在每个四边形的最佳方式是使用匹配(X,Y)的位置的数目的数组中的纹理坐标。例如。为顶点的第一行中使用这些纹理坐标:(0.0,0.0),(1.0,0.0),(2.0,0.0)...(255.0,0.0)

其他提示

你可能希望你的纹理无缝瓷砖,所有你需要的计算正确的纹理坐标为每个顶点,并通过他们就像顶点。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top