-
Notifications
You must be signed in to change notification settings - Fork 0
Shadow
myl2232 edited this page Oct 28, 2020
·
22 revisions
- 最早使用的是Dynamic Shadow的方案,来制作场景阴影,场景中的一个GameObject挂载Projector,由它来限定投射范围,把project范围内的对象重画一遍黑片到一个固定RT上,虽然减少了投影pass的数量,但是对美术 并不友好,需要经常调整projector的形态,总的渲染效率来看似乎并不占优势。故而最终废掉了。
- 采用场景主光的投影,需要把被投射的地形层、建筑物层等选入,也需把需要投射阴影的对象层都选中,否则没有阴影。另外,需要注意的是,如果在Grapics Setting当中选择了Cascade Shadow,那就默认会走一个ScreenSpace shadow,但是需要开启buildin shadow,否则看不到任何阴影。
- 自阴影的方案UniqueShadow,主要做法是在GameObject上挂一个MeshRender,当主相机Render的时候(或者是SceneCamera、DialogCamera等),主动调用这个组件挂载一个用作投影Camera的Render,画在一个固定RT上。 起初只挂在单一角色上,每个角色独立占用一个RT,至少512x512。后期改造为多人占用一个RT,可以至少是1024x1024。在Timeline下,可能更多需要单人自阴影,可以提供更好的细节效果。在游戏运行中,使用多人自阴影 。
- 对于Cascade shadow,需要在GraphicSetting当中开启,并且启用build-in中的ScreenSpaceShadows。但是此举会开启深度渲染。此时无论在QualitySettings当中是如何选择,一定会开启cascade。即便只是只有一级的Cascade。