Masks onscreen content based on the alpha color value of a mask texture. More...
| Header: | #include <OpacityMask> |
| Inherits: | Kuesa::AbstractPostProcessingEffect |
| Qt3DRender::QAbstractTexture * | mask() const |
| bool | premultipliedAlpha() const |
| void | setMask(Qt3DRender::QAbstractTexture *mask) |
| void | setPremultipliedAlpha(bool premultipliedAlpha) |
| void | maskChanged(Qt3DRender::QAbstractTexture *mask) |
| void | premultipliedAlphaChanged(bool premultipliedAlpha) |
Given an RGBA mask texture, content of the backbuffer will be rendered as:
vec4 pixelColor = vec4(inputColor.rgb, inputColor.a * maskColor.a)

A premultiplied alpha variant of the algorithm is also available which can be of use when combining Qt 3D / Kuesa content with 2D QtQuick content (Scene3D). It performs rendering doing:
vec4 pixelColor = vec4(inputColor.rgb / maskColor.a, inputColor.a * maskColor.a);
#include <Qt3DExtras/Qt3DWindow>
#include <ForwardRenderer>
#include <SceneEntity>
#include <OpacityMask>
Qt3DExtras::Qt3DWindow win;
Kuesa::SceneEntity *root = new Kuesa::SceneEntity();
Kuesa::ForwardRenderer *frameGraph = new Kuesa::ForwardRenderer();
Kuesa::OpacityMask *opacityMask = new Kuesa::OpacityMask();
Qt3DRender::QTextureLoader *texture = new Qt3DRender::QTextureLoader();
texture->setSource(QUrl("file:///opacityMask.png"));
opacityMask->setMask(texture);
frameGraph->addPostProcessingEffect(opacityMask);
win->setRootEntity(root);
win->setActiveFrameGraph(forwardRenderer);
...

The RGBA texture to use as a mask.
Access functions:
| Qt3DRender::QAbstractTexture * | mask() const |
| void | setMask(Qt3DRender::QAbstractTexture *mask) |
Notifier signal:
| void | maskChanged(Qt3DRender::QAbstractTexture *mask) |
Specifies whether the masking should be performed using premultipliedAlpha. This can be useful when combining Kuesa and QtQuick with a Scene3D element. It is false by default.
Access functions:
| bool | premultipliedAlpha() const |
| void | setPremultipliedAlpha(bool premultipliedAlpha) |
Notifier signal:
| void | premultipliedAlphaChanged(bool premultipliedAlpha) |