一种布人碰撞的方法及装置与流程

文档序号:18455245发布日期:2019-08-17 01:32阅读:272来源:国知局
一种布人碰撞的方法及装置与流程

本发明涉及计算机图形学及计算机辅助设计领域,尤其涉及一种布人碰撞的方法及装置。



背景技术:

利用计算机图形学及虚拟现实技术仿真自然真实人体运动过程的方法称为人体运动仿真,具体包括建立人体及其附属品的计算模型,仿真虚拟人在给定约束条件下自然真实的物理运动过程,并在计算机生成的虚拟环境中以三维图形方式逼真呈现该运动过程。由于自然真实人体表面有80%的面积被布料覆盖,因此布料的逼真仿真在逼真人体运动仿真中起着关键作用。布料是一种天然的或人工纤维的网状编织物,因此布料所构成的服装的外形并不像刚体一样固定不变,在力学特性上,布料具有各向异性、不可压缩、抗拉不抗弯等一些明显的特征,这些特性都给仿真带来了模拟上的难度。



技术实现要素:

本发明实施例的目的在于提供一种布人碰撞的方法及装置,旨在解决将服装与立体的人模进行匹配时,服装与人体进行三维虚拟碰撞的过程中,服装不出现陷入身体内部的问题。

本发明实施例是这样实现的,一种布人碰撞的方法,所述方法包括:

根据获取到的立体人模信息确定人体总包围盒;

将人体总包围盒划分为若干空间单元,并为划分后的空间单元建立对应的存储空间;

根据构成立体人模的三角面信息,确定三角面包围盒;

根据三角面包围盒确定三角面包围盒所占据的空间单元;

判断服装裁片顶点与三角面的位置关系,并将距离服装裁片顶点最近的三角面信息记录在服装裁片顶点所在的空间单元所对应的存储空间;

并行计算各存储空间中服装裁片顶点与三角面的空间位置关系,进而将内陷的服装裁片顶点外移。

在其中一个实施例中,所述建立人体总包围盒的步骤包括:

设定人体总包围盒中心点:

根据中心点信息在预设范围内确定人体总包围盒外围的顶点。

在其中一个实施例中,所述确定人体总包围盒外围的顶点的具体步骤为:确定人体总包围盒斜对角的两个顶点。

在其中一个实施例中,所述将人体总包围盒划分为若干空间单元的步骤具体包括:

设定对人体总包围盒进行空间划分的阀值,并根据划分结果测算计算时间;

根据二分法确定对人体总包围盒进行空间划分的区间值,并确定对人体总包围盒划分为空间单元的个数。

在其中一个实施例中,所述为划分后的空间单元建立对应的存储空间的步骤包括:

为划分后的空间单元建立一一对应的空间单元存储索引表;

根据空间单元存储索引表建立索引表与存储空间的对应关系。

在其中一个实施例中,所述判断服装裁片顶点与三角面的位置关系,并将距离服装裁片顶点最近的三角面信息记录在服装裁片顶点所在的空间单元所对应的存储空间的步骤包括:

根据服装裁片信息确定服装裁片顶点所对应的三角面;

判断服装裁片顶点与三角面的空间位置关系,若判断服装裁片顶点距离三角面最近,则将三角面信息记录在服装裁片顶点所在的空间单元所对应的存储空间。

在其中一个实施例中,所述将三角面信息记录在服装裁片顶点所在的空间单元所对应的存储空间的步骤之后还包括:

当判断有新的三角面距离同一服装裁片顶点更近时,则将新的三角面信息记录在服装裁片顶点所在的空间单元所对应的存储空间。

本发明实施例的另一目的在于提供一种布人碰撞的装置,所述装置包括:

包围盒确定单元,用于根据获取到的立体人模信息确定人体总包围盒;

空间划分单元,用于将人体总包围盒划分为若干空间单元,并为划分后的空间单元建立对应的存储空间;

三角盒确定单元,用于根据构成立体人模的三角面信息,确定三角面包围盒;

空间确定单元,用于根据三角面包围盒确定三角面包围盒所占据的空间单元;

存储判断单元,用于判断服装裁片顶点与三角面的位置关系,并将距离服装裁片顶点最近的三角面信息记录在服装裁片顶点所在的空间单元所对应的存储空间;

计算外移单元,用于并行计算各存储空间中服装裁片顶点与三角面的空间位置关系,进而将内陷的服装裁片顶点外移。

在其中一个实施例中,所述包围盒确定单元还包括:

中心点设定单元,用于设定人体总包围盒中心点:

顶点确定单元,用于根据中心点信息在预设范围内确定人体总包围盒外围的顶点。

在其中一个实施例中,所述顶点确定单元还包括斜对角确定单元,用于确定人体总包围盒斜对角的两个顶点。

在其中一个实施例中,所述空间划分单元还包括:

测算单元,用于设定对人体总包围盒进行空间划分的阀值,并根据划分结果测算计算时间;

个数确定单元,用于根据二分法确定对人体总包围盒进行空间划分的区间值,并确定对人体总包围盒划分为空间单元的个数。

在其中一个实施例中,所述空间划分单元还包括:

索引表建立单元,用于为划分后的空间单元建立一一对应的空间单元存储索引表;

存储空间对应单元,用于根据空间单元存储索引表建立索引表与存储空间的对应关系。

在其中一个实施例中,所述存储判断单元还包括:

三角面确定单元,用于根据服装裁片信息确定服装裁片顶点所对应的三角面;

位置关系判断单元,用于判断服装裁片顶点与三角面的空间位置关系,若判断服装裁片顶点距离三角面最近,则将三角面信息记录在服装裁片顶点所在的空间单元所对应的存储空间。

在其中一个实施例中,所述存储判断单元还包括:

更新单元,用于当判断有新的三角面距离同一服装裁片顶点更近时,则将新的三角面信息记录在服装裁片顶点所在的空间单元所对应的存储空间。

本发明实施例通过一种布人碰撞的方法及装置,通过立体人模确定人体总包围盒,之后对人体总包围盒进行空间划分划分为若干个规范的空间单元,之后确定三角面所在的空间单元,再将三角面信息记录在服装裁片顶点所对应的三角面所占据的空间单元,通过这种方式三角面被分散记录在不同的空间单元,而不同的空间单元又有不同的存储空间与之进行对应,而针对不同的存储单元在计算机进行计算处理时可以进行并行计算处理,最终实现在判断服装裁片顶点与三角面的具体位置关系时能够在计算机内部并行计算,通过并行计算的方式可以大大的缩短空间计算所需要的时间,以在较短的时间内完成布人碰撞所需要的空间位置关系的确定,最终将布移至身体外侧,完成布人碰撞及布人碰撞的响应。

附图说明

图1是本发明第一实施例提供的一种布人碰撞的方法的实现流程图;

图2是本发明第二实施例提供的一种布人碰撞的方法的实现流程图;

图3是本发明第三实施例提供的一种布人碰撞的装置的结构图;以及

图4是本发明第四实施例提供的一种布人碰撞的装置的结构图。

具体实施方式

为了使本领域的技术人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

以下结合具体实施例对本发明的具体实现进行详细描述:

实施例一:

图1示出了本发明第一实施例提供的一种服装与人体模型的匹配方法的实现流程,详述如下:

在步骤s101中,根据获取到的立体人模信息确定人体总包围盒。

在具体实施过程中,首先系统先获取构成人体模型的立体人模信息和适配该人体模型的服装信息,之后对获取到的立体人模信息进行处理,具体处理的方式为确定立体人模信息的空间外径边界,即确定出一个人体总包围盒。

在步骤s102中,将人体总包围盒划分为若干空间单元,并为划分后的空间单元建立对应的存储空间。

在具体实施过程中,在确定了立体人模的空间外边界以后,需要将空间外边界所确定的人体总包围盒进行空间划分,即将人体总包围盒划分为若干个规则的空间单元,例如:整个的人体总包围盒为1*1*1规格,划分后的人体总保卫盒可以为2*2*2规格或者2*3*2规格,即将人体总包围盒划分为8个空间单元或者12个空间单元。具体划分空间单元的个数根据实际情况进行调整设置例如划分为50*60*50规格,在划分成若干个空间单元以后为划分的空间单元建立对应的存储空间,所建立的存储空间需要与划分的空间单元进行对应。

在步骤s103中,根据构成立体人模的三角面信息,确定三角面包围盒。

