当前位置: 代码迷 >> 综合 >> ShaderJoy —— 伪镜头眩光 【GLSL】
  详细解决方案

ShaderJoy —— 伪镜头眩光 【GLSL】

热度:36   发布时间:2024-03-08 04:21:49.0

 

效果图

 

镜头眩光(耀斑)是摄影的人工产物,是由镜头和穿过它的光线之间的各种相互作用引起的。虽然它是一个人工制品,但是在计算机图形上仍有许多动机来模拟镜头眩光:

  • 它增加了可感知的亮度和图像的明显动态范围
  • 镜头眩光在摄影中是普遍存在的,因此在计算机生成的图像中如果缺失它,则会显得比较突兀
  • 它可以扮演重要的风格或引人注目的角色,也可以作为电子游戏的游戏机制的一部分(比如眩光会让玩家眼花缭乱)

对于实时镜头眩光,传统上是最常见的方法是基于 sprite 的技术。虽然 sprite 能产生容易控制并且很大程度上较真实的结果,但它们必须明确地放置并要求能够正确地显示遮挡数据。在这里,我将介绍一个简单和相对低成本的屏幕空间处理方法,它从输入的颜色缓冲产生一个“伪”镜头眩光。它不是基于物理的,所以有些错误和失真,但可以用于补充(或增强)传统的基于 sprite 的效果。

 

算法介绍

 

该方法包括 4 个阶段:

  • 下采样 / 阈值
  • 生成镜头眩光特征
  • 模糊
  • 放大 / 与原始图像混合

 

下采样 / 阈值