OpenGL 顶点数组与缓冲区对象进行渲染(含纹理贴图)

一、顶点数组,顶点数组对象和缓冲区对象

顶点数组及顶点数组对象可以有效地解决渲染过程中的数据冗余以及大量的添加额外信息的问题,而缓冲区对象则避免渲染过程中反复的读写数据导致的效率损耗。二者结合可以大幅度的提高渲染的效率。

1、顶点数组的使用步骤:

(1) 激活数组。这些数组描述了图元的几何属性,例如,顶点坐标,表面法线,RGBA颜色,辅助颜色,颜色索引,雾坐标,纹理坐标,多边形边界标志等。

 
glEnableClientState(GLenum array)

(2)把数据放入数组中。 其他属性采用 glColorPointer(...), glTextureCoordPointer(...)等等,不一一列举。

 glVertexPointer(GLint sizei, GLenum type, GLsizei stride, const GLvoid * pointer)

(3) 绘制几何图元。

glDrawElements(GLenum Mode, GLsizei count, GLenum type, const GLvoid* indices) 

在大场景渲染过程中,通常多个对象之间的顶点属性并不相同,这时候需要频繁调用glVetexPointer这些函数。而顶点数组对象则对这些调用进行集合。简单点来讲,针对每个需要渲染的对象创建一个顶点数组对象,此时该顶点数组对象包含了该对象所有的属性,在渲染的过程中,只需要调用该对象的顶点数组对象,便可以在多个对象之间进行切换,从而避免了glVetexPointer函数的反复调用。

2、顶点数组对象相关的函数:

(1)创建顶点数组对象

glGenVertexArray(GLsizei n, GLuint* arrarys)

(2)初始化新对象

glBindVertexArray(GLuint array) 

 3、使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值