在具体实施过程中,系统所获取到的构成立体人模的立体信息是有若干个三角面构成,即立体人模中人模外形由若干个大小不一的三角面构成,因各三角面的大小,所在的平面也各不相同,需要根据构成立体人模的三角面信息确定个三角面的空间外径边界,之后根据三角面的空间外径边界确定各个三角面的外包围盒。

在步骤s104中,根据三角面包围盒确定三角面包围盒所占据的空间单元。

在具体实施过程中,在确定了三角面的包围盒以后,根据三角面的包围盒即可以确定三角面包围盒所占据的划分出来的空间单元,因每个三角面包围盒未必占据若干个完整的空间单元,此处进行确认三角面所占据的空间单元时采用的方案为,只要三角面占据由该空间单元,就认为占据该空间单元。

在步骤s105中,判断服装裁片顶点与三角面的位置关系,并将距离服装裁片顶点最近的三角面信息记录在服装裁片顶点所在的空间单元所对应的存储空间。

在具体实施过程中,根据获取到的适配该人体模型的服装信息得到服装裁片信息,再得到服装裁片的顶点信息,判断各服装裁片顶点与服装裁片所对应的三角面的位置关系,若判断一个服装裁片顶点与一个三角面距离最近,就将该三角面的信息记录在服装裁片顶点所在的空间单元的对应的存储空间内。

在步骤s106中,并行计算各存储空间中服装裁片顶点与三角面的空间位置关系,进而将内陷的服装裁片顶点外移。

在具体实施过程中,在将三角面信息分别记录在各存储空间内后,由于各三角面的信息分别记录在不同的存储空间里,而针对不同的存储空间可以分别进行数据的访问或者计算,此时便可以通过并行计算的方式对存储在各个存储空间内的三角面与服装裁片顶点的空间位置关系进行并行计算,得到各个服装裁片顶点与三角面的空间位置关系,在得到具体的位置关系以后,便可以将内陷于身体内部的顶点进行位移处理,将内陷的服装裁片顶点外移到身体外部,完成服装的布与人体的布人碰撞及响应。达到服装不会出现内陷身体的数据异常问题。

本发明实施例通过上述方式,一种布人碰撞的方法,通过立体人模确定人体总包围盒,之后对人体总包围盒进行空间划分划分为若干个规范的空间单元,之后确定三角面所在的空间单元,再将三角面信息记录在服装裁片顶点所对应的空间单元,通过这种方式三角面信息被分散记录在不同的空间单元,而不同的空间单元又有不同的存储空间与之进行对应,而针对不同的存储单元在计算机进行计算处理时可以进行并行计算处理,最终实现在判断服装裁片顶点与三角面的具体位置关系时能够在计算机内部并行计算,通过并行计算的方式可以大大的缩短空间计算所需要的时间,以在较短的时间内完成布人碰撞所需要的空间位置关系的确定,最终将布移至身体外侧,完成布人碰撞的响应。

实施例二:

图2示出了本发明第二实施例提供的一种布人碰撞的方法的实现流程,详述如下:

在步骤s201中,根据获取到的立体人模信息确定人体总包围盒。

在具体实施过程中,首先系统先获取构成人体模型的立体人模信息和适配该人体模型的服装信息,之后对获取到的立体人模信息进行处理,具体处理的方式为确定立体人模信息的空间外径边界,确定立体人模信息的空间外径边界可以采用多种方案,为了提高后续进行空间计算时的计算效率,优选的在确定立体人模信息的空间外径边界时首先设定一个人体总包围盒中心点,之后根据人体总包围盒中心点确定一个斜对角顶点,进而确定人体总包围盒的边界,由于所获取的立体人模信息为一个标准的正视数据,因此只需要确定一个中心点和立体斜对角的顶点即可以唯一确定立体空间,其中对于斜对角的斜线角度可以自由设定,即所确定的立体的人体总包围盒可以是一个规整的正方体,也可以是一个长方体。

在步骤s202中,设定对人体总包围盒进行空间划分的阀值,并根据划分结果测算计算时间。

