CN116059637B - 虚拟对象渲染方法、装置、存储介质及电子设备 - Google Patents
虚拟对象渲染方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN116059637B CN116059637B CN202310355271.8A CN202310355271A CN116059637B CN 116059637 B CN116059637 B CN 116059637B CN 202310355271 A CN202310355271 A CN 202310355271A CN 116059637 B CN116059637 B CN 116059637B
- Authority
- CN
- China
- Prior art keywords
- deformation
- mixed
- mixed deformation
- virtual object
- rendering
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/56—Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供了一种虚拟对象渲染方法、装置、存储介质及电子设备,所述方法包括:在当前渲染周期中,分别判断每个混合变形对应的权重系数是否发生调整;若至少一个所述混合变形对应的权重系数发生调整,则根据目标混合变形对应的权重系数生成混合变形合并结果,并将所述混合变形合并结果存储至缓冲区中;其中,所述目标混合变形为权重系数发生调整的混合变形;若各个所述混合变形对应的权重系数均未发生调整,或最新获取的所述混合变形合并结果存储完毕,则根据所述缓冲区存储的所述混合变形合并结果渲染虚拟对象,并进入下一渲染周期。采用本申请的方案可以减少运算消耗,进而降低对电子设备的性能要求。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种虚拟对象渲染方法、装置、存储介质及电子设备。
背景技术
随着虚拟对象的应用场景愈发广泛,面向消费者和个人用户的虚拟对象应用数量也在逐渐增长。相比于专门的电子设备和服务器集群,消费者和个人用户所使用的电子设备在性能上有所限制,且不同用户使用的电子设备也会存在较大的性能差异。因此,面向消费者和个人用户的虚拟对象应用需要能够在有限的条件下正常运行。但是,现有的虚拟对象渲染方案对电子设备的性能要求过高,导致低性能的电子设备在渲染的过程中容易出现发热、卡顿甚至无法正常渲染的问题。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一,特别是现有技术中对电子设备性能要求高的技术缺陷。
第一方面,本申请实施例提供了一种虚拟对象渲染方法,所述方法包括:
在当前渲染周期中,分别判断每个混合变形对应的权重系数是否发生调整;
若至少一个所述混合变形对应的权重系数发生调整,则根据目标混合变形对应的权重系数生成混合变形合并结果,并将所述混合变形合并结果存储至缓冲区中;其中,所述目标混合变形为权重系数发生调整的混合变形;
若各个所述混合变形对应的权重系数均未发生调整,或最新获取的所述混合变形合并结果存储完毕,则根据所述缓冲区存储的所述混合变形合并结果渲染虚拟对象,并进入下一渲染周期。
在其中一个实施例中,所述根据目标混合变形对应的权重系数生成混合变形合并结果,并将所述混合变形合并结果存储至缓冲区中的步骤,包括:
根据所述目标混合变形的所属类型,确定与所述目标混合变形属于同一类型的各个同类混合变形;在各个所述混合变形中,至少两个所述混合变形的所属类型不同;
基于所述目标混合变形对应的权重系数,对所述目标混合变形和各个所述同类混合变形进行加权,以得到所述混合变形合并结果;
将最新获取的所述混合变形合并结果存储至目标存储位置,所述目标存储位置为所述缓冲区中与所述目标混合变形的所属类型相对应的位置。
在其中一个实施例中,当所述目标混合变形的所属类型为渐变类型时,所述目标存储位置包括第一区域和第二区域;
若所述目标混合变形的所属类型为所述渐变类型,则所述将最新获取的所述混合变形合并结果存储至目标存储位置的步骤,包括:
将存储在所述第一区域中的混合变形合并结果存储至所述第二区域中;
将最新获取的所述混合变形合并结果存储至所述第一区域中。
在其中一个实施例中,所述根据所述缓冲区存储的所述混合变形合并结果渲染虚拟对象的步骤,包括:
确定所述当前渲染周期对应的插值系数;
从所述第一区域中读取第一混合变形合并结果,以及从所述第二区域中读取第二混合变形合并结果;
根据所述插值系数,对所述第一混合变形合并结果和所述第二混合变形合并结果进行插值计算,以得到插值计算结果;
基于所述插值计算结果渲染所述虚拟对象。
在其中一个实施例中,所述确定所述当前渲染周期对应的插值系数的步骤,包括:
获取当前时刻和前一虚拟对象驱动帧所对应的接收时刻;
计算所述当前时刻与所述接收时刻之间的差值,并计算所述差值与预设的平滑系数之间的乘积;
将所述乘积与预设的驱动帧平均输入时间间隔之比作为所述当前渲染周期对应的插值系数。
在其中一个实施例中,当所述目标混合变形的所属类型为可突变类型时,所述目标存储位置为第三区域;
若所述目标混合变形的所属类型为所述可突变类型,则所述将最新获取的所述混合变形合并结果存储至目标存储位置的步骤,包括:
将最新获取的所述混合变形合并结果存储至所述第三区域中,以覆盖所述第三区域的原存储数据。
在其中一个实施例中,所述目标混合变形的所属类型为预先设置的;或者,所述目标混合变形的所属类型是根据所述目标混合变形对应的权重系数在统计周期内的调整次数实时确定的。
第二方面,本申请实施例提供了一种虚拟对象渲染装置,所述装置包括:
判断模块,用于在当前渲染周期中,分别判断每个混合变形对应的权重系数是否发生调整;
合并结果计算模块,用于在至少一个所述混合变形对应的权重系数发生调整的情况下,根据目标混合变形对应的权重系数生成混合变形合并结果,并将所述混合变形合并结果存储至缓冲区中;其中,所述目标混合变形为权重系数发生调整的混合变形;
渲染模块,用于在各个所述混合变形对应的权重系数均未发生调整,或最新获取的所述混合变形合并结果存储完毕的情况下,根据所述缓冲区存储的所述混合变形合并结果渲染虚拟对象,并进入下一渲染周期。
第三方面,本申请实施例提供了一种存储介质,该存储介质中存储有计算机可读指令,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述任一实施例所述虚拟对象渲染方法的步骤。
第四方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器,以及存储器;
所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,执行上述任一实施例所述虚拟对象渲染方法的步骤。
本申请的虚拟对象渲染方法、装置、存储介质及电子设备中,在每一个渲染周期内,电子设备可分别判断每个混合变形对应的权重系数是否发生调整。若至少一个混合变形对应的权重系数有所调整,则基于调整后的权重系数计算混合变形合并数据,并将计算得到的合并数据存入缓冲区中,且依据最新计算得到的混合变形合并数据进行渲染。当各个混合变形对应的权重系数均未变化时,电子设备可以直接依据存储在缓冲区内的混合变形合并数据渲染虚拟对象,而无需在当前渲染周期内再次进行合并计算。如此,可以在确保画面效果的前提下降低运算频次,从而降低渲染时的运算消耗,使得低性能的电子设备也可以流畅渲染虚拟对象,进而降低对电子设备的性能要求并提升用户体验感。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为一个实施例中虚拟对象渲染方法的流程示意图之一;
图2为一个实施例中根据目标混合变形对应的权重系数生成混合变形合并结果,并将混合变形合并结果存储至缓冲区中的步骤流程示意图;
图3为一个实施例中根据缓冲区存储的混合变形合并结果渲染虚拟对象的步骤流程示意图;
图4为一个实施例中虚拟对象渲染方法的流程示意图之二;
图5为一个实施例中虚拟对象渲染装置的示意性结构框图;
图6为一个实施例中电子设备的示意性结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中,虚拟对象可以是虚拟场景中的待渲染对象,包括但不限于人物对象、环境对象和物体对象。其中,人物对象是指人物角色,例如数字人或游戏角色等。环境对象是指用于组成虚拟场景背景环境的对象,例如花草树木、建筑物、山川湖海等。物体对象是指虚拟场景中除环境对象和人物对象外的其余物体,例如交通工具、动物等。为便于描述,本文以数字人作为示例进行说明。
虚拟对象的渲染可以基于混合变形(也称BlendShape)来实现,一方面可以实现细节变化,例如让虚拟数字人的面部还原出与真人近似的表情。另一方面,也可以根据用户的设置调整虚拟对象的形状,例如用户可以对基础的三维角色模型进行调整,使得调整后的三维角色模型具备相应的体型特征和面部特征。
在构建面向消费者和个人用户的虚拟对象应用的过程中,在对研发成本、电子设备性能等实际因素进行综合考虑后,Unity3D引擎由于具备技术成熟、应用包体小的特点,而被选为虚拟对象应用的开发引擎。也即,虚拟对象应用可以在Unity3D引擎的混合变形基础上进行实现。
然而,采用Unity3D引擎的混合变形来实现的虚拟对象应用,对电子设备的性能要求过高。诚如背景技术所言,低性能的电子设备在渲染的过程中容易出现各式问题,应用限制大,导致其无法在更多的电子设备中使用。由于Unity3D引擎不开源,因此无法通过对源码进行代码分析溯源来确定相关原因。发明人在经过一系列的技术分析、技术验证后,终于发现导致这一问题的原因在于:在生成每一个渲染帧时,Unity3D引擎都会重新计算每个权重系数不为0的混合变形所对应的顶点数据,并根据最新计算得到的顶点数据驱动基础形状形变,进而得到当前渲染帧。由于一个虚拟对象会涉及大量的混合变形,且每个混合变形都包括多个顶点,因此,电子设备在每个渲染帧的生成过程中都需要消耗大量的GPU(Graphics Processing Unit,图形处理器)运算资源,进而容易出现发热、卡顿甚至无法正常运行的问题。
为解决上述问题,本申请提供了一种虚拟对象渲染方法、装置、存储介质及电子设备,使得低性能的电子设备也可以流畅渲染虚拟对象,以降低对电子设备的性能要求并提升用户体验感。
在一个实施例中,本申请提供了一种虚拟对象渲染方法,该方法可以应用在电子设备中。本文所述的电子设备但不限于应用在各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。
如图1所示,本申请的虚拟对象渲染方法具体可以包括如下步骤:
S102:在当前渲染周期中,分别判断每个混合变形对应的权重系数是否发生调整。
具体而言,在渲染虚拟对象的过程中,电子设备会按照已设定的渲染帧率生成多个渲染帧,并根据各个渲染帧生成最终的显示画面。本文所述的渲染周期可以是用于生成一个渲染帧的时间周期,而当前渲染周期可以是用于生成最新渲染帧的时间周期,前一渲染周期可以是用于生成前一渲染帧的时间周期。
在生成显示画面的过程中,虚拟对象的形状在不同的渲染帧之间会有所差别,例如虚拟数字人的表情特征在连续多个渲染帧中均不相同以实现动态表情。而虚拟对象的形状是由各个混合变形对应的权重系数来确定的,也即需要通过调整各个混合变形对应的权重系数来达到调整虚拟对象形状的目的,因此,各个混合变形对应的权重系数存在调整的可能性,当各个混合变形对应的权重系数发生调整时,表明虚拟对象的形状也会有所改变。
基于此,电子设备可以分别判断每个混合变形对应的权重系数是否发生调整,以确定虚拟对象的形状是否有所改变。也即,在当前渲染周期内,对于每个混合变形,电子设备均可判断该混合变形对应的权重系数是否有所改变。
需要说明的是,本文所述的“调整”是相较于前一渲染周期而言的,换言之,若混合变形在当前渲染周期内对应的权重系数,不同于该混合变形在前一渲染周期内对应的权重系数,则确定该混合变形对应的权重系数发生了调整。进一步地,若当前渲染周期是用于生成首个渲染帧的时间周期,则电子设备可以将每个混合变形对应的权重系数与预设系数阈值进行比较。可以理解,该预设系数阈值可以依据实际情况确定,本文对此不作具体限制。在一个示例中,预设系数阈值可以为0,也即,当当前渲染周期是用于生成首个渲染帧的时间周期时,电子设备会将每个不为0的权重系数判定为发生调整的权重系数。
S104:若至少一个混合变形对应的权重系数发生调整,则根据目标混合变形对应的权重系数生成混合变形合并结果,并将混合变形合并结果存储至缓冲区中;其中,目标混合变形为权重系数发生调整的混合变形。
具体而言,若一个或多个混合变形对应的权重系数有所调整,则表明虚拟对象在当前渲染帧的形状不同于其在前一渲染帧的形状。因此,电子设备需要根据调整后的权重系数对混合变形进行合并计算,并得到混合变形合并结果,以便于以最新的混合变形合并结果作为基础渲染虚拟对象,使得虚拟对象的形状有所改变。可以理解,本申请可采用任意方式来实现合并计算,进而得到混合变形合并结果。
在得到与调整后的权重系数对应的混合变形合并结果后,电子设备可将该混合变形合并结果存入电子设备的缓冲区(buffer)中,使得缓冲区可以存储有对应于最新权重系数的混合变形合并结果。
S106:若各个混合变形对应的权重系数均未发生调整,或最新获取的混合变形合并结果存储完毕,则根据缓冲区存储的混合变形合并结果渲染虚拟对象,并进入下一渲染周期。
具体而言,当全部混合变形在当前渲染周期对应的权重系数均与前一渲染周期对应的权重系数相同,或者S104执行完毕时,电子设备可以根据缓冲区内存储的混合变形合并结果渲染虚拟对象,完成当前渲染帧的画面展示,并进入下一个渲染周期。在下一个渲染周期内,电子设备可重复执行S102至S106。
由此可见,当虚拟对象在当前渲染周期的形状与在前一渲染周期的形状不同时,电子设备可以及时计算最新的混合变形合并数据,以便于展示虚拟对象的最新形状。当虚拟对象在当前渲染周期的形状与在前一渲染周期的形状相同时,电子设备可直接根据缓冲区内的混合变形合并结果进行画面渲染,无需再次进行合并计算。如此,可以在确保画面效果的前提下降低运算频次,从而降低渲染时的运算消耗,使得低性能的电子设备也可以流畅渲染虚拟对象,进而降低对电子设备的性能要求并提升用户体验感。
在一个实施例中,如图2所示,根据目标混合变形对应的权重系数生成混合变形合并结果,并将混合变形合并结果存储至缓冲区中的步骤,包括:
S202:根据目标混合变形的所属类型,确定与目标混合变形属于同一类型的各个同类混合变形;在各个混合变形中,至少两个混合变形的所属类型不同;
S204:基于目标混合变形对应的权重系数,对目标混合变形和各个同类混合变形进行加权,以得到混合变形合并结果;
S206:将最新获取的混合变形合并结果存储至目标存储位置,目标存储位置为缓冲区中与目标混合变形的所属类型相对应的位置。
具体而言,用于生成一个虚拟对象的混合变形数量众多,例如,一个虚拟数字人的形状需要基于666个混合变形来确定。对此,电子设备可以将各个混合变形划分为至少两种类型,每个混合变形属于一种类型,以使每种类型所对应的混合变形数量小于混合变形总数量。
在合并计算的过程中,电子设备可以按照类型来进行计算,以得到每种类型对应的混合变形合并结果。可以理解,各个类型的划分和每个混合变形的所属类型均可依据实际情况确定,本文对此不作具体限制。以虚拟数字人为例,可按照权重系数的调整频率,将各个混合变形分为高频变化类和低频变化类。或者,按照各个混合变形与虚拟数字人的器官部位之间的对应关系,将各个混合变形分为躯干类、面部器官类和表情器官类等。
在当前渲染周期内,若至少一个混合变形对应的权重系数发生调整,则电子设备可以根据目标混合变形的所属类型,对该所属类型对应的混合变形合并结果进行更新。具体地,电子设备可以确定与目标混合变形同属一类的各个同类混合变形,并根据目标混合变形对应的权重系数和各个同类混合变形对应的权重系数,对目标混合变形和各个同类混合变形进行合并计算,以得到混合变形合并结果,并将最新得到的混合变形合并结果存储到与目标混合变形的所属类型对应的位置中。进一步地,电子设备可基于ComputeShader技术,在GPU上进行并行计算来实现合并计算,以提高合并计算的计算效率。
在一个示例中,目标混合变形的所属类型为预先设置的,例如预先确定每个混合变形归属于高频变化类或者低频变化类,以快速确定目标混合变形的所属分类,完成合并计算。在另一个示例中,目标混合变形的所属类型可以是根据目标混合变形对应的权重系数在统计周期内的调整次数实时确定的,如此,可根据调整情况准确确定目标混合变形的所属分类。
在渲染时,电子设备可以分别将各种类型对应的混合变形合并结果进行合并,以得到最终的合并结果,并基于该最终的合并结果渲染虚拟对象,完成当前渲染帧的画面展示。
本实施例中,通过对各个混合变形划分为至少两种类型,并在至少一个混合变形对应的权重系数有所调整时,对该混合变形及其同类混合变形进行合并计算,从而可有效减少合并计算的运算量,并实现精确计算,以进一步降低运算消耗。
在一个实施例中,用于划分各个混合变形的至少两种类型可以包括渐变类型。其中,渐变类型是指混合变形与虚拟对象中有渐进式变化需求的部分相对应。以虚拟数字人为例,当虚拟数字人存在表情动态变化需求时,与表情特征相关的混合变形可以归属于渐变类型,例如用于确定虚拟数字人的眼睛形状、嘴巴形状和鼻子形状的混合变形可以归属于渐变类型。
在缓冲区中,渐变类型可对应有第一区域和第二区域。需要说明的是,第一区域与第二区域非同一物理存储位置,第一区域和第二区域可用于存储不同的数据。
若目标混合变形的所属类型为渐变类型,则将最新获取的混合变形合并结果存储至目标存储位置的步骤,包括:
将存储在第一区域中的混合变形合并结果存储至第二区域中;
将最新获取的混合变形合并结果存储至第一区域中。
具体而言,由于渐进式变化需要结合变化的起点和终点来实现,因此,在需要更新渐变类型对应的混合变形合并结果的情况下,电子设备需要同时保存渐变类型在本次更新前后对应的混合变形合并结果,以便于在渲染虚拟对象时,将本次更新前对应的混合变形合并结果作为渐变起点,将本次更新后对应的混合变形合并结果作为渐变终点,进而实现渐进式变化。
在本申请中,当目标混合变形的所属类型为渐变类型时,电子设备在将最新计算得到的混合变形合并结果存入第一区域之前,需要将第一区域的原存储数据存储到第二区域中,以通过第二区域来保存渐变类型在本次更新前对应的混合变形合并结果。在存储完成后,电子设备可将最新计算得到的混合变形合并结果存入第一区域,以通过第一区域来保存渐变类型在本次更新后对应的混合变形合并结果。
本实施例中,电子设备可通过第一区域和第二区域分别保存渐变类型在本次更新前后对应的混合变形合并结果,从而可避免数据丢失而导致形状突变,使得虚拟对象可满足渐变需求。
在一个实施例中,如图3所示,根据缓冲区存储的混合变形合并结果渲染虚拟对象的步骤,包括:
S302:确定当前渲染周期对应的插值系数;
S304:从第一区域中读取第一混合变形合并结果,以及从第二区域中读取第二混合变形合并结果;
S306:根据插值系数,对第一混合变形合并结果和第二混合变形合并结果进行插值计算,以得到插值计算结果;
S308:基于插值计算结果渲染虚拟对象。
在虚拟对象的一些应用场景中,虚拟对象的形状是根据摄像头实时采集的视频数据来确定的,例如依据摄像头实时采集的人脸表情来生成虚拟对象的表情。在大部分电子设备中,摄像头的最佳频率是24到30帧,加之电子设备需要对视频数据进行表情捕捉推理计算,方可得到用于指示各个混合变形对应的权重系数的虚拟对象驱动帧,因此,虚拟对象驱动帧的数据帧率低于虚拟对象的渲染帧率。同时,摄像头的采集帧率和虚拟对象驱动帧的数据帧率越高,则电子设备需要耗费更多的运算资源。
为了在保持虚拟对象的形变平滑度的前提下,减少虚拟对象驱动帧的数据帧率,本申请可采用插值计算的方式来渲染渐变类型特征,以进一步降低运算消耗,进而降低对电子设备的性能要求。
具体而言,在当前渲染周期内,电子设备可以确定当前渲染周期对应的插值系数,并采用该插值系数,对存储在第一区域中的第一混合变形合并结果和存储在第二区域中的第二混合变形合并结果进行插值计算,以得到插值计算结果。
在一个示例中,电子设备可以基于这一表达式进行插值计算。其中,/>是当前渲染周期对应的插值计算结果;/>函数是用于进行插值计算的函数;当至少一个混合变形对应的权重系数发生调整时,/>是第二混合变形合并结果,当各个混合变形对应的权重系数均未发生调整时,/>是前一渲染周期对应的插值计算结果;/>是第一混合变形合并结果,/>是当前渲染周期对应的插值系数。
在得到当前渲染周期对应的插值计算结果的情况下,电子设备可以基于该插值计算结果渲染虚拟对象。在其中一个实施例中,电子设备可以进行蒙皮计算,以得到蒙皮计算结果,并将蒙皮计算结果保存在缓冲区的第四区域中。当各个混合变形被划分为可突变类型和渐变类型两种类型时,电子设备可以将蒙皮计算结果、可突变类型对应的混合变形合并结果和渐变类型对应的插值计算结果进行累加,以得到虚拟对象在当前渲染周期内的各个顶点坐标,并将各个顶点坐标存储到缓冲区的第五区域中。在进行顶点着色时,电子设备可直接从第五区域中读取各个顶点坐标,并据此进行画面渲染。
在一个实施例中,确定当前渲染周期对应的插值系数的步骤,包括:
获取当前时刻和前一虚拟对象驱动帧所对应的接收时刻;
计算当前时刻与接收时刻之间的差值,并计算差值与预设的平滑系数之间的乘积;
将乘积与预设的驱动帧平均输入时间间隔之比作为当前渲染周期对应的插值系数。
其中,驱动帧平均输入时间间隔是指接收时刻相邻的两个虚拟对象驱动帧之间的平均时间间隔。电子设备可基于以下表达式计算当前渲染周期对应的插值系数:
进一步地,平滑系数的数值范围可以是(0,1],其具体数值可以依据实际情况确定,本文对此不作具体限制。考虑到平滑系数的取值越小,虚拟对象的形变平滑度越高,虚拟对象对于形变的灵敏度越低,因此,在一个优选的示例中,平滑系数可以在[A1,A2]范围内取值,其中A1的具体数值可以是电子设备的最小表情捕捉帧率与渲染帧率之间的比值,A2的具体数值可以是电子设备的额平均表情捕捉帧率与渲染帧率之间的比值,例如,A1可以是0.5,A2可以是0.9。
在一个实施例中,用于划分各个混合变形的至少两种类型可以包括可突变类型。其中,可突变类型是指混合变形与虚拟对象中可发生突变的部分相对应。以虚拟数字人为例,在进行创造虚拟数字人的形象时,躯干、脸型等特征均可发生突变,以便于快速获知最新形状,因此,用于确定虚拟数字人的躯干形状和脸型形状的混合变形归属于可突变类型。
在缓冲区中,可突变类型可对应有第三区域。需要说明的是,第三区域与上述第一区域、第二区域非同一物理存储位置,换言之,第一区域、第二区域和第三区域所存储的数据可以互不相同。
若目标混合变形的所属类型为可突变类型,则将最新获取的混合变形合并结果存储至目标存储位置的步骤,包括:将最新获取的混合变形合并结果存储至第三区域中,以覆盖第三区域的原存储数据。换言之,当可突变类型对应的混合变形合并数据需要更新时,电子设备可直接丢弃可突变类型对应的原合并数据,并存储可突变类型对应的最新合并数据,以节省存储空间。
在一个实施例中,虚拟对象在渲染过程中涉及大量的数据,例如各个混合变形的每个原始顶点坐标和顶点坐标变化值、各个混合变形的索引、权重系数、和采用本文上述实施例所述方法计算得出的结果数据等。但是,在电子设备中,数据缓冲区(ComputeBuffer)是有限的,一般为4个。因此,需要将数据进行整合,以确保虚拟对象渲染方法能够在大部分的电子设备上运行。经过大量的测试与分析,本申请按照如下方式将各式渲染数据进行整合,以确保本申请提供的方法能够在大部分电子设备上运行:
(1)将各个混合变形的相关数据整合存储至第一缓冲区中,各个混合变形的相关数据包括但不限于各个混合变形的原始顶点坐标数组和法线数组;
(2)将各个混合变形对应的索引和权重系数整合存储至第二数据缓冲区中;
(3)将采用本文上述实施例所述方法计算得出的结果数据整合存储至第三数据缓冲区中,第三数据缓冲区存储的数据包括但不限于各种类型对应的混合变形结果。
在虚拟数字人的应用中,由于虚拟数字人角色的表情变化是局部的,因此在每个混合变形中需要调整坐标的顶点数量占比比较小,因此在进行合并计算时,电子设备可以以目标混合变形对应的形状序号和各个同类混合变形对应的形状序号,从第一数据缓冲区和第二数据缓冲区分别索引出待调整顶点的原始坐标和权重系数,并据此进行混合计算。如此,可有效减少计算量,以进一步减小对电子设备的性能要求。
作为一个示例,如图4所示,在每个渲染周期中,本申请提供的虚拟对象渲染方法均可包括如下步骤:
S402:通过第一脏标识判断可突变类型对应的混合变形是否发生权重系数调整,若是,则进入S404,否则,进入S408;
S404:对可突变类型对应的各个混合变形进行合并计算,以得到可突变类型对应的混合变形合并结果;
S406:将可突变类型对应的混合变形合并结果存储缓冲区的第三区域;
S408:通过第二脏标识判断渐变类型对应的混合变形是否发生权重系数调整,若是,则进入S410,否则,进入S416;
S410:将渐变类型当前对应的混合变形合并数据存储到第二区域中;
S412:对渐变类型对应的各个混合变形进行合并计算,以得到渐变类型对应的混合变形合并结果;
S414:将渐变类型最新对应的混合变形合并结果存储缓冲区的第一区域;
S416:上传当前渲染周期对应的插值系数;
S418:进行蒙皮计算,以得到蒙皮计算结果,并将蒙皮计算结果保存在缓冲区的第四区域中;
S420:基于插值系数对渐变类型对应的混合变形合并数据进行插值计算,以得到的插值计算结果,并将蒙皮计算结果、可突变类型对应的混合变形合并结果和渐变类型对应的插值计算结果进行累加,以得到虚拟对象在当前渲染周期内的各个顶点坐标;
S422:将各个顶点坐标存储到缓冲区的第五区域中;
S424:依据第五区域中存储的各个顶点坐标渲染虚拟对象。
经测试,对于混合变形总数量为666个,顶点总数量为78700个的卡通人物测试模型,在采用同一智能手机测试的情况下,采用现有技术渲染虚拟对象时,着色器算术逻辑单元的占用率为27.1%,而采用本申请渲染虚拟对象时,着色器算术逻辑单元的占用率为15.4%。在采用同一智能平板测试的情况下,采用现有技术渲染虚拟对象时,着色器算术逻辑单元的占用率为21.8%,而采用本申请渲染虚拟对象时,着色器算术逻辑单元的占用率为18.6%。由此可见,采用本申请的方案可以大大降低运算量,进而降低对电子设备的性能要求。
下面对本申请实施例提供的虚拟对象渲染装置进行描述,下文描述的虚拟对象渲染装置与上文描述的虚拟对象渲染方法可相互对应参照。
在一个实施例中,本申请提供了一种虚拟对象渲染装置500。如图5所示,该装置500包括判断模块510、合并结果计算模块520和渲染模块530,其中:
判断模块510,用于在当前渲染周期中,分别判断每个混合变形对应的权重系数是否发生调整;
合并结果计算模块520,用于在至少一个所述混合变形对应的权重系数发生调整的情况下,根据目标混合变形对应的权重系数生成混合变形合并结果,并将所述混合变形合并结果存储至缓冲区中;其中,所述目标混合变形为权重系数发生调整的混合变形;
渲染模块530,用于在各个所述混合变形对应的权重系数均未发生调整,或最新获取的所述混合变形合并结果存储完毕的情况下,根据所述缓冲区存储的所述混合变形合并结果渲染虚拟对象,并进入下一渲染周期。
在一个实施例中,本申请的合并结果计算模块520可以包括同类确定单元、加权计算单元和数据存储单元。其中,同类确定单元用于根据所述目标混合变形的所属类型,确定与所述目标混合变形属于同一类型的各个同类混合变形;在各个所述混合变形中,至少两个所述混合变形的所属类型不同。加权计算单元用于基于所述目标混合变形对应的权重系数,对所述目标混合变形和各个所述同类混合变形进行加权,以得到所述混合变形合并结果。数据存储单元用于将最新获取的所述混合变形合并结果存储至目标存储位置,所述目标存储位置为所述缓冲区中与所述目标混合变形的所属类型相对应的位置。
在一个实施例中,当所述目标混合变形的所属类型为渐变类型时,所述目标存储位置包括第一区域和第二区域。
若所述目标混合变形的所属类型为所述渐变类型,则数据存储单元包括第一存储单元和第二存储单元。其中,第一存储单元用于将存储在所述第一区域中的混合变形合并结果存储至所述第二区域中。第二存储单元用于将最新获取的所述混合变形合并结果存储至所述第一区域中。
在一个实施例中,本申请的渲染模块530包括系数确定单元、数据读取单元、插值计算单元和对象渲染单元。其中,系数确定单元用于确定所述当前渲染周期对应的插值系数。数据读取单元用于从所述第一区域中读取第一混合变形合并结果,以及从所述第二区域中读取第二混合变形合并结果。插值计算单元用于根据所述插值系数,对所述第一混合变形合并结果和所述第二混合变形合并结果进行插值计算,以得到插值计算结果。对象渲染单元用于基于所述插值计算结果渲染所述虚拟对象。
在一个实施例中,系数确定单元包括时刻获取单元、第一计算单元和第二计算单元。时刻获取单元用于获取当前时刻和前一虚拟对象驱动帧所对应的接收时刻。第一计算单元用于计算所述当前时刻与所述接收时刻之间的差值,并计算所述差值与预设的平滑系数之间的乘积。第二计算单元用于将所述乘积与预设的驱动帧平均输入时间间隔之比作为所述当前渲染周期对应的插值系数。
在一个实施例中,当所述目标混合变形的所属类型为可突变类型时,所述目标存储位置为第三区域。
若所述目标混合变形的所属类型为所述可突变类型,则数据存储单元包括第三存储单元。其中,该第三存储单元用于将最新获取的所述混合变形合并结果存储至所述第三区域中,以覆盖所述第三区域的原存储数据。
在一个实施例中,所述目标混合变形的所属类型为预先设置的;或者,所述目标混合变形的所属类型是根据所述目标混合变形对应的权重系数在统计周期内的调整次数实时确定的。
在一个实施例中,本申请还提供了一种存储介质,该存储介质中存储有计算机可读指令,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如任意实施例中虚拟对象渲染方法的步骤。
在一个实施例中,本申请还提供了一种电子设备,所述电子设备中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如任意实施例中虚拟对象渲染方法的步骤。
示意性地,图6为本申请实施例提供的一种电子设备的内部结构示意图。参照图6,电子设备900包括处理组件902,其进一步包括一个或多个处理器,以及由存储器901所代表的存储器资源,用于存储可由处理组件902的执行的指令,例如应用程序。存储器901中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件902被配置为执行指令,以执行上述任意实施例所述虚拟对象渲染方法的步骤。
电子设备900还可以包括一个电源组件903被配置为执行电子设备900的电源管理,一个有线或无线网络接口904被配置为将电子设备900连接到网络,和一个输入输出接口905。电子设备900可以操作基于存储在存储器901的操作系统。
本领域技术人员可以理解,本申请示出的电子设备的内部结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本文中,“一”、“一个”、“所述”、“该”和“其”也可以包括复数形式,除非上下文清楚指出另外的方式。多个是指至少两个的情况,如2个、3个、5个或8个等。“和/或”包括相关所列项目的任何及所有组合。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种虚拟对象渲染方法,其特征在于,所述方法包括:
在当前渲染周期中,分别判断每个混合变形对应的权重系数是否发生调整;
若至少一个所述混合变形对应的权重系数发生调整,则根据目标混合变形对应的权重系数生成混合变形合并结果,并将所述混合变形合并结果存储至缓冲区中;其中,所述目标混合变形为权重系数发生调整的混合变形;
若各个所述混合变形对应的权重系数均未发生调整,或最新获取的所述混合变形合并结果存储完毕,则根据所述缓冲区存储的所述混合变形合并结果渲染虚拟对象,并进入下一渲染周期;所述虚拟对象为虚拟场景中的待渲染对象。
2.根据权利要求1所述的虚拟对象渲染方法,其特征在于,所述根据目标混合变形对应的权重系数生成混合变形合并结果,并将所述混合变形合并结果存储至缓冲区中的步骤,包括:
根据所述目标混合变形的所属类型,确定与所述目标混合变形属于同一类型的各个同类混合变形;在各个所述混合变形中,至少两个所述混合变形的所属类型不同;
基于所述目标混合变形对应的权重系数,对所述目标混合变形和各个所述同类混合变形进行加权,以得到所述混合变形合并结果;
将最新获取的所述混合变形合并结果存储至目标存储位置,所述目标存储位置为所述缓冲区中与所述目标混合变形的所属类型相对应的位置。
3.根据权利要求2所述的虚拟对象渲染方法,其特征在于,当所述目标混合变形的所属类型为渐变类型时,所述目标存储位置包括第一区域和第二区域;
若所述目标混合变形的所属类型为所述渐变类型,则所述将最新获取的所述混合变形合并结果存储至目标存储位置的步骤,包括:
将存储在所述第一区域中的混合变形合并结果存储至所述第二区域中;
将最新获取的所述混合变形合并结果存储至所述第一区域中。
4.根据权利要求3所述的虚拟对象渲染方法,其特征在于,所述根据所述缓冲区存储的所述混合变形合并结果渲染虚拟对象的步骤,包括:
确定所述当前渲染周期对应的插值系数;
从所述第一区域中读取第一混合变形合并结果,以及从所述第二区域中读取第二混合变形合并结果;
根据所述插值系数,对所述第一混合变形合并结果和所述第二混合变形合并结果进行插值计算,以得到插值计算结果;
基于所述插值计算结果渲染所述虚拟对象。
5.根据权利要求4所述的虚拟对象渲染方法,其特征在于,所述确定所述当前渲染周期对应的插值系数的步骤,包括:
获取当前时刻和前一虚拟对象驱动帧所对应的接收时刻;
计算所述当前时刻与所述接收时刻之间的差值,并计算所述差值与预设的平滑系数之间的乘积;
将所述乘积与预设的驱动帧平均输入时间间隔之比作为所述当前渲染周期对应的插值系数。
6.根据权利要求2所述的虚拟对象渲染方法,其特征在于,当所述目标混合变形的所属类型为可突变类型时,所述目标存储位置为第三区域;
若所述目标混合变形的所属类型为所述可突变类型,则所述将最新获取的所述混合变形合并结果存储至目标存储位置的步骤,包括:
将最新获取的所述混合变形合并结果存储至所述第三区域中,以覆盖所述第三区域的原存储数据。
7.根据权利要求2至6任一项所述的虚拟对象渲染方法,其特征在于,所述目标混合变形的所属类型为预先设置的;或者,所述目标混合变形的所属类型是根据所述目标混合变形对应的权重系数在统计周期内的调整次数实时确定的。
8.一种虚拟对象渲染装置,其特征在于,所述装置包括:
判断模块,用于在当前渲染周期中,分别判断每个混合变形对应的权重系数是否发生调整;
合并结果计算模块,用于在至少一个所述混合变形对应的权重系数发生调整的情况下,根据目标混合变形对应的权重系数生成混合变形合并结果,并将所述混合变形合并结果存储至缓冲区中;其中,所述目标混合变形为权重系数发生调整的混合变形;
渲染模块,用于在各个所述混合变形对应的权重系数均未发生调整,或最新获取的所述混合变形合并结果存储完毕的情况下,根据所述缓冲区存储的所述混合变形合并结果渲染虚拟对象,并进入下一渲染周期;所述虚拟对象为虚拟场景中的待渲染对象。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项所述虚拟对象渲染方法的步骤。
10.一种电子设备,其特征在于,包括:一个或多个处理器,以及存储器;所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,执行如权利要求1至7中任一项所述虚拟对象渲染方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310355271.8A CN116059637B (zh) | 2023-04-06 | 2023-04-06 | 虚拟对象渲染方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310355271.8A CN116059637B (zh) | 2023-04-06 | 2023-04-06 | 虚拟对象渲染方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116059637A CN116059637A (zh) | 2023-05-05 |
CN116059637B true CN116059637B (zh) | 2023-06-20 |
Family
ID=86173500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310355271.8A Active CN116059637B (zh) | 2023-04-06 | 2023-04-06 | 虚拟对象渲染方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116059637B (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050156930A1 (en) * | 2004-01-20 | 2005-07-21 | Matsushita Electric Industrial Co., Ltd. | Rendering device and rendering method |
US10255713B2 (en) * | 2014-12-29 | 2019-04-09 | Google Llc | System and method for dynamically adjusting rendering parameters based on user movements |
CN107958480B (zh) * | 2017-11-23 | 2021-04-30 | 腾讯科技(上海)有限公司 | 图像渲染方法、装置及存储介质 |
CN113538648B (zh) * | 2021-07-27 | 2024-04-30 | 歌尔科技有限公司 | 图像渲染方法、装置、设备及计算机可读存储介质 |
CN114339069B (zh) * | 2021-12-24 | 2024-02-02 | 北京百度网讯科技有限公司 | 视频处理方法、装置、电子设备及计算机存储介质 |
CN115738292A (zh) * | 2022-11-30 | 2023-03-07 | 广州趣丸网络科技有限公司 | 好友列表展示方法、装置、存储介质及计算机设备 |
-
2023
- 2023-04-06 CN CN202310355271.8A patent/CN116059637B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN116059637A (zh) | 2023-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xiao et al. | Brightness and contrast controllable image enhancement based on histogram specification | |
CN110399825B (zh) | 面部表情迁移方法、装置、存储介质及计算机设备 | |
CN105144234A (zh) | 使用与示例相似图像相关联的示例近似深度映射图对输入图像生成深度映射图 | |
CN109961496B (zh) | 表情驱动方法及表情驱动装置 | |
CN108335367A (zh) | 一种用于终端展示的三维模型处理方法 | |
CN111047509A (zh) | 一种图像特效处理方法、装置及终端 | |
US9019268B1 (en) | Modification of a three-dimensional (3D) object data model based on a comparison of images and statistical information | |
CN101930367B (zh) | 切屏动画实现方法及移动终端 | |
US20200334862A1 (en) | Moving image generation apparatus, moving image generation method, and non-transitory recording medium | |
CN103530243B (zh) | 用于确定用于设备的设置的系统、方法 | |
CN114638950A (zh) | 一种绘制虚拟物体阴影的方法及设备 | |
CN113610958A (zh) | 一种基于风格迁移的3d图像构建方法、装置及终端 | |
CN116185179A (zh) | 基于众包眼动数据的全景图视觉显著性预测方法和系统 | |
CN106023093A (zh) | 一种基于改进图像块匹配的非局部均值图像去噪方法 | |
CN108961268B (zh) | 一种显著图计算方法及相关装置 | |
CN116059637B (zh) | 虚拟对象渲染方法、装置、存储介质及电子设备 | |
CN116596935B (zh) | 形变检测方法、装置、计算机设备及计算机可读存储介质 | |
Taghavi et al. | Visualization of multi-objective design space exploration for embedded systems | |
CN113989121A (zh) | 归一化处理方法及装置、电子设备、存储介质 | |
CN103778658A (zh) | 一种快速展示体数据特征的可视化方法 | |
CN110544221B (zh) | 训练方法及装置、去雨方法、终端设备、存储介质 | |
CN110728746B (zh) | 动态纹理的建模方法及系统 | |
US8704831B2 (en) | Irradiance rigs | |
Zou et al. | A predictive intelligence approach for low-light enhancement | |
WO2021139178A1 (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 |