面向规则建筑物的OBJ文件无损压缩方法技术

技术编号:20074855 阅读:44 留言:0更新日期:2019-01-15 00:34
本发明专利技术提供面向规则建筑物的OBJ文件无损压缩方法,包括步骤:读取规则建筑物的几何数据文件和材质文件,并在内存中构建内存对象;遍历材质文件中的材质,在内存中构建材质参数字典,材质参数字典的键为材质参数的名称,材质参数字典的值为材质参数的可选值列表;在材质参数字典中查找当前材质参数的值,通过对应的索引值替换当前材质参数的值,生成材质块的数据块;分别针对材质和几何数据构建压缩数据块,几何数据块通过顶点收缩和树状索引压缩生成紧凑的几何数据块,按照材质参数字典和数据块的顺序依次将内存中索引化的材质文件输出至合并文件。本发明专利技术对规则建筑物能够起到有效地压缩效果,能够有效地压缩数据体积,提高数据传输效率。

Lossless Compression of OBJ Files for Regular Buildings

The present invention provides a lossless compression method for OBJ files for regular buildings, including steps: reading geometric data files and material files of regular buildings, and constructing memory objects in memory; traversing materials in material files, building material parameters dictionary in memory, the key of material parameters dictionary is the name of material parameters, and the value of material parameters dictionary is the value of material parameters. Selection list; Look up the value of current material parameter in material parameter dictionary, replace the value of current material parameter by corresponding index value, and generate data block of material block; Construct compressed data block for material and geometric data respectively, and generate compact geometric data block by vertex contraction and tree index compression, according to the order of material parameter dictionary and data block. In turn, the indexed material files in memory are output to the merged files. The invention can effectively compress regular buildings, effectively compress data volume and improve data transmission efficiency.

