屏幕空间反射

    屏幕空间反射(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结合到渲染管线里去,及怎么实现基于图像的视差正确的局部反射。

转载于:https://www.cnblogs.com/jiffwan/p/4041556.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值