2012-04-08 3 views
0

안녕하세요 저는 ANdroid에서 OPENGL Es로 놀고 있는데 내 앱에 이미지를 표시하려고합니다. 나는 (이미지 사양은 64 × 64 픽셀) 이미지를 표시 할 때 나는 이미지에 검정색 배경을 얻을하지만이 코드를 넣을 때이미지가 검은 색 배경으로 표시됩니다. OPENGL ES Android

public void draw(GL10 gl) { 
... 
.. 
gl.glAlphaFunc(GL10.GL_GREATER, 0); 

을 검은 배경이 사라하지만 내 이미지에 이상한 색상을 얻을.

아무에게도이 문제를 해결하는 방법에 대한 아이디어가 있습니까?

+0

스크린 샷을 게시하는 것이 좋습니다. 더 많은 코드를 게시하는 것이 더 좋을 것입니다. 이미지에 알파 채널이 포함되어 있습니까? 표시되지 않은 코드에 알파 테스트가 있습니까? –

답변

1

블렌딩을 사용해야합니다. 이런 식으로 뭔가 작업을해야합니다 :

gl.glEnable(gl.GL_BLEND); 
gl.glBlendFunc(gl.GL_SRC_ALPHA,gl.GL_ONE_MINE_SRC_ALPHA); 

당신이 glAlphaFunc를 사용하고 결과에 가까운를 얻을 수 있다는 사실은 이미지 자체가 적어도 괜찮 제안합니다.

+0

답장을 보내 주셔서 감사합니다. 이미 사용해 보았습니다. 그러나 내가 얻은 것은 투명한 이미지입니다. 이미 다음 코드를 입력했지만 여전히 작동하지 않았습니다. – fynx

+0

gl.glTexEnvf (GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE, /*GL10.GL_REPLACE*/GL10.GL_MODULATE); \t \t gl.glEnable (GL10.GL_ALPHA_TEST); \t \t // gl.glBlendFunc (GL10.GL_SRC_ALPHA, GL10.GL_AMBIENT_AND_DIFFUSE); \t \t gl.glClearDepthf (1.0f); \t \t gl.glEnable (GL10.GL_DEPTH_TEST); \t \t gl.glDepthFunc (GL10.GL_LEQUAL); – fynx

+0

해당 줄에 GL_BLEND가 표시되지 않습니까? –

관련 문제