我提前道歉,如果这个问题似乎混淆。我看到的行为是没有意义的我。

我有一个帧缓冲区渲染到纹理。我渲染的改变不透明度为这个质地的红色,绿色,蓝色实线矩形。然后我渲染纹理画面(帧缓冲0)。附连到纹理帧缓冲区是持久的,并且在每个呈现循环我吸引更多的矩形纹理 - 最终填充屏幕

我已经发现,如果我不渲染所述纹理到屏幕之前设置glColor()到白100%不透明度,特别颜色矩形不会被渲染。也就是说,如果glColor(1.f, 0.f, 0.f, 1.f)正在呈现纹理之前设置,只有蓝色矩形将绘制。

我不明白为什么当前的颜色会对纹理(我假设是像块传送)的渲染的影响。我曾尝试过各种texParameter(...)呼叫无果,但我只是猜测。

感谢。

有帮助吗?

解决方案

除其他事项外,glColor()设置用于顶点的颜色。当纹理绘制矩形,每一纹理像素样本是由顶点色彩multipled。以及,实际上,基元的顶点的线性interpoloation只是顶点颜色如果所有verticies具有相同的颜色。

本教程解释这一切的影响非常好:

http://www.falloutsoftware.com/tutorials/gl/gl4.htm

在仅奇数部分这里是您的声明,glColor(1,0,0,1)使要被绘制仅蓝色矩形。我希望这是唯一的红色矩形如果参数glColor有红,绿,蓝和alpha。希望有一个错字或参数顺序不同,使得红色= 0,绿色= 0,蓝色= 1和α= 1。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top