0

注: 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;
4

0 に答える 0