Managed DirectX 9.0 SDK 
Summer 2004 中文文档 
译者:Wu Jie & Liu Kang 
创建时间:2006-10-23 
译者序 
本中文文档根据Microsoft公开发布的DirectX SDK Summer 2004 帮助文档英文版翻译,不得用于
商业用途,仅供学习交流参考。翻译内容选自官方帮助文档中关于Managed  DirectX的章节,略去API 
Library规范参考。限于译者水平,文档中可能存在错误,欢迎指正,译者将不定期对此进行修正。目前
DirectX SDK版本最新版本为October 2006,但文档内容变化不大,如该文档有重大更新,译者将适时
发布新版中文文档。由于翻译工作利用业余时间进行,如不能及时更新文档请见谅。Managed 
DirectX 9.0 SDK帮助文档英文版所有权归Microsoft Corp所有,中文文档所有权归译者(排名
不分先后)拥有,特此声明。译者联系方式:gmmywin@gmail.com(Wu  Jie)、luck@nj13z.cn
(Liu Kang)。 
目录 
第 1 章 
目录................................................................................................................. - 1 - 
前言................................................................................................................- 10 - 
托管代码版DirectX 9.0 ..................................................................- 10 - 
第 1 节  目的 ......................................................................................- 10 - 
第 2 节  可用于何处 ..............................................................................- 10 - 
第 3 节  开发者对象 ..............................................................................- 11 - 
第 4 节  运行时需求 ..............................................................................- 11 - 
托管代码版DirectX 9.0 介绍............................................................- 11 - 
第 1 节  托管代码版DirectX 9.0...............................................................- 11 - 
第 2 节  组件 ......................................................................................- 11 - 
第 3 节  托管代码版DirectX 9.0 的优点 ......................................................- 12 - 
第 4 节  需求 ......................................................................................- 12 - 
第 2 章 
 
- 1 - 
第 3 章 
第 4 章 
第 2 章 
什么是托管代码? .........................................................................- 12 - 
使用托管代码的提示和技巧 ..............................................................- 12 - 
第 1 节  托管代码版DirectX 9.0 起步.........................................................- 12 - 
第 2 节  使用简单的应用程序 ...................................................................- 13 - 
第 3 节  类的继承 .................................................................................- 13 - 
第 4 节  调试DirectX应用程序 .................................................................- 13 - 
第 5 节  使用Visual Studio .NET 2003 里的DirectX托管版文档 .......................- 13 - 
第 6 节  使用DirectX Help文件................................................................- 14 - 
第 7 节  重新发布DX .............................................................................- 14 - 
Direct3D起步 ....................................................................................- 15 - 
3-D坐标系和几何学.......................................................................- 15 - 
第 1 节 
3-D坐标系..............................................................................- 15 - 
第 2 节  面和顶点法向量.........................................................................- 16 - 
第 3 节 
3-D造型 ................................................................................- 19 - 
第 4 节  光栅化规则 ..............................................................................- 20 - 
4.1  三角形光栅化规则 .........................................................................- 20 - 
4.2  点和线规则 .................................................................................- 23 - 
4.3  点精灵规则 .................................................................................- 23 - 
第 5 节  矩形 ......................................................................................- 23 - 
第 6 节  三角形内插值 ...........................................................................- 24 - 
第 7 节  向量、顶点和四元数 ...................................................................- 24 - 
设备..........................................................................................- 25 - 
第 1 节  设备类型 .................................................................................- 26 - 
1.1  硬件设备 ...............................................................................- 26 - 
1.2  引用设备 ....................................................................................- 26 - 
第 2 节  建立 1 个设备 ...........................................................................- 27 - 
第 3 节  选择 1 个设备 ...........................................................................- 27 - 
第 4 节  丢失设备 .................................................................................- 28 - 
4.1  响应丢失设备...............................................................................- 29 - 
4.2  锁定操作 ....................................................................................- 29 - 
4.3  资源..........................................................................................- 29 - 
4.4  获得返回数据...............................................................................- 29 - 
4.5  可编程着色器...............................................................................- 30 - 
第 5 节  检测硬件支持 ...........................................................................- 30 - 
第 6 节  处理顶点数据 ...........................................................................- 30 - 
第 7 节  设备支持的造型类型 ...................................................................- 31 - 
7.1  点列表 .......................................................................................- 31 - 
7.2  线列表 .......................................................................................- 32 - 
7.3  线条带 .......................................................................................- 32 - 
7.4  三角形列表 .................................................................................- 32 - 
7.5  三角形条带 .................................................................................- 33 - 
7.6  三角形扇 ....................................................................................- 33 - 
资源..........................................................................................- 34 - 
第 1 节  资源属性 .................................................................................- 34 - 
第 1 篇 
第 1 章 
第 3 章 
 
