我需要你的帮助。我知道openGL中有alpha,它帮助我在透明模式下绘制多边形,但我不知道该怎么做,应该允许opengGL绘制多边形。
并感谢您的帮助。
答案 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混合来模拟它,因此如果在渲染之后在“透明”基元后面绘制新对象,则新对象将通过它不可见。