Opengl 统一评价
如果在顶点着色器中存在:Opengl 统一评价,opengl,glsl,shader,vertex-shader,Opengl,Glsl,Shader,Vertex Shader,如果在顶点着色器中存在: #version 450 core uniform bool v1; void main() { if(v1 == true) { //do something } } 由于均匀变量在整个着色器运行过程中是恒定的,因此每帧将对if求值多少次?一个?或者每个顶点一个(因为我们在vs中)?或者每个顶点计算一次,或者每次更改该一致性时系统将重新编译着色器(或者可能只有两种形式的着色器)。您应该更喜欢前者而不是后者。我相信它将在每个顶
#version 450 core
uniform bool v1;
void main()
{
if(v1 == true)
{
//do something
}
}
由于均匀变量在整个着色器运行过程中是恒定的,因此每帧将对if求值多少次?一个?或者每个顶点一个(因为我们在vs中)?或者每个顶点计算一次,或者每次更改该一致性时系统将重新编译着色器(或者可能只有两种形式的着色器)。您应该更喜欢前者而不是后者。我相信它将在每个顶点执行一次。由于这无法在编译时解决,我相信没有办法对其进行优化,因此必须在运行时对其进行评估,要求每个顶点一次。