- 2 - 
第 4 章 
第 5 章 
第 2 节  操纵资源 .................................................................................- 35 - 
第 3 节  锁定资源 .................................................................................- 35 - 
第 4 节  管理资源 .................................................................................- 36 - 
第 5 节  应用程序托管资源和分配策略 ........................................................- 36 - 
变换..........................................................................................- 36 - 
第 1 节  视点变换 .................................................................................- 37 - 
1.1  什么是视点变换? .........................................................................- 37 - 
1.2  建立 1 个视点矩阵 .........................................................................- 38 - 
第 2 节  世界变换 .................................................................................- 38 - 
2.1  什么是世界变换? .........................................................................- 38 - 
2.2  建立 1 个世界矩阵 .........................................................................- 39 - 
第 3 节  矩阵 ......................................................................................- 40 - 
3.1 3-D变换 .....................................................................................- 40 - 
3.2  平移和缩放 .................................................................................- 42 - 
3.2.1  平移 .................................................................................- 42 - 
3.2.2  缩放 .................................................................................- 42 - 
3.3  旋转..........................................................................................- 43 - 
3.4  矩阵串联 ....................................................................................- 44 - 
第 4 节  投影变换 .................................................................................- 44 - 
4.1  什么是投影变换? .........................................................................- 45 - 
4.2  建立 1 个投影矩阵 .........................................................................- 46 - 
4.3 1 个W-友好的投影矩阵 ...................................................................- 47 - 
Direct3D渲染 ..........................................................................- 48 - 
第 1 节  着色 ......................................................................................- 48 - 
1.1  着色模式 ....................................................................................- 48 - 
1.1.1  平面着色 ............................................................................- 48 - 
1.1.2  高洛德着色 .........................................................................- 48 - 
1.2  比较着色模式...............................................................................- 49 - 
1.3  设置着色模式...............................................................................- 50 - 
第 2 节  显示场景 .................................................................................- 50 - 
2.1  显示 1 个场景的简介 ......................................................................- 50 - 
2.2  窗口模式下的多视角.......................................................................- 51 - 
2.3  多显示器操作...............................................................................- 51 - 
2.4  操纵深度缓存...............................................................................- 52 - 
2.5  访问前台缓存色彩 .........................................................................- 52 - 
第 3 节  渲染造型 .................................................................................- 52 - 
3.1  顶点数据流 .................................................................................- 52 - 
3.2  设置流源 ....................................................................................- 53 - 
3.3  从顶点和索引缓存渲染....................................................................- 53 - 
3.3.1  无索引绘制 2 个三角形 ...........................................................- 53 - 
3.3.2  索引绘制 2 个三角形 ..............................................................- 54 - 
3.3.3  索引绘制 1 个三角形 ..............................................................- 55 - 
3.3.4  偏移量索引绘制 1 个三角形......................................................- 56 - 
3.4  从用户内存指针渲染.......................................................................- 57 - 
 
