Unity建立紋理及紋理濾波

2021-10-09 12:39:43 字數 750 閱讀 4131

unity3d中建立紋理使用的是unity中的texture2d的建構函式。

texture2d(int width, int height);

texture2d(int width, int height, textureformat format, bool mipmap);

texture2d(int width, int height, textureformat format, bool mipmap, bool linear);

前兩個引數設定了紋理的解析度,textureformat設定畫素的格式,mipmap設定是否生成多級別紋理,linear設定是否使用線性濾波的方式建立紋理。

線性濾波是紋理濾波的一種。當三維空間裡面的多邊形經過座標變換、投影、光柵化等過程,變成二維螢幕上的一組象素的時候,對每個畫素需要到相應紋理影象中進行取樣,這個過程就稱為紋理濾波。簡單來說,紋理濾波就是每個畫素從紋理影象中取樣的過程。

常用的紋理濾波方式有兩種:最近濾波(nearest filter)、線性濾波(linear filter)。

最近濾波,在紋理縮小或放大時,使用最近畫素點的顏色作為新點的顏色,效果最差,效能最好。

線性濾波,在紋理縮小或放大時,取原圖中相鄰畫素並使用線性插值獲得中間值來填充新點的顏色,效果比最近濾波好。

當啟用mipmap生成多級縮放紋理時,還可以使用三線性濾波的方式。所謂三線性濾波是指在最相鄰的兩個mipmap層次上分別進行線性濾波,再用得到的兩個值進行線性插值得到最終的畫素值。

Unity 紋理壓縮

紋理顯示到螢幕上,需要cpu和gpu協作完成。cpu對資源進行計算解碼,然後將紋理資料傳輸給gpu。gpu通過cpu的資料,將資料渲染到緩衝區。紋理壓縮減少了資源在cpu中進行解壓縮的過程。紋理壓縮減小了包體大小,減少了資料量級,減輕了頻寬計算的壓力。紋理壓縮時記憶體的使用效率更高。dxt格式是nv...

unity紋理格式選擇

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

Unity紋理格式之Crunched及記憶體

根據unityblog的介紹,crunch壓縮能實現更高的壓縮率和更少的壓縮時間。測試如下 原圖 astc 12x12 etc2 crunched etc2 由此可見,crunch壓縮率確實非常高啊。限制 crunched etc要求紋理必須是2的冪次方。crunched etc2要求紋理必須是4的...