我正在开发一个简单的 opengl 应用程序,在该应用程序中我绘制了一堆表示为一条线的数据。出于性能原因,我将数据分成多个块并将它们上传到多个 VOB。之后,我分别渲染每个 VBO。以下是一些示例代码:
n_COORDINATES_PER_VERTEX = 2
NBR_DATA_POINTS_PER_VBO = 1000
# plot each VBO
for segment in range(segments):
# bind the named buffer object so we can work with it.
glBindBuffer(GL_ARRAY_BUFFER, vbos[segment])
# specifies the location and data format of an array of vertex coordinates to use when rendering
glVertexPointer(n_COORDINATES_PER_VERTEX, GL_FLOAT, 0, 0)
# render primitives from array data
glDrawArrays(GL_LINE_STRIP, 0, NBR_DATA_POINTS_PER_VBO)
这非常有效,但不幸的是,前一个 VBO 的最后一点和下一个 VBO 的第一点之间存在视觉差距。这是有道理的,因为GL_LINE_STRIP
仅为每个 VBO 内的数据创建。
因此我的问题是:如何实现将多个 VBO 呈现为一条线,而不会在其间跳转?