Direct3D 10Direct3D 10 is the latest graphics API from Microsoft. It has changed quite significantly from Direct3D 9 and this area of the notes will explain the differences and in the future contain notes on using Direct3D 10. I plan to write extensive notes on Direct3D 10 over the coming summer (2007) under this page. Direct3D 10 FeaturesA list of the main features of Direct3D 10 and differences from Direct3D 9: - Direct3D 10 runs on the Windows Vista platform only
- To support earlier Direct3D versions Vista also comes with DirectX 9.0Ex which is basically the normal Direct3D 9.0c runtime with changes to support Vista's new driver architecture (WDDM).
- Features shader model 4
- As well as improving on existing pixel and vertex shader it adds a new shader: a geometry shader. Where as vertex shaders can not add or remove vertices geometry shaders can and hence allow many more effects to be created.
- Does not use capabilities bits (caps) but instead defines a set of functions that a graphic card must support in order to be Direct3D 10 compatible
- This is a huge relief for game programmers who had, in the past, to query the capabilities of the graphic card at start up and turn on and off features depending on what was supported. On the other hand it is not so good for graphic card manufacturers as it makes it more difficult for them to add new 'unique' features to sell their cards over competitors cards.
- No more fixed function pipeline
- With Direct3D 9 you did not have to use shaders but instead could specify the make up of your vertex and get Direct3D to render things in a default way (via a FVF definition). Direct3D 10 does away with this completely and requires shaders for all rendering.
- Other features
- Graphics memory paging - allows larger textures to be used and paged in and out of video RAM
- Graphics hardware threading improved via virtualisation of the hardware
- Much faster draw calls and no limit on number of primitives
Getting Started with Direct3D 10You will need Vista, the DirectX 9 SDK and a machine with a graphics card capable of supporting Direct3D. At the time of writing this is limited to either the Geforce 8000 series or the ATI Radeon HD series. DirectX 10 or Direct3D 10?I see a lot of people referring to DirectX 10 - this is odd as there is no DirectX 10 SDK instead there is a Direct3D 10 API. DirectX is an SDK made up of a number of APIs. Its current version is 9. It contains the APIs: Direct3D 9 and Direct3D 10 for graphics. DirectInput and XInput for user input. XACT and DirectSound for sound. Some older APIs have been moved e.g. DirectShow (now in the Platform SDK). I do notice Microsoft sometimes referring to DirectX 10 when talking about the Vista runtime so perhaps DirectX 10 refers to the Vista runtime only? Further Reading |