Boost logo

Boost :

From: Maxim Shemanarev (mcseem_at_[hidden])
Date: 2002-05-13 00:12:30


----- Original Message -----
From: "Martijn W. van der Lee" <martijn_at_[hidden]>
Newsgroups: gmane.comp.lib.boost.devel
Sent: Friday, May 10, 2002 1:55 PM
Subject: Re: RE: A preliminary proposal: AGG project

> Is this exposed in the interface, i.e. can you draw a line from point (10,
> 2) to (10.5, 223.4212)?

Yes. Value 223.4212 will be rounded off to 223.421875 (the nearest
multiple to 1/256), but it does not really matter :-)

> Also this brings up another limitation, namely the maximum dimensions of a
> canvas. If 32-bit ints are used, the max. width would be about 16.7M. No
> problem here, however, if in the future AGG were to support 16-bit color,
> you'd have to shift the ints by 16 bits, limiting the resolution to 32K,
> enough for screen display but not so for modern printers.

No. The subpixel accuracy and the number of aa-levels are two
different things. You can use subpixel accuracy of 1/16 of pixel
still having 256 levels of anti-aliasing.
A canvas of, say, 64K x 64k pixels means great resolution
and that there's no strong necessity of using 8-bit subpixel accuracy,
4 bits ot even less is quite enough. Besides, I'm not sure if
Anti-Aliasing is needed at all, because such resolution will
exceed the abilities of your eyes.

> > I probably will use a template class for it.
>
> This was the one I was going for. Perhaps is a scanline could consist of
> structures for this (not sure if this is what you meant in that last
> sentence).

I meant these very structures, at least a possibility to use more than
8 bits per pixel.

> In theory, does the design of the pipeline allow for other implementations
> of AGG to specialize these primitives?

Yes. It completely depends on how the rasterizer interprets
the vertices. The current rasterizer assumes that it should be a polygon,
another one can consider them as separate wu-pixels of a certain size
and/or shape.
But on the other hand, the pipeline operates only with
2D vertices (x,y) but not with their attributes, such as color,
pixel size/shape and so on. This is actually another open
design issue, how to transmit and transform vertex attributes.

> It's not so much a quality problem as it is a problem of the result being
> visually wrong. Imagine a red pixel at 50% transparency, now add a green
> pixel at 50% transparency. What result will this mixing yield? It _should_
> be a very green shade, not yellow. PhotoShop reports this test as 25% red,
> 75% green, no blue at about 89% transparency (after flattening, during
> drawing PhotoShop uses approximation).

It depends. If you're modeling a real world transparency, such as looking
through a 50% transparent glass to a picture, you're absolutely right.
But, the anti-aliasing also works with transparency, it's another case
of thransparency, and, IMO, the value of a pixel that has 50% coverage
should be namely yellow.

> Try the WildCat cards (I believe from 3DLabs), they're for the
professional
> CAD workstations and will probably include some high-quality stuff.

I would. If they didn't cost so much :-) $3k for a videocard -
phew, I can't afford it.

> As for libraries, have you thought of Intels' high-performance graphics
> library?

I know people involved. Some of them are my former colleagues who
work in far Russia in Nizhny Novgorod city :-) They actually made this
project for Intel (it had work-name "GE", Geometric Engine), actively
cooperating with ID Software. Their project is not what I do. Basically
it's namely Geometric Engine dedicated for high performance geometric
transformations independently of the rendering technology.

McSeem
http://www.antigrain.com


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk