我正在编写一个使用高度图的openGL程序,用于创建一个3D户外环境。与所有高度图一样,每个点在x和z轴上与其邻居的距离相同,但y轴上的高度因程序读取的高度图而异。
到目前为止,我的程序已将高度图读入并存储在一个大小等于(图像宽度)*(图像高度)的y高度数组中。我的问题是,给定这些数据,绘制四边形环境的最有效方法是什么?
我认为以某种方式使用glDrawArrays是答案,但是最初给定的数据没有适合任何模式。例如,如果我数据数组在行之间交替,并在每列结束时停止每个条带,那么我可以使用GL_TRIANGLE_STRIP,但这需要在glDrawArrays中发送数据数组,多次存储每一行的值。 考虑到初始数组仅存储y值,这还需要将数组的大小扩大3倍。但是,每帧指定每个四边形肯定不是效率高的做法?
到目前为止,我的程序已将高度图读入并存储在一个大小等于(图像宽度)*(图像高度)的y高度数组中。我的问题是,给定这些数据,绘制四边形环境的最有效方法是什么?
我认为以某种方式使用glDrawArrays是答案,但是最初给定的数据没有适合任何模式。例如,如果我数据数组在行之间交替,并在每列结束时停止每个条带,那么我可以使用GL_TRIANGLE_STRIP,但这需要在glDrawArrays中发送数据数组,多次存储每一行的值。 考虑到初始数组仅存储y值,这还需要将数组的大小扩大3倍。但是,每帧指定每个四边形肯定不是效率高的做法?