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

2024-05-10 14:32
文章标签 多媒体 dnf 事儿 npk imgv5

本文主要是介绍关于DNF的多媒体包NPK文件的那些事儿(7) - IMGV5,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

IMGV5是IMG结构的第五个版本。在所有IMG版本中,IMGV5是最另类的,与其他版本不同,IMGV5采用DDS方案而非像素点阵方式存储数据。DDS是纹理压缩图像文件,广泛应用于模型设计,系统可以通过Direct3D直接读取这些文件,并且内存消耗比其他的图像文件小。IMGV5普遍被各种人物、怪物技能特效所采用,某些物品贴图也使用IMGV5存储。

IMGV5包含两个表,其中一个表包含了DDS图片的信息,称为DDS索引项,另一个则是与其他IMG版本一样作用的普通索引项,尽管IMGV5所使用的索引项占据空间更大。

IMGV5内的图像数据文件数目等于DDS索引项数,而并非等于普通索引项数,其中每个图像数据均由一个完整的DDS文件经过ZLIB压缩后获得。解压后的DDS文件无需任何辅助可以直接通过转换算法转化为一个点阵图像(因为这个DDS文件内部也有自己的结构,不像点阵图像只存储点阵,尺寸和颜色信息依然需要IMG的索引项给出),DDS索引项的用途无非就是定位压缩前的图像数据在IMG文件的位置而已,仅起到便利性而非决定性作用。而普通索引项包含的信息除了其他IMG所应有的信息(图像长度并不包含因为已经不需要了)之外,还包含了引用DDS的序号以及两个坐标点;这是由于DDS图像解出来后一般是个大图像(如下图所示),而真正的贴图帧根据DDS的序号确定使用哪个DDS图像,并通过两个坐标点来确定该贴图属于这个大的DDS图像中的哪个区域。这样,根据对大图像的裁切,就能获得该贴图帧真正的图像了。


DDS大图像,红色区域的位置是由DDS引用型索引项内独有的IMGV5参数确定的



绝大部分IMGV5所包含的图片数据都是DDS数据,但有极少数的IMGV5也包含普通的点阵数据,例如“sprite_map_chn_battleship_npc.NPK”(目前仅发现一个特例)内的三个IMGV5文件。这个时候IMGV5依然包含两个表,但DDS索引项为空,而普通索引项的格式则与其他版本IMG的索引项相同,这里的索引项中颜色格式与IMGV2相同。

另外,IMGV5文件中依然包含一个类似于IMGV4的调色板的信息,但是该信息在IMGV5中没有任何用途。在绝大部分的IMGV5文件中该调色板的颜色项数为0,也就退化成一个全零双字;但仍有极少数的例外,例如“sprite_map_infernomode.NPK”(也是仅发现一个特例)中的几个IMGV5依然保留着带有颜色项的调色板信息,尽管这些信息没有任何用途。

 

 

文件头

16字节字符串(注意空格)“Neople Img File

索引表

这篇关于关于DNF的多媒体包NPK文件的那些事儿(7) - IMGV5的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/976704

相关文章

多媒体应用设计师是什么?

多媒体应用设计师是什么? 多媒体应用设计师是一种具备多方面技能和知识的综合性人才,他们的工作涉及多媒体技术的多个领域。以下是关于多媒体应用设计师的详细解释: 定义 多媒体应用设计师是掌握计算机系统基础、计算机软件基础、网络基础、多媒体技术基础、多媒体信息处理技术、多媒体应用的策划与设计、多媒体素材的制作与集成、多媒体应用系统的实现、多媒体数据库与分布式多媒体系统、标准化基础与知识产权保护、专

HTML 多媒体页面

<html><head><title> 第六讲代码</title></head><body>******************************************************************************************************************************************************

【Android 多媒体应用】使用MediaCodec将摄像头采集的视频编码为h264

转载自:http://www.cnblogs.com/CoderTian/p/6224605.html MainActivity.java import android.app.Activity;import android.graphics.ImageFormat;import android.hardware.Camera;import android.hardware.Camera

【软考】多媒体知识

多媒体介绍 多媒体指将文字、声音、图形、图像、视频等多种媒体集成进计算机,使信息表现声、图、文并茂。存储载体也属于多媒体 多媒体分类 名字定义感觉媒体人类的各种语言、文字、音乐、自然界的其他声音、静止的或活动的图像、图形和动画等信息。表示媒体指传输感觉媒体的中介媒体,即用于数据交换的编码。如图像编码(如JPEGD、MPEGD等)、文本编码(如ASCI码、GB2312等)和声音编码等都属于表示

Objective-C总Runtime的那点事儿(一)消息机制

最近在找工作,Objective-C中的Runtime是经常被问到的一个问题,几乎是面试大公司必问的一个问题。当然还有一些其他问题也几乎必问,例 如:RunLoop,Block,内存管理等。其他的问题如果有机会我会在其他文章中介绍。本篇文章主要介绍RunTime。 RunTime简称运行时。就是系统在运行的时候的一些机制,其中最主要的是消息机制。对于C语言,函数的调用在编译的时候会决定调用哪

JAVA操作Excel那些事儿

前段时间接了一个Excel的数据处理单子后,小生百度千寻,终于先后使用JXL,POI两个包的后,最终在老师的见一下,使用ODBC访问EXCEL的形式,对处理,对于几种处理EXCEKL的数据方法有了大致的了解和感受,现总结如下: 目标数据:固定格式的EXCEL数据从10W条到100W条不等,根据不同的要求,添加新的记录。即原来一条ABCD数据,变成ABCDE,对于EXCEL的使用

关于Scrapy的那些事儿(四)Scrapy Shell

Scrapy Shell launch Scrapy shell 使用如下命令: scrapy shell <url> 当运行scrapy shell的时候,它为我们提供了一些功能函数: shelp() :打印可用对象和快捷命令的帮助列表fetch(request or url):根据给清的请求request或URL获取一个新的Response对象,并更新原有的对象。views(resp

C++/Qt 多媒体(续四)

一、前言         前边讲述到了Qt的两项独特的模块编程支持的另一项内容——多媒体编程,上篇文章具体讲述的包括采集和播放原始音频相关类的概述,而本章开始主要概述多媒体编程实现的功能中的最后两项:播放视频文件和通过摄像头拍照和录像。         对于上篇内容的示例全部代码,可直达远程仓库:https://gitee.com/CN-ZCL/WorkFrom-Qt-by-Cpp.git

春招来了,阿里学长和你聊聊必须要关注的几件事儿

前言 每年阳春三月,各大互联网公司都会陆续启动春季校园招聘,简称春招。 春招主要面向第二年毕业的同学,企业招来做实习生,同时也作为正式员工的储备资源。 当然也会覆盖少量当年毕业的同学,这种情况一般是,上一年的秋招企业没招够,春招作为补招的形式,来招收正式员工。 三月到六月是春招的黄金时期,姑且把这个时间段叫春招季吧。 如果你是明年要毕业的同学,那么春招季你所有想法和行为,都会影响你毕业去往哪里,

【软考】【多媒体应用设计师】元数据与数字对象标识码

数字对象唯一标识码(DOI)一经产生和分配就将( )。 A. 随所标识对象属性的改变而改变 B.随机改变 C.随所标识对象所处网络的改变而改变 D.永久不变 正确答案: D 答案解析 数字对象唯一标识码(DOI)的主要功能是能够对数字资源的内容做唯一的命名与辨识。DOI能唯一地标识网络环境下的任何数字对象,它一经产生和分配就永久不变,不随其所标识的对象属性的改变而改变,这是云计算背景