关于DNF的多媒体包NPK文件的那些事儿(8) - DNF里的DDS图像

DDS是DirectDraw Surface的缩写,实际上,它是DirectX纹理压缩(DirectX Texture Compression,简称DXTC)的产物。DDS文件的纹理压缩有很多方式,除了常见的DXTn外,也支持Mipmap, Cubemap, 和volume maps等更多的格式,但后者不会在这里介绍。

DDS文件数据包含一个固定128字节的DDS文件头(不包含DXT10,DXT10还需要20字节的扩展头,这里不讨论)和图像数据。DDS文件头的格式如下:

dwMagic

4字节

1双字

DDS文件标识,固定为“DDS ”(有个空格),

即0x20534444。

dwSize

4字节

1双字

DDS文件头大小(不包括标识的4字节),因此固定为124,即0x7C。

dwFlags

4字节

1双字

DDS文件标志位。有8个位有效(标☆的表示DNF中DDS文件所需要的标志位):

0x00000001:☆每个DDS文件都必须有。

0x00000002:☆每个DDS文件都必须有。

0x00000004:☆每个DDS文件都必须有。

0x00000008:若纹理数据是非压缩,该位为1。

0x00001000:☆每个DDS文件都必须有。

0x00020000:若为Mipmap,该位为1。

0x00080000:☆若纹理数据是压缩的,该位为1。

0x00800000:若纹理具有深度数据(适用于volume maps),该位为1。

DNF里所有DDS文件的标志位均为0x0081007。

dwHeight

4字节

1双字

图像高度(以像素为单位,一般是4的倍数)

dwWidth

4字节

1双字

图像宽度(以像素为单位,一般是4的倍数)

dwPitchOrLinearSize

4字节

1双字

对非压缩数据表示一行像素所需要的字节数;

对压缩数据则表示整个图像数据的字节数。

DNF里为后者。

dwDepth

4字节

1双字

纹理具有深度数据时,表示纹理的深度。DNF里无用,固定为0。

dwMipMapCount

4字节

1双字

Mipmap层数,适用于Mipm

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值