2012-06-24 4 views
2

저는 OpenGLES에 익숙하지 않고 알파로 사각형을 그리고 있지만 알파는 화면에 표시되지 않았습니다. 내가 어디 선가 있는지 알아 내도록 도와주세요.안드로이드, OpenGL ES 1.0, 알파

GLES10.glEnableClientState(GL10.GL_VERTEX_ARRAY); 
GLES10.glClear(GL10.GL_COLOR_BUFFER_BIT); 
GLES10.glColor4f(0.5f, 0.5f, 0.5f, 0.1f); <-- NOT Working , please help 0.1 alpha not taken 
GLES10.glPushMatrix();GLES10.glEnableClientState(GL10.GL_VERTEX_ARRAY); 
GLES10.glVertexPointer(
     3, 
     GL10.GL_FLOAT, 
     0, 
     RendererImpl.makeFloatBuffer(new float[] { -160.0f, -100.0f, 
       0.0f, 160.0f, -100.0f, 0.0f, 160.0f, 100.0f, 0.0f, 
        -160.0f, 100.0f, 0.0f })); 
GLES10.glDrawArrays(GL10.GL_TRIANGLE_FAN, 0, 4); 
GLES10.glDisableClientState(GL10.GL_VERTEX_ARRAY); 
GLES10.glPopMatrix(); 
GLES10.glFlush(); 
+0

"알파가 화면에 표시되지 않습니다." 이것이 무엇을 의미한다고 생각하는지 설명해주십시오. 너는 무엇을 기대하고 있니? Alpha는 블렌딩이나 알파 테스트를하지 않는 한 아무런 의미가 없습니다. 일반적으로 – Tim

+0

은 투명하다고 생각되는 알파를 사용합니다. 불투명도를 잃는 색. . 나는 배경을보아야한다. 나는 여기에서 볼 수 없다. 블렌딩에 대해 생각해 보지 못했지만 그걸 보았지만 텍스처와 함께 사용되는 것처럼 보였습니다. 그리고 알파 테스트, 나는 그것을 사용하여 완성 된 색상을 투명하게 만들거나 변경하지 않았습니다. 나는 이것을 더 설명하기에는 너무 지식이 없다. 알파 테스트에 대한 자습서를 얻는 데 도움을 줄 수 있는데, 내가 찾지 못했지만 (검색했지만) 문제인 경우이를 파악하려고합니다. –

답변

4

그리는 개체를 투명하게 만들려면 먼저 혼합을 사용하도록 설정해야합니다.

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

그런 다음 위에서했던 것처럼 당신의 투명 객체를 그릴하려고 :

당신의 배경은 먼저, 다음이 옵션을 설정립니다.

+0

텍스처를 그릴 필요가 없습니다. 알파로 채색 된 사각형을 그려야합니다. 불투명도를 의미합니다. –

+0

죄송합니다, 평면 색상이나 질감에 대해 똑같이 작동해야합니다. 나는 '원시적 인'것을 의미 할 때 질감을 말했습니다. 코드를 사용해보십시오. @ KamleshGupta – Tim

+0

그것은 작동하고 감사합니다. ... 좋은 아이디어에 대한 모든 아이디어 글쎄 자습서하시기 바랍니다 –

관련 문제