CN116152405B - 一种业务处理方法、装置及计算机设备、存储介质 - Google Patents

一种业务处理方法、装置及计算机设备、存储介质 Download PDF

Info

Publication number
CN116152405B
CN116152405B CN202310439600.7A CN202310439600A CN116152405B CN 116152405 B CN116152405 B CN 116152405B CN 202310439600 A CN202310439600 A CN 202310439600A CN 116152405 B CN116152405 B CN 116152405B
Authority
CN
China
Prior art keywords
hair
virtual
matching
point
sampling
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
Application number
CN202310439600.7A
Other languages
English (en)
Other versions
CN116152405A (zh
Inventor
袁淳
闸东恺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202310439600.7A priority Critical patent/CN116152405B/zh
Publication of CN116152405A publication Critical patent/CN116152405A/zh
Application granted granted Critical
Publication of CN116152405B publication Critical patent/CN116152405B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请实施例提供了一种业务处理方法、装置及计算机设备、存储介质。该业务处理方法包括:获取业务中业务角色的发根点云;获取采样控制信息,采样控制信息用于在发根点云的采样过程中控制采样点之间的距离;根据采样控制信息,对发根点云进行采样处理,得到采样点;将采样点对应的虚拟毛发确定为模拟虚拟毛发,将发根点云中除采样点外的其他点对应的虚拟毛发确定为插值虚拟毛发;其中,模拟虚拟毛发在业务执行过程中采用物理仿真策略进行动态效果模拟,模拟虚拟毛发用于在业务执行过程中控制插值虚拟毛发跟随模拟虚拟毛发运动。采用本申请实施例,可以有效提升虚拟毛发动态效果模拟的真实性和效率。

Description

一种业务处理方法、装置及计算机设备、存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种业务处理方法、装置及计算机设备、存储介质。
背景技术
随着计算机技术的快速发展,业务(例如,游戏、影视特效制作等业务)对实时虚拟毛发动态效果的需求变得日益迫切;实时虚拟毛发动态效果是指在实时场景(例如每秒30帧画面以上的场景)中,模拟业务中业务角色(例如,游戏角色、影视制作角色等业务角色)的虚拟毛发的动态效果,使其能够尽可能地接近真实场景中真实毛发的动态效果,这对虚拟毛发动态效果模拟的真实性和实时性都有很高的要求。目前,可以采用物理仿真策略模拟虚拟毛发的动态效果,但是,高精度的虚拟毛发动态效果模拟,如果完全基于物理仿真策略实时计算,效率低、开销大,目前的硬件水平难以实现,因此,如何有效提升虚拟毛发动态效果模拟的真实性和效率,成为当前的研究热点。
发明内容
本申请实施例提供了一种业务处理方法、装置及计算机设备、存储介质,可以有效提升虚拟毛发动态效果模拟的真实性和效率。
一方面,本申请实施例提供了一种业务处理方法,该业务处理方法包括:
获取业务中业务角色的发根点云,发根点云包括业务角色的多根虚拟毛发对应的发根点;
获取采样控制信息,采样控制信息用于在发根点云的采样过程中控制采样点之间的距离;
根据采样控制信息,对发根点云进行采样处理,得到采样点;
将采样点对应的虚拟毛发确定为模拟虚拟毛发,将发根点云中除采样点外的其他点对应的虚拟毛发确定为插值虚拟毛发;
其中,模拟虚拟毛发在业务的执行过程中采用物理仿真策略进行动态效果模拟,模拟虚拟毛发用于在业务的执行过程中控制插值虚拟毛发跟随模拟虚拟毛发运动。
相应地,本申请实施例提供了一种业务处理装置,该业务处理装置包括:
获取单元,用于获取业务中业务角色的发根点云,发根点云包括业务角色的多根虚拟毛发对应的发根点;
获取单元,还用于获取采样控制信息,采样控制信息用于在发根点云的采样过程中控制采样点之间的距离;
处理单元,用于根据采样控制信息,对发根点云进行采样处理,得到采样点;
处理单元,还用于将采样点对应的虚拟毛发确定为模拟虚拟毛发,将发根点云中除采样点外的其他点对应的虚拟毛发确定为插值虚拟毛发;
其中,模拟虚拟毛发在业务的执行过程中采用物理仿真策略进行动态效果模拟,模拟虚拟毛发用于在业务的执行过程中控制插值虚拟毛发跟随模拟虚拟毛发运动。
在一种实现方式中,处理单元,用于根据所述控制信息,对发根点云进行采样处理,得到采样点时,具体用于执行如下步骤:
根据采样控制信息和发根点云的位置范围信息,生成体素网格集合;采样控制信息用于确定体素网格集合中每个体素网格的尺寸,发根点云的位置范围信息用于确定体素网格集合的包围范围;
建立发根点云与体素网格集合之间的映射,映射用于指示发根点云中的发根点与体素网格集合中的体素网格之间的归属关系;
在每个体素网格中,根据采样控制信息,对属于体素网格的发根点进行采样,得到体素网格的采样点。
在一种实现方式中,体素网格集合中的各个体素网格按照采样顺序依次进行采样;处理单元,用于在每个体素网格中,根据采样控制信息,对属于体素网格的发根点进行采样,得到体素网格的采样点时,具体用于执行如下步骤:
在当前体素网格中,对属于当前体素网格的发根点进行随机采样;
若随机采样出的目标发根点与已有采样点之间的距离大于采样控制信息,则将目标发根点确定为新的采样点;
若当前体素网格的随机采样次数达到采样次数阈值,则对属于当前体素网格的下一体素网格的发根点进行随机采样,直至遍历体素网格集合中的所有体素网格。
在一种实现方式中,处理单元,用于在当前体素网格中,对属于当前体素网格的发根点进行随机采样时,具体用于执行如下步骤:
获取当前体素网格的各个发根点的随机概率;各个发根点的随机概率与各个发根点对应的虚拟毛发的毛发长度呈正相关;
根据各个发根点的随机概率,对属于当前体素网格的发根点进行随机采样。
在一种实现方式中,处理单元,还用于执行如下步骤:
根据属于当前体素网格的发根点的数量,对用于控制当前体素网格中采样点之间距离的采样控制信息进行调整;
处理单元,用于若随机采样出的目标发根点与已有采样点之间的距离大于采样控制信息,则将目标发根点确定为新的采样点时,具体用于执行如下步骤:
若随机采样出的目标发根点与已有采样点之间的距离大于调整后的采样控制信息,则将目标发根点确定为新的采样点。
在一种实现方式中,获取单元,还用于执行如下步骤:
获取插值虚拟毛发的匹配模拟虚拟毛发,以及匹配模拟虚拟毛发对插值虚拟毛发的影响权重;匹配模拟虚拟毛发是在采样点对应的模拟虚拟毛发中确定的;
处理单元,还用于执行如下步骤:
根据匹配模拟虚拟毛发和匹配模拟虚拟毛发的影响权重,控制插值虚拟毛发跟随匹配模拟虚拟毛发运动。
在一种实现方式中,获取单元,用于获取插值虚拟毛发的匹配模拟虚拟毛发,以及匹配模拟虚拟毛发对插值虚拟毛发的影响权重时,具体用于执行如下步骤:
基于模拟虚拟毛发的毛发特征与插值虚拟毛发的毛发特征,确定模拟虚拟毛发与插值虚拟毛发之间的匹配度;
根据模拟虚拟毛发与插值虚拟毛发之间的匹配度,从模拟虚拟毛发中选择插值虚拟毛发的匹配模拟虚拟毛发,以及确定匹配模拟虚拟毛发对插值虚拟毛发的影响权重。
在一种实现方式中,任一虚拟毛发的毛发特征包括虚拟毛发对应的发根点的位置信息和虚拟毛发的属性信息,属性信息包括朝向信息和长度信息中的至少一个;获取单元,用于基于模拟虚拟毛发的毛发特征与插值虚拟毛发的毛发特征,确定模拟虚拟毛发与插值虚拟毛发之间的匹配度时,具体用于执行如下步骤:
在模拟虚拟毛发中确定插值虚拟毛发的周围模拟虚拟毛发;
根据周围模拟虚拟毛发对应的发根点的位置信息和插值虚拟毛发对应的发根点的位置信息,确定周围模拟虚拟毛发与插值虚拟毛发之间的发根距离信息;
根据周围模拟虚拟毛发的属性信息和插值虚拟毛发的属性信息,确定周围模拟虚拟毛发与插值虚拟毛发之间的属性相似度;
根据发根距离信息和属性相似度,确定周围模拟虚拟毛发与插值虚拟毛发之间的匹配度。
在一种实现方式中,处理单元,用于根据模拟虚拟毛发与插值虚拟毛发之间的匹配度,从模拟虚拟毛发中选择插值虚拟毛发的匹配模拟虚拟毛发,以及确定匹配模拟虚拟毛发对插值虚拟毛发的影响权重时,具体用于执行如下步骤:
按照高匹配度优先选择原则,从周围模拟虚拟毛发中选择插值虚拟毛发的匹配模拟虚拟毛发,匹配模拟虚拟毛发的数量为M根,M为大于或等于2的整数;
根据各根匹配模拟虚拟毛发各自对应的匹配度,在各根匹配模拟虚拟毛发的总体匹配度中的占比,确定各根匹配模拟虚拟毛发各自对应的影响权重。
在一种实现方式中,虚拟毛发由多个毛发点以及相邻两个毛发点之间的毛发分段组成;匹配模拟虚拟毛发的数量为M根,M为大于或等于2的整数;处理单元,用于根据匹配模拟虚拟毛发和匹配模拟虚拟毛发的影响权重,控制插值虚拟毛发跟随匹配模拟虚拟毛发运动时,具体用于执行如下步骤:
在M根匹配模拟虚拟毛发的每根匹配模拟虚拟毛发中,确定与插值虚拟毛发中的目标毛发点相匹配的匹配毛发分段;一根匹配模拟虚拟毛发中确定一个匹配毛发分段,匹配毛发分段的数量为M个;
根据M根匹配模拟虚拟毛发的影响权重,以及M个匹配毛发分段的位置信息,计算目标毛发点的初始插值位置信息;
根据M根匹配模拟虚拟毛发的影响权重,以及M个匹配毛发分段更新后的位置信息,对目标毛发点的初始插值位置信息进行更新。
在一种实现方式中,任一个匹配毛发分段的位置信息包括匹配毛发分段两端毛发点的位置信息;处理单元,用于根据M根匹配模拟虚拟毛发的影响权重,以及M个匹配毛发分段的位置信息,计算目标毛发点的初始插值位置信息时,具体用于执行如下步骤:
根据M个匹配毛发分段中的每个匹配毛发分段的位置信息,计算目标毛发点在相应匹配毛发分段下的插值位置分量信息;
根据M根匹配模拟虚拟毛发的影响权重,对目标毛发点在M个匹配毛发分段下的插值位置分量信息进行加权求和处理,得到目标毛发点的初始插值位置信息。
在一种实现方式中,M个匹配毛发分段中的任一个匹配毛发分段表示为目标毛发分段,目标毛发分段两段的毛发点为第一毛发点和第二毛发点;处理单元,用于根据M个匹配毛发分段中的每个匹配毛发分段的位置信息,计算目标毛发点在相应匹配毛发分段下的插值位置分量信息时,具体用于执行如下步骤:
将目标毛发点投影至目标毛发分段中,确定第一毛发点与目标毛发点的投影点之间的第一距离,以及第二毛发点与目标毛发点的投影点之间的第二距离;
根据第一距离在目标毛发分段的长度中的占比,确定第一毛发点对应的第一权重;以及,根据第二距离在目标毛发分段的长度中的占比,确定第二毛发点对应的第二权重;
根据第一权重和第二权重,对第一毛发点的位置信息和第二毛发点的位置信息进行加权求和处理,得到目标毛发点在目标毛发分段下的插值位置分量信息。
在一种实现方式中,虚拟毛发中的每个毛发点分别对应各自的原始位置信息;处理单元,用于根据M根匹配模拟虚拟毛发的影响权重,以及M个匹配毛发分段更新后的位置信息,对目标毛发点的初始插值位置信息进行更新时,具体用于执行如下步骤:
根据目标毛发点的初始插值位置信息和目标毛发点的原始位置信息之间的差异,确定目标毛发点的偏移信息;
根据M根匹配模拟虚拟毛发的影响权重,以及M个匹配毛发分段更新后的位置信息,计算目标毛发点的参考插值位置信息;
根据所述M个匹配毛发分段更新后的位置信息,与M个匹配毛发分段更新前的位置信息之间的差异,确定位置变换信息;
根据位置变换信息,对目标毛发点的偏移信息进行修正处理,得到修正后的偏移信息;
对目标毛发点的参考插值位置信息和修正后的偏移信息进行求和处理,得到目标毛发点更新后的插值位置信息。
在一种实现方式中,任一个匹配毛发分段的位置信息包括匹配毛发分段两端毛发点的位置信息;处理单元,用于根据M个匹配毛发分段更新后的位置信息,与M个匹配毛发分段更新前的位置信息之间的差异,确定位置变换信息时,具体用于执行如下步骤:
计算每根匹配毛发分段更新前的两端毛发点的第一位置信息变化量,以及计算每根匹配毛发分段更新后的两端毛发点的第二位置信息变化量;
根据每根匹配毛发分段的第一位置信息变化量与第二位置信息变化量之间的差异,确定对应匹配毛发分段的变换矩阵;
将M根匹配毛发分段中参考毛发分段的变换矩阵,确定为位置变换信息;其中,参考毛发分段是M根匹配模拟虚拟毛发中影响权重最大的匹配模拟虚拟毛发中的匹配毛发分段。
相应地,本申请实施例提供一种计算机设备,该计算机设备包括:
处理器,适于实现计算机程序;
计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序适于由处理器加载并执行上述的业务处理方法。
相应地,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被计算机设备的处理器读取并执行时,使得计算机设备执行上述的业务处理方法。
相应地,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的业务处理方法。
本申请实施例中,虚拟毛发的采样被转换为虚拟毛发对应的发根点采样,可以对业务中业务角色的发根点云进行采样,得到采样点,可以将采样点对应的虚拟毛发作为模拟虚拟毛发,将发根点云中除采样点外的其他点对应的虚拟毛发作为插值虚拟毛发,模拟虚拟毛发可以在业务的执行过程中采用物理仿真策略进行动态效果模拟,模拟虚拟毛发可以用于在业务的执行过程中控制插值虚拟毛发跟随模拟虚拟毛发运动;也就是说,可以从虚拟毛发中采样出一部分虚拟毛发(模拟虚拟毛发)采用物理仿真策略进行动态效果模拟,剩下的虚拟毛发(插值虚拟毛发)跟随模拟虚拟毛发进行运动,无需采用物理仿真策略对全部的虚拟毛发进行动态效果模拟,这样可以提升虚拟毛发动态效果模拟的效率。并且,在发根点云的采样过程中,通过采样控制信息控制采样点之间的距离,可以使得采样点均匀地分布于发根点云中,从而采样点可以较为准确地反映原始的发根点云,可以从发根点云中合理地采样出模拟虚拟毛发对应的发根点,也就是说,可以从虚拟毛发中合理地采样模拟虚拟毛发,这样可以有效提升虚拟毛发动态效果模拟的真实性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种虚拟毛发的示意图;
图2是本申请实施例提供的一种业务处理系统的结构示意图;
图3是本申请实施例提供的一种业务处理方法的流程示意图;
图4是本申请实施例提供的一种体素网格集合的示意图;
图5是本申请实施例提供的一种体素网格与发根点之间映射建立的示意图;
图6是本申请实施例提供的一种采样过程的示意图;
图7是本申请实施例提供的一种采样结果的示意图;
图8是本申请实施例提供的另一种业务处理方法的流程示意图;
图9是本申请实施例提供的一种匹配模拟虚拟毛发的确定示意图;
图10是本申请实施例提供的一种毛发点的匹配毛发分段的确定过程示意图;
图11是本申请实施例提供的一种毛发点在匹配毛发分段中的投影示意图;
图12是本申请实施例提供的一种调试工具的界面示意图;
图13是本申请实施例提供的一种采样结果对比示意图;
图14是本申请实施例提供的一种插值结果对比示意图;
图15是本申请实施例提供的一种业务处理装置的结构示意图;
图16是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例涉及业务中业务角色的虚拟毛发动态效果模拟。
业务是指需要进行虚拟毛发动态效果模拟的业务场景,例如,业务可以包括游戏、数字人或影视特效制作等。业务角色是指业务场景中需要进行虚拟毛发动态效果模拟的虚拟对象,业务角色可以是建模得到的虚拟角色模型;从建模维度划分,业务角色可以包括三维角色、2.5维角色或二维角色等,本申请实施例不对业务角色的维度进行限定;从业务场景类型划分,业务角色可以包括游戏角色、数字人角色或影视制作角色等;从业务角色类型划分,业务角色可以包括人物或动物等。虚拟毛发是通过建模得到的毛发模型,如图1所示,虚拟毛发可以由多个毛发点101以及毛发点之间的毛发分段102组成,多个毛发点中与头皮连接的毛发点可以称为发根点。
虚拟毛发动态效果模拟是指在业务的执行过程中,模拟业务中业务角色的虚拟毛发的动态效果,使其能够尽可能地接近真实场景中真实毛发的动态效果;业务的执行过程通常是实时场景,例如,实时的游戏对局中,实时的影视特效制作过程中,实时场景通常需要满足每秒钟播放的画面在30帧以上,也就是说,虚拟毛发动态效果模拟对实时性和真实性的要求很高。基于此,本申请实施例提出一种业务处理方法,该业务处理方法用于进行虚拟毛发的动态效果模拟,虚拟毛发动态效果模拟可以基于采样-插值框架实现。其中:
①对于采样-插值框架的采样过程,可以从虚拟毛发中采样出一部分虚拟毛发作为模拟虚拟毛发(或者可以称为解算虚拟毛发),剩下的虚拟毛发作为插值虚拟毛发。②对于采样-插值框架的插值过程,模拟虚拟毛发可以通过物理仿真策略模拟动态效果;通过物理仿真策略模拟动态效果,可以理解为,为虚拟毛发中的各个毛发点赋予物理参数和运动学属性,计算毛发点之间的伸缩、弯曲、扭曲和碰撞等相互作用力,最终得出它们下一帧的运动学属性(例如,速度、位置等);常见的物理仿真策略有很多种,例如,UE(UnrealEngine,虚幻引擎)的Groom(一种物理仿真策略)和基于AMD(一种显卡)的TressFX(一种物理仿真策略)等;通过物理仿真策略模拟动态效果的优点为模拟的动态效果十分真实,并且可以与其它物理系统(例如,水、雪、碰撞体等)进行交互,但存在模拟计算速度较慢的缺点,特别是对于高精度的虚拟毛发,其毛发点的数量经常能达到十万甚至百万时,目前的硬件条件无法达到实时场景所要求的每秒钟播放的画面在30帧以上的标准。插值虚拟毛发可以被模拟虚拟毛发所带动,可以根据模拟虚拟毛发的位置,计算插值虚拟毛发的位置,也就是说,在业务的执行过程中,模拟虚拟毛发可以用于控制插值虚拟毛发跟随模拟虚拟毛发运动。
该业务处理方法在采样过程中,可以将虚拟毛发的采样,转换为虚拟毛发对应的发根点的采样,可以根据采样控制信息,对虚拟毛发对应的发根点进行采样,得到采样点,可以将采样点对应的虚拟毛发作为模拟虚拟毛发,将发根点云中除采样点外的其他点对应的虚拟毛发作为插值虚拟毛发;采样过程通过采样控制信息,可以在虚拟毛发对应的发根点的采样过程中控制采样点之间的距离,这样可以使得采样点均匀地分布于虚拟毛发对应的发根点中,采样点可以较为准确且全面地描述虚拟毛发对应的发根点,从而,可以从虚拟毛发对应的发根点中合理地采样出模拟虚拟毛发对应的发根点,也就是说,可以从虚拟毛发中合理地采样出模拟虚拟毛发。
该业务处理方法的插值过程可以包括插值归类过程和插值计算过程。在插值归类过程中,可以从多个角度(例如,模拟虚拟毛发对应的发根点与插值虚拟毛发对应的发根点之间的距离远近程度,模拟虚拟毛发的朝向与插值虚拟毛发的朝向之间的相似度,以及模拟虚拟毛发的毛发长度与插值虚拟毛发的毛发长度之间的相似度等角度),综合考虑模拟虚拟毛发与插值虚拟毛发之间的匹配度,然后,可以选择匹配度较高的模拟虚拟毛发作为插值虚拟毛发跟随的匹配模拟虚拟毛发;在插值计算过程中,插值虚拟毛发的匹配模拟虚拟毛发可以通过物理仿真策略进行动态效果模拟,插值虚拟毛发可以跟随匹配模拟虚拟毛发进行运动;也就是说,只有模拟虚拟毛发需要通过物理仿真策略进行动态效果模拟,而不是针对全部虚拟毛发均需要通过物理仿真策略进行动态效果模拟,可以提升虚拟毛发动态效果模拟的效率,并且,插值虚拟毛发可以将模拟虚拟毛发中与插值虚拟毛发匹配度较高的匹配模拟虚拟毛发,作为跟随的模拟虚拟毛发,这样可以提升对插值虚拟毛发进行动态效果模拟的真实性。
需要说明的是,当本申请实施例提及业务是游戏时,游戏是指一种电子游戏产品,电子游戏是指依托于电子设备平台而运行的交互游戏。电子游戏可以包括单机游戏和网络游戏。其中,网络游戏也可称为在线游戏,一般可以是指以互联网为传播媒介,以游戏服务器(Game Server)和玩家终端为游戏处理设备,以运行在玩家终端中的游戏客户端(GameClient)为信息交互窗口的,旨在实现娱乐、休闲、交流和取得虚拟成就的具有可持续性的个体性多玩家在线游戏;游戏客户端是指与游戏服务器相对应,为参与网络游戏的玩家提供本地游戏服务的程序;游戏服务器是指为游戏客户端提供数据计算、校验、存储和转发功能的服务设备。单机游戏是指使用一台计算机或其他游戏平台便可以独立运行的电子游戏,单机游戏不需要游戏服务器便可以正常运行。
对于网络游戏,本申请实施例不对网络游戏的游戏类型进行限定;例如,网络游戏可以是云游戏,或者网络游戏可以是普通网络游戏。其中,普通网络游戏是指直接在玩家终端内安装的游戏客户端中运行的游戏。云游戏(Cloud Gaming)又可称为游戏点播(Gamingon Demand),是指在游戏服务器中运行的游戏;也就是说,在云游戏场景下,所有的云游戏都不在玩家终端的游戏客户端中运行,而是在游戏服务器中运行;游戏服务器将云游戏中的游戏画面、游戏音频压缩编码为媒体流,然后通过网络将媒体流传输给玩家终端中的游戏客户端进行图像显示和音频播放;可见,游戏客户端无需拥有强大的图形处理与数据运算能力,仅仅需要拥有基本的流媒体播放能力,与获取游戏玩家输入的操作指令并将游戏玩家输入的操作指令发送给游戏服务器的能力即可;当游戏玩家在游戏客户端的游戏界面中执行各种操作时,游戏客户端会将这些操作产生的操作数据上报给游戏服务器,由游戏服务器在对应的云游戏中根据操作数据而刷新云游戏的游戏画面,再将刷新后的游戏画面返回至游戏客户端中进行显示,以实现云游戏的游玩。也就是说,普通网络游戏和云游戏的区别在于,普通网络游戏运行在玩家终端内安装的游戏客户端中,而云游戏运行在游戏服务器中,游戏客户端负责呈现游戏画面、播放游戏音频以及接收游戏玩家输入的操作指令。
下面对适于实现本申请实施例所提供的业务处理方法的业务处理系统进行介绍。
如图2所示,业务处理系统中可以包括终端201和服务器202;终端201中可以运行业务客户端(例如,业务软件、业务应用程序、业务网页、业务小程序,等等);服务器202可以是业务客户端的数据处理服务器;终端201与服务器202之间可以通过有线通信的方式建立直接地通信连接,或者,可以通过无线通信的方式建立间接地通信连接。其中,终端201可以包括但不限于以下任一种:智能手机、平板电脑、笔记本电脑、台式计算机、智能手表、智能家电、智能车载终端、以及飞行器,等等。服务器202可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(ContentDelivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,等等。
由前述内容可知,本申请实施例提出的业务处理方法可以包括采样过程和插值过程,插值过程可以包括插值归类过程和插值计算过程;其中,采样过程可以从业务中业务角色的虚拟毛发中采样出模拟虚拟毛发,插值虚拟毛发是虚拟毛发中除模拟虚拟毛发外的其他虚拟毛发;插值归类过程可以从采样出的模拟虚拟毛发中选择与插值虚拟毛发匹配度较高的匹配模拟虚拟毛发;插值计算过程可以通过物理仿真策略对匹配模拟虚拟毛发的动态效果进行模拟,确定匹配模拟虚拟毛发在不同时刻(例如不同帧)的位置,以及,可以根据匹配模拟虚拟毛发在不同时刻的位置,计算插值虚拟毛发在不同时刻的位置,以对插值虚拟毛发的动态效果进行模拟。
基于此,在由终端201和服务器202组成的业务处理系统中,业务处理方法的大致处理流程可参见如下描述:当终端201中运行的业务客户端存在业务角色的虚拟毛发动态效果的模拟需求(例如,业务客户端中开启了游戏对局,或者业务客户端中启动了影视特效制作)时,业务客户端可以通过终端201可以向服务器202发送业务角色的虚拟毛发动态效果的模拟请求。服务器202接收到模拟请求后,可以执行关于第一帧的采样过程、插值归类过程以及插值计算过程,得到匹配模拟虚拟毛发在第一帧的位置(具体是指匹配模拟虚拟毛发中的各个毛发点在第一帧中的位置),以及插值虚拟毛发在第一帧的位置(具体是指插值虚拟毛发中的各个毛发点在第一帧中的位置);然后,服务器202可以将匹配模拟虚拟毛发在第一帧的位置,以及插值虚拟毛发在第一帧的位置发送至终端201。终端201中的业务客户端可以根据匹配模拟虚拟毛发在第一帧的位置,以及插值虚拟毛发在第一帧的位置,在第一帧的画面中对匹配模拟虚拟毛发和插值虚拟毛发进行渲染。
在这之后,服务器202可以执行关于第一帧的后续帧(逐帧进行)的插值计算过程,得到匹配模拟虚拟毛发在后续帧的位置,以及插值虚拟毛发在后续帧的位置;服务器202可以将匹配模拟虚拟毛发在后续帧的位置,以及插值虚拟毛发在后续帧的位置发送至终端201。终端201中的业务客户端可以根据匹配模拟虚拟毛发在后续帧的位置,以及插值虚拟毛发在后续帧的位置,在后续帧的画面中对匹配模拟虚拟毛发和插值虚拟毛发进行渲染。以此类推,直至终端201中运行的业务客户端对业务角色的虚拟毛发动态效果的模拟需求终止(例如,业务客户端中的游戏对局结束,业务客户端中的影视特效制作结束)。
以上内容介绍了业务处理方法在业务处理系统中的通用流程,可以适用于普通网络游戏,影视特效制作等业务。特别地,对于云游戏这一业务,业务处理方法在业务处理系统中的流程与上述流程存在一些差异,具体如下,在上述通用流程中,根据匹配模拟虚拟毛发在各帧的位置,以及插值虚拟毛发在各帧的位置,在各帧的画面中对匹配模拟虚拟毛发和插值虚拟毛发进行渲染,是由终端201中运行的业务客户端执行的;而在云游戏这一业务中,根据匹配模拟虚拟毛发在各帧的位置,以及插值虚拟毛发在各帧的位置,在各帧的画面中对匹配模拟虚拟毛发和插值虚拟毛发进行渲染,是由服务器202执行的,服务器202可以将渲染得到的各帧画面发送至终端201中的业务客户端进行呈现。
上述图2所示的业务处理系统仅用于举例,在一些业务中,业务处理系统还可以存在其他情况。例如,在单机游戏这一业务中,业务处理系统中可以包括终端201,不包括服务器202,当终端201中运行的业务客户端存在业务角色的虚拟毛发动态效果的模拟需求(例如,业务客户端中开启了游戏对局,或者业务客户端中启动了影视特效制作)时,采样过程、插值归类过程以及插值计算过程均由终端201执行,终端201中的业务客户端可以直接根据匹配模拟虚拟毛发在各帧的位置,以及插值虚拟毛发在各帧的位置,在各帧的画面中对匹配模拟虚拟毛发和插值虚拟毛发进行渲染。
还需说明的是,业务可以包括不同业务阶段,采样过程、插值归类过程和插值计算过程可以在业务的不同业务阶段执行。更为详细地,业务可以包括业务初始化阶段和业务执行阶段,业务初始化阶段是指对业务执行阶段所需业务资源进行加载的阶段,业务执行阶段是指业务的正式执行阶段,采样过程和插值归类过程可以在业务初始化阶段执行,插值计算过程可以在业务执行阶段执行;例如,对于游戏业务,业务初始化阶段为游戏对局的游戏资源加载阶段,采样过程和插值归类过程可以在游戏对局的资源加载阶段中执行,业务执行阶段为游戏对局的正式对局阶段,插值计算过程可以在游戏对局的正式对局阶段中执行。或者,业务可以包括业务角色制作阶段、业务初始化阶段和业务执行阶段,采样过程可以在业务角色制作阶段执行,插值归类过程可以在业务初始化阶段执行,插值计算过程可以在业务执行阶段执行;例如,对于游戏业务,业务角色制作阶段为业务角色的建模阶段,采样过程可以在业务角色的建模阶段,业务初始化阶段为游戏对局的游戏资源加载阶段,插值归类过程可以在游戏对局的资源加载阶段中执行,业务执行阶段为游戏对局的正式对局阶段,插值计算过程可以在游戏对局的正式对局阶段中执行。
本申请实施例提供的业务处理系统可以从虚拟毛发中合理地采样出模拟虚拟毛发,插值虚拟毛发可以在采样出的模拟虚拟毛发中选择与自身匹配度较高的匹配模拟虚拟毛发进行跟随,可以提升插值虚拟毛发的动态效果模拟的真实性。可以理解的是,本申请实施例描述的业务处理系统是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请实施例提供一种业务处理方法,该业务处理方法主要介绍采样过程(即对虚拟毛发的发根点云进行采样的过程),该业务处理方法可以由计算机设备执行,计算机设备可以是终端或服务器,如图3所示,该业务处理方法可以包括但不限于以下步骤S301-步骤S304:
S301,获取业务中业务角色的发根点云。
由前述内容可知,虚拟毛发可以由多个毛发点以及毛发点之间的毛发分段组成,多个毛发点中与头皮连接的毛发点可以称为发根点,发根点云可以由业务角色的多根虚拟毛发对应的发根点组成,也就是说,发根点云可以包括业务角色的多根虚拟毛发对应的发根点。
S302,获取采样控制信息。
采样控制信息是指控制半径或控制距离,采样控制信息可以用于在发根点云的采样过程中控制采样点之间的距离,任意两个采样点之间的距离需大于采样控制信息。其中,采样控制信息可以通过以下任一种方式确定:
①采样控制信息可以是由虚拟毛发的建模人员根据毛发建模经验设定的,虚拟毛发的建模人员具备丰富的毛发建模经验,虚拟毛发的建模人员能够比较清楚地了解采样控制信息与采样后虚拟毛发动态效果的模拟效果之间的关系,因此,基于虚拟毛发的建模人员设定的采样控制信息,可以对发根点云进行合理地采样;②采样控制信息可以是根据发根点云中包含的发根点数量确定的,例如,当发根点云中包含的发根点数量较多时,确定的采样控制信息的数值较大,当发根点云中包含的发根点数量较少时,确定的采样控制信息的数量较小,这样可以使得采样控制信息与发根点云中包含的发根点数量相适配,基于与发根点云中包含的发根点数量相适配的采样控制信息,可以对发根点云进行合理地采样;③采样控制信息可以是根据发根点云中发根点的分布信息确定的,例如,当发根点云中的发根点稠密分布时,确定的采样控制信息的数值较小,当发根点云中的发根点稀疏分布时,确定的采样控制信息的数值较大,这样可以使得采样控制信息与发根点云中发根点的分布相适配,基于与发根点云中发根点的分布相适配的采样控制信息,可以对发根点云进行合理地采样。
S303,根据采样控制信息,对发根点云进行采样处理,得到采样点。
在获取到业务角色的发根点云和采样控制信息后,可以根据采样控制信息,对发根点云进行采样处理,得到采样点。发根点云的采样过程,具体可以包括以下子步骤s11-子步骤s13:
s11,根据采样控制信息和发根点云的位置范围信息,生成体素网格集合。
发根点云的位置范围信息可以用于指示发根点云中包含的各个发根点所处的位置范围,发根点云中任一个发根点的位置均处于发根点云的位置范围信息所指示的位置范围中。以业务角色是三维角色为例,发根点云处于三维空间中,发根点的位置可以由三维空间坐标系中各个坐标方向(例如,X方向、Y方向和Z方向)上的坐标值确定;发根点云的位置范围可以是由发根点云中的发根点在各个坐标方向上的最小坐标值和最大坐标值确定的,例如,根据发根点云中的各个发根点在X方向上的坐标值中的最小坐标值和最大坐标值,可以确定发根点云在X方向上的位置范围,根据发根点云中的各个发根点在Y方向上的坐标值中的最小坐标值和最大坐标值,可以确定发根点云在Y方向上的位置范围,根据发根点云中的各个发根点在Z方向上的坐标值中的最小坐标值和最大坐标值,可以确定发根点云在Z方向上的位置范围。发根点云的位置信息范围可以用于确定体素网格集合的包围范围,生成的体素网格集合能够包围发根点云中的各个发根点。
生成的体素网格集合中可以包括多个体素网格,各个体素网格的尺寸相同,当业务角色是三维角色时,发根点云处于三维空间中,体素网格可以是三维空间中的正方体,当业务角色是二维角色时,发根点云处于二维空间中,体素网格可以是二维空间中的正方形;采用正方体或正方形作为体素网格,是因为正方体或正方形具备空间均匀性,有助于各个体素网格中的采样点能够均匀地分布于发根点云中。采样控制信息可以用于确定体素网格集合中每个体素网格的尺寸,例如,采样控制信息可以用于确定体素网格的边长,采样控制信息可以用于确定体素网格的中心到体素网格的顶点之间的距离,或者,采样控制信息可以用于确定体素网格的对角顶点之间的距离,本申请实施例不对采样控制信息确定体素网格尺寸的方式进行限定。
如图4中的(a)示出了基于采样控制信息和二维发根点云的位置范围信息生成的体素网格集合,体素网格集合能够包围二维发根点云中的各个发根点,也就是说,二维发根点云中的各个发根点均处于生成的体素网格集合的包围范围中;如图4中的(b)示出了基于采样控制信息和三维发根点云的位置范围信息生成的体素网格集合,体素网格集合能够包围三维发根点云中的各个发根点,也就是说,三维发根点云中的各个发根点均处于生成的体素网格集合的包围范围中。也就是说,生成的体素网格集合具备全包围性,可以包围发根点云中的所有发根点,这样可以在采样过程中采样到发根点云中的离群发根点,使得发根点云的采样更加全面。
s12,建立发根点云与体素网格集合之间的映射。
在子步骤s12中,可以根据采样控制信息和发根点云的位置范围信息,生成体素网格集合,但是,生成的体素网格集合中各个体素网格与发根点云中的各个发根点之间的归属关系是不清楚的,因此,需要建立发根点云与体素网格集合之间的映射,即建立发根点云中的各个发根点与体素网格集合中的各个体素网格之间的映射,映射可以用于指示发根点云中的发根点与体素网格集合中的体素网格之间的归属关系,也就是说,建立映射是为了确定发根点云中的各个发根点属于体素网格集合中的哪个体素网格。
建立发根点云与体素网格集合之间的映射,具体可以包括:首先,可以在发根点云和体素网格集合所处的空间中选择参考点,将参考点作为坐标原点建立坐标系;然后,可以确定每个体素网格在坐标系中的位置范围信息,每个发根点在坐标系中的位置信息;针对任一个发根点,可以确定发根点的位置信息所属的位置范围信息对应的体素网格,可以在确定的体素网格和发根点之间建立映射。以二维发根点位为例,如图5所示,每个体素网格的边长为采样控制信息1,体素网格501在坐标系中的位置范围信息包括X方向上的位置范围信息[2,3),和Y方向上的位置范围信息[4,5),发根点在坐标系中的位置信息为坐标(2.5,4.7),可以看出,发根点在X方向上的坐标值属于体素网格501在X方向上的位置范围信息,发根点在Y方向上的坐标值属于体素网格501在Y方向上的位置范围信息,发根点位于体素网格501中,发根点属于体素网格501,可以建立发根点与体素网格501之间映射。
s13,在每个体素网格中,根据采样控制信息,对属于体素网格的发根点进行采样,得到体素网格的采样点。
具体来说,体素网格集合中的各个体素网格可以按照采样顺序依次进行采样,可以在当前体素网格中,对属于当前体素网格的发根点进行随机采样,随机采样是指从属于当前体素网格的发根点中随机采样出一个发根点;若随机采样出的目标发根点与已有采样点之间的距离大于采样控制信息,则可以将目标发根点确定为新的采样点;若当前体素网格的随机采样次数达到采样次数阈值,则可以对属于当前体素网格的下一体素网格的发根点进行随机采样,直至遍历体素网格集合中的所有体素网格。在上述采样过程中,需要关注以下几个点:
①已有采样点可以是指位于当前体素网格和当前体素网格的周围体素网格中的采样点,当前体素网格的周围体素网格可以是指体素网格集合中位于当前体素网格的周围空间范围内的,除当前体素网格外的体素网格。以二维发根点云为例,如图6所示,虚线框601中的正方形为已采样的体素网格,已采样的体素网格中的发根点为采样点,虚线框602中的正方形为未采样的体素网格,虚线框603中的正方形为当前体素网格;周围体素网格是当前体素网格3×3的周围空间范围(如图6所示的虚线框604)内,除当前体素网格外的8个体素网格;以三维发根点云为例,周围体素网格是当前体素网格3×3×3的周围空间范围内,除当前体素网格外的26个体素网格中的采样点。通过这种方式,当前体素网格中随机采样出的目标发根点无需与所有的采样点之间进行距离计算,只需与一定范围内的已有采样点进行距离计算,可以提升整体采样效率。此外,已有采样点的数量可以为多个,与采样控制信息进行比较的距离,可以是指,当前体素网格中随机采样出的目标发根点与各个已有采样点之间的距离中的最小距离;采用最小距离与采样控制信息进行比较,可以保证当前体素网格中随机采样出的目标发根点与任一个已有采样点之间的距离均大于采样控制信息。
②在当前体素网格中,对属于当前体素网格的发根点进行随机采样的过程中,可以获取当前体素网格的各个发根点的随机概率,根据各个发根点的随机概率,对属于当前体素网格的发根点进行随机采样。其中,各个发根点的随机概率与各个发根点对应的虚拟毛发的毛发长度呈正相关,也就是说,发根点对应的虚拟毛发的毛发长度越长,发根点的随机概率越大,发根点被采样的可能性越高,发根点对应的虚拟毛发的毛发长度越短,发根点的随机概率越小,发根点被采样的可能性越低。这是因为,采样点对应的虚拟毛发被作为模拟虚拟毛发,毛发长度短的插值虚拟毛发跟随毛发长度长的模拟虚拟毛发进行运动时,模拟出的插值虚拟毛发的动态效果较好,毛发长度长的插值虚拟毛发跟随毛发长度短的模拟虚拟毛发进行运动时,模拟出的插值虚拟毛发的动态效果较差,因此,可以为毛发长度较长的虚拟毛发赋予更高的随机概率,这样可以保证采样出的模拟虚拟毛发时均是毛发长度较长的虚拟毛发,这样有利于提升对插值虚拟毛发进行动态效果模拟的真实性。
③通常情况下,采样次数阈值可以反映体素网格内能够随机采样得到采样点的可能性,采样次数阈值越高,体素网格内能够随机采样得到采样点的可能性越高。采样次数阈值的确定方式可以包括:采样次数阈值可以是虚拟毛发的建模人员根据毛发建模经验设定的,虚拟毛发的建模人员能够比较清楚地了解采样次数阈值对采样后虚拟毛发动态效果的模拟效果的影响,因此,基于虚拟毛发的建模人员设定的采样次数,可以对发根点云进行合理地采样;或者,当前体素网格对应的采样次数阈值可以是根据当前体素网格内包含的发根点数量确定的,当前体素网格内包含的发根点数量越多,确定的当前体素网格对应的采样次数阈值越大,当前体素网格内包含的发根点数量越少,确定的当前体素网格对应的采样次数阈值越小,这样可以使得当前体素网格对应的采样次数阈值与当前体素网格中包含的发根点数量相适配,基于与当前体素网格中包含的发根点数量相适配的采样次数阈值,可以对当前体素网格中的发根点进行合理地采样。
④在将随机采样出的目标发根点与已有采样点之间的距离,和采样控制信息进行比较之前,可以根据属于当前体素网格的发根点数量,对用于控制当前体素网格中采样点之间距离的采样控制信息进行调整。也就是说,可以先确定基础的采样控制信息(即上述步骤S301中提及的由虚拟毛发的建模人员根据毛发建模经验设定的采样控制信息,根据发根点云中包含的发根点数量确定的采样控制信息,或者根据发根点云中发根点的分布信息确定的采样控制信息),在实际的采样过程中,可以根据每个体素网格中的发根点数量,对基础的采样控制信息进行动态调整,使得调整后的采样控制信息能够更好地与各个体素网格中的发根点数量适配,从而可以基于调整后的采样控制信息对各个体素网格中的发根点进行合理地采样;并且,体素网格中的发根点数量能够反映体素网格中的发根点密度,通过对基础的采样控制信息进行动态调整,可以使得调整后的采样控制信息能够更好地与各个体素网格中的发根点密度适配,这样可以使得采样点的密度分布能够较为准确地反映原始发根点云的密度分布,也就是说,原始发根点云中的发根点密度较大的区域,采样得到的采样点密度也较大。
本申请实施例不对采样控制信息的调整方式进行限定,例如,一种示例性的调整方式可参见如下描述:基础的采样控制信息可以对应基础的发根点数量,可以根据当前体素网格中的发根点数量与基础的发根点数量之间的差异,确定采样控制信息的调整量和采样控制信息的调整方向(例如,增大,减少),然后,可以按照采样控制信息的调整方向,根据采样控制信息的调整量,对当前体素网格对应的采样控制信息进行调整,得到调整后的采样控制信息。更为详细地,当前体素网格中的发根点数量与基础的发根点数量之间的差异,是指当前体素网格中的发根点数量与基础的发根点数量之间的发根点数量差值;若发根点数量差值大于差值阈值(例如可以是0),则可以确定采样控制信息的调整方向为增大方向,若发根点数量差值小于差值阈值(例如可以是0),则可以确定采样控制信息的调整方向为减小方向;采样控制信息的调整量可以是根据发根点数量差值的绝对值(即发根点数量变化量)确定的,发根点数量变化量与采样控制信息的调整量之间存在映射关系,可以基于映射关系将发根点数量变化量映射为采样控制信息的调整量,然后,可以按照采样控制信息的调整方向,根据采样控制信息的调整量,对当前体素网格对应的采样控制信息进行调整,得到调整后的采样控制信息。例如,当前体素网格中的发根点数量为20,基础的发根点数量为16,发根点数量差值为20-16=4,大于差值阈值0,需要对采样控制信息进行增大的调整(即采样控制信息的调整方向为增大方向),发根点数量变化量为4,发根点数量变化量与采样控制信息的调整量之间的映射关系可以为,采样控制信息的调整量=发根点数量变化量/基础的发根点数量=4/16=0.25,也就是说,需要将基础的采样控制信息增大0.25,得到调整后的采样控制信息。在此基础上,对于当前体素网格中随机采样出的目标发根点,若随机采样出的目标发根点与已有采样点之间的距离大于调整后的采样控制信息,则可以将随机采样出的发根点确定为新的已有采样点。
以上子步骤s11-子步骤s13介绍了发根点云的采样过程,以二维发根点云为例,图7示出了二维发根点云的采样结果。将发根点云表示为P,发根点云中的任一个发根点表示为p,体素网格集合表示为G,体素网格集合中的任一个体素网格表示为g,当前体素网格表示为g’,当前体素网格中的任一个发根点表示为p’,采样控制信息表示为R,采样前的发根点云与体素网格集合之间的映射表示为Map,已有采样点与体素网格集合之间的映射表示为MapS,采样结果表示为Ps,任一个已有采样点表示为ps,发根点云的采样过程可参见如下伪代码:
//Build Map between grids and points(在体素网格集合和发根点云之间构建映射)
For every point p in P(对于P中的每个p)
calculate g from position of p and R(根据p和R的位置计算p所属的g)(1)
append p to Map(g)(建立p和g之间的映射)(2)
//Randomly sample in every grid(在每个体素网格中随机采样)
For every gird g in G(对于G中的每个体素网格g):
for k times do(做k次):
randomly select a p’ from Map(g’)(从g’中随机采样一个p’)(3)
ps
Figure SMS_1
- all sample points in MapS(g and its neighbour grids)(当前体素网格和当前体素网格的周围体素网格中的已有采样点)(4)
if dist(p’,ps)
Figure SMS_2
R for all ps(对于所有的ps,如果p’和ps之间的距离大于R):(5)
append p’to Ps and MapS(g’)( 将p’确定为新的采样点添加至Ps中)(6)
else:
break
在发根点云的采样过程中,假设发根点云P中有N个发根点,采样结果Ps中有S个已有采样点,则上述伪代码所示的发根点云的采样过程中,步骤(1)(即计算发根点云中的发根点所属的体素网格)和步骤(2)(即建立发根点云与体素网格集合之间的映射)的时间复杂度均为O(N),空间复杂度均为O(N)。由于体素网格集合G中体素网格的数量小于N,步骤(3)(即从当前体素网格中随机采样一个发根点)的时间复杂度不超过O(kN),k为采样次数阈值,k为常数,则时间复杂度O(kN)等同于O(N)。对于步骤(4)(5)(6)(即计算随机采样出的目标发根点与已有采样点之间的距离是否大于采样控制信息,若大于,则将随机采样出的目标发根点确定为新的采样点),时间复杂度和空间复杂度均为O(N)。这是因为体素网格大小固定为R且两个采样点之间的距离必须大于R,所以,以三维空间中的体素网格为例,每个体素网格中的采样点的数量具有常数上界8个(即每个体素网格中的采样点的最大数量为8个),因此时间复杂度为O(3×3×3×8kN) = O(kN) = O(N)。也就是说,本申请实施例提出的发根点云的采样方式的时间复杂度为O(N),相比于最远点采样方式(是指先从发根点云中随机选取一个采样点,之后每次选取与已有采样点距离最远的点作为新的采样点,直到采样点数量或最远距离达到要求的方式),当采用最远点采样方式从N个发根点中采样得到的采样点数量为S个时,采样的时间复杂度为O(NS),相比之下,本申请实施例的采样过程具有更高的采样效率。
S304,将采样点对应的虚拟毛发确定为模拟虚拟毛发,将发根点云中除采样点外的其他点对应的虚拟毛发确定为插值虚拟毛发。
在根据采样控制信息,对发根点云进行采样处理,得到采样点之后,可以将采样点对应的虚拟毛发确定为模拟虚拟毛发,将发根点云中除采样点外的其他点对应的虚拟毛发确定为插值虚拟毛发。模拟虚拟毛发在业务的执行过程中可以采用物理仿真策略进行动态效果模拟,模拟虚拟毛发可以用于在业务的执行过程中控制插值虚拟毛发跟随模拟虚拟毛发运动,也就是说,插值虚拟毛发的动效效果模拟依赖于模拟虚拟毛发。
本申请实施例中,通过采样控制信息进行采样控制,采样点中任意两个采样点之间的最小距离均大于采样控制信息,发根点云的采样具备最小距离性质。通过生成体素网格集合,以体素网格集合中的每个体素网格为采样单元进行采样,并在采样过程中通过采样控制信息进行采样控制,可以实现空间分布上比较均匀的采样,采样点在发根点云中的分布较为均为,发根点云的采样具备空间均匀性。生成的体素网格集合能够包含发根点云中的所有发根点,这样可以采样到发根点云中的离群发根点,发根点云的采样具备全采样性质。
本申请实施例提供一种业务处理方法,该业务处理方法主要介绍插值归类过程(即确定插值虚拟毛发的匹配模拟虚拟毛发)和插值计算过程,该业务处理方法可以由计算机设备执行,计算机设备可以是终端或服务器,如图8所示,该业务处理方法可以包括但不限于以下步骤S801-步骤S806:
S801,获取业务中业务角色的发根点云。
S802,获取采样控制信息。
S803,根据采样控制信息,对发根点云进行采样处理,得到采样点。
S804,将采样点对应的虚拟毛发确定为模拟虚拟毛发,将发根点云中除采样点外的其他点对应的虚拟毛发确定为插值虚拟毛发。
本申请实施例中,步骤S801的执行过程与上述图3所示实施例中步骤S301的执行过程相同,步骤S802的执行过程与上述图3所示实施例中步骤S302的执行过程相同,步骤S803的执行过程与上述图3所示实施例中步骤S303的执行过程相同,步骤S804的执行过程与上述图3所示实施例中步骤S304的执行过程相同,具体执行过程可参见上述图3所示实施例的描述,在此不再赘述。
S805,获取插值虚拟毛发的匹配模拟虚拟毛发,以及匹配模拟虚拟毛发对插值虚拟毛发的影响权重。
插值虚拟毛发的匹配模拟虚拟毛发,可以是在采样点对应的模拟虚拟毛发中确定的。插值虚拟毛发的匹配模拟虚拟毛发,以及匹配模拟虚拟毛发对插值虚拟毛发的影响权重的获取过程,具体可以包括:
针对任一根插值虚拟毛发,可以基于模拟虚拟毛发的毛发特征与插值虚拟毛发的毛发特征,确定模拟虚拟毛发与插值虚拟毛发之间的匹配度;然后,可以根据模拟虚拟毛发与插值虚拟毛发之间的匹配度,从模拟虚拟毛发中选择插值虚拟毛发的匹配模拟虚拟毛发,以及确定匹配模拟虚拟毛发对插值虚拟毛发的影响权重。
任一虚拟毛发的毛发特征可以包括虚拟毛发对应的发根点的位置信息和虚拟毛发的属性信息,属性信息可以包括朝向信息和长度信息中的至少一个,朝向信息可以是指虚拟毛发的发根点指向虚拟毛发的目标位置点的方向,目标位置点是指虚拟毛发中距离发根点目标长度(例如,目标长度可以是虚拟毛发的毛发长度的1/3)的位置点;任一根模拟虚拟毛发与插值虚拟毛发之间的匹配度是指,模拟虚拟毛发的毛发特征与插值虚拟毛发的毛发特征之间的特征相似度,也就是说,模拟虚拟毛发与插值虚拟毛发在发根点位置、毛发朝向、以及毛发长度等特征下的相似程度。任一根模拟虚拟毛发与插值虚拟毛发之间的匹配度的确定方式,可以包括:首先,可以在模拟虚拟毛发中确定插值虚拟毛发的周围模拟虚拟毛发;插值虚拟毛发的周围模拟虚拟毛发可以是指,插值虚拟毛发对应的发根点所在的目标体素网格,和目标体素网格的周围体素网格中的采样点对应的模拟虚拟毛发;目标体素网格的周围体素网格可以是指,体素网格集合中位于目标体素网格的周围空间范围(例如,二维空间中3×3的周围空间范围,三维空间中3×3×3的周围空间范围)内的,除目标体素网格之外的体素网格;通过这种方式,插值虚拟毛发无需与所有的模拟虚拟毛发进行匹配度计算,插值虚拟毛发只需与插值虚拟毛发的周围模拟虚拟毛发进行匹配度计算,可以加速匹配度的计算过程。其次,可以根据周围模拟虚拟毛发对应的发根点的位置信息和插值虚拟毛发对应的发根点的位置信息,确定周围模拟虚拟毛发与插值虚拟毛发之间的发根距离信息;可以根据周围模拟虚拟毛发的属性信息和插值虚拟毛发的属性信息,确定周围模拟虚拟毛发与插值虚拟毛发之间的属性相似度。然后,可以根据发根距离信息和属性相似度,确定周围模拟虚拟毛发与插值虚拟毛发之间的匹配度。以属性信息包括朝向信息为例,任一根模拟虚拟毛发与插值虚拟毛发之间的匹配度的确定方式,可以参见如下公式1:
Figure SMS_3
公式1
如上述公式1所示,
Figure SMS_4
表示模拟虚拟头发,/>
Figure SMS_5
表示插值虚拟毛发,/>
Figure SMS_6
表示模拟虚拟毛发对应的发根点的位置信息,/>
Figure SMS_7
表示插值虚拟毛发对应的发根点的位置信息,
Figure SMS_8
表示模拟虚拟毛发的朝向信息,/>
Figure SMS_9
表示插值虚拟毛发的朝向信息。公式1所示的模拟虚拟毛发与插值虚拟毛发之间的匹配度计算方式的设计,有着模拟虚拟毛发对应的发根点与插值虚拟毛发对应的发根点之间的距离越近,朝向越相似,匹配度越高的性质。
在此基础上,根据模拟虚拟毛发与插值虚拟毛发之间的匹配度,从模拟虚拟毛发中选择插值虚拟毛发的匹配模拟虚拟毛发,以及确定匹配模拟虚拟毛发对插值虚拟毛发的影响权重的过程,具体可以包括:可以按照高匹配度优先选择原则,从周围模拟虚拟毛发中选择插值虚拟毛发的匹配模拟虚拟毛发,匹配模拟虚拟毛发的数量为M根,M为大于或等于2的整数,例如,匹配模拟虚拟毛发的数量为3根。可以根据各根匹配模拟虚拟毛发各自对应的匹配度,在各根匹配模拟虚拟毛发的总体匹配度中的占比,确定各根匹配模拟虚拟毛发各自对应的影响权重;各根匹配模拟虚拟毛发的总体匹配度可以是指,各根匹配模拟虚拟毛发的匹配度之和。
也就是说,本申请实施例可以从多个角度(例如,模拟虚拟毛发对应的发根点与插值虚拟毛发对应的发根点之间的距离远近程度,模拟虚拟毛发与插值虚拟毛发之间的属性(朝向和毛发长度中的至少一个)相似度等角度),综合考虑模拟虚拟毛发与插值虚拟毛发之间的匹配度,匹配度越高,模拟虚拟毛发与插值虚拟毛发之间的距离越近,模拟虚拟毛发与插值虚拟毛发之间的属性(朝向和毛发长度中的至少一个)相似度越高;然后,可以从模拟虚拟毛发中,选择匹配度较高的模拟虚拟毛发作为匹配模拟虚拟毛发,用于对插值虚拟毛发的动态效果进行模拟,匹配模拟虚拟毛发与插值虚拟毛发的距离较近,朝向、毛发长度等属性信息相似,采用匹配模拟虚拟毛发对插值虚拟毛发的动态效果进行模拟时,可以提升对插值虚拟毛发的动态效果的模拟真实性;并且,匹配模拟虚拟毛发的选择考虑了朝向、长度等虚拟毛发形态,对中分等较为复杂的虚拟毛发造型的动态效果模拟真实性较高。如图9所示,图9中的模拟虚拟毛发表示为实线,与模拟虚拟毛发连接的圆点为模拟虚拟毛发对应的发根点,插值虚拟毛发表示为虚线,与插值虚拟毛发连接的圆点为插值虚拟毛发对应的发根点;在插值虚拟毛发901的周围模拟虚拟毛发中,选择了与插值虚拟毛发901距离较近、朝向较相似的模拟虚拟毛发902、模拟虚拟毛发903和模拟虚拟毛发904,作为插值虚拟毛发901的匹配模拟虚拟毛发;插值虚拟毛发901对应的发根点,分别与模拟虚拟毛发902对应的发根点、模拟虚拟毛发903对应的发根点和模拟虚拟毛发904对应的发根点之间的连线,表示插值虚拟毛发901,与模拟虚拟毛发902、模拟虚拟毛发903和模拟虚拟毛发904之间的带动关系,插值虚拟毛发901被模拟虚拟毛发902、模拟虚拟毛发903和模拟虚拟毛发904所带动。
可选地,当周围模拟虚拟毛发的数量不足M根,或者,周围模拟虚拟毛发与插值虚拟毛发之间的匹配度较低(例如,匹配度低于匹配度阈值,匹配度阈值可以由虚拟毛发的建模人员根据毛发建模经验设定),不足以选择出M根匹配模拟虚拟毛发时,可以扩大周围模拟虚拟毛发的选择范围,即扩大目标体素网格的周围控件范围(例如,二维空间中,从3×3的周围空间范围扩大为4×4的周围空间范围,三维空间中,从3×3×3的周围空间范围扩大为4×4×4的周围空间范围),以便于选择出足够数量的匹配模拟虚拟毛发。
S806,根据匹配模拟虚拟毛发和匹配模拟虚拟毛发的影响权重,控制插值虚拟毛发跟随匹配模拟虚拟毛发运动。
在获取插值虚拟毛发的匹配模拟虚拟毛发,以及匹配模拟虚拟毛发对插值虚拟毛发的影响权重之后,可以根据匹配模拟虚拟毛发和匹配模拟虚拟毛发的影响权重,控制插值虚拟毛发跟随匹配模拟虚拟毛发运动。控制插值虚拟毛发跟随匹配模拟虚拟毛发运动,具体可以是指:在第一帧中,可以根据匹配模拟虚拟毛发中的相关毛发点的位置信息,和匹配模拟虚拟毛发的影响权重,计算插值虚拟毛发中的各个毛发点的初始插值位置信息;在第一帧之后的各个帧中,可以根据匹配模拟虚拟毛发中的相关毛发点更新后的位置信息,和匹配模拟虚拟毛发的影响权重,对插值虚拟毛发中的各个毛发点的初始插值位置信息进行更新。
为了能够更清楚地理解匹配模拟虚拟毛发控制插值虚拟毛发的过程,可以将任一根插值虚拟毛发的匹配模拟虚拟毛发的数量表示为M根,在此以插值虚拟毛发中的任一个毛发点(可以表示为目标毛发点)为例,介绍M根匹配模拟虚拟毛发控制目标毛发点运动的过程。需要说明的是,在业务的实际执行过程中,同一根插值虚拟毛发中的各个毛发点计算过程可以并行的,各根插值虚拟毛发的计算过程也可以是并行的,这样可以提升插值虚拟毛发的动态效果模拟的整体效率,提升插值虚拟毛发的动态效果模拟的实时性。M根匹配模拟虚拟毛发控制目标毛发点运动的过程,具体可以包括以下子步骤s21-子步骤s23:
s21,在M根匹配模拟虚拟毛发的每根匹配模拟虚拟毛发中,确定与插值虚拟毛发中的目标毛发点相匹配的匹配毛发分段。
具体来说,一根匹配模拟虚拟毛发中可以确定与目标毛发点相匹配的一个匹配毛发分段,也就是说,M根匹配模拟虚拟毛发中一共可以确定M个匹配毛发分段。其中,目标毛发点与匹配毛发分段相匹配可以是指,目标毛发点与发根点之间的距离,和匹配毛发分段两端的毛发点与发根点之间的距离接近;可以理解为,匹配毛发分段两端的毛发点与发根点之间的距离,可以构成匹配毛发分段与发根点之间的距离范围,若目标毛发点与发根点之间的距离处于匹配毛发分段对应的距离范围,则可以认为目标毛发点与匹配毛发分段相匹配。如图10所示,匹配模拟虚拟毛发表示为实线,匹配模拟虚拟毛发中的圆点包括匹配模拟虚拟毛发对应的发根点和其他毛发点,插值虚拟毛发表示为虚线,插值虚拟毛发中的圆点包括插值虚拟毛发对应的发根点和其他毛发点;插值虚拟毛发中的目标毛发点p2与插值虚拟毛发对应的发根点p0之间的距离为27,匹配模拟虚拟毛发中的毛发分段a2a3对应的距离范围为[20,30),目标毛发点p2与发根点p0之间的距离属于毛发分段a2a3对应的距离范围,则可以将匹配模拟虚拟毛发中的毛发分段a2a3确定为与目标毛发点p2相匹配的匹配毛发分段。
s22,根据M根匹配模拟虚拟毛发的影响权重,以及M个匹配毛发分段的位置信息,计算目标毛发点的初始插值位置信息。
具体来说,可以根据M个匹配毛发分段中的每个匹配毛发分段的位置信息,计算目标毛发点在相应匹配毛发分段下的插值位置分量信息,匹配毛发分段的位置信息可以包括匹配毛发分段两端毛发点的位置信息;根据M根匹配模拟虚拟毛发的影响权重,对目标毛发点在M个匹配毛发分段下的插值位置分量信息进行加权求和处理,得到目标毛发点的初始插值位置信息,其中,任一根匹配模拟虚拟毛发的影响权重,用于对匹配模拟虚拟毛发中的匹配毛发分段下的插值位置分量信息进行加权处理。
其中,以M个匹配毛发段中的任一个匹配毛发分段(可以表示为目标毛发分段)为例,根据目标毛发分段的位置信息,计算目标毛发点在目标毛发分段下的插值位置信息分量的过程,可以包括:
首先,可以将目标毛发点投影至目标毛发分段中,目标毛发分段两端的毛发点为第一毛发点和第二毛发点,可以确定第一毛发点与目标毛发点的投影点之间的第一距离,以及第二毛发点与目标毛发点的投影点之间的第二距离;如图11所示,将目标毛发点p2投影至毛发分段a2a3中,投影点为pa,线段a2pa的距离(即毛发点a2与投影点pa之间的距离)为第一距离,线段a3pa的距离(即毛发点a3与投影点pa之间的距离)为第二距离。其次,可以根据第一距离在目标毛发分段的长度中的占比,确定第一毛发点对应的第一权重,第一权重可以用于对第一毛发点的位置信息进行加权处理;以及,可以根据第二距离在目标毛发分段的长度中的占比,确定第二毛发点对应的第二权重,第二权重可以用于对第二毛发点的位置信息进行加权处理。然后,可以根据第一权重和第二权重,对第一毛发点的位置信息和第二毛发点的位置信息进行加权求和处理,得到目标毛发点在目标毛发分段下的插值位置分量信息。
为了便于理解目标毛发点的初始插值位置信息的计算过程,可以将插值虚拟毛发中的目标毛发点表示为p,插值虚拟毛发的匹配模拟虚拟毛发的数量为3根,分别是匹配模拟虚拟毛发a、匹配模拟虚拟毛发b和匹配模拟虚拟毛发c;目标毛发点p在匹配模拟虚拟毛发a中的匹配毛发分段为匹配毛发分段aiai+1,目标毛发点p在匹配模拟虚拟毛发b中的匹配毛发分段为匹配毛发分段bibi+1,目标毛发点p在匹配模拟虚拟毛发c中的匹配毛发分段为匹配毛发分段cici+1;目标毛发点p的初始插值位置信息的计算过程,可参见如下公式2:
Figure SMS_10
公式2
如上述公式2:
Figure SMS_13
表示目标毛发点p的初始插值位置信息;/>
Figure SMS_17
表示各根匹配模拟虚拟毛发的影响权重,/>
Figure SMS_19
表示匹配模拟虚拟毛发a的影响权重表示、/>
Figure SMS_14
表示匹配模拟虚拟毛发b的影响权重,/>
Figure SMS_16
表示匹配模拟虚拟毛发c的影响权重,且/>
Figure SMS_20
;/>
Figure SMS_23
和/>
Figure SMS_11
表示匹配毛发分段/>
Figure SMS_18
两端毛发点的位置信息,/>
Figure SMS_21
表示用于对毛发点的位置信息/>
Figure SMS_24
进行加权处理的第一权重,/>
Figure SMS_12
表示用于对毛发点的位置信息/>
Figure SMS_15
进行加权处理的第二权重,且/>
Figure SMS_22
s23,根据M根匹配模拟虚拟毛发的影响权重,以及M个匹配毛发分段更新后的位置信息,对目标毛发点的初始插值位置信息进行更新。
匹配模拟虚拟毛发的影响权重综合考虑了匹配模拟虚拟毛发对应的发根点与插值虚拟毛发的发根点之间的距离,以及匹配模拟虚拟毛发与插值虚拟毛发之间的属性相似度等因素,因此,目标毛发点的初始插值位置信息与目标毛发点的原始位置信息通常是不相同的,目标毛发点的原始位置信息是目标毛发点加载至业务中时携带的位置信息。基于此,本申请实施例中对目标毛发点的初始插值位置信息进行更新的原理大致可以参见如下描述:在第一帧中,记录目标毛发点的初始插值位置信息与目标毛发点的原始位置信息之间的偏移信息;在第一帧之后的各帧中,计算目标毛发点的新插值位置信息,并对偏移信息进行修正,根据修正后的偏移信息和新插值位置信息,计算出目标毛发点的最终插值位置信息。具体来说,目标毛发点的初始插值位置信息的更新过程,可以包括以下①-④:
①可以根据目标毛发点的初始插值位置信息和所述目标毛发点的原始位置信息之间的差异,确定目标毛发点的偏移信息,具体可以参见如下公式3:
Figure SMS_25
公式3
如上述公式3:
Figure SMS_26
表示偏移信息,/>
Figure SMS_27
表示目标毛发点的原始位置信息,/>
Figure SMS_28
表示目标毛发点的初始插值位置信息。
②可以根据M根匹配模拟虚拟毛发的影响权重,以及M个匹配毛发分段更新后的位置信息,计算目标毛发点的参考插值位置信息;目标毛发点的参考插值位置信息的计算过程与目标毛发点的初始插值位置信息的计算过程相似,具体可以参见上述目标毛发点的初始插值位置信息的计算过程,目标毛发点的参考插值位置信息的计算过程可以表示为如下公式4:
Figure SMS_29
公式4
如上述公式4:
Figure SMS_38
表示目标毛发点的参考插值位置信息;/>
Figure SMS_31
表示各根匹配模拟虚拟毛发的影响权重,/>
Figure SMS_34
表示匹配模拟虚拟毛发a的影响权重表示、/>
Figure SMS_42
表示匹配模拟虚拟毛发b的影响权重,/>
Figure SMS_46
表示匹配模拟虚拟毛发c的影响权重,且
Figure SMS_47
;/>
Figure SMS_49
和/>
Figure SMS_39
表示更新后的匹配毛发分段/>
Figure SMS_43
两端毛发点的位置信息(即目标毛发分段更新后的位置信息),/>
Figure SMS_30
表示更新后的匹配模拟虚拟毛发/>
Figure SMS_36
,/>
Figure SMS_33
表示更新后的匹配模拟虚拟毛发/>
Figure SMS_37
,/>
Figure SMS_40
表示更新后的匹配模拟虚拟毛发/>
Figure SMS_44
;/>
Figure SMS_35
表示用于对毛发点的位置信息/>
Figure SMS_41
进行加权处理的第一权重,/>
Figure SMS_45
表示用于对毛发点的位置信息/>
Figure SMS_48
进行加权处理的第二权重,且/>
Figure SMS_32
③可以根据更新后的M个匹配毛发分段的位置信息,与更新前的M个匹配毛发分段的位置信息之间的差异,确定位置变换信息。位置变换信息的确定过程,可以包括:计算更新前的每根匹配毛发分段两端毛发点的第一位置信息变化量,以及计算更新后的每根匹配毛发分段两端毛发点的第二位置信息变化量;根据每根匹配毛发分段的第一位置信息变化量与第二位置信息变化量之间的差异,确定对应匹配毛发分段的变换矩阵;将M根匹配毛发分段中参考毛发分段的变换矩阵,确定为位置变换信息;其中,参考毛发分段是M根匹配模拟虚拟毛发中影响权重最大的匹配模拟虚拟毛发中的匹配毛发分段。
可以理解为,可以计算更新前后每根匹配毛发分段两端毛发点的位置信息变化量,以及针对每根匹配毛发分段,计算使得更新前的位置信息变化量变换为更新后的位置变化信息量的变换矩阵,然后,可以将多根匹配模拟虚拟毛发中,影响权重最大的匹配模拟虚拟毛发中匹配毛发分段对应的变换矩阵,确定为位置变换信息。例如,
Figure SMS_50
表示更新前的匹配毛发分段的位置信息变化量(即第一位置信息变化量),/>
Figure SMS_54
表示更新后的匹配毛发分段的位置信息变化量(即第二位置信息变化量),通过变换矩阵/>
Figure SMS_55
可以使得/>
Figure SMS_52
变换为/>
Figure SMS_53
;本申请实施例可以采用/>
Figure SMS_56
对应的变换矩阵作为位置变换信息/>
Figure SMS_57
,即/>
Figure SMS_51
④可以根据位置变换信息,对目标毛发点的偏移信息进行修正处理,得到修正后的偏移信息,具体可以参见下述公式5;然后,可以对目标毛发点的参考插值位置信息和修正后的偏移信息进行求和处理,得到目标毛发点更新后的插值位置信息,具体可以参见下述公式6。
Figure SMS_58
公式5
Figure SMS_59
公式6
如上述公式5:
Figure SMS_60
表示修正后的偏移信息,/>
Figure SMS_61
表示修正前的偏移信息,/>
Figure SMS_62
表示位置变换信息。如上述公式6:/>
Figure SMS_63
表示目标毛发点的参考插值位置信息,/>
Figure SMS_64
表示修正后的偏移信息,/>
Figure SMS_65
表示目标毛发点更新后的插值位置信息。
以上子步骤s21-子步骤s23介绍了根据匹配模拟虚拟毛发和匹配模拟虚拟毛发的影响权重,控制插值虚拟毛发跟随匹配模拟虚拟毛发运动的过程,在该过程中,针对插值虚拟毛发中的毛发点,在每根匹配模拟虚拟毛发中确定了相匹配的毛发分段进行插值位置信息的计算,这样可以提升插值虚拟毛发中的毛发点的插值位置信息计算更准确,这样可以提升插值虚拟毛发中的毛发点的动态效果模拟的真实性;并且,在匹配模拟虚拟毛发的动态效果更新后,除了计算插值虚拟毛发中毛发点新的插值位置信息外,还引入偏移信息对计算出的新的插值位置信息进行修正,这样可以进一步提升插值虚拟毛发中的毛发点的插值位置信息计算更准确,进一步提升插值虚拟毛发中的毛发点的动态效果模拟的真实性。
此外,子步骤s21-子步骤s23介绍的根据匹配模拟虚拟毛发和匹配模拟虚拟毛发的影响权重,控制插值虚拟毛发跟随匹配模拟虚拟毛发运动的过程,除了可以适用于采样-插值框架外,还可以应用于其他方式确定的插值虚拟毛发和插值虚拟毛发的匹配模拟虚拟毛发中:例如,可以将已有的虚拟毛发作为插值虚拟毛发,额外生成插值虚拟毛发的匹配模拟虚拟毛发,以及匹配模拟虚拟毛发对插值虚拟毛发的影响权重,然后,根据匹配模拟虚拟毛发和匹配模拟虚拟毛发的影响权重,控制插值虚拟毛发跟随匹配模拟虚拟毛发运动;该方式能够用于任何虚拟毛发,且能够有效解决虚拟毛发形态参差不齐,导致插值虚拟毛发的动态效果模拟真实性不高的问题。又如,可以将已有的虚拟毛发作为模拟虚拟毛发,额外生成模拟虚拟毛发的插值虚拟毛发,以及模拟虚拟毛发对插值虚拟毛发的影响权重,然后,根据模拟虚拟毛发和模拟虚拟毛发的影响权重,控制插值虚拟毛发跟随模拟虚拟毛发运动;该方式能够用于任何虚拟毛发,且能够有效解决虚拟毛发形态参差不齐,导致插值虚拟毛发的动态效果模拟真实性不高的问题。
需要说明的是,本申请实施例中步骤S805、步骤S806中的子步骤s21和子步骤s22所描述的内容属于插值归类过程,子步骤s23所描述的内容属于插值计算过程。在子步骤s23所描述的插值计算过程中,每根匹配模拟虚拟毛发对插值虚拟毛发的影响权重是固定不变的,可选地,每根匹配模拟虚拟毛发对插值虚拟毛发的影响权重可以在每一帧中动态变化。具体来说:
在一种实现方式中,每一帧中匹配模拟虚拟毛发对插值虚拟毛发的影响权重,可以是根据匹配模拟虚拟毛发与插值虚拟毛发之间的匹配度重新计算得到的。更为详细地,在当前帧中采用物理仿真策略对匹配模拟虚拟毛发进行动态效果模拟后,可以重新计算每根匹配模拟虚拟毛发与插值虚拟毛发之间的匹配度,可以根据重新计算的各根匹配模拟虚拟毛发与插值虚拟毛发之间的匹配度,计算各根匹配模拟虚拟毛发对插值虚拟毛发的影响权重,影响权重的计算方式可参见步骤S805中描述的相关内容。通过这种方式,匹配模拟虚拟毛发对插值虚拟毛发的影响权重与匹配模拟虚拟毛发的当前形态匹配度更高,这样可以提高对插值虚拟毛发进行动态效果模拟的真实性。
在另一种实现方式中,每一帧中匹配模拟虚拟毛发对插值虚拟毛发的影响权重可以是采用神经网络模型预测得到的。更为详细地,在模型训练过程中,神经网络模型可以是采取大量的模拟虚拟毛发作为训练样本数据进行训练得到的,这些作为训练样本数据的模拟虚拟毛发可以来自于不同造型的虚拟毛发中,这样可以使得训练得到的神经网络模型能够适用于不同造型的虚拟毛发中,训练得到的神经网络模型对于不同造型的虚拟毛发均能进行较为准确地影响权重预测。在模型预测过程中,在当前帧中采用物理仿真策略对匹配模拟虚拟毛发进行动态效果模拟后,可以将匹配模拟虚拟毛发与插值虚拟毛发输入神经网络模型中进行影响权重预测,可以得到匹配模拟虚拟毛发对插值虚拟毛发的影响权重。通过这种方式,匹配模拟虚拟毛发对插值虚拟毛发的影响权重与匹配模拟虚拟毛发的当前形态匹配度更高,神经网络模型能够保留这样可以提高对插值虚拟毛发进行动态效果模拟的真实性。特别地,神经网络模型除了可以预测匹配模拟虚拟毛发的影响权重外,还对插值计算过程进行预测,可以理解为,在当前帧中采用物理仿真策略对匹配模拟虚拟毛发进行动态效果模拟后,可以将匹配模拟虚拟毛发与插值虚拟毛发输入神经网络模型中,神经网络模型可以直接预测出插值虚拟毛发中的各个毛发点在当前帧中的插值位置信息。通过这种方式,模型训练方法能够学习匹配模拟虚拟毛发的更多形态特征,保留更多地细节和层次,这样可提升对插值虚拟毛发进行动态效果模拟的真实性。
本申请实施例中,可以从多个角度(例如,模拟虚拟毛发对应的发根点与插值虚拟毛发对应的发根点之间的距离远近程度,模拟虚拟毛发与插值虚拟毛发之间的属性(朝向和毛发长度中的至少一个)相似度等角度),综合考虑模拟虚拟毛发与插值虚拟毛发之间的匹配度,然后,可以从模拟虚拟毛发中,选择匹配度较高的模拟虚拟毛发作为匹配模拟虚拟毛发,用于对插值虚拟毛发的动态效果进行模拟,匹配模拟虚拟毛发与插值虚拟毛发的距离较近,朝向、毛发长度等属性信息相似,采用匹配模拟虚拟毛发对插值虚拟毛发的动态效果进行模拟时,可以提升对插值虚拟毛发的动态效果的模拟真实性。
以上图3和图8所示实施例主要介绍业务处理方法的详细执行流程,基于此,下面对业务处理方法的相关技术支持进行介绍。
本申请实施例提供的业务处理方法可以集成于业务处理引擎(例如,游戏业务中的业务处理引擎可以是UE5(虚幻引擎5))中,并且可以插件(例如,PhysionGroom插件)的形式提供使用。在PhysionGroom插件中,匹配模拟虚拟毛发的实时动态效果可以是采用MPM(一种物理仿真策略)和DER(另一种物理仿真策略)等物理仿真策略进行模拟的,可以基于C++(一种编译语言)和hlsl(另一种编译语言)实现。实现过程中本申请实施例可以采用GPU(Graphics Processing Unit,图形处理器)并行计算加速,并开发了调试工具。具体来说:
并行加速:因每根插值虚拟毛发的插值计算过程独立互不干涉,该过程可以并行计算进行加速。本申请实施例可以采用Compute Shader(计算着色器)的方式调用GPU进行计算,使用128为单位的线程块(block),使用128为单位的线程块是指每个线程块同时处理128个点,每块被划分为含有4个线程组(warp),每个线程组内线程处理同一根插值虚拟毛发的计算,每个线程负责计算一个毛发点。线程组的划分符合GPU的硬件结构,同时也与PhysionGroom插件中已有的数据结构一致。每个线程块同时处理128个点,GPU根据计算资源情况能同时拉起多个线程块,这样并行计算能够将时间消耗减小几个数量级,从而可以提升对插值虚拟毛发的动态效果模拟的真实性。
调试工具:本申请实施例可以在业务处理引擎中提供针对插值计算过程的调试工具,该调试工具可以读取运行过程中GPU中的毛发点数据,并调用业务处理引擎的PDI(Primitive Draw Interface,图元绘制接口),可以将虚拟毛发的各种属性绘制在场景中。调试工具可以在业务开发或测试过程中,帮助业务开发或测试人员快速定位插值计算过程中存在的问题,如图12所示的调试工具界面,可以在调试工具的界面(a)中指定需要定位的插值虚拟毛发的编号,以及插值虚拟毛发的显示形态,显示形态例如可以是显示颜色或显示线条样式,调试工具能读取之前计算存储的模拟虚拟毛发与插值虚拟毛发之间的映射关系,并将其可视化。如图12所示的(b)示出了指定编号的插值虚拟毛发,如图12所示的(b)中线段的一端与插值虚拟毛发中的毛发点连接,另一端用于与插值虚拟毛发的匹配模拟虚拟毛发中的毛发点连接,线段的颜色深浅可以用于指示连接的匹配模拟虚拟毛发对插值虚拟毛发的影响权重大小。如图12所示的(c)中示出了虚拟毛发中的模拟虚拟毛发(如图12所示的(c)中的实线)。如图12所示的(d)中同时展示了模拟虚拟毛发(如图12所示的(d)中的实线)和插值虚拟毛发(如图12所示的(d)中的虚线),以及与插值虚拟毛发连接的一根匹配模拟虚拟毛发(即与插值虚拟毛发通过线段连接的模拟虚拟毛发)。
下面对本申请实施例提供的业务处理方法的实验结果进行介绍。
本申请实施例提供的业务处理方法在采样过程、插值归类过程和插值计算过程中进行了创新,采用本申请实施例提供的业务处理方法,对虚拟毛发的采样和插值效果明显改善。
在采样效果方面,相较于简单随机采样(即在发根点云中随机采样出一些发根点作为模拟虚拟毛发对应的发根点),本申请实施例的采样结果在空间分布上明显更加均匀,且能够保证包含处于边界的发根点。图13示出了采样简单随机采样方式与本申请实施例提供的采样方式下,采样发根点云中约6%的发根点作为模拟虚拟毛发对应的发根点时的采样结果对比,如图13所示的(a)为采用简单随机采样方式采样得到的模拟虚拟毛发,如图13所示的(b)为采用本申请实施例提供的采样方式采样得到的模拟虚拟毛发,对比可见,本申请实施例提供的采样方式采样得到的模拟虚拟毛发空间分布更均匀,本申请实施例提供的采样方式保证采样得到的模拟虚拟毛发能够包含边界的虚拟毛发,简单随机采样方式中,矩形框中的边缘虚拟毛发未被采样到。
在插值效果方面,本申请实施例提供的插值方式在中分的毛发造型上的模拟效果较好,不会出现三根插值虚拟毛发之间形态差异较大而产生的错误。图14示出了简单插值方式(即选取与插值虚拟毛发最近的模拟虚拟毛发作为匹配模拟虚拟毛发进行跟随的方式)与本申请实施例提供的插值方式的插值结果对比,图14中的(a)示出了采用简单插值方式下的虚拟毛发插值效果,图14中的(b)示出了采用简单插值方式的发根点插值效果,较大的点表示模拟虚拟毛发对应的发根点,较小的点表示插值虚拟毛发对应的发根点,模拟虚拟毛发对应的发根点与插值虚拟毛发对应的发根点之间的连线则表示带动关系和连线的颜色深浅影响权重;图14中的(c)示出了采用本申请实施例提供的插值方式下的虚拟毛发插值效果,图14中的(d)示出了采用本申请实施例提供的插值方式下的发根点插值效果。对比可见,对于简单插值方式,许多插值虚拟毛发使用两侧的模拟虚拟毛发进行插值位置计算,导致插值结果错误地位于中间;而本申请实施例提供的插值方式能够避免这类问题,可以看到本申请实施例提供的插值方式下,模拟虚拟毛发与插值虚拟毛发之间的连线中,有明显的一条断带,对应于虚拟毛发造型的中缝,证明插值虚拟毛发不会同时选择两侧的头发进行插值,实际运行中发丝表现上无明显错误。
在整体插值效率上,使用GPU并行加速计算的插值算法,在安装Nvidia 2060(一种显卡)的实验平台运行的UE5上进行测试,测试结果可参见如下表1:
表1
Figure SMS_66
总体来看,即使是百万点的毛发点,本申请实施例提供的业务处理方法的性能消耗也仅为每帧0.5毫秒左右,完全达到实时要求,在整套模拟算法的时间消耗中的占比较小。同时,该时间消耗只与插值虚拟毛发中的毛发点数量有关,几乎不受模拟虚拟毛发中毛发点数量的影响。
上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面提供了本申请实施例的装置。
请参见图15,图15是本申请实施例提供的一种业务处理装置的结构示意图,该业务处理装置可以设置于本申请实施例提供的计算机设备中,计算机设备可以是终端或服务器。图15所示的业务处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),该业务处理装置可以用于执行图3或图8所示的方法实施例中的部分或全部步骤。请参见图15,该业务处理装置可以包括如下单元:
获取单元1501,用于获取业务中业务角色的发根点云,发根点云包括业务角色的多根虚拟毛发对应的发根点;
获取单元1501,还用于获取采样控制信息,采样控制信息用于在发根点云的采样过程中控制采样点之间的距离;
处理单元1502,用于根据采样控制信息,对发根点云进行采样处理,得到采样点;
处理单元1502,还用于将采样点对应的虚拟毛发确定为模拟虚拟毛发,将发根点云中除采样点外的其他点对应的虚拟毛发确定为插值虚拟毛发;
其中,模拟虚拟毛发在业务的执行过程中采用物理仿真策略进行动态效果模拟,模拟虚拟毛发用于在业务的执行过程中控制插值虚拟毛发跟随模拟虚拟毛发运动。
在一种实现方式中,处理单元1502,用于根据所述控制信息,对发根点云进行采样处理,得到采样点时,具体用于执行如下步骤:
根据采样控制信息和发根点云的位置范围信息,生成体素网格集合;采样控制信息用于确定体素网格集合中每个体素网格的尺寸,发根点云的位置范围信息用于确定体素网格集合的包围范围;
建立发根点云与体素网格集合之间的映射,映射用于指示发根点云中的发根点与体素网格集合中的体素网格之间的归属关系;
在每个体素网格中,根据采样控制信息,对属于体素网格的发根点进行采样,得到体素网格的采样点。
在一种实现方式中,体素网格集合中的各个体素网格按照采样顺序依次进行采样;处理单元1502,用于在每个体素网格中,根据采样控制信息,对属于体素网格的发根点进行采样,得到体素网格的采样点时,具体用于执行如下步骤:
在当前体素网格中,对属于当前体素网格的发根点进行随机采样;
若随机采样出的目标发根点与已有采样点之间的距离大于采样控制信息,则将目标发根点确定为新的采样点;
若当前体素网格的随机采样次数达到采样次数阈值,则对属于当前体素网格的下一体素网格的发根点进行随机采样,直至遍历体素网格集合中的所有体素网格。
在一种实现方式中,处理单元1502,用于在当前体素网格中,对属于当前体素网格的发根点进行随机采样时,具体用于执行如下步骤:
获取当前体素网格的各个发根点的随机概率;各个发根点的随机概率与各个发根点对应的虚拟毛发的毛发长度呈正相关;
根据各个发根点的随机概率,对属于当前体素网格的发根点进行随机采样。
在一种实现方式中,处理单元1502,还用于执行如下步骤:
根据属于当前体素网格的发根点的数量,对用于控制当前体素网格中采样点之间距离的采样控制信息进行调整;
处理单元1502,用于若随机采样出的目标发根点与已有采样点之间的距离大于采样控制信息,则将目标发根点确定为新的采样点时,具体用于执行如下步骤:
若随机采样出的目标发根点与已有采样点之间的距离大于调整后的采样控制信息,则将目标发根点确定为新的采样点。
在一种实现方式中,获取单元1501,还用于执行如下步骤:
获取插值虚拟毛发的匹配模拟虚拟毛发,以及匹配模拟虚拟毛发对插值虚拟毛发的影响权重;匹配模拟虚拟毛发是在采样点对应的模拟虚拟毛发中确定的;
处理单元1502,还用于执行如下步骤:
根据匹配模拟虚拟毛发和匹配模拟虚拟毛发的影响权重,控制插值虚拟毛发跟随匹配模拟虚拟毛发运动。
在一种实现方式中,获取单元1501,用于获取插值虚拟毛发的匹配模拟虚拟毛发,以及匹配模拟虚拟毛发对插值虚拟毛发的影响权重时,具体用于执行如下步骤:
基于模拟虚拟毛发的毛发特征与插值虚拟毛发的毛发特征,确定模拟虚拟毛发与插值虚拟毛发之间的匹配度;
根据模拟虚拟毛发与插值虚拟毛发之间的匹配度,从模拟虚拟毛发中选择插值虚拟毛发的匹配模拟虚拟毛发,以及确定匹配模拟虚拟毛发对插值虚拟毛发的影响权重。
在一种实现方式中,任一虚拟毛发的毛发特征包括虚拟毛发对应的发根点的位置信息和虚拟毛发的属性信息,属性信息包括朝向信息和长度信息中的至少一个;获取单元1501,用于基于模拟虚拟毛发的毛发特征与插值虚拟毛发的毛发特征,确定模拟虚拟毛发与插值虚拟毛发之间的匹配度时,具体用于执行如下步骤:
在模拟虚拟毛发中确定插值虚拟毛发的周围模拟虚拟毛发;
根据周围模拟虚拟毛发对应的发根点的位置信息和插值虚拟毛发对应的发根点的位置信息,确定周围模拟虚拟毛发与插值虚拟毛发之间的发根距离信息;
根据周围模拟虚拟毛发的属性信息和插值虚拟毛发的属性信息,确定周围模拟虚拟毛发与插值虚拟毛发之间的属性相似度;
根据发根距离信息和属性相似度,确定周围模拟虚拟毛发与插值虚拟毛发之间的匹配度。
在一种实现方式中,处理单元1502,用于根据模拟虚拟毛发与插值虚拟毛发之间的匹配度,从模拟虚拟毛发中选择插值虚拟毛发的匹配模拟虚拟毛发,以及确定匹配模拟虚拟毛发对插值虚拟毛发的影响权重时,具体用于执行如下步骤:
按照高匹配度优先选择原则,从周围模拟虚拟毛发中选择插值虚拟毛发的匹配模拟虚拟毛发,匹配模拟虚拟毛发的数量为M根,M为大于或等于2的整数;
根据各根匹配模拟虚拟毛发各自对应的匹配度,在各根匹配模拟虚拟毛发的总体匹配度中的占比,确定各根匹配模拟虚拟毛发各自对应的影响权重。
在一种实现方式中,虚拟毛发由多个毛发点以及相邻两个毛发点之间的毛发分段组成;匹配模拟虚拟毛发的数量为M根,M为大于或等于2的整数;处理单元1502,用于根据匹配模拟虚拟毛发和匹配模拟虚拟毛发的影响权重,控制插值虚拟毛发跟随匹配模拟虚拟毛发运动时,具体用于执行如下步骤:
在M根匹配模拟虚拟毛发的每根匹配模拟虚拟毛发中,确定与插值虚拟毛发中的目标毛发点相匹配的匹配毛发分段;一根匹配模拟虚拟毛发中确定一个匹配毛发分段,匹配毛发分段的数量为M个;
根据M根匹配模拟虚拟毛发的影响权重,以及M个匹配毛发分段的位置信息,计算目标毛发点的初始插值位置信息;
根据M根匹配模拟虚拟毛发的影响权重,以及M个匹配毛发分段更新后的位置信息,对目标毛发点的初始插值位置信息进行更新。
在一种实现方式中,任一个匹配毛发分段的位置信息包括匹配毛发分段两端毛发点的位置信息;处理单元1502,用于根据M根匹配模拟虚拟毛发的影响权重,以及M个匹配毛发分段的位置信息,计算目标毛发点的初始插值位置信息时,具体用于执行如下步骤:
根据M个匹配毛发分段中的每个匹配毛发分段的位置信息,计算目标毛发点在相应匹配毛发分段下的插值位置分量信息;
根据M根匹配模拟虚拟毛发的影响权重,对目标毛发点在M个匹配毛发分段下的插值位置分量信息进行加权求和处理,得到目标毛发点的初始插值位置信息。
在一种实现方式中,M个匹配毛发分段中的任一个匹配毛发分段表示为目标毛发分段,目标毛发分段两段的毛发点为第一毛发点和第二毛发点;处理单元1502,用于根据M个匹配毛发分段中的每个匹配毛发分段的位置信息,计算目标毛发点在相应匹配毛发分段下的插值位置分量信息时,具体用于执行如下步骤:
将目标毛发点投影至目标毛发分段中,确定第一毛发点与目标毛发点的投影点之间的第一距离,以及第二毛发点与目标毛发点的投影点之间的第二距离;
根据第一距离在目标毛发分段的长度中的占比,确定第一毛发点对应的第一权重;以及,根据第二距离在目标毛发分段的长度中的占比,确定第二毛发点对应的第二权重;
根据第一权重和第二权重,对第一毛发点的位置信息和第二毛发点的位置信息进行加权求和处理,得到目标毛发点在目标毛发分段下的插值位置分量信息。
在一种实现方式中,虚拟毛发中的每个毛发点分别对应各自的原始位置信息;处理单元1502,用于根据M根匹配模拟虚拟毛发的影响权重,以及M个匹配毛发分段更新后的位置信息,对目标毛发点的初始插值位置信息进行更新时,具体用于执行如下步骤:
根据目标毛发点的初始插值位置信息和目标毛发点的原始位置信息之间的差异,确定目标毛发点的偏移信息;
根据M根匹配模拟虚拟毛发的影响权重,以及M个匹配毛发分段更新后的位置信息,计算目标毛发点的参考插值位置信息;
根据所述M个匹配毛发分段更新后的位置信息,与M个匹配毛发分段更新前的位置信息之间的差异,确定位置变换信息;
根据位置变换信息,对目标毛发点的偏移信息进行修正处理,得到修正后的偏移信息;
对目标毛发点的参考插值位置信息和修正后的偏移信息进行求和处理,得到目标毛发点更新后的插值位置信息。
在一种实现方式中,任一个匹配毛发分段的位置信息包括匹配毛发分段两端毛发点的位置信息;处理单元1502,用于根据M个匹配毛发分段更新后的位置信息,与M个匹配毛发分段更新前的位置信息之间的差异,确定位置变换信息时,具体用于执行如下步骤:
计算每根匹配毛发分段更新前的两端毛发点的第一位置信息变化量,以及计算每根匹配毛发分段更新后的两端毛发点的第二位置信息变化量;
根据每根匹配毛发分段的第一位置信息变化量与第二位置信息变化量之间的差异,确定对应匹配毛发分段的变换矩阵;
将M根匹配毛发分段中参考毛发分段的变换矩阵,确定为位置变换信息;其中,参考毛发分段是M根匹配模拟虚拟毛发中影响权重最大的匹配模拟虚拟毛发中的匹配毛发分段。
根据本申请的另一个实施例,图15所示的业务处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,业务处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图3或图8所示的部分或全部方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图15中所示的业务处理装置,以及来实现本申请实施例的业务处理方法。计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于上述计算设备中,并在其中运行。
本申请实施例中,虚拟毛发的采样被转换为虚拟毛发对应的发根点采样,可以对业务中业务角色的发根点云进行采样,得到采样点,可以将采样点对应的虚拟毛发作为模拟虚拟毛发,将发根点云中除采样点外的其他点对应的虚拟毛发作为插值虚拟毛发,模拟虚拟毛发可以在业务的执行过程中采用物理仿真策略进行动态效果模拟,模拟虚拟毛发可以用于在业务的执行过程中控制插值虚拟毛发跟随模拟虚拟毛发运动;也就是说,可以从虚拟毛发中采样出一部分虚拟毛发(模拟虚拟毛发)采用物理仿真策略进行动态效果模拟,剩下的虚拟毛发(插值虚拟毛发)跟随模拟虚拟毛发进行运动,无需采用物理仿真策略对全部的虚拟毛发进行动态效果模拟,这样可以提升虚拟毛发动态效果模拟的效率。并且,在发根点云的采样过程中,通过采样控制信息控制采样点之间的距离,可以使得采样点均匀地分布于发根点云中,从而采样点可以较为准确地反映原始的发根点云,可以从发根点云中合理地采样出模拟虚拟毛发对应的发根点,也就是说,可以从虚拟毛发中合理地采样模拟虚拟毛发,这样可以有效提升虚拟毛发动态效果模拟的真实性。
基于上述方法以及装置实施例,本申请实施例提供了一种计算机设备。请参见图16,图16是本申请实施例提供的一种计算机设备的结构示意图。图16所示的计算机设备至少包括处理器1601、输入接口1602、输出接口1603以及计算机可读存储介质1604。其中,处理器1601、输入接口1602、输出接口1603以及计算机可读存储介质1604可通过总线或其他方式连接。
计算机可读存储介质1604可以存储在计算机设备的存储器中,计算机可读存储介质1604用于存储计算机程序,计算机程序包括计算机指令,处理器1601用于执行计算机可读存储介质1604存储的程序指令。处理器1601(或称CPU(Central Processing Unit,中央处理器))是计算机设备的计算核心以及控制核心,其适于实现一条或多条计算机指令,具体适于加载并执行一条或多条计算机指令从而实现相应方法流程或相应功能。
本申请实施例还提供了一种计算机可读存储介质(Memory),计算机可读存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了计算机设备的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或多条的计算机指令,这些计算机指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(Non-VolatileMemory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机可读存储介质。
在一些实施例中,计算机设备可以是终端或服务器,可由处理器1601加载并执行计算机可读存储介质1604中存放的一条或多条计算机指令,以实现上述有关图3或图8所示的业务处理方法的相应步骤。具体实现中,计算机可读存储介质1604中的计算机指令由处理器1601加载并执行如下步骤:
获取业务中业务角色的发根点云,发根点云包括业务角色的多根虚拟毛发对应的发根点;
获取采样控制信息,采样控制信息用于在发根点云的采样过程中控制采样点之间的距离;
根据采样控制信息,对发根点云进行采样处理,得到采样点;
将采样点对应的虚拟毛发确定为模拟虚拟毛发,将发根点云中除采样点外的其他点对应的虚拟毛发确定为插值虚拟毛发;
其中,模拟虚拟毛发在业务的执行过程中采用物理仿真策略进行动态效果模拟,模拟虚拟毛发用于在业务的执行过程中控制插值虚拟毛发跟随模拟虚拟毛发运动。
在一种实现方式中,计算机可读存储介质1604中的计算机指令由处理器1601加载并执行根据所述控制信息,对发根点云进行采样处理,得到采样点时,具体用于执行如下步骤:
根据采样控制信息和发根点云的位置范围信息,生成体素网格集合;采样控制信息用于确定体素网格集合中每个体素网格的尺寸,发根点云的位置范围信息用于确定体素网格集合的包围范围;
建立发根点云与体素网格集合之间的映射,映射用于指示发根点云中的发根点与体素网格集合中的体素网格之间的归属关系;
在每个体素网格中,根据采样控制信息,对属于体素网格的发根点进行采样,得到体素网格的采样点。
在一种实现方式中,体素网格集合中的各个体素网格按照采样顺序依次进行采样;计算机可读存储介质1604中的计算机指令由处理器1601加载并执行在每个体素网格中,根据采样控制信息,对属于体素网格的发根点进行采样,得到体素网格的采样点时,具体用于执行如下步骤:
在当前体素网格中,对属于当前体素网格的发根点进行随机采样;
若随机采样出的目标发根点与已有采样点之间的距离大于采样控制信息,则将目标发根点确定为新的采样点;
若当前体素网格的随机采样次数达到采样次数阈值,则对属于当前体素网格的下一体素网格的发根点进行随机采样,直至遍历体素网格集合中的所有体素网格。
在一种实现方式中,计算机可读存储介质1604中的计算机指令由处理器1601加载并执行在当前体素网格中,对属于当前体素网格的发根点进行随机采样时,具体用于执行如下步骤:
获取当前体素网格的各个发根点的随机概率;各个发根点的随机概率与各个发根点对应的虚拟毛发的毛发长度呈正相关;
根据各个发根点的随机概率,对属于当前体素网格的发根点进行随机采样。
在一种实现方式中,计算机可读存储介质1604中的计算机指令由处理器1601加载并还用于执行如下步骤:
根据属于当前体素网格的发根点的数量,对用于控制当前体素网格中采样点之间距离的采样控制信息进行调整;
计算机可读存储介质1604中的计算机指令由处理器1601加载并执行若随机采样出的目标发根点与已有采样点之间的距离大于采样控制信息,则将目标发根点确定为新的采样点时,具体用于执行如下步骤:
若随机采样出的目标发根点与已有采样点之间的距离大于调整后的采样控制信息,则将目标发根点确定为新的采样点。
在一种实现方式中,计算机可读存储介质1604中的计算机指令由处理器1601加载并还用于执行如下步骤:
获取插值虚拟毛发的匹配模拟虚拟毛发,以及匹配模拟虚拟毛发对插值虚拟毛发的影响权重;匹配模拟虚拟毛发是在采样点对应的模拟虚拟毛发中确定的;
根据匹配模拟虚拟毛发和匹配模拟虚拟毛发的影响权重,控制插值虚拟毛发跟随匹配模拟虚拟毛发运动。
在一种实现方式中,计算机可读存储介质1604中的计算机指令由处理器1601加载并执行获取插值虚拟毛发的匹配模拟虚拟毛发,以及匹配模拟虚拟毛发对插值虚拟毛发的影响权重时,具体用于执行如下步骤:
基于模拟虚拟毛发的毛发特征与插值虚拟毛发的毛发特征,确定模拟虚拟毛发与插值虚拟毛发之间的匹配度;
根据模拟虚拟毛发与插值虚拟毛发之间的匹配度,从模拟虚拟毛发中选择插值虚拟毛发的匹配模拟虚拟毛发,以及确定匹配模拟虚拟毛发对插值虚拟毛发的影响权重。
在一种实现方式中,任一虚拟毛发的毛发特征包括虚拟毛发对应的发根点的位置信息和虚拟毛发的属性信息,属性信息包括朝向信息和长度信息中的至少一个;计算机可读存储介质1604中的计算机指令由处理器1601加载并执行基于模拟虚拟毛发的毛发特征与插值虚拟毛发的毛发特征,确定模拟虚拟毛发与插值虚拟毛发之间的匹配度时,具体用于执行如下步骤:
在模拟虚拟毛发中确定插值虚拟毛发的周围模拟虚拟毛发;
根据周围模拟虚拟毛发对应的发根点的位置信息和插值虚拟毛发对应的发根点的位置信息,确定周围模拟虚拟毛发与插值虚拟毛发之间的发根距离信息;
根据周围模拟虚拟毛发的属性信息和插值虚拟毛发的属性信息,确定周围模拟虚拟毛发与插值虚拟毛发之间的属性相似度;
根据发根距离信息和属性相似度,确定周围模拟虚拟毛发与插值虚拟毛发之间的匹配度。
在一种实现方式中,计算机可读存储介质1604中的计算机指令由处理器1601加载并执行根据模拟虚拟毛发与插值虚拟毛发之间的匹配度,从模拟虚拟毛发中选择插值虚拟毛发的匹配模拟虚拟毛发,以及确定匹配模拟虚拟毛发对插值虚拟毛发的影响权重时,具体用于执行如下步骤:
按照高匹配度优先选择原则,从周围模拟虚拟毛发中选择插值虚拟毛发的匹配模拟虚拟毛发,匹配模拟虚拟毛发的数量为M根,M为大于或等于2的整数;
根据各根匹配模拟虚拟毛发各自对应的匹配度,在各根匹配模拟虚拟毛发的总体匹配度中的占比,确定各根匹配模拟虚拟毛发各自对应的影响权重。
在一种实现方式中,虚拟毛发由多个毛发点以及相邻两个毛发点之间的毛发分段组成;匹配模拟虚拟毛发的数量为M根,M为大于或等于2的整数;计算机可读存储介质1604中的计算机指令由处理器1601加载并执行根据匹配模拟虚拟毛发和匹配模拟虚拟毛发的影响权重,控制插值虚拟毛发跟随匹配模拟虚拟毛发运动时,具体用于执行如下步骤:
在M根匹配模拟虚拟毛发的每根匹配模拟虚拟毛发中,确定与插值虚拟毛发中的目标毛发点相匹配的匹配毛发分段;一根匹配模拟虚拟毛发中确定一个匹配毛发分段,匹配毛发分段的数量为M个;
根据M根匹配模拟虚拟毛发的影响权重,以及M个匹配毛发分段的位置信息,计算目标毛发点的初始插值位置信息;
根据M根匹配模拟虚拟毛发的影响权重,以及M个匹配毛发分段更新后的位置信息,对目标毛发点的初始插值位置信息进行更新。
在一种实现方式中,任一个匹配毛发分段的位置信息包括匹配毛发分段两端毛发点的位置信息;计算机可读存储介质1604中的计算机指令由处理器1601加载并执行根据M根匹配模拟虚拟毛发的影响权重,以及M个匹配毛发分段的位置信息,计算目标毛发点的初始插值位置信息时,具体用于执行如下步骤:
根据M个匹配毛发分段中的每个匹配毛发分段的位置信息,计算目标毛发点在相应匹配毛发分段下的插值位置分量信息;
根据M根匹配模拟虚拟毛发的影响权重,对目标毛发点在M个匹配毛发分段下的插值位置分量信息进行加权求和处理,得到目标毛发点的初始插值位置信息。
在一种实现方式中,M个匹配毛发分段中的任一个匹配毛发分段表示为目标毛发分段,目标毛发分段两段的毛发点为第一毛发点和第二毛发点;计算机可读存储介质1604中的计算机指令由处理器1601加载并执行根据M个匹配毛发分段中的每个匹配毛发分段的位置信息,计算目标毛发点在相应匹配毛发分段下的插值位置分量信息时,具体用于执行如下步骤:
将目标毛发点投影至目标毛发分段中,确定第一毛发点与目标毛发点的投影点之间的第一距离,以及第二毛发点与目标毛发点的投影点之间的第二距离;
根据第一距离在目标毛发分段的长度中的占比,确定第一毛发点对应的第一权重;以及,根据第二距离在目标毛发分段的长度中的占比,确定第二毛发点对应的第二权重;
根据第一权重和第二权重,对第一毛发点的位置信息和第二毛发点的位置信息进行加权求和处理,得到目标毛发点在目标毛发分段下的插值位置分量信息。
在一种实现方式中,虚拟毛发中的每个毛发点分别对应各自的原始位置信息;计算机可读存储介质1604中的计算机指令由处理器1601加载并执行根据M根匹配模拟虚拟毛发的影响权重,以及M个匹配毛发分段更新后的位置信息,对目标毛发点的初始插值位置信息进行更新时,具体用于执行如下步骤:
根据目标毛发点的初始插值位置信息和目标毛发点的原始位置信息之间的差异,确定目标毛发点的偏移信息;
根据M根匹配模拟虚拟毛发的影响权重,以及M个匹配毛发分段更新后的位置信息,计算目标毛发点的参考插值位置信息;
根据所述M个匹配毛发分段更新后的位置信息,与M个匹配毛发分段更新前的位置信息之间的差异,确定位置变换信息;
根据位置变换信息,对目标毛发点的偏移信息进行修正处理,得到修正后的偏移信息;
对目标毛发点的参考插值位置信息和修正后的偏移信息进行求和处理,得到目标毛发点更新后的插值位置信息。
在一种实现方式中,任一个匹配毛发分段的位置信息包括匹配毛发分段两端毛发点的位置信息;计算机可读存储介质1604中的计算机指令由处理器1601加载并执行根据M个匹配毛发分段更新后的位置信息,与M个匹配毛发分段更新前的位置信息之间的差异,确定位置变换信息时,具体用于执行如下步骤:
计算每根匹配毛发分段更新前的两端毛发点的第一位置信息变化量,以及计算每根匹配毛发分段更新后的两端毛发点的第二位置信息变化量;
根据每根匹配毛发分段的第一位置信息变化量与第二位置信息变化量之间的差异,确定对应匹配毛发分段的变换矩阵;
将M根匹配毛发分段中参考毛发分段的变换矩阵,确定为位置变换信息;其中,参考毛发分段是M根匹配模拟虚拟毛发中影响权重最大的匹配模拟虚拟毛发中的匹配毛发分段。
本申请实施例中,虚拟毛发的采样被转换为虚拟毛发对应的发根点采样,可以对业务中业务角色的发根点云进行采样,得到采样点,可以将采样点对应的虚拟毛发作为模拟虚拟毛发,将发根点云中除采样点外的其他点对应的虚拟毛发作为插值虚拟毛发,模拟虚拟毛发可以在业务的执行过程中采用物理仿真策略进行动态效果模拟,模拟虚拟毛发可以用于在业务的执行过程中控制插值虚拟毛发跟随模拟虚拟毛发运动;也就是说,可以从虚拟毛发中采样出一部分虚拟毛发(模拟虚拟毛发)采用物理仿真策略进行动态效果模拟,剩下的虚拟毛发(插值虚拟毛发)跟随模拟虚拟毛发进行运动,无需采用物理仿真策略对全部的虚拟毛发进行动态效果模拟,这样可以提升虚拟毛发动态效果模拟的效率。并且,在发根点云的采样过程中,通过采样控制信息控制采样点之间的距离,可以使得采样点均匀地分布于发根点云中,从而采样点可以较为准确地反映原始的发根点云,可以从发根点云中合理地采样出模拟虚拟毛发对应的发根点,也就是说,可以从虚拟毛发中合理地采样模拟虚拟毛发,这样可以有效提升虚拟毛发动态效果模拟的真实性。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选方式中提供的业务处理方法。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (16)

1.一种业务处理方法,其特征在于,包括:
获取业务中业务角色的发根点云,所述发根点云包括所述业务角色的多根虚拟毛发对应的发根点;
获取采样控制信息,所述采样控制信息用于在所述发根点云的采样过程中控制采样点之间的距离;
根据所述采样控制信息和所述发根点云的位置范围信息,生成体素网格集合;所述采样控制信息用于确定所述体素网格集合中每个体素网格的尺寸,所述发根点云的位置范围信息用于确定所述体素网格集合的包围范围;
建立所述发根点云与所述体素网格集合之间的映射,所述映射用于指示所述发根点云中的发根点与所述体素网格集合中的体素网格之间的归属关系;
在每个所述体素网格中,根据所述采样控制信息,对属于所述体素网格的发根点进行采样,得到所述体素网格的采样点;所述采样控制信息用于在每个所述体素网格的采样过程中控制采样点之间的距离;
将所述采样点对应的虚拟毛发确定为模拟虚拟毛发,将所述发根点云中除所述采样点外的其他点对应的虚拟毛发确定为插值虚拟毛发;
其中,所述模拟虚拟毛发在所述业务的执行过程中采用物理仿真策略进行动态效果模拟,所述模拟虚拟毛发用于在所述业务的执行过程中控制所述插值虚拟毛发跟随所述模拟虚拟毛发运动。
2.如权利要求1所述的方法,其特征在于,所述体素网格集合中的各个体素网格按照采样顺序依次进行采样;所述在每个所述体素网格中,根据所述采样控制信息,对属于所述体素网格的发根点进行采样,得到所述体素网格的采样点,包括:
在当前体素网格中,对属于所述当前体素网格的发根点进行随机采样;
若随机采样出的目标发根点与已有采样点之间的距离大于所述采样控制信息,则将所述目标发根点确定为新的采样点;
若所述当前体素网格的随机采样次数达到采样次数阈值,则对属于所述当前体素网格的下一体素网格的发根点进行随机采样,直至遍历所述体素网格集合中的所有体素网格。
3.如权利要求2所述的方法,其特征在于,所述在当前体素网格中,对属于所述当前体素网格的发根点进行随机采样,包括:
获取所述当前体素网格的各个发根点的随机概率;所述各个发根点的随机概率与所述各个发根点对应的虚拟毛发的毛发长度呈正相关;
根据所述各个发根点的随机概率,对属于所述当前体素网格的发根点进行随机采样。
4.如权利要求2所述的方法,其特征在于,所述方法还包括:
根据属于所述当前体素网格的发根点的数量,对用于控制所述当前体素网格中采样点之间距离的所述采样控制信息进行调整;
所述若随机采样出的目标发根点与已有采样点之间的距离大于所述采样控制信息,则将所述目标发根点确定为新的采样点,包括:
若随机采样出的目标发根点与已有采样点之间的距离大于调整后的所述采样控制信息,则将所述目标发根点确定为新的采样点。
5.如权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
获取所述插值虚拟毛发的匹配模拟虚拟毛发,以及所述匹配模拟虚拟毛发对所述插值虚拟毛发的影响权重;所述匹配模拟虚拟毛发是在所述采样点对应的模拟虚拟毛发中确定的;
根据所述匹配模拟虚拟毛发和所述匹配模拟虚拟毛发的影响权重,控制所述插值虚拟毛发跟随所述匹配模拟虚拟毛发运动。
6.如权利要求5所述的方法,其特征在于,所述获取所述插值虚拟毛发的匹配模拟虚拟毛发,以及所述匹配模拟虚拟毛发对所述插值虚拟毛发的影响权重,包括:
基于所述模拟虚拟毛发的毛发特征与所述插值虚拟毛发的毛发特征,确定所述模拟虚拟毛发与所述插值虚拟毛发之间的匹配度;
根据所述模拟虚拟毛发与所述插值虚拟毛发之间的匹配度,从所述模拟虚拟毛发中选择所述插值虚拟毛发的匹配模拟虚拟毛发,以及确定所述匹配模拟虚拟毛发对所述插值虚拟毛发的影响权重。
7.如权利要求6所述的方法,其特征在于,任一所述虚拟毛发的毛发特征包括所述虚拟毛发对应的发根点的位置信息和所述虚拟毛发的属性信息,所述属性信息包括朝向信息和长度信息中的至少一个;所述基于所述模拟虚拟毛发的毛发特征与所述插值虚拟毛发的毛发特征,确定所述模拟虚拟毛发与所述插值虚拟毛发之间的匹配度,包括:
在所述模拟虚拟毛发中确定所述插值虚拟毛发的周围模拟虚拟毛发;
根据所述周围模拟虚拟毛发对应的发根点的位置信息和所述插值虚拟毛发对应的发根点的位置信息,确定所述周围模拟虚拟毛发与所述插值虚拟毛发之间的发根距离信息;
根据所述周围模拟虚拟毛发的属性信息和所述插值虚拟毛发的属性信息,确定所述周围模拟虚拟毛发与所述插值虚拟毛发之间的属性相似度;
根据所述发根距离信息和所述属性相似度,确定所述周围模拟虚拟毛发与所述插值虚拟毛发之间的匹配度。
8.如权利要求7所述的方法,其特征在于,所述根据所述模拟虚拟毛发与所述插值虚拟毛发之间的匹配度,从所述模拟虚拟毛发中选择所述插值虚拟毛发的匹配模拟虚拟毛发,以及确定所述匹配模拟虚拟毛发对所述插值虚拟毛发的影响权重,包括:
按照高匹配度优先选择原则,从所述周围模拟虚拟毛发中选择所述插值虚拟毛发的匹配模拟虚拟毛发,所述匹配模拟虚拟毛发的数量为M根,M为大于或等于2的整数;
根据各根匹配模拟虚拟毛发各自对应的匹配度,在所述各根匹配模拟虚拟毛发的总体匹配度中的占比,确定所述各根匹配模拟虚拟毛发各自对应的影响权重。
9.如权利要求5所述的方法,其特征在于,所述虚拟毛发由多个毛发点以及相邻两个毛发点之间的毛发分段组成;所述匹配模拟虚拟毛发的数量为M根,M为大于或等于2的整数;所述根据所述匹配模拟虚拟毛发和所述匹配模拟虚拟毛发的影响权重,控制所述插值虚拟毛发跟随所述匹配模拟虚拟毛发运动,包括:
在M根匹配模拟虚拟毛发的每根匹配模拟虚拟毛发中,确定与所述插值虚拟毛发中的目标毛发点相匹配的匹配毛发分段;一根所述匹配模拟虚拟毛发中确定一个所述匹配毛发分段,所述匹配毛发分段的数量为M个;
根据所述M根匹配模拟虚拟毛发的影响权重,以及M个匹配毛发分段的位置信息,计算所述目标毛发点的初始插值位置信息;
根据所述M根匹配模拟虚拟毛发的影响权重,以及所述M个匹配毛发分段更新后的位置信息,对所述目标毛发点的初始插值位置信息进行更新。
10.如权利要求9所述的方法,其特征在于,任一个所述匹配毛发分段的位置信息包括所述匹配毛发分段两端毛发点的位置信息;所述根据所述M根匹配模拟虚拟毛发的影响权重,以及M个匹配毛发分段的位置信息,计算所述目标毛发点的初始插值位置信息,包括:
根据所述M个匹配毛发分段中的每个匹配毛发分段的位置信息,计算所述目标毛发点在相应匹配毛发分段下的插值位置分量信息;
根据所述M根匹配模拟虚拟毛发的影响权重,对所述目标毛发点在所述M个匹配毛发分段下的插值位置分量信息进行加权求和处理,得到所述目标毛发点的初始插值位置信息。
11.如权利要求10所述的方法,其特征在于,所述M个匹配毛发分段中的任一个匹配毛发分段表示为目标毛发分段,所述目标毛发分段两段的毛发点为第一毛发点和第二毛发点;所述根据所述M个匹配毛发分段中的每个匹配毛发分段的位置信息,计算所述目标毛发点在相应匹配毛发分段下的插值位置分量信息,包括:
将所述目标毛发点投影至所述目标毛发分段中,确定所述第一毛发点与所述目标毛发点的投影点之间的第一距离,以及所述第二毛发点与所述目标毛发点的投影点之间的第二距离;
根据所述第一距离在所述目标毛发分段的长度中的占比,确定所述第一毛发点对应的第一权重;以及,根据所述第二距离在所述目标毛发分段的长度中的占比,确定所述第二毛发点对应的第二权重;
根据所述第一权重和所述第二权重,对所述第一毛发点的位置信息和所述第二毛发点的位置信息进行加权求和处理,得到所述目标毛发点在所述目标毛发分段下的插值位置分量信息。
12.如权利要求9所述的方法,其特征在于,所述虚拟毛发中的每个毛发点分别对应各自的原始位置信息;所述根据所述M根匹配模拟虚拟毛发的影响权重,以及所述M个匹配毛发分段更新后的位置信息,对所述目标毛发点的初始插值位置信息进行更新,包括:
根据所述目标毛发点的初始插值位置信息和所述目标毛发点的原始位置信息之间的差异,确定所述目标毛发点的偏移信息;
根据所述M根匹配模拟虚拟毛发的影响权重,以及所述M个匹配毛发分段更新后的位置信息,计算所述目标毛发点的参考插值位置信息;
根据所述M个匹配毛发分段更新后的位置信息,与所述M个匹配毛发分段更新前的位置信息之间的差异,确定位置变换信息;
根据所述位置变换信息,对所述目标毛发点的偏移信息进行修正处理,得到修正后的偏移信息;
对所述目标毛发点的参考插值位置信息和所述修正后的偏移信息进行求和处理,得到所述目标毛发点更新后的插值位置信息。
13.如权利要求12所述的方法,其特征在于,任一个所述匹配毛发分段的位置信息包括所述匹配毛发分段两端毛发点的位置信息;所述根据所述M个匹配毛发分段更新后的位置信息,与所述M个匹配毛发分段更新前的位置信息之间的差异,确定位置变换信息,包括:
计算每根匹配毛发分段更新前的两端毛发点的第一位置信息变化量,以及计算每根匹配毛发分段更新后的两端毛发点的第二位置信息变化量;
根据每根匹配毛发分段的第一位置信息变化量与第二位置信息变化量之间的差异,确定对应匹配毛发分段的变换矩阵;
将所述M根匹配毛发分段中参考毛发分段的变换矩阵,确定为所述位置变换信息;其中,所述参考毛发分段是所述M根匹配模拟虚拟毛发中影响权重最大的匹配模拟虚拟毛发中的匹配毛发分段。
14.一种业务处理装置,其特征在于,包括:
获取单元,用于获取业务中业务角色的发根点云,所述发根点云包括所述业务角色的多根虚拟毛发对应的发根点;
所述获取单元,还用于获取采样控制信息,所述采样控制信息用于在所述发根点云的采样过程中控制采样点之间的距离;
处理单元,用于
根据所述采样控制信息和所述发根点云的位置范围信息,生成体素网格集合;所述采样控制信息用于确定所述体素网格集合中每个体素网格的尺寸,所述发根点云的位置范围信息用于确定所述体素网格集合的包围范围;建立所述发根点云与所述体素网格集合之间的映射,所述映射用于指示所述发根点云中的发根点与所述体素网格集合中的体素网格之间的归属关系;在每个所述体素网格中,根据所述采样控制信息,对属于所述体素网格的发根点进行采样,得到所述体素网格的采样点;所述采样控制信息用于在每个所述体素网格的采样过程中控制采样点之间的距离;
所述处理单元,还用于将所述采样点对应的虚拟毛发确定为模拟虚拟毛发,将所述发根点云中除所述采样点外的其他点对应的虚拟毛发确定为插值虚拟毛发;
其中,所述模拟虚拟毛发在所述业务的执行过程中采用物理仿真策略进行动态效果模拟,所述模拟虚拟毛发用于在所述业务的执行过程中控制所述插值虚拟毛发跟随所述模拟虚拟毛发运动。
15.一种计算机设备,其特征在于,包括:
处理器,适于实现计算机程序;
计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1-13任一项所述的业务处理方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于由处理器加载并执行如权利要求1-13任一项所述的业务处理方法。
CN202310439600.7A 2023-04-23 2023-04-23 一种业务处理方法、装置及计算机设备、存储介质 Active CN116152405B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310439600.7A CN116152405B (zh) 2023-04-23 2023-04-23 一种业务处理方法、装置及计算机设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310439600.7A CN116152405B (zh) 2023-04-23 2023-04-23 一种业务处理方法、装置及计算机设备、存储介质

Publications (2)

Publication Number Publication Date
CN116152405A CN116152405A (zh) 2023-05-23
CN116152405B true CN116152405B (zh) 2023-07-07

Family

ID=86354721

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310439600.7A Active CN116152405B (zh) 2023-04-23 2023-04-23 一种业务处理方法、装置及计算机设备、存储介质

Country Status (1)

Country Link
CN (1) CN116152405B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114782605A (zh) * 2022-05-06 2022-07-22 网易(杭州)网络有限公司 毛发虚拟模型的渲染方法、装置、计算机设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7468730B2 (en) * 2004-03-25 2008-12-23 Pixar Volumetric hair simulation
CN102339475B (zh) * 2011-10-26 2014-01-29 浙江大学 基于表面网格的快速毛发建模方法
CN103035030B (zh) * 2012-12-10 2015-06-17 西北大学 头发模型建模方法
CN109685876B (zh) * 2018-12-21 2020-11-03 北京达佳互联信息技术有限公司 毛发渲染方法、装置、电子设备及存储介质
CN111583367B (zh) * 2020-05-22 2023-02-10 构范(厦门)信息技术有限公司 一种头发模拟方法及系统
CN115641375B (zh) * 2022-12-07 2023-04-11 腾讯科技(深圳)有限公司 虚拟对象的毛发处理方法、装置、设备及存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114782605A (zh) * 2022-05-06 2022-07-22 网易(杭州)网络有限公司 毛发虚拟模型的渲染方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN116152405A (zh) 2023-05-23

Similar Documents

Publication Publication Date Title
US11270497B2 (en) Object loading method and apparatus, storage medium, and electronic device
US20210287415A1 (en) Virtual object display method and apparatus, electronic device, and storage medium
CN112241993B (zh) 游戏图像处理方法、装置及电子设备
CN110838162A (zh) 植被渲染方法及装置、存储介质及电子设备
JP2006094494A (ja) グラフィックス処理装置を使用した加速ビデオ符号化
CN110047119B (zh) 包含动态背景的动画生成方法、装置及电子设备
WO2023160054A1 (zh) 一种图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品
US20230290043A1 (en) Picture generation method and apparatus, device, and medium
WO2022127241A1 (zh) 虚拟球体的形变控制方法、装置、程序和可读介质
CN111773688B (zh) 柔性对象的渲染方法和装置、存储介质、电子装置
CN110930492B (zh) 模型渲染的方法、装置、计算机可读介质及电子设备
CN111282272B (zh) 信息处理方法、计算机可读介质及电子设备
CN115908109A (zh) 人脸图像风格化模型训练方法、设备和存储介质
CN113470169B (zh) 游戏场景生成方法、装置、计算机设备及可读存储介质
CN112231020B (zh) 模型切换方法和装置、电子设备和存储介质
CN116115995A (zh) 图像渲染处理方法、装置及电子设备
CN116152419B (zh) 数据处理方法、装置、设备及存储介质
CN116152405B (zh) 一种业务处理方法、装置及计算机设备、存储介质
US20210264659A1 (en) Learning hybrid (surface-based and volume-based) shape representation
CN115953524B (zh) 一种数据处理方法、装置、计算机设备及存储介质
CN111402369A (zh) 互动广告的处理方法、装置、终端设备及存储介质
US20220008826A1 (en) Strand Simulation in Multiple Levels
CN115228083A (zh) 一种资源渲染方法及装置
CN103782324A (zh) 使用纹理坐标导数的加速的纹理查找
WO2023165198A1 (zh) 图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品

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: 40086445

Country of ref document: HK