关于 Unity 版本升级后可能会引起偶发光照图错乱的问题
近期項目遇到一個奇怪的問題,使用 Unity 2017 版本升級后,團隊中某些人的機器光照圖總是不正確,而有的人是正確的,一直不知道為什么。
為了查到這個奇怪問題的原因,首先查看了美術的在 Max 中的導出設置,雖然不是特別規范,但也沒啥特別的問題,且聲稱以前也是這樣導出,但是沒有遇到過這樣的問題;然后查看了美術使用的版本,美術果然沒有升級,還是用舊版本的 Unity 生成光照圖,然后把相關的場景資源全部到導出成 Package,然后再導入主干的工程并簽入,那么這個過程就比較值得懷疑。
還有一點,如果兩臺機器的光照圖不一致,那么他們的光照圖 UV 肯定是不一樣的,用肉眼也能看出來。但是有個問題是我的電腦得下來總是對的,想看錯誤的復現也不容易,好在美術找到了一個之前的 Package 我導入后如愿出錯,然后其本機是正確的,出現了問題這樣就比較好查了。于是拿出之前寫的一個 光照圖查看工具,在我本機和美術的機器上查看,果然出錯模型的光照圖的 UV 分布明顯不一致。
后來終于確認原因并且可以復現:Unity 導入模型會做頂點優化,頂點數并不是和 Max 中一致,重點是不同 Unity 版本即使同一個模型優化過的頂點數也不一致(應該是算法不同的問題),頂點數不同自然光照圖 UV 分布生成的也不同。所以比如在 Unity2017.3 中導入一個模型并生成光照圖,導出成 Package 并導入到 Unity2017.4 或者其它版本,會發現光照圖 UV 錯亂,因為重新導入的模型頂點和光照圖 UV 都不同了。所以同一個 Team 中的美術同學一定要和開發人員使用相同版本。
這里有一個更隱蔽的情況:大家都使用同一個 Unity 版本,但是不同的機器依然會出現某些人光照圖錯亂的問題。表現正常的機器是由于使用低版本的 Unity 烘焙完光照圖或者更新了別人烘焙完的光照圖后,然后直接用高版本的 Unity 打開這樣是不存在問題的;如果同一個項目刪掉 Library 后,再用高版本的 Unity 重新打開這時候就不對了。究其原因是因為不刪除 Library 升級項目每個模型不會被重新導入,頂點數維持在老版本導入的結果,一旦刪除 Unity 就會重新按照新版本來導入并生成頂點數,當然其實你在新版本中修改模型的設置,也會導致按照新版本來重新導入模型而發生光照圖錯亂。
以上就是所有原因,并可以輕松復現,結論就是:1.Team 中所有人必須要保證使用同版本的 Unity 開發;2.升級過程中需要刪除本地的 Library 然后再用新版本 Unity 打開。
轉載于:https://www.cnblogs.com/yaukey/p/unity_upgrade_lightmap_uv_wrong.html
總結
以上是生活随笔為你收集整理的关于 Unity 版本升级后可能会引起偶发光照图错乱的问题的全部內容,希望文章能夠幫你解決所遇到的問題。