CN114925552A - 基于hpbd的布料仿真方法及系统 - Google Patents
基于hpbd的布料仿真方法及系统 Download PDFInfo
- Publication number
- CN114925552A CN114925552A CN202210847774.2A CN202210847774A CN114925552A CN 114925552 A CN114925552 A CN 114925552A CN 202210847774 A CN202210847774 A CN 202210847774A CN 114925552 A CN114925552 A CN 114925552A
- Authority
- CN
- China
- Prior art keywords
- grid
- constraint
- points
- point
- layer
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2113/00—Details relating to the application field
- G06F2113/12—Cloth
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T90/00—Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开一种基于HPBD的布料仿真方法及系统,方法包括:在原始网格基础上,执行预设次数的剔除部分点操作,以构建多层稀疏网格,且在执行剔除部分点操作时,依据待剔除的网格点的属性或旧约束来确定是否剔除该网格点;按照从最稀疏网格到最精细网格的顺序,逐层进行位置动态更新;且在更新过程中,基于上一层网格中父节点的权重,更新下一层的更精细网格中子节点的位置。本发明解决现有因剔除存在缝线关系的网格点产生跨网格约束导致难以构建新约束的问题、因剔除的网格点属于直线导致的新旧约束存在冲突的问题,以及稀疏网格点的位移对精细网格的位移产生不合理的影响导致仿真不稳定的问题。
Description
技术领域
本发明属于柔性体运动模拟中布料仿真技术领域,具体为一种基于HPBD(Hierarchical Position Based Dynamics,多层网格基于位置的动态仿真)的布料仿真方法及系统。
背景技术
布料仿真技术应用范围包括但不仅限于服装设计师用的服装设计软件、服装消费端的虚拟试衣、游戏引擎中的服装模拟以及元宇宙中的数字服装资源。布料仿真流行的方法为质点弹簧模型,即是在计算机中通过基础的粒子点,构造成三角形布料网格,三角形布料网格通过仿真计算得到最为精确的位置,然后通过渲染技术展示逼真的服装效果。三角形布料的位置需要通过布料网格模拟布料的各种物理属性进行计算,比如拉伸、拖拽布料,或者模拟人模穿上服装行走后,布料网格新的位置。物理属性包含了拉伸弹性、抗弯折、重量等属性,另外模拟过程中还需要避免布料与布料之间相互穿透。下文中的约束,指的是布料网格点受到物理属性,或者因为避免穿透对位置移动的限制。
布料仿真模拟效果的逼真程度与服装网格点的个数强相关,但是网格点的个数增加后会导致计算速度明显下降。HPBD提供了一种方法,将原始精细网格通过稀疏化变换为多层,通过计算最稀疏网格的位置,并且一层层传导,将位置信息传导到原始最精细网格,避免直接计算最原始网格的位置,从而优化仿真速度。
但是HPBD方法应用于规则简单网格加速效果较好,应用于不规则网格则会存在如下问题:
(1)由于服装由不同的裁片组成,不同的裁片需要通过缝合连到一起,会产生缝线,而存在缝线关系的点在进行多层网格构建时,如果按照现有方式进行剔除,则可能极大的增加约束构建难度,进而影响最终的仿真效果;
(2)在构建多层网格时,由于会剔除部分点及与其相对应的旧约束,而在剔除旧约束产生新约束时,新的约束可能与旧约束重叠,进而造成仿真不自然;
原始精细网格通过稀疏化后会形成稀疏网格,而稀疏网格点的位移对精细网格的位移产生不合理的影响,导致仿真不稳定。
发明内容
为克服上述现有技术的不足,本发明提供一种基于HPBD的布料仿真方法及系统,在保证布料仿真速度的同时保证仿真的稳定性,同时使仿真效果更自然。
根据本发明说明书的一方面,提供一种基于HPBD的布料仿真方法,包括:
在原始网格基础上,执行预设次数的剔除部分点操作,以构建多层稀疏网格,且在执行剔除部分点操作时,依据待剔除的网格点的属性或旧约束来确定是否剔除该网格点;
以多层稀疏网格中最后一次稀疏化得到的网格作为最稀疏网格,以原始网格作为最精细网格,按照从最稀疏网格到最精细网格的顺序,逐层进行位置动态更新;
位置动态更新进一步包括:
确定当前网格,并记录当前网格中每一网格点的旧位置;
基于PBD求解器计算当前网格上每一网格点的新位置;
若当前网格不是最精细网格,则进入下一层的更精细网格;
基于上一层网格中父节点的权重,更新下一层的更精细网格中子节点的位置;
确定该下一层的更精细网格为当前网格,重复上一层网格的更新过程。
上述技术方案在进行剔除部分点操作时,通过考虑待剔除的网格点的属性来确定该网格点是否存在缝线关系,解决现有因剔除存在缝线关系的网格点产生跨网格约束导致难以构建新约束的问题,避免因构建跨网格约束影响仿真效果。
上述技术方案在进行剔除部分点操作时,通过考虑待剔除的网格点的旧约束关系来确定该网格点剔除后是否需要构建新约束,解决现有因剔除的网格点属于缝线或折叠线等直线所导致的新旧约束存在冲突的问题,避免因新旧约束冲突使仿真效果不自然。
上述技术方案在进行动态位置更新时,在网格点的位移从父节点传导到子节点的过程中,按照权重计算子节点的位移,避免产生旋转位移,解决稀疏网格点的位移对精细网格的位移产生不合理的影响、导致仿真不稳定的问题。
作为进一步的技术方案,若当前网格为最精细网格,则停止位置更新。利用HPBD方法将精细的原始网格通过稀疏化变换为多层,通过计算最稀疏网格的位置,并且一层层传导,将位置信息传导到最精细的原始网格,避免直接计算最精细的原始网格的位置,从而优化仿真速度,在此期间,只要确认当前网格即为原始网格,就可以停止位置动态更新。
作为进一步的技术方案,剔除部分点的预设次数为三至五次。执行三至五次的剔除部分点操作所构建的多层稀疏网格,既能够满足优化仿真速度的要求,又能够保证仿真效果,避免因过多次网格稀疏化导致布料边角网格点丢失,而影响仿真效果的问题。
具体地,每执行一次剔除部分点操作,即可形成一层稀疏网格。若需要更稀疏的一层稀疏网格,则在上一层稀疏网格的基础上,再执行剔除部分点操作,形成更稀疏的一层稀疏网格。
作为进一步的技术方案,在执行剔除部分点操作时,根据待剔除的网格点的属性,确定待剔除的网格点是否存在缝线关系,若存在,则保留该网格点。
具体地,待缝合的两块裁片上均包含多个网格点,各网格点均有对应的属性显示其是否处于缝线上。或者,还可以从布料缝合工具上获取缝线上的网格点,然后对这些网格点赋予缝线属性。
在进行精细网格到稀疏网格的网格转化过程中,将缝线上的网格点保留在其原有网格层中,以避免产生新的跨网格的约束。因为跨裁片的两个网格点在进行新约束构建时,其距离难以准确计算,进而也难以保证新约束所带来的仿真效果。
作为进一步的技术方案,在执行剔除部分点操作时,获取待剔除的网格点的旧约束,判断旧约束中除该网格点之外的其他网格点是否属于同一直线,若属于,则剔除该网格点,保留该网格点的旧约束,不构建新约束。
具体来说,若随机选取某个网格点要进行剔除,则可以先获取该网格点的所有旧约束,接着遍历旧约束中的其他网格点,判断是否存在有两个网格点同属于缝线或折叠线等特殊线的情况,若有,则对于这两个网格点,不构建新约束。换言之,若要剔除某个网格点,可对剔除后形成的新约束内的所有网格点进行遍历,判断是否存在有两个网格点同属于缝线或折叠线等特殊线的情况,若有,则删除这两个网格点之间构建的新约束,保留旧约束。
进一步地,若旧约束中除该网格点之外的其他网格点不属于同一缝线或折叠线等直线,则剔除该网格点,构建新约束。
作为进一步的技术方案,基于上一层网格中父节点的权重,更新下一层的更精细网格中子节点的位置,进一步包括:获取子节点的约束关系,及每个约束对应的距离及向量;依据每个约束的距离和多个约束的距离总和,计算每个约束对应的权重;计算父节点产生的位移在每个约束对应向量上的投影;依据每个约束对应的权重及父节点位移在每个约束向量上的投影,计算子节点的总位移。
在精细网格到稀疏网格的转化过程中,网格父节点的位移会影响网格子节点的位移,导致整个网格产生旋转的位移,使得整个网格不稳定,因此,上述技术方案在网格点的位移从父节点到子节点的传导过程中,进行投影操作,并按照子节点各约束的权重进行最终位移计算,从而避免旋转位移的产生,解决因稀疏网格的位移对精细网格的位移所造成的不合理影响导致仿真不自然的问题。
根据本发明说明书的一方面,提供一种基于HPBD的布料仿真系统,包括:
构建模块,用于在原始网格基础上,执行预设次数的剔除部分点操作,以构建多层稀疏网格,且在执行剔除部分点操作时,依据待剔除的网格点的属性或旧约束来确定是否剔除该网格点;
动态位置更新模块,用于以多层稀疏网格中最后一次稀疏化得到的网格作为最稀疏网格,以原始网格作为最精细网格,按照从最稀疏网格到最精细网格的顺序,逐层进行位置动态更新;
动态位置更新模块进一步包括:
输入模块,用于输入当前网格,记录当前网格中每一网格点的旧位置后,进入计算及更新模块;
计算及更新模块,用于基于PBD求解器计算当前网格上每一网格点的新位置并更新;
判断模块,用于判断当前网格是否为最精细网格,若是,则停止更新过程;若不是,则进入下一层的更精细网格,并执行子节点更新模块;
子节点更新模块,用于基于上一层网格中父节点的权重,更新下一层的更精细网格中子节点的位置,并在更新后进入计算及更新模块。
上述技术方案通过构建模块改进了现有多层网格的构建形式,避免布料之间的缝隙问题,能够实现自然逼真的仿真效果,同时通过动态位置更新模块解决了稀疏网格点的位移对精细网格点的位移产生不合理影响,进而导致仿真不稳定的问题。
上述技术方案应用于不规则网格仿真,可以使仿真过程更加顺畅,仿真效果更加逼真,避免了因HPBD在构网时的自身缺陷所带来的仿真效果损失,保证了仿真效果的稳定性。
作为进一步的技术方案,构建模块还包括:第一判断模块,用于根据待剔除的网格点的属性,判断待剔除的网格点是否存在缝线关系,若存在,则保留该网格点。
所述系统在进行精细网格到稀疏网格的网格转化过程中,将缝线上的网格点保留在其原有网格层中,以避免产生新的跨网格的约束。因为跨裁片的两个网格点在进行新约束构建时,其距离难以准确计算,进而也难以保证新约束所带来的仿真效果,所以本系统在构网时,根据网格点的自身属性对存在缝线关系的网格点进行保留,避免了因HPBD在构网时的自身缺陷所带来的仿真效果损失。
作为进一步的技术方案,构建模块还包括:第二判断模块,用于获取待剔除的网格点的旧约束,判断旧约束中除该网格点之外的其他网格点是否属于同一直线,若属于,则剔除该网格点,保留该网格点的旧约束,不构建新约束。若旧约束中除该网格点之外的其他网格点不属于同一缝线或折叠线等直线,则剔除该网格点,构建新约束。
作为进一步的技术方案,子节点更新模块还包括:获取子模块,用于获取子节点的约束关系,及每个约束对应的距离及向量;权重计算子模块,用于依据每个约束的距离和多个约束的距离总和,计算每个约束对应的权重;投影计算子模块,用于计算父节点产生的位移在每个约束对应向量上的投影;位移计算子模块,用于依据每个约束对应的权重及父节点位移在每个约束向量上的投影,计算子节点的总位移。
在精细网格到稀疏网格的转化过程中,网格父节点的位移会影响网格子节点的位移,导致整个网格产生旋转的位移,使得整个网格不稳定,因此,本系统在网格点的位移从父节点到子节点的传导过程中,进行投影操作,并按照子节点各约束的权重进行最终位移计算,从而避免旋转位移的产生,解决因稀疏网格的位移对精细网格的位移所造成的不合理影响导致仿真不自然的问题。
与现有技术相比,本发明的有益效果在于:
(1)本发明在进行剔除部分点操作时,通过考虑待剔除的网格点的属性来确定该网格点是否存在缝线关系,解决现有因剔除存在缝线关系的网格点产生跨网格约束导致难以构建新约束的问题,避免因构建跨网格约束影响仿真效果。
(2)本发明在进行剔除部分点操作时,通过考虑待剔除的网格点的旧约束关系来确定该网格点剔除后是否需要构建新约束,解决现有因剔除的网格点属于缝线或折叠线等直线所导致的新旧约束存在冲突的问题,避免因新旧约束冲突使仿真效果不自然。
(3)本发明在进行动态位置更新时,在网格点的位移从父节点传导到子节点的过程中,按照权重计算子节点的位移,避免产生旋转位移,解决稀疏网格点的位移对精细网格的位移产生不合理的影响、导致仿真不稳定的问题。
(4)本发明应用于不规则网格仿真,可以使仿真过程更加顺畅,仿真效果更加逼真,避免了因HPBD在构网时的自身缺陷所带来的仿真效果损失,保证了仿真效果的稳定性。
附图说明
图1为根据本发明实施例的基于HPBD的布料仿真方法流程图。
图2为根据本发明实施例的位置动态更新流程图。
图3为根据本发明实施例的五层稀疏网格构建示意图。
图4为根据本发明实施例在执行剔除部分点操作时网格点的旧约束与新约束的冲突示意图。
图5为根据本发明实施例在执行剔除部分点操作时存在缝线关系的网格点的新约束构建示意图。
图6为根据本发明实施例的精细网格到稀疏网格转化时的网格点位移变化示意图。
具体实施方式
以下将结合附图对本发明各实施例的技术方案进行清楚、完整的描述,显然,所描述发实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本发明所保护的范围。
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
根据本发明说明书的一方面,提供一种基于HPBD的布料仿真方法,包括:网格构建步骤和位置动态更新步骤。
如图1所示,在网格构建步骤中,首先获取布料的原始网格,接着在原始网格基础上,执行预设次数的剔除部分点操作,以构建多层稀疏网格,且在执行剔除部分点操作时,依据待剔除的网格点的属性或旧约束来确定是否剔除该网格点。
这里的剔除部分点操作即网格稀疏化,将精细网格的部分点进行随机剔除后,得到粗糙的稀疏网格。
这里的预设次数一般选择三至五次。执行三至五次的剔除部分点操作所构建的多层稀疏网格,既能够满足优化仿真速度的要求,又能够保证仿真效果,避免因过多次网格稀疏化导致布料边角网格点丢失,而影响仿真效果的问题。
优选地,可在原始网格基础上,执行四次剔除部分点操作,构建五层稀疏网格,如图3所示,其具体步骤为:在原始网格基础上,执行一次剔除部分点操作,得到第一层稀疏网格;接着在第一层稀疏网格基础上,再执行一次剔除部分点操作,得到第二层稀疏网格;然后在第二层更稀疏网格基础上,再执行一次剔除部分点操作,得到第三次稀疏网格,最后在第三层更稀疏网格基础上,再执行一次剔除部分点操作,得到第四次稀疏网格。原始网格、第一层稀疏网格、第二层稀疏网格、第三层稀疏网格、第四层稀疏网格构建形成五层稀疏网格。图3中,箭头所指的一层为非网格图片,其用来展示布料原始状态。
第一层稀疏网格、第二层稀疏网格、第三层稀疏网格、第四层稀疏网格的稀疏程度是逐渐增强的,且第四层稀疏网格作为本次所构建网格的最稀疏网格,而原始网格则作为本次所构建网格的最精细网格。
在从原始网格稀疏化转化为稀疏网格过程中,剔除的网格点是随机选取的,而该网格点选取的随机性会导致在剔除网格点后,生成的新约束与删除的旧约束之间存在冲突,且该冲突会导致最终的布料仿真效果不自然。
为保证得到自然逼真的仿真效果,本发明方法对于随机剔除的网格点进行新旧约束关系的判断。具体来说,若随机选取某个网格点要进行剔除,则可以先获取该网格点的所有旧约束,接着遍历旧约束中的其他网格点,判断是否存在有两个网格点同属于缝线或折叠线等特殊线的情况,若有,则对于这两个网格点,不构建新约束。
换言之,若要剔除某个网格点,可对剔除后形成的新约束内的所有网格点进行遍历,判断是否存在有两个网格点同属于缝线或折叠线等特殊线的情况,若有,则删除这两个网格点之间构建的新约束,保留旧约束。
进一步地,若旧约束中除该网格点之外的其他网格点不属于同一缝线或折叠线等直线,则剔除该网格点,构建新约束。
如图4所示的精细网格,假如剔除网格点0,约束01、约束02和约束03都将不存在,新约束13会创建,但由于旧约束12和旧约束23已经存在,因此在新约束13和旧约束12、旧约束23之间会存在冲突。
为解决图4中存在的问题,在剔除网格点0后,对剔除后形成的新约束13内的所有网格点进行遍历,发现网格点1、网格点3属于同一直线,因此,对于网格点1、网格点3则不构建新约束。
在精细网格到稀疏网格的转化过程中,处于两块裁片缝合位置的缝线点,即存在缝线关系的网格点,如果按照已有方式随机选取后直接剔除,则会导致两块裁片上的网格点之间产生新的跨网格的约束,而跨裁片的两个网格点在进行新约束构建时,其距离难以准确计算,通常难以保证新约束所带来的仿真效果。
如图5所示,cut0与cut1分别为两块裁片,网格点1与网格点3进行缝合(这里表示布料对折,即cut1先对折再与cut0缝合),网格点2与网格点5进行缝合,网格点3与网格点4进行缝合,新约束03重新构建,需要避免因为网格点3与网格点4缝合构建成新约束04,以及网格点2与网格点5缝合构建成新约束05。另外新约束06需要构建,而由于网格点0与网格点6分属于两个裁片,因此两者新建约束的距离难以准确计算。
为避免跨网格的约束的产生,本发明方法在执行剔除部分点操作时,根据待剔除的网格点的属性,确定待剔除的网格点是否存在缝线关系,若存在,则保留该网格点。若不存在缝线关系,则予以剔除。
具体地,待缝合的两块裁片上均包含多个网格点,各网格点均有对应的属性显示其是否处于缝线上。或者,还可以从布料缝合工具上获取缝线上的网格点,然后对这些网格点赋予缝线属性。
在位置动态更新步骤中,以多层稀疏网格中最后一次稀疏化得到的网格作为最稀疏网格,以原始网格作为最精细网格,按照从最稀疏网格到最精细网格的顺序,逐层进行位置动态更新。
利用HPBD方法将精细的原始网格通过稀疏化变换为多层,通过计算最稀疏网格的位置,并且一层层传导,将位置信息传导到最精细的原始网格,避免直接计算最精细的原始网格的位置,从而优化仿真速度,在此期间,只要确认当前网格即为原始网格,就可以停止位置动态更新。
如图2所示,位置动态更新进一步包括:
确定当前网格,并记录当前网格中每一网格点的旧位置;
基于PBD求解器计算当前网格上每一网格点的新位置;
若当前网格不是最精细网格,则进入下一层的更精细网格;若当前网格为最精细网格,则停止位置更新;
基于上一层网格中父节点的权重,更新下一层的更精细网格中子节点的位置;
确定该下一层的更精细网格为当前网格,重复上一层网格的更新过程。
如图6所示,level 0为精细网格,level 1为稀疏网格,网格点1为网格点3、网格点5、网格点7的父节点,在网格的约束求解过程中,网格点1的位移将会影响网格点3、网格点5、网格点7的位移。
假设网格点0与网格点2为固定点,他们没有位移,因为重力的影响网格点1可能会产生偏移,假如将网格点往朝布料垂直方向拖拽,则网格点3、网格点5、网格点7都会产生垂直方向的位移,导致整个网格产生旋转的位移,从而导致整个网格不稳定。
为解决上述旋转位移的问题,在网格点的位移从父节点传导到子网格点的过程中,做一个投影操作,按照权重进行计算,可以避免产生旋转位移。
比如网格点3的父节点1产生位移为displacement1,网格点3相关的约束分别为约束23、约束13、约束34、约束45。
约束23对应的距离为distance23,对应的向量为vector23。
约束13对应的距离为distance13,对应的向量为vector13。
约束34对应的距离为distance34,对应的向量为vector34。
约束45对应的距离为distance45,对应的向量为vector45。
步骤1,计算权重
计算各约束的距离总和disntanceTotal = distance23 + distance13 +distance34 + distance45;
计算每个约束对应的权重,其中,约束12对应的权重为distance23/disntanceTotal,约束13对应的权重为distance13/disntanceTotal,约束34对应的权重为distance34/disntanceTotal,约束45对应的权重为distance45/ disntanceTotal。
步骤2,使用点乘计算父节点位移在各约束方向上的投影。
在约束23方向上的投影为displacement1·vector23。
在约束13方向上的投影为displacement1·vector13。
在约束34方向上的投影为displacement1·vector34。
在约束45方向上的投影为displacement1·vector45。
步骤3,根据权重计算最终总的位移。
总的位移如下所示:
在网格点的位移从父节点到子节点的传导过程中,进行投影操作,并按照子节点各约束的权重进行最终位移计算,从而避免旋转位移的产生;而基于计算出来的位移对更精细网格中的子节点的位置进行更新,能够避免由于父节点产生的不合理位移向子节点传递,进而导致整个网格不稳定的问题。
根据本发明说明书的一方面,提供一种基于HPBD的布料仿真系统,包括:
构建模块,用于在原始网格基础上,执行预设次数的剔除部分点操作,以构建多层稀疏网格,且在执行剔除部分点操作时,依据待剔除的网格点的属性或旧约束来确定是否剔除该网格点。
构建模块还包括:第一判断模块,用于根据待剔除的网格点的属性,判断待剔除的网格点是否存在缝线关系,若存在,则保留该网格点。所述系统在进行精细网格到稀疏网格的网格转化过程中,将缝线上的网格点保留在其原有网格层中,以避免产生新的跨网格的约束。因为跨裁片的两个网格点在进行新约束构建时,其距离难以准确计算,进而也难以保证新约束所带来的仿真效果,所以本系统在构网时,根据网格点的自身属性对存在缝线关系的网格点进行保留,避免了因HPBD在构网时的自身缺陷所带来的仿真效果损失。
构建模块还包括:第二判断模块,用于获取待剔除的网格点的旧约束,判断旧约束中除该网格点之外的其他网格点是否属于同一直线,若属于,则剔除该网格点,保留该网格点的旧约束,不构建新约束。若旧约束中除该网格点之外的其他网格点不属于同一缝线或折叠线等直线,则剔除该网格点,构建新约束。
动态位置更新模块,用于以多层稀疏网格中最后一次稀疏化得到的网格作为最稀疏网格,以原始网格作为最精细网格,按照从最稀疏网格到最精细网格的顺序,逐层进行位置动态更新。
动态位置更新模块进一步包括:
输入模块,用于输入当前网格,记录当前网格中每一网格点的旧位置后,进入计算及更新模块;
计算及更新模块,用于基于PBD求解器计算当前网格上每一网格点的新位置并更新;
判断模块,用于判断当前网格是否为最精细网格,若是,则停止更新过程;若不是,则进入下一层的更精细网格,并执行子节点更新模块;
子节点更新模块,用于基于上一层网格中父节点的权重,更新下一层的更精细网格中子节点的位置,并在更新后进入计算及更新模块。
子节点更新模块还包括:获取子模块,用于获取子节点的约束关系,及每个约束对应的距离及向量;权重计算子模块,用于依据每个约束的距离和多个约束的距离总和,计算每个约束对应的权重;投影计算子模块,用于计算父节点产生的位移在每个约束对应向量上的投影;位移计算子模块,用于依据每个约束对应的权重及父节点位移在每个约束向量上的投影,计算子节点的总位移。
在精细网格到稀疏网格的转化过程中,网格父节点的位移会影响网格子节点的位移,导致整个网格产生旋转的位移,使得整个网格不稳定,因此,本系统在网格点的位移从父节点到子节点的传导过程中,进行投影操作,并按照子节点各约束的权重进行最终位移计算,从而避免旋转位移的产生,解决因稀疏网格的位移对精细网格的位移所造成的不合理影响导致仿真不自然的问题。
在本说明书的描述中,参考术语“一个实施方式”、“某些实施方式”、“示意性实施方式”、“示例”、“具体示例”、或“一些示例”等的描述意指结合所述实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案。
Claims (10)
1.基于HPBD的布料仿真方法,其特征在于,包括:
在原始网格基础上,执行预设次数的剔除部分点操作,以构建多层稀疏网格,且在执行剔除部分点操作时,依据待剔除的网格点的属性或旧约束来确定是否剔除该网格点;
以多层稀疏网格中最后一次稀疏化得到的网格作为最稀疏网格,以原始网格作为最精细网格,按照从最稀疏网格到最精细网格的顺序,逐层进行位置动态更新;
位置动态更新进一步包括:
确定当前网格,并记录当前网格中每一网格点的旧位置;
基于PBD求解器计算当前网格上每一网格点的新位置;
若当前网格不是最精细网格,则进入下一层的更精细网格;
基于上一层网格中父节点的权重,更新下一层的更精细网格中子节点的位置;
确定该下一层的更精细网格为当前网格,重复上一层网格的更新过程。
2.根据权利要求1所述基于HPBD的布料仿真方法,其特征在于,若当前网格为最精细网格,则停止位置更新。
3.根据权利要求1所述基于HPBD的布料仿真方法,其特征在于,剔除部分点的预设次数为三至五次。
4.根据权利要求3所述基于HPBD的布料仿真方法,其特征在于,在执行剔除部分点操作时,根据待剔除的网格点的属性,确定待剔除的网格点是否存在缝线关系,若存在,则保留该网格点。
5.根据权利要求3所述基于HPBD的布料仿真方法,其特征在于,在执行剔除部分点操作时,获取待剔除的网格点的旧约束,判断旧约束中除该网格点之外的其他网格点是否属于同一直线,若属于,则剔除该网格点,保留该网格点的旧约束,不构建新约束。
6.根据权利要求1所述基于HPBD的布料仿真方法,其特征在于,基于上一层网格中父节点的权重,更新下一层的更精细网格中子节点的位置,进一步包括:获取子节点的约束关系,及每个约束对应的距离及向量;依据每个约束的距离和多个约束的距离总和,计算每个约束对应的权重;计算父节点产生的位移在每个约束对应向量上的投影;依据每个约束对应的权重及父节点位移在每个约束向量上的投影,计算子节点的总位移。
7.基于HPBD的布料仿真系统,其特征在于,包括:
构建模块,用于在原始网格基础上,执行预设次数的剔除部分点操作,以构建多层稀疏网格,且在执行剔除部分点操作时,依据待剔除的网格点的属性或旧约束来确定是否剔除该网格点;
动态位置更新模块,用于以多层稀疏网格中最后一次稀疏化得到的网格作为最稀疏网格,以原始网格作为最精细网格,按照从最稀疏网格到最精细网格的顺序,逐层进行位置动态更新;
动态位置更新模块进一步包括:
输入模块,用于输入当前网格,记录当前网格中每一网格点的旧位置后,进入计算及更新模块;
计算及更新模块,用于基于PBD求解器计算当前网格上每一网格点的新位置并更新;
判断模块,用于判断当前网格是否为最精细网格,若是,则停止更新过程;若不是,则进入下一层的更精细网格,并执行子节点更新模块;
子节点更新模块,用于基于上一层网格中父节点的权重,更新下一层的更精细网格中子节点的位置,并在更新后进入计算及更新模块。
8.根据权利要求7所述基于HPBD的布料仿真系统,其特征在于,构建模块还包括:第一判断模块,用于根据待剔除的网格点的属性,判断待剔除的网格点是否存在缝线关系,若存在,则保留该网格点。
9.根据权利要求7所述基于HPBD的布料仿真系统,其特征在于,构建模块还包括:第二判断模块,用于获取待剔除的网格点的旧约束,判断旧约束中除该网格点之外的其他网格点是否属于同一直线,若属于,则剔除该网格点,保留该网格点的旧约束,不构建新约束。
10.根据权利要求7所述基于HPBD的布料仿真系统,其特征在于,子节点更新模块还包括:获取子模块,用于获取子节点的约束关系,及每个约束对应的距离及向量;权重计算子模块,用于依据每个约束的距离和多个约束的距离总和,计算每个约束对应的权重;投影计算子模块,用于计算父节点产生的位移在每个约束对应向量上的投影;位移计算子模块,用于依据每个约束对应的权重及父节点位移在每个约束向量上的投影,计算子节点的总位移。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210847774.2A CN114925552B (zh) | 2022-07-19 | 2022-07-19 | 基于hpbd的布料仿真方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210847774.2A CN114925552B (zh) | 2022-07-19 | 2022-07-19 | 基于hpbd的布料仿真方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114925552A true CN114925552A (zh) | 2022-08-19 |
CN114925552B CN114925552B (zh) | 2022-10-18 |
Family
ID=82816144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210847774.2A Active CN114925552B (zh) | 2022-07-19 | 2022-07-19 | 基于hpbd的布料仿真方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114925552B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070085851A1 (en) * | 2005-10-19 | 2007-04-19 | Matthias Muller | Method of simulating dynamic objects using position based dynamics |
CN101984443A (zh) * | 2010-11-10 | 2011-03-09 | 北京航空航天大学 | 一种改进的柔性织物碰撞处理方法 |
US20150242546A1 (en) * | 2014-02-21 | 2015-08-27 | Inyong JEON | Method of Cloth Simulation using Constrainable Multigrid |
CN106407605A (zh) * | 2016-11-01 | 2017-02-15 | 南京大学 | 一种三维服装的粒子化计算机动态仿真方法 |
US20170351793A1 (en) * | 2016-06-01 | 2017-12-07 | Disney Enterprises, Inc. | Algebraic multigrid method for cloth simulation |
CN109118561A (zh) * | 2018-07-24 | 2019-01-01 | 西北农林科技大学 | 一种基于位置的层次化动态模拟方法 |
US20190095558A1 (en) * | 2017-09-25 | 2019-03-28 | Nvidia Corporation | Position-based dynamics simulation |
CN110765565A (zh) * | 2018-07-25 | 2020-02-07 | 真玫智能科技(深圳)有限公司 | 一种布料仿真碰撞的方法及装置 |
CN111651894A (zh) * | 2020-06-16 | 2020-09-11 | 北京中科深智科技有限公司 | 一种布料形变实时模拟方法 |
CN111859772A (zh) * | 2020-07-07 | 2020-10-30 | 河南工程学院 | 基于布料模拟算法的电力线提取方法和系统 |
US10909744B1 (en) * | 2019-05-10 | 2021-02-02 | Facebook Technologies, Llc | Simulating garment with wrinkles based on physics based cloth simulator and machine learning model |
WO2021224936A1 (en) * | 2020-05-07 | 2021-11-11 | Mimyk Medical Simulations Private Limited | Method and system for real-time simulation of elastic body |
CN114299200A (zh) * | 2021-12-31 | 2022-04-08 | 网易(杭州)网络有限公司 | 布料动画处理方法及装置、电子设备、存储介质 |
CN114662172A (zh) * | 2022-05-19 | 2022-06-24 | 武汉纺织大学 | 一种基于神经网络的服装布料动态仿真模拟方法 |
-
2022
- 2022-07-19 CN CN202210847774.2A patent/CN114925552B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070085851A1 (en) * | 2005-10-19 | 2007-04-19 | Matthias Muller | Method of simulating dynamic objects using position based dynamics |
CN101984443A (zh) * | 2010-11-10 | 2011-03-09 | 北京航空航天大学 | 一种改进的柔性织物碰撞处理方法 |
US20150242546A1 (en) * | 2014-02-21 | 2015-08-27 | Inyong JEON | Method of Cloth Simulation using Constrainable Multigrid |
US20170351793A1 (en) * | 2016-06-01 | 2017-12-07 | Disney Enterprises, Inc. | Algebraic multigrid method for cloth simulation |
CN106407605A (zh) * | 2016-11-01 | 2017-02-15 | 南京大学 | 一种三维服装的粒子化计算机动态仿真方法 |
US20190095558A1 (en) * | 2017-09-25 | 2019-03-28 | Nvidia Corporation | Position-based dynamics simulation |
CN109118561A (zh) * | 2018-07-24 | 2019-01-01 | 西北农林科技大学 | 一种基于位置的层次化动态模拟方法 |
CN110765565A (zh) * | 2018-07-25 | 2020-02-07 | 真玫智能科技(深圳)有限公司 | 一种布料仿真碰撞的方法及装置 |
US10909744B1 (en) * | 2019-05-10 | 2021-02-02 | Facebook Technologies, Llc | Simulating garment with wrinkles based on physics based cloth simulator and machine learning model |
WO2021224936A1 (en) * | 2020-05-07 | 2021-11-11 | Mimyk Medical Simulations Private Limited | Method and system for real-time simulation of elastic body |
CN111651894A (zh) * | 2020-06-16 | 2020-09-11 | 北京中科深智科技有限公司 | 一种布料形变实时模拟方法 |
CN111859772A (zh) * | 2020-07-07 | 2020-10-30 | 河南工程学院 | 基于布料模拟算法的电力线提取方法和系统 |
CN114299200A (zh) * | 2021-12-31 | 2022-04-08 | 网易(杭州)网络有限公司 | 布料动画处理方法及装置、电子设备、存储介质 |
CN114662172A (zh) * | 2022-05-19 | 2022-06-24 | 武汉纺织大学 | 一种基于神经网络的服装布料动态仿真模拟方法 |
Non-Patent Citations (1)
Title |
---|
郑华等: "基于规则网格的层次化布料动态模拟方法", 《计算机应用研究》 * |
Also Published As
Publication number | Publication date |
---|---|
CN114925552B (zh) | 2022-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xia et al. | Dynamic view-dependent simplification for polygonal models | |
Turquin et al. | A sketch-based interface for clothing virtual characters | |
Wang et al. | Design automation for customized apparel products | |
CN102332180B (zh) | 一种基于立体裁剪的三维服装造型与纸样设计方法 | |
Preiss | Constructing the solid representation from engineering projections | |
US6727898B2 (en) | Numerical analysis mesh generating method and apparatus | |
CN109711018A (zh) | 一种二维到三维的户型设计方法 | |
CN106228592A (zh) | 一种服装三维模型自动绑定蒙皮信息的方法 | |
CN103970518B (zh) | 一种逻辑窗口的3d渲染方法和装置 | |
CN111045754A (zh) | 由基于改变的试探法驱动的自动和交互式动画 | |
WO2007125780A1 (ja) | 編構造モデル生成プログラム、編構造モデル生成装置、及び編構造モデル生成方法 | |
US8823703B2 (en) | System and method for generating computer rendered cloth | |
CN111611702A (zh) | 数字孪生场景创建方法、装置、设备和存储介质 | |
US20110148871A1 (en) | Apparatus and method for rendering woven fabric material based on type of weave | |
CN108537891A (zh) | 三维材质和贴图数据自动转换到ue4的方法 | |
JP2003132099A (ja) | 解析モデル作成方法および解析モデル作成装置 | |
CN112348931B (zh) | 脚部反向运动控制方法、装置、设备及存储介质 | |
WO2023091086A2 (en) | Apparatus and method for simulating a three-dimensional object | |
CN114925552B (zh) | 基于hpbd的布料仿真方法及系统 | |
CN114299200A (zh) | 布料动画处理方法及装置、电子设备、存储介质 | |
CN117909514A (zh) | 一种文旅产业场景下的知识图谱设计方法及装置 | |
Zachmann et al. | Kinetic bounding volume hierarchies for deformable objects | |
Yu et al. | On generating realistic avatars: dress in your own style | |
CN112184894B (zh) | 三维建模的雕塑方法、装置及设备、存储介质 | |
CN113076571A (zh) | 一种三维衣物实时仿真编辑方法及系统 |
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 |