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