在进行纹理映射操作之前设置GL颜色有什么作用?

时间:2010-06-15 00:33:13

标签: opengl texture-mapping

我正在看一本书中的一些示例代码,它通过重复渲染场景(在不同的偏移处)到屏幕外纹理来创建抖动的抗锯齿效果,然后使用该纹理在主视图中重复绘制一个四边形设置的东西。

为了“正确”累积颜色,代码设置颜色如下:

glColor4f(f, f, f, 1);

其中f为1.0/number_of_samples,然后绑定屏幕外纹理并渲染它。

由于纹理带有自己的颜色和alpha数据,因此提前设置整体“颜色”的效果(数学和直观)是什么?

感谢。

1 个答案:

答案 0 :(得分:5)

默认纹理环境是GL_MODULATE,这意味着顶点颜色(使用glColor设置)与纹理颜色相乘。

所以,在数学上,它确实:

fragmentColor = texColor / numberOfSamples (alpha = 1.0)

希望能够解释它。