DirectX 9.0 3D游戏开发编程基础

DirectX 9.0 3D游戏开发编程基础 pdf epub mobi txt 电子书 下载 2026

出版者:清华大学
作者:Frank D.luna
出品人:
页数:373
译者:段菲
出版时间:2007-4
价格:46.00元
装帧:
isbn号码:9787302130253
丛书系列:
图书标签:
  • 游戏开发
  • directx
  • 3D
  • 游戏编程
  • 图形学
  • 游戏
  • C++
  • 编程
  • DirectX
  • 3D游戏开发
  • 编程基础
  • DX9
  • 游戏编程
  • C++开发
  • 图形学
  • 游戏开发入门
  • 编程语言
  • 软件开发
想要找书就要到 图书目录大全
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

《DirectX 9.0 3D游戏开发编程基础》主要介绍如何使用DirectX 9.0开发交互式3D图形程序,重点是游戏开发。全书首先介绍了必要的数学工具,然后讲解了相关的3D概念。其他主题几乎涵盖了Direct3D中的所有基本运算,例如图元的绘制、光照、纹理、Alpha融合、模板,以及如何使用Direct3D实现游戏中所需的技术。介绍顶定点着色器和像素着色器的章节(包含了效果框架和新的高级着色语言的内容)对这些关键运算进行了较为集中的讨论。

作者简介

目录信息

