《全方位3D游戏设计 游戏引擎与游戏开发实例剖析》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:张简毅仁编著
  • 出 版 社:北京:中国铁道出版社
  • 出版年份:2007
  • ISBN:7113079210
  • 页数:328 页
图书介绍:本书通过基础知识的整合,以实例说明的方式,从游戏引擎规划到游戏研发,做了一个全面性的游戏程序设计论述。

第1部分 概论 2

Chapter 1 游戏设计软件架构 2

1-1 游戏引擎 3

1-2 面向对象(Object-Oriented) 6

1-2-1 对象(Object)、类(Class)与事件(Instance) 7

1-2-2 面向对象程序设计的基本概念 8

1-3 C++程序设计 9

1-3-1 继承(Inheritance) 10

1-3-2 虚拟函数(Virtual Function) 11

1-4 什么是gConsole 14

1-4-1 gConsole的设计概念 15

1-4-2 gConsole的架构与模块 16

1-4-3 gConsole的对象功能与关系 18

1-4-4 gConsole的模块加载 20

1-4-5 gConsole的流程 23

1-5 gConsole架构的应用 26

1-5-1 多重数据格式支持 26

1-5-2 多重模块支持 26

1-5-3 多重游戏形式 26

第2部分 3D图形程序设计 30

Chapter 2 计算机图形学概述 30

2-1 计算机绘图基础观念 31

2-1-1 像素结构 31

2-1-2 3D计算机绘图的架构 33

2-2 3D图形学基础 34

2-2-1 三角函数 35

2-2-2 向量、法向量、外积与内积 36

2-2-3 向量与矩阵 39

2-2-4 物体的放大缩小、移动与旋转 40

2-2-5 3D投影 41

2-2-6 四元数 43

2-2-7 深度缓冲区 45

2-3 3D对象数据结构 45

2-3-1 对象几何结构 46

2-3-2 对象材质贴图 48

2-3-3 对象法向量 49

2-4 二叉树与四元树 50

2-4-1 二叉树 51

2-4-2 四元树(Quadtree) 52

2-5 立体显示原理 53

2-5-1 硬件需求 53

2-5-2 视锥计算 55

Chapter 3 图形模块设计 57

3-1 OpenGL程序设计入门 58

3-1-1 OpenGL概述 58

3-1-2 OpenGL初始化 59

3-1-3 OpenGL常用函数 64

3-1-4 OpenGL环境贴图 78

3-1-5 OpenGL雾 80

3-2 OpenGL立体显示 81

3-2-1 如何激活立体显示 81

3-2-2 立体显示画面绘制 82

3-2-3 立体显示与非立体显示的切换 83

3-3 摄像机设计 83

3-3-1 摄像机类型 83

3-3-2 摄像机路径插值设计 85

3-4 图形模块设计说明 86

3-4-1 图形模块数据定义 87

3-4-2 模型管理 89

3-4-3 材质管理 90

3-4-4 场景管理 92

3-4-5 图形模块加载方式 93

3-5 图形模块实践 94

3-5-1 图形模块的初始化 94

3-5-2 模型与材质数据读取 96

3-5-3 多层材质 99

3-5-4 画面绘制 101

3-5-5 影子 107

3-5-6 图形设置对话框设计 110

3-5-7 图形模块的释放 114

第3部分 控制设备程序设计 118

Chapter 4 控制设备 118

4-1 控制设备简介 119

4-1-1 键盘 119

4-1-2 鼠标 121

4-1-3 游戏杆 123

4-1-4 掌上型控制器 125

4-1-5 方向盘 125

4-1-6 控制设备检测 126

4-2 控制设备程序设计的重要事项 127

4-2-1 客制化设置 128

4-2-2 设备校正与重置 128

4-2-3 力回馈效果 129

Chapter 5 控制模块设计 133

5-1 DirectInput概述 133

5-1-1 DirectInput初始化 133

5-1-2 DirectInput键盘相关函数 134

5-2 控制模块设计说明 139

5-2-1 控制模块数据定义 140

5-2-2 控制模块加载方式 142

5-3 控制模块实践 143

5-3-1 键盘模块的初始化 143

5-3-2 键盘状态读取 145

5-3-3 键盘设置窗口设计 147

5-3-4 键盘模块的释放 151

第4部分 音效程序设计 154

Chapter 6 音效与音乐 154

6-1 声音的基本概念 155

6-1-1 声音的数字化 156

6-1-2 混音 157

6-2 立体声与多声道系统 158

6-2-1 双声道立体声系统 158

6-2-2 5.1声道系统 159

6-2-3 6.1声道与7.1声道系统 160

6-3 MIDI简介 161

6-3-1 什么是MIDI 161

6-3-2 MIDI文件的优缺点 163

6-3-3 MIDI文件与声音文件的转换 163

6-4 3D音效技术简介 165

6-4-1 HRTF 165

6-4-2 EAX ADVANCED HDTM 167

Chapter 7 音效模块设计 169

7-1 DirectSound概述 169

7-1-1 DirectSound对象初始化 169

7-1-2 主缓冲区与次缓冲区 171

7-1-3 主缓冲区设置 172

7-1-4 次缓冲区的取得与播放 173

7-2 Audio Compression Manager 175

7-2-1 什么是Codec 175

7-2-2 WAVEFORMATEX数据结构 176

7-2-3 Codec的使用方法 177

7-2-4 将PCM格式转为ADPCM格式 181

7-3 音效模块设计说明 182

7-3-1 音效模块数据定义 183

7-3-2 音效模块加载方式 183

7-4 音效模块实践 185

7-4-1 音效模块的初始化 185

7-4-2 声音数据的加载 187

7-4-3 音效设置窗口设计 192

7-4-4 音效模块的释放 193

第5部分 游戏设计 198

Chapter 8 游戏制作过程 198

8-1 游戏制作概述 199

8-2 游戏策划 200

8-2-1 游戏的类型与名称 200

8-2-2 游戏概念、功能、画面的描述 200

8-2-3 市场分析 201

8-2-4 成本预算 201

8-3 美术设计 202

8-3-1 美术设计的过程 202

8-3-2 美术设计的注意事项 203

8-4 程序设计 204

8-4-1 程序设计的过程 204

8-4-2 程序设计的注意事项 205

8-5 音乐与音效制作 206

8-5-1 音乐制作 206

8-5-2 音效制作 206

8-5-3 音效制作的注意事项 207

8-6 游戏测试 207

8-6-1 硬件测试 208

8-6-2 操作系统测试 208

8-6-3 游戏端口测试 208

8-6-4 游戏程序漏洞 209

8-6-5 游戏性调整 209

8-6-6 安装程序测试 210

Chapter 9 游戏设计实例——Thunder Blast 213

9-1 初期工作 213

9-1-1 游戏企划书 213

9-1-2 技术研究与评估 215

9-2 模型建制与输出 216

9-2-1 模型建制 217

9-2-2 模型输出 218

9-3 辅助工具开发 219

9-3-1 Wave TableEditor 219

9-3-2 Mesh Table Editor 221

9-3-3 MF Player 223

9-4 主循环 223

9-4-1 gConsole的主循环 224

9-4-2 定时器 225

9-5 碰撞检测 227

9-5-1 球形边界 227

9-5-2 Thunder Blast的碰撞检测 228

9-6 人工智能设计 229

9-6-1 有限状态机(Finite State Machine) 229

9-6-2 Thunder Blast的状态机 231

9-6-3 如何决定在竞技场的移动 232

9-7 回放模式设计 233

9-7-1 回放模式数据记录 233

9-7-2 回放模式运行方式 233

9-8 Thunder Blast模块设计说明 234

9-8-1 Thunder Blast模块数据定义 234

9-8-2 Thunder Blast模块加载方式 236

9-9 Thunder Blast模块实践 237

9-9-1 游戏音像数据的存储与读取 237

9-9-2 Thunder Blast模块初始化 241

9-9-3 游戏画面数据运算 241

9-9-4 碰撞检测 246

9-9-5 人工智能设计 249

9-9-6 回放模式设计 252

9-9-7 Thunder Blast模块释放 255

第6部分 辅助程序与程序技巧 258

Chapter 10 3ds Max输出插件设计 258

10-1 走出插件编写的第一步 259

10-1-1 开始前的建议与注意事项 259

10-1-2 输出插件的程序架构 263

10-2 几何对象数据读取 266

10-2-1 常见对象种类 266

10-2-2 模型数据读取 266

10-2-3 模型数据读取注意事项 270

10-3 材质读取 270

10-3-1 什么是Multi/Sub-Object材质 270

10-3-2 如何使用Multi/Sub-Object材质 271

10-3-3 材质属性读取 275

10-3-4 材质贴图读取 276

10-4 输出插件实践 277

10-4-1 插件概述 278

10-4-2 插件窗口界面 281

10-4-3 材质数据 283

10-4-4 模型数据 285

10-4-5 法向量计算 291

10-4-6 数据存盘 292

10-4-7 如何使插件除错更方便 293

Chapter 11 高效程序设计技巧 297

11-1 缓存滞留 297

11-1-1 CPU的缓存系统 297

11-1-2 缓存线与缓存页 299

11-1-3 完全关联缓存 300

11-1-4 直接映像缓存 300

11-1-5 集合关联缓存 302

11-1-6 数据对齐 303

11-1-7 缓存滞留实例 303

11-2 内嵌函数 308

11-2-1 使用内嵌函数的理由 309

11-2-2 内嵌函数实例 309

11-3 SIMD指令 311

11-3-1 MMX技术 312

11-3-2 MMX技术实例 313

11-3-3 SSE技术 317

11-3-4 SSE技术实例 318

11-4 循环分块 322

11-4-1 循环展开的做法 322

11-4-2 循环分块的使用时机 323

11-4-3 循环分块实例 323

11-5 总结 328