Another patent by Nvidia...

nAo

Nutella Nutellae
Veteran
Abstract:
Method for efficiently rendering color information for a pixel in a computer system

A method and system for efficiently rendering and displaying the color intensity information of a pixel in a computer system is disclosed. The pixel includes a plurality of fragments. The method and system comprises providing a weighted average of a preselected number of the plurality of fragments for a pixel for a plurality of the color intensity information to a first portion of a register. The register is within a data structure in the computer system. The method and system also includes providing the color intensity information of a preselected number of fragments, except the one with the largest coverage to at least one additional portion of the register. The method and system further includes sending the information in the first portion and at least one additional portion to a memory in the computer system and sending the information in the first portion and at least one additional portion of the memory to a display. A method and system in accordance with the present invention allows one to eliminate the resolving step associated with the conventional A-buffer anti-aliasing scheme. Accordingly, it is cost-effective while maintaining image quality at a high level.
Here we go: http://patft.uspto.gov/netacgi/nph-...t00&s1=nvidia&OS=nvidia&RS=nvidia

ciao,
Marco
 
Hopefully they will use it too, better late than never I guess.

BTW, Id rather see a tiler with true depth sorting and masked combination of the fragments :)
 
MfA said:
Hopefully they will use it too, better late than never I guess.

BTW, Id rather see a tiler with true depth sorting and masked combination of the fragments :)
Well..at least is an interesting step in a good direction. I like this quote:
Each fragment typically includes several kinds of information related to an image. For example, a fragment may include color (RGB), opacity (alpha), depth (z, possibly z slopes) and mask coverage information

It was filed on 19th february 2000, so I hope it will fit in the NV30.

ciao,
Marco
 
Please read it Simon, Id like to know your opinion if you'd care to give it. It is a gross hack ... much further removed from the A-buffer than Z3. In fact I dont quite see how it is supposed to work, unless it is supposed to be used with depth sorted rendering (in the description it only has a single Z value ... I can see their scheme working with only a single color value because of their trick, they use the LSBs to store the average pixel colour excluding the largest fragment, but not with only a single Z value).
 
Unlike Z3, it doesn't seem to store Z slope information (at least not in the "preferred implementation"). Also, it doesn't seem to be capable of doing depth sorting of transparent surfaces.

Finally, it stores a per-fragment value premultipled with coverage, to keep the ramdac from having to multiply with coverage at display time. Methods like this tend to take away about 3 bits of color precision per component where multiple polygons meet, causing a blotchy look if a triangle mesh is used to represent a surface of uniform color. Sounds like a 'gross hack' alright.

The performance and degree of edge antialiasing should be about similar to compressed multisampling (R9700), but this method is not fully sort-independent.

Edit: Seems that I misunderstood something on the first read - it seems to be storing the MSBs of the fragment with the second most coverage in the LSBs of the value being sent to the ramdac, with a weighted average value in the higher bits. Will still result in blotches, as far as I can see ...
 
Aaarg this makes no sense to me at all...

If anyone has the time and incliniation, could you please post an explanation?

They claim to skip what they call the "A-buffer resolve step". AFAICS there is no sorting of samples going on, and i'm not sure what the coverage mask is being used for exactly.

Accordingly, as has been above mentioned, the register 50 can be of any size, the key feature being that a weighted average value is provided to the register 50 to provide a close indication of the exact color intensity values of the plurality of pixels. As has also been before mentioned, although it is important to limit the amount of storage required by utilizing a pre-selected number of fragments allocation scheme, the maximum number of fragments allowed per pixel can be any number. Hence, this system may be utilized in a A-buffering antialiasing scheme where there are any number (such as 2, 3 or 4) fragments per pixel and as long as the weighted average of the red intensity of all the fragments is placed in a first portion of the red intensity value register 51 and the red intensities of all fragments except the one with the greatest coverage are placed in the second portion of the register 51.

So...where are fixed number of fragments being referred to?
How is the weighted average of all fragment contributions being computed?

Serge
 
Back
Top