OpenGL的帧缓冲

昨天终于把OpenGL的帧缓冲给看完了。让帧缓冲外加一些比较好的滤镜着色器,比如“反相”滤镜,就能做出很多有趣的全屏效果。看看下面两张图就能明白效果是怎样的了

OpenGL的帧缓冲_第1张图片
图1-正常渲染
OpenGL的帧缓冲_第2张图片
图2-桢缓冲和反相效果的着色器

图2的对比还是比较明显的,只要你愿意,还可以实现很多滤镜,比如高斯模糊、饱和度、明度、色相、灰度、核效果这些美术常用的后期处理(Post-processing)。那这种全屏效果有什么用?当你在玩《英雄联盟》或者《Dota2》的时候,当英雄死亡的时候会出现灰屏的效果(UI和血条这些除外),像图3中的那样。当然这种灰屏的死亡效果其实是更复杂的,用这个举例是为了说明在游戏制作中如果只是单纯希望全屏产生某种滤镜效果,那么用帧缓冲是够用的。

OpenGL的帧缓冲_第3张图片
图3-死亡的灰屏效果

在Unity中实现这种全屏效果,都是用摄像机去挂一个着色器脚本,理论上这种也是桢缓冲技术的高级抽象。Unity让用户只要知道摄像机就好,因为让摄像机变灰或者变模糊,就相当于看到的效果是灰的或者模糊的。这段是我自己猜测的,不对的可以指正下。

参考文章:

LearnOpenGL CN 帧缓冲

你可能感兴趣的:(OpenGL的帧缓冲)