《精通XNA图形与游戏程序设计》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:杨关胜,栗俊霞编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2012
  • ISBN:9787115280848
  • 页数:419 页
图书介绍:本书系统全面地介绍了XNA程序设计的相关内容。全书共分五部分,第一部分介绍了XNA程序设计基础。第二部分介绍了XNA程序设计相关的高级技术。第三部分XNA GPU编程。第四部游戏程序设计领域流行的许多实用技术

第一部分 基础篇 3

第1章 XNA概述与简介 3

1.1 XNA发展史 3

1.2 XNA的优势 4

1.3 安装XNA Game Studio 4

1.4 第一个XNA程序 6

1.4.1 创建最简单的XNA程序 6

1.4.2 项目EmptyProject的代码诠释 8

1.5 完善EmptyProject 9

1.5.1 显示鼠标 9

1.5.2 允许改变窗口大小 10

1.5.3 响应键盘退出程序 10

1.5.4 图形设备的获取 10

1.6 全屏显示 11

1.7 小结 12

第2章 二维图形与字体 13

2.1 初探素材管线(Content Pipeline) 13

2.1.1 素材管线的使用 13

2.1.2 素材管线的实现 14

2.2 简单二维图形的加载和渲染 14

2.2.1 添加图片 14

2.2.2 加载图片 15

2.2.3 渲染二维图片 16

2.3 渲染多幅图片 17

2.4 二维图片的旋转、缩放、镜像与裁剪 19

2.4.1 图片原点与绘制原点 19

2.4.2 旋转 20

2.4.3 缩放 21

2.4.4 镜像 21

2.4.5 裁剪 23

2.5 图层与透明渲染技术 23

2.5.1 图层与类SpriteBatch的Begin()重载函数 23

2.5.2 透明渲染 24

2.6 字体 26

2.6.1 英文字体 26

2.6.2 中文字体 27

2.7 小结 29

第3章 三维图形基础 30

3.1 BasicEffect类 30

3.1.1 创建类BasicEffect的对象 30

3.1.2 BasicEffect对象的使用 31

3.2 坐标系 32

3.3 渲染流水线 33

3.4 顶点缓冲区(Vertex Buffer) 33

3.4.1 新建顶点声明与设置顶点数据 34

3.4.2 新建并填充顶点缓冲区 35

3.5 顶点坐标变换 35

3.5.1 世界变换与世界变换矩阵 35

3.5.2 取景变换和取景变换矩阵 38

3.5.3 投影变换和投影变换矩阵 39

3.5.4 视区变换和屏幕坐标系 41

3.6 基本图元 42

3.6.1 点集合 43

3.6.2 线段集合 44

3.6.3 线段条带 44

3.6.4 三角形集合 45

3.6.5 三角形条带 45

3.6.6 三角扇形 46

3.7 索引缓冲区(Index Buffer) 46

3.8 自定义顶点格式 49

3.9 填充模式 51

3.10 小结 52

第4章 HLSL语言与效果 53

4.1 渲染器(Shader) 53

4.2 HLSL数据类型 54

4.2.1 标量 54

4.2.2 向量 55

4.2.3 矩阵 57

4.2.4 纹理 59

4.2.5 复杂数据类型 59

4.3 语义 61

4.4 表达式与运算符 62

4.5 语句 63

4.5.1 语句块 64

4.5.2 返回语句 64

4.5.3 流程控制语句 65

4.6 函数 66

4.6.1 函数声明 66

4.6.2 函数体 67

4.6.3 返回值 68

4.6.4 内部函数 68

4.6.5 构造函数 68

4.7 效果 69

4.7.1 效果、技术与通道 69

4.7.2 使用效果 69

4.8 小结 70

第5章 光照与材质 71

5.1 环境光 71

5.2 漫反射 72

5.3 镜面反射 73

5.4 自发光 74

5.5 光源类型 75

5.6 小结 77

第6章 纹理 78

6.1 纹理映射基础 78

6.1.1 纹理映射基本概念 78

6.1.2 实现纹理映射 80

6.2 纹理过滤模式 82

6.2.1 最近点采样 82

6.2.2 线性纹理过滤 83

6.2.3 各向异性纹理过滤 83

6.2.4 GaussianQuad纹理过滤 84

6.2.5 PyramidalQuad纹理过滤 85

