gpt4 book ai didi

opengl - 在 GLSL 中使用 glBindAttributeLocation 的目的是什么?

转载 作者:行者123 更新时间:2023-12-04 23:31:26 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




9年前关闭。




Possible Duplicate:
Explicit vs Automatic attribute location binding for OpenGL shaders
Why should I use glBindAttribLocation?



我尝试在不绑定(bind)任何属性位置的情况下调用 glGetAttribLocation,它似乎有效。因此,如果我想即时访问,我总是可以在数组中缓存属性位置。那么使用 glBindAttribLocation 的目的是什么?

[OpenGL 2.0]

最佳答案

glBindAttribLocation将索引“绑定(bind)”到属性名称。这允许您对不同着色器的相同属性使用相同的索引。例如:顶点坐标 = 0,纹理坐标 = 1,法线 = 2。这通过使着色器符合您的代码而不是相反(请求属性位置)来简化绘图代码。

在我的代码中,我为常见的顶点属性创建了一个枚举:

enum
{
GRAPHICS_ATTRIB_VERTEX = 0,
GRAPHICS_ATTRIB_NORMAL,
GRAPHICS_ATTRIB_TEXTURE,
};

使用 glBindAttribLocation 绑定(bind)它们,然后我可以像这样使用它们:
    glVertexAttribPointer(GRAPHICS_ATTRIB_VERTEX, ....);

这将适用于我所有的着色器,无需调用 glGetAttribLocation .

关于opengl - 在 GLSL 中使用 glBindAttributeLocation 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4715287/

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