|
Direct3D vs. OpenGL:
Moving away from the longtime CAD Standard

by John Boline
Service Manager,
MCSE, CNE, USE
For years we asked the same questions when
doing support where video issues were concerned. Is your
video card OpenGL? Is it certified for use with your CAD
software? What version of the driver are you using? Do the
artifacts occur when you move the mouse from left to right
or right to left? How much RAM is on the video card? The
reason for all these questions was simple: Everything had to
be a perfect match to get the performance you wanted and not
have unexpected results. The old standard was that OpenGL
was for professional workstations and most others were for
general office use or were a dreaded “gaming card.” Now the
water is murky, if not muddy, thanks to Windows Vista.
Gaming Card vs. Professional Workstation Graphics
While
both card types produce graphics, they performed the
functions in very different ways. One used rendered polygons
and the other used ray-tracing to produce images. One was
great for high-speed animation and the other was for
accuracy. And such was the way of the world. With Windows
Vista, Microsoft changed that for PC users. OpenGL was no
longer directly supported by a driver in Windows Vista, but
was instead funneled or translated through a driver using
Direct3D. With some cards, this resulted in poor
performance. CAD manufacturers therefore began to have
drivers for Direct3D video cards. Suddenly high end gaming
cards found a new home in the professional workstation.
SGI's OpenGL
SGI's (Silicon Graphics) OpenGL is a procedural 3D
graphics API, the successor to Iris GL which originated in
the UNIX workstation market. Many of
you
will remember we sold those SGI stations along with those
from HP, Sun and IBM. The Iris GL is the graphics API used
on a succession of 3D graphics workstations designed and
built by Silicon Graphics, Inc. Many of the OpenGL cards for
PCs were based on this chip set. "OpenGL" is a trademark of
the OpenGL Architectural Review Board (ARB). The ARB
controls the definition of OpenGL through control of the
specification by which an implementation may call itself
"OpenGL." By definition, OpenGL is a graphics state that
controls the rendering pipeline.
Microsoft's Direct3D
Microsoft's
Direct3D is a COM-based 3D graphics API originating in a
third-party 3D graphics API for x86 architectures. As with
many components of Microsoft’s products, DirectX was
acquired in 1996. Direct3D contains an immediate-mode
interface and is part of DirectX. As it evolved, first
appearing in DirectX 3, Microsoft Direct3D used execute
buffers as its display structure. Since DirectX 5, a more
traditional approach to buffers and primitives has been
adopted with each successive version.
Feature Comparison
So what is the real difference? OpenGL and Direct3D use
a traditional graphics rendering flow or pipeline. The use
of a “pipeline” format has been present since the earliest
days of computer graphics and has been enhanced and extended
to use faster interfaces and the addition of plentiful RAM
as technology advances. Of all the information I found, this
chart shows the comparisons between the two formats and how
they differ:
|
Feature |
OpenGL 1.2 Core |
Direct3D 7 |
Direct3D 8 |
|
System Mechanics |
|
Operating
System Support |
Windows
(9x, NT, 2000), MacOS, BeOS, *nix, others |
Windows
(9x, 2000, CE) |
Windows
(9x, 2000) |
|
API Definition
Control |
OpenGL ARB |
Microsoft |
Microsoft |
|
API
Specification |
OpenGL
Specification |
SDK/DDK
Documentation and DDK Reference |
SDK
Documentation |
|
API Mechanism |
includes and
libraries |
COM |
COM |
|
Software
Emulation of Unaccelerated Features |
Yes |
No |
No
|
|
Extension
Mechanism |
Yes |
No |
Yes |
|
Source
Implementation Available |
Yes |
Yes |
No |
|
Modeling |
|
Fixed-Function
Vertex Blending |
No |
Yes |
Yes |
|
Programmable
Vertex Blending |
No |
No |
Yes |
|
Parametric
Curve Primitives |
Yes |
No |
Yes |
|
Parametric
Surface Primitives |
Yes |
No |
Yes |
|
Hierarchical
Display Lists |
Yes |
No
|
No
|
|
Rendering |
|
Two-sided
Lighting |
Yes |
No
|
No
|
|
Point Size
Rendering Attributes |
Yes |
No |
Yes |
|
Line Width
Rendering Attributes |
Yes |
No |
No |
|
Programmable
Pixel Shading |
No
|
No |
Yes |
|
Triadic
Texture Blending Operations |
No |
No |
Yes |
|
Cube
Environment Mapping |
No |
Yes |
Yes |
|
Volume
Textures |
Yes |
No |
Yes |
|
Multitexture
Cascade |
No
|
Yes |
Yes |
|
Texture
Temporary Result Register |
No |
No |
Yes |
|
Mirror Texture
Addressing |
No |
Yes |
Yes |
|
Texture
"Wrapping" |
No |
Yes |
Yes |
|
Range-Based
Fog |
No |
Yes |
Yes |
|
Bump Mapping |
No |
Yes |
Yes |
|
Modulate 2X
Texture Blend |
No |
Yes |
Yes |
|
Modulate 4X
Texture Blend |
No |
Yes |
Yes |
|
Add Signed
Texture Blend |
No |
Yes |
Yes |
|
Frame Buffer |
|
Hardware
Independent Z Buffer Access |
Yes |
No
|
No
|
|
Full-Screen
Antialiasing |
Yes |
Yes |
Yes |
|
Motion Blur |
Yes |
No |
Yes |
|
Depth of Field |
Yes |
No |
Yes |
|
Accumulation
Buffers |
Yes |
No |
No
|
|
Miscellaneous |
|
Picking
Support |
Yes |
No
|
No
|
|
Multiple
Monitor Support |
No |
Yes |
Yes |
|
Stereo
Rendering |
Yes |
Yes |
No |
Please note that as DirectX and Direct3D become even more
mature, the differences and the speed of the interface as
well as its acceptance in the professional workstation
environment will continue to increase.
How can I get more information on this subject?
Update early, update often and back it up. What more can
I say?! Verify the capabilities of the video cards you are
looking at and the requirements of not only the operating
system but also your applications. If you have questions or
comments about this article or if there is anything new on
the subject, contact me. I would be happy to respond!
All product names / logos, company names /
logos are copyrights of their respective holders. John Boline is an MCSE,
CNE, USE and a member of the Network Professional Association. The content
herein is often based on late-breaking events. Much of the material is based
on information from sources that are believed to be reliable. Hagerman &
Company, Inc. disclaims all warranties as to the ultimate accuracy or
completeness of the information. Hagerman & Company, Inc. and its employees
shall have no liability for errors, omissions or inadequacies in the
information contained within this article or for any interpretations
thereof. The recommendations, positions and best practice policies outlined
herein represent Hagerman & Company, Inc. initial analysis and therefore are
subject to change as further information which may have bearing on these
positions is made available. The reader assumes sole responsibility for the
selection of these materials to achieve its intended results. The opinions
expressed herein are subject to change without notice. Entire contents ©
2007 Hagerman & Company, Inc. All rights reserved. Reproduction of this
publication in any form without prior written permission is forbidden.
top
|