DirectX游戏编程
¥
12.24
2.7折
¥
45
九品
仅1件
作者周国庆 著
出版社清华大学出版社
出版时间2010-01
版次1
装帧平装
货号A10
上书时间2024-12-06
商品详情
- 品相描述:九品
图书标准信息
-
作者
周国庆 著
-
出版社
清华大学出版社
-
出版时间
2010-01
-
版次
1
-
ISBN
9787302215936
-
定价
45.00元
-
装帧
平装
-
开本
16开
-
纸张
胶版纸
-
页数
365页
-
字数
524千字
-
正文语种
简体中文
- 【内容简介】
-
利用Direct3D进行图形程序开发的核心技术,从三维向量开始,由浅入深,逐步讲解3D图形编程中的矩阵变换相关知识、投影知识,及视口处理、裁剪处理、深度缓存的应用技术。在高级绘图技术中进一步讲解纹理处理、透明及混合技术的应用、模板的应用、光照及阴影技术、网格的应用、利用网格技术处理模型显示、在Direct3D程序中显示文字、粒子系统的创建及应用。书的后半部分讲解游戏设计的高级特性,如摄像机封装技术、地形显示技术、场景中的模型捡取。最后讲解GPU编程相关的知识,让用户了解高级着色的相关内容。
《DirectX游戏编程》每章都以简单的实例来辅助对知识点的讲解,力求深入浅出,知识由浅入深,难度是逐渐递增的,另外《DirectX游戏编程》的章节之间没有过分紧密的程序连接,所以有—定基础的人员,可以选择需要的章节单独阅读。
《DirectX游戏编程》面向的群体为高校数字媒体艺术程序设计专业的学生,及自考学生,或有一定编程基础的专业图形编程人员。
- 【目录】
-
第1部分必备的数学知识
第1章基本的数学概念3
1.1三维空间中的向量3
1.1.1向量的相等6
1.1.2向量模的计算7
1.1.3向量归一化8
1.1.4向量加法8
1.1.5向量减法9
1.1.6数乘10
1.1.7点乘10
1.1.8叉乘11
1.2矩阵12
1.2.1矩阵的相等、矩阵数乘和矩阵加法13
1.2.2矩阵乘法13
1.2.3单位矩阵15
1.2.4逆矩阵15
1.2.5矩阵的转置16
1.2.6D3DX中的矩阵16
1.2.7基本变换19
1.2.8平移变换20
1.2.9旋转矩阵21
1.2.10缩放矩阵23
1.2.11组合变换23
1.2.12一些用于向量变换的函数25
1.3平面25
1.3.1D3DX中的平面26
1.3.2点和平面之间的关系27
1.3.3构建平面27
1.3.4标准化一个平面28
1.3.5对平面进行变换操作29
1.3.6求到一个指定点距离最短的平面上的点29
1.4射线30
1.4.1射线的表达式30
1.4.2射线与平面的相交31
1.5小结31
第2部分Direct3D基础知识
第2章Direct3D初始化35
2.1Direct3D体系结构35
2.1.1REF设备36
2.1.2D3D设备类型36
2.2组件对象模型37
2.3预备知识37
2.3.1表面缓冲区(Surface)37
2.3.2重采样39
2.3.3像素格式40
2.3.4存储池40
2.3.5交换链和页面翻转41
2.3.6深度缓冲区42
2.3.7顶点处理43
2.3.8设备性能43
2.4初始化Direct3D44
2.4.1获得IDirect3D9接口45
2.4.2确认硬件顶点处理能力45
2.4.3填充D3DPRESENT_PARAMETERS结构46
2.4.4创建一个IDirect3DDevice9接口48
2.5示例:初始化Direct3D49
2.5.1d3dUtility.h/cpp文件50
2.5.2程序框架52
2.5.3D3D初始化示例52
2.6小结55
第3章渲染管道57
3.1描述的模型57
3.1.1顶点格式58
3.1.2三角形59
3.1.3索引60
3.2虚拟摄像机60
3.3渲染管道61
3.3.1本地空间62
3.3.2世界空间62
3.3.3视图空间63
3.3.4背面裁剪65
3.3.5光照66
3.3.6裁剪66
3.3.7投影67
3.3.8视口变换69
3.3.9光栅化70
3.4小结70
第4章在Direct3D中绘制图形71
4.1顶点/索引缓冲区71
4.1.1创建顶点缓冲区和索引缓冲区71
4.1.2访问缓冲区内存74
4.1.3获得顶点缓冲区以及索引缓冲区的相关信息75
4.2渲染状态76
4.3渲染前的准备工作77
4.4使用顶点/索引缓冲区进行渲染78
4.4.1IDirect3DDevice9::DrawPrimitive78
4.4.2IDirect3DDevice9::DrawIndexedPrimitive78
4.4.3Begin/EndScene80
4.5D3DX自带的几何物体80
4.6示例:三角形、立方体、茶壶、D3DXCreate*81
4.7小结85
第5章颜色87
5.1颜色的描述方法87
5.2顶点颜色90
5.3着色处理90
5.4示例:带颜色的三角形91
5.5小结93
第6章光照95
6.1光的组成95
6.2材质96
6.3顶点法线98
6.4光源100
6.5示例:光照104
6.6其他例子106
6.7小结107
第7章纹理109
7.1纹理坐标109
7.2创建并应用纹理111
7.3纹理过滤112
7.4多纹理映射113
7.4.1多纹理映射过滤113
7.4.2在Direct3D中使用多纹理映射114
7.5纹理坐标寻址模式114
7.6程序示例:带纹理的四边形116
7.7小结118
第8章混合技术119
8.1混合方程119
8.2混合因子121
8.3透明121
8.3.1Alpha通道122
8.3.2指定源像素的Alpha值122
8.4用DirectX的纹理工具创建Alpha通道123
8.5示例:透明效果124
8.6小结127
第9章模板缓冲区129
9.1使用模板缓冲区130
9.1.1获取模板缓冲区131
8.1.2模板测试131
9.1.3模板测试的控制131
9.1.4更新模板缓冲区133
9.1.5模板写入掩码134
9.2示例:镜子134
9.2.1镜面反射的相关数学知识134
9.2.2镜面效果的实现概述136
9.2.3代码和解释137
9.3示例:平面阴影140
9.3.1平行光阴影141
9.3.2点光源阴影142
9.3.3阴影矩阵142
9.3.4用模板缓冲区来防止二次混合143
9.3.5代码和解释144
9.4小结146
第3部分Direct3D的应用
第10章文字处理149
10.1ID3DXFont、ID3DXFont接口149
10.1.1创建一个ID3DXFont接口149
10.1.2文字输出150
10.1.3计算帧速(FPS)151
10.2CD3DFont、CD3DFont类152
10.2.1构造CD3DFont对象152
10.2.2DrawText输出文字153
10.2.3销毁CD3DFont对象153
10.3三维网格(3DMesh)在文字显示中的应用154
10.3.1D3DXCreateText方法154
10.4小结155
第11章网格(1)157
11.1几何信息157
11.2网格子集(Subset)和属性缓冲区158
11.3网格的渲染160
11.4网格优化160
11.5网格属性表162
11.6邻接信息164
11.7网格的克隆(Cloning)165
11.8网格的创建(D3DXCreateMeshFVF)166
11.9示例:创建并渲染一个网格168
11.10小结173
第12章网格(2)175
12.1ID3DXBuffer接口175
12.2.X文件176
12.2.1读取.X文件177
12.2.2X文件中的材质178
12.2.3X文件实例178
12.2.4生成顶点法线181
12.3渐进式网格182
12.3.1生成渐进式网格183
12.3.2顶点属性权重184
12.3.3ID3DXPMesh接口的相关方法185
12.3.4示例:渐进式网格186
12.4包围体189
12.4.1新的常量191
12.4.2各种不同的包围体191
12.4.3包围体示例192
12.5小结194
第13章构建一个灵活的摄像机类195
13.1设计摄像机195
13.2摄像机类的实现细节197
13.2.1计算视图矩阵197
13.2.2绕任意轴的旋转200
13.2.3俯仰、偏转和翻滚200
13.2.4行走、平移和飞行203
13.3示例:摄像机204
13.4小结206
第14章基本地形渲染207
14.1高度图208
14.1.1高度图的创建208
14.1.2读取RAW文件209
14.1.3高度图的访问和修改210
14.2生成地形几何数据210
14.2.1计算顶点212
14.2.2计算索引——定义三角形214
14.3纹理216
14.3.1用程序生成纹理数据216
14.4光照218
14.4.1概述219
14.4.2计算方格的阴影219
14.4.3计算地形阴影221
14.5在地形上“行走”221
14.6Terrain示例程序225
14.7一些改进措施226
14.8小结227
第15章粒子系统229
15.1粒子和点精灵229
15.1.1结构格式230
15.1.2PointSprite渲染状态230
15.1.3粒子及其属性232
15.2粒子系统组件233
15.2.1粒子系统的渲染238
15.2.2粒子的随机性241
15.3实现三个具体的粒子系统:雪景、焰火和粒子枪242
15.3.1示例:雪景242
15.3.2示例:焰火244
15.3.3示例:粒子枪246
15.4小结248
第16章捡取249
16.1屏幕到投影窗口的变换251
16.2计算Picking射线252
16.3变换射线253
16.4射线与物体的相交检测254
16.5示例:Picking256
16.6小结257
第4部分Shader和特效
第17章高级Shader语言的介绍261
17.1使用HLSL编写Shader程序262
17.1.1全局变量263
17.1.2输入输出结构264
17.1.3入口点函数265
17.2编译一个HLSLShader程序266
17.2.1常量表266
17.2.2编译HLSLShader程序270
17.3变量类型272
17.3.1标量类型272
17.3.2向量类型272
17.3.3矩阵类型273
17.3.4数组275
17.3.5结构275
17.3.6typedef关键字276
17.3.7变量前缀276
17.4关键字、语句和类型转换277
17.4.1关键字277
17.4.2基本的程序流程277
17.4.3类型转换278
17.5运算符279
17.6用户自定义函数280
17.7内建函数282
17.8小结284
第18章VertexShader的介绍285
18.1顶点声明(VertexDeclaration)286
18.1.1顶点声明的描述286
18.1.2创建顶点声明289
18.1.3启用一个顶点声明289
18.2顶点数据的用途290
18.3使用VertexShader的步骤292
18.3.1编写与编译VertexShader292
18.3.2创建VertexShader292
18.3.3设置VertexShader293
18.3.4销毁VertexShader293
18.4示例:散射光293
18.5示例:卡通渲染(CartoonRendering)299
18.5.1卡通着色(CartoonShading)300
18.5.2卡通着色的VertexShader代码301
18.5.3勾画出物体的轮廓303
18.6小结308
第19章PixelShader入门309
19.1多重纹理概述309
19.1.1启用多重纹理311
19.1.2多重纹理坐标312
19.2PixelShader的输入和输出313
19.3使用PixelShader的步骤314
19.3.1编写并编译PixelShader程序314
19.3.2创建一个PixelShader314
19.3.3设置一个PixelShader315
19.3.4销毁一个PixelShader315
19.4HLSL取样对象315
19.5示例:通过PixelShader实现多重纹理317
19.6小结324
第20章特效框架(EffectsFramework)325
20.1Technique与Pass326
20.2更多的HLSL内建对象327
20.2.1texture对象327
20.2.2取样器(sampler)对象和取样器状态328
20.2.3VertexShader对象和PixelShader对象328
20.2.4字符串(string)329
20.2.5注解(Annotations)330
20.3特效文件中的设备状态330
20.4创建一个特效331
20.5设置常量333
20.6使用特效335
20.6.1获得特效句柄335
20.6.2激活特效336
20.6.3启用特效336
20.6.4设置当前的渲染Pass337
20.6.5关闭特效337
20.6.6示例337
20.7示例:通过特效文件实现光照效果和纹理贴图338
20.8示例:雾化效果343
20.9示例:卡通效果345
20.10特效编辑器(EffectEdit)347
20.11小结347
附录AWindows程序设计简介349
A.1概述349
A.1.1资源350
A.1.2事件、消息队列、消息和
消息循环350
A.1.3图形用户接口(GUI)351
A.2简单的Windows应用程序352
A.3一个更好的消息循环364
A.4小结365
参考文献366
点击展开
点击收起
— 没有更多了 —
以下为对购买帮助不大的评价