GLSL统一评价
GLSL Uniform evaluation
如果在顶点着色器中有:
#version 450 core
uniform bool v1;
void main()
{
if(v1 == true)
{
//do something
}
}
由于 Uniform 变量在整个着色器中都是常量 运行,因此每帧 if 将计算多少次?一?还是每个顶点一个(因为我们在 vs 中)?
要么每个顶点计算一次,要么系统将在每次更改制服时重新编译着色器(或者可能只有两种形式的着色器)。你应该更喜欢前者而不是后者。
如果在顶点着色器中有:
#version 450 core
uniform bool v1;
void main()
{
if(v1 == true)
{
//do something
}
}
由于 Uniform 变量在整个着色器中都是常量 运行,因此每帧 if 将计算多少次?一?还是每个顶点一个(因为我们在 vs 中)?
要么每个顶点计算一次,要么系统将在每次更改制服时重新编译着色器(或者可能只有两种形式的着色器)。你应该更喜欢前者而不是后者。