在之前的OpenGL版本里,每个属性都对应了一个特定的通道,我们使用glVertex,glTexCoord,,glNormal(或者通过访问指针函数glVertexPointer, glTexCoordPointer, orglNormalPointer)等函数来访问和设置它们。随后,shader会自己通过内置变量gl_Vertex 和 gl_Normal来访问这些属性。但在OpenGL3.0版本里,这些都被弃用了。在后续版本里,甚至都被移除了。
glVertexPointer设置顶点数组,只能是顶点位置,其它的需要调用glColorPointer、glNormalPointer等来实现。是客户端的
glVertexAttribPointer设置顶点属性数组,可以是顶点位置、颜色、法线、纹理等等,是GPU端的
openGL之API学习(三十一)glVertexAttribPointer
OpenGL 3.0及更高版本废弃了传统的顶点属性设置方式,如glVertex和glNormal等。取而代之的是glVertexAttribPointer,这是一个在GPU端设置顶点属性数组的函数,能处理包括顶点位置、颜色、法线等多种属性。这一变化标志着从客户端处理顶点数据到直接由GPU处理的转变,提高了图形渲染效率。
508

被折叠的 条评论
为什么被折叠?



