Direct3D 体系结构 (Direct3D 9)

本主题提供 Direct3D 体系结构的两个高级视图:

Direct3D 图形管道

图形管道提供高效处理 Direct3D 场景并将 Direct3D 场景呈现给显示器的强大功能,并利用可用硬件。 下图显示了管道的构建基块:

direct3d 图形管道示意图

管道组件 说明 相关主题
顶点数据 未转换的模型顶点存储在顶点内存缓冲区中。 顶点缓冲区 (Direct3D 9) IDirect3DVertexBuffer9
基元数据 几何基元(包括点、线、三角形和多边形)在带有索引缓冲区的顶点数据中引用。 索引缓冲区 (Direct3D 9) IDirect3DIndexBuffer9基元高阶基元 (Direct3D 9)
分割 细化器单元将高阶基元、位移映射和网格补丁转换为顶点位置,并将这些位置存储在顶点缓冲区中。 分割 (Direct3D 9)
顶点处理 Direct3D 转换应用于存储在顶点缓冲区中的顶点。 顶点管道 (Direct3D 9)
几何图形处理 剪裁、背面剔除、属性求值和光栅化将应用于转换的顶点。 像素管道 (Direct3D 9)
纹理 Surface Direct3D 图面的纹理坐标通过 IDirect3DTexture9 接口提供给 Direct3D Direct3D 纹理 (Direct3D 9) IDirect3DTexture9
纹理采样器 纹理详细级别筛选应用于输入纹理值。 Direct3D 纹理 (Direct3D 9)
像素处理 像素着色器操作使用几何图形数据修改输入顶点和纹理数据,生成输出像素颜色值。 像素管道 (Direct3D 9)
像素渲染 最终渲染过程通过 alpha、深度或模具测试或通过应用 alpha 混合或雾来修改像素颜色值。 所有生成的像素值都呈现给输出显示器。 像素管道 (Direct3D 9)

 

Direct3D 系统集成

下图显示了 Window 应用程序、Direct3D、GDI 和硬件之间的关系:

direct3d 与其他系统组件之间关系的示意图

Direct3D 向应用程序公开与设备无关的接口。 Direct3D 应用程序可以与 GDI 应用程序一起存在,并且两者都可以通过图形卡的设备驱动程序访问计算机的图形硬件。 与 GDI 不同,Direct3D 可以通过创建 hal 设备来利用硬件功能。

hal 设备根据图形卡支持的功能集,为图形管道功能提供硬件加速。 Direct3D 方法用于在运行时检索设备显示功能。 (请参阅 IDirect3DDevice9::GetDeviceCaps.) 如果硬件未提供某个功能,则 hal 不会将其报告为硬件功能。

有关 Direct3D 支持的 hal 和引用设备的详细信息,请参阅设备 类型 (Direct3D 9)

入门