针对传统多分辨率地形绘制算法构网速度慢、T型裂缝不易处理等问题,提出了一种GPU(graphic processing unit)构网的地形无缝绘制算法。首先,引入实时网格细分(tessellation)技术,将地形构网分为CPU粗粒度Tile网格构建和GPU细粒度Patch网格细分两个阶段;然后,Tile网格采用基于视距的细节层次模型进行LoD层次选择,Patch采用基于屏幕空间投影误差的细节层次模型完成网格细分,兼顾了视距和地形粗糙度对地形绘制的影响,实现了地形细节层次的自适应选择;最后,应用C++语言和DirectX11工具,设计开发了相应的可视化实验系统。实验结果表明,该方法实现了多分辨率地形的自适应无缝表达,保证了地形网格的连续性;并通过合理平衡CPU-GPU负担,显著提升了地形渲染效率。
In this paper, a seamless terrain rendering algorithm based on GPU is proposed to solve the problem that the conventional multi-resolution terrain rendering methods are time-consuming and not suitable for processing T-crack. Firstly, the real-time Tessellation is introduced and the terrain mesh constructing is divided into two steps, i.e. conducting coarse granularity Tile mesh on CPU and sub- dividing fine granularity Patch mesh on GPU. Then, in order to take the range of visibility and the terrain roughness on terrain rendering into account simultaneously, in each Tile level of detail is se- lected according to LoD model based on the range of visibility and in each Patch level of subdivision is selected according to LoD model based on screen-space projection error. Thus, in this algorithm the selection of the terrain LoD is realized self-adaptively. Finally, by using C+ + language and DirectX 11 tools, a visual experiment system is developed and the experimental result shows that the multi- resolution terrain can be expressed seamlessly and self-adaptively ensuring the continuity of the terrain mesh. Moreover, our algorithm can significantly increase the terrain rendering efficiency through rea- sonable balance of CPU and GPU.