关于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格式,因为比其他内容更麻烦)
- 关于DNF的多媒体包NPK文件的那些事儿(4)- NPK文件操作流程
- 关于DNF的多媒体包NPK文件的那些事儿(2)
- 关于DNF的多媒体包NPK文件的那些事儿(1)
- 关于DNF的多媒体包NPK文件的那些事儿(3)
- 关于DNF的多媒体包NPK文件的那些事儿(6)
- 关于DNF的多媒体包NPK文件的那些事儿(7)
- 关于DNF的多媒体包NPK文件的那些事儿(8)
- 关于DNF的多媒体包NPK文件的那些事儿(9)
- 关于DNF的多媒体包NPK文件的那些事儿(5)- IMG文件里的指向型索引项(指向帧)的深度与有向环检测
- 关于BOX2D的那些事儿(2)
- 关于面试的那些事儿(1)
- 关于C++的那些事儿(二)
- 关于C++的那些事儿(三)
- 关于SVN的那些事儿
- 关于乱码的那些事儿
- 关于密码的那些事儿
- 关于编程的那些事儿
- 关于字符串的那些事儿
- ChainMapper/ChainReducer实现原理及案例分析
- 双系统:Windows7下安装Ubuntu16.04
- pycharm 新手使用
- X86、X64和X86_64区别
- phonegap插件实现对android原生的调用
- 关于DNF的多媒体包NPK文件的那些事儿(2)
- python猜数字游戏
- FTPrep, 47 Permutation II
- POJ 1952-最长下降子序列+去重
- 最流行的android组件大全
- 格式转换语法
- 【c++】访问控制、覆盖方法和重载方法
- 关于数据库一些使用操作方法
- 关于lib/asm-offsets.c:1:0: error: bad value (armv5) for -march= switch问题解决办法