我需要在运行时修改纹理的外观..
某些示例可能会使用灰度表示停用,橙色表示选择等等
一个更好地展示我想要实现目标的小例子
现在我的FS看起来很简单
#version 330
in vec2 fragmentUV;
out vec4 outputColor;
uniform sampler2D textureNode;
void main()
{
outputColor = texture(textureNode, fragmentUV).rgba;
}
我以为我可以通过将统一变量设置为某些硬编码值来控制这几种情况......
答案 0 :(得分:1)
这就是你可以将图像转换为灰度的方法:http://glsl.heroku.com/e#18369.1
float grayScale = dot(imageColor.rgb, vec3(0.299, 0.587, 0.114));
if (IsGrayScale){
gl_FragColor = vec4(grayScale, grayScale, grayScale, 1.0);
} else{
gl_FragColor = imageColor;
}