2013-11-22 59 views
0

由於ETC紋理不支持alpha通道,我試圖混合兩個ETC紋理。 任何人的你知道如何翻譯成的Open GL ES 1.x的如何在OpenGL ES中混合兩個紋理1

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

的[創建從多紋理新的紋理]可能重複(http://stackoverflow.com/questions/6997774/create-new- texture-from-multitexture) –

+0

謝謝,它似乎是如此。 –

回答

0

您可以通過渲染第一個紋理而不進行混合來完成此操作,然後在第一個紋理上啓用混合並渲染第二個紋理。這將需要兩次調用(4,8)這在他們之間啓用混合:

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

glEnableClientState(GL_COLOR_ARRAY); 
glColorPointer() 
+0

儘管使用多紋理(ES 1.1應具有)可能會更好。 –