2013-11-22 3 views
0

ETC 텍스처가 알파 채널을 지원하지 않기 때문에 두 개의 ETC 텍스처를 혼합하려고했습니다. 당신의 누구든지이 opengles 2.0 조각 쉐이더 열려 비트 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; 
} 

에이를 번역하는 방법을 알고있다. Open GL ES 1.x는 셰이더를 지원하지 않기 때문에. 나는 정말로 당신의지지가 필요합니다.

+0

[멀티 텍스처의 새로운 텍스처 만들기]의 중복 가능성 (http://stackoverflow.com/questions/6997774/create-new- texture-from-multitexture) –

+0

고마워, 그렇게 보인다. –

답변

0

블렌드없이 첫 번째 텍스처를 렌더링 한 다음 블렌딩을 사용하고 첫 번째 텍스처 위에 두 번째 텍스처를 렌더링하여이 작업을 수행 할 수 있습니다. 이 혼합 사용하려면 그들 사이에 glDrawArrays()를 두 번 호출이 필요합니다 :

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

glEnableClientState(GL_COLOR_ARRAY); 
glColorPointer() 
+0

멀티 텍스쳐링 (ES 1.1에 있어야 함)을 사용하는 것이 더 나을 지 모르지만. –

관련 문제