【发布时间】:2011-05-02 17:02:19
【问题描述】:
我正在尝试使用以下方法渲染一些透明对象:
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
但是,我没有得到我想要的结果。
我画了一个完全不透明的正方形,然后我画了一个半透明的正方形。颜色和我预期的一样,但是 Alpha 通道并不是我想要的全白。
基本上我想要以下等式:
r = old_r*(1.0-a)+r*a;
g = old_g*(1.0-a)+g*a;
b = old_b*(1.0-a)+b*a;
a = old_a + a;
这是否可以使用 glBlendFunc 来实现,还是我必须借助着色器和多个 FBO 进行回读?
【问题讨论】:
标签: c++ opengl transparency