1 绪论
众所周知,实时地形渲染一直是3D户外游戏以及实时三维模拟的一个重要组成部分。由于硬件性能的限制,实时地形渲染无法或者不可能完全将地形的所有细节渲染出来,所以出现了中各种地形渲染,力图在性能和质量上进行折中。在早期,地形渲染主要在CPU端实现,随着硬件的发展和新的图像API的出现,地形的渲染逐渐从CPU转到GPU,从而实现充分发挥GPU的性能以及减小CPU负担,
1.1 课题的目的和意义
实时三维地形渲染广泛应用于游戏、地形模拟、导航等方面。随着科技的发展,对所渲染的地形规模、真实度逐渐增高,地形渲染系统需要处理的地形数据越来越大,但是现有的硬件无法实现实时渲染地形中每一个细节,所以需要一些算法在细节和性能方面进行折中。目前主要的地形算法分为两大类:基于光栅和基于射线。两种方法各有月缺点:由于当前的专用图像处理器(GPU)主要针对光栅处理设计的,基于光栅的地形渲染算法可以获得更好的硬件加速,但是对于大量的地形数据(例如几百GB的地形数据),基于光栅处理的地形渲染就显得力不从心了,而基于射线的地形渲染算法在某些方面实现起来相对简单并且能够轻易处理大容量的地形数据,但是缺点是缺乏专用图像处理器的支持,所以无法获得足够的硬件加速,基于上面的原因,游戏厂商一般选择使用光栅算法进行地形渲染。本课题提供了基于DirectX11的曲面细分的可变网格的大规模渲染算法。该算法可以充分利用新一代的图像处理器来渲染地形,并且能够很好实现质量与性能的折中。Direct3D 11是微软于2009年发布的一个3D图形API,用来通过专用图像处理器加速图像渲染,该版本的图形API增加了一个曲面细分的功能,非常适用于渲染地形,并且该版本的Direct 3D能充分利用新型的图像处理器加速渲染过程并且其结果相对于之前的版本要规范很多。
1.2 国内外研究现状与水平
2 文献查阅、调研情况
在做毕业设计期间,我查阅了很多资料,通过对这些资料的学习和研究,掌握了基本算法和图像API的使用。
2.1 文献综述
对于本次的课题,我主要查询了国内外关于Direct3D以及地形渲染方面的文献资料以及相关教程。查阅的过程中了解了很多高级的渲染算法,很多算法使用了比较复杂的数据结构以及算法,并且有很多算法已经用于游戏渲染。在查阅关于Direct3D11的教程时,我找到了一本关于Direct3D11的基础教程,由于教程出的时间比较找,所以教材中使用到的Effects 11框架现在已被微软方面弃用,后来经过一段时间上网查资料,找到了一个教学网站提供了不需要Effects框架使用DX11的教程,后来又找到了一本关于Direct3D11的参考书籍,通过一段时间的自学,现在基本上掌握了大部分Direct3D11 api的用法。
关于地形渲染方面的资料,我在网上也找了很多,但是大部分都是针对老版本的DX或者OpenGL,不适合大型的地形渲染,后来在英伟达的GameWork网站上找的了关于Direct3D11地形渲染的白皮书,这才找到了比较适合DX11的地形算法,该算法不算最优但是能够充分利用DX11的曲面细分技术并且提供了不错的LOD方案。
2.2 调研情况
我了做好这次课程设计,我上网查阅了很多资料,并且找了很多书籍,从基本的应用程序到整个地形的渲染我都仔细的查阅了资料和编写代码。因此对于地形渲染有了一定的理解。