2012-03-06 59 views
0

我有一个应用程序,显示两个多边形。我需要渐进地看不到一个多边形,但另一个必须可见。我正在使用OpenGL ES 1.1。我正在开发Android版本,但我认为其他平台会对相同的代码进行一些较小的更改。如何使用混合使多边形透明?

我该怎么做?

我知道,我必须用这些功能做到这一点:

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

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

回答

1

看起来像那里正确的混合功能,在绘制半透明多边形之前调用它们。 alpha值通常与颜色或纹理贴图(红色,绿色,蓝色,Alpha)一起提供,并且给定上述混合函数时,alpha的范围为0.0(透明)至1.0(不透明)。

另请注意,半透明物体对渲染顺序很敏感:通常,您必须首先绘制所有不透明物体,正常情况下使用深度缓冲区。然后,打开混合并将深度缓冲区设置为只读,并将您的半透明物体背对背绘制(先从摄像机最远处绘制)。这样片段混合发生得最远。

+0

请你能给我一个代码示例在android上做透明纹理多边形?我无法在Google上找到教程或示例 – NullPointerException 2012-03-07 10:41:44