Warnock algorithm

Polygon visibility in a given viewport: a) polygon fills the viewport, b) polygon partially and c) completely visible, d) polygon invisible.
Four steps of a viewport divisions for a simple scene

The Warnock algorithm is a hidden surface algorithm invented by John Warnock that is typically used in the field of computer graphics.[1] It solves the problem of rendering a complicated image by recursive subdivision of a scene until areas are obtained that are trivial to compute. In other words, if the scene is simple enough to compute efficiently then it is rendered; otherwise it is divided into smaller parts which are likewise tested for simplicity.[2]

This is a divide and conquer algorithm with run-time of O(np), where n is the number of polygons and p is the number of pixels in the viewport.

The inputs are a list of polygons and a viewport. The best case is that if the list of polygons is simple, then draw the polygons in the viewport. Simple is defined as one polygon (then the polygon or its part is drawn in appropriate part of a viewport) or a viewport that is one pixel in size (then that pixel gets a color of the polygon closest to the observer). The continuous step is to split the viewport into 4 equally sized quadrants and to recursively call the algorithm for each quadrant, with a polygon list modified such that it only contains polygons that are visible in that quadrant.

References

  1. Warnock, John (1969). "A hidden surface algorithm for computer generated halftone pictures". University of Utah. The algorithm was Warnock's doctoral thesis., 32 pages
    Also: http://www.dtic.mil/cgi-bin/GetTRDoc?AD=AD753671&Location=U2&doc=GetTRDoc.pdf
  2. Daintith, John; Wright, Edmund (2009). Oxford Dictionary of Computing. Oxford University Press. ISBN 978-0-19-923400-4., 608 pages

External links


This article is issued from Wikipedia - version of the Friday, July 25, 2014. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.