[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

WO1995027267A1 - Z-buffering in 3-d computer graphics - Google Patents

Z-buffering in 3-d computer graphics Download PDF

Info

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
Application number
PCT/GB1995/000752
Other languages
French (fr)
Inventor
Peter Robert Warnes
Original Assignee
Argonaut Technologies Limited
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Argonaut Technologies Limited filed Critical Argonaut Technologies Limited
Publication of WO1995027267A1 publication Critical patent/WO1995027267A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden 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.
PCT/GB1995/000752 1994-03-31 1995-03-31 Z-buffering in 3-d computer graphics WO1995027267A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2228652A (en) * 1989-02-14 1990-08-29 Intel Corp Hidden surface elimination and Gouraud shading

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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