|
http://patft.uspto.gov/netacgi/n ... 1&RS=PN/7372471
这个应该就是 Tesla 开始引入的 CSAA 的专利。- BACKGROUND OF THE INVENTION
- Computer graphics systems represent graphical primitives as pixel elements of a display. Aliasing refers to the visual artifacts, such as stair-stepping of surface edges (sometimes known as "jaggies"), that occur when an image is sampled at a spatial sample frequency that is too low.
- A variety of anti-aliasing techniques exist to reduce visual artifacts. One example is supersampling, in which an image is sampled more than once per pixel grid cell and the samples are filtered. For example, in supersampling the contribution of each sample in a pixel may be weighted to determine attributes of the pixel, such as the pixel color. Another example of an anti-aliasing technique is multisampling. As objects are rendered in a multisampling system, a single color is typically computed per primitive and used for all subpixel samples covered by the primitive. Additional background information on anti-aliasing techniques used in graphics processing units (GPUs) may be found in several patents issued to the Nvidia Corporation of Santa Clara, Calif. such as U.S. Pat. No. 6,452,595, "Integrated graphics processing unit with anti-aliasing," U.S. Pat. No. 6,720,975, "Super-sampling and multi-sampling system and method for anti-aliasing," and U.S. Pat. No. 6,469,707, "Method for efficiently rendering color information for a pixel in a computer system," the contents of each of which are hereby incorporated by reference.
- In both supersampling and multisampling the quality of the anti-aliasing tends to improve as the number of samples per partially covered pixel increases. For example, increasing the number of samples per pixel from four samples ("4.times." sampling) to sixteen ("16.times." sampling) would be expected to reduce visual artifacts. However, as the number of samples per pixel increases more sample data must be generated, stored, transported, and processed. Consequently, the required memory resources, computing resources, and memory bandwidth may increase as the number of samples per pixel is increased. As a result, the cost and complexity of a graphics system tends to increase as the number of samples used for anti-aliasing increases.
- Therefore, what is desired is an improved apparatus, system, and method for anti-aliasing that achieves many of the same benefits associated with an increase in the number of samples per pixel but without the corresponding increase in cost and complexity associated with conventional anti-aliasing techniques.
- SUMMARY OF THE INVENTION
- A graphics system has a mode of operation in which it determines coverage of primitives at a single real sample location within a pixel and at least one virtual sample location within the pixel. In one embodiment, a virtual sample is a pointer that points to either the single real sample associated with the same pixel or to a neighboring proximate pixel. Information on virtual sample coverage is used to adjust the weights of real samples for a down-filtering process.
- In one embodiment, generating weighted samples for anti-aliasing a pixel includes: determining coverage by primitives over a single real sample location per pixel and at least one virtual sample location per pixel; for each virtual sample location within a pixel, identifying a virtual sample as belonging to either said pixel or to a neighboring pixel proximate said virtual sample location; and utilizing virtual sample coverage information to adjust the weights of real samples with real samples of neighboring pixels.
复制代码 还有这个:
http://patft.uspto.gov/netacgi/n ... 9&RS=PN/7333119- generating at least one real sample for a primitive covering the pixel, the real sample including z depth data and color data for a sample location within the pixel; detecting coverage of at least one virtual sample location by said primitives within the pixel; for each covered virtual sample location within the pixel, forming a virtual sample by generating a pointer identifying a set of real sample locations within the pixel that are also covered by a common visible primitive; utilizing said at least one virtual sample to adjust the weight of at least one real sample for anti-aliasing; and displaying the anti-aliased pixel.
- for each real sample r weight[r] = 1;// contribution of real sample itself for each virtual sample determine closest real sample r with a 1 in the bitmask weight[r]++. A table may be used to determine, for each virtual sample and coverage bit pattern, which eligible real sample is the closest.
- The final pixel color is calculated during anti-aliasing using the weights calculated for the real samples. An exemplary algorithm for computing the final pixel color as a weighted average of the real sample colors (color[r]) is as follows
- finalcolor = 0;
- for each real sample r finalcolor += color[r]* weight[r]/ (total samples).
复制代码 |
|