百万网格编程



我有一个用单个全屏GL_QUAD绘制的平面。

我想在GL_Texture2D指定的每个点上变形这个曲面,最好是通过某种着色器。

在我看来,黑色可以对应平坦,白色可以对应山丘。

我想在我的地形上有大约400万个点,并在我的程序中的每一步都更新它们。

如何使用几何体着色器来执行此操作?着色器是否能够生成新的真实性?

最简单的方法是生成一个大的三角形条形网格,将其上传到VBO并绘制,使用顶点着色器仅更改上坐标。顶点着色器还可以从高度贴图生成法线(或提供法线贴图),然后将法线传递给片段着色器进行照明。

为了避免为顶点存储大量数据,请使用glVertexID在顶点着色器中从头开始生成顶点位置。不绑定任何缓冲区,只需调用glDrawArrays(GL_TRIANGLE_STRIP,0,lot)。

正如GuyRT所提到的,镶嵌着色器也很好,可以根据摄影机到网格的距离来改变镶嵌细节。不过,这将是更多的工作。

最新更新