Opentopia Directory Encyclopedia Tools

Direct3D

Encyclopedia : D : DI : DIR : Direct3D


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.

Version history

In 1992, Servan Keondjian started a company named RenderMorphics, which developed a 3D graphics API named Reality Lab, which was used in medical imaging and CAD software. Two versions of this API were released. Microsoft bought RenderMorphics in February 1995, bringing Keondjian on board to implement a 3D graphics engine for Windows 95. This resulted in the first version of Direct3D.

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.

Direct3D 10

This article or section contains information about Development_stage#Beta>beta software currently in development.
The content may change dramatically as the software development progresses.

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).

New Features

Related tools

DirectX comes with D3DX, a library of tools designed to perform common mathematical calculations and several more complicated tasks, such as compiling or assembling shaders used for 3D graphic programming. It also includes several classes that simplify the use of 3D-models and, for example, particle systems. D3DX is provided as a dynamic link library (DLL).

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.

References

 


From Wikipedia, the Free Encyclopedia. Original article here. Support Wikipedia by contributing or donating.
All text is available under the terms of the GNU Free Documentation License See Wikipedia Copyrights for details.

Search Titles
0123456789
ABCDEFGHIJ
KLMNOPQRST
UVWXYZ?

E-mail this article to:

Personal Message: