gpt4 book ai didi

c++ - 自动顶点属性分配是否保证顺序正确?

转载 作者:搜寻专家 更新时间:2023-10-31 00:16:43 25 4
gpt4 key购买 nike

当使用 layout(location = ...) 在着色器代码中指定顶点属性位置时,我不需要在我的 C++ 程序中使用 glGetAttribLocation 获取位置.

如果我既没有使用布局限定符在着色器中定义位置,也没有在我的 C++ 程序中获取它们,它们将被自动分配。问题是关于这个自动分配的。该顺序是否与着色器代码中的定义顺序相同?

例如,在第一个着色器代码中,位置是否保证与第二个着色器代码中的位置相同?

// first shader code
#version 330

in vec3 position;
in vec3 normal;
in vec2 texcoord;


// second shader code
#version 330

layout(location = 0) in vec3 position;
layout(location = 1) in vec3 normal;
layout(location = 2) in vec2 texcoord;

此外,同样的规则是否适用于片段着色器输出?现在我使用 glBindFragDataLocation 来获取它们。

最佳答案

自动属性赋值是任意的;他们遵循实现为他们选择的任何算法。

如果您没有分配属性位置,那么您就不能对它进行任何假设。

关于c++ - 自动顶点属性分配是否保证顺序正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15230222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com