- From: Robert O'Callahan <robert@ocallahan.org>
- Date: Sat, 27 Dec 2008 10:06:58 +1300
- To: "Doug Schepers" <schepers@w3.org>
- Cc: "Johannes Rössel" <johannes.roessel@uni-rostock.de>, www-svg@w3.org
Received on Friday, 26 December 2008 21:07:35 UTC
This is a general problem with rasterizers that use coverage-based antialiasing. When they render a polygon that partially covers a pixel, they compute an alpha value for the pixel based on how much of the pixel is covered. That loses information about which parts of the pixel are covered; when you have rasterized two polygons that both partially cover the same pixel, the two alpha values alone are insufficient to determine what the correct pixel value should be. The simplest fix is to use some form of "full-screen antialiasing", which is roughly equivalent to rendering to a higher-resolution surface without antialiasing and then scaling that down to the screen resolution. Unfortunately that entails performance and quality tradeoffs that discourage a lot of implementors from using FSAA. There are a bunch of tricks you can play with operators and snapping to work around the problem with coverage-based AA when you have special knowledge about the scene, but they don't work for general scenes. Rob -- "He was pierced for our transgressions, he was crushed for our iniquities; the punishment that brought us peace was upon him, and by his wounds we are healed. We all, like sheep, have gone astray, each of us has turned to his own way; and the LORD has laid on him the iniquity of us all." [Isaiah 53:5-6]
Received on Friday, 26 December 2008 21:07:35 UTC