图书介绍

普通高等教育“动画与数字媒体专业”规划教材 iPhone 3D游戏编程基础PDF|Epub|txt|kindle电子书版本网盘下载

普通高等教育“动画与数字媒体专业”规划教材 iPhone 3D游戏编程基础
  • 袁冠远编著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302330530
  • 出版时间:2013
  • 标注页数:289页
  • 文件大小:35MB
  • 文件页数:305页
  • 主题词:移动电话机-游戏-程序设计-高等学校-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

普通高等教育“动画与数字媒体专业”规划教材 iPhone 3D游戏编程基础PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 数学基础1

1.1向量1

1.1.1向量相等2

1.1.2向量的大小2

1.1.3向量的规范化2

1.1.4向量加法3

1.1.5向量减法3

1.1.6数与向量的乘积3

1.1.7向量点积3

1.1.8向量叉积4

1.2矩阵4

1.3变换6

1.3.1平移变换6

1.3.2缩放变换7

1.3.3旋转变换7

1.3.4矩阵复合8

1.4思考题8

第2章 创建OpenGL ES项目9

2.1开发工具9

2.1.1 Mac电脑9

2.1.2 iPhone9

2.1.3 Xcode9

2.1.4 Objective-C10

2.2 OpenGL ES简介10

2.3选择适当的OpenGL ES版本11

2.4使用向导创建OpenGL ES项目11

2.5从头开始创建OpenGL ES项目15

2.5.1创建Window-based Application15

2.5.2清理OpenGLES无关信息16

2.5.3连接OpenGL与Quartz库19

2.5.4添加UIView子类GLView19

2.5.5运行结果27

2.6应用程序设置27

2.6.1设置应用程序图标27

2.6.2处理启动画面28

2.6.3处理状态栏28

2.6.4运行结果28

2.7思考题29

第3章 基本图元30

3.1 OpenGLES坐标系30

3.1.1左手和右手坐标系30

3.1.2 OpenGLES默认坐标系30

3.2图元31

3.2.1点图元31

3.2.2渲染点图元31

3.2.3线图元36

3.2.4渲染线图元37

3.2.5三角形图元41

3.2.6渲染三角形图元42

3.3思考题46

第4章 游戏循环47

4.1基本的游戏循环47

4.2几种常见的游戏循环体48

4.2.1基于帧的循环体48

4.2.2基于时间的不定间隔循环体49

4.2.3基于时间的固定间隔循环体49

4.3 IOS游戏循环驱动器50

4.4 IOS游戏循环的实现51

4.4.1修改类声明51

4.4.2实现新定义的方法52

4.5游戏(动画)的启动与停止54

4.6实现简单动画55

4.7思考题56

第5章 颜色57

5.1颜色理论57

5.1.1 RGB模式57

5.1.2颜色深度57

5.1.3颜色立方体模型57

5.2设置渲染颜色58

5.3顶点颜色59

5.4着色模式60

5.5思考题61

第6章 顶点格式62

6.1顶点属性62

6.2顶点属性的数据类型63

6.3支持不同数据类型的函数63

6.4交错顶点数组64

6.4.1原理64

6.4.2使用交错顶点数组65

6.5使用结构体定义顶点数据66

6.6思考题68

第7章 纹理69

7.1概述69

7.2纹理坐标69

7.3在OpenGL ES中使用纹理71

7.3.1定义顶点信息结构体71

7.3.2设置顶点信息71

7.3.3创建纹理71

7.3.4渲染带纹理属性图元77

7.3.5运行78

7.4纹理寻址模式78

7.4.1重复纹理寻址模式79

7.4.2箝位纹理寻址模式79

7.4.3分别设置s轴和t轴的纹理寻址模式80

7.5使用多个纹理80

7.6思考题81

第8章 渲染流水线82

8.1渲染流水线概述83

8.2变换过程中的坐标系83

8.3基于OpenGLES的图形变换84

8.3.1概述84

