Claims
- 1. A method for culling in a graphics rendering pipeline configured to render three-dimensional (3-D) graphics information onto a two-dimensional (2-D) screen, said graphics information comprising a plurality of graphics primitives, said method comprising:
identifying a first group of primitives wherein each primitive overlaps a pixel of said 2-D screen; culling portions of said first group of primitives that do not affect a final color of said pixel, thereby generating a potentially visible group of graphics information; and dispatching said potentially visible group of graphics information to a pixel unit.
- 2. A method according to claim 1, wherein said method further comprises:
performing a stencil test or alpha test on graphics information within said potentially visible group, and not performing stencil or alpha tests on culled portions of said first group.
- 3. A method according to claim 1, wherein said culling is based on depth and transparency data.
- 4. A method according to claim 1, wherein said culling comprises:
for each primitive in said first group of primitives, determining if said primitive is completely hidden within said 2-D screen, and (i) if said primitive is completely hidden within said 2-D screen, discarding data associated with said primitive; and (ii) if said primitive is not completely hidden within said 2-D screen, generating a visible stamp list, each stamp containing a portion of said primitive that may be visible.
- 5. A method according to claim 4, wherein said determining is based at least in part on said primitive's bounding box.
- 6. A method according to claim 5, wherein said determining comprises querying a Magnitude Comparison Content Addressable Memory (MCCAM) with said bounding box.
- 7. A method according to claim 4, wherein said generating a visible stamp list comprises calculating a left-most position and a right-most position of said primitive within each subraster line that contains at least one sample point.
- 8. A method according to claim 4, wherein said generating a visible stamp list comprises computing a z-value of said primitive at each sample point covered and comparing said calculated z-value with a current z-value associated with said sample point.
- 9. A method according to claim 4, further comprising:
determining a front-most opaque geometry; and dispatching only graphics data determined to be in front of said front-most opaque geometry.
- 10. A method of culling graphics primitives in a graphics rendering pipeline, said method characterized in that a frame buffer is accessed during rendering of only a subset of all primitives that overlap a first pixel.
- 11. A method according to claim 10, wherein said subset of all primitives that overlap a first pixel consists of less than all primitives that overlap said first pixel.
- 12. A method according to claim 10, wherein said subset of all primitives that overlap a first pixel consists of at least one primitive that overlaps said first pixel but fewer than all primitives that overlap said first pixel.
- 13. A computer program product for use in conjunction with a computer system, the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer mechanism, comprising:
a program module that directs the culling of graphics information comprising a plurality of graphics primitives, the program module including instructions for:
identifying a first group of primitives wherein each primitive overlaps a pixel of a two-dimensional display screen region; culling portions of said first group of primitives that do not affect a final color of said pixel, thereby generating a potentially visible group of graphics information; and dispatching said potentially visible group of graphics information to a pixel unit.
- 14. A computer program product according to claim 13, wherein said program module further including instructions for:
performing a stencil test or alpha test on graphics information within said potentially visible group, and not performing stencil or alpha tests on culled portions of said first group.
- 15. A computer program product according to claim 13, wherein said culling is based on depth and transparency data.
- 16. A computer program product according to claim 13, wherein said culling comprises:
for each primitive in said first group of primitives, determining if said primitive is completely hidden within said 2-D screen, and (i) if said primitive is completely hidden within said 2-D screen, discarding data associated with said primitive; and (ii) if said primitive is not completely hidden within said 2-D screen, generating a visible stamp list, each stamp containing a portion of said primitive that may be visible.
- 17. A computer program product according to claim 16, wherein said determining is based at least in part on said primitive's bounding box.
- 18. A computer program product according to claim 17, wherein said determining comprises querying a Magnitude Comparison Content Addressable Memory (MCCAM) with said bounding box.
- 19. A computer program product according to claim 16, wherein said generating a visible stamp list comprises calculating a left-most position and a right-most position of said primitive within each subraster line that contains at least one sample point.
- 20. A computer program product according to claim 16, wherein said generating a visible stamp list comprises computing a z-value of said primitive at each sample point covered and comparing said calculated z-value with a current z-value associated with said sample point.
- 21. A computer program product according to claim 16, wherein said program module further including instructions for:
determining a front-most opaque geometry; and dispatching only graphics data determined to be in front of said front-most opaque geometry.
- 22. A method for culling graphics primitives prior to rendering said graphics primitives in a two-dimensional region, said method comprising:
identifying a first group of graphics primitives, each of said first group of graphics primitive overlapping a pixel of a two-dimensional display region; culling portions of said first group of graphics primitives that do not affect a final value of said pixel; generating a potentially visible group of graphics primitives that excludes said culled graphics primitive portions; and communicating at most selected ones of said potentially visible group of graphics primitives but none of said culled portions of said graphics primitives to a pixel rendering unit.
- 23. A method according to claim 22, wherein said final value is selected from the set of final values consisting of a depth value, a color value, a z-value, and combinations thereof.
- 24. A method according to claim 22, wherein said pixel rendering unit is in electronic communication with a frame buffer memory.
- 25. A method according to claim 24, wherein said communicating at most selected ones of said potentially visible group of graphics primitives but none of said culled portions of said graphics primitives to a two-dimensional pixel rendering unit comprises communicating only said potentially visible group of graphics primitives but none of said culled portions of said graphics primitives to said frame buffer memory.
- 26. A method according to claim 24, wherein said culling is based at least in part on graphic primitive depth and transparency data.
- 27. A method according to claim 24, wherein said culling comprises:
for each graphic primitive in said first group of graphic primitives, determining if said graphic primitive is completely hidden within a two-dimensional display screen region, and (i) if said primitive is hidden within said two-dimensional display region, discarding data associated with said primitive; and (ii) if said primitive is not hidden within said two-dimensional display region, identifying portions of said graphics primitive that may be visible.
RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent application Ser. No. 09/378,391, hereby incorporated by reference, filed Aug. 20, 1999, which application claims the benefit under 35 USC Section 119(e) of U.S. Provisional Patent Application Serial No. 60/097,336 filed Aug. 20, 1998 and entitled GRAPHICS PROCESSOR WITH DEFERRED SHADING; and claims the benefit under 35 USC Section 120 of U.S. patent application Ser. No. 09/213,990 filed Dec. 17, 1998 entitled HOW TO DO TANGENT SPACE LIGHTING IN A DEFERRED SHADING ARCHITECTURE; each of which is hereby incorporated by reference.
[0002] This application is also related to the following U.S. patent applications, each of which are incorporated herein by reference: Ser. No. 09/213,990, filed Dec. 17, 1998, entitled HOW TO DO TANGENT SPACE LIGHTING IN A DEFERRED SHADING ARCHITECTURE;
[0003] Ser. No. 09/378,598, filed Aug. 20, 1999, entitled APPARATUS AND METHOD FOR PERFORMING SETUP OPERATIONS IN A 3-D GRAPHICS PIPELINE USING UNIFIED PRIMITIVE DESCRIPTORS;
[0004] Ser. No. 09/378,633, filed Aug. 20, 1999, entitled SYSTEM, APPARATUS AND METHOD FOR SPATIALLY SORTING IMAGE DATA IN A THREE-DIMENSIONAL GRAPHICS PIPELINE;
[0005] Ser. No. 09/378,439, filed Aug. 20, 1999, entitled GRAPHICS PROCESSOR WITH PIPELINE STATE STORAGE AND RETRIEVAL;
[0006] Ser. No. 09/378,408, filed Aug. 20, 1999, entitled METHOD AND APPARATUS FOR GENERATING TEXTURE;
[0007] Ser. No. 09/379,144, filed Aug. 20, 1999, entitled APPARATUS AND METHOD FOR GEOMETRY OPERATIONS IN A 3D GRAPHICS PIPELINE;
[0008] Ser. No. 09/372,137, filed Aug. 20, 1999, entitled APPARATUS AND METHOD FOR FRAGMENT OPERATIONS IN A 3D GRAPHICS PIPELINE;
[0009] Ser. No. 09/377,503, filed Aug. 20, 1999, entitled Deferred Shading Graphics Pipeline Processor Having Advanced Features; and
[0010] Ser. No. 09/378,637, filed Aug. 20, 1999, entitled DEFERRED SHADING GRAPHICS PIPELINE PROCESSOR;
[0011] Ser. No. 09/378,299, filed Aug. 20, 1999, entitled DEFERRED SHADING GRAPHICS PIPELINE PROCESSOR, now U.S. Pat. No. 6,229,553; and
[0012] Ser. No. 09/378,598, filed Aug. 20, 1999, entitled APPARATUS AND METHOD FOR PERFORMING SETUP OPERATIONS IN A 3-D GRAPHICS PIPELINE USING UNIFIED PRIMITIVE DESCRIPTORS.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60097336 |
Aug 1998 |
US |
Continuations (1)
|
Number |
Date |
Country |
Parent |
09378391 |
Aug 1999 |
US |
Child |
10231436 |
Aug 2002 |
US |