【技术实现步骤摘要】
面向规则建筑物的OBJ文件无损压缩方法
本专利技术涉及数据处理
,尤其涉及面向规则建筑物的OBJ文件无损压缩方法。
技术介绍
随着对地观测技术的快速发展,地理信息数据以TB级的数量增加。三维城市模型数据作为三维GIS的重要内容,在数字城市和智慧城市建设过程中发挥重要作用。建筑物三维模型作为一种重要的地物,在三维城市展现和应用中具有关键的作用,其数据量具有海量性,给数据存储和网络传输都带来了极大的挑战。尤其在当下,HTML5和WebGL技术在浏览器端得到了更好的支持,WebGIS对海量数据渲染能力越来越强,逐渐替代传统桌面端成为主流的GIS应用形式。因此对建筑物三维数据进行压缩,以适应网络的传输具有迫切的需求。在众多三维模型生成文件中,OBJ格式是常用的三维文件格式,OBJ是Alias/Wavefront公司为一套基于工作站的3D建模和动画软件AdvancedVisualizer开发的一种标准3D模型文件格式,其由包含几何信息的.obj和材质信息的材质库.mtl两部分组成。OBJ格式虽然在PC端得到了主流三维软件的一致支持,但是由于原始OBJ文件结构冗余、体积较大在Web端加载需要耗费较多的时间,严重影响到前端可视化的效率。
技术实现思路
为了克服现有技术的不足,本专利技术的目的在于提供面向规则建筑物的OBJ文件无损压缩方法,能够有效地压缩数据体积,提高数据传输效率。本专利技术提供面向规则建筑物的OBJ文件无损压缩方法,包括以下步骤:读取文件,读取规则建筑物的几何数据文件和材质文件,并在内存中构建内存对象;构建材质参数字典,遍历所述材质文件中的材质,在内存中构建材质参数字典,所述材质参数字典的键为材质参数的名称,所述材质参数字典的值为所述材质参数的可选值列表;材质索引化,在所述材质参数字典中查找当前材质参数的值,通过对应的索引值替换所述当前材质参数的值,生成材质块的数据块;合并输出文件,按照所述材质参数字典和数据块的顺序依次将内存中索引化的材质文件输出至合并文件。进一步地,还包括步骤收缩顶点,遍历所述几何数据文件中的顶点坐标、法线坐标、贴图坐标、面数据,将所述顶点坐标、法线坐标、贴图坐标依次按照三维坐标分量进行排序,根据排序后的顶点位置更新所述面数据的顶点索引、法线索引、贴图索引,生成点块。进一步地,还包括步骤面索引偏移化,遍历面块中的材质引用索引,通过原始材质参数的名称在所述材质块中查找对应的索引位置,通过索引值替换所述原始材质参数的名称,遍历同一材质引用下的所有面,记录所述顶点索引、法线索引、贴图索引的最小值,通过所述顶点索引值、法线索引值、贴图索引值与对应的最小值的差值更新所述面数据的顶点索引、法线索引、贴图索引,生成面块。进一步地,还包括步骤清理注释,清理所述几何数据文件和所述材质文件的注释。进一步地,所述材质索引化中,若在所述材质参数字典中未查找到当前材质参数的值,则将当前材质参数位置上的参数值采用填充符进行填充。进一步地,所述收缩顶点还包括遍历所述几何数据文件中的顶点坐标、法线坐标、贴图坐标、面数据,分别剔除所述顶点坐标、法线坐标、贴图坐标、面数据的重复数据。进一步地,所述面索引偏移化中,逐级将所述面数据的顶点索引、法线索引、贴图索引的相同三维坐标分量分配至同一行,不同三维坐标分量之间采用分隔符分隔,不同所述面数据的顶点索引、法线索引、贴图索引之间采用分割符分割。进一步地,所述合并输出文件还包括依次将所述点块、面块、未压缩的数据依次输出至所述合并文件。相比现有技术,本专利技术的有益效果在于:本专利技术提供面向规则建筑物的OBJ文件无损压缩方法,包括以下步骤:读取文件,读取规则建筑物的几何数据文件和材质文件,并在内存中构建内存对象;构建材质参数字典,遍历材质文件中的材质,在内存中构建材质参数字典,材质参数字典的键为材质参数的名称,材质参数字典的值为材质参数的可选值列表;材质索引化,在材质参数字典中查找当前材质参数的值,通过对应的索引值替换当前材质参数的值,生成材质块的数据块;合并输出文件,按照材质参数字典和数据块的顺序依次将内存中索引化的材质文件输出至合并文件。本专利技术在分析建筑物数据特征的基础上,针对原始OBJ文件结构冗余、体积过大,网络传输效率低的不足,提出OBJ文件到压缩格式的转换方法,对规则建筑物能够起到有效地压缩效果,能够有效地压缩数据体积,提高数据传输效率。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,并可依照说明书的内容予以实施,以下以本专利技术的较佳实施例并配合附图详细说明如后。本专利技术的具体实施方式由以下实施例及其附图详细给出。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1为本专利技术的面向规则建筑物的OBJ文件无损压缩方法流程图;图2为本专利技术实施例的索引化材质块示意图;图3为本专利技术实施例的点块示意图;图4为本专利技术实施例的面块示意图;图5为本专利技术实施例的材质索引化示意图;图6为本专利技术实施例的面索引偏移化示意图。图中:1、索引化材质块的头部;2、索引化材质块的材质参数字典;3、索引化材质块的数据块;4、点块的标识块;5、点块的顶点块;6、点块的法线块;7、点块的贴图块;8、面块的头部;9、面块的组说明块;10、面块的指定材质块;11、面块的数据块。具体实施方式下面,结合附图以及具体实施方式,对本专利技术做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。OBJ文件是一种采用文本形式存储的三维模型格式,其结构简单,采用单纯的字典状结构排列,可以直接通过记事本等文本编辑器打开或编辑;其由包含几何信息的扩展名为.obj的几何数据文件和包含材质信息的扩展名为.mtl的材质文件组成。不同于其它地物信息,建筑物在三维城市模型中具有数量大和特征明显的特点,因而可以从这些特征入手进行数据压缩,规则建筑物具有如下基本特征:建筑物立面垂直于地面;建筑物表面平滑;建筑物转角为直角。面向规则建筑物的OBJ文件无损压缩方法,如图1所示,包括以下步骤:读取文件,读取规则建筑物的扩展名为.obj的几何数据文件和扩展名为.mtl的材质文件,并在内存中构建内存对象。在一实施例中,OBJ文件不使用文件头描述文件属性,但支持注释内容,为了便于阅读,几何数据文件和材质文件中都包含了一定量的说明信息,注释内容以“#”开头,说明信息占据较大空间,这部分信息在数据表达方面是没有必要存在的,优选的,还包括步骤清理注释,清理几何数据文件和材质文件的注释。构建材质参数字典,遍历材质文件中的材质,在内存中构建材质参数字典,材质参数字典的键为材质参数的名称,材质参数字典的值为材质参数的可选值列表。如图5所示,材质参数Ns对应的值为32和10.0000。OBJ文件通过引用.mtl的材质文件表达材质信息,材质文件中每个材质单独记录,键和值存在一定量的重复记录,可以通过键和值的索引化解决重复记录的问题;材质索引化,在材质参数字典中查找当前材质参数的值,通过对应的索引值替换当前材质参数的值,生成材质块的数据块,优选的,材质索引化中,若在材质参数字典中未查找到当前材本文档来自技高网...

