我正在尝试动态淡化项目,因为它们看起来更远。
我有这个效果很好,纹理显示很好但不会褪色。
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 ERROR: 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);