~ Computer Graphics, Volume 22, Number 4, August 1988
High-Performance Polygon Rendering
Kurt Akeley
Tom Jermoluk
Silicon Graphics, Inc.
2011 North Shoreline Boulevard
Mountain View, CA 94039-7311
ABSTRACT
This paper describes a system architecture for realtime display of shaded
polygons. Performance of 100,(300 lighted, 4-sided polygons per second is
achieved. Vectors and points draw at the rate of 400,000 per second.
High-speed pan and zoom, alpha blending, realtime video input, and
antialiased lines are supported. The architecture heavily leverages
parallelism in several forms: pipeline, vector, and array processing. It is
unique in providing efficient and balanced graphics that support interactive
design and manipulation of solid models. After an overview of algorithms
and computational requirements, we describe the details of the
implementation. Finally, the unique features enabled by the architecture are
highlighted.
CR Categories and Subject Descriptors: B.2.1 [Arithmetic and Logic
Structures]: Design Styles Parallel, Pipeline; C.1.2 [Processor
Architectures]: Multiprocessorrs - Parallel processors, Pipeline processors;
1.3.1 [Computer Graphics]: Hardware Architecture - Raster Display
Devices.
Additional Key Words and Phrases: Graphics Systems.
Permission to copy without fee all or part of this material is granted
provided that the copies are not made or distributed for direct
commercial advantage, the ACM copyright notice and the title of the
publication and its date appear, and notice is given that copying is by
permission of the Association for Computing Machinery. To copy
otherwise, or to republish, requires a fee and/or specific permission.
©1988 ACM-O-89791-275-6/88/O08/0239 $00.75
1. Introduction
Traditional 3D graphics workstations have concentrated on the hardware
that transforms points and lines from object-space to screen-space. As
users" needs for display of realistic solid objects have increased, demands
on graphics architectures have changed significantly. New challenges
include increases in transformation rate, incorporation of realtime
illumination calculations, and dramatic increases in pixel fill rates.
Contemporary workstations have attempted to satisfy these new demands
using a variety of architectures. Swanson and Thayer [11] describe a
system which incorporates parallel pixel processors in its raster subsystem.
A parallel geometry system is described by Torborg [12]. The lineage of
these and other contemporary graphics systems can be traced to works by
Clark [3], Clark and Hannah [2], and eventually to Fuchs and Johnson [5].
Our specific goals for the performance and capability of the new
architecture were:
• 100,000 polygons per second. The polygons are RGB, 4-sided, 10xl0
pixels, lighted, Gouraud shaded [6], arbitrarily rotated, Z-buffered, clip
tested, projected, and rendered into one of multiple, possibly
overlapping, windows at an instantaneous rate of 100,000 per second.
• 10 frames per second. Realtime systems must be able to draw and
display at rates exceeding 10 Hz.
• Window support. User productivity is optimized by a system that
supports multiple fully independent windows.
First we describe our view of the general algorithmic problem of rendering
100,000 polygons per second, paying particular attention to the
computational requirements of each step of the process. Then we describe
a novel architecture to achieve the goals. Finally we present several unique
features that were realized from the implementation.
2. Problem Description
The floating-point performance and pixel fill rates required for interactive
display of solids are both exceptional. By examining each component of
the problem we show that at least 40 million floating-point operations per
second, and fill rates exceeding 10 million pixels per second, are required to
render 100,000 polygons per second. The problem components are:
1. Transfer vertex data from memory to the graphics subsystem.
2. Transform vertex coordinates.
3. Transform vertex normals.
4. Light each vertex.
5. Clip each vertex.
6. Project each vertex.
7. Map vertex coordinates to the screen.
8. Fill the resulting screen-space polygons, interpolating color and
depth.
239