本页内容

Qt3DRender::QAlphaCoverage Class

class Qt3DRender::QAlphaCoverage

启用“透明度到覆盖率”多采样模式。更多...

标题: #include <qalphacoverage.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
在 QML 中: AlphaCoverage
继承自: Qt3DRender::QRenderState
状态: 已弃用

该类已弃用。我们强烈建议不要在新代码中使用它。

公共函数

QAlphaCoverage(Qt3DCore::QNode *parent = nullptr)

详细说明

Qt3DRender::QAlphaCoverage 类可启用“Alpha转覆盖率”多采样模式。启用后,片段Alpha值将作为采样的覆盖率,并与片段覆盖率值相结合。若多采样功能已禁用,Qt3DRender::QAlphaCoverage 将不执行任何操作。“Alpha转覆盖率”在需要顺序无关混合时最为有用,例如渲染树叶、草丛及其他茂密的植被时。

可通过调用QRenderPass::addRenderState() 将其添加到QRenderPass 中:

QRenderPass *renderPass = new QRenderPass();

// Create a alpha coverage render state
QAlphaCoverage *alphaCoverage = new QAlphaCoverage();
QMultiSampleAntiAliasing *multiSampleAntialiasing = new QMultiSampleAntiAliasing();

// Add the render states to the render pass
renderPass->addRenderState(alphaCoverage);
renderPass->addRenderState(multiSampleAntialiasing);

或者通过调用QRenderStateSet::addRenderState() 将其添加到QRenderStateSet 中:

QRenderStateSet *renderStateSet = new QRenderStateSet();

// Create a alpha coverage render state
QAlphaCoverage *alphaCoverage = new QAlphaCoverage();
QMultiSampleAntiAliasing *multiSampleAntialiasing = new QMultiSampleAntiAliasing();

// Add the render states to the render state set
renderStateSet->addRenderState(alphaCoverage);
renderStateSet->addRenderState(multiSampleAntialiasing);

另请参阅 Qt3DRender::QMultiSampleAntiAliasing 。

成员函数文档

[explicit] QAlphaCoverage::QAlphaCoverage(Qt3DCore::QNode *parent = nullptr)

该构造函数会使用指定的parent 创建一个新的QAlphaCoverage::QAlphaCoverage 实例。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.