论文部分内容阅读
渲染技术,即图形数据的计算与输出,用于绘制三维场景。画面最低帧速是30帧/秒,高于该标准才不产生跳帧现象或内存耗尽死机。渲染技术近年来已成为计算机图形学、虚拟现实、图像处理等领域的研究热点。三维场景的渲染技术主要解决计算机系统资源的有限性与场景数据的海量性之间的矛盾。本文的研究目标是同时兼顾可接受的渲染误差和良好的渲染效果这两者。目前针对上述矛盾的解决方案主要是地形场景渲染细节程度分级,近景细节多,远景细节少,减轻CPU渲染负担;天空场景采用静态天空体模型。但地形场景渲染细节程度分级容易产生网格裂缝,静态天空体真实度比较有限。本文在总结以前研究成果的基础上,结合自己的研究,具体工作内容如下:(1)地形模拟:首先对同一组地形数据分别实现直接渲染和基于LOD的渲染。直接渲染适用小规模地形,但渲染场景较犀利。基于LOD的渲染可以适用大规模地形,同时渲染场景较符合现实,故本文选用基于LOD的地形渲染技术。之后,针对LOD算法需要经常重组网格的特性,采用易于访问的四叉树LOD地形数据格式。基于四叉树的结构,介绍了本文所用的LOD算法节点评价标准。(2)地形网格优化:基于LOD的地形渲染容易产生网格裂缝。本文对传统网格裂缝处理方法的加点法和跳点法进行优化,采用当一个节点的子节点中有任何一个需要继续被剖分时,该节点的所有子节点都继续进行剖分的思路,实验结果表明使用此思路需要程序判断的语句大幅度减少,但得到的地形细节却多了,在耗时和效果上都很理想。(3)天空模拟:实现了基于SilverLining的动态天空渲染,并与OpenGL集成,相较传统天空模拟,这里并非是通过简单的蓝色渐变背景绘制来模拟天空,而是基于实时物理模拟与太阳光谱天文计算太阳的相对位置,从视点的地平线数据开始,模拟散射光线穿过地球大气层而产生的渐变效果。所得到的效果更加真实,同时所增加的资源消耗也并不多。基于Visual C++6.O和OpenGL开源库,SimNatuer开源库设计并实现了三维场景渲染系统。该系统能够保证在流畅运行速度的前提下,模拟出一个三维世界,三维世界中的漫游处理,景深效果以及明暗效果具有很好的真实感。