Screen Space Reflections

中文译作屏幕空间反射,这是一项利用屏幕空间的数据来计算反射的效果。它被大量用于制造更多微妙的反射效果,如湿的地板表面或者水洼。由于此效果完全处于屏幕空间内,它只能反射处于屏幕中的东西(物体背面无法有反射,物体在屏幕外也无法有反射)。

这是种代价昂贵的技术,但正确的使用可以产生极佳的结果。不过这种效果仅工作于延迟渲染中,因为它需要G-Buffer中的法线。

Unity中对此效果的实现方式是将性能看的比品质重,以便于让他能在当世代的主机和PC平台使用。但要注意这种技术不代表能获得完美平滑的反射效果,你依然需要用反射探球或者平面反射。通过限制镜面光漏出的数量,这种效果在镜面光遮挡方面有很棒的效果。

Screen Space Reflections_第1张图片
Screen Space Reflections_第2张图片
参数特性
参数 功能
Preset 品质预设,如果想要微调则使用Custom
Maximum Iteration Count raymarching pass中的最大步数,数值越大反射越多。
注意:仅在Custom模式下使用
Thickness 光线粗细,数值越小则代价越大,因为这样能够探测到更小的细微处。
注意:仅在Custom模式下使用
Resolution 改变内部缓冲区的大小,降采样使性能更好或者采样升级以获得更好的品质,却会降低性能。
注意:仅在Custom模式下使用
Maximum March Distance 在场景中遍历的最大距离,达到后便会停止绘制反射
Distance Fade 减弱靠近近平面的反射,对于普通的瑕疵隐藏很有用
Vignette 减弱屏幕边缘的反射
性能表现

特写镜头时需要使用Custom预设。在主机平台,除非有空闲的GPU时间,否则不要用超过Medium的预设,特别是在full-hd(就是达到1080p分辨率)分辨率下。在低分辨率下,你可以提高预设品质来获得更好的视觉体验。

已知问题和限制

不支持AR/VR

使用要求

Compuer Shader
动态矢量
延迟渲染路径
Shader Model 5

参考
https://github.com/Unity-Technologies/PostProcessing/wiki/Screen-space-Reflections

你可能感兴趣的:(Screen Space Reflections)