openGL画图函数

OpenGL在画图过程中大致可以分为三步,第一步创建好对应的vertex队列,同时在适当的时机将vertex绑定到GL内部;第二步利用BUFFER_ARRAY向vertex队列提交顶点信息以便对vertex队列进行初始化;第三步则是绑定已经初始化的vertex队列,同时利用对应的画图函数进行绘制。

vertex队列的生成主要利用glGenVertexArrays函数完成,其第一个参数定义需要生成的队列的个数;第二个函数则用于接收生成的vertex队列索引。在生成了顶点队列之后,需要利用glBindVertexArray函数将返回的ID号码给绑定到GL状态机上,这样在下一次调用glBindVertexArray函数之前的所有修改都是针对本次绑定的vertex队列。经过处理之后,需要一种渠道使得程序能够向vertex队列提交数据,GL提供的接口是BUFFER_ARRAY。所有向vertex队列提交的数据都是通过buffer array进行的。程序向buffer array提交数据有两种调用方式,第一种是直接利用glBufferData进行数据提交,这种情况适用于所有的数据信息都在一个数组中,并且类型相同;还有一种情况是利用glBufferSubData来进行提交,但是需要注意的是glBufferSubData并不会分配内存,所以在调用之前需要先调用glBufferData。glBufferData首先根据传递来的信息分配足够的连续内存空间,如果传递的数据指针不为NULL,则会提交数据。而glBufferSubData则会根据offset以及需要提交的数据大小向已经分配好的内存空间中提交数据。最后提交的数据由glVertexAttribPointer来分配给对应的vertex shader语言中的对应属性中,包括顶点位置,以及顶点的颜色。在绘图的时候,GPU会有一个索引将顶点的位置信息和顶点的颜色信息一一对应起来,如果绘图过程中需要自

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值