简介:
面对场景中的镜面物体,我们经常需要使用反射效果,天空盒反射,反射探头是制作反射的一种方式,我们这里介绍基于屏幕空间的反射,HDRP 也内置支持了折射效果,其在后处理中也有一个设置选项,我们一并了解一下。
版本:
Unity2019.4.12f1 HDRP 7.5.1
准备
-
我们将 ScreenSpaceReflection 和 ScreenSpaceRefraction 功能添加到我们的体积组件上
-
关闭场景中的反射探头
-
创建一个完全光滑的金属球体,并开启材质属性上的 ReceiveSSR ,便于观察我们的反射效果
创建完全光滑的金属球体并勾选 ReceiveSSR
ScreenSpaceReflection 屏幕空间反射
-
是之前传统管线中的后处理,在渲染的最后阶段,根据渲染结果进行反射,缺点无法反射渲染结果之外的物体。
-
需要接受 SSReflection 的物体的材质需要勾选 ReceiveSSR 属性,表示次物体需要接受屏幕空间反射
-
无法反射透明物体
ScreenSpaceReflection 参数讲解
ScreenSpaceReflection 的参数面板
-
Enable 勾选后开启 屏幕空间反射功能
-
MinimumSmoothness 可以产生屏幕空间反射的最小光滑度,光滑度大于此值的像素可以产生反射,一般情况值越小能反射的像素越多。一般建议给 0
小球的光滑度设置为0.5,SSR的MinimumSmoothness 设置为0.6
小球的光滑度设置为0.5,SSR的MinimumSmoothness 设置为0.6
-
SmoothnessFadeStart 控制 MinimumSmoothness 的过渡值,从 MinimumSmoothness 到 此值之间的光滑度产生的反射会产生过渡,所以此值不会小于MinimumSmoothness. 一般建议给 1
小球的光滑度设置为0.5, MinimumSmoothness 和 SmoothnessFadeStart 设置为0.3
小球的光滑度设置为0.5, MinimumSmoothness 设置为0.3 和 SmoothnessFadeStart 设置为0.8,可见反射减淡了
-
Quality 反射质量,就是控制计算射线反射次数,分高中低和自定一,建议直接使用高。
-
MaxRaySteps 最大射线反射次数,开启 Quality 的 Custom 后可以配置,建议32-64之间即可。
ScreenSpaceRefraction 屏幕空间折射
-
这个功能是为了控制屏幕边缘的折射的淡出效果,因为折射会扭曲后方的物体,但是屏幕空间边缘无法扭曲屏幕外的物体,所以需要有个过渡效果来减少过渡。
-
准备一个透明的折射球体,关闭屏幕空间反射便于我们观察纯折射,折射类型设置为球体
球体材质设置,透明渲染,颜色透明,贴一张法线贴图,折射类型设置为球体
屏幕空间参数详解
-
ScreenWeightDistance 屏幕边缘过渡 范围 0 - 1