最近,項目組要替換新的一輪UI相關,但是由于是線性空間的問題,UI拖進來後打入圖集後的顯示效果差強人意,如下圖所示
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPn5EMVR0T1UkaNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLyMzMzUzNxATM1ATMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
一開始不知道如何去更改sprite所使用的shader,傻逼逼的全部使用texture挂載整個UI界面,draw call在燃燒。。。
最後查閱了下資料,發現使用NGUI打出來的圖集檔案所對應的材質球可以去更改用于圖集渲染的shader
公司現在是自己寫了一套ETC格式的圖集打包方式(為了壓縮),但是通過對比,ETC打出來的圖集和直接使用圖集工具打出來的Sprite,更換一樣的shader後,顯示效果竟然是ETC格式的更加接近原圖,看了下源碼好像是ETC打圖集時候會另外拷貝一份Alpha 通道出來(還看不懂=.=,我尋思應該是這樣),是以目前暫時按照這樣處理吧,好過一個界面幾十個Texture