在具体实施过程中,在确定了立体的人体总包围盒以后,需要对人体总包围盒进行空间划分,即将人体总包围盒所组成的立体空间划分为多少个小的立方体,例如:可以是整个的人体总包围盒为1*1*1规格,即将人体总包围盒划分为1个空间单元,人体总包围盒为2*2*2规格,即将人体总包围盒划分为8个空间单元,或者人体总包围盒为2*3*2规格,即将人体总包围盒划分为12个空间单元。具体划分空间单元的个数根据实际情况进行调整设置例如划分为50*60*50规格,由于划分为立方体的个数与计算所需消耗的时间成u型曲线,即划分为1*1*1个立方体所需花费的计算时间较多,划分为大于1*1*1个立方体在一定数值内呈现逐渐减小的趋势,而超过一定数值以后又再次呈现逐步上升的趋势,因此需要确定一个对人体总包围盒进行空间划分的最大阀值,该阀指应在上升曲线一侧,为了得到一个比较合理的阀指需要对划分的结果进行一个初步测算,测算计算时间,最终确定一个阀指数据。

在步骤s203中,根据二分法确定对人体总包围盒进行空间划分的区间值,并确定对人体总包围盒划分为空间单元的个数。

在具体实施过程中,在确定了对人体总包围盒进行空间划分的阀值以后,为了得到一个比较高效的划分立体空间个数的数值,需要确定一个最佳划分数值或区间,此时可以采用二分法在1*1*1到阀指之间进行取值估算测算计算时间,最终确定一个对人体总包围盒进行空间划分的区间值或最优值,然后根据该数值最终确定对人体总包围盒划分为空间单元的个数。

在步骤s204中,为划分后的空间单元建立一一对应的空间单元存储索引表。

在具体实施过程中,在确定了对人体总包围盒划分为空间单元的个数以后,需要为划分后的空间单元建立一一对应的空间单元存储索引表,具体的方式可以是对空间单元进行次序排列,然后根据排列建立一个一一对应的空间单元存储索引表,该索引表的作用在于建立一个映射关系,使唯一的一个空间单元有一个对应的索引表项目与该空间单元进行对应。

在步骤s205中,根据空间单元存储索引表建立索引表与存储空间的对应关系。

在具体实施过程中,在建立了空间单元一一对应的空间单元存储索引表以后,再在存储空间里建立对应的存储区位,这里的存储区位不需要与空间单元存储索引表一一对应,即可以是在有需要进行存储时再在索引表中建立对应存储区位与索引表的对应关系,当然也可以直接划分出足够多的存储区位以后,建立一一对应的索引表与存储空间的对应关系。

在步骤s206中,根据构成立体人模的三角面信息,确定三角面包围盒。

在具体实施过程中,由于构成立体人模的立体信息是有若干个三角面构成,即立体人模中人模外形由若干个大小不一的三角面构成,不同的三角面进行交错排列构成一个立体的人模,由于人体各个位置差异较大,因各三角面的大小,所在的平面也各不相同,为了后续便于进行计算需要根据构成立体人模的三角面信息确定各个三角面的空间外径边界,之后根据三角面的空间外径边界确定各个三角面的外包围盒。

在步骤s207中,根据三角面包围盒确定三角面包围盒所占据的空间单元。

在具体实施过程中,在确定了各个三角面的外包围盒以后,根据三角面的包围盒即可以确定三角面包围盒所占据的划分出来的空间单元,因每个三角面包围盒未必占据若干个完整的空间单元,此处进行确认三角面所占据的空间单元时采用的方案为,只要三角面有部分区域在某一个具体的空间单元内部,就认为该三角面占有该空间单元,就认为占据该空间单元。

在步骤s208中,根据服装裁片信息确定服装裁片顶点所对应的三角面。

在具体实施过程中,在获取到的适配该人体模型的服装信息以后,可以得到该服装的裁片信息以及各裁片所对应的在人体的位置信息,根据服装裁片与人体的位置对应关系,就可以得到服装裁片的顶点所对应的三角面,通过服装裁片与人体的位置对应关系,确定得到服装裁片的顶点所对应的人体位置的三角面信息。

在步骤s209中,判断服装裁片顶点与三角面的空间位置关系,若判断服装裁片顶点距离三角面最近,则将三角面信息记录在服装裁片顶点所在的空间单元所对应的存储空间。

在具体实施过程中,通过遍历三角面包围盒,即可得出三角面包围盒内的服装裁片顶点信息,进而判断具体的一个服装裁片的顶点与三角面的空间位置关系,在三角面包围盒内得出各个三角面与服装裁片顶点的距离信息,通过初步判断即可以确定该服装裁片顶点距离具体的哪一个三角面最近,即对于一个具体的服装裁片顶点,其周围有若干个三角面,找出具体的距离该服装裁片顶点最近的三角面,之后将该距离服装裁片顶点最近的三角面信息记录在服装裁片顶点所在的空间单元所对应的存储空间里,这样就实现了顶点与空间单元物理位置的初步判断,并将距离服装裁片顶点最近的三角面信息记录在空间单元所对应的存储空间内。

在步骤s210中,当判断有新的三角面距离同一服装裁片顶点更近时,则将新的三角面信息记录在服装裁片顶点所在的空间单元所对应的存储空间。

在具体实施过程中,在将一个具体的三角面信息记录在一个具体的空间单元所对应的存储空间以后,若发现一个新的三角面信息距离同一个服装裁片顶点更近,需要记录在同一个空间单元所对应的存储空间内时,便将新的三角面信息记录在空间单元所对应的存储空间内,替换掉原来记录在该空间单元对应的存储空间内的信息,通过替换可以将服装裁片顶点里最有用的服装裁片顶点信息反应出来,并将三角面信息记录在更合适的存储空间内。

在步骤s211中,并行计算各存储空间中服装裁片顶点与三角面的空间位置关系,进而将内陷的服装裁片顶点外移。

在具体实施过程中,在将三角面信息分别记录在各存储空间内后,由于各三角面的信息分别记录在不同的存储空间里,而针对不同的存储空间可以分别进行数据的访问或者计算,此时便可以通过并行计算的方式对存储在各个存储空间内的服装裁片顶点与三角面的空间位置关系进行并行计算,得到各个服装裁片顶点与三角面的空间位置关系,由于立体人模信息本身有各个三角面的法向量信息,在得到具体的位置关系以后,便可以将内陷于身体内部的顶点沿着法向量进行位移处理,将内陷的服装裁片顶点外移到身体外部,完成服装的布与人体的布人碰撞。达到服装不会出现内陷身体的数据异常问题。

本发明实施例通过上述方式,一种布人碰撞的方法,通过立体人模确定人体总包围盒,之后对人体总包围盒进行空间划分划分为若干个规范的空间单元,之后确定三角面所在的空间单元,再将三角面信息记录在服装裁片顶点所对应占据的空间单元,通过这种方式三角面被分散记录在不同的空间单元,而不同的空间单元又有不同的存储空间与之进行对应,同时通过三角面信息的替换可以剔除掉无用的服装裁片顶点信息,而针对不同的存储单元在计算机进行计算处理时可以进行并行计算处理,最终实现在判断服装裁片顶点与三角面的具体位置关系时能够在计算机内部并行计算,通过并行计算的方式可以大大的缩短空间计算所需要的时间,之后将内陷与体内的顶点沿着法向量外移,实现了在较短的时间内完成布人碰撞所需要的空间位置关系的确定,以及偏移的顶点的外移,完成了布与人,即服装与立体人模在虚拟立体空间中的空间碰撞和碰撞后的响应。

实施例三:

图3示出了本发明第三实施例提供的一种布人碰撞的装置的结构图,为了便于说明,仅示出了与本发明实施例相关的部分。

包围盒确定单元301,用于根据获取到的立体人模信息确定人体总包围盒。

在具体实施过程中,包围盒确定单元首先系统先获取构成人体模型的立体人模信息和适配该人体模型的服装信息,之后对获取到的立体人模信息进行处理,具体处理的方式为确定立体人模信息的空间外径边界,即确定出一个人体总包围盒。

空间划分单元302,用于将人体总包围盒划分为若干空间单元,并为划分后的空间单元建立对应的存储空间。

在具体实施过程中,空间划分单元在确定了立体人模的空间外边界以后,需要将空间外边界所确定的人体总包围盒进行空间划分,即将人体总包围盒划分为若干个规则的空间单元,例如:整个的人体总包围盒为1*1*1规格,划分后的人体总保卫盒可以为2*2*2规格或者2*3*2规格,即将人体总包围盒划分为8个空间单元或者12个空间单元。具体划分空间单元的个数根据实际情况进行调整设置例如划分为50*60*50规格,在划分成若干个空间单元以后为划分的空间单元建立对应的存储空间,所建立的存储空间需要与划分的空间单元进行对应。

