Content deleted Content added
+stuff about painter's in the age of the z-buffer |
m remove signature (habitual, eh? :), add a "the" for better grammar |
||
Line 10:
[[Image:Painters_problem.png|Image: how painter's algorithm fail]]
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 Painter's algorithm led to the development of [[Z-buffer]] techniques, which can be viewed as a logical development of the Painter'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.
|