Painter's algorithm: Difference between revisions

Content deleted Content added
Fredrik (talk | contribs)
m remove signature (habitual, eh? :), add a "the" for better grammar
Fredrik (talk | contribs)
changing "Painter's algorithm" to "painter's algorithm"
Line 1:
The '''Painterpainter's algorithm''' is one of the simplest solutions to the [[visibility problem]] in [[3D computer graphics]]. When projecting a 3D scene onto a 2D plane, at some point, you need to decide which [[polygon]]s are visible and which are hidden.
 
The name "painter's algorithm" refers to a simple-minded painter who paints the distant parts of a scene at first and then covers them by those parts which are nearer. Similarly, when you want to use this algorithm in your rendering system, you first sort all the polygons by their depth and then paint them in this order. You will over-paint the parts that are normally not visible and thus solve the visibility problem.
Line 12:
In its naive implementation, painter's algorithm can prove to be highly inefficient. It forces the system to dutifully [[render]] each point on every polygon in the visible set - even if that polygon is occluded in the finished scene. This means that, for detailed scenes, the painter's algorthm generally proves to be a slow solution.
 
These and other problems with the Painterpainter's algorithm led to the development of [[Z-buffer]] techniques, which can be viewed as a logical development of the Painterpainter's algorithm by resolving depth conflicts on a pixel-by-pixel basis, thus reducing the need for a depth-based rendering order. Even in such systems, however, a variant of painter's algorithm is sometimes employed: as Z-buffer implementations generally rely on fixed-precision depth-buffer registers implemented in hardware, there is scope for visibility problems due to rounding error - these are manifest as subtle overlaps or gaps at joins between polygons. To avoid this, some graphics engine implementations "overrender" - drawing the affected edges both polygons in the order given by painter's algorithm. This means that some pixels are actually drawn twice (as in the full painters algorithm) but this proves to be only a tiny minority of the image, and so has negligible performance effect.