8.3.2世界变换86

8.3.3视图变换86

8.3.4投影变换89

8.3.5视口变换92

8.4思考题92

第9章 渲染正方体93

9.1正方体顶点的组成93

9.2使用OpenGL ES默认变换渲染正方体93

9.2.1准备项目93

9.2.2定义顶点属性结构体93

9.2.3定义顶点数据94

9.2.4渲染95

9.2.5运行结果96

9.3设置投影矩阵以适配屏幕的宽高比96

9.3.1修改投影矩阵96

9.3.2运行结果97

9.4设置模型变换及结果97

9.4.1设置模型变换97

9.4.2运行结果98

9.5设置背面剔除及运行结果98

9.5.1设置背面剔除98

9.5.2运行结果99

9.6设置透视投影及运行结果99

9.6.1设置透视投影99

9.6.2运行结果101

9.6.3使用另一种透视相机模型101

9.7设置视图变换及运行结果102

9.7.1设置视图变换102

9.7.2运行结果102

9.8使立方体动起来102

9.9渲染第二个立方体103

9.10思考题105

第10章 混合106

10.1实例:半透明效果106

10.1.1实验准备106

10.1.2渲染玻璃107

10.1.3运行结果109

10.1.4启用混合109

10.2混合原理110

10.2.1混合原理简介110

10.2.2混合公式111

10.3渲染带有alpha通道的纹理112

10.4多次纹理混合113

10.5 alpha测试115

10.6思考题117

第11章 多重纹理118

11.1原理118

11.1.1纹理单元118

11.1.2纹理混合瀑布119

11.1.3纹理环境参数的设置119

11.1.4纹理分量120

11.1.5不同混合模式下纹理分量的计算公式121

11.1.6合并模式(Combine)下纹理分量的计算公式121

11.1.7操作122

11.2实例:颜色、纹理混合123

11.2.1定义顶点属性结构体123

11.2.2定义顶点数据124

11.2.3声明各四边形渲染函数124

11.2.4渲染函数125

11.2.5渲染第一个四边形126

11.2.6渲染第二个四边形126

11.2.7渲染第三个四边形127

11.2.8渲染第四个四边形128

11.2.9渲染第五个四边形128

11.2.10渲染第六个四边形130

11.3实例:精灵表动画131

11.3.1精灵表131

11.3.2图像合成131

11.3.3代码实现132

11.3.4调用代码137

11.4实例:光照纹理139

11.4.1原理139

11.4.2代码139

11.5思考题141

第12章 光照142

12.1光照的组成142

12.2材质143

12.3法线143

12.4法线的计算144

12.5光源145

12.6实例:向场景中添加光照147

12.6.1设置顶点法向量147

12.6.2设置光源149

12.6.3立方体渲染函数149

12.6.4渲染各立方体150

12.7思考题153

第13章 创建几何体154

13.1程序框架重构154

13.1.1通用函数和结构体154

13.1.2基类GLViewBase158

13.1.3派生类GLView164

13.2圆柱体建模164

13.2.1剖分方法164

13.2.2底面建模165

13.2.3侧面建模166

13.2.4圆柱体类166

13.2.5调用圆柱体类170

13.3球体建模174

13.3.1剖分方法174

13.3.2球体类176

13.3.3调用球体类180

13.4思考题182

第14章 顶点索引183

14.1原理183

14.2实例:使用顶点索引建模球体184

14.3思考题188

第15章 顶点缓存对象189

15.1原理189

15.1.1定义缓存对象名189

15.1.2生成缓存对象名189

15.1.3绑定缓存对象189

15.1.4传输缓存数据190

15.1.5渲染190

15.2使用顶点缓存对象优化球体模型190

15.3思考题194

第16章 深度缓存195

16.1原理195

16.1.1准备深度缓存196

16.1.2清除深度缓存197

16.1.3启用深度测试197

16.1.4设置深度测试函数197

16.1.5渲染198

