如何在 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 中使线框透明?的主要内容,如果未能解决你的问题,请参考以下文章