一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种虚拟对象展示方法及相关装置与流程

2021-10-09 13:20:00 来源:中国专利 TAG:装置 对象 虚拟 计算机 展示


1.本技术涉及计算机领域,特别是涉及一种虚拟对象展示方法及相关装置。


背景技术:

2.随着科学技术的发展,虚拟对象被广泛应用于各种互动场景,例如人们所熟知的游戏场景,除此之外,还在教育、文化、娱乐、旅游等各大场景落地应用。
3.在制作虚拟对象时,为了更好地体现虚拟对象的多样性,一般所采用的方法为将虚拟对象分解成多个部件,且每个部件均有多种预先设置的模式,从而根据实际需要将上述部件中的各种模式进行不同的组合搭配,从而达到丰富多彩的虚拟对象表现。
4.这也使得在展示虚拟对象时,需要加载多个部件的骨骼网格,从加载完成的骨骼网格里选择其中一个骨骼网格作为主骨骼网格,其他骨骼网格附加到主骨骼网格上,由主骨骼网格驱动整体,最终组装成一个完整虚拟对象模型。当虚拟对象运动时,每个骨骼网格将存在一个位置更新节点。
5.如果同时展示十几个至几十个虚拟对象,每个虚拟对象包含多个部件,此时会导致几十至几百个网格位置更新开销,使得显示卡的绘制速度降低,导致在屏幕上所显示的画面出现迟滞的现象。在这样的开销下只能考虑削减同屏玩家人数,影响玩家体验。


技术实现要素:

