在GLSL中使用嵌套for循环的动态统一表达式

时间:2017-01-03 17:25:35

标签: glsl shader vulkan

在GLSL中,如果for循环计数器与动态统一表达式进行初始化,比较和递增,则它是动态统一的: https://www.khronos.org/opengl/wiki/Core_Language_(GLSL)#Dynamically_uniform_expression

此着色器已嵌套for循环:

layout(binding = 0) uniform UniformBufferObject
{
    int x;
} ubo;

void main()
{
    for (int i = 0; i < ubo.x; i++)
    {
        // 'i' is dynamically uniform, because ubo.x is dynamically uniform

        for (int j = 0; j < i; j++)
        {
            // is 'j' dynamically uniform?
        }
    }
}

据我所知,'j'是动态均匀的,因为它与'i'相比,它也是动态均匀的。这是对的吗?

1 个答案:

答案 0 :(得分:1)

在所有其他条件相同的情况下,j将是动态统一的。