数据存储方法、数据解析方法及3D模型的展示方法技术

技术编号:33212427 阅读:17 留言:0更新日期:2022-04-27 16:48
本公开实施例公开了一种数据存储方法、数据解析方法及3D模型的展示方法,所述数据存储方法包括:获取3D模型的原始数据;基于3D模型的原始数据,确定3D模型中的至少一个场景;基于场景对应的原始数据生成存储场景对应的数据段;其中,数据段包括数据段头部及与数据类型对应的信息段,信息段包括信息段头部和数据本体,信息段头部包括信息段对应的数据类型以及信息段长度;数据段头部包括数据段类型以及数据段长度;将场景对应的数据段存储至3D模型文件中。该技术方案能够将同一个场景下的所有数据存储在一个3D模型文件中,并且由于每个场景对应的数据段中存储了各种数据的数据类型以及长度,易于扩展以及维护。易于扩展以及维护。易于扩展以及维护。

【技术实现步骤摘要】
数据存储方法、数据解析方法及3D模型的展示方法


[0001]本公开涉及渲染
,具体涉及一种数据存储方法、数据解析方法及3D模型的展示方法。

技术介绍

[0002]3D模型是更接近现实,能够携带更多的信息的图像模型,但3D模型的数据量远远超过了视频及图像,并且伴随着3D建模工具以及3D扫描软件的飞速发展,3D模型的精度和细节都得到了巨大的提升,3D模型的数据量更是呈几何指数增长,这些导致了3D模型的规模和复杂程度急剧增长。另一方面,数字化技术和Internet的发展与普及、3D数据的大量涌现和图形处理器的处理能力大大加强,3D电视转播以及在移动互联网上进行3D会话、3D游戏以及3D娱乐等等,己经开始步入大众视野。然而,3D模型的高数据量及高精度,必然对3D模型的数据存储方式有较高的要求,而目前已有的3D模型的数据存储方式众多,并且这些存储方式在数据存储的文件体积大小、版本兼容性以及可扩展方面都存在各种各样的问题。
[0003]因此,为了解决已有技术中3D模型的数据存储方式存在的上述问题,有必要提出一种解决方案,用于有效存储3D模型数据。

技术实现思路

