WO2006072108A1 - Efficient z testing - Google Patents
Efficient z testing Download PDFInfo
- Publication number
- WO2006072108A1 WO2006072108A1 PCT/US2005/047690 US2005047690W WO2006072108A1 WO 2006072108 A1 WO2006072108 A1 WO 2006072108A1 US 2005047690 W US2005047690 W US 2005047690W WO 2006072108 A1 WO2006072108 A1 WO 2006072108A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- subspan
- pixel
- promotable
- current
- row
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three-dimensional [3D] modelling for computer graphics
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—Three-dimensional [3D] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Definitions
- Embodiments of the invention described relate to computer graphics, and in particular, to rendering.
- computer graphics rendering is a process by which graphics instructions and data may be received and processed so that image data may be produced. This image data may then be sent to an input/output (I/O) device such as a display. Rendering creates data that may be displayed as an image.
- I/O input/output
- the process of computer graphics rendering may include a number of discrete operations. For example, specific colors of an object or a background may need to be calculated. Texture may also need to be applied to a given surface.
- Another operation that may be performed in computer graphics rendering is the determination of whether a given object is in front of another object or background. If the foreground object is opaque, the background object may be obscured and the obscured portion of the background object may not need to be rendered.
- This depth analysis may generally be referred to as Z testing.
- Z testing In a rendered three-dimensional scene, the distance between an object or pixel and the hypothetical camera or the viewer's eye may be determined. Likewise, the comparable distance between the camera and a second, possibly obscuring object or pixel may be determined. These distances may be measured on a hypothetical Z axis, hence the term "Z testing.” If the closer object is opaque, the more distant pixel or object need not be rendered.
- Z testing may be more complicated in certain implementations. While an object may be in the foreground, for instance, the object may be translucent or transparent. In such a case, the background object may have to be rendered. Such conditions may also be programmed into a Z test.
- the process of Z testing may be only one of several processes that take place during rendering. Moreover, images may have to be generated, modified, and displayed in near-real time. If so, rendering processes must take place efficiently and quickly, given that computer graphics rendering often represents the processing of large amounts of data. Design issues arise, therefore, as to how best to order these processes and how to implement them such that rendering throughput may be maximized.
- FIG. 1 is a representation of a pixel status array, according to an embodiment of the invention.
- FIG. 2 is a flow chart illustrating the process of performing Z testing, using the pixel status array, according to an embodiment of the invention.
- FIG. 3 is a flow chart illustrating the process of checking and acting on the bin flag of a row in the pixel status array, according to an embodiment of the invention.
- FIG. 4 is a block diagram showing a computer graphics renderer, according to an embodiment of the invention.
- pixels may be arranged in subspans, where each subspan may be an array of two pixels by two pixels as would be presented on a computer display. Subspans may be further grouped into larger sets, referred to herein as bins. Each bin may therefore represent a set of subspans, and may represent a discrete area of a scene as shown on a computer display. Some pixels may be designated as non-promotable.
- a pixel is non-promotable, this means that even though the pixel may be in the foreground compared to a pixel in the background, the foreground non-promotable pixel does not necessarily obscure the background pixel.
- the non-promotable pixel may be part of an object or a surface that is transparent or translucent, for example.
- the status of a pixel as non-promotable may be tracked using a data structure called a pixel status array (PSA).
- the pixel status array may be composed of some number of rows. Each row may contain a number of bits, each bit corresponding to the non-promotable status of a pixel.
- each row of the PSA may include five bits, the first four of which may represent the pixels in a single subspan. If a pixel is non-promotable, the corresponding bit in the PSA may be set in the row corresponding to that pixel's subspan.
- a PSA may be implemented as hardware or software, or as a combination thereof.
- the processing of the invention may begin by reading a row of the PSA. The validity of the subspan may be determined, i.e., the process may determine whether the subspan contains at least one pixel. A determination may be made as to whether a one occurs in any of the first four locations in the row. A one would indicate that the corresponding pixel is non-promotable.
- this row may correspond to a previous subspan of pixels that has been sent into the rendering pipeline for purposes of color calculation and other operations. If a one is present, then the current subspan may be stalled prior to the rendering pipeline, until the pixels of the previous subspan have gone through color calculation.
- a given pixel may be considered to be either promotable or non-promotable.
- the promotability or non-promotability of a given pixel may be tracked in the PSA.
- An exemplary PSA is illustrated in FIG. 1, according to an embodiment of the invention.
- the PSA may be organized as a two dimensional array. Each row of the array may correspond to a subspan of pixels. In the illustrated embodiment, each subspan contains four pixels, so that each row of the PSA includes four bits, one bit per pixel, followed by a fifth bit. The fifth bit in the row may be referred to herein as a bin flag. The purpose of the bin flag will be described in greater detail below.
- Each row of the PSA is therefore five bits long in the embodiment illustrated.
- FIG. 2 An embodiment of the process of the invention is illustrated in FIG. 2.
- the process may begin at block 205.
- a row of the PSA is read. This row of the PSA may be associated with a previous subspan of pixels that has already been forwarded through the rendering pipeline to color calculation processing. If, in block 215, it is determined that this subspan is valid, then the process may continue at block 220. Here, a current subspan may be considered. Such a subspan has not yet been forwarded on to color calculation in the rendering pipeline.
- a determination may be made as to whether any of the pixels in the current subspan is represented by a one. As described above, a one would signify that the corresponding pixel is non-promotable.
- this current subspan may be stalled until color calculation logic completes resolution of the previous subspan. Otherwise, the process continues at block 230.
- a determination may be made as to whether any of the pixels in the current subspan are non-promotable. If so, then the process continues at block 235. Here, the appropriate PSA location may be set to one. If none of the pixels in the current subspan is non-promotable, the process continues at block 240.
- the Z test may be performed on pixels in the current subspan. Because all of the pixels in the current subspan are promotable, as determined in block 230, the Z test may be performed at this point.
- a pixel that is obscured by a promotable pixel may be dropped without further processing. Therefore, in block 250, a determination may be made as to whether the Z test has been passed. If so, the tested pixel may be forwarded through the rendering pipeline onto the color calculation logic in block 270. Otherwise, the pixel may be dropped in block 260.
- a current subspan may be found to be non-promotable, and at the same time there is no matching entry in the PSA. In this case, Z testing may then be performed on the pixels of this subspan. If the Z test is passed, then the corresponding PSA bit(s) may be set and the current subspan may be forwarded through the rendering pipeline.
- each row of the PSA may include a bin flag.
- the bin flag may be used to address size limitations on the PSA.
- the PSA would contain a row for every subspan in a scene. This is generally not practical, particularly if the PSA is implemented in hardware.
- subspans may be organized into bins, where each bin may be given a binary designation. Each bin may therefore be viewed as either even or odd.
- the designation of bins may alternate across a scene, such that if a given bin is odd, its adjacent bin may be considered even.
- This binary scheme may be encoded as either a zero or a one in the PSA.
- its bin may be identified as either even or odd by the bin flag, i.e., the fifth bit in the row associated with the subspan in the exemplary PSA of FIG. 1. If, given two rows of a PSA, the respective bin flags are different, then it may be inferred that the corresponding subspans are associated with different bins. These subspans will therefore not be evaluated against each other in a Z test. There is, therefore, no point in stalling one of these subspans while the other may be processed in color calculation.
- FIG. 3 The processing of bin flags is illustrated in FIG. 3, according to an embodiment of the invention. The process begins at block 310. In block 320, a bin flag may be read. In block 330 a determination may be made as to whether the bin flag indicates a bin other than the bin of the previous subspan. If so, then processing may continue at block 333.
- a determination may be made as to whether the current subspan is non-promotable and overlaps the previous subspan. If so, then in block 336 the current subspan may be stalled until the color calculation logic of the rendering pipeline resolves the previous subspan. If not, the process continues at block 340. Here, the current subspan may be forwarded through the rendering pipeline. If, in block 330, it is determined that the same subspan may be indicated, then processing may proceed to block 205, illustrated in FIG. 2.
- the invention may be implemented in a computer graphics renderer, one example of which is illustrated in FIG. 4.
- Blocks 410 may be viewed as a rendering pipeline.
- the invention, as illustrated in FIGs. 2 and 3 may be incorporated in block 420, the intermediate Z unit.
- the invention may allow the dropping of a pixel without requiring additional processing if the pixel is found to be obscured, as determined by the Z test.
- a pixel that passes the Z test may ultimately be sent through a variety of processes, and ultimately to the color calculator 430.
- the invention may save considerable processing by avoiding the unnecessary color calculation for pixels that are not to be displayed.
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
Description
Claims
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020077015683A KR100908580B1 (en) | 2004-12-29 | 2005-12-29 | Efficient Quick Test Method and Computer Graphics Renderer |
| DE112005003295T DE112005003295B4 (en) | 2004-12-29 | 2005-12-29 | Efficient Z-testing |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/023,639 | 2004-12-29 | ||
| US11/023,639 US8072451B2 (en) | 2004-12-29 | 2004-12-29 | Efficient Z testing |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2006072108A1 true WO2006072108A1 (en) | 2006-07-06 |
Family
ID=36176165
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2005/047690 Ceased WO2006072108A1 (en) | 2004-12-29 | 2005-12-29 | Efficient z testing |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US8072451B2 (en) |
| KR (1) | KR100908580B1 (en) |
| CN (1) | CN1848179B (en) |
| DE (1) | DE112005003295B4 (en) |
| TW (1) | TWI296784B (en) |
| WO (1) | WO2006072108A1 (en) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2511176B (en) * | 2012-12-17 | 2015-04-15 | Advanced Risc Mach Ltd | Hidden surface removal in graphic processing systems |
| US9214006B2 (en) | 2013-06-04 | 2015-12-15 | Arm Limited | Hidden surface removal in graphics processing systems |
| US9153070B2 (en) | 2012-12-17 | 2015-10-06 | Arm Limited | Hidden surface removal in graphics processing systems |
| CN109427084B (en) * | 2017-08-25 | 2022-05-24 | 腾讯科技(深圳)有限公司 | Map display method, device, terminal and storage medium |
| GB2574361B (en) | 2017-12-18 | 2021-03-24 | Advanced Risc Mach Ltd | Graphics Processing |
| US10726610B2 (en) | 2018-08-29 | 2020-07-28 | Arm Limited | Efficient graphics processing using metadata |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6271851B1 (en) * | 1999-07-26 | 2001-08-07 | Silicon Integrated Systems Corporation | Z-buffer pre-test for 3D graphic performance enhancement |
| US20030080959A1 (en) * | 2001-10-29 | 2003-05-01 | Ati Technologies, Inc. | System, Method, and apparatus for early culling |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3096103B2 (en) * | 1991-08-30 | 2000-10-10 | キヤノン株式会社 | Image processing apparatus and method |
| WO1997005575A1 (en) * | 1995-07-26 | 1997-02-13 | Raycer, Incorporated | Method and apparatus for span sorting rendering system |
| US5864342A (en) * | 1995-08-04 | 1999-01-26 | Microsoft Corporation | Method and system for rendering graphical objects to image chunks |
| US6166743A (en) * | 1997-03-19 | 2000-12-26 | Silicon Magic Corporation | Method and system for improved z-test during image rendering |
| US6219058B1 (en) * | 1997-09-08 | 2001-04-17 | Intel Corporation | Bin-per-span based representation and communication of graphical data |
| JPH11259678A (en) * | 1998-03-12 | 1999-09-24 | Sega Enterp Ltd | Image display apparatus and image display method using the same |
| US6456285B2 (en) * | 1998-05-06 | 2002-09-24 | Microsoft Corporation | Occlusion culling for complex transparent scenes in computer generated graphics |
| US6559852B1 (en) * | 1999-07-31 | 2003-05-06 | Hewlett Packard Development Company, L.P. | Z test and conditional merger of colliding pixels during batch building |
| TW449729B (en) | 1999-10-27 | 2001-08-11 | Silicon Integrated Sys Corp | Effective test ahead method and structure for Z buffer in 3D graphics |
| US6636214B1 (en) * | 2000-08-23 | 2003-10-21 | Nintendo Co., Ltd. | Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode |
| JP3761085B2 (en) * | 2001-11-27 | 2006-03-29 | 株式会社ソニー・コンピュータエンタテインメント | Image processing apparatus, components thereof, and rendering processing method |
| US7268779B2 (en) | 2002-12-24 | 2007-09-11 | Intel Corporation | Z-buffering techniques for graphics rendering |
| US7583263B2 (en) * | 2003-12-09 | 2009-09-01 | Siemens Product Lifecycle Management Software Inc. | System and method for transparency rendering |
-
2004
- 2004-12-29 US US11/023,639 patent/US8072451B2/en not_active Expired - Fee Related
-
2005
- 2005-12-29 CN CN200510136675.XA patent/CN1848179B/en not_active Expired - Fee Related
- 2005-12-29 TW TW094147272A patent/TWI296784B/en not_active IP Right Cessation
- 2005-12-29 KR KR1020077015683A patent/KR100908580B1/en not_active Expired - Fee Related
- 2005-12-29 WO PCT/US2005/047690 patent/WO2006072108A1/en not_active Ceased
- 2005-12-29 DE DE112005003295T patent/DE112005003295B4/en not_active Expired - Fee Related
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6271851B1 (en) * | 1999-07-26 | 2001-08-07 | Silicon Integrated Systems Corporation | Z-buffer pre-test for 3D graphic performance enhancement |
| US20030080959A1 (en) * | 2001-10-29 | 2003-05-01 | Ati Technologies, Inc. | System, Method, and apparatus for early culling |
Also Published As
| Publication number | Publication date |
|---|---|
| CN1848179B (en) | 2014-07-09 |
| TW200636611A (en) | 2006-10-16 |
| US8072451B2 (en) | 2011-12-06 |
| TWI296784B (en) | 2008-05-11 |
| US20060139366A1 (en) | 2006-06-29 |
| DE112005003295B4 (en) | 2010-08-12 |
| DE112005003295T5 (en) | 2008-04-17 |
| KR20070088776A (en) | 2007-08-29 |
| KR100908580B1 (en) | 2009-07-22 |
| CN1848179A (en) | 2006-10-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11244498B2 (en) | Assigning primitives to tiles in a graphics processing system | |
| US8063903B2 (en) | Edge evaluation techniques for graphics hardware | |
| US9299187B2 (en) | Opacity testing for processing primitives in a 3D graphics processing system | |
| US7683905B1 (en) | Methods of processing graphics data including reading and writing buffers | |
| US8674985B2 (en) | Method, medium, and system rendering 3D graphic data to enhance image quality of transparent objects | |
| US9684995B2 (en) | Setting a display list pointer for primitives in a tile-based graphics processing system | |
| US6476806B1 (en) | Method and apparatus for performing occlusion testing while exploiting frame to frame temporal coherence | |
| US7538765B2 (en) | Method and apparatus for generating hierarchical depth culling characteristics | |
| US6166743A (en) | Method and system for improved z-test during image rendering | |
| US7053904B1 (en) | Position conflict detection and avoidance in a programmable graphics processor | |
| US7609273B1 (en) | Pixel load instruction for a programmable graphics processor | |
| US7053893B1 (en) | Position conflict detection and avoidance in a programmable graphics processor using tile coverage data | |
| US20160322031A1 (en) | Cost-Effective In-Bin Primitive Pre-Ordering In GPU | |
| US8072451B2 (en) | Efficient Z testing | |
| US20060284883A1 (en) | Device for processing pixel rasterization and method for processing the same | |
| US8009172B2 (en) | Graphics processing unit with shared arithmetic logic unit | |
| US20060176310A1 (en) | Method and apparatus for de-indexing geometry | |
| CN120070693A (en) | Image processor, image rendering method and electronic equipment | |
| CN116630516A (en) | 3D characteristic-based 2D rendering ordering method, device, equipment and medium | |
| KR102777524B1 (en) | Foveated binned rendering associated with sample spaces | |
| US20030164833A1 (en) | System and method for rendering graphical data | |
| EP1590769A2 (en) | Method and system for compositing three-dimensional graphics images using associative decision mechanism | |
| JP5362915B2 (en) | Drawing apparatus and drawing method | |
| CN118411397A (en) | Image processing method and related equipment | |
| US8988444B2 (en) | System and method for configuring graphics register data and recording medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
| WWE | Wipo information: entry into national phase |
Ref document number: 1120050032957 Country of ref document: DE |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 1020077015683 Country of ref document: KR |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 05856142 Country of ref document: EP Kind code of ref document: A1 |
|
| RET | De translation (de og part 6b) |
Ref document number: 112005003295 Country of ref document: DE Date of ref document: 20080417 Kind code of ref document: P |
|
| WWE | Wipo information: entry into national phase |
Ref document number: DE |
|
| REG | Reference to national code |
Ref country code: DE Ref legal event code: 8607 |