繁体   English   中英

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

[英]What is the fastest way to show a regular grid with OpenGL using vertex buffer?

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

我不会在使用顶点缓冲区的c ++中以最快的方式在OpenGL中显示此DEM。 由于我的数据集分散在图块中,因此在移动相机时我将不得不做很多加载工作,因此这需要非常快。

显示这样的网格的最快方法是什么? 我需要进行某种三角剖分还是有一种更快的方法?

在OpenGL中正确,您必须先进行三角剖分。 如果您只需要一个简单的解决方案,则可以使用下图所示的方案。

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

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

三角剖分方案

有一些更有效的方法可以对高度场进行三角测量,但是除非您确实需要,否则我不会去那里。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM