2012-06-28 55 views
0

我试图动态淡入淡出物品,因为它们显得更远。IOS GLKit:动态淡化纹理(OpenGL)

我有这个工作正常,纹理显示正常,但不褪色。

effect.texture2d0.enabled = GL_TRUE; 
effect.texture2d0.envMode = GLKTextureEnvModeReplace; 
effect.texture2d0.target = GLKTextureTarget2D; 
effect.texture2d0.name = texture.name; 

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

然后我改变它(基于几个堆栈溢出帖子)。使GLKTextureEnvModeModulate或添加glColor4f给我GL错误的错误:0x0502

effect.texture2d0.enabled = GL_TRUE; 
effect.texture2d0.envMode = GLKTextureEnvModeModulate; 
effect.texture2d0.target = GLKTextureTarget2D; 
effect.texture2d0.name = texture.name; 

// transparancy 
glEnable(GL_BLEND); 
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); // GL_SRC_ALPHA 

glColor4f(0.7, 0.7, 0.7, 0.7); 

回答

1

这里是我做了什么:

self.effect.texture2d0.envMode = GLKTextureEnvModeModulate; 
    self.effect.texture2d0.target = GLKTextureTarget2D; 
    self.effect.texture2d0.name = mTexture.name; 

    self.effect.texture2d1.envMode = GLKTextureEnvModeDecal; 
    self.effect.texture2d1.target = GLKTextureTarget2D; 
    self.effect.texture2d1.name = mTexture2.name; 

您将获得的混合,但我仍然不能申请动态不透明系数。