实时全局光照Screen Space Ambient Occlusion(SSAO)
屏幕空间
- 可以拿到的所有信息只能从屏幕中所看到的获取,即在做全局光照之前能在屏幕上看到的->直接光照。
- 换句话说,对现有的渲染进行后期处理。
环境光遮蔽
为什么要做环境遮蔽?
- 实施成本低
- 增加了场景的立体感
什么是环境光遮蔽?
- 全局光照的近似
- 在屏幕空间上获取信息
重要假设1:
- 我们不知道间接光照信息
- 对于屏幕空间上的任何一个点,假设从任何方向的间接光照是个常数
- 这和blin-phong着色模型中的环境光照(自发光)相似。
重要假设2&3:
- 考虑可见性的不同:任何一个shadow point接收来自不同方向的间接光照强度是一样的,但是不同方向的间接光照不一定会都接收的到。
- 此外,假设所有的shadow point都是漫反射材质。
比如说 下图中的两个点,来自不同方向的间接光照相同,但是红色部分的间接光照被挡住了(不可见)接收不到。左图中的可接收到的多一些所以亮一些,右图接收到的少一些所以暗一些。
如何判断间接光照可见度
在世界空间里,可以做光线追踪,从shadow point在一定范围内(不限制范围的话光线肯定会发生碰撞)往各个方向发射一段光线,将这些光的可见性加权平均起来。
在屏幕空间上做出一个大胆的假设:
- 任何一个shading point 往它的半径为R的球内采样很多的点,判断采样的点是否能被shadow point直接看到
- 如何知道哪些点能被shadow point直接看到呢?从camera看向物体记录物体的深度,如果采样的点的深度小于shadow point点的深度,那么就认为该采样点能被shadow point 直接看到,否则就认为不能看到 。(下图中中间的红点这种情况可能会判断错误,但是工业界上这种误差可以忽略)
- 但是现实情况下,任何一个shadow point 的visibility(可见性)应该是从法线的半边球来判断,不可能是从整个球的方向判断可见性(光线不可能从物体的底部传过来)(这里是假设不知道屏幕空间上每个shadow point的法线方向)。所以这里再假设如果有一半的采样点可见,就当做没有东西挡住该shadow point ,可见度为1;否则,就将可见点除以所有的点得到可见度(0~1之间),将可见度乘以环境光照就是该点的间接光照强度(环境光照强度)。
可能出现的问题
图中在桌角处地面的一定范围内采样,采样点会采样到桌子上,(在屏幕空间上,所以不知道shadow point的桌面后的附近的点的深度)所以会认为该点的深度肯定会小于shadow point点的深度,会错误地认为该点可见性为1,会出现这种不自然的情况
采样:
可以先使用少量的sample,得到一张noise的AO
然后再做一遍降噪处理
参考视频
实时全局光照Screen Space Ambient Occlusion(SSAO)相关推荐
- Learn OpenGL 笔记6.10 SSAO(Screen Space Ambient Occlusion屏幕空间环境光遮蔽)
我们在基本照明一章中简要介绍了该主题:ambient lighting环境光. Ambient lighting环境光是一个固定的光常数,我们添加到场景的整体照明中以模拟光的scattering散射. ...
- Lumen为《堡垒之夜:大逃杀》第四章带来实时全局光照
Lumen为<堡垒之夜:大逃杀>第四章带来实时全局光照 - Unreal Engine 图像部门工程研究员Daniel Wright和图像部门技术总监Krzysztof Narkowicz ...
- 王世安计算机仿真工作室,运用实时全局光照打造灯光模拟仿真软件
运用实时全局光照打造灯光模拟仿真软件 查雁南(广州工程技术职业学院王世安计算机仿真工作室,广东广州 510075)[摘要]摘要:VR开发引擎借助于VR在娱乐行业的迅猛发展变得更加高端和智能化.新的VR ...
- 使用预计算实时全局光照优化照明-教程目录
本文地址:https://blog.csdn.net/t163361/article/details/123858265 最近准备申请新星创作者,需要2000个粉丝关注,觉得文章有用的,请点一下左侧边 ...
- 实时全局光照(Real-time Global Illumination)与Reflective Shadow Maps(RSM)
文章目录 1 概述 1.1 什么是全局光照(GI)? 1.2 光照模型处理间接光照的方法 1.3 实时全局光照的思想 2 GI的主要问题 3 方法一:Reflective Shadow Maps(RS ...
- GPU Gems2 - 13 动态环境光遮蔽与间接光照(Dynamic Ambient Occlusion and Indirect Lighting)
本文摘自https://zhuanlan.zhihu.com/p/38411575 [章节概览] 这章在讲大家很熟知的环境光遮蔽(Ambient Occlusion , AO). 文中的描述是,介绍了 ...
- Godot 4.0中的基于有向距离场SDF(Signed Distance Field)的实时全局光照技术
原文地址 Godot官网 <Godot 4.0 gets SDF based real-time global illumination> 作者 Juan Linietsky 6月28日 ...
- 实时全局光照RSM-Reflective Shadow Maps(RSM)
全局光照介绍 现实世界光处于线性空间,光照效果是可以叠加的,最终的光照结果 = 直接光照 + 间接光照,结果也被称为全局光照(Global illumination).与之对比的是局部光照--仅考虑直 ...
- 使用预计算实时全局光照优化照明-微调光照贴图参数
本文地址:https://blog.csdn.net/t163361/article/details/124107784 翻译说明: 教程翻译主要用谷歌翻译后,对特别不通顺的地方进行了微调.同时针对一 ...
最新文章
- 关于搭建fis3 工程的过程记录
- python模块基础之getpass模块
- Python之路【第十七篇】:装饰器
- java 大数类_Java大数类介绍
- 链上体育和游戏平台Rage.Fan完成160万美元私募轮融资
- maven 配置环境变量
- python3--匿名函数
- 解决background图片拉伸问题
- 韩顺平 linux视频教程
- 2021暑期实习:网易互娱游戏测试最新面经!
- Aurora 64B66B IP核的硬件跑通
- 『.NET Core CLI工具文档』dotnet-publish
- 经典的图像分割方法总结
- 计算机分辨率无法调整,电脑分辨率调不了怎么办?电脑分辨率不能调的解决方法...
- 手机开发|USB调试时未弹出授权对话框
- 计算机考试怎么考申论,公务员考试申论评分标准,这些你都知道吗?
- Eclipse中python的配置方法
- 【Vue 实战项目】后台管理系统登录页详解附源码
- 【有料】面试必备:什么时候要打破双亲委派机制?什么是双亲委派? (图解+秒懂+史上最全)
- 第五届蓝桥杯C/C++本科B组(真题试做)(6~8)
热门文章
- MyFFmpeg-我的音视频练习app
- 【Eye】Fake News Reading on Social Media: An Eye-tracking Study
- 【链塔DApp日报】BDI指数增长23%,以太坊24h交易额增长56%
- django:视图类之RedirectView、TemplateView、ListView、DetailView的源码与示例
- 树形DP Python 洛谷P1352
- 利用java实现简单的RPC服务调用
- 计算机室的校规英语翻译,我们学校的校规英语作文含翻译(通用5篇)
- (训练三)王朗自然保护区---数据集部分补充说明:计算xml文件里面目标数量 生成训练和测试的txt文件
- Redis中的乐观锁和悲观锁
- 计算机科学导论:第五章 计算机组成