Direct3D9设备构成
Direct3D 设备是 Direct3D 的渲染组件。 它封装并存储呈现状态。 此外,Direct3D 设备执行转换和照明操作,并将图像光栅化到表面。
体系结构上,Direct3D 设备包含转换模块、光照模块和光栅模块,如下图所示。
Direct3D 目前支持两种主要类型的 Direct3D 设备:
①支持硬件加速光栅和着色以及硬件和软件顶点处理的 hal 设备 ②参考设备
可以将这些设备视为两个单独的驱动程序。 软件和参考设备由驱动程序表示,而 hal 设备由硬件驱动程序表示。 利用这些设备的最常见方式为:使用 hal 设备传送应用程序,使用参考设备进行功能测试。
这些设备由第三方提供,用于模仿特定设备,例如尚未发布的开发硬件。应用程序创建的 Direct3D 设备必须与运行该应用程序的硬件的功能一致。 Direct3D
提供渲染功能,方式是通过访问计算机中安装的 3D 硬件或模仿软件中 3D 硬件的功能。 因此,Direct3D
提供设备以访问硬件和模仿软件。硬件加速设备的性能远远高于软件设备。 所有支持 Direct3D 的图形适配器均可使用此 hal 设备类型。
在大多数情况下,应用程序瞄准具有硬件加速且依赖软件模拟来容纳低端计算机的计算机。软件设备并不总是支持与硬件设备相同的功能,但参考设备除外。 若要确定支持哪些功能,应用程序应始终查询设备功能。
由于与 Direct3D 9 一起提供的软件和参考设备的行为与 hal 设备的相同,编写的用于 hal
设备的应用程序代码将不经修改直接用于软件或参考设备。 请注意,虽然提供的软件或参考设备行为与 hal
设备的行为相同,但设备功能确实有所不同,并且特定软件设备可能实现更小的功能集。
以上文字引用巨硬家的资料库,讲了2个方面,一个是硬件抽象层(HAL)设备速度快效果好,优先服用。第二个不使用硬件加速,因此速度很慢,但保证正确地支持一整套 Direct3D 功能(特别适用硬件开发厂家开发新产品)。
现在选择哪个清楚了吧。