2012-04-05 118 views
1

我對opengl完全陌生,需要一些幫助來繪製紋理,並在其上應用漸變。opengl es:用漸變漸變繪製紋理

現在我畫一個紋理下面的代碼:

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 2012-04-05 16:54:40

+0

不需要隨着時間的推移衰減動畫,但只是靜態衰落效果,因爲你說。 – saiy2k 2012-04-06 04:13:50

回答

1

除了在繪製四邊形之前調用glColor4f,您可以設置glColorPointer(或glVertexAttribPointer),使四邊形的四個頂點中的每一個都獲得不同的alpha值?

即RGBA值:

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

這將使你由右至左的阿爾法梯度。

+0

工作輝煌,thx很多:) – saiy2k 2012-04-06 18:19:04