使用glVertexAttribPointer
opengl实现已知道顶点着色器中的属性位置/索引顶点属性对象是绑定的,那么为什么需要在{{1}中提供属性索引再次?我想在使用glBindVertexArray(VAO)之后;只用glEnableVertexAttribArray
就可以了吗?为什么需要提供两次属性索引; glEnableVertexAttribArray()
中的一个和glVertexAttribPointer
中的一个?
请耐心等待,我是初学者,我还不了解OpenGL的各个方面。
[这个问题不重复,因为有些人试图将其标记为重复,以便在某些不相关的问题上重定向到他们的答案以获得评分,这是自私行为!如果您不知道如何回答问题,请不要将问题标记为重复。
答案 0 :(得分:0)
因为可以使用glVertexAttrib
将顶点属性设置为所有元素的常量值。是的,您也可以使用制服来达到相同的效果,但是这种值来自(来自数组或设置常量)的属性选择已经存在多年(自OpenGL-1.1以来) ,虽然当时它不是通用属性,而是特定的属性,即位置,颜色,法线等)和这些遗留在通用顶点属性上的遗产。