三角盒确定单元303,用于根据构成立体人模的三角面信息,确定三角面包围盒。

在具体实施过程中,系统所获取到的构成立体人模的立体信息是有若干个三角面构成,即立体人模中人模外形由若干个大小不一的三角面构成,因各三角面的大小,所在的平面也各不相同,三角盒确定单元用于需要根据构成立体人模的三角面信息确定个三角面的空间外径边界,之后根据三角面的空间外径边界确定各个三角面的外包围盒。

空间确定单元304,用于根据三角面包围盒确定三角面包围盒所占据的空间单元。

在具体实施过程中,空间确定单元在确定了三角面的包围盒以后,根据三角面的包围盒即可以确定三角面包围盒所占据的划分出来的空间单元,因每个三角面包围盒未必占据若干个完整的空间单元,此处进行确认三角面所占据的空间单元时采用的方案为,只要三角面占据由该空间单元,就认为占据该空间单元。

存储判断单元305,用于判断服装裁片顶点与三角面的位置关系,并将距离服装裁片顶点最近的三角面信息记录在服装裁片顶点所在的空间单元所对应的存储空间。

在具体实施过程中,存储判断单元根据获取到的适配该人体模型的服装信息得到服装裁片信息,再得到服装裁片的顶点信息,判断各服装裁片顶点与服装裁片所对应的三角面的位置关系,若判断一个服装裁片顶点与一个三角面距离最近,就将该三角面的信息记录在服装裁片顶点所在的空间单元的对应的存储空间内。

计算外移单元306,用于并行计算各存储空间中服装裁片顶点与三角面的空间位置关系,进而将内陷的服装裁片顶点外移。

在具体实施过程中,计算外移单元在将三角面信息分别记录在各存储空间内后,由于各三角面的信息分别记录在不同的存储空间里,而针对不同的存储空间可以分别进行数据的访问或者计算,此时便可以通过并行计算的方式对存储在各个存储空间内的三角面与服装裁片顶点的空间位置关系进行并行计算,得到各个服装裁片顶点与三角面的空间位置关系,在得到具体的位置关系以后,便可以将内陷于身体内部的顶点进行位移处理,将内陷的服装裁片顶点外移到身体外部,完成服装的布与人体的布人碰撞及响应。达到服装不会出现内陷身体的数据异常问题。

本发明实施例通过上述方式,一种布人碰撞的装置,通过立体人模确定人体总包围盒,之后对人体总包围盒进行空间划分划分为若干个规范的空间单元,之后确定三角面所在的空间单元,再将三角面信息记录在服装裁片顶点所对应的空间单元,通过这种方式三角面信息被分散记录在不同的空间单元,而不同的空间单元又有不同的存储空间与之进行对应,而针对不同的存储单元在计算机进行计算处理时可以进行并行计算处理,最终实现在判断服装裁片顶点与三角面的具体位置关系时能够在计算机内部并行计算,通过并行计算的方式可以大大的缩短空间计算所需要的时间,以在较短的时间内完成布人碰撞所需要的空间位置关系的确定,最终将布移至身体外侧,完成布人碰撞的响应。

实施例四:

图4示出了本发明第四实施例提供的一种布人碰撞的装置的结构图,为了便于说明,仅示出了与本发明实施例相关的部分。

包围盒确定单元401,用于根据获取到的立体人模信息确定人体总包围盒。

在具体实施过程中,包围盒确定包括:中心点设定单元和顶点确定单元,中心点设定单元用于设定人体总包围盒中心点,顶点确定单元用于根据中心点信息在预设范围内确定人体总包围盒外围的顶点。其中顶点确定单元还包括斜对角确定单元,用于确定人体总包围盒斜对角的两个顶点。首先系统先获取构成人体模型的立体人模信息和适配该人体模型的服装信息,之后对获取到的立体人模信息进行处理,具体处理的方式为确定立体人模信息的空间外径边界,确定立体人模信息的空间外径边界可以采用多种方案,为了提高后续进行空间计算时的计算效率,优选的在确定立体人模信息的空间外径边界时首先设定一个人体总包围盒中心点,之后根据人体总包围盒中心点确定一个斜对角顶点,进而确定人体总包围盒的边界,由于所获取的立体人模信息为一个标准的正视数据,因此只需要确定一个中心点和立体斜对角的顶点即可以唯一确定立体空间,其中对于斜对角的斜线角度可以自由设定,即所确定的立体的人体总包围盒可以是一个规整的正方体,也可以是一个长方体。

