wp8下壓縮紋理的使用(dds)

2021-08-27 15:10:51 字數 908 閱讀 1693

個人認為,既然手機裝置支援wp8支援dx11,那麼dds的壓縮紋理必然是被支援的。不過依然不保證完全如此。希望看此文章的同仁留意。

微軟wp系統在記憶體管理上有乙個不同於ios和android的地方,那就是給程式預先分配的記憶體是有限的。正常情況是150mb,通過設定一些標誌可以允許180mb或者300mb。程式分配的記憶體超過限額就會分配失敗丟擲異常,即便這個時候手機剩餘記憶體還剩七八百兆。所以買低端手機的劣勢就是很多遊戲不是沒有,而是你看不到,因為那些遊戲因為安全起見,申請了300mb的記憶體,那麼只有512mb記憶體的手機可能就看不到這個應用了,即便它可以在這個手機上跑起來。

反過來,對遊戲開發而言,記憶體控制就變得更加重要了。 不過這裡還是要吐槽一下,wp8使用native c++進行開發的話,沒有任何途徑可以獲取記憶體使用情況進行分析。一沒有工具,二沒有系統api。 只能靠程式設計師給力些了。

比如我的卡牌遊戲,一開始分配記憶體可能達到200mb,那麼就經常性的崩潰。後面使用dds的壓縮紋理後,就沒有出現崩潰情況了。理論上說dds跟pvrtc4一樣都是4個位元組表示乙個畫素,所以使用dds的遊戲在wp8上面的執行記憶體情況應該跟使用pvrtc4在ios上面執行一樣。

首先說轉換工具,我找了半天終於找到個靠譜的工具。nvida texture tools,這個有工具有**。不過預設情況下程式不識別png jpg,後面我重新用源**編譯了乙份。

之所以要使用這個工具而不是市面上大多數轉換工具是因為dds的壓縮紋理格式分很多種,常見的有dxt1 dxt3 dxt5,常用的是dxt3,dxt1色彩不足,而dxt5不是所有裝置都支援,比如我的lumia920,使用dx api檢測時就不支援dxt5。

較新的cocos2d-x**裡面已經包含了s3tc壓縮紋理的支援。dds的壓縮紋理格式就是s3tc。讀取紋理可以直接使用,而不需要特別寫初始化**了(比如 createddstexturefromfile就沒有必要了)

wp8下壓縮紋理的使用(dds)

個人認為,既然手機裝置支援wp8支援dx11,那麼dds的壓縮紋理必然是被支援的。不過依然不保證完全如此。希望看此文章的同仁留意。微軟wp系統在記憶體管理上有乙個不同於ios和android的地方,那就是給程式預先分配的記憶體是有限的。正常情況是150mb,通過設定一些標誌可以允許180mb或者30...

wp8使用mvvm模式簡單例子

mvvm是silverlight wpf下的mvc昇華 通過乙個簡單的加法計算器例子來說明mvvm是什麼 在設計介面完成設計之後,顯示簡單的布局,如下圖 然後來比較,傳統的直接方式,mvc和mvvm三種的區別 1.最直接的方式無非就是雙擊button按鈕,在onclick事件中獲得兩個textbox...

WP8 在Unity中使用OpenXLive

unity 4.2正式版開始新增了對windows 8 windows phone 8等其他平台的支援,而且開發者可以免費使用unity引擎來開發遊戲了。而作為windows phone和windows 8平台上最大的遊戲社交網路,openxlive也可以無縫支援unity for wp8和wind...