《OpenGL ES 2.0游戏与图形编程 适用于iOS 和 Android》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:(美)RomainMarucchi-Foino著;王净译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2014
  • ISBN:9787302352303
  • 页数:271 页
图书介绍:本书展示了iOS和Android开发人员在创建具有丰富图形效果的3D移动应用和游戏时需要掌握的方方面面的知识,包括加载复杂的几何图形和纹理;处理GLSL材料、声音、摄像机和剪切;路径查找和AI、后处理效果;实时光照和阴影效果;使用骨骼动画,等等。

第1章 入门 1

1.1软件需求 1

1.1.1针对iOS开发人员 1

1.1.2针对Android开发人员 2

1.2下载本书的SDK 3

1.3导入项目 4

1.3.1针对iOS开发人员 5

1.3.2针对Android开发人员 5

1.4模板 6

1.5小结 7

第2章 设置图形投影 9

2.1三种基本的投影类型 9

2.2正射2D投影 11

2.2.1程序和项目初始化 12

2.2.2顶点和片段着色器 14

2.2.3链接着色器程序 16

2.2.4绘图代码 18

2.3正交投影 23

2.4透视投影 26

2.5小结 27

第3章 处理复杂几何图形 29

3.1 Wavefront文件格式 29

3.1.1 cube.obj 30

3.1.2 cube.mtl 31

3.2准备OBJ浏览器代码 31

3.3加载OBJ 32

3.4构建着色器 35

3.4.1顶点着色器 35

3.4.2片段着色器 36

3.4.3顶点缓冲区对象 36

3.4.4存储顶点数据 36

3.4.5构建顶点数据数组(VBO) 38

3.4.6构建元素数组VBO 39

3.5构建VAO 40

3.6渲染Momo 42

3.7处理Touche事件 44

3.8逐顶点光照 45

3.8.1顶点着色器的光照计算 46

3.8.2修改片段着色器 47

3.8.3更多uniform变量 48

3.9对Momo进行美化 49

3.9.1加载纹理 49

3.9.2调整顶点数据 50

3.9.3向顶点着色器添加UV支持 52

3.9.4向片段着色器添加纹理支持 52

3.9.5绑定纹理 53

3.10小结 54

第4章 构建场景 55

4.1处理多个对象 55

4.2代码结构 56

4.3加载和绘制场景 57

4.4着色器代码 61

4.5不同的对象类型 62

4.6绘制顺序 62

4.7修复场景 63

4.7.1 Uber Shader 63

4.7.2使用Uber Shader 64

4.7.3渲染循环对象分类 67

4.7.4双面 69

4.8逐像素光照 71

4.8.1使顶点着色器更加丰富 71

4.8.2获取使用了更多Uber的片段着色器 72

4.8.3封装实现代码 74

4.9小结 77

第5章 优化 79

5.1基本应用程序 79

5.2从三角形到三角形带 80

5.3构建三角形带 81

5.4纹理优化 82

5.5添加16位纹理转换 83

5.6 PVR纹理压缩 84

5.7仿造细节 85

5.7.1凸凹贴图的实现 85

5.7.2精度限定符优化 86

5.7.3法线贴图光照计算 88

5.7.4添加反射 90

5.8几何图形和着色器LOD 91

5.9纹理地图集 91

5.10在软件中管理状态 92

5.11自动着色器优化 93

5.12小结 94

第6章 实时物理 95

6.1物理对象类型 95

6.2物理形状 96

6.3使用Bullet 97

6.4 Hello Physics 97

6.5碰撞回调、触发器和接触点 102

6.5.1 Contact-Added回调 103

6.5.2 Near回调 105

6.5.3接触点 106

6.6 2D物理 107

6.6.1更多形状! 108

6.6.2构建物理对象 111

6.6.3摄像头跟踪 112

6.6.4用户交互 114

6.6.5游戏逻辑 114

6.7 3D物理 118

6.7.1 Bullet文件格式 118

6.7.2 3D弹珠游戏 119

6.8小结 125

第7章 摄像头 127

7.1一触即发 128

7.2摄像头视锥 130

7.2.1视锥构建方式 131

7.2.2视锥剪切的实现 132

7.2.3更多剪切函数 133

7.3摄像头飞行模式 134

7.4带有碰撞检测的第一人称 139

摄像头 139

7.5 3D摄像头跟踪 141

7.6带有碰撞的第三人称摄像头 143

7.7小结 148

第8章 路径发现 149

8.1 Recast和Detour 149

8.2导航 150

8.3创建导航网格 151

8.4 3D物理拾取 153

8.5玩家的自动驱动 157

8.6使路径点可见 159

8.7游戏“如果能就抓住我!” 161

8.8了解你的敌人 164

8.9游戏状态逻辑 165

8.10小结 168

第9章 音频及其他极佳的游戏编程资料 171

9.1 OpenAL 172

9.2 OGG Vorbis 173

9.3 Hello World OpenAL样式 173

9.4初始化OpenAL 174

9.5播放静态内存声音 174

9.6定位声源 176

9.7钢琴游戏 177

9.7.1加载静态的流式声音 178

9.7.2颜色提取 182

9.7.3钢琴游戏逻辑 185

9.7.4最后的调整 188

9.8滚球游戏 190

9.8.1 GFX着色器 191

9.8.2链接定位声源 192

9.8.3加速计驱动摄像头 196

9.8.4廉价的FX 199

9.8.5游戏逻辑和调整 200

9.9小结 206

第10章 高级光照 207

10.1灯的类型 207

10.2使用光源 208

10.2.1定向灯着色器 211

10.2.2使用Struct作为Uniform 214

10.3点灯 217

10.3.1点光源着色器代码 218

10.3.2光的衰减 221

10.3.3带有衰减代码的点光源 222

10.3.4衰减Uniform变量 223

10.3.5球体点光源 224

10.3.6调整点光源代码 225

10.3.7聚光灯 227

10.3.8聚光灯着色器代码 229

10.4多个光源 231

10.5使着色器程序动态化 234

10.6小结 235

第11章 高级FX 237

11.1渲染到纹理 238

11.2后处理效果 238

11.2.1第一渲染通道 241

11.2.2第二渲染通道 242

11.2.3全屏通道和模糊着色器 243

11.3投影纹理 246

11.4投影着色器 249

11.5投影实时阴影 250

11.6使用深度纹理投射阴影 254

11.7关于帧缓冲对象的其他内容 255

11.8粒子 255

11.9小结 257

第12章 骨骼动画 259

12.1传统的动画系统与最新的动画系统 259

12.2 MD5文件格式 261

12.3加载MD5网格 261

12.4对网格进行动画处理 264

12.4.1 LERP 266

12.4.2 SLERP 266

12.5混合动画 267

12.6 相加混合 269

12.7小结 271