第1章 快速入门 1
向Apple技术过渡 2
Obj ective-C语言 3
OpenGL ES的发展简史 3
选择正确的OpenGL ES版本 4
开始项目 5
安装iPhone SDK 5
利用Xcode创建OpenGL模板程序 6
将程序发布至iPhone上 7
具有固定功能的HelloArrow程序 8
3D应用程序的层次结构 8
启动项目 10
链接至OpenGL库和Quartz库 11
UIView子类 12
挂接程序委托 17
生成图标并发布镜像文件 19
状态栏 19
渲染引擎接口的定义和使用 20
渲染引擎的实现 24
处理设备的方向 27
旋转动画 29
利用着色器编写HelloArrow程序 31
着色器 32
框架结构 34
GLView 34
实现RenderingEngine 35
小结 40
第2章 数学知识 41
装配线 41
基于顶点的图元装配 42
顶点属性 44
顶点的生命周期 47
装配线类比 48
设置模型矩阵 52
缩放 52
平移操作 53
旋转操作 54
设置视图转换 55
设置投影转换 56
利用矩阵栈存储和恢复转换操作 59
动画 61
插值技术 61
基于四元数的旋转动画 62
基于C++的向量 63
基于固定功能的HelloCone程序 66
RenderingEngine声明 66
OpenGL初始化操作和锥体的细分操作 68
3D平滑旋转 72
RenderO方法 73
基于着色器的HelloCone程序 75
小结 77
第3章 顶点和触摸点 79
读取触摸屏 79
采用顶点索引以节省内存空间 85
通过顶点缓冲对象获取性能提升 90
创建线框模式的观察器 95
参数化表面 96
接口设计 100
跟踪球旋转 102
渲染引擎的实现 105
简化的标签栏 107
渐变动画 111
小结 114
第4章 景深和现实感 115
深度缓冲区 115
深度缓冲冲突 117
创建并使用深度缓冲区 118
利用三角形填充线框 120
表面法线 124
向OpenGL传递法线 124
基于法线的数学知识 125
法线的转换 127
从参数表面中生成法线 128
光照计算 131
环境光 131
粗糙表面的漫反射光照 131
镜面光 133
向ModelViewer添加光照 134
使用光照特征 138
着色器分析 139
向ModelViewer中添加着色器 142
新型渲染引擎 144
像素光照 147
卡通着色 149
采用多边形偏移渲染线框对象 151
从OBJ文件中加载几何体 152
资源文件的管理 154
实现ISurface接口 157
小结 158
第5章 纹理和图像捕捉 159
向ModelViewer程序添加纹理 159
改进lResourceManager接口 161
生成纹理坐标 163
在ES1::RenderingEngine中开启纹理功能 166
在ES2::RenderingEngine中开启纹理功能 169
再访纹理坐标 174
基于过滤机制的抗锯齿操作 175
通过纹理链提升渲染质量和性能 178
改进ModelViewer程序以支持纹理链 180
纹理格式和类型 181
多种格式的数据加载 182
基于PVRTC的纹理压缩 185
PowerVR SDK和低精度纹理 193
利用Quartz生成并转换OpenGL纹理 195
纹理尺寸限制 198
POT纹理的缩放操作 201
利用相机创建纹理 202
实现CameraTexture程序中的渲染引擎 209
小结 214
第6章 混合操作与增强现实感 216
混合操作 216
预乘alpha值 218
混合操作中的注意事项 220
混合扩展操作 221
混合操作的作用 222
利用顶点颜色值调整纹理颜色 223
利用模板缓冲区实现反射计算 224
渲染圆形对象 226
利用模板缓冲区渲染反射对象 229
渲染对象 230
利用由前向后的混合方式渲染圆形对象 230
早期iPhone设备的模板替代方案 230
基于离屏FBO的抗锯齿技术 232
超采样示例 233
抖动采样 241
其他FBO效果 245
基于纹理的抗锯齿直线渲染 246
Holodeck示例程序 249
程序框架 250
渲染穹顶、云彩以及文本 252
渲染HUD 257
通过方位传感器替换按钮对象 262
添加加速计功能 262
使用真实的相机图像 268
小结 272
第7章 精灵和文本 273
文本渲染:绘制FPS计数器 273
利用Python语言生成字符纹理 275
渲染FPS文本 279
利用glDrawTexOES实施简化操作 284
基于距离场的文本 287
通过Python生成距离场 289
在ES 1.1中通过alpha测试使用距离场 291
利用片元着色器添加文本效果 292
平滑渲染与导数计算 292
实现轮廓线、光晕以及阴影效果 295
精灵表动画 298
图像合成以及多重纹理 299
OpenGL ES与UIKit之间的混合操作 302
利用点精灵渲染纸屑、焰火等 304
SpringyStars示例程序 305
弹簧体的物理原理 306
C++接口和GLView 309
实现ApplicationEngine 310
OpenGL ES 1.1版本渲染引擎和加法混合计算 313
基于OpenGL ES 2.0的点精灵 315
小结 318
第8章 高级光照和纹理 319
OpenGL ES 1.1中的纹理环境 319
纹理合成操作 322
凹凸纹理和DOT3光照 325
线性代数知识 327
生成基向量 327
基于OpenGL ES 2.0的法线贴图 329
基于OpenGL ES 1.1的法线贴图 332
生成对象空间内的法线贴图 333
立方体贴图反射 335
渲染立方体贴图 339
各向异性过滤 340
图像处理示例:模糊操作 342
基于混合方法的高性能解决方案 345
高斯模糊计算示例代码 346
小结 352
第9章 优化操作 353
度量方法 353
理解CPU和GPU 354
使用VBO 354
批处理 355
混合顶点属性 356
优化顶点格式 358
使用最佳拓扑结构和索引机制 359
光照优化 359
基于对象空间的光照 360
重述DOT3光照 360
烘焙光照 360
纹理优化 361
剔除和剪裁 361
多边形焊接 361
剪裁面 362
基于CPU的剔除操作 363
着色器性能 363
运行条件 364
kill指令 364
纹理查找 365
利用顶点混合优化 365
蒙皮计算示例代码 366
基于OpenGL ES 2.0的蒙皮计算 368
基于OpenGL ES 1.1的蒙皮计算 370
计算权值和索引 373
聚缩效应 374
进一步阅读 374
附录C++向量库 376