自從ETQW的beta發(fā)布以來,一直對MegaTexture比較感興趣,也花了點(diǎn)時間來研究這個比較新的技術(shù),嚴(yán)格來講,ETQW中使用的跟ClipTexture非常的類似,真正的MegaTexture應(yīng)該是在ID tech5里面的全場景的動態(tài)貼圖處理,不過ClipTexture在某些特定的領(lǐng)域還是很有用處.
在此共享一個小工具MegaTexDump,用來從Mega文件中,提取貼圖,可以看看整個MegaTexture的全貌.
以下的貼圖是在crack時分析的片斷.
struct Chunk
{
int pos;
int len;
}
MegaFile{
struct Header
{
int ID;//"MEGA"
int versionNum;// 9
int baseSize;// 0x800h = 2048, 最小的紋理尺寸.
int unknown;
int unknown[10];
Chunk index[87296];
} Header;
Data:
....
....
...
}
其中87296 = 256 + 1024 + 4096 + 16384 + 65536;
(level4) (level3) (level2) (level1) (level0)
index為每一級紋理的數(shù)據(jù)索引,紋理分塊,每塊分別進(jìn)行壓縮,具體的壓縮算法沒有去深入分析,應(yīng)該是DCT變換.