介紹
3D紋理壓縮(3D Texture Compression) :使用大的紋理,畫面質量大大改善。而顯示卡硬體條件下,諸如2048x2048紋理只有通過壓縮才可能在遊戲中被順利使用,FXT1就提供了一種紋理壓縮技術。
目標套用
目標應用程式,法線貼圖,是凹凸貼圖的擴展,通過從類似於紋理貼圖的直線格線讀取曲面法線來模擬幾何表面上的光照 - 為簡單模型提供了複雜性增加的印象。然而,這個額外的通道會增加圖形系統記憶體頻寬的負擔。在消費者3D硬體上實現的預先存在的有損壓縮算法缺乏在沒有過多可見偽像的情況下再現法線貼圖所需的精度,證明了3Dc的發展是合理的。
算法
表面法線是單位長度的三維矢量。由於長度約束,只需要存儲任何法線的兩個元素。因此輸入是二維值的數組。
壓縮以4×4塊進行。在每個塊中,每個值的兩個分量被分別壓縮。對於每個塊,兩個組件中的每一個都具有8個值的調色板可供選擇。調色板由表示線的起點和終點的兩個值生成,其他六個值生成為起始值和結束值的線性組合。
通過找到要壓縮的16個像素的最低值和最高值並將每個像素存儲為8位數量來本地實現壓縮。然後,4×4塊內的各個元素以3位存儲,表示它們在從最低值到最高值的8步線性標度上的位置。將通過選擇與原始值具有最小距離的調色板條目來選擇每個像素的3位值(調色板索引)。
一旦兩個源組件都被考慮在內,總存儲量為每4x4塊128位。在具有類似8位精度的未壓縮方案中,源數據是相同區域的32個8位值,占用256位。因此,該算法產生2:1的壓縮比。
壓縮比有時被稱為“高達4:1”,因為輸入數據而不是8位通常使用16位精度。這產生的壓縮輸出實際上是輸入尺寸的1/4,但精度不同。
3Dc +
3Dc +(FourCC:ATI1)(也稱為BC4或塊壓縮4)可以壓縮紋理,即光照貼圖,陰影貼圖,HDR紋理和材質屬性。 3Dc +提供2:1壓縮比,單組件(DXT5 alpha)8位整數紋理和4:1壓縮比,法線貼圖和紋理由兩個8位整數組件組成。