屏幕空间

  • 可以拿到的所有信息只能从屏幕中所看到的获取,即在做全局光照之前能在屏幕上看到的->直接光照。
  • 换句话说,对现有的渲染进行后期处理。


环境光遮蔽

为什么要做环境遮蔽?

  • 实施成本低
  • 增加了场景的立体感

什么是环境光遮蔽?

  • 全局光照的近似
  • 在屏幕空间上获取信息

重要假设1:

  • 我们不知道间接光照信息
  • 对于屏幕空间上的任何一个点,假设从任何方向的间接光照是个常数
  • 这和blin-phong着色模型中的环境光照(自发光)相似。

重要假设2&3:

  • 考虑可见性的不同:任何一个shadow point接收来自不同方向的间接光照强度是一样的,但是不同方向的间接光照不一定会都接收的到。
  • 此外,假设所有的shadow point都是漫反射材质。

比如说 下图中的两个点,来自不同方向的间接光照相同,但是红色部分的间接光照被挡住了(不可见)接收不到。左图中的可接收到的多一些所以亮一些,右图接收到的少一些所以暗一些。

如何判断间接光照可见度

在世界空间里,可以做光线追踪,从shadow point在一定范围内(不限制范围的话光线肯定会发生碰撞)往各个方向发射一段光线,将这些光的可见性加权平均起来。

在屏幕空间上做出一个大胆的假设:

  1. 任何一个shading point 往它的半径为R的球内采样很多的点,判断采样的点是否能被shadow point直接看到
  2. 如何知道哪些点能被shadow point直接看到呢?从camera看向物体记录物体的深度,如果采样的点的深度小于shadow point点的深度,那么就认为该采样点能被shadow point 直接看到,否则就认为不能看到 。(下图中中间的红点这种情况可能会判断错误,但是工业界上这种误差可以忽略)
  3. 但是现实情况下,任何一个shadow point 的visibility(可见性)应该是从法线的半边球来判断,不可能是从整个球的方向判断可见性(光线不可能从物体的底部传过来)(这里是假设不知道屏幕空间上每个shadow point的法线方向)。所以这里再假设如果有一半的采样点可见,就当做没有东西挡住该shadow point ,可见度为1;否则,就将可见点除以所有的点得到可见度(0~1之间),将可见度乘以环境光照就是该点的间接光照强度(环境光照强度)。

可能出现的问题

图中在桌角处地面的一定范围内采样,采样点会采样到桌子上,(在屏幕空间上,所以不知道shadow point的桌面后的附近的点的深度)所以会认为该点的深度肯定会小于shadow point点的深度,会错误地认为该点可见性为1,会出现这种不自然的情况

采样:

可以先使用少量的sample,得到一张noise的AO

然后再做一遍降噪处理

参考视频

实时全局光照Screen Space Ambient Occlusion(SSAO)相关推荐

  1. Learn OpenGL 笔记6.10 SSAO(Screen Space Ambient Occlusion屏幕空间环境光遮蔽)

    我们在基本照明一章中简要介绍了该主题:ambient lighting环境光. Ambient lighting环境光是一个固定的光常数,我们添加到场景的整体照明中以模拟光的scattering散射. ...

  2. Lumen为《堡垒之夜:大逃杀》第四章带来实时全局光照

    Lumen为<堡垒之夜:大逃杀>第四章带来实时全局光照 - Unreal Engine 图像部门工程研究员Daniel Wright和图像部门技术总监Krzysztof Narkowicz ...

  3. 王世安计算机仿真工作室,运用实时全局光照打造灯光模拟仿真软件

    运用实时全局光照打造灯光模拟仿真软件 查雁南(广州工程技术职业学院王世安计算机仿真工作室,广东广州 510075)[摘要]摘要:VR开发引擎借助于VR在娱乐行业的迅猛发展变得更加高端和智能化.新的VR ...

  4. 使用预计算实时全局光照优化照明-教程目录

    本文地址:https://blog.csdn.net/t163361/article/details/123858265 最近准备申请新星创作者,需要2000个粉丝关注,觉得文章有用的,请点一下左侧边 ...

  5. 实时全局光照(Real-time Global Illumination)与Reflective Shadow Maps(RSM)

    文章目录 1 概述 1.1 什么是全局光照(GI)? 1.2 光照模型处理间接光照的方法 1.3 实时全局光照的思想 2 GI的主要问题 3 方法一:Reflective Shadow Maps(RS ...

  6. GPU Gems2 - 13 动态环境光遮蔽与间接光照(Dynamic Ambient Occlusion and Indirect Lighting)

    本文摘自https://zhuanlan.zhihu.com/p/38411575 [章节概览] 这章在讲大家很熟知的环境光遮蔽(Ambient Occlusion , AO). 文中的描述是,介绍了 ...

  7. Godot 4.0中的基于有向距离场SDF(Signed Distance Field)的实时全局光照技术

    原文地址 Godot官网 <Godot 4.0 gets SDF based real-time global illumination> 作者 Juan Linietsky 6月28日 ...

  8. 实时全局光照RSM-Reflective Shadow Maps(RSM)

    全局光照介绍 现实世界光处于线性空间,光照效果是可以叠加的,最终的光照结果 = 直接光照 + 间接光照,结果也被称为全局光照(Global illumination).与之对比的是局部光照--仅考虑直 ...

  9. 使用预计算实时全局光照优化照明-微调光照贴图参数

    本文地址:https://blog.csdn.net/t163361/article/details/124107784 翻译说明: 教程翻译主要用谷歌翻译后,对特别不通顺的地方进行了微调.同时针对一 ...

最新文章

  1. 关于搭建fis3 工程的过程记录
  2. python模块基础之getpass模块
  3. Python之路【第十七篇】:装饰器
  4. java 大数类_Java大数类介绍
  5. 链上体育和游戏平台Rage.Fan完成160万美元私募轮融资
  6. maven 配置环境变量
  7. python3--匿名函数
  8. 解决background图片拉伸问题
  9. 韩顺平 linux视频教程
  10. 2021暑期实习:网易互娱游戏测试最新面经!
  11. Aurora 64B66B IP核的硬件跑通
  12. 『.NET Core CLI工具文档』dotnet-publish
  13. 经典的图像分割方法总结
  14. 计算机分辨率无法调整,电脑分辨率调不了怎么办?电脑分辨率不能调的解决方法...
  15. 手机开发|USB调试时未弹出授权对话框
  16. 计算机考试怎么考申论,公务员考试申论评分标准,这些你都知道吗?
  17. Eclipse中python的配置方法
  18. 【Vue 实战项目】后台管理系统登录页详解附源码
  19. 【有料】面试必备:什么时候要打破双亲委派机制?什么是双亲委派? (图解+秒懂+史上最全)
  20. 第五届蓝桥杯C/C++本科B组(真题试做)(6~8)

热门文章

  1. MyFFmpeg-我的音视频练习app
  2. 【Eye】Fake News Reading on Social Media: An Eye-tracking Study
  3. 【链塔DApp日报】BDI指数增长23%,以太坊24h交易额增长56%
  4. django:视图类之RedirectView、TemplateView、ListView、DetailView的源码与示例
  5. 树形DP Python 洛谷P1352
  6. 利用java实现简单的RPC服务调用
  7. 计算机室的校规英语翻译,我们学校的校规英语作文含翻译(通用5篇)
  8. (训练三)王朗自然保护区---数据集部分补充说明:计算xml文件里面目标数量   生成训练和测试的txt文件
  9. Redis中的乐观锁和悲观锁
  10. 计算机科学导论:第五章 计算机组成