第1章 让我们用Molehill制作游戏吧!1.1 你的史诗级探险一触即发! 1
1.2 什么是Molehill? 2
1.3 Molehill不能做什么? 3
1.4 你需要具备哪些知识? 3
1.5 基本的3D术语 4
1.6 常见3D显像术语 4
网格(Mesh) 4
多边形(Polygon) 4
顶点(Vertex) 5
纹理(Texture) 6
着色器(Shader) 6
顶点着色器(Vertex Program) 7
片段着色器(Fragment Program) 7
3D显像等级已达成! 8
1.7 常见3D编码术语 9
向量(Vector) 9
法线(Normal) 10
矩阵(Matrix) 12
3D编码等级已达成! 12
1.8 小结 15
1.9 第1级,达成! 15
第2章 Molehill蓝图 17
2.1 旧式渲染方法 17
2.2 Molehill渲染法:Stage3D 18
2.3 使用2D Flash文字和Sprite 18
2.4 为什么Stage3D这么快? 19
2.5 Molehill应用的结构 20
Stage 21
Stage3D 21
Context3D 21
VertexBuffer3D 21
IndexBuffer3D 22
Program3D 22
建立 Mo1ehi11程序的流程 22
2.6 小结 25
2.7 第2级,达成! 25
第3章 启动引擎! 27
3.1 第回事1步:从Adobe下载Flash 11(Mo1ehill) 27
Stage3D设置好了! 32
3.2 第2步:开始编码 33
任务完成——收获的时间到了 46
祝贺你! 46
3.3 完整的源代码 47
3.4 小结 49
3.5 第3级,达成! 49
第4章 基础着色器:我能看到东西了!4.1 AGAL:Adobe图形汇编语言 52
一行AGAL代码是什么样的? 52
什么是寄存器(Register)? 53
什么是分量(Component)? 53
同时使用4个分量进行工作 54
不同的任务,不同的寄存器 54
4.2 基础AGAL着色器示例 57
顶点着色器 57
片段着色器 59
4.3 编译AGAL源码 59
4.4 该渲染了! 61
4.5 创作一个着色器演示文件 63
4.6 添加FPS计数器 64
任务完成——收获的时间到了 79
祝贺你! 79
4.7 小结 81
4.8 第4级,达成! 81
第5章 构建一个3D世界 84
5.1 创建顶点缓冲 84
将3D模型导入Flash 87
我们的网格解析类完成了! 102
5.2 渲染循环 103
任务完成——收获的时间到了 119
5.3 文件夹结构 119
5.4 小结 120
5.5 第5级,达成! 121
第6章 纹理:让世界更好看 123
6.1 制订计划的时间:创造一个“真正”的游戏 123
6.2 在Stage3D中使用纹理 124
2的幂 125
u,v坐标 126
透明纹理 127
在着色器中改动u,v坐标 128
纹理图集 129
动画纹理 130
操作纹理数据 130
6.3 渲染状态 131
背面剔除(Backface Cull) 131
深度测试(Depth Test) 132
混合模式(Blend Mode) 133
6.4 增加性能 137
不透明的更快 137
避免重复绘制 137
避免状态改变 138
使用简单着色器 138
绘制更少的网格 138
6.5 给演示文件添加纹理效果 139
6.6 你的演示文件已经升级了! 157
6.7 小结 159
6.8 第6级,达成! 159
第7章 计时器、输入、实体:游戏性元素!7.1 我们目前的任务 161
保持简洁 162
让它可以重用 163
7.2 让我们的游戏更富有交互性 164
添加HUD叠加层 164
持续跟踪时间:游戏计时类 166
游戏输入类 170
一个抽象的实体类 177
7.3 使用get和set函数隐藏复杂的代码 181
7.4 为我们新改良的游戏世界设计美术资源 199
7.5 升级我们的游戏 200
7.6 让我们在运行中看看这一切吧! 219
7.7 小结 221
7.8 第7级,达成! 222
第8章 丰富的视效! 223
8.1 我们目前的任务 223
性能设计 223
可重用性设计 225
使用AGAL进行动画 225
8.2 一个基础的粒子实体类 226
8.3 关键帧顶点动画着色器 236
8.4 粒子系统管理类 240
8.5 关键帧化粒子网格 247
选择粒子纹理 247
8.6 将粒子系统类整合到游戏中 250
8.7 让我们在运行中领略粒子系统吧! 255
8.8 小结 257
8.9 第8级,达成! 257
第9章 充满动作的世界 260
9.1 为“角色”扩展实体类 260
实现人工智能 265
9.2 碰撞检测 272
9.3 一个“角色重用池”系统 275
9.4 为了提升帧频,让游戏只显示邻近的角色 281
9.5 使用映射图的简单关卡编辑器 284
9.6 升级输入程序 291
9.7 小结 300
9.8 第9级,达成! 300
第1 0章 3,2,1,启动! 301
10.1 我们的最终任务 301
10.2 抵达终点线 302
10.3 为游戏添加新变量 305
10.4 为游戏添加美术资源 310
10.5 升级最终的游戏源代码 319
10.6 定义游戏专用事件 350
10.7 发布,扩散,收益! 370
10.8 小结 371
10.9 第10级达成,宇宙得救了! 371
10.10 之后该怎么办? 372
作者寄语 372
附录A AGAL操作码参考 375
A.1 一行AGAL代码是什么样的? 375
A.2 AGAL着色器可用的寄存器 375
A.3 复制数据 376
A.4 代数操作码 376
A.5 数学操作码 377
A.6 三角学操作码 377
A.7 条件操作码 378
A.8 向量和矩阵操作码 378
A.9 纹理采样寄存器 379