我有一个相当大的地形网格(heightmap),我希望能够将其划分为更小的块...在阅读了帖子和文章后,我发现了关于地形LOD的以下内容:
不,你不需要。在典型的地形渲染器中,数据被细分成瓦片。通常这些瓦片会再细分,再细分,以实现细节层次。瓦片之间的区别在于它们所引用的顶点。所以你需要一个大型顶点数组来存储地形数据,和大量的索引数组。通过使用正确的索引数组调用glDrawElements,您可以选择以哪种细节级别绘制哪种图块。
回答者 datenwolf,链接到帖子:
OpenGL: Are VAOs and VBOs practical for large polygon rendering tasks?
编辑:
我从文件中读取了我的heightmap,通常是从一个.BMP图像中读取的,然后我用这些高度样本替换了一个规则的网格。我使用了VBO、VAO、DrawElements()、三角形(不是条带)和着色器(仍然没有镶嵌着色器,我将在下周实现它)。
有没有一个好的算法使用这个方法,或者有人可以分享一篇关于这个方法的文章吗?
1条答案
按热度按时间zbq4xfa01#
我在谷歌上搜索了**“四叉树地形渲染”**(我想你在哪里遗漏了关键字四叉树),然后出现了这个:
http://vterrain.org/LOD/Papers/
出版物很多,第二种已经看起来很有意思了:
Continuous Distance-Dependent Level of Detail for Rendering Heightmaps