2012-04-05 4 views
1

저는 OpenGL을 처음 접했고 그 위에 그라디언트가 적용된 텍스처를 그릴 때 도움이 필요합니다. opengl : 페이딩 그라디언트로 텍스처 그리기

지금 나는 다음과 같은 코드를 사용하여 텍스처를 그리기 오전 :

glPushMatrix(); 
glBindTexture(GL_TEXTURE_2D,fcr.texture); 
glTranslatef(trans, 0, 0); 
glScalef(sc,sc,1.0); 
glColor4f(1.0,1.0,1.0,0.4); 
glDrawArrays(GL_TRIANGLE_STRIP,0,4); 
glColor4f(1,1,1,1); 

을 위의 코드 glColor4f(1.0,1.0,1.0,0.4);에서하면 그려지는 이미지에 투명도를 적용한다. 이제 솔리드 투명 색상 대신 이미지에 투명한 그라디언트를 적용하여 페이드 아웃 효과를 시뮬레이션하고 싶습니다.

이 스레드는 iPhone OpenGL - How to gradient fade out a texture?입니다.이 질문은 리플렉션 대신 주 이미지 자체에 그라디언트를 적용하려는 경우를 제외하고 제 질문과 같습니다. 그러나 주어진 답에서 해결책을 찾아 내지 못했습니다.

내가 그래야 glTexEnvi을 사용해야하지만 그래디언트로 다른 이미지를 그리는 방법은 무엇입니까?

+0

왼쪽 또는 오른쪽 그라디언트와 같이 왼쪽이 투명하지 않고 오른쪽이 완전히 투명 (또는 위쪽/아래쪽, 위쪽/아래쪽 등)하는 경우가 있습니까? – Tim

+0

시간이 지남에 페이딩 애니메이션이 필요 없지만 그냥 정적 페이딩 효과가 말했듯이 .. – saiy2k

답변

1

쿼드를 그리기 전에 glColor4f를 호출하는 대신 쿼드의 네 꼭지점 각각이 다른 알파 값을 갖도록 glColorPointer (또는 glVertexAttribPointer)를 설정할 수 있습니까?

즉 RGBA 값 :

(x,x,x,1)  (x,x,x,0) 
    ----------------- 
    |    | 
    |    | 
    |    | 
    |    | 
    |    | 
    |    | 
    ----------------- 
    (x,x,x,1)  (x,x,x,0) 

이 당신을 오른쪽에서 왼쪽으로 알파 그라데이션을 줄 것입니다.

+0

화려한 일을 많이 :) – saiy2k