1

我想增加 OpenGL 渲染中使用的纹理的亮度。比如让它变成鲜红色或白色。这是一个 2D 渲染环境,其中每个精灵都作为纹理映射到 OpenGL 多边形。我对处理数据知之甚少,而且我的引擎使用纹理缓存,因此更改整个表面会影响使用纹理的所有内容。我可以通过使用“蒙版”并覆盖它来模拟效果,从而使精灵具有纯色,但这会占用内存。如果有任何其他解决方案?

4

3 回答 3

2

如果您的要求负担得起,您总是可以编写一个非常简单的 GLSL 片段着色器来执行此操作。它实际上是一个班轮。
就像是:

uniform sampler2d tex;
void main()
{
    gl_FragColor = texture2d(tex, gl_TexCoord[0]) + gl_Color;
}
于 2009-08-25T06:19:48.030 回答
1

也许是GL_ADD而不是 GL_MODULATE?

于 2009-08-25T16:15:22.303 回答
0

用于GL_MODULATE将纹理颜色乘以当前颜色。请参阅此页面
中的纹理教程。

于 2009-08-24T22:24:26.823 回答