百人计划(程序)3

第四章 高级扩展

一、Bloom算法

  • Bloom算法介绍

        1.Bloom概述:Bloom效果可以用来模拟真实世界中,摄像机的一种图像效果,它可以让画面中比较亮的区域扩散到周围的区域中,来达到一种朦胧的效果,并且能让我们的眼睛感知到这些区域是比较亮的。

        2.实现思路

                ①通过一个预先设定的阈值去提取原图像中比较亮的区域

                ②利用高斯模糊对提取后的图像进行模糊处理

                ③将模糊后的图像与原图像进行一个混合,得到最终的Bloom效果

         3.前置知识:

                ①HDR与LDR

        (1)LDR(Low Dynamic Range,低动态范围):JPG、PNG等格式的图片,以及日常生活中使用的手机、显示器、摄像机这些设备的输入与输出均为LDR,因为LDR只能存储RGB范围在0到1之间的值,但在现实世界中,只用0到1范围内的值去表达真实世界中的色彩是远远不够的,意味着会存在精度的丢失。

        (2)HDR(High Dynamic Range,高动态范围):HDR允许我们表示超过0到1之间的亮度值,进而可以更加精确地反映真实的光照效果,实现Bloom效果的第一步就是利用阈值去提取原图像中比较亮的区域,如果不使用HDR的话,我们就只能提取亮度小于1的区域,并且像路灯发亮的亮度值可能会与某个区域的亮度值一致,这样就会导致这个区域也出现Bloom效果;但如果使用HDR的话,则可以提取亮度大于1的区域,这样就能让更亮的区域产生Bloom效果,所以,提取较亮区域有时候是针对开启HDR来实现的。

                ②高斯模糊

        高斯模糊(Gaussian Blur):它是实现图像模糊的一种方式,它的本质是通过高斯函数去定义一个卷积核,这个卷积核叫做高斯核,再利用这个高斯核对图像进行卷积运算,得到“平滑”后的图像,也就是俗称的模糊。(图像处理课设)

  • Bloom算法实现

  • Bloom算法应用

二、SSAO算法:屏幕空间环境光遮蔽算法

  • SSAO介绍和原理

        1.AO:即环境光遮蔽,全称Ambient Occlusion,是计算机图形学中的一种着色和渲染

技术,模拟光线达到物体的能力的粗略的全局方法,描述光线到达物体表面的能力。

        2.SSAO:屏幕空间环境光遮蔽,全称Screen Space Ambient Occlusion,一种用于计

算机图形中实时实现近似环境光遮蔽效果的渲染技术。通过获取像素的深度缓冲、

法线缓冲来计算实现,来近似的表现物体在间接光下产生的阴影。

        3.SSAO原理

                ①获取屏幕中像素的深度缓冲(用于重构像素相机空间中的坐标(Z),来近似重构该视

点下的三维场景)、法线缓冲(相机空间中的法线信息,用于重构每个像素的“法线-切线-副法线”

构成的坐标轴,用于计算法线半球中的采样随机向量)

                ②通过深度缓冲值计算像素坐标

                ③在着色点法线方向的上半部分随机采样点(随机向量用于判断和描述该像素的AO强度)

                ④计算随机后的坐标信息(多次采样),并比较随机采样点的深度值和着色点的深度值,对AO进行加权计算

                ⑤合成AO,后期处理优化(模糊等)

*法线半球(图1):黑色表示我们需要计算的样本;蓝色向量表示样本的法向量;白色、灰色为采样点(很明显,采样点的多少影响最后的渲染的效果),其中灰色表示被挡采样点(深度大于周围,说明采样点被遮蔽的光的部分比较多),据此判断最终Ao的强度。

        图2表示法向球形采样(后背抛弃),原因是该方式采样导致平整的墙面也会显得灰蒙蒙的因为核心中一半的样本都会在墙这个几何体上

图1
图2

补充:游戏后期特效第四发 -- 屏幕空间环境光遮蔽(SSAO) - 知乎 (zhihu.com)

  • SSAO算法实现*

        1.获取深度&法线缓冲数据:

        2.重建相机空间坐标

         PS:重建方法较多,附上参考链接:https://zhuanlan.zhihu.com/p/92315967         

        本例实现使用其中的“从NDC空间中重建”方法得到样本在相机空间中的向量,乘以深度值得到样本的坐标。

        3.构建法向量正交基

         4.AO采样核心

  • SSAO效果改进

        1.随机正交基(增加随机性)

         2.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值