目录
第Ⅰ部分 基础知识
必备的数学知识 3
3D空间中的向量 3
向量相等 7
计算向量的长度 7
向量的规范化 8
向量加法 9
向量减法 9
数乘 10
点积 11
叉积 11
矩阵 12
矩阵相等、矩阵数乘和矩阵加法 13
矩阵乘法 14
单位矩阵 15
逆矩阵 15
矩阵的转置 16
D3DX矩阵 16
基本变换 19
平移矩阵 20
旋转矩阵 21
比例变换矩阵 23
几何变换的组合 24
向量变换的一些函数 25
平面(选读) 26
D3DXPLANE 27
点和平面的空间关系 27
平面的创建 28
平面的规范化 29
平面的变换 29
平面中到某一点的最近点 30
射线(选读) 31
射线 31
射线与平面的相交 32
小结 32
第Ⅱ部分 Direct3D基础
第1章 初始化Direct3D 37
1.1 Direct3D概述 37
1.1.1 REF设备 38
1.1.2 D3DDEVTYPE 38
1.2 COM(组件对象模型) 38
1.3 预备知识 39
1.3.1 表面 39
1.3.2 多重采样 41
1.3.3 像素格式 42
1.3.4 内存池 42
1.3.5 交换链和页面置换 43
1.3.6 深度缓存 44
1.3.7 顶点运算 45
1.3.8 设备性能 45
1.4 Direct3D的初始化 46
1.4.1 获取接口IDirect3D9的指针 47
1.4.2 校验硬件顶点运算 47
1.4.3 填充D3DPRESENT_PARAMETER结构 48
1.4.4 创建IDirect3DDevice9接口 50
1.5 例程:Direct3D的初始化 51
1.5.1 d3dUtility.h/cpp 52
1.5.2 例程框架 53
1.5.3 例程:D3D初始化 54
1.6 小结 56
第2章 绘制流水线 58
2.1 模型表示 59
2.1.1 顶点格式 60
2.1.2 三角形单元 60
2.1.3 索引 61
2.2 虚拟摄像机 62
2.3 绘制流水线 63
2.3.1 局部坐标系 64
2.3.2 世界坐标系 64
2.3.3 观察坐标系 65
2.3.4 背面消隐 67
2.3.5 光照 68
2.3.6 裁剪 68
2.3.7 投影 69
2.3.8 视口变换 70
2.3.9 光栅化 72
2.4 小结 72
第3章 Direct3D中的绘制 73
3.1 顶点缓存与索引缓存 73
3.1.1 创建顶点缓存和索引缓存 73
3.1.2 访问缓存内容 76
3.1.3 获取顶点缓存和索引缓存的信息 77
3.2 绘制状态 78
3.3 绘制的准备工作 78
3.4 使用顶点缓存和索引缓存进行绘制 79
3.4.1 IDirect3DDevice9::DrawPrimitive 79
3.4.2 IDirect3DDevice9::DrawIndexedPrimitive 80
3.4.3 Begin/End Scene 81
3.5 D3DX几何体 81
3.6 例程:三角形、立方体、茶壶、D3DXCreate* 83
3.7 小结 87
第4章 颜色 89
4.1 颜色表示 89
4.2 顶点颜色 92
4.3 着色 92
4.4 例程:具有颜色的三角形 93
4.5 小结 95
第5章 光照 97
5.1 光照的组成 97
5.2 材质 98
5.3 顶点法线 100
5.4 光源 102
5.5 例程:光照 105
5.6 一些附加例程 108
5.7 小结 108
第6章 纹理映射 109
6.1 纹理坐标 110
6.2 创建并启用纹理 111
6.3 纹理过滤器 112
6.4 多级渐进纹理 113
6.4.1 多级渐进纹理过滤器 114
6.4.2 使用多级渐进纹理 114
6.5 寻址模式 114
6.6 例程:纹理四边形 116
6.7 小结 118
第7章 融合技术 119
7.1 融合方程 119
7.2 融合因子 121
7.3 透明度 122
7.3.1 Alpha通道 122
7.3.2 指定Alpha来源 123
7.4 用DirectX Texture Tool创建Alpha通道 123
7.5 例程:透明效果 125
7.6 小结 127
第8章 模板 128
8.1 模板缓存的使用 129
8.1.1 模板缓存格式的查询 129
8.1.2 模板测试 130
8.1.3 模板测试的控制 130
8.1.4 模板缓存的更新 132
8.1.5 模板写掩码 132
8.2 例程:镜面效果 133
8.2.1 成像中的数学问题 133
8.2.2 镜面效果实现概述 134
8.2.3 代码解析 135
8.3 例程:Planer Shadows 139
8.3.1 平行光阴影 139
8.3.2 点光源产生的阴影 140
8.3.3 阴影矩阵 141
8.3.4 使用模板缓存防止二次融合 142
8.3.5 代码解析 143
8.4 小结 144
第Ⅲ部分 Direct3D的应用
第9章 字体 149
9.1 ID3DXFont接口 149
9.1.1 创建一个ID3DXFont接口对象 149
9.1.2 绘制文本 150
9.1.3 计算每秒绘制的帧数 151
9.2 CD3DFont 152
9.2.1 创建CD3DFont类的实例 152
9.2.2 绘制文本 152
9.2.3 清理 153
9.3 D3DXCreateText函数 153
9.4 小结 155
第10章 网格(一) 156
10.1 几何信息 156
10.2 子集和属性缓存 157
10.3 绘制 159
10.4 网格优化 159
10.5 属性表 161
10.6 邻接信息 163
10.7 克隆 164
10.8 创建网格(D3DXCreateMeshFVF) 165
10.9 例程:网格的创建与绘制 167
10.10 小结 172
第11章 网格(二) 174
11.1 ID3DXBuffer 174
11.2 XFile 175
11.2.1 加载XFile文件 175
11.2.2 XFile材质 176
11.2.3 例程:XFile 177
11.2.4 生成顶点法线 180
11.3 渐进网格 181
11.3.1 生成渐进网格 182
11.3.2 顶点属性权值 183
11.3.3 ID3DXPMesh接口方法 183
11.3.4 例程:Progressive Mesh 184
11.4 外接体 187
11.4.1 一些新的特殊常量 189
11.4.2 外接体的类型 189
11.4.3 例程:Bounding Volumes 190
11.5 小结 192
第12章 设计一个灵活的Camera类 193
12.1 Camera类的设计 193
12.2 实现细节 195
12.2.1 观察矩阵(取景变换矩阵,View Matrix)的计算 195
12.2.2 绕任意轴的旋转 198
12.2.3 俯仰、偏航和滚动 199
12.2.4 行走、扫视和升降 201
12.3 例程:Camera 202
12.4 小结 205
第13章 地形绘制基础 206
13.1 高度图 207
13.1.1 创建高度图 207
13.1.2 加载RAW文件 208
13.1.3 访问和修改高度图 209
13.2 创建地形几何信息 210
13.2.1 顶点的计算 212
13.2.2 索引的计算 214
13.3 纹理映射 216
13.4 光照 219
13.4.1 概述 219
13.4.2 坐标方格的明暗度计算 220
13.4.3 对地形进行着色 222
13.5 在地形中“行走” 222
13.6 例程:Terrain 226
13.7 一些改进 228
13.8 小结 229
第14章 粒子系统 230
14.1 粒子和点精灵 230
14.1.1 结构格式 230
14.1.2 点精灵的绘制状态 231
14.1.3 粒子及其属性 233
14.2 粒子系统的组成 234
14.2.1 绘制一个粒子系统 238
14.2.2 随机性 243
14.3 具体的粒子系统 243
14.3.1 例程:Snow System 244
14.3.2 例程:Firework 246
14.3.3 例程:Particle Gun 248
14.4 小结 250
第15章 拾取 251
15.1 屏幕到投影窗口的变换 253
15.2 拾取射线的计算 254
15.3 对射线进行变换 255
15.4 射线/物体相交判定 256
15.5 例程:Picking 258
15.6 小结 259
第Ⅳ部分 着色器和效果
第16章 高级着色语言(HLSL)入门 263
16.1 HLSL着色器程序的编制 264
16.1.1 全局变量 266
16.1.2 输入和输出结构 266
16.1.3 入口函数 267
16.2 HLSL着色器程序的编译 268
16.2.1 常量表 268
16.2.2 HLSL着色器程序的编译 272
16.3 变量类型 274
16.3.1 标量类型 274
16.3.2 向量类型 274
16.3.3 矩阵类型 275
16.3.4 数组 277
16.3.5 结构体 277
16.3.6 关键字typedef 277
16.3.7 变量的前缀 278
16.4 关键字、语句及类型转换 279
16.4.1 关键字 279
16.4.2 基本程序流程 279
16.4.3 类型转换 280
16.5 运算符 281
16.6 用户自定义函数 282
16.7 内置函数 284
16.8 小结 286
第17章 顶点着色器入门 287
17.1 顶点声明 288
17.1.1 顶点声明的描述 288
17.1.2 顶点声明的创建 291
17.1.3 顶点声明的启用 291
17.2 顶点数据的使用 291
17.3 使用顶点着色器的步骤 293
17.3.1 顶点着色器的编写与编译 294
17.3.2 顶点着色器的创建 294
17.3.3 顶点着色器的设置 294
17.3.4 顶点着色器的销毁 295
17.4 例程:Diffuse Lighting 295
17.5 例程:Cartoon Rendering 302
17.5.1 卡通着色 303
17.5.2 卡通着色的顶点着色器代码 304
17.5.3 轮廓的勾勒 307
17.5.4 实现轮廓勾勒的顶点着色器代码 310
17.6 小结 312
第18章 像素着色器入门 313
18.1 多重纹理概述 313
18.1.1 启用多重纹理 315
18.1.2 多重纹理坐标 316
18.2 像素着色器的输入和输出 317
18.3 使用像素着色器的步骤 318
18.3.1 像素着色器的编写和编译 318
18.3.2 像素着色器的创建 318
18.3.3 像素着色器的设置 319
18.3.4 像素着色器的销毁 319
18.4 HLSL采样器对象 319
18.5 例程:像素着色器中的多重纹理 321
18.6 小结 329
第19章 效果框架 331
19.1 手法与路径 331
19.2 更多HLSL的内置对象 333
19.2.1 纹理对象 333
19.2.2 采样器对象与采样器状态 333
19.2.3 顶点着色器对象和像素着色器对象 334
19.2.4 字符串 335
19.2.5 注释 335
19.3 效果文件中的设备状态 336
19.4 创建一种效果 337
19.5 常量的设置 338
19.6 使用一种效果 340
19.6.1 效果句柄的获取 341
19.6.2 效果的激活 341
19.6.3 效果的启用 341
19.6.4 当前绘制路径的设置 342
19.6.5 效果的终止 342
19.6.6 一个例子 342
19.7 例程:效果文件中的光照和纹理 343
19.8 例程:雾效 349
19.9 例程:卡通效果 352
19.10 EffectEdit 353
19.11 小结 354
附录 Windows编程入门 355
参考文献 372
· · · · · · (收起)

