这是我的片段着色器:
#version 120
uniform sampler2D sampler0;
uniform bool isf1;
vec4 f1(vec4 color) {
...
}
vec4 f2(vec4 color) {
...
}
void main()
{
gl_FragColor = texture2D( sampler2, gl_TexCoord[0].xy);
gl_FragColor = f1(gl_FragColor);
if(isf1) gl_FragColor = f2(gl_FragColor); //How to avoid it?
}
纹理分辨率为 1920x1080,因此“if”调用了 2073600 次,这是非常低效的。如何让所有纹素只触发一次“if”?