OpenGL ES 2.0 VBO与渲染
来源:互联网 发布:2015中国国际储备数据 编辑:程序博客网 时间:2024/06/07 05:24
转载:http://blog.csdn.net/prahs/article/details/49662925
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 VBO与渲染
- OpenGL ES 2.0总结(1)-VBO与渲染
- 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渲染管线与着色器
- [OpenGL ES 02]OpenGL ES渲染管线与着色器
- [OpenGL ES 02]OpenGL ES渲染管线与着色器
- [OpenGL ES 02]OpenGL ES渲染管线与着色器
- [OpenGL ES 02]OpenGL ES渲染管线与着色器
- Android 动画的介绍和实现
- PAT甲级 1006. Sign In and Sign Out (25)
- [NLP技术]关键词提取算法-TextRank
- 深度学习入门---只要300页ppt就够了!!!
- view的执行过程,各种方法的调用先后顺序
- OpenGL ES 2.0 VBO与渲染
- Python中的if-else
- jquery源码--extend函数的归纳
- Storm的配置文件yaml详解
- pat 乙级 1023. 组个最小数 (20)
- 利用Gate one和ngrok把内网中kali映射到公网,方便随时随地去使用kali进行操作
- Rand5() to Rand7()
- linux下查一个软件的后台软件及其调用参数
- HITOJ 2739 The Chinese Postman Problem(有向带权图上的中国邮递员问题)