Comment 5 for bug 166252

Revision history for this message
Buliabyak-users (buliabyak-users) wrote :

It's easy to explain. Imagine that the boundary of two 100%
black rectangles falls exactly in the middle of a screen
pixel (or export pixel). This means that this pixel is 50%
covered by one rect and 50% by the next one. Antialiasing,
therefore, paints that pixel 50% transparent black for one
rect and 50% transparent black for the other. However if you
add two 50% transparencies, you don't get 100% (fully
opaque). Instead you get a 75% transparency. You can try
that with transparent shapes in Inkscape - that's how
transparencies add up. As a result, you get a row of 75%
transparent pixels which are clearly visible between two
fully opaque rects. That's the artefact you are getting. The
exact level of transparency of that row of pixels will
depend on where the exact boundary falls within the pixel
grid, and therefore will change seemingly randomly as you
change zoom or export dpi. Snapping all boundaries to the
exact pixel grid, as I explained in the previous comment, is
a way to avoid this.