[Interest] Antialiasing possible on QSGGeometry?

Mark markg85 at gmail.com
Fri Jun 7 21:34:47 CEST 2013


Note: passing --multisample (as you described) works as well and i'm
using that now. The question i just asked remains :)

On Fri, Jun 7, 2013 at 9:32 PM, Mark <markg85 at gmail.com> wrote:
> Hi Gunnar,
>
> That's an interesting solution!
>
> But how do i get a QQuickView from within a custom component that
> inherits from QQuickItem?
> My component is meant to be a QML Plugin, not a standalone QML application.
>
> Cheers,
> Mark
>
> On Fri, Jun 7, 2013 at 8:12 AM, Sletta Gunnar <Gunnar.Sletta at digia.com> wrote:
>> You need to set the surface format of your QQuickView.
>>
>> QQuickView view;
>> QSurfaceFormat format = view.format();
>> format.setSamples(16);
>> view.setFormat(format);
>> view.show();
>>
>> If your graphics hardware supports multisample antialiasing, you will now have antialiased geometry.
>>
>> As the scene graph might require depth/stencil buffer for its renderer, it is a bit important that you inherit the original surface format from the view instead of creating a new one from scratch.
>>
>> qmlscene supports this out of the box by passing --multisample as a command line option.
>>
>> cheers,
>> Gunnar
>>
>> On Jun 7, 2013, at 12:12 AM, Mark <markg85 at gmail.com> wrote:
>>
>>> Hi,
>>>
>>> Another day, another question :)
>>> Don't worry, i plan on making a big blog about everything. This
>>> information won't get lost.
>>>
>>> So today i'm trying to draw a custom shape by setting vertices. More
>>> specifically a GL_QUAD_STRIP.
>>>
>>> It looks like this (obviously just testing data)
>>>    QSGGeometry *geometry = new
>>> QSGGeometry(QSGGeometry::defaultAttributes_Point2D(), 8);
>>>    geometry->setDrawingMode(GL_QUAD_STRIP);
>>>    geometry->vertexDataAsPoint2D()[0].set(0, 100);
>>>    geometry->vertexDataAsPoint2D()[1].set(0, height());
>>>    geometry->vertexDataAsPoint2D()[2].set(width() / 4, 80);
>>>    geometry->vertexDataAsPoint2D()[3].set(width() / 4, height());
>>>    geometry->vertexDataAsPoint2D()[4].set(width() / 2, 110);
>>>    geometry->vertexDataAsPoint2D()[5].set(width() / 2, height());
>>>    geometry->vertexDataAsPoint2D()[6].set(width(), 150);
>>>    geometry->vertexDataAsPoint2D()[7].set(width(), height());
>>>
>>>    QSGFlatColorMaterial *material = new QSGFlatColorMaterial;
>>>    material->setColor(QColor(255, 0, 0, 128));
>>>
>>>    QSGGeometryNode *n = new QSGGeometryNode;
>>>    n->setGeometry(geometry);
>>>    n->setFlag(QSGNode::OwnsGeometry);
>>>    n->setMaterial(material);
>>>    n->setFlag(QSGNode::OwnsMaterial);
>>>
>>> So roughly the same as the example [1] only with a quad strip.
>>> However, this ends up looking a bit aliased.. So the question is: How
>>> do i get this anti-aliased?
>>>
>>> I did read something about multisampling and setting the number of
>>> samples, but i can't find such a function in any of the used classes..
>>>
>>> Kind regards,
>>> Mark
>>>
>>> [1] http://qt-project.org/doc/qt-5.0/qtquick/qsggeometrynode.html
>>> _______________________________________________
>>> Interest mailing list
>>> Interest at qt-project.org
>>> http://lists.qt-project.org/mailman/listinfo/interest
>>



More information about the Interest mailing list