CN115344901B - 一种基于三维引擎的三维模型自动爆炸拆解方法 - Google Patents
一种基于三维引擎的三维模型自动爆炸拆解方法 Download PDFInfo
- Publication number
- CN115344901B CN115344901B CN202211269369.3A CN202211269369A CN115344901B CN 115344901 B CN115344901 B CN 115344901B CN 202211269369 A CN202211269369 A CN 202211269369A CN 115344901 B CN115344901 B CN 115344901B
- Authority
- CN
- China
- Prior art keywords
- grid
- explosion
- model
- distance
- disassembling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明涉及三维引擎技术领域。一种基于三维引擎的三维模型自动爆炸拆解方法,其特征在于,包括:步骤1:创建三维模型自动爆炸拆解数据模板,数据内容包括:自动爆炸拆解的模型组父节点,自动爆炸拆解的中心点网格,模型拆解距离默认值及单次拆解距离默认值;步骤2:选择包含多网格所在的模型组父节点,获取模型组父节点下的所有子孙节点扁平化数组数据,将其处理扁平化数组数据Arr;步骤3:选择一个网格作为自动爆炸拆解的中心点网格,并进行数据准备;步骤4:设置模型拆解距离及单次拆解距离;步骤5:点击拆解预演按钮,模型根据拆解方法生成自动爆炸拆解过程。本发明实现了自定义实时可见的爆炸过程,提高用户使用效率。
Description
技术领域
本发明涉及三维引擎技术领域,尤其涉及一种基于三维引擎的三维模型自动爆炸拆解方法。
背景技术
爆炸图是当今的三维CAD、CAM软件中的一项重要功能。爆炸图的优势在于能够把复杂的建筑体块清晰、直观地表达,让看图者迅速了解建筑、产品等内部空间结构分布。
公布号为CN112070908A的发明专利申请披露了一种三维模型的自动拆分方法、计算机设备以及存储介质,其中提到了一种三维模型自动拆分方法,该方法是根据预设算法计算出三维模型的爆炸中心点的坐标;并按预设算法进行移动并保存下所有所述子模型移动后的位置,这就需要提前将整个拆分过程预演完成而且不能实时可见,用户操作的关注点较多,操作体验差,效率低。
发明内容
本专利旨在解决现有技术中存在的不足,提出一种基于三维引擎的三维模型自动爆炸拆解方法,该方法与背景技术中所引证的专利相比,关注点更少,不需要对拆分过程提前预演,通过自定义实时可见爆炸过程,用户操作更简易,减少用户学习、使用及操作成本,提高用户使用效率。
为了实现上述发明目的,本发明采用如下技术方案:
一种基于三维引擎的三维模型自动爆炸拆解方法,其特殊之处在于,包括:
步骤1:创建三维模型自动爆炸拆解数据模板,数据内容包括:自动爆炸拆解的模型组父节点,自动爆炸拆解的中心点网格,模型拆解距离默认值及单次拆解距离默认值;
步骤2:选择包含多网格所在的模型组父节点,获取模型组父节点A下的所有子孙节点扁平化数组数据,再将其处理为不含空节点的网格组成的扁平化数组数据Arr;
步骤3:选择一个网格作为自动爆炸拆解的中心点网格,并进行数据准备;
步骤4:设置模型拆解距离及单次拆解距离;
步骤5:点击拆解预演按钮,模型根据拆解方法生成自动爆炸拆解过程,对场景进行实时渲染;可多次拆解预演,每次拆解前需要检查是否拆解预演过,如果拆解过,则重置为不爆炸状态。
进一步地,所述步骤2中,模型组的模型数据以父子级联关系展示在面板上,所述模型组父节点A可以是空节点。
进一步的,所述步骤3中,所述中心点网格只能是网格不能是空节点;如果选择的中心点网格是步骤2得到的扁平化数组数据中的一个,则通过遍历将其从扁平化数组数据中排除。数据准备共3个:中心点网格在世界空间下的绝对位置centerPosition、所有网格在世界空间下绝对位置组成的数组数据meshesOrigins、所有网格与中心点网格在世界空间下包围盒中心位置相减结果组成的数组数据toCenterVectors;
所述步骤3中,数据准备具体如下:复制中心点网格在世界空间下的绝对位置并赋值给centerPosition;建立一个空数组meshesOrigins,遍历扁平化数组数据Arr,并将网格在世界空间下绝对位置复制一份追加到到数组meshesOrigins中;建立一个空数组toCenterVectors,遍历扁平化数组数据Arr,计算每个网格与中心点网格在世界空间下包围盒中心位置相减结果追加到到数组toCenterVectors;
进一步地,所述步骤4中,所述模型拆解距离数值小于0时为内爆,数值为0时不爆炸,数值大于0时为外爆炸;所述单次拆解距离数值默认值为0.1,如果想要自动爆炸拆解速度再慢一些,可以填写小于0.1的值,如果模型拆解距离是负值,单次拆解距离数值也是负值。
进一步地,所述步骤5的拆解方法包括:
步骤5.1:检查模型是否爆炸过,如果爆炸过,重置为未爆炸状态。
步骤5.2:创建一个变量explodeNum,从0开始累加,计算第一次累加后的值,作为爆炸拆解距离;
步骤5.3:遍历扁平化数组数据Arr,索引i从0开始,先将第0个网格与中心点网格在世界空间下包围盒中心位置相减的结果从数组toCenterVectors中取出,将其与爆炸拆解距离explodeNum相乘得到缩放向量scaledDirection;再将第0个网格在世界空间下绝对位置从数组meshesOrigins中取出,将其与缩放向量scaledDirection相加得到网格新位置newPosition;网格新位置newPosition设置到网格世界空间下的绝对位置;将扁平化数组数据Arr里的所有网格模型按照第0个的逻辑进行计算;
步骤5.4:上一帧渲染循环结束后,爆炸拆解距离继续累加得到最新的爆炸拆解距离,重复步骤5.3,直至累加的爆炸拆解距离大于等于步骤4设置的模型拆解距离,一个完整的自动爆炸的拆解过程结束。
进一步地,如果步骤5的自动爆炸拆解过程与预期的相差较大,可重新进行自动爆炸拆解,本发明还可以包括:
步骤6:重复执行步骤2-4,且可以将2-4步交叉进行,再执行步骤5,例如4、2、5。
本发明的一种基于三维引擎的三维模型自动爆炸拆解方法,与现有技术相比,有益效果在于:
1、本发明的方法可以对任意的模型组进行自动爆炸拆解,可任意指定爆炸中心网格模型;
2、本发明的方法可以自定义爆炸拆解过程,用户可自定义拆解的爆炸距离用户和单次爆炸距离/速度,可实时渲染自动爆炸拆解过程。
3、本发明的方法在操作过程中不需要保存任何子模型移动后的位置,只需关注实时渲染的自动爆炸拆解过程,用户关注重点在拆解过程,可随时修改参数进行重新预演,实时获得满意的效果。
4、传统的自动爆炸拆解方法需要有专业理论知识和强大的动手能力支撑,而本方法在实践时不要求专业人员操作,会基本的电脑使用人群也可完成炫酷的自动爆炸拆解过程。
具体实施方式
下面结合实施例,对本发明的技术方案作进一步详细描述。以下实施例用于说明本发明,但不能用来限制本发明的范围。
一种基于三维引擎的三维模型自动爆炸拆解方法,包括以下步骤:
步骤1:创建三维模型自动爆炸拆解数据模板,数据内容包括:自动爆炸拆解的模型组父节点,自动爆炸拆解的中心点网格,模型拆解距离默认值设定为2及单次拆解距离默认值设定为0.1;
步骤2:点击自动爆炸拆解编辑面板上的模型组父节点选项,弹出弹框,模型组以父子级联形式的树数据展示形式;勾选模型组父节点A,父节点A可以为空节点,获取模型组父节点A下的所有子孙节点扁平化数组数据,再将其处理为不含空节点的网格组成的扁平化数组数据Arr;
步骤3:点击自动爆炸拆解编辑面板上的模型组父节点选项,弹出弹框,模型组以父子级联形式的树数据展示形式;单选一个网格作为自动爆炸拆解的中心点网格,所述中心点网格模型不能为空节点,因为无法应用包围盒算法求得中心点。
如果选择的中心点网格是步骤2得到的扁平化数组数据中的一个,则通过遍历将其从扁平化数组数据中排除。数据准备共3个:中心点网格在世界空间下的绝对位置centerPosition、所有网格在世界空间下绝对位置组成的数组数据meshesOrigins、所有网格与中心点网格在世界空间下包围盒中心位置相减结果组成的数组数据toCenterVectors;
所述步骤3中,数据准备具体如下:复制中心点网格在世界空间下的绝对位置并赋值给centerPosition;建立一个空数组meshesOrigins,遍历扁平化数组数据Arr,并将网格在世界空间下绝对位置复制一份追加到到数组meshesOrigins中;建立一个空数组toCenterVectors,遍历扁平化数组数据Arr,计算每个网格与中心点网格在世界空间下包围盒中心位置相减结果追加到数组toCenterVectors;
步骤4:在配置面板上拖动拖条设置模型拆解距离3,由于是正值,属于外爆炸范围,填写单次拆解距离0.05,按照除法计算3 ÷ 0.06 = 50,爆炸需要经过50次帧渲染完成自动爆炸的拆解过程。
步骤5:点击预演按钮,模型根据以下拆解方法生成自动爆炸拆解过程,对场景进行实时渲染:
步骤5.1:检查模型是否爆炸过,如果爆炸过,重置为未爆炸状态。
步骤5.2:创建一个变量explodeNum,从0开始累加,计算第一次累加后的值,作为爆炸拆解距离0.06;
步骤5.3:遍历扁平化数组数据Arr,索引从0开始,先将第0个网格与中心点网格在世界空间下包围盒中心位置相减的结果从数组toCenterVectors中取出,将其与爆炸拆解距离explodeNum相乘得到缩放向量scaledDirection;再将第0个网格在世界空间下绝对位置从数组meshesOrigins中取出,将其与缩放向量scaledDirection相加得到网格新位置newPosition;网格新位置newPosition设置到网格世界空间下的绝对位置;将扁平化数组数据Arr里的所有网格模型按照第0个的逻辑进行计算;
步骤5.4:上一帧渲染循环结束后,爆炸拆解距离继续累加得到最新的值0.12,重复步骤5.3,直至累加的爆炸拆解距离大于等于步骤4设置的模型拆解距离3。一个完整的自动爆炸的拆解过程结束。
步骤6:如果步骤5的自动爆炸拆解过程与预期的相差较大,可以将步骤2-4交叉进行,再执行步骤5,例如4、2、5。
执行步骤4,将爆炸拆解距离调整为4.2;
执行步骤2,重新选取模型组父节点;
执行步骤5,完成完整的自动爆炸拆解过程。
本发明解决的问题是将预演时关注设置最终爆炸偏移距离,不需要保存所有所述子模型移动后的位置。可通过输入数值改变大小控制单次展开距离/速度来调节模型展开的过程速度。在预演时用户实时可见预演过程与期望结果是否一致。本发明关注点只在于模型拆解距离与单次拆解距离/速度;与现有技术相比,本发明关注点更少,实现自定义实时可见的爆炸过程,用户操作更简易,减少用户学习、使用及操作成本,提高用户使用效率。
本发明通过选取三维模型自动爆炸拆解的模型组,并选取爆炸中心模型,通过拖动滑块自定义爆炸拆解的拆解距离,通过可输入单次拆解距离/速度来自定义拆解进度快慢,达到自定义自动爆炸拆解过程,该过程完全是用户自定义的,所见即所得,直接调整模型自动爆炸拆解过程的表现效果,实时利用爆炸预演来实现理想的爆炸结果。
Claims (6)
1.一种基于三维引擎的三维模型自动爆炸拆解方法,其特征在于,包括:
步骤1:创建三维模型自动爆炸拆解数据模板,数据内容包括:自动爆炸拆解的模型组父节点,自动爆炸拆解的中心点网格,模型拆解距离默认值及单次拆解距离默认值;
步骤2:选择包含多网格所在的模型组父节点,获取模型组父节点A下的所有子孙节点扁平化数组数据,再将其处理为不含空节点的网格组成的扁平化数组数据Arr;
步骤3:选择一个网格作为自动爆炸拆解的中心点网格,并进行数据准备;
步骤4:设置模型拆解距离及单次拆解距离;
步骤5:点击拆解预演按钮,模型根据以下拆解方法生成自动爆炸拆解过程:
步骤5.1:检查模型是否爆炸过,如果爆炸过,重置为未爆炸状态;
步骤5.2:创建一个变量explodeNum,从0开始累加,计算第一次累加后的值,作为爆炸拆解距离;
步骤5.3:遍历扁平化数组数据Arr,索引i从0开始,先将第0个网格与中心点网格在世界空间下包围盒中心位置相减的结果从数组toCenterVectors中取出,将其与爆炸拆解距离explodeNum相乘得到缩放向量scaledDirection;再将第0个网格在世界空间下绝对位置从数组meshesOrigins中取出,将其与缩放向量scaledDirection相加得到网格新位置newPosition;网格新位置newPosition设置到网格世界空间下的绝对位置;将扁平化数组数据Arr里的所有网格模型按照第0个的逻辑进行计算;
步骤5.4:上一帧渲染循环结束后,爆炸拆解距离继续累加得到最新的爆炸拆解距离,重复步骤5.3,直至累加的爆炸拆解距离大于等于步骤4设置的模型拆解距离,一个完整的自动爆炸的拆解过程结束。
2.如权利要求1所述的一种基于三维引擎的三维模型自动爆炸拆解方法,其特征在于,
所述步骤2中,所述模型组的模型数据以父子级联关系展示在面板上。
3.如权利要求1所述的一种基于三维引擎的三维模型自动爆炸拆解方法,其特征在于,
所述步骤3中,所述中心点网格只能是网格不能是空节点;如果选择的中心点网格是步骤2得到的扁平化数组数据中的一个,则通过遍历将其从扁平化数组数据中排除;
所述数据准备共3个:中心点网格在世界空间下的绝对位置centerPosition、所有网格在世界空间下绝对位置组成的数组数据meshesOrigins、所有网格与中心点网格在世界空间下包围盒中心位置相减结果组成的数组数据toCenterVectors。
4.如权利要求3所述的一种基于三维引擎的三维模型自动爆炸拆解方法,其特征在于,
数据准备具体如下:复制中心点网格在世界空间下的绝对位置并赋值给centerPosition;建立一个空数组meshesOrigins,遍历扁平化数组数据Arr,并将网格在世界空间下绝对位置复制一份追加到数组meshesOrigins中;建立一个空数组toCenterVectors,遍历扁平化数组数据Arr,计算每个网格与中心点网格在世界空间下包围盒中心位置相减结果追加到数组toCenterVectors。
5.如权利要求1所述的一种基于三维引擎的三维模型自动爆炸拆解方法,其特征在于,
所述步骤4中,所述模型拆解距离数值小于0时为内爆,数值为0时不爆炸,数值大于0时为外爆炸。
6.如权利要求1所述的一种基于三维引擎的三维模型自动爆炸拆解方法,其特征在于,
还包括步骤6:如果步骤4的自动爆炸拆解过程与预期相差较大,重复执行步骤2-4。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211269369.3A CN115344901B (zh) | 2022-10-18 | 2022-10-18 | 一种基于三维引擎的三维模型自动爆炸拆解方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211269369.3A CN115344901B (zh) | 2022-10-18 | 2022-10-18 | 一种基于三维引擎的三维模型自动爆炸拆解方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115344901A CN115344901A (zh) | 2022-11-15 |
CN115344901B true CN115344901B (zh) | 2023-01-24 |
Family
ID=83957028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211269369.3A Active CN115344901B (zh) | 2022-10-18 | 2022-10-18 | 一种基于三维引擎的三维模型自动爆炸拆解方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115344901B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102009004328A1 (de) * | 2009-01-10 | 2009-09-17 | Daimler Ag | Verfahren und eine Anordnung zur automatischen Generierung von Explosionsdarstellungen eines dreidimensionalen Modells |
CN110021070A (zh) * | 2018-01-10 | 2019-07-16 | 阿里巴巴集团控股有限公司 | FBX三维模型转换为glTF三维模型的方法、设备以及系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120075433A1 (en) * | 2010-09-07 | 2012-03-29 | Qualcomm Incorporated | Efficient information presentation for augmented reality |
CN103279621B (zh) * | 2013-06-07 | 2016-04-06 | 中国科学院自动化研究所 | 一种装配体的自动拆卸方法 |
US20140368504A1 (en) * | 2013-06-12 | 2014-12-18 | Microsoft Corporation | Scalable volumetric 3d reconstruction |
US9928643B2 (en) * | 2015-09-28 | 2018-03-27 | Douglas Rogers | Hierarchical continuous level of detail for three-dimensional meshes |
EP3301652A1 (en) * | 2016-09-29 | 2018-04-04 | Dassault Systèmes | Computer-implemented method of generating and displaying an exploded view |
CN109872385B (zh) * | 2019-01-14 | 2021-04-16 | 中国电子科技集团公司第三十八研究所 | 一种基于装配约束和碰撞检测的分层爆炸图自动生成方法 |
CN110322558A (zh) * | 2019-06-18 | 2019-10-11 | 浙江工业大学 | 一种基于烟花算法三角面片折叠的网格模型简化方法 |
CN111009023B (zh) * | 2019-11-20 | 2023-08-29 | 中车青岛四方机车车辆股份有限公司 | 三维电子交互式发布物制作方法及装置 |
CN111340560A (zh) * | 2020-03-04 | 2020-06-26 | 芯勍(上海)智能化科技股份有限公司 | 一种图形爆炸处理系统 |
WO2022038395A1 (en) * | 2020-08-18 | 2022-02-24 | Siemens Industry Software Ltd. | Method and system for generating an exploded layout of cad models in a 3d graphic environment |
CN112070908B (zh) * | 2020-08-31 | 2024-05-14 | 江西科骏实业有限公司 | 三维模型的自动拆分方法、计算机设备以及存储介质 |
CN112767405A (zh) * | 2021-01-18 | 2021-05-07 | 北京工商大学 | 一种基于图注意力网络的三维网格模型分割方法及系统 |
-
2022
- 2022-10-18 CN CN202211269369.3A patent/CN115344901B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102009004328A1 (de) * | 2009-01-10 | 2009-09-17 | Daimler Ag | Verfahren und eine Anordnung zur automatischen Generierung von Explosionsdarstellungen eines dreidimensionalen Modells |
CN110021070A (zh) * | 2018-01-10 | 2019-07-16 | 阿里巴巴集团控股有限公司 | FBX三维模型转换为glTF三维模型的方法、设备以及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115344901A (zh) | 2022-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101930627B (zh) | 一种基于二维户型图的三维户型建模方法 | |
CN114627219A (zh) | 三维场景数据的渲染方法及装置、存储介质、电子装置 | |
CN109461205A (zh) | 一种从烟花视频重建三维烟花的方法 | |
CN115344901B (zh) | 一种基于三维引擎的三维模型自动爆炸拆解方法 | |
Krs et al. | Skippy: Single view 3D curve interactive modeling | |
CN103745455A (zh) | 一种面向运动模糊的场景空间划分方法 | |
Hyun et al. | Tiling motion patches | |
US7098917B2 (en) | Generating visual art | |
Guérin et al. | Efficient modeling of entangled details for natural scenes | |
Nuić et al. | Algorithms for procedural generation and display of trees | |
Wang et al. | An improving algorithm for generating real sense terrain and parameter analysis based on fractal | |
Luo et al. | Quad-tree atlas ray casting: a gpu based framework for terrain visualization and its applications | |
CN109903384B (zh) | 一种模型设置的方法及装置、计算设备和存储介质 | |
Levinski et al. | Interactive function-based shape modeling for cyberworlds | |
CN106815799B (zh) | 一种基于混沌理论的自适应艺术图案生成方法 | |
CN113763240A (zh) | 一种点云缩略图生成方法、装置、设备及存储介质 | |
Xu et al. | Synthetic tree models from iterated discrete graphs | |
Li et al. | Real-time visualization for large scale terrain based on linear quadtree | |
CN103679815A (zh) | 基于表面搜索的可视外壳生成方法及装置 | |
Stiver et al. | Sketch based volumetric clouds | |
Antoniuk et al. | Procedural generation of underground systems with terrain features using schematic maps and L-systems | |
Wang et al. | Research on 3D Digital Modeling and Virtual Simulation Technology of Ancient Architecture Based on Image Sequence | |
US12008716B2 (en) | Systems and methods for generating a simplified polygonal mesh | |
CN117576287A (zh) | 一种模型处理方法、装置、电子设备及计算存储介质 | |
Liu | Complex Scene Loading Optimization Based On Virtual Reality Algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |