Direct3D 体系结构(Direct3D 9)
本主题提供 Direct3D 体系结构的两个高级视图:
- Direct3D 图形管道 - Direct3D 渲染系统内部处理体系结构的视图。
- Direct3D 系统集成 - 显示 Direct3D 如何在应用程序和图形硬件之间进行调解。
Direct3D 图形管道
图形管道提供马力来有效处理 Direct3D 场景并将 Direct3D 场景呈现为显示,并利用可用的硬件。 下图显示了管道的构建基块:
direct3d 图形管道关系图
管道组件 | 描述 | 相关主题 |
---|---|---|
顶点数据 | 未转换的模型顶点存储在顶点内存缓冲区中。 | 顶点缓冲区(Direct3D 9),IDirect3DVertexBuffer9 |
基元数据 | 几何基元(包括点、线条、三角形和多边形)在具有索引缓冲区的顶点数据中引用。 | 索引缓冲区(Direct3D 9)、IDirect3DIndexBuffer9、基元、Higher-Order 基元(Direct3D 9) |
棋盘形布置 | 细化器单元将高阶基元、位移映射和网格补丁转换为顶点位置,并将这些位置存储在顶点缓冲区中。 | 分割(Direct3D 9) |
顶点处理 | Direct3D 转换应用于顶点缓冲区中存储的顶点。 | 顶点管道 (Direct3D 9) |
几何处理 | 剪裁、后脸剔除、属性评估和光栅化将应用于转换的顶点。 | 像素管道 (Direct3D 9) |
纹理图面 | 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)。