6.为了解决上述技术问题,本技术提供了一种虚拟对象展示方法及相关装置,大大降低了多个骨骼网格位置更新开销,提高了显示卡的绘制速度,提高了在屏幕上所显示的画面的流畅性。由于开销大大降低,进而无需削减同屏玩家人数,提高玩家体验。
7.本技术实施例公开了如下技术方案:
8.第一方面,本技术实施例提供一种虚拟对象展示方法,所述方法包括:
9.加载多个虚拟对象的骨骼网格,每个虚拟对象包括多个部件,每个部件具有对应的骨骼网格;
10.根据所述多个虚拟对象分别对应的运动信息,对所述多个虚拟对象进行分组,得到虚拟对象组,同一个虚拟对象组中的虚拟对象在同一时刻的运动一致;
11.对位于同一虚拟对象组中的虚拟对象对应的多个骨骼网格进行合并,得到一个主骨骼网格;
12.根据所述主骨骼网格绘制并展示对应的虚拟对象。
13.第二方面,本技术实施例提供一种虚拟对象展示装置,所述装置包括加载单元、分组单元、合并单元和展示单元:
14.所述加载单元,用于加载多个虚拟对象的骨骼网格,每个虚拟对象包括多个部件,每个部件具有对应的骨骼网格;
15.所述分组单元,用于根据所述多个虚拟对象分别对应的运动信息,对所述多个虚拟对象进行分组,得到虚拟对象组,同一个虚拟对象组中的虚拟对象在同一时刻的运动一
致;
16.所述合并单元,用于对位于同一虚拟对象组中的虚拟对象对应的多个骨骼网格进行合并,得到一个主骨骼网格;
17.所述展示单元,用于根据所述主骨骼网格绘制并展示对应的虚拟对象。
18.第三方面,本技术实施例提供一种用于虚拟对象展示的设备,所述设备包括处理器以及存储器:
19.所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
20.所述处理器用于根据所述程序代码中的指令执行前述方面所述的方法。
21.第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行前述方面所述的方法。
22.由上述技术方案可以看出,当需要显示多个包括多个部件的虚拟对象时,每个部件具有对应的骨骼网格,故可以加载多个虚拟对象的骨骼网格,根据多个虚拟对象分别对应的运动信息,对多个虚拟对象进行分组,得到虚拟对象组,同一个虚拟对象组中的虚拟对象在同一时刻的运动一致。然后,对位于同一虚拟对象组中的虚拟对象对应的多个骨骼网格进行合并,得到一个主骨骼网格,从而根据主骨骼网格绘制并展示对应的虚拟对象。由于每个虚拟对象组中的虚拟对象对应的多个骨骼网格都可以合并得到一个主骨骼网格,使得多个骨骼网格合并为一个整体,将多个位置更新节点降为一个位置更新节点,在发生位置更新时,仅需要对主骨骼网格这一个骨骼网格进行更新,大大降低了多个骨骼网格位置更新开销,提高了显示卡的绘制速度,提高了在屏幕上所显示的画面的流畅性。由于开销大大降低,进而无需削减同屏玩家人数,提高玩家体验。
附图说明
23.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术成员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
24.图1为相关技术提供的一种虚拟对象展示方法的流程图;
25.图2为本技术实施例提供的一种虚拟对象展示方法的系统架构示意图;
26.图3为本技术实施例提供的一种虚拟对象展示方法的流程图;
27.图4为本技术实施例提供的一种人物模型的组成示意图;
28.图5为本技术实施例提供的一种骨骼网格的示意图;
29.图6为本技术实施例提供的一种骨骼网格合并方法的流程图;
30.图7为本技术实施例提供的一种虚拟对象展示方法的流程图;
31.图8为本技术实施例提供的一种虚拟对象展示装置的结构图;
32.图9为本技术实施例提供的一种终端的结构图;
33.图10为本技术实施例提供的一种服务器的结构图。
具体实施方式
34.下面结合附图,对本技术的实施例进行描述。
35.虚拟对象可以被分解成多个部件,在展示虚拟对象时,参见图1所示,需要加载多个部件的骨骼网格(参见图1中s101所示),从加载完成的骨骼网格里选择一个骨骼网格作为主骨骼网格(参见图1中s102所示),其他骨骼网格附加到主骨骼网格上(参见图1中s103所示),由主骨骼网格驱动整体,最终组装成一个完整虚拟对象模型。当虚拟对象运动时,每个骨骼网格将存在一个位置更新节点。
36.在这种情况下,如果同时展示十几个至几十个虚拟对象,每个虚拟对象包含多个部件,此时会导致几十至几百个网格位置更新开销,使得显示卡的绘制速度降低,导致在屏幕上所显示的画面出现迟滞的现象。在这样的开销下只能考虑削减同屏玩家人数,影响玩家体验。
37.为了解决上述技术问题,本技术实施例提供一种虚拟对象展示方法,该方法将每个虚拟对象组中的虚拟对象对应的多个骨骼网格都可以合并得到一个主骨骼网格,使得运动一致的虚拟对象对应的多个骨骼网格合并为一个整体,实现将多个位置更新节点降为一个位置更新节点。
38.需要说明的是,本技术实施例提供的方法可以应用于各种虚拟对象展示场景,例如游戏场景(此时虚拟对象是游戏对象)、基于虚拟对象的视频直播场景、基于虚拟对象的在线教育场景等等。
39.接下来,将对虚拟对象展示方法的系统架构进行介绍。参见图2,图2为本技术实施例提供的虚拟对象展示方法的系统架构示意图。该系统架构中包括终端201,当需要展示包括多个部件的虚拟对象时,每个部件具有对应的骨骼网格,故终端201可以加载多个虚拟对象的骨骼网格。骨骼网格包含若干顶点,每个顶点都赋有对应骨骼点权重,由骨骼点驱动顶点运动的网格体。
40.终端201根据多个虚拟对象分别对应的运动信息,对多个虚拟对象进行分组,得到虚拟对象组,同一个虚拟对象组中的虚拟对象在同一时刻的运动一致。例如图2中得到虚拟对象组1、虚拟对象组2、
……
、虚拟对象组n。其中,运动信息用于反映虚拟对象在不同时刻的运动情况,例如运动方向、运动位置等,若运动信息相同,则说明虚拟对象在同一时刻的运动一致。
41.由于虚拟对象的运动一致,终端201可以对位于同一虚拟对象组中的虚拟对象对应的多个骨骼网格进行合并,得到一个主骨骼网格,在不影响不同虚拟对象运动多样性的情况下,将同一虚拟对象组中多个骨骼网格合并成一个主骨骼网格,从而将多个位置更新节点降为一个位置更新节点。网格合并即将若干个骨骼网格合并为一个新的骨骼网格(例如主骨骼网格),将同时驱动多个骨骼网格运动的逻辑用驱动一个骨骼网格运动来实现。
42.这样,终端201便可以仅根据主骨骼网格绘制并展示对应的虚拟对象,从而在运行时,大大降低了多个骨骼网格位置更新开销,提高了显示卡的绘制速度,提高了在屏幕上所显示的画面的流畅性。由于开销大大降低,进而无需削减同屏玩家人数,提高玩家体验。
43.需要说明的是,图2是以终端作为执行主体进行介绍。当然,本技术实施例提供的方法也可以通过服务器,或者由服务器和终端配合执行,例如在云游戏场景中,此时可以有服务器执行本技术实施例提供的方法,然后将绘制得到的虚拟对象发送至终端,从而在终端上显示。
44.服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或
者分布式系统,还可以是提供云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、车载终端、智能电视等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。
45.接下来,将结合附图对本技术实施例提供的虚拟对象展示方法进行详细介绍。
46.参见图3,图3示出了一种虚拟对象展示方法的流程图,所述方法包括:
47.s301、加载多个虚拟对象的骨骼网格。
48.虚拟对象是需要在屏幕上展示的对象,虚拟对象包括多个部件,每个部件具有对应的骨骼网格,即一个虚拟对象对应多个骨骼网格。其中,虚拟对象可以是包括多个部件的各种物体模型,例如可以是人物模型、动物模型,或者是其他物体模型,例如车的模型等。本实施例主要以虚拟对象是人物模型为例进行介绍。
49.参见图4所示,图4示出了一种人物模型的组成示意图,人物模型可以分为头、手、身体、脚四个部件,每个部件具有对应的骨骼网格,故人物模型可以由头、手、身体、脚分别对应的骨骼网格组成。图4仅是一种组成示意图,也可以有其他划分方式,本技术实施例对此不做限定。
50.当需要在屏幕上展示多个虚拟对象时,终端可以加载多个虚拟对象的骨骼网格。以虚拟对象是人物模型、人物模型的组成如图4所示为例,若需要展示虚拟对象a、虚拟对象b、虚拟对象c和虚拟对象d,则需要加载虚拟对象a的多个部件对应的骨骼网格、加载虚拟对象b的多个部件对应的骨骼网格、加载虚拟对象c的多个部件对应的骨骼网格、加载虚拟对象d的多个部件对应的骨骼网格。
51.s302、根据所述多个虚拟对象分别对应的运动信息,对所述多个虚拟对象进行分组,得到虚拟对象组。
52.运动信息用于反映虚拟对象在不同时刻的运动情况,运动信息例如可以包括运动方向、运动位置等,若运动信息相同,则说明虚拟对象在同一时刻的运动一致。
53.终端可以根据运动信息对多个虚拟对象进行分组,将在同一时刻运动一致的虚拟对象划分至一个虚拟对象组中。可以理解的是,虚拟对象组中可以包括一个或多个虚拟对象,当虚拟对象组中包括一个虚拟对象时,说明根据运动信息确定不存在与该虚拟对象运动一致的其他虚拟对象;当虚拟对象组中包括多个虚拟对象时,说明根据运动信息确定存在多个虚拟对象运动一致。
54.例如需要展示的多个虚拟对象包括虚拟对象a、虚拟对象b、虚拟对象c和虚拟对象d,若根据运动信息确定虚拟对象a与虚拟对象b运动一致,则将虚拟对象a与虚拟对象b划分至一个虚拟对象组(例如虚拟对象组1),虚拟对象c单独划分至一个虚拟对象组(例如虚拟对象组2),虚拟对象d单独划分至另一个虚拟对象组(例如虚拟对象组3)。
55.s303、对位于同一虚拟对象组中的虚拟对象对应的多个骨骼网格进行合并,得到一个主骨骼网格。
56.同一虚拟对象组中的虚拟对象运动一致,一个骨骼网格一般对应一个位置更新节点(参见图5所示),因此为了降低位置更新节点的数量,终端可以对位于同一虚拟对象组中的虚拟对象对应的多个骨骼网格进行合并,得到一个主骨骼网格,在不影响不同虚拟对象运动多样性的情况下,将同一虚拟对象组中多个骨骼网格合并成一个主骨骼网格,从而将多个位置更新节点降为一个位置更新节点。
57.继续以上述虚拟对象组1、虚拟对象组2、虚拟对象组3为例,虚拟对象组1中包括虚拟对象a和虚拟对象b,虚拟对象组2中包括虚拟对象c,虚拟对象组3中包括虚拟对象d。每个虚拟对象都包括多个部件(例如头、手、身体、脚四个部件),进而由头、手、身体、脚四个部件对应的骨骼网格组成,为了降低由于多个部件的骨骼网格分别绘制造成的大量网格位置更新开销,可以将位于同一虚拟对象组中的虚拟对象对应的多个骨骼网格进行合并,得到一个主骨骼网格。即将虚拟对象组1中虚拟对象a和虚拟对象b对应的多个骨骼网格进行合并,得到一个主骨骼网格;将虚拟对象组2中虚拟对象c对应的多个骨骼网格进行合并,得到一个主骨骼网格;将虚拟对象组3中虚拟对象d对应的多个骨骼网格进行合并,得到一个主骨骼网格。
58.需要说明的是,由于骨骼网格包含若干顶点,每个顶点都赋有对应骨骼点权重,是由骨骼点驱动顶点运动的网格体,且每个骨骼网格里存在若干材质信息,使得骨骼网格表现出不同的效果,例如衣服覆盖的部件例如手有皮肤和衣服材质,裤子覆盖的部件例如脚有裤子和皮肤材质,皮肤和衣服因为材质的不同会因下雨有不一样的湿润效果。因此,骨骼网格通过骨骼信息、顶点信息和材质信息表示,参见图5所示。这样,在对位于同一虚拟对象组中的虚拟对象对应的多个骨骼网格进行合并,得到一个主骨骼网格时,实际上可以参见图6所示,获取同一虚拟对象组中虚拟对象对应的多个骨骼网格(参见图6中s601所示),合并多个骨骼网格的骨骼信息(参见图6中s602所示),合并多个骨骼网格的顶点信息(参见图6中s603所示),合并多个骨骼网格的材质信息(参见图6中s604所示),得到主骨骼网格(参见图6中s605所示)。其中,s602

s604为s303中对多个骨骼网格进行合并的一种可能的实现方式。
59.此时,骨骼网格合并的加载流程如下所示:
60.function createplayermodel()
61.skeletalmeshes=loadskeletalmeshes()
62.‑‑→
加载多个骨骼网格
63.playermodel=mergemeshes(skeletalmeshes)
64.‑‑→
多个骨骼网格合并生成主骨骼网格
65.return playermodel
66.下面通过函数function mergemeshes(skeletalmeshes)可以定义生成主骨骼网格的具体实现方式:
67.function mergemeshes(skeletalmeshes)
68.playermodel=newskeletalmesh()
69.‑‑→
新建主骨骼网格结构
70.mergeskeletoninfo(playermodel,skeletalmeshes)
71.‑‑→
合并骨骼信息
72.mergevertexinfo(playermodel,skeletalmeshes)
73.‑‑→
合并顶点信息
74.mergematerialinfo(playermodel,skeletalmeshes)
75.‑‑→
合并材质信息
76.return playermodel
77.可以理解的是,每个材质信息在运行时修改参数后都将需要一个单独的绘制调用(draw call),参见图5所示。draw call指显示卡硬件在运行时的每帧绘制次数,一次简单的绘图次序是:设置渲染方式

设置顶点坐标

