我对这到底是什么意思感到困惑:
When doing blending for a particular buffer, the color from the fragment output is called the source color. The color currently in the buffer is called the destination color.
(from the OpenGL wiki)
我了解混合方程本身是什么,但我不太了解源颜色和目标颜色之间的区别。
任何人都可以提供示例或更具体的定义吗?
最佳答案
为了简单明了:
glColor4f(...)
时,请设置操作的源颜色。 通常,使用原因如下:
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
是因为您要使用刚提供的Alpha值。您可以使用它来乘以当前颜色,然后使用(1-alpha)并使用它来在该坐标中乘以缓冲区的当前颜色。
因此,如果用glColor4f(1.0f,1.0f,1.0f,0.6f)绘制四边形,并且缓冲区中填充了glColor4f(1.0f,0.0f,0.0f,1.0f),则最终操作将是:
(1.0f, 1.0f, 1.0f) * ALPHA + (1.0f, 0.0f, 0.0f) * (1 - ALPHA)
(0.6f, 0.6f, 0.6f) + (0.4f, 0.0f, 0.0f)
所以最终的颜色是(1.0f,0.6f,0.6f)
关于OpenGL混合; “源颜色”和“目标颜色”到底指的是什么,并带有示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16169844/