OpenGL ES 2.0总结(1)-VBO与渲染
来源:互联网 发布:陈百祥演技知乎 编辑:程序博客网 时间:2024/05/17 05:13
OpenGL ES 2.0 VBO与渲染
1.VBO初始化
- 1) glGenBuffers()
- 生成bufferID
- 2) glBindBuffer()
- 操作它,参数为VBO的bufferID
- 3) glBufferData()
- 指定里面放的数据和用法
至此想用此VBO时再glBindBuffer()它的bufferID即可,里面一般放顶点数据(包括模型的xyz和纹理坐标uv),另外前提是已经编译和设定好了shader的program
2.使用VBO渲染
- 1) glEnableVertexAttribArray()
- 启用与顶点相关的shader的量
事先需要获取到它的handle,
比如
maPositionHandle = GLES20.glGetAttribLocation(mProgram, “aPosition”); - 2) glBindBuffer()
- 操作想使用的VBO,参数为VBO的bufferID
- 3) glVertexAttribPointer ()
- 指定VBO里的数据的使用方法
- 这里有可能有多个glVertexAttribPointer (),它的最后一个参数是使用时每个元素的偏移量,比如顶点是xyzuv的float顶点,每个4*5个字节重复一次,则分开指定xyz坐标和纹理坐标时,最后一个参数的值分别取0和12
另外,最后不适用VBO时,最后一个参数可以直接指定要渲染的缓冲区 - 4) glDrawArrays()
- 指定画法(一般为GL_TRIANGLES,即三角形),数量等,即可使用VBO进行绘制
- 5) glDrawElements()
- 这是另一种画法,可以通过指定顶点索引的方式来画图形
使用这种方法渲染时,应该生成两块VBO buffer,一个用来存放顶点信息,另一个来存放索引信息,和普通顶点VBO区别是,存放顶点的VBO应该在使用和指定数据时使用GL_ELEMENT_ARRAY_BUFFER,再使用glDrawElements(). 例如
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, mBufferHandle[1]);glBufferData(GL_ELEMENT_ARRAY_BUFFER,Count,buffer,GL_STATIC_DRAW);glDrawElements(GL_TRIANGLES,count,GL_UNSIGNED_SHORT, 0);
- 参考
- [OpenGL ES 06]使用VBO:顶点缓存
http://blog.csdn.net/kesalin/article/details/8351935
gles官方文档
https://www.khronos.org/opengles/sdk/docs/man/
0 0
- OpenGL ES 2.0总结(1)-VBO与渲染
- OpenGL ES 2.0 VBO与渲染
- VBO、FBO、PBO 学习总结贴 (OpenGL ES)
- OpenGL ES Shader相关API 总结【5】——VBO与VAO的作用与关系
- OpenGL ES总结(四)OpenGL 渲染视频画面
- OpenGL ES总结(四)OpenGL 渲染视频画面
- OpenGL ES 2.0 渲染管线
- OpenGL ES 2.0渲染管线
- OpenGL ES 2.0渲染管线
- OpenGL ES 2.0渲染管线
- OpenGL ES 2.0渲染管线
- OpenGL ES 2.0渲染管线
- OpenGL ES VBO 和 VAO
- [OpenGL ES 02]OpenGL ES渲染管线与着色器
- [OpenGL ES 02]OpenGL ES渲染管线与着色器
- [OpenGL ES 02]OpenGL ES渲染管线与着色器
- [OpenGL ES 02]OpenGL ES渲染管线与着色器
- [OpenGL ES 02]OpenGL ES渲染管线与着色器
- C++设计模式-Builder建造者模式
- Oracle获取session登录IP
- MATLAB GUI中Edit Text的Callback函数何时执行
- android widget-system
- 【转载】音视频编解码和多媒体格式总结
- OpenGL ES 2.0总结(1)-VBO与渲染
- 从一道百度面试题到分析输入url到页面返回的过程(或者查询返回过程)
- Masonry介绍与使用实践:快速上手Autolayout(图文并茂)
- OpenGL的功能与OSG中对应的功能
- Python正则表达式
- java获得项目绝对路径
- 零长度的数组巧用
- 「喵神成长史」android基础总结
- IOS 常见库整理