2010-11-19 94 views
1

基本上我有在OpenGL ES 1.1的全功能OGL程序(2D游戏),一切工作正常,除了一个问题:glcolor问题使用glColor到纹理设置为半透明度

我想设置一些的我的纹理半透明,我想这样做,如下所示;

gl.glColor4f(1f, 1f, 1f, .5f); 
obj.draw(gl); 
... 

gl.glColor4f(1f, 1f, 1f, 1f); 

我为我的vertice,纹理和索引使用VBO。 (如果是相关的)

的问题是,没有被设置为50%的透明度...

我主要是因为它传播出去几类不认为有关发布我的代码(几个GL选项的变化(混合,剪刀等)

我想要的是人们告诉我什么状态的OGL可以防止像我想要的glcolor形式工作,我应该检查什么功能,我应该检查什么状态

Jason

回答

1

我终于得到了足够的时间一步步走trhough我所有的痕迹,发现问题

gl.glTexEnvf(GL10.GL_TEXTURE_ENV,GL10.GL_TEXTURE_ENV_MODE。 ..);

...设置而产生的一些纹理GL_REPLACE和从未设置为GL_COMBINE

0

您是否启用了GL_BLEND? 结账glBlendFunc。我通常最终会使用glBlendFunc(SRC_ALPHA,ONE_MINUS_SRC_ALPHA)

+0

用正确的glBlendFunc启用没错GL_BLEND。我的大多数纹理在0区域都有alpha,所以混合效果已经很好(否则我会在纹理周围留下漂亮的黑色或白色方块) – 2010-11-22 03:59:57