技术新讯 > 计算推算,计数设备的制造及其应用技术 > 模型仿真方法、电子设备、存储介质、计算机程序产品与流程  >  正文

模型仿真方法、电子设备、存储介质、计算机程序产品与流程

  • 国知局
  • 2024-07-31 23:03:06

本申请涉及仿真,特别涉及一种模型仿真方法、电子设备、计算机可读存储介质、计算机程序产品。

背景技术:

1、在数字仿真或者图形学领域里,如果网格内存在相交的三角形会极大影响模型仿真的最终效果。在一些对于呈现效果要求严格的场景里,即使少量相交也会产生很大的瑕疵。参见图1,为本申请一实施例提供的网格穿透的示意图,图1左侧的人物模型的手部位置与大腿外侧存在网格穿透的问题,也就是手部三角形与大腿外侧三角形相交,网格穿透的位置经放大如图1右侧图像所示。

2、对于不同网格,网格穿透问题的处理方式是不同的。在物理仿真系统中,可以大致将网格分为边界网格和动力学网格。其中,边界网格是用户输入的网格,这些网格数据作为仿真系统中的边界条件,这些网格每一帧的运动状态都是事先指定的。动力学网格仅指定初始位置,后续每一帧的位置由仿真系统根据动力学规律求解得到。比如:在布料仿真场景中,骨骼动画的人体网格驱动布料网格运动,完成整个走秀动画仿真,这里,人体网格为边界网格,布料网格为动力学网格。

3、相关方案中,如果用户输入的边界网格存在相交,需要由用户自身通过肉眼观察相互穿透的网格,然后手动对每处穿透进行编辑,效率低下。而仿真系统对边界网格往往不做处理,使得存在穿透的边界网格导致动力学网格也出现穿透的问题,影响后续仿真的整体效果。以图1的场景为例,人体网格在小腿内侧存在穿透,会导致裤子在小腿内侧的碰撞难以处理,引起裤子的网格进一步穿透。其中,人体网格为边界网格,裤子的网格为动力学网格。如果是动力学网格存在相交,物理仿真中会采取解除力的方法,即找到所有相交的边-三角形对后,计算该边-三角形对的解除力。解除力的方向趋向使相交边-三角形对解开。在物理仿真系统中加入解除力之后,相交部分的三角形可以逐渐在一系列帧中解开或大致解开。然而,通过解除力解开穿透网格的缺点在于无法保证在下一帧一定能将当前帧穿透的三角形解开,因为解除力的计算只能获得方向及大小的大致趋势,可能不够准确,并且,在一个物理仿真系统中一个力往往要与其它力相互作用,使得网格相互碰撞穿透的问题更为复杂。因此,通过计算解除力解决动力学网格的穿透问题的效果并不理想。

4、有鉴于此,亟需一种解穿透方法,对于边界网格和动力学网格存在的穿透问题实现良好的处理效果。

技术实现思路

1、本申请实施例的目的在于提供一种模型仿真方法、电子设备、存储介质、计算机程序产品,用于在不涉及解除力的情况下解决仿真过程中存在的网格穿透问题。

2、一方面,本申请提供了一种模型仿真方法,包括:

3、针对当前帧场景的初始边界网格和上一帧目标场景的边界网格,进行连续碰撞检测,得到第一结果;所述第一结果表示存在碰撞的点-三角形对,以及每一点-三角形对的碰撞时间;

4、分别将每一点-三角形对中的点和三角形调整至该点-三角形对的碰撞时间时的位置,得到所述当前帧场景的修正后边界网格;

5、基于所述修正后边界网格进行动力学仿真,以驱动所述上一帧目标场景的动力学网格移动,得到所述当前帧场景的动力学网格。

6、在一实施例中,所述方法还包括:

7、输出所述当前帧场景的仿真结果;其中,所述仿真结果包括所述当前帧场景的初始边界网格的位置和动力学网格的位置。

8、在一实施例中,所述方法还包括:

9、将所述当前帧场景的修正后边界网格和动力学网格,作为最新的目标场景进行保存。

