【发布时间】:2011-02-15 22:23:36
【问题描述】:
我有一个黑色背景的纹理,我想让它透明。问题是当我使用纹理在另一个对象前面绘制这个纹理时,黑色背景仍然显示。如何使我的纹理透明,即使它重叠?
【问题讨论】:
标签: opengl alpha alphablending
我有一个黑色背景的纹理,我想让它透明。问题是当我使用纹理在另一个对象前面绘制这个纹理时,黑色背景仍然显示。如何使我的纹理透明,即使它重叠?
【问题讨论】:
标签: opengl alpha alphablending
我在这里假设 3 件事
当 OpenGL 绘制四边形/三角形时,它也会绘制到深度缓冲区,无论该像素是否透明(或部分透明)。 我的猜测是您首先绘制这个透明形状,然后最后绘制它后面的对象。 OpenGL 不会在深度缓冲区已经表明您在其前面绘制了某些东西的位置绘制后面的对象,因此您实际上是透过第一个和第二个对象看到“天空”。
所以如果透明对象总是在前面,最后绘制它。否则它会变得相当复杂(谷歌“深度排序”)
我回家后会尝试添加更多细节。
【讨论】: