これは私のフラグメントシェーダーです:
#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' を 1 回だけ起動する方法は?