Near Matches
Ignore Exact
Full Text
DirectX
created by
JohnMunsch
(
thing
) by
illusionist
(8.2 mon)
(
print
)
?
(
I like it!
)
1
C!
Mon Oct 23 2000 at 8:12:22
Despite all of the
comments
above
, Direct X's true
intent
is to make
game programming
as
simple
as possible by providing a
hardware
-independant
abstraction layer
above the myraids of blazingly
fast
(and immensely different)
graphics cards
. Another
advantage
is that Direct X
drawing
and
screen display [routine
s are a lot more minimalized and boiled down than
GDI
calls
. Mind you, Direct X games are not portable across platforms (
Wine
does have some directX support, but no one seriously considers that when making a
game
to bring to market). With some abstracted
function
s, you can work around that. Direct X is also an underlying
technology
of the upcoming
Xbox
game
console
.
The first
flagship
game to use the Direct X technology was actually
Doom
, a non-dos
version
of the famous
first person shooter
. It required Direct X 1.0, which was just a
fledgling
product that you could download from the
MS
website. I inadvertantly got it the day it came out. DirectX really didn't mature until release 3 (for
NT 4
, and most
DirectDraw
items, which came late), or release 5 (the first
excellent
, very
clean
and widespread release). A lot of
hardware
vendors today provide
DirectX
aware drivers for the hardware, making the game developer's
life
just a bit easier.
(
thing
) by
rep_movsd
(4.9 d)
(
print
)
?
(
I like it!
)
1
C!
Sat May 22 2004 at 21:00:27
Introduction :
DirectX is
Microsofts
proprietary technology
for
multimedia
and
game programming
.
It is based on
ActiveX
/
COM
and provides an
abstraction
of the underlying hardwares capabilities, allowing programs to be written that do not need to deal with the nitty-gritties of every brand of
hardware component
.
Background :
In order to have a grasp about what DirectX is all about, we need to delve into the workings of
modern
(and
ancient
)
graphics hardware
and a little history.
To display an image on your screen, your
graphics adapter
maintains a block of
memory
( called the
frame buffer
) which is a matrix containing the intensity ( and color ) of the pixel at every
coordinate
. All graphics involves rapid modification of this frame buffer.
In the
dark ages
( or
good old days
),
Old monks
, in
dark cloisters
, by the light of
flickering candles
had to .. Er !
I mean, tough programmers had to do everything
the hard way
, painstakingly manipulating the memory to produce all the
pretty colors
.
When the
IBM PC
first came out it had a
crummy
graphics adapter called the
CGA
, which was even worse than the hardware on the cheaper systems like the
Commodore-64
or the
BBC Micro
, but that wouldn't keep the
good programmer
down and heaps of great games were written. ( Remember
PC - Man
,
Paratrooper
,
MoonBugs
? )
However PC games could never compare with
console
games and it was a
jagged
four coloured
world for PC gamers.
Then IBM came up with the
VGA
, and suddenly PC
game developers
could enjoy an unbelievable ( at that time ) resolution of 640 x 480 with 16
simultaneous
colors, or a 320 x 200 screen with a
mind-boggling
256 simultaneous colors! ( Pant! Pant! Drool!! )
Some of the best games ever (
Wolfenstein
,
One Must Fall
,
Doom
,
Quake
,
Stargun
,
Tomb Raider
etc. ) were developed for the VGA, but gamers craved for more
realistic graphics
and
hardware vendors
found differing and
incompatible
ways of extending the VGA. This left developers in a
quandary
as they had to
take arms
against a
sea
of conflicting
graphic adapters
( and
write code
for each of them) or by opposing, end their dreams of being
rich and famous
.
Meanwhile, Windows was
spreading like the plague
, but its graphics performance was
pathetic
. Windows provided an
API
called the
GDI
which isolated developers from the
quirks
of the underlying graphics hardware, but it was too slow to use for graphically intensive games ( hence we have
MineSweeper
,
Solitaire
,
Tetris
etc. ).
The
problem
was that while GDI was good for efficient
drawing
of
GUI
elements ( windows, buttons etc. ) and
WYSIWYG
printing, it was not meant for the kind of graphics that games required. Moreover, Windows frowned upon
direct hardware access
and there was no clean way to get access to the
hardware
frame buffer unless you wrote a
DOS
game, in which case you were limited to VGA resolutions.
There was a need for
a better way
and Microsoft came up with DirectX ( actually they first came out with
WinG
and
DCI
, but that's a
story
for another node! ).
DirectX components:
Initially, DirectX had only two major components
DirectDraw
and
DirectSound
. These provided
standard
interfaces to access the graphics frame buffer and the sound hardware.
Then as
3D accelerators
started getting popular, Direct3D was born ,
Multiplayer games
begat DirectPlay and Microsoft threw in DirectMusic at some point.
So we now have:
DirectDraw
, providing access to the frame buffer, and any
2D graphics
functions provided by the graphics adapter.
DirectSound
, providing access to sound hardware,
hardware mixer
and
MIDI
support.
DirectMusic
, providing
dynamic
,
context sensitive
music
composition
for games.
DirectShow
, providing interfaces for multimedia devices,
video compression
/ decompression and
streaming multimedia
.
Direct3D
, which provides access to the 3D functionality of the hardware.
DirectPlay
, which simplifies creation of networked,
multiplayer games
.
The good :
Every
manufacturer
supports DirectX.
Since it's based on COM, any enhancements made will not
break old code
.
If any function is not supported by the hardware, it will be
emulated
by Windows, albeit at the cost of performance.
It can be
bound
to most
programming languages
.
The bad and ugly:
It's proprietary,
Evil technology
.
It
entices
you to code games exclusively for windows.
OpenGL
renders
more
accurately
and is more widely supported.
Security holes
exist ( as with anything by Microsoft ), allowing
arbitrary code execution
.
Most DirectShow applications
crash
!
Anyone for MoonBugs 2
?
printable version
chaos
Direct3D
Why I really have to question the intelligence of computer game companies
OpenGL
My Email conversation with EverQuest Technical Support
Mystery Science Theater 3000
ActiveX
X
Officer Friendly
Visual C++
Microsoft
Windows Millennium
15-bit graphics
Simple DirectMedia Layer
Acura NSX
suck
SDL
wing
The particles of Star Trek
D3DX
Dick
John Stuart Mill
Home Recording on a Budget: Masters of the Universe
GL4Java
GeForce FX
Y'know, if you
log in
, you can write something here, or contact authors directly on the site.
Create a New User
if you don't already have an account.
Login
Password
remember me
password reminder
register
Everything2 Help
What you are reading:
chi
caterpillar drive
Palette of King Narmer
Teacher comments on papers
Editor Log: March 2007
ebola
Joni Mitchell
Islam
MOSFET
Darts
How to play Mao
colcannon
Simply messing about in boats
Simulacron3
Reality, Dimensions and the Natural Ontology
(
essay
)
SubSane
Making Love to a 9-Foot Woman
(
person
)
Ouzo
Thoughts
(
idea
)
antigravpussy
I fall silent, listening. The breadcrumbs are talking about us
(
person
)
calgon
Buffalo Bill by the pool
(
poetry
)
gate
Anarchy is Order
(
idea
)
ushdfgakjasgh
Scribeling
(
thing
)
XWiz
Trism
(
review
)
artman2003
Briefcase Full of Souls - Part I
(
fiction
)
Dreamvirus
Alan Ladd
(
person
)
waverider37
Harold Holt
(
person
)
The Debutante
Until death do us part
(
fiction
)
Ysardo
a brother to a sister
(
personal
)
antigravpussy
your warm whispers
(
personal
)
Clarke
Multiculturalism
(
idea
)
E2 is a by-product of the existence of
The Everything Development Company