如何设置添加颜色叠加的混合?

时间:2008-12-26 13:49:46

标签: opengl

是否可以在opengl中设置混合以实现加色覆盖?

红色+绿色=黄色,青色+品红色=白色等。(见diagram

2 个答案:

答案 0 :(得分:17)

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);

应该这样做。

查看glBlendFunc

的完整说明

编辑:Old tutorial link似乎已经死了(403 Forbidden)。 Wayback'd

答案 1 :(得分:5)

使用glBlendFunc(GL_ONE,GL_ONE)实现简单的添加剂混合。您需要注意OpenGL的颜色值范围限制为[0,1]这一事实,并且大于1的值将被限制为1,因此添加明亮的颜色可能无法生成物理上正确的混合颜色。如果你想实现这一点,你必须在自己的软件中添加和缩放颜色,而不是让OpenGL处理​​它,或者编写一个在渲染时执行此操作的着色器程序。