2013-07-22 2 views
0

내 게임의 OpenGL-ES 1.1을 사용하고 흰색 그려. 알파 블렌딩은 99 % 투명 인 텍스처를 그리는 경우를 제외하고는 완벽하게 정상적으로 작동합니다. 예를 들어 중간에 2px 검은 선이있는 512x512 이미지가있는 경우 이러한 텍스처는 안드로이드에서 절대적으로 흰색으로 그려집니다.는 OpenGL-ES 대부분 투명 텍스처

내 블렌딩 기능 : 어떤 도움을 이해할 수있을 것이다

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

.

편집 : 나는이 텍스처

glEnable(GL_TEXTURE_2D); 
glGenTextures(1, &textureCreated); 
glBindTexture(GL_TEXTURE_2D, textureCreated); 
maOpenGLTexImage2D(image); 

// Set texture parameters. 
glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 
glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 

답변

0

가 완전히 불투명하지 않는 한 당신의 OpenGL ES 텍스처의 안드로이드 비트 맵 클래스를 사용할 수 없습니다를 설정하고 방법이다. 이는 Bitmap 클래스가 OpenGL ES 혼합과 호환되지 않는 Porter-Duff 혼합에 대해 미리 곱한 형식으로 픽셀을 저장하기 때문입니다.

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

+0

그래서 그것에 대해 이동하는 방법은 무엇입니까 :이 문서에서는 자세한 내용을 제공합니다? – user2238284

+0

네이티브 코드를 사용하면 Bitmap 클래스가 필요하지 않습니다. Java를 사용하면 GLES11 래퍼로 GLES11.glTexImage2D()를 호출하고 ByteBuffer를 전달하여 GLUtils, PNGDecoder 및 Bitmap 사용을 피할 수 있습니다. – ClayMontgomery

+0

답장을 보내 주셔서 감사합니다. gl 텍스처를 설정하는 코드를 추가했습니다. 함수 maOpenGLTexImage2D는 glTexImage2D()에 해당하는 mosync sdk 함수입니다. 코드 수정 방법을 알려주시겠습니까? 죄송합니다, 나는 단지 OpenGL을 배우고 있습니다 – user2238284