當前位置:首頁 >教程首頁 > Unreal Engine >Unreal引擎中貼圖壓縮格式分析

Unreal引擎中貼圖壓縮格式分析

發布時間:2020-12-17 11:44:58

Hello,大家好。今天和大家分享一下Unreal引擎中貼圖壓縮格式分析,我是木偶心沒。

一般我們從painter,designer或者ps裏麵導出貼圖的時候都會選擇一種文件格式,而文件格式隻是圖像為了存儲信息而使用的對信息的特殊編碼方式。導出的時候都先存儲在磁盤或者內存中。而這些文件格式要放在遊戲中使用都要進行紋理壓縮。

所以,引擎裏麵的紋理壓縮格式和導出貼圖的格式是有關係的

下麵具體分析一下每一類貼圖的在引擎裏麵的壓縮格式

1、BaseColor

一般來說,BaseColor的導出格式都是TGA,而在引擎裏麵壓縮格式一般設置為默認的Default。 而default有兩種壓縮方式,一種是DXT1對應的BC1,另外一種是DXT5對應的BC3,兩者的差別是BC1格式沒有Alpha通道,而BC3有Alpha通道。(實際上BC1也是有alpha通道,隻是通道所占位數隻有1,所以在unreal裏麵就直接給忽略掉了)也就是說,如果一張導進來的BaseColor貼圖選擇了Default格式,那麼如果自帶alpha通道的話,默認在壓縮的時候就會使用BC3,而沒有帶alpha通道的話,就自動使用BC1。

1.webp.jpg

BC1中的RGB所占比例是5:6:5,所以G通道會更豐富一些

而BC3中的RGBA所占比例是5:6:5:8,所以完全可以按照所占比例來分配basecolor的alpha通道所存放的數據

2、Normal

Normal在導出的時候一般也是TGA格式,然後在引擎裏麵選擇NormalMap對應的BC5。但是同時也可以根據項目要求導出位數更高的貼圖格式,比如16位的png,以及32位的exr文件(exr隻能從painter裏麵導出來)

2.webp.jpg

而normal map是在高模上麵烘焙出來的細節法線,所以在製作一些高質量的遊戲的時候,我們需要更多細節,而BC5中RGB所占用比例是5:6:5,對於法線數據的存儲來說是不夠的,所以,我們可以考慮用BC7(R8G8B8A8),這種紋理壓縮方式能保證每個通道的比例都為8。能讓貼圖得到更小的壓縮以及更多的細節。

上麵考慮了遊戲畫麵的質量,同時也要考慮優化。Normal map是利用紋理中記錄的值來幹擾光照方程中的法線參數,以達到改變光照的結果,模擬表麵細微紋理的作用。所以,normal map中保存的就是一個法向量(x,y,z),並且對於每一個點的法向量來說,xyz之間都存在x2+Y2+Z2=1,所以實際上可以根據其中兩個通道來求得第三個通道。因為很多的normal貼圖的第三個通道都是白色,所以如果對效果要求不高的可以直接給z取1的值,但是這裏我們為了更好地效果在unreal的shader裏麵使用RG通道算出B通道的值;

如下圖,我們先提取rg通道,然後用節點DeriveNormalZ_Function計算出Z軸

3.webp.jpg

得到的結果如下圖,

4.png

而如果我們用原本的RGB直接輸入進去,會得到下麵的截圖

5.webp.jpg

對比可以發現,強度有一些差異,但是可以加一個控製法線強度的參數並調節匹配。而整體的陰影凹凸細節都是一樣的。

3、Mask

引擎默認的mask格式和default是一樣的,不帶alpha的DXT1和帶有alpha的DXT5。唯一的區別就是mask沒有勾選srgb,因為不需要進行一個線性轉化。而如果對mask有更多精度要求也可以選擇BC7。

來源:Thepoly公眾號

华体会hth体育网 賞析
  • 2101期學員李思庭作品

    2101期學員李思庭作品

  • 2104期學員林雪茹作品

    2104期學員林雪茹作品

  • 2107期學員趙淩作品

    2107期學員趙淩作品

  • 2107期學員趙燃作品

    2107期學員趙燃作品

  • 2106期學員徐正浩作品

    2106期學員徐正浩作品

  • 2106期學員弓莉作品

    2106期學員弓莉作品

  • 2105期學員白羽新作品

    2105期學員白羽新作品

  • 2107期學員王佳蕊作品

    2107期學員王佳蕊作品

專業問題谘詢

你擔心的問題,火星幫你解答

微信掃碼入群領福利

掃碼領福利最新AI資訊

點擊谘詢
添加老師微信,馬上領取免費課程資源

1. 打開微信掃一掃,掃描左側二維碼

2. 添加老師微信,馬上領取免費課程資源

×

同學您好!

您已成功報名0元試學活動,老師會在第一時間與您取得聯係,請保持電話暢通!
確定