2014年12月31日 星期三

[PNG] PNG壓縮工具 - 更佳的壓縮率 - PNG Gauntlet

對遊戲研發來說,美術素材絕對是整個遊戲容量的最大問題來源,尤其現在的手遊市場、中國低階市場對遊戲容量(包)的要求更是嚴苛。那麼美術人員能夠做什麼樣的優化,讓美術資源佔用更少容量呢?從量最大的Texture來說,大部分的美術人員用Photoshop等工具存出圖檔後就不會再做任何處理,但其實Photoshop在檔案輸出的部份優化的並不是很好,我們可以透過其他的工具讓輸出的圖片容量更小,且達到幾乎完全相同的品質。在此就介紹一個可以有效壓縮PNG的軟體「PNG Gauntlet」,這個軟體是我在參與2013 GDC Taipei時聽到Qubit Games的創始人兼美術總監路致遠先生提到才知道的,因為過往我也是個不太care這個問題的美術…

PNG Gauntlet

http://pnggauntlet.com/

  • 免費軟體
  • 運行需要NET Framework 4
  • 支援輸入:
    • PNG
      不支援16-bit color depths
    • GIF
      只會輸出第一個影格
    • PCX
      支援8和24bit
    • BMP, JPEG, TGA
      完全支援
  • 本文使用的是3.1.2版本
PNG Gauntlet整合了PNGOUTOptiPNG、DeflOpt來進行PNG壓縮,能夠達到相當不錯的壓縮率,而且其官網有說明壓縮後的圖像品質完全不會受到影響,且支援輸入的圖片格式有PNG, BMP, TGA, JPEG, GIF, PCX。但由於PNG Gauntlet做了相當重的壓縮運算,壓縮作業是需要消耗一段時間的,但他也支援大量轉圖功能,因此只要放著讓他在背景進行壓縮即可,不是什麼問題。以下對此軟體的設定做一些說明…嗯…直接先做個總結,其實不太需要修改設定,因為預設的選項會幫你找到非常有效的壓縮方式,除非有特別的狀況或需求再去修改設定即可,可以從Tools\Options開啟設定面板…

Options

開啟設定面板
設定面板視窗 - PNGOUT

PNGOUT \ Standard Options

主要需要設定的是PNGOUT面板的Standard Options區塊
  • Bit Depth 色彩深度
    一般用Minimize選項即可,會自動選擇最適合的Bit Depth。
    但有固定需求時可以直接去設定自己想要的選項,以防轉出的不是自己想要的格式。
  • Color Type 顏色模式
    一般用Default(Best)選項即可,會自動選擇合適的模式。
  • Filter Type 過濾器類型
    用Default(Best)即可,會自動選擇合適的模式。
  • Preserve Gamma Information
    保持Gamma資訊,在PNGOUT的Doc中沒說明到這一部份…

PNGOUT \ Advanced Options

下面的Advanced Options部份通常是不需要進行設定,可以略過此部份…
  • Block Split
    維持預設的Automatic即可。
    這是PNG壓縮演算法會使用到的參數,通常Automatic能替你找出最適合的數值。
  • Keep palette order intact
    完整保留palette的順序
    這邊我亂猜可以用於做tint的運用,透過固定的palette順序可以直接抽換palette的顏色達到換色效果?!
  • Randomize Initial Huffman Tables
    壓縮時會使用隨機產生的Huffman Tables,在同樣的格式設定下每次壓縮會造成圖檔容量的差異,但由於差異不大,可以完全忽略。

PNGOUT的規則與限制

而PNGOUT的Doc有提到一些規則與限制,最重要的是第二項
  • 會以無損的前提下進行壓縮。
  • 他不會去破壞現有的色彩資訊,因此你得事先用其他軟體把圖片轉成你想要的模式
    例如:你輸入的圖片為彩色的,就不能輸出成Grayscale,因為他不會改變現有的色彩資訊,你必須先用Photoshop把圖片轉成灰階模式
  • 無法移除Alpha資訊
  • Interlaced的PNG會被輸出為Non-interlaced
  • 預設設定下無法將檔案壓縮到更小的容量時,就會中止壓縮作業(可透過General面板的Always convert files to PNG even if it would make them larger選項關閉)
  • 檔案名稱變成紅字時代表壓縮失敗,可能是因為無法轉換或者是因為壓縮後的檔案變的更大了
  • 當PNGOUT將圖片壓縮為8 bit的paletted格式時,部份的圖像軟體會無法正確讀取Alpha

OptiPNG

再來是OptiPNG面板,由於PNGOUT的壓縮效率已經很高,這部份能獲得的效果其實不大,若想節省壓縮時間可以關閉。

DelfOpt

而DelfOpt面板由於關軟體的原始網站已經變成滑水網站,所以就略過吧…

參考


Super PNG

另外提一個Photoshop的插件「Super PNG」,使Photoshop在儲存PNG檔案時可以設定更多的選項,例如Alpha是要透過色版作成還是RGB的透空部份、壓縮率設定…但其壓縮率如何我沒有注意過…(想必是肯定比不上PNG Gauntlet)
  • Phtoshop Plug-in安裝方式:
    將.8bi檔案放入Potoshop Plug-in資料夾內
    ex. C:\Program Files\Adobe\Adobe Photoshop CC 2014\Plug-ins

TinyPNG

後來有發現這個也相當好用的PNG壓縮軟體,可壓縮成帶Alpha的8 bit。
http://januswow.blogspot.tw/2015/03/png-png-tinypng.html

沒有留言:

張貼留言