是否可以在opengl中设置混合以实现加色覆盖?
红色+绿色=黄色,青色+品红色=白色等。(见diagram)
答案 0 :(得分:17)
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
应该这样做。
的完整说明编辑:Old tutorial link似乎已经死了(403 Forbidden)。 Wayback'd
答案 1 :(得分:5)
使用glBlendFunc(GL_ONE,GL_ONE)实现简单的添加剂混合。您需要注意OpenGL的颜色值范围限制为[0,1]这一事实,并且大于1的值将被限制为1,因此添加明亮的颜色可能无法生成物理上正确的混合颜色。如果你想实现这一点,你必须在自己的软件中添加和缩放颜色,而不是让OpenGL处理它,或者编写一个在渲染时执行此操作的着色器程序。