2010-10-26 18 views
8

Sto usando glColor4f(1.0f, 1.0f, 1.0f, alpha_); per impostare la trasparenza sulle primitive che sto disegnando.Ottieni il colore corrente

Tuttavia, mi piacerebbe essere in grado di leggere il valore alfa opengl corrente. È possibile?

ad es.

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

risposta

10

O si memorizzare l'ultimo valore alfa è stato inviato utilizzando glColor4f, o si usa:

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

cosa si intende il valore alfa del frammento si sta disegnando su (il che spiegherebbe perché si voglio alpha_ * current_alpha)? In tal caso, ricorda che la lettura di un frammento dalla pipeline è costoso.

Se stai tornando in primo piano, considera l'utilizzo del trucco GL_SRC_ALPHA + GL_ONE_MINUS_SRC_ALPHA.

+0

Grazie. Sto cercando di fare qualcosa di simile. – ronag

Problemi correlati