为了账号安全,请及时绑定邮箱和手机立即绑定

如何理解target对象?另外绘制的时候显卡是如何确定draw哪组顶点?

如何理解target对象?另外绘制的时候显卡是如何确定draw哪组顶点?

哔哔one 2023-04-08 18:14:55
文档中提到void glBufferData(GLenum   target,     GLsizeiptr   size,   const GLvoid *  data,     GLenum   usage);targetSpecifies the target buffer object.  The symbolic constant must be  GL_ARRAY_BUFFER,  GL_ELEMENT_ARRAY_BUFFER,  GL_PIXEL_PACK_BUFFER, or  GL_PIXEL_UNPACK_BUFFER.那几个固定的参数应该是固定的内存地址,当几组数据被传送到显存中,绘制的时候显卡是如何确定draw哪组顶点?初学OpenGL,很多不懂的地方。
查看完整描述

1 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

glBufferData函数执行向所绑定的缓冲区写入数据的操作,target参数是枚举类型,只能取预设的几个值,该参数用来指定缓冲区类型,而不是内存地址。
执行渲染操作的时候,也是先绑定某个缓冲区,然后调用适当的函数,从该缓冲区某个指定偏移量开始,取一定量的数据进行指定方式的渲染。渲染过程是由程序控制GPU完成的,不是说你把数据写入缓冲区之后,显卡自己就知道要显示什么了。
由于OpenGL制定的是C语言接口,而C不是面向对象的,所以封装性和可读性比较差,需要以C这种面向过程的思维方式来理解OpenGL。程序里每个函数都不能孤立地看,都要看它的上下文,比如上文中绑定了某个缓冲区,那么接下来的操作就是针对这个缓冲区的。

查看完整回答
反对 回复 2023-04-11
  • 1 回答
  • 0 关注
  • 182 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信