使用顶点缓冲区使用OpenGL显示常规网格的最快方法是什么?

时间:2013-09-09 07:29:14

标签: c++ algorithm opengl optimization 3d

所以我有一个数字高程模型的点矩阵,比方说1024x1024网格,单元间距为1个单位。

我不想使用顶点缓冲区在c ++中以最快的方式使用OpenGL显示这个DEM。 由于我的数据集在磁贴中碎片化,因此我需要在移动相机时进行大量加载,因此需要非常快。

显示这样的网格的最快方法是什么?我是否需要进行某种三角测量或者有更快的方法吗?

2 个答案:

答案 0 :(得分:3)

在OpenGL中纠正你必须先进行三角测量。如果您只想要一个简单的解决方案,可以使用下图所示的方案。

您将每个数据点转换为顶点。数据点的索引成为x和y坐标;高度值成为z坐标。

现在你必须创建一个顶点索引列表。第一个三角形的索引为[0,1,1024],第二个为[1024,1,1025],依此类推。您将数组绘制为GL_TRIANGLES

Triangulation Scheme

more efficient ways to triangulate height fields但除非你真的需要,否则我不会去那里。

答案 1 :(得分:1)

我的方法是使用均匀间隔的x-z坐标初始化1024x1024顶点缓冲区。可以在顶点着色器中通过每个补丁1024x1024像素高度纹理对高度进行采样。可以根据可见贴片重新渲染顶点缓冲区,提供不同的高度纹理和不同的x-z坐标偏移。