版权归原作者所有,如有侵权,请联系我们

[科普中国]-3D纹理压缩

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

3D纹理压缩也称为DXN,是用于由ATI发明并首次实现的法线贴图的有损数据压缩算法。它建立在DXT5算法之上,是一个开放标准。3Dc现在由ATI和Nvidia实施。

介绍3D纹理压缩(3D Texture Compression) :使用大的纹理,画面质量大大改善。而显卡硬件条件下,诸如2048x2048纹理只有通过压缩才可能在游戏中被顺利使用,FXT1就提供了一种纹理压缩技术。

目标应用目标应用程序,法线贴图,是凹凸贴图的扩展,通过从类似于纹理贴图的直线网格读取曲面法线来模拟几何表面上的光照 - 为简单模型提供了复杂性增加的印象。然而,这个额外的通道会增加图形系统内存带宽的负担。在消费者3D硬件上实现的预先存在的有损压缩算法缺乏在没有过多可见伪像的情况下再现法线贴图所需的精度,证明了3Dc的发展是合理的。

算法表面法线是单位长度的三维矢量。由于长度约束,只需要存储任何法线的两个元素。因此输入是二维值的数组。

压缩以4×4块进行。在每个块中,每个值的两个分量被分别压缩。对于每个块,两个组件中的每一个都具有8个值的调色板可供选择。调色板由表示线的起点和终点的两个值生成,其他六个值生成为起始值和结束值的线性组合1。

通过找到要压缩的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位整数组件组成。

本词条内容贡献者为:

王慧维 - 副研究员 - 西南大学