Pat*_*ski 4 opengl shader glsl
我试图调用glGetAttribLocation而不绑定任何attrib位置,它似乎工作.因此,如果我想要即时访问,我总是可以在数组中缓存attrib位置.那么使用glBindAttribLocation的目的是什么?
[OpenGL 2.0]
glBindAttribLocation
"绑定"索引到属性名称.这允许您在不同着色器中对相同属性使用相同的索引.例如:顶点坐标= 0,纹理坐标= 1,法线= 2.这通过使着色器符合您的代码而不是相反(请求属性位置)来简化绘图代码.
在我的代码中,我为常见的顶点属性创建了一个枚举:
enum
{
GRAPHICS_ATTRIB_VERTEX = 0,
GRAPHICS_ATTRIB_NORMAL,
GRAPHICS_ATTRIB_TEXTURE,
};
Run Code Online (Sandbox Code Playgroud)
将它们绑定使用glBindAttribLocation
,然后我可以像这样使用它们:
glVertexAttribPointer(GRAPHICS_ATTRIB_VERTEX, ....);
Run Code Online (Sandbox Code Playgroud)
这将适用于我没有调用的所有着色器glGetAttribLocation
.
归档时间: |
|
查看次数: |
1595 次 |
最近记录: |