天天看點

[NGUI] 線性空間下,替換NGUI的Sprite的渲染shader

最近,項目組要替換新的一輪UI相關,但是由于是線性空間的問題,UI拖進來後打入圖集後的顯示效果差強人意,如下圖所示

[NGUI] 線性空間下,替換NGUI的Sprite的渲染shader

一開始不知道如何去更改sprite所使用的shader,傻逼逼的全部使用texture挂載整個UI界面,draw call在燃燒。。。

最後查閱了下資料,發現使用NGUI打出來的圖集檔案所對應的材質球可以去更改用于圖集渲染的shader

[NGUI] 線性空間下,替換NGUI的Sprite的渲染shader

公司現在是自己寫了一套ETC格式的圖集打包方式(為了壓縮),但是通過對比,ETC打出來的圖集和直接使用圖集工具打出來的Sprite,更換一樣的shader後,顯示效果竟然是ETC格式的更加接近原圖,看了下源碼好像是ETC打圖集時候會另外拷貝一份Alpha 通道出來(還看不懂=.=,我尋思應該是這樣),是以目前暫時按照這樣處理吧,好過一個界面幾十個Texture

[NGUI] 線性空間下,替換NGUI的Sprite的渲染shader