基于WebGL的3D图形引擎研究与实现
| 摘要 | 第1-5页 |
| Abstract | 第5-11页 |
| 第一章 绪论 | 第11-22页 |
| ·研究背景与意义 | 第11-12页 |
| ·3D引擎基本架构 | 第12-17页 |
| ·目标硬件 | 第12页 |
| ·设备驱动 | 第12-13页 |
| ·操作系统 | 第13页 |
| ·第三方SDK和中间件 | 第13页 |
| ·平台独立层 | 第13-14页 |
| ·核心系统 | 第14页 |
| ·资源管理系统 | 第14页 |
| ·渲染引擎 | 第14-15页 |
| ·场景图和裁剪优化系统 | 第15页 |
| ·视觉效果系统 | 第15-16页 |
| ·碰撞检测和物理引擎系统 | 第16页 |
| ·角色动画系统 | 第16页 |
| ·声音系统 | 第16页 |
| ·“游戏玩法”基础系统 | 第16-17页 |
| ·游戏特定子系统 | 第17页 |
| ·国内外研究现状 | 第17-20页 |
| ·Quake系列引擎 | 第17-18页 |
| ·Unreal 系列引擎 | 第18页 |
| ·Source 引擎 | 第18页 |
| ·XNA Game Studio | 第18-19页 |
| ·其它商业引擎 | 第19页 |
| ·专有内部引擎 | 第19页 |
| ·开源引擎 | 第19-20页 |
| ·本文的组织结构 | 第20-22页 |
| 第二章 3D引擎相关理论背景 | 第22-37页 |
| ·三维空间数学概述 | 第22-27页 |
| ·坐标系与标架 | 第22-23页 |
| ·齐次坐标 | 第23-24页 |
| ·仿射变换 | 第24页 |
| ·变换的齐次坐标表示 | 第24-27页 |
| ·平移 | 第25页 |
| ·缩放 | 第25-26页 |
| ·旋转 | 第26-27页 |
| ·透视投影 | 第27-31页 |
| ·透视投影的一般模型 | 第28页 |
| ·透视投影的主要任务 | 第28-29页 |
| ·透视投影矩阵推导 | 第29-31页 |
| ·光照模型 | 第31-34页 |
| ·光源 | 第31-33页 |
| ·环境光 | 第31-32页 |
| ·点光源 | 第32页 |
| ·平行光源 | 第32-33页 |
| ·Lambert 漫反射模型 | 第33页 |
| ·Phong 反射模型 | 第33-34页 |
| ·WebGL渲染管线和着色器 | 第34-37页 |
| 第三章 系统设计与实现 | 第37-80页 |
| ·SimpleGL引擎基本架构 | 第37页 |
| ·场景图模块、渲染和游戏循环 | 第37-51页 |
| ·设计思想 | 第38-44页 |
| ·基于实体的方法 | 第38页 |
| ·基于组件的方法 | 第38-39页 |
| ·组件与编码 | 第39-40页 |
| ·更新与渲染 | 第40-41页 |
| ·SimpleGL 事件队列 | 第41-42页 |
| ·游戏主循环 | 第42页 |
| ·照相机 | 第42-43页 |
| ·光照 | 第43-44页 |
| ·具体实现 | 第44-51页 |
| ·场景类 | 第44-45页 |
| ·游戏对象类 | 第45-47页 |
| ·组件类 | 第47页 |
| ·事件队列类 | 第47-48页 |
| ·照相机类 | 第48-50页 |
| ·光照类 | 第50-51页 |
| ·资源管理模块 | 第51-56页 |
| ·设计思想 | 第51-54页 |
| ·项目管理 | 第53页 |
| ·资源提供器 | 第53-54页 |
| ·具体实现 | 第54-56页 |
| ·项目类 | 第54-55页 |
| ·资源提供器类 | 第55-56页 |
| ·网格模块 | 第56-62页 |
| ·设计思想 | 第56-58页 |
| ·网格 | 第56-57页 |
| ·网格渲染 | 第57页 |
| ·MeshData 类 | 第57-58页 |
| ·具体实现 | 第58-62页 |
| ·网格类 | 第58-59页 |
| ·网格渲染类 | 第59-60页 |
| ·网格数据类 | 第60-62页 |
| ·材质和着色器模块 | 第62-68页 |
| ·设计思想 | 第62-64页 |
| ·着色器 | 第62页 |
| ·材质 | 第62-63页 |
| ·内置着色器 | 第63-64页 |
| ·具体实现 | 第64-68页 |
| ·材质Uniform变量类 | 第64页 |
| ·材质类 | 第64-65页 |
| ·着色器类 | 第65-68页 |
| ·序列化模块 | 第68-72页 |
| ·设计思想 | 第68-70页 |
| ·惟一标识符(uid) | 第68页 |
| ·项目资产(ProjectAsset)的序列化 | 第68-69页 |
| ·场景对象(Scene)的序列化 | 第69-70页 |
| ·网格数据的序列化 | 第70页 |
| ·具体实现 | 第70-72页 |
| ·块数据类 | 第70-72页 |
| ·3D模型导入模块 | 第72-74页 |
| ·设计思想 | 第72页 |
| ·具体实现 | 第72-74页 |
| ·Obj文件导入类 | 第72-73页 |
| ·dae文件导入类 | 第73-74页 |
| ·输入管理模块 | 第74-78页 |
| ·设计思想 | 第74-76页 |
| ·键盘输入 | 第74-75页 |
| ·鼠标输入 | 第75-76页 |
| ·具体实现 | 第76-78页 |
| ·键盘输入类 | 第76页 |
| ·鼠标输入类 | 第76-78页 |
| ·数学函数库和变换模块 | 第78-80页 |
| ·设计思想 | 第78页 |
| ·具体实现 | 第78-80页 |
| ·变换类 | 第78-80页 |
| 第四章 系统性能测试与分析 | 第80-87页 |
| ·基准测试:单一绘制调用 | 第81-83页 |
| ·测试目的 | 第81页 |
| ·测试用例描述 | 第81-82页 |
| ·测试结果 | 第82页 |
| ·测试结果评估 | 第82-83页 |
| ·基准测试:视见体裁剪 | 第83-84页 |
| ·测试目的 | 第83页 |
| ·测试用例描述 | 第83-84页 |
| ·测试结果 | 第84页 |
| ·测试结果评估 | 第84页 |
| ·基准测试:材质改变 | 第84-86页 |
| ·测试目的 | 第84-85页 |
| ·测试用例描述 | 第85页 |
| ·测试结果 | 第85-86页 |
| ·测试结果评估 | 第86页 |
| ·测试结果总结与分析 | 第86-87页 |
| 第五章 总结与展望 | 第87-88页 |
| 参考文献 | 第88-91页 |
| 致谢 | 第91页 |