《3D游戏编程大师技巧 上》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)拉莫斯著;李祥瑞,陈武译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2012
  • ISBN:9787115282798
  • 页数:476 页
图书介绍:本书从游戏编程和软件引擎的角度讲解了3D图形学的各个重要主题,主要包括Windows和DirectX编程;与3D游戏开发相关的数学知识;3D图形学;光照、明暗处理、仿射纹理映射、3D裁剪和深度缓存;以及高级3D渲染等技术。

第一部分 3D游戏编程简介 2

第1章3D游戏编程入门 2

1.1简介 2

1.2 2D/3D游戏的元素 3

1.2.1初始化 4

1.2.2进入游戏循环 4

1.2.3读取玩家输入 4

1.2.4执行AI和游戏逻辑 4

1.2.5渲染下一帧 4

1.2.6同步显示 5

1.2.7循环 5

1.2.8关闭 5

1.3通用游戏编程指南 7

1.4使用工具 11

1.4.1 3D关卡编辑器 14

1.4.2使用编译器 15

1.5一个3D游戏范例:Raiders 3D 17

1.5.1事件循环 37

1.5.2核心3D游戏逻辑 38

1.5.3 3D投影 39

1.5.4星空 41

1.5.5激光炮和碰撞检测 41

1.5.6爆炸 41

1.5.7玩Raiders3D 41

1.6总结 41

第2章Windows和DirectX简明教程 43

2.1 Win32编程模型 43

2.2 Windows程序的最小需求 44

2.3一个基本的Windows应用程序 48

2.3.1 Windows类 49

2.3.2注册Windows类 53

2.3.3创建窗口 53

2.3.4事件处理程序 55

2.3.5主事件循环 59

2.3.6构建实时事件循环 63

2.4 DirectX和COM简明教程 64

2.4.1 HEL和HAL 65

2.4.2 DirectX基本类 66

2.5 COM简介 67

2.5.1什么是COM对象 68

2.5.2创建和使用DirectX COM接口 70

2.5.3查询接口 70

2.6总结 72

第3章 使用虚拟计算机进行3D游戏编程 73

3.1虚拟计算机接口简介 73

3.2建立虚拟计算机接口 75

3.2.1帧缓存和视频系统 75

3.2.2使用颜色 78

3.2.3缓存交换 80

3.2.4完整的虚拟图形系统 82

3.2.5 I/O、声音和音乐 82

3.3 T3DLIB游戏控制台 83

3.3.1 T3DLIB系统概述 83

3.3.2基本游戏控制台 83

3.4 T3DLIB1库 89

3.4.1 DirectX图形引擎体系结构 89

3.4.2基本常量 89

3.4.3工作宏 91

3.4.4数据类型和结构 92

3.4.5函数原型 95

3.4.6全局变量 99

3.4.7 DirectDraw接口 100

3.4.8 2D多边形函数 103

3.4.9数学函数和错误函数 110

3.4.10位图函数 111

3.4.11 8位调色板函数 115

3.4.12实用函数 118

3.4.13 BOB (Blitter对象)引擎 119

3.5 T3DLIB2 DirectX输入系统 126

3.6 T3DLIB3声音和音乐库 131

3.6.1头文件 132

3.6.2类型 132

3.6.3全局变量 133

3.6.4 DirectSound API封装函数 133

3.6.5 DirectMusic API封装函数 138

3.7建立最终的T3D游戏控制台 140

3.7.1映射真实图形到虚拟接口的非真实图形 141

3.7.2最终的T3DLIB游戏控制台 143

3.8范例T3LIB应用程序 152

3.8.1窗口应用程序 152

3.8.2全屏应用程序 153

3.8.3声音和音乐 154

3.8.4处理输入 154

3.9总结 157

第二部分3D数学和变换 160

第4章 三角学、向量、矩阵和四元数 160

4.1数学表示法 160

4.2 2D坐标系 161

4.2.1 2D笛卡尔坐标 161

4.2.2 2D极坐标 163

4.3 3D坐标系 165

4.3.1 3D笛卡尔坐标 165

4.3.2 3D柱面坐标 168

4.3.3 3D球面坐标 168

4.4三角学 170

4.4.1直角三角形 171

4.4.2反三角函数 172

4.4.3三角恒等式 173

4.5向量 173

4.5.1向量长度 174

4.5.2归一化 174

4.5.3向量和标量的乘法 175

4.5.4向量加法 176

4.5.5向量减法 176

4.5.6点积 177

4.5.7叉积 179

4.5.8零向量 180

4.5.9位置和位移向量 180

4.5.10用线性组合表示的向量 181

4.6矩阵和线性代数 182

4.6.1单位矩阵 183

4.6.2矩阵加法 184

4.6.3矩阵的转置 184

4.6.4矩阵乘法 184

4.6.5矩阵运算满足的定律 186

4.7逆矩阵和方程组求解 186

4.7.1克来姆法则 188

4.7.2使用矩阵进行变换 190

4.7.3齐次坐标 191

4.7.4应用矩阵变换 192

4.8基本几何实体 198

4.8.1点 198