读后感

评分

向想了解或者从事有关游戏图形方面开发的朋友推荐这本书。建议多看两遍,会有不同的收获。翻译的不错,讲解得也有条理,质量非常高  

评分

这本书很有意思的一个地方就是分部分来讲,不是“开发一个游戏要怎么怎么样”,而是“实现这个技术怎么怎么样” 讲的东西也不少,游戏开发编程基础的确名副其实。全面的介绍了关于DX9的基础,基本知识。但是分部分的说法,自己的确是会一个技术了,但是怎么整合是个问题。读会...  

评分

D3D编程, 想明白数学原理,读Andrew Lamothe的书; 想明白D3D的API与实现方式,读这本书。  

评分

大概4,5年前,我对3D一无所知的时候就在看这本书,不幸的是没有看完也没有看懂。。然后继续做我的2d游戏,几年后开始iOS 3D游戏开发,学了OpenGLES,1.1,2.0,去年因为京东大降价,凑单买了这本,最近拿出来在地铁里读,每天40分钟,一天读1~2章,很快就读完了,没有任何障碍,...  

评分

很基础的一本书,但在某些地方都是点到即止,像是浅谈。 入门学习的,最好有一位高手带着学习这本书! 相对其它书而言,真的找不到比这本好的入门书了。

用户评价

