CN115641375B - 虚拟对象的毛发处理方法、装置、设备及存储介质 - Google Patents
虚拟对象的毛发处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115641375B CN115641375B CN202211562688.3A CN202211562688A CN115641375B CN 115641375 B CN115641375 B CN 115641375B CN 202211562688 A CN202211562688 A CN 202211562688A CN 115641375 B CN115641375 B CN 115641375B
- Authority
- CN
- China
- Prior art keywords
- hair
- particle
- fusion
- virtual
- particles
- 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
- 210000004209 hair Anatomy 0.000 title claims abstract description 976
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000012545 processing Methods 0.000 title claims description 83
- 238000003860 storage Methods 0.000 title claims description 15
- 239000002245 particle Substances 0.000 claims abstract description 726
- 230000004927 fusion Effects 0.000 claims abstract description 279
- 238000004088 simulation Methods 0.000 claims abstract description 212
- 230000033001 locomotion Effects 0.000 claims abstract description 51
- 238000009877 rendering Methods 0.000 claims abstract description 37
- 210000000988 bone and bone Anatomy 0.000 claims description 150
- 239000013598 vector Substances 0.000 claims description 83
- 238000007499 fusion processing Methods 0.000 claims description 33
- 239000011159 matrix material Substances 0.000 claims description 22
- 230000015654 memory Effects 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 22
- 238000011282 treatment Methods 0.000 claims description 18
- 238000007500 overflow downdraw method Methods 0.000 claims description 12
- 230000009466 transformation Effects 0.000 claims description 10
- 239000000203 mixture Substances 0.000 claims description 6
- 230000000694 effects Effects 0.000 abstract description 26
- 238000003672 processing method Methods 0.000 abstract description 23
- 238000010586 diagram Methods 0.000 description 22
- 238000005516 engineering process Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 238000013519 translation Methods 0.000 description 9
- 238000004519 manufacturing process Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 239000002775 capsule Substances 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000036544 posture Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 241001465754 Metazoa Species 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005293 physical law Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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
- G06F30/25—Design optimisation, verification or simulation using particle-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/80—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供了一种虚拟对象的毛发处理方法、装置、设备、介质及程序产品;方法包括:获取虚拟对象的虚拟毛发中各毛发粒子的初始位置,并获取各所述毛发粒子的物理模拟位置;其中,所述物理模拟位置为,基于所述毛发粒子的初始位置,对所述毛发粒子在真实物理运动时的位置进行物理模拟所得到;针对各所述毛发粒子,对所述毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置;基于各所述毛发粒子的融合位置进行虚拟毛发的渲染处理,得到渲染后的虚拟毛发;通过本申请,能够提高渲染得到的虚拟毛发的显示效果。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种虚拟对象的毛发处理方法、装置、设备及存储介质。
背景技术
相关技术中,在渲染得到虚拟对象的虚拟毛发时,一是通过渲染美术人员制作的特定毛发形态实现;二是通过渲染对初始毛发形态进行物理仿真模拟得到的物理模拟结果实现。但是,通过渲染特定毛发形态难以达到真实动态感,而通过渲染物理模拟结果又不一定能够满足特定风格要求,导致渲染得到的虚拟毛发的显示效果不佳。
发明内容
本申请实施例提供一种虚拟对象的毛发处理方法、装置、设备、存储介质及计算机程序产品,能够提高渲染得到的虚拟毛发的显示效果。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种虚拟对象的毛发处理方法,包括:
获取虚拟对象的虚拟毛发中各毛发粒子的初始位置,并获取各所述毛发粒子的物理模拟位置;
其中,所述物理模拟位置为,基于所述毛发粒子的初始位置,对所述毛发粒子在真实物理运动时的位置进行物理模拟所得到;
针对各所述毛发粒子,对所述毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置;
基于各所述毛发粒子的融合位置进行虚拟毛发的渲染处理,得到渲染后的虚拟毛发。
本申请实施例还提供一种虚拟对象的毛发处理装置,包括:
获取模块,用于获取虚拟对象的虚拟毛发中各毛发粒子的初始位置,并获取各所述毛发粒子的物理模拟位置;
其中,所述物理模拟位置为,基于所述毛发粒子的初始位置,对所述毛发粒子在真实物理运动时的位置进行物理模拟所得到;
融合模块,用于针对各所述毛发粒子,对所述毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置;
渲染模块,用于基于各所述毛发粒子的融合位置进行虚拟毛发的渲染处理,得到渲染后的虚拟毛发。
上述方案中,所述获取模块,还用于获取针对所述虚拟对象的虚拟毛发创建的毛发粒子模型,所述毛发粒子模型包括所述虚拟毛发中的各所述毛发粒子;针对各所述毛发粒子,将所述毛发粒子在所述毛发粒子模型的模型位置,作为所述毛发粒子的初始位置。
上述方案中,所述获取模块,还用于获取所述虚拟对象的虚拟毛发的毛发粒子模型、毛发网格模型和毛发骨骼;其中,所述毛发粒子模型包括所述虚拟毛发中的各所述毛发粒子,所述毛发网格模型包括多个网格顶点,所述毛发骨骼包括多个骨骼关节;其中,通过绑定各所述网格顶点与相关联的至少一个骨骼关节形成所述虚拟毛发的骨骼蒙皮动画,各所述骨骼关节具有相应的绑定权重;针对各所述毛发粒子,确定所述毛发粒子在所述毛发网格模型的模型坐标系中的毛发粒子位置,从所述多个骨骼关节中确定与所述毛发粒子关联的至少一个目标骨骼关节,并确定各所述目标骨骼关节对应的目标绑定权重;针对各所述毛发粒子,基于所述毛发粒子位置、以及各所述目标骨骼关节对应的目标绑定权重,确定所述毛发粒子在所述骨骼蒙皮动画中的动画位置,并将所述毛发粒子的动画位置作为所述毛发粒子的初始位置。
上述方案中,所述获取模块,还用于对所述毛发粒子模型进行移动,以将所述毛发粒子模型和所述毛发网格模型进行对齐;获取在所述移动的过程中所产生的坐标变换信息、以及所述毛发粒子模型中各所述毛发粒子的初始毛发粒子位置;基于所述初始毛发粒子位置以及所述坐标变换信息,确定所述毛发粒子在所述毛发网格模型的模型坐标系中的毛发粒子位置。
上述方案中,所述获取模块,还用于从所述多个网格顶点中,确定距离所述毛发粒子最近的目标网格顶点;将与所述目标网格顶点关联的至少一个骨骼关节,作为与所述毛发粒子关联的至少一个目标骨骼关节,并将与所述目标网格顶点关联的各所述骨骼关节对应的绑定权重,作为各所述目标骨骼关节对应的目标绑定权重。
上述方案中,所述获取模块,还用于针对各所述目标骨骼关节,分别执行如下处理:将所述毛发粒子位置和所述目标骨骼关节的目标绑定权重相乘,得到所述毛发粒子相对所述目标骨骼关节的中间粒子位置;获取所述目标骨骼关节的蒙皮矩阵,并将所述中间粒子位置和所述蒙皮矩阵相乘,得到中间动画位置;将各所述目标骨骼关节对应的中间动画位置相加,得到所述毛发粒子在所述骨骼蒙皮动画中的动画位置。
上述方案中,所述获取模块,还用于针对各所述毛发粒子,分别执行如下处理:获取所述毛发粒子的边界约束参数和运动参数,所述边界约束参数为所述毛发粒子在运动时所能够到达的最远位置,所述运动参数包括毛发粒子的运动速度和运动方向;基于所述边界约束参数和所述运动参数,对所述毛发粒子的初始位置进行调整,得到所述毛发粒子的物理模拟位置。
上述方案中,所述融合模块,还用于针对各所述毛发粒子,分别执行如下处理:获取所述毛发粒子的初始位置的第一权重值、以及所述毛发粒子的物理模拟位置的第二权重值;基于所述第一权重值和所述第二权重值,对所述初始位置和所述物理模拟位置进行加权处理,得到所述毛发粒子的融合位置。
上述方案中,所述虚拟毛发包括多根虚拟发丝,所述虚拟发丝包括至少一个毛发粒子;所述融合模块,还用于在所述获取所述毛发粒子的初始位置的第一权重值之前,获取所述虚拟发丝的融合权重曲线中关键点的关键点坐标;基于所述关键点的关键点坐标,生成所述虚拟发丝的融合权重曲线;其中,所述融合权重曲线的横坐标,用于指示各所述毛发粒子在所述虚拟发丝中的位置,所述融合权重曲线的纵坐标,用于指示所述毛发粒子的目标位置的权重值,所述目标位置为所述初始位置和所述物理模拟位置中之一;相应的,当所述目标位置为所述初始位置,且所述融合权重曲线的权重值归属于[0,1]时,所述融合模块,还用于确定所述毛发粒子在所述虚拟发丝中的第一位置,并基于所述融合权重曲线,确定对应所述第一位置的目标权重值;将所述目标权重值作为所述第一权重值,并将所述第一权重值和1之间的差值作为所述第二权重值。
上述方案中,所述融合模块,还用于确定所述初始位置和所述物理模拟位置的融合方式;当所述融合方式为线性插值融合方式时,针对各所述毛发粒子,采用所述线性插值融合方式,对所述毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置;当所述融合方式为球面插值融合方式时,针对各所述毛发粒子,采用所述球面插值融合方式,对所述毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置。
上述方案中,所述融合模块,还用于针对各所述毛发粒子,分别执行如下处理:获取所述毛发粒子的初始位置的第一坐标值、以及所述毛发粒子的物理模拟位置的第二坐标值;获取所述第一坐标值的第三权重值和所述第二坐标值的第四权重值;基于所述第三权重值和所述第四权重值,对所述第一坐标值和所述第二坐标值进行加权处理,得到第三坐标值;将所述第三坐标值所指示的位置,作为所述毛发粒子的融合位置。
上述方案中,所述虚拟毛发包括多根虚拟发丝,所述虚拟发丝包括发根毛发粒子和至少一个非发根毛发粒子;所述融合模块,还用于针对所述发根毛发粒子,将所述发根毛发粒子的初始位置,确定为所述发根毛发粒子的融合位置;针对所述非发根毛发粒子,按照从所述虚拟发丝的发根至发梢的毛发粒子处理顺序,对各所述非发根毛发粒子依次执行如下处理:获取所述非发根毛发粒子的上一非发根毛发粒子的目标融合位置,并获取以所述目标融合位置为共同起点的第一向量和第二向量间的向量夹角;其中,所述第一向量与第三向量相平行,所述第二向量与第四向量相平行;所述第三向量,为所述上一非发根毛发粒子的初始位置至所述非发根毛发粒子的初始位置的向量,所述第四向量,为所述上一非发根毛发粒子的物理模拟位置至所述非发根毛发粒子的物理模拟位置的向量;基于所述初始位置的第一角度权重值和所述物理模拟位置的第二角度权重值,将所述向量夹角划分为第一夹角和第二夹角;基于所述第一向量、所述第二向量、所述第一夹角和所述第二夹角,得到所述目标融合位置至所述非发根毛发粒子的融合位置的目标向量,并基于所述目标融合位置和所述目标向量,确定所述非发根毛发粒子的融合位置。
上述方案中,所述融合模块,还用于创建所述虚拟毛发中各所述毛发粒子的第一融合处理线程;通过各所述第一融合处理线程,并行地采用所述线性插值融合方式,对相应毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置。
上述方案中,所述虚拟毛发包括多根虚拟发丝,所述虚拟发丝包括至少一个毛发粒子;所述融合模块,还用于创建各所述虚拟发丝的第二融合处理线程;通过各所述虚拟发丝的第二融合处理线程,并行地对相应虚拟发丝执行如下处理:通过所述虚拟发丝的第二融合处理线程,串行地采用所述球面插值融合方式,对所述虚拟发丝上各所述毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置。
本申请实施例还提供一种电子设备,包括:
存储器,用于存储计算机可执行指令;
处理器,用于执行所述存储器中存储的计算机可执行指令时,实现本申请实施例提供的虚拟对象的毛发处理方法。
本申请实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令被处理器执行时,实现本申请实施例提供的虚拟对象的毛发处理方法。
本申请实施例还提供一种计算机程序产品,包括计算机程序或计算机可执行指令,所述计算机程序或计算机可执行指令被处理器执行时,实现本申请实施例提供的虚拟对象的毛发处理方法。
本申请实施例具有以下有益效果:
首先,获取虚拟对象的虚拟毛发中各毛发粒子的初始位置,并获取各毛发粒子的物理模拟位置,然后,针对各毛发粒子,对毛发粒子的初始位置和物理模拟位置进行融合,得到毛发粒子的融合位置,从而基于各毛发粒子的融合位置进行虚拟毛发的渲染处理,得到渲染后的虚拟毛发。这里,毛发粒子的初始位置能够支持虚拟毛发具有特定的毛发形态,物理模拟位置为基于毛发粒子的初始位置,对毛发粒子在真实物理运动时的位置进行物理模拟所得到,能够增加虚拟毛发的真实动态感。如此,基于融合位置(初始位置和物理模拟位置的融合)进行虚拟毛发的渲染,能够实现物理模拟的真实动态感与特定风格的结合,使得所渲染得到的虚拟毛发既满足虚拟毛发特定风格的需求,还具有真实动态感,提高了渲染得到的虚拟毛发的显示效果。
附图说明
图1是本申请实施例提供的虚拟对象的毛发处理***100的架构示意图;
图2是本申请实施例提供的实施虚拟对象的毛发处理方法的电子设备500的结构示意图;
图3是本申请实施例提供的虚拟对象的毛发处理方法的流程示意图一;
图4是本申请实施例提供的毛发粒子模型、毛发网格模型和毛发骨骼的示意图;
图5是本申请实施例提供的融合权重曲线的示意图;
图6是本申请实施例提供的初始位置和物理模拟位置的融合示意图一;
图7是本申请实施例提供的初始位置和物理模拟位置的融合示意图二;
图8是本申请实施例提供的虚拟毛发的示意图;
图9是本申请实施例提供的虚拟对象的毛发处理方法的流程示意图二;
图10是本申请实施例提供的融合功能面板的显示示意图;
图11是本申请实施例提供的虚拟对象的毛发处理方法的流程示意图三;
图12是本申请实施例提供的对虚拟毛发进行并行处理的示意图;
图13是本申请实施例提供的毛发处理时长的示意图;
图14A是本申请实施例提供的虚拟毛发的示意图一;
图14B是本申请实施例提供的虚拟毛发的示意图二;
图14C是本申请实施例提供的虚拟毛发的示意图三;
图14D是本申请实施例提供的虚拟毛发的示意图四。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)响应于,用于表示所执行的操作所依赖的条件或状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
2)虚拟对象,虚拟场景(如游戏、动漫、影视剧等)中出现的各种人和物的形象。该虚拟对象可以是虚拟人物、虚拟动物、动漫人物等,比如:在虚拟场景中显示的人物、动物、植物、油桶、墙壁、石块等。
本申请实施例提供一种虚拟对象的毛发处理方法、装置、设备、存储介质及计算机程序产品,能够提高渲染得到的虚拟毛发的显示效果。
下面说明本申请实施例提供的虚拟对象的毛发处理方法的实施场景。参见图1,图1是本申请实施例提供的虚拟对象的毛发处理***100的架构示意图,为实现支撑一个示例性应用,终端400通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线或有线链路实现数据传输。
终端400,用于响应于针对虚拟对象的毛发处理指令,发送位置数据获取请求至服务器200,该位置数据获取请求,用于获取虚拟对象的虚拟毛发中各毛发粒子的初始位置和物理模拟位置;其中,该物理模拟位置为基于毛发粒子的初始位置,对毛发粒子在真实物理运动时的位置进行物理模拟所得到。服务器200,用于接收终端400发送的位置数据获取请求;响应于位置数据获取请求,将虚拟对象的虚拟毛发中各毛发粒子的初始位置和物理模拟位置返回至终端400。终端400,用于接收服务器200返回的虚拟毛发中各毛发粒子的初始位置和物理模拟位置;针对各毛发粒子,对毛发粒子的初始位置和物理模拟位置进行融合,得到毛发粒子的融合位置;基于各毛发粒子的融合位置进行虚拟毛发的渲染处理,得到渲染后的虚拟毛发;显示渲染后的虚拟毛发。
在一些实施例中,本申请实施例提供的虚拟对象的毛发处理方法可以由各种电子设备实施,例如,可以由终端单独实施,也可以由服务器单独实施,也可以由终端和服务器协同实施。例如终端独自执行本申请实施例提供的虚拟对象的毛发处理方法,或者,终端向服务器发送针对虚拟对象的毛发处理请求,服务器根据接收的毛发处理请求执行本申请实施例提供的虚拟对象的毛发处理方法。本申请实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。
在一些实施例中,本申请实施例提供的实施虚拟对象的毛发处理的电子设备可以是各种类型的终端设备或服务器。其中,服务器(例如服务器200)可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***。终端(例如终端400)可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能语音交互设备(例如智能音箱)、智能家电(例如智能电视)、智能手表、车载终端等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例对此不做限制。
在一些实施例中,本申请实施例提供的虚拟对象的毛发处理方法可以借助于云技术(Cloud Technology)实现,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、以及应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络***的后台服务需要大量的计算、存储资源。作为示例,服务器(例如服务器200)还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,Content Delivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器。
在一些实施例中,终端或服务器可以通过运行计算机程序来实现本申请实施例提供的虚拟对象的毛发处理方法,举例来说,计算机程序可以是操作***中的原生程序或软件模块;可以是本地(Native)应用程序(APP,Application),即需要在操作***中安装才能运行的程序;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
在一些实施例中,多个服务器可组成为一区块链,而服务器为区块链上的节点,区块链中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。其中,本申请实施例提供的虚拟对象的毛发处理方法所相关的数据(例如虚拟毛发中各毛发粒子的初始位置、物理模拟位置、融合位置、毛发粒子模型、毛发网格模型和毛发骨骼等)可保存于区块链上。
下面说明本申请实施例提供的实施虚拟对象的毛发处理方法的电子设备。参见图2,图2是本申请实施例提供的实施虚拟对象的毛发处理方法的电子设备500的结构示意图。以电子设备500为图1所示的终端为例,本申请实施例提供的实施虚拟对象的毛发处理方法的电子设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线***540耦合在一起。可理解,总线***540用于实现这些组件之间的连接通信。总线***540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线***540。
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器550可以是可移除的,不可移除的或其组合。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。存储器550包括易失性存储器或非易失性存储器,也可包括易失性存储器和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random AccessMemory)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。
在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作***551,包括用于处理各种基本***服务和执行硬件相关任务的***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他电子设备,示例性的网络接口520包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
在一些实施例中,本申请实施例提供的虚拟对象的毛发处理装置可以采用软件方式实现,图2示出了存储在存储器550中的虚拟对象的毛发处理装置553,其可以是程序和插件等形式的软件,包括以下软件模块:获取模块5531、融合模块5532和渲染模块5533,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分,将在下文中说明各个模块的功能。
下面说明本申请实施例提供的虚拟对象的毛发处理方法。在一些实施例中,本申请实施例提供的虚拟对象的毛发处理方法可以由各种电子设备实施,例如,可由终端单独实施,也可由服务器单独实施,也可由终端和服务器协同实施。以终端实施为例,参见图3,图3是本申请实施例提供的虚拟对象的毛发处理方法的流程示意图一,本申请实施例提供的虚拟对象的毛发处理方法包括:
步骤101:终端获取虚拟对象的虚拟毛发中各毛发粒子的初始位置,并获取各毛发粒子的物理模拟位置。
其中,该物理模拟位置为,基于毛发粒子的初始位置,对毛发粒子在真实物理运动时的位置进行物理模拟所得到。
在步骤101中,终端可以设置有用于对虚拟对象的毛发进行处理(比如生成虚拟场景中虚拟对象的毛发的特效)的应用程序,终端通过运行相应的应用程序实现对虚拟对象的毛发的处理。在本申请实施例中,该虚拟毛发中毛发粒子的初始位置可以是:1、当虚拟毛发的毛发粒子模型处于初始形态时,毛发粒子模型中每个毛发粒子的模型位置可以作为该初始位置,该毛发粒子模型为(如设计人员)针对虚拟对象的虚拟毛发所制作的;2、毛发粒子在虚拟毛发的骨骼蒙皮动画中所对应的动画位置可以作为该初始位置。
在步骤101中,该毛发粒子的物理模拟位置,为基于毛发粒子的初始位置,对毛发粒子在真实物理运动时的位置进行物理模拟所得到。即通过对毛发粒子的运动状态进行物理模拟,得到毛发粒子在每个运动时刻下的空间位置。需要说明的是,在步骤101中所获取的物理模拟位置为毛发粒子在真实物理运动时一个运动时刻下的空间位置。在一些实施例中,终端可通过如下方式获取各毛发粒子的物理模拟位置:针对各毛发粒子,分别执行如下处理:获取毛发粒子的边界约束参数和运动参数,边界约束参数为毛发粒子在运动时所能够到达的最远位置,运动参数包括毛发粒子的运动速度和运动方向;基于边界约束参数和运动参数,对毛发粒子的初始位置进行调整,得到毛发粒子的物理模拟位置。
在实际应用中,在对毛发粒子进行物理模拟时,首先可以设置毛发粒子的物理模拟参数和物理模拟规则。该物理模拟参数可以包括边界约束参数和运动参数,其中,1)该边界约束参数为毛发粒子在运动时所能够到达的最远位置,即边界约束参数用于约束毛发粒子不会到达空间内的任意位置,而是在边界约束参数所指示的约束区域内运动;2)该运动参数可以包括毛发粒子的运动速度和运动方向,还可以包括毛发粒子的运动加速度、用于控制毛发粒子运动的力的大小等。该物理模拟规则可以是物理定律,比如牛顿力学第一定律(惯性定律)、牛顿力学第二定律(重力加速度定律)等。
基于此,在对毛发粒子的运动进行物理模拟时,可以基于边界约束参数和运动参数,对毛发粒子的初始位置进行调整,得到毛发粒子的物理模拟位置。在实际实施时,可以对毛发粒子在运动时每一帧动画下的物理模拟位置进行模拟。从毛发粒子的初始位置开始,通过如下方式得到毛发粒子在每一帧动画下的物理模拟位置:基于初始位置和毛发粒子的运动速度,计算得到第一帧动画下毛发粒子的目标位置,当该目标位置满足边界约束参数时,将毛发粒子的位置由初始位置更新为该目标位置;然后再基于第一帧动画下的目标位置和毛发粒子的运动速度,计算得到下一帧动画下毛发粒子的新的目标位置,当新的目标位置满足边界约束参数时,将毛发粒子的位置由目标位置更新为新的目标位置。以此类推,得到毛发粒子在每一帧动画下的目标位置,该目标位置即为物理模拟位置。
应用上述实施例,通过对虚拟毛发的毛发粒子在真实物理运动时的位置进行物理模拟,可以还原毛发的真实动态感,从而增加虚拟毛发的真实感风格。
接下来对获取虚拟毛发中各毛发粒子的初始位置进行说明。在一些实施例中,终端可通过如下方式获取虚拟对象的虚拟毛发中各毛发粒子的初始位置:获取针对虚拟对象的虚拟毛发创建的毛发粒子模型,该毛发粒子模型包括虚拟毛发中的各毛发粒子;针对各毛发粒子,将毛发粒子在毛发粒子模型的模型位置,作为毛发粒子的初始位置。
在实际应用中,设计人员可以针对虚拟对象的虚拟毛发创建相应的毛发粒子模型,该毛发粒子模型包括虚拟毛发中的各毛发粒子。如此,可以将毛发粒子在初始状态下的毛发粒子模型的模型位置,作为毛发粒子的初始位置。应用上述实施例,能够将创建的初始状态下的毛发粒子模型中毛发粒子的模型位置,与物理模拟位置进行融合,从而实现物理模拟的真实感与特定美术设计风格的结合,能够满足虚拟毛发特定风格的需求,比如固定虚拟毛发的发丝两端(即发丝两端不完全符合物理模拟的效果),固定虚拟毛发的中间毛发部分(即中间毛发部分不完全符合物理模拟的效果),等等。
在一些实施例中,终端还可通过如下方式获取虚拟对象的虚拟毛发中各毛发粒子的初始位置:获取虚拟对象的虚拟毛发的毛发粒子模型、毛发网格模型和毛发骨骼;其中,该毛发粒子模型包括虚拟毛发中的各毛发粒子,毛发网格模型包括多个网格顶点,该毛发骨骼包括多个骨骼关节;其中,通过绑定各网格顶点与相关联的至少一个骨骼关节形成虚拟毛发的骨骼蒙皮动画,各骨骼关节具有相应的绑定权重;针对各毛发粒子,确定毛发粒子在毛发网格模型的模型坐标系中的毛发粒子位置,从多个骨骼关节中确定与毛发粒子关联的至少一个目标骨骼关节,并确定各目标骨骼关节对应的目标绑定权重;针对各毛发粒子,基于毛发粒子位置、以及各目标骨骼关节对应的目标绑定权重,确定毛发粒子在骨骼蒙皮动画中的动画位置,并将毛发粒子的动画位置作为毛发粒子的初始位置。
在实际应用中,毛发粒子在虚拟毛发的骨骼蒙皮动画中所对应的动画位置可以作为该初始位置。参见图4,图4是本申请实施例提供的毛发粒子模型、毛发网格模型和毛发骨骼的示意图,其中,图4中(1)为虚拟毛发的毛发网格模型(或称毛发多边形网格模型,包括多个网格顶点),图4中(2)为虚拟毛发的毛发骨骼(包括多个骨骼关节),图4中(3)为虚拟毛发的毛发粒子模型(包括多个毛发粒子)。在实际实施时,该虚拟毛发的骨骼蒙皮动画是基于虚拟毛发的毛发网格模型和毛发骨骼绑定得到的,即针对毛发网格模型中的各毛发粒子执行如下处理:针对毛发粒子,从毛发骨骼中确定与该毛发粒子相关联的至少一个骨骼关节;获取每个骨骼关节对应的绑定权重;基于各骨骼关节对应的绑定权重,将至少一个骨骼关节分别绑定至该毛发粒子上;如此,得到处于绑定姿态的虚拟毛发的骨骼蒙皮动画。
继续地,可以确定毛发粒子在虚拟毛发的骨骼蒙皮动画中所对应的动画位置,从而将毛发粒子的动画位置作为该毛发粒子的初始位置。接下来说明如何确定在毛发粒子在骨骼蒙皮动画中所对应的动画位置。
第一,针对各毛发粒子,首先确定毛发粒子在毛发网格模型的模型坐标系中的毛发粒子位置。在一些实施例中,终端可通过如下方式确定毛发粒子在毛发网格模型的模型坐标系中的毛发粒子位置:对毛发粒子模型进行移动,以将毛发粒子模型和毛发网格模型进行对齐;获取在移动的过程中所产生的坐标变换信息、以及毛发粒子模型中各毛发粒子的初始毛发粒子位置;基于初始毛发粒子位置以及坐标变换信息,确定毛发粒子在毛发网格模型的模型坐标系中的毛发粒子位置。
在实际实施时,首先将毛发粒子模型和毛发网格模型进行对齐,即通过对毛发粒子模型进行移动,将毛发粒子模型和毛发网格模型进行对齐。在实际实施时,用户可通过一个支持虚拟对象毛发处理的应用程序实现,比如虚拟引擎,用户通过触发模型导入操作,在该应用程序中导入毛发粒子模型和毛发网格模型,由于在制作时毛发粒子模型和毛发网格模型的形状保持了一致,所以用户可以通过手动拖拽或者移动毛发粒子模型,使得毛发粒子模型和毛发网格模型相重合,达到将毛发粒子模型和毛发网格模型对齐的效果。同时,在移动毛发粒子模型以将毛发粒子模型和毛发网格模型进行对齐的过程中,该应用程序还会记录毛发粒子模型在移动的过程中产生的位移,然后根据该记录的位移确定移动过程中毛发粒子模型所产生的坐标变换信息,比如移动时坐标信息的变化;从而将毛发粒子模型中各毛发粒子的初始毛发粒子位置与坐标变换信息进行相加,得到毛发粒子在毛发网格模型的模型坐标系中的毛发粒子位置。
第二,从多个骨骼关节中确定与毛发粒子关联的至少一个目标骨骼关节,并确定各目标骨骼关节对应的目标绑定权重。在一些实施例中,终端可通过如下方式从多个骨骼关节中确定与毛发粒子关联的至少一个目标骨骼关节,并确定各目标骨骼关节对应的目标绑定权重:从多个网格顶点中,确定距离毛发粒子最近的目标网格顶点;将与目标网格顶点关联的至少一个骨骼关节,作为与毛发粒子关联的至少一个目标骨骼关节,并将与目标网格顶点关联的各骨骼关节对应的绑定权重,作为各目标骨骼关节对应的目标绑定权重。
在实际应用中,在确定与毛发粒子关联的至少一个目标骨骼关节、以及各目标骨骼关节对应的目标绑定权重时,可以从毛发网格模型的多个网格顶点中,确定距离毛发粒子最近的目标网格顶点,从而,将与目标网格顶点关联的至少一个骨骼关节,作为与毛发粒子关联的至少一个目标骨骼关节,并将与目标网格顶点关联的各骨骼关节对应的绑定权重,作为各目标骨骼关节对应的目标绑定权重。
第三,针对各毛发粒子,基于毛发粒子位置、以及各目标骨骼关节对应的目标绑定权重,确定毛发粒子在骨骼蒙皮动画中的动画位置。在一些实施例中,终端可通过如下方式基于毛发粒子位置、以及各目标骨骼关节对应的目标绑定权重,确定毛发粒子在骨骼蒙皮动画中的动画位置:针对各目标骨骼关节,分别执行如下处理:将毛发粒子位置和目标骨骼关节的目标绑定权重相乘,得到毛发粒子相对目标骨骼关节的中间粒子位置;获取目标骨骼关节的蒙皮矩阵,并将中间粒子位置和蒙皮矩阵相乘,得到中间动画位置;将各目标骨骼关节对应的中间动画位置相加,得到毛发粒子在骨骼蒙皮动画中的动画位置。
在实际实施时,当确定毛发粒子在骨骼蒙皮动画中的动画位置时,针对各目标骨骼关节,分别执行如下处理:首先,将毛发粒子位置和目标骨骼关节的目标绑定权重相乘,得到毛发粒子相对目标骨骼关节的中间粒子位置,该中间粒子位置即为该毛发粒子在目标骨骼关节的骨骼坐标系中的位置坐标;然后,获取目标骨骼关节的蒙皮矩阵,并将中间粒子位置和蒙皮矩阵相乘,得到中间动画位置;最后,将各目标骨骼关节对应的中间动画位置相加,得到毛发粒子在骨骼蒙皮动画中的动画位置。
在实际实施时,该蒙皮矩阵由两个平移旋转缩放矩阵(包括第一平移旋转缩放矩阵和第二平移旋转缩放矩阵)相乘得到,其中,1)第一平移旋转缩放矩阵,用于针对绑定姿态下的骨骼蒙皮动画,将毛发粒子在网格坐标系(对应毛发网格模型)中的位置坐标,转换为毛发粒子在骨骼坐标系(对应毛发骨骼)中的位置坐标,需要说明的是,第一平移旋转缩放矩阵是固定的;2)第二平移旋转缩放矩阵,用于针对当前动画帧的帧姿态下,将毛发粒子在骨骼坐标系(对应毛发骨骼)中的位置坐标,转换为毛发粒子在网格坐标系(对应毛发网格模型)中的位置坐标,需要说明的是,不同动画帧的第二平移旋转缩放矩阵是不同的。
应用上述实施例,能够将毛发粒子在虚拟毛发的骨骼蒙皮动画中所对应的动画位置,与物理模拟位置进行融合,从而实现物理模拟的真实感与动画中的特定美术设计风格的结合,能够满足虚拟毛发特定风格的需求。
步骤102:针对各毛发粒子,对毛发粒子的初始位置和物理模拟位置进行融合,得到毛发粒子的融合位置。
当获取到各毛发粒子的初始位置和物理模拟位置后,在步骤102中,针对各毛发粒子,对毛发粒子的初始位置和物理模拟位置进行融合,得到毛发粒子的融合位置。在一些实施例中,终端可通过如下方式对毛发粒子的初始位置和物理模拟位置进行融合:针对各毛发粒子,分别执行如下处理:获取毛发粒子的初始位置的第一权重值、以及毛发粒子的物理模拟位置的第二权重值;基于第一权重值和第二权重值,对初始位置和物理模拟位置进行加权处理,得到毛发粒子的融合位置。
在一些实施例中,虚拟毛发包括多根虚拟发丝,虚拟发丝包括至少一个毛发粒子;终端在获取初始位置的第一权重值之前,还获取虚拟发丝的融合权重曲线中关键点的关键点坐标;基于关键点的关键点坐标,生成虚拟发丝的融合权重曲线;其中,融合权重曲线的横坐标,用于指示各毛发粒子在虚拟发丝中的位置,融合权重曲线的纵坐标,用于指示毛发粒子的目标位置的权重值,目标位置为初始位置和物理模拟位置中之一。
在实际应用中,该关键点的关键点坐标可以是用户根据需求自定义的。终端可以提供一个融合权重曲线的编辑界面,该编辑界面的横轴用于编辑关键点的横坐标,该横坐标为各毛发粒子在虚拟发丝中的位置,该编辑界面的纵轴用于编辑关键点的纵坐标,该纵坐标指示毛发粒子的目标位置的权重值。
作为示例,参见图5,图5是本申请实施例提供的融合权重曲线的示意图。这里,该融合权重曲线是基于关键点(M、N和L)的关键点坐标生成的。其中,关键点M的坐标是(发根毛发粒子在虚拟发丝中的位置0,发根毛发粒子的目标位置的权重值0);关键点N的坐标是(中间毛发粒子在虚拟发丝中的位置0.5,中间毛发粒子的目标位置的权重值0.5);关键点L的坐标是(发梢毛发粒子在虚拟发丝中的位置1,发梢毛发粒子的目标位置的权重值0.75)。需要说明的是,该毛发粒子在虚拟发丝中的位置,是毛发粒子的索引号(从发根到发梢的毛发粒子的索引号分别为0、1、2…n-1、n,其中,n为整数)与当前虚拟发丝所有毛发粒子总数的比值。
相应的,当目标位置为初始位置,且融合权重曲线的权重值归属于[0,1]时,终端可通过如下方式获取毛发粒子的初始位置的第一权重值、以及毛发粒子的物理模拟位置的第二权重值:确定毛发粒子在虚拟发丝中的第一位置,并基于融合权重曲线,确定对应第一位置的目标权重值;将目标权重值作为第一权重值,并将第一权重值和1之间的差值作为第二权重值。
相应的,当目标位置为物理模拟位置,且融合权重曲线的权重值归属于[0,1]时,终端可通过如下方式获取毛发粒子的初始位置的第一权重值、以及毛发粒子的物理模拟位置的第二权重值:确定毛发粒子在虚拟发丝中的第二位置,并基于融合权重曲线,确定对应第二位置的权重值;将对应第二位置的权重值作为第二权重值,并将第二权重值和1之间的差值作为第一权重值。
应用上述实施例,用户可以根据需求自定义关键点的关键点坐标,从而基于关键点坐标生成融合权重曲线,以根据融合权重曲线对每个虚拟发丝的毛发粒子进行融合处理,增加了融合处理的灵活性。
在一些实施例中,终端可通过如下方式对毛发粒子的初始位置和物理模拟位置进行融合:确定初始位置和物理模拟位置的融合方式;当融合方式为线性插值融合方式时,针对各毛发粒子,采用线性插值融合方式,对毛发粒子的初始位置和物理模拟位置进行融合,得到毛发粒子的融合位置;当融合方式为球面插值融合方式时,针对各毛发粒子,采用球面插值融合方式,对毛发粒子的初始位置和物理模拟位置进行融合,得到毛发粒子的融合位置。
在实际应用中,对毛发粒子的初始位置和物理模拟位置进行融合的融合方式包括:线性插值融合方式和球面插值融合方式。当对初始位置和物理模拟位置进行融合处理时,首先确定初始位置和物理模拟位置的融合方式。在实际实施时,该融合方式可以是用户设置的,也可以是根据虚拟毛发的毛发参数(如毛发类型、毛发长度、毛发材质等)自动确定的。示例性地,可以提供供用户设置融合方式的融合方式设置控件,当接收到针对融合方式设置控件的触发操作时,响应于该触发操作,显示供选择的候选融合方式(包括线性插值融合方式和球面插值融合方式),当接收到针对目标候选融合方式的选择操作时,则将所述选择的目标候选融合方式(如线性插值融合方式),作为初始位置和物理模拟位置的融合方式。
继续地,当融合方式为线性插值融合方式时,则针对各毛发粒子,采用线性插值融合方式,对毛发粒子的初始位置和物理模拟位置进行线性插值处理,得到毛发粒子的融合位置;当融合方式为球面插值融合方式时,则针对各毛发粒子,采用球面插值融合方式,对毛发粒子的初始位置和物理模拟位置进行球面插值处理,得到毛发粒子的融合位置。
应用上述实施例,通过提供针对初始位置和物理模拟位置的多种融合方式,能够针对不同的虚拟毛发,提供不同的融合方式,从而使得毛发粒子在融合处理后得到的融合位置更为准确,从而提高虚拟毛发的渲染效果。
在一些实施例中,终端可通过如下方式对毛发粒子的初始位置和物理模拟位置进行融合:针对各毛发粒子,分别执行如下处理:获取毛发粒子的初始位置的第一坐标值、以及毛发粒子的物理模拟位置的第二坐标值;获取第一坐标值的第三权重值和第二坐标值的第四权重值;基于第三权重值和第四权重值,对第一坐标值和第二坐标值进行加权处理,得到第三坐标值;将第三坐标值所指示的位置,作为毛发粒子的融合位置。
需要说明是,虚拟毛发包括多根虚拟发丝,虚拟发丝包括至少一个毛发粒子;在针对毛发粒子进行融合处理时,可以以每个虚拟发丝为单位,针对该虚拟发丝中的毛发粒子进行融合处理。
作为示例,参见图6,图6是本申请实施例提供的初始位置和物理模拟位置的融合示意图一。图6展示了线性插值融合方式的原理。其中,AC0表示虚拟发丝中各毛发粒子的初始位置;AC1表示虚拟发丝中各毛发粒子的物理模拟位置;A为发根毛发粒子,B0和B1为中间毛发粒子,C0和C1为发梢毛发粒子。
这里,对于发根毛发粒子A,初始位置和物理模拟位置相同,所以融合位置不变,即为A;对于中间毛发粒子,中间毛发粒子对应初始位置的权重值为0.5,中间毛发粒子对应物理模拟位置的权重值为0.5,因此,中间毛发粒子的融合位置由权重值0.5的初始位置的坐标值(B0)和权重值0.5的物理模拟位置的坐标值(B1),经过加权处理得到,即为B;对于发梢毛发粒子,发梢毛发粒子对应初始位置的权重值为0.75,发梢毛发粒子对应物理模拟位置的权重值为0.25,因此,发梢毛发粒子的融合位置由权重值0.75的初始位置的坐标值(C0)和权重值0.25的物理模拟位置的坐标值(C1),经过加权处理得到,即为C。最终,由A、B、C串联起来得到的线段组就是该虚拟发丝中各发丝粒子经过融合处理后得到的融合发丝。如此,当插值权重(即初始位置的权重)为时,线性插值使用的公式如下:
但是,如图6所示,融合发丝AC中,每一段的长度其实有所变短,这是由于线性插值仅单纯地考虑了位置上的量度,而不能保证同一发丝相邻两个毛发粒子之间的距离在融合后不发生变化,比如AB和AB1没有保持相同的长度。对于这一问题,则可以通过“球面插值融合方式”来解决。接下来对球面插值融合方式的融合原理进行说明。
在一些实施例中,虚拟毛发包括多根虚拟发丝,虚拟发丝包括发根毛发粒子和至少一个非发根毛发粒子;终端可通过如下方式对毛发粒子的初始位置和物理模拟位置进行融合:针对发根毛发粒子,将发根毛发粒子的初始位置,确定为发根毛发粒子的融合位置;针对非发根毛发粒子,按照从虚拟发丝的发根至发梢的毛发粒子处理顺序,对各非发根毛发粒子依次执行如下处理:
S1,获取非发根毛发粒子的上一非发根毛发粒子的目标融合位置,并获取以目标融合位置为共同起点的第一向量和第二向量间的向量夹角;其中,第一向量与第三向量相平行,第二向量与第四向量相平行;该第三向量,为上一非发根毛发粒子的初始位置至非发根毛发粒子的初始位置的向量,该第四向量,为上一非发根毛发粒子的物理模拟位置至非发根毛发粒子的物理模拟位置的向量;S2,基于初始位置的第一角度权重值和物理模拟位置的第二角度权重值,将向量夹角划分为第一夹角和第二夹角;S3,基于第一向量、第二向量、第一夹角和第二夹角,得到目标融合位置至非发根毛发粒子的融合位置的目标向量,并基于目标融合位置和目标向量,确定非发根毛发粒子的融合位置。
需要说明是,虚拟毛发包括多根虚拟发丝,虚拟发丝包括至少一个毛发粒子;在针对毛发粒子进行融合处理时,可以以每个虚拟发丝为单位,针对该虚拟发丝中的毛发粒子进行融合处理。针对每根虚拟发丝,由于发根毛发粒子的初始位置和物理模拟位置相同,所以融合位置也为初始位置,保持不变。而针对虚拟发丝中各非发根毛发粒子,则通过如下方式进行融合处理:
结合图7,图7是本申请实施例提供的初始位置和物理模拟位置的融合示意图二。图7展示了球面插值融合方式的原理。其中,AC0表示虚拟发丝中各毛发粒子的初始位置;AC1表示虚拟发丝中各毛发粒子的物理模拟位置;A为发根毛发粒子,B0和B1为中间毛发粒子,C0和C1为发梢毛发粒子,B0、B1、C0和C1为非发根毛发粒子。
以非发根毛发粒子为C0为例,在S1中,非发根毛发粒子C0的上一非发根毛发粒子为B0,上一非发根毛发粒子的目标融合位置为B;以目标融合位置B为共同起点的第一向量为BC0’和第二向量BC1’。该第一向量BC0’和第三向量B0C0相平行,该第二向量BC1’和第四向量B1C1相平行。在S2中,可以先获取初始位置的第一角度权重值和物理模拟位置的第二角度权重值,然后基于初始位置的第一角度权重值和物理模拟位置的第二角度权重值,将向量夹角划分为第一夹角(对应初始位置)和第二夹角(对应物理模拟位置)。例如,第一角度权重值为75%,第二角度权重值为25%,那么第一夹角则为向量夹角*75%,第二夹角则为向量夹角*25%。在S3中,基于第一向量、第二向量、第一夹角和第二夹角,通过如下公式,得到目标融合位置至非发根毛发粒子的融合位置的目标向量:
进一步地,在S3中,基于目标融合位置和目标向量,确定非发根毛发粒子的融合位置,即融合位置C。
在一些实施例中,终端可通过如下方式对毛发粒子的初始位置和物理模拟位置进行融合:创建虚拟毛发中各毛发粒子的第一融合处理线程;通过各第一融合处理线程,并行地采用线性插值融合方式,对相应毛发粒子的初始位置和物理模拟位置进行融合,得到毛发粒子的融合位置。
在实际应用中,当采用线性插值融合方式进行融合处理时,可以针对虚拟毛发中各毛发粒子,创建相应的第一融合处理线程。从而通过各第一融合处理线程,并行地采用线性插值融合方式,对相应毛发粒子的初始位置和物理模拟位置进行融合。应用上述实施例,能够提高采用线性插值融合方式,对毛发粒子的初始位置和物理模拟位置进行融合的融合效率,从而提高虚拟毛发的渲染效率。
在一些实施例中,虚拟毛发包括多根虚拟发丝,虚拟发丝包括至少一个毛发粒子;终端可通过如下方式对毛发粒子的初始位置和物理模拟位置进行融合:创建各虚拟发丝的第二融合处理线程;通过各虚拟发丝的第二融合处理线程,并行地对相应虚拟发丝执行如下处理:通过虚拟发丝的第二融合处理线程,串行地采用球面插值融合方式,对虚拟发丝上各毛发粒子的初始位置和物理模拟位置进行融合,得到毛发粒子的融合位置。
在实际应用中,由于球面插值融合方式在融合处理时,虚拟发丝中每个毛发粒子的融合处理,需要结合该虚拟发丝中上一毛发粒子的融合位置来实现。因此,各毛发粒子间不可能完全采用并行处理的方式进行。基于此,可以针对各虚拟发丝,创建相应的第二融合处理线程,从而通过各虚拟发丝的第二融合处理线程,并行地对相应虚拟发丝执行如下处理:通过虚拟发丝的第二融合处理线程,串行地采用球面插值融合方式,对虚拟发丝上各毛发粒子的初始位置和物理模拟位置进行融合。应用上述实施例,能够提高采用球面插值融合方式,对毛发粒子的初始位置和物理模拟位置进行融合的融合效率,从而提高虚拟毛发的渲染效率。
步骤103:基于各毛发粒子的融合位置进行虚拟毛发的渲染处理,得到渲染后的虚拟毛发。
当得到各毛发粒子的融合位置后,在步骤103中,基于各毛发粒子的融合位置进行虚拟毛发的渲染处理,得到渲染后的虚拟毛发。如此,实现针对虚拟对象的虚拟毛发的渲染制作。
应用本申请上述实施例,首先,获取虚拟对象的虚拟毛发中各毛发粒子的初始位置,并获取各毛发粒子的物理模拟位置,然后,针对各毛发粒子,对毛发粒子的初始位置和物理模拟位置进行融合,得到毛发粒子的融合位置,从而基于各毛发粒子的融合位置进行虚拟毛发的渲染处理,得到渲染后的虚拟毛发。这里,毛发粒子的初始位置能够支持虚拟毛发具有特定的毛发形态,物理模拟位置为基于毛发粒子的初始位置,对毛发粒子在真实物理运动时的位置进行物理模拟所得到,能够增加虚拟毛发的真实动态感。如此,基于融合位置(初始位置和物理模拟位置的融合)进行虚拟毛发的渲染,能够实现物理模拟的真实动态感与特定风格的结合,使得所渲染得到的虚拟毛发既满足虚拟毛发特定风格的需求,还具有真实动态感,提高了渲染得到的虚拟毛发的显示效果。
下面将说明本申请实施例在一个实际的应用场景中的示例性应用。本申请实施例提供的虚拟对象的毛发处理方法,可以应用于多种应用场景,比如游戏中游戏形象(如游戏人物、怪物等)的毛发处理场景,动漫和影视制作中毛发特效的制作场景,虚拟现实(VR,Virtual Reality)和增强现实(AR,Augmented Reality)中虚拟对象(如人物、动物等)的毛发处理场景,等等。
接下来首先说明本申请实施例涉及的名词和术语,包括:
1)毛发初始态:美术师所制作的毛发资产的初始形态(即上述毛发粒子模型),提供了每个毛发粒子的初始毛发粒子位置。
2)骨骼蒙皮动画:简称骨骼动画,基于骨骼动画和蒙皮加权的多边形网格的动画方案,在游戏内常依靠该算法实现角色肢体和衣物的动画效果。
3)物理模拟位置:是通过对毛发粒子在真实物理运动时的位置进行物理模拟得到的,即基于物理仿真算法来还原毛发发丝的动态感,模拟每个毛发粒子在运动时的空间位置。
4)毛发形态融合:将毛发粒子的初始毛发粒子位置(或者毛发粒子在骨骼蒙皮动画对应的动画位置)与毛发粒子的物理模拟位置,通过插值算法进行融合的过程。
随着虚拟化技术的发展,虚拟毛发(如虚拟对象的头发)的特效需求变得日益迫切。比如在游戏的角色定制界面、实时游玩过程中、一些华丽的近景特效中,对毛发的真实感和美术风格要求变得更加精细。相关技术中,通常采用传统美术制作方法或者物理仿真方法实现。其中,1)传统美术制作方法:美术师可使用美术软件(如3ds max、maya、blender3d等),制作毛发骨骼(包括多个骨骼关节)、和相应的毛发网格模型(即毛发面片,包括多个多边形网格),然后按照绑定权重,将多边形网格和对应的骨骼关节做绑定,以得到骨骼蒙皮动画,最终呈现片面状的毛发动态效果。2)物理仿真方法:美术师可制作原始的毛发粒子点云(毛发粒子所形成的粒子串表示发丝),然后通过物理模拟算法来计算毛发粒子在运动时的空间位置,以完成一帧动画中毛发的模拟。但是,相关技术中存在如下问题:
1)传统美术制作方法的渲染效果基于毛发面片,而毛发本身是由巨量的细丝构成的,即使在面片数很大的情况下,真实感仍然不佳;且传统美术制作方法制作毛发的动态时,是由美术师手动制作关键帧动画,时间成本很高,动态效果也不能和物理仿真方法相比拟。2)物理仿真方法下毛发粒子的位置的虽然更贴近真实,但存在与美术风格不匹配的情况。例如,卡通风格的游戏中,毛发动态一般不会像现实物理世界那样飘逸,如果采用物理仿真方法则无法满足美术风格;又例如,在角色跑动过程中物理模拟的毛发可能会分散开,但若美术风格的要求是“毛发应该按设计师的预期在水平方向上左右摆动,毛发形态又保持一种收束(而非散开)的表象”,那么物理仿真方法则难以达到预期效果。3)若完全依赖传统美术方法,则难以达到真实动态感,若完全依赖物理仿真方法,则不一定满足特效师的特定美术风格要求,导致用户体验单一。
基于此,本申请实施例提供一种虚拟对象的毛发处理方法,以至少解决上述存在的问题。接下来首先从产品侧对本申请实施例提供的虚拟对象的毛发处理方法进行说明。在本申请实施例中,通过插件的形式,将本申请实施例提供的虚拟对象的毛发处理方法集成到虚幻引擎(UE5,Unreal Engine5)中,以供用户使用。该插件所基于的物理仿真***为“Physion”,“Physion”基于离散弹性棒(DER,Discrete Elastic Rods)和物质点法(MPM,Material Point Method)实现了毛发粒子的物理模拟功能,并且将毛发粒子的物理模拟位置传输至游戏引擎的渲染缓冲区中来完成渲染,参见图8,图8是本申请实施例提供的虚拟毛发的示意图,图8中的虚拟毛发是基于物理仿真算法得到的。
下面结合图9对本申请实施例提供的虚拟对象的毛发处理方法进行说明。图9是本申请实施例提供的虚拟对象的毛发处理方法的流程示意图二,包括:1、导入毛发资产;2、为虚拟对象添加PhysionGroom组件;3、在PhysionGroom组件下设置多个分块的发块;4、绑定胶囊体和骨骼;5、加载胶囊体,并对齐头部;6、融合物理模拟位置与初始毛发粒子位置(静态融合);7、美术软件内制作毛发的mesh和骨骼,并做蒙皮绑定;8、导入到Unreal Engine;9、设置虚拟对象的动画;10、将SkeletalMesh挂载到插件;11、融合物理模拟位置与骨骼蒙皮动画(动态融合);12、设置混合:调节融合曲线;13、进行渲染。需要说明的是,该步骤1-5和步骤7-10也可由不同人员同时开始以并行进行处理。而实现静态融合仅需执行该步骤1-6即可,该步骤1-11的执行可实现动态融合。
在实际实施时,首先用户需先导入毛发资产(一般为alembic文件,即毛发粒子模型)到UE5引擎的项目工程中,然后为虚拟对象(如游戏角色)添加PhysionGroom组件,在此组件下可以设置多个分块的发块,设置驱动毛发运动的胶囊体,并绑定到某一骨骼关节上,这样在骨骼运动时,胶囊体就会随之而动,而吸附在胶囊体上的毛发就会跟随着进行物理模拟。在进行物理模拟过程中,就会进入到形态融合(包括静态融合和动态融合)步骤中。而融合特性又提供了一个融合功能面板用以调节各个参数。另外,当需要与骨骼蒙皮动画相融合时,用户须先在美术软件内进行毛发多边形网格、骨骼和对应的绑定操作,然后将这些资产导入的UE5引擎内才可以使用动画融合功能。
本申请实施例提供的毛发形态融合的功能集成在了插件的交互UI中,通过一个融合功能面板和内置的曲线编辑器进行调参。第一,对融合功能面板进行说明。参见图10,图10是本申请实施例提供的融合功能面板的显示示意图。这里,在融合功能面板内,提供了两类融合模式:1)毛发粒子的初始毛发粒子位置与物理模拟位置的融合(即上述静态融合);2)毛发粒子在骨骼蒙皮动画对应的动画位置与物理模拟位置的融合(即上述动态融合,也称骨骼动画融合)。对于两类融合模式,又分别提供了一个“插值类型选择下拉框”和一个“曲线编辑器”。对于“插值类型选择下拉框”(图10所示的“Rest Blend InterpolationType”和“Anim Blend Interpolation Type”),在点击后会出现两种供选择的融合方式,该融合方式包括:线性插值(Lerp)融合方式、球面插值(SLerp)融合方式。
其中,融合模式1):毛发粒子的初始毛发粒子位置与物理模拟位置的融合。即,将“毛发粒子的物理模拟位置(简称模拟毛发)”和“毛发资产中的初始毛发粒子位置(简称模拟毛发)”进行插值处理。插值算法包括:a)线性插值:针对模拟毛发和初始毛发分别设置一个权重(两个权重相加为1),从而基于各自的权重针对每个毛发粒子做位置上的线性插值。模拟毛发的权值越高,毛发渲染结果越接近模拟毛发,否则越接近初始毛发。线性插值的融合结果更能保持毛发形态,且可以通过将模拟毛发的权重值调低使某一段毛发被固定住。b)球面插值:针对模拟毛发和初始毛发分别设置一个权重(两个权重相加为1),从而基于各自的权重针对每根发丝上的逐段毛发做角度插值。模拟毛发的权值越高,毛发渲染结果越接近模拟毛发,否则越接近初始毛发。球面插值的融合结果可以保证毛发长度的稳定。
融合模式2):毛发粒子在骨骼蒙皮动画对应的动画位置(简称动画毛发)与物理模拟位置的融合。融合模式2)是为了提供给用户一种方便通过加入外部动画来影响最终的模拟渲染效果,比如当角色运动时毛发模拟结果没有按预期的方向摆动,可以通过该功能加入外部动画来进行混合,最终达到既有模拟带来的飘逸感又按一定动画序列摆动的效果。该融合模式2)可以和融合模式1)同时使用。融合模式2)中,毛发粒子最终渲染的位置为“物理模拟位置”和“毛发粒子在骨骼蒙皮动画对应的动画位置”的插值结果。插值算法包括:a)线性插值:针对模拟毛发和动画毛发分别设置一个权重(两个权重相加为1),从而基于各自的权重针对每个毛发粒子做位置上的线性插值。模拟毛发的权值越高,毛发渲染结果越接近模拟毛发,否则越接近动画毛发。b)球面插值:针对模拟毛发和动画毛发分别设置一个权重(两个权重相加为1),从而基于各自的权重针对每根发丝上的逐段毛发做角度插值。模拟毛发的权值越高,毛发渲染结果越接近模拟毛发,否则越接近动画毛发。
第二,对权重曲线编辑器进行说明。参见图5,融合功能的融合权重的编辑和调节,可以通过图5所示的“权重曲线编辑器”来实现。可以在权重曲线编辑器的编辑器界面进行曲线的创建和编辑,例如,在曲线编辑器中,右键空白处可以添加关键点,然后设置关键点的关键点坐标。需要说明的是,1)编辑器横轴(关键点的X坐标值):表示每根虚拟发丝上的毛发粒子的索引号(从发根到发梢的毛发粒子的索引号分别为0、1、2…n-1、n,其中,n为整数)与当前虚拟发丝所有毛发粒子总数的比值。虽然每根毛发粒子数不一样,但可以归一化到[0,1]。例如,各发丝分别包含毛发粒子3个,则X=0.5则表示每根发丝中的第2个毛发粒子。2)编辑器纵轴(关键点的Y坐标值):表示当前这一位置的毛发粒子针对目标位置(初始位置和物理模拟位置中之一)的权重值。
接下来继续从技术侧说明本申请实施例提供的虚拟对象的毛发处理方法。其中,融合模式1):毛发粒子的初始毛发粒子位置与物理模拟位置的融合。在实际实施时,可以通过线性插值融合方式、球面插值融合方式实现。
参见图6,展示了线性插值融合方式的原理。其中,AC0表示虚拟发丝中各毛发粒子的初始位置;AC1表示虚拟发丝中各毛发粒子的物理模拟位置;A为发根毛发粒子,B0和B1为中间毛发粒子,C0和C1为发梢毛发粒子。
这里,对于发根毛发粒子A,初始位置和物理模拟位置相同,所以融合位置不变,即为A;对于中间毛发粒子,中间毛发粒子对应初始位置的权重值为0.5,中间毛发粒子对应物理模拟位置的权重值为0.5,因此,中间毛发粒子的融合位置由权重值0.5的初始位置的坐标值(B0)和权重值0.5的物理模拟位置的坐标值(B1),经过加权处理得到,即为B;对于发梢毛发粒子,发梢毛发粒子对应初始位置的权重值为0.75,发梢毛发粒子对应物理模拟位置的权重值为0.25,因此,发梢毛发粒子的融合位置由权重值0.75的初始位置的坐标值(C0)和权重值0.25的物理模拟位置的坐标值(C1),经过加权处理得到,即为C。最终,由A、B、C串联起来得到的线段组就是该虚拟发丝中各发丝粒子经过融合处理后得到的融合发丝。如此,当插值权重(即初始位置的权重)为时,线性插值使用的公式如下:
但是,如图6所示,融合发丝AC中,每一段的长度其实有所变短,这是由于线性插值仅单纯地考虑了位置上的量度,而不能保证同一发丝相邻两个毛发粒子之间的距离在融合后不发生变化,比如AB和AB1没有保持相同的长度。对于这一问题,则可以通过“球面插值融合方式”来解决。接下来对球面插值融合方式的融合原理进行说明。
参见图7,展示了球面插值融合方式的原理。和线性插值融合方式不同的是,最终的融合位置,是通过初始发丝和模拟发丝的夹角进行角度插值得到。如图7所示,AC0表示虚拟发丝中各毛发粒子的初始位置;AC1表示虚拟发丝中各毛发粒子的物理模拟位置;A为发根毛发粒子,B0和B1为中间毛发粒子,C0和C1为发梢毛发粒子,B0、B1、C0和C1为非发根毛发粒子。
其中,1)毛发粒子A是发根粒子,它的位置记录在毛发资产中,并且随物理模拟不会改变其模型局部空间的位置。
2)假设边AB0为起始边,边AB1为终点边,经过球面插值得到向量AB,其中,球面插值的权重可以分别取0.5和0.5,比如AB0和AB1的夹角是60°,则向量AB将朝向它们中间30°的方向。故通过位置不变的点A和向量AB,可以计算得到毛发粒子B的融合位置。
3)毛发粒子C的位置类似粒子B,先通过B0C0和 B1C1做球面插值,球面插值的权重值为0.75(对应物理模拟位置)和0.25(对应初始位置),即融合位置更靠近物理模拟位置,插值得到向量BC后,再在毛发粒子B的位置加上向量BC即可得到发梢粒子C的融合位置。
其中,向量形式的球面插值使用的公式如下:
其中,融合模式2):毛发粒子在骨骼蒙皮动画对应的动画位置与物理模拟位置的融合。如图4所示,确定毛发粒子在骨骼蒙皮动画对应的动画位置时,除了需要毛发资产(上述毛发粒子模型),还需要依赖毛发的毛发骨骼和毛发网格模型。参见图11,图11是本申请实施例提供的虚拟对象的毛发处理方法的流程示意图三,包括:
1)导入毛发网格模型和毛发骨骼,一般用FBX格式存储;
2)对齐毛发网格模型和毛发资产;
3)确定每个毛发粒子对应的骨骼关节以及相应的绑定权重;
4)通过UE5引擎内的接口,获取每个骨骼关节的蒙皮矩阵;
5)基于毛发粒子在模型坐标系中的毛发粒子位置、蒙皮矩阵、毛发粒子相对骨骼关节的绑定权重,通过动画蒙皮公式,得到毛发粒子对应骨骼蒙皮动画的动画位置。毛发粒子的动画位置与毛发网格保持相对同步的运动。
其中,动画蒙皮公式如下:
,为毛发粒子与第i个骨骼关节的绑定权重;为毛发粒子在绑定姿态下,在模型空间中的毛发粒子位置;为毛发粒子在绑定姿态下,将毛发粒子从第i个绑定的骨骼关节的骨骼局部空间,转换到模型空间的平移旋转缩放矩阵(TransformMatrix);相乘后,得到绑定姿态下毛发粒子在第i个骨骼关节的局部空间坐标;为当前动画帧姿态下,将毛发粒子从第i个绑定的骨骼关节的骨骼局部空间,转换到模型空间的平移旋转缩放矩阵;就是蒙皮矩阵。
6)将得到的毛发粒子的动画位置与物理模拟位置,通过“线性插值”或“球面插值”以及关联的融合曲线,得到最后的融合位置。
在实际应用中,本申请实施例提供的虚拟对象的毛发处理方法作用于每个毛发粒子,所以如果在CPU上并行处理将会有很大性能开销。所以在实际应用中,使用计算着色器(Compute Shader)这一并行技术来加速本申请实施例的算法处理。即,基于HLSL着色语言,通过撰写UE5引擎的USF和USH脚本,把本申请实施例提供的虚拟对象的毛发处理方法运行在GPU上,使性能获得成倍的提高。如图12所示,图12是本申请实施例提供的对虚拟毛发进行并行处理的示意图。这里,依照HLSL语言计算着色器的开辟线程的规范,先按虚拟毛发的虚拟发丝数目(Strands number)开辟等量的线程组,然后对于每一个线程组,再开辟32个并行线程,以同时处理每根虚拟发丝上的所有毛发粒子。对于超过32个毛发粒子的发丝,着色器将循环处理,也就是先处理32个粒子,然后再处理剩余粒子的融合计算。
需要说明的是,当使用球面插值进行融合计算时,由于每个毛发粒子的融合位置计算都依赖上一毛发粒子的融合位置,并行计算特点导致了它不能同时处理这样对相邻线程存在状态依赖的算法,否则会出现:新毛发粒子计算时,上一个毛发粒子可能还未完成插值的可能,导致结果错误或程序崩溃。因此,可以对于每个虚拟发丝是并行处理的,但是对于每根虚拟发丝上的所有毛发粒子,则是串行处理的。基于此,经过着色器的并行化处理,处理耗时大大降低。参见图13,图13是本申请实施例提供的毛发处理时长的示意图,这里,对于含有数千毛发粒子的毛发融合算法,耗时也仅有30~40微秒/帧的开销,对于60FPS,平均16.7毫秒/帧的游戏帧率,几乎对性能没有明显影响。
在实际应用中,1)物理模拟模块还可以通过如UE5引擎的Groom、TressFx等实现;2)可采用其他UI交互方式来替代曲线编辑器的功能,如滑条等;3)物理模拟位置与骨骼动画的融合,还可以替换为与多边形网格动画(Blend Shape)的融合。
应用本申请上述实施例,提供了更多的虚拟毛发的发型支持,以及毛发动态调节手段,扩展了用物理仿真方法来模拟毛发的效果边界。具体地,1)如图14A所示,对于长发,并且中间有发箍固定的束发发型,可以选择线性插值进行融合处理,并在融合权重曲线中,把发箍部分的毛发粒子的物理模拟位置的权重值调低(比如调整为0),来达到预期效果。2)如图14B,对于两端固定的发型,物理模拟本身只能固定住发根一端,但通过将物理模拟位置与初始态位置,通过线性插值的方式进行融合,并在融合权重曲线中,将两端的毛发粒子的物理模拟位置的权重值调至最低(比如调整为0),以达到预期效果。3)如图14C所示,对于模拟结果不满足用户预期效果的毛发,可以使用骨骼蒙皮动画融合的方法,并选择球面插值融合方式,导入用户想要的虚拟毛发的动画形态,结合物理模拟结果,产生一种中间态,它既具备物理模拟带来的真实感、飘逸感,也具有用户所预期的运动趋势。4)如图14D所示,对于长发的动画蒙皮融合来说,适合使用球面插值来进行融合,如图14D可见,球面插值比线性插值的融合效果更加正确,使用线性插值是发丝的长度相对实际预期的骨骼长度更短。
需要说明的是,物理模拟位置对应的权重也可称为模拟权重。
如此,本申请实施例1)较传统美术制作方案,和单纯使用物理模拟方案,既保留了物理模拟带来的真实感,又可以按用户要求保留特定的美术风格要求。同时支持了多种常见发型,如长发、短发、辫子、束发和盘发等。2)提供一种权重曲线编辑器,和线性、球面两种不同的插值类型,用户可以利用它们对不同发型在不同场合下的使用不同的融合类型,使用便捷,美术师、特效师反馈良好。3)通过使用计算着色器编写的GPU并行处理程序,将作用在每个毛发粒子的融合算法并行化,使性能消耗降到最低。
可以理解的是,在本申请实施例中,涉及到用户信息等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
下面继续说明本申请实施例提供的虚拟对象的毛发处理装置553的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器550的虚拟对象的毛发处理装置553中的软件模块可以包括:获取模块5531,用于获取虚拟对象的虚拟毛发中各毛发粒子的初始位置,并获取各所述毛发粒子的物理模拟位置;其中,所述物理模拟位置为,基于所述毛发粒子的初始位置,对所述毛发粒子在真实物理运动时的位置进行物理模拟所得到;融合模块5532,用于针对各所述毛发粒子,对所述毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置;渲染模块5533,用于基于各所述毛发粒子的融合位置进行虚拟毛发的渲染处理,得到渲染后的虚拟毛发。
在一些实施例中,所述获取模块5531,还用于获取针对所述虚拟对象的虚拟毛发创建的毛发粒子模型,所述毛发粒子模型包括所述虚拟毛发中的各所述毛发粒子;针对各所述毛发粒子,将所述毛发粒子在所述毛发粒子模型的模型位置,作为所述毛发粒子的初始位置。
在一些实施例中,所述获取模块5531,还用于获取所述虚拟对象的虚拟毛发的毛发粒子模型、毛发网格模型和毛发骨骼;其中,所述毛发粒子模型包括所述虚拟毛发中的各所述毛发粒子,所述毛发网格模型包括多个网格顶点,所述毛发骨骼包括多个骨骼关节;其中,通过绑定各所述网格顶点与相关联的至少一个骨骼关节形成所述虚拟毛发的骨骼蒙皮动画,各所述骨骼关节具有相应的绑定权重;针对各所述毛发粒子,确定所述毛发粒子在所述毛发网格模型的模型坐标系中的毛发粒子位置,从所述多个骨骼关节中确定与所述毛发粒子关联的至少一个目标骨骼关节,并确定各所述目标骨骼关节对应的目标绑定权重;针对各所述毛发粒子,基于所述毛发粒子位置、以及各所述目标骨骼关节对应的目标绑定权重,确定所述毛发粒子在所述骨骼蒙皮动画中的动画位置,并将所述毛发粒子的动画位置作为所述毛发粒子的初始位置。
在一些实施例中,所述获取模块5531,还用于对所述毛发粒子模型进行移动,以将所述毛发粒子模型和所述毛发网格模型进行对齐;获取在所述移动的过程中所产生的坐标变换信息、以及所述毛发粒子模型中各所述毛发粒子的初始毛发粒子位置;基于所述初始毛发粒子位置以及所述坐标变换信息,确定所述毛发粒子在所述毛发网格模型的模型坐标系中的毛发粒子位置。
在一些实施例中,所述获取模块5531,还用于从所述多个网格顶点中,确定距离所述毛发粒子最近的目标网格顶点;将与所述目标网格顶点关联的至少一个骨骼关节,作为与所述毛发粒子关联的至少一个目标骨骼关节,并将与所述目标网格顶点关联的各所述骨骼关节对应的绑定权重,作为各所述目标骨骼关节对应的目标绑定权重。
在一些实施例中,所述获取模块5531,还用于针对各所述目标骨骼关节,分别执行如下处理:将所述毛发粒子位置和所述目标骨骼关节的目标绑定权重相乘,得到所述毛发粒子相对所述目标骨骼关节的中间粒子位置;获取所述目标骨骼关节的蒙皮矩阵,并将所述中间粒子位置和所述蒙皮矩阵相乘,得到中间动画位置;将各所述目标骨骼关节对应的中间动画位置相加,得到所述毛发粒子在所述骨骼蒙皮动画中的动画位置。
在一些实施例中,所述获取模块5531,还用于针对各所述毛发粒子,分别执行如下处理:获取所述毛发粒子的边界约束参数和运动参数,所述边界约束参数为所述毛发粒子在运动时所能够到达的最远位置,所述运动参数包括毛发粒子的运动速度和运动方向;基于所述边界约束参数和所述运动参数,对所述毛发粒子的初始位置进行调整,得到所述毛发粒子的物理模拟位置。
在一些实施例中,所述融合模块5532,还用于针对各所述毛发粒子,分别执行如下处理:获取所述毛发粒子的初始位置的第一权重值、以及所述毛发粒子的物理模拟位置的第二权重值;基于所述第一权重值和所述第二权重值,对所述初始位置和所述物理模拟位置进行加权处理,得到所述毛发粒子的融合位置。
在一些实施例中,所述虚拟毛发包括多根虚拟发丝,所述虚拟发丝包括至少一个毛发粒子;所述融合模块5532,还用于在所述获取所述毛发粒子的初始位置的第一权重值之前,获取所述虚拟发丝的融合权重曲线中关键点的关键点坐标;基于所述关键点的关键点坐标,生成所述虚拟发丝的融合权重曲线;其中,所述融合权重曲线的横坐标,用于指示各所述毛发粒子在所述虚拟发丝中的位置,所述融合权重曲线的纵坐标,用于指示所述毛发粒子的目标位置的权重值,所述目标位置为所述初始位置和所述物理模拟位置中之一;相应的,当所述目标位置为所述初始位置,且所述融合权重曲线的权重值归属于[0,1]时,所述融合模块5532,还用于确定所述毛发粒子在所述虚拟发丝中的第一位置,并基于所述融合权重曲线,确定对应所述第一位置的目标权重值;将所述目标权重值作为所述第一权重值,并将所述第一权重值和1之间的差值作为所述第二权重值。
在一些实施例中,所述融合模块5532,还用于确定所述初始位置和所述物理模拟位置的融合方式;当所述融合方式为线性插值融合方式时,针对各所述毛发粒子,采用所述线性插值融合方式,对所述毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置;当所述融合方式为球面插值融合方式时,针对各所述毛发粒子,采用所述球面插值融合方式,对所述毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置。
在一些实施例中,所述融合模块5532,还用于针对各所述毛发粒子,分别执行如下处理:获取所述毛发粒子的初始位置的第一坐标值、以及所述毛发粒子的物理模拟位置的第二坐标值;获取所述第一坐标值的第三权重值和所述第二坐标值的第四权重值;基于所述第三权重值和所述第四权重值,对所述第一坐标值和所述第二坐标值进行加权处理,得到第三坐标值;将所述第三坐标值所指示的位置,作为所述毛发粒子的融合位置。
在一些实施例中,所述虚拟毛发包括多根虚拟发丝,所述虚拟发丝包括发根毛发粒子和至少一个非发根毛发粒子;所述融合模块5532,还用于针对所述发根毛发粒子,将所述发根毛发粒子的初始位置,确定为所述发根毛发粒子的融合位置;针对所述非发根毛发粒子,按照从所述虚拟发丝的发根至发梢的毛发粒子处理顺序,对各所述非发根毛发粒子依次执行如下处理:获取所述非发根毛发粒子的上一非发根毛发粒子的目标融合位置,并获取以所述目标融合位置为共同起点的第一向量和第二向量间的向量夹角;其中,所述第一向量与第三向量相平行,所述第二向量与第四向量相平行;所述第三向量,为所述上一非发根毛发粒子的初始位置至所述非发根毛发粒子的初始位置的向量,所述第四向量,为所述上一非发根毛发粒子的物理模拟位置至所述非发根毛发粒子的物理模拟位置的向量;基于所述初始位置的第一角度权重值和所述物理模拟位置的第二角度权重值,将所述向量夹角划分为第一夹角和第二夹角;基于所述第一向量、所述第二向量、所述第一夹角和所述第二夹角,得到所述目标融合位置至所述非发根毛发粒子的融合位置的目标向量,并基于所述目标融合位置和所述目标向量,确定所述非发根毛发粒子的融合位置。
在一些实施例中,所述融合模块5532,还用于创建所述虚拟毛发中各所述毛发粒子的第一融合处理线程;通过各所述第一融合处理线程,并行地采用所述线性插值融合方式,对相应毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置。
在一些实施例中,所述虚拟毛发包括多根虚拟发丝,所述虚拟发丝包括至少一个毛发粒子;所述融合模块5532,还用于创建各所述虚拟发丝的第二融合处理线程;通过各所述虚拟发丝的第二融合处理线程,并行地对相应虚拟发丝执行如下处理:通过所述虚拟发丝的第二融合处理线程,串行地采用所述球面插值融合方式,对所述虚拟发丝上各所述毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置。
应用本申请上述实施例,首先,获取虚拟对象的虚拟毛发中各毛发粒子的初始位置,并获取各毛发粒子的物理模拟位置,然后,针对各毛发粒子,对毛发粒子的初始位置和物理模拟位置进行融合,得到毛发粒子的融合位置,从而基于各毛发粒子的融合位置进行虚拟毛发的渲染处理,得到渲染后的虚拟毛发。这里,毛发粒子的初始位置能够支持虚拟毛发具有特定的毛发形态,物理模拟位置为基于毛发粒子的初始位置,对毛发粒子在真实物理运动时的位置进行物理模拟所得到,能够增加虚拟毛发的真实动态感。如此,基于融合位置(初始位置和物理模拟位置的融合)进行虚拟毛发的渲染,能够实现物理模拟的真实动态感与特定风格的结合,使得所渲染得到的虚拟毛发既满足虚拟毛发特定风格的需求,还具有真实动态感,提高了渲染得到的虚拟毛发的显示效果。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该电子设备执行本申请实施例提供的虚拟对象的毛发处理方法。
本申请实施例还提供一种计算机可读存储介质,其中存储有计算机可执行指令,当计算机可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的虚拟对象的毛发处理方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,计算机可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,计算机可执行指令可以但不一定对应于文件***中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,HyperText Markup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,计算机可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (15)
1.一种虚拟对象的毛发处理方法,其特征在于,所述方法包括:
获取所述虚拟对象的虚拟毛发的毛发粒子模型、毛发网格模型和毛发骨骼;
其中,所述毛发粒子模型包括所述虚拟毛发中的各毛发粒子,所述毛发网格模型包括多个网格顶点,所述毛发骨骼包括多个骨骼关节;
其中,通过绑定各所述网格顶点与相关联的至少一个骨骼关节形成所述虚拟毛发的骨骼蒙皮动画,各所述骨骼关节具有相应的绑定权重;
针对各所述毛发粒子,确定所述毛发粒子在所述毛发网格模型的模型坐标系中的毛发粒子位置,从所述多个骨骼关节中确定与所述毛发粒子关联的至少一个目标骨骼关节,并确定各所述目标骨骼关节对应的目标绑定权重;
针对各所述毛发粒子,基于所述毛发粒子位置、以及各所述目标骨骼关节对应的目标绑定权重,确定所述毛发粒子在所述骨骼蒙皮动画中的动画位置;
将各所述毛发粒子的动画位置作为各所述毛发粒子的初始位置,并获取各所述毛发粒子的物理模拟位置;
其中,所述物理模拟位置为,基于所述毛发粒子的初始位置,对所述毛发粒子在真实物理运动时的位置进行物理模拟所得到;
针对各所述毛发粒子,对所述毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置;
基于各所述毛发粒子的融合位置进行虚拟毛发的渲染处理,得到渲染后的虚拟毛发。
2.如权利要求1所述的方法,其特征在于,所述确定所述毛发粒子在所述毛发网格模型的模型坐标系中的毛发粒子位置,包括:
对所述毛发粒子模型进行移动,以将所述毛发粒子模型和所述毛发网格模型进行对齐;
获取在所述移动的过程中所产生的坐标变换信息、以及所述毛发粒子模型中各所述毛发粒子的初始毛发粒子位置;
基于所述初始毛发粒子位置以及所述坐标变换信息,确定所述毛发粒子在所述毛发网格模型的模型坐标系中的毛发粒子位置。
3.如权利要求1所述的方法,其特征在于,所述从所述多个骨骼关节中确定与所述毛发粒子关联的至少一个目标骨骼关节,并确定各所述目标骨骼关节对应的目标绑定权重,包括:
从所述多个网格顶点中,确定距离所述毛发粒子最近的目标网格顶点;
将与所述目标网格顶点关联的至少一个骨骼关节,作为与所述毛发粒子关联的至少一个目标骨骼关节,并将与所述目标网格顶点关联的各所述骨骼关节对应的绑定权重,作为各所述目标骨骼关节对应的目标绑定权重。
4.如权利要求1所述的方法,其特征在于,所述基于所述毛发粒子位置、以及各所述目标骨骼关节对应的目标绑定权重,确定所述毛发粒子在所述骨骼蒙皮动画中的动画位置,包括:
针对各所述目标骨骼关节,分别执行如下处理:将所述毛发粒子位置和所述目标骨骼关节的目标绑定权重相乘,得到所述毛发粒子相对所述目标骨骼关节的中间粒子位置;获取所述目标骨骼关节的蒙皮矩阵,并将所述中间粒子位置和所述蒙皮矩阵相乘,得到中间动画位置;
将各所述目标骨骼关节对应的中间动画位置相加,得到所述毛发粒子在所述骨骼蒙皮动画中的动画位置。
5.如权利要求1所述的方法,其特征在于,所述获取各所述毛发粒子的物理模拟位置,包括:
针对各所述毛发粒子,分别执行如下处理:
获取所述毛发粒子的边界约束参数和运动参数,所述边界约束参数为所述毛发粒子在运动时所能够到达的最远位置,所述运动参数包括毛发粒子的运动速度和运动方向;
基于所述边界约束参数和所述运动参数,对所述毛发粒子的初始位置进行调整,得到所述毛发粒子的物理模拟位置。
6.如权利要求1所述的方法,其特征在于,所述针对各所述毛发粒子,对所述毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置,包括:
针对各所述毛发粒子,分别执行如下处理:
获取所述毛发粒子的初始位置的第一权重值、以及所述毛发粒子的物理模拟位置的第二权重值;
基于所述第一权重值和所述第二权重值,对所述初始位置和所述物理模拟位置进行加权处理,得到所述毛发粒子的融合位置。
7.如权利要求6所述的方法,其特征在于,所述虚拟毛发包括多根虚拟发丝,所述虚拟发丝包括至少一个毛发粒子;所述获取所述毛发粒子的初始位置的第一权重值之前,所述方法还包括:
获取所述虚拟发丝的融合权重曲线中关键点的关键点坐标;
基于所述关键点的关键点坐标,生成所述虚拟发丝的融合权重曲线;
其中,所述融合权重曲线的横坐标,用于指示各所述毛发粒子在所述虚拟发丝中的位置,所述融合权重曲线的纵坐标,用于指示所述毛发粒子的目标位置的权重值,所述目标位置为所述初始位置和所述物理模拟位置中之一;
当所述目标位置为所述初始位置,且所述融合权重曲线的权重值归属于[0,1]时,所述获取所述毛发粒子的初始位置的第一权重值、以及所述毛发粒子的物理模拟位置的第二权重值,包括:
确定所述毛发粒子在所述虚拟发丝中的第一位置,并基于所述融合权重曲线,确定对应所述第一位置的目标权重值;
将所述目标权重值作为所述第一权重值,并将所述第一权重值和1之间的差值作为所述第二权重值。
8.如权利要求1所述的方法,其特征在于,所述针对各所述毛发粒子,对所述毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置,包括:
确定所述初始位置和所述物理模拟位置的融合方式;
当所述融合方式为线性插值融合方式时,针对各所述毛发粒子,采用所述线性插值融合方式,对所述毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置;
当所述融合方式为球面插值融合方式时,针对各所述毛发粒子,采用所述球面插值融合方式,对所述毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置。
9.如权利要求8所述的方法,其特征在于,所述针对各所述毛发粒子,采用所述线性插值融合方式,对所述毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置,包括:
针对各所述毛发粒子,分别执行如下处理:
获取所述毛发粒子的初始位置的第一坐标值、以及所述毛发粒子的物理模拟位置的第二坐标值;
获取所述第一坐标值的第三权重值和所述第二坐标值的第四权重值;
基于所述第三权重值和所述第四权重值,对所述第一坐标值和所述第二坐标值进行加权处理,得到第三坐标值;
将所述第三坐标值所指示的位置,作为所述毛发粒子的融合位置。
10.如权利要求8所述的方法,其特征在于,所述虚拟毛发包括多根虚拟发丝,所述虚拟发丝包括发根毛发粒子和至少一个非发根毛发粒子;所述针对各所述毛发粒子,采用所述球面插值融合方式,对所述毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置,包括:
针对所述发根毛发粒子,将所述发根毛发粒子的初始位置,确定为所述发根毛发粒子的融合位置;
针对所述非发根毛发粒子,按照从所述虚拟发丝的发根至发梢的毛发粒子处理顺序,对各所述非发根毛发粒子依次执行如下处理:
获取所述非发根毛发粒子的上一非发根毛发粒子的目标融合位置,并获取以所述目标融合位置为共同起点的第一向量和第二向量间的向量夹角;
其中,所述第一向量与第三向量相平行,所述第二向量与第四向量相平行;所述第三向量,为所述上一非发根毛发粒子的初始位置至所述非发根毛发粒子的初始位置的向量,所述第四向量,为所述上一非发根毛发粒子的物理模拟位置至所述非发根毛发粒子的物理模拟位置的向量;
基于所述初始位置的第一角度权重值和所述物理模拟位置的第二角度权重值,将所述向量夹角划分为第一夹角和第二夹角;
基于所述第一向量、所述第二向量、所述第一夹角和所述第二夹角,得到所述目标融合位置至所述非发根毛发粒子的融合位置的目标向量,并基于所述目标融合位置和所述目标向量,确定所述非发根毛发粒子的融合位置。
11.如权利要求8所述的方法,其特征在于,所述针对各所述毛发粒子,采用所述线性插值融合方式,对所述毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置,包括:
创建所述虚拟毛发中各所述毛发粒子的第一融合处理线程;
通过各所述第一融合处理线程,并行地采用所述线性插值融合方式,对相应毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置。
12.如权利要求8所述的方法,其特征在于,所述虚拟毛发包括多根虚拟发丝,所述虚拟发丝包括至少一个毛发粒子;所述针对各所述毛发粒子,采用所述球面插值融合方式,对所述毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置,包括:
创建各所述虚拟发丝的第二融合处理线程;
通过各所述虚拟发丝的第二融合处理线程,并行地对相应虚拟发丝执行如下处理:
通过所述虚拟发丝的第二融合处理线程,串行地采用所述球面插值融合方式,对所述虚拟发丝上各所述毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置。
13.一种虚拟对象的毛发处理装置,其特征在于,所述装置包括:
获取模块,用于获取所述虚拟对象的虚拟毛发的毛发粒子模型、毛发网格模型和毛发骨骼;其中,所述毛发粒子模型包括所述虚拟毛发中的各毛发粒子,所述毛发网格模型包括多个网格顶点,所述毛发骨骼包括多个骨骼关节;其中,通过绑定各所述网格顶点与相关联的至少一个骨骼关节形成所述虚拟毛发的骨骼蒙皮动画,各所述骨骼关节具有相应的绑定权重;
所述获取模块,还用于针对各所述毛发粒子,确定所述毛发粒子在所述毛发网格模型的模型坐标系中的毛发粒子位置,从所述多个骨骼关节中确定与所述毛发粒子关联的至少一个目标骨骼关节,并确定各所述目标骨骼关节对应的目标绑定权重;针对各所述毛发粒子,基于所述毛发粒子位置、以及各所述目标骨骼关节对应的目标绑定权重,确定所述毛发粒子在所述骨骼蒙皮动画中的动画位置;
所述获取模块,还用于将各所述毛发粒子的动画位置作为各所述毛发粒子的初始位置,并获取各所述毛发粒子的物理模拟位置;
其中,所述物理模拟位置为,基于所述毛发粒子的初始位置,对所述毛发粒子在真实物理运动时的位置进行物理模拟所得到;
融合模块,用于针对各所述毛发粒子,对所述毛发粒子的所述初始位置和所述物理模拟位置进行融合,得到所述毛发粒子的融合位置;
渲染模块,用于基于各所述毛发粒子的融合位置进行虚拟毛发的渲染处理,得到渲染后的虚拟毛发。
14.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储计算机可执行指令;
处理器,用于执行所述存储器中存储的计算机可执行指令时,实现权利要求1至12任一项所述的虚拟对象的毛发处理方法。
15.一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令被处理器执行时,实现权利要求1至12任一项所述的虚拟对象的毛发处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211562688.3A CN115641375B (zh) | 2022-12-07 | 2022-12-07 | 虚拟对象的毛发处理方法、装置、设备及存储介质 |
PCT/CN2023/126307 WO2024120032A1 (zh) | 2022-12-07 | 2023-10-24 | 虚拟对象的毛发处理方法、装置、设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211562688.3A CN115641375B (zh) | 2022-12-07 | 2022-12-07 | 虚拟对象的毛发处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115641375A CN115641375A (zh) | 2023-01-24 |
CN115641375B true CN115641375B (zh) | 2023-04-11 |
Family
ID=84948939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211562688.3A Active CN115641375B (zh) | 2022-12-07 | 2022-12-07 | 虚拟对象的毛发处理方法、装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115641375B (zh) |
WO (1) | WO2024120032A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115641375B (zh) * | 2022-12-07 | 2023-04-11 | 腾讯科技(深圳)有限公司 | 虚拟对象的毛发处理方法、装置、设备及存储介质 |
CN116152405B (zh) * | 2023-04-23 | 2023-07-07 | 腾讯科技(深圳)有限公司 | 一种业务处理方法、装置及计算机设备、存储介质 |
CN116258801B (zh) * | 2023-05-16 | 2023-07-07 | 海马云(天津)信息技术有限公司 | 一种数字虚拟对象的毛发处理方法、装置及存储介质 |
CN116310009B (zh) * | 2023-05-17 | 2023-08-04 | 海马云(天津)信息技术有限公司 | 一种数字虚拟对象的装饰物处理方法、装置及存储介质 |
CN117727303A (zh) * | 2024-02-08 | 2024-03-19 | 翌东寰球(深圳)数字科技有限公司 | 一种音视频的生成方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022021686A1 (zh) * | 2020-07-28 | 2022-02-03 | 完美世界(北京)软件科技发展有限公司 | 虚拟对象的控制方法及装置、存储介质、电子装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5777619A (en) * | 1996-01-02 | 1998-07-07 | Silicon Graphics, Inc. | Method for simulating hair using particle emissions |
JP2009020874A (ja) * | 2007-06-11 | 2009-01-29 | Kyushu Institute Of Technology | 髪シミュレーション方法およびその装置 |
US9785729B2 (en) * | 2012-12-14 | 2017-10-10 | Nvidia Corporation | Technique for simulating the dynamics of hair |
CN105574913A (zh) * | 2014-10-08 | 2016-05-11 | 高明珍 | 一种基于虚拟现实技术的角色动画创建*** |
CN110102050B (zh) * | 2019-04-30 | 2022-02-18 | 腾讯科技(深圳)有限公司 | 虚拟对象显示方法、装置、电子设备及存储介质 |
CN114241100B (zh) * | 2022-02-25 | 2022-06-03 | 腾讯科技(深圳)有限公司 | 虚拟对象的蒙皮处理方法、装置、设备、介质及程序产品 |
CN114782605A (zh) * | 2022-05-06 | 2022-07-22 | 网易(杭州)网络有限公司 | 毛发虚拟模型的渲染方法、装置、计算机设备及存储介质 |
CN115641375B (zh) * | 2022-12-07 | 2023-04-11 | 腾讯科技(深圳)有限公司 | 虚拟对象的毛发处理方法、装置、设备及存储介质 |
-
2022
- 2022-12-07 CN CN202211562688.3A patent/CN115641375B/zh active Active
-
2023
- 2023-10-24 WO PCT/CN2023/126307 patent/WO2024120032A1/zh unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022021686A1 (zh) * | 2020-07-28 | 2022-02-03 | 完美世界(北京)软件科技发展有限公司 | 虚拟对象的控制方法及装置、存储介质、电子装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115641375A (zh) | 2023-01-24 |
WO2024120032A1 (zh) | 2024-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115641375B (zh) | 虚拟对象的毛发处理方法、装置、设备及存储介质 | |
US9934602B2 (en) | System, method and device for three-dimensional modeling | |
JP7299414B2 (ja) | 画像処理方法、装置、電子機器及びコンピュータプログラム | |
Tang et al. | A platform independent game technology model for model driven serious games development | |
CN110060320A (zh) | 基于webgl的动画生成方法及装置 | |
CN108897567A (zh) | 基于Unity的软件加载文件的方法、装置、设备及存储介质 | |
CN111773688B (zh) | 柔性对象的渲染方法和装置、存储介质、电子装置 | |
CN112669194B (zh) | 虚拟场景中的动画处理方法、装置、设备及存储介质 | |
CN111773719A (zh) | 虚拟对象的渲染方法和装置、存储介质、电子装置 | |
CN115564642B (zh) | 图像变换方法、装置、电子设备、存储介质及程序产品 | |
CN111369647B (zh) | 信息处理方法及装置、计算机存储介质、电子设备 | |
CN110930484B (zh) | 动画配置方法和装置、存储介质及电子装置 | |
CN112843704B (zh) | 动画模型处理方法、装置、设备及存储介质 | |
CN115253294A (zh) | 游戏角色发型调整方法、装置、电子设备及存储介质 | |
CN107221024A (zh) | 虚拟对象毛发处理方法及装置、存储介质、电子设备 | |
CN111047675A (zh) | 一种头发仿真的方法及装置 | |
WO2023077972A1 (zh) | 图像数据处理方法、数字虚拟人的构建方法、装置、设备、存储介质及计算机程序产品 | |
CN116385605A (zh) | 目标对象的飞行动画生成方法、装置及电子设备 | |
US20220172431A1 (en) | Simulated face generation for rendering 3-d models of people that do not exist | |
CN110728750B (zh) | 一种智能驾驶环境实景建模方法、***、终端及存储介质 | |
CN114882153A (zh) | 一种动画生成的方法及装置 | |
CN114119821A (zh) | 虚拟对象的毛发渲染方法、装置及设备 | |
CN118229852A (zh) | 头发动效的处理方法及装置、电子设备、存储介质 | |
Gil et al. | A Shader-Based Architecture for Virtual Reality Applications on Mobile Devices | |
Kumar | BEAPS: Incorporating Shape Dynamics in Virtual Agents Focusing on Customizing the Mesh for Pose Space Actions |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40080389 Country of ref document: HK |