4.8.2直线 199

4.8.3平面 202

4.9使用参数化方程 206

4.9.1 2D参数化直线 206

4.9.2 3D参数化直线 208

4.10四元数简介 213

4.10.1复数理论 213

4.10.2超复数 218

4.10.3四元数的应用 223

4.11总结 226

第5章 建立数学引擎 227

5.1数学引擎概述 227

5.1.1数学引擎的文件结构 228

5.1.2命名规则 228

5.1.3错误处理 229

5.1.4关于C++的最后说明 229

5.2数据结构和类型 229

5.2.1向量和点 230

5.2.2参数化直线 231

5.2.3 3D平面 232

5.2.4矩阵 233

5.2.5四元数 236

5.2.6角坐标系支持 237

5.2.7 2D极坐标 237

5.2.8 3D柱面坐标 238

5.2.9 3D球面坐标 239

5.2.10定点数 239

5.3数学常量 240

5.4宏和内联函数 242

5.4.1通用宏 246

5.4.2点和向量宏 246

5.4.3矩阵宏 247

5.4.4四元数 249

5.4.5定点数宏 249

5.5函数原型 250

5.6全局变量 253

5.7数学引擎API清单 253

5.7.1三角函数 254

5.7.2坐标系支持函数 255

5.7.3向量支持函数 258

5.7.4矩阵支持函数 266

5.7.5 2D和3D参数化直线支持函数 277

5.7.6 3D平面支持函数 281

5.7.7四元数支持函数 285

5.7.8定点数支持函数 293

5.7.9方程求解支持函数 298

5.8浮点单元运算初步 300

5.8.1 FPU体系结构 301

5.8.2 FPU堆栈 302

5.8.3 FPU指令集 303

5.8.4经典指令格式 306

5.8.5内存指令格式 306

5.8.6寄存器指令格式 307

5.8.7寄存器弹出指令格式 307

5.8.8 FPU范例 307

5.8.9 FLD范例 308

5.8.10 FST范例 308

5.8.11 FADD范例 310

5.8.12 F SUB范例 312

5.8.13 FMUL范例 313

5.8.14 FDIV范例 314

5.9数学引擎使用说明 315

游戏控制台 317

5.10关于数学优化的说明 317

5.11总结 317

第6章3D图形学简介 318

6.1 3D引擎原理 318

6.2 3D游戏引擎的结构 319

6.2.1 3D引擎 319

6.2.2游戏引擎 320

6.2.3输入系统和网络 320

6.2.4动画系统 321

6.2.5碰撞检测和导航系统 324

6.2.6物理引擎 325

6.2.7人工智能系统 326

6.2.8 3D模型和图像数据库 327

6.3 3D坐标系 328

6.3.1模型(局部)坐标 328

6.3.2世界坐标 331

6.3.3相机坐标 334

6.3.4有关相机坐标的说明 341

6.3.5隐藏物体(面)消除和裁剪 342

6.3.6透视坐标 347

6.3.7流水线终点:屏幕坐标 356

6.4基本的3D数据结构 363

6.4.1表示3D多边形数据时需要考虑的问题 363

6.4.2定义多边形 365

6.4.3定义物体 369

6.4.4表示世界 373

6.5 3D工具 374

动画数据和运动数据 375

6.6从外部加载数据 375

6.6.1 PLG文件 375

6.6.2 NFF文件 378

6.6.3 3D Studio文件 381

6.6.4 Caligari COB文件 387

6.6.5 Microsoft DirectX.X文件 389

6.6.6 3D文件格式小结 389

6.7基本刚性变换和动画 389

6.7.1 3D平移 389

6.7.2 3D旋转 390

6.7.3 3D变形 392

6.8再看观察流水线 393

6.9 3D引擎类型 394

6.9.1太空引擎 394

6.9.2地形引擎 395

6.9.3 FPS室内引擎 396

6.9.4光线投射和体素引擎 397

6.9.5混合引擎 398

6.10将各种功能集成到引擎中 399

6.11总结 399

第7章 渲染3D线框世界 400

7.1线框引擎的总体体系结构 400

7.1.1数据结构和3D流水线 401

7.1.2主多边形列表 403

7.1.3新的软件模块 406

7.2编写3D文件加载器 406

7.3构建3D流水线 414

7.3.1通用变换函数 414

7.3.2局部坐标到世界坐标变换 420

7.3.3欧拉相机模型 423

7.3.4 UVN相机模型 426

7.3.5世界坐标到相机坐标变换 437

7.3.6物体剔除 440

7.3.7背面消除 444

7.3.8相机坐标到透视坐标变换 446

7.3.9透视坐标到屏幕(视口)坐标变换 451

7.3.10合并透视变换和屏幕变换 455

7.4渲染3D世界 457

7.5 3D演示程序 461

7.5.1单个3D三角形 461

7.5.2 3D线框立方体 464

7.5.3消除了背面的3D线框立方体 466

7.5.4 3D坦克演示程序 467

7.5.5相机移动的3D坦克演示程序 470

7.5.6战区漫步演示程序 472

7.6总结 476