2010-10-26 15 views
8

Estoy usando glColor4f(1.0f, 1.0f, 1.0f, alpha_); para establecer la transparencia de los primitivos que estoy dibujando.Obtener el color actual

Sin embargo, me gustaría poder leer el valor opengl alpha actual. ¿Es eso posible?

p. Ej.

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

Respuesta

10

O se almacenará el último valor alfa que envió usando glColor4f, ya sea que utilice:

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

Qué quiere decir el valor alfa del fragmento que se vaya a dibujar (lo que explicaría por qué ¿Quieres alpha_ * current_alpha)? Si es así, recuerde que leer un fragmento de la tubería es costoso.

Si está renderizando hacia atrás, considere usar el truco GL_SRC_ALPHA + GL_ONE_MINUS_SRC_ALPHA.

+0

Gracias. Estoy tratando de hacer algo similar. – ronag