zoukankan      html  css  js  c++  java
  • SSAO

    ssao是Crysis用到的算法,“Screen-Space Ambient Occlusion” (屏幕空间环境光遮蔽)。
    SSAO通过采样象素周围的信息,并进行简单的深度值对比来计算物体身上环境光照无
    法到达的范围,从而可以近似地表现出物体身上在环境光照下产生的轮廓阴影。可以利
    用“逐象素场景深度计算”技术计算得出的深度值直接参与运算。

    现在的效果确实错误还比较大,应该先进行简单的空间划分(或类似处理)然后计算。
    不过个人认为这种方法只是近似地模拟,效果并不正确,但确实能增强场景的层次感,
    让画面更细腻,让场景细节更加明显。

    首个真正意义上使用SSAO技术的是Crytek出品的游戏Crysis,追求画面极致的一款里程碑作品,不知道这一款游戏的可以不用往下看了。

    SSAO技术的应用带来了光影效果上的极大改进,使用SSAO的游戏将越来越多,包括Farcry2,已经现在论坛火热的Burnout5,
    在之前的 Starcraft2(星际争霸2)官方技术文档中,也使用了较大篇幅陈述了这一技术。

    SS1.jpg

    http://ati.amd.com/developer/SIGGRAPH08/Chapter05-Filion-StarCraftII.pdf


    同时在NV的新驱动185.20中所加入的AO(Ambient Occlusion)功能也是SSAO算法的一个基础。不过注意,这2者是不同的。

                                      NV.jpg

    SSAO给我们带来了什么?

    这不是技术贴,没有太复杂的东西。
    我们只需要知道,SSAO极大地改进了此前3D游戏对“间接光照”表现的疲软。

    何谓“间接光照”?
    光照之处为“亮”,光照之外为“暗”,如果在亮与暗之间缺乏过渡,只会带来生硬的光影效果。“间接光照”着重表现的就是自然的过渡,自然的光照。

    doom3_screen001.jpg

    缺乏“间接光照”支持的DOOM3,画面生硬。

    什么是SSAO?

    从HL2开始,众多游戏公司开始对于如何表现“间接光照”进行研究,这些昙花一现的技术有:

    运用于HL2的radiosity Normal Maps技术,效果比较垃圾
    运用于Stalker的GI(?)技术,算法不好,开销巨大。
    初期Crytek准备运用在Crysis上的Photon Mapping(光子映射)技术,开销同样比较垃圾,被抛弃。
    随后Crytek又准备运用在Crysis上的Real-Time Ambient Map(实时环境光照贴图,简称RAM),这个是与之前Stalker使用的技术比较类似的,也是最接近SSAO的一个技术。

    不过Crytek不愧为“间接光照”研究上的先锋,其技术员对于RAM进行了改进,新的算法成为了如今的SSAO

    2.jpg

    1.jpg

    SSAO开与关的区别所在

    SSAOScreen-Space Ambient Occlusion)是一个纯粹的渲染技术,或者说,是一个算法。虽然从上文知道是为了实现“间接光照”的效果,不过从技术上讲,就是一个对于AOAmbient Occlusion环境光吸收,也就是NV 185.20驱动加入的那个,一个渲染技术,我们可以在Maya3D软件中可以见到)的一个逼近函数,并且以此为据进行实时渲染。

    SSAO比起185.20驱动中AO的优点:
    与场景复杂性无关
    无数据预处理,无loading时间,无系统内存分配
    动态渲染
    每个像素工作方式始终一致
    CPU占用,完全通过GPU执行
    与流行显卡的管线整合相当容易

    缺点也是有的:
    由于采样全部在可见点上进行的,对于不可见点的遮挡影响会有错误的估算。
    颗粒感比较重,需要与动态模糊紧密配合才能取得较好效果。

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

  • 相关阅读:
    HTML Meta中添加X-UA-Compatible和IE=Edge,chrome=1有什么作用
    CSS+DIV定位分析(relative,absolute,static,fixed)
    Web中常用字体介绍
    CSS中强大的EM
    一线开发忙着实现,二线开发忙着变现
    Eclipse之父、《设计模式》作者、Junit作者之Erich Gamma
    著名软件工程师与作家、极限编程的创始者、JUnit作者之Kent Beck
    学习要构造反馈闭环
    技术人员也要全面发展
    2019第13周日
  • 原文地址:https://www.cnblogs.com/skiwnchiwns/p/10342937.html
Copyright © 2011-2022 走看看