[0004]本公开实施例提供一种数据存储方法、数据解析方法及3D模型的展示方法。
[0005]第一方面,本公开实施例中提供了一种数据存储方法,其中,包括:
[0006]获取3D模型的原始数据;
[0007]基于所述3D模型的原始数据确定所述3D模型中的至少一个场景;
[0008]基于所述场景对应的原始数据生成存储所述场景对应的数据段;其中,所述数据段包括数据段头部及与数据类型对应的信息段,所述信息段包括信息段头部和数据本体,所述信息段头部包括所述信息段对应的数据类型以及信息段长度;所述数据段头部包括所述数据段类型以及数据段长度;
[0009]将所述场景对应的数据段存储至3D模型文件中。
[0010]进一步地,所述3D模型包括多个场景时,将所述场景对应的数据段存储至3D模型文件中,包括:
[0011]基于所述多个场景对应的多个所述数据段,生成3D模型文件的文件头部;所述文件头部包括所述3D模型文件的类型以及所述3D模型文件的长度;
[0012]将所述文件头部以及所述多个场景对应的多个所述数据段一起存储至所述3D模型文件中。
[0013]进一步地,所述数据段头部还包括场景的设计坐标系、场景包围盒信息、当前使用的动画信息、所述数据段对应的场景在场景树中的根节点信息、所述信息段在所述数据段中的位置偏移。
[0014]进一步地,所述信息段中的存储数据包括相机数据、材质数据、节点数据、动画数据和网格数据;其中,所述材质数据包括材质的基本信息以及基于物理的渲染信息;所述动画数据中包括关键帧信息以及用于描述动画过程中不同阶段的动画动作的序列片段信息;所述节点数据包括描述所述场景的场景树结构信息和指向至少一个关键帧信息的指针;所述网格数据包括对应的材质数据、网格所在节点数据和顶点数据。
[0015]进一步地,所述信息段长度为字节的整数倍。
[0016]进一步地,所述方法还包括:
[0017]接收用户输入的模型编辑信息;
[0018]基于所述模型编辑信息确定当前的场景;
[0019]基于所述场景确定所述3D模型文件中对应的目标数据段;
[0020]基于所述模型编辑信息对所述3D模型文件中的所述目标数据段进行更新。
[0021]进一步地,基于所述模型编辑信息对所述3D模型文件中的所述目标数据段进行更新,包括:
[0022]基于所述模型编辑信息确定对所述目标数据段的编辑方式;
[0023]在所述编辑方式为新增加数据类型时,基于所述模型编辑信息生成所述新增加数据类型对应的新信息段,并将所述新信息段添加在所述目标数据段中;
[0024]在所述编辑方式为更新信息段时,基于所述模型编辑信息从所述目标数据段中定位被更新的目标信息段,并对所述目标信息段进行更新。
[0025]第二方面,本公开实施例中提供了一种数据解析方法,其中,包括:
[0026]获取3D模型文件;
[0027]解析所述3D模型文件中数据段的数据段头部;所述数据段头部包括数据段类型、数据段长度以及所述数据段中存储的信息段对应的数据类型以及位置偏移;
[0028]基于所述数据段类型以及数据段长度从所述3D模型文件中获取所要解析的场景对应的目标数据段;
[0029]基于所述信息段对应的数据类型以及位置偏移从所述目标数据段中获取各信息段中存储的数据。
[0030]进一步地,基于所述信息段对应的数据类型以及位置偏移从所述目标数据段中获取各信息段中存储的数据,包括:
[0031]基于所述位置偏移确定目标信息段的存储位置;
[0032]基于所述信息段对应的数据类型调用对应的信息段解析器从所述存储位置解析得到所述目标信息段中存储的数据。
[0033]第三方面,本公开实施例中提供了一种3D模型的展示方法,包括:利用第一方面所述的方法从3D模型文件中解析数据,并基于所解析的数据展示所述3D模型。
[0034]第四方面,本公开实施例中提供了一种数据存储装置,其中,包括:
[0035]第一获取模块,被配置为获取3D模型的原始数据;
[0036]第一确定模块,被配置为基于所述3D模型的原始数据确定所述3D模型中的至少一个场景;
[0037]生成模块,被配置为基于所述场景对应的原始数据生成存储所述场景对应的数据段;其中,所述数据段包括数据段头部及与数据类型对应的信息段,所述信息段包括信息段
头部和数据本体,所述信息段头部包括所述信息段对应的数据类型以及信息段长度;所述数据段头部包括所述数据段类型以及数据段长度;
[0038]存储模块,被配置为将所述场景对应的数据段存储至3D模型文件中。
[0039]第五方面,本公开实施例中提供了一种数据解析装置,其中,包括:
[0040]第二获取模块,被配置为获取3D模型文件;
[0041]解析模块,被配置为解析所述3D模型文件中数据段的数据段头部;所述数据段头部包括数据段类型、数据段长度以及所述数据段中存储的信息段对应的数据类型以及位置偏移;
[0042]第三获取模块,被配置为基于所述数据段类型以及数据段长度从所述3D模型文件中获取所要解析的场景对应的目标数据段;
[0043]第四获取模块,被配置为基于所述信息段对应的数据类型以及位置偏移从所述目标数据段中获取各信息段中存储的数据。
[0044]第六方面,本公开实施例中提供了一种3D模型的展示装置,包括:利用第五方面所述的装置从3D模型文件中解析数据,并基于所解析的数据展示所述3D模型。
[0045]所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
[0046]在一个可能的设计中,上本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据存储方法,其中,包括:获取3D模型的原始数据;基于所述3D模型的原始数据,确定所述3D模型中的至少一个场景;基于所述场景对应的原始数据生成存储所述场景对应的数据段;其中,所述数据段包括数据段头部及与数据类型对应的信息段,所述信息段包括信息段头部和数据本体,所述信息段头部包括所述信息段对应的数据类型以及信息段长度;所述数据段头部包括所述数据段类型以及数据段长度;将所述场景对应的数据段存储至3D模型文件中。2.根据权利要求1所述的方法,其中,所述3D模型包括多个场景时,将所述场景对应的数据段存储至3D模型文件中,包括:基于所述多个场景对应的多个所述数据段,生成3D模型文件的文件头部;所述文件头部包括所述3D模型文件的类型以及所述3D模型文件的长度;将所述文件头部以及所述多个场景对应的多个所述数据段一起存储至所述3D模型文件中。3.根据权利要求1或2所述的方法,其中,所述数据段头部还包括场景的设计坐标系、场景包围盒信息、当前使用的动画信息、所述数据段对应的场景在场景树中的根节点信息、所述信息段在所述数据段中的位置偏移。4.根据权利要求1或2所述的方法,其中,所述信息段中的存储数据包括相机数据、材质数据、节点数据、动画数据和网格数据;其中,所述材质数据包括材质的基本信息以及基于物理的渲染信息;所述动画数据中包括关键帧信息以及用于描述动画过程中不同阶段的动画动作的序列片段信息;所述节点数据包括描述所述场景的场景树结构信息和指向至少一个关键帧信息的指针;所述网格数据包括对应的材质数据、网格所在节点数据和顶点数据。5.根据权利要求1或2所述的方法,其中,所述信息段长度为字节的整数倍。6.根据权利要求1或2所述的方法...

【专利技术属性】
技术研发人员:唐博文王海鹏朱永峰
申请(专利权)人:阿里巴巴新加坡控股有限公司
类型:发明
国别省市:

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

1