data structures in the most efficient manner. It also allows
scene management computations to be performed on
the high-performance graphics hardware, eliminating a
bottleneck on the CPU.
Support for game physics and AI. A flexible parallel
architecture can easily support computations such as
collision detection, fluid dynamics simulations (e.g., for
explosions), and artificial intelligence for game play. It
also allows these computations to be tightly integrated
with the rendering computation.
Rapid innovation. Software can be changed more rapidly than hardware, so a flexible parallel architecture that
uses software to express its graphics algorithms enables
more rapid innovation than traditional designs.
The best choice for the system as a whole is to use flexible parallel hardware that permits software to use aggres-
E volution of Data Structures
a . current systems
s cene graph for
s cene management
no spatial
data structure
z-buffer
rendering/
visibility
on graphics
processor
CPU
specialized
hardware
b. future systems
unified data structure scene
management and visibility
(lazy) (lazy)
(lazy)
general-purpose parallel graphics hardware
scene graph
visibility data structure
sive algorithmic specialization and optimization, rather
than to use specialized parallel hardware that mandates a
particular algorithm.
PROGRAMMING MODEL
When I say that future graphics architectures are likely
to support an extremely flexible parallel programming
model, what do I mean? There is considerable debate
within the graphics hardware community as to the
specific programming model that graphics architectures
should adopt in the near future. I expect that in the short
term each of the major graphics hardware companies
will take a somewhat different path. There are a variety
of reasons for this diversity: different emphasis placed on
adding new capabilities versus improving performance of
the old programming models; fundamental philosophical
differences in tackling the parallel programming problem; and the desire by some companies to evolve existing
designs incrementally.
In the longer term (five years or so), the programming models will probably converge, but there is not
yet a consensus on what such a converged programming
model would look like. This section presents some of
the key issues that today’s graphics architects face, as
well as thoughts on what a converged future programming model could look like and the challenges that it
E volution of Overall Graphics System
a . today b . future
application artist application artist
tools tools
game engine game engine
(includes high-level (includes all
rendering algorithms) rendering
graphics API algorithms and
management of
(DirectX, Open GL) parallelism)
graphics driver
graphics hardware
(includes low-level
rendering algorithms) graphics hardware
F IG 5