使用GPU的GeoMipMap的地形无缝绘制算法
-
背景
越来越多的CPU地形绘制算法,讲地形的构网阶段在CPU上进行,随后传入GPU,造成带宽压力。与此同时,在DX11和OpenGL4.0等硬件的推出后,构网阶段可以直接在GPU上进行。
地形在此被划分为如下图
每个小平行四边形块被称为patch块
此外,不同层次的精度细节层可以参考下图
-
目的及理论解释
- 展现地形表面起伏特征,patch块内和边的细节层次由屏幕投影误差决定,所以综合考虑地面起伏和视锥参数,所以更能展现地形表面起伏特征。
- 生成网格连续的无缝地形,根据GPU的特性,边的细节层次独立于patch块内的细节层次。所以只需要独立计算共享边的细节层次,而不需要让边的细节层次与块内细节层次相同而导致2个patch块间产生裂缝(T型节点?)。
-
原理
空间误差->屏幕投影误差->屏幕投影误差与自定义误差阈值比较后选择细节层次(LOD)空间误差:除了全精度细节层,部分顶点需要按一定规则进行插值得到,其与原高程图中对应的高度值差就是空间误差。
空间误差计算后以纹理格式进行存储。
空间误差计算:
-
效果
-
参考文章
2012_GPU构网的GeoMipMap地形无缝绘制算法_聂俊岚