一、用法
纹理(texure)附着于帧缓冲对象(FBO),用于渲染目标,可用于shader采样。
选择渲染缓冲区与纹理作为帧缓冲区附着的对比:
二、实例
1、生成FBO和纹理
2、附着
代码如下3。
//创建一个帧缓冲对象,并绑定
unsigned int framebuffer;
glGenFramebuffers(1, &framebuffer);
glBindFramebuffer(GL_FRAMEBUFFER, framebuffer);
// 生成一个纹理,并绑定
unsigned int textureColorbuffer;
glGenTextures(1, &textureColorbuffer);
glBindTexture(GL_TEXTURE_2D, textureColorbuffer);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, SCR_WIDTH, SCR_HEIGHT, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
//将它附加到当前绑定的帧缓冲对象
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, textureColorbuffer, 0);
-
void glBindFramebuffer(GLenum target, GLuint framebuffer)
设置该对象为当前缓冲区对象。(后面对fbo的操作总是在当前缓冲区对象上操作)
-
void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
将一个渲染缓冲区对象连接到帧缓冲区附着点。