Occlusion culling method and apparatus for graphics systems
First Claim
Patent Images
1. A method for conservative stencil culling in a graphics pipeline, comprising:
- (a) maintaining stencil values for regions at a plurality of levels of an image pyramid including a finest level and one or more coarse levels;
(b) determining whether the stencil value for a region at one of the coarse levels is valid; and
(c) performing conservative stencil culling on the region utilizing the stencil value at the coarser level if the stencil value at the coarser level is valid.
0 Assignments
0 Petitions
Accused Products
Abstract
A system, method and computer program product are provided for avoiding reading z-values in a graphics pipeline. Initially, near z-values are stored which are each representative of a near z-value on an object in a region. Such region is defined by a tile and a coverage mask therein. Thereafter, the stored near z-values are compared with far z-values computed for other objects in the region. Such comparison indicates whether an object is visible in the region. Based on the comparison, z-values previously stored for image samples in the region are conditionally read from memory.
120 Citations
94 Claims
-
1. A method for conservative stencil culling in a graphics pipeline, comprising:
-
(a) maintaining stencil values for regions at a plurality of levels of an image pyramid including a finest level and one or more coarse levels;
(b) determining whether the stencil value for a region at one of the coarse levels is valid; and
(c) performing conservative stencil culling on the region utilizing the stencil value at the coarser level if the stencil value at the coarser level is valid. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer program product for conservative stencil culling in a graphics pipeline, comprising:
-
(a) computer code for maintaining stencil values for regions at a plurality of levels of an image pyramid including a finest level and one or more coarser levels;
(b) computer code for determining whether the stencil value for a region at one of the coarser levels is valid; and
(c) computer code for performing conservative stencil culling on the region utilizing the stencil value at the coarser level if the stencil value at the coarser level is valid. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A system for conservative stencil culling in a graphics pipeline, comprising:
-
(a) logic for maintaining stencil values for regions at a plurality of levels of an image pyramid including a finest level and one or more coarser levels;
(b) logic for determining whether the stencil value for a region at one of the coarser levels is valid; and
(c) logic for performing conservative stencil culling on the region utilizing the stencil value at the coarser level if the stencil value at the coarser level is valid.
-
-
20. A method for creating a data structure adapted for use during conservative stencil culling, comprising:
-
(a) maintaining stencil values for regions at a plurality of levels of an image pyramid;
(b) determining whether all of the stencil values of a region at a finer one of the levels of the image pyramid are the same as each other; and
(c) storing a valid indicator indicating whether all of the stencil values of the region at the finer level are the same as each other;
(d) if all of the stencil values at the finer level are the same as each other, storing the stencil value. - View Dependent Claims (21)
-
-
22. A computer program product for creating a data structure adapted for use during conservative stencil culling, comprising:
-
(a) computer code for maintaining stencil values for regions at a plurality of levels of an image pyramid;
(b) computer code for determining whether all of the stencil values of a region at a finer one of the levels of the image pyramid are the same as each other; and
(c) computer code for storing a valid indicator indicating whether all of the stencil values of the region at the finer level are the same as each other;
(d) computer code for, if all of the stencil values at the finer level are the same as each other, storing the stencil value. - View Dependent Claims (23)
-
-
24. A system for creating a data structure adapted for use during conservative stencil culling, comprising:
-
(a) logic for maintaining stencil values for regions at a plurality of levels of an image pyramid;
(b) logic for determining whether all of the stencil values of a region at a finer one of the levels of the image pyramid are the same as each other; and
(c) logic for storing a valid indicator indicating whether all of the stencil values of the region at the finer level are the same as each other;
(d) logic for, if all of the stencil values at the finer level are the same as each other, storing the stencil value.
-
-
25. A data structure stored in memory for use during conservative stencil culling, comprising:
-
(a) a valid indicator object indicating whether all stencil values of a region are equal to each other;
(b) a stencil value object including a stencil value equal to the stencil values of the region if all of the stencil values of the region are equal to each other.
-
-
26. A method for multiple-pass rendering using conservative occlusion culling, comprising:
-
(a) during a first pass, passing objects from an input stream to a geometric processor for being transformed, and sending the objects to a culling stage for creating an occlusion image in a first depth buffer requiring a first amount of storage; and
(b) during a second pass, sending the objects to the culling stage for conservatively culling occluded objects utilizing the occlusion image, and passing to a renderer remaining objects, wherein the renderer requires a second depth buffer with a second amount of storage greater than the first amount of storage. - View Dependent Claims (27, 28, 29, 30, 31)
-
-
32. A system for multiple-pass rendering using conservative occlusion culling, comprising:
-
(a) logic for a first pass including;
logic for passing objects from a input stream to a geometric processor for being transformed, and logic for sending the objects to a culling stage for creating an occlusion image in a first depth buffer requiring a first amount of storage; and
(b) logic for a second pass including;
logic for sending the objects to culling stage for conservatively culling occluded objects utilizing the occlusion image, and logic for passing to a renderer remaining objects, wherein the renderer requires a second depth buffer with a second amount of storage greater than the first amount of storage. - View Dependent Claims (33, 34, 35, 36, 37)
-
-
38. A computer program product for multiple-pass rendering using conservative occlusion culling, comprising:
-
(a) computer code for a first pass including;
computer code for passing objects from an input stream to a geometric processor for being transformed, and computer code for sending the objects to a culling stage for creating an occlusion image in a first depth buffer requiring a first amount of storage; and
(b) computer code for a second pass including;
computer code for sending the objects to culling stage for conservatively culling occluded objects utilizing the occlusion image, and computer code for passing to a renderer remaining objects, wherein the renderer requires a second depth buffer with a second amount of storage greater than the first amount of storage.
-
-
39. A method for multiple-pass rendering in a plurality of pipelines using conservative occlusion culling, comprising:
-
(a) during a first pass in a first pipeline, passing objects from an input stream to a geometric processor of the first pipeline for being transformed, and sending the objects to a culling stage of the first pipeline for creating an occlusion image in a first depth buffer requiring a first amount of storage; and
(b) during a second pass in a second pipeline, sending the objects to a culling stage of the second pipeline for conservatively culling occluded objects utilizing the occlusion image, and passing to a renderer remaining objects, wherein the renderer requires a second depth buffer with a second amount of storage greater than the first amount of storage. - View Dependent Claims (40, 41, 42, 43)
-
-
44. A system for multiple-pass rendering in a plurality of pipelines using conservative occlusion culling, comprising:
-
(a) logic for a first pass in a first pipeline including;
logic for passing objects from an input stream to a geometric processor of the first pipeline for being transformed, and logic for sending the objects to a culling stage of the first pipeline for creating an occlusion image in a first depth buffer requiring a first amount of storage; and
(b) logic for a second pass in a second pipeline including;
logic for sending the objects to a culling stage of the second pipeline for conservatively culling occluded objects utilizing the occlusion image, and logic for passing to a renderer remaining objects, wherein the renderer requires a second depth buffer with a second amount of storage greater than the first amount of storage. - View Dependent Claims (45, 46, 47, 48)
-
-
49. A computer program product for multiple-pass rendering in a plurality of pipelines using conservative occlusion culling, comprising:
-
(a) computer code for a first in a first pipeline including;
computer code for passing objects from an input stream to a geometric processor of the first pipeline for being transformed, and computer code for sending the objects to a culling stage of the first pipeline for creating an occlusion image in a first depth buffer requiring a first amount of storage; and
(b) computer code for a second pass in a second pipeline including;
computer code for sending the objects to a culling stage of the second pipeline for conservatively culling occluded objects utilizing the occlusion image, and computer code for passing to a renderer remaining objects, wherein the renderer requires a second depth buffer with a second amount of storage greater than the first amount of storage.
-
-
50. A method for avoiding reading z-values a multi-pass rendering algorithm in a graphics pipeline, comprising:
-
(a) during a first pass, transforming objects, creating an occlusion image in a first depth buffer requiring a first amount storage, and storing near z-values in the occlusion image, each near z-value representative of a near z-value on one of the objects; and
(b) during a second pass, conservatively culling objects utilizing the occlusion image, and rendering the remaining objects with a renderer, wherein the renderer requires a second depth buffer with a second amount of storage greater than the first amount of storage, and based on a depth comparison involving the near z-values, conditionally reading from the second depth buffer z-values previously stored for image samples. - View Dependent Claims (51, 52, 53, 54, 55)
-
-
56. A system for avoiding reading z-values in a multi-pass rendering algorithm in a graphics pipeline, comprising:
-
(a) logic for a first pass including;
logic for transforming objects, logic for creating an occlusion image in a first depth buffer requiring a first amount of storage, and logic for storing near z-values in the occlusion image, each near z-value representative of a near z-value on one of the objects; and
(b) logic for a second pass including;
logic for conservatively culling objects utilizing occlusion image, and logic for rendering the remaining objects with a renderer, wherein the renderer requires a second depth buffer with a second amount of storage greater than the first amount of storage, and logic for, based on a depth comparison involving the near z-values, conditionally reading from the second depth buffer z-values previously stored for image samples. - View Dependent Claims (57, 58, 59, 60, 61)
-
-
62. A computer program product for avoiding reading z-values in a multi-pass rendering algorithm in a graphics pipeline, comprising:
-
(a) computer code for a first pass including;
computer code for transforming objects, computer code for creating an occlusion image in a first depth buffer requiring a first amount of storage, and computer code for storing near z-values in the occlusion image, each near z-value representative of a near z-value on one of the objects; and
(b) computer code for a second pass including;
computer code for conservatively culling objects utilizing the occlusion image, and computer code for rendering the remaining objects with a renderer, wherein the renderer requires a second depth buffer with a second amount of storage greater than the first amount of storage, and computer code for, based on a depth comparison involving the near z-values, conditionally reading form the second depth buffer z-values previously stored for image samples.
-
-
63. A method for avoiding processing in a multi-pass rendering algorithm in a graphics pipeline, comprising:
-
(a) during a first pass, transforming an objects, determining whether at least a portion of the objects has been culled, and storing visibility information indicating whether the at least portion of the objects has been culled; and
(b) during a second pass, conditionally skipping processing in at least a portion of the graphics pipeline based on the visibility information. - View Dependent Claims (64, 65, 66, 67, 68, 69, 70, 71, 72)
-
-
73. A system for avoiding processing in a multi-pass rendering algorithm in a graphics pipeline, comprising:
-
(a) logic for a first pass including;
logic for transforming an object, logic for determining whether at least a portion of the object has been culled, and logic for storing visibility information indicating whether the at least portion of the object has been culled; and
(b) logic for a second pass including;
logic for conditionally skipping processing in at least a portion of the graphics pipeline based on the visibility information. - View Dependent Claims (74, 75, 76, 77, 78, 79, 80, 81, 82)
-
-
83. A computer program product for avoiding processing in a multi-pass rendering algorithm in graphics pipeline, comprising:
-
(a) computer code for a first pass including;
computer code for transforming an object, computer code for determining whether at least a portion of the object has been culled, and computer code for storing visibility information indicating whether the at least portion of the object has been culled; and
(b) computer code for a second pass including;
computer code for conditionally skipping processing in at least a portion of the graphics pipeline based on the visibility information.
-
-
84. A method for avoiding processing in a multi-pass rendering algorithm in a graphics pipeline, comprising:
-
(a) during a first pass, transforming objects, testing the objects for visibility, determining whether a last object processed within an entity of a screen is entirely visible, and storing status information indicating whether the last object processed within the entity of the screen is entirely visible; and
(b) during a second pass, when rendering each object within the entity of the screen, avoiding writing and reading z-values to and from a z-buffer if the status information indicates that the last object processed within the entity of the screen was entirely visible. - View Dependent Claims (85, 86, 87, 88)
-
-
89. A system for avoiding processing in a multi-pass rendering algorithm in a graphics pipeline, comprising:
-
(a) logic for a first pass including;
logic for transforming objects, logic for testing the objects for visibility, logic for determining whether a last object processed within an entity of a screen is entirely visible, and logic for storing status information indicating whether the last object processed within the entity of the screen is entirely visible; and
(b) logic for a second pass including;
logic for, when rendering each object within the entity of the screen, avoiding writing and reading z-values to and from a z-buffer if the status information indicates that the last object processed within the entity of the screen was entirely visible. - View Dependent Claims (90, 91, 92, 93)
-
-
94. A computer program product for avoiding processing in a multi-pass rendering algorithm in a graphics pipeline, comprising:
-
(a) computer code for a first pass including;
computer code for transforming objects, computer code for testing the objects for visibility, computer code for determining whether a last object processed within an entity of a screen is entirely visible, and computer code for storing status information indicating whether the last object processed within the entity of the screen is entirely visible; and
(b) computer code for a second pass including;
computer code for, when rendering each object within the entity of the screen avoiding writing and reading z-values to and from a z-buffer if the status information indicates that the last object processed within the entity of the screen was entirely visible.
-
Specification