动画帧的显示方法、装置、设备及存储介质与流程

文档序号:29571849发布日期:2022-04-09 04:09阅读:219来源:国知局
动画帧的显示方法、装置、设备及存储介质与流程

1.本技术实施例涉及计算机技术领域,特别涉及一种动画帧的显示方法、装置、设备及存储介质。


背景技术:

2.随着计算机技术的发展,能够提供虚拟环境的应用程序越来越多,虚拟环境中包括至少一个虚拟模型,终端在显示虚拟环境的画面时,会在画面中显示该至少一个虚拟模型的动画帧,以供交互对象查看。
3.相关技术中,直接根据虚拟模型的初始动画更新频率显示虚拟模型对应的动画帧。其中,虚拟模型的初始动画更新频率基于虚拟模型的渲染尺寸与参考尺寸的比值确定。
4.基于虚拟模型的初始动画更新频率显示动画帧的方式容易降低动画帧的显示流畅性,导致人机交互率较低。


技术实现要素:

5.本技术实施例提供了一种动画帧的显示方法、装置、设备及存储介质,可用于提供动画帧的显示流畅性。所述技术方案如下:
6.一方面,本技术实施例提供了一种动画帧的显示方法,所述方法包括:
7.基于至少一个虚拟模型的初始动画更新频率,获取资源消耗指标,所述资源消耗指标用于指示根据所述至少一个虚拟模型的初始动画更新频率进行动画更新需要消耗的资源量;
8.基于所述资源消耗指标以及所述初始动画更新频率,获取所述至少一个虚拟模型的目标动画更新频率;
9.根据所述目标动画更新频率,显示所述至少一个虚拟模型对应的动画帧。
10.另一方面,提供了一种动画帧的显示装置,所述装置包括:
11.第一获取单元,用于基于至少一个虚拟模型的初始动画更新频率,获取资源消耗指标,所述资源消耗指标用于指示根据所述至少一个虚拟模型的初始动画更新频率进行动画更新需要消耗的资源量;
12.第二获取单元,用于基于所述资源消耗指标以及所述初始动画更新频率,获取所述至少一个虚拟模型的目标动画更新频率;
13.显示单元,用于根据所述目标动画更新频率,显示所述至少一个虚拟模型对应的动画帧。
14.在一种可能实现方式中,所述第二获取单元,用于当所述资源消耗指标大于资源消耗阈值时,基于所述资源消耗指标和所述资源消耗阈值,确定调整系数;基于所述调整系数对所述初始动画更新频率进行调整,得到所述至少一个虚拟模型的第一动画更新频率;基于所述第一动画更新频率,获取所述至少一个虚拟模型的目标动画更新频率。
15.在一种可能实现方式中,所述第二获取单元,用于当第一虚拟模型满足第一模型
筛选条件,且所述第一虚拟模型的第一动画更新频率不高于参考动画更新频率时,将所述参考动画更新频率作为所述第一虚拟模型的目标动画更新频率,所述第一虚拟模型为所述至少一个虚拟模型中的任一虚拟模型。
16.在一种可能实现方式中,所述第二获取单元,用于当第一虚拟模型满足第一模型筛选条件,且所述第一虚拟模型的第一动画更新频率高于参考动画更新频率时;或者,当所述第一虚拟模型不满足第一模型筛选条件时,将所述第一虚拟模型的第一动画更新频率作为所述第一虚拟模型的目标动画更新频率,所述第一虚拟模型为所述至少一个虚拟模型中的任一虚拟模型。
17.在一种可能实现方式中,所述第二获取单元,用于当所述资源消耗指标不大于资源消耗阈值时,将所述初始动画更新频率作为所述至少一个虚拟模型的目标动画更新频率。
18.在一种可能实现方式中,所述显示单元,用于当第一虚拟模型的目标动画更新频率与所述第一虚拟模型的计数值不匹配时,显示所述第一虚拟模型的第一动画帧或目标动画帧,所述第一虚拟模型为所述至少一个虚拟模型中的任一虚拟模型;当所述第一虚拟模型的目标动画更新频率与所述第一虚拟模型的计数值匹配时,显示所述第一虚拟模型的第二动画帧;其中,所述第一动画帧为所述第一虚拟模型的动画中已显示的最新的动画帧,所述第二动画帧为所述第一虚拟模型的动画中位于所述第一动画帧后一位的动画帧,所述目标动画帧基于所述第一动画帧、所述第二动画帧和所述第一虚拟模型的计数值确定。
19.在一种可能实现方式中,所述显示单元,用于当所述第一虚拟模型不满足第二模型筛选条件时,显示所述第一虚拟模型的第一动画帧;当所述第一虚拟模型满足所述第二模型筛选条件时,显示所述第一虚拟模型的目标动画帧。
20.在一种可能实现方式中,所述显示单元,用于当第一虚拟模型关联于第二虚拟模型时,将所述第一虚拟模型的目标动画更新频率调整为所述第二虚拟模型的动画更新频率,得到所述第一虚拟模型的调整后的动画更新频率,所述第一虚拟模型为所述至少一个虚拟模型中的任一虚拟模型;根据所述第一虚拟模型的调整后的动画更新频率,显示所述第一虚拟模型对应的动画帧。
21.在一种可能实现方式中,所述显示单元,还用于将所述第一虚拟模型的计数值调整为所述第二虚拟模型的计数值,以使所述第一虚拟模型的动画更新与所述第二虚拟模型的动画更新同步。
22.在一种可能实现方式中,所述第一获取单元,用于获取所述至少一个虚拟模型的资源消耗子指标,任一虚拟模型的资源消耗子指标与所述任一虚拟模型的初始动画更新频率呈正相关关系;汇总所述至少一个虚拟模型的资源消耗子指标,得到所述资源消耗指标。
23.在一种可能实现方式中,所述第一获取单元,还用于确定第一虚拟模型的占比值,所述第一虚拟模型为所述至少一个虚拟模型中的任一虚拟模型,所述第一虚拟模型的占比值为所述第一虚拟模型的渲染尺寸与参考尺寸的比值;将所述第一虚拟模型的占比值对应的动画更新频率作为所述第一虚拟模型的初始动画更新频率。
24.在一种可能实现方式中,所述资源消耗阈值为目标类别对应的资源消耗阈值,所述至少一个虚拟模型均为所述目标类别的虚拟模型。
25.另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存
储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以使所述计算机设备实现上述任一所述的动画帧的显示方法。
26.另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使计算机实现上述任一所述的动画帧的显示方法。
27.另一方面,还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序或计算机指令,所述计算机程序或所述计算机指令由处理器加载并执行,以使计算机实现上述任一所述的动画帧的显示方法。
28.本技术实施例提供的技术方案至少带来如下有益效果:
29.本技术实施例提供的技术方案,至少一个虚拟模型对应的动画帧是根据至少一个虚拟模型的目标动画更新频率显示的,其中,至少一个虚拟模型的目标动画更新频率是在至少一个虚拟模型的初始动画更新频率的基础上考虑资源消耗指标确定的。根据至少一个虚拟模型的目标动画更新频率能够对资源消耗进行有效地全局控制,有利于提高动画帧的显示流畅性,进而提高人机交互率。
附图说明
30.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
31.图1是本技术实施例提供的一种动画帧的显示方法的实施环境的示意图;
32.图2是本技术实施例提供的一种动画帧的显示方法的流程图;
33.图3是本技术实施例提供的一种动画更新同步情况的示意图;
34.图4是本技术实施例提供的一种画面显示效果的示意图;
35.图5是本技术实施例提供的一种画面显示效果的示意图;
36.图6是本技术实施例提供的一种画面显示效果的示意图;
37.图7是本技术实施例提供的一种虚拟模型的分布情况的示意图;
38.图8是本技术实施例提供的一种虚拟模型的分布情况的示意图;
39.图9是本技术实施例提供的一种画面显示效果的示意图;
40.图10是本技术实施例提供的一种画面显示效果的示意图;
41.图11是本技术实施例提供的一种动画帧的显示过程的示意图;
42.图12是本技术实施例提供的一种动画帧的显示装置的示意图;
43.图13是本技术实施例提供的一种计算机设备的结构示意图。
具体实施方式
44.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
45.对本技术实施例中涉及的名词进行介绍:
46.虚拟环境:应用程序在终端上运行时提供(或显示)的环境,该虚拟环境是指营造
出的供虚拟对象进行活动的环境。虚拟环境可以是二维虚拟环境、2.5维虚拟环境或三维虚拟环境。该虚拟环境可以是对真实世界的仿真环境,也可以是半仿真半虚构的环境,还可以是纯虚构的环境。
47.虚拟对象:是指虚拟环境中的可活动对象。该虚拟对象可以是虚拟人物、虚拟动物、动漫人物等。交互对象可通过外设部件或点击触摸显示屏的方式操控虚拟对象。每个虚拟对象在虚拟环境中具有自身的形状和体积,占据虚拟环境中的一部分空间。示例性地,当虚拟环境为三维虚拟环境时,虚拟对象是基于动画骨骼技术创建的三维立体模型。
48.虚拟模型:是指虚拟环境中的由骨骼构成的模型。虚拟模型包括但不限于虚拟对象、虚拟道具、虚拟宠物等。终端通过显示虚拟模型的动画来呈现虚拟模型,虚拟模型的动画由多个动画帧构成。虚拟模型的动画中的每个动画帧均根据骨骼之间的关联进行较为复杂的逻辑计算得到,需要消耗的资源(如,cpu(central processing unit,中央处理器)资源)较多。通过控制虚拟模型的动画更新频率,能够控制需要通过逻辑计算得到的动画帧的数量,从而控制资源消耗。
49.fps(frames per second,画面每秒更新帧数):简称帧率,帧率越高,画面体验越流畅。
50.uro(update rate optimizations,动画更新频率优化):是ue4(unreal engine 4,虚幻引擎4)的一种虚拟模型的动画降频优化技术。一些实施例中,uro可以用来描述动画更新频率,如,uro1表示每帧画面更新一次动画,uro2表示每两帧画面更新一次动画,依次类推。
51.资源消耗:虚拟模型的动画更新消耗的资源,例如,消耗的资源是指占用的cpu耗时,资源消耗越高,每帧画面更新所需的cpu耗时越长。
52.图1示出了本技术实施例提供的动画帧的显示方法的实施环境的示意图。该实施环境包括:终端11和服务器12。
53.终端11安装和运行有支持虚拟环境的应用程序。交互对象能够使用终端11控制虚拟对象在应用程序提供的虚拟环境中进行活动,该活动包括但不限于:调整身体姿态、爬行、步行、奔跑、骑行、跳跃、驾驶、拾取、射击、攻击、投掷、改变位置等。
54.本技术实施例对支持虚拟环境的应用程序不加以限定,示例性地,支持虚拟环境的应用程序包括但不限于:vr(virtual reality,虚拟现实)类应用程序、ar(augmented reality,增强现实)类应用程序、三维地图程序、游戏类应用程序、社交类应用程序、互动娱乐类应用程序等。
55.示例性地,游戏类应用程序包括但不限于射击游戏、moba(multiplayer online battle arena,多人在线战术竞技)游戏、slg(simulation game,策略游戏)等。射击游戏是指包含fps(first-person shooting,第一人称射击)游戏、tps(third-personal shooting,第三人称射击)游戏但不仅限于此的所有使用道具进行远程攻击的游戏。
56.在一些实施例中,支持虚拟环境的应用程序可以支持windows操作系统、苹果操作系统、安卓操作系统、ios操作系统和linux操作系统中的至少一种操作系统,运行在不同操作系统中的应用程序可以互联互通。在一些实施例中,支持虚拟环境的应用程序是基于三维引擎开发的应用程序。在一些实施例中,支持虚拟环境的应用程序是单机版的应用程序,或者是网络联机版的应用程序。
57.服务器12用于为终端11安装的支持虚拟环境的应用程序提供后台服务。在一种可能实现方式中,服务器12承担主要计算工作,终端11承担次要计算工作;或者,服务器12承担次要计算工作,终端11承担主要计算工作;或者,服务器12和终端11二者之间采用分布式计算架构进行协同计算。
58.在一种可能实现方式中,终端11是任何一种可与交互对象通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互的电子产品,例如,pc(personal computer,个人计算机)、手机、智能手机、pda(personal digital assistant,个人数字助手)、可穿戴设备、手持便携式游戏设备、ppc(pocket pc,掌上电脑)、平板电脑、智能车机、智能电视、智能音箱、车载终端等。服务器12可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。终端11与服务器12通过有线或无线网络建立通信连接。
59.本领域技术人员应能理解上述终端11和服务器12仅为举例,其他现有的或今后可能出现的终端或服务器如可适用于本技术,也应包含在本技术保护范围以内,并在此以引用方式包含于此。
60.基于上述图1所示的实施环境,本技术实施例提供一种动画帧的显示方法,以该方法应用于终端11为例。如图2所示,本技术实施例提供的动画帧的显示方法包括如下步骤201至步骤203。
61.在步骤201中,基于至少一个虚拟模型的初始动画更新频率,获取资源消耗指标,资源消耗指标用于指示根据至少一个虚拟模型的初始动画更新频率进行动画更新需要消耗的资源量。
62.至少一个虚拟模型是指处于虚拟环境中的需要通过考虑资源消耗指标来显示动画帧的虚拟模型。本技术实施例对至少一个虚拟模型的数量不加以限定。示例性地,至少一个虚拟模型均为目标类别的虚拟模型。
63.本技术实施例对虚拟模型的类别的划分方式不加以限定,可以根据经验设置,或者根据应用场景灵活调整。示例性地,将虚拟模型均划分为一个类别,则至少一个虚拟模型为需要同屏显示动画帧的全部虚拟模型。示例性地,将虚拟模型划分为虚拟对象类别和虚拟道具类别,假设目标类别为虚拟对象类别,则至少一个虚拟模型为需要同屏显示动画帧的全部虚拟模型中属于虚拟对象类别的虚拟模型。当然,虚拟模型的类别还可以有其他划分方式,本技术实施例对此不加以限定。
64.在示例性实施例中,在应用程序运行之前,每个虚拟模型都会通过唯一字符串标识所属类别,以便于后续以类别为粒度统计资源消耗。
65.在应用程序运行的过程中,不断更新显示的虚拟环境的画面,本技术实施例提供的动画帧的显示方法发生在显示最新一帧虚拟环境的画面的过程中。在显示一帧虚拟环境的画面时,会在画面中显示至少一个虚拟模型的动画帧,本技术实施例对显示至少一个虚拟模型的动画帧的实现过程进行介绍。需要说明的是,在显示一帧虚拟环境的画面时,除了会在画面中显示至少一个虚拟模型的动画帧外,还可能会在画面中显示其他虚拟模型的动画帧或者环境元素等,本技术实施例对此不加以限定。如无特别说明,本技术实施例中提到的画面均是指虚拟环境的画面。
66.至少一个虚拟模型的初始动画更新频率是指获取资源消耗指标所依据的至少一
个虚拟模型具有的动画更新频率。动画更新频率用于指示每多少帧画面更新一次动画,每更新一次动画,则有一个新的动画帧进行表现。该新的动画帧是指动画中的一个动画帧。示例性地,若一个动画更新频率为每n(n为不小于1的整数)帧画面更新一次动画,则该动画更新频率可以表示为uron。
67.在执行步骤201之前,需要先获取至少一个虚拟模型的初始动画更新频率。获取每个虚拟模型的初始动画更新频率的原理相同,以获取第一虚拟模型的初始动画更新频率的过程为例进行说明。其中,第一虚拟模型为至少一个虚拟模型中的任一虚拟模型。
68.示例性地,获取第一虚拟模型的初始动画更新频率的方式包括:将显示上一帧虚拟环境的画面时该第一虚拟模型具有的动画更新频率作为第一虚拟模型的初始动画更新频率。
69.示例性地,获取第一虚拟模型的初始动画更新频率的方式包括:将第一虚拟模型的默认动画更新频率作为第一虚拟模型的初始动画更新频率,第一虚拟模型的默认动画更新频率可以是指第一虚拟模型的一种固有属性。
70.示例性地,获取第一虚拟模型的初始动画更新频率的方式包括:确定第一虚拟模型的占比值,将第一虚拟模型的占比值对应的动画更新频率作为第一虚拟模型的初始动画更新频率。其中,第一虚拟模型的占比值为第一虚拟模型的渲染尺寸与参考尺寸的比值。
71.示例性地,第一虚拟模型的渲染尺寸是指在上一帧虚拟环境的画面中呈现出的第一虚拟模型的渲染尺寸。参考尺寸根据经验设置,或者根据应用场景灵活调整,对于不同的虚拟模型而言,参考尺寸是相同的。示例性地,参考尺寸为虚拟环境的画面的尺寸。示例性地,上一帧虚拟环境的画面中呈现出的第一虚拟模型的渲染尺寸可以通过在显示上一帧虚拟环境的画面时显示的第一虚拟模型的动画帧识别得到。也就是说,第一虚拟模型的占比值随着虚拟环境的画面的更新可能不断发生变化。在此种方式下,在每一帧虚拟环境的画面正式显示之前,会根据上一帧虚拟环境的画面的显示结果获取至少一个虚拟模型的初始动画更新频率,以便于进一步统计资源消耗指标。
72.示例性地,终端中存储有占比值与动画更新频率的对应关系,在确定第一虚拟模型的占比值后,能够根据该占比值与动画更新频率的对应关系,查找第一虚拟模型的占比值对应的动画更新频率,然后将查找到的动画更新频率作为第一虚拟模型的初始动画更新频率。
73.占比值与动画更新频率的对应关系根据经验设置,或者根据应用场景灵活调整,本技术实施例对此不加以限定。在占比值与动画更新频率的对应关系中,第一占比值对应的动画更新频率不低于第二占比值对应的动画更新频率,其中,第一占比值大于第二占比值。
74.在示例性实施例中,终端存储有占比值范围与动画更新频率的对应关系,此种情况下,第一虚拟模型的占比值对应的动画更新频率是指第一虚拟模型的占比值所在的占比值范围对应的动画更新频率。在确定第一虚拟模型的占比值后,确定第一虚拟模型的占比值所在的占比值范围,然后根据占比值范围与动画更新频率的对应关系,查找第一虚拟模型的占比值所在的占比值范围对应的动画更新频率,然后将查找到的动画更新频率作为第一虚拟模型的初始动画更新频率。
75.参考获取第一虚拟模型的初始动画更新频率的方式能够获取至少一个虚拟模型
的初始动画更新频率。在获取至少一个虚拟模型的初始动画更新频率后,基于至少一个虚拟模型的初始动画更新频率,获取资源消耗指标。
76.资源消耗指标用于指示根据至少一个虚拟模型的初始动画更新频率进行动画更新需要消耗的资源量。示例性地,根据至少一个虚拟模型的初始动画更新频率进行动画更新需要消耗的资源量越大,说明根据至少一个虚拟模型的初始动画更新频率显示至少一个虚拟模型对应的动画帧所耗费的资源越多,动画帧的显示流畅性越差。
77.在一种可能实现方式中,基于至少一个虚拟模型的初始动画更新频率,获取资源消耗指标的方式包括:获取至少一个虚拟模型的资源消耗子指标,汇总至少一个虚拟模型的资源消耗子指标,得到资源消耗。其中,任一虚拟模型的资源消耗子指标与任一虚拟模型的初始动画更新频率呈正相关关系。也就是说,任一虚拟模型的初始动画更新频率越高,该任一虚拟模型的资源消耗子指标越大;任一虚拟模型的初始动画更新频率越低,该任一虚拟模型的资源消耗子指标越小。示例性地,任一虚拟资源的资源消耗子指标用于指示根据该任一虚拟模型的初始动画更新频率进行动画更新需要消耗的资源量。
78.获取至少一个虚拟模型的资源消耗子指标的原理相同,以获取第一虚拟模型的资源消耗子指标为例进行说明,第一虚拟模型为至少一个虚拟模型中的任一虚拟模型。
79.示例性地,获取第一虚拟模型的资源消耗子指标的方式包括:确定第一虚拟模型的初始动画更新频率对应的画面帧数,将第一虚拟模型的初始动画更新频率对应的画面帧数的倒数作为该任一虚拟模型的资源消耗子指标。
80.第一虚拟模型的初始动画更新频率对应的画面帧数是指第一虚拟模型的初始动画更新频率指示的更新一次动画需要经过的画面的帧数,例如,若第一虚拟模型的初始动画更新频率为每5帧画面更新一次动画,则第一虚拟模型的初始动画更新频率对应的画面帧数为5。
81.示例性地,假设第一虚拟模型的默认动画更新频率为每1帧画面更新1次动画,则第一虚拟模型的初始动画更新频率对应的画面帧数越大,说明第一虚拟模型的初始动画更新频率相对默认动画更新频率降低的程度越大,根据第一虚拟模型的初始动画更新频率进行动画更新需要消耗的资源量越小。
82.参考获取第一虚拟模型的资源消耗子指标的方式,能够获取至少一个虚拟模型的资源消耗子指标。在获取至少一个虚拟模型的资源消耗子指标后,汇总至少一个虚拟模型的资源消耗子指标,得到资源消耗指标。示例性地,汇总至少一个虚拟模型的资源消耗子指标是指计算至少一个虚拟模型的资源消耗子指标的和。
83.在步骤202中,基于资源消耗指标以及初始动画更新频率,获取至少一个虚拟模型的目标动画更新频率。
84.在获取资源消耗指标后,基于资源消耗指标以及至少一个虚拟模型的初始动画更新频率,获取至少一个虚拟模型的目标动画更新频率。此种方式下,至少一个虚拟模型的目标动画更新频率的获取过程考虑了资源消耗指标,根据至少一个虚拟模型的目标动画更新频率能够对资源消耗进行有效地全局控制,避免由于资源消耗过大导致显示动画帧的耗时较长,有利于提高动画帧的显示流畅性。
85.在一种可能实现方式中,基于资源消耗指标以及初始动画更新频率,获取至少一个虚拟模型的目标动画更新频率的过程包括:当资源消耗指标不大于资源消耗阈值时,将
初始动画更新频率作为至少一个虚拟模型的目标动画更新频率。
86.资源消耗阈值用于限制根据至少一个虚拟模型的动画更新频率进行动画更新最多需要消耗的资源量。资源消耗阈值为预先配置的阈值。
87.在示例性实施例中,通过配置表设定每种类别分别对应的资源消耗阈值,以便于利用每种类别分别对应的资源消耗阈值对每种类别的虚拟模型的动画更新所带来的资源消耗进行约束。示例性地,至少一个虚拟模型均为目标类别的虚拟模型,此种情况下,资源消耗阈值为目标类别对应的资源消耗阈值。
88.在示例性实施例中,资源消耗阈值用于约束全局最多允许每帧画面均更新动画的虚拟模型的数量。在示例性实施例中,资源消耗阈值还可以称为资源消耗预算,或者,动画更新预算等。
89.当资源消耗不大于资源消耗阈值时,说明根据至少一个虚拟模型的初始动画更新频率进行动画更新不会带来较大的资源消耗,此种情况下,可以直接将至少一个虚拟模型的初始动画更新频率作为至少一个虚拟模型的目标动画更新频率。需要说明的是,将至少一个虚拟模型的初始动画更新频率作为至少一个虚拟模型的目标动画更新频率是指将每个虚拟模型的初始动画更新频率作为每个虚拟模型的目标动画更新频率。
90.在一种可能实现方式中,当资源消耗指标大于资源消耗阈值时,基于资源消耗指标以及初始动画更新频率,获取至少一个虚拟模型的目标动画更新频率的过程包括以下步骤1至步骤3。
91.步骤1:基于资源消耗指标和资源消耗阈值,确定调整系数。
92.当资源消耗指标大于资源消耗阈值时,说明根据至少一个虚拟模型的初始动画更新频率进行动画更新会带来较大的资源消耗,此种情况下,需要在资源消耗阈值的约束下对至少一个虚拟模型的初始动画更新频率进行调整,以得到能够带来较小的资源消耗的第一动画更新频率。
93.对至少一个虚拟模型的初始动画更新频率进行调整的过程是基于调整系数实现的,调整系数基于资源消耗指标和资源消耗阈值确定。在一种可能实现方式中,基于资源消耗指标和资源消耗阈值确定调整系数的方式为:将资源消耗指标与资源消耗阈值的比值作为调整系数。由于资源消耗指标大于资源消耗阈值,所以调整系数为大于1的系数。
94.当然,在一些实施例中,基于资源消耗指标和资源消耗阈值确定调整系数的方式还可以为其他方式,本技术实施例对此不加以限定。示例性地,将资源消耗阈值与资源消耗指标的比值作为调整系数,此种情况下,调整系数为小于1的系数。
95.步骤2:基于调整系数对初始动画更新频率进行调整,得到至少一个虚拟模型的第一动画更新频率。
96.在确定调整系数后,基于调整系数对至少一个虚拟模型的初始动画更新频率进行调整,以得到至少一个虚拟模型的第一动画更新频率。示例性地,由于调整系数用于对各个虚拟模型的初始动画更新频率进行调节,所以调整系数还可以称为全局负载均衡缩放系数。
97.需要说明的是,基于调整系数分别对每个虚拟模型的初始动画更新频率进行调整,得到每个虚拟模型的第一动画更新频率。基于调整系数对每个虚拟模型的初始动画更新频率进行调整的原理相同,以基于调整系数对第一虚拟模型的初始动画更新频率进行调
整为例进行说明。其中,第一虚拟模型为至少一个虚拟模型中的任一虚拟模型。
98.基于调整系数对第一虚拟模型的初始动画更新频率进行调整的方式与调整系数的确定方式有关,调整原则是第一虚拟模型的第一动画更新频率低于第一虚拟模型的初始动画更新频率。
99.在一种可能实现方式中,对于调整系数为资源消耗指标与资源消耗阈值的比值的情况,基于调整系数对第一虚拟模型的初始动画更新频率进行调整的方式为:计算第一虚拟模型的初始动画更新频率对应的画面帧数与调整系数的乘积,对乘积进行取整,得到目标值;将对应的画面帧数为目标值的动画更新频率作为第一虚拟模型的第一动画更新频率。
100.对乘积进行取整的方式可以根据经验设置,或者根据应用场景灵活调整,本技术实施例对此不加以限定。示例性地,对乘积进行取整的方式可以为向上取整,也可以为向下取整,还可以为四舍五入取整等。以向上取整为例,可以根据ceil函数(向上取整函数)对乘积进行取整,得到目标值。在得到目标值后,将对应的画面帧数为目标值的动画更新频率作为第一虚拟模型的第一动画更新频率。
101.例如,假设第一虚拟模型的初始动画更新频率为每2帧画面更新一次动画(uro2),调整系数为1.2。则第一虚拟模型的初始动画更新频率对应的画面帧数为2,第一虚拟模型的初始动画更新频率对应的画面帧数与调整系数的乘积为2.4,对乘积进行向上取整后得到的目标值为3,则将对应的画面帧数为3的动画更新频率作为第一虚拟模型的第一动画更新频率,此时确定的第一虚拟模型的第一动画更新频率为每3帧画面更新一次动画(uro3)。
102.以上所述以调整系数为资源消耗指标与资源消耗阈值的比值为例,介绍了基于调整系数对第一虚拟模型的初始动画更新频率进行调整的过程,本技术实施例并不局限于此,对于调整系数的确定方式为其他方式的情况,基于调整系数对第一虚拟模型的初始动画更新频率进行调整的过程还可以为其他过程,只要保证调整后得到的第一虚拟模型的第一动画更新频率低于初始动画更新频率即可。
103.参考获取第一虚拟模型的第一动画更新频率的方式能够获取至少一个虚拟模型的第一动画更新频率,然后执行步骤3。
104.示例性地,根据上述步骤1和步骤2获取至少一个虚拟模型的第一动画更新频率的过程可视为根据一种带负载均衡的动画降频优化技术(load balance uro)得到的动画更新频率。通过全局统计目标类别的虚拟模型的资源消耗情况,根据预先分配的资源消耗阈值,按调整系数降低动画更新频率,达到降低全局动画更新的时间消耗的目的,从而提升fps。
105.步骤3:基于第一动画更新频率,获取至少一个虚拟模型的目标动画更新频率。
106.基于第一动画更新频率,获取至少一个虚拟模型的目标动画更新频率的过程是指基于每个虚拟模型的第一动画更新频率,分别获取每个虚拟模型的目标动画更新频率的过程。基于每个虚拟模型的第一动画更新频率,获取每个虚拟模型的目标动画更新频率的原理相同,以基于第一虚拟模型的第一动画更新频率,获取第一虚拟模型的目标动画更新频率为例进行说明。其中,第一虚拟模型为至少一个虚拟模型中的任一虚拟模型。
107.在一种可能实现方式中,直接将第一虚拟模型的第一动画更新频率作为第一虚拟模型的目标动画更新频率。此种方式的效率较高。
108.在一种可能实现方式中,基于第一动画更新频率,获取至少一个虚拟模型的目标动画更新频率的过程包括:当第一虚拟模型满足第一模型筛选条件,且第一虚拟模型的第一动画更新频率不高于参考动画更新频率时,将参考动画更新频率作为第一虚拟模型的目标动画更新频率。当第一虚拟模型满足第一模型筛选条件,且第一虚拟模型的第一动画更新频率高于参考动画更新频率时;或者,当第一虚拟模型不满足第一模型筛选条件时,将第一虚拟模型的第一动画更新频率作为第一虚拟模型的目标动画更新频率。此种方式在考虑了调整系数的基础上,额外考虑了第一模型筛选条件,有利于提高获取的第一虚拟模型的目标动画更新频率的可靠性。
109.第一模型筛选条件用于对虚拟模型进行筛选,第一模型筛选条件根据经验设置,或者根据应用场景灵活调整,本技术实施例对此不加以限定。
110.满足第一模型筛选条件的虚拟模型是指动画表现需求较大的虚拟模型。示例性地,满足第一模型筛选条件的虚拟模型是指初始动画更新频率不低于参考动画更新频率的虚拟模型。初始动画更新频率越高,可认为虚拟模型的重要度越高,示例性地,可以将满足第一模型筛选条件的虚拟模型称为高重要度虚拟模型,将不满足第一模型筛选条件的虚拟模型称为低重要度虚拟模型。
111.参考动画更新频率根据经验设置,或者根据应用场景灵活调整,本技术实施例对此不加以限定。示例性地,参考动画更新频率表示为uro5,假设一个虚拟模型的初始动画更新频率表示为uro2,由于uro2表示的动画更新频率高于uro5表示的动画更新频率,所以该虚拟模型满足第一模型筛选条件。
112.在一些实施例中,还可以通过将虚拟模型的初始动画更新频率对应的画面帧数与画面帧数阈值进行比对,来判断虚拟模型是否满足第一模型筛选条件。若虚拟模型的初始动画更新频率对应的画面帧数不大于画面帧数阈值,则虚拟模型满足第一模型筛选条件。画面帧数阈值根据经验设置,或者根据应用场景灵活调整,本技术实施例对此不加以限定,例如,画面帧数阈值为5。
113.示例性地,满足第一模型筛选条件的虚拟模型还可以是指占比值不小于占比值阈值的虚拟模型。占比值阈值根据经验设置,或者根据应用场景灵活调整,本技术实施例对此不加以限定。
114.当第一虚拟模型满足第一模型筛选条件时,说明第一虚拟模型的动画表现需求较大,第一虚拟模型的目标动画更新频率需要不低于参考动画更新频率,以保证第一虚拟模型的动画表现效果。因此,若第一虚拟模型满足第一模型筛选条件,且第一虚拟模型的第一动画更新频率不高于参考动画更新频率,则将参考动画更新频率作为第一虚拟模型的目标动画更新频率。若第一虚拟模型满足第一模型筛选条件,且第一虚拟模型的第一动画更新频率高于参考动画更新频率,则将第一虚拟模型的第一动画更新频率作为第一虚拟模型的目标动画更新频率。
115.当第一虚拟模型不满足第一模型筛选条件时,说明第一虚拟模型的动画表现需求较小,无需对第一虚拟模型的目标动画更新频率进行限制,因此,可以直接将第一虚拟模型的第一动画更新频率作为第一虚拟模型的目标动画更新频率。
116.在考虑了调整系数的基础上,额外考虑第一模型筛选条件是为了保证高重要度的虚拟模型的动画表现。由于根据调整系数调整后得到的第一动画更新频率(也即经过负载
均衡降频优化后得到的动画更新频率)可能会由于虚拟模型的数量非常多而降低很多,也即第一动画更新频率对应的画面帧数变大非常多,导致近处虚拟模型过度降频,因此,对于高重要度的虚拟模型,需要对目标动画更新频率进行限制,使得高重要度的虚拟模型的目标动画更新频率不低于参考动画更新频率。
117.示例性地,假设画面帧数阈值为5,则至少一个虚拟模型中初始动画更新频率对应的画面帧数小于等于5的虚拟模型,都满足第一模型筛选条件,也即都属于高重要度虚拟模型,此部分虚拟模型的目标动画更新频率对应的画面帧数需要限制不超过5,也即目标动画更新频率最低为每5帧画面更新一次动画,从而保证高重要度模型最多5帧更新一次动画。
118.在步骤203中,根据目标动画更新频率,显示至少一个虚拟模型对应的动画帧。
119.目标动画更新频率是在至少一个虚拟模型的初始动画更新频率的基础上考虑资源消耗指标确定的,能够对资源消耗进行有效地全局控制,根据目标动画更新频率显示至少一个虚拟模型对应的动画帧的效果较好,有利于提高动画帧的显示流畅性,进而提高画面更新的流畅性。
120.根据目标动画更新频率,显示至少一个虚拟模型对应的动画帧的过程是指根据每个虚拟模型的目标动画更新频率,显示每个虚拟模型对应的动画帧的过程。需要说明的是,各个虚拟模型对应的动画帧是显示在同一帧虚拟环境的画面中的。
121.根据每个虚拟模型的目标动画更新频率,显示每个虚拟模型对应的动画帧的原理相同,以根据第一虚拟模型的目标动画更新频率,显示第一虚拟模型对应的动画帧的过程为例进行说明。其中,第一虚拟模型是指至少一个虚拟模型中的任一虚拟模型。
122.在一种可能实现方式中,根据第一虚拟模型的目标动画更新频率,显示第一虚拟模型对应的动画帧的实现过程为:直接根据第一虚拟模型的目标动画更新频率,显示第一虚拟模型对应的动画帧。此种情况下,第一虚拟模型对应的动画帧是指第一虚拟模型的与目标动画更新频率对应的动画帧。也就是说,无需判断第一虚拟模型是否满足一定条件,直接显示第一虚拟模型的与目标动画更新频率对应的动画帧。
123.在示例性实施例中,直接根据第一虚拟模型的目标动画更新频率,显示第一虚拟模型对应的动画帧的过程包括:当第一虚拟模型的目标动画更新频率与第一虚拟模型的计数值不匹配时,显示第一虚拟模型的第一动画帧或目标动画帧;当第一虚拟模型的目标动画更新频率与第一虚拟模型的计数值匹配时,显示第一虚拟模型的第二动画帧。
124.其中,第一动画帧为第一虚拟模型的动画中已显示的最新的动画帧,第二动画帧为第一虚拟模型的动画中位于第一动画帧后一位的动画帧。第一动画帧和第二动画帧为第一虚拟模型的动画中的相邻的两个动画帧,第一动画帧已经显示过,第二动画帧还未显示过。第一动画帧和第二动画帧的计算逻辑较为复杂,确定第一动画帧和第二动画帧所需的耗时较长。在显示第一动画帧之后,终端即可计算第二动画帧并缓存,然后在需要显示第二动画帧时,从缓存中提取第二动画帧进行显示。
125.第一虚拟模型的计数值是指第一虚拟模型当前具有的计数值。第一虚拟模型具有的计数值用于指示第一虚拟模型的动画的未更新画面帧数。在示例性实施例中,第一虚拟模型具有计数值的更新方式为:在初次显示第一虚拟模型的动画中的一个动画帧时,第一虚拟模型具有的计数值为0,每有一个画面不显示第一虚拟模型的动画中位于该一个动画帧后一位的动画帧,将第一虚拟模型具有的计数值增加1。
126.第一虚拟模型的目标动画更新频率与第一虚拟模型的计数值匹配说明需要显示第一虚拟模型的第二动画帧。示例性地,第一虚拟模型的目标动画更新频率与第一虚拟模型的计数值匹配是指第一虚拟模型的计数值不小于第一虚拟模型的目标动画更新频率对应的画面帧数与1的差值。例如,若第一虚拟模型的目标动画更新频率对应的画面帧数为5,第一虚拟模型的计数值不小4,则认为第一虚拟模型的目标动画更新频率与第一虚拟模型的计数值匹配。
127.在第一虚拟模型的目标动画更新帧率与第一虚拟模型的计数值匹配时,说明当前需要显示的动画帧为第一虚拟模型的第二动画帧,因此,显示第一虚拟模型的第二动画帧。当第一虚拟模型的目标动画更新频率与第一虚拟模型的计数值不匹配时,说明当前需要显示的动画帧不为第一虚拟模型的第二动画帧,此种情况下,显示第一虚拟模型的第一动画帧或目标动画帧。
128.目标动画帧基于第一动画帧、第二动画帧和第一虚拟模型的计数值确定。示例性地,可以根据缓存中的第一动画帧和第二动画帧,确定插值平滑动画帧,以在显示第一动画帧之后以及显示第二动画帧之前,显示插值平滑动画帧,达到接近于每帧更新的动画效果,也即接近于不降频的动画效果。根据缓存中的第一动画帧和第二动画帧,确定的插值平滑动画帧的数量和与第一虚拟模型的目标动画更新频率不匹配的计数值的数量相同,每个插值平滑动画帧对应一个与第一虚拟模型的目标动画更新频率不匹配的计数值。
129.示例性地,与第一虚拟模型的目标动画更新频率不匹配的计数值的数量为第一虚拟模型的目标动画更新频率对应的画面帧数与1的差值。例如,若第一虚拟模型的目标动画更新频率对应的画面帧数为5,则与第一虚拟模型的目标动画更新频率不匹配的计数值的数量为4,可以确定出4个插值平滑动画帧。
130.插值平滑动画帧能够通过第一动画帧和第二动画帧之间的差异计算得到,相比于计算得到第一动画帧和第二动画帧的时间消耗,计算得到插值平滑动画帧的时间消耗较小。从各个插值平滑动画中查询到与第一虚拟模型的计数值对应的插值平滑动画帧,该插值平滑动画帧即为目标动画帧。
131.本技术实施例对在第一虚拟模型的目标动画更新频率与第一虚拟模型的计数值不匹配的情况下,显示第一虚拟模型的第一动画帧或目标动画帧的实现方式不加以限定。示例性地,在第一虚拟模型的目标动画更新频率与第一虚拟模型的计数值不匹配的情况下,显示第一虚拟模型。示例性地,在第一虚拟模型的目标动画更新频率与第一虚拟模型的计数值不匹配的情况下,显示目标动画帧。
132.示例性地,在第一虚拟模型的目标动画更新频率与第一虚拟模型的计数值不匹配的情况下,当第一虚拟模型不满足第二模型筛选条件时,显示第一虚拟模型的第一动画帧;当第一虚拟模型满足第二模型筛选条件时,显示第一虚拟模型的目标动画帧。
133.第二模型筛选条件用于对虚拟模型进行筛选,第二模型筛选条件根据经验设置,或者根据应用场景灵活调整,本技术实施例对此不加以限定。第二模型筛选条件可以与第一模型筛选条件相同,也可以与第一模型筛选条件不同。
134.满足第二模型筛选条件的虚拟模型为在目标动画更新频率与计数值不匹配的情况下需要显示目标动画帧的虚拟模型。在示例性实施例中,第二模型筛选条件与第一模型筛选条件相同,也即满足第一模型筛选条件的虚拟模型是指动画表现需求较大的虚拟模
型。
135.若第一虚拟模型满足第二模型筛选条件,则显示第一虚拟模型的目标动画帧,以较大程度上缓解降频对动画表现的不利影响。也就是说,对于高重要度的虚拟模型,开启动画插值平滑,高重要度的虚拟模型在跳过更新的画面中,会利用缓存的第一动画帧和第二动画帧进行插值表现,达到接近于不降频的动画效果。
136.若第一虚拟模型不满足第二模型筛选条件,则说明第一虚拟模型的动画表现的关注度较低,可以直接显示第一动画帧。
137.在一种可能实现方式中,根据第一虚拟模型的目标动画更新频率,显示第一虚拟模型对应的动画帧的实现过程为:当第一虚拟模型未关联于其他虚拟模型时,直接根据第一虚拟模型的目标动画更新频率,显示第一虚拟模型对应的动画帧;当第一虚拟模型关联于第二虚拟模型时,将第一虚拟模型的目标动画更新频率调整为第二虚拟模型的动画更新频率,得到第一虚拟模型的调整后的动画更新频率;根据第一虚拟模型的调整后的动画更新频率,显示第一虚拟模型对应的动画帧。
138.第二虚拟模型可以是指至少一个虚拟模型中的一个虚拟模型,也可以是除至少一个虚拟模型外的一个虚拟模型,本技术实施例对此不加以限定。第二虚拟模型的动画更新频率是指第二虚拟模型当前最新的动画更新频率。终端中记录有虚拟模型之间的关联关系,根据该关联关系能够判断第一虚拟模型是否关联于其他虚拟模型,若第一虚拟模型关联于第二虚拟模型,将第一虚拟模型的目标动画更新频率调整为第二虚拟模型的动画更新频率。示例性地,第一虚拟模型关联于第二虚拟模型还可以称为第一虚拟模型依赖第二虚拟模型。
139.在一种可能实现方式中,在将第一虚拟模型的目标动画更新频率调整为第二虚拟模型的动画更新频率之后,还包括:将第一虚拟模型的计数值调整为第二虚拟模型的计数值,以使第一虚拟模型的动画更新与第二虚拟模型的动画更新同步。
140.第一虚拟模型的动画更新与第二虚拟模型的动画更新同步用于保证动画表现的正确性。不同的虚拟模型在经过优化后可能具有不同的动画更新频率,但是存在关联关系的虚拟模型在动画表现上要求保持一致,比如,虚拟对象和该虚拟对象配备的虚拟道具在动画表现上要求保持一致。如果存在关联关系的虚拟模型的动画更新频率不同,可能导致表现错误。
141.因此,在根据第一虚拟模型的目标动画更新频率,显示第一虚拟模型对应的动画帧的过程中,判断第一虚拟模型是否关联于其他虚拟模型,若第一虚拟模型关联于第二虚拟模型,则通过将第一虚拟模型的目标动画更新频率调整为第二虚拟模型的动画更新频率以及将第一虚拟模型的计数值调整为第二虚拟模型的计数值,来实现降频同步,也即使第一虚拟模型的动画更新与第二虚拟模型的动画更新同步。示例性地,由于第一虚拟模型关联于第二虚拟模型,所以可以将第一虚拟模型称为子模型,将第二虚拟模型称为父模型。
142.降频同步的实现细节为:父子模型的更新频率保持同步,子模型采用父模型的更新频率;父子模型的计数值对齐。示例性地,通过将父子模型的计数值对齐,能够实现父子模型的更新起始帧的对齐。更新起始帧是指初次显示已显示的最新的动画帧的画面。
143.示例性地,父模型和子模型的动画更新频率、更新起始帧具有四种情况:父模型和子模型的动画更新频率、更新起始帧均不一致;父模型和子模型的动画更新频率一致、更新
起始帧不一致;父模型和子模型的动画更新频率不一致、更新起始帧一致;父模型和子模型的动画更新频率、更新起始帧均一致。
144.图3示出了上述四种情况下的动画更新同步情况。在图3中,将更新动画的画面称为更新帧,将未更新动画的画面称为跳过帧。根据图3可知,若父模型和子模型的动画更新频率、更新起始帧均不一致;或者,父模型和子模型的动画更新频率一致、更新起始帧不一致;或者,父模型和子模型的动画更新频率不一致、更新起始帧一致,均不足以让父模型和子模型的动画更新完全同步。因此,通过将子模型的动画更新频率调整为父模型的动画更新频率,将子模型的计数值调整为父模型的计数值,达到动画更新同步的效果。
145.示例性地,图4示出了父模型和子模型的动画更新频率、更新起始帧均不一致的情况下的画面显示效果。在图4中,父模型为虚拟对象410,子模型为虚拟道具420。虚拟对象410的动画更新频率为uro4、虚拟道具420的动画更新频率为uro7,虚拟对象410的和虚拟道具420的更新起始帧不一致。在图4中,虚拟道具420脱离虚拟对象410的手部的问题明显,说明虚拟对象410和虚拟道具420的动画更新未同步。
146.图5示出了父模型和子模型的动画更新频率一致、更新起始帧不一致的情况下的画面显示效果。在图5中,父模型为虚拟对象510,子模型为虚拟道具520。虚拟对象510的动画更新频率和虚拟道具520的动画更新频率均为uro4,虚拟对象510的和虚拟道具520的更新起始帧不一致。在图5中,仍能观察到虚拟道具520脱离虚拟对象510的手部的问题,说明虚拟对象510和虚拟道具520的动画更新未同步。
147.图6示出了父模型和子模型的动画更新频率、更新起始帧均一致的情况下的画面显示效果。在图6中,父模型为虚拟对象610,子模型为虚拟道具620。虚拟对象610的动画更新频率和虚拟道具620的动画更新频率均为uro4,虚拟对象610的和虚拟道具620的更新起始帧一致。在图6中,虚拟道具620未脱离虚拟对象610的手部,画面表现正常,说明虚拟对象610和虚拟道具620的动画更新同步。
148.对于获取第一虚拟模型的调整后的动画更新频率的情况,根据第一虚拟模型的调整后的动画更新频率,显示第一虚拟模型对应的动画帧。根据第一虚拟模型的调整后的动画更新频率,显示第一虚拟模型对应的动画帧的实现原理与直接根据第一虚拟模型的目标动画更新频率,显示第一虚拟模型对应的动画帧的实现原理相同,此处不再加以赘述。
149.在示例性实施例中,上述步骤201至步骤203可以在每次需要显示至少一个虚拟模型的动画帧的情况下均执行。在示例性实施例中,上述步骤201至步骤203在虚拟模型的情况满足参考条件时再执行,可以减少计算量。
150.本技术实施例对虚拟模型的情况不满足参考条件时的动画帧的显示方式不加以限定。示例性地,当虚拟模型的情况不满足参考条件时,利用相关技术中的方式实现动画帧的显示。示例性地,相关技术中的方式为:将至少一个虚拟模型的占比值对应的动画更新频率作为至少一个虚拟模型的初始动画更新频率,根据至少一个虚拟模型的初始动画更新频率,显示至少一个虚拟模型对应的动画帧。
151.示例性地,占比值还可以称为屏占比,相关技术中的方式是基于ue4引擎自带的uro优化方案实现的动画帧的显示方式。ue4引擎自带uro优化方案,是通过计算每个虚拟模型的屏占比,屏占比越小,动画更新频率越低,屏占比小可认为虚拟模型距离虚拟相机远,这样通过降低距离虚拟相机远的虚拟模型的动画更新频率,就可以有效降低虚拟模型的动
画更新的资源消耗。示例性地,可以预先设置屏占比与画面帧数的对应关系,画面帧数越大,动画更新频率越低。示例性地,画面帧数还可以利用uro的等级表示。
152.参考条件用于约束根据步骤201至步骤203的方式实现动画帧的显示的条件。参考条件根据经验设置,或者根据应用场景灵活调整,本技术实施例对此不加以限定。示例性地,参考条件用于对至少一个虚拟模型的情况进行约束。示例性地,参考条件用于对需要同屏显示动画帧的全部虚拟模型的情况进行约束。
153.以参考条件用于对需要同屏显示动画帧的全部虚拟模型的情况进行约束为例。示例性地,虚拟模型的情况满足参考条件可以是指需要同屏显示动画帧的全部虚拟模型的数量大于第一数量阈值。示例性地,虚拟模型的情况满足参考条件可以是指需要同屏显示动画帧的全部虚拟模型中占比值大于占比值阈值的虚拟模型的数量大于第二数量阈值。示例性地,虚拟模型的情况满足参考条件可以是指需要同屏显示动画帧的全部虚拟模型的数量大于第一数量阈值,且全部虚拟模型中占比值大于占比值阈值的虚拟模型的数量大于第二数量阈值。
154.第一数量阈值不小于第二数量阈值,第一数量阈值和第二数量阈值根据经验设置,或者根据应用场景灵活调整,本技术实施例对此不加以限定。
155.在需要同屏显示动画帧的全部虚拟模型较少的情况(如图7所示的虚拟模型的分布情况)下,利用相关技术中的动画帧的显示方式,继续保有uro优化特征,根据占比值进行降频优化,对于占比值较小的虚拟模型,以较低的频率更新动画,减少动画更新带来的时间消耗。示例性地,占比值较小的虚拟模型可认为是与虚拟相机距离较远的虚拟模型,此种虚拟模型由于位于远处,交互对象可能看不清,所以可以降低动画更新频率。在图7所示的情况下,利用相关技术中的方式,从距离虚拟相机近到远的顺序,显示各个虚拟模型的动画帧所依据的动画更新频率分别为uro1、uro2和uro3。
156.当需要同屏显示动画帧的全部虚拟模型较多时(如图8所示的虚拟模型的分布情况),尤其是占比值较大(也即与虚拟相机距离较近)的虚拟模型的数量较多时,利用相关技术中的动画帧的显示方式(也即根据占比值进行降频优化的方式),与虚拟相机距离较近的虚拟模型还是会以较高的动画更新频率更新动画,例如,从距离虚拟相机近到远的顺序,显示各个虚拟模型的动画帧所依据的动画更新频率分别为uro1、uro2和uro3,这会使全局的动画更新压力非常大,导致与虚拟相机距离较近的虚拟模型的数量较多等场景下,资源消耗较多,可能造成终端发热,还可能会影响fps,影响动画帧的显示流畅性以及应用程序运行的流畅性等。
157.利用本技术实施例提供的动画帧的显示方式,能够有效改善此种场景的性能表现。本技术实施例提供的动画帧的显示方式会每帧全局统计虚拟模型的资源消耗指标,超过分配的资源消耗阈值,就进一步降低每个虚拟模型的动画更新频率,同时对满足第一模型筛选条件的虚拟模型进行动画插值平滑优化,避免因降频而出现明细的动画表现问题。通过此种优化方式,从距离虚拟相机近到远的顺序,显示各个虚拟模型的动画帧所依据的动画更新频率分别优化为uro2、uro4和uro6,可以有效控制同屏显示多个虚拟模型的动画帧的时间消耗。
158.示例性地,在相关技术中的动画帧的显示方式下的画面显示效果如图9所示,在本技术实施例中的动画帧的显示方式下的画面显示效果如图10所示。在图9和图10中,占比值
大于占比值阈值的虚拟模型(也可称为近距离虚拟模型)的数量为20,该20个虚拟模型的初始动画更新频率均为uro1,也即,该20个虚拟模型均保持每帧画面更新一次动画,此种情况下,应用程序的每帧画面更新耗时约20ms(毫秒),fps为50。
159.假设资源消耗阈值为1个虚拟模型,经过负载均衡初步调整(也即根据资源消耗阈值的约束进行调整)之后,该20个虚拟模型的动画更新频率均为uro20,由于该20个虚拟模型均满足第一模型筛选条件(也即均属于高重要度模型),高重要度模型的动画更新频率不允许低于uro5,则利用本技术实施例提供的方式,该20个虚拟模型的目标动画更新频率均为uro5,也即每5帧画面更新一次动画。根据此种目标动画更新频率显示动画帧,应用程序的每帧画面更新耗时约为15.6ms,fps提升为64。相比于相关技术,每帧画面更新耗时减少4.4ms,fps提升16。根据图9和图10可知,利用不同的动画帧的显示方式,画面显示效果有所不同。
160.示例性地,动画帧的显示过程如图11所示,在应用程序运行之前,设定目标类别对应的资源消耗阈值;在显示第n(n为不小于1的整数)帧画面时,显示至少一个虚拟模型的与第n帧画面匹配的动画帧,该至少一个虚拟模型均为目标类别的虚拟模型;根据第n帧画面的显示结果,计算至少一个虚拟模型的占比值,将至少一个虚拟模型的占比值对应的动画更新频率作为至少一个虚拟模型的初始动画更新频率。基于至少一个虚拟模型的初始动画更新频率,获取资源消耗指标,判断资源消耗指标是否大于资源消耗阈值。
161.若资源消耗指标不大于资源消耗阈值,根据至少一个虚拟模型的初始动画更新频率,显示至少一个虚拟模型对应的动画帧,该至少一个虚拟模型对应的动画帧是指至少一个虚拟模型的与第(n+1)帧画面匹配的动画帧。
162.若资源消耗指标大于资源消耗阈值,将资源消耗指标与资源消耗阈值的比值作为调整系数;根据调整系数调整至少一个虚拟模型的初始动画更新频率,得到至少一个虚拟模型的第一动画更新频率。根据第一模型筛选条件和至少一个虚拟模型的第一动画更新频率,获取至少一个虚拟模型的目标动画更新频率,以保证表现。将关联模型之间的动画更新频率以及计数值同步,以保证表现。根据至少一个虚拟模型最新的动画更新频率,显示至少一个虚拟模对应的动画帧,该至少一个虚拟模型对应的动画帧是指至少一个虚拟模的与第(n+1)帧画面匹配的动画帧。
163.需要说明的是,对于至少一个虚拟模型为目标类别的模型,且需要同屏显示动画帧的虚拟模型还包括除目标类别外的其他类别的虚拟模型的情况,其他类别的虚拟模型的动画帧的显示过程可以参考本技术实施例提供的过程实现,以保证需要同屏显示动画帧的全部虚拟模型的动画帧的显示效果。
164.本技术实施例,在ue4引擎自带的uro动画优化技术的基础上,额外增加了负载均衡优化特性,通过配置调整某一类别的虚拟模型的资源消耗预算、高重要度模型的最低动画更新频率、动画插值平滑的条件等关键参数,在保证动画表现的前提下,可以有效控制多人场景下的动画更新消耗的资源,有效降低同屏显示多个虚拟模型的动画帧的耗时,达到性能和表现的平衡,提升fps,提升应用程序的体验,例如,若应用程序为游戏类应用程序,则可以提升游戏体验。
165.本技术实施例提供的动画帧的显示方法,至少一个虚拟模型对应的动画帧是根据至少一个虚拟模型的目标动画更新频率显示的,其中,至少一个虚拟模型的目标动画更新
频率是在至少一个虚拟模型的初始动画更新频率的基础上考虑资源消耗指标确定的。根据至少一个虚拟模型的目标动画更新频率能够对资源消耗进行有效地全局控制,有利于提高动画帧的显示流畅性,进而提高人机交互率。
166.参见图12,本技术实施例提供了一种动画帧的显示装置,该装置包括:
167.第一获取单元1201,用于基于至少一个虚拟模型的初始动画更新频率,获取资源消耗指标,资源消耗指标用于指示根据至少一个虚拟模型的初始动画更新频率进行动画更新需要消耗的资源量;
168.第二获取单元1202,用于基于资源消耗指标以及初始动画更新频率,获取至少一个虚拟模型的目标动画更新频率;
169.显示单元1203,用于根据目标动画更新频率,显示至少一个虚拟模型对应的动画帧。
170.在一种可能实现方式中,第二获取单元1202,用于当资源消耗指标大于资源消耗阈值时,基于资源消耗指标和资源消耗阈值,确定调整系数;基于调整系数对初始动画更新频率进行调整,得到至少一个虚拟模型的第一动画更新频率;基于第一动画更新频率,获取至少一个虚拟模型的目标动画更新频率。
171.在一种可能实现方式中,第二获取单元1202,用于当第一虚拟模型满足第一模型筛选条件,且第一虚拟模型的第一动画更新频率不高于参考动画更新频率时,将参考动画更新频率作为第一虚拟模型的目标动画更新频率,第一虚拟模型为至少一个虚拟模型中的任一虚拟模型。
172.在一种可能实现方式中,第二获取单元1202,用于当第一虚拟模型满足第一模型筛选条件,且第一虚拟模型的第一动画更新频率高于参考动画更新频率时;或者,当第一虚拟模型不满足第一模型筛选条件时,将第一虚拟模型的第一动画更新频率作为第一虚拟模型的目标动画更新频率,第一虚拟模型为至少一个虚拟模型中的任一虚拟模型。
173.在一种可能实现方式中,第二获取单元1202,用于当资源消耗指标不大于资源消耗阈值时,将初始动画更新频率作为至少一个虚拟模型的目标动画更新频率。
174.在一种可能实现方式中,显示单元1203,用于当第一虚拟模型的目标动画更新频率与第一虚拟模型的计数值不匹配时,显示第一虚拟模型的第一动画帧或目标动画帧,第一虚拟模型为至少一个虚拟模型中的任一虚拟模型;当第一虚拟模型的目标动画更新频率与第一虚拟模型的计数值匹配时,显示第一虚拟模型的第二动画帧;其中,第一动画帧为第一虚拟模型的动画中已显示的最新的动画帧,第二动画帧为第一虚拟模型的动画中位于第一动画帧后一位的动画帧,目标动画帧基于第一动画帧、第二动画帧和第一虚拟模型的计数值确定。
175.在一种可能实现方式中,显示单元1203,用于当第一虚拟模型不满足第二模型筛选条件时,显示第一虚拟模型的第一动画帧;当第一虚拟模型满足第二模型筛选条件时,显示第一虚拟模型的目标动画帧。
176.在一种可能实现方式中,显示单元1203,用于当第一虚拟模型关联于第二虚拟模型时,将第一虚拟模型的目标动画更新频率调整为第二虚拟模型的动画更新频率,得到第一虚拟模型的调整后的动画更新频率,第一虚拟模型为至少一个虚拟模型中的任一虚拟模型;根据第一虚拟模型的调整后的动画更新频率,显示第一虚拟模型对应的动画帧。
177.在一种可能实现方式中,显示单元1203,还用于将第一虚拟模型的计数值调整为第二虚拟模型的计数值,以使第一虚拟模型的动画更新与第二虚拟模型的动画更新同步。
178.在一种可能实现方式中,第一获取单元1201,用于获取至少一个虚拟模型的资源消耗子指标,任一虚拟模型的资源消耗子指标与任一虚拟模型的初始动画更新频率呈正相关关系;汇总至少一个虚拟模型的资源消耗子指标,得到资源消耗指标。
179.在一种可能实现方式中,第一获取单元1201,还用于确定第一虚拟模型的占比值,第一虚拟模型为至少一个虚拟模型中的任一虚拟模型,第一虚拟模型的占比值为第一虚拟模型的渲染尺寸与参考尺寸的比值;将第一虚拟模型的占比值对应的动画更新频率作为第一虚拟模型的初始动画更新频率。
180.在一种可能实现方式中,资源消耗阈值为目标类别对应的资源消耗阈值,至少一个虚拟模型均为目标类别的虚拟模型。
181.本技术实施例提供的动画帧的显示装置,至少一个虚拟模型对应的动画帧是根据至少一个虚拟模型的目标动画更新频率显示的,其中,至少一个虚拟模型的目标动画更新频率是在至少一个虚拟模型的初始动画更新频率的基础上考虑资源消耗指标确定的。根据至少一个虚拟模型的目标动画更新频率能够对资源消耗进行有效地全局控制,有利于提高动画帧的显示流畅性,进而提高人机交互率。
182.需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将设备的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
183.图13是本技术实施例提供的一种计算机设备的结构示意图。该计算机设备可以为终端,该终端可以是:pc、手机、智能手机、pda、可穿戴设备、手持便携式游戏设备、ppc、平板电脑、智能车机、智能电视、智能音箱、车载终端。终端还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
184.通常,终端包括有:处理器1301和存储器1302。
185.处理器1301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1301可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu;协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1301可以集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1301还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
186.存储器1302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1302中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1301所执行,以使该终
端实现本技术中方法实施例提供的动画帧的显示方法。
187.在一些实施例中,终端还可选包括有:外围设备接口1303和至少一个外围设备。处理器1301、存储器1302和外围设备接口1303之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1303相连。具体地,外围设备包括:射频电路1304、显示屏1305、摄像头组件1306、音频电路1307和电源1308中的至少一种。
188.外围设备接口1303可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器1301和存储器1302。在一些实施例中,处理器1301、存储器1302和外围设备接口1303被集成在同一芯片或电路板上;在一些其他实施例中,处理器1301、存储器1302和外围设备接口1303中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
189.射频电路1304用于接收和发射rf(radio frequency,射频)信号,也称电磁信号。射频电路1304通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1304将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1304包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等。射频电路1304可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wireless fidelity,无线保真)网络。在一些实施例中,射频电路1304还可以包括nfc(near field communication,近距离无线通信)有关的电路,本技术对此不加以限定。
190.显示屏1305用于显示ui(user interface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1305是触摸显示屏时,显示屏1305还具有采集在显示屏1305的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1301进行处理。此时,显示屏1305还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1305可以为一个,设置在终端的前面板;在另一些实施例中,显示屏1305可以为至少两个,分别设置在终端的不同表面或呈折叠设计;在另一些实施例中,显示屏1305可以是柔性显示屏,设置在终端的弯曲表面上或折叠面上。甚至,显示屏1305还可以设置成非矩形的不规则图形,也即异形屏。显示屏1305可以采用lcd(liquid crystal display,液晶显示屏)、oled(organic light-emitting diode,有机发光二极管)等材质制备。
191.摄像头组件1306用于采集图像或视频。可选地,摄像头组件1306包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtual reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1306还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
192.音频电路1307可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1301进行处理,或者输入至射频电路1304以实现语音通
信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1301或射频电路1304的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1307还可以包括耳机插孔。
193.电源1308用于为终端中的各个组件进行供电。电源1308可以是交流电、直流电、一次性电池或可充电电池。当电源1308包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
194.在一些实施例中,终端还包括有一个或多个传感器1309。该一个或多个传感器1309包括但不限于:加速度传感器1310、陀螺仪传感器1311、压力传感器1312、光学传感器1313以及接近传感器1314。
195.加速度传感器1310可以检测以终端建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1310可以用于检测重力加速度在三个坐标轴上的分量。处理器1301可以根据加速度传感器1310采集的重力加速度信号,控制显示屏1305以横向视图或纵向视图进行用户界面的显示。加速度传感器1310还可以用于游戏或者用户的运动数据的采集。
196.陀螺仪传感器1311可以检测终端的机体方向及转动角度,陀螺仪传感器1311可以与加速度传感器1310协同采集用户对终端的3d动作。处理器1301根据陀螺仪传感器1311采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。
197.压力传感器1312可以设置在终端的侧边框和/或显示屏1305的下层。当压力传感器1312设置在终端的侧边框时,可以检测用户对终端的握持信号,由处理器1301根据压力传感器1312采集的握持信号进行左右手识别或快捷操作。当压力传感器1312设置在显示屏1305的下层时,由处理器1301根据用户对显示屏1305的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
198.光学传感器1313用于采集环境光强度。在一个实施例中,处理器1301可以根据光学传感器1313采集的环境光强度,控制显示屏1305的显示亮度。具体地,当环境光强度较高时,调高显示屏1305的显示亮度;当环境光强度较低时,调低显示屏1305的显示亮度。在另一个实施例中,处理器1301还可以根据光学传感器1313采集的环境光强度,动态调整摄像头组件1306的拍摄参数。
199.接近传感器1314,也称距离传感器,通常设置在终端的前面板。接近传感器1314用于采集用户与终端的正面之间的距离。在一个实施例中,当接近传感器1314检测到用户与终端的正面之间的距离逐渐变小时,由处理器1301控制显示屏1305从亮屏状态切换为息屏状态;当接近传感器1314检测到用户与终端的正面之间的距离逐渐变大时,由处理器1301控制显示屏1305从息屏状态切换为亮屏状态。
200.本领域技术人员可以理解,图13中示出的结构并不构成对终端的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
201.在示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质
中存储有至少一条计算机程序,该至少一条计算机程序由计算机设备的处理器加载并执行,以使计算机实现上述任一种动画帧的显示方法。
202.在一种可能实现方式中,上述计算机可读存储介质可以是只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、只读光盘(compact disc read-only memory,cd-rom)、磁带、软盘和光数据存储设备等。
203.在示例性实施例中,还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机指令,该计算机程序或计算机指令由处理器加载并执行,以使计算机实现上述任一种动画帧的显示方法。
204.需要说明的是,本技术中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以上示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
205.应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
206.以上所述仅为本技术的示例性实施例,并不用以限制本技术,凡在本技术的原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1