How to Blend two texture in OpenGL ES 1



因为ETC纹理不支持alpha通道,所以我尝试混合两个ETC纹理。你们中的任何人都知道如何将其翻译成开放的gles 1.x

varying mediump vec2 uv0;
uniform sampler2D texture;
uniform sampler2D texture_alpha;
void main()
{
    vec4 color      = texture2D(texture, uv0);
    vec4 color_a    = texture2D(texture_alpha, uv0);
    vec4 final_color = vec4(color.rgb, color_a.r);
    gl_FragColor    = final_color;
}

这是opengles2.0中的片段着色器。因为Open GL ES 1.x不支持着色器。我真的需要你的支持。

您可以在不混合的情况下渲染第一个纹理,然后启用混合并在第一个纹理上渲染第二个纹理。这将需要对glDrawArrays()进行两次调用,其间包含以下内容以启用混合:

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnableClientState(GL_COLOR_ARRAY);
glColorPointer()

最新更新