Direct3D 体系结构 (Direct3D 9)
本主题提供 Direct3D 体系结构的两个高级视图:
- Direct3D 图形管道 - Direct3D 呈现系统的内部处理体系结构的视图。
- 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 应用程序可以与 GDI 应用程序一起存在,并且两者都可以通过图形卡的设备驱动程序访问计算机的图形硬件。 与 GDI 不同,Direct3D 可以通过创建 hal 设备来利用硬件功能。
hal 设备根据图形卡支持的功能集,为图形管道功能提供硬件加速。 Direct3D 方法用于在运行时检索设备显示功能。 (请参阅 IDirect3DDevice9::GetDeviceCaps.) 如果硬件未提供某个功能,则 hal 不会将其报告为硬件功能。
有关 Direct3D 支持的 hal 和引用设备的详细信息,请参阅设备 类型 (Direct3D 9) 。