图书介绍

DirectX 3D游戏编程实用教程2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

DirectX 3D游戏编程实用教程
  • 郑阿奇主编 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121128219
  • 出版时间:2011
  • 标注页数:485页
  • 文件大小:214MB
  • 文件页数:502页
  • 主题词:多媒体-软件工具,DirectX-高等学校-教材;游戏-应用程序-程序设计-高等学校-教材

PDF下载


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

下载说明

DirectX 3D游戏编程实用教程PDF格式电子书版下载

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

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

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

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

图书目录

第一篇 3D游戏编程基础1

第1章 Windows编程基础1

1.1 简单的Windows应用程序1

1.1.1 创建Windows应用程序项目1

1.1.2 配置、生成及运行项目6

1.2 Windows应用程序结构8

1.2.1 数据类型8

1.2.2 入口函数9

1.2.3 注册窗口类10

1.2.4 创建并显示窗口11

1.3 Windows消息机制12

1.3.1 消息队列13

1.3.2 消息循环14

1.3.3 消息处理14

1.4 匈牙利命名法15

1.4.1 类型和常量的命名16

1.4.2 变量的命名16

1.4.3 函数和参数的命名16

1.4.4 类的命名17

1.5 本章小结17

第2章 Direct3D编程基础18

2.1 DirectX概述18

2.1.1 DirectX的发展过程18

2.1.2 DirectX的组成部分19

2.1.3 Direct3D与COM20

2.1.4 Direct3D接口对象21

2.2 Direct3D渲染流水线22

2.2.1 渲染流水线22

2.2.2 灵活顶点格式23

2.2.3 D3D中的颜色24

2.2.4 D3D中的图元25

2.3 Direct3D程序结构27

2.3.1 简单的Direct3D应用程序28

2.3.2 创建Direct3D接口对象32

2.3.3 获取硬件设备信息33

2.3.4 创建Direct3D设备接口33

2.3.5 开始Direct3D图形绘制36

2.3.6 结束并清理对象资源37

2.4 顶点缓存38

2.4.1 创建顶点缓存39

2.4.2 访问顶点缓存40

2.4.3 使用顶点缓存绘制图形41

2.4.4 顶点缓存的绘制示例42

2.5 索引缓存44

2.5.1 创建索引缓存44

2.5.2 访问索引缓存45

2.5.3 使用索引缓存绘制图形45

2.5.4 索引缓存的绘制示例46

2.6 Direct3D渲染状态49

2.6.1 剔除状态49

2.6.2 着色状态50

2.6.3 填充状态51

2.7 本章小结52

第3章 基本的数学基础53

3.1 坐标空间53

3.1.1 3D笛卡儿坐标系53

3.1.2 多坐标系统54

3.2 向量56

3.2.1 向量的基本概念56

3.2.2 向量的基本运算57

3.2.3 D3D中的向量59

3.3 矩阵60

3.3.1 矩阵的基本概念60

3.3.2 矩阵的基本运算61

3.3.3 矩阵的基本变换63

3.3.4 D3D中的矩阵66

3.4 平面及射线67

3.4.1 平面的定义67

3.4.2 点与平面的关系68

3.4.3 射线的定义68

3.4.4 射线与平面的关系69

3.5 空间坐标变换69

3.5.1 世界变换70

3.5.2 取景变换71

3.5.3 投影变换72

3.5.4 视口变换73

3.6 空间坐标变换示例74

3.7 本章小结78

第二篇 3D游戏图形渲染79

第4章 光照与材质79

4.1 光照模型79

4.1.1 环境光79

4.1.2 漫反射光80

4.1.3 镜面反射光80

4.2 光源类型81

4.2.1 点光源82

4.2.2 方向光83

4.2.3 聚光灯83

4.3 物体的材质85

4.3.1 D3D材质85

4.3.2 顶点法线86

4.4 光照与材质示例87

4.5 本章小结92

第5章 纹理映射93

5.1 纹理映射基础93

5.1.1 纹理坐标93

5.1.2 创建纹理95

5.1.3 启用纹理96

5.1.4 创建纹理示例96

5.2 纹理过滤99

5.2.1 最近点采样过滤99

5.2.2 线性纹理过滤99

5.2.3 各向异性过滤100

5.2.4 多级渐进过滤100

5.2.5 纹理过滤示例102

5.3 纹理寻址104

5.3.1 重复寻址104

5.3.2 镜像寻址105

5.3.3 夹取寻址105

5.3.4 边框颜色寻址106

5.3.5 纹理寻址示例106

5.4 纹理包装108

5.4.1 纹理包装原理108

5.4.2 纹理包装示例110

5.5 本章小结113

第6章 网格模型114

6.1 网格模型基础114

6.1.1 网格的子集及属性115

6.1.2 网格的邻接信息116

6.1.3 网格的创建及绘制117

6.1.4 创建及绘制网格示例119

6.2 网格的优化及克隆122

6.2.1 优化网格122

6.2.2 克隆网格123

6.3 X文件格式分析124

6.3.1 模板的定义124

6.3.2 常用的模板类型126

