Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl 在执行纹理贴图操作之前设置GL颜色的作用是什么?_Opengl_Texture Mapping - Fatal编程技术网

Opengl 在执行纹理贴图操作之前设置GL颜色的作用是什么?

Opengl 在执行纹理贴图操作之前设置GL颜色的作用是什么?,opengl,texture-mapping,Opengl,Texture Mapping,我正在看一本书中的一些示例代码,它通过在屏幕外纹理上重复渲染场景(以不同的偏移)来创建抖动的抗锯齿效果,然后使用该纹理在主视图中重复绘制四边形,并设置一些混合内容 要“正确”累积颜色,代码将如下设置颜色: glColor4f(f, f, f, 1); 其中f是1.0/样本数,然后绑定屏幕外纹理并渲染它 由于纹理具有自己的颜色和alpha数据,因此预先设置整体“颜色”会产生什么效果(数学上和直观上) 谢谢。默认的纹理环境是GL_MODULATE,这意味着顶点颜色(使用glColor设置)与纹理颜

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

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

glColor4f(f, f, f, 1);
其中f是
1.0/样本数
,然后绑定屏幕外纹理并渲染它

由于纹理具有自己的颜色和alpha数据,因此预先设置整体“颜色”会产生什么效果(数学上和直观上)


谢谢。

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

因此,从数学上讲,它确实:

fragmentColor = texColor / numberOfSamples (alpha = 1.0)

希望能解释清楚。

谢谢!这很有帮助。因此,接下来的问题是:如果我想将纹理映射到四边形,并精确保留纹理上的RGBA,我可以做以下两件事之一:1。将纹理环境更改为GL_REPLACE或2。将颜色设置为(1,1,1,1)。这是正确的吗?