- 定义顶点缓存
static GLuint vertex_buffer = 0; static GLuint texcoord_buffer = 0; - 初始化顶点缓存
void initVBO(){ glGenBuffers(1,&vertex_buffer); glBindBuffer(GL_ARRAY_BUFFER,vertex_buffer); glBufferData(GL_ARRAY_BUFFER,sizeof(rect_vertexes),rect_vertexes,GL_STATIC_DRAW); glGenBuffers(1,&texcoord_buffer); glBindBuffer(GL_ARRAY_BUFFER,texcoord_buffer); glBufferData(GL_ARRAY_BUFFER,sizeof(texture_coords),texture_coords,GL_STATIC_DRAW); } - 绘制图形
void draw_texture(){ glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D,texture_id); glBindBuffer(GL_ARRAY_BUFFER,texcoord_buffer); glTexCoordPointer(sizeof(Vertex2F)/sizeof(GLfloat),GL_FLOAT,0,NULL); glColor4f(white_color.r,white_color.g,white_color.b,white_color.a); glBindBuffer(GL_ARRAY_BUFFER,vertex_buffer); glVertexPointer(sizeof(Vertex2F)/sizeof(GLfloat),GL_FLOAT,0,NULL); glDrawArrays(GL_TRIANGLE_STRIP,0,4); glBindBuffer(GL_ARRAY_BUFFER,0); glDisable(GL_TEXTURE_2D); glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_VERTEX_ARRAY); } - 编译程序
g++ DrawBuffers.cpp -lGLEW -lGL -lGLU -lglut -lpng -o DrawBuffers
opengl 开发笔记-性能优化之顶点缓存
最新推荐文章于 2025-06-19 17:57:48 发布
本文介绍如何在OpenGL中使用顶点缓冲对象(VBO)进行纹理绘制的基础知识。包括初始化VBO、设置顶点缓存及纹理坐标缓存、绘制带有纹理的图形等关键步骤。

2470

被折叠的 条评论
为什么被折叠?



