当重叠时,如何使纹理的背景透明?

时间:2011-02-15 22:23:36

标签: opengl alpha alphablending

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

1 个答案:

答案 0 :(得分:1)

我在这里假设3件事

  1. 您已成功加载带有Alpha通道的图像(例如.png或.tga)
  2. 您已启用深度测试
  3. 您尚未更改混合模式,但已启用混合
  4. 当OpenGL绘制四边形/三角形时,它也会绘制到深度缓冲区,无论该像素是否透明(或部分透明)。 我的猜测是你首先绘制这个透明的形状,然后它背后的对象。 OpenGL不会绘制后面的对象,深度缓冲区已经说明你已经在它前面绘制了一些东西,所以你真正看到了第一个和第二个对象,进入了“天空”。

    因此,如果透明对象始终位于前面,请将其绘制到最后。否则它变得非常复杂(谷歌“深度排序”)

    当我回到家时,我会尝试添加更多细节。