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