OpenGL ES 学习日记(1)

简介:OpenGL ES 运行跨越CPU , GPU 之间,协调两个内存区域之间的数据交换。

关于OpenGL ES 缓存

       OpenGL ES 为两个内存区域间数据交换定义了缓存的概念,缓存是指图形处理器能够控制和管理的连续RAM,程序从CPU的内存复制数据到OpenGL ES  的缓存。在GPU取得一个缓存的所有权以后,运行在CPU中的程序理想情况下将不再接触这个缓存。这样就意味着在GPU尽可能以最有效的方式读写内存处理大量数据时,运行在CPU中的程序也可以继续执行。

提供给GPU的数据都应该放入缓存中,为缓存提供数据有以下七个步骤

  • glGenBuffers()   请求OpenGL ES 为图形处理器控制的缓存生成标志符
  • glBindBuffer()   绑定相关内存,即告诉OpenGL ES 为接下来的运算使用一个缓存
  • glBufferData() / glBufferSubData()  让OpenGL ES 为当前绑定的缓存分配并初始化足够的连续内存(通常是从CPU控制的内存复制数据到分配的内存)
  • glEnableVertexAttribArray() / glDisableVertexAttribArray() 通知OpenGL ES 在接下来的渲染中是否使用缓存中的数据
  • glVertexAttribPointer() 通知OpenGL ES 在缓存中的数据的类型和所有需要访问的数据的内存偏移值。
  • glDrawArrays() / glDrawElements() 通知OpenGL ES  使用当前绑定并启用的缓存中的数据渲染整个场景或某个场景的一部分。
  • glDeleteBuffers() 通知OpenGL ES 删除该缓存

纹理的概念
    纹理是一个用来保存图像的颜色元素值的OpenGL ES  缓存。 可通过添加(u,v)坐标对应纹素(s,t)坐标。通过GLKTextureLoader 的“-textureWithCGImage:options:error:”方法创建一个图像的像素数据的OpenGL ES 纹理缓存。其中还有些取样模式等内容。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值