晒一个将builtin-standard魔改为Shadow-Catcher的效果

引擎自带的lightmap我觉得已经挺好用的了,但是启用光照帖图后会变暗,就想能不能只留下阴影,余是再次魔改builtin-standard实现一个Shadow Catcher,这样可以局部有针对性的调节阴影的分辨率。否则只是启用一个全局地形lightmap,当地形特别大的时候阴影分辨率太小,效果不好。

魔改不复杂主要是慢慢删代码并进行测试确保不出错,直到只剩下lightmap,最后将亮度高于0.5的颜色丢弃。

用起来还是比较爽的

  1. 设置一个Shadow Catcher平面,如图中这个蓝色部分

  2. 生成lightmap

3.材质切换为使用lightmap


这样做的好处就是:

  1. 只在必要的地方投阴影
  2. 可以独立控制阴影的分辨率
  3. 着色器速度非常快没有多余运算
1赞

对比下直接用lightmap的效果

  1. 材质启用lightmap前

  2. 材质启用lightmap后

  3. 使用shadow catcher后对烘焙完的阴影还可以独立调节



可以看到当地面很大的时候lightmap要设置的很大,阴影才能有相同的分辨率,烘焙时间也要长很久,shadow catcher虽然可能麻烦一点,但要更灵活一点。

  1. ground的lightmap

  2. shadow catcher的lightmap,其实只占了一小块,多余的空间还能用于别的shadow catcher

算是一个折中优化方案吧