I am working on OpenGL ES 1.1.
I want to draw a partly-transparent second texture on top of the original texture of an ofVbo. I tried the below code but it is not working. I can not combine the second texture with the mesh’s original texture. Can anybody tell me how I can fix it?
ofxAssimpMeshHelper & mesh = modelMeshes[0];
glActiveTexture(GL_TEXTURE0);
mesh.getTexturePtr()->bind();
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
glActiveTexture(GL_TEXTURE1);
secondtexture.bind();
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_REPLACE);
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_PREVIOUS);
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_TEXTURE);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_MODULATE);
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_PREVIOUS);
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_ALPHA, GL_TEXTURE);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_ALPHA, GL_SRC_ALPHA);
mesh.material.begin();
glEnable(GL_CULL_FACE);
ofEnableBlendMode(OF_BLENDMODE_ALPHA);
mesh.vbo.drawElements(GL_TRIANGLES, mesh.indices.size());
mesh.getTexturePtr()->unbind();
secondtexture.unbind();
ofDisableBlendMode();
mesh.material.end();