From: Maxim Shemanarev (mcseem_at_[hidden])
Date: 2002-05-03 00:15:31
----- Original Message -----
From: "Mika Heiskanen" <Mika.Heiskanen_at_[hidden]>
Sent: Thursday, May 02, 2002 12:03 PM
Subject: RE: A preliminary proposal: AGG project
> > In order to get cross-platform rendering fast, he could hook it up with
> > SDL. That would allow Unix and Mac users to try it, and help out.
It's false from the point of view of using it in the library but it's almost
ideal tool for creating platform independent demo examples. I try to be
realistic. I cannot test AGG on many platforms and I try to do only
what I can do.
> As such the only thing AGG or any other possible suggestion for a
> standard *2D graphics library* should only consider features which are
> considered essential for rendering 2D pixel images.
Well, this is actually a big mess. As you mentioned, standards like
GKS are outdated. But the worst thing is that you cannot guarantee
the quality if you rely on general graphic interfaces. Even SVG does not
guarantee the quality and it leaves it dependent on a particular viewer.
1. GKS is perfect for plotters, but too restrictive for modern
raster displays and so, cannot be used.
2. OpenGL has an option of smoothing polygons, but when I
tried to use it on my old MMX-266 processor I got incredibly low
speed - a few triangles per second. My current video adapter
(GeForce Ti 200) has an option of hardware 3D anti-aliasing and
it seems to be working fast. But the quality is still bad:
So, it's really stupid now to rely on the abilities of high quality
But on the other hand, when displays have resolution comparable
with resolution of your eyes (say, 600 dpi) anti-aliasing will not
be needed at all. So, what I want to do? I want to propose
a rendering technology that would not rely on any hardware,
would guarantee the highest possible quality, and would not be
completely obsolete in a few years. So, AGG has three major parts:
polygon rendering algorithm (it can also be custom), which does not
depend on any pixel format of color space, a number of renderers that know
everyting about color spaces and pixel formats and know how
to render a scanline in, say, RGB or CMYK, and a vertex conversion
pipeline that is responsible for a number of geometrical algorithms.
All of it is designed in such a way that any part can be replaced,
improved or enhanced. I intend to develop a number
of scanline renderes that will support different filtering effects - it's
possible with current design, for example, AGG does not have
image transformations for now, but can be implemented with no
changes in the design.
Your suggestions about SVG are really useful. At least, looking
through its interface I can better understand what the design
concepts must be worked out first.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk