胶囊体阴影
发表于2018-01-16
官方介绍
虚幻引擎现在支持非常柔滑的间接阴影,由代表角色的胶囊体来进行投影,本篇文章我们就来看看胶囊体阴影的实现。
通常,在受间接光照时,并不会产生阴影,除非是屏幕空间环境遮罩。间接投影需要做的非常柔滑,因为间接光照是来自很多不同的方向,因此,传统的阴影贴图做法的效果并不好。间接阴影的方向和柔度来自预先摆放的光照样本区域,并有 Lightmass 在构建光照时预先计算。
在游戏中,胶囊体的间接阴影将角色投影到地面上。
也可以用这些胶囊体来做直接阴影。灯光的来源半径或者来源角度将会决定阴影的柔度。这可以用来在一个有效的预烘培光照环境中获得非常柔软的角色阴影效果,在以前这点是做不到的。
这个胶囊阴影的实现非常高效,它在一半的分辨率下计算阴影,带有深度信息的向上取样,使用屏幕裁剪来限制只在需要的地方才对阴影进行计算。
GPU 的消耗则和胶囊体的数量以及收到该阴影影响的像素数量成正比关系。
如何启用胶囊体阴影:
仅用 Sphyl bodies(胶囊体) 来创建新的 Physics Asset。用球体也行,但会不够灵活。胶囊体应该覆盖到关节位置。脚部的胶囊体最需要细条,因为这会影响到角色看起来是否恰当的贴在地面上。通常手臂上并不需要,除非游戏中经常会躲到掩体后,或者在地上爬行。
---------分割线------------
以上是官方新特性说明中的描述,下面是我在实际项目当中实现胶囊体阴影的操作步骤。
操作步骤:
1. 新建物理资源
2. 重新编辑物理资源刚体,只在关键部位使用胶囊体,即表示轮廓。
3.打开skeletal mesh,把用于阴影效果的物理资源放入相应通道
4.然后在蓝图中,对mesh
5.阴影的柔软度与 (直射光angle/刚体半径) 有关
注意
PS:胶囊体阴影在4.11中,只支持直射光、lightmaps、SkyLight,点光源和spot光不支持胶囊体阴影。