2010-10-26 73 views
8

使用glColor4f(1.0f, 1.0f, 1.0f, alpha_);來設置我繪製的圖元的透明度。獲取當前顏色

但是我希望能夠讀取當前的opengl alpha值。那可能嗎?

例如

float current_alpha = glGetAlpha(); //??? 
glColor4f(1.0f, 1.0f, 1.0f, alpha_*current_alpha); 

回答

10

要麼你保存你使用glColor4f發送的最後一個Alpha值,任你使用:

float currentColor[4]; 
glGetFloatv(GL_CURRENT_COLOR,currentColor); 
1

你的意思是你在畫片段的阿爾法值(這可以解釋爲什麼你想要alpha_ * current_alpha)?如果是這樣,請記住從管道中讀回一個片段是昂貴的

如果您正在渲染回去,請考慮使用GL_SRC_ALPHA + GL_ONE_MINUS_SRC_ALPHA技巧。

+0

謝謝。我正在嘗試做類似的事情。 – ronag 2010-10-26 23:00:40