紋理地圖是立體圖形上繪製的數位化影像,可新增視覺詳細數據。 這些圖形會在點陣化期間對應到這些圖形,而且此程式可以耗用大量的系統總線和記憶體。 為了減少紋理所耗用的記憶體數量,Direct3D 支援紋理表面的壓縮。 某些 Direct3D 裝置原生支援壓縮紋理表面。 在這類裝置上,當您已建立壓縮表面並將數據載入其中時,介面就可以像任何其他紋理表面一樣在 Direct3D 中使用。 當紋理對應到 3D 物件時,Direct3D 會處理解壓縮。
儲存效率與紋理壓縮
所有紋理壓縮格式都是兩種功能。 雖然這並不表示紋理一定是正方形的,但它確實表示 x 和 y 都是兩者的力量。 例如,如果紋理原本是 512 到 128 個字節,則下一個 mipmapping 會是 256 by 64 等等,每個層級都會以 2 的乘冪來減少。 較低層級的紋理會篩選為16到2和8到1,因此會浪費位,因為壓縮區塊一律是4到4個紋素區塊。 區塊的未使用部分會填補。 雖然在最低水準上浪費了位,但整體收益仍然很大。 最壞的情況是,理論上,一個2K乘1紋理(2⁰力量)。 在這裡,每個區塊只會編碼一個像素數據列,而區塊的其餘部分則未使用。
在單一紋理中混合格式
請務必注意,任何單一紋理都必須指定其數據會儲存為每組 16 個材質的 64 或 128 位。 如果 64 位區塊-也就是 DXT1 格式 - 用於紋理,則有可能在同一個紋理內以每個區塊為基礎混合不透明和 1 位 Alpha 格式。 換句話說,會針對16個紋素的每個區塊執行不帶正負號整數大小color_0和color_1的比較。
使用 128 位區塊之後,必須針對整個紋理以明確(DXT2 和 DXT3 格式)或插補模式 (FORMAT DXT4 和 DXT5) 指定 Alpha 色板。 與色彩一樣,當選取插補模式(DXT4 和 DXT5 格式)時,就可以逐區塊使用八個插補 Alpha 或六個插補 Alpha 模式。 同樣地,alpha_0和alpha_1的大小比較是以區塊為基礎進行唯一的。
Direct3D 提供服務來壓縮用於文字 3D 模型的介面。 本節提供在壓縮紋理介面中建立和作數據的相關信息。
資訊包含在下列主題中。
相關主題