测算单元402,用于设定对人体总包围盒进行空间划分的阀值,并根据划分结果测算计算时间。

在具体实施过程中,测算单元用于在确定了立体的人体总包围盒以后,需要对人体总包围盒进行空间划分,即将人体总包围盒所组成的立体空间划分为多少个小的立方体,例如:可以是整个的人体总包围盒为1*1*1规格,即将人体总包围盒划分为1个空间单元,人体总包围盒为2*2*2规格,即将人体总包围盒划分为8个空间单元,或者人体总包围盒为2*3*2规格,即将人体总包围盒划分为12个空间单元。具体划分空间单元的个数根据实际情况进行调整设置例如划分为50*60*50规格,由于划分为立方体的个数与计算所需消耗的时间成u型曲线,即划分为1*1*1个立方体所需花费的计算时间较多,划分为大于1*1*1个立方体在一定数值内呈现逐渐减小的趋势,而超过一定数值以后又再次呈现逐步上升的趋势,因此需要确定一个对人体总包围盒进行空间划分的最大阀值,该阀指应在上升曲线一侧,为了得到一个比较合理的阀指需要对划分的结果进行一个初步测算,测算计算时间,最终确定一个阀指数据。

个数确定单元403,用于根据二分法确定对人体总包围盒进行空间划分的区间值,并确定对人体总包围盒划分为空间单元的个数。

在具体实施过程中,个数确定单元用于在确定了对人体总包围盒进行空间划分的阀值以后,为了得到一个比较高效的划分立体空间个数的数值,需要确定一个最佳划分数值或区间,此时可以采用二分法在1*1*1到阀指之间进行取值估算测算计算时间,最终确定一个对人体总包围盒进行空间划分的区间值或最优值,然后根据该数值最终确定对人体总包围盒划分为空间单元的个数。

索引表建立单元404,用于为划分后的空间单元建立一一对应的空间单元存储索引表。

在具体实施过程中,索引表建立单元用于在确定了对人体总包围盒划分为空间单元的个数以后,需要为划分后的空间单元建立一一对应的空间单元存储索引表,具体的方式可以是对空间单元进行次序排列,然后根据排列建立一个一一对应的空间单元存储索引表,该索引表的作用在于建立一个映射关系,使唯一的一个空间单元有一个对应的索引表项目与该空间单元进行对应。

存储空间对应单元405,用于根据空间单元存储索引表建立索引表与存储空间的对应关系。

在具体实施过程中,存储空间对应单元用于在建立了空间单元一一对应的空间单元存储索引表以后,再在存储空间里建立对应的存储区位,这里的存储区位不需要与空间单元存储索引表一一对应,即可以是在有需要进行存储时再在索引表中建立对应存储区位与索引表的对应关系,当然也可以直接划分出足够多的存储区位以后,建立一一对应的索引表与存储空间的对应关系。

三角盒确定单元406,用于根据构成立体人模的三角面信息,确定三角面包围盒。

在具体实施过程中,由于构成立体人模的立体信息是有若干个三角面构成,即立体人模中人模外形由若干个大小不一的三角面构成,不同的三角面进行交错排列构成一个立体的人模,由于人体各个位置差异较大,因各三角面的大小,所在的平面也各不相同,为了后续便于进行计算需要,三角盒确定单元用于根据构成立体人模的三角面信息确定各个三角面的空间外径边界,之后根据三角面的空间外径边界确定各个三角面的外包围盒。

空间确定单元407,用于根据三角面包围盒确定三角面包围盒所占据的空间单元。

在具体实施过程中,空间确定单元用于在确定了各个三角面的外包围盒以后,根据三角面的包围盒即可以确定三角面包围盒所占据的划分出来的空间单元,因每个三角面包围盒未必占据若干个完整的空间单元,此处进行确认三角面所占据的空间单元时采用的方案为,只要三角面有部分区域在某一个具体的空间单元内部,就认为该三角面占有该空间单元,就认为占据该空间单元。

