DXT纹理压缩

要渲染看起来真实的场景,最好是使用高分辨率而且颜色丰富的纹理,但这样的纹理可能会耗费大量的内存,例如,一张每像素16位颜色的256 x 256纹理将使用128KB的内存。如果在该纹理中使用多级渐进纹理,还需要额外的43KB内存。一个使用50张这种纹理的场景将需要8MB的内存,如果需要更强的真实性,可以使用每像素32位颜色的512 x 512纹理,但那就需要8倍的内存。

为了减少纹理消耗的系统带宽和内存空间,Direct3D支持纹理压缩和实时解压,即DXT纹理压缩。压缩后的纹理被存储在Direct3D纹理指针中,当Direct3D渲染物体时,Direct3D引擎自动对纹理进行解压。应用DXT压缩纹理不仅可以节省内存空间,而且能有效地降低纹理传输带宽,提高图形系统的整体性能。
随着DirectX对纹理压缩格式的推广,目前大部分显卡都支持DXT压缩纹理,而且DXT压缩纹理在图形质量和运行速度之间取得了很好的平衡。


DXT
是一种DirectDraw表面,它以压缩形式存储图形数据,该表面可以节省大量的系统带宽和内存。即使不直接使用DXT表面渲染,也可以通过DXT格式创建纹理的方法节省磁盘空间。Direct3D提供了D3DFMT_DXT1 ~ D3DFMT_DXT55种压缩纹理格式。其中,D3DFMT_DXT1支持15RGB1alpha图形格式,D3DFMT_DXT2D3DFMT_DXT3支持12RGB4alphaD3DFMT_DXT4D3DFMT_DXT5则采取了线性插值方式生成alpha

DXT1格式的压缩比例是4 : 14x416RGB纹理元素可压缩为64位,216RGB565值和162位索引),这样的压缩比并不很高,但足以有效地将3D加速卡用于存储纹理的容量提高4

猜你喜欢

转载自blog.csdn.net/icebergliu1234/article/details/80677387