unity 中Texture大小與占用記憶體關係

2021-09-25 22:21:34 字數 1304 閱讀 5922

例子1:使用rgba 32bit真彩(truecolor),占用記憶體 = 4bytes*512*512 = 1mb;

例子2:使用rgb etc 4bit壓縮,占用記憶體 = 0.5bytes*512*512 = 128kb。​

即8位(bit)的圖 ​占用記憶體 = 1bytes * 大小

那麼​ 乙個1024*1024大小 32位的圖占用記憶體就是 1024*1024*4bytes = 4mb;

例子3:空專案—-空間佔用量42.3mb—-ipa大小10mb

例子4:10張1200*520無壓縮texure 單張圖佔用量2.8mb—-空間佔用量70.2mb—-ipa大小22.9mb

例子5:10張1200*520壓縮成1024*1024pvrtc4 單張圖佔用量0.5mb—-空間佔用量47.3mb—-ipa大小13.2mb

例子6: 10張1024*1024無壓縮texture 單張圖佔用量4mb—-空間佔用量82.3mb—-ipa大小14.6mb

例子7:10張1024*1024壓縮為pvrtc4格式 單張圖佔用量0.5mb—-空間佔用量47.3mb—-ipa大小11.6mb

宗上資料總結:

一、2的n次方大小的會得到引擎更大的支援,包括壓縮比率,記憶體消耗,打包壓縮大小,而且支援的力度非常大。

二、減小的占用大小和記憶體方式有:大小變化(maxsize),色彩位數變化(16位,32位),壓縮(pvrc)。

三、u3d對於的格式是自己生成的,而並不是你給他什麼格式,他就用什麼格式,一張1024*1024圖在無壓縮格式下,它會被u3d以無壓縮檔案形式存放,也就是說u3d裡的texture preview裡顯示的占用大小**mb不只是記憶體占用大小,還是空間占用大小

​u3d的內部機制為自動生成型別來替換我們給的,在的壓縮方式上需要進行謹慎的選擇。

壓縮格式在u3d的component reference

裡有介紹我就不再詳細介紹,只介紹幾個重點的:

rgba32格式為無壓縮最保真格式,但也是最浪費記憶體和空間的格式。automatic turecolor和它乙個意思。

rgba16格式為無壓縮16位格式,比32位節省一半的空間和記憶體。automatic 16bits和它乙個意思。

rgba compressed pvrtc 4bits格式為pvrtc格式,它相當於把更改了壓縮方式新生成了乙個來替換原來的我們給的格式(比如我們給的是png格式)。

裡並不一定有效,因為android的機型多,gpu的渲染方式也不一樣,有的是nvidia,有的是powervr,最最好的在安卓機子上啟用rgba16方式,因為這個是適應所有機型的,並且比32位佔用量少一半,但也需要因專案而異,只是推薦使用的格式,可以多用。

Unity 二維紋理 Texture 2D 1

二維紋理 texture 2d 紋理使你的網格 粒子 和介面更生動!它們是你覆蓋或環繞著物件的或影片檔案。由於它們是如此的重要,它們有很多的屬性。如果你是第一次閱讀這一點,跳到細節,當你需要乙個參考時返回到實際設定。用於物件的著色器可以指定所需要的紋理,但基本原則是可以放置專案中任何影象檔案。如果它...

Unity 二維紋理 Texture 2D 4

supported formats 支援的格式 unity支援下面的檔案格式 psd,tiff,jpg,tga,png,gif,bmp,iff,pict。應注意,unity可以匯入多層psd和tiff檔案,在匯入時,層將自動被塌陷,因此你不必浪費時間,直接使用原始檔型別。這點很重要,允許只有乙個紋理...

HLSL中Texture的操作函式

最常用的乙個函式是sample sample sampler state s,float location int offset sampler state 可以從外部的buffer傳過來,也可以是hlsl內定義,一般情況下都選擇從外部設定進行共享。location應該穿入的是uv資料,不同的型別有...