首页 > Unity > Unity5烘焙过的模型复制后光影丢失的问题
2017
02-15

Unity5烘焙过的模型复制后光影丢失的问题

Unity5烘焙过的模型复制后光影丢失的问题 - 第1张  | Atlantis技术博客

如上图所示,左边是烘焙好的光影效果,右边是左边的拷贝,Lightmap信息丢失。

在Unity4里Renderer.lightmapIndex和Renderer.lightmapScaleOffset是存储在renderer里的,所以Unity4中不会有以上情况。但是在Unity5中,上述数据被移到了lightmap snapshot中。这样做可以把每次烘焙后生成的lightmap相关信息都存储到单独的文件,能避免存储到每个renderer里产生的文件冲突。但是这样做的副作用就是如上图所示,再复制一个renderer出来后,光影效果就丢失了。

如果游戏中确实需要这样做,比如烘焙好的信息存储到一个prefab中,游戏里需要实例化多个这个prefab的话可以添加如下脚本:

将该组件添加到每个prefab根节点上,然后点击菜单:Assets->Bake Prefab Lightmaps。这样会首先烘焙场景然后会把lightmap的indices,scale和offset信息存到每个prefab的实例中,然后会替换相应prefab。

采用以上脚本,回到第一张图,复制一个出来结果如下:

Unity5烘焙过的模型复制后光影丢失的问题 - 第2张  | Atlantis技术博客

参考:

https://forum.unity3d.com/threads/problems-with-instantiating-baked-prefabs.324514/#post-2177524

 

 

最后编辑:
作者:maosongliang
这个作者貌似有点懒,什么都没有留下。