CN110090440B - 虚拟对象显示方法、装置、电子设备及存储介质 - Google Patents
虚拟对象显示方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110090440B CN110090440B CN201910365338.XA CN201910365338A CN110090440B CN 110090440 B CN110090440 B CN 110090440B CN 201910365338 A CN201910365338 A CN 201910365338A CN 110090440 B CN110090440 B CN 110090440B
- Authority
- CN
- China
- Prior art keywords
- virtual object
- displayed
- virtual
- target
- objects
- 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/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- 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
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/822—Strategy games; Role-playing games
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种虚拟对象显示方法、装置、电子设备及存储介质,属于计算机技术领域。所述方法包括:获取多个虚拟对象的目标位置信息;根据多个虚拟对象的数量,通过图像处理器的多个并行通道,并行根据多个虚拟对象的目标位置信息,从多个虚拟对象中,获取至少一个待显示的虚拟对象;在图形用户界面中,在至少一个待显示的虚拟对象的目标位置信息对应的位置上,显示至少一个待显示的虚拟对象。本发明通过图像处理器的多个并行通道来并行处理,而无需由中央处理器逐个确定是否需要进行显示,可以避免出现中央处理器过载的问题,可以大幅度提高处理效率,进而提高该虚拟对象显示过程的显示效果,也提高了该虚拟对象的显示效果。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种虚拟对象显示方法、装置、电子设备及存储介质。
背景技术
随着计算机技术的发展和终端功能的多样化,在终端上能够进行的游戏种类越来越多,在一些电子游戏中,需要在图形用户界面中显示多个虚拟对象,而在显示时该多个虚拟对象中有些虚拟对象可能因为位置问题,并不需要显示在当前图形用户界面中,则在对虚拟对象进行显示时,需要将这部分无需显示的虚拟对象进行剔除,显示剩下的虚拟对象。
目前,虚拟对象显示方法通常是:对于多个虚拟对象中任一个虚拟对象,通过中央处理器,判断该虚拟对象是否需要进行显示,再通过该中央处理器继续确定该虚拟对象的其它显示数据,例如,该虚拟对象的骨骼模型中每个骨骼的位姿数据等,从而在上述判断结果表示该虚拟对象需要进行显示时,通过图像处理器,对该虚拟对象进行显示。每处理结束一个虚拟对象,即可继续处理下一个虚拟对象,直至对该多个虚拟对象均处理结束。
上述虚拟对象显示方法采用了由中央处理器遍历多个虚拟对象并逐个确定该多个虚拟对象是否需要显示以及显示数据的串行处理方式,随着虚拟对象的数量的增加,中央处理器对多个虚拟对象的处理时间则大幅度增加,从而可能出现中央处理器过载的问题,上述虚拟对象显示方法的显示效率低,显示效果差。
发明内容
本发明实施例提供了一种虚拟对象显示方法、装置、电子设备及存储介质,可以解决相关技术中中央处理器过载、显示效率低和显示效果差的问题。所述技术方案如下:
一方面,提供了一种虚拟对象显示方法,所述方法包括:
获取多个虚拟对象的目标位置信息;
根据所述多个虚拟对象的数量,通过图像处理器的多个并行通道,并行根据所述多个虚拟对象的目标位置信息,从所述多个虚拟对象中,获取至少一个待显示的虚拟对象,每个并行通道用于根据一个虚拟对象的目标位置信息确定所述一个虚拟对象是否需要进行显示;
在图形用户界面中,在所述至少一个待显示的虚拟对象的目标位置信息对应的位置上,显示所述至少一个待显示的虚拟对象。
一方面,提供了一种虚拟对象显示装置,所述装置包括:
位置获取模块,用于获取多个虚拟对象的目标位置信息;
对象获取模块,用于根据所述多个虚拟对象的数量,通过图像处理器的多个并行通道,并行根据所述多个虚拟对象的目标位置信息,从所述多个虚拟对象中,获取至少一个待显示的虚拟对象,每个并行通道用于根据一个虚拟对象的目标位置信息确定所述一个虚拟对象是否需要进行显示;
显示模块,用于在图形用户界面中,在所述至少一个待显示的虚拟对象的目标位置信息对应的位置上,显示所述至少一个待显示的虚拟对象。
一方面,提供了一种电子设备,所述电子设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条指令,所述指令由所述一个或多个处理器加载并执行以实现所述虚拟对象显示方法所执行的操作。
一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现所述虚拟对象显示方法所执行的操作。
本发明实施例通过根据多个虚拟对象的目标位置信息,可以根据该多个虚拟对象的数量,通过图像处理器的多个并行通道来并行确定该多个虚拟对象是否需要显示,从而从中确定出至少一个待显示的虚拟对象,在图形用户界面中对其进行显示,通过图像处理器的多个并行通道来并行处理,而无需由中央处理器逐个确定是否需要进行显示,可以避免出现中央处理器过载的问题,可以大幅度提高处理效率,进而提高该虚拟对象显示过程的显示效果,也提高了该虚拟对象的显示效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种虚拟对象显示的示意图;
图2是本发明实施例提供的一种虚拟对象显示方法的流程图;
图3是本发明实施例提供的一种不同精细程度的骨骼模型的示意图;
图4是本发明实施例提供的一种待显示的虚拟对象的骨骼模型的LOD级别的示意图;
图5是本发明实施例提供的一种待换色表的示意图;
图6是本发明实施例提供的一种相关技术中虚拟对象显示方法的流程示意图;
图7是本发明实施例提供的一种虚拟对象显示方法的流程示意图;
图8是本发明实施例提供的一种特定LOD级别的骨骼模型的显示示意图;
图9是本发明实施例提供的一种特定LOD级别的骨骼模型的显示示意图;
图10是本发明实施例提供的一种特定LOD级别的骨骼模型的显示示意图;
图11是本发明实施例提供的一种特定LOD级别的骨骼模型的显示示意图;
图12是本发明实施例提供的一种虚拟对象的显示示意图;
图13是本发明实施例提供的一种虚拟对象的显示示意图;
图14是本发明实施例提供的一种部位模型的示意图;
图15是本发明实施例提供的一种虚拟对象显示方法的流程图;
图16是本发明实施例提供的一种虚拟对象显示装置的结构示意图;
图17是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例主要涉及电子游戏或者模拟训练场景,以电子游戏场景为例,用户可以提前在该终端上进行操作,该终端检测到用户的操作后,可以下载电子游戏的游戏配置文件,该游戏配置文件可以包括该电子游戏的应用程序、界面显示数据或虚拟场景数据等,以使得该用户在该终端上登录电子游戏时可以调用该游戏配置文件,对电子游戏界面进行渲染显示。用户可以在终端上进行触控操作,该终端检测到触控操作后,可以确定该触控操作所对应的游戏数据,并对该游戏数据进行渲染显示,该游戏数据可以包括虚拟场景数据、该虚拟场景中虚拟对象的行为数据等。
本发明涉及到的虚拟场景可以用于模拟一个三维虚拟空间,也可以用于模拟一个二维虚拟空间,该三维虚拟空间或二维虚拟空间可以是一个开放空间。该虚拟场景可以用于模拟现实中的真实环境,例如,该虚拟场景中可以包括天空、陆地、海洋等,该陆地可以包括沙漠、城市等环境元素,用户可以控制虚拟对象在该虚拟场景中进行移动,该虚拟对象可以是该虚拟场景中的一个虚拟的用于代表用户的虚拟形象,也可以是该虚拟场景中的一个虚拟的用于代表与用户交互的角色的虚拟形象。该虚拟形象可以是任一种形态,例如,人、动物等,本发明对此不限定。该虚拟场景中可以包括多个虚拟对象,每个虚拟对象在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。
以射击类游戏为例,用户可以控制虚拟对象在该虚拟场景的天空中自由下落、滑翔或者打开降落伞进行下落等,在陆地上中跑动、跳动、爬行、弯腰前行等,也可以控制虚拟对象在海洋中游泳、漂浮或者下潜等,当然,用户也可以控制虚拟对象乘坐载具在该虚拟场景中进行移动,在此仅以上述场景进行举例说明,本发明实施例对此不作具体限定。用户也可以控制虚拟对象通过兵器与其他虚拟对象进行战斗,该兵器可以是冷兵器,也可以是热兵器,本发明对此不作具体限定。当然,还可以为其他种类的电子游戏中的场景,例如,角色扮演类游戏等,或可以为其他模拟场景,本发明实施例提供的方法的应用场景并不限定。例如,如图1所示,终端可以在虚拟场景中显示多个虚拟对象。
下面针对本发明实施例涉及的一些名词进行介绍:
骨骼动画:模型动画的一种,指一系列类似生物骨骼层级关系的矩阵列,骨骼动画中每一个动画帧存储有每一个骨骼的位置和旋转等信息,即这一个骨骼在这一个动画帧中的位姿,连续一段时间内的多个动画帧则形成了每一个骨骼在这段时间内的运动数据,从而使用骨骼动画可以实时驱动骨骼模型。
骨骼模型:一般指由骨骼动画驱动的角色模型,和一般的静态物件不同,骨骼模型每帧对应有骨骼动画,该骨骼动画显示的效果可以为虚拟对象做出相应动作的效果,具体绘制时可以通过采样动画数据做顶点的蒙皮,也即是采样骨骼模型中每个骨骼的位姿数据做顶点的蒙皮。
蒙皮(Skinning):指在角色渲染时将角色模型每一个顶点按照它对应的所有骨骼按权重进行加权变形顶点,从而达到骨骼的姿势驱动最后渲染的角色模型。在当代游戏引擎中,蒙皮可以每帧在中央处理器(Central Processing Unit,CPU)执行,也可以每帧在图像处理器(Graphics Processing Unit,GPU)的顶点着色器执行,后者效率更高。
多细节层次(Levels of Detail,LOD):LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。在本发明实施例中,骨骼模型的LOD级别不同时,骨骼模型的精细程度可以不同,例如,该骨骼模型的面数和顶点数可以不同。
在一种可能实现方式中,LOD级别可以与精细程度正相关,也可以负相关,在此仅以负相关为例进行说明,以LOD级别包括四级为例,LOD级别可以包括0、1、2、3级,其中,0级的骨骼模型的精细程度最好,骨骼模型的面数和顶点数最多,3级的骨骼模型的精细程度最差,骨骼模型的面数和顶点数最少。
材质:是指在虚拟场景中骨骼模型真实的物理性质,例如,纹理、表面的色彩、反射率、折射率、发光度、光滑度等。
可见性剔除:指减少对在图形用户界面中看不见的物体的显示的方式。也即是,对于在图形用户界面中看不见的物体,可以对其进行剔除,不对其进行显示,以减少终端的运行压力。
图2是本发明实施例提供的一种虚拟对象显示方法的流程图,该虚拟对象显示方法应用于电子设备中,该电子设备可以被提供为终端,也可以被提供为服务器,本发明实施例对此不作限定,下述仅以该电子设备被提供为终端为例进行说明。参见图2,该方法可以包括以下步骤:
201、终端获取多个虚拟对象的目标位置信息。
在本发明实施例中,虚拟场景中包括多个虚拟对象,终端可以根据该多个虚拟对象在虚拟场景中的目标位置信息,对该多个虚拟对象进行可见性剔除,判断本次需要对哪些虚拟对象进行显示,而哪些虚拟对象不需要进行显示。该过程可以由终端显示每帧虚拟场景时执行,以确定在该每帧虚拟场景中需要显示哪些虚拟对象,从而对其进行显示。
具体地,该多个虚拟对象的目标位置信息可以为该多个虚拟对象在虚拟场景中的目标位置信息,对于每个虚拟对象,终端可以执行下述步骤,进一步确定该每个虚拟对象是否需要进行显示。例如,终端可以获取该多个虚拟对象在虚拟场景中的坐标。在一种可能实现方式中,每个虚拟对象可以在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间,在该实现方式中,该坐标可以为坐标范围的形式。
需要说明的是,终端在图形用户界面中显示虚拟场景和虚拟场景中的虚拟对象,虚拟摄像头的方向可能会发生变化,该虚拟场景中的虚拟对象也可能在虚拟场景中进行移动,终端在显示每帧虚拟场景和虚拟对象时,可以先根据该多个虚拟对象的目标位置信息对其进行显示。该目标位置信息可以是指在将要显示的每帧中需要体现的位置。
在一种可能实现方式中,对每个虚拟对象进行判断时可以通过包括该每个虚拟对象的目标区域来实现,也即是,终端可以获取包括每个虚拟对象的目标区域的目标位置信息,将该目标区域的目标位置信息作为该每个虚拟对象的目标位置信息。
例如,可以将包括该每个虚拟对象的长方体区域作为该目标区域,这样通过该目标区域的位置信息,进行下述步骤,判断该每个虚拟对象是否需要进行显示,可以形象地称包括该每个虚拟对象的目标区域为该每个虚拟对象的包围盒。当然,该目标区域还可以为其他形状,比如,球体区域、正方体区域,当然也可以为该虚拟对象的胶囊体所在区域。本发明实施例对该目标区域的设置不作限定。
202、终端根据该多个虚拟对象的数量,获取图像处理器的第一目标数量的并行通道。
终端获取到该多个虚拟对象的目标位置信息后,可以进一步判断每个虚拟对象是否需要进行显示,在确定每个虚拟对象是否需要进行显示的步骤可以由图像处理器的多个并行通道并行实现。每个并行通道用于根据一个虚拟对象的目标位置信息确定该一个虚拟对象是否需要进行显示。
在该步骤202之前,终端可以获取该多个虚拟对象的数量,从而执行该步骤202,来确定获取多少并行通道。该图像处理器的并行通道的数量可以根据多个虚拟对象的数量确定,在此将并行通道的数量命名为第一目标数量。可以理解地,如果需要进行判断的虚拟对象的数量较多,需要的并行通道的数量则比较多。具体地,该步骤202可以通过下述两种方式中任一种方式实现:
方式一、终端将该多个虚拟对象的数量作为第一目标数量,获取图像处理器的该第一目标数量的并行通道。
在该方式一中,由于图像处理器的核心数目多,可以支持高并发性的处理任务,终端可以根据多个虚拟对象的数量,获取相同数量的并行通道,通过每个并行通道,对该多个虚拟对象中的一个虚拟对象进行判断。例如,该多个虚拟对象的数量为1000,终端可以获取图像处理器的1000个并行通道,一个并行通道对应一个虚拟对象。
方式二、当该多个虚拟对象的数量大于数量阈值时,终端将该数量阈值作为第一目标数量,获取图像处理器的该第一目标数量的并行通道;当该多个虚拟对象的数量小于或等于数量阈值时,该终端的图像处理器的处理能力不同时,该第一目标数量还可能不同。将该多个虚拟对象的数量作为第一目标数量,获取图像处理器的该第一目标数量的并行通道。
在该方式二中,考虑到图像处理器的并行处理能力,可以在该终端中设置数量阈值,也即是,终端可以通过该图像处理器,并行对该数量阈值的虚拟对象进行处理,如果虚拟对象的数量大于数量阈值时,则可以分批处理。该数量阈值其实质为该图像处理器对多个虚拟对象进行并行判断的最大数量。该数量阈值可以由相关技术人员根据图像处理器的处理能力和需求进行设置,本发明实施例对此不作限定。例如,该数量阈值可以为100,如果虚拟对象的数量为1000,则该终端可以获取100个并行通道,分为十批来进行判断。而如果虚拟对象的数量为50,则该终端可以获取50个并行通道。
终端可以采用上述两种方式中任一种来获取多个并行通道,具体采用哪种实现方式可以由相关技术人员根据终端的图像处理器的处理能力进行设置,本发明实施例对此不作限定。
203、终端通过图像处理器的第一目标数量的并行通道,并行根据该多个虚拟对象的目标位置信息,从该多个虚拟对象中,获取至少一个待显示的虚拟对象。
终端获取到图像处理器的第一目标数量的并行通道,则可以并行根据该多个虚拟对象的目标位置信息,判断每个虚拟对象是否需要进行显示,从而将需要进行显示的虚拟对象作为待显示的虚拟对象。具体地,终端通过每个并行通道,对一个虚拟对象进行判断的过程可以通过下述步骤一和步骤二实现:
步骤一、对于该多个虚拟对象中每个虚拟对象,终端根据该每个虚拟对象的目标位置信息,获取该每个虚拟对象对应的第一位置关系和第二位置关系中至少一项,该第一位置关系为该每个虚拟对象与虚拟摄像头的图像采集范围的关系,该第二位置关系为该每个虚拟对象、该虚拟摄像头以及虚拟场景中的虚拟物品之间的位置关系中至少一项。
步骤二、当该每个虚拟对象对应的第一位置关系和第二位置关系中至少一项满足目标条件时,将该每个虚拟对象获取为待显示的虚拟对象。
在该步骤一中,终端可以基于每个虚拟对象的目标位置信息,获取一种位置关系或者两种位置关系,也即是,终端根据该每个虚拟对象的目标位置信息,获取该每个虚拟对象对应的第一位置关系和第二位置关系中至少一项可以包括以下三种情况:
情况一、终端根据该每个虚拟对象的目标位置信息,获取该每个虚拟对象对应的第一位置关系。
情况二、终端根据该每个虚拟对象的目标位置信息,获取该每个虚拟对象对应的第二位置关系。
情况三、终端根据该每个虚拟对象的目标位置信息,获取该每个虚拟对象对应的第一位置关系和第二位置关系。
步骤二中,终端在获取到一种位置关系或两种位置关系后,可以进一步判断获取到的位置关系是否满足目标条件。对应于步骤一中的三种情况,该步骤二也可以包括三种情况:
情况一、对于该多个虚拟对象中每个虚拟对象,当该第一位置关系表示该每个虚拟对象位于该虚拟摄像头的图像采集范围内时,终端将该每个虚拟对象获取为待显示的虚拟对象。
对应于步骤一中的情况一,如果只考虑第一位置关系,第一位置关系用于确定该每个虚拟对象是否在虚拟摄像头的图像采集范围内,如果是,则说明对虚拟场景进行显示时,待显示的这部分虚拟场景中包括该每个虚拟对象,因而,可以将该每个虚拟对象作为待显示的虚拟对象。当然,如果否,则说明待显示的这部分虚拟场景中不包括该每个虚拟对象,因而,也无需将其确定待显示的虚拟对象。
情况二、对于该多个虚拟对象中每个虚拟对象,当该第二位置关系表示该每个虚拟对象与该虚拟摄像头的任一条连线不通过虚拟场景中的虚拟物品时,终端将该每个虚拟对象获取为待显示的虚拟对象。
如果只考虑第二位置关系,第二位置关系用于确定虚拟场景中的虚拟物品是否对该每个虚拟对象产生遮挡。该第二位置关系表示该每个虚拟对象与该虚拟摄像头的连线均通过虚拟场景中的虚拟物品,说明该虚拟场景中的虚拟物品对该每个虚拟对象产生了遮挡,虚拟摄像头对虚拟场景进行采集时并不能将该虚拟对象采集在内,因而,为了真实模拟现实场景,可以将这部分遮挡的虚拟对象进行剔除,将不产生遮挡的虚拟对象作为待显示的虚拟对象,也即是,将第二位置关系表示该每个虚拟对象与该虚拟摄像头的任一条连线不通过虚拟场景中的虚拟物品作为确定不产生遮挡的判断条件。
情况三、对于该多个虚拟对象中每个虚拟对象,当该第一位置关系表示该每个虚拟对象位于该虚拟摄像头的图像采集范围内,且该第二位置关系表示该每个虚拟对象与该虚拟摄像头的任一条连线不通过虚拟场景中的虚拟物品时,终端将该每个虚拟对象获取为待显示的虚拟对象。
在该步骤三中,可以既考虑第一位置关系,又考虑第二位置关系,也即是,既考虑虚拟摄像头的图像采集视野问题,又考虑虚拟物品对虚拟对象的遮挡问题。对于任一个虚拟对象,在确定该虚拟对象在虚拟摄像头的图像采集范围内,且不被虚拟场景中的虚拟物品完全遮挡时,可以将其作为待显示的虚拟对象。通过该两种位置关系进行判定,可以保证对虚拟对象进行可见性剔除时剔除的更彻底、更准确,减少后续进行不必要的显示数据确定的步骤,从而提高了虚拟对象显示方法的整体流程的处理效率。
在一种可能实现方式中,上述步骤一中,终端获取第一位置关系和第二位置关系后,也可以对应步骤二中的三种情况中任一种,也即是,终端获取两种位置关系后,只要任一种位置关系满足目标条件,即可将其作为待显示的虚拟对象。具体采用哪种实现方式可以由相关技术人员根据需求进行设置,本发明实施例对此不作限定。
上述步骤202和步骤203是根据该多个虚拟对象的数量,通过图像处理器的多个并行通道,并行根据该多个虚拟对象的目标位置信息,从该多个虚拟对象中,获取至少一个待显示的虚拟对象的过程,通过一个并行通道可以确定一个虚拟对象是否为待显示的虚拟对象,通过多个并行通道,即可得到该多个虚拟对象中哪些虚拟对象为待显示的虚拟对象。需要说明的是,GPU的核心数目多,可以支持高并发性的处理任务,相较于相关技术中由CPU逐个确定每个虚拟对象是否需要进行显示的串行处理方式,可以有效提高处理效率,减少了CPU的处理任务量和处理时间,可以避免可能出现的CPU过载的问题,可以提高GPU的利用率,进而提高了虚拟对象显示方法的显示效率和显示效果。
204、终端通过该图像处理器的该多个并行通道,并行根据该至少一个待显示的虚拟对象与虚拟摄像头之间的距离,从该至少一个待显示的虚拟对象的多个骨骼模型中,获取该至少一个待显示的虚拟对象的目标骨骼模型。
其中,每个待显示的虚拟对象可以包括多个骨骼模型,该多个骨骼模型的精细程度不同。终端可以根据每个待显示的虚拟对象与虚拟摄像头之间的距离,从多个骨骼模型中选择一个作为待显示的骨骼模型,也即是目标骨骼模型。其中,可以通过每个并行通道根据一个待显示的虚拟对象与虚拟摄像头之间的距离,从多个骨骼模型中选择一个作为目标骨骼模型。
在一种可能实现方式中,该目标骨骼模型的精细程度与该距离负相关。也即是,距离越大,该目标骨骼模型的精细程度越差,距离越小,该目标骨骼模型的精细程度越好。例如,距离虚拟摄像头较远的虚拟对象在显示时显示尺寸可能会比较小,或者考虑到人眼视觉效果,看距离较远的物体时该物体的清晰程度比看距离较近的物体时该物体的清晰程度差,则可以进行上述设置,距离较远的虚拟对象可以显示精细程度差的目标骨骼模型,距离较近的虚拟对象可以显示精细程度好的目标骨骼模型。
在一种可能实现方式中,该骨骼模型的精细程度可以通过LOD技术实现,该步骤204中,终端可以通过该图像处理器的该多个并行通道,并行根据该至少一个待显示的虚拟对象与虚拟摄像头之间的距离,确定每个待显示的虚拟对象的LOD级别,从而获取该LOD级别对应的骨骼模型,该LOD级别对应的骨骼模型即为该目标骨骼模型。其中,可以通过每个并行通道根据一个待显示的虚拟对象与虚拟摄像头之间的距离,确定该一个待显示的虚拟对象的LOD级别。
例如,以LOD级别包括四级,LOD级别与精细程度负相关为例,LOD级别可以包括0、1、2、3级,其中,0级的骨骼模型的精细程度最好,骨骼模型的面数和顶点数最多,3级的骨骼模型的精细程度最差,骨骼模型的面数和顶点数最少。如图3所示,四个骨骼模型从左至右,面数和顶点数越来越少,精细程度越来越差。该LOD级别不同的骨骼模型可以通过微软的SimpolyGon软件进行制作,也可以通过其他方式来制作,本发明实施例对此不作限定。
在一个具体的可能实施例中,在该终端中可以存储有距离与LOD级别的对应关系,终端可以根据该对应关系,获取至少一个待显示的虚拟对象与虚拟摄像头之间的距离对应的LOD级别。在一个具体的可能实施方式中,在终端中可以存储有距离区间与LOD级别的对应关系,对于一个并行通道上,终端可以判断一个待显示的虚拟对象与虚拟摄像头之间的距离,判断该距离在哪个距离区间,从而将该距离区间对应的LOD级别对应的骨骼模型作为目标骨骼模型,当然,该终端也可以直接设置有距离区间与骨骼模型的对应关系,终端可以根据该距离区间,获取距离区间对应的骨骼模型作为目标骨骼模型。
例如,如图4所示,以多个虚拟对象的数量为1000为例,通过该步骤可以确定该1000个中部分虚拟对象(待显示的虚拟对象)各自对应的LOD级别,也即是确定待显示的虚拟对象的骨骼模型的LOD级别,在该图4中所示的示例中,不同的LOD级别的虚拟对象的数量和可以不同。
205、终端通过该图像处理器的该多个并行通道,并行根据虚拟对象的标识信息以及材质信息的对应关系,获取该至少一个待显示的虚拟对象的目标骨骼模型的材质信息。
在本发明实施例中,不同虚拟对象的骨骼模型的材质可以相同,也可以不同,在此以不同虚拟对象的骨骼模型的材质可能不同为例,终端在确定了待显示的目标骨骼模型后,还可以获取该目标骨骼模型的材质信息。
其中,该虚拟对象的标识信息以及材质信息的对应关系可以在该虚拟对象生成时确定。在该终端中可以存储有不同材质信息,例如,该材质信息可以通过材质贴图的方式提供,在任一虚拟对象生成时,终端可以在该材质贴图中进行随机采样,确定该虚拟对象的骨骼模型的材质信息。终端进而可以将该虚拟对象的标识信息与材质信息进行对应存储。又例如,该材质信息可以通过材质贴图和换色表的方式提供,材质贴图配合换色表,在材质的基础上,还可以进一步提供更多的颜色,从而提高虚拟对象显示的多样化。
例如,如图5所示,提供了不同的换色表,该多个换色表中颜色的亮度、种类和数量均不同,具体可以由相关技术人员根据需求进行设置,本发明示例对此不作限定。
在一种可能实现方式中,该终端存储该对应关系的过程可以为:终端可以将该虚拟对象的标识信息与材质信息的对应关系写入第一缓冲区,从而该步骤205中,终端可以从第一缓冲区中读取该虚拟对象的标识信息对应的材质信息。例如,该第一缓冲区可以为实例索引缓冲区(Instance Index Buffer),该材质信息可以记为材质ID,ID为identification的缩写,用于表示身份标识。
206、终端根据该至少一个待显示的虚拟对象的目标骨骼模型的材质信息,对材质贴图进行采样,得到该至少一个待显示的虚拟对象的目标骨骼模型的目标显示形态。
终端在确定了每个待显示的虚拟对象的目标骨骼模型的材质信息后,即可按照该材质信息对目标骨骼模型进行绘制,以实现对目标骨骼模型的显示。该显示过程可以包括该步骤206和下述步骤207。在该步骤206中,终端先根据该材质信息确定目标骨骼模型的目标显示形态,进而执行下述步骤207,以对该目标显示形态进行显示。
在一种可能实现方式中,该材质贴图可以采用矩阵的形式,也即是该材质贴图可以为一个材质矩阵,终端在上述步骤205中确定的材质信息可以为该材质的纹理坐标UV,进而根据该UV进行采样。
207、终端在图形用户界面中,在该至少一个待显示的虚拟对象的目标位置信息对应的位置上,显示该至少一个待显示的虚拟对象的目标骨骼模型的目标显示形态。
终端在确定了每个待显示的虚拟对象的目标显示形态后,则可以在图形用户界面中对其进行显示,具体显示时终端还可以根据该至少一个待显示的虚拟对象的目标位置信息,获取该至少一个待显示的虚拟对象在图形用户界面中的对应位置,从而在该对应位置上进行显示。
在一种可能实现方式中,该步骤206和步骤207的过程中,可以对该至少一个待显示的虚拟对象进行批量显示,例如,终端可以通过实例化(instancing)的方式调用绘制接口,将待绘制的数据通知GPU的着色器,由GPU的着色器进行绘制。
在一个具体的可能实施例中,该批量显示的过程中还可以根据材质信息进行批量显示。也即是,将材质信息相同的虚拟对象在同一批次进行显示,将材质信息不同的虚拟对象在不同批次进行显示。具体地,终端可以根据该至少一个待显示的虚拟对象的目标骨骼模型的材质信息的类型数量,对该类型数量的绘制命令进行实例化,得到该类型数量的对象,每个绘制命令对应材质信息的一个类型,终端可以通过该类型数量的对象,执行对材质贴图进行采样和显示的步骤,每个对象用于对材质信息的一个类型对应的待显示的虚拟对象执行该对材质贴图进行采样和显示的步骤。
例如,相关技术中,如图6所示,由CPU逐个确定每个虚拟对象是否需要进行显示,并逐个确定每个虚拟对象的显示数据,对每个虚拟对象均发起一个绘制命令(DrawCall)至GPU,从而通过GPU对该虚拟对象进行显示。图6中示出了对每个虚拟对象进行绘制(Draw)的过程,在具体绘制时可以通过GPU的顶点着色器对虚拟对象的骨骼模型的顶点进行蒙皮,具体可以采用输出位姿=GPU蒙皮(位姿数据,顶点标识),也即是,OutPos=GPUSkinning(Pos,m),其中,OutPos为输出位姿,也即是,该骨骼模型的最终姿态,GPUSkinning()是指GPU进行蒙皮,Pos是位姿数据,m为顶点标识。大多数情况下,GPU完成了一个DrawCall在等CPU发下一个DrawCall,导致CPU带不动GPU。
本发明实施例提供的批量显示方式可以如图7所示,对于同样材质的虚拟对象可以发起一个DrawCall,即可通过GPU对多个虚拟对象进行显示,图7中示出了通过间接绘制实例(DrawIntancedIndirect)的方式,通过一次调用,批量对多个虚拟对象进行绘制(Draw)的过程,在具体绘制时可以通过GPU的顶点着色器对虚拟对象的骨骼模型的顶点进行蒙皮,具体可以采用输出位姿=GPU蒙皮(位姿数据,顶点标识),也即是,OutPos=GPUSkinning(Pos,m),其中,OutPos为输出位姿,也即是,该骨骼模型的最终姿态,GPUSkinning()是指GPU进行蒙皮,Pos是位姿数据,m为顶点标识。对在此仅以一种示例进行说明,对具体绘制过程不造成限定。该过程中将多个虚拟对象作为一个群体,批量地对群体直接进行显示,可以大幅度减少发起DrawCall的数量,减少CPU的负荷,可以有效提高显示效率。这样本发明实施例提供的方法支持显示的虚拟对象的数量显著提升,可以突破相关技术中虚拟对象的数量瓶颈。
例如,在一个具体示例中,CPU在每帧的显示线程根据不同的材质ID发起Instancing的DrawCall,具体可以为间接绘制索引实例(Draw Indexed InstancedIndirect),当然,也可以为间接多绘图索引实例(Multi Draw Indexed InstancedIndirect),其中,Multi Draw Indexed Instanced Indirect需要NVidia或者AMD的显卡驱动支持。
需要说明的是,该步骤205至步骤207为在图形用户界面中,在该至少一个待显示的虚拟对象的目标位置信息对应的位置上,显示该至少一个待显示的虚拟对象的目标骨骼模型的过程,在该过程中,终端在为每个待显示的虚拟对象确定了待显示的目标骨骼模型后进行显示。例如,如图8至图11所示,该待显示的虚拟对象的目标骨骼模型的精细程度可以不同,正在上述步骤204中,确定了各个虚拟对象的目标骨骼模型后,对其进行显示,结合图4,不同的LOD级别的骨骼模型显示出来的效果不同。
上述步骤204至步骤207为在图形用户界面中,在该至少一个待显示的虚拟对象的目标位置信息对应的位置上,显示该至少一个待显示的虚拟对象的过程,上述步骤204中,终端确定了每个待显示的虚拟对象的骨骼模型的LOD级别,从而确定了待显示的目标骨骼模型,从而执行该步骤205至步骤207,实现对该至少一个待显示的虚拟对象的目标骨骼模型的显示。
步骤205至步骤207中对不同的目标骨骼模型的材质信息可以不同的情况进行了说明,在一种可能实现方式中,终端也可以执行步骤204后,不确定材质信息,而是在图形用户界面中,显示该至少一个待显示的虚拟对象的目标骨骼模型。在另一种可能实现方式中,终端也可以在不执行该步骤204至步骤207,而是在步骤203之后,在图形用户界面中,在该至少一个待显示的虚拟对象的目标位置信息对应的位置上,显示该至少一个待显示的虚拟对象。
例如,如图12和图13所示,终端可以通过上述过程,在虚拟场景中显示多个虚拟对象,其中一些虚拟对象可能不在虚拟摄像头的图像采集范围内,还有一些可能被虚拟场景中的虚拟物品完全遮挡,对这部分虚拟对象进行了剔除后,显示如图所示,每个虚拟对象的显示情况可能不尽相同。相关技术中由于CPU适合串行工作流程,执行可见性剔除工作往往开销高,并且剔除的不彻底,至今可见性剔除在CPU一直没有较好的方案,尤其是遮挡性剔除。而本发明中通过上述步骤203,通过图像处理器并行进行可见性剔除,可以达到较好的效果。
在一种可能实现方式中,该骨骼模型可以包括多个部位模型,不同虚拟对象的骨骼模型中的部位模型还可以不同。例如,如图14所示,对于头部、身体、手臂,可以分别包括多个部位模型,在虚拟对象生成时可以从该每个部位的多个部位模型中随机选取,得到该虚拟对象的骨骼模型。通过该骨骼模型的部位的变种,可以提高虚拟对象显示的多样化。
需要说明的是,本发明实施例提供的虚拟对象显示方法可以兼容所有显卡,在DX11上也能流畅运行,对骨骼模型制作流程不限定,也可以兼容所有的游戏引擎,因而,虚拟对象显示方法的通用性好。
上述步骤201至步骤207仅对虚拟对象显示过程中对虚拟对象进行可见性剔除以及确定LOD级别和材质信息的情况进行了说明,在一种可能实现方式中,在每帧中虚拟对象的姿态还可能不同,也即是,每帧中骨骼模型的骨骼动画的体现可能不同。具体地,上述方法中还包括以下步骤一至步骤三:
步骤一、终端可以获取该至少一个待显示的虚拟对象中每个虚拟对象对应的多个动画帧以及每个动画帧的权重。
在一种可能实现方式中,终端可以通过中央处理器的多个任务线程,获取该至少一个待显示的虚拟对象中每个虚拟对象对应的多个动画帧以及每个动画帧的权重。需要说明的是,该步骤一可以与上述步骤201至步骤207独立,也可以相关。该步骤一可以在上述步骤201至步骤207之前执行,也可以在步骤203之后执行,也即是,终端可以根据该步骤203的结果,确定仅对该至少一个待显示的虚拟对象进行动画帧和权重的获取步骤,也可以不参考步骤203的结果,直接获取多个虚拟对象中每个虚拟对象对应的多个动画帧和每个动画帧的权重,其中包括该至少一个待显示的虚拟对象对应的多个动画帧和每个动画帧的权重。
具体地,该终端可以获取至少一个待显示的虚拟对象的位姿指示数据,基于每个虚拟对象的位姿指示数据,对动画树进行遍历,得到该每个虚拟对象的遍历结果,该动画树的叶结点关联有动画帧。终端根据该至少一个待显示的虚拟对象的多个遍历结果,获取至少一个待显示的虚拟对象中每个虚拟对象对应的多个动画帧和每个动画帧的权重。其中,位姿指示数据用于确定虚拟对象的骨骼模型中每个骨骼的目标位姿数据。该位姿指示数据是指会对虚拟对象的骨骼模型中每个骨骼的目标位姿数据产生影响的数据。该每个骨骼的目标位姿数据可以为每个骨骼的位置数据和旋转数据等。
步骤二、在上述步骤203之后,终端还可以通过该图像处理器的多个并行通道,按照该每个动画帧的权重,并行对该至少一个待显示的虚拟对象对应的多个动画帧进行融合,得到该至少一个待显示的虚拟对象的目标骨骼模型中每个骨骼的目标位姿数据。
具体地,对于每个待显示的虚拟对象,终端可以根据该每个动画帧的权重,将权重最大的第二目标数量的动画帧作为该每个待显示的虚拟对象对应的目标动画帧。终端可以按照该目标动画帧的权重,对该每个待显示的虚拟对象对应的目标动画帧进行融合,得到该每个待显示的虚拟对象的目标骨骼模型中每个骨骼的目标位姿数据。其中,该第二目标数量可以由相关技术人员根据需求进行设置,例如,该第二目标数量可以为8,本发明实施例对该第二目标数量不作限定。
在一种可能实现方式中,终端还可以将该多个虚拟对象中每个虚拟对象对应的多个动画帧和每个动画帧的权重写入第二缓冲区,从而可以通过图像处理器,从该第二缓冲区中提取该至少一个待显示的虚拟对象中每个虚拟对象对应的多个动画帧和每个动画帧的权重,进而执行通过该图像处理器的多个并行通道,按照该每个动画帧的权重,并行对该至少一个待显示的虚拟对象对应的多个动画帧进行融合,得到该至少一个待显示的虚拟对象的目标骨骼模型中每个骨骼的目标位姿数据的步骤。
例如,该第二缓冲区可以为动态缓冲区(Dynamic Buffer),可以在初始化阶段即在GPU中分配较大的Dynamic Buffer,从而在运行时可以将每帧的相关数据写入该DynamicBuffer,例如,该相关数据可以包括虚拟对象的目标位置信息、虚拟对象对应的多个动画帧以及每个动画帧的权重等。
步骤三、在上述步骤204至步骤207的步骤中,终端可以在图形用户界面中,根据该至少一个待显示的虚拟对象的目标骨骼模型中每个骨骼的目标位姿数据,显示该至少一个待显示的虚拟对象。
该步骤三具体可以为:终端根据该至少一个待显示的虚拟对象的骨骼模型中每个骨骼的目标位姿数据,对该至少一个待显示的虚拟对象进行蒙皮,得到该至少一个待显示的虚拟对象的显示形态,在图形用户界面中,显示该至少一个待显示的虚拟对象的显示形态。
例如,如图15所示,在一个具体示例中,以电子游戏场景为例,在游戏开始运行时,终端可以进行初始化,写入待获取的数据,从而后续可以基于判断步骤,从待获取的数据中选择一些数据进行获取。在本发明实施例中,该待获取的数据可以为贴图的形式,后续终端还可以基于对多个动画帧进行融合得到多个虚拟对象的骨骼模型中各个骨骼的目标位姿数据后,将其存储于一个贴图中,在此称之后存储多个虚拟对象的骨骼模型中各个骨骼的目标位姿数据的贴图为第一贴图,称存储所有待获取的动画帧的贴图为第二贴图。该第二贴图的获取过程可以为:终端可以遍历该动画树,得到该动画树的所有叶结点所关联的动画帧,将该所有叶结点所关联的动画帧存储于第二贴图中。
在本发明实施例中,以虚拟对象称为角色,多个虚拟对象称为角色群体为例,初始化后游戏运行时,终端可以通过CPU根据游戏数据,更新buffer(第二缓冲区)的数据,其中包括角色群体的位置和动画数据,还可以通过CPU发送角色群体可见性剔除指令以及LOD分级指令至buffer(第二缓冲区),其实质为CPU向GPU发送指令,以指示GPU执行可见性剔除步骤和LOD分级步骤,另外CPU在对第二缓冲区更新结束时还可以发送角色群体绘制指令到第二缓冲区,终端可以通过GPU读取缓冲区所有指令,一方面,终端通过GPU读取角色群体可见性剔除指令时,可以并行对每一个个体(角色)做可见性剔除,确定LOD级别,图中以多个框来表示并行处理过程,该步骤也即对应于上述步骤202至步骤204,终端通过GPU读取角色群体绘制指令,可以对角色进行实时蒙皮且并行绘制所有角色,每个角色按照自己的LOD级别进行绘制,从而将其显示于屏幕(图形用户界面)中。以上流程可以在屏幕显示每帧画面时执行,直至游戏结束。
上述终端对虚拟对象进行显示时可以从顶点着色器(VertexShader)中采样(获取)当前虚拟对象的索引(Instance Index),该索引即为标识信息,并根据Instance Index采样该虚拟对象的目标位置信息和所需要融合的多个动画帧ID,进而从一张贴图中根据Instance Index和骨骼ID可以采样得到骨骼动画矩阵,也即是,每个骨骼的目标位姿数据,这张贴图可以在游戏初始化时生成。
需要说明的是,通过本发明实施例提供的方法对虚拟对象的显示效率极高,如果采用相关技术中的方法来显示1000个虚拟对象需要花费30毫秒(ms)左右,而通过本发明实施例提供的方法在虚拟引擎(Unreal Engine,UE)4中的处理时间只需要有2ms,通过GPU显示也只有1-2ms的开销。本发明实施例提供的方法,可以广泛应用于游戏,或者其他实时渲染应用中,使得同时显示的虚拟对象的数量不再成为瓶颈,为整个游戏行业带来技术性的突破,并以技术突破带来游戏玩法上的革新。
本发明实施例提供的方法,通过GPU完成虚拟场景中虚拟对象的可见性剔除,确定LOD级别,以及其他显示所需数据,并以Instancing的方式发起绘制调用,利用GPU核心多的优势完成可见性剔除等高并发性工作,并且显示的Drawcall也是用Instancing的方式发起,显示所需数据可以直接从GPU的Buffer中读取,处理效率为相关技术中由CPU进行串行处理的方式的20倍。
本发明实施例通过根据多个虚拟对象的目标位置信息,可以根据该多个虚拟对象的数量,通过图像处理器的多个并行通道来并行确定该多个虚拟对象是否需要显示,从而从中确定出至少一个待显示的虚拟对象,在图形用户界面中对其进行显示,通过图像处理器的多个并行通道来并行处理,而无需由中央处理器逐个确定是否需要进行显示,可以避免出现中央处理器过载的问题,可以大幅度提高处理效率,进而提高该虚拟对象显示过程的显示效果,也提高了该虚拟对象的显示效果。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
图16是本发明实施例提供的一种虚拟对象显示装置的结构示意图,参见图16,该装置可以包括:
位置获取模块1601,用于获取多个虚拟对象的目标位置信息;
对象获取模块1602,用于根据该多个虚拟对象的数量,通过图像处理器的多个并行通道,并行根据该多个虚拟对象的目标位置信息,从该多个虚拟对象中,获取至少一个待显示的虚拟对象,每个并行通道用于根据一个虚拟对象的目标位置信息确定该一个虚拟对象是否需要进行显示;
显示模块1603,用于在图形用户界面中,在该至少一个待显示的虚拟对象的目标位置信息对应的位置上,显示该至少一个待显示的虚拟对象。
在一种可能实现方式中,该对象获取模块1602用于:
根据该多个虚拟对象的数量,获取图像处理器的第一目标数量的并行通道;
通过该图像处理器的第一目标数量的并行通道,并行根据该多个虚拟对象的目标位置信息,从该多个虚拟对象中,获取至少一个待显示的虚拟对象。
在一种可能实现方式中,该对象获取模块1602用于执行下述任一项:
将该多个虚拟对象的数量作为第一目标数量,获取图像处理器的该第一目标数量的并行通道;
当该多个虚拟对象的数量大于数量阈值时,将该数量阈值作为第一目标数量,获取图像处理器的该第一目标数量的并行通道;当该多个虚拟对象的数量小于或等于数量阈值时,将该多个虚拟对象的数量作为第一目标数量,获取图像处理器的该第一目标数量的并行通道。
在一种可能实现方式中,该对象获取模块1602用于:
对于该多个虚拟对象中每个虚拟对象,根据该每个虚拟对象的目标位置信息,获取该每个虚拟对象对应的第一位置关系和第二位置关系中至少一项,该第一位置关系为该每个虚拟对象与虚拟摄像头的图像采集范围的关系,该第二位置关系为该每个虚拟对象、该虚拟摄像头以及虚拟场景中的虚拟物品之间的位置关系中至少一项;
当该每个虚拟对象对应的第一位置关系和第二位置关系中至少一项满足目标条件时,将该每个虚拟对象获取为待显示的虚拟对象。
在一种可能实现方式中,该对象获取模块1602用于执行下述任一项:
对于该多个虚拟对象中每个虚拟对象,当该第一位置关系表示该每个虚拟对象位于该虚拟摄像头的图像采集范围内时,将该每个虚拟对象获取为待显示的虚拟对象;
对于该多个虚拟对象中每个虚拟对象,当该第二位置关系表示该每个虚拟对象与该虚拟摄像头的任一条连线不通过虚拟场景中的虚拟物品时,将该每个虚拟对象获取为待显示的虚拟对象;
对于该多个虚拟对象中每个虚拟对象,当该第一位置关系表示该每个虚拟对象位于该虚拟摄像头的图像采集范围内,且该第二位置关系表示该每个虚拟对象与该虚拟摄像头的任一条连线不通过虚拟场景中的虚拟物品时,将该每个虚拟对象获取为待显示的虚拟对象。
在一种可能实现方式中,该显示模块1603用于:
通过该图像处理器的该多个并行通道,并行根据该至少一个待显示的虚拟对象与虚拟摄像头之间的距离,从该至少一个待显示的虚拟对象的多个骨骼模型中,获取该至少一个待显示的虚拟对象的目标骨骼模型,该目标骨骼模型的精细程度与该距离负相关;
在图形用户界面中,在该至少一个待显示的虚拟对象的目标位置信息对应的位置上,显示该至少一个待显示的虚拟对象的目标骨骼模型。
在一种可能实现方式中,该显示模块1603用于:
通过该图像处理器的该多个并行通道,并行根据虚拟对象的标识信息以及材质信息的对应关系,获取该至少一个待显示的虚拟对象的目标骨骼模型的材质信息;
根据该至少一个待显示的虚拟对象的目标骨骼模型的材质信息,对材质贴图进行采样,得到该至少一个待显示的虚拟对象的目标骨骼模型的目标显示形态;
在图形用户界面中,在该至少一个待显示的虚拟对象的目标位置信息对应的位置上,显示该至少一个待显示的虚拟对象的目标骨骼模型的目标显示形态。
在一种可能实现方式中,该显示模块1603用于:
根据该至少一个待显示的虚拟对象的目标骨骼模型的材质信息的类型数量,对该类型数量的绘制命令进行实例化,得到该类型数量的对象,每个绘制命令对应材质信息的一个类型;
通过该类型数量的对象,执行对材质贴图进行采样和显示的步骤,每个对象用于对材质信息的一个类型对应的待显示的虚拟对象执行该对材质贴图进行采样和显示的步骤。
在一种可能实现方式中,该装置还包括:
数据获取模块,用于获取该至少一个待显示的虚拟对象中每个虚拟对象对应的多个动画帧以及每个动画帧的权重;
该数据获取模块还用于通过该图像处理器的多个并行通道,按照该每个动画帧的权重,并行对该至少一个待显示的虚拟对象对应的多个动画帧进行融合,得到该至少一个待显示的虚拟对象的目标骨骼模型中每个骨骼的目标位姿数据;
该显示模块1603还用于在图形用户界面中,根据该至少一个待显示的虚拟对象的目标骨骼模型中每个骨骼的目标位姿数据,显示该至少一个待显示的虚拟对象。
在一种可能实现方式中,该数据获取模块用于:
对于每个待显示的虚拟对象,根据该每个动画帧的权重,将权重最大的第二目标数量的动画帧作为该每个待显示的虚拟对象对应的目标动画帧;
按照该目标动画帧的权重,对该每个待显示的虚拟对象对应的目标动画帧进行融合,得到该每个待显示的虚拟对象的目标骨骼模型中每个骨骼的目标位姿数据。
在一种可能实现方式中,该装置还包括:
存储模块,用于将该至少一个待显示的虚拟对象的骨骼模型中每个骨骼的目标位姿数据存储于第一贴图中;
该显示模块1603用于:
对该第一贴图进行采样,得到该至少一个待显示的虚拟对象的目标显示形态;
在图形用户界面中,显示该至少一个待显示的虚拟对象的目标显示形态。
在一种可能实现方式中,该存储模块用于将该至少一个待显示的虚拟对象的骨骼模型中每个骨骼的目标位姿数据与该至少一个待显示的虚拟对象的标识信息对应存储于第一贴图中;
该显示模块1603用于根据该至少一个待显示的虚拟对象的标识信息,对该第一贴图进行采样,得到该至少一个待显示的虚拟对象的目标显示形态。
本发明实施例提供的装置,通过根据多个虚拟对象的目标位置信息,可以根据该多个虚拟对象的数量,通过图像处理器的多个并行通道来并行确定该多个虚拟对象是否需要显示,从而从中确定出至少一个待显示的虚拟对象,在图形用户界面中对其进行显示,通过图像处理器的多个并行通道来并行处理,而无需由中央处理器逐个确定是否需要进行显示,可以避免出现中央处理器过载的问题,可以大幅度提高处理效率,进而提高该虚拟对象显示过程的显示效果,也提高了该虚拟对象的显示效果。
需要说明的是:上述实施例提供的虚拟对象显示装置在显示虚拟对象时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将电子设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的虚拟对象显示装置与虚拟对象显示方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图17是本发明实施例提供的一种电子设备的结构示意图,该电子设备1700可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(central processingunits,CPU)1701和一个或多个的存储器1702,其中,该一个或多个存储器1702中存储有至少一条指令,该至少一条指令由该一个或多个处理器1701加载并执行以实现上述各个方法实施例提供的虚拟对象显示方法。当然,该电子设备1700还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该电子设备1700还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由处理器执行以完成上述实施例中的虚拟对象显示方法。例如,该计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
上述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种虚拟对象显示方法,其特征在于,所述方法包括:
在显示每帧虚拟场景时,获取多个虚拟对象的目标位置信息;
根据所述多个虚拟对象的数量,获取图像处理器的第一目标数量的并行通道,通过所述图像处理器的第一目标数量的并行通道,并行根据所述多个虚拟对象的目标位置信息,从所述多个虚拟对象中,获取至少一个待显示的虚拟对象,每个并行通道用于根据一个虚拟对象的目标位置信息确定所述一个虚拟对象是否需要进行显示;
根据所述至少一个待显示的虚拟对象的目标骨骼模型的材质信息的类型数量,对所述类型数量的绘制命令进行实例化,得到所述类型数量的对象,每个绘制命令对应材质信息的一个类型;
在图形用户界面中,在所述至少一个待显示的虚拟对象的目标位置信息对应的位置上,显示所述至少一个待显示的虚拟对象;
其中,所述在图形用户界面中,在所述至少一个待显示的虚拟对象的目标位置信息对应的位置上,显示所述至少一个待显示的虚拟对象,包括:
通过所述类型数量的对象,在所述图形用户界面中,在所述至少一个待显示的虚拟对象的目标位置信息对应的位置上,在同一批次显示所述至少一个待显示的虚拟对象中材质信息相同的虚拟对象,在不同批次显示所述至少一个待显示的虚拟对象中材质信息不同的虚拟对象。
2.根据权利要求1所述的方法,其特征在于,所述根据所述多个虚拟对象的数量,获取图像处理器的第一目标数量的并行通道,包括下述任一项:
将所述多个虚拟对象的数量作为所述第一目标数量,获取所述图像处理器的所述第一目标数量的并行通道;
当所述多个虚拟对象的数量大于数量阈值时,将所述数量阈值作为所述第一目标数量,获取所述图像处理器的所述第一目标数量的并行通道;当所述多个虚拟对象的数量小于或等于所述数量阈值时,将所述多个虚拟对象的数量作为所述第一目标数量,获取所述图像处理器的所述第一目标数量的并行通道。
3.根据权利要求1所述的方法,其特征在于,所述并行根据所述多个虚拟对象的目标位置信息,从所述多个虚拟对象中,获取至少一个待显示的虚拟对象,包括:
对于所述多个虚拟对象中每个虚拟对象,根据所述每个虚拟对象的目标位置信息,获取所述每个虚拟对象对应的第一位置关系和第二位置关系中至少一项,所述第一位置关系为所述每个虚拟对象与虚拟摄像头的图像采集范围的关系,所述第二位置关系为所述每个虚拟对象、所述虚拟摄像头以及所述虚拟场景中的虚拟物品之间的位置关系中至少一项;
当所述每个虚拟对象对应的第一位置关系和第二位置关系中至少一项满足目标条件时,将所述每个虚拟对象获取为待显示的虚拟对象。
4.根据权利要求3所述的方法,其特征在于,所述当所述每个虚拟对象对应的第一位置关系和第二位置关系中至少一项满足目标条件时,将所述每个虚拟对象获取为待显示的虚拟对象,包括下述任一项:
对于所述多个虚拟对象中每个虚拟对象,当所述第一位置关系表示所述每个虚拟对象位于所述虚拟摄像头的图像采集范围内时,将所述每个虚拟对象获取为待显示的虚拟对象;
对于所述多个虚拟对象中每个虚拟对象,当所述第二位置关系表示所述每个虚拟对象与所述虚拟摄像头的任一条连线不通过所述虚拟场景中的虚拟物品时,将所述每个虚拟对象获取为待显示的虚拟对象;
对于所述多个虚拟对象中每个虚拟对象,当所述第一位置关系表示所述每个虚拟对象位于所述虚拟摄像头的图像采集范围内,且所述第二位置关系表示所述每个虚拟对象与所述虚拟摄像头的任一条连线不通过所述虚拟场景中的虚拟物品时,将所述每个虚拟对象获取为待显示的虚拟对象。
5.根据权利要求1所述的方法,其特征在于,所述在图形用户界面中,在所述至少一个待显示的虚拟对象的目标位置信息对应的位置上,显示所述至少一个待显示的虚拟对象,包括:
通过所述图像处理器的多个并行通道,并行根据所述至少一个待显示的虚拟对象与虚拟摄像头之间的距离,从所述至少一个待显示的虚拟对象的多个骨骼模型中,获取所述至少一个待显示的虚拟对象的目标骨骼模型,所述目标骨骼模型的精细程度与所述距离负相关;
在所述图形用户界面中,在所述至少一个待显示的虚拟对象的目标位置信息对应的位置上,显示所述至少一个待显示的虚拟对象的目标骨骼模型。
6.根据权利要求5所述的方法,其特征在于,所述在所述图形用户界面中,在所述至少一个待显示的虚拟对象的目标位置信息对应的位置上,显示所述至少一个待显示的虚拟对象的目标骨骼模型,包括:
通过所述图像处理器的所述多个并行通道,并行根据虚拟对象的标识信息以及材质信息的对应关系,获取所述至少一个待显示的虚拟对象的目标骨骼模型的材质信息;
根据所述至少一个待显示的虚拟对象的目标骨骼模型的材质信息,对材质贴图进行采样,得到所述至少一个待显示的虚拟对象的目标骨骼模型的目标显示形态;
在所述图形用户界面中,在所述至少一个待显示的虚拟对象的目标位置信息对应的位置上,显示所述至少一个待显示的虚拟对象的目标骨骼模型的目标显示形态。
7.根据权利要求6所述的方法,其特征在于,所述根据所述至少一个待显示的虚拟对象的目标骨骼模型的材质信息,对材质贴图进行采样,得到所述至少一个待显示的虚拟对象的目标骨骼模型的目标显示形态;在所述图形用户界面中,在所述至少一个待显示的虚拟对象的目标位置信息对应的位置上,显示所述至少一个待显示的虚拟对象的目标骨骼模型的目标显示形态,包括:
通过所述类型数量的对象,执行对所述材质贴图进行采样和显示的步骤,每个对象用于对材质信息的一个类型对应的待显示的虚拟对象执行所述对所述材质贴图进行采样和显示的步骤。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述至少一个待显示的虚拟对象中每个虚拟对象对应的多个动画帧以及每个动画帧的权重;
根据所述多个虚拟对象的数量,通过图像处理器的多个并行通道,并行根据所述多个虚拟对象的目标位置信息,从所述多个虚拟对象中,获取至少一个待显示的虚拟对象之后,所述方法还包括:
通过所述图像处理器的多个并行通道,按照所述每个动画帧的权重,并行对所述至少一个待显示的虚拟对象对应的多个动画帧进行融合,得到所述至少一个待显示的虚拟对象的目标骨骼模型中每个骨骼的目标位姿数据;
所述在图形用户界面中,在所述至少一个待显示的虚拟对象的目标位置信息对应的位置上,显示所述至少一个待显示的虚拟对象,还包括:
在所述图形用户界面中,根据所述至少一个待显示的虚拟对象的目标骨骼模型中每个骨骼的目标位姿数据,显示所述至少一个待显示的虚拟对象。
9.根据权利要求8所述的方法,其特征在于,所述通过所述图像处理器的多个并行通道,按照所述每个动画帧的权重,并行对所述至少一个待显示的虚拟对象对应的多个动画帧进行融合,得到所述至少一个待显示的虚拟对象的目标骨骼模型中每个骨骼的目标位姿数据,包括:
对于每个待显示的虚拟对象,根据所述每个动画帧的权重,将权重最大的第二目标数量的动画帧作为所述每个待显示的虚拟对象对应的目标动画帧;
按照所述目标动画帧的权重,对所述每个待显示的虚拟对象对应的目标动画帧进行融合,得到所述每个待显示的虚拟对象的目标骨骼模型中每个骨骼的目标位姿数据。
10.根据权利要求8所述的方法,其特征在于,所述通过所述图像处理器的多个并行通道,按照所述每个动画帧的权重,并行对所述至少一个待显示的虚拟对象对应的多个动画帧进行融合,得到所述至少一个待显示的虚拟对象的目标骨骼模型中每个骨骼的目标位姿数据之后,所述方法还包括:
将所述至少一个待显示的虚拟对象的骨骼模型中每个骨骼的目标位姿数据存储于第一贴图中;
所述在所述图形用户界面中,根据所述至少一个待显示的虚拟对象的目标骨骼模型中每个骨骼的目标位姿数据,显示所述至少一个待显示的虚拟对象,包括:
对所述第一贴图进行采样,得到所述至少一个待显示的虚拟对象的目标显示形态;
在所述图形用户界面中,显示所述至少一个待显示的虚拟对象的目标显示形态。
11.根据权利要求10所述的方法,其特征在于,所述将所述至少一个待显示的虚拟对象的骨骼模型中每个骨骼的目标位姿数据存储于第一贴图中,包括:
将所述至少一个待显示的虚拟对象的骨骼模型中每个骨骼的目标位姿数据与所述至少一个待显示的虚拟对象的标识信息对应存储于第一贴图中;
所述对所述第一贴图进行采样,得到所述至少一个待显示的虚拟对象的目标显示形态,包括:
根据所述至少一个待显示的虚拟对象的标识信息,对所述第一贴图进行采样,得到所述至少一个待显示的虚拟对象的目标显示形态。
12.一种虚拟对象显示装置,其特征在于,所述装置包括:
位置获取模块,用于在显示每帧虚拟场景时,获取多个虚拟对象的目标位置信息;
对象获取模块,用于根据所述多个虚拟对象的数量,获取图像处理器的第一目标数量的并行通道,通过所述图像处理器的第一目标数量的并行通道,并行根据所述多个虚拟对象的目标位置信息,从所述多个虚拟对象中,获取至少一个待显示的虚拟对象,每个并行通道用于根据一个虚拟对象的目标位置信息确定所述一个虚拟对象是否需要进行显示;
显示模块,用于根据所述至少一个待显示的虚拟对象的目标骨骼模型的材质信息的类型数量,对所述类型数量的绘制命令进行实例化,得到所述类型数量的对象,每个绘制命令对应材质信息的一个类型;在图形用户界面中,在所述至少一个待显示的虚拟对象的目标位置信息对应的位置上,显示所述至少一个待显示的虚拟对象;
所述显示模块,还用于通过所述类型数量的对象,在所述图形用户界面中,在所述至少一个待显示的虚拟对象的目标位置信息对应的位置上,在同一批次显示所述至少一个待显示的虚拟对象中材质信息相同的虚拟对象,在不同批次显示所述至少一个待显示的虚拟对象中材质信息不同的虚拟对象。
13.一种电子设备,其特征在于,所述电子设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条指令,所述指令由所述一个或多个处理器加载并执行以实现如权利要求1至权利要求11任一项所述的虚拟对象显示方法所执行的操作。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至权利要求11任一项所述的虚拟对象显示方法所执行的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910365338.XA CN110090440B (zh) | 2019-04-30 | 2019-04-30 | 虚拟对象显示方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910365338.XA CN110090440B (zh) | 2019-04-30 | 2019-04-30 | 虚拟对象显示方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110090440A CN110090440A (zh) | 2019-08-06 |
CN110090440B true CN110090440B (zh) | 2022-03-11 |
Family
ID=67446736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910365338.XA Active CN110090440B (zh) | 2019-04-30 | 2019-04-30 | 虚拟对象显示方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110090440B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111080766B (zh) * | 2019-12-30 | 2023-09-01 | 中科星图股份有限公司 | 一种基于WebGL的GPU加速海量目标高效渲染方法 |
CN111383309B (zh) * | 2020-03-06 | 2023-03-17 | 腾讯科技(深圳)有限公司 | 一种骨骼动画驱动方法、装置及存储介质 |
CN111729304B (zh) * | 2020-05-26 | 2024-04-05 | 广州尊游软件科技有限公司 | 一种展示海量对象的方法 |
CN111754423B (zh) * | 2020-06-05 | 2024-03-22 | 北京有竹居网络技术有限公司 | 高模gpu蒙皮平滑处理方法、装置及电子设备 |
CN111773690B (zh) * | 2020-06-30 | 2021-11-09 | 完美世界(北京)软件科技发展有限公司 | 任务的处理方法和装置、存储介质、电子装置 |
CN112807684A (zh) * | 2020-12-31 | 2021-05-18 | 上海米哈游天命科技有限公司 | 一种遮挡物信息获取方法、装置、设备及存储介质 |
CN114332416B (zh) * | 2021-11-30 | 2022-11-29 | 北京百度网讯科技有限公司 | 图像处理方法、装置、设备和存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103399730B (zh) * | 2013-07-29 | 2016-08-10 | 中国科学院地理科学与资源研究所 | 一种基于cpu+gpu架构的空间几何体线段相交判断并行处理方法 |
CN104616243B (zh) * | 2015-01-20 | 2018-02-27 | 北京道和汇通科技发展有限公司 | 一种高效的gpu三维视频融合绘制方法 |
CN105354872B (zh) * | 2015-11-04 | 2018-02-27 | 深圳墨麟科技股份有限公司 | 一种基于3d网页游戏的渲染引擎、实现方法及制作工具 |
CN107123154B (zh) * | 2017-04-27 | 2018-07-20 | 腾讯科技(深圳)有限公司 | 目标对象的渲染方法和装置 |
CN108154553A (zh) * | 2018-01-04 | 2018-06-12 | 中测新图(北京)遥感技术有限责任公司 | 一种三维模型与监控视频的无缝融合方法及装置 |
CN108257103B (zh) * | 2018-01-25 | 2020-08-25 | 网易(杭州)网络有限公司 | 游戏场景的遮挡剔除方法、装置、处理器及终端 |
-
2019
- 2019-04-30 CN CN201910365338.XA patent/CN110090440B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110090440A (zh) | 2019-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110090440B (zh) | 虚拟对象显示方法、装置、电子设备及存储介质 | |
CN110102050B (zh) | 虚拟对象显示方法、装置、电子设备及存储介质 | |
JP7082877B2 (ja) | 3次元ボクセル・ベース・モデリングのための方法 | |
CN106575445B (zh) | 毛皮虚拟化身动画 | |
CN110874812B (zh) | 游戏中的场景图像绘制方法、装置及电子终端 | |
CN109087369B (zh) | 虚拟对象显示方法、装置、电子装置及存储介质 | |
CN113034656B (zh) | 游戏场景中光照信息的渲染方法、装置及设备 | |
CN106204713B (zh) | 静态合并处理方法和装置 | |
CN111739142A (zh) | 场景渲染方法、装置、电子设备及计算机可读存储介质 | |
CN112967367A (zh) | 水波特效生成方法及装置、存储介质、计算机设备 | |
JP2006072577A (ja) | 画像処理装置、画像処理方法及び画像処理プログラム | |
US6018348A (en) | Method for visibility culling | |
JP2008027064A (ja) | プログラム、情報記録媒体および画像生成システム | |
CN114254501B (zh) | 一种大规模草地渲染与仿真方法 | |
KR100469820B1 (ko) | 화면 갱신 방법 및 그 시스템 | |
CN115970275A (zh) | 虚拟对象的投影处理方法、装置、存储介质与电子设备 | |
CN108986228A (zh) | 用于虚拟现实中界面显示的方法及装置 | |
CN116958390A (zh) | 一种图像渲染方法、装置、设备、存储介质及程序产品 | |
JP4754385B2 (ja) | プログラム、情報記録媒体および画像生成システム | |
CN114047998B (zh) | 对象更新方法及装置 | |
KR101596160B1 (ko) | 카드 게임 프로그램 및 이를 실행하는 컴퓨팅 디바이스 | |
US20240331301A1 (en) | Systems and methods to accelerate collision detection in cloth simulation | |
CN114596403B (zh) | 图像处理方法、装置、存储介质及终端 | |
CN115861500B (zh) | 2d模型碰撞体生成方法及装置 | |
CN117205556A (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 |