论文部分内容阅读
随着计算机图形技术,包括软硬件技术的高速发展,对高品质画面的需求越来越大。光线追踪技术,由于拥有可以生动地再现真实场景的能力,被越来越多的人公认为未来计算机图形的关键。同时,近年来以智能手机为主的移动设备迎来了大发展的时期,移动平台的软硬件能力越来越强,功能越来越丰富,用户的覆盖面也越来越大,有超过传统桌面电脑的趋势。将这两者结合起来将会是未来研究的重要方向。本文将在系统地研究光线追踪所要用到的算法的基础上,分析和讨论其关键步骤的多种流行的算法,结合移动平台软硬件特点,提出构建一个基于移动平台的光线追踪库的方法。其内容主要有:研究和讨论光线追踪技术的主体流程,屏幕像素的遍历,光线的生成,光照和颜色的计算方法,以及判断光线是否与三角形相交的算法等。由于在场景中查找与光线相交的三角形的过程占用了整个光线追踪过程中最多的时间,本文将详细研究分析三角形查找的各种实现方法,尤其会对目前最流行的Kd树查找法进行研究,以确定光线追踪库最终采用的查找方法。本文将描述光线追踪库的语言选择、框架结构、模块划分和接口设计等方面,并详细描述每个模块的功能、实现方法和注意事项等。由于光线追踪过程计算繁琐,对硬件资源耗费巨大。为在资源受限的移动平台上实现光线追踪,本文将详细描述和对比两种在移动设备上常见的优化方法:Open GL ES的Shader和ARM处理器的SIMD扩展,并将总结针对Kd树算法最适合的优化方法。本文还将描述使用光线追踪库的应用程序的搭建方法,详细讲述应用程序如何通过调用光线追踪库接口完成具体操作,以及如何实现接口中规定的平台相关部分。应用程序分别基于Win32平台和Android平台。在本文的最后,将详细描述使用各种实现方法对多个三维场景进行渲染的过程和结果,并结合各实现方法对结果的理论预估、典型用例对性能的要求,对其结果进行分析和讨论,并得出最后的结论。