UE4阴影距离可见调节属性

在ue4里边大家经常会遇到当摄像机拉到场景足够大的时候你会发现场景中的阴影不见了,只有把摄像机拉近一些菜能看到,对于经验不足的小白来说这是会感到不知所措,到底是什么原因呢?

认知看完下面的介绍你就会啦

光线追踪距离场柔和阴影

光线追踪距离场阴影利用场景距离场展示的属性用于计算动态网格体的有效区域阴影。这使用的数据和距离场环境遮挡相同,因此许多限制也相同。
为计算阴影,从场景定向距离场被遮挡的点到每个光源进行光线跟踪。使用到遮挡物的最近距离使锥形追踪的消耗与光线追踪相近。可从球形光源生成高精度区域阴影。


距离场阴影要求启用项目设置“Generate Mesh Distance Fields”(Render 下)。变更此设置的数值后,必须从启编辑器。

点光源和聚光灯

“源半径”用于确定点光源上的阴影半影的大小。区域阴影与明显接触面一同计算。接触面在较长的距离中将变得更柔和。注意:光源球体不应和场景相交,否则将导致穿帮。

编辑器以黄线绘制光源形状。

源半径为100,来自点光源的追踪柔和阴影

Video of a moving point light using Ray Traced Distance Field shadowing

定向光源

“光源角度”用于确定定向光源上的阴影半影大小。光线追踪阴影出现在我相交的问题较少,因此能避免远处的泄露和过度偏移问题,而这正是传统阴影贴图存在的问题。

光源角度为2,来自定向光源光线的最总柔和阴影。
级联阴影贴图用于生成定向光源的动态阴影。它们要求将场景中的网格体渲染为数个级联阴影贴图。阴影的消耗在阴影距离较大时急剧上升,因为诸多网格体和三角面被渲染为阴影贴图。
光线追踪距离场阴影在远处时消耗较低,只为可见的像素产生阴影。级联阴影贴图可用于覆盖摄像机附近的区域,光线追踪阴影将覆盖到“距离场阴影距离”的区域

Video of changing time of day using Ray Traced Distance Field shadowing

精度

距离场保真度对阴影的准确性有较大影响,比距离场环境遮挡大得多。在需要“Distance Field Resolution”(Build设置下)的静态网格体上将其设置为更高的值。
这些阴影以一个知悉深度的上采样进行半分率计算。临时抗锯齿(AA)可有效降低半分辨率闪烁,但阴影中偶尔扔会出现锯齿。

限制

此技术的限制与距离场环境遮挡的限制相似。

  • 只有静态网格体组件、范例静态网格体组件和植物(启用“Affect Distance Field Lighting”后)能生成距离场并投射阴影。然而,骨骼网格体扔可使用“Cast Inset Shadow”合成阴影。地形的最佳处理方式是使用远级联(由“Far Shadow Cascade Count”启用)。
  • 只支持轻微的网格体非等分缩放(挤压)。半影中的穿帮带有更多的网格体挤压。
  • 世界位置偏移或曲面细分引起的变形无法被展示,还可能导致自身阴影穿帮。有效的做法是:使用CSM覆盖观察者附近的区域以支持定点动画,同时在远处使用光线追踪。

性能

在定向光源上,较大的光源角度将增加消耗,因为每个被阴影遮挡的点上需要考虑更多物体。较大的“Distance Field Shadow Distance”数值将缩略降低消隐效率。从设置“Generate Distance Field As If Two Sided”的网格体上生成阴影消耗更高,因为阴影效果不为完全不透明。

以下GPU时间以 Radeon 7870显卡在1920×1080精度的完整游戏场景中进行计算。

距离为10k的定向光源,3级联

  • 级联阴影贴图3.1ms
  • 距离场阴影2.3ms(快25%)

距离为30k的定向光源,6级联

  • 级联阴影贴图 4.9ms
  • 距离场阴影 2.8ms(快43%)

一个大型点光源

  • 立方体贴图阴影贴图 1.8ms
  • 距离场阴影 1.3ms (快30%)

五个小型点光源

  • 立方体贴图阴影贴图 3.2ms
  • 距离场阴影 1.8ms(快45%)

资源仅供学习交流使用,请于24小时内删除,如果喜欢可以支持正版! 转载请注明并附上原文链接!
CGGO » UE4阴影距离可见调节属性