[Interest] Antialiasing possible on QSGGeometry?
Sletta Gunnar
Gunnar.Sletta at digia.com
Fri Jun 7 08:12:52 CEST 2013
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