【技术保护点】
1.面向规则建筑物的OBJ文件无损压缩方法,其特征在于包括以下步骤:读取文件,读取规则建筑物的几何数据文件和材质文件,并在内存中构建内存对象;构建材质参数字典,遍历所述材质文件中的材质,在内存中构建材质参数字典,所述材质参数字典的键为材质参数的名称,所述材质参数字典的值为所述材质参数的可选值列表;材质索引化,在所述材质参数字典中查找当前材质参数的值,通过对应的索引值替换所述当前材质参数的值,生成材质块的数据块;合并输出文件,按照所述材质参数字典和数据块的顺序依次将内存中索引化的材质文件输出至合并文件。

【技术特征摘要】
1.面向规则建筑物的OBJ文件无损压缩方法,其特征在于包括以下步骤:读取文件,读取规则建筑物的几何数据文件和材质文件,并在内存中构建内存对象;构建材质参数字典,遍历所述材质文件中的材质,在内存中构建材质参数字典,所述材质参数字典的键为材质参数的名称,所述材质参数字典的值为所述材质参数的可选值列表;材质索引化,在所述材质参数字典中查找当前材质参数的值,通过对应的索引值替换所述当前材质参数的值,生成材质块的数据块;合并输出文件,按照所述材质参数字典和数据块的顺序依次将内存中索引化的材质文件输出至合并文件。2.如权利要求1所述的面向规则建筑物的OBJ文件无损压缩方法,其特征在于:还包括步骤收缩顶点,遍历所述几何数据文件中的顶点坐标、法线坐标、贴图坐标、面数据,将所述顶点坐标、法线坐标、贴图坐标依次按照三维坐标分量进行排序,根据排序后的顶点位置更新所述面数据的顶点索引、法线索引、贴图索引,生成点块。3.如权利要求2所述的面向规则建筑物的OBJ文件无损压缩方法,其特征在于:还包括步骤面索引偏移化,遍历面块中的材质引用索引,通过原始材质参数的名称在所述材质块中查找对应的索引位置,通过索引值替换所述原始材质参数的名称,遍历同一材质引用下的所有面,记录所述顶点索引、法线索引、贴图索引的最...

【专利技术属性】
技术研发人员:赵志鹏张磊黄鸿邓晓光刘爽李悦
申请(专利权)人:广州都市圈网络科技有限公司
类型:发明
国别省市:广东,44

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

1