【问题标题】:How do you make the background of a texture transparent when it overlaps?当纹理重叠时,如何使纹理的背景透明?
【发布时间】:2011-02-15 22:23:36
【问题描述】:

我有一个黑色背景的纹理,我想让它透明。问题是当我使用纹理在另一个对象前面绘制这个纹理时,黑色背景仍然显示。如何使我的纹理透明,即使它重叠?

【问题讨论】:

    标签: opengl alpha alphablending


    【解决方案1】:

    我在这里假设 3 件事

    1. 您已成功加载带有 Alpha 通道的图像(如 .png 或 .tga)
    2. 您已启用深度测试
    3. 您尚未更改混合模式,但已启用混合

    当 OpenGL 绘制四边形/三角形时,它也会绘制到深度缓冲区,无论该像素是否透明(或部分透明)。 我的猜测是您首先绘制这个透明形状,然后最后绘制它后面的对象。 OpenGL 不会在深度缓冲区已经表明您在其前面绘制了某些东西的位置绘制后面的对象,因此您实际上是透过第一个和第二个对象看到“天空”。

    所以如果透明对象总是在前面,最后绘制它。否则它会变得相当复杂(谷歌“深度排序”)

    我回家后会尝试添加更多细节。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    相关资源
    最近更新 更多