之前寫過乙個關於2dmmo優化的分享,有些人問到其中的壓縮紋理要怎麼做。其實實施起來很簡單,很多看過cocos2dx
的人都知道怎麼做,這篇分享主要針對對這塊不是太了解的新同學。
我假定對這篇分享有興趣的同學都知道壓縮紋理
是什麼,有什麼好處和壞處。如果不大了解,可以先看一下pvr, etc
相關的知識。
在手遊中使用壓縮紋理是很常見的需求,通常:
生成壓縮紋理當然是使用現成的工具了:
pvrtextoolcli -i $(infile) -o $(outfile) -square + -pot + -q pvrtcbest -f pvrtc1_4,ubn,lrgb
其中$(infile)
和$(outfile)
分別是原名和壓縮後的名,如果沒有透明,pvrtc1_4
換成pvrtc1_4_rgb
。
,這個工具可以生成etc1和帶透明通道的etc1
# 原始格式
etcpack $
$ -c etc1
# 帶透明通道
etcpack $
$ -c etc1 -aa
帶透明通道的etc1其實就是將和遮罩合成一張圖,最終的高度是原始的2倍。而要正確顯示,則需要用shader
把遮罩部分作為alpha值加到原圖上。shader如下所示:
attribute vec4 a_position;
attribute vec2 a_texcoord;
attribute vec4 a_color;
varying vec4 v_fragmentcolor;
varying vec2 v_texcoord;
varying vec2 v_alphacoord;
void
main
()precision lowp float;
varying vec4 v_fragmentcolor;
varying vec2 v_texcoord;
varying vec2 v_alphacoord;
void
main
()
現在知道如何生成和使用壓縮紋理了,要怎麼整合進creator呢?
這樣打出來的包,在手機中是可以正常顯示的,原因是cocos-2dx
並不是以檔案字尾來判斷型別的,它是根據檔案內容的頭幾個位元組來判斷的。
而cocos-2dx
其實還支援gzip
壓縮格式的,也就是我們將轉換成pvr
或etc1
後,還可以再壓縮成gzip
,最終還是可以正常解析出來。但由於檔案大小小了很多,載入速度會變快。
要完成這樣的構建流程,你可能需要用乙個指令碼來實現自動化,我比較推薦python
,它的庫實在太強大和方便了。
另外,並不是所有的都適合用壓縮紋理,比如ui壓縮後會有明顯的鋸齒,像場景, 特效這類就比較適合。總之,在使用壓縮紋理之前,你可能需要對型別進行一些規範化。
關於creator中遮擋層的使用方法
在實際動畫效果中我們經常會遇到一些執行動作在某個特定區域的動畫效果 在creator中的實際使用方法如下 1.建立乙個空節點 2.新增乙個mask渲染元件 3.在 中獲取到介面中的mask var node15 new cc.node node15.addcomponent cc.sprite va...
關於pvr和plist的聯合使用
由於最近一段時間,那個 保衛蘿蔔 挺火的,所以就看看了他的資源,以猜想他的實現方式,感覺這個應用還是有不錯的研究意義的。ccsize s ccdirector shareddirector getwinsize ccspriteframecache cache ccspriteframecache ...
1 如何使用Spring的呢
1.運用spring來替代工廠類 2.實現控制反轉 依賴注入 1.宣告的物件的同時,需要提供物件的set方法 2.例項化物件並不是由建立物件的類本身來負責 3.而是由呼叫該物件的類來負責例項化該物件 manager實現類 public class geneircmanagerimp implemen...