获取当前颜色

时间:2010-10-26 22:07:19

标签: c++ opengl

我正在使用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);

2 个答案:

答案 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技巧。