<BLOCKQUOTE><font size="-1">quote:</font><HR>I'm curious as to what algorithm Xara actually uses for its antialiasing<HR></BLOCKQUOTE>

AFAIK Xara simply works out what proporition of each pixel is covered when drawing each path, and draws onto that pixel using the proportion covered as an opacity value.

This means, for example, that a white pixel half-covered by two identical black shapes will end up 75% black instead of 50%. You can see this in effect by drawing a shape and cloning it repeatedly; the border will become darker and less anti-aliased for each copy.

You can also see artefacts of this type of antialiasing if you lay two rectangles together so that their adjoining edges are not on a pixel boundary. You can get a thin 'break' between them.

The other way of doing anti-aliasing - that of rendering the entire viewport at a much higher resolution and then rescaling the image to fit using bilinear interpolation - is much slower, and you probably need about a 4x (linear, 16x area) supersample to produce similar gradations to Xara's method. When you see 'full-screen anti-aliasing' on newer 3D graphics cards, supersampling is what you're getting. I imagine other drawing programs do it this way too since it requires less rewriting than Xara's way.

When saving graphics for the web (where every pixel counts), I often combine the two by grabbing Xara-anti-aliased graphics at 2x resolution and scaling down. It would be nice to have this as a Window->Quality option too I suppose.

<BLOCKQUOTE><font size="-1">quote:</font><HR>Targetting an LCD - with rectangular, limited pixels and the possibility of doing ClearType style resolution enhancement - is quite different from targetting a CRT with a gaussian blurred pixel.<HR></BLOCKQUOTE>

Indeed so. Unfortunately Microsoft have patented ClearType so it's unlikely Xara could include any built-in features along similar lines without getting sued.

(for those who've not seen it: ClearType is Microsoft's name for supersampling fonts, but on scaling down, taking advantage of the known arrangement of coloured pixels in an LCD display, tinting each part-pixel slightly to 'push' it slightly in one direction on LCDs. There's no reason why it should be limited to text, but it does work best on B/W output to avoid spoiling the colour.)

I'd be happy to write a simple scale-down-and-optimise-for-LCD Python script myself, if anyone's interested. The idea in itself seems fairly obvious, and I'm already going to Patent Hell for my LZW-compressing gifWriter script in any case. [img]/infopop/emoticons/icon_razz.gif[/img]