如何使用Blend使多边形透明?

时间:2012-03-06 16:56:43

标签: android opengl-es

我有一个显示两个多边形的应用。我需要逐渐隐形其中一个多边形,但另一个必须是可见的。我正在使用OpenGL ES 1.1。我正在为Android开发,但我认为其他平台将执行相同的代码并进行一些细微的更改。

我怎么能这样做?

我知道我必须使用这些功能:

    glEnable (GL_BLEND); 
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

但我不知道我必须把它们放在哪里以及如何使用它们来使我的多边形逐渐透明。

1 个答案:

答案 0 :(得分:1)

看起来正确的混合功能在那里,在绘制半透明多边形之前调用它们。对于上面的混合函数,alpha值通常由颜色或纹理贴图(红色,绿色,蓝色,Alpha)提供,alpha的范围为0.0(透明)到1.0(不透明)。

另请注意,半透明对象对渲染顺序很敏感:通常,您必须首先使用深度缓冲区绘制所有不透明对象。然后,打开混合并将深度缓冲区设置为只读,并将半透明对象从前向后绘制(首先从相机中绘制最远)。这样碎片混合发生得最远 - 最接近。