相关疑难解决方法(0)

GLSL分支行为

我有一个带有分支的相当简单的片段着色器,我有点不确定GLSL编译器如何处理它以及它将如何影响性能.

uniform sampler2D sampler;
uniform vec2 texSize;
uniform vec2 targetSize; 

void main()               
{                  
    vec4 color;
    if(texSize == targetSize)
        color = texture2DNearest(sampler, gl_TexCoord[0]);
    else
        color = texture2DBicubic(sampler, gl_TexCoord[0]);
    gl_FragColor = color;        
}
Run Code Online (Sandbox Code Playgroud)

我从AMD的文档中读到,有时两个分支都被执行,在这种情况下这不是一个好主意.如果没有进一步的信息或访问反汇编,我不确定该怎么想,如果有问题怎么避免呢?

而且根据我的理解,基于统一变量的分支不会产生任何显着的开销,因为它在一次传递中是恒定的?

opengl glsl

13
推荐指数
2
解决办法
3092
查看次数

标签 统计

glsl ×1

opengl ×1