译者序
前言
第1章使用现代移动图形硬件
1.1 3D渲染
1.2 为图形处理器提供数据
1.2.1 缓存:提供数据的最好方式
1.2.2 帧缓存
1.3 OpenGLES的上下文
1.4 一个3D场景的几何数据
1.4.1 坐标系
1.4.2矢量
1.4.3点、线、三角形
1.5小结
第2章让硬件为你工作
2.1使用OpenGLES绘制一个CoreAnimation层
2.2结合CocoaTouch和OpenGLES
2.2.1CocoaTouch
2.2.2使用苹果开发者工具
2.2.3CocoaTouch应用架构
2.3OpenGLES_Ch2_1示例
2.3.1OpenGLES_Ch2_1AppDelegate类
2.3.2Storyboards
2.3.3OpenGLES_Ch2_1ViewController类的interface
2.3.4OpenGLES_Ch2_1ViewController类的实现
2.3.5支持文件
2.4深入探讨GLKView是怎么工作的
2.5对于GLKit的推断
2.6小结
第3章纹理
3.1 什么是纹理
3.1.1对齐纹理和几何图形
3.1.2纹理的取样模式
3.1.3MIP贴图
3.2OpenGLES_Ch3_1示例
3.3深入探讨GLKTextureLoader是怎么工作的
3.4OpenGLES_Ch3_3示例
3.5透明度、混合和多重纹理
3.5.1在OpenGLES_Ch3_4示例中混合片元颜色
3.5.2 示例OpenGLES_Ch3_5中的多重纹理
3.5.3在OpenGLES_Ch3_6示例中自定义纹理
3.6纹理压缩
3.7小结
第4章散发一些光线
4.1环境光、漫反射光、镜面反射光
4.2计算有多少光线照向每个三角形
4.3使用GLKit灯光
4.4 OpenGLES_Ch4_1示例
4.5把灯光烘焙进纹理中
4.6片元计算
4.7小结
第5章改变你的视点
5.1深度渲染缓存(DepthRenderBuffer)
5.2例子OpenGLES_Ch5_1和例子OpenGLES_Ch5_2
5.3深入探讨不用GLKit添加深度缓存
5.4变换
5.4.1基本变换
5.4.2顺序很重要
5.4.3projectionMatrix和modelviewMatrix
5.4.4textureMatrix
5.5复合变换手册
5.5.1倾斜
5.5.2围着一个点旋转
5.5.3围着一个点缩放
5.6透视和平截头体
5.7小结
第6章动画
6.1场景内移动:例子OpenGLES_Ch6_1
6.1.1看向一个特定的3D位置
6.1.2使用时间
6.2动画化顶点数据
6.2.1使用索引顶点
6.2.2OpenGLES_Ch6_2示例
6.3动画化颜色和灯光:例子OpenGLES_Ch6_3
6.4动画化纹理
6.4.1OpenGLES_Ch6_4示例
6.4.2OpenGLES_Ch6_5示例
6.5小结
第7章加载和使用模型
7.1建模工具和格式
7.2读取modelplist文件
7.3OpenGLES_Ch7_1示例
7.4高级模型
7.4.1骨骼动画
7.4.2蒙皮
7.4.3 逆动力学和物理模拟
7.5小结
第8章特效
8.1天空盒
8.2深入探讨GLKSkyboxEffect是怎么工作的
8.3 粒子
8.4公告牌
8.5小结
第9章优化
9.1尽可能减少渲染
9.1.1基于视平截体的剔除
9.1.2简化
9.2不要猜:解析(Profile)
9.2.1工具OpenGLESPerformanceDetective
9.2.2工具Instruments
9.3尽量减少缓存复制
9.4尽量减少状态变化
9.5小结
第10章地形和拾取
10.1地形的实现
10.1.1高度图
10.1.2地形瓦片
10.1.3地形效果
10.2添加模型
10.2.1模型放置
10.2.2模型效果
10.3OpenGLES摄像机
10.4拾取
10.5优化
10.6小结
第11章数学速查
11.1概述
11.2解码矩阵
11.2.1从平截体获取矩阵
11.2.2透视
11.2.3矢量的坐标轴分量
11.2.4点变换
11.2.5 转置矩阵和逆矩阵
11.3四元法
11.4常用的图形数学
11.4.1简单矢量运算
11.4.2矢量标量积
11.4.3矢量的矢量积
11.4.4model-view矩阵
11.4.5投影矩阵
11.5小结
第12章理清整体思路
12.1概述
12.2一切如故
12.2.1控制器子系统
12.2.2模型子系统
12.2.3 视图子系统
12.3设备动作
12.4小结