Hardware-assisted z-pyramid creation for host-based occlusion culling
AssigneeNVIDIA Corporation
InventorEdward C. Greene
Life of this patent
Estimating the term…
Abstract
Roughly described, the invention is employed within a z-buffer-system having a host processor and graphics hardware that performs hierarchical z-buffering. The z-buffer system renders three-dimensional scenes having geometric primitives that are organized in bounding boxes or rooms-with-portals. As an image is being generated, some but not all z-pyramid values are written from the graphics system into memory that can be quickly accessed by the host processor. This enables the host processor to perform visibility tests that cull occluded bounding boxes or portals, thereby accelerating rendering by reducing the number of primitives that need to be sent to graphics hardware and processed.
Claims63
A graphics method, for use by a graphics system receiving from a host system an input stream of geometric objects for a scene, said graphics system including graphics memory and a graphics processor, said graphics memory including an image buffer and a first depth buffer, said image buffer having an image buffer resolution, said host system including host memory and a host processor, said host memory being more quickly accessible than said graphics memory by said host processor, comprising the steps of:
- writing depth values into said first depth buffer in response to objects from said input stream;
- developing, in response to objects from said input stream, depth information at a coarser resolution than said image buffer resolution;
- and
- writing to said host memory said depth information at said coarser resolution.
Graphics apparatus, for use with a host system having host memory and a host processor, comprising graphics memory and a graphics processor, said host memory being more quickly accessible than said graphics memory by said host processor, said graphics apparatus having an input for receiving an input stream of geometric objects for a scene, said graphics processor managing an image buffer and a first depth buffer in said graphics memory, said image buffer having an image buffer resolution, said graphics processor comprising:
- a first depth buffer writing stage which writes depth values into said first depth buffer in response to objects from said input stream;
- a renderer which, in at least one mode of operation, writes color values into said image buffer in response to objects from said input stream;
- a coarse information developer which develops, in response to objects from said input stream, depth information at a coarser resolution than said image buffer resolution;
- and
- a data transfer controller which writes to said host memory said depth information at said coarser resolution.
A graphics method, for use by a host system in communication with a graphics system, said graphics system including graphics memory and a graphics processor, said graphics memory including an image buffer having an image buffer resolution, said host system including host memory and a host processor, said host memory being more quickly accessible than said graphics memory by said host processor, comprising the steps of:
- providing to said graphics system a stream of geometric objects from a 3D model;
- and
- pre-culling objects from said stream by reference to a depth buffer in said host memory, said depth buffer having a coarser resolution than said image buffer resolution, said depth buffer being written occasionally in dependence upon depth information in said graphics memory.
Apparatus for use with a graphics system, said graphics system including graphics memory and a graphics processor, said graphics memory including an image buffer having an image buffer resolution, comprising:
- a host memory and a host processor, said host memory being more quickly accessible than said graphics memory by said host processor;
- means for providing to said graphics system a stream of geometric objects from a 3D model;
- and
- means for pre-culling objects from said stream by reference to a depth buffer in said host memory, said depth buffer having a coarser resolution than said image buffer resolution, said depth buffer being written occasionally in dependence upon depth information in said graphics memory.
A system including a scene manager for accessing geometric objects, a geometric processor for transforming the geometric objects, and renderer for rendering transformed geometric objects into an output image, the scene manager connected to output geometric objects to the geometric processor and the geometric processor outputting transformed geometric objects to said renderer, the system comprising:
- a first depth buffer connected to the renderer, said first depth buffer being a hierarchical depth buffer having a plurality of levels ranging from a finest level to a coarsest level, the finest level having a predetermined resolution;
- a second depth buffer having a predetermined resolution that is coarser than said predetermined resolution of said finest level of said first depth buffer, said second depth buffer being more quickly accessible to said scene manager than is said first depth buffer;
- a communication path from the first hierarchical depth buffer to said second depth buffer;
- and
- a controller which controls copying of depth values from said first depth buffer to said second depth buffer.
Dependencies are inferred from the claim text.