Like other Direct X APIs, such as Direct Draw, both were based on COM.
The retained mode was a scene graph API that attained little adoption.
The API does include a Reference Rasterizer (or REF device), which emulates a generic graphics card in software, although it is too slow for most real-time 3D applications and is typically only used for debugging.
A new real-time software rasterizer, WARP, designed to emulate complete feature set of Direct3D 10.1, is included with Windows 7 and Windows Vista Service Pack 2 with the Platform Update; its performance is said to be on par with lower-end 3D cards on multi-core CPUs.
Direct X 7.0 (released in September, 1999) introduced the texture format and support for transform and lighting hardware acceleration (first available on PC hardware with Nvidia's Ge Force 256), as well as the ability to allocate vertex buffers in hardware memory.Direct X 8.0, released in November, 2000, introduced programmability in the form of vertex and pixel shaders, enabling developers to write code without worrying about superfluous hardware state.The complexity of the shader programs depended on the complexity of the task, and the display driver compiled those shaders to instructions that could be understood by the hardware.The first version of Direct3D shipped in Direct X 2.0 (June 2, 1996) and Direct X 3.0 (September 26, 1996).Direct3D initially implemented both "retained mode" and "immediate mode" 3D APIs.