1、顶点缓存
glGenBuffer、glBindBuffer、glBufferData,= 生成缓存、指定当前所用缓存,存入数据。
2、帧缓存
glDrawBuffer(GL_FRONT/GL_BACK); 指定前后两个缓存参与读写;glFlush时默认用GL_FRONT,glutSwapBuffers()时默认用GL_BACK,所以该函数很少使用。显示器只能显示这两个缓存。
帧缓存对象:
离并缓冲对象,不能通过glFlush显示,framebuffer包含有4个attachment,colorAttachment可以是纹理也可以是render buffer。
下面是渲染图形到纹理的例子:
glGenFramebuffer(1,id);//生成帧缓存对象
glBindFrameBuffer(GL_FRAMEBUFFER, id);//指定为当前可读写
glFrameBufferTexture2D(GL_FRAMEBUFFER,GL_COLOR_ATTACHMENT0,GL_TEXTURE_2D, texture_id,0);//连接一个纹理到对象的颜色附件。
下面是将渲染缓冲区连接到当前帧缓冲对象上:
glFramebufferRenderbuffer(GL_FRAMEBUFFER,GL_COLOR_ATTACHMENT0,GL_RENDERBUFFER, GL_COLOR_ATTACHMENT0_EXT);