平时我们都是渲染到的默认的屏幕缓冲,通过swapbuffer来渲染到屏幕上,相对的我们可以同样创建一个离屏的帧缓冲来渲染到纹理。
创建一个fbo
glGenFramebuffers(1,&frame);
glBindFramebuffer(GL_FRAMEBUFFER,frame);
fbo需要我们为他准备一个至少一个缓冲(颜色、深度或模板缓冲),我们通常使用的是纹理附件
glGenTextures(1,&textureFrame);
glBindTexture(GL_TEXTURE_2D,textureFrame);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);