What's New in DirectX Graphics
This section describes Microsoft® DirectX® graphics features that are new in DirectX 8.x.
To see what's new in all of DirectX, see What's new in DirectX 8.1.
New Features in DirectX 8.1
Pixel Shaders
- Added pixel shader versions 1.2, 1.3, and 1.4. These new versions expand existing functionality through a more powerful set of instructions, registers, and modifiers for programming pixel shaders.
New D3DX Functionality
Mesh API
Bump Mapping
MeshView Tool
- This tool provides an easy way to load, view, and modify meshes, and generally exercise Direct3DX (D3DX) functionality on progressive meshes. This tool is installed as part of the software development kit (SDK) install and can be accessed from Start/Programs/Microsoft DirectX 8.1 SDK/DirectX Utilities/DirectX MeshView. For more information about the tool, see Mesh View Help.
Effect Framework
- Effects. Added string support, added comments, and removed FourCC constraints.
- Effect framework API. Support for state saving and restoring, support for handling OnLost and OnReset, support Set*() after Begin(). All of the ID3DXTechnique functionality has been moved into the ID3DXEffect interface to simplify the effect interface.
Texture Library
- Implemented a higher quality DXTn encoding algorithm.
- Use D3DXGetImageInfoFrom to get image information before loading it.
- Includes support for dynamic textures.
- D3DXSaveSurfaceToFile supports 8-bit paletted .bmp files and 24-bit RGB .dds files in all formats: mipmaps, cube maps, volumes.
- D3DPOOL_SCRATCH allows creation of resources that are not limited by device capabilities.
They can be created and destroyed, locked and unlocked. These resources can be set to a device and used in rendering. Use with D3DX to convert to something useable such as loading a high-precision height field and converting to a normal map.
- Texture fill functions, D3DXFillTexture, D3DXFillCubeTexture, and D3DXFillVolumeTexture.
Math Library
Samples
- Several new samples have been included to demonstrate culling, lighting, volume fog, and self-shadowing using a shadow volume.
- A new screen saver sample is included that is built on the screen saver sample framework. The new framework includes support for multiple monitors.
Documentation Upgrades
New Features in DirectX 8.0
This version maintains backward compatibility by exposing and supporting objects and interfaces offered by previous releases of DirectX. However, many new features and performance enhancements have also been added to the Microsoft Direct3D® API interfaces.
Pixel and Vertex Shaders
- The two programmable sections of the Direct3D architecture are vertex shaders and pixel shaders. Vertex shaders are invoked prior to vertex assembly and operate on vertices. Pixel shaders are invoked after any DrawPrimitive or DrawIndexedPrimitive calls and generate the pixels that are written to the render target. The addition of programmable shaders for vertex and pixel operations provides the framework for real-time programmable effects that rival movie quality. The innovative freedom that this programmability gives back to game developers—by allowing them to implement whatever effect they see fit with the programmable pipeline—has the potential to unlock a new round of incredible games. Pixel and vertex shaders can be written using ASCII files, thus the shader files can be updated at runtime without recompiling the source application.
Effects
- Allows you to change how an object is rendered, based on the hardware capabilities of the machine your application is running on. Effects are written using ASCII files, thus the effect file can be updated at runtime without recompiling the source application.
Complete Integration of DirectDraw and Direct3D
- Simplifies application initialization and improves data allocation and management performance, which reduces the memory footprint. Also, the integration of the graphics APIs enable parallel vertex input streams for more flexible rendering.
Multisampling Rendering Support
- Enables full-scene antialiasing and multisampling effects, such as motion blur and depth-of-field.
Point Sprites
- Enables high-performance rendering of particle systems for sparks, explosions, rain, snow, and so on.
3-D Volumetric Textures
- Enables range-attenuation in per-pixel lighting and volumetric atmospheric effects, and can be applied to more intricate geometry.
Higher-Order Primitive Support
- Enhances the appearance of three-dimensional (3-D) content and facilitates the mapping of content from major 3-D authoring tools.
Higher-Level Technologies
- Includes 3-D content-creation tool plug-ins (for export to Direct3D) for skinned meshes that use a variety of Direct3D techniques, multiresolution level-of-detail (LOD) geometry, and higher-order surface data.
Indexed Vertex Blending
- Extends geometry blending support to allow the matrices used for vertex blending to be referred to using a matrix index.
Expansion of the Direct3DX Utility Library
- Contains a wealth of new functionality. The Direct3DX utility library is a helper layer that sits on top of Direct3D to simplify common tasks encountered by 3-D graphics developers. Includes a skinning library, support for working with meshes, and functions to assemble vertex and pixel shaders. About 20 new functions have been added for DirectX 8.1. Note that the functionality supplied by D3D_OVERLOADS, first introduced with DirectX 5.0, has been moved to the Direct3DX utility library.