论文部分内容阅读
在复杂三维场景的实时绘制中,实现优秀的光照效果是评判绘制质量的一个重要标准。当今的高真实感光照通常使用全局光照模型,本文以光子映射算法为例阐述高真实感光照信息的预计算,并介绍预计算光照信息的存储到纹理技术(Render to Texture技术),通过该技术可明显改善复杂三维场景的实时绘制效果。但该技术存在着纹理信息利用率较低的问题,预存储纹理的大量区域是未被利用的黑暗区域。如何去除这些未被利用的黑暗区域,提高纹理信息的利用率,减少内存与显存的负荷,是复杂三维场景实时绘制需要解决的问题。传统的纹理压缩拼接方法主要有三种:第一种是降低纹理图片存储在硬盘时的尺寸,以JPEG2000为代表,其优点是能极大地减少硬盘存储空间的使用量,其局限性则是无论算法如何对图片进行压缩,图片在最终绘制载入内存和显存时的尺寸并不会缩小;第二种是降低纹理图片在显存中展开所占用的空间,以S3TC及其后的若干改进算法(DXTC、ATI-3DC等)为代表,其优点是节省了显存的空间,而其局限性则是过于依赖硬件,如果本机的显卡不支持该技术,就无法达到压缩的目的。而且对于光照信息预存储纹理的浪费部分也无能为力;第三种是简单若干小幅纹理合并成大幅纹理,通过PHOTOSHOP、3DSMAX等编辑工具能够实现合并功能,其优点是能减少显存换入换出纹理的次数(即“抖动次数”),提高绘制的效率,其局限性则是依然无法消除纹理本身就存在的浪费部分,无法达到节省内存与显存资源的目的。为了弥补上述传统方法的不足,本文分析了纹理拼接压缩问题与经典的装箱问题之间的相似性,然后研究比较了当前流行的几种装箱问题近似算法,最后提出一种针对复杂三维场景光照信息纹理的拼接压缩方法,并详细阐述了该方法的五个阶段的处理工作。最后通过杭州全城景观数字化工程项目的其中三个景观模型作为复杂三维场景测试数据,利用Mental Ray渲染器的光子映射功能进行全局光照预计算,并利用3DS MAX里的Render to Texture功能将光照信息保存为新的纹理。然后应用本文算法对纹理进行拼接压缩,并详细比较了压缩前后的几项关键数据,显示了本文算法所取得的初步效果与尚待完善之处。