6.3.3 X文件的结构129

6.4 从X文件创建网格131

6.4.1 加载网格模型数据131

6.4.2 获取纹理和材质信息132

6.4.3 绘制网格模型133

6.4.4 读取X文件示例134

6.5 创建渐进网格模型137

6.5.1 ID3DXPMesh接口138

6.5.2 创建并绘制渐进网格138

6.5.3 创建渐进网格示例140

6.6 D3D中的几何体142

6.7 本章小结143

第7章 深度、融合及模板145

7.1 深度测试145

7.1.1 深度缓存145

7.1.2 深度测试146

7.1.3 深度测试示例147

7.2 融合技术150

7.2.1 融合因子151

7.2.2 Alpha来源152

7.2.3 启用Alpha融合153

7.2.4 Alpha融合示例153

7.3 模板技术156

7.3.1 模板缓存156

7.3.2 模板测试157

7.3.3 更新模板缓存158

7.4 镜面效果159

7.4.1 镜面成像原理159

7.4.2 实现镜面效果160

7.5 本章小结163

第8章 HLSL语言基础164

8.1 HLSL概述164

8.1.1 可编程管线164

8.1.2 HLSL工作模型165

8.2 简单的HLSL程序167

8.2.1 编写HLSL代码168

8.2.2 HLSL关键字和保留字169

8.2.3 HLSL预处理指令169

8.2.4 输入、输出结构170

8.2.5 HLSL入口函数171

8.3 HLSL基本语法171

8.3.1 HLSL中的变量171

8.3.2 HLSL中的函数177

8.4 D3D与HLSL交互178

8.4.1 编译着色器程序179

8.4.2 获取常量的句柄180

8.4.3 设置常量的值180

8.5 HLSL程序示例181

8.6 本章小结184

第9章 着色器与效果185

9.1 顶点着色器185

9.1.1 创建顶点声明185

9.1.2 使用顶点着色器189

9.1.3 顶点着色器示例191

9.2 渐变动画效果196

9.2.1 渐变动画原理196

9.2.2 实现渐变动画197

9.3 像素着色器201

9.3.1 创建像素着色器201

9.3.2 使用像素着色器202

9.4 多重纹理混合203

9.4.1 HLSL采样器203

9.4.2 多重纹理坐标205

9.4.3 启用多重纹理205

9.4.4 多重纹理示例206

9.5 效果框架210

9.5.1 通道与手法210

9.5.2 着色器内置对象211

9.5.3 效果中的渲染状态212

9.5.4 创建效果框架212

9.5.5 效果中常量的设置214

9.5.6 使用效果框架214

9.5.7 效果框架示例216

9.6 本章小结223

第三篇 3D游戏输入控制224

第10章 DirectX输入控制224

10.1 DirectInput接口224

10.2 使用DirectInput接口225

10.2.1 DirectInput的初始化226

10.2.2 创建设备接口对象227

10.2.3 设置数据格式227

10.2.4 设置协作级别228

10.2.5 设置特殊属性229

10.2.6 获取、轮询设备230

10.2.7 读取设备数据231

10.3 使用DirectInput处理键盘231

10.3.1 初始化键盘设备接口232

10.3.2 获取输入的键盘数据233

10.3.3 键盘输入控制示例233

10.4 使用DirectInput处理鼠标237

10.4.1 在D3D中移动鼠标237

10.4.2 初始化鼠标设备接口238

10.4.3 获取鼠标的移动位置238

10.4.4 鼠标输入控制示例239

10.5 使用DirectInput处理游戏杆242

10.5.1 游戏杆及其控制原理242

10.5.2 初始化游戏杆设备接口242

10.5.3 读取游戏杆的状态数据244

10.5.4 游戏杆输入控制示例245

10.6 本章小结249

第四篇 3D游戏应用编程250

第11章 摄像机、地形及天空250

11.1 虚拟摄像机250

11.1.1 摄像机的属性250

11.1.2 摄像机的变换253

11.1.3 摄像机的实现257

11.1.4 摄像机应用示例259

11.2 三维地形系统262

11.2.1 地形高度图262

11.2.2 顶点的计算264

11.2.3 索引的计算265

11.2.4 地形的绘制266

11.2.5 地形类的实现267

11.2.6 地形绘制示例268

11.3 球形天空顶270

11.3.1 顶点的计算270

11.3.2 索引的计算272

11.3.3 天空的绘制273

11.3.4 天空类的实现274

11.3.5 天空绘制示例274

11.4 本章小结276

第12章 文字、拾取及碰撞检测277

12.1 字体及文本绘制277

12.1.1 绘制2D文本277

12.1.2 绘制3D文本279

12.1.3 文本绘制示例280

12.2 拾取技术284

12.2.1 网格外接体284

12.2.2 拾取技术原理286

12.2.3 拾取应用示例289

12.3 碰撞检测293

12.3.1 边界球碰撞检测293

12.3.2 AABB碰撞检测295

12.3.3 OBB树碰撞检测297

12.3.4 AABB碰撞检测示例298

12.4 本章小结301

第13章 骨骼动画302

13.1 X文件中的骨骼信息303

13.1.1 骨骼蒙皮信息303

13.1.2 骨骼层次信息304

13.1.3 模型动画信息305

13.2 加载骨骼动画数据307

13.2.1 扩展结构体309

13.2.2 加载X文件310

13.2.3 CAllocateHierarchy类311

13.2.4 生成蒙皮网格313

13.3 顶点混合技术317

13.3.1 顶点混合原理318

13.3.2 索引顶点混合320

13.4 骨骼动画的绘制321

13.4.1 开启顶点混合321

13.4.2 更新骨骼矩阵322

13.4.3 绘制骨骼动画323

13.5 骨骼动画控制器325

13.5.1 使用动画控制器326

13.5.2 平滑过渡动画集327

13.6 骨骼动画示例329

13.7 本章小结334

第14章 实时阴影335

14.1 平面阴影的原理335

14.1.1 点光源平面阴影336

14.1.2 方向光平面阴影337

14.2 平面阴影的实现337

14.2.1 计算阴影矩阵337

14.2.2 平面阴影的绘制338

14.2.3 平面阴影示例339

14.3 体积阴影的原理341

14.3.1 模型阴影体341

14.3.2 阴影锥的计算342

14.4 体积阴影的实现344

14.4.1 体积阴影的绘制347

14.4.2 体积阴影示例350

14.5 阴影贴图的原理353

14.6 本章小结353

第15章 广告牌技术与粒子系统355

15.1 广告牌技术355

15.1.1 广告牌的原理356

15.1.2 广告牌的实现356

15.1.3 广告牌示例358

15.2 粒子系统361

15.2.1 粒子系统的原理362

15.2.2 粒子系统的实现362

15.2.3 粒子系统的更新366

15.2.4 粒子系统的绘制367

15.3 粒子系统示例369

15.3.1 烟花示例370

15.3.2 喷泉示例373

15.4 本章小结376

第16章 雾化及LOD地形378

16.1 雾化效果378

16.1.1 雾化混合因子378

16.1.2 顶点雾化380

16.1.3 像素雾化381

16.1.4 范围雾化382

16.2 LOD地形原理383

16.2.1 LOD四叉树算法384

16.2.2 LOD地形的实现386

16.2.3 节点剔除原理388

16.2.4 节点简化准则391

16.2.5 地形裂缝的处理394

16.2.6 地形的更新及绘制395

16.3 LOD地形示例400

16.4 本章小结402

第五篇 3D游戏音频输出404

第17章 Direct3D音频控制404

17.1 音频文件格式404

17.1.1 音频的基本概念404

17.1.2 WAV音频格式405

17.1.3 MIDI音频格式406

17.1.4 MP3音频格式406

17.2 使用DirectSound处理音频407

17.2.1 DirectSound的结构407

17.2.2 DirectSound的初始化408

17.2.3 DirectSound音频缓冲409

17.2.4 向缓冲区中写入数据412

17.2.5 播放声音及音频控制414

17.2.6 用DirectSound反馈信息416

17.2.7 DirectSound应用示例418

17.3 使用DirectMusic处理音频420

17.3.1 DirectMusic的结构420

17.3.2 开始使用DirectMusic421

17.3.3 加载、操作MIDI段422

17.3.4 DirectMusic应用示例426

17.4 使用DirectShow处理音频428

17.4.1 DirectShow的工作原理428

17.4.2 DirectShow的初始化429

17.4.3 加载流媒体数据430

17.4.4 控制流媒体的播放430

17.4.5 DirectShow应用示例432

17.5 本章小结433

第六篇 3D游戏网络通信434

第18章 Direct3D网络控制434

18.1 了解网络互联434

18.1.1 网络会话模型434

18.1.2 寻址与通信协议436

18.2 DirectPlay概述437

18.2.1 创建和管理会话437

18.2.2 DirectPlay传输协议437

18.2.3 DirectPlay网络对象438

18.2.4 玩家与游戏大厅440

18.3 客户/服务会话441

18.3.1 初始化网络对象441

18.3.2 选择服务提供者443

18.3.3 使用DirectPlay地址444

18.3.4 建立客户/服务会话446

18.3.5 发送、接收数据452

18.3.6 创建并使用分组455

18.3.7 结束及终止会话456

18.4 游戏大厅的支持457

18.4.1 游戏大厅的结构457

18.4.2 实现游戏大厅客户端458

18.4.3 实现支持大厅的程序459

18.5 客户/服务会话示例460

18.5.1 创建服务端程序461

18.5.2 创建客户端程序468

18.6 本章小结471

附录472

附录A DirectX9 SDK的安装与配置472

A.1 安装DirectX472

A.2 配置开发环境473

A.3 浏览DirectX示例474

附录B DXUT程序框架介绍476

B.1 创建DXUT项目476

B.2 DXUT框架的初始化478

B.3 创建应用程序窗口479

B.4 创建Direct3D设备480

B.5 DXUT的事件处理481

B.5.1 框架事件481

B.5.2 设备事件482

B.5.3 消息事件483

B.6 DXUT的错误处理483

热门推荐