为OpenGL着色器程序设置属性位置时,您将面临两个选项:
链接之前的glBindAttribLocation()以显式定义属性位置.
要么
链接后的glGetAttribLocation()以获取自动分配的属性位置.
使用一个而不是另一个有什么用?
在实践中哪一个(如果有的话)更受欢迎?
有什么方法可以防止着色器编译器删除它检测到未使用的统一/属性?我偶尔会注释掉着色器的部分内容以进行测试,但这会导致程序的其余部分出现问题,因为某些名称突然不再存在(从而导致查找错误以及尝试设置值时出现错误)。
我试图调用glGetAttribLocation而不绑定任何attrib位置,它似乎工作.因此,如果我想要即时访问,我总是可以在数组中缓存attrib位置.那么使用glBindAttribLocation的目的是什么?
[OpenGL 2.0]