16.2实例:使用深度缓存198

16.2.1准备深度缓存198

16.2.2清除深度缓存198

16.2.3启用深度测试渲染图元199

16.2.4渲染结果200

16.3控制深度缓存更新200

16.4思考题200

第17章 模板缓存201

17.1原理201

17.1.1准备模板缓存202

17.1.2清除模板缓存203

17.1.3启用模板测试204

17.1.4设置模板测试函数204

17.1.5设置模板更新方式204

17.1.6渲染205

17.2实例:镜面效果205

17.2.1概述205

17.2.2镜面变换206

17.2.3准备模板缓存206

17.2.4清除模板缓存207

17.2.5渲染207

17.3思考题208

第18章 加载3D模型209

18.1常见3D模型文件格式简介209

18.2 OBJ文件格式简介211

18.3一些OBJ关键字211

18.4 MTL关键字212

18.5 OBJ文件实例214

18.6 MTL文件实例214

18.7 WaveFrontObjLoader215

18.7.1 WaveFrontObjLoader的特点215

18.7.2 WaveFrontObjLoader的组成215

18.7.3 WaveFrontOBJScene类215

18.7.4 WaveFrontOBJ Group类216

18.7.5使用方式216

18.8实例:加载OBJ模型并渲染218

18.8.1准备工作218

18.8.2修改GLView类的定义219

18.8.3初始化219

18.8.4渲染220

18.9改进221

18.9.1改进材质类221

18.9.2修改WaveFrontOBJGroup类的定义221

18.9.3修改WaveFrontOBJGroup类的实现222

18.9.4为WaveFrontOBJScene类添加render方法226

18.9.5调用改进的类226

18.9.6渲染结果228

18.10思考题228

第19章 3D碰撞检测229

19.1定义包围信息229

19.2为WaveFrontOBJGroup类添加包围信息230

19.2.1修改WaveFrontOBJGroup类的定义230

19.2.2实现Bounding属性232

19.2.3实现calculateBoundingInfo方法232

19.3为WaveFrontOBJScene类添加包围信息233

19.3.1修改WaveFrontOBJScene类定义233

19.3.2实现Bounding属性234

19.3.3实现calculateBoundingInfo方法235

19.4渲染包围盒236

19.4.1概述236

19.4.2添加WireFrameBox类236

19.4.3修改GLView类237

19.4.4渲染结果240

19.5实现碰撞检测240

19.5.1概述240

19.5.2相关算法241

19.5.3添加Square类,用于绘制按钮242

19.5.4修改GLView类,实现实例244

19.5.5测试程序250

19.6扩展讨论250

19.7思考题251

第20章 地形绘制基础252

20.1高度图253

20.1.1原理253

20.1.2创建高度图253

20.1.3加载RAW文件253

20.1.4访问高度图254

20.2创建地形几何信息254

20.2.1 Terrain类的定义254

20.2.2顶点的计算256

20.2.3索引的计算258

20.2.4纹理的计算259

20.3渲染地形261

20.4在地形中“行走”261

20.5调用地形类265

20.6思考题268

第21章 天空绘制基础269

21.1原理269

21.2实现天空盒270

21.2.1创建天空盒渲染数据270

21.2.2创建天空盒纹理271

21.2.3渲染天空盒272

21.3调用天空盒类273

21.4思考题276

第22章 拾取277

22.1概述277

22.2原理278

22.2.1射线的定义278

22.2.2计算拾取射线278

22.2.3变换物体到观察坐标系280

22.2.4射线/物体相交判定280

22.2.5封装Picking类282

22.3拾取实例282

22.3.1修改Sphere类282

22.3.2修改GLView类的定义283

22.3.3初始化变量284

22.3.4实现渲染包围球方法285

22.3.5修改renderRoles函数285

22.3.6实现拾取功能287

22.3.7修改touchesBegan 函数288

22.3.8运行288

22.4思考题288

参考文献289

热门推荐