OpenGL ES纹理混合不受影响

时间:2013-05-12 07:46:44

标签: iphone opengl-es glkbaseeffect

注意:我正在使用GLKBaseEffect。

我不确定我做错了什么。 基本上,对于我的GLKBaseEffect,我已经设置了2个纹理。但我只看到渲染的第一个纹理(texture2d0)。我想让第二个纹理(texture2d1)与第一个纹理混合。

也许我的混合功能不正确,或者我使用GLKBaseEffect不正确。有什么明显的做法我做错了吗?

顺便说一下,我的两张图片都是RGB(.PNG格式),没有alpha通道。 我的texture2d1图像(下图)是我想在第一个纹理上混合的纹理。像50%叠加类型的混合物。 enter image description here

////glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_COLOR);
glEnable(GL_DEPTH_TEST);

[EAGLContext setCurrentContext:self.context];

// 1st texture
self.photoEffect = [[GLKBaseEffect alloc] init];
self.photoEffect.light0.enabled = GL_FALSE;
self.photoEffect.light0.diffuseColor = GLKVector4Make(1.0f, 1.0f, 1.0f, 0.5f);
self.photoEffect.lightingType = GLKLightingTypePerPixel;
self.photoEffect.lightModelAmbientColor = GLKVector4Make(1.0f, 1.0f, 1.0f, 0.5f);

// 2nd texture
self.photoEffect.texture2d1.envMode =  GLKTextureEnvModeModulate;
self.photoEffect.texture2d1.target = GLKTextureTarget2D;
self.photoEffect.texture2d1.enabled = TRUE;

UIImage *styleImage = [UIImage imageNamed:@"style_1.png"];
_photoStyleTextureId = [ImageLoader LoadGLKTextureInfo_ByImage:styleImage];
self.photoEffect.texture2d1.name = _photoStyleTextureId;

0 个答案:

没有答案