Computer graphics processing and selective visual display system – Computer graphics processing – Three-dimension
Reexamination Certificate
1996-06-04
2002-02-19
Zimmerman, Mark (Department: 2671)
Computer graphics processing and selective visual display system
Computer graphics processing
Three-dimension
C345S589000, C345S629000
Reexamination Certificate
active
06348919
ABSTRACT:
BACKGROUND AND SUMMARY OF THE INVENTION
The present application relates to computer graphics and animation systems, and particularly to 3D graphics rendering hardware. Background of the art and a summary of the innovative system and method of the present application is described below. Some of the distinctions of the presently preferred embodiment are particularly noted beginning on page 8, 9.
COMPUTER GRAPHICS AND RENDERING
Modern computer systems normally manipulate graphical objects as high-level entities. For example, a solid body may be described as a collection of triangles with specified vertices, or a straight line segment may be described by listing its two endpoints with three-dimensional or two-dimensional coordinates. Such high-level descriptions are a necessary basis for high-level geometric manipulations, and also have the advantage of providing a compact format which does not consume memory space unnecessarily.
Such higher-level representations are very convenient for performing the many required computations. For example, ray-tracing or other lighting calculations may be performed, and a projective transformation can be used to reduce a three-dimensional scene to its two-dimensional appearance from a given viewpoint. However, when an image containing graphical objects is to be displayed, a very low-level description is needed. For example, in a conventional CRT display, a “flying spot” is moved across the screen (one line at a time), and the beam from each of three electron guns is switched to a desired level of intensity as the flying spot passes each pixel location. Thus at some point the image model must be translated into a data set which can be used by a conventional display. This operation is known as “rendering.”
The graphics-processing system typically interfaces to the display controller through a “frame store” or “frame buffer” of special two-port memory, which can be written to randomly by the graphics processing system, but also provides the synchronous data output needed by the video output driver. (Digital-to-analog conversion is also provided after the frame buffer.) Such a frame buffer is usually implemented using VRAM memory chips (or sometimes with DRAM and special DRAM controllers). This interface relieves the graphics-processing system of most of the burden of synchronization for video output. Nevertheless, the amounts of data which must be moved around are very sizable, and the computational and data-transfer burden of placing the correct data into the frame buffer can still be very large.
Even if the computational operations required are quite simple, they must be performed repeatedly on a large number of datapoints. For example, in a typical 1995 high-end configuration, a display of 1280×1024 elements may need to be refreshed at 72 Hz, with a color resolution of 24 bits per pixel. If blending is desired, additional bits (e.g. another 8 bits per pixel) will be required to store an “alpha” or transparency value for each pixel. This implies manipulation of more than 3 billion bits per second, without allowing for any of the actual computations being performed. Thus it may be seen that this is an environment with unique data manipulation requirements.
If the display is unchanging, no demand is placed on the rendering operations. However, some common operations (such as zooming or rotation) will require every object in the image space to be re-rendered. Slow rendering will make the rotation or zoom appear jerky. This is highly undesirable. Thus efficient rendering is an essential step in translating an image representation into the correct pixel values. This is particularly true in animation applications, where newly rendered updates to a computer graphics display must be generated at regular intervals.
The rendering requirements of three-dimensional graphics are particularly heavy. One reason for this is that, even after the three-dimensional model has been translated to a two-dimensional model, some computational tasks may be bequeathed to the rendering process. (For example, color values will need to be interpolated across a triangle or other primitive.) These computational tasks tend to burden the rendering process. Another reason is that since three-dimensional graphics are much more lifelike, users are more likely to demand a fully rendered image. (By contrast, in the two-dimensional images created e.g. by a GUI or simple game, users will learn not to expect all areas of the scene to be active or filled with information.)
FIG. 1A
is a very high-level view of other processes performed in a 3D graphics computer system. A three dimensional image which is defined in some fixed 3D coordinate system (a “world” coordinate system) is transformed into a viewing volume (determined by a view position and direction), and the parts of the image which fall outside the viewing volume are discarded. The visible portion of the image volume is then projected onto a viewing plane, in accordance with the familiar rules of perspective. This produces a two-dimensional image, which is now mapped into device coordinates. It is important to understand that all of these operations occur prior to the operations performed by the rendering subsystem of the present invention.
FIG. 1B
is an expanded version of
FIG. 1A
, and shows the flow of operations defined by the OpenGL standard.
A vast amount of engineering effort has been invested in computer graphics systems, and this area is one of increasing activity and demands. Numerous books have discussed the requirements of this area; see, e.g., A
DVANCES IN
C
OMPUTER
G
RAPHICS
(ed. Enderle 1990-); Chellappa and Sawchuk, D
IGITAL
I
MAGE
P
ROCESSING AND
A
NALYSIS
(1985); C
OMPUTER
G
RAPHICS
H
ARDWARE
(ed. Reghbati and Lee 1988); C
OMPUTER
G
RAPHICS
: I
MAGE
S
YNTHESIS
(ed. Joy et al.); Foley et al., F
UNDAMENTALS OF
I
NTERACTIVE
C
OMPUTER
G
RAPHICS
(2.ed. 1984); Foley, C
OMPUTER
G
RAPHICS
P
RINCIPLES
& P
RACTICE
(2.ed. 1990); Foley, I
NTRODUCTION TO
C
OMPUTER
G
RAPHICS
(1994); Giloi, Interactive Computer Graphics (1978); Hearn and Baker, C
OMPUTER
G
RAPHICS
(2.ed. 1994); Hill, C
OMPUTER
G
RAPHICS
(1990); Latham, D
ICTIONARY OF
C
OMPUTER
G
RAPHICS
(1991); Magnenat-Thalma, I
MAGE
S
YNTHESIS
T
HEORY
& P
RACTICE
(1988); Newman and Sproull, P
RINCIPLES OF
I
NTERACTIVE
C
OMPUTER
G
RAPHICS
(2.ed. 1979); P
ICTURE
E
NGINEERING
(ed. Fu and Kunii 1982); P
ICTURE
P
OCESSING
& D
IGITAL
F
ILTERING
(2.ed. Huang 1979); Prosise, H
OW
C
OMPUTER
G
RAPHICS
W
ORK
(1994); Rimmer, B
IT
M
APPED
G
RAPHICS
(2.ed. 1993); Salmon, C
OMPUTER
G
RAPHICS
S
YSTEMS
& C
ONCEPTS
(1987); Schachter, C
OMPUTER
I
MAGE
G
ENERATION
(1990); Watt, T
HREE
-D
IMENSIONAL
C
OMPUTER
G
RAPHICS
(2.ed. 1994); Scott Whitman, M
ULTIPROCESSOR
M
ETHODS
F
OR
C
OMPUTER
G
RAPHICS
R
ENDERING
; the SIGGRAPH P
ROCEEDINGS
for the years 1980-1994; and the
IEEE Computer Graphics and Applications
magazine for the years 1990-1994; all of which are hereby incorporated by reference.
Background: Graphics Animation
In many areas of computer graphics a succession of slowly changing pictures are displayed rapidly one after the other, to give the impression of smooth movement, in much the same way as for cartoon animation. In general the higher the speed of the animation, the smoother (and better) the result.
When an application is generating animation images, it is normally necessary not only to draw each picture into the frame buffer, but also to first clear down the frame buffer, and to clear down auxiliary buffers such as depth (Z) buffers, stencil buffers, alpha buffers and others. A good treatment of the general principles may be found in
Computer Graphics: Principles and Practice
, James D. Foley et al., Reading Mass.: Addison-Wesley. A specific description of the various auxiliary buffers may be found in
The OpenGL Graphics System: A Specification
(Version 1.0), Mark Segal and Kurt Akeley, SGI.
In most applications the value written, when clearing any given buffer, is the same at every pixel location, tho
3Dlabs Inc, Ltd.
Cao Huedung X
Groover Robert
Groover & Associates
Zimmerman Mark
LandOfFree
Graphics system with optimized use of unified local and... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Graphics system with optimized use of unified local and..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Graphics system with optimized use of unified local and... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2938831