Re: 2D antialiased graphics using OpenGL

Peter Nilsson <[email protected]>
Newsgroups gmane.comp.freedesktop.xserver
Message-ID <[email protected]>
This is great information. Tackling the anti-aliasing "problem" is the 
next big step we have planned for libglc (OpenGL backend for Cairo). I 
would like to point out that neither I nor David (also working on 
libglc) are especially experienced OpenGL developers.  It seems there 
are a lot of competent OpenGL folx around here and all help or tips are 
much appreciated.

The bits can be fetched from the Cairo CVS: `cvs -d 
:pserver:anoncvs-gs45o/xk8Z54e/[email protected]:/cvs/cairo co libglc` or from 
www.cs.umu.se/~c99pnn/thesis

--
Peter Nilsson (c99pnn at cs.umu.se)

Allen Akin wrote:

>On Tue, Dec 09, 2003 at 05:14:58PM +0100, Martijn Sipkema wrote:
>| When doing 2D graphics using OpenGL one needs to draw front to
>| back using GL_SRC_ALPHA_SATURATE. ...
>
>That's one way to do it.
>
>All the antialiased drawing techniques are approximations.  Each has its
>advantages and disadvantages.  Off the top of my head, here are some of
>the techniques and tradeoffs:
>
>	Drawing front-to-back using GL_SRC_ALPHA_SATURATE.  Normally
>	used for drawing geometric primitives with pixel coverage
>	information ("smooth" points and lines and polygons in GL
>	terminology).  Advantages:  Good-quality results for silhouette
>	edges and shared edges.  Disadvantages:  Requires primitives to
>	be sorted; intersecting primitives cause artifacts; hardware
>	support is uneven.
>
>	Multipass using accumulation buffering.  Normally used for
>	full-scene antialiasing.  Advantages:  Works for essentially all
>	primitives in essentially all interrelationships and rendering
>	models; can incorporate other effects such as blurring moving
>	primitives; can yield very high quality results; permits fast
>	rough rendering with incremental improvement in interactive
>	applications.  Disadvantages:  Requires substantial extra
>	memory; is rarely hardware-accelerated in midrange and low-end
>	graphics cards; even with hardware acceleration is relatively
>	slow.
>
>	Multipass using blending.  Similar in concept to accumulation
>	buffered antialiasing.  Advantages:  Can be applied to full
>	scene or to any portion of a scene; generally faster and
>	requires less memory than accumulation buffering; accelerated
>	even on low-end cards; otherwise advantages are similar to
>	accumulation buffering.  Disadvantages:  Requires a simpler
>	rendering model ("painting" or "erasing" work well, but some
>	blending functions don't); getting the filtering parameters
>	right requires care; can be slow if very high quality results
>	are needed and geometry being drawn is complex and
>	geometry-processing rate is low.
>
>	Full-scene antialiasing using software supersampling.  (Drawing
>	to a high-resolution offscreen buffer, then filtering and
>	copying to the final target drawable.)  Advantages:  Works for
>	essentially all primitives, all interrelationships, all
>	rendering models; fast; well-supported.  Disadvantages: Requires
>	a lot of memory, yields only modest-quality results.
>
>	Full-scene antialiasing using hardware assist (typically
>	multisampling, sometimes supersampling).  Advantages:  Very
>	fast; works for all primitives, interrelationships, and
>	rendering models; well-supported in current hardware.
>	Disadvantages:  Some extra memory required (typically less than
>	for software supersampling or accumulation buffering); yields
>	decent-quality results but some people may not find them
>	acceptable for small text.  (Very high-quality results are
>	achieved on high-end systems, but not relevant in this
>	discussion.)
>
>I've skipped a few rarely-used methods, I've probably forgotten a few
>more, and certainly these short summaries are oversimplifying the
>tradeoffs.  It's best to think of them as just suggestions for further
>investigation.
>
>At the moment I'm interested in multipass using blending.  It seems to
>be the most flexible option with low memory requirements and good
>hardware support.  It handles intersections and near-approaches
>correctly, which compositing-based systems often can't, so it looks good
>for scenes with combined text and graphics.  It does place limitations
>on the rendering model, though, and I have no idea whether the toolkit
>and apps folks have thought about whether those would be acceptable.
>
>On the other hand, it's clear that the hardware vendors are putting most
>of their effort into multisampling.
>
>None of the methods described above take advantage of programmability at
>the vertex or fragment levels, so you can expect new variations to be
>developed.
>
>Allen
>
>_______________________________________________
>Xserver mailing list
>Xserver-u7BhqnqprCWvj1b/[email protected]
>http://pdx.freedesktop.org/cgi-bin/mailman/listinfo/xserver
>
>  
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.