6.3 纹理寻址模式 85

6.3.1 重叠寻址模式 86

6.3.2 镜像寻址模式 86

6.3.3 夹取寻址模式 87

6.3.4 一次镜像寻址模式 87

6.3.5 边框颜色寻址模式 88

6.4 Alpha混合 88

6.5 小结 90

第二部分 XNA开发核心技术第7章 网格模型 93

7.1 三维模型基础 93

7.2 .X文件格式分析 94

7.2.1 首部 95

7.2.2 网格 95

7.2.3 网格材质列表 96

7.2.4 法向量 98

7.2.5 纹理 98

7.2.6 框架和变换矩阵 100

7.2.7 动画 101

7.2.8 蒙皮信息 102

7.3 简易网格模型 103

7.3.1 加载网格模型 103

7.3.2 网格模型结构 104

7.3.3 渲染简易网格模型 107

7.4 骨骼动画网格模型 108

7.4.1 网格模型结构 109

7.4.2 实现骨骼动画 111

7.5 蒙皮骨骼动画网格模型 114

7.5.1 动画数据 115

7.5.2 蒙皮网格模型处理器 119

7.5.3 动画播放器 126

7.5.4 效果文件 133

7.5.5 添加并处理效果材质素材 135

7.5.6 加载、更新和渲染蒙皮网格模型 136

7.6 扩充蒙皮骨骼动画 138

7.7 多动画网格模型 139

7.8 多动画间的平滑过渡 142

7.8.1 成员变量与构造函数 142

7.8.2 开启/切换动画轨道 143

7.8.3 更新关键帧骨骼变换矩阵 144

7.8.4 迭代骨骼变换矩阵 145

7.8.5 计算顶点坐标变换矩阵 146

7.9 关键帧动画 149

7.9.1 关键帧动画原理 150

7.9.2 扩充网格模型处理器、ContentTypeWriter和ContentTypeReader 150

7.9.3 关键帧动画效果文件 153

7.9.4 实现关键帧动画 154

7.10 小结 157

第8章 交互 158

8.1 拾取技术 158

8.1.1 拾取技术基本原理 158

8.1.2 构建观察射线 159

8.1.3 计算观察射线与三角形平面的交点 160

8.1.4 判断交点是否在三角形区域内 162

8.1.5 渲染拾取网格模型 163

8.2 鼠标牵引技术 165

8.2.1 鼠标牵引技术原理 165

8.2.2 鼠标牵引技术实现 166

8.3 第一人称取景变换 168

8.3.1 站在原点,绕上向量旋转 169

8.3.2 站在原点,任意旋转 169

8.3.3 站在任意一点,任意旋转 169

8.3.4 实现第一人称取景变换技术 170

8.3.5 封装第一人称取景摄像机类 172

8.4 三维空间漫游 178

8.4.1 第三人称取景变换 178

8.4.2 跟踪目标点网格模型 182

8.4.3 实现三维空间漫游 187

8.5 三维场景漫游 190

8.5.1 进一步封装跟踪目标模型 190

8.5.2 实现三维场景漫游 197

8.6 渲染探测 199

8.6.1 渲染探测技术简介 200

8.6.2 检测三维空间内任意一点 200

8.6.3 检测静态网格模型 201

8.6.4 检测动态网格模型 202

8.6.5 创建模型边界球 204

8.7 小结 205

第三部分 游戏开发核心技术 209

第9章 声音与视频播放 209

9.1 简易声音播放 209

9.2 单曲循环播放 212

9.3 多曲连续播放 214

9.4 三维声音播放 215

9.5 视频播放 217

9.6 小结 219

第10章 网络 220

10.1 注册网络服务 220

10.1.1 注册账号 220

10.1.2 游戏成员类GameComponent简介 221

10.1.3 添加网络游戏服务成员 221

10.1.4 显示注册界面(Sign In Interface ) 221

10.2 创建网络对话 223

10.2.1 创建网络对话 223

10.2.2 响应网络对话的相关事件 224

10.2.3 更新网络对话 226

10.3 查找并加入网络对话 227

10.3.1 查找活动对话 227

10.3.2 加入活动对话 228

10.3.3 精确查找对话 229

10.4 收发数据 231

10.4.1 发送数据 231

10.4.2 接收数据 232

10.4.3 检测数据的可用性 233

10.4.4 发送数据的SendDataOptions设置 233

10.4.5 多玩家间的数据收发 235

10.5 异步搜索网络对话 238

10.6 进入实际游戏 240

10.7 添加游戏信息 243

10.8 小结 244

第11章 游戏数据的存储与加载 245

11.1 构建整体框架 245

11.2 存储游戏数据 247

11.3 加载游戏数据 249

11.4 小结 250

第四部分 图形开发技术 253

第12章 粒子系统 253

12.1 粒子系统技术简介 253

12.1.1 粒子系统的核心思想和建模原理及优缺点 253

12.1.2 粒子系统基本原理 254

12.2 雨景 255

12.2.1 雨点粒子类 255

12.2.2 雨景粒子系统类 255

12.2.3 雨景的实现 258

12.3 雪景 259

12.3.1 雪花粒子类 259

12.3.2 雪景粒子系统类 259

12.3.3 雪景的实现 264

12.4 喷洒 265

12.4.1 喷洒粒子类 265

12.4.2 喷洒粒子系统类 265

12.4.3 喷洒效果的实现 269

12.5 发射火箭弹到爆炸 270

12.5.1 粒子顶点结构体 270

12.5.2 粒子系统属性设置类 270

12.5.3 粒子系统基类 272

12.5.4 效果 282

12.5.5 各个具体的粒子系统 286

12.5.6 粒子发射类 288

12.5.7 火箭弹类 290

12.5.8 主程序的实现 292

12.6 烟雾排放 294

12.7 火焰 296

12.8 小结 298

第13章 地形 299

13.1 使用高程映射图构建地形的基本原理 299

13.1.1 高程映射图 299

13.1.2 从高程映射图中构建三维地形 300

13.2 地形类Terrain 301

13.2.1 加载构建地形模型的相关数据 301

13.2.2 构建地形网格模型 303

13.3 效果文件 309

13.3.1 多层纹理映射与法向量映射 309

13.3.2 地形效果中的顶点渲染 310

13.3.3 地形效果中的像素渲染 311

13.3.4 管理效果文件类TerrainEffect 313

13.3.5 地形材质类TerrainMaterial 317

13.3.6 设置效果参数 319

13.4 渲染地形网格模型 320

13.5 读取地形高程数据 321

13.6 读取地形法向量数据 323

13.7 射线探测地形 324

13.8 小结 326

第14章 碰撞探测 327

14.1 二维空间碰撞探测 327

14.1.1 矩形碰撞探测 327

14.1.2 矩形像素碰撞探测 331

14.2 三维模型之间的碰撞探测 333

14.2.1 快速探测 333

14.2.2 精细探测 334

14.2.3 射线探测 340

14.2.4 半径探测 343

14.3 地形匹配 344

14.3.1 高程匹配 344

14.3.2 倾斜匹配 349

14.4 小结 354

第15章 后处理 355

15.1 后处理技术的核心思想及关键步骤 355

15.2 后处理程序的基本框架 356

15.2.1 水下效果模拟 356

15.2.2 其他多种特效的实现 360

15.3 阴影 365

15.3.1 阴影效果文件 365

15.3.2 添加阴影效果文件 369

15.3.3 实现阴影 370

15.4 镜面效果 375

15.4.1 镜面技术的核心思想 375

15.4.2 镜面技术主程序的基本实现 375

15.4.3 渲染镜面的效果代码 378

15.4.4 完善 380

15.5 小结 382

第16章 其他简易实用技术 383

16.1 广告板技术(BillBoard) 383

16.1.1 球形广告板 383

16.1.2 柱形广告板 386

16.2 环境映射 388

16.2.1 球形环境映射 388

16.2.2 立方体环境映射 390

16.3 雾化 398

16.3.1 雾化效果实现原理 398

16.3.2 雾化模式 400

16.3.3 雾化效果的实现 400

16.4 光晕 403

16.5 小结 408

第五部分 三维开发技术 411

第17章 综合应用 411

17.1 整体构思 411

17.2 加载素材 411

17.3 创建各个游戏类 413

17.4 统筹各个游戏类 414

17.4.1 添加成员变量 414

17.4.2 初始化 414

17.4.3 加载素材 414

17.4.4 更新 415

17.4.5 渲染 417

17.5 小结 419