[OpenJDK 2D-Dev] How does antialiasing with the OpenGL pipeline work?

Roman Kennke roman at kennke.org
Mon Oct 1 07:14:57 UTC 2007


Hi Clemens,

> > Hey come on! I'd like to know the answer too. Give us a pointer to this
> > bug report! ;-)
> Of course not ... here it is:
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6529101 ;)

thanks alot!

> Although I don't understand / it does not mention all the details it
> seems they let produce those alpha-masks by doctus and indeed upload
> those alpha-masks to vram which seems to cause performance-problems
> for simple operations covering large areas.

Yeah, your example of a diagonal line is kindof a worst case. A simple
shape with few pixels which span a big rectangular region.

> What I still don't know is how these alpha-masks look in detail and
> wether the "normal" rendering is done? I guess the mask is used as
> mask and then "painted" with color ;)

AFAICS, the mask is a simple array (tip: have a look at the 'interface'
class sun.java2d.pipe.RenderingEngine and especially the class
AATileGenerator). I haven't looked at the details of OpenGL, but from
what I know from other backends, the actual rendering is done by sending
the alpha mask together with the shape coordinates and a solid color.
When the paint is set to something more complex, then a texture has to
be send too.

> Btw. I read in your blog that you've done a rasterizer - whats the
> state of it, or the renderer implemented by Jim? I am just looking for
> a simple one to lern/"reserach" a bit in this topic.

My rasterizer hasn't moved forward since my proposal here on the list.
I'm too busy with work, family and stuff.

AFAIK, Jim Graham has hacked up another rasterizer (I hope I'm not
telling secrets here. Jim: you really should discuss these things in
public...) derived from Pisces. I think it will be included in one of
the next release shots. If you bother Jim, he might send you the code
before, ideally to this list so everybody could have a look.

Cheers, Roman
-- 
http://kennke.org/blog/




More information about the 2d-dev mailing list