评分

这本书在介绍各种渲染状态(Render States)和混合模式(Blending Modes)的部分,表现出了极大的耐心和广度。它几乎罗列了D3D9支持的所有固定管线特性,并且详细解释了每一种状态对最终输出图像产生的影响,配图大多是简单的流程图或概念图,这些图示清晰地标明了数据流向。特别是关于深度测试(Depth Testing)和模板测试(Stencil Testing)的章节,作者用一种近乎学术论文的精确性,阐述了Z缓冲区的更新机制以及如何利用模板缓冲区来实现复杂效果,比如屏幕外框或者分层渲染。然而,这种详尽的描述似乎也成了双刃剑。在讲解如何实现一个基础的纹理贴图时,我发现书中花费了大量篇幅来定义和初始化各种结构体(如`D3DPRESENT_PARAMETERS`),但对于如何高效地加载和管理纹理资源本身,比如使用D3DX库的便捷函数后,如何手动释放内存以避免泄露,却一带而过,处理得相对草率。整体感觉像是对“如何设置”的讲解非常到位,但对“如何运行和维护”的实战经验分享不足。

评分

我花了几天时间仔细阅读了前几章关于DirectX 9.0核心概念介绍的部分,这本书的叙述风格非常偏向于教科书式的严谨,那种一丝不苟、力求面面俱到的讲解模式,对于初学者来说或许是优点,但对于已经掌握了线性代数基础和C++面向对象范式,只想快速掌握D3D API调用的进阶学习者来说,节奏明显偏慢。作者在解释诸如“顶点缓冲区”和“索引缓冲区”的作用时,用了大量的篇幅去描绘CPU与GPU之间数据传输的底层逻辑,这部分内容的深度无疑是足够的,甚至深入到了内存对齐和缓存一致性的层面,这体现了作者深厚的功底。然而,书中对于更现代的编程范式,例如如何利用现代C++特性来优化资源管理,或者如何更优雅地封装底层COM接口调用,几乎没有提及。所有的代码示例都严格遵循着Win32/D3DX库的原始调用流程,缺乏一种将这些底层原语提升为可复用、高内聚模块的指导思想。这使得阅读体验更像是在研读一份微软官方的SDK文档的“散文版”,而不是一本侧重于“如何高效开发”的实战指南。

