2010-06-26 81 views
5

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

并感谢您的任何帮助。

+6

你应该点击勾号接受matias.valdenegro的答案:) – 2010-06-27 11:45:31

回答

14

很简单:

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

这是基本的,即混合功能是基本的,应该对你很好,但还有其他的。

然后,您需要确定您的窗口/ framebuffer包含一个alpha通道,并且您绘制的多边形还包含alpha信息。

+0

谢谢你,这很好。 – Hitman 2010-06-26 21:28:38

6

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

原因是OpenGL并不真的支持透明度,它通过alpha混合模拟它,所以如果一个新对象在已经被渲染后被绘制在“透明”基元后面,那么新对象将无法通过它看到。