US7573485B1ExpiredUtility

System and method for virtual coverage anti-aliasing

63
Assignee: NVIDIA CORPPriority: Nov 2, 2004Filed: Dec 13, 2007Granted: Aug 11, 2009
Est. expiryNov 2, 2024(expired)· nominal 20-yr term from priority
G06T 11/40
63
PatentIndex Score
2
Cited by
9
References
22
Claims

Abstract

A graphics system has a mode of operation in which real samples and virtual samples are generated for anti-aliasing pixels. Each virtual sample identifies a set of real samples associated with a common primitive that covers a virtual sample location within a pixel. The virtual samples provide additional coverage information that may be used to adjust the weights of real samples.

Claims

exact text as granted — not AI-modified
1. A method of generating weighted samples for anti-aliasing a pixel, comprising:
 in a graphics processing unit (GPU), generating a sequence of graphical primitives for a scene; 
 in the GPU, selecting a number of real samples per pixel and a number of virtual samples per pixel using an Application Programming Interface (API); 
 in the GPU, 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; 
 in the GPU, detecting coverage of at least one virtual sample location by said primitives within the pixel; 
 in the GPU, 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; 
 in the GPU, utilizing said at least one virtual sample to adjust the weight of at least one real sample for anti-aliasing and generating an anti-aliased pixel; and 
 displaying the anti-aliased pixel; 
 wherein a selection of the number of real samples and virtual samples per pixel made via the API corresponds to a quality setting that determines a tradeoff between anti-aliasing quality, bandwidth, and memory requirements. 
 
   
   
     2. The method of  claim 1 , wherein the sum of the number of real samples and the number of virtual samples is a pre-selected total number with the anti-aliasing quality corresponding to the number of real samples used per pixel and with an optimum anti-aliasing quality occurring when the number of real samples equals the pre-selected total number. 
   
   
     3. The method of  claim 2 , wherein the sum of the number of real samples and the number of virtual samples per pixel equals sixteen corresponding to 16× sampling when there are only real samples and an approximation of 16× sampling when there is a mixture of real samples and virtual samples. 
   
   
     4. The method of  claim 1 , wherein said virtual sample is a pointer that has no color component data and no z depth data. 
   
   
     5. The method of  claim 1 , wherein said detecting coverage comprises:
 receiving a new primitive for said scene; and 
 determining changes in coverage of said pixel. 
 
   
   
     6. The method of  claim 5 , wherein said forming a virtual sample comprises:
 detecting a change in coverage of at least one virtual sample location associated with said new primitive; and 
 updating a virtual coverage buffer to indicate a new set of real samples associated with said at least one virtual sample location. 
 
   
   
     7. The method of  claim 6 , wherein said detecting and updating is continued for each new primitive until said scene is finished. 
   
   
     8. The method of  claim 1 , wherein each virtual sample comprises a bitcode to indicate which real samples within said pixel own the virtual sample. 
   
   
     9. The method of  claim 1 , wherein said anti-aliasing process is a multi-sampling process. 
   
   
     10. The method of  claim 1 , wherein said anti-aliasing process is a supersampling process. 
   
   
     11. A method of generating weighted samples for anti-aliasing a pixel, comprising:
 in a graphics processing unit (GPU), selecting a number of real samples per pixel and a number of virtual samples per pixel using an Application Programming Interface (API); 
 in the GPU, determining coverage of a sequence of primitives generated for the scene on real sample locations and virtual sample locations; 
 in the GPU, for each real sample location, generating a real sample having at least color component information and z depth information; 
 in the GPU, for each virtual sample location, generating a virtual sample that is a pointer identifying a set of real samples which are covered by a common primitive but with each virtual sample having no independent color component information and z-depth information; 
 in the GPU, utilizing coverage information for at least one of said virtual sample locations to adjust the weight of at least one of said real samples for anti-aliasing and generating an anti-aliased pixel; and 
 displaying the anti-aliased pixel; 
 wherein a selection of the number of real samples and virtual samples per pixel made via the API corresponds to a quality setting that determines a tradeoff between anti-aliasing quality, bandwidth, and memory requirements. 
 
   
   
     12. The method of  claim 11 , wherein each virtual sample is generated for each said virtual sample location that is covered corresponding to a bitcode identifying said set of real samples. 
   
   
     13. The method of  claim 11 , wherein said anti-aliasing process is a multi-sampling process. 
   
   
     14. The method of  claim 11 , wherein said anti-aliasing process is a supersampling process. 
   
   
     15. The method of  claim 11 , wherein the sum of the number of real samples and the number of virtual samples is a pre-selected total number corresponding to the number of real samples used per pixel and with an optimum anti-aliasing quality occurring when the number of real samples equals the pre-selected total number. 
   
   
     16. The method of  claim 15 , wherein the sum of the number of real samples and the number of virtual samples per pixel equals sixteen corresponding to 16× sampling when there are only real samples and an approximation of 16× sampling when there is a mixture of real samples and virtual samples. 
   
   
     17. A method of generating weighted samples for anti-aliasing a pixel, comprising:
 in a graphics processing unit (GPU), selecting a number of real samples per pixel and a number of virtual samples per pixel using an Application Programming Interface (API); 
 in the GPU, determining coverage by primitives over virtual sample locations and real sample locations; and 
 in the GPU, for each real sample location, generating a real sample having at least color component data at the real sample location; 
 in the GPU, for each virtual sample location that is covered by a primitive, generating a virtual sample that is a pointer to real sample locations covered by a common primitive; 
 in the GPU, utilizing virtual sample coverage information to adjust the weights of real samples to perform anti-aliasing and generating an anti-aliased pixel; and 
 displaying the anti-aliased pixel; 
 wherein a selection of the number of real samples and virtual samples per pixel made via the API corresponds to a quality setting that determines a tradeoff between anti-aliasing quality, bandwidth, and memory requirements. 
 
   
   
     18. The method of  claim 17 , wherein the sum of the number of real samples and the number of virtual samples is a pre-selected total number with the anti-aliasing quality corresponding to the number of real samples used per pixel and with an optimum anti-aliasing quality occurring when the number of real samples equals the pre-selected total number. 
   
   
     19. The method of  claim 18 , wherein the sum of the number of real samples and the number of virtual samples per pixel equals sixteen corresponding to 16× sampling when there are only real samples and an approximation of 16× sampling when there is a mixture of real samples and virtual samples. 
   
   
     20. A graphics system generating weighted samples for anti-aliasing pixels, comprising:
 a graphics processing unit (GPU) configured to have a mode of operation in which it selects a number of real samples per pixel and a number of virtual samples per pixel using an Application Programming Interface (API) and determines coverage by primitives over virtual sample locations and real sample locations, the GPU generating a real sample having color data and z depth data for each real sample location and generating a virtual sample at each virtual sample location with each virtual sample being a pointer identifying corresponding real sample locations covered by a common primitive, said GPU utilizing virtual sample coverage information to adjust the weights of real samples; 
 wherein a selection of the number of real samples and virtual samples per pixel made via the API corresponds to a quality setting that determines a tradeoff between anti-aliasing quality, bandwidth, and memory requirements. 
 
   
   
     21. The system of  claim 20 , wherein the sum of the number of real samples and the number of virtual samples is a pre-selected total number with the anti-aliasing quality corresponding to the number of real samples used per pixel and with an optimum anti-aliasing quality occurring when the number of real samples equals the pre-selected total number. 
   
   
     22. The system of  claim 21 , wherein the sum of the number of real samples and the number of virtual samples per pixel equals sixteen corresponding to 16× sampling when there are only real samples and an approximation of 16× sampling when there is a mixture of real samples and virtual samples.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.