如何在 Qt3D 中使线框透明?

Posted

技术标签:

【中文标题】如何在 Qt3D 中使线框透明?【英文标题】:How to make wireframe transparent in Qt3D? 【发布时间】:2018-04-28 05:25:12 【问题描述】:

我试图在one of examples of Qt3D 中使线框透明,但失败了。 我在 robustwireframe.frag 中将 alpha 设置为 0.5,但它不起作用。

void main()
// Calculate the color from the phong model
     vec4 color = vec4( adsModel( fs_in.position, normalize( fs_in.normal ) ), 0.5);
     fragColor = shadeLine( color );

【问题讨论】:

也许您可以查看 QPhongAlphaMaterial github.com/qt/qt3d/blob/5.11/src/extras/defaults/… 并调整着色器,使其适用于您的线框。 【参考方案1】:

将BlendEquation 添加到renderStates 将启用Alpha 混合,因此将以下代码添加到WireframeEffect.qml 中的RenderPass:

RenderPass 
    renderStates: [
           BlendEquation blendFunction: BlendEquation.Min
     ]
     shaderProgram: ShaderProgram 
                        vertexShaderCode:loadSource("qrc:/shaders/robustwireframe.vert")
                        geometryShaderCode: loadSource("qrc:/shaders/robustwireframe.geom")
                        fragmentShaderCode: loadSource("qrc:/shaders/robustwireframe.frag")
   

【讨论】:

以上是关于如何在 Qt3D 中使线框透明?的主要内容,如果未能解决你的问题,请参考以下文章

如何在swift中使背景视图透明但图像不透明[关闭]

如何在 SkiaSharp 中使 SKBitmap 位图颜色为透明

如何在本机反应中使状态栏透明?

如何在 Vuetify 中使 Appbar 背景颜色透明

如何在 iOS 7 中使导航栏透明? [复制]

如何在 iOS 10 中使导航栏透明