注: GLKBaseEffect を使用しています。
何が間違っているのかわかりません。基本的に、私の GLKBaseEffect では、2 つのテクスチャを設定しています。しかし、レンダリングされた最初のテクスチャ (texture2d0) しか表示されません。2 番目のテクスチャ (texture2d1) を 1 番目のテクスチャとブレンドしたいと考えています。
おそらく、私のブレンド関数が正しくないか、GLKBaseEffect を不適切に使用しています。私が間違っていることは明らかですか?
ところで、私の画像は両方ともアルファチャンネルのない RGB (.PNG 形式) です。私の texture2d1 画像 (下) は、最初のテクスチャにブレンドしたいテクスチャです。ブレンドの50%オーバーレイタイプのように。
////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;