- 3 - 
第 4 节  深度缓存 .................................................................................- 57 - 
4.1  查询深度缓存支持 .........................................................................- 59 - 
4.2  建立 1 个深度缓存 .........................................................................- 61 - 
4.3  启用深度缓存...............................................................................- 62 - 
4.4  获取深度缓存的返回值....................................................................- 63 - 
4.5  清除深度缓存...............................................................................- 64 - 
4.6  改变深度缓存的写入访问 .................................................................- 64 - 
4.7  改变深度缓存的比较函数 .................................................................- 65 - 
4.8  使用Z-斜线 .................................................................................- 67 - 
第 5 节  雾化 ......................................................................................- 68 - 
5.1  雾化公式 ....................................................................................- 69 - 
5.1.1  线性雾化 ............................................................................- 69 - 
5.1.2  指数雾化 ............................................................................- 69 - 
5.2  雾化参数 ....................................................................................- 70 - 
5.3  雾化混合 ....................................................................................- 71 - 
5.4  雾化色彩 ....................................................................................- 71 - 
5.5  顶点雾化 ....................................................................................- 72 - 
5.5.1  基于范围的雾化....................................................................- 72 - 
5.5.2  使用顶点雾化.......................................................................- 73 - 
5.6  像素雾化 ....................................................................................- 74 - 
5.6.1 眼睛相关的VS基于Z轴的缓存 ....................................................- 74 - 
5.6.2  使用像素雾化.......................................................................- 75 - 
Alpha混合..............................................................................- 76 - 
6.1  顶点Alpha ..................................................................................- 77 - 
6.2  材质Alpha ..................................................................................- 80 - 
6.3  纹理Alpha ..................................................................................- 80 - 
6.4  帧缓存Alpha ...............................................................................- 83 - 
6.5  渲染目标Alpha ............................................................................- 85 - 
6.6  公告板 .......................................................................................- 86 - 
6.7  云、烟和水汽...............................................................................- 86 - 
6.8  火焰、闪光和爆炸 .........................................................................- 87 - 
Direct3D表面 ..........................................................................- 87 - 
第 1 节  表面格式 .................................................................................- 88 - 
1.1  无符号格式 .................................................................................- 89 - 
1.2  有符号格式 .................................................................................- 90 - 
1.3  混合格式 ....................................................................................- 90 - 
1.4  四字符编码格式 ............................................................................- 90 - 
1.5 MAKEFOURCC ............................................................................- 90 - 
1.6 Buffer  缓冲器格式 ........................................................................- 92 - 
1.7  浮点格式 ....................................................................................- 93 - 
1.8 IEEE  格式 ..................................................................................- 93 - 
1.9  其他..........................................................................................- 93 - 
1.10  后台缓存或显示格式.....................................................................- 93 - 
1.11  备注 ........................................................................................- 94 - 
第 6 节 
第 6 章 
 
- 4 - 
第 7 章 
第 8 章 
1.12  相关主题 ..................................................................................- 94 - 
第 2 节  什么是 1 个交换链表? ................................................................- 94 - 
第 3 节  宽度VS间距 .............................................................................- 95 - 
第 4 节  翻转表面 .................................................................................- 95 - 
第 5 节  页面翻转和后台缓冲 ...................................................................- 96 - 
第 6 节  复制到表面 ..............................................................................- 97 - 
第 7 节  复制表面 .................................................................................- 97 - 
第 8 节  直接访问表面内存 ......................................................................- 97 - 
第 9 节  私有表面数据 ...........................................................................- 98 - 
第 10 节  伽玛控制 ...............................................................................- 98 - 
10.1  伽玛控制级别 .............................................................................- 99 - 
10.2  设置并获取Gamma Ramp级别的返回值............................................- 99 - 
Direct3D纹理 ........................................................................ - 100 - 
第 1 节  基本纹理概念 ......................................................................... - 100 - 
第 2 节  纹理寻址模式 ......................................................................... - 100 - 
2.1  设置寻址模式............................................................................. - 101 - 
2.2  设备限制 .................................................................................. - 102 - 
2.3  外包纹理寻址模式 ....................................................................... - 102 - 
2.4  镜像纹理寻址模式 ....................................................................... - 103 - 
2.5  夹钳纹理寻址模式 ....................................................................... - 103 - 
2.6  边框色彩纹理寻址模式.................................................................. - 104 - 
第 3 节  纹理噪点区域 ......................................................................... - 105 - 
第 4 节  纹理调色板 ............................................................................ - 106 - 
第 5 节  加载 1 个纹理 ......................................................................... - 106 - 
Direct3D指南 ........................................................................ - 107 - 
第 1 节  建立 1 个设备 ......................................................................... - 108 - 
1.1  路径........................................................................................ - 108 - 
1.2  过程........................................................................................ - 108 - 
1.2.1  建立 1 个程序窗体............................................................... - 108 - 
1.2.2  初始化Direct3D对象 ........................................................... - 109 - 
1.2.3  渲染Direct3D对象 .............................................................. - 110 - 
第 2 节  渲染顶点 ............................................................................... - 112 - 
2.1  路径........................................................................................ - 112 - 
2.2  过程........................................................................................ - 112 - 
第 3 节  使用矩阵 ............................................................................... - 115 - 
3.1  路径........................................................................................ - 115 - 
3.2  过程........................................................................................ - 115 - 
第 4 节  使用材质和光照....................................................................... - 119 - 
4.1  路径........................................................................................ - 119 - 
4.2  过程........................................................................................ - 119 - 
4.2.1  初始化 1 个深度模版 ............................................................ - 119 - 
4.2.2  初始化顶点缓存和渲染状态 .................................................... - 120 - 
4.2.3  建立圆柱体对象.................................................................. - 121 - 
4.2.4  建立 1 个材质 .................................................................... - 122 - 
 
- 5 - 
第 9 章 
第 1 节 
第 2 节 
4.2.5  建立 1 个光源 .................................................................... - 123 - 
第 5 节  使用纹理映射 ......................................................................... - 124 - 
5.1  路径........................................................................................ - 124 - 
5.2  过程........................................................................................ - 124 - 
5.2.1  建立纹理 .......................................................................... - 124 - 
5.2.2  载入纹理数据..................................................................... - 125 - 
5.2.3  渲染场景 .......................................................................... - 127 - 
第 6 节  使用网格 ............................................................................... - 128 - 
6.1  路径........................................................................................ - 128 - 
6.2  过程........................................................................................ - 128 - 
6.2.1  初始化 1 个网格对象 ............................................................ - 129 - 
6.2.2  载入 1 个网格对象............................................................... - 130 - 
6.2.3  渲染 1 个网格对象............................................................... - 132 - 
Direct3D托管代码范例 ............................................................. - 133 - 
BasicHLSL范例 ..................................................................... - 133 - 
1.1  路径........................................................................................ - 134 - 
1.2  范例概览 .................................................................................. - 134 - 
1.3  范例是如何工作的 ....................................................................... - 134 - 
CustomUI范例 ...................................................................... - 135 - 
2.1  路径........................................................................................ - 135 - 
2.2  范例是如何工作的 ....................................................................... - 135 - 
2.3  事件........................................................................................ - 136 - 
EmptyProject范例 ................................................................. - 136 - 
3.1  路径........................................................................................ - 136 - 
3.2  范例概览 .................................................................................. - 137 - 
3.3  范例是如何工作的 ....................................................................... - 137 - 
EnhancedMesh范例 ............................................................... - 137 - 
4.1  路径........................................................................................ - 137 - 
4.2  范例是如何工作的 ....................................................................... - 137 - 
FragmentLinker范例 .............................................................. - 137 - 
5.1  路径........................................................................................ - 138 - 
5.2  范例概览 .................................................................................. - 138 - 
5.3  范例是如何工作的 ....................................................................... - 138 - 
HDRCubeMap范例 ................................................................. - 141 - 
6.1  路径........................................................................................ - 141 - 
6.2  使用手册 .................................................................................. - 141 - 
6.3  范例概览 .................................................................................. - 142 - 
6.4  执行........................................................................................ - 142 - 
6.5  渲染代码 .................................................................................. - 142 - 
6.6  着色器 ..................................................................................... - 143 - 
6.7  高动态范围真实感 ....................................................................... - 143 - 
6.8  折中选择 .................................................................................. - 145 - 
HLSLwithoutEffects范例 ......................................................... - 145 - 
7.1  路径........................................................................................ - 146 - 
第 3 节 
第 6 节 
第 4 节 
第 5 节 
第 7 节 
 
- 6 - 
第 8 节 
第 9 节 
第 2 篇 
第 1 章 
第 10 节 
第 11 节 
7.2  范例概览 .................................................................................. - 146 - 
7.3  范例是如何工作的 ....................................................................... - 146 - 
ProgressiveMesh范例............................................................. - 147 - 
8.1  路径........................................................................................ - 147 - 
8.2  范例是如何工作的 ....................................................................... - 147 - 
PrtPerVertex范例 .................................................................. - 148 - 
9.1  路径........................................................................................ - 148 - 
9.2  为什么这个例子很有趣? ............................................................... - 148 - 
9.3  范例概览 .................................................................................. - 148 - 
9.4  这个例子是如何工作的.................................................................. - 148 - 
9.4.1  步骤 1:脱机处理 ............................................................... - 148 - 
9.4.2  步骤 2:实时渲染 ............................................................... - 149 - 
9.5  限制条件 .................................................................................. - 151 - 
9.6  图像资源 .................................................................................. - 152 - 
C# Scripting范例................................................................. - 152 - 
10.1  路径 ...................................................................................... - 152 - 
10.2  范例概览 ................................................................................ - 152 - 
10.3  范例是如何工作的 ..................................................................... - 152 - 
10.4  安全考虑 ................................................................................ - 153 - 
10.5  性能考虑 ................................................................................ - 154 - 
10.6  执行考虑 ................................................................................ - 154 - 
SimpleAnimation范例 ........................................................... - 155 - 
11.1  路径 ...................................................................................... - 155 - 
11.2  范例概览 ................................................................................ - 155 - 
11.3  范例是如何工作的 ..................................................................... - 155 - 
Text3D范例 ........................................................................ - 155 - 
12.1  路径 ...................................................................................... - 155 - 
12.2  编程须知 ................................................................................ - 155 - 
DirectSound ............................................................................... - 156 - 
声音播放 ............................................................................... - 156 - 
第 1 节  回放概览 ............................................................................... - 156 - 
第 2 节  设备 .................................................................................... - 157 - 
2.1  枚举声音设备............................................................................. - 157 - 
2.2  建立设备对象............................................................................. - 159 - 
2.3  合作级别 .................................................................................. - 159 - 
2.3.1  标准合作级别..................................................................... - 159 - 
2.3.2  优先合作级别..................................................................... - 160 - 
2.3.3  写优先合作级别.................................................................. - 160 - 
2.4  设备功能 .................................................................................. - 160 - 
2.5  扬声器配置 ............................................................................... - 160 - 
2.6  压缩硬件内存............................................................................. - 161 - 
第 3 节  缓存 .................................................................................... - 161 - 
3.1  缓冲器初步 ............................................................................... - 161 - 
3.2  建立次要缓冲器 .......................................................................... - 161 - 
第 12 节 
 
- 7 - 
第 2 章 
第 4 节 
3.3  缓冲器描绘选项 .......................................................................... - 162 - 
3.4  缓冲器控制选项 .......................................................................... - 162 - 
3.5  缓冲器的 3D运算法则................................................................... - 163 - 
3.6  填充和播放静态缓冲器.................................................................. - 163 - 
3.7  使用流缓冲器............................................................................. - 164 - 
3.8  回放控制 .................................................................................. - 165 - 
3.9  播放游标和写入游标..................................................................... - 165 - 
3.10  播放缓冲器公告 ........................................................................ - 166 - 
3.11  混频音响 ................................................................................ - 166 - 
3.12  丢弃和恢复缓冲器 ..................................................................... - 166 - 
第 4 节  使用WAV数据......................................................................... - 167 - 
3-D声音 ............................................................................... - 167 - 
第 1 节 
3-D空间坐标系 ...................................................................... - 167 - 
第 2 节  声音位置的感知....................................................................... - 168 - 
3-D缓存 .............................................................................. - 168 - 
第 3 节 
3.1  获取Buffer3D对象 ...................................................................... - 169 - 
3.2 3-D缓存的批量参数 ..................................................................... - 169 - 
3.3  最小和最大距离 .......................................................................... - 169 - 
3.4  处理模式 .................................................................................. - 170 - 
3.5  缓存位置和速度 .......................................................................... - 170 - 
3.6  声音锥体 .................................................................................. - 171 - 
3-D收听者............................................................................ - 172 - 
4.1  获取 3-D收听者.......................................................................... - 172 - 
4.2 3-D收听者的批量参数................................................................... - 172 - 
4.3  延缓设置 .................................................................................. - 173 - 
4.4  距离因子 .................................................................................. - 173 - 
4.5  收听者方向 ............................................................................... - 173 - 
4.6  收听者位置和速率 ....................................................................... - 174 - 
4.7  多普勒因子 ............................................................................... - 174 - 
4.8  高低频规律性衰减因子.................................................................. - 174 - 
使用特效 ............................................................................... - 175 - 
第 1 节  在缓存上设置特效 .................................................................... - 175 - 
第 2 节  特效参数 ............................................................................... - 175 - 
第 3 节  标准特效 ............................................................................... - 176 - 
3.1 Chorus  合声 ............................................................................. - 177 - 
3.2 Compression    压缩 ................................................................... - 177 - 
3.3 Distortion  扭曲失真.................................................................... - 177 - 
3.4 Echo  回声 ................................................................................ - 177 - 
3.5 Environmental Reverberation环境回响........................................... - 177 - 
3.6 Flange镶边 ............................................................................... - 178 - 
3.7 Gargle漱口音 ............................................................................ - 178 - 
3.8 Parametric Equalizer  参量均衡器 .................................................. - 178 - 
3.9 Waves Reverberation声波回响...................................................... - 178 - 
捕获波形 ............................................................................... - 179 - 
第 3 章 
第 4 章 
 
- 8 -