一种三维模型的压缩存储方法及系统技术方案

技术编号:9935777 阅读:145 留言:0更新日期:2014-04-18 08:43
一种三维模型的压缩存储方法,其特征在于,包括:顶点坐标获取的步骤,遍历三维模型的所有顶点,获取所有顶点的三维坐标;最大最小顶点获取的步骤,对比出所有顶点在每一维坐标中的最大和最小值,得到以三个最大值组成的最大顶点和以三个最小值组成的最小顶点;中点和半径获取的步骤,获取最大顶点和最小顶点之间的中点和半径;顶点存储的步骤,将三维模型的所有顶点通过中点和半径转化为整数进行存储。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种三维模型的压缩存储方法和系统,所述方法在存储三维模型的顶点时,将浮点数据转换为整数数据进行存储,压缩50%的存储空间,减少存储的成本;所述系统包括顶点坐标获取模块、最大最小顶点获取模块、中点和半径获取模块、中点和半径获取模块、顶点存储模块和顶点读取模块。本专利技术在读取顶点时,读取整数操作与读取浮点操作相比,可以极大提升读取的速度,提升读取的效率。【专利说明】一种三维模型的压缩存储方法及系统
本专利技术涉及数据存储领域,特别是一种三维模型的压缩存储方法及系统。
技术介绍
三维模型是物体的多边形表示,由顶点和三角形索引等数据组成,顶点数据又由X、Y、Z三个浮点分量构成,一个浮点占用4个字节,即一个顶点占用12个字节,当模型的顶点数量增加时,模型所占用的存储空间也随之增加,这在程序的应用上或软件的实际运行中,不仅会增加传输和存储的成本,也会限制模型顶点的数量和三角形数量的使用。特别是在游戏领域中的应用,一个游戏软件中包含有大量的数据,而模型数据则占用了庞大比例的存储空间,存储成本的提闻和传输负担的增加,必定会增加游戏发布和推广等一系列的成本。因此,如果能有效降低三维模型数据的占用空间,对于其它软件尤其是游戏软件的运营和维护,都具有重大意义。
技术实现思路
为解决上述问题,本专利技术的目的在于提供一种三维模型的压缩存储方法及系统,减小三维模型的存储空间,降低模型数据的运输负担,提升软件的运行效率。本专利技术解决其问题所采用的技术方案是: 本专利技术的优选实施例提供了一种三维模型的压缩存储方法,包括: 顶点坐标获取的步骤,遍历三维模型的所有顶点,获取所有顶点的三维坐标; 最大最小顶点获取的步骤,对比出所有顶点在每一维坐标中的最大和最小值,得到以三个最大值组成的最大顶点和以三个最小值组成的最小顶点; 中点和半径获取的步骤,获取最大顶点和最小顶点之间的中点和半径; 顶点存储的步骤,将三维模型的所有顶点通过中点和半径转化为整数进行存储。顶点存储的步骤中,任一顶点在存储时,将此顶点减去中点后除以半径,再乘以32767取整后进行存储。这样所存储的数据为整数类型,可以减小存储空间。因为浮点数据存储占用32位,而整数类型数据占用16位,在实际应用中可以减少50%的存储空间,极大地节省了存储空间的使用。所述压缩存储方法还包括顶点读取的步骤: 读取中点和半径,同时读取顶点取整后存储的三个数值,将此三个数值分别除以32767后乘以半径,再与中点相加,作为相应顶点的坐标值;或者 读取中点和半径,同时读取顶点取整后存储的三个数值,将此三个数值分别乘以半径后除以32767,再与中点相加,作为相应顶点的坐标值。顶点在读取时,将存储的顶点还原即可。本专利技术简单易行,且节约存储空间和传输时间,进而降低存储成本和提升软件运行效率。本专利技术的优选实施例提供了一种三维模型的压缩存储系统,包括: 顶点坐标获取模块,遍历三维模型的所有顶点,获取所有顶点的三维坐标; 最大最小顶点获取模块,对比出所有顶点在每一维坐标中的最大和最小值,得到以三个最大值组成的最大顶点和以三个最小值组成的最小顶点; 中点和半径获取模块,获取最大顶点和最小顶点之间的中点和半径; 顶点存储模块,将三维模型的所有顶点通过中点和半径转化为整数进行存储。此压缩存储系统还包括顶点读取模块: 读取中点和半径,同时读取顶点取整后存储的三个数值,将此三个数值分别除以32767后乘以半径,再与中点相加,作为相应顶点的坐标值;或者 读取中点和半径,同时读取顶点取整后存储的三个数值,将此三个数值分别乘以半径后除以32767,再与中点相加,作为相应顶点的坐标值。本专利技术的有益效果是: 本专利技术采用一种三维模型的压缩存储方法和系统,在存储三维模型的顶点时,将浮点数据转换为整数数据进行存储,压缩50%的存储空间,减少存储的成本;在读取顶点时,读取整数操作与读取浮点操作相比,可以极大提升读取的速度,提升读取的效率。本专利技术可以极大地提升软件的运行,尤其是包含有大量三维模型数据的游戏软件。【专利附图】【附图说明】下面结合附图和实例对本专利技术作进一步说明。图1是本专利技术方法的流程图; 图2是顶点坐标获取的流程图; 图3是最大最小顶点获取的流程图; 图4是中点和半径获取的流程图; 图5是顶点存储的流程图; 图6是顶点读取的流程图。【具体实施方式】以下参照附图对本专利技术作进一步详细的说明和解释。作为本专利技术实现的一种三维模型的压缩存储方法,参照图1所示的流程图,包括: 顶点坐标获取的步骤100,三维模型具有多个顶点,不同的顶点在三维坐标的X、Y、Z轴的坐标不同,参照图2中的步骤202与步骤204,遍历三维模型的所有顶点,即可获取所有顶点的坐标; 最大最小顶点获取的步骤102,参照图3所示,步骤302对比出所有顶点在每一维坐标中的最大和最小值,步骤304得到以三个最大值组成的最大顶点和以三个最小值组成的最小顶点; 中点和半径获取的步骤104,参照图4所示,步骤402将最大顶点减去最小顶点之后除以2,步骤406将步骤402所得结果与最小顶点相加即得到中点坐标,步骤410计算最大顶点或最小顶点和中点的距离即获取半径; 顶点存储的步骤106,参照图5所示,对于三维模型中的任一顶点,步骤502将此顶点减去中点后的三维坐标值分别除以半径,得到三个大于O小于或等于I的系数值,步骤506将此三个系数值分别乘以32767并取整进行存储; 在存储之后,在对三维模型中的顶点读取时,则需要按照与存储时相反的操作,具体的,对于顶点读取的步骤108,参照图6中所示,步骤602读取中点和半径,同时,步骤604读取顶点取整后存储的三个数值,步骤608将此三个数值分别除以32767后乘以半径,步骤610将步骤608所得结果与中点相加,作为相应顶点的坐标值。所述步骤608中,亦可以将三个数值分别乘以半径后除以32767,之后再由步骤610将步骤608所得结果与中点相加,作为相应顶点的坐标值。通过顶点存储的步骤106,将三维模型的顶点由浮点数据转换为整型数据进行存储,由于浮点数据一般占用32位,而整形数据在存储时只占用16位,因此,可以节约50%的空间,从而节约所使用的存储空间,减少相应的存储成本。顶点存储的步骤106中,所乘以的32767为2的15次方减1,符合整形数据所占用的位数,计算后直接取整即可。具体的,假设三维模型未压缩时,具有N个顶点,每个顶点有三个浮点数据共需要占用12个字节,则三维模型需要12N个字节的存储空间;通过整形压缩之后,每个顶点占用6个字节,所存储的中点和半径占用24个字节,压缩比为(6N+24) /12N,接近50%的压缩比率。三维模型的顶点在存储与读取时,不需要额外的压缩算法或者软件即可提高压缩率,存储与读取的操作运行速度快且容易实现,对于存储有大量三维模型的游戏软件来说,对三维模型的数据进行压缩,可极大地降低三维模型占用的存储空间并提高运行效率。本专利技术提供了一种三维模型的压缩存储系统,包括: 顶点坐标获取模块,遍历三维模型的所有顶点,获取所有顶点的三维坐标; 最大最小顶点获取模块,对比出所有顶点在每一维坐标中的最大和最小值,得到以三个最大值组成的最大顶点和以本文档来自技高网...

【技术保护点】
一种三维模型的压缩存储方法,其特征在于,包括:顶点坐标获取的步骤,遍历三维模型的所有顶点,获取所有顶点的三维坐标;最大最小顶点获取的步骤,对比出所有顶点在每一维坐标中的最大和最小值,得到以三个最大值组成的最大顶点和以三个最小值组成的最小顶点;中点和半径获取的步骤,获取最大顶点和最小顶点之间的中点和半径;顶点存储的步骤,将三维模型的所有顶点通过中点和半径转化为整数进行存储。

【技术特征摘要】

【专利技术属性】
技术研发人员:余欣
申请(专利权)人:珠海金山网络游戏科技有限公司广州西山居世游网络科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1