基于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页 |