说到ssao 就要从ao说起,ao,即间接环境光遮蔽技术。我们知道现实中的光线,除了来自太阳和电灯的直射光线以外,光线碰到物体以后,还会再次反射,折射,而再次反射折射的过程中,又会被其他物体遮挡,而留下阴影。所以实际上,现实中你看到的阴影,不只是直接光源,如阳光电灯被物体遮挡所留下的阴影,还有许多是它们被间接的反射和折射后所留下的影子,而ao的目的就是模拟这种间接阴影的形成。

从上到下分别是孤岛危机2中的ssao,ssdo,以及最低特效下的木有任何ao。

从上图我们可以更清楚地发现:ao的开启为墙壁的砖缝带来了阴影。而ssdo是孤岛危机2 dx11中带来的新的ao处理方式,它的亮点就是“动态的ao"
        我们知道,游戏中的直接光源可以是动态的,而所谓牵一发动全身,一旦直接光源的照射角度,照射强度发生变化的时候,那么与它相关的反射光,折射光也会相对地发生变化,那么这些间接的反射光,折射光被遮蔽所留下的阴影情况也自然会发生变化。传统的ssao在面对这种复杂情况时容易发生最终显示效果上的错误,因此实际上在dx9的孤岛危机2中虽然也有ssao,但其实它对于动态间接光照的遮蔽计算是被关闭的,也就是“死水一般的ssao",而ssdo的出现则可以实现精确地处理全动态范围的间接环境光遮蔽情况,因此在dx11版中你所看到的ao,是随着环境光源的变化而变化的。

实现原理:

ssao:屏幕空间环境光遮蔽,是ao被摆上台面后,最早提出的,一种环境光遮蔽阴影计算与实现技术。原理是这样的:我们知道物质的表面是凹凸起伏的,而游戏为了表现物体起伏,通常是在物体模型和物体凹凸纹理上做文章。ssao的目的就是检测这些凹凸纹理表面的凹凸情况,也就是”深度值“来判断哪些物体在凹的地方,那些物体在凸的地方。凹的地方被间接光源照射以后,它的光会被凸的地方挡住,从而产生阴影,于是ssao检测到以后,赋予它一个阴影。

ao的开启为墙壁的砖缝带来了阴影,而ssdo是孤岛危机2 dx11中带来的新的ao处理方式。它的亮点就是“动态的ao"。我们知道,游戏中的直接光源可以是动态的。而所谓牵一发动全身,一旦直接光源的照射角度,照射强度发生变化的时候,那么与它相关的反射光,折射光也会相对地发生变化。那么这些间接的反射光,折射光被遮蔽所留下的阴影情况也自然会发生变化。传统的ssao在面对这种复杂情况时容易发生最终显示效果上的错误,因此实际上在dx9的孤岛危机2中虽然也有ssao,但其实它对于动态间接光照的遮蔽计算是被关闭的,也就是“死水一般的ssao"。而ssdo的出现则可以实现精确地处理全动态范围的间接环境光遮蔽情况,因此在dx11版中你所看到的ao,是随着环境光源的变化而变化的。

