本文連接配接:https://blog.csdn.net/t163361/article/details/79919004
上一篇部落格寫的是之前在新項目遇到線性空間對UGUI的影響問題。
當時以為已經解決了。不過最近一個用老項目更新到2017的一個項目上。
發現NGUI也出問題了。才發現其實UGUI也會有差異,隻是比NGUI要好一些。
解決方案,查到的最好的一篇提綱類的文章如下連結
https://answer.uwa4d.com/question/59c1e5c66c8b329c76a5f66e
我們項目也實驗的一下幾種方案
1:使用後處理的方式
很繁瑣,每加一個錄影機,就需要單獨處理一次後處理,而且最終的效果,依然和效果圖有差别。
2:使用shader的方式
也是隻能改善而且,并不能完全解決
3:修改alpha
修改UIDrawCall中的一行語句
我是用的最近的NGUI版本3.11.4
裡面的UpdateGeometry裡面有隊線性空間的修正,但是效果依然不對,不過修改
c.a = Mathf.GammaToLinearSpace(c.a)*1.1f;
1.1f是我加的,會讓效果稍微好一些,也是不能完全解決。
目前就試過這麼幾種方案。
經過這幾天查資料,以及自己試驗,對于沒有半透的圖,Unity是可以做到顔色還原的,關鍵是有半透的UI,因為有混合的問題,導緻效果在兩種模式下無法統一。
官方講解線性空間模式的文章沒找到特别好的。
下面有一篇馮樂樂的文章,很好的闡述了Unity線性空間的渲染模式。
https://blog.csdn.net/candycat1992/article/details/46228771
按照這篇文章的了解,混合的時候,Unity會有一個gamma轉線性,混合完,線性再轉回gamma的過程,目前的了解,問題應該就出在這裡。同時文章提到Unity的轉換不會影響alpha,但是目前的問題很大可能是alpha混合導緻的。
希望後面Unity官方能給一個完善的解決方案~官方解決方案來了 原标題
解決方案
主要看最後的補充 2、PhotoShop中導出的圖檔應該如何設定