三角面确定单元408,用于根据服装裁片信息确定服装裁片顶点所对应的三角面。

在具体实施过程中,三角面确定单元用于在获取到的适配该人体模型的服装信息以后,可以得到该服装的裁片信息以及各裁片所对应的在人体的位置信息,根据服装裁片与人体的位置对应关系,就可以得到服装裁片的顶点所对应的三角面,通过服装裁片与人体的位置对应关系,确定得到服装裁片的顶点所对应的人体位置的三角面信息。

位置关系判断单元409,用于判断服装裁片顶点与三角面的空间位置关系,若判断服装裁片顶点距离三角面最近,则将三角面信息记录在服装裁片顶点所在的空间单元所对应的存储空间。

在具体实施过程中,位置关系判断单元通过遍历三角面包围盒,即可得出三角面包围盒内的服装裁片顶点信息,进而判断具体的一个服装裁片的顶点与三角面的空间位置关系,在三角面包围盒内得出各个三角面与服装裁片顶点的距离信息,通过初步判断即可以确定该服装裁片顶点距离具体的哪一个三角面最近,即对于一个具体的服装裁片顶点,其周围有若干个三角面,找出具体的距离该服装裁片顶点最近的三角面,之后将该距离服装裁片顶点最近的三角面信息记录在服装裁片顶点所在的空间单元所对应的存储空间里,这样就实现了顶点与空间单元物理位置的初步判断,并将距离服装裁片顶点最近的三角面信息记录在空间单元所对应的存储空间内。

更新单元410,用于当判断有新的三角面距离同一服装裁片顶点更近时,则将新的三角面信息记录在服装裁片顶点所在的空间单元所对应的存储空间。

在具体实施过程中,更新单元用于在将一个具体的三角面信息记录在一个具体的空间单元所对应的存储空间以后,若发现一个新的三角面信息距离同一个服装裁片顶点更近,需要记录在同一个空间单元所对应的存储空间内时,便将新的三角面信息记录在空间单元所对应的存储空间内,替换掉原来记录在该空间单元对应的存储空间内的信息,通过替换可以将服装裁片顶点里最有用的服装裁片顶点信息反应出来,并将三角面信息记录在更合适的存储空间内。

计算外移单元411,用于并行计算各存储空间中服装裁片顶点与三角面的空间位置关系,进而将内陷的服装裁片顶点外移。

在具体实施过程中,计算外移单元用于在将三角面信息分别记录在各存储空间内后,由于各三角面的信息分别记录在不同的存储空间里,而针对不同的存储空间可以分别进行数据的访问或者计算,此时便可以通过并行计算的方式对存储在各个存储空间内的服装裁片顶点与三角面的空间位置关系进行并行计算,得到各个服装裁片顶点与三角面的空间位置关系,由于立体人模信息本身有各个三角面的法向量信息,在得到具体的位置关系以后,便可以将内陷于身体内部的顶点沿着法向量进行位移处理,将内陷的服装裁片顶点外移到身体外部,完成服装的布与人体的布人碰撞。达到服装不会出现内陷身体的数据异常问题。

本发明实施例通过上述方式,一种布人碰撞的装置,通过立体人模确定人体总包围盒,之后对人体总包围盒进行空间划分划分为若干个规范的空间单元,之后确定三角面所在的空间单元,再将三角面信息记录在服装裁片顶点所对应占据的空间单元,通过这种方式三角面被分散记录在不同的空间单元,而不同的空间单元又有不同的存储空间与之进行对应,同时通过三角面信息的替换可以剔除掉无用的服装裁片顶点信息,而针对不同的存储单元在计算机进行计算处理时可以进行并行计算处理,最终实现在判断服装裁片顶点与三角面的具体位置关系时能够在计算机内部并行计算,通过并行计算的方式可以大大的缩短空间计算所需要的时间,之后将内陷与体内的顶点沿着法向量外移,实现了在较短的时间内完成布人碰撞所需要的空间位置关系的确定,以及偏移的顶点的外移,完成了布与人,即服装与立体人模在虚拟立体空间中的空间碰撞和碰撞后的响应。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1