我正在使用Qt5及其OpenGL集成,当我尝试绘制半透明对象时遇到了问题。当一个对象是半透明的时,在我的OpenGL窗口后面可见的任何东西都显示在该对象的屏幕区域内,而不是与已经在颜色缓冲区中的任何东西混合的对象。我已经开始通过我的半透明物体观看YouTube视频了,因为无论是通过直播还是现场直播。
有趣的是,最透明的物体看起来似乎发生在一半不透明度 - 完全不透明度使其变得坚固,而零不透明度根本不呈现任何东西(以前在3D场景的背景中保留的任何东西都保留在那里)。最后渲染半透明对象并不能解决问题。
我注意到当我在纹理上启用mipmap时也会发生这种情况 - 随着到对象上一个点的距离增加,相关像素变得更透明并显示OpenGL窗口后面的任何内容。我的Windows和OSX计算机上都会出现此问题。
这是一个已知问题吗?有解决方法吗?谷歌没有被证明太有帮助。
答案 0 :(得分:1)
但如果它确实提供了一些提示:
除了实现窗口半透明效果之外,主窗口帧缓冲区上的alpha通道几乎没什么用处。除非您需要这些,否则您应该为窗口帧缓冲区选择没有Alpha通道的像素格式,或者将其所有像素的alpha值保持为完全不透明度。