如何使用 Qt3D 在网格中制作透明线?
Posted
技术标签:
【中文标题】如何使用 Qt3D 在网格中制作透明线?【英文标题】:How to make transparent lines in a mesh using Qt3D? 【发布时间】:2021-04-16 14:52:13 【问题描述】:我正在使用 Qt3D 来绘制线条,并使用 QPerVertexColorMaterial 方法来提高效率(代码示例请参见此处:How to optimize point cloud rendering in Qt3D)。
我为颜色属性 (rgba) 定义了 4 个顶点的大小,因为我想修改特定行的透明度。但是修改 alpha 值似乎对显示没有影响。
是否可以使用 Qt3D 中的 QPerVertexColorMaterial 实现来做到这一点?
【问题讨论】:
【参考方案1】:虽然您可以为顶点提供具有适当 alpha 值的颜色属性,但 QPerVertexColorMaterial
本身并没有实现 alpha 混合。
查看qt/qt3d/src/extras/defaults/qphongalphamaterial.cpp 下的QPhongAlphaMaterial
,了解处理透明度需要什么。
【讨论】:
所以你确认不能用 QPerVertexColorMaterial 处理透明度,我需要创建一个特定的材料来做到这一点? 没错,就是这个意思。 感谢您的帮助。我很惊讶地发现关于这种需求的信息如此之少。我觉得这是一个非常基本的功能,想知道 Qt3d 用户通常如何解决它。当然,我们可以逐个实体地管理透明度,但这样做时,我注意到显示速度大大降低。以上是关于如何使用 Qt3D 在网格中制作透明线?的主要内容,如果未能解决你的问题,请参考以下文章