G
Guest
http://www.extremetech.com/article2/0,1697,1841223,00.asp
_______________________
DirectX 10
With all the talk of next-generation consoles-and some very impressive
screenshots floating around the web-fans of PC games are naturally wondering
whether these powerful new systems are going to "kill" PC games. In a word .
.. . no.
The upcoming Xbox 360 and PlayStation 3 are based on DirectX 9 technology,
in the case of the 360 it's "DirectX 9 and then a little more." But DirectX
10 is a whole different animal. It's a major revision to the API, almost a
complete rewrite that requires substantially different hardware than the
stuff we've seen so far.
To start with, let's clear up a few naming misconceptions. Over the past
year or more, the graphics "stuff" coming in Windows Vista has been referred
to by many names. DirectX Next and Windows Graphics Foundation 2.0 are two
of the most prominent. The names have been changing internally at Microsoft,
and it seems that they've all but settled on actually calling it DirectX 10.
Contrary to some reports, it will ship with Vista, along with DirectX 9.L, a
version of DX9 altered to fit the new LDDM driver model used by the OS.
DirectX 10 started by fixing what was broken in the previous APIs, like some
stability problems and small batch performance, and then removing old
unnecessary parts of the API (like the fixed function transform and lighting
calls). This served as the foundation for a graphics API that could
radically change the way games look and really take PCs to that next quantum
leap, even over next-generation consoles.
The new graphics API will have much more stringent requirements for graphics
cards, with a very particular guaranteed feature set. There should be no
more "cap bits" needed to determine if your graphics cards can perform
certain functions. The behavior of DX10 cards will be strictly defined, so
developers can get the expected output from their code with no tweaking
necessary for the eccentricities of different graphics cards from different
vendors.
It also requires several new features of the hardware. The first is a new
"geometry shader" function, which operates not on single vertices like
today's vertex shader units, but on entire primitives: dots, lines, lines
with adjacent vertices, triangles, and triangles with adjacent vertices. The
huge performance penalty imposed by too many state changes should be a thing
of the past as well. Render states are grouped into five different objects
that can be cached by the hardware, with up to 4096 state objects of each
type cacheable at once. DX10 also introduces a common shader core between
pixels and vertices. Granted, this does not mean that the hardware itself
needs to have ALUs that operate on either pixels or vertices, just that the
language and functions have been fused into a single shader set.
The net result of these things should be games with an absolutely
unprecedented level of detail, including a dramatic increase in "clutter,"
or the hordes of random and different stuff that exists in the real world
but not in games. Obviously, rendering quality will shoot way up, too, with
improved masking functions for antialiasing. It will also mean better object
sorting, the ability to algorithmically generate content entirely on the
GPU, and ultimately memory virtualization in the LDDM driver model to reduce
bandwidth costs and provide more granular access to graphics data.
Right now, it's all a bit too much to take in. Some of the specs are still
in flux, and you need an unabridged programmer-to-English dictionary to even
comprehend the scope of the changes and their ramifications. Suffice it to
say: When DirectX 10 games hit us, they're going to be of a quality that
next-gen consoles can't touch.
________________________________________________
_______________________
DirectX 10
With all the talk of next-generation consoles-and some very impressive
screenshots floating around the web-fans of PC games are naturally wondering
whether these powerful new systems are going to "kill" PC games. In a word .
.. . no.
The upcoming Xbox 360 and PlayStation 3 are based on DirectX 9 technology,
in the case of the 360 it's "DirectX 9 and then a little more." But DirectX
10 is a whole different animal. It's a major revision to the API, almost a
complete rewrite that requires substantially different hardware than the
stuff we've seen so far.
To start with, let's clear up a few naming misconceptions. Over the past
year or more, the graphics "stuff" coming in Windows Vista has been referred
to by many names. DirectX Next and Windows Graphics Foundation 2.0 are two
of the most prominent. The names have been changing internally at Microsoft,
and it seems that they've all but settled on actually calling it DirectX 10.
Contrary to some reports, it will ship with Vista, along with DirectX 9.L, a
version of DX9 altered to fit the new LDDM driver model used by the OS.
DirectX 10 started by fixing what was broken in the previous APIs, like some
stability problems and small batch performance, and then removing old
unnecessary parts of the API (like the fixed function transform and lighting
calls). This served as the foundation for a graphics API that could
radically change the way games look and really take PCs to that next quantum
leap, even over next-generation consoles.
The new graphics API will have much more stringent requirements for graphics
cards, with a very particular guaranteed feature set. There should be no
more "cap bits" needed to determine if your graphics cards can perform
certain functions. The behavior of DX10 cards will be strictly defined, so
developers can get the expected output from their code with no tweaking
necessary for the eccentricities of different graphics cards from different
vendors.
It also requires several new features of the hardware. The first is a new
"geometry shader" function, which operates not on single vertices like
today's vertex shader units, but on entire primitives: dots, lines, lines
with adjacent vertices, triangles, and triangles with adjacent vertices. The
huge performance penalty imposed by too many state changes should be a thing
of the past as well. Render states are grouped into five different objects
that can be cached by the hardware, with up to 4096 state objects of each
type cacheable at once. DX10 also introduces a common shader core between
pixels and vertices. Granted, this does not mean that the hardware itself
needs to have ALUs that operate on either pixels or vertices, just that the
language and functions have been fused into a single shader set.
The net result of these things should be games with an absolutely
unprecedented level of detail, including a dramatic increase in "clutter,"
or the hordes of random and different stuff that exists in the real world
but not in games. Obviously, rendering quality will shoot way up, too, with
improved masking functions for antialiasing. It will also mean better object
sorting, the ability to algorithmically generate content entirely on the
GPU, and ultimately memory virtualization in the LDDM driver model to reduce
bandwidth costs and provide more granular access to graphics data.
Right now, it's all a bit too much to take in. Some of the specs are still
in flux, and you need an unabridged programmer-to-English dictionary to even
comprehend the scope of the changes and their ramifications. Suffice it to
say: When DirectX 10 games hit us, they're going to be of a quality that
next-gen consoles can't touch.
________________________________________________