论文部分内容阅读
地形绘制算法对硬件的依赖性较强,根据其所依赖的硬件可以把其分为以CPU为核心的地形绘制算法和以GPU为核心的地形绘制算法。基于CPU的地形绘制算法是在GPU成为业界主流之前的主流地形绘制算法,随着计算机图形硬件的发展,基于GPU的地形绘制算法成为了主流的地形绘制算法,其中最具有代表性的是GeoMipMapping地形绘制算法,文中以GeoMipMapping地形绘制算法作为主要的研究对象。与其它事物的发展相比,计算机硬件的发展速度是相当快速的。其发展速度不是用年来进行衡量,而应是以月,日,小时甚至更小的计时单位来进行衡量的。因此在目前主流的地形绘制算法如GeoMipMapping地形绘制算法中,无法利用许多新增的硬件功能;同时在GeoMipMapping地形绘制算法中,还存在着如下一些问题:⑴作为计算机体系结构的大脑,CPU的负荷是相当繁重的,如进程管理、文件管理、存储器管理以及设备管理等等。因此在基于GPU的地形绘制算法中,如何进一步把CPU从地形绘制中解放出来以便让其更好的去处理其它的任务显得相当有必要;⑵与GPU相比,CPU的运行速度极其缓慢,同时系统内存的读取速度也比显存的读取速度慢很多。所以当从系统内存向GPU中的显存传输地形顶点数据时将会因为系统内存的低速度而产生一个速度的瓶颈。
本文在GeoMipMapping地形绘制算法的基础上,引进了顶点缓冲对象VBO、像素缓冲对象PBO以及双PBO机制。VBO的引入使得在系统内存与显存之间增加了一个缓冲,这不但解决了系统内存与GPU显存之间因速度不匹配而产生的速度瓶颈问题,同时也提高了地形的渲染速度;PBO的引入使得纹理源数据可以直接传到PBO中然后再由PBO传到纹理对象。这进一步减少了地形绘制算法中CPU的利用率;通过引入双PBO机制,使得纹理源数据的传输可以异步并行进行,这可以进一步提高纹理数据的传输速度。实验结果表明,基于缓冲对象的地形绘制算法不但在速度上得到了提高,而且CPU的利用率也得到了相应的减少,基于缓冲对象的地形绘制算法是符合研究工作的实际需要的。