这是我的片段着色器:GLSL如何避免多次检查
#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,所以“如果”电话2073600次,这是非常低效的。如何让'如果'只有一次为所有纹理元素激发?
一帧需要多长时间才能用那个'if'在那里渲染? 1毫秒? 1秒? 1分钟? – genpfault