[Development] Antialiasing

Thomas Senyk thomas.senyk at pelagicore.com
Fri Oct 5 16:19:02 CEST 2012


On Fri, October 05, 2012 02:51:09 PM Samuel Rødal wrote:
> On 10/05/2012 02:28 PM, Wehmer, Matthias wrote:
> > Hi Samuel,
> > 
> > I will try to make myself clearer, sorry for that unclear information.
> > 
> > The shaders I’m talking about are those, that I implemented in my custom
> > Qml plugin via the QSGSimpleMaterial class. There I have implemented two
> > custom versions of the vertex and the fragment shader, whereby the later
> > is just coloring the scene. OpenGL itself is involved in such a way as I
> > use it to pass a texture to the fragment shader, but the geometry for
> > example is created with the methods and objects given by Qt, i.e. I use
> > a QSGGeometryNode and attach my geometry to it and simply draw a
> > Line_Strip between them.
> > 
> > The setAntialiasing() method I talk about is the one from the QQuickItem
> > class.
> 
> Yep, this was implemented recently and is a way to get antialiasing
> without using multisample buffers (since those consume a lot of memory).
> It does antialiasing in the fragment shader, by adding a set of
> triangles around the shape (in the case of a Rectangle), and doing a
> fade-out of the material around the edges. I believe it needs to be
> implemented by each item / node somehow.

Hui! That's nice ... not a solution for the old FBO-AA-problem, but anyway: 
nice! :)


> 
> >  From my understanding this method should turn on some kind of
> > 
> > postprocessing, that is antialise the scene after it is drawn by the
> > SceneGraph. Obviously this doesn’t work for my custom widget, although
> > all other items are antialiased. So either I understand this option and
> > its consequences wrong or I need to implement some postprocessing on my
> > own. For that I would need access to the scene (in form of a texture)
> > after it has been drawn by the SceneGraph. Is there a possibility for
> > that? Do you see my problem and what I understand wrong? I’m kinda
> > struggling right now, because the whole rendering mechanism seems to be
> > a black box for me. :D
> 
> It is not a postprocessing feature. I'd suggest to have a look at how
> the Rectangle element implements the antialiasing.
> 
> Of course, you can also use multisampling by doing setSamples(4) or
> similar on the QQuickView's surface format.
> 
> --
> Samuel
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development



More information about the Development mailing list