检测本机的DirectX 情况
DirectX 诊断工具: 开始->运行->dxdiag
1、Direct3D 渲染流水线
Direct3D的图形绘制是通过一个称为Direct3D 渲染流水线的过程来完成的
在绘制过程中,首先提供描述三维物体模型的顶点数据以及其他的场景元素,
然后经过Direct3D流水线的处理,最终得到能够显示在屏幕上的像素,而这些相熟也就呈现了
用户需要的三维图像
2、FVF(Flexible Vertex Format) 灵活顶点格式,由用户自定义其中所需要包含的顶点属性信息
例如可以指定顶点的三维坐标,颜色,顶点法线坐标以及纹理坐标等
3、D3D 中的颜色
在Direct3D 中,顶点的颜色是通过一个32位(4字节)的DWORD 类型的
数表示的。颜色值的32位被分割成四部分以分别表示 红、绿 、蓝三种颜色分量和一个
Alpha 分量
typedef struct _D3DCOLORVALUE {
float r;
float g;
float b;
float a;
} D3DCOLORVALUE;
4、D3D 中的图元
Direct3D 中的图元类型一共有六种:点列 、线列 、 线带 、三角形、列
三角形带、三角形扇
5、Direct3D 的程序结构
Direct3D 图形绘制
Direct3D 的工作模式与电影的播放原理类似。
Direct3D 使用了一种称为交换链(Page Flipping) 的技术让画面平滑过渡。交换链
由两个或者两个以上的表面组成,而每个表面都是用于存储2D图形数据的一个线性数组,
其中的每个元素都表示屏幕上的一个像素
对于三维物体模式还需要一个称为深度的信息,Direct3D则使用深度缓存为最终绘制的图像的每个像素存储一个深度信息。深度缓存只包含了特定像素的深度信息,而不包含图像数据的表面信息
前台缓存和后台缓存是位于系统内存或显存里的内存块,对应于将要显示的二维显示区域。
前台缓冲区主要用于刷新屏幕,是用户可见的部分,后天缓冲区则主要 用于图形的绘制,
对用户是不可见的。绘制完成后,两者进行交换链的页翻动的工作,把处理完的图形显示出来
<DirectX 3D游戏编程使用教程>