[OpenGL] glVertexAttribPointer用法理解,实例分析

[OpenGL] glVertexAttribPointer用法理解,实例分析

 

实例分析:

 

index:第几个属性,从0开始取,0,1,2,顺序自己定义,例如顶点位置,纹理,法线

这里只有顶点位置,也只能讨论顶点位置,所以为0

size:一个顶点所有数据的个数,这里每个顶点又两个浮点数属性值,所以是2

type:顶点描述数据的类型,这里position数组中的数据全部为float,所以是GL_FLOAT

normalized:是否需要显卡帮忙把数据归一化到-1到+1区间,这里不需要,所以设置GL_FALSE

stride:一个顶点占有的总的字节数,这里为两个float,所以是sizeof(float)*2

pointer:当前指针指向的vertex内部的偏离字节数,可以唯一的标识顶点某个属性的偏移量

这里是指向第一个属性,顶点坐标,偏移量为0

 

如果上面又出现了一个属性:(只写出了第一个顶点的)

 

 

 

 

那么此时当我指向第二个属性的时候,即0.5f,偏移量就为sizeof(float)*2,此时pointer参数位置需要填入sizeof(float)*2

这里需要做一个强制类型转换:

 


————————————————
版权声明:本文为CSDN博主「kikook」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/chenhanxuan1999/article/details/106182908

posted on 2022-10-25 11:09  zxddesk  阅读(357)  评论(0编辑  收藏  举报

导航