《iPhone三维程序设计 基于OpenGL ES的图形应用程序设计》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)莱德奥特著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2011
  • ISBN:9787302251286
  • 页数:392 页
图书介绍:本书详细阐述了基于OpenGL ES的3D图形程序设计。

第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