屏幕空间(Screen Space)也就是我们所看到的屏幕所显示的画面这段空间。
在UE里指的是场景屏幕,屏幕空间本身没有什么重要性,但是屏幕空间效果比较重要。
屏幕空间内产生的效果就叫屏幕空间效果。
其中包括了:
? SSR:Screen Space Reflection,屏幕空间反射(动态反射变化)
? SSAO: Screen Space AO,屏幕空间环境光遮蔽(可以使物体间接触的更加自然,远处的地平线看不到,就是有环境光遮蔽(大气雾等))
? SSGI: Screen Space GI,屏幕空间GI(自带SSAO)(不用烘焙就可以生成GI)
? SSR和SSAO可通过后期处理体积(Post Process Volume)调整参数;SSGI需使用控制台调整
屏幕空间效果的优点:
? 简单方便好用
? 动态效果
屏幕空间效果的缺点:
? 效果一般
? 缺少屏幕外信息
粗糙度越低,就越像镜子,反射的画面汇聚,越清晰,粗糙度越高漫反射就越大,画面分散,越模糊。
场景如图,然后效果如下:
这里可以看出绿色的棍子没有反射,说明只有在屏幕内的物体才会反射。
且后续的镜面没有橙色的棍子的反射,但前面场景图中显示橙色的棍子长度是所有镜面的总和。
应该也要反射的,但是没有反射,再次说明只有出现在屏幕空间的物体才会反射。
再看看这两张图,可以看出动态的反射,也是可以展现的。
在后处理体积内可以调整屏幕空间反射的参数:
强度:反射的强度,0不反射。
质量:反射的质量,质量越低,越容易出现黑区域。
最大粗糙度:反射的最低值,高于此值的镜面不发生反射,进一步节省性能。
屏幕空间反射和反射捕捉的合作
可以看到屏幕外的物体也进行了反射,这是反射捕捉导致的。
但为什么只有这两块屏幕有呢?其实是只有这两块屏幕前放了反射捕捉。
可以看出
反射捕捉是烘焙生成的,是静态的
而屏幕空间反射是动态的。
上图中反射捕捉后尾部有锯齿状,可以通过设置提高反射捕捉的质量。
这个时候我们就可以开启屏幕内环境光遮蔽,也就是后处理体积下面的
强度:强度指的是环境光遮蔽的效果强度,可以想象透明度,越强越不透明
半径:影响的范围大小
但需要说明的是:只有屏幕空间内的才有效。
如果环境复杂很难看出环境光遮蔽的效果,可以开启下面的画面
场景如上
可以看出光源离开了,则GI也发生了变化。
所以说明了这和SSR,SSAO一样,都是只发生在屏幕空间的,动态的。
从边角处也可以看出墙角和地面过度的也很自然,是因为SSGI自带SSAO,且不受后处理体积PPV里面的SSAO影响。
设置后处理体积的SSAO强度为0,也就是不开启SSAO,但是场景内还是产生了环境光遮挡,也就是说明了SSGI自带SSAO。
SSGI开启需要通过命令行,具体的效果可以看上图。
最后需要说明的是:
不是说烘焙就是不好,屏幕空间效果就是好,两则各有好处,同时用可以发挥各自的有点。