CN118229852A - 头发动效的处理方法及装置、电子设备、存储介质 - Google Patents

头发动效的处理方法及装置、电子设备、存储介质 Download PDF

Info

Publication number
CN118229852A
CN118229852A CN202211649178.XA CN202211649178A CN118229852A CN 118229852 A CN118229852 A CN 118229852A CN 202211649178 A CN202211649178 A CN 202211649178A CN 118229852 A CN118229852 A CN 118229852A
Authority
CN
China
Prior art keywords
line segment
hair
target
string
animation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211649178.XA
Other languages
English (en)
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.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network 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 Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202211649178.XA priority Critical patent/CN118229852A/zh
Publication of CN118229852A publication Critical patent/CN118229852A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

本申请提供了一种头发动效的处理方法及装置、电子设备、存储介质,其中,方法包括:获取目标头发模型的各个发丝插片对应的线段串,线段串由多条线段连接而成,线段串中存储用于重构对应发丝插片的重构数据;对线段串进行运动模拟,得到线段串的动画信息;根据重构数据和动画信息构建线段串对应的目标发丝插片,使目标发丝插片具有对应的动画,得到目标头发模型的动态效果;本申请实施例通过对目标头发模型的各个发丝插片对应的线段串进行运动模拟,再根据线段串重构出目标发丝插片,使得目标发丝插片可以呈现与对应的线段串相同的动画,实现了基于发丝级别的动效模拟,从而提高了头发动效的真实性。

Description

