Method and apparatus for efficiently switching state in a...

Computer graphics processing and selective visual display system – Computer graphic processing system – Plural graphics processors

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C345S504000

Reexamination Certificate

active

06252610

ABSTRACT:

FIELD OF THE INVENTION
The present invention relates generally to systems for computer graphics. More specifically, the present invention includes a method and apparatus for efficient multipass rendering of graphics primitives.
BACKGROUND OF THE INVENTION
Computer systems (and related devices) typically model three-dimensional images using a mosaic-like approach where each image is partitioned into a collection of individual points, lines and polygons. These points, lines and polygons are know as primitives and a single image may require thousands, or even millions, of primitives. The definition of an image may also include one or more graphics attributes. Each attribute defines a property that affects how the primitives within an image will appear. Examples of attributes include attributes that define light sources and attributes that define textures.
The primitives and attributes used to describe three-dimensional images are transformed into pixel values using a process known as rendering. The rendering process is typically partitioned into a series of tasks that are arranged as a sequential pipeline. Early tasks within this pipeline perform transformations on the primitives included within the image being rendered. For example, a task may be used to transform primitives to reflect the presence of a light source. The operation of these tasks is controlled by the attributes included within the image definition. Thus, operation of a lighting task is controlled by attributes that describe light sources.
The transformation tasks are followed by one or more rasterization tasks. The rasterization tasks transform each primitive into a collection of pixel values. The pixel values are stored in a memory storage device known as a frame buffer. Rasterization tasks, like transformation tasks, operate under control of the attributes included within the image definition. As an example, operation of a texturing task is controlled by attributes that describe image textures. In some ways, rasterization tasks resemble transformation tasks. Unlike transformation tasks, however, the effect of rasterization tasks is pixel oriented. This distinguishes these tasks from transformation tasks because the latter generally operate to transform primitives, not pixels.
Multipass rendering is a technique that builds upon the basic rendering mechanism just described. For multipass rendering, the same pipeline is used to repeatedly render selected primitives within an image. Each iteration of this process is referred to as a pass. During each pass, the pipeline performing the rendering process is reconfigured to reflect a different set of attributes. This alters the rendering effect produced by each successive pass. As an example, successive passes may specify different light sources or different textures. In this way, multipass rendering allows more complex sequences of tasks to be used during image creation. The net effect is to increase image quality and complexity. This makes multipass rendering especially important when photo-realistic three-dimensional images are required.
Unfortunately, creating images using multipass rendering tends to be relatively time consuming. One method for expediting multipass rendering is to divide the primitives within an image into small groups. These groups are then processed on a group-by-group basis. Rendering of preceding groups is completed through each pass before rendering of following groups initiates. Ordering multipass rendering on a primitive-by-primitive basis increases the locality of memory accesses within the frame buffer and within the host computer. This increases frame buffer efficiency by reducing DRAM page misses. Increased locality also increases the effectiveness of host and frame buffer cache memories.
Unfortunately, ordering multipass rendering on a group-by-group basis increases the frequency of pipeline reconfiguration. This follows because the pipeline must be repeatedly reconfigured to reflect the entire sequence of passes each time a new group is rendered. The process of pipeline reconfiguration may be time consuming—especially in the case of deep pipelines, involving multiple tasks. In practice, the time spent performing pipeline reconfiguration may partially, or fully, offset the efficiency gained by rendering on a group-by-group basis. As a result, there is a need for rendering methods that exploit the memory locality associated with rendering on a group-by-group basis without the inefficiency associated with repeated pipeline reconfigurations.
SUMMARY OF THE INVENTION
An embodiment of the present invention includes a system for efficient multipass rendering of graphics primitives. The multipass rendering system includes a graphics pipeline organized as a sequential series of tasks followed by a frame buffer. The graphics pipeline receives graphics primitives from a host computer system. Each task within the graphic pipeline performs a specific type of transformation or rasterization operation on the graphics primitives. The entire sequence of tasks combines to render the received primitives into pixel values stored in the frame buffer.
The rendering apparatus includes a memory system for storing state information. The memory system is organized so that each pipeline task has an associated series of state information blocks. These state information blocks are organized on a rendering pass by rendering pass basis. This provides each rendering task with a first state information block for a first rendering pass, a second state information block for a second rending pass, and so on.
Prior to multipass rendering, the host computer stores graphics attributes, corresponding to a series of rendering passes, in the memory system. The host computer then passes a first token through the graphics pipeline. The first token causes the pipeline tasks to select their respective first state information blocks. The host computer follows the first token by sending a selected group of one or more graphics primitives through the graphics pipeline. The graphics primitives are rendering by the pipeline tasks, using the state information included in the first state information blocks.
The host processor then sends a second token through the graphics pipeline. The second token causes the pipeline tasks to select their respective second state information blocks. The host computer follows the second token by sending the same group of graphics primitives through the graphics pipeline. This causes the graphics primitives to be rendering by the pipeline tasks using the state information included in the second state information blocks.
The process of passing tokens to select state information blocks followed by rendering the selected group of graphics primitives is repeated until the selected primitives have been fully rendered. The entire process is then repeated to render other groups of graphics primitives. In this way, the present invention provides a multipass rendering system that largely avoids the expense of pipeline reconfiguration between rendering passes. At the same time, the present invention provides a system that allows graphics primitives to be rendering on a group-by-group or even primitive-by-primitive basis. This increases the locality of frame buffer memory accesses and increases the performance of the rendering system.
Advantages of the invention will be set forth, in part, in the description that follows and, in part, will be understood by those skilled in the art from the description herein. The advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims and equivalents.


REFERENCES:
patent: 5914726 (1999-06-01), Schultz
patent: 5917502 (1999-06-01), Kirkland et al.
patent: 5977977 (1999-11-01), Kajiya et al.
patent: 6025853 (2000-02-01), Baldwin

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and apparatus for efficiently switching state in a... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method and apparatus for efficiently switching state in a..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for efficiently switching state in a... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2488257

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.