绘制

结束。通过材质信息合并可以大大减少材质信息的数量,进而大大降低draw call的消耗。
78.在进行材质信息合并时,可以通过不同的合并方式合并材质信息。一种方式时,无论材质信息是否相同,位于同一虚拟对象组中多个骨骼网格所对应的材质信息都进行合并。衣服覆盖的部件例如手有皮肤和衣服材质,裤子覆盖的部件例如脚有裤子和皮肤材质,则可以将手和脚所对应的所有材质都统一成一种材质。
79.另一种方式是根据材质信息,将材质相同的骨骼网格的材质信息进行合并。衣服覆盖的部件例如手有皮肤和衣服材质,裤子覆盖的部件例如脚有裤子和皮肤材质,其中手和脚具有相同的材质皮肤材质,故可以将手和脚这两个不同的部件涉及的皮肤材质可以进行合并,在网格合并后手和脚这两个部件可以复用一个皮肤材质。
80.通过将材质相同的骨骼网格的材质信息进行合并,在降低draw call的消耗的同时,保留各个材质能够动态变化的功能,例如皮肤和衣服因为材质的不同会因下雨有不一样的湿润效果。
81.通常情况下,一个骨骼网格具有对应的存储位置,以用于存储骨骼网格对应的相关信息,例如骨骼信息、顶点信息、材质信息。在对骨骼网格合并之前,不同部件的骨骼网格的相关信息存储在各自对应的存储位置,而在骨骼网格合并之后,为了在根据主骨骼网格展示虚拟对象时可以完整的获取所有的相关信息,在本实施例中终端可以确定主骨骼网格对应的目标存储位置,从而在合并多个骨骼网格的骨骼信息时,将多个骨骼网格的骨骼信息存在目标存储位置;在合并多个骨骼网格的顶点信息时,将多个骨骼网格的顶点信息存储在目标存储位置;在合并多个骨骼网格的材质信息时,将多个骨骼网格的材质信息存储在目标存储位置。
82.s304、根据所述主骨骼网格绘制并展示对应的虚拟对象。
83.在得到主骨骼网格后,终端可以根据主骨骼网格绘制并展示对应的虚拟对象。例如,将虚拟对象组1中虚拟对象a和虚拟对象b对应的多个骨骼网格进行合并,得到一个主骨骼网格,从而根据该主骨骼网格绘制并展示虚拟对象a和虚拟对象b;将虚拟对象组2中虚拟对象c对应的多个骨骼网格进行合并,得到一个主骨骼网格,从而根据该主骨骼网格绘制并展示虚拟对象c;将虚拟对象组3中虚拟对象d对应的多个骨骼网格进行合并,得到一个主骨骼网格,从而根据该主骨骼网格绘制并展示虚拟对象d。
84.将虚拟对象组中的多个骨骼网格合并为一个整体,从而将多个位置更新节点降为一个位置更新节点,在发生位置更新时,仅需要对主骨骼网格这一个骨骼网格进行更新,大大降低了多个骨骼网格位置更新开销,提高了显示卡的绘制速度,提高了在屏幕上所显示的画面的流畅性。
85.由上述技术方案可以看出,当需要显示多个包括多个部件的虚拟对象时,每个部件具有对应的骨骼网格,故可以加载多个虚拟对象的骨骼网格,根据多个虚拟对象分别对应的运动信息,对多个虚拟对象进行分组,得到虚拟对象组,同一个虚拟对象组中的虚拟对象在同一时刻的运动一致。然后,对位于同一虚拟对象组中的虚拟对象对应的多个骨骼网格进行合并,得到一个主骨骼网格,从而根据主骨骼网格绘制并展示对应的虚拟对象。由于
每个虚拟对象组中的虚拟对象对应的多个骨骼网格都可以合并得到一个主骨骼网格,使得多个骨骼网格合并为一个整体,将多个位置更新节点降为一个位置更新节点,在发生位置更新时,仅需要对主骨骼网格这一个骨骼网格进行更新,大大降低了多个骨骼网格位置更新开销,提高了显示卡的绘制速度,提高了在屏幕上所显示的画面的流畅性。由于开销大大降低,进而无需削减同屏玩家人数,提高玩家体验。
86.需要说明的是,在上述材质信息合并过程中主要涉及的是同一虚拟对象组中材质信息的合并。然而,不同虚拟对象组中的骨骼网格对应的材质信息也有可能相同,为了进一步降低draw call的消耗,还可以对不同虚拟对象组中的骨骼网格对应的材质信息进行合并,即获取多个虚拟对象的骨骼网格的材质信息,根据多个虚拟对象的骨骼网格的材质信息,若确定多个虚拟对象的骨骼网格中存在材质相同的骨骼网格,无论材质相同的骨骼网格是否属于同一虚拟对象组中的虚拟对象,都可以将多个虚拟对象的骨骼网格中材质相同的骨骼网格对应的材质信息进行合并。
87.虽然多个骨骼网格合并成为一个主骨骼网格,但是虚拟对象仍旧是由不同部件对应的骨骼网格组成,只是驱动形式从驱动多个骨骼网格运动的逻辑转换成驱动一个骨骼网格运动的逻辑。故仍旧可以以部件为单位进行调整。以目标部件为例,当获取针对目标部件的调整操作时,可以根据调整操作更新目标部件的材质信息,以及更新与目标部件具有相同材质的其他部件的材质信息,目标部件为多个部件中的任一部件。从而实现以部件为单位进行材质信息的设置和调整,保证丰富多彩的虚拟对象表现。
88.可以理解的是,在游戏场景中,多个虚拟对象为游戏应用中的游戏对象,终端通常通过主线程运行游戏应用,而骨骼网格的合并一般需要一定的开销,因此,为了避免骨骼网格的合并占用主线程的开销,从而增到主线程耗时,终端可以通过主线程的异步线程执行骨骼网格的合并。由此可以避免骨骼网格的合并占用主线程的开销,从而降低主线程耗时,提高游戏应用运行的流畅性,降低游戏应用卡顿的可能性。
89.接下来,将结合实际应用场景对本技术实施例提供的虚拟对象展示方法进行介绍。在游戏场景中,尤其是多人对战游戏,可能同屏出现十几至几十个玩家对应的虚拟对象,每个玩家对应虚拟对象包含多个部件的骨骼网格,此时会导致几十至几百个网格位置更新开销,几十至几百个draw call开销,这样的开销下只能考虑削减同屏玩家人数,影响玩家体验。为此,本技术实施例提供一种虚拟对象展示方法,参见图7该方法包括:
90.s701、加载多个虚拟对象对应的骨骼网格。
91.s702、根据多个虚拟对象分别对应的运动信息,对多个虚拟对象进行分组,得到虚拟对象组。
92.位于同一虚拟对象组中的虚拟对象在同一时刻的运动一致,虚拟对象组中可以包括一个或多个虚拟对象。
93.s703、对位于同一虚拟对象组中的虚拟对象对应的多个骨骼网格的骨骼信息进行合并。
94.s704、对位于同一虚拟对象组中的虚拟对象对应的多个骨骼网格的顶点信息进行合并。
95.s705、合并多个骨骼网格的材质信息。
96.s706、得到主骨骼网格。
97.s707、根据主骨骼网格绘制并展示对应的虚拟对象。
98.基于图3对应实施例提供的虚拟对象展示方法,本技术实施例还提供一种虚拟对象展示装置,参见图8,所述虚拟对象展示装置800包括加载单元801、分组单元802、合并单元803和展示单元804:
99.所述加载单元801,用于加载多个虚拟对象的骨骼网格,每个虚拟对象包括多个部件,每个部件具有对应的骨骼网格;
100.所述分组单元802,用于根据所述多个虚拟对象分别对应的运动信息,对所述多个虚拟对象进行分组,得到虚拟对象组,同一个虚拟对象组中的虚拟对象在同一时刻的运动一致;
101.所述合并单元803,用于对位于同一虚拟对象组中的虚拟对象对应的多个骨骼网格进行合并,得到一个主骨骼网格;
102.所述展示单元804,用于根据所述主骨骼网格绘制并展示对应的虚拟对象。
103.在一种可能的实现方式中,骨骼网格通过骨骼信息、顶点信息和材质信息表示,所述合并单元803,具体用于:
104.合并所述多个骨骼网格的骨骼信息;
105.合并所述多个骨骼网格的顶点信息;
106.合并所述多个骨骼网格的材质信息。
107.在一种可能的实现方式中,所述装置还包括确定单元:
108.所述确定单元,用于确定所述主骨骼网格对应的目标存储位置;
109.所述合并单元803,具体用于将所述多个骨骼网格的骨骼信息存在所述目标存储位置;将所述多个骨骼网格的顶点信息存储在所述目标存储位置;将所述多个骨骼网格的材质信息存储在所述目标存储位置。
110.在一种可能的实现方式中,所述合并单元803,具体用于:
111.根据材质信息,将材质相同的骨骼网格的材质信息进行合并。
112.在一种可能的实现方式中,所述装置还包括获取单元:
113.所述获取单元,用于获取所述多个虚拟对象的材质信息;
114.所述合并单元803,还用于根据所述多个虚拟对象的材质信息,将所述多个虚拟对象中材质相同的骨骼网格对应的材质信息进行合并。
115.在一种可能的实现方式中,所述装置还包括获取单元和更新单元:
116.所述获取单元,用于获取针对目标部件的调整操作;
117.所述更新单元,用于根据所述调整操作更新所述目标部件的材质信息,以及更新与所述目标部件具有相同材质的其他部件的材质信息,所述目标部件为所述多个部件中的任一部件。
118.在一种可能的实现方式中,所述多个虚拟对象为游戏应用中的游戏对象,通过主线程运行所述游戏应用,通过所述主线程的异步线程执行骨骼网格的合并。
119.基于以上提供的虚拟对象展示方法,本技术实施例还提供了一种用于虚拟对象展示的设备,该设备可以是终端,以终端为智能手机为例:
120.图9示出的是与本技术实施例提供的终端相关的智能手机的部分结构的框图。参考图9,智能手机包括:射频(英文全称:radio frequency,英文缩写:rf)电路910、存储器
920、输入单元930、显示单元940、传感器950、音频电路960、无线保真(英文全称:wireless fidelity,英文缩写:wifi)模块970、处理器980、以及电源990等部件。输入单元930可包括触控面板931以及其他输入设备932,显示单元940可包括显示面板941,音频电路960可以包括扬声器961和传声器962。本领域技术人员可以理解,图9中示出的智能手机结构并不构成对智能手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
121.存储器920可用于存储软件程序以及模块,处理器980通过运行存储在存储器920的软件程序以及模块,从而执行智能手机的各种功能应用以及数据处理。存储器920可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据智能手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器920可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
122.处理器980是智能手机的控制中心,利用各种接口和线路连接整个智能手机的各个部分,通过运行或执行存储在存储器920内的软件程序和/或模块,以及调用存储在存储器920内的数据,执行智能手机的各种功能和处理数据,从而对智能手机进行整体监控。可选的,处理器980可包括一个或多个处理单元;优选的,处理器980可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器980中。
123.在本实施例中,所述终端中的处理器980可以执行以下步骤:
124.加载多个虚拟对象的骨骼网格,每个虚拟对象包括多个部件,每个部件具有对应的骨骼网格;
125.根据所述多个虚拟对象分别对应的运动信息,对所述多个虚拟对象进行分组,得到虚拟对象组,同一个虚拟对象组中的虚拟对象在同一时刻的运动一致;
126.对位于同一虚拟对象组中的虚拟对象对应的多个骨骼网格进行合并,得到一个主骨骼网格;
127.根据所述主骨骼网格绘制并展示对应的虚拟对象。
128.本技术实施例还提供一种服务器,请参见图10所示,图10为本技术实施例提供的服务器1000的结构图,服务器1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,简称cpu)1022(例如,一个或一个以上处理器)和存储器1032,一个或一个以上存储应用程序1042或数据1044的存储介质1030(例如一个或一个以上海量存储设备)。其中,存储器1032和存储介质1030可以是短暂存储或持久存储。存储在存储介质1030的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1022可以设置为与存储介质1030通信,在服务器1000上执行存储介质1030中的一系列指令操作。
129.服务器1000还可以包括一个或一个以上电源1026,一个或一个以上有线或无线网络接口1050,一个或一个以上输入输出接口1058,和/或,一个或一个以上操作系统1041,例如windows server
tm
,mac os x
tm
,unix
tm
,linux
tm
,freebsd
tm
等等。
130.在本实施例中,上述方法中由服务器执行的步骤可以基于图10所示的服务器结构
实现。
131.根据本技术的一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行前述各个实施例所述的虚拟对象展示方法。
132.根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例各种可选实现方式中提供的方法。
133.本技术的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
134.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
135.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
136.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
137.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read

only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。
138.以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术成员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些
修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