评分

深入到后期关于光照模型的讨论时,我开始注意到这本书在处理实时动态效果方面的局限性,这无疑是DirectX 9.0时代的一个时代烙印。书中对高朗氏光照模型(Blinn-Phong)的数学推导非常到位,向量的点积、叉积在光照计算中的应用被解释得非常清晰。但是,当涉及到更复杂的、需要像素级精度的效果时,比如环境光遮蔽(AO)或屏幕空间反射(SSR)这类在现代引擎中至关重要的技术,书中基本没有涉及。即便是对于Shader编程的介绍,也仅仅停留在对固定功能管线编程模型(Fixed-Function Pipeline)的替代上,重点是如何将CPU中的状态转移到寄存器中。Vertex Shader和Pixel Shader的例子都非常基础,多是颜色插值和简单的纹理采样,缺少对HLSL语言特性的深入挖掘,比如循环结构、函数重载或更高效的数学函数调用。因此,对于希望利用D3D9的Shader能力去尝试前沿视觉效果的读者来说,这本书提供的工具箱可能显得过于基础和陈旧,更像是一本“D3D9的入门级参考手册”,而非“D3D9高级效果实现”的指导。

评分

最后谈谈这本书的实用性与配套资源的缺失。虽然这是一本厚重的纸质书,理论上应当是自给自足的,但在学习过程中,我发现代码示例的组织方式非常零散。每一个小功能点——比如设置世界矩阵、改变材质颜色——都被拆分成了独立的、无法直接运行的小片段,没有一个贯穿始终、可以编译和运行的“主工程”框架供读者参考和对照。这使得学习者必须在脑海中手动将这些碎片化的代码片段缝合起来,才能看到最终的渲染效果,极大地增加了调试和理解的难度。此外,由于这本书出版的时间背景,书中提及的很多辅助库(如D3DX库中的某些模块)可能在后续的微软开发工具链更新中已被标记为废弃或被更高效的替代方案取代。如果书中能提供一个清晰的章节,专门指导如何在新版本的Visual Studio环境中配置和编译这些遗留代码,或者提供一个配套的下载链接,哪怕仅仅是一个包含所有源码的压缩包,这本书的实用价值都会大幅提升。目前的状态是,它像是一份详尽但缺乏“活水”的理论教材,需要读者投入大量额外精力去“考古”和整合才能真正投入使用。

评分

这本书的装帧设计,坦率地说,初见之下并没有给我留下太深的印象。封面那种略显过时的深蓝色调,配上那种略带棱角的字体,很容易让人联想到十多年前的那些技术书籍。我拿到书的时候,首先关注的是它的厚度,它确实分量十足,这至少说明内容是详实的,不过也隐隐让我有些担心——如此厚重的篇幅,是充实的技术讲解,还是大量的篇幅被冗余的背景介绍和并不那么核心的API细节所占据?内页的纸张质量尚可,但印刷的精细度,尤其是在一些图示的渲染上,感觉略显粗糙,这在讨论3D图形编程这样高度依赖视觉效果的领域,是一个小小的减分项。书脊的胶水似乎有点硬,刚开始翻阅时,书页有些不容易完全摊平,这在需要对照代码和文字进行学习时,多少会造成一些不便。而且,从目录的结构来看,它似乎采用了非常传统的“自底向上”的教学路径,先从最基础的硬件架构讲起,这对于有着一定编程经验,更迫切想看到实际渲染管线是如何搭建起来的读者来说,开篇的铺垫可能显得有些冗长。总的来说,外观和排版给人一种扎实、老派但略显沉闷的工业感,期待内容能弥补这表面的不足。

评分

书很不错,我是看这本入门的。作者的代码写得很棒。还有个shader版本,更深入点。

评分

DirectX 的引路人,以后积累更多了写个详细评价吧。

评分

看了一点而已。。。

评分

DirectX基础书籍。

评分

清晰易懂,言简意赅。 对D3D的API有一个粗略的系统认知,后续还在反复翻看

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 book.wenda123.org All Rights Reserved. 图书目录大全 版权所有