Method and system for merging pixel fragments in a graphics rendering system
First Claim
Patent Images
1. In a graphics rendering system for rendering geometric primitives to generate an image, a method for merging pixel fragments comprising:
- rasterizing geometric primitives to generate pixel fragments having depth, color, and coverage data;
storing lists of selected pixel fragments in a fragment buffer, each list corresponding to a pixel location in the image;
for a first generated pixel fragment at a first pixel location, determining whether a selected pixel fragment in a corresponding list is within a predefined color tolerance, and determining whether the selected pixel fragment is within a predefined depth tolerance;
merging the generated pixel fragment with a first selected pixel fragment within the predefined color tolerance, and the predefined depth tolerance; and
storing the merged pixel fragment in the corresponding list structure.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for merging pixel fragments to reduce memory usage in a graphics rendering system. In rendering a graphics scene, geometric primitives of objects in the scene are rasterized to create pixel data including pixel fragments representing partially covered pixels. Lists of pixel fragments having color, depth, and coverage data are stored in a fragment buffer. When a new fragment is generated, an attempt is made to merge the fragment with the last fragment stored for a corresponding pixel location. Fragments are merged if they are within predefined depth and color tolerances.
-
Citations
23 Claims
-
1. In a graphics rendering system for rendering geometric primitives to generate an image, a method for merging pixel fragments comprising:
-
rasterizing geometric primitives to generate pixel fragments having depth, color, and coverage data; storing lists of selected pixel fragments in a fragment buffer, each list corresponding to a pixel location in the image; for a first generated pixel fragment at a first pixel location, determining whether a selected pixel fragment in a corresponding list is within a predefined color tolerance, and determining whether the selected pixel fragment is within a predefined depth tolerance; merging the generated pixel fragment with a first selected pixel fragment within the predefined color tolerance, and the predefined depth tolerance; and storing the merged pixel fragment in the corresponding list structure. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A system for rendering geometric primitive data to generate an image for a view space, the system comprising:
-
a rasterization buffer; a rasterizer operable to receive geometric primitives and operable to rasterize the geometric primitives to produce pixel fragments including color, depth, and coverage data; a pixel engine in communication with the rasterizer to receive the pixel fragments, operable to perform a depth compare operation to determine whether to store the pixel fragments in the rasterization buffer, the pixel engine in communication with the rasterization buffer to read stored pixel fragments, operable to compare a pixel fragment generated by the rasterizer with at least a first pixel fragment stored in the rasterization buffer to determine whether the generated pixel fragment is within a color tolerance, and operable to merge the generated pixel fragment with one of the pixel fragments stored in the rasterization buffer. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A system for rendering geometric primitive data to generate an image for a view space, the system comprising:
-
a rasterization buffer including a pixel buffer operable to store pixel records having color and depth data only for pixel locations in a subregion of the image, and a fragment buffer operable to store lists of fragment records corresponding to the pixel locations, the fragment records including color, coverage and depth data for partially cove red pixel locations; a rasterizer operable to receive geometric primitives and operable to rasterize the geometric primitives to produce pixel data including color, depth, and coverage data, operable to rasterize sets of the geometric primitives sorted among 2D subregions of the image being rendered one subregion at a time; a pixel engine in communication with the rasterzer to receive the pixel data, operable to perform a depth compare operation to determine whether to store the pixel data as pixel records or fragment records in the rasterization buffer, the pixel engine in communication with the rasterization buffer to read stored fragment records, operable to compare color data for a partially covered pixel location generated by the rasterizer with at least a first fragment record stored in the fragment buffer to determine whether the color data is within a color tolerance, and operable to merge the color data with one of the fragment records stored in the fragment buffer.
-
-
23. In an image processing system for rendering geometric primitives to generate an image, a method for merging pixel fragments comprising:
-
rasterizing sets of geometric primitives sorted amond 2D subregions of the image to generate pixel data including color, depth, and coverage data, the pixel data corresponding to pixel locations in the subregion of the image being rasterized; storing pixel records for fully covered pixels in memory elements of a pixel buffer, where the number of memory elements in the pixel buffer correspond approximately to M×
N where M and N are dimensions of the subregions;storing fragment records in a fragment buffer for partially covered pixels or pixels having translucency in linked lists corresponding to the memory elements of the pixel buffer, wherein fragment records are stored for only the subregion being rasterized; for incoming pixel data generated in the rasterizing step, performing depth compare operations between the incoming pixel data and corresponding pixel records stored in the pixel buffer to determine whether to replace pixel records stored in the pixel buffer, and to determine whether to add fragment records to corresponding fragment lists; before adding a new fragment record to a corresponding list, determining whether a fragment record added to the corresponding list is within a predefined color tolerance and a predefined depth tolerance relative to the color and depth of the new fragment; merging the new fragment with the fragment record most recently added to the corresponding list when the new fragment is within the predefined color tolerance, and the predefined depth tolerance; and storing the merged fragment record in the corresponding list structure.
-
Specification