Method and system for multi-pass rendering
First Claim
1. In a graphics processing system, a method for rendering geometric primitives in a view volume to compute a display image for a view space at a computational rate greater than 10 Hz, the method comprising:
- rendering a first set of geometric primitives in a first pass including rasterizing the first set of geometric primitives to generate pixel data, storing the pixel data in a rasterization buffer, including sub-pixel anti-aliasing data, resolving the pixel data, including the sub-pixel anti-aliasing data, in the rasterization buffer to compute anti-aliased pixel data, and transferring the anti-aliased pixel data to a memory device, wherein the first set of geometric primitives represents a first object, the first object is rendered to a first anti-aliased image layer such that the first anti-aliased image layer is independently accessible as a texture map for use in texture mapping operations in other rendering passes within a computational period of the display image, the first object is rendered to sub-divided 2D regions of the view space, and each of the anti-aliased images corresponding to the 2D regions are independently accessible for texture mapping operations;
performing a subsequent rendering pass including rasterizing the first set of geometric primitives using the anti-aliased pixel data as a texture to produce rendered image data;
generating the display image from the rendered image data at the computational rate; and
repeating the above steps to produce subsequent display images at the computational rate.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for improved multi-pass rendering in a graphics system includes rendering geometry in a scene to generate rendered image data and then feeding back this rendered image data for a subsequent rendering pass for the same or other geometry in a scene. Geometric primitives are rasterized to generate pixel data, which is stored in a rasterization buffer. The pixel data, including lists of fragment records, is resolved and stored in a shared memory. Resolved pixel data can be combined to generate a display image at real-time, interactive rates. The resolved pixel data can also be used as a texture for subsequent rendering operations. Geometry in a scene can be rasterized in more than one pass to generate pixel data including fragments for partially covered pixels. Fragments from subsequent passes can be blended with corresponding fragments stored in the rasterization buffer from a previous pass.
314 Citations
19 Claims
-
1. In a graphics processing system, a method for rendering geometric primitives in a view volume to compute a display image for a view space at a computational rate greater than 10 Hz, the method comprising:
-
rendering a first set of geometric primitives in a first pass including rasterizing the first set of geometric primitives to generate pixel data, storing the pixel data in a rasterization buffer, including sub-pixel anti-aliasing data, resolving the pixel data, including the sub-pixel anti-aliasing data, in the rasterization buffer to compute anti-aliased pixel data, and transferring the anti-aliased pixel data to a memory device, wherein the first set of geometric primitives represents a first object, the first object is rendered to a first anti-aliased image layer such that the first anti-aliased image layer is independently accessible as a texture map for use in texture mapping operations in other rendering passes within a computational period of the display image, the first object is rendered to sub-divided 2D regions of the view space, and each of the anti-aliased images corresponding to the 2D regions are independently accessible for texture mapping operations; performing a subsequent rendering pass including rasterizing the first set of geometric primitives using the anti-aliased pixel data as a texture to produce rendered image data; generating the display image from the rendered image data at the computational rate; and repeating the above steps to produce subsequent display images at the computational rate. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. In an image processing system, a method for rendering geometric primitives in a view volume to compute an image for a view space at a computational rate, the method comprising:
-
in a first rendering pass, rasterizing geometric primitives to generate pixel data including fragment records having color and depth data and corresponding to pixel locations in the image; storing the pixel data from the first rendering pass including the fragment records in a rasterization buffer; in a second rendering pass, generating pixel data including fragment records corresponding to the pixel locations in the image; and blending the color data of the fragment records from the first rendering pass stored in the rasterization buffer with the color data of the fragment records generated in the second rendering pass, including searching fragments records corresponding to a location of an incoming fragment generated in the second pass to find a fragment record from the first rendering pass that is likely to originate from the same geometric primitive as the incoming fragment; storing blended fragment records in the rasterization buffer; and resolving the blended fragment records in the rasterization buffer to produce resolved image data, wherein the first and second rendering passes comprise rasterizing a subset of the geometric primitives in the view volume corresponding to an object, and rasterizing portions of the object to sub-regions of the view space corresponding to each of the portions of the object, such that the rasterization buffer is used to render each of the portions, one portion of the object at a time. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A system for rendering geometric primitives in a view volume to compute a display image for a view space at a computational rate, the system comprising:
-
a rasterization buffer; a rasterizer operable to read geometric primitive data, operable to read rendering control commands, and operable to generate sets of pixel data in multiple rendering passes for a corresponding set of the geometric primitive data in response to a multi-pass rendering control command, wherein each of the sets of pixel data correspond to a 2D image region of a view space, the rasterizer is operable to generate the sets of pixel data in series for one region at a time, the 2D regions correspond to sub-regions of a 2D projection of an object, and the sets of geometric primitives comprise portions of the object; a pixel engine in communication with the rasterizer to receive the sets of pixel data for the multiple rendering passes, operable to control transfer of at least a first set of selected fragment records to the rasterization buffer, and operable to blend selected fragment records from one or more subsequent rendering passes with corresponding selected fragment records from one or more previous rendering passes stored in the rasterization buffer, the rasterization buffer operable to store blended fragment records after the one or more subsequent rendering passes; and a pixel post processor in communication with the rasterization buffer operable to resolve blended fragment records and compute anti-aliased sets of a pixel data for each of the image regions and operable to store the anti-aliased set of pixel data for each image region in a memory device such that each image region is independently accessible to the rasterizer and the rasterizer is operable to independently retrieve each of the anti-aliased sets of pixel data for use as texture samples. - View Dependent Claims (15, 16, 17, 18)
-
-
19. A system for rendering geometric primitives in a view volume to compute a display image for a view space at a computational rate, the system comprising:
-
gsprite memory; a texture cache; a rasterization buffer; a rasterizer operable to read geometric primitive data, operable to read rendering control commands, and to generate pixel data for a corresponding set of the geometric primitive data in response to a rendering control command, the rasterizer including an interpolator for generating interpolated color values interpolated from the geometric primitive data for pixel locations in the image and a texture modulator for multiplying the interpolated color values by texture or shadow modulation factors derived from texture samples in the texture cache; a pixel engine in communication with the rasterizer to receive the pixel data, and to control transfer of selected pixel data to the rasterization buffer, including adding texture modulated pixels from the texture modulator with pixel data from a previous rendering pass in the rasterization buffer to composite pixel data from different rendering passes, and an antialiasing engine in communication with the rasterization buffer to resolve the selected pixel data, including composited pixel data, stored in the rasterization buffer and in communication with the gsprite memory to store resolved pixel data; the rasterizer being in communication with the gsprite memory to read the resolved pixel data and to control transfers of the resolved pixel data to the texture cache; the rasterizer being in communication with the texture cache to texture map the resolved pixel data in the texture cache to geometric primitives in the view volume, and to add the texture modulated, resolved pixels to pixel data from the rasterization buffer.
-
Specification