Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl 统一评价_Opengl_Glsl_Shader_Vertex Shader - Fatal编程技术网

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中)?

或者每个顶点计算一次,或者每次更改该一致性时系统将重新编译着色器(或者可能只有两种形式的着色器)。您应该更喜欢前者而不是后者。

我相信它将在每个顶点执行一次。由于这无法在编译时解决,我相信没有办法对其进行优化,因此必须在运行时对其进行评估,要求每个顶点一次。