Microsoft Direct3D Backgrounder
June 1996
Technology
Direct3D is a complete set of real-time 3-D graphics services that delivers fast software-based rendering of the full 3-D rendering pipeline (transformations, lighting, and rasterization), transparent access to hardware acceleration, and a comprehensive, next-generation 3-D solution for mainstream PCs. API services include integrated high-level retained-mode and low-level immediate-mode APIs and support for other APIs to sit on top of Direct3D to access 3-D hardware acceleration. Direct3D is fully scalable, enabling all or part of the 3-D rendering pipeline — including geometry transformations, lighting and rasterization — to be accelerated by hardware. Direct3D provides access to advanced graphics capabilities of 3-D hardware accelerators including z-buffering, anti-aliasing, alpha blending, mip mapping, atmospheric effects, and perspective correct texture mapping. Tight integration with DirectX™ and ActiveX™ technologies allows Direct3D to deliver next-generation 3-D graphics capabilities including video mapping, hardware 3-D rendering in 2-D overlay planes and even sprites — providing seamless use of 2-D, 3-D graphics, and digital video, in interactive titles.
Introduction
Direct3D is the next generation of real-time, interactive 3-D technology for mainstream PC users on the desktop and the Internet. More than 80 leading software developers, hardware vendors and PC manufacturers, have already pledged their intent to deliver products for Direct3D. This support establishes Direct3D as the leading specification for the industry and ensures that users will soon experience more compelling and powerful 3-D graphics on the Internet and when using games, education and business applications.
Direct3D, a comprehensive set of API services for real-time 3-D graphics, is the latest addition to the highly popular set of Microsoft® DirectX™ interactive media technologies. The set of DirectX technologies, which includes the DirectDraw™, DirectSound™, DirectInput™ and DirectPlay™ APIs and now Direct3D, offers software developers a broad set of comprehensive, device-independent services. DirectX technologies enable the development of high-performance interactive applications by extending to developers all of the performance that the underlying hardware can deliver.
Direct3D provides a complete solution to meet the needs of the industry for bringing interactive, real-time 3-D capabilities to mainstream PC users. It provides the API services and device independence that developers need, delivers a common driver model for hardware vendors, enables PC manufacturers to offer turnkey 3-D solutions, and makes it easy for end users to add 3-D to their systems, thus offering them the best possible computing experience.
DirectX APIs Gives Developers Access to All the Performance the Hardware Can Deliver.
The DirectX APIs are a set of technologies designed to provide software developers with a direct interface to hardware, while freeing them from device-specific hardware dependencies. Designed as thin API layers, the DirectX APIs give performance-sensitive developers access to as much performance the hardware can deliver, plus the advantages of device independence – such as lower testing costs, lower support costs, and support for a broad base of hardware. The widespread support for DirectX by providers of display adapters, sound card and input device lets software developers harness the power of advanced multimedia hardware and deliver new levels of realism and excitement to their customers, while boosting customer satisfaction.
In addition to Direct3D, the DirectX family consists of the following APIs:
- DirectDraw. DirectDraw accelerates 2-D graphics by providing direct manipulation of video display memory, hardware blters, hardware overlays, and page flipping.
- DirectInput. DirectInput provides low-latency support of analog and digital joysticks, along with support for alternate input devices, for user interaction. Extended capabilities also provide support for rudder pedals, flight yokes, steering devices, virtual-reality headgear, and other devices. Each device can use up to six traces of movement, a point-of-view hat, and 32 buttons.
- DirectSound. DirectSound provides low-latency mixing, hardware acceleration, and direct access to the sound device.
- DirectPlay. DirectPlay provides easy connectivity between applications over a modem or network link.
Services are provided as part of the DirectX APIs to query the device and performance characteristics of the underlying hardware, providing information on the capabilities supported. This information allows developers to change the behavior of the application to match the feature set of the hardware as appropriate, helping to ensure the best computing experience for the end user.
Well-Integrated Solution Delivers Next Generation 3-D Graphics
Direct3D is tightly integrated with other Microsoft interactive media technologies to deliver a well-integrated solution to software developers, enabling them to develop next generation interactive media titles. Direct3D is tightly integrated with DirectDraw as its buffer management system, allowing DirectDraw surfaces to be used both as 3-D rendering targets and as source texture maps. This supports video mapping, hardware 3-D rendering in 2-D overlay planes and even sprites. Integration with ActiveMovie™ allows video streams from sources including MPEG video, audio-video interleaved (AVI) video, QuickTime video, and video capture devices to be mapped as textures to 3-D objects in real-time.
The following figure illustrates how a movie can be played with ActiveMovie using DirectSound to play audio and using DirectDraw to map video frames as textures to a 3-D object in real time. Also in this example, Direct3D uses Direct Draw as the rendering target to display the final scene on the display device.
Open Approach to 3-D Hardware Acceleration
irect3D takes an open approach to enabling transparent hardware acceleration of 3-D graphics. Direct3D integrates into the graphics architecture of the Microsoft Windows® operating system to deliver a complete 3-D solution to developers. Its flexible architecture enables other APIs, such as a future version of OpenGL®, to sit on top of the Direct3D API to offer access to hardware acceleration provided. In addition, custom 3-D engines used in games or other performance-sensitive applications will use the low-level Direct3D APIs to take advantage of 3-D hardware acceleration. The following figure illustrates how other APIs fit into the architecture with Direct3D.
Key Benefits of Direct3D
- Comprehensive 3-D Solution. Direct3D provides a comprehensive solution to meet the needs of software developers and hardware vendors. Direct3D implements an integrated retained-mode and immediate-mode API, supports a rich and extensible file format for exchanging 3-D information, and provides a common driver model for transparent 3-D hardware acceleration.
- The Direct3D high-level retained-mode API is designed for manipulating 3-D objects and managing 3-D scenes, and it supports advanced capabilities such as key-frame animation. The Direct3D retained-mode API makes it easy for developers to add 3-D capabilities to existing Windows-based applications and to develop new 3-D applications without needing to create their own geometry engines or object database routines. For example, after loading in a pre-defined, textured 3-D object with a single API command, the application can use additional simple API commands to rotate, move or scale the object to manipulate it in the scene in real-time — all without the developer having to know or access the internal object data structures.
- The Direct3D low-level immediate-mode API is a thin polygon- and vertex-based API layer that gives developers direct access to features of 3-D hardware in a device independent manner. Because (unlike the Direct3D retained-mode API) the Direct3D immediate-mode API does not provide it’s own geometry engine, object and scene management is handled by the application. The Direct3D immediate mode API allows developers to port existing high-performance multimedia applications, such as games, to the Windows operating system. It also gives developers the flexibility to make use of their own rendering and scene-management technologies, while transparently taking advantage of the new generation of 3-D hardware accelerators.
- The Direct3D file format provides a rich file format for storing meshes, textures, animation sets and user-definable objects, which facilitates the exchange of 3-D information between applications. Support for animation sets allows predefined paths to be stored for playback in real-time. Also supported are instancing and hierarchies, which allow multiple references to a single data object, such as a mesh, but store the data for the object only once per file. The Direct3D file format is used natively by the Direct3D retained-mode API, providing support for reading in predefined objects into an application or writing mesh information constructed by the application in real time. The file format will be supported by content creators for modeling 3-D objects and scenes and defining complex animation paths, and used by title developers for incorporation into their titles.
- To enable device-independent 3-D hardware acceleration, Direct3D is built on the Direct3D HAL. With Direct3D, the software developer is insulated from the device-specific details of the underlying hardware, which helps ensure that any applications written to the Direct3D APIs will work on a broad base of hardware solutions. Through the Direct3D APIs, software developers can access the advanced graphics capabilities of 3-D hardware accelerators including z-buffering, anti-aliasing, alpha blending, mip mapping, atmospheric effects and perspective-corrected texture mapping. In addition to providing access to features of 3-D hardware, the Direct3D HAL provides software-based emulation of features not present in hardware, which helps ensure that all API services are available to an application. Direct3D supports the hardware acceleration of any part or all of the 3-D graphics rendering pipeline, including geometry transformations, lighting, and rasterization.
- The Direct3D high-level retained-mode API is designed for manipulating 3-D objects and managing 3-D scenes, and it supports advanced capabilities such as key-frame animation. The Direct3D retained-mode API makes it easy for developers to add 3-D capabilities to existing Windows-based applications and to develop new 3-D applications without needing to create their own geometry engines or object database routines. For example, after loading in a pre-defined, textured 3-D object with a single API command, the application can use additional simple API commands to rotate, move or scale the object to manipulate it in the scene in real-time — all without the developer having to know or access the internal object data structures.
- Fast software-based rendering and transparent access to 3-D hardware acceleration. Direct3D provides a highly optimized, software-based implementation of the full 3-D rendering pipeline and supports transparent access to device-independent 3-D hardware acceleration. It allows software developers to take advantage of hardware acceleration when it is present, and it continues to offer excellent performance through software emulation when necessary. A 3-D hardware accelerator can enable higher-quality graphics, support higher screen resolutions, and use advanced graphics capabilities such as anti-aliasing and atmospheric effects to enhance the experience of the end user.
- Well-integrated solution. Direct3D is tightly integrated with DirectDraw as its buffer management system, enabling DirectDraw surfaces to be used both as 3-D rendering targets and as source texture maps – allowing, for example, video mapping, hardware 3-D rendering in 2-D overlay planes, or even sprites. Integration with DirectSound provides low-latency sound playback and mixing capabilities. In addition, integration with DirectInput delivers low-latency support for user interaction for tracking up to six axes of movement in support of alternate input devices, such as digital joysticks, rudder pedals, flight yokes, steering devices, virtual-reality headgear, and other 3-D-type input devices. Integration with ActiveMovie allows video streams from sources including MPEG video, audio-video interleaved (AVI) video, QuickTime® video and video capture devices to be mapped as textures to 3-D objects in real time.
- Scalable solution to support emerging hardware. Direct3D provides a highly optimized software-based implementation of the full 3-D rendering pipeline. The addition of a 3-D hardware accelerator can be used to offload the CPU of the PC. Direct3D is fully scaleable, enabling all or part of the 3-D rendering pipeline to be accelerated by hardware, including geometry transformations, lighting, and rasterization.
- Broad industry support. More than 80 industry partners – including leading software developers, hardware vendors, and PC manufacturers – have already pledged their intent to deliver products for Direct3D. These endorsements establish Direct3D as a standard for the industry, and help ensure that users will soon experience more compelling and powerful 3-D graphics for Internet, games, education, and business applications. See the Market Momentum section of this document for further information.
- Cross-platform support. To help software developers leverage their efforts more broadly, Microsoft will expand platform support for the DirectX family of APIs, including Direct3D, to include support for the Windows NT™ operating system and the Apple® Power Macintosh™. As a cross-platform solution, DirectX will enable developers to deliver new Internet and interactive media titles to the broadest possible market. Versions of DirectX for the Windows NT Workstation and Apple Power Macintosh are expected to be available by the end of 1996.
Features of Direct3D
Direct3D provides a comprehensive set of features to meet the needs of software developers. Some of these features are listed here:
- Integrated high-level retained-mode and low-level immediate-mode APIs providing total flexibility to the developer
- Component Object Model (COM)-based APIs that provide a standard interface and support future extensibility
- Rich file format for storing meshes, textures, animation sets and user-definable objects
- Common driver model for transparent, device-independent access to 3-D hardware acceleration
- Fully integrated with DirectDraw for rendering to DirectDraw surfaces and for mapping the surfaces as textures
- Comprehensive sample source code in Software Development Kit (SDK)
- Z-buffer can be disabled in both retained and immediate modes
- Demand loadable device drivers for efficient memory usage
- Flat and Gouraud shading models
- Point, line, and solid-fill modes
- Multiple, moveable, colored light sources
- Spot, point, ambient and directional light sources
- Specular highlighting
- Ramp and true color red, green, and blue (RGB) model
- Color depths of 8, 16, 24, or 32 bits
- Dithering
- Vertex colors
- Multiple viewports, devices and cameras
- Materials support
- Texture mapping in any shading model
- Bilinear, trilinear, mip-map texture filtering
- Perspective-corrected texture mapping in any shading model
- Full transparency, including alpha maps for textures
- Orthographic and perspective projections
- Environment (reflection) and motion video mapping
- Real time object deformation
- Support for off-axis general-viewing transforms
- Animated backgrounds with optional depth information
- Full picking support for user interaction
- Depth cueing with atmospheric effects (suc as fog or haze)
- Inheritance of textures, colors and materials through hierarchies (retained-mode API)
- Projected shadows (retained-mode API)
- Multiple instancing of objects and hierarchies (retained-mode API)
- Complex-spline interpolated motion (retained-mode API)
- Real-time Animation Keyframer (retained-mode API)
- Ability to support hooks for collision detection
Market Momentum
More than 80 leading software developers, hardware vendors and PC manufacturers have already pledged their intent to deliver products for Direct3D, and the list is still growing. Direct3D and the support shown by the industry will enable the rapid integration of 3-D graphics in software titles and the broad availability of 3-D hardware accelerator boards and input devices, as well as complete PC systems with built-in 3-D graphics. For an up-to-date list of industry vendors supporting Direct3D, visit the Microsoft Interactive Media Technologies web site at http://www.microsoft.com/imedia.
Availability and Pricing
Direct3D is shipping today as part of the DirectX 2 SDK for the Windows 95 operating system. The DirectX 2 SDK, featuring Direct3D, is being shipped through the Microsoft Developer Network subscription program to over 100,000 Professional and Enterprise level subscribers beginning with the July CD shipment. The DirectX 2 SDK will also be available for download from the Internet on the Microsoft Developer Network web site at http://www.microsoft.com/mediadev or http://www.microsoft.com/gamesdev.. Support for the Windows NT operating system is expected in the second half of 1996.
Microsoft will license the necessary run-time components of Direct3D royalty-free on Microsoft operating system platforms, allowing software developers to ship them with their 3-D titles. Direct3D will be included in future versions of the Windows 95 and Windows NT Workstation operating systems.
To join the Microsoft Developer Network in the United States and Canada, developers can call (800) 759-5474 between 6:30 a.m. and 5:30 p.m. (Pacific time), Monday through Friday. Outside North America, developers can contact their local Microsoft subsidiary, or call (510) 275-0763 in the United States to obtain local contact information. Additional information about the Microsoft Developer Network is available on the Microsoft Web site at http://www.microsoft.com/msdn.
For Online Product Information:
Microsoft Internet Web site: Microsoft
MSDN Internet Web site:MSDN Internet Site
Microsoft, Direct3D, DirectX, DirectDraw, DirectSound, DirectInput, DirectPlay, ActiveMovie, Windows, Win32 and Windows NT are either registered trademarks or trademarks of Microsoft Corp. in the United States and/or other countries.
OpenGL is a registered trademark of Silicon Graphics, Inc.
Apple, QuickTime, and Power Macintosh are registered trademarks of Apple Computer, Inc.
All other trademarks, marked and not marked, are the property of their respective owners.
This document is provided for informational purposes only. The information contained in this document represents the current view of Microsoft Corp. on the issues discussed as of the date of publication. Because Microsoft must respond to changes in market conditions, it should not be interpreted to be a commitment on the part of Microsoft and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.
INFORMATION PROVIDED IN THIS DOCUMENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND FREEDOM FROM INFRINGEMENT.
The user assumes the entire risk as to the accuracy and the use of this document. This document may be copied and distributed subject to the following conditions: 1) All text must be copied without modification and all pages must be included; 2) All copies must contain Microsoft’s copyright notice and any other notices provided therein; and 3) This document may not be distributed for profit. Copyright © 1996 Microsoft Corporation. All Rights Reserved.