OpenGL VBO顶点缓冲的使用
来源:互联网 发布:puppy linux做u盘启动 编辑:程序博客网 时间:2024/05/21 14:54
转自w2001-OpenGL VBO顶点缓冲的使用
OpenGL VBO并不难,但是较繁琐,其实其概念跟加载纹理是一样的:
初始化阶段:
1. glGenBuffersARB(1, &nVBOVertices); //生成一个句柄
2. glBindBufferARB(GL_ARRAY_BUFFER_ARB, nVBOVertices); //声明该句柄为一个vbo句柄,并选择之
3. glBufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(vertices), vertices,GL_STATIC_DRAW); //将顶点集上传至server端
使用阶段:
1. glEnableClientState(GL_VERTEX_ARRAY); //开始使用vbo
2. glBindBufferARB(GL_ARRAY_BUFFER_ARB, nVBOVertices); //选择当前使用的vbo
3. glVertexPointer(3, GL_FLOAT, 0, BUFFER_OFFSET(0)); //指定vbo顶点格式
4. glDrawArrays( GL_TRIANGLES, 0, g_pMesh->m_nVertexCount ); //画吧
5. glDisableClientState(GL_VERTEX_ARRAY); //停止使用vbo
收尾阶段:
1. glDeleteBuffersARB(1,&nVBOVertices); //删除句柄,同时删除server端顶点缓冲
再来看看纹理缓冲是怎么使用的,其实差不多:
初始化阶段:
1. glGenTextures(1, &texID);//创建句柄
2. glBindTexture(GL_TEXTURE_2D, texID); //设置句柄类型
3. glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, img->GetWidth(), img->GetHeight(), 0, GL_RGBA, GL_UNSIGNED_BYTE, raw_rgba); //上传纹理缓冲
使用阶段:
1. glEnable(GL_TEXTURE_2D); //开始使用纹理缓冲
2. glBindTexture(GL_TEXTURE_2D, texID); //选择当前使用的纹理缓冲
3. 发送顶点和纹理坐标,画吧…省略
4. glDisable(GL_TEXTURE_2D); //停止使用纹理
收尾阶段:
1. glDeleteTextures(1,&texID);//删除句柄,,同时删除server端缓冲
看到了么,这个概念是不是很相似?都是:
- 创建句柄
- 设置句柄类型
- 上传数据
- 开始使用缓冲
- 选择句柄
- 使用缓冲
- 停止使用缓冲
- 删除句柄和缓冲
- OpenGL VBO顶点缓冲的使用
- OpenGL VBO顶点缓冲的使用
- OpenGL VBO顶点缓冲的使用
- OpenGL VBO顶点缓冲的使用
- OpenGL VBO顶点缓冲的使用
- OpenGL VBO顶点缓冲的使用(转)
- 顶点缓冲对象(VBO)的用法
- [OpenGL ES 06]使用VBO:顶点缓存
- [OpenGL ES 06]使用VBO:顶点缓存
- [OpenGL ES 06]使用VBO:顶点缓存
- [OpenGL ES 06]使用VBO:顶点缓存
- [OpenGL ES 06]使用VBO:顶点缓存
- [OpenGL ES 06]使用VBO:顶点缓存
- [OpenGL ES 06]使用VBO:顶点缓存
- OpenGL ES 3.0 顶点缓冲区VBO使用
- [OpenGL ES 06]使用VBO:顶点缓存
- [OpenGL ES 02]使用VBO:顶点缓存
- OpenGL顶点缓冲区对象(VBO)
- 很惊讶,程序员在工作中的幸福感竟然是?????
- 2015年第十四周oj刷题:比较大小-类模板
- AutoResetEvent、ManualResetEvent、Mutex分析
- Android中禁止多点触控的设置
- atomikos实现多数据源支持分布式事务管理(spring、tomcat、JTA)
- OpenGL VBO顶点缓冲的使用
- android图片压缩终极解决方案
- 利用JNI编程实现 应用本身被卸载时处理逻辑代码
- C++的参数传递机制[转]
- xcode : map file not found
- Apache your port 80 is not actually used
- C++中的友元函数的总结
- 欢迎使用CSDN-markdown编辑器
- 指定keystore打包app。(可以不用卸载app,直接安装,无视keystore是否相同)