cocox

导航

opengles2.0 学习笔记

- 指定图元顶点数据(亦称顶点属性)

  顶点属性有常量顶点属性,和属性数组。

  常量指的是所有的顶点都公用此属性。比如单色的三角形,则颜色属性对所有的顶点都一样。

  通过命令glVertexAtrrib*f(index,float...) 或 glVertexAtrrib*fv(index,float*)来指定。2.0版本暂时只支持 float类型的顶点常量。

  如果每个顶点的某个属性不可以用常量,则可以用属性数组来表示。每一个顶点的属性存放在数组里。

  glVertexAttribPoint(index,size,type,normalized,stride,ptr) 用来指定顶点属性

  index: 把此属性数据绑定在第几个属性槽,范围从 0到  max vertex attributes supported – 1 ,2.0版本要求最少支持8个属性槽。也就是说一个顶点最少有8个属性,基本也够用了。

  size:表示此属性有几个分量。比如如果是表示位置的属性,则可能有3个分量;如果是表示纹理坐标的分量,则可能是2;等等。

  type:表示每个分量的类型,比如可以是 GL_FLOAT GL_BYTE GL_UNSIGNED_BYTE 等

  normalized:表示由非float型向float型转换时,是否需要标准化,即转换到 [0,1],或[-1,1]范围内

  stride:由于属性在buff内有可能不是连续存放的(即通一种属性之间有间隔),stride则表示此间隔,用于寻找下一个属性。

  ptr:即指向此buff的指针。

   顶点属性有两种属性,一个是常量属性,一种是属性数组。要想使用顶点属性数组功能,则需要调用 glEnableVertexAttribArray(index)命令;调用glDisableVertexAttribArray(index)则表示

  index处的表示的属性是常量属性。

  顶点数组数据存在应用程序的内存中,每次调用glDrawElements()和glDrawArrays()都会把顶点数组数据从内存拷贝到图形显存中。很消耗时间跟总线带宽。

  

  

 

  

posted on 2015-06-04 18:26  反击的小丑  阅读(239)  评论(0编辑  收藏  举报