头发动效的处理方法及装置、电子设备、存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及头发动效的处理方法及装置、电子设备、存储介质。
背景技术
随着游戏、动画品质要求的提升,为了使画面更加真实,需要对虚拟人物头发动态效果进行模拟。
现有技术在处理头发动态效果时,一般采用软骨驱动的方式或套用布料模拟的方式。其中,软骨驱动的方式是将头发面片绑定头发骨骼,通过处理器CPU驱动模拟头发的骨骼的运动,再带动头发面片的运动,产生动态效果。套用布料模拟的方式是用类似刷布料的方式处理头发,将头发用布料的物理模型进行驱动。
但是,软骨驱动方式中由于头发面片数量多,而头发骨骼数量较少,无法有较细粒度的模拟,真实性较差。若增大头发骨骼数量,不仅会增大人工绑定骨骼的工作量,还会增大CPU模拟成本。而套用布料模拟的方式由于头发的模拟属性和布料有一定差异,比如,布料模拟中会涉及到横向约束,而头发基本不存在横向约束,因此,套用布料模拟的方式来模拟头发的动态效果也不够真实。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
鉴于上述问题,提出了本申请以便提供克服上述问题或者至少部分地解决上述问题的头发动效的处理方法及装置、电子设备、存储介质,包括:
一种头发动效的处理方法,所述方法包括:
获取目标头发模型的各个发丝插片对应的线段串,所述线段串由多条线段连接而成,所述线段串中存储用于重构对应发丝插片的重构数据;
对所述线段串进行运动模拟,得到所述线段串的动画信息;
根据所述重构数据和所述动画信息构建所述线段串对应的目标发丝插片,使所述目标发丝插片具有对应的动画,得到所述目标头发模型的动态效果。
一种头发动效的处理装置,所述装置包括:
数据获取模块,用于获取目标头发模型的各个发丝插片对应的线段串,所述线段串由多条线段连接而成,所述线段串中存储用于重构对应发丝插片的重构数据;
运动模拟模块,用于对所述线段串进行运动模拟,得到所述线段串的动画信息;
数据重构模块,用于根据所述重构数据和所述动画信息构建所述线段串对应的目标发丝插片,使所述目标发丝插片具有对应的动画,得到所述目标头发模型的动态效果。
一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的头发动效的处理方法。
一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的头发动效的处理方法。
本申请具有以下优点:
在本申请实施例中,通过获取目标头发模型的各个发丝插片对应的线段串,线段串由多条线段连接而成,线段串中存储用于重构对应发丝插片的重构数据;对线段串进行运动模拟,得到线段串的动画信息;根据重构数据和动画信息构建线段串对应的目标发丝插片,使目标发丝插片具有对应的动画,得到目标头发模型的动态效果;本申请实施例通过对目标头发模型的各个发丝插片对应的线段串进行运动模拟,再根据线段串重构出目标发丝插片,使得目标发丝插片可以呈现与对应的线段串相同的动画,即每个目标发丝插片都具有相对独立的运动状态,实现了基于发丝级别的动效模拟,从而提高了头发动效的真实性。
附图说明
为了更清楚地说明本申请的技术方案,下面将对本申请的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的一种头发动效的处理方法的步骤流程图;
图2为本申请一示例中基于发丝插片得到的目标头发模型的示意图;
图3为本申请一示例中将图2所示的目标头发模型中的发丝插片转换为对应的线段串后得到的头发模型示意图;
图4为本申请一示例中发丝插片的示意图;
图5为根据图4所示的发丝插片得到的线段串的示意图;
图6为UV空间中的发丝插片的示意图;
图7为UV空间中的线段串的示意图;
图8为图3所示的头发模型增加线段顶点的权重值后的头发模型示意图;
图9为本申请一示例中的目标头发模型的动态效果示意图;
图10为现有技术渲染后的头发模型示意图;
图11为本申请一示例渲染后的头发模型示意图;
图12为本申请实施例的一种头发动效的处理装置的结构框图;
图13为本申请实施例的一种电子设备的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有技术在处理头发动态效果时,一般采用软骨驱动的方式或套用布料模拟的方式。其中,软骨驱动方式常常基于骨骼数量限制和CPU模拟成本,无法有较细粒度的模拟。而套用布料模拟的方式由于头发的模拟属性和布料有一定差异,因此,模拟出的动态效果也不够真实。
鉴于此,本申请实施例提供了一种头发动效的处理方法,通过目标头发模型的各个发丝插片对应的线段串进行运动模拟,再根据动态的线段串重构对应的目标发丝插片,使得目标发丝插片可以呈现与对应的线段串相同的动画,实现基于发丝级别的动效模拟,以提高头发动效的真实性。
本申请实施例提供的一种头发动效的处理方法可以运行于本地终端设备或者是服务器。当头发动效的处理方法运行于服务器时,该头发动效的处理方法则可以基于云交互系统来实现与执行,其中,云交互系统包括服务器和客户端设备。
在一可选的实施方式中,云交互系统下可以运行各种云应用,例如:云游戏。以云游戏为例,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,头发动效的处理方法的储存与运行是在云游戏服务器上完成的,客户端设备的作用用于数据的接收、发送以及游戏画面的呈现,举例而言,客户端设备可以是靠近用户侧的具有数据传输功能的显示设备,如,第一终端设备、电视机、计算机、掌上电脑等;但是进行头发动效的处理方法的为云端的云游戏服务器。在进行游戏时,玩家操作客户端设备向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回客户端设备,最后,通过客户端设备进行解码并输出游戏画面。
在一可选的实施方式中,以游戏为例,本地终端设备存储有游戏程序并用于呈现游戏画面。本地终端设备用于通过图形用户界面与玩家进行交互,即,常规的通过电子设备下载安装游戏程序并运行。该本地终端设备将图形用户界面提供给玩家的方式可以包括多种,例如,可以渲染显示在终端的显示屏上,或者,通过全息投影提供给玩家。举例而言,本地终端设备可以包括显示屏和处理器,该显示屏用于呈现图形用户界面,该图形用户界面包括游戏画面,该处理器用于运行该游戏、生成图形用户界面以及控制图形用户界面在显示屏上的显示。
参照图1,示出了本申请一实施例提供的一种头发动效的处理方法的步骤流程图。在本申请实施例中,该头发动效的处理方法可以包括如下步骤:
步骤101,获取目标头发模型的各个发丝插片对应的线段串,所述线段串由多条线段连接而成,所述线段串中存储用于重构对应发丝插片的重构数据。
目标头发模型包括多个发丝插片,每个发丝插片具有对应的线段串,线段串是由多条线段连接而成的链状结构。可以理解,线段串是通过对应的发丝插片处理得到的,并且线段串中存储用于重构对应发丝插片的重构数据。本申请实施例通过获取目标头发模型的各个发丝插片对应的线段串,以基于线段串模拟发丝的运动效果。
步骤102,对所述线段串进行运动模拟,得到所述线段串的动画信息。
在得到每个发丝插片对应的线段串后,对线段串进行运动模拟,使线段串模拟发丝的运动效果,得到线段串的动画信息。
步骤103,根据所述重构数据和所述动画信息构建所述线段串对应的目标发丝插片,使所述目标发丝插片具有对应的动画,得到所述目标头发模型的动态效果。
由于线段串中存储有用于重构对应发丝插片的重构数据,因此,可以根据重构数据构建线段串对应的初始发丝插片,结合线段串的动画信息使初始发丝插片表现出与动画信息对应的动态效果,得到目标发丝插片,进而得到目标发型模型的动态效果。
本申请实施例通过获取目标头发模型的各个发丝插片对应的线段串,对线段串进行运动模拟,得到线段串的动画信息;根据重构数据和动画信息构建线段串对应的目标发丝插片,使目标发丝插片具有与线段串相应的动画,得到目标头发模型的动态效果;实现了基于发丝级别的动效模拟,整个过程依赖移动端的着色程序ComputeShader即可实现,与现有技术通过软骨驱动的方式相比,不需要执行骨骼绑定的过程,也不需要通过CPU驱动模拟头发的骨骼运动,不仅可以提高动效模拟效率,还可以降低CPU模拟成本,并提高头发动效的真实性。
下面,将对本示例性实施例中头发动效的处理方法作进一步地说明。
在步骤101中,获取目标头发模型的各个发丝插片对应的线段串,所述线段串由多条线段连接而成,所述线段串中存储用于重构对应发丝插片的重构数据。
其中,目标头发模型可以是任意一类发型的头发模型,包括但不限于长发、短发、披发、束发等。美术设计人员在制作头发模型时,一般采用发丝插片的方式,即在虚拟头皮上放置一个个的发丝插片,以得到所需的目标头发模型,如图2所示,示出了一种基于发丝插片得到的目标头发模型的示意图。
本申请实施例可以得到每个发丝插片对应的线段串,以图2所示的目标头发模型为例,本申请实施例在进行头发动效的过程中,通过获取目标头发模型的各个发丝插片对应的线段串,可以将图2所示的目标头发模型转换为图3所示的头发模型。
线段串是由多条线段连接而成的链状结构,可以理解,线段串中包含多个线段顶点,相邻的两个线段顶点连接得到一条线段。线段串中存储用于重构对应发丝插片的重构数据,具体可以通过线段串中的线段顶点存储重构数据,该重构数据可以包括发丝插片的模型空间数据和纹理UV空间数据,模型空间数据可以包括与发丝插片在模型空间中的位置、宽度、方向相关的数据等数据,UV空间数据可以包括与发丝插片在UV空间中的位置、宽度相关的数据等数据。
在本申请一些可选实施例中,上述获取目标头发模型的各个发丝插片对应的线段串,可以包括:
获取目标头发模块,所述目标头发模型包括多个发丝插片,每个所述发丝插片包括多个相连的矩形片;
针对每个所述发丝插片,获取每个所述矩形片的中点作为线段顶点,并依次连接所述线段顶点,得到对应的线段串;
在所述线段顶点中存储用于重构对应矩形片的矩形重构数据。
每个发丝插片在模型空间中由多个连续的矩形片组成。本申请实施例通过获取目标头发模型,可以得到目标头发模型包含的多个发丝插片,由于每个发丝插片是由多个连续的矩形片组成,因此,可以进一步得到每个发丝插片的各个矩形片。
其中,矩形片的中点即为矩形片的两个对角线的焦点,也是矩形片的对称中心。针对每个发丝插片(如图4所示),获取发丝插片的各个矩形片的中点作为线段顶点,然后按照矩形片在发丝插片中的位置,依次连接各个矩形片的中点,可以得到线段串,如图5所示为根据图4所示的发丝插片得到的线段串的示意图。最后,在每个线段顶点中存储用于重构对应矩形片的矩形重构数据,该矩形重构数据可以包括矩形片的中点在模型空间中的位置数据、法线信息、矩形片在模型空间中的宽度,以及矩形片的中点在UV空间中的位置数据、矩形片在UV空间中的宽度等信息。
图6所示为UV空间中的发丝插片的示意图,模型空间中的发丝插片的任意一个点都可以在UV空间中找到与其对应的点,因此,在得到发丝插片对应的线段串时,也可以确定与线段串对应的UV空间中的线段串,如图7所示为图6的发丝插片在UV空间中的线段串。
由于矩形片的中点是矩形片的对称中心,与矩形片的其他点相比,在重构目标发丝插片时,计算相对更简单。因此,本实施例以矩形片的中点作为发丝插片对应的线段串的线段顶点,可以减少计算量。当然,在其他实施例中,也可以用矩形片中的其他点来生成发丝插片对应的线段串,包括但不限于矩形片的第一个顶点、第一个顶点与第二个顶点之间的中点等。
在本申请另一些可选实施例中,上述获取目标头发模型的各个发丝插片对应的线段串,可以包括:
获取目标头发模型的数据文件,所述数据文件用于存储所述目标头发模型的各个发丝插片对应的线段串的数据信息;
解析所述数据文件,根据所述数据信息,得到所述目标头发模型的各个发丝插片对应的线段串。
在本实施例中,可以通过离线处理的方式生成各个发丝插片对应的线段串,并将线段串的数据信息保存到数据文件中。该线段串的数据信息包括线段串的各条线段的线段顶点的信息,而线段顶点的信息包括线段顶点的连接关系和线段顶点存储的用于重构对应的矩形片的矩形重构数据。
在游戏运行时,通过读取、解析数据文件,可以得到目标头发模型的各个发丝插片对应的线段串,再基于线段串执行后续的运动模拟以及目标发丝插片重构的步骤。
其中,目标头发模型的数据文件的生成过程可以包括:
获取目标头发模块,所述目标头发模型包括多个发丝插片,每个所述发丝插片包括多个相连的矩形片;
针对每个所述发丝插片,获取每个所述矩形片的中点作为线段顶点,在所述线段顶点中存储用于重构对应矩形片的矩形重构数据;
将所述目标头发模型的各个发丝插片对应的线段顶点按照顺序序列化存储到目标头发模型的数据文件中。
每个发丝插片在模型空间中由多个连续的矩形片组成。本申请实施例通过获取目标头发模型,可以得到目标头发模型包含的多个发丝插片,由于每个发丝插片是由多个连续的矩形片组成,因此,可以进一步得到每个发丝插片的各个矩形片。
其中,矩形片的中点即为矩形片的两个对角线的焦点,也是矩形片的对称中心。针对每个发丝插片,获取发丝插片的各个矩形片的中点作为线段顶点;在每个线段顶点中存储用于重构对应矩形片的矩形重构数据,该矩形重构数据可以包括矩形片的中点在模型空间中的位置数据、法线信息、矩形片在模型空间中的宽度,以及矩形片的中点在UV空间中的位置数据、矩形片在UV空间中的宽度;最后按照矩形片在发丝插片中的位置,将线段顶点按照顺序序列化存储到目标头发模型的数据文件中。
在运行过程中,在解析出数据文件中的各个线段顶点时,可以根据线段顶点的存储顺序,对线段顶点进行连接以得到对应的线段串。通过序列化存储不仅可以最小化数据的大小,减少空间的占用,还可以实现数据跨平台使用。
在步骤102中,对所述线段串进行运动模拟,得到所述线段串的动画信息。
在得到每个发丝插片对应的线段串后,对线段串进行运动模拟,即确定线段串在运动场景中的运动状态,线段串的运动状态即代表着发丝的运动状态。
由于线段串由多个线段顶点连接得到的,因此,线段串的运动效果可以通过线段顶点的运动效果来体现。
在进行运动模拟的过程中,考虑到现实中头发在随人的头部运动的过程中,发根和发稍的运动幅度是存在区别的,为了使运动模拟的效果更加贴近真实的效果,在本申请一些可选实施例中,线段顶点还存储有权重值,该权重值用于表示线段顶点受上一顶点动画的影响程度。其中,上一顶点动画是指与该线段顶点相连且靠近发根的线段顶点。
具体地,发丝插片具有两端,一端对应发根,另一端对应发稍,相应地,线段串也具有两端,一端对应发根,另一端对应发稍。线段串中的线段顶点可以按照从发根到发稍的顺序进行排序,除第一个线段顶点外,其他线段顶点的上一顶点就是其上一个序号的线段顶点。由于发丝插片是放置在虚拟头皮上,因此,第一个线段顶点的上一顶点是其所在头皮位置对应的顶点。
线段顶点的权重值需要在进行运动模拟之前确定,示例性地,可以在获取线段顶点的过程中确定出各个线段顶点的权重值,并将该权重值存储到线段顶点中。具体的权重值可以由相关人员根据需求进行设置,如图8所示为图3所示的头发模型增加线段顶点的权重值后的头发模型示意图,不同颜色用于表示不同的权重值。
上述对所述线段串进行运动模拟,得到所述线段串的动画信息,可以包括:
根据头部骨骼动画和所述线段串中的各线段顶点对应的权重值,确定各线段顶点的运动信息;
根据所述线段串中的各线段顶点的运动信息,确定所述线段串的动画信息。
考虑到,头发的运动与头部运动相关,因此,本实施例在对线段串进行运动模拟时,需要确定线段串受头部骨骼动画的影响程度,即确定线段串在头部骨骼动画的作用下所呈现出的动画效果。
根据头部骨骼动画和线段串中的各线段顶点对应的权重值,可以确定在头部骨骼动画的影响下,各个线段顶点的运动信息;该运动信息可以包括位移、速度、加速度等信息;线段串的动画信息是由各个线段顶点的运动信息决定的,因此,在确定出各个线段顶点的运动信息后,可以得到线段串的动画信息,可以理解,线段串的动画信息是线段串中的所有线段顶点的运动信息的集合。
进一步地,考虑到现实中头发除了随人的头部运动外,还会受到碰撞体的影响,例如,头发在运动过程中,可能会撞到虚拟人物的脖子,若不进行碰撞检测,得到的头发运动画面很可能会穿插到虚拟人物的脖子中,显然与实际不符。因此,在本申请一些可选实施例中,在对线段串进行运动模拟的过程中,还需要进行碰撞模拟,即在上述根据头部骨骼动画和所述线段串中的各线段顶点对应的权重值,确定各线段顶点的运动信息之后,还可以包括:
根据所述线段顶点的运动信息,确定所述线段顶点是否位于碰撞体内;
若是,则将所述线段顶点调整到所述碰撞体外,以更新所述线段顶点的运动信息。
通过判断线段顶点是否位于碰撞体内来确定是否需要更新线段顶点的运动信息。具体地,当线段顶点位于碰撞体内时,需要将线段顶点调整到碰撞体外,再基于调整后的线段顶点更新线段顶点的运动信息,以避免发生穿插现象。其中,碰撞体可以是球型、胶囊型、立方体、平面等多种类型。
将线段顶点调整到碰撞体外,具体可以根据线段顶点的运动信息和碰撞体的位置信息,确定线段顶点与碰撞体首次接触的初始位置,将线段顶点调整到该初始位置,并计算线段顶点的运动信息受碰撞体影响后,得到的更新后的运动信息。
当线段顶点的运动信息更新后,需要同步更新线段串的动画信息,即根据线段串中的各线段顶点更新后的运动信息,确定线段串的动画信息。
可选地,头发的运动还会受风场等流体场的影响,因此,在本申请一些可选实施例中,在对线段串进行运动模拟的过程中,还需要进行流体场模拟,即在运动场景中增加风场等流体场,结合风场的影响,调整线段顶点的运动信息,进而更新线段串的动画信息。
在步骤103中,根据所述重构数据和所述动画信息构建所述线段串对应的目标发丝插片,使所述目标发丝插片具有对应的动画,得到所述目标头发模型的动态效果。
由于线段串中存储有用于重构对应发丝插片的重构数据,因此,可以根据重构数据构建线段串对应的初始发丝插片,结合线段串的动画信息使初始发丝插片表现出与动画信息对应的动态效果,得到目标发丝插片,进而得到目标发型模型的动态效果。
具体地,根据线段串的动画信息可以确定线段串各部位在不同时刻的位置信息,结合线段串各部位在不同时刻的位置信息和重构数据,可以构建对应的目标发丝插片,因此,目标发丝插片的位置也会随着线段串的动画信息而变化。
在本申请一些可选实施例中,由于发丝插片由多个矩形片连接得到,而每个矩形片的矩形重构数据存储在对应的线段顶点中,因此,根据所述重构数据和所述动画信息构建所述线段串对应的目标发丝插片,可以包括:
针对每个所述线段串,根据所述线段串中的各个线段顶点存储的矩形重构数据和所述线段顶点的运动信息构建对应的目标矩形片;
将相邻的目标矩形片依次连接,得到所述线段串对应的目标发丝插片。
本实施例根据线段顶点的运动信息可以确定线段顶点在不同时刻的位置信息,结合线段顶点的位置信息和矩形重构数据,可以构建对一个的目标矩形片,再根据线段顶点的连接顺序,将对应的目标矩形片连接起来即可得到线段串对应的目标发丝插片。
示例性地,线段顶点的运动信息可以包括线段顶点的位移,矩形重构数据包括矩形片的中点在模型空间中的位置数据、法线信息、矩形片在模型空间中的宽度,矩形片的中点即线段顶点,根据矩形片的中点在模型空间中的位置数据和矩形片在模型空间中的宽度,可以计算出矩形片四个顶点的位置数据,进而可以确定矩形片的四个顶点与线段顶点之间的转换关系,基于该转换关系,在确定出线段顶点的位移后,可以得到与线段顶点的位移相关的新四个顶点,并基于新四个顶点构建目标矩形片,由于目标矩形片是基于线段顶点的位移得到的,因此,目标矩形片具有对应的线段顶点的运动信息。
在构建出各个线段顶点对应的目标矩形片后,将相邻的目标矩形片依次连接,即,将相邻的目标矩形片相同的顶点进行合并,得到所述线段串对应的目标发丝插片。由于目标发丝插片中的各个目标矩形具有对应的线段顶点的运动信息,线段串的动画信息根据各个线段顶点的运动信息得到,因此,得到目标发丝插片也具有对应的线段串的动画信息,可以呈现出相应的动画效果。
另外,在进行运动模拟的过程中,不会改变发丝插片对应的贴图信息,因此根据矩形重构数据包括的矩形片的中点在UV空间中的位置数据、矩形片在UV空间中的宽度,可以得到目标矩形片对应的贴图信息,进而得到目标发丝插片的贴图信息。
根据目标发丝插片的贴图信息对目标发丝插片进行渲染,可以呈现出如图9所示的头发动态效果。
进一步地,考虑到在头发渲染过程中,现有技术一般通过先进行一次遮罩渲染,再进行一次半透渲染的方式来处理。其中,遮罩渲染是指仅绘制透明度大于预设透明度阈值的像素,而半透渲染是指结合半透明颜色混合公式计算出像素的透明度和颜色,再绘制像素。其在进行半透渲染的过程中,涉及到绘制顺序的问题,而贴图没有深度信息,因此容易产生绘制顺序错误导致出现如图10所示的穿插现象。
为了防止头发渲染过程中出现穿插,以提高头发的真实效果,在本申请一些可选实施例中,还可以包括:
获取所述目标头发模型的目标顶点与虚拟摄像机之间的距离;
按照所述距离从远到近的顺序确定目标顶点的渲染顺序,并基于所述渲染顺序对所述目标头发模型进行渲染。
在本实施例中,在构建出目标发丝插片后,可以确定目标发丝插片的顶点,即确定目标头发模型的目标顶点,再根据目标头发模型的目标顶点与虚拟摄像机之间的距离来重建目标顶点的顺序,可以确保半透渲染过程中绘制顺序的准确性,从而避免产生穿插现象,进而提高头发的真实性。
示例性地,根据目标发丝插片对应的动画刷新顶点缓冲区,该顶点缓冲区可以认为是用于存放顶点数据的容器,通过顶点缓冲区存放顶点数据可以提高数据处理效率。在开始渲染时,通过获取目标头发模型的目标顶点与虚拟摄像机之间的距离,按照距离从远到近的顺序重建顶点索引的顺序,即确定目标顶点的渲染顺序。在渲染过程中,按照目标顶点的渲染顺序对目标头发模型先进行一次遮罩渲染,再进行一次半透渲染,得到如图11所示的头发模型效果,可见,通过本实施例的渲染过程,可以使目标头发模型呈现出更加真实的头发效果。
其中,在进行遮罩渲染的过程中,可以不需要按照目标顶点的渲染顺序进行渲染,即目标顶点的渲染顺序不会影响遮罩渲染的结果。
在本申请的一些可选实施例中,通过获取目标头发模型的各个发丝插片对应的线段串,对线段串进行运动模拟,得到线段串的动画信息;根据重构数据和动画信息构建线段串对应的目标发丝插片,使目标发丝插片具有与线段串相应的动画,得到目标头发模型的动态效果;实现了基于发丝级别的动效模拟,整个过程依赖移动端的着色程序ComputeShader即可实现,与现有技术通过软骨驱动的方式相比,不需要执行骨骼绑定的过程,也不需要通过CPU驱动模拟头发的骨骼运动,不仅可以提高动效模拟效率,还可以降低CPU模拟成本,并提高头发动效的真实性。此外,在对目标头发模型进行渲染的过程中,通过根据目标头发模型的目标顶点与虚拟摄像机之间的距离,按照从远到近的顺序进行渲染,可以进一步提高头发模拟效果的真实性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图12,示出了本申请的一种头发动效的处理装置实施例的结构框图,与上述头发动效的处理方法实施例相对应,在本申请实施例中,该头发动效的处理装置,可以包括如下模块:
数据获取模块1201,用于获取目标头发模型的各个发丝插片对应的线段串,所述线段串由多条线段连接而成,所述线段串中存储用于重构对应发丝插片的重构数据;
运动模拟模块1202,用于对所述线段串进行运动模拟,得到所述线段串的动画信息;
数据重构模块1203,用于根据所述重构数据和所述动画信息构建所述线段串对应的目标发丝插片,使所述目标发丝插片具有对应的动画,得到所述目标头发模型的动态效果。
在本申请一些可选实施例中,所述数据获取模块1201,可以包括:
数据文件获取子模块,用于获取目标头发模型的数据文件,所述数据文件用于存储所述目标头发模型的各个发丝插片对应的线段串的数据信息;
数据文件解析子模块,用于解析所述数据文件,根据所述数据信息,得到所述目标头发模型的各个发丝插片对应的线段串。
在本申请一些可选实施例中,所述数据获取模块1201,可以包括:
模型获取子模块,用于获取目标头发模块,所述目标头发模型包括多个发丝插片,每个所述发丝插片包括多个相连的矩形片;
线段串生成子模块,用于针对每个所述发丝插片,获取每个所述矩形片的中点作为线段顶点,并依次连接所述线段顶点,得到对应的线段串;
数据存储子模块,用于在所述线段顶点中存储用于重构对应矩形片的矩形重构数据。
在本申请一些可选实施例中,所述线段顶点还存储有权重值,所述权重值用于表示线段顶点受上一顶点动画的影响程度;所述运动模拟模块1202,可以包括:
线段顶点运动信息确定子模块,用于根据头部骨骼动画和所述线段串中的各线段顶点对应的权重值,确定各线段顶点的运动信息;
线段串动画信息确定子模块,用于根据所述线段串中的各线段顶点的运动信息,确定所述线段串的动画信息。
在本申请一些可选实施例中,所述线段顶点运动信息确定子模块还用于根据所述线段顶点的运动信息,确定所述线段顶点是否位于碰撞体内;若是,则将所述线段顶点调整到所述碰撞体外,以更新所述线段顶点的运动信息:
所述线段串动画信息确定子模块,还用于根据所述线段串中的各线段顶点更新后的运动信息,确定所述线段串的动画信息。
在本申请一些可选实施例中,所述数据重构模块1203,可以包括:
目标矩形片重构子模块,用于针对每个所述线段串,根据所述线段串中的各个线段顶点存储的矩形重构数据和所述线段顶点的运动信息构建对应的目标矩形片;
目标发丝插片重构子模块,用于将相邻的目标矩形片依次连接,得到所述线段串对应的目标发丝插片。
在本申请一些可选实施例中,所述装置还可以包括:
顶点距离获取模块,用于获取所述目标头发模型的目标顶点与虚拟摄像机之间的距离;
渲染顺序更新模块,用于按照所述距离从远到近的顺序确定目标顶点的渲染顺序,并基于所述渲染顺序对所述目标头发模型进行渲染。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
参照图13,本申请实施例还公开了电子设备13,包括处理器1301、存储器1302及存储在所述存储器1302上并能够在所述处理器1301上运行的计算机程序1303,所述计算机程序1303被所述处理器1301执行时实现如上所述的头发动效的处理方法,例如:
获取目标头发模型的各个发丝插片对应的线段串,所述线段串由多条线段连接而成,所述线段串中存储用于重构对应发丝插片的重构数据;
对所述线段串进行运动模拟,得到所述线段串的动画信息;
根据所述重构数据和所述动画信息构建所述线段串对应的目标发丝插片,使所述目标发丝插片具有对应的动画,得到所述目标头发模型的动态效果。
在一些可选实施例中,所述获取目标头发模型的各个发丝插片对应的线段串,包括:
获取目标头发模型的数据文件,所述数据文件用于存储所述目标头发模型的各个发丝插片对应的线段串的数据信息;
解析所述数据文件,根据所述数据信息,得到所述目标头发模型的各个发丝插片对应的线段串。
在一些可选实施例中,所述获取目标头发模型的各个发丝插片对应的线段串,包括:
获取目标头发模块,所述目标头发模型包括多个发丝插片,每个所述发丝插片包括多个相连的矩形片;
针对每个所述发丝插片,获取每个所述矩形片的中点作为线段顶点,并依次连接所述线段顶点,得到对应的线段串;
在所述线段顶点中存储用于重构对应矩形片的矩形重构数据。
在一些可选实施例中,所述线段顶点还存储有权重值,所述权重值用于表示线段顶点受上一顶点动画的影响程度;所述对所述线段串进行运动模拟,得到所述线段串的动画信息,包括:
根据头部骨骼动画和所述线段串中的各线段顶点对应的权重值,确定各线段顶点的运动信息;
根据所述线段串中的各线段顶点的运动信息,确定所述线段串的动画信息。
在一些可选实施例中,在所述根据头部骨骼动画和所述线段串中的各线段顶点对应的权重值,确定各线段顶点的运动信息之后,所述方法还包括:
根据所述线段顶点的运动信息,确定所述线段顶点是否位于碰撞体内;
若是,则将所述线段顶点调整到所述碰撞体外,以更新所述线段顶点的运动信息;
所述根据所述线段串中的各线段顶点的运动信息,确定所述线段串的动画信息,包括:
根据所述线段串中的各线段顶点更新后的运动信息,确定所述线段串的动画信息。
在一些可选实施例中,所述根据所述重构数据和所述动画信息构建所述线段串对应的目标发丝插片,包括:
针对每个所述线段串,根据所述线段串中的各个线段顶点存储的矩形重构数据和所述线段顶点的运动信息构建对应的目标矩形片;
将相邻的目标矩形片依次连接,得到所述线段串对应的目标发丝插片。
在一些可选实施例中,所述方法还包括:
获取所述目标头发模型的目标顶点与虚拟摄像机之间的距离;
按照所述距离从远到近的顺序确定目标顶点的渲染顺序,并基于所述渲染顺序对所述目标头发模型进行渲染。
上述实施方式通过获取目标头发模型的各个发丝插片对应的线段串,线段串由多条线段连接而成,线段串中存储用于重构对应发丝插片的重构数据;对线段串进行运动模拟,得到线段串的动画信息;根据重构数据和动画信息构建线段串对应的目标发丝插片,使目标发丝插片具有对应的动画,得到目标头发模型的动态效果;本申请实施例通过对目标头发模型的各个发丝插片对应的线段串进行运动模拟,再根据线段串重构出目标发丝插片,使得目标发丝插片可以呈现与对应的线段串相同的动画,实现了基于发丝级别的动效模拟,从而提高了头发动效的真实性。
本申请实施例还公开了计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的头发动效的处理方法,例如:
获取目标头发模型的各个发丝插片对应的线段串,所述线段串由多条线段连接而成,所述线段串中存储用于重构对应发丝插片的重构数据;
对所述线段串进行运动模拟,得到所述线段串的动画信息;
根据所述重构数据和所述动画信息构建所述线段串对应的目标发丝插片,使所述目标发丝插片具有对应的动画,得到所述目标头发模型的动态效果。
在一些可选实施例中,所述获取目标头发模型的各个发丝插片对应的线段串,包括:
获取目标头发模型的数据文件,所述数据文件用于存储所述目标头发模型的各个发丝插片对应的线段串的数据信息;
解析所述数据文件,根据所述数据信息,得到所述目标头发模型的各个发丝插片对应的线段串。
在一些可选实施例中,所述获取目标头发模型的各个发丝插片对应的线段串,包括:
获取目标头发模块,所述目标头发模型包括多个发丝插片,每个所述发丝插片包括多个相连的矩形片;
针对每个所述发丝插片,获取每个所述矩形片的中点作为线段顶点,并依次连接所述线段顶点,得到对应的线段串;
在所述线段顶点中存储用于重构对应矩形片的矩形重构数据。
在一些可选实施例中,所述线段顶点还存储有权重值,所述权重值用于表示线段顶点受上一顶点动画的影响程度;所述对所述线段串进行运动模拟,得到所述线段串的动画信息,包括:
根据头部骨骼动画和所述线段串中的各线段顶点对应的权重值,确定各线段顶点的运动信息;
根据所述线段串中的各线段顶点的运动信息,确定所述线段串的动画信息。
在一些可选实施例中,在所述根据头部骨骼动画和所述线段串中的各线段顶点对应的权重值,确定各线段顶点的运动信息之后,所述方法还包括:
根据所述线段顶点的运动信息,确定所述线段顶点是否位于碰撞体内;
若是,则将所述线段顶点调整到所述碰撞体外,以更新所述线段顶点的运动信息;
所述根据所述线段串中的各线段顶点的运动信息,确定所述线段串的动画信息,包括:
根据所述线段串中的各线段顶点更新后的运动信息,确定所述线段串的动画信息。
在一些可选实施例中,所述根据所述重构数据和所述动画信息构建所述线段串对应的目标发丝插片,包括:
针对每个所述线段串,根据所述线段串中的各个线段顶点存储的矩形重构数据和所述线段顶点的运动信息构建对应的目标矩形片;
将相邻的目标矩形片依次连接,得到所述线段串对应的目标发丝插片。
在一些可选实施例中,所述方法还包括:
获取所述目标头发模型的目标顶点与虚拟摄像机之间的距离;
按照所述距离从远到近的顺序确定目标顶点的渲染顺序,并基于所述渲染顺序对所述目标头发模型进行渲染。
上述实施方式通过获取目标头发模型的各个发丝插片对应的线段串,线段串由多条线段连接而成,线段串中存储用于重构对应发丝插片的重构数据;对线段串进行运动模拟,得到线段串的动画信息;根据重构数据和动画信息构建线段串对应的目标发丝插片,使目标发丝插片具有对应的动画,得到目标头发模型的动态效果;本申请实施例通过对目标头发模型的各个发丝插片对应的线段串进行运动模拟,再根据线段串重构出目标发丝插片,使得目标发丝插片可以呈现与对应的线段串相同的动画,实现了基于发丝级别的动效模拟,从而提高了头发动效的真实性。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种头发动效的处理方法及装置、电子设备、存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种头发动效的处理方法,其特征在于,所述方法包括:
获取目标头发模型的各个发丝插片对应的线段串,所述线段串由多条线段连接而成,所述线段串中存储用于重构对应发丝插片的重构数据;
对所述线段串进行运动模拟,得到所述线段串的动画信息;
根据所述重构数据和所述动画信息构建所述线段串对应的目标发丝插片,使所述目标发丝插片具有对应的动画,得到所述目标头发模型的动态效果。
2.根据权利要求1所述的方法,其特征在于,所述获取目标头发模型的各个发丝插片对应的线段串,包括:
获取目标头发模型的数据文件,所述数据文件用于存储所述目标头发模型的各个发丝插片对应的线段串的数据信息;
解析所述数据文件,根据所述数据信息,得到所述目标头发模型的各个发丝插片对应的线段串。
3.根据权利要求1所述的方法,其特征在于,所述获取目标头发模型的各个发丝插片对应的线段串,包括:
获取目标头发模块,所述目标头发模型包括多个发丝插片,每个所述发丝插片包括多个相连的矩形片;
针对每个所述发丝插片,获取每个所述矩形片的中点作为线段顶点,并依次连接所述线段顶点,得到对应的线段串;
在所述线段顶点中存储用于重构对应矩形片的矩形重构数据。
4.根据权利要求3所述的方法,其特征在于,所述线段顶点还存储有权重值,所述权重值用于表示线段顶点受上一顶点动画的影响程度;所述对所述线段串进行运动模拟,得到所述线段串的动画信息,包括:
根据头部骨骼动画和所述线段串中的各线段顶点对应的权重值,确定各线段顶点的运动信息;
根据所述线段串中的各线段顶点的运动信息,确定所述线段串的动画信息。
5.根据权利要求4所述的方法,其特征在于,在所述根据头部骨骼动画和所述线段串中的各线段顶点对应的权重值,确定各线段顶点的运动信息之后,所述方法还包括:
根据所述线段顶点的运动信息,确定所述线段顶点是否位于碰撞体内;
若是,则将所述线段顶点调整到所述碰撞体外,以更新所述线段顶点的运动信息;
所述根据所述线段串中的各线段顶点的运动信息,确定所述线段串的动画信息,包括:
根据所述线段串中的各线段顶点更新后的运动信息,确定所述线段串的动画信息。
6.根据权利要求4所述的方法,其特征在于,所述根据所述重构数据和所述动画信息构建所述线段串对应的目标发丝插片,包括:
针对每个所述线段串,根据所述线段串中的各个线段顶点存储的矩形重构数据和所述线段顶点的运动信息构建对应的目标矩形片;
将相邻的目标矩形片依次连接,得到所述线段串对应的目标发丝插片。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
获取所述目标头发模型的目标顶点与虚拟摄像机之间的距离;
按照所述距离从远到近的顺序确定目标顶点的渲染顺序,并基于所述渲染顺序对所述目标头发模型进行渲染。
8.一种头发动效的处理装置,其特征在于,所述装置包括:
数据获取模块,用于获取目标头发模型的各个发丝插片对应的线段串,所述线段串由多条线段连接而成,所述线段串中存储用于重构对应发丝插片的重构数据;
运动模拟模块,用于对所述线段串进行运动模拟,得到所述线段串的动画信息;
数据重构模块,用于根据所述重构数据和所述动画信息构建所述线段串对应的目标发丝插片,使所述目标发丝插片具有对应的动画,得到所述目标头发模型的动态效果。
9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-7任一项所述的头发动效的处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的头发动效的处理方法。
CN202211649178.XA 2022-12-21 2022-12-21 头发动效的处理方法及装置、电子设备、存储介质 Pending CN118229852A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211649178.XA CN118229852A (zh) 2022-12-21 2022-12-21 头发动效的处理方法及装置、电子设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211649178.XA CN118229852A (zh) 2022-12-21 2022-12-21 头发动效的处理方法及装置、电子设备、存储介质

