论文部分内容阅读
就最近几年的技术发展和国际市场趋势分析,智能手机无疑将是未来手机的主流发展方向。而在目前的手机操作系统中,Symbian一直占据着无人撼动的主导地位。另一方面移动平台3D图形引擎技术,在游戏、动画及GPS定位系统中的应用也越来越广泛。由于目前市场的迫切需求以及Symbian操作系统具有诸多优点,本课题在此背景下被提出。在本课题中,我们根据手机移动平台的特点,实现了一款基于Symbian操作系统的手机3D图形引擎。本课题主要是面向3D游戏,在智能手机平台Symbian操作系统下,采用软件渲染方式实现的一款8位颜色模式三维图形引擎。理论基础是计算机图形学,开发环境是Symbian操作系统上的C++编程。主要研究内容包括:计算机图形学、3D数学、Symbian操作系统及其开发环境。本课题的研究路线分为四个主要的阶段进行:文献阅读和理论学习阶段、理论分析和方案设计阶段、应用程序开发阶段和论文撰写阶段。最终课题完成了3D数学引擎、三维坐标变换、基本光照、实体着色、2D、3D裁剪与剔除、仿射纹理映射、深度缓存测试和BSP二元空间划分等功能。本文首先介绍了Symbian操作系统,包括开发环境的搭建,应用程序框架及一些Symbian C++编程基础,例如时钟对象的使用、按键处理、绘图操作等。然后介绍了3D数学,这部分内容详细介绍了三维图形学中所涉及到的数学知识,为后面的章节打下基础,包括定点数、三角函数、向量和矩阵等内容。在此基础上,依次介绍了三维坐标系统、3D渲染和3D裁剪几个功能模块。3D渲染主要包括光照、纹理以及光栅化等内容。3D裁剪主要包括裁剪和剔除、Z缓冲以及二元空间划分等内容。最后总结了课题实现的功能,分析了接下来的工作。由于手机平台内存容量和硬件性能的限制,许多功能无法按照常规的理论去实现。针对这一问题,文中提出了许多特别的方法。例如光照,引擎采用了查找颜色表的方式来实现,虽然效果不是十分完美,但是在精度要求不高的情况下,可以满足一般的需求。再例如半透明的功能,引擎采用了创建Alpha混合表的方式来实现,有效地减少了计算量。