0

因为 ETC 纹理不支持 alpha 通道,所以我尝试混合两个 ETC 纹理。你们中的任何人都知道如何将其翻译成 open gl es 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;
}

这是 opengles 2.0 中的片段着色器。由于 Open GL ES 1.x 不支持着色器。我真的需要你的支持。

4

1 回答 1

0

您可以通过渲染第一个纹理而不进行混合来实现此目的,然后启用混合并在第一个纹理上渲染第二个纹理。这将需要两次调用 glDrawArrays() 以启用混合:

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

glEnableClientState(GL_COLOR_ARRAY);
glColorPointer()
于 2013-11-22T16:52:13.530 回答