光通过透镜系统或间接反射以及其它未知的路径进入视点而引起的现象会产生lens flare现象,flare可以根据数个不同的现象加以分类,最普遍的是光晕和睫状晕。光晕是由透镜的晶体结构的径向纤维引起的。它看起来像一个围绕着光的圆环,它的外边缘是红色的,里面是紫色的。无论光源的距离有多远,光晕的外观大小都是不变的。睫状晕来自于透镜的密度波动,并以射线的形式从一个点放射出来,这个点可能延伸到光环之外。
当透镜的某些部分在内部反射或折射光线时,照相机镜头也会产生二次效应。例如,由于相机的光圈叶片,可能会出现多边形图案。由于玻璃上的小凹槽,在相机表面玻璃上也会看到一道道的光。Bloom效果是由晶状体和视点其他部分的散射造成的,在光线周围产生辉光,并使场景其他部分的对比度变暗。摄像机通过使用电荷耦合设备将光子转换为电荷来捕获图像。当CCD中的电荷点饱和并溢出到邻近的电荷点时,摄像机就会发生“Bloom”现象。光晕,睫状晕以及bloom现象可归为同一种类别,称为炫光效应。
事实上,随着相机技术的进步,大多数这样的人工制品越来越少被看到。镜头罩和抗反射涂层等更好的设计可以减少或消除这些杂散的重影现象。然而,这些效果现在经常被添加到真实的照片中。因为计算机显示器产生的光强度是有限的,我们可以通过在图像中添加这样的效果来给人增加场景或物体亮度的感觉。Bloom的效果和lens flare如果运用得当,这样的效果可以给观众强烈的视觉暗示。
为了提供一个令人信服的效果,镜头光斑应该随着光源的位置而改变。King创建了一组不同纹理块来代表镜头光晕。然后从光源在屏幕上的位置到屏幕中心的直线上定位。当光线远离屏幕中心时,这些纹理块会变得更小、更透明,随着光线向内移动,纹理块会变得更大、更不透明。莫恩通过使用GPU来计算屏幕上区域光源的遮挡来改变镜头光斑的亮度。
他生成了一个单像素强度纹理,然后用来减弱效果的亮度。Sekulic[1600]将光源呈现为单个多边形,使用遮挡查询硬件为可见区域提供像素计数(第19.7.1节)。为了避免GPU等待查询返回一个值给CPU而陷入停顿,下一帧将使用该结果来确定衰减量。因为强度很可能以一种相当连续和可预测的方式变化,所以一帧延迟几乎不会引起感知混淆。Gjøl和斯文森主持[539]首先生成一个深度缓冲(他们使用其他效果)和样品32次螺旋模式在镜头耀斑的地方会出现,用结果来减弱耀斑的纹理。可见性采样是在顶点着色器中完成的,同时渲染耀斑几何图形,从而避免了由硬件遮挡查询造成的延迟。
在一个场景中,明亮物体或灯光的条纹可以以类似的方式表现出来,要么绘制半透明的广告牌,要么对明亮像素本身进行后处理过滤。像《侠盗猎车手5》这样的游戏会使用一组纹理应用到公告牌上以实现这些效果和其他效果[293]。
Oat[1303]讨论了使用可操纵滤波器来产生条纹效应。这种类型的过滤器给出一个方向,而不是在一个区域上对称地过滤。沿着这个方向的Texel值相加,产生条纹效果。使用图像向下采样到宽度和高度的四分之一,并使用乒乓缓冲区进行两次传递,给出了一个令人信服的条纹效果。图12.7显示了这种技术的一个示例。
还有许多其他的变化和技术,远远超出了收费的范畴。Mit- tring[1229]使用图像处理来分离明亮的部分,向下采样它们,并在几个纹理中模糊它们。然后,通过复制、缩放、镜像和着色,将它们重新组合在最终图像上。使用这种方法,艺术家不可能独立地控制每个耀斑源的外观:同样的过程应用于每个耀斑。然而,图像中任何明亮的部分都可能产生透镜耀斑,如镜面反射或表面的发射部分,或明亮的火花部分。Wronski[1919]描述了20世纪50年代使用的电影摄影设备的副产品——变形镜头耀斑。Hullin等人[598,786]为可变重影伪影提供了一个物理模型,跟踪光线束来计算效果。它给出了基于透镜系统设计的合理结果,以及精度和性能之间的权衡。Lee和Eisemann[1012]在此基础上建立了lin- ear模型,该模型避免了昂贵的预处理。Hennessy[716]给出了实现细节。图12.8显示了在生产中使用的典型镜头光晕系统。
在bloom效果中,一个非常明亮的区域会溢出到相邻的像素上,这种效果是通过结合现有的几种技术来实现的。主要的想法是创建一个bloom图像,它只包含那些“过度曝光”的明亮物体,将其模糊,然后将其重新合成到正常的图像中。使用的模糊通常是高斯分布[832],尽管最近对参考镜头的匹配显示,该分布具有更多的尖峰形状[512]。制作这幅图像的一种常用方法是亮通滤波:保留所有亮像素,将所有暗像素变为黑色,通常在过渡点进行混合或缩放[1616,1674]。对于少数小对象上的bloom,可以计算屏幕边界框来限制后处理模糊和复合通道的范围[1859]。
这个bloom图像可以在低分辨率下渲染,例如,在原始图像宽度和高度的二分之一到八分之一之间的任意位置。这样做可以节省时间并有助于提高过滤效果。这幅低分辨率的图像经过模糊处理后与原图像结合在一起。这种分辨率的降低被用于许多后处理效果,就像压缩或以其他方式降低颜色分辨率的技术一样[1877]。bloom图像可以向下采样几次,并从生成的图像集中重新采样,从而产生更宽的模糊效果,同时最小化采样成本[832,1391,1918]。例如,一个明亮的像素在屏幕上移动可能会导致闪烁,因为它可能不会在某些帧中采样。
因为目标是使图像在明亮的地方看起来过度曝光,所以图像的颜色按需要缩放并添加到原始图像中。添加剂的混合satu-率的颜色,然后变成白色,这通常是什么是想要的。图12.9显示了一个示例。Alpha混合可以用于更多的艺术控制[1859]。与阈值化不同,高动态范围的图像可以被过滤以获得更好的结果[512,832]。低动态范围和高动态范围的水华可以分别计算和合成,以捕捉不同的现象在一个m
Lens Flare and Bloom
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 毛星云网名「浅墨」,微软MVP,《Windows游戏编程之从零开始》作者 本篇文章将总结提炼“GPU精粹三部曲“1...
- 版本记录 前言 OpenGL 图形库项目中一直也没用过,最近也想学着使用这个图形库,感觉还是很有意思,也就自然想着...
- 原文地址:WebGL学习之HDR与Bloom[https://edwardzhong.github.io/2019...