On Mon, 2005-03-07 at 00:45 -0500, Daniel Phillips wrote:
> On Saturday 05 March 2005 17:43, Lourens Veen wrote:
> > Just a short question though, knowing next to nothing about this. How
> > does the blending at the edges work theoretically? Alpha blending
> > gives problems with continuity I'd think. Let's say we render two
> > adjacent white polygons on a black background, and we render them one
> > at a time. If we blend the edge pixels with the background then a
> > pixel that is cut right through the middle will be 75% white instead
> > of 100%. And if you render the same polygon twice then it will be 75%
> > white instead of 50%. How do you prevent that?
> 
> That is a pretty good illustration of algorithms based on blending into 
> a partially constructed image don't work very well.  None of the three 
> algorithms I described do this.

For 2d antialiasing you can use front-to-back drawing using smooth
polygons, i.e. alpha values that represent coverage, and use
GL_SRC_ALPHA_SATURATE/GL_ONE for the src/dst blending functions.

> > The simple 2x2 supersampling approach does not have this problem, but
> > how does this work for multisampling?
> 
> The color value for each subsample is stored separately and only mixed 
> with other subsamples in final scanout.

Multisampling is the standard OpenGL way---apart from using a multipass
algorithm using the accumulation buffer---of handling antialiasing for
the general 3d case.

> > The reason I'm asking is that I'm wondering whether we can't cheat,
> > and do something that gives somewhat better results than 2x2
> > antialiasing.
> 
> If you find a way, be sure to shout!

For 2d drawing the OpenGL smooth polygons will give much better results.

> > I'm afraid that 2x2 won't be fast enough, and it won't 
> > be pretty enough either, making the entire thing a bit useless. Which
> > is an opinion based on nothing, so I'd be happy to hear
> > counterarguments :).
> 
> Here is a counterargument:
> 
>    http://www.ixbt.com/video/images/geforce3/aa2x2.jpg
> 
> Looks pretty, hmm?

2x2 may be quite acceptable for realtime 3d graphics, but not good
enough for (high quality) 2d drawing, e.g. vector graphics for SVG
rendering.


--ms


_______________________________________________
Open-graphics mailing list
[email protected]
http://lists.duskglow.com/mailman/listinfo/open-graphics
List service provided by Duskglow Consulting, LLC (www.duskglow.com)

Reply via email to