一种构建虚拟毛发造型的方法、装置、设备及存储介质
文献发布时间:2024-01-17 01:19:37
技术领域
本申请涉及计算机技术领域,尤其涉及一种构建虚拟毛发造型的方法、装置、设备及存储介质。
背景技术
随着科技的不断发展,越来越多的设备可以通过构建虚拟形象,来提供直播服务,直播服务可以用于进行游戏互动、商品售卖或教学等。
例如,设备通过构建虚拟形象,为网络店铺开启直播通道。设备可以通过直播中的虚拟形象,生动形象地介绍商品的详细信息,以及优惠活动的活动规则等,以提高网络店铺中商品的购买率。
虚拟形象一般可以是虚拟的人物形象或动物形象等,那么构建虚拟形象的过程,包括构建虚拟毛发造型的过程。相关技术中,构建虚拟毛发造型的方法是,先通过毛发构建程序,绘制引导线,确定毛发生长方向和毛发长短等,再按照引导线添加由密集的数据点形成的毛发曲线,以构建虚拟毛发造型。
然而,由于虚拟形象是动态的,因此,虚拟毛发造型需要跟随虚拟形象产生动态效果。在直播等实时性要求较高的场景下,设备需要动态捕捉实时直播数据流。那么,由于虚拟毛发造型是由大量密集的数据点形成的毛发曲线构建的,因此,在虚拟毛发造型跟随虚拟形象产生动态效果时,设备会产生大量的性能消耗,来为每一帧动态的虚拟形象,构建相应的虚拟毛发造型,从而影响直播稳定性。
可见,相关技术下构建虚拟毛发造型的方法,带来的设备性能消耗较大。
发明内容
本申请实施例提供了一种构建虚拟毛发造型的方法、装置、计算机设备及存储介质,用于解决构建虚拟毛发造型带来的设备性能消耗较大的问题。
第一方面,提供一种构建虚拟毛发造型的方法,包括:
获取各初始毛发曲线,其中,所述各初始毛发曲线用于构建虚拟毛发造型,每个初始毛发曲线由位置间距小于第一间距阈值的多个初始数据点形成;
基于各个初始数据点各自在相应的初始毛发曲线中的位置,分别将所述各个初始数据点,划分为多个数据点组,其中,每个数据点组包含:每个初始毛发曲线中的至少一个初始数据点;
基于所述多个数据点组各自对应的预设采样策略,分别对所述各初始毛发曲线进行采样处理,获得相应的目标毛发曲线,其中,每个目标毛发曲线由位置间距大于第二间距阈值的多个目标数据点连线而成,所述第二间距阈值大于所述第一间距阈值;
基于获得的各目标毛发曲线,构建所述虚拟毛发造型。
第二方面,提供一种构建虚拟毛发造型的装置,包括:
获取模块:用于获取各初始毛发曲线,其中,所述各初始毛发曲线用于构建虚拟毛发造型,每个初始毛发曲线由位置间距小于第一间距阈值的多个初始数据点形成;
处理模块:用于基于各个初始数据点各自在相应的初始毛发曲线中的位置,分别将所述各个初始数据点,划分为多个数据点组,其中,每个数据点组包含:每个初始毛发曲线中的至少一个初始数据点;
所述处理模块还用于:基于所述多个数据点组各自对应的预设采样策略,分别对所述各初始毛发曲线进行采样处理,获得相应的目标毛发曲线,其中,每个目标毛发曲线由位置间距大于第二间距阈值的多个目标数据点连线而成,所述第二间距阈值大于所述第一间距阈值;
所述处理模块还用于:基于获得的各目标毛发曲线,构建所述虚拟毛发造型。
可选的,所述处理模块具体用于:
基于指定数量,设置多个数据点组,其中,所述多个数据点组关联有不同的数据点划分条件;
基于所述多个数据点组各自关联的数据点划分条件,分别将所述各个初始数据点,划分到相应的数据点组,其中,每个数据点组中的初始数据点,在相应的初始毛发曲线中的位置,满足相应的数据点组关联的数据点划分条件。
可选的,所述处理模块具体用于:
针对所述各初始毛发曲线,分别执行以下操作:
以初始毛发曲线中位于发根的初始数据点为起始,按照从小到大的顺序,为所述初始毛发曲线包含的多个初始数据点设置序号,并统计所述多个初始数据点的总点数量;
基于所述多个初始数据点各自的序号与所述总点数量之间的比值,以及所述多个数据点组各自关联的数据点划分条件,分别将所述多个初始数据点,划分到相应的数据点组。
可选的,所述数据点划分条件为数值区间时,所述处理模块具体用于:
针对所述多个初始数据点,分别执行以下操作:
基于初始数据点的序号与所述总点数量之间的比值,对所述初始数据点的序号进行归一化处理,获得所述初始数据点的归一化序号;
确定获得的归一化序号,在所述多个数据点组中的一个数据点组关联的数值区间内时,将所述初始数据点划分到所述一个数据点组。
可选的,所述多个数据点组关联不同的曲线颜色时,所述处理模块具体用于:
基于所述多个数据点组各自关联的数据点划分条件,分别将所述各个初始数据点,划分到相应的数据点组;
基于所述多个数据点组各自关联的曲线颜色,呈现所述各初始毛发曲线;
响应于针对所述多个数据点组各自关联的数据点划分条件的条件更新操作,获得所述多个数据点组各自关联的目标划分条件;
基于获得的所述多个数据点组各自关联的目标划分条件,分别重新将所述各个初始数据点,划分到相应的数据点组。
可选的,所述处理模块具体用于:
针对所述各初始毛发曲线,分别执行以下操作:
基于所述多个数据点组各自对应的预设采样策略,对初始毛发曲线中的多个初始数据点进行采样处理,获得多个目标数据点,其中,所述多个目标数据点的总数量,小于所述多个初始数据点的总数量;
按照预设的线条粗细程度、线条平滑程度和线条呈现材质,将所述多个目标数据点连接成线,获得所述初始毛发曲线对应的目标毛发曲线。
可选的,所述多个数据点组关联不同的曲线颜色时,所述处理模块具体用于:
基于所述多个数据点组各自对应的预设采样策略,分别对所述各初始毛发曲线进行采样处理,获得相应的中间毛发曲线;
基于所述多个数据点组各自关联的曲线颜色,呈现获得的各中间毛发曲线;
响应于针对所述多个数据点组各自对应的预设采样策略的策略更新操作,获得所述多个数据点组各自对应的目标采样策略;
基于获得的所述多个数据点组各自对应的目标采样策略,分别重新对所述各初始毛发曲线进行采样处理,获得相应的目标毛发曲线。
可选的,所述获取模块具体用于:
获取所述虚拟毛发造型的各预设造型分区,以及获取所述各预设造型分区中的多条引导线,其中,所述引导线表征:在相应的预设造型分区内,生成所述初始毛发曲线的曲线长度、曲线弧度和曲线位置中的至少一种;
分别按照获得的各引导线,在相应的预设造型分区内生成相应的多条所述初始毛发曲线,获得所述各初始毛发曲线。
第三方面,提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如第一方面所述的方法。
第四方面,提供一种计算机设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如第一方面所述的方法。
第五方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面所述的方法。
本申请实施例中,通过预设的采样策略,对各初始毛发曲线进行采样处理,获得相应的目标毛发曲线。由于初始毛发曲线是由位置间距小于第一间距阈值的多个初始数据点形成的,因此形成每条初始毛发曲线的多个初始数据点之间的位置得足够密集,多个初始数据点才可以形成初始毛发曲线。而目标毛发曲线是由位置间距大于第二间距阈值的多个目标数据点连线而成,第二间距阈值大于第一间距阈值,由于多个目标数据点之间是通过连线,最终形成的目标毛发曲线,那么多个目标数据点之间的位置可以相对稀疏。因此,通过各目标毛发曲线构成虚拟毛发造型的方式,相较于通过各初始毛发曲线构成虚拟毛发造型的方式来说,由于每次构建的数据点的点数更少,因此设备产生更少的性能消耗就可以实现,那么在一些像直播这种实时性要求较高的场景下,对于设备的性能要求较低,不会影响直播稳定性。
进一步的,多个目标数据点连线而成的目标毛发曲线,相较于多个初始数据点形成的初始毛发曲线来说,通过连线的方式,可以更加准确地呈现出每一根发丝,使得构建出的虚拟毛发造型更具真实性,而仅通过点足够密集而形成的线,在各初始毛发曲线交错、遮盖等情况下,足够密集的点会使多条初始毛发曲线形成面,使得毛发呈现贴片效果,失去了毛发造型的真实性。
进一步的,将用于构建虚拟毛发造型的各个初始数据点,划分为多个数据点组,从而,可以分别针对每个数据点组采用不同的预设采样策略进行采样处理,那么,例如,在各目标毛发曲线重叠程度较高的毛发中段部分,可以采样出较多的目标数据点进行连线,以保证像直播时,每帧构建出的虚拟毛发造型是一致的,从而保证直播的连贯性;在各目标毛发曲线重叠程度较低的毛发的发梢部分,可以采样出较少的目标数据点进行连线,以提高像直播时,每帧构建出的虚拟毛发造型中毛发的灵动性,使得虚拟毛发造型在直播中的效果更加真实。
附图说明
图1A为本申请实施例提供的构建虚拟毛发造型的方法的应用领域流程示意图;
图1B为本申请实施例提供的构建虚拟毛发造型的方法的一种应用场景;
图2为本申请实施例提供的构建虚拟毛发造型的方法的一种流程示意图一;
图3A为本申请实施例提供的构建虚拟毛发造型的方法的一种原理示意图一;
图3B为本申请实施例提供的构建虚拟毛发造型的方法的一种原理示意图二;
图3C为本申请实施例提供的构建虚拟毛发造型的方法的一种原理示意图三;
图3D为本申请实施例提供的构建虚拟毛发造型的方法的一种原理示意图四;
图4A为本申请实施例提供的构建虚拟毛发造型的方法的一种原理示意图五;
图4B为本申请实施例提供的构建虚拟毛发造型的方法的一种原理示意图六;
图4C为本申请实施例提供的构建虚拟毛发造型的方法的一种原理示意图七;
图5A为本申请实施例提供的构建虚拟毛发造型的方法的一种原理示意图八;
图5B为本申请实施例提供的构建虚拟毛发造型的方法的一种原理示意图九;
图5C为本申请实施例提供的构建虚拟毛发造型的方法的一种原理示意图十;
图6为本申请实施例提供的构建虚拟毛发造型的方法的一种原理示意图十一;
图7A为本申请实施例提供的构建虚拟毛发造型的方法的一种原理示意图十二;
图7B为本申请实施例提供的构建虚拟毛发造型的方法的一种原理示意图十三;
图7C为本申请实施例提供的构建虚拟毛发造型的方法的一种原理示意图十四;
图7D为本申请实施例提供的构建虚拟毛发造型的方法的一种原理示意图十五;
图7E为本申请实施例提供的构建虚拟毛发造型的方法的一种原理示意图十六;
图7F为本申请实施例提供的构建虚拟毛发造型的方法的一种原理示意图十七;
图8为本申请实施例提供的构建虚拟毛发造型的装置的一种结构示意图一;
图9为本申请实施例提供的构建虚拟毛发造型的装置的一种结构示意图二。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
下面对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
(1)重采样(Resample):将一条或多条曲线或曲面重新采样为均匀长度的段。
(2)几何实例化器(Xgen)和交互式修饰样条曲线(Xgen Interactive GroomingSpline):
几何实例化器是以程序方式为角色创建头发、毛皮和羽毛等。
交互式修饰样条曲线基于Maya的节点,可在节点编辑器中对其进行操作,所有交互式修饰头发数据都保存到Maya场景文件中,也可保存到基于Alembic的缓存文件中。其中,Maya是由AutoDesk公司开发的一款专业的三维制作软件。Alembic是一种可交换的计算机图形文件格式,常用于传输几何信息的文件。
本申请实施例涉及人工智能(Artificial Intelligence,AI)领域,云计算(cloudcomputing)领域,可以应用于智慧交通、智能农业、智慧医疗或地图等领域。
人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它研究各种机器的设计原理与实现方法,企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,使机器具有感知、推理和决策的功能。
人工智能是一门综合学科,涉及的领域广泛,既有硬件层面的技术,也有软件层面的技术。人工智能的基础技术一般包括传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作交互系统、机电一体化等技术。人工智能的软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术、机器学习/深度学习、自动驾驶、智慧交通等几大方向。随着人工智能的发展与进步,人工智能得以在多个领域中展开研究和应用,例如,常见的智能家居、智能客服、虚拟助理、智能音箱、智能营销、智能穿戴设备、无人驾驶、自动驾驶、无人机、机器人、智能医疗、车联网、自动驾驶、智慧交通等领域,相信随着未来技术的进一步发展,人工智能将在更多的领域中得到应用,发挥出越来越重要的价值。本申请实施例提供的方案,涉及人工智能的深度学习、增强现实等技术。
云计算指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(GridComputing)、分布式计算(DistributedComputing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
智能车路协同系统(Intelligent Vehicle Infrastructure CooperativeSystems,IVICS),简称车路协同系统,是智能交通系统(ITS)的一个发展方向。车路协同系统是采用先进的无线通信和新一代互联网等技术,全方位实施车车、车路动态实时信息交互,并在全时空动态交通信息采集与融合的基础上开展车辆主动安全控制和道路协同管理,充分实现人车路的有效协同,保证交通安全,提高通行效率,从而形成的安全、高效和环保的道路交通系统。
应当说明的是,本申请实施例中,涉及到初始数据点或目标数据点等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
下面对本申请实施例提供的构建虚拟毛发造型的方法的应用领域进行简单介绍。
随着科技的不断发展,越来越多的设备可以通过构建虚拟形象,来提供直播服务,直播服务可以用于进行游戏互动、商品售卖或教学等。
例如,设备通过构建虚拟形象,为网络店铺开启直播通道。设备可以通过直播中的虚拟形象,生动形象地介绍商品的详细信息,以及优惠活动的活动规则等,以提高网络店铺中商品的购买率。
又例如,在交通堵塞时,车联网设备通过构建虚拟交警形象,来提供交通指挥。车联网设备可以通过实时播放包含虚拟交警形象的画面,生动形象地引导每辆车的行驶等,以高效地解决当下交通堵塞的问题。
虚拟形象一般可以是虚拟的人物形象或动物形象等,那么构建虚拟形象的过程,包括构建虚拟毛发造型的过程。相关技术中,构建虚拟毛发造型的方法是,先通过毛发构建程序,绘制引导线,确定毛发生长方向和毛发长短等,再按照引导线添加由密集的数据点形成的毛发曲线,以构建虚拟毛发造型。
请参考图1A,为相关技术中,构建虚拟毛发造型的方法。S101,启动三维制作软件(如maya软件),在三维制作软件中启动几何实例化器(如xgen)。S102,通过几何实例化器,绘制引导线,确定毛发生长方向和毛发长短等,编辑虚拟毛发造型。S103,将编辑出的虚拟毛发造型,转换成毛发交互式修饰样条曲线(Xgen Interactive Grooming Spline,xgen交互式),用于输出abc格式的毛发数据。S104,将转换出的毛发交互式修饰样条曲线,导入虚拟引擎,用于在虚拟引擎中,绑定虚拟毛发造型和虚拟形象。S105,在虚拟引擎中,为虚拟毛发造型添加毛发属性,毛发属性可以包括毛发所属的造型分区、毛发的粗细程度和3D的虚拟毛发造型映射到2D的纹理坐标等。S106,在虚拟引擎中,绑定虚拟毛发造型和虚拟形象。S107,对虚拟毛发造型进行解算设置和动态驱动,完成整个与虚拟毛发造型相关的制作。
然而,由于虚拟形象是动态的,因此,虚拟毛发造型需要跟随虚拟形象产生动态效果。在直播等实时性要求较高的场景下,设备需要动态捕捉实时直播数据流,不仅包括动态捕捉虚拟形象,还包括动态捕捉直播画面呈现出的各物品材质,环境灯光,道具,特效等画面元素等。那么,由于虚拟毛发造型是由大量密集的数据点形成的毛发曲线构建的,因此,在虚拟毛发造型跟随虚拟形象产生动态效果时,设备会产生大量的性能消耗,来为每一帧动态的虚拟形象,构建相应的虚拟毛发造型,从而影响直播稳定性。
可见,相关技术下构建虚拟毛发造型的方法,带来的设备性能消耗较大。
同时,大量密集的数据点不仅会形成毛发曲线,还会形成面,使得虚拟毛发造型呈现出一种毛发贴片的效果,丢失了发丝细节特征,失去了毛发真实性,使得构建出的虚拟毛发造型的准确性较低。在一定程度上,相关技术下构建虚拟毛发造型的方法,使得虚拟毛发造型的呈现效果也欠佳。
为了解决构建虚拟毛发造型带来的设备性能消耗较大的问题,本申请提出一种构建虚拟毛发造型的方法。该方法中,获取各初始毛发曲线,其中,各初始毛发曲线用于构建虚拟毛发造型,每个初始毛发曲线由位置间距小于第一间距阈值的多个初始数据点形成。基于各个初始数据点各自在相应的初始毛发曲线中的位置,分别将各个初始数据点,划分为多个数据点组,其中,每个数据点组包含:每个初始毛发曲线中的至少一个初始数据点。基于多个数据点组各自对应的预设采样策略,分别对各初始毛发曲线进行采样处理,获得相应的目标毛发曲线,其中,每个目标毛发曲线由位置间距大于第二间距阈值的多个目标数据点连线而成,第二间距阈值大于第一间距阈值。基于获得的各目标毛发曲线,构建虚拟毛发造型。
本申请实施例中,通过预设的采样策略,对各初始毛发曲线进行采样处理,获得相应的目标毛发曲线。由于初始毛发曲线是由位置间距小于第一间距阈值的多个初始数据点形成的,因此形成每条初始毛发曲线的多个初始数据点之间的位置得足够密集,多个初始数据点才可以形成初始毛发曲线。而目标毛发曲线是由位置间距大于第二间距阈值的多个目标数据点连线而成,第二间距阈值大于第一间距阈值,由于多个目标数据点之间是通过连线,最终形成的目标毛发曲线,那么多个目标数据点之间的位置可以相对稀疏。因此,通过各目标毛发曲线构成虚拟毛发造型的方式,相较于通过各初始毛发曲线构成虚拟毛发造型的方式来说,由于每次构建的数据点的点数更少,因此设备产生更少的性能消耗就可以实现,那么在一些像直播这种实时性要求较高的场景下,对于设备的性能要求较低,不会影响直播稳定性。
进一步的,多个目标数据点连线而成的目标毛发曲线,相较于多个初始数据点形成的初始毛发曲线来说,通过连线的方式,可以更加准确地呈现出每一根发丝,使得构建出的虚拟毛发造型更具真实性,而仅通过点足够密集而形成的线,在各初始毛发曲线交错、遮盖等情况下,足够密集的点会使多条初始毛发曲线形成面,使得毛发呈现贴片效果,失去了毛发造型的真实性。
进一步的,将用于构建虚拟毛发造型的各个初始数据点,划分为多个数据点组,从而,可以分别针对每个数据点组采用不同的预设采样策略进行采样处理,那么,例如,在各目标毛发曲线重叠程度较高的毛发中段部分,可以采样出较多的目标数据点进行连线,以保证像直播时,每帧构建出的虚拟毛发造型是一致的,从而保证直播的连贯性;在各目标毛发曲线重叠程度较低的毛发的发梢部分,可以采样出较少的目标数据点进行连线,以提高像直播时,每帧构建出的虚拟毛发造型中毛发的灵动性,使得虚拟毛发造型在直播中的效果更加真实。
下面对本申请提供的构建虚拟毛发造型的方法的应用场景进行说明。
请参考图1B,为本申请提供的构建虚拟毛发造型的方法的一种应用场景示意图。该应用场景中包括客户端101和服务端102。客户端101和服务端102之间可以通信。通信方式可以是采用有线通信技术进行通信,例如,通过连接网线或串口线进行通信;也可以是采用无线通信技术进行通信,例如,通过蓝牙或无线保真(wireless fidelity,WIFI)等技术进行通信,具体不做限制。
客户端101泛指可以呈现虚拟毛发造型等的设备,例如,终端设备、终端设备可以访问的第三方应用程序或终端设备可以访问的网页等。终端设备包括但不限于手机、电脑、智能医疗设备、智能家电、车载终端或飞行器等。服务端102泛指可以构建虚拟毛发造型的设备,例如,终端设备或服务器等。服务器包括但不限于云服务器、本地服务器或关联的第三方服务器等。客户端101和服务端102均可以采用云计算,以减少本地计算资源的占用;同样也可以采用云存储,以减少本地存储资源的占用。
作为一种实施例,客户端101和服务端102可以是同一个设备,具体不做限制。本申请实施例中,以客户端101和服务端102分别为不同的设备为例进行介绍。
下面基于图1B,对本申请实施例提供的构建虚拟毛发造型的方法进行具体介绍。请参考图2,为本申请实施例提供的构建虚拟毛发造型的方法的一种流程示意图。
S201,获取各初始毛发曲线。
各初始毛发曲线用于构建虚拟毛发造型,每个初始毛发曲线由位置间距小于第一间距阈值的多个初始数据点形成。第一间距阈值可以是预先设定的值,在多个初始数据点中每两个初始数据点之间的位置间距小于第一间距阈值时,多个初始数据点之间不需要进行连线,而是仅通过多个初始数据点的密集程度,就可以形成初始毛发曲线。
请参考图3A,为一条初始毛发曲线,该条初始毛发曲线中包含多个初始数据点,每两个初始数据点的中心点之间的位置间距小于初始数据点的直径,或小于基于初始数据点的直径确定出的一个第一间距阈值等,从而,多个初始数据点通过不同的位置排列,可以形成不同形态的初始毛发曲线。
请参考图3B,为一种由各如图3A所示的初始毛发曲线所构建的虚拟毛发造型,该虚拟毛发造型为人物头发造型。人物的头发通常数量较多,数不胜数,如果每根头发均采用如图3A所示的初始毛发曲线来表示,那么一个虚拟毛发造型中包含的初始数据点的数量是非常庞大的。在像直播这种实时性要求较高的场景下,每帧都通过如图3A所示的初始毛发曲线来构建虚拟毛发造型,设备会产生大量的性能消耗,即使采用能够满足较高的性能要求的设备来进行直播,同样存在较大的影响直播稳定性的风险。因此,本申请实施例中,对初始毛发曲线进行进一步优化,以获得包含较少目标数据点的目标毛发曲线,再基于目标毛发曲线来构建虚拟毛发造型,从而可以降低构建虚拟毛发造型时,设备产生的大量的性能消耗。
作为一种实施例,在获取各初始毛发曲线时,可以基于设置的引导线,自动生成的各初始毛发曲线。
服务器可以获取虚拟毛发造型的各预设造型分区,以及获取各预设造型分区中的多条引导线。引导线表征:在相应的预设造型分区内,生成初始毛发曲线的曲线长度、曲线弧度和曲线位置中的至少一种。分别按照获得的各引导线,在相应的预设造型分区内生成相应的多条初始毛发曲线,获得各初始毛发曲线。基于一条引导线,可以生成多条满足引导线要求的初始毛发曲线,从而,通过预先设置的多条引导线,可以生成用于构建虚拟毛发造型的各初始毛发曲线。
请参考图3C,为获取的虚拟毛发造型的各预设造型分区,以及各预设造型分区中的多条引导线的一种示意图。图3C所示的是一个虚拟人物的头发造型的多条引导线,其中网格表示的是虚拟人物,类似于头发的曲线为引导线。不同灰度值的引导线为属于不同预设造型分区的引导线,例如,图3C中,区域301内的引导线,与区域302内的引导线,属于不同预设造型分区。
请参考图3D,为基于设置的引导线,生成的各初始毛发曲线,由各初始毛发曲线所构成的虚拟毛发造型的示意图。通过图3C所示的稀疏的多条引导线,可以生成浓密的各初始毛发曲线,形成虚拟形象的头发造型,其中,网格表示的是虚拟人物,类似于头发的曲线为各初始毛发曲线。
S202,基于各个初始数据点各自在相应的初始毛发曲线中的位置,分别将各个初始数据点,划分为多个数据点组。
在获得各初始毛发曲线之后,可以基于各个初始数据点各自在相应的初始毛发曲线中的位置,分别将各个初始数据点,划分为多个数据点组,每个数据点组包含:每个初始毛发曲线中的至少一个初始数据点。
例如,初始毛发曲线表示头发时,可以将位于靠近发根位置的初始数据点划分为一个数据点组,将头发中段位置的初始数据点划分为一个数据点组,将靠近发梢位置的初始数据点划分为一个数据点组等,具体不做限制。
分别将各个初始数据点,划分为多个数据点组时,并不会改变初始数据点的位置,而仅是为各个初始数据点分别关联上相应的数据点组。
作为一种实施例,在基于各个初始数据点各自在相应的初始毛发曲线中的位置,分别将各个初始数据点,划分为多个数据点组时,可以先基于指定数量,设置多个数据点组,刚设置的多个数据点组中还不包含任何初始数据点,多个数据点组关联有不同的数据点划分条件。基于多个数据点组各自关联的数据点划分条件,分别将各个初始数据点,划分到相应的数据点组,其中,每个数据点组中的初始数据点,在相应的初始毛发曲线中的位置,满足相应的数据点组关联的数据点划分条件。初始数据点在相应的初始毛发曲线中的位置,可以是与发根或发梢之间的相对位置,例如,靠近发根的位置、靠近发梢的位置或与发根和发梢之间的距离相似的位置等;也可以是与虚拟形象之间的相对位置,例如,根据初始毛发曲线的弯曲程度或曲线走向等,靠近虚拟形象的位置、或与虚拟形象之间的距离较大的位置等;也可以是以初始数据点为中心,以某一长度为半径的范围内,包含的初始数据点的密集程度较高的位置,或包含的初始数据点的密集程度较低的位置等,具体不做限制。
作为一种实施例,以一条初始毛发曲线为例,对划分数据点组的一种过程进行示例介绍。以初始毛发曲线中位于发根的初始数据点为起始,按照从小到大的顺序,为初始毛发曲线包含的多个初始数据点设置序号,并统计多个初始数据点的总点数量。基于多个初始数据点各自的序号与总点数量之间的比值,以及多个数据点组各自关联的数据点划分条件,分别将多个初始数据点,划分到相应的数据点组。
例如,请参考图4A(1),为一条初始毛发曲线,图4A(1)中最上方的初始数据点,为该条初始毛发曲线中,位于发根的初始数据点,以该初始数据点为起始,依次为每个初始数据点设置序号,需要从1开始,每次累加1。
请参考图4A(2),为该条初始毛发曲线中,每个初始数据点设置的序号,由于序号从1开始计数,因此根据图4A(2)中,最下方的初始数据点的序号,可以确定出该条初始毛发曲线包含的初始数据点的总点数量为36。
从而,可以基于初始数据点的序号与总点数量之间的比值,来确定初始数据点是否满足每个数据点组关联的数据点划分条件,在确定初始数据点满足一个数据点组关联的数据点划分条件时,可以将该初始数据点划分到该数据点组。
作为一种实施例,数据点划分条件可以是数值区间,那么以一条初始毛发曲线包含的多个初始数据点中的一个初始数据点为例,来介绍将初始数据点划分到数据点组的过程,其他初始数据点的划分过程类似,在此不再赘述。
基于初始数据点的序号与总点数量之间的比值,对初始数据点的序号进行归一化处理,获得初始数据点的归一化序号。例如,将初始数据点的序号与总点数量之间的比值作为该初始数据点的归一化序号等。分别匹配获得的归一化序号,与每个数据点组关联的数值区间,确定多个数据点组中,是否存在一个数据点组,能够使得获得的归一化序号,在该数据点组关联的数值区间内。确定获得的归一化序号,在多个数据点组中的一个数据点组关联的数值区间内时,将初始数据点划分到该数据点组。
例如,多个数据点组为三个数据点组,即第一数据点组、第二数据点组和第三数据点组。第一数据点组关联的数值区间为(0,0.2],第二数据点组关联的数值区间为(0.2,0.7],第三数据点组关联的数值区间为(0.7,1]。一个初始数据点的序号为3,总点数量为30,那么初始数据点的序号与总点数量之间的比值为0.1,那么可以将该比值0.1,作为该初始数据点的归一化序号。
获得归一化序号之后,确定该归一化序号是否在第一数据点组关联的数值区间(0,0.2]内。由于0.1在(0,0.2]内,那么可以将该初始数据点,划分到第一数据点组。
作为一种实施例,多个数据点组还可以关联不同的曲线颜色,那么数据点组中的初始数据点可以以相应的曲线颜色进行呈现,从而呈现出带有不同曲线颜色的初始毛发曲线。
例如,多个数据点组为三个数据点组,即第一数据点组、第二数据点组合第三数据点组。请参考图4B(1),一条初始毛发曲线中,存在多个初始数据点属于第一数据点组,存在多个初始数据点属于第二数据点组,存在多个初始数据点属于第三数据点组。
请参考图4B(2),三个数据点组分别关联灰度值不同的曲线颜色,那么属于第一数据点组的多个初始数据点可以以第一数据点组关联的曲线颜色呈现,属于第二数据点组的多个初始数据点可以以第二数据点组关联的曲线颜色呈现,属于第三数据点组的多个初始数据点可以以第三数据点组关联的曲线颜色呈现。
那么基于多个数据点组各自关联的数据点划分条件,分别将各个初始数据点,划分到相应的数据点组。基于多个数据点组各自关联的曲线颜色,呈现各初始毛发曲线。请参考图4C,为基于多个数据点组各自关联的曲线颜色,呈现各初始毛发曲线形成的虚拟毛发造型的一种示意图。
响应于针对多个数据点组各自关联的数据点划分条件的条件更新操作,获得多个数据点组各自关联的目标划分条件。基于获得的多个数据点组各自关联的目标划分条件,分别重新将各个初始数据点,划分到相应的数据点组。从而,在根据曲线颜色呈现了各初始毛发曲线之后,可以通过直观的呈现效果,来确定是否需要对数据点划分条件进行更新,以重新对初始数据点进行数据点组的划分,避免盲目的调节或设置数据点划分条件,造成构建虚拟毛发造型的效率低的问题。在需要对重新对初始数据点进行数据点组的划分时,可以对多个数据点组各自关联的数据点划分条件进行更新,以获得更加符合需求的目标划分条件,从而划分出更加符合需求的多个数据点组,以避免固定的数据点划分条件无法适应丰富的虚拟毛发造型,无法满足多样化的需求的情况。
S203,基于多个数据点组各自对应的预设采样策略,分别对各初始毛发曲线进行采样处理,获得相应的目标毛发曲线。
获得多个数据点组之后,可以基于多个数据点组各自对应的预设采样策略,分别对各初始毛发曲线进行采样处理,获得相应的目标毛发曲线。每个目标毛发曲线由位置间距大于第二间距阈值的多个目标数据点连线而成,第二间距阈值大于前述的第一间距阈值。第二间距阈值可以是一个固定值,也可以是基于毛发长度预先确定出的一个既能够真实地呈现毛发的弯曲程度等,又可以保证各目标毛发曲线包含的目标数据点的数量不会过多的值。不同数据点组对应的第二间距阈值可以不同,也可以是相同的,具体不做限制。
作为一种实施例,下面以对一条初始毛发曲线进行采样处理的过程进行示例介绍,针对其他初始毛发曲线的处理过程类似,在此不再赘述。
基于多个数据点组各自对应的预设采样策略,对初始毛发曲线中的多个初始数据点进行采样处理,获得多个目标数据点,其中,多个目标数据点的总数量,小于多个初始数据点的总数量。
例如,多个数据点组为三个数据点组,即第一数据点组、第二数据点组和第三数据点组。请参考图5A(1),第一数据点组包含该条初始毛发曲线中的14个初始数据点;第二数据点组包含该条初始毛发曲线中的15个初始数据点;第三数据点组包含该条初始毛发曲线中的7个初始数据点。
第一数据点组关联的预设采样策略例如是从每7个初始数据点中,采样出3个目标数据点的策略;第二数据点组关联的预设采样策略例如是从每5个初始数据点中,采样出2个目标数据点的策略;第三数据点组关联的预设采样策略例如是从每7个初始数据点中,采样出2个目标数据点的策略。
那么,请参考图5A(2),从第一数据点组包含的14个初始数据点中,采样出6个目标数据点;从第二数据点组包含的15个初始数据点中,采样出6个目标数据点;从第三数据点组包含的7个初始数据点中,采样出2个目标数据点。
按照预设的线条粗细程度、线条平滑程度和线条呈现材质,将多个目标数据点连接成线,获得初始毛发曲线对应的目标毛发曲线。例如,不同的数据点组可以采用不同的线条粗细程度、线条平滑程度和线条呈现材质,对目标数据点进行连线,从而可以使得获得的目标毛发曲线更加符合真实毛发的形态,丰富了目标毛发曲线反射出的细节,提高了构建出的虚拟毛发造型的真实性。
例如,请参考图5B,第一数据点组中的目标数据点由于更加靠近发根处,因此可以采用线条粗细程度相对较粗和线条平滑程度相对平滑的曲线连接每个目标数据点;第二数据点组中的目标数据点由于属于发丝中段,因此可以采用中等线条粗细程度和弯曲程度更高的曲线连接每个目标数据点;第三数据点组中的目标数据点由于更加靠近发梢处,因此可以采用线条粗细程度相对较细和中等弯曲程度的曲线连接每个目标数据点。
作为一种实施例,在多个数据点组关联不同的曲线颜色时,数据点组中的目标数据点可以以相应的曲线颜色进行呈现,从而呈现出带有不同曲线颜色的目标毛发曲线。
请参考图5C,多个数据点组为三个数据点组,三个数据点组分别关联灰度值不同的曲线颜色,那么属于第一数据点组的多个目标数据点及其连线,可以以第一数据点组关联的曲线颜色呈现;属于第二数据点组的多个目标数据点及其连线,可以以第二数据点组关联的曲线颜色呈现;属于第三数据点组的多个目标数据点及其连线,可以以第三数据点组关联的曲线颜色呈现。
那么基于多个数据点组各自对应的预设采样策略,分别对各初始毛发曲线进行采样处理,可以先获得相应的中间毛发曲线。基于多个数据点组各自关联的曲线颜色,呈现获得的各中间毛发曲线。
如果多个数据点组各自对应的预设采样策略满足需求等,那么可以直接分别将各中间毛发曲线作为相应的目标毛发曲线。
如果多个数据点组各自对应的预设采样策略不满足需求等,可以通过策略更新操作对各预设采样策略进行更新。响应于针对多个数据点组各自对应的预设采样策略的策略更新操作,获得多个数据点组各自对应的目标采样策略,从而在根据曲线颜色呈现了各中间毛发曲线之后,可以通过直观的呈现效果,来确定是否需要对各预设采样策略进行更新,以重新对初始数据点进行采样处理,避免盲目的调节或设置预设采样策略,使得目标毛发曲线一直无法达到预期,而造成构建虚拟毛发造型的效率低的问题。基于获得的多个数据点组各自对应的目标采样策略,分别重新对各初始毛发曲线进行采样处理,获得相应的目标毛发曲线,使得获得的目标毛发曲线可以更加符合预期效果,避免固定的预设采样策略无法适应丰富的虚拟毛发造型,无法满足多样化的需求的情况。
作为一种实施例,采用处理除了可以是从初始数据点中采样目标数据点,还可以是重采样,即从初始毛发曲线中,采样多条线段,将每条线段的两个端点作为相应的目标数据点,再通过连接每个目标数据点,形成目标毛发曲线等,具体不做限制。
S204,基于获得的各目标毛发曲线,构建虚拟毛发造型。
在获得各目标毛发曲线之后,可以基于获得的各目标毛发曲线,构建虚拟毛发造型,构造出的虚拟毛发造型包含较少的数据点,同时,目标毛发曲线的数量与初始毛发曲线的数量相同,并未减少发量,就可以降低设备在实时性要求较高的场景下,每帧构建虚拟毛发造型时的性能消耗。
进一步的,还可以通过构建出的虚拟毛发造型,反映出更多的发丝细节,以及更丰富的造型效果,请参考图6,为构建出的一种虚拟毛发造型,该虚拟毛发造型中,每条目标毛发曲线都能反射相应的细节特征,更符合真实毛发的呈现效果,避免呈现出毛发贴片等死板的造型效果,提高了虚拟毛发造型的真实性。
下面以虚拟毛发造型为虚拟形象的头发造型为例,对本申请实施例提供的构建虚拟毛发造型的方法进行示例介绍。
在构建虚拟毛发造型时,获取的各初始毛发曲线可以是毛发可交换的计算机图形文件格式(Alembic)数据,以便于在相应的软件中进行处理。请参考图7A,可以先以文件的形式获得由各初始毛发曲线形成的初始毛发文件;再通过对初始毛发文件中的各初始毛发曲线进行划分数据点组以及采样处理等,获得各目标毛发曲线;最后以文件的形式输出由各目标毛发曲线构建的虚拟毛发造型所形成的目标毛发文件,以使设备可以将输出的目标毛发文件,导入虚拟引擎,来绑定虚拟毛发造型与虚拟形象等。
请参考图7B,在对各初始毛发曲线进行划分数据点组以及采样处理时,可以依次将每条初始毛发曲线作为输入,进行划分数据点组以及采样处理,输出相应的目标毛发曲线,通过替换不同的输入,采用循环划分数据点组以及采样处理的步骤的方式,完成对所有初始毛发曲线的处理。
下面以一条初始毛发曲线的处理过程为例进行介绍,请参考图7C。
可以通过删除各初始毛发曲线中的一条初始毛发曲线的方式,来选取出一条初始毛发曲线,可以达到优化示意的目的,在通过该条初始毛发曲线调整出多个数据点组各自的数据点划分条件,以及多个数据点组各自的预设采样策略之后,可以直接对其他初始毛发曲线进行数据点组的划分和采样处理,不需要对每条初始毛发曲线都进行数据点划分条件的确定和预设采样策略的确定,提高了构建虚拟毛发造型的效率。
以该条初始毛发曲线包含176个初始数据点为例,即总点数量为176,每个初始数据点按照从发根处的初始数据点的序号为1,依次递增序号的方式,设置每个初始数据点的序号。
S701,对每个初始数据点的序号进行归一化处理,获得各个初始数据点的归一化序号,可以将获得的各归一化序号存储于预设属性中,如存储于curveu属性中,请参考图7D(1),为前十个初始数据点的序号,图7D(2),为curveu属性中图7D(1)所示的十个序号各自对应的归一化序号。
S702,基于各个初始数据点的归一化序号,确定各数据点组各自关联的目标划分条件和目标采样策略。可以先通过控制面板设置多个数据点组,以及每个数据点组关联的曲线颜色,以及每个数据点组关联的数据点划分条件,以及每个数据点组关联的预设采样策略。再通过相应的调整操作,确定各数据点组各自关联的目标划分条件和目标采样策略。
请参考图7E,以多个数据点组为三个数据点组为例。可以通过针对控制面板中的“+”按键触发一次点击操作,来新设置一个数据点组;控制面板中不同灰度值的矩形区域呈现的是不同的数据点组关联的曲线颜色,矩形区域的长度表示相应的数据点组关联的数据点划分条件,例如,在数据点划分条件为数值区间时,矩形区域的长度表征数值区间的区间跨度。
矩形区域按照文字读写顺序依次对应第一数据点组、第二数据点组和第三数据点组。先选中一个矩形区域,再通过针对控制面板中的“X”按键触发一次点击操作,可以删除相应的数据点组。
第一数据点组的数值区间中的最大值,为第二数据点组的数值区间中的最小值,第二数据点组的数值区间中的最大值,为第三数据点组的数值区间中的最小值。
通过针对每两个矩形区域之间的五边形按键触的发拖动操作,可以调整相应的矩形区域的长度,从而可以调整各数据点组关联的数据点划分条件,获得相应的目标划分条件。
控制面板中文字“第一数据点组”、“第二数据点组”和“第三数据点组”后包含相应的线形区域,每个线形区域中包含一段较粗的线段和一段较细的线段,较粗的线段和较细的线段之间通过条形按键连接。较粗的线段可以表示相应的数据点组的预设采样策略,例如,较粗的线段与相应的线形区域的长度之比为相应的采样比例等,该采样比例可以量化地以数值形式呈现在控制面板中(图中未示出)。
通过针对条形按键触发的滑动操作,可以调整相应的较粗的线段和较细的线段的长度,即调整较粗的线段与相应的线形区域的长度之比等,从而可以达到调整相应的数据点组关联的预设采样策略的目的,以获得目标采样策略。
在控制面板中调整数据点划分条件和预设采样策略的时候,可以基于控制面板中当前呈现的数据点划分条件,对该条初始毛发曲线包含的各个初始数据点进行数据点组划分,并按照相应的曲线颜色呈现该条初始毛发曲线。同时,还可以基于控制面板中当前呈现的预设采样策略,对该条初始毛发曲线包含的各个初始数据点进行采样处理,并按照相应的曲线颜色各目标数据点及其连线等,以使得在控制面板中针对数据点划分条件和预设采样策略的调整更加直观准确,在响应于针对控制面板中呈现的数据点划分条件和预设采样策略的确认操作时,可以获得相应的目标划分条件和目标采样策略,从而每条初始毛发曲线都可以按照该目标划分条件和目标采样策略,进行数据点组的划分和采样处理,以一条初始毛发曲线,来调整数据点划分条件和预设采样策略的过程,可以使得本申请实施例的方法更具普适性,可以灵活应用于丰富多样的实际场景等。
作为一种实施例,在设置数据点组时,可以调用setpointgroup函数,结合if语句来实现。例如,在触发“+”按键之后,通过if语句判断当前新增的是否是第一个矩形区域,如果新增的是第一个矩形区域,那么调用setpointgroup函数,创建一个名为“第一数据点组”的数据点组,且该数据点组与第一个矩形区域,以及第一条线形区域对应,同时可以预设第一个矩形区域的长度和区域颜色,还可以预设第一条线形区域中较粗的线段的长度。
S703,基于设置的各数据点组,以及各数据点组各自关联的目标划分条件和目标采样策略,将各个初始数据点划分到相应的数据点组,并对各数据点组中的初始数据点进行采样处理,获得相应的目标数据点。
S704,将获得的各目标数据点连接成线,获得该条初始毛发区域对应的目标毛发曲线。
本申请实施例中,每条目标毛发曲线相对于其对应的初始毛发曲线来说,数据点的数量减少为原来的四分之一左右,也就是说,每条目标毛发曲线包含的目标数据点的数量,是其对应的初始毛发曲线包含的初始数据点的数量的四分之一左右。继续以上述的176个初始数据点为例,获得的目标数据点的数量为28。
那么对于整个虚拟毛发造型来说,数据点的数量减少为原来的16%。例如,一个虚拟毛发造型可能包含5万根毛发曲线,由各初始毛发曲线构成的虚拟毛发造型可能包含581206个初始数据点,而由各目标毛发曲线构成的虚拟毛发造型可能仅包含144844个目标数据点。在不改变虚拟毛发造型的造型效果和发量等元素的前提下,极大的降低了虚拟毛发造型包含的数据点的数量,从而在实时性要求较高的场景下,构建虚拟毛发造型所产生的性能消耗也极大的被降低。
作为一种实施例,在获得由各目标毛发曲线构建的虚拟毛发造型之后,可以将虚拟毛发造型导入引擎,用于对虚拟毛发造型进行渲染处理。在一些软件中进行渲染处理时,可能需要导入相应的处理插件,具体不做限制。在导入引擎之后,可以将虚拟毛发曲线与相应的虚拟形象进行绑定。在绑定过程中,可以调整虚拟毛发造型的轴向角度、缩放比例等数据,以使的虚拟毛发造型可以与虚拟形象适配,从而可以获得完整的虚拟形象。
请参考图7F(1),为通过各初始毛发曲线构建的虚拟毛发造型所形成的虚拟形象。虚拟毛发造型中不仅包含大量的数据点,同时,从呈现的效果上来看,多处初始毛发曲线之间并没有明显的线条感,而是呈现贴片效果,使得虚拟毛发造型的真实性较低,反射出的发丝细节较少,缺乏灵动性。
请参考图7F(2),为通过各目标毛发曲线构建的虚拟毛发造型所形成的虚拟形象。虚拟毛发造型中,不仅包含较少的数据点,同时从呈现的效果上来看,每条目标毛发曲线都能够有较为明显的线条感,能够反射出发丝的细节,使得虚拟毛发造型的呈现效果更具丰富性和真实性。
基于同一发明构思,本申请实施例提供一种构建虚拟毛发造型的装置,能够实现前述的构建虚拟毛发造型的方法对应的功能。请参考图8,该装置包括获取模块801和处理模块802,其中:
获取模块801:用于获取各初始毛发曲线,其中,各初始毛发曲线用于构建虚拟毛发造型,每个初始毛发曲线由位置间距小于第一间距阈值的多个初始数据点形成;
处理模块802:用于基于各个初始数据点各自在相应的初始毛发曲线中的位置,分别将各个初始数据点,划分为多个数据点组,其中,每个数据点组包含:每个初始毛发曲线中的至少一个初始数据点;
处理模块802还用于:基于多个数据点组各自对应的预设采样策略,分别对各初始毛发曲线进行采样处理,获得相应的目标毛发曲线,其中,每个目标毛发曲线由位置间距大于第二间距阈值的多个目标数据点连线而成,第二间距阈值大于第一间距阈值;
处理模块802还用于:基于获得的各目标毛发曲线,构建虚拟毛发造型。
在一种可能的实施例中,处理模块802具体用于:
基于指定数量,设置多个数据点组,其中,多个数据点组关联有不同的数据点划分条件;
基于多个数据点组各自关联的数据点划分条件,分别将各个初始数据点,划分到相应的数据点组,其中,每个数据点组中的初始数据点,在相应的初始毛发曲线中的位置,满足相应的数据点组关联的数据点划分条件。
在一种可能的实施例中,处理模块802具体用于:
针对各初始毛发曲线,分别执行以下操作:
以初始毛发曲线中位于发根的初始数据点为起始,按照从小到大的顺序,为初始毛发曲线包含的多个初始数据点设置序号,并统计多个初始数据点的总点数量;
基于多个初始数据点各自的序号与总点数量之间的比值,以及多个数据点组各自关联的数据点划分条件,分别将多个初始数据点,划分到相应的数据点组。
在一种可能的实施例中,数据点划分条件为数值区间时,处理模块802具体用于:
针对多个初始数据点,分别执行以下操作:
基于初始数据点的序号与总点数量之间的比值,对初始数据点的序号进行归一化处理,获得初始数据点的归一化序号;
确定获得的归一化序号,在多个数据点组中的一个数据点组关联的数值区间内时,将初始数据点划分到一个数据点组。
在一种可能的实施例中,多个数据点组关联不同的曲线颜色时,处理模块802具体用于:
基于多个数据点组各自关联的数据点划分条件,分别将各个初始数据点,划分到相应的数据点组;
基于多个数据点组各自关联的曲线颜色,呈现各初始毛发曲线;
响应于针对多个数据点组各自关联的数据点划分条件的条件更新操作,获得多个数据点组各自关联的目标划分条件;
基于获得的多个数据点组各自关联的目标划分条件,分别重新将各个初始数据点,划分到相应的数据点组。
在一种可能的实施例中,处理模块802具体用于:
针对各初始毛发曲线,分别执行以下操作:
基于多个数据点组各自对应的预设采样策略,对初始毛发曲线中的多个初始数据点进行采样处理,获得多个目标数据点,其中,多个目标数据点的总数量,小于多个初始数据点的总数量;
按照预设的线条粗细程度、线条平滑程度和线条呈现材质,将多个目标数据点连接成线,获得初始毛发曲线对应的目标毛发曲线。
在一种可能的实施例中,多个数据点组关联不同的曲线颜色时,处理模块802具体用于:
基于多个数据点组各自对应的预设采样策略,分别对各初始毛发曲线进行采样处理,获得相应的中间毛发曲线;
基于多个数据点组各自关联的曲线颜色,呈现获得的各中间毛发曲线;
响应于针对多个数据点组各自对应的预设采样策略的策略更新操作,获得多个数据点组各自对应的目标采样策略;
基于获得的多个数据点组各自对应的目标采样策略,分别重新对各初始毛发曲线进行采样处理,获得相应的目标毛发曲线。
在一种可能的实施例中,获取模块801具体用于:
获取虚拟毛发造型的各预设造型分区,以及获取各预设造型分区中的多条引导线,其中,引导线表征:在相应的预设造型分区内,生成初始毛发曲线的曲线长度、曲线弧度和曲线位置中的至少一种;
分别按照获得的各引导线,在相应的预设造型分区内生成相应的多条初始毛发曲线,获得各初始毛发曲线。
请参照图9,上述构建虚拟毛发造型的装置可以运行在计算机设备900上,数据存储程序的当前版本和历史版本以及数据存储程序对应的应用软件可以安装在计算机设备900上,该计算机设备900包括处理器980以及存储器920。在一些实施例中,该计算机设备900可以包括显示单元940,显示单元940包括显示面板941,用于显示由用户交互操作界面等。
在一种可能的实施例中,可以采用液晶显示器(Liquid Crystal Display,LCD)或有机发光二极管OLED(Organic Light-Emitting Diode)等形式来配置显示面板941。
处理器980用于读取计算机程序,然后执行计算机程序定义的方法,例如处理器980读取数据存储程序或文件等,从而在该计算机设备900上运行数据存储程序,在显示单元940上显示对应的界面。处理器980可以包括一个或多个通用处理器,还可包括一个或多个DSP(Digital Signal Processor,数字信号处理器),用于执行相关操作,以实现本申请实施例所提供的技术方案。
存储器920一般包括内存和外存,内存可以为随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE)等。外存可以为硬盘、光盘、USB盘、软盘或磁带机等。存储器920用于存储计算机程序和其他数据,该计算机程序包括各客户端对应的应用程序等,其他数据可包括操作系统或应用程序被运行后产生的数据,该数据包括系统数据(例如操作系统的配置参数)和用户数据。本申请实施例中程序指令存储在存储器920中,处理器980执行存储器920中的程序指令,实现前文图论述的任意的一种方法。
上述显示单元940用于接收输入的数字信息、字符信息或接触式触摸操作/非接触式手势,以及产生与计算机设备900的用户设置以及功能控制有关的信号输入等。具体地,本申请实施例中,该显示单元940可以包括显示面板941。显示面板941例如触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在显示面板941上或在显示面板941的操作),并根据预先设定的程式驱动相应的连接装置。
在一种可能的实施例中,显示面板941可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测玩家的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器980,并能接收处理器980发来的命令并加以执行。
其中,显示面板941可以采用电阻式、电容式、红外线以及表面声波等多种类型实现。除了显示单元940,在一些实施例中,计算机设备900还可以包括输入单元930,输入单元930可以包括图像输入设备931和其他输入设备932,其中其他输入设备可以但不限于包括物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
除以上之外,计算机设备900还可以包括用于给其他模块供电的电源990、音频电路960、近场通信模块970和RF电路910。计算机设备900还可以包括一个或多个传感器950,例如加速度传感器、光传感器、压力传感器等。音频电路960具体包括扬声器961和麦克风962等,例如计算机设备900可以通过麦克风962采集用户的声音,进行相应的操作等。
作为一种实施例,处理器980的数量可以是一个或多个,处理器980和存储器920可以是耦合设置,也可以是相对独立设置。
作为一种实施例,图9中的处理器980可以用于实现如图8中的获取模块801和处理模块802的功能。
作为一种实施例,图9中的处理器980可以用于实现前文论述的服务器或终端设备对应的功能。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,例如,通过计算机程序产品体现,该计算机程序产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
- 一种存储系统的构建方法、装置、设备及存储介质
- 一种虚拟形象视频播放方法、装置、电子设备及存储介质
- 一种虚拟机迁移方法、装置、设备及可读存储介质
- 一种虚拟机启动方法、装置、存储介质和计算机设备质
- 一种虚拟机备份的方法、及其装置、设备、存储介质
- 一种虚拟对象构建方法、装置、设备及存储介质
- 一种虚拟社区构建方法、装置、设备及可读存储介质