zoukankan      html  css  js  c++  java
  • 屏幕空间反射

    https://www.cnblogs.com/jiffwan/p/4041556.html

    https://blog.csdn.net/ZJU_fish1996/article/details/89007236

    屏幕空间反射(Scene Space Reflection,SSR)又叫实时局部反射(Realtime Local Reflection,RLR),最早见于2011年Crytek在Siggraph的Course《Secrets of CryENGINE 3 Graphics Technology》。传统的反射是以平面或Cubecmap来处理反射信息,Cubemap更多的是处理静态反射环境。SSR做为补充,实现了以较低的开销在不规则表面的动态反射问题。

        SSR的基本原理很简单,基本思想为:

        .逐像素地计算反射向量,对于DefferedShading来说可以简单使用G buffer中的depth 和 normal求出

        .追踪反射射线,具体做法为从反射点沿反射方向按步进,采样步进点的depth 并比较采样点depth和步长方向的depth进行求交,如果两个depth之间距离小于误差范围,则认为相交

        .对于有相交点的光线,采样上一帧该点的颜色,采样颜色以混合方式贡献到目标反射点最终着色中

        除了基础的SSR算法,Crytek还提供了一些基本的优化手段:

        . 使用Jitter后的步长行步进,可以在一定程度上规避固定步长带来的走样

        . 对SSR的结果进行Filter,得到更平滑的结果

        . 基于和视点距离和屏幕距离对SSR进行淡出处理,离视点反射越远,反射越模糊

       目前关于SSR的实现在各大引擎里也各不相同,Cryengine最初的算法只要屏幕depth小于步进点depth就以屏幕当前点作为反射点,而UE4里的实现会更有更精确的光线求交---当depth之间的距离小于指定误差才当作交点。SSR的射线追踪在发现当前采样depth小于反射射线depth时,回塑进行二分查找近似的交点。Klayge的SSR实现是在uv空间进行步进,而很多其它实现则多在投影空间步进。

       此外,2014的Siggraph上,Killzone的Course《REFLECTIONS AND VOLUMETRICS OF KILLZONE SHADOW FALL》比较系统地介绍了Killzone怎么把SSR结合到渲染管线里去,及怎么实现基于图像的视差正确的局部反射。

  • 相关阅读:
    HearthBuddy投降插件2019-11-01的使用
    正则表达式在线分析 regex online analyzer
    Tips to write better Conditionals in JavaScript
    The fileSyncDll.ps1 is not digitally signed. You cannot run this script on the current system.
    Cannot capture jmeter traffic in fiddler
    JMETER + POST + anti-forgery token
    input type color
    HearthBuddy修改系统时间
    What are all the possible values for HTTP “Content-Type” header?
    UDK性能优化
  • 原文地址:https://www.cnblogs.com/nafio/p/14031717.html
Copyright © 2011-2022 走看看