关于DNF的多媒体包NPK文件的那些事儿(2)

来源:互联网 发布:淘宝页面设计尺寸 编辑:程序博客网 时间:2024/05/23 13:03

IMG文件结构

IMG文件是集成DNF内某些特性贴图的文件,里面包含了这些图片的压缩数据以及这些图片的长、宽、大小、颜色等特征数据。IMG文件版本有多种,用于在游戏中显示不同作用的贴图。

版本

分布

V1

早期版本使用的IMG版本,现在客户端内V1资源极少,韩服客户端里已经不存在,国服客户端里仅有sprite_interface_iga_iga08.npk内的两个IMG使用V1。

V2

大部分贴图使用的IMG版本,UI、图标、地图、标记、称号等绝大部分贴图均使用V2,V2的特点是对图像数据不进行任何处理即进行压缩,因此V2文件占空间都往往比较大,适合复杂颜色和特征的常规图片的存储。

V3

几乎没见过的IMG版本,也许是调试时出现的过渡版本吧。

V4

2016年后的装扮使用的IMG版本,根据装扮的颜色整合成颜色表,图像数据使用颜色表索引的格式进行压缩,因此V4文件在颜色较为单一或相近的条件下占空间比V2节省接近1/4,同时在进行颜色处理(例如染色)时,V4的效率要远远高于V2。

V5

2016年后绝大部分技能特效使用的IMG版本,与其他版本不同,V5文件使用DDS格式存储图像并进行压缩。DDS格式的图像能减少纹理内存消耗,使得更为复杂、华丽的技能特效在播放时使客户端更加流畅。

V6

2017年大部分装扮使用的IMG版本,尚未登录国服。本身作为V4的上位算法,使用颜色矩阵代替颜色表进行颜色存储,但具体用途未知(因为不会影响存储空间,估计是用来实现与时装有关的其他与颜色相关的功能)。

 

任何一个IMG文件都至少包含一个文件头、图像帧索引表和若干个经ZLIB压缩后的图像数据,而随着版本不同,IMG文件头之后也会出现其他辅助数据。

文件头

包含IMG文件标识字符串(Neople Img File)、图像帧索引表大小、版本号、索引表数目四个数据。

辅助数据

V4和V6使用的颜色表内包含的颜色数和具体数据。

图像帧索引表

分两种图像帧:一种是实际图像帧、另一种是索引帧。

图像帧包含图像的各种特征数据,对于V5之外的版本包括:

颜色格式、压缩格式、宽度、高度、大小、x坐标、y坐标、帧域宽、帧域高;对于V5则是DDS图像格式的数据。

索引帧仅包含一个索引帧标识(0x11)和该帧的指向帧。

图像数据

即图像数据经过ZLIB进行压缩后的数据,一般由0x78,0x9C开头。

      

每个版本的IMG的具体内容会在后文介绍。

(PS.截止笔者发文时,笔者还没有弄懂V5格式,因为比其他内容更麻烦)

原创粉丝点击