OpenGL 链式滤镜(帧缓冲离屏渲染)

本文介绍了OpenGL中的链式滤镜概念,通过帧缓冲离屏渲染技术组合多个特效。首先阐述了链式滤镜的基本思想,接着详细讲解了渲染流程中的帧缓冲对象,包括默认帧缓冲与自定义帧缓冲的创建与绑定。然后讨论了如何将纹理渲染到自定义帧缓冲,并构建了如灰度和上下颠倒等特效的渲染链条。最终,通过伪代码展示了如何实现这样的特效组合。
摘要由CSDN通过智能技术生成

OpenGL 编写特效在部分应用中可通过单个shader实现,即通过修过修改顶点着色器或片元着色器实现。但更多的场景是要求有多个特效组合而成,例如最终效果是图片灰度加上下颠倒,效果不复杂条件下可以通过修改片元着色器实现,当效果复杂特效、组合特效、特效的模块化开发都会通过链式滤镜实现。

一、链式滤镜概念

链式滤镜 通过帧缓冲离屏渲染技术实现特效的组合和叠加。通过多次draw最终实现预期效果。

二、渲染流程中的帧缓冲

OpenGL的工作流程,输入像素数据和顶点数据,两种数据分别操作后,通过光栅化,得到片段,再经过片段处理,最后绘制到帧缓冲区,最终转化为像素数据。OpenGL 管线渲染的最终目的地就是FrameBuffer(帧缓冲)。下面是OpenGL渲染流程图。
在这里插入图片描述

三、帧缓冲对象

在OpenGL渲染管线中,几何数据和纹理经过多次转化和多次测试,最后以二维像素的形式显示在屏幕上。OpenGL管线的最终渲染目的地被称作帧缓存(framebuffer)。帧缓冲是一些二维数组和OpenG所使用的存储区的集合:颜色缓存、深度缓存、模板缓存和累计缓存。一般情况下,帧缓存完全由window系统生成和管理,由OpenGL使用。这个默认的帧缓存被称作“window系统生成”(window-system-provided)的帧缓存。OpenGL允许我们定义我们自己的帧缓冲,也就是说我们能够定义我们自己的颜色缓冲,甚至是深

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值