Learning OpenGL ES for iOS : a hands-on guide to modern 3D graphics programming
副标题:无
分类号:
ISBN:9787111428671
微信扫一扫,移动浏览光盘
简介
《OpenGL ES应用开发实践指南:iOS卷》是一本系统的具备实战性的OpenGL ES3D图形开发指南。由资深iOS开发专家根据OpenGL ES最新版本撰写,不仅详细讲解了OpenGL ES与GLKit的结合使用,而且还系统讲解OpenGL ES的核心概念、技术,以及iOS的图形机制,并通过大量案例讲解了在iOS上进行OpenGL ES开发的方法和技巧。
《OpenGL ES应用开发实践指南:iOS卷》共分12章。第1章介绍了使用嵌入式图形硬件绘制3D图形的最新方法;第2章讲解了如何使用苹果Xcode开发工具和Cocoa Touch面向对象的框架在iPhone、iPod Touch和iPad中开发包括3D图形的程序;第3章涵盖了纹理的底层概念和常用选项;第4章介绍灯光模拟背后的概念,以及利用GLKit并使用相对简单的应用代码演示灯光效果;第5章讲解并演示从任意视点渲染几何对象的技术;第6章介绍如何制作动画;第7章介绍了如何加载并使用模型;第8章讲解了特效的使用;第9章介绍能够提高iOS设备上OpenGL ES2.0渲染性能的优化策略;第10章讲解了地形和拾取;第11章回顾了3D渲染所需的常见数学运算;第12章涵盖了一个结合地形渲染、天空盒、粒子系统、动画、变化视点、灯光、模型和碰撞检测技术的实例。
目录
译者序
前言
第1章使用现代移动图形硬件 1
1.13D渲染 1
1.2 为图形处理器提供数据 3
1.2.1 缓存:提供数据的最好方式 4
1.2.2 帧缓存 5
1.3 OpenGL ES的上下文 6
1.4 一个3D场景的几何数据 7
1.4.1 坐标系 7
1.4.2矢量 9
1.4.3点、线、三角形 11
1.5小结 11
第2章让硬件为你工作 12
2.1使用OpenGL ES绘制一个Core Animation层 12
2.2结合Cocoa Touch和OpenGL ES 14
2.2.1Cocoa Touch 14
2.2.2使用苹果开发者工具 15
2.2.3Cocoa Touch应用架构 15
2.3OpenGLES_Ch2_1示例 18
2.3.1OpenGLES_Ch2_1AppDelegate类 18
2.3.2Storyboards 19
2.3.3OpenGLES_Ch2_1ViewController类的interface 19
2.3.4OpenGLES_Ch2_1ViewController类的实现 20
2.3.5支持文件 30
2.4深入探讨GLKView是怎么工作的 31
2.5对于GLKit的推断 40
2.6小结 46
第3章纹理 48
3.1 什么是纹理 48
3.1.1对齐纹理和几何图形 49
3.1.2纹理的取样模式 50
3.1.3MIP 贴图 52
3.2OpenGLES_Ch3_1示例 52
3.3深入探讨GLKTextureLoader是怎么工作的 56
3.4OpenGLES_Ch3_3示例 62
3.5透明度、混合和多重纹理 63
3.5.1在OpenGLES_Ch3_4示例中混合片元颜色 64
3.5.2 示例OpenGLES_Ch3_5中的多重纹理 66
3.5.3在OpenGLES_Ch3_6示例中自定义纹理 68
3.6纹理压缩 70
3.7小结 71
第4章散发一些光线 72
4.1环境光、漫反射光、镜面反射光 73
4.2计算有多少光线照向每个三角形 74
4.3使用GLKit灯光 79
4.4 OpenGLES_Ch4_1示例 80
4.5把灯光烘焙进纹理中 86
4.6片元计算 87
4.7小结 88
第5章改变你的视点 89
5.1深度渲染缓存(Depth Render Buffer) 89
5.2例子OpenGLES_Ch5_1和例子OpenGLES_Ch5_2 91
5.3深入探讨不用GLKit添加深度缓存 96
5.4变换 98
5.4.1基本变换 98
5.4.2顺序很重要 101
5.4.3projectionMatrix和modelviewMatrix 102
5.4.4textureMatrix 105
5.5复合变换手册 107
5.5.1倾斜 107
5.5.2围着一个点旋转 107
5.5.3围着一个点缩放 107
5.6透视和平截头体 108
5.7小结 109
第6章动画 110
6.1场景内移动:例子OpenGLES_Ch6_1 111
6.1.1看向一个特定的3D位置 111
6.1.2使用时间 113
6.2动画化顶点数据 116
6.2.1使用索引顶点 118
6.2.2OpenGLES_Ch6_2示例 119
6.3动画化颜色和灯光:例子OpenGLES_Ch6_3 122
6.4动画化纹理 126
6.4.1OpenGLES_Ch6_4示例 126
6.4.2OpenGLES_Ch6_5示例 128
6.5小结 130
第7章加载和使用模型 131
7.1建模工具和格式 132
7.2读取modelplist文件 136
7.3OpenGLES_Ch7_1示例 138
7.4高级模型 142
7.4.1骨骼动画 142
7.4.2蒙皮 147
7.4.3 逆动力学和物理模拟 150
7.5小结 150
第8章特效 151
8.1天空盒 151
8.2深入探讨GLKSkyboxEffect是怎么工作的 154
8.3 粒子 164
8.4公告牌 170
8.5小结 177
第9章优化 178
9.1尽可能减少渲染 178
9.1.1基于视平截体的剔除 179
9.1.2简化 189
9.2不要猜:解析(Profile) 189
9.2.1工具OpenGL ES Performance Detective 190
9.2.2工具Instruments 191
9.3尽量减少缓存复制 192
9.4尽量减少状态变化 192
9.5小结 193
第10章地形和拾取 195
10.1地形的实现 195
10.1.1高度图 196
10.1.2地形瓦片 197
10.1.3地形效果 200
10.2添加模型 205
10.2.1模型放置 206
10.2.2模型效果 206
10.3OpenGL ES摄像机 208
10.4拾取 213
10.5优化 221
10.6小结 228
第11章数学速查 229
11.1概述 229
11.2解码矩阵 230
11.2.1从平截体获取矩阵 233
11.2.2透视 236
11.2.3矢量的坐标轴分量 237
11.2.4点变换 238
11.2.5 转置矩阵和逆矩阵 240
11.3四元法 241
11.4常用的图形数学 242
11.4.1简单矢量运算 242
11.4.2矢量标量积 243
11.4.3矢量的矢量积 243
11.4.4model-view矩阵 244
11.4.5投影矩阵 245
11.5小结 245
第12章理清整体思路 246
12.1概述 246
12.2一切如故 248
12.2.1控制器子系统 249
12.2.2模型子系统 250
12.2.3 视图子系统 255
12.3设备动作 263
12.4小结 265
前言
第1章使用现代移动图形硬件 1
1.13D渲染 1
1.2 为图形处理器提供数据 3
1.2.1 缓存:提供数据的最好方式 4
1.2.2 帧缓存 5
1.3 OpenGL ES的上下文 6
1.4 一个3D场景的几何数据 7
1.4.1 坐标系 7
1.4.2矢量 9
1.4.3点、线、三角形 11
1.5小结 11
第2章让硬件为你工作 12
2.1使用OpenGL ES绘制一个Core Animation层 12
2.2结合Cocoa Touch和OpenGL ES 14
2.2.1Cocoa Touch 14
2.2.2使用苹果开发者工具 15
2.2.3Cocoa Touch应用架构 15
2.3OpenGLES_Ch2_1示例 18
2.3.1OpenGLES_Ch2_1AppDelegate类 18
2.3.2Storyboards 19
2.3.3OpenGLES_Ch2_1ViewController类的interface 19
2.3.4OpenGLES_Ch2_1ViewController类的实现 20
2.3.5支持文件 30
2.4深入探讨GLKView是怎么工作的 31
2.5对于GLKit的推断 40
2.6小结 46
第3章纹理 48
3.1 什么是纹理 48
3.1.1对齐纹理和几何图形 49
3.1.2纹理的取样模式 50
3.1.3MIP 贴图 52
3.2OpenGLES_Ch3_1示例 52
3.3深入探讨GLKTextureLoader是怎么工作的 56
3.4OpenGLES_Ch3_3示例 62
3.5透明度、混合和多重纹理 63
3.5.1在OpenGLES_Ch3_4示例中混合片元颜色 64
3.5.2 示例OpenGLES_Ch3_5中的多重纹理 66
3.5.3在OpenGLES_Ch3_6示例中自定义纹理 68
3.6纹理压缩 70
3.7小结 71
第4章散发一些光线 72
4.1环境光、漫反射光、镜面反射光 73
4.2计算有多少光线照向每个三角形 74
4.3使用GLKit灯光 79
4.4 OpenGLES_Ch4_1示例 80
4.5把灯光烘焙进纹理中 86
4.6片元计算 87
4.7小结 88
第5章改变你的视点 89
5.1深度渲染缓存(Depth Render Buffer) 89
5.2例子OpenGLES_Ch5_1和例子OpenGLES_Ch5_2 91
5.3深入探讨不用GLKit添加深度缓存 96
5.4变换 98
5.4.1基本变换 98
5.4.2顺序很重要 101
5.4.3projectionMatrix和modelviewMatrix 102
5.4.4textureMatrix 105
5.5复合变换手册 107
5.5.1倾斜 107
5.5.2围着一个点旋转 107
5.5.3围着一个点缩放 107
5.6透视和平截头体 108
5.7小结 109
第6章动画 110
6.1场景内移动:例子OpenGLES_Ch6_1 111
6.1.1看向一个特定的3D位置 111
6.1.2使用时间 113
6.2动画化顶点数据 116
6.2.1使用索引顶点 118
6.2.2OpenGLES_Ch6_2示例 119
6.3动画化颜色和灯光:例子OpenGLES_Ch6_3 122
6.4动画化纹理 126
6.4.1OpenGLES_Ch6_4示例 126
6.4.2OpenGLES_Ch6_5示例 128
6.5小结 130
第7章加载和使用模型 131
7.1建模工具和格式 132
7.2读取modelplist文件 136
7.3OpenGLES_Ch7_1示例 138
7.4高级模型 142
7.4.1骨骼动画 142
7.4.2蒙皮 147
7.4.3 逆动力学和物理模拟 150
7.5小结 150
第8章特效 151
8.1天空盒 151
8.2深入探讨GLKSkyboxEffect是怎么工作的 154
8.3 粒子 164
8.4公告牌 170
8.5小结 177
第9章优化 178
9.1尽可能减少渲染 178
9.1.1基于视平截体的剔除 179
9.1.2简化 189
9.2不要猜:解析(Profile) 189
9.2.1工具OpenGL ES Performance Detective 190
9.2.2工具Instruments 191
9.3尽量减少缓存复制 192
9.4尽量减少状态变化 192
9.5小结 193
第10章地形和拾取 195
10.1地形的实现 195
10.1.1高度图 196
10.1.2地形瓦片 197
10.1.3地形效果 200
10.2添加模型 205
10.2.1模型放置 206
10.2.2模型效果 206
10.3OpenGL ES摄像机 208
10.4拾取 213
10.5优化 221
10.6小结 228
第11章数学速查 229
11.1概述 229
11.2解码矩阵 230
11.2.1从平截体获取矩阵 233
11.2.2透视 236
11.2.3矢量的坐标轴分量 237
11.2.4点变换 238
11.2.5 转置矩阵和逆矩阵 240
11.3四元法 241
11.4常用的图形数学 242
11.4.1简单矢量运算 242
11.4.2矢量标量积 243
11.4.3矢量的矢量积 243
11.4.4model-view矩阵 244
11.4.5投影矩阵 245
11.5小结 245
第12章理清整体思路 246
12.1概述 246
12.2一切如故 248
12.2.1控制器子系统 249
12.2.2模型子系统 250
12.2.3 视图子系统 255
12.3设备动作 263
12.4小结 265
Learning OpenGL ES for iOS : a hands-on guide to modern 3D graphics programming
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×