10、在一实施例中,所述进行连续碰撞检测,得到第一结果,包括:

11、通过空间加速结构对边界网格进行连续碰撞检测,得到第一结果。

12、在一实施例中,所述进行连续碰撞检测,得到第一结果,包括:

13、在进行连续碰撞检测时,当任一点与任一三角形之间的距离小于等于预设距离阈值时,确定该点与该三角形构成存在碰撞的点-三角形对;其中,所述距离阈值为仿真材料的预设厚度。

14、在一实施例中,所述分别将每一点-三角形对中的点和三角形调整至该点-三角形对的碰撞时间时的位置,包括:

15、针对每一点-三角形对,通过如下公式调整点和三角形的位置:

16、

17、

18、其中,v为点在碰撞时间的位置;v0为点在所述上一帧目标场景的位置;v1为点在所述当前帧场景的位置;th为碰撞时间;f为三角形在碰撞时间的位置;f0为三角形在所述上一帧目标场景的位置;f1为三角形在所述当前帧场景的位置。

19、在一实施例中,所述方法还包括:

20、针对离散帧场景,对所有网格进行离散碰撞检测,得到第二结果;所述第二结果指示存在碰撞的点-三角形对;

21、将所述第二结果指示的每一点-三角形对中点和三角形,分别在点到三角形的投影方向相互远离,直至该点-三角形对中的点回到三角形的表面,得到所述离散帧场景的修正后网格。

22、另一方面,本申请提供了一种电子设备,所述电子设备包括:

23、处理器;

24、用于存储处理器可执行指令的存储器;

25、其中,所述处理器被配置为执行上述模型仿真方法。

26、进一步的,本申请提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述模型仿真方法。

27、此外,本申请提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述模型仿真方法。

28、本申请方案,由仿真系统对边界网格进行连续碰撞检测,并基于检测得到的第一结果修正存在碰撞的点-三角形对,获得不存在穿透三角形的修正后边界网格,在修正后边界网格基础上进行动力学仿真,可以避免动力学网格进一步产生新的穿透问题,得到不存在穿透的当前帧场景的动力学网格。这一过程中,有效借助各个存在碰撞的点-三角形对的碰撞时间对边界网格进行解穿透,不涉及解除力的处理,简化了解穿透的过程,且能够获得理想的解穿透效果。

技术特征:

1.一种模型仿真方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

3.根据权利要求1所述的方法,其特征在于,所述方法还包括:

4.根据权利要求1所述的方法,其特征在于,所述进行连续碰撞检测,得到第一结果,包括:

5.根据权利要求1或4所述的方法,其特征在于,所述进行连续碰撞检测,得到第一结果,包括:

6.根据权利要求1所述的方法,其特征在于,所述分别将每一点-三角形对中的点和三角形调整至该点-三角形对的碰撞时间时的位置,包括:

7.根据权利要求1所述的方法,其特征在于,所述方法还包括:

8.一种电子设备,其特征在于,所述电子设备包括:

9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成权利要求1-7任意一项所述的模型仿真方法。

10.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1-7任意一项所述的模型仿真方法。

技术总结本申请提供一种模型仿真方法、电子设备、存储介质、计算机程序产品,包括:针对当前帧场景的初始边界网格和上一帧目标场景的边界网格,进行连续碰撞检测,得到第一结果;所述第一结果表示存在碰撞的点‑三角形对,以及每一点‑三角形对的碰撞时间;分别将每一点‑三角形对中的点和三角形调整至该点‑三角形对的碰撞时间时的位置,得到所述当前帧场景的修正后边界网格;基于所述修正后边界网格进行动力学仿真,以驱动所述上一帧目标场景的动力学网格移动,得到所述当前帧场景的动力学网格。本申请方案,在不涉及解除力的情况下解决了仿真过程中存在的网格穿透问题。技术研发人员:刘郴,刘泽高,王振东受保护的技术使用者:浙江凌迪数字科技有限公司技术研发日:技术公布日:2024/7/29

本文地址:https://www.jishuxx.com/zhuanli/20240730/195788.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。