Direct3D起步
本节提供对Microsoft® Direct3D®应用程序编程接口(API)中三维图形功能的介绍。可以在这里找到有关图形流水线的概述,以及可以快速运行,帮助开发者了解Direct3D基本功能的教程。
本节包含了有关Microsoft® Direct3D®部件和其它Microsoft DirectX®部件、操作系统、及系统硬件之间关系的信息,讨论了以下主题。
Direct3D体系结构概述
这是一幅图形流水线的图示。下面介绍了每一块的功能,以及在哪里可以找到更多信息的链接。

有关Microsoft® Direct3D®可编程部分的体系结构的更多信息,请参阅可编程顶点着色器体系结构和可编程像素着色器体系结构。
硬件抽象层
Microsoft® Direct3D®通过硬件抽象层(HAL)提供设备无关性。HAL是一个设备相关的接口,由设备制造商提供,Direct3D使用HAL与显示硬件协同工作。应用程序从不直接与HAL打交道。相反,通过HAL提供的基础,Direct3D暴露了一组统一的接口和方法,应用程序用这些接口和方法绘制/显示图形。在Microsoft
Windows® XP、Microsoft Windows NT®和Windows 2000下,设备制造商用32位代码实现HAL。而在Windows 98和Windows
Millennium Edition (Windows Me)下,则混合使用16位和32位代码。HAL可以是显示驱动程序的一部分,或者是一个单独的动态链接库(DLL),该DLL通过驱动程序开发人员定义的私有接口与显示驱动程序进行通信。
Direct3D HAL由芯片制造商、板卡制造商或原始设备制造商(OEM)实现。HAL仅实现与设备相关的代码并且不做任何模拟。如果硬件不能完成某项功能,则HAL不将其声明为硬件的能力。另外,HAL不检验参数,Direct3D在调用HAL之前执行这项操作。
在Microsoft DirectX® 9.0中, HAL可以有三种不同的顶点处理模式:软件顶点处理、硬件顶点处理、以及在同一设备上的混合顶点处理。纯设备模式是HAL设备的一个变体。纯设备类型只支持硬件顶点处理,且只允许应用程序查询设备状态中很小的一个子集。另外,纯设备仅在具有某一最低能力级的适配器上可用。
系统集成
下图显示了Microsoft® Direct3D®、Microsoft Windows®图形设备接口(GDI)、硬件抽象层(HAL)及硬件之间的关系。

如上图所示,Direct3D应用程序位于GDI应用程序旁边,它们都可以通过图形卡的设备驱动程序访问图形硬件。与GDI不同的是,当选择了HAL设备时,Direct3D可以利用硬件特性。基于图形卡支持的特性集,HAL设备提供了硬件加速。为了在运行时检查设备是否能执行某项操作,Direct3D提供了相应的方法。
有关Direct3D所支持设备的更多信息,请参阅设备类型。
可编程顶点着色器体系结构
有关顶点着色器寄存器的更多信息,请参阅Registers - vs_1_1。
有关顶点着色器参考章节的更多信息,请参阅Vertex Shader 1_1。
可编程像素着色器体系结构
有关像素着色器寄存器的更多信息,请参阅Registers - ps_1_X。
有关像素着色器参考章节的更多信息,请参阅Pixel Shader 1_X。