Android — Как смешать две текстуры в OpenGL ES 1

Поскольку текстуры 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 не поддерживает шейдеры. Мне действительно нужна ваша поддержка здесь.

0

Решение

Вы можете сделать это путем рендеринга первой текстуры без наложения, затем включить смешивание и визуализировать вторую текстуру поверх первой. Для этого потребуется два вызова glDrawArrays () с этим между ними, чтобы включить смешивание:

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

glEnableClientState(GL_COLOR_ARRAY);
glColorPointer()
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]