opengl 保留上一帧_OpenGL(四) 帧缓冲

OpenGL中的帧缓冲是实现高级效果的关键,如屏幕后处理和延迟渲染。通过创建帧缓冲对象(FBO)并附加纹理或渲染缓冲,可以进行离屏渲染。FBO必须完整,包括颜色、深度和模板附件。纹理附件适合存储渲染结果,而渲染缓冲对象(RBO)适用于深度和模板测试。了解FBO、RBO和2D纹理的区别和用途,是提升OpenGL图形编程能力的重要步骤。
摘要由CSDN通过智能技术生成

一、概述

帧缓冲是OpenGL中非常重要的一部分,计算机图形学中有很多效果的实现用到了帧缓冲(虽然所有的OpenGL程序都要使用帧缓冲,但是有些效果需要灵活的使用帧缓冲才行),比如屏幕后处理、延迟渲染、阴影等等。

到目前为止,我们已经使用了很多屏幕缓冲了:用于写入颜色值的颜色缓冲、用于写入深度信息的深度缓冲和允许我们根据一些条件丢弃特定片段的模板缓冲。这些缓冲结合起来叫做帧缓冲(Framebuffer),它被储存在内存中。OpenGL允许我们定义我们自己的帧缓冲,也就是说我们能够定义我们自己的颜色缓冲,甚至是深度缓冲和模板缓冲。

我们目前所做的所有操作都是在默认帧缓冲的渲染缓冲上进行的。默认的帧缓冲是在你创建窗口的时候生成和配置的(GLFW帮我们做了这些)。有了我们自己的帧缓冲,我们就能够有更多方式来渲染了。

你可能不能很快理解帧缓冲的应用,但渲染你的场景到不同的帧缓冲能够让我们在场景中加入类似镜子的东西,或者做出很酷的后期处理效果。首先我们会讨论它是如何工作的,之后我们将来实现这些炫酷的后期处理效果。

相关学习资料:

  1. LearnOpenGL网站-高级OpenGL-帧缓冲:https://learnopengl-cn.github.io/
  2. OpenGL红包书第四章第7节-帧缓冲对象和第8节-多重渲染缓存的同步写入
  3. OpenGL蓝宝书第八章-缓冲区对象:存储尽在掌握

本篇文章大部分截取自LearnOpenGL网站

二、帧缓冲原理

1.创建一个帧缓冲

和OpenGL中的其它对象一样,我们会使用一个叫做glGenFramebuffers的函数来创建一个帧缓冲对象(Framebuffer Object, FB

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值