5-7泛光

74 阅读1分钟

实现发光效果,给明亮的区域加一个光晕

首先需要提取出HDR的颜色缓冲和明亮区域,然后对超出一定亮度的亮度区域进行模糊处理,最终加入到HDR场景中,被模糊化的纹理就是光晕效果

使用MRT,指定多个像素着色器输出,定义一个location,控制像素着色器写入哪个颜色缓冲中,使用GL_COLOR_ATTACHMENT1得到附加了两个颜色缓冲的帧缓冲对象

处理模糊纹理使用高斯模糊,即高斯曲线,随着距离的增加,值减小。

首先进行水平模糊,然后进行垂直模糊,减小性能损耗