Unity 紋理壓縮

2021-10-08 19:22:48 字數 954 閱讀 2082

紋理顯示到螢幕上,需要cpu和gpu協作完成。cpu對資源進行計算解碼,然後將紋理資料傳輸給gpu。gpu通過cpu的資料,將資料渲染到緩衝區。

紋理壓縮減少了資源在cpu中進行解壓縮的過程。

紋理壓縮減小了包體大小,減少了資料量級,減輕了頻寬計算的壓力。

紋理壓縮時記憶體的使用效率更高。

dxt格式是nvidia tegra提供的,分為dxt1-dxt5這五個級別,terga支援的實際上是dxt1、dxt3和dxt5。

etc是安卓原生支援的,opnegl2.0都支援。etc2只有opengl3.0支援.

pvrtc是imagination powervr提供的,特別的tbdr架構,不渲染被遮擋的部分,有效節省計算資源和頻寬。

atc是qualcomm snapdragon提供的,它支援rgb紋理壓縮但不包含alpha通道。

rgb 16 bit/rgb 24 bit/alpha 8/rgba 16 bit/rgba 32 bit - 適用所有平台,非壓縮格式,對記憶體消耗和渲染消耗非常不友好。

備註:一旦相應的貼圖格式不相容的時候,u3d會自動將其轉換成rgb(a)格式。

不同格式的詳細資訊科參照官方文件:

除非您針對特定的硬體(例如tegra),否則etc2壓縮是android上最有效的選項,可以在質量和檔案大小(以及相關的記憶體大小要求)之間實現最佳平衡。如果需要alpha通道,則可以在外部儲存它,並且仍然可以從較小的texture檔案大小中受益。

您可以將etc1用於具有alpha通道的紋理,但前提是該構建適用於android並且紋理放置在地圖集上(通過指定包裝標籤)。要啟用此功能,請選中「使用etc1壓縮」核取方塊。unity將生成的圖集分成兩個紋理,每個紋理都沒有alpha通道,然後將它們組合到渲染管道的最後部分。

要將alpha通道儲存在texture中,請使用rgba16位壓縮,所有硬體**商均支援此壓縮。

Unity 紋理壓縮基本知識點

1 unity支援的壓縮格式的分類,這裡主要指android平台和ios平台 dxt格式 nvidia tegra 圖睿 提供 etc 安卓原生支援的,opnegl2.0都支援,etc2只有opengl3.0支援 pvrtc imagination powervr提供 atc qualcomm 高通...

Unity建立紋理及紋理濾波

unity3d中建立紋理使用的是unity中的texture2d的建構函式。texture2d int width,int height texture2d int width,int height,textureformat format,bool mipmap texture2d int wid...

unity紋理格式選擇

android平台 不帶透明通道優先使用etc1,而帶透明通道的優先使用etc2.如果顯示質量無法達到要求還可以使用rgba16,最後才使用rgba32.總體來說正確使用優先順序是etc1 etc2 rgba16 rgba32.另外針對android平台unity還實現了一套crunched壓縮方式...