如何在openGL中绘制透明多边形

时间:2010-06-26 18:23:17

标签: opengl

我需要你的帮助。我知道openGL中有alpha,它帮助我在透明模式下绘制多边形,但我不知道该怎么做,应该允许opengGL绘制多边形。

并感谢您的帮助。

2 个答案:

答案 0 :(得分:15)

很简单:

glEnable(GL_BLEND); //Enable blending.
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); //Set blending function.

这是基本的,混合功能是基本的,对你来说应该没问题,但还有其他功能。

然后,你需要确保你的窗口/帧缓冲包含一个alpha通道,并且你绘制的多边形也包含alpha信息。

答案 1 :(得分:6)

正如Matias所说,但你也应该记住,为了让“透明度”按照预期工作,必须首先绘制场景中的所有非透明图元,并且必须绘制透明图元。正确的顺序,从Z缓冲区的后面到前面。

原因是OpenGL并不真正支持透明度,它通过alpha混合来模拟它,因此如果在渲染之后在“透明”基元后面绘制新对象,则新对象将通过它不可见。