2013-08-27 3 views
1

두 텍스처의 알파를 혼합 해 봅니다. 처음에는 약간의 이미지 텍스처, 두 번째 텍스처는 투명한 라운드가있는 사각형입니다. 나는이 두 가지 질감을 섞어서 결과적으로 중심부에 둥근 원뿔이있는 내 배경이되도록해야합니다. 이를 위해 glBlendFunc를 사용하려고했지만 배경이 투명해질뿐 아니라 배경이 모두 투명 해졌습니다. glBlendFunc를 통해 텍스처의 알파를 어떻게 혼합 할 수 있습니까?OpenGL 2.0에서 알파 블렌딩

답변

1

GLUtils.texImage2D()를 사용하여 Android의 비트 맵에서 알파 텍스처를로드 할 수 없다는 한 가지 문제가 있습니다. 이것은 Google이 실제로 문서화해야하는 일반적인 문제입니다. 문제는 Bitmap 클래스가 모든 이미지를 미리 곱한 형식으로 변환하지만 이미지가 완전히 불투명하지 않으면 OpenGL ES에서 작동하지 않는다는 것입니다.

http://software.intel.com/en-us/articles/porting-opengl-games-to-android-on-intel-atom-processors-part-1

이 glBlendFunc()를 사용하려면 glEnable (GL_BLEND)를 먼저 활성화해야하지만, 2.0하는 것입니다는 OpenGL ES와 함께 2 텍스쳐를 혼합하는 가장 빠른 방법 :이 문서에서는이에 대한 자세한 내용을 제공합니다 조각 쉐이더에서. 다음은 간단한 예입니다.

uniform sampler2D sampler2d_0; 
uniform sampler2D sampler2d_1; 
varying mediump vec2 texCoord; 

void main() 
{ 
    vec3 vTexture0 = texture2D(sampler2d_0, texCoord); 
    vec3 vTexture1 = texture2D(sampler2d_1, texCoord); 
    vec3 vColor = mix(vTexture0, vTexture1, alpha); 

    gl_FragColor = vec4(vColor, 1.0); 
}