what is ssao相关推荐

  1. Bilateral Filtering(双边滤波) for SSAO(转)

    原文链接:http://blog.csdn.net/bugrunner/article/details/7170471 另外一篇相似的英文资料:http://homepages.inf.ed.ac.u ...

  2. Bilateral Filtering(双边滤波) for SSAO

    1. 简介 图像平滑是一个重要的操作,而且有多种成熟的算法.这里主要简单介绍一下Bilateral方法(双边滤波),这主要是由于前段时间做了SSAO,需要用bilateral blur 算法进行降噪. ...

  3. OpenGL SSAO屏幕空间环境光遮蔽的实例

    OpenGL SSAO屏幕空间环境光遮蔽 先上图,再解答. 完整主要的源代码 源代码剖析 先上图,再解答. 完整主要的源代码 #include <glad/glad.h> #include ...

  4. OpenGL 具有深度恢复的SSAO

    OpenGL具有深度恢复的SSAO OpenGL具有深度恢复的SSAO简介 源代码剖析 主要源代码 OpenGL具有深度恢复的SSAO简介 在上一教程中,我们研究了屏幕空间环境光遮挡算法.我们使用了一 ...

  5. 光影的魔法!Cocos Creator 实现屏幕空间的环境光遮蔽(SSAO)

    引言: 本文作者 alpha 从事游戏前端开发已经5年,毕业后他先是入职了腾讯无线大连研发中心,而后开启了北漂生涯,在北京的这3年一直都在使用 Cocos Creator,对前端业务,包体.内存优化有 ...

  6. 屏幕空间环境光遮蔽(SSAO)算法的实现

    SSAO SSAO介绍 之前写SSAO的时候最后一直没达到想要的效果,最近闲下来又重新写了下,才发现自己之前真的蠢- -!(位置和法线忘转到视口坐标).这里就好好整理一下这个算法,以免下次想拿起来又不 ...

  7. Unity Shader-Ambient Occlusion环境光遮蔽(AO贴图,GPU AO贴图烘焙,SSAO,HBAO)

    前言 十一放假很开心,正好赶上观望了了许久的<尼尔·机械纪元>打折啦.窝在家里搞了三天三夜,终于E结局通关啦!!!真的好久没玩过这么好玩的游戏了,于是乎我的废话应该会多不少,毕竟,写blo ...

  8. SSAO与HBAO学习笔记(持续改进)

    简介 环境光遮蔽是计算场景中每一点是如何接受环境光的.而实时渲染中的环境光遮蔽则是对此的模拟. 我们这里实现比较常见的SSAO和HBAO,一个表面点的AO的计算则是对其法线所在半球面的可见性的积分 A ...

  9. SSAO By Computer Shader(三)

    SSAO By Computer Shader(三) 开启一个专题,SSAO By Computer Shader.使用Computer Shader实现SSAO效果.第一篇Computer Shad ...

最新文章

  1. BZOJ4568: [Scoi2016]幸运数字(线性基 倍增)
  2. python3.7.1安装教程详细_CentOS 7 安装python3.7.1的方法及注意事项
  3. 字节跳动喜欢招聘这样的机器学习工程师
  4. 《柳叶刀》:群体免疫不靠谱!欧洲迄今最大新冠血清学调查显示,西班牙抗体阳性率仅5%...
  5. 用Instant client批量安装Oracle客户端-安装配置
  6. 强大的DataGrid组件[12]_分组(Group)——Silverlight学习笔记[20]
  7. python输出命令_Python中的命令输出解析
  8. Linux服务器更换主板后,网卡识别失败的处理方法
  9. 《王家视频教程图书馆》
  10. PV操作经典问题通解
  11. 手把手带你实现一个短信验证码
  12. JQ---h5页面上实现微信扫一扫功能
  13. 作为程序员,我将如何教育自己的孩子
  14. python读取csv文件(一行一行的读取)
  15. TCP/IP协议中的端口
  16. Python第一天:你必须要知道的Python擅长领域以及各种重点学习框架(包含Python在世界上的应用)
  17. C语言:账号登陆问题
  18. 前后加编码_如何不加思考地编码?
  19. cocos2d-x下硬件音量按键控制游戏音量的实现
  20. 接入GoogePay 退款APi

热门文章

  1. 答应我不要问TCP三次握手四次挥手
  2. iOS NSTextAttachment - 图文混排
  3. dede 文章列表页如何倒序排列
  4. java项目启动tomcat没报错,然后页面报404无法找到,重新编译后,出现以下状态...
  5. jQuery学习- 位置选择器
  6. gulp配置实现修改js、css、html自动刷新
  7. 集合框架中的接口及其实现类
  8. cf13C Sequence(DP)
  9. win7无法将应用程序锁定到任务栏的几种解决方法
  10. asp.net发送邮件时在正文中插入图片