所以我正在编写一个带有高度映射的openGL程序来制作一个3D户外环境。与所有高度映射一样,每个点在 x&z 轴上与其相邻点的距离相同,但每个顶点的 y 轴不同,具体取决于程序读取的高度图。
到目前为止,我的程序将读取存储在高度图中,并存储在大小等于 (image_width)*(image_height) 的 y 高度数组中。我的问题是,在给定这些数据的情况下,绘制四边形环境的最有效方法是什么?
我认为以某种方式使用 glDrawArrays 是答案,但最初没有任何模式可以处理给定的数据。例如,如果我的数据数组在行之间交替并且如果我在列的末尾停止每个条带,我可以使用 GL_TRIANGLE_STRIP,但是这将需要发送到 glDrawArrays 的数据数组多次存储每行的值。考虑到初始数组仅存储 y 值,它还需要一个数组的大小与我的初始数组相比为 x3。但是,在给定数据的情况下,每帧指定每个四边形肯定不会是有效的吗?