CN115588076A - 一种解决三维人体模型与衣服模型穿模的方法及电子设备 - Google Patents
一种解决三维人体模型与衣服模型穿模的方法及电子设备 Download PDFInfo
- Publication number
- CN115588076A CN115588076A CN202211168142.XA CN202211168142A CN115588076A CN 115588076 A CN115588076 A CN 115588076A CN 202211168142 A CN202211168142 A CN 202211168142A CN 115588076 A CN115588076 A CN 115588076A
- Authority
- CN
- China
- Prior art keywords
- human body
- clothes
- vertex
- target
- model
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/16—Cloth
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供一种解决三维人体模型与衣服模型穿模的方法及电子设备,用于解决三维人体模型与衣服模型穿模问题的前提下,减少计算量,提高角色性能。包括:针对目标对象的衣服模型中的任一衣服三角网格,将衣服三角网格在三维人体模型的骨架上投影,得到投影人体三角网格;按照预设方式对衣服三角网格与投影人体三角网格组成的三棱锥进行划分,得到各衣服几何体;基于各目标人体顶点的位置和各衣服几何体中各顶点的位置,确定与衣服模型发生穿模的各目标人体顶点,其中,所述目标人体顶点为初始帧位于衣服模型内的人体顶点;将与衣服模型发生穿模的各目标人体顶点的透明度分量设置为第一指定数值,将设置为第一指定数值的目标人体顶点渲染为全透明。
Description
技术领域
本申请涉及三维重建技术领域,尤其涉及一种解决三维人体模型与衣服模型穿模的方法及电子设备。
背景技术
传统的在三维人体模型和衣服模型都是独立的角色动画过程中,由于三维人体模型和衣物模型是分开驱动的,所以不可避免的会产生三维人体模型和衣服模型的穿模现象。例如,如图1所示,为三维人体模型和衣服模型的穿模现象的示意图。
现有技术中,为了解决三维人体模型和衣服模型的穿模现象,会加入整个角色模型的全局碰撞检测,全局碰撞检测一般分为先验(碰撞发生前检测)和后验(碰撞发生后检验)两种方式。其中,先验一般通过预测三维人体模型的运动轨迹来避免穿模的发生。而后验是在三维人体模型运动之后对三维人体模型的顶点之间的空间关系进行判断,以纠正三维人体模型的人体顶点位置使其不再进行穿模。但是由于不确定发生穿模的人体顶点的最终位置,所以需要不断更新和反复迭代来确定出顶点的最终位置,以使其不再进行穿模。所以,现有技术中的方式,需要极大的计算量,降低了角色动画的性能。
发明内容
本申请提供了一种解决三维人体模型与衣服模型穿模的方法及电子设备,用于解决三维人体模型与衣服模型的穿模问题的前提下,减少计算量,提高角色动画的性能。
第一方面,本申请实施例提供一种解决三维人体模型与衣服模型穿模的方法,所述方法包括:
针对目标对象的衣服模型中的任意一个衣服三角网格,将所述衣服三角网格在所述目标对象的三维人体模型的骨架上进行投影,得到与所述衣服三角网格相对应的投影人体三角网格;并,
按照预设方式对所述衣服三角网格与所述投影人体三角网格之间组成的三棱锥进行划分,得到指定数量的衣服几何体;
基于所述三维人体模型中各人体三角网格中的各目标人体顶点的位置和所述各衣服几何体中各顶点的位置,确定与所述衣服模型发生穿模的各目标人体顶点,其中,所述目标人体顶点为在初始帧时位于所述衣服模型内的人体顶点;
将与所述衣服模型发生穿模的各目标人体顶点的透明度分量设置为第一指定数值,并将设置为所述第一指定数值的各目标人体顶点渲染为全透明。
本申请第二方面提供一种电子设备,包括处理器和存储器,所述处理器和所述存储器通过总线连接;
所述存储器中存储有计算机程序,所述处理器被配置为基于所述计算机程序执行以下操作:
针对目标对象的衣服模型中的任意一个衣服三角网格,将所述衣服三角网格在所述目标对象的三维人体模型的骨架上进行投影,得到与所述衣服三角网格相对应的投影人体三角网格;并,
按照预设方式对所述衣服三角网格与所述投影人体三角网格之间组成的三棱锥进行划分,得到指定数量的衣服几何体;
基于所述三维人体模型中各人体三角网格中的各目标人体顶点的位置和所述各衣服几何体中各顶点的位置,确定与所述衣服模型发生穿模的各目标人体顶点,其中,所述目标人体顶点为在初始帧时位于所述衣服模型内的人体顶点;
将与所述衣服模型发生穿模的各目标人体顶点的透明度分量设置为第一指定数值,并将设置为所述第一指定数值的各目标人体顶点渲染为全透明。
根据本发明实施例提供的第三方面,提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序用于执行如第一方面所述的方法。
本申请的上述实施例中,通过将衣服模型中的衣服三角网格在三维人体模型的骨架上进行投影,得到投影人体三角网格,然后按照预设方式对所述衣服三角网格与所述投影人体三角网格之间组成的三棱锥进行划分,得到指定数量的衣服几何体,然后基于所述三维人体模型中各人体三角网格中的各目标人体顶点的位置和所述各衣服几何体中各顶点的位置,确定与所述衣服模型发生穿模的各目标人体顶点,最后将与所述衣服模型发生穿模的各目标人体顶点的透明度分量设置为第一指定数值,并将设置为所述第一指定数值的各目标人体顶点渲染为全透明。由此,本实施例中通过将与衣服模型发生穿模的人体顶点的透明度分量设置为第一指定数值,以使该人体顶点在渲染时为全透明,解决了该人体顶点与衣服模型穿模的问题,并且,本实施例中并不需要大量的迭代移动该顶点的位置来解决穿模的问题,所以,减少了计算量,提高了角色动画的性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示例性示出了本申请实施例提供的三维人体模型与衣服模型的穿模示意图;
图2示例性示出了本申请实施例提供的解决三维人体模型与衣服模型的穿模方法的应用场景示意图之一;
图3示例性示出了本申请实施例提供的解决三维人体模型与衣服模型的穿模方法的应用场景示意图之二;
图4示例性示出了本申请实施例提供的解决三维人体模型与衣服模型的穿模方法的应用场景示意图之三;
图5示例性示出了本申请实施例提供的解决三维人体模型与衣服模型的穿模方法的流程图之一;
图6示例性示出了本申请实施例提供的确定投影人体三角网格的流程示意图;
图7示例性示出了本申请实施例提供的三棱锥示意图之一;
图8示例性示出了本申请实施例提供的三棱锥示意图之二;
图9示例性示出了本申请实施例提供的三棱锥的划分示意图之一;
图10示例性示出了本申请实施例提供的三棱锥的划分示意图之二;
图11示例性示出了本申请实施例提供的三棱锥的划分示意图之三;
图12示例性示出了本申请实施例提供的三棱锥的划分示意图之四;
图13示例性示出了本申请实施例提供的三棱锥的划分示意图之五;
图14示例性示出了本申请实施例提供的三棱锥的划分示意图之六;
图15示例性示出了本申请实施例提供的另一三棱锥的各划分示意图;
图16A-16B示例性示出了本申请实施例提供的三维人体模型的示意图;
图17示例性示出了本申请实施例提供的确定与衣服模型发生穿模的各目标人体顶点的流程示意图;
图18示例性示出了本申请实施例提供的解决三维人体模型与衣服模型穿模的方法的流程图之二;
图19示例性示出了本申请实施例提供的解决三维人体模型与衣服模型穿模的装置的结构示意图;
图20示例性示出了本申请实施例提供的标定设备的硬件结构图。
具体实施方式
为使本申请的目的、实施方式和优点更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施方式进行清楚、完整地描述,显然,所描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。
基于本申请描述的示例性实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请所附权利要求保护的范围。此外,虽然本申请中公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整实施方式。
需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
本申请的说明书和权利要求书及上述附图中的术语″第一″、″第二″等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语″包括″和″具有″以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
本申请中使用的术语″模块″,是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
下面对本申请实施例的思想进行概述。
目前解决三维人体模型与衣服模型穿模的问题的相关技术中,需要不断更新和反复迭代来确定出发生穿模的人体顶点的最终位置,以使该人体顶点不再发生穿模。由此,需要极大的计算量,降低了角色动画的性能。
基于现有技术中计算量大,降低了角色动画性能的问题,本申请实施例提供了一种解决三维人体模型与衣服模型穿模的方法,通过将衣服模型中的衣服三角网格在三维人体模型的骨架上进行投影,得到投影人体三角网格,然后按照预设方式对所述衣服三角网格与所述投影人体三角网格之间组成的三棱锥进行划分,得到指定数量的衣服几何体,然后基于所述三维人体模型中各人体三角网格中的各目标人体顶点的位置和所述各衣服几何体中各顶点的位置,确定与所述衣服模型发生穿模的各目标人体顶点,最后将与所述衣服模型发生穿模的各目标人体顶点的透明度分量设置为第一指定数值,并将设置为所述第一指定数值的各目标人体顶点渲染为全透明。由此,本申请中通过将与衣服模型发生穿模的人体顶点的透明度分量设置为第一指定数值,以使该人体顶点在渲染时为全透明,解决了该人体顶点与衣服模型穿模的问题,并且,本申请中并不需要大量的迭代移动该顶点的位置来解决穿模的问题,所以,减少了计算量,提高了角色动画的性能。
下面结合附图详细描述本申请的实施例。
图2示例性示出了本申请实施例提供的解决三维人体模型与衣服模型穿模的方法的应用场景示意图;如图2所示,该应用场景中是以电子设备为服务器为例进行说明的。该应用场景中包括服务器210和终端设备220。服务器210可以通过单个服务器实现,也可以通过多个服务器实现。服务器210可以通过实体服务器实现,也可以通过虚拟服务器实现。
在一种可能的应用场景中,针对目标对象的衣服模型中的任意一个衣服三角网格,服务器210将所述衣服三角网格在所述目标对象的三维人体模型的骨架上进行投影,得到与所述衣服三角网格相对应的投影人体三角网格;并按照预设方式对所述衣服三角网格与所述投影人体三角网格之间组成的三棱锥进行划分,得到指定数量的衣服几何体;基于所述三维人体模型中各人体三角网格中的各目标人体顶点的位置和所述各衣服几何体中各顶点的位置,确定与所述衣服模型发生穿模的各目标人体顶点,其中,所述目标人体顶点为在初始帧时位于所述衣服模型内的人体顶点;最后服务器210将与所述衣服模型发生穿模的各目标人体顶点的透明度分量设置为第一指定数值,并将设置为所述第一指定数值的各目标人体顶点渲染为全透明后发送给终端设备220中进行显示。
如图3所示,为本申请实施例提供的解决三维人体模型与衣服模型穿模的方法的另一应用场景示意图,该应用场景中包括服务器210、终端设备220和存储器230。
在一种可能的应用场景中,服务器210从存储器230中获取目标对象的三维人体模型和衣服模型,然后服务器210针对目标对象的衣服模型中的任意一个衣服三角网格,将所述衣服三角网格在所述目标对象的三维人体模型的骨架上进行投影,得到与所述衣服三角网格相对应的投影人体三角网格;并按照预设方式对所述衣服三角网格与所述投影人体三角网格之间组成的三棱锥进行划分,得到指定数量的衣服几何体;然后服务器210基于所述三维人体模型中各人体三角网格中的各目标人体顶点的位置和所述各衣服几何体中各顶点的位置,确定与所述衣服模型发生穿模的各目标人体顶点,其中,所述目标人体顶点为在初始帧时位于所述衣服模型内的人体顶点;最后服务器210将与所述衣服模型发生穿模的各目标人体顶点的透明度分量设置为第一指定数值,并将设置为所述第一指定数值的各目标人体顶点渲染为全透明,并将渲染后的模型发生至终端设备220中进行显示。
如图4所示,该应用场景中包括终端设备220和存储器230,该应用场景中是以电子设备为终端设备为例进行说明的。
在一种可能的应用场景中,终端设备220从存储器230中获取目标对象的三维人体模型和衣服模型,终端设备220针对目标对象的衣服模型中的任意一个衣服三角网格,将所述衣服三角网格在所述目标对象的三维人体模型的骨架上进行投影,得到与所述衣服三角网格相对应的投影人体三角网格;并按照预设方式对所述衣服三角网格与所述投影人体三角网格之间组成的三棱锥进行划分,得到指定数量的衣服几何体;然后终端设备220基于所述三维人体模型中各人体三角网格中的各目标人体顶点的位置和所述各衣服几何体中各顶点的位置,确定与所述衣服模型发生穿模的各目标人体顶点,其中,所述目标人体顶点为在初始帧时位于所述衣服模型内的人体顶点;最后终端设备220将与所述衣服模型发生穿模的各目标人体顶点的透明度分量设置为第一指定数值,并将设置为所述第一指定数值的各目标人体顶点渲染为全透明。
其中,图2以及图3中的服务器210和终端设备220之间可通过通信网络进行信息交互,其中,通信网络采用的通信方式可分为无线通信方式或有线通信方式。
示例性的,服务器210可通过蜂窝移动通信技术接入网络,与终端设备220进行通信,以及服务器210可通过蜂窝移动通信技术接入网络,与终端设备220进行通信。其中,所述蜂窝移动通信技术,比如,包括第五代移动通信(5th Generation Mobile Networks,5G)技术。
可选的,服务器210可通过短距离无线通信方式接入网络,与终端设备220进行通信,以及服务器210可通过短距离无线通信方式接入网络,与终端设备220进行通信。其中,所述短距离无线通信方式,比如,包括无线保真(Wireless Fidelity,Wi-Fi)技术。
并且,本申请中的描述中仅就单个服务器210、单个终端设备220和单个存储器230加以详述,但是本领域技术人员应当理解的是,示出的服务器210、终端设备220和存储器230旨在表示本申请的技术方案涉及的服务器210、终端设备220和存储器230的操作。而非暗示对的服务器210、终端设备220和存储器230的数量、类型或是位置等具有限制。应当注意,如果向图示环境中添加附加模块或从其中去除个别模块,不会改变本申请的示例实施例的底层概念。
示例性的,终端设备220包括但不限于:可视化大屏、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(Mobile Intemet Device,MID)、可穿戴设备,虚拟现实(VirtualReality,VR)设备、增强现实(Augmented Reality,AR)设备、工业控制中的无线终端设备、无人驾驶中的无线终端设备、智能电网中的无线终端设备、运输安全中的无线终端设备、智慧城市中的无线终端设备,或智慧家庭中的无线终端设备等设备;终端设备上可以安装有相关的客户端,该客户端可以是软件(例如,浏览器、短视频软件等),也可以是网页、小程序等。
需要说明的是,本申请提出的解决三维人体模型与衣服模型穿模的方法不仅适用于图2、图3和图4所示的应用场景,还适用于任何有解决三维人体模型与衣服模型穿模的装置。
下面结合上述描述的应用场景,参考附图来描述本申请示例性实施方式解决三维人体模型与衣服模型穿模的方法,需要注意的是,上述应用场景仅是为了便于理解本申请的方法和原理而示出,本申请的实施方式在此方面不受任何限制。
如图5所示,为解决三维人体模型与衣服模型穿模的方法的流程示意图,可包括以下步骤:
步骤501:针对目标对象的衣服模型中的任意一个衣服三角网格,将所述衣服三角网格在所述目标对象的三维人体模型的骨架上进行投影,得到与所述衣服三角网格相对应的投影人体三角网格;
其中,所述骨架包括骨骼和骨骼节点。下面,对确定投影人体三角网格的具体方式进行详细的介绍,如图6所示,为确定投影人体三角网格的具体流程示意图,包括以下步骤:
步骤601:针对所述衣服三角网格中的任意一个衣服顶点,基于所述衣服顶点的位置和所述三维人体模型的骨架中的各骨骼的位置,得到所述衣服顶点分别与所述各骨骼之间的目标距离,其中,所述目标距离为所述衣服顶点与骨骼之间的最短距离;可通过公式(1)得到衣服顶点与任意一个骨骼之间的目标距离:
其中,d为衣服顶点与骨骼之间的距离,x0为衣服顶点的横坐标,y0为衣服顶点的纵坐标,z0为衣服顶点的竖坐标A、B、C和D为预设的骨骼对应的直线的系数。
步骤602:将与所述衣服顶点的目标距离最小的骨骼确定为目标骨骼,并将所述目标骨骼中与所述衣服顶点距离最短的骨骼点确定为目标骨骼点;
其中,本实施例中的骨骼点包括位于该骨骼上的各点,也包括位于该骨骼上的骨骼节点。且所述目标骨骼点为从所述衣服顶点向所述骨骼做垂线,将所述垂线与所述骨骼的交点确定为所述目标骨骼点。
步骤603:将所述衣服三角网格中各衣服顶点对应的目标骨骼点相连接,得到与所述衣服三角网格相对应的投影人体三角网格。
在执行完步骤603之后,针对任意一个衣服三角网格,将所述衣服三角网格和与所述衣服三角网格相对应的投影人体三角网格相连接,得到三棱锥。其中,具体的连接方式为:针对衣服三角网格中的任意一衣服顶点,将投影人体三角网格中与所述衣服顶点相对应的人体顶点与所述衣服顶点相连接。
步骤502:按照预设方式对所述衣服三角网格与所述投影人体三角网格之间组成的三棱锥进行划分,得到指定数量的衣服几何体;
如图7所示,为投影人体三角网格与衣服三角网格组成的三棱锥的示意图,其中,图7中三棱锥下面的三角网格为投影人体三角网格,三棱锥上面的三角网格是衣服三角网格,且图7中投射人体三角网格中的三个顶点位于两段骨骼上,因此图中三棱锥的上下两个面均是三角形。
如图8所示,为投影人体三角网格与衣服三角网格组成的三棱锥的另一示意图,其中,图8中的三棱锥为一种特殊的三棱锥,因为得到的投射人体三角网格的三个顶点位于同一段骨骼上,因此图8中三棱锥下边的面已成为一条线段。
其中,本实施例中的衣服几何体为四面体和/或三角形。下面,对两种三棱锥进行划分的方式进行详细的介绍,本实施例中是将每个三棱锥划分成三个四面体,具体的划分方式为:
1、三棱锥的上下两面均为三角形的划分方式,(该划分方式是将三棱锥划分成指定数量的四面体):
方式一:如图9所示,将三棱锥ABCA1B1C1分别按照截面A1BC、截面A1B1C进行分割,得到四面体AA1BC、四面体BA1B1C、四面体C1A1B1C。
方式二:如图10所示,将三棱锥ABCA1B1C1分别按照截面ABC1、截面BA1C1进行分割,得到四面提CABC1、四面体BAA1C1以及四面体BA1B1C1。
方式三:如图11所示,将三棱锥ABCA1B1C1分别按照截面A1BC、截面BA1C1进行分割,得到四面提AA1BC、四面体C1A1BC以及四面体BA1B1C1。
方式四:如图12所示,将三棱锥ABCA1B1C1分别按照截面AB1C1、截面AB1C进行分割,得到四面提A1AB1C1、四面体BCAB1以及四面体C1AB1C。
方式五:如图13所示,将三棱锥ABCA1B1C1分别按照截面A1B1C、截面AB1C进行分割,得到四面提A1AB1C1、四面体BCAB1以及四面体C1A1B1C。
方式六:如图14所示,将三棱锥ABCA1B1C1分别按照截面ABC1、截面AB1C1进行分割,得到四面提CABC1、四面体BAB1C1以及四面体AA1B1C。
2、三棱锥的上面为三角形下面为一条线段的划分方式(该划分方式是将三棱锥划分成两个四面体和一个三角形):
方式一:如图15中的(a)图所示,将三棱锥ABCA1B1C1分别按照截面A1BC、截面BB1C进行分割,得到四面体AA1BC、四面体BA1B1C、三角形B1C1C。
方式二:如图15中的(b)图所示,将三棱锥ABCA1B1C1分别按照截面ABC1、截面BA1C1进行分割,得到四面提CABC1、四面体BAA1C1以及三角形BA1C1。
方式三:如图15中的(c)图所示,将三棱锥ABCA1B1C1分别按照截面A1BC、截面BA1C1进行分割,得到四面提AA1BC、四面体C1A1BC以及三角形BA1C1。
方式四:如图15中的(d)图所示,将三棱锥ABCA1B1C1分别按照截面AB1C1、截面AB1C进行分割,得到四面提AB1CC1、四面体BCAB1以及三角形AA1C1。
方式五:如图15中的(e)图所示,将三棱锥ABCA1B1C1分别按照截面A1B1C、截面AB1C进行分割,得到四面体BCAB1、四面体A1B1CC1以及三角形AA1C。
方式六:如图15中的(f)图所示,将三棱锥ABCA1B1C1分别按照截面ABC1、截面AB1C1进行分割,得到四面提CABC1、四面体BAB1C1以及三角形AA1C1。
需要说明的是:前文所述的对三棱锥的划分方式仅用于举例说明,具体的划分方式可根据实际情况来进行选择设置,本实施例在此并不对三棱锥的划分方式进行限定,且本实施例中的三角形相当于一种特殊的四面体。
如图16A所示,为由人体三角网格组成的三维人体模型,当对各人体三角网格分别进行投影以及划分成指定数量的四面体之后,得到如图16B所示的三维人体模型,从图16B中可以看出,该三维人体模型是由多个四面体组成的。
步骤503:基于所述三维人体模型中各人体三角网格中的各目标人体顶点的位置和所述各衣服几何体中各顶点的位置,确定与所述衣服模型发生穿模的各目标人体顶点,其中,所述目标人体顶点为在初始帧时位于所述衣服模型内的人体顶点;
下面,首先对确定目标人体顶点的方式进行介绍:
在一个实施例中,通过以下方式确定所述目标人体顶点:
在初始帧时,针对所述三维人体模型的各人体三角网格中的任意一个人体顶点,按照指定顺序对各衣服几何体进行遍历,根据遍历的衣服几何体中各顶点的位置和所述人体顶点的位置,确定所述人体顶点在所述衣服几何体内的重心坐标;若所述重心坐标在指定范围内,则将所述人体顶点确定为所述目标人体顶点。
其中,衣服几何体包括四面体和三角形,确定人体顶点在衣服几何体内的重心坐标可包括以下两种方式:
1、若衣服几何体为四面体,可通过以下方程组(2)可得到所述人体顶点在所述衣服几何体内的重心坐标:
其中,x0为人体顶点的横坐标,y0为人体顶点的纵坐标,z0为人体顶点的竖坐标,x1、x2、x3和x4分别为四面体的四个顶点的横坐标,y1、y2、y3以及y4分别为四面体的四个顶点纵坐标,z1、z2、z3以及z4分别为四面体的四个顶点的竖坐标。(α,β,γ,δ)人体顶点在衣服几何体内的重心坐标。
2、若衣服几何体为三角形,可通过公式(3)得到所述人体顶点在衣服几何体内的重心坐标:
其中,x0为人体顶点的横坐标,y0为人体顶点的纵坐标,z0为人体顶点的竖坐标,x1、x2、x3分别为三角形三个顶点的横坐标,y1、y2、y3分别为三角形三个顶点纵坐标,z1、z2、z3分别为三角形三个顶点的竖坐标。(α,β,γ)人体顶点在衣服几何体内的重心坐标。
需要说明的是,人体顶点的位置坐标和衣服几何体中各顶点的位置坐标是已知的,所以,可以通过上述的方程组得到人体顶点在衣服几何体内的重心坐标。并且,本实施例中的指定顺序可根据实际情况来进行设置,本实施例在此并不对指定顺序进行限定。
由于在初始状态时就在衣服外面的人体顶点并不需要进行穿模的判断,因为该模型就是这样设置的,例如,穿短袖的三维人体模型,则手臂等部位的人体顶点就会在衣服模型的外部,所以,本申请需要在初始状态时确定出一开始就位于衣服模型内部的人体顶点,将这部分人体顶点确定为目标人体顶点,以确定出是否存在与衣服模型进行穿模的现象。
如图17所示,为确定与衣服模型发生穿模的各目标人体顶点的流程示意图,包括以下步骤:
步骤1701:针对任意一个目标人体顶点,按照指定顺序对所述各衣服几何体进行遍历,根据遍历到的衣服几何体中各顶点的位置和所述目标人体顶点的位置,确定所述目标人体顶点在所述衣服几何体内的重心坐标;
步骤1702:判断所述重心坐标是否在指定范围内,若是,则执行步骤1703,若否,则执行步骤1704;
其中,本实施例中的指定范围为各坐标轴对应的坐标均在[0,1]内,但是本实施例并不对指定范围进行限定,本实施例中的指定范围的具体值可根据实际情况来进行设置。
步骤1703:确定所述目标人体顶点未与所述衣服模型发生穿模,并停止对所述各衣服几何体的遍历;
步骤1704:判断是否存在未进行遍历的衣服几何体,若是,则返回执行步骤1701,若否,则执行步骤1705;
步骤1705:确定所述目标人体顶点与所述衣服模型发生穿模。
例如,以目标人体顶点包括目标人体顶点A和目标人体顶点B,衣服几何体包括衣服几何体1、衣服几何体2、衣服几何体3以及衣服几何体4为例进行说明。若目标人体顶点A在衣服几何体1中的重心坐标在指定范围内,则确定目标人体顶点A未与衣服模型发生穿模,则停止对衣服几何体进行遍历。然后继续判断目标人体顶点B是否发生与衣服模型穿模,若目标人体顶点B在衣服几何体1中的重心坐标不在指定范围内,则确定目标人体顶点B在衣服几何体1中发生穿模,继续对剩余的衣服几何体进行遍历,继续判断目标人体顶点B在衣服几何体2中的重心坐标是否在指定范围内,若确定目标人体顶点B在衣服几何体2中的重心坐标不在指定范围内,则确定目标人体顶点B在衣服几何体2中发生穿模。继续判断目标人体顶点B在衣服几何体3中的重心坐标是否在指定范围内,若确定目标人体顶点B在衣服几何体3中的重心坐标不在指定范围内,则确定目标人体顶点B在衣服几何体3中发生穿模。继续判断目标人体顶点B在衣服几何体4中的重心坐标是否在指定范围内,若确定目标人体顶点B在衣服几何体4中的重心坐标不在指定范围内,则确定目标人体顶点B在衣服几何体4中发生穿模。由于目标人体顶点B在各衣服几何体内均发生穿模,则最终确定目标人体顶点B与衣服模型发生穿模。
步骤504:将与所述衣服模型发生穿模的各目标人体顶点的透明度分量设置为第一指定数值,并将设置为所述第一指定数值的各目标人体顶点渲染为全透明。
本实施中将设置为第一指定数值的各目标人体顶点渲染为全透明,由此,解决了三维人体模型和衣服模型的穿模的问题,并且并不需要反复迭代,由此,减少了计算量,提高角色动画的性能。
在一个实施例中,将所述三维人体模型的各人体顶点中除与衣服模型发生穿模的各目标人体顶点之外的其他人体顶点的透明度分量设置为第二指定数值,并将设置为第二指定数值的各人体顶点渲染为不透明。
其中,在渲染管线中,顶点着色器后顶点经过光栅化之后进入片元着色器。根据各人体顶点的纹理坐标在对应的纹理图像中采样,获得像素的颜色值,但只取采样后颜色值的RGB三个分量,透明度分量保持步骤504中设置的值不改变。片元着色器之后进入逐片元操作阶段,进行透明度混合操作,完成一帧的渲染。由于穿透的顶点颜色值的透明度分量设置为了全透明,因此在最后的渲染结果中不可见,即实现了穿模问题的解决。
需要说明的是:本实施例中第一指定数值为0,第二指定数值为1。但是第一指定数值以及第二指定数值的具体指可根据实际情况来进行设置,本实施例在此并不对第一指定数值和第二指定数值的具体值进行限定。
为了进一步连接本申请中的技术方案,下面结合图18进行详细的说明,可包括以下步骤:
步骤1801:针对目标对象的衣服模型中的任意一个衣服三角网格中的任意一个衣服顶点,基于所述衣服顶点的位置和所述三维人体模型的骨架中的各骨骼的位置,得到所述衣服顶点分别与所述各骨骼之间的目标距离,其中,所述目标距离为所述衣服顶点与骨骼之间的最短距离;
步骤1802:将与所述衣服顶点的目标距离最小的骨骼确定为目标骨骼,并将所述目标骨骼中与所述衣服顶点距离最短的骨骼点确定为目标骨骼点;
步骤1803:将所述衣服三角网格中各衣服顶点对应的目标骨骼点相连接,得到与所述衣服三角网格相对应的投影人体三角网格;
步骤1804:按照预设方式对所述衣服三角网格与所述投影人体三角网格之间组成的三棱锥进行划分,得到指定数量的衣服几何体;
步骤1805:针对任意一个目标人体顶点,按照指定顺序对所述各衣服几何体进行遍历,根据遍历到的衣服几何体中各顶点的位置和所述目标人体顶点的位置,确定所述目标人体顶点在所述衣服几何体内的重心坐标;其中,所述目标人体顶点为在初始帧时位于所述衣服模型内的人体顶点;
步骤1806:判断所述重心坐标是否在指定范围内,若是,则执行步骤1807,若否,则执行步骤1808;
步骤1807:确定所述目标人体顶点未与所述衣服模型发生穿模,并停止对所述各衣服几何体的遍历;
步骤1808:判断是否还存在未进行遍历的衣服几何体,若是,则返回执行步骤1805,若否,则执行步骤1809;
步骤1809:确定所述目标人体顶点与所述衣服模型发生穿模;
步骤1810:将与所述衣服模型发生穿模的各目标人体顶点的透明度分量设置为第一指定数值,并将设置为所述第一指定数值的各目标人体顶点渲染为全透明;
步骤1811:将所述三维人体模型的各人体顶点中除与衣服模型发生穿模的各目标人体顶点之外的其他人体顶点的透明度分量设置为第二指定数值,并将设置为第二指定数值的各人体顶点渲染为不透明。
需要说明的是:步骤1810和步骤1811的执行顺序本实施例在此并不进行限定,可先执行步骤1810,再执行步骤1811。也可先执行步骤1811,再执行步骤1810。也可步骤1810和步骤1811同时执行。
基于相同的发明构思,本公开如上所述的解决三维人体模型与衣服模型穿模的方法还可以由一种解决三维人体模型与衣服模型穿模的装置实现。该解决三维人体模型与衣服模型穿模的装置的效果与前述方法的效果相似,在此不再赘述。
图19为根据本公开一个实施例的解决三维人体模型与衣服模型穿模的装置的结构示意图。
如图19所示,本公开的解决三维人体模型与衣服模型穿模的装置1900可以包括投影模块1910、三棱锥划分模块1920、穿模确定模块1930和第一透明度分量设置模块1940。
投影模块1910,用于针对目标对象的衣服模型中的任意一个衣服三角网格,将所述衣服三角网格在所述目标对象的三维人体模型的骨架上进行投影,得到与所述衣服三角网格相对应的投影人体三角网格;
三棱锥划分模块1920,用于按照预设方式对所述衣服三角网格与所述投影人体三角网格之间组成的三棱锥进行划分,得到指定数量的衣服几何体;
穿模确定模块1930,用于基于所述三维人体模型中各人体三角网格中的各目标人体顶点的位置和所述各衣服几何体中各顶点的位置,确定与所述衣服模型发生穿模的各目标人体顶点,其中,所述目标人体顶点为在初始帧时位于所述衣服模型内的人体顶点;
第一透明度分量设置模块1940,用于将与所述衣服模型发生穿模的各目标人体顶点的透明度分量设置为第一指定数值,并将设置为所述第一指定数值的各目标人体顶点渲染为全透明。
在一个实施例中,所述投影模块1910,具体用于:
针对所述衣服三角网格中的任意一个衣服顶点,基于所述衣服顶点的位置和所述三维人体模型的骨架中的各骨骼的位置,得到所述衣服顶点分别与所述各骨骼之间的目标距离,其中,所述目标距离为所述衣服顶点与骨骼之间的最短距离;以及,
将与所述衣服顶点的目标距离最小的骨骼确定为目标骨骼,并将所述目标骨骼中与所述衣服顶点距离最短的骨骼点确定为目标骨骼点;以及,
将所述衣服三角网格中各衣服顶点对应的目标骨骼点相连接,得到与所述衣服三角网格相对应的投影人体三角网格。
在一个实施例中,所述穿模确定模块1930,具体用于:
针对任意一个目标人体顶点,按照指定顺序对所述各衣服几何体进行遍历,根据遍历到的衣服几何体中各顶点的位置和所述目标人体顶点的位置,确定所述目标人体顶点在所述衣服几何体内的重心坐标;
若所述重心坐标在指定范围内,则确定所述目标人体顶点未与所述衣服模型发生穿模,并停止对所述各衣服几何体的遍历;
若所述重心坐标不在所述指定范围内,则返回按照指定顺序对所述各衣服几何体进行遍历的步骤,直至确定所述目标人体顶点在所述各衣服几何体内的重心坐标均不在所述指定范围内,则确定所述目标人体顶点与所述衣服模型发生穿模。
在一个实施例中,所述装置还包括:
目标人体顶点确定模块1950,用于通过以下方式确定所述目标人体顶点:
在初始帧时,针对所述三维人体模型的各人体三角网格中的任意一个人体顶点,按照指定顺序对各衣服几何体进行遍历,根据遍历的衣服几何体中各顶点的位置和所述人体顶点的位置,确定所述人体顶点在所述衣服几何体内的重心坐标;
若所述重心坐标在指定范围内,则将所述人体顶点确定为所述目标人体顶点。
在一个实施例中,所述装置还包括:
第二透明度分量设置模块1960,用于所述基于所述三维人体模型中各人体三角网格中的各目标人体顶点的位置和所述各衣服几何体中各顶点的位置,确定与衣服模型发生穿模的各目标人体顶点之后,将所述三维人体模型的各人体顶点中除与衣服模型发生穿模的各目标人体顶点之外的其他人体顶点的透明度分量设置为第二指定数值,并将设置为第二指定数值的各人体顶点渲染为不透明。
在介绍了本发明示例性实施方式的一种解决三维人体模型与衣服模型穿模的方法及装置之后,接下来,介绍根据本发明的另一示例性实施方式的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为″电路″、″模块″或″系统″。
在一些可能的实施方式中,根据本发明的电子设备可以至少包括至少一个处理器、以及至少一个计算机存储介质。其中,计算机存储介质存储有程序代码,当程序代码被处理器执行时,使得处理器执行本说明书上述描述的根据本发明各种示例性实施方式的解决三维人体模型与衣服模型穿模的方法中的步骤。例如,处理器可以执行如图5中所示的步骤501-504。
下面参照图20来描述根据本发明的这种实施方式的电子设备2000。图20显示的电子设备2000仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图20所示,电子设备2000以通用电子设备的形式表现。电子设备2000的组件可以包括但不限于:上述至少一个处理器2001、上述至少一个计算机存储介质2002、连接不同系统组件(包括计算机存储介质2002和处理器2001)的总线2003。
总线2003表示几类总线结构中的一种或多种,包括计算机存储介质总线或者计算机存储介质控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
计算机存储介质2002可以包括易失性计算机存储介质形式的可读介质,例如随机存取计算机存储介质(RAM)2020和/或高速缓存存储介质2022,还可以进一步包括只读计算机存储介质(ROM)2023。
计算机存储介质2002还可以包括具有一组(至少一个)程序模块2024的程序/实用工具2025,这样的程序模块2024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
电子设备2000也可以与一个或多个外部设备2004(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与电子设备2000交互的设备通信,和/或与使得该电子设备2000能与一个或多个其它电子设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口2005进行。并且,电子设备2000还可以通过网络适配器2006与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器2006通过总线2003与用于电子设备2000的其它模块通信。应当理解,尽管图中未示出,可以结合电子设备2000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,本发明提供的一种解决三维人体模型与衣服模型穿模的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本发明各种示例性实施方式的解决三维人体模型与衣服模型穿模的方法中的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取计算机存储介质(RAM)、只读计算机存储介质(ROM)、可擦式可编程只读计算机存储介质(EPROM或闪存)、光纤、便携式紧凑盘只读计算机存储介质(CD-ROM)、光计算机存储介质件、磁计算机存储介质件、或者上述的任意合适的组合。
本发明的实施方式的解决三维人体模型与衣服模型穿模的程序产品可以采用便携式紧凑盘只读计算机存储介质(CD-ROM)并包括程序代码,并可以在电子设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言-诸如Java、C++等,还包括常规的过程式程序设计语言-诸如″C″语言或类似的程序设计语言。程序代码可以完全地在用户电子设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户电子设备上部分在远程电子设备上执行、或者完全在远程电子设备或服务器上执行。在涉及远程电子设备的情形中,远程电子设备可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户电子设备,或者,可以连接到外部电子设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘计算机存储介质、CD-ROM、光学计算机存储介质等)上实施的计算机程序产品的形式。
本发明是参照根据本发明的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读计算机存储介质中,使得存储在该计算机可读计算机存储介质中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种解决三维人体模型与衣服模型穿模的方法,其特征在于,所述方法包括:
针对目标对象的衣服模型中的任意一个衣服三角网格,将所述衣服三角网格在所述目标对象的三维人体模型的骨架上进行投影,得到与所述衣服三角网格相对应的投影人体三角网格;并,
按照预设方式对所述衣服三角网格与所述投影人体三角网格之间组成的三棱锥进行划分,得到指定数量的衣服几何体;
基于所述三维人体模型中各人体三角网格中的各目标人体顶点的位置和所述各衣服几何体中各顶点的位置,确定与所述衣服模型发生穿模的各目标人体顶点,其中,所述目标人体顶点为在初始帧时位于所述衣服模型内的人体顶点;
将与所述衣服模型发生穿模的各目标人体顶点的透明度分量设置为第一指定数值,并将设置为所述第一指定数值的各目标人体顶点渲染为全透明。
2.根据权利要求1所述的方法,其特征在于,所述将所述衣服三角网格在所述目标对象的三维人体模型的骨架上进行投影,得到与所述衣服三角网格相对应的投影人体三角网格,包括:
针对所述衣服三角网格中的任意一个衣服顶点,基于所述衣服顶点的位置和所述三维人体模型的骨架中的各骨骼的位置,得到所述衣服顶点分别与所述各骨骼之间的目标距离,其中,所述目标距离为所述衣服顶点与骨骼之间的最短距离;以及,
将与所述衣服顶点的目标距离最小的骨骼确定为目标骨骼,并将所述目标骨骼中与所述衣服顶点距离最短的骨骼点确定为目标骨骼点;以及,
将所述衣服三角网格中各衣服顶点对应的目标骨骼点相连接,得到与所述衣服三角网格相对应的投影人体三角网格。
3.根据权利要求1所述的方法,其特征在于,所述基于所述三维人体模型中各人体三角网格中的各目标人体顶点的位置和所述各衣服几何体中各顶点的位置,确定与所述衣服模型发生穿模的各目标人体顶点,包括:
针对任意一个目标人体顶点,按照指定顺序对所述各衣服几何体进行遍历,根据遍历到的衣服几何体中各顶点的位置和所述目标人体顶点的位置,确定所述目标人体顶点在所述衣服几何体内的重心坐标;
若所述重心坐标在指定范围内,则确定所述目标人体顶点未与所述衣服模型发生穿模,并停止对所述各衣服几何体的遍历;
若所述重心坐标不在所述指定范围内,则返回按照指定顺序对所述各衣服几何体进行遍历的步骤,直至确定所述目标人体顶点在所述各衣服几何体内的重心坐标均不在所述指定范围内,则确定所述目标人体顶点与所述衣服模型发生穿模。
4.根据权利要求1或3所述的方法,其特征在于,通过以下方式确定所述目标人体顶点:
在初始帧时,针对所述三维人体模型的各人体三角网格中的任意一个人体顶点,按照指定顺序对各衣服几何体进行遍历,根据遍历的衣服几何体中各顶点的位置和所述人体顶点的位置,确定所述人体顶点在所述衣服几何体内的重心坐标;
若所述重心坐标在指定范围内,则将所述人体顶点确定为所述目标人体顶点。
5.根据权利要求1所述的方法,其特征在于,所述基于所述三维人体模型中各人体三角网格中的各目标人体顶点的位置和所述各衣服几何体中各顶点的位置,确定与衣服模型发生穿模的各目标人体顶点之后,所述方法还包括:
将所述三维人体模型的各人体顶点中除与衣服模型发生穿模的各目标人体顶点之外的其他人体顶点的透明度分量设置为第二指定数值,并将设置为第二指定数值的各人体顶点渲染为不透明。
6.一种电子设备,其特征在于,包括处理器和存储器,所述处理器和所述存储器通过总线连接;
所述存储器中存储有计算机程序,所述处理器被配置为基于所述计算机程序执行以下操作:
针对目标对象的衣服模型中的任意一个衣服三角网格,将所述衣服三角网格在所述目标对象的三维人体模型的骨架上进行投影,得到与所述衣服三角网格相对应的投影人体三角网格;并,
按照预设方式对所述衣服三角网格与所述投影人体三角网格之间组成的三棱锥进行划分,得到指定数量的衣服几何体;
基于所述三维人体模型中各人体三角网格中的各目标人体顶点的位置和所述各衣服几何体中各顶点的位置,确定与所述衣服模型发生穿模的各目标人体顶点,其中,所述目标人体顶点为在初始帧时位于所述衣服模型内的人体顶点;
将与所述衣服模型发生穿模的各目标人体顶点的透明度分量设置为第一指定数值,并将设置为所述第一指定数值的各目标人体顶点渲染为全透明。
7.根据权利要求6所述的电子设备,其特征在于,所述处理器执行所述将所述衣服三角网格在所述目标对象的三维人体模型的骨架上进行投影,得到与所述衣服三角网格相对应的投影人体三角网格,具体被配置为:
针对所述衣服三角网格中的任意一个衣服顶点,基于所述衣服顶点的位置和所述三维人体模型的骨架中的各骨骼的位置,得到所述衣服顶点分别与所述各骨骼之间的目标距离,其中,所述目标距离为所述衣服顶点与骨骼之间的最短距离;以及,
将与所述衣服顶点的目标距离最小的骨骼确定为目标骨骼,并将所述目标骨骼中与所述衣服顶点距离最短的骨骼点确定为目标骨骼点;以及,
将所述衣服三角网格中各衣服顶点对应的目标骨骼点相连接,得到与所述衣服三角网格相对应的投影人体三角网格。
8.根据权利要求6所述的电子设备,其特征在于,所述处理器执行所述基于所述三维人体模型中各人体三角网格中的各目标人体顶点的位置和所述各衣服几何体中各顶点的位置,确定与所述衣服模型发生穿模的各目标人体顶点,具体被配置为:
针对任意一个目标人体顶点,按照指定顺序对所述各衣服几何体进行遍历,根据遍历到的衣服几何体中各顶点的位置和所述目标人体顶点的位置,确定所述目标人体顶点在所述衣服几何体内的重心坐标;
若所述重心坐标在指定范围内,则确定所述目标人体顶点未与所述衣服模型发生穿模,并停止对所述各衣服几何体的遍历;
若所述重心坐标不在所述指定范围内,则返回按照指定顺序对所述各衣服几何体进行遍历的步骤,直至确定所述目标人体顶点在所述各衣服几何体内的重心坐标均不在所述指定范围内,则确定所述目标人体顶点与所述衣服模型发生穿模。
9.根据权利要求8所述的电子设备,其特征在于,所述处理器,还被配置为:
通过以下方式确定所述目标人体顶点:
在初始帧时,针对所述三维人体模型的各人体三角网格中的任意一个人体顶点,按照指定顺序对各衣服几何体进行遍历,根据遍历的衣服几何体中各顶点的位置和所述人体顶点的位置,确定所述人体顶点在所述衣服几何体内的重心坐标;
若所述重心坐标在指定范围内,则将所述人体顶点确定为所述目标人体顶点。
10.根据权利要求9所述的电子设备,其特征在于,所述处理器,还被配置为:
所述基于所述三维人体模型中各人体三角网格中的各目标人体顶点的位置和所述各衣服几何体中各顶点的位置,确定与衣服模型发生穿模的各目标人体顶点之后,将所述三维人体模型的各人体顶点中除与衣服模型发生穿模的各目标人体顶点之外的其他人体顶点的透明度分量设置为第二指定数值,并将设置为第二指定数值的各人体顶点渲染为不透明。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211168142.XA CN115588076A (zh) | 2022-09-23 | 2022-09-23 | 一种解决三维人体模型与衣服模型穿模的方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211168142.XA CN115588076A (zh) | 2022-09-23 | 2022-09-23 | 一种解决三维人体模型与衣服模型穿模的方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115588076A true CN115588076A (zh) | 2023-01-10 |
Family
ID=84772893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211168142.XA Pending CN115588076A (zh) | 2022-09-23 | 2022-09-23 | 一种解决三维人体模型与衣服模型穿模的方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115588076A (zh) |
-
2022
- 2022-09-23 CN CN202211168142.XA patent/CN115588076A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4120199A1 (en) | Image rendering method and apparatus, and electronic device and storage medium | |
CN103810742B (zh) | 图像渲染方法和系统 | |
JP5460259B2 (ja) | アンビエント・オクルージョンを使用する写実的画像処理のためのシステム、方法、およびプログラム | |
CN109448137B (zh) | 交互方法、交互装置、电子设备及存储介质 | |
US20110267347A1 (en) | Systems and methods for primitive intersection in ray tracing | |
CN110111408B (zh) | 基于图形学的大场景快速求交方法 | |
JP6972135B2 (ja) | 複合現実において動的仮想コンテンツを生成するデバイスおよび方法 | |
CN107464286B (zh) | 三维城市模型中的孔洞修复方法及装置、设备及可读介质 | |
KR20210092231A (ko) | 두 배의 정밀도로 복원하지 않는 수밀 광선 삼각형 교차 | |
CN114241151A (zh) | 三维模型简化方法、装置、计算机设备和计算机存储介质 | |
RU2680355C1 (ru) | Способ и система удаления невидимых поверхностей трёхмерной сцены | |
CN115588077A (zh) | 解决三维人体模型与服装模型穿模的方法及电子设备 | |
Chen et al. | Improvements in the reliability and element quality of parallel tetrahedral mesh generation | |
Majid et al. | GPU-based Optimization of Pilgrim Simulation for Hajj and Umrah Rituals. | |
CN115588076A (zh) | 一种解决三维人体模型与衣服模型穿模的方法及电子设备 | |
US20220414986A1 (en) | Segmenting three-dimensional meshes in graphical applications based on detection of elongated shapes | |
SHARAH et al. | Streamlining the Modelling to Virtual Reality Process | |
Aguilera et al. | Out-of-core real-time haptic interaction on very large models | |
KR101281156B1 (ko) | 레이 트레이싱 코어 및 레이 트레이싱 처리 방법 | |
CN110738719A (zh) | 一种基于视距分层优化的Web3D模型渲染方法 | |
CN115457189B (zh) | 一种基于团着色的pbd骨骼驱动软体仿真系统及方法 | |
CN116070334B (zh) | 一种面向数字孪生应用的多维模型构建方法 | |
CN115546363A (zh) | 一种解决三维人体模型的穿模方法及电子设备 | |
An et al. | Research on Fast Collision Detection Algorithm Based on CPU Cache Technology | |
Chen et al. | FoldedGI: A highly parallel algorithm for interference detection by folding a geometry image into a 1D buffer |
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 |