Publications (1)

Publication Number Publication Date
CN118229852A true CN118229852A (zh) 2024-06-21

Family

ID=91501540

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211649178.XA Pending CN118229852A (zh) 2022-12-21 2022-12-21 头发动效的处理方法及装置、电子设备、存储介质

Country Status (1)

Country Link
CN (1) CN118229852A (zh)

Similar Documents

Publication Publication Date Title
CN108564646B (zh) 对象的渲染方法和装置、存储介质、电子装置
JP7082877B2 (ja) 3次元ボクセル・ベース・モデリングのための方法
US6268861B1 (en) Volumetric three-dimensional fog rendering technique
CN115641375B (zh) 虚拟对象的毛发处理方法、装置、设备及存储介质
CN110992495B (zh) 一种虚拟模型的变形方法及装置
CN110458924B (zh) 一种三维脸部模型建立方法、装置和电子设备
CN111773688B (zh) 柔性对象的渲染方法和装置、存储介质、电子装置
JP4842242B2 (ja) キャラクタアニメーション時の皮膚のしわのリアルタイム表現方法及び装置
CN111773719A (zh) 虚拟对象的渲染方法和装置、存储介质、电子装置
CN112843704B (zh) 动画模型处理方法、装置、设备及存储介质
CN116115995A (zh) 图像渲染处理方法、装置及电子设备
Safonov et al. Multilevel functional-logic models in 3d-simulators of electrical equipment
CN118229852A (zh) 头发动效的处理方法及装置、电子设备、存储介质
Skulimowski et al. Design and optimisation methods for interactive mobile VR visualisation
Montusiewicz et al. The concept of low-cost interactive and gamified virtual exposition
CN116152405B (zh) 一种业务处理方法、装置及计算机设备、存储介质
Larsson-Ståhl A Study on the Perceived Realism Of Strand-based Hair Simulated By Style: Evaluating Real-time Hair-simulation in Unreal Engine 4
CN114510153B (zh) 应用于vr环境仿真的风感模拟方法、装置及电子设备
CN117671062A (zh) 图像生成方法、装置、非易失性存储介质和计算机设备
Zhou et al. Reform of computer graphics teaching method
Trenchev et al. Mixed Reality-Digital Technologies And Resources For Creation Of Realistic Objects And Scenes: Their Application In Education
Got Developement of a new automatic skinning system
CN107978011B (zh) 一种风的三维动态展示方法和设备
Orvalho et al. Using Unreal Engine 5 to realistic rendering of scenes
Hristov et al. Development of a educational three dimensional computer game by using virtual reality utilities

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination