Direct3D is part of Microsoft's DirectX API. Direct3D is only available for Microsoft's various Windows operating systems (Windows 95 and above) and is the base for the graphics API on the Xbox and Xbox 360 console systems. Direct3D is used to render three dimensional graphics in applications where performance is important, such as games. Direct3D also allows applications to run fullscreen instead of embedded in a window, though they can still run in a window if programmed for that feature. Direct3D uses hardware acceleration if it is available on the graphic board.
Direct3D is a 3D API. That is, it contains many commands for 3D rendering, but contains few commands for rendering 2D graphics.Microsoft DirectX SDK Readme (December 2005) Microsoft strives to continually update Direct3D to support the latest technology available on 3D graphics cards. Direct3D offers full vertex software emulation but no pixel software emulation for features not available in hardware. For example, if a program programmed using Direct3D requires pixel shaders and the graphics card on the user's computer does not support that feature, Direct3D will not emulate it. The program will most likely exit with an error message. The API does define a Reference Rasterizer (or REF device), which emulates a generic graphics card, although it's too slow to be used in any application to emulate pixel shaders and is usually ignored.
Direct3D's main competitor is OpenGL. There are numerous features and issues that proponents for either API disagree over, see comparison of Direct3D and OpenGL for a summary.
In DirectX version 7.0, the .dds texture format was introduced.
As of DirectX version 8.0, Direct3D was rolled up into a package called DirectX Graphics. DirectX Graphics was meant to be a combination of DirectDraw and Direct3D, but in reality was just Direct3D with a few DirectDraw features added. Most users still refer to DirectX Graphics as Direct3D.
Direct3D was not considered to be user friendly, but as of DirectX version 8.1, many usability problems were resolved. Direct3D (DX8) contained many very powerful 3D graphics features, such as vertex shaders, pixel shaders, fog, bump mapping and texture mapping.
DirectX version 9.0 added a new version of the High Level Shader Language, support for high dynamic range lighting, multiple render targets, and vertex buffer indexing.
Microsoft is currently working on a large update to Direct3D API. Originally called Windows Graphics Foundation, DirectX 10, and later DirectX Next, but currently referred to as Direct3D 10, it will appear as part of Windows Vista. Version 10 will represent a departure from the driver model of DirectX Graphics 9.0, with the addition of a scheduler and memory virtualization system. Direct3D 10 will forego the current DirectX practice of using "capability bits" to indicate which features are active on the current hardware. Instead, Direct3D 10 will define a minimum standard of hardware capabilities which must be supported for a display system to be "Direct3D 10 compatible". According to Microsoft, Direct3D 10 will be able to display graphics up to 8 times more quickly than DirectX Graphics 9.0c. In addition, Direct3D 10 will incorporate Microsoft Shader Model 4.0.
Vista will ship with Windows Graphics Foundation (WGF) 1.0. WGF 2.0 will ship later (after Vista). Beneath the WGF is either legacy (XP) drivers with limited functionality or Windows Display Driver Model (WDDM) drivers in one of two flavors: Basic (for existing hardware) and Advanced (for post-Vista hardware). What's currently referred to as DX10 is really WGF 2.0 atop Advanced WDDM drivers running on post-Vista hardware. WGF 1.0 (atop either flavor of WDDM), as shipping with Vista, is referred to by MS as DX9.L -- it's most definitely not DX10. It certainly does have some benefits -- managed resources for "unlimited" memory (limited by virtual memory), better gamma control and text rendering, some performance improvements, etc -- but it's a relatively minor upgrade, and it's not going to drive radical new development in either games or GPUs.
DX10 functionality will require WGF 2.0, and will require the Advanced WDDM, which in turn will require new graphics hardware, even beyond unified shaders and an updated shader model: it includes things like additional pipeline stages (geometry shaders), hardware virtualization (to allow multiple threads/processes time-sliced use of the GPU), demand-paged virtual graphics memory, offload of various operations from the CPU to the GPU, and more. No GPU is going to be available with the full WGF 2.0 featureset in 2006.
Note also that games that take advantage of WGF 1.0 will run successfully on Vista atop existing hardware. However, once they make the transition to WGF 2.0 it's unclear if they'll be able to degrade gracefully to 1.0, meaning that the first "must have" game using WGF 2.0 is going to require not just Vista but a new video card: while there will be XP drivers for "DX10" hardware XP won't support WGF 2.0, and older cards running Vista will at most support WGF 1.0 and Basic WDDM drivers. So the first WGF 2.0 games will be looking at a fairly small market with the requisite hardware base, and thus there may be a bit of delay until such titles are released (fortunately the new hardware should offer enough of an improvement on existing titles that we won't see a chicken-and-egg situation develop).
DXUT (also called the sample framework) is a layer built on top of the Direct3D API. The framework is designed to help the programmer spend less time with mundane tasks, such as creating a window, creating a device, processing Windows messages and handling device events.
Computer graphics | 3D computer graphics | Microsoft Windows
Direct3D | Direct3D | Direct3D | Direct3D | Direct3D | Direct3D | Direct3D | Direct3D | Direct3D
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Direct3D".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world