我正在使用glColor4f(1.0f, 1.0f, 1.0f, alpha_);
为我正在绘制的基元设置透明度。
但是我希望能够读取当前的opengl alpha值。这可能吗?
e.g。
float current_alpha = glGetAlpha(); //???
glColor4f(1.0f, 1.0f, 1.0f, alpha_*current_alpha);
答案 0 :(得分:12)
要么使用glColor4f
存储您发送的最后一个Alpha值,要么使用:
float currentColor[4];
glGetFloatv(GL_CURRENT_COLOR,currentColor);
答案 1 :(得分:1)
你的意思是你正在绘制的片段的alpha值(这可以解释为什么你想要alpha_ * current_alpha
)?如果是这样,请记住从管道中读取片段是昂贵的。
如果您要渲染回来,请考虑使用GL_SRC_ALPHA + GL_ONE_MINUS_SRC_ALPHA技巧。