Unity Lighting -- 室内场景光照杂项

游戏物体所有面都计算阴影

        在游戏物体的Inspector中,展开Lighting选项卡,在Cast Shadows中选择 Two Sided。

        选择Two Sided后,游戏物体在计算阴影的时候会对Mesh的所有面都计算,这样会看起来更加真实。

改善光泄露问题(light leaks)

        光泄露是指光出现在了游戏物体周围不该出现的地方。这种问题一般是光穿过了它本来不应该穿过的地方,比如穿过了墙或在两面不透光的墙中间。根据项目的设置不同,作为非相关领域专家(lighting artist),要解决这个问题会比较棘手,但我们能够通过部门设置改善这个问题。

        如下图,立灯旁边的门和墙有一些光线漏了出来(看地面上的白色先线条处)。

        我们在Hierarchy中选择Directional Light,在其Inspector中,慢慢降低Bias Normal的值到0,观察一下场景中的这个漏光的地方有什么改变

        实验看看Depth,Normal和Near Plane属性值,试着将漏光问题降到最小。

        注意:不要将Bias设置得过高,这个值过高会让物体的影子看起来会和物体分离开。

        最后,在Lighting窗口中点击Generate Lighting生成烘焙光照结果。

检查新导入模型的光照问题

        接下来我们用一个有问题的LightmapUV数据的苹果模型来说明如何去诊断新导入模型的光照问题(模型下载地址https://connect-prd-cdn.unity.com/20211124/2a865f48-d818-4ff2-8106-fcd6dbfa63d9/Apple_BrokenLightmapUVs.fbx?_ga=2.265317894.822622723.1637578205-1717752285.1627477648)。首先在场景中导入这个有问题的模型。这里将模型选择为Static,然后重新烘焙一下场景光照。在这里例子中,苹果表面只有一半有反光,并且反光以一种奇怪的方式扭曲了

         出现这个问题的原因是模型没有正确的lightmap UV。

检查烘焙光照贴图诊断视图

        将模型正确配置好用于烘焙光照是非常重要的。如果这一步有问题,我们会得到非预期或者是完全不想要的效果。诊断视图在这方面能起到比较大的帮助,特别是对于案例中的苹果模型的问题,并不是一眼就能看出的明显的问题。

        要打开烘焙光照贴图的诊断视图,在Draw Mode下拉菜单中选择Baked Lightmap

        选择之后,我们可以看到,场景视图中出现了一层覆盖图层(overlay)

         这个覆盖层是一种棋盘格图案,我们可以用来用这种pattern来识别模型的问题。调整Light Exposure可以让棋盘格更加容易看清楚。     

         可以看到,棋盘格图形在苹果模型上扭曲的非常厉害。

生成模型的Lightmap UVs

        在资源窗口中选择导入的模型,在其Inspector中,找到Generate Lightmap UVs属性(模型导入设置里Model标签页最下面)

         勾选Generate Lightmap UVs,然后点击Apply。

        这是我们可以看到苹果表面的棋盘格图案看起来正常一点了(案例中模型的比例进行了调整,因此看起来棋盘格图案看起来较大):

         将Draw Mode切换回Shaded,然后重新烘焙一下光照,看看结果。

        有一点比较重要,Generate Lightmap UVs只是提供了非常基础的改善效果,并不能完全替代艺术家的工作。

猜你喜欢

转载自blog.csdn.net/vivo01/article/details/129568739