Поскольку текстуры ETC не поддерживают альфа-канал, я попытался смешать две текстуры ETC.
Кто-нибудь из вас знает, как перевести это в открытую версию 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 не поддерживает шейдеры. Мне действительно нужна ваша поддержка здесь.
Вы можете сделать это путем рендеринга первой текстуры без наложения, затем включить смешивание и визуализировать вторую текстуру поверх первой. Для этого потребуется два вызова glDrawArrays () с этим между ними, чтобы включить смешивание:
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnableClientState(GL_COLOR_ARRAY);
glColorPointer()
Других решений пока нет …