WO1995027267A1 - Z-buffering in 3-d computer graphics - Google Patents
Z-buffering in 3-d computer graphics Download PDFInfo
- Publication number
- WO1995027267A1 WO1995027267A1 PCT/GB1995/000752 GB9500752W WO9527267A1 WO 1995027267 A1 WO1995027267 A1 WO 1995027267A1 GB 9500752 W GB9500752 W GB 9500752W WO 9527267 A1 WO9527267 A1 WO 9527267A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- buffer
- values
- changed
- computer graphics
- appear
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
A method of processing computer graphics information prior to rendering an image on a display, which includes comparison of the z (depth) coordinate of points having the same x, y coordinates on different surfaces of a 3-D scene so as to determine and store in a z-buffer those points which should appear on the screen, and to eliminate those which are hidden and should not appear, wherein the process includes two stages in the first of which all the z-comparisons on a scan line are made without interruption and the outcome is stored in the z-buffer, and in the second, only if the z-buffer content has changed, the changed values are used to update a frame buffer containing image rendering values.
Description
Z-Buffering in 3-D Computer Graphics This invention concerns z-buffering in 3-D computer graphics. In 3-D computer graphics, the z-coordinate of a point (x,y) on an object in the image space decides whether it will be visible when compared with the z-coordinate of the same point (x,y) of another object in the same image space. Thus, after the 3-D coordinates of a multitude of objects have been calculated, the rendering of the final 2-D image of a scene, showing some objects in front of others, involves this comparison step-by-step over the whole scene. The algorithm for such removal of hidden surfaces involves storage in a memory, the z-buffer, of z depth values of the nearest surface for every pixel in an image. As a new object is added to a scene, the z-buffer has to be updated with new z values of the new object. This process is called z-buffering. Details can be found in "3-D Computer Animation" by Vince, Addison-Wesley (1992). The current technique is as follows: To plot each pixel, the z-buffer is read and compared against the z depth of the new pixel. If the new value is nearer than the z-buffer value, then the z-buffer value is updated. The pixel colour is then calculated and written to the frame buffer. This is repeated pixel-by-pixel across each scan line of the screen. The sequence of memory accesses for every updated pixel is : read z-buffer'. write z-buffer; write frame buffer; Particularly if the z-buffer and the frame buffer are on the same memory bus, then this alternating pattern of accesses can be slow when using fast localised access memories (like fast page mode DRAM). The problem is emphasised when only slower processing units and smaller memories are available, as in home microcomputers. This inhibits the quality of rendering when real-time animation is required, for example for computer games. Accordingly, the invention proposes a method of processing computer graphics information prior to rendering an image on a display, which includes comparison of the z (depth) coordinate of points having the same x, y coordinates on different surfaces of a 3-D scene so as to determine and store in a z-buffer those points which should appear on the screen, and to eliminate those which are hidden and should not appear, characterised in that the process includes two stages in the first of which all the zcomparisons on a scan line are made without interruption and the outcome is stored in the z-buffer, and in the second, only if the z-buffer content has changed, the changed values are used to update a frame buffer containing image rendering values. This method is used to optimise the z-buffering process by using two separate passes per scanline, the first of which reads and updates the z-buffer and the second of which updates the frame buffer accordingly. This reduces memory wait states, and in the event that no pixels require update, reduces the amount of setup for rendering. The two separate scanline passes involve: (1) a z-pass, in which the z-buffer is read and updated if necessary, whilst keeping a record of which pixels are updated, (2) a render pass, in which pixels are rendered into the frame buffer if the pixel record says they need updating. If during the z-pass no pixels were updated, then the render pass would not be necessary, thus saving time. This new method keeps all the memory accesses in the first pass to the z-buffer, and in the second pass to the frame buffer. The following example of the procedure illustrates the method in more detail as applied to some exemplary hardware. Pass 1 .... Read The Underlying Z Values The Z values of objects already drawn on the screen map where the new object is to be placed are read into a temporary RAM. So the DRAM screen buffer address is computed from X,Y, the screen base register. A list of these DRAM addresses can be placed in a FIFO for queuing burst fetches from the external DRAM. Some time later, the DRAM will have responded with the data and this is placed directly into the pixel engine temporary RAM. The target address within this internal RAM is taken from an X counter. As soon as the Z values are read in, they are compared with the new Z value (which is incrementing by dZ/dX as the values arrive from the DRAM). If the new Z object is visible, then the new pixel is marked as such by writing the current X value into the scheduler RAM, ready for the next traversal of the object. Pass 2 .... Read The Texture Value, Perform The Intensity Calculation .... Since only the visible texels need to be fetched, using the schedule computed by the previous traversal of the object, the Texture address is computed from U and V, and the address is placed into the address queue for the DRAM. Some time later, the DRAM will respond with texel data, which is expanded through a CLUT and then multiplied with an intensity value and placed into the pixel engine temporary RAM in a similar way to the Z values. As the results are read in, the X values are again written into the scheduler RAM, unless a zero value is encountered in the texture, which is interpreted as transparent, so the new pixel is not written. The next stage depends on whether values have been set in the ALPHA (a) fields of the new object. Pass 3a .... If Alpha Has Not Been Set....Write The New Z Values Using the X values remaining in the scheduler RAM, the new Z values of the visible pixels are written. Pass 3b ....Alpha Blending If alpha blending is required, then the new Z values are not written, but the pixel values behind the new translucent object need to be read. Some time later, the 'old' pixel values are read, combined using an blending multipler with the new values in the temporary RAM, and then written back to this RAM, which implies multi-ported RAM - or perhaps written back to the Z value location, ready for the final pass. Pass 4 .... Pixel Write. The schedule list is traversed for the final time, and any pixels which need to be written are fed to the DRAM FIFO scheduler. When the pixel span operation is complete, the calculations in Y can be made, and a new span operation can begin. In practice, particularly in computer games programs which have to be designed for computers of limited processing capacity and memory, this technique can be advantageous. It can be faster, especially when a new object is introduced to the scene which is in fact obscured by a nearer one.
Claims
1. A method of processing computer graphics information prior to rendering an image on a display, which includes comparison of the z (depth) coordinate of points having the same x, y coordinates on different surfaces of a 3-D scene so as to determine and store in a z-buffer those points which should appear on the screen, and to eliminate those which are hidden and should not appear, characterised in that the process includes two stages in the first of which all the z-comparisons on a scan line are made without interruption and the outcome is stored in the zbuffer, and in the second, only if the z-buffer content has changed, the changed values are used to update a frame buffer containing image rendering values.
2. A method as claimed in claim 1 wherein a record is kept in a store of those pixels for which the z-buffer content has changed.
3. A method as claimed in claim 1 or 2 wherein the two stages are performed in respect of each scanline of a scene before proceeding to the next scanline.
4. A method of processing computer graphics information substantially as herein described with reference to the accompanying drawings.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9406511A GB9406511D0 (en) | 1994-03-31 | 1994-03-31 | Z-buffering in 3-d computer graphics |
GB9406511.7 | 1994-03-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1995027267A1 true WO1995027267A1 (en) | 1995-10-12 |
Family
ID=10752898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/GB1995/000752 WO1995027267A1 (en) | 1994-03-31 | 1995-03-31 | Z-buffering in 3-d computer graphics |
Country Status (2)
Country | Link |
---|---|
GB (1) | GB9406511D0 (en) |
WO (1) | WO1995027267A1 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6088033A (en) * | 1997-07-09 | 2000-07-11 | Vlsi Solution Oy | Method and apparatus for processing picture elements |
EP1045344A2 (en) * | 1999-04-15 | 2000-10-18 | DaimlerChrysler AG | Simulation method for real-time display of environment |
GB2351892A (en) * | 1999-01-11 | 2001-01-10 | Evans & Sutherland Computer Co | Span-based multi-sample Z-buffer pixel processing |
US6410643B1 (en) | 2000-03-09 | 2002-06-25 | Surmodics, Inc. | Solid phase synthesis method and reagent |
US9641826B1 (en) | 2011-10-06 | 2017-05-02 | Evans & Sutherland Computer Corporation | System and method for displaying distant 3-D stereo on a dome surface |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2228652A (en) * | 1989-02-14 | 1990-08-29 | Intel Corp | Hidden surface elimination and Gouraud shading |
-
1994
- 1994-03-31 GB GB9406511A patent/GB9406511D0/en active Pending
-
1995
- 1995-03-31 WO PCT/GB1995/000752 patent/WO1995027267A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2228652A (en) * | 1989-02-14 | 1990-08-29 | Intel Corp | Hidden surface elimination and Gouraud shading |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6088033A (en) * | 1997-07-09 | 2000-07-11 | Vlsi Solution Oy | Method and apparatus for processing picture elements |
GB2351892A (en) * | 1999-01-11 | 2001-01-10 | Evans & Sutherland Computer Co | Span-based multi-sample Z-buffer pixel processing |
US6404425B1 (en) | 1999-01-11 | 2002-06-11 | Evans & Sutherland Computer Corporation | Span-based multi-sample z-buffer pixel processor |
EP1045344A2 (en) * | 1999-04-15 | 2000-10-18 | DaimlerChrysler AG | Simulation method for real-time display of environment |
EP1045344A3 (en) * | 1999-04-15 | 2002-08-21 | DaimlerChrysler AG | Simulation method for real-time display of environment |
US6410643B1 (en) | 2000-03-09 | 2002-06-25 | Surmodics, Inc. | Solid phase synthesis method and reagent |
US9641826B1 (en) | 2011-10-06 | 2017-05-02 | Evans & Sutherland Computer Corporation | System and method for displaying distant 3-D stereo on a dome surface |
US10110876B1 (en) | 2011-10-06 | 2018-10-23 | Evans & Sutherland Computer Corporation | System and method for displaying images in 3-D stereo |
Also Published As
Publication number | Publication date |
---|---|
GB9406511D0 (en) | 1994-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA1253984A (en) | High speed z-buffer with dynamic random access memory | |
US6288730B1 (en) | Method and apparatus for generating texture | |
KR100478767B1 (en) | Graphic processing with deferred shading | |
KR100300972B1 (en) | Texture mapping system and texture cache access method | |
US7456835B2 (en) | Register based queuing for texture requests | |
US7042462B2 (en) | Pixel cache, 3D graphics accelerator using the same, and method therefor | |
US6611264B1 (en) | Deferred scanline conversion architecture | |
US5945997A (en) | Block- and band-oriented traversal in three-dimensional triangle rendering | |
US6323860B1 (en) | Circuit and method for deferring the binding of render states to primitives in a graphics system | |
US6774910B2 (en) | Method and system for providing implicit edge antialiasing | |
US6411294B1 (en) | Image display apparatus and image display method | |
US5877773A (en) | Multi-pass clipping in a geometry accelerator | |
US6937246B2 (en) | Cache invalidation method and apparatus for a graphics processing system | |
KR100422082B1 (en) | Drawing device and drawing method | |
WO2003046836A1 (en) | Image processing apparatus and constituent parts thereof, rendering method | |
US20030174137A1 (en) | Frame buffer addressing scheme | |
JP2009541820A (en) | Parameter compression in tile-based rendering devices | |
JPH09500462A (en) | Computer graphics system with high performance multi-layer z-buffer | |
US7616200B1 (en) | System for reducing aliasing on a display device | |
US5758045A (en) | Signal processing method and apparatus for interactive graphics system for contemporaneous interaction between the raster engine and the frame buffer | |
WO1995027267A1 (en) | Z-buffering in 3-d computer graphics | |
US6756978B1 (en) | Apparatus and method for sharing antialiasing memory across multiple displays | |
US20040119719A1 (en) | Method and apparatus for reading texture data from a cache | |
US5903280A (en) | Image display apparatus that reduces necessary memory capacity for operation | |
US5926181A (en) | Method and apparatus for identifying and eliminating three-dimensional objects visually obstructed from a planar surface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): CA GB JP US |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
NENP | Non-entry into the national phase |
Ref country code: CA |
|
122 | Ep: pct application non-entry in european phase |