掌桥专利:专业的专利平台
掌桥专利
首页

虚拟对象生成方法、装置、设备及存储介质

文献发布时间:2024-01-17 01:24:51


虚拟对象生成方法、装置、设备及存储介质

技术领域

本申请涉及计算机图形学技术领域,具体而言,涉及一种虚拟对象生成方法、装置、设备及存储介质。

背景技术

在计算机图形学领域,根据图形数据进行场景元素的摆放常常出现在游戏和影视领域的设计中,场景元素被准确地摆放在场景中,可以实现与其他场景元素或游戏物体的交互,因此如何实现高精度的场景元素摆放成为了亟待解决的问题。

现有技术中,为了实现高精度的场景元素的摆放,采用的方法包括两种,第一种是手动摆放,第二种是将图形加载到地形中,然后运用地形笔刷进行图形绘制,期间再反复进行修改绘制,得到最终的摆放效果。

但是,第一种方式会造成大量的人力消耗,可操作性不高;第二种方式虽然节省了很多人力,但是不能实现实时生成,并且摆放效果的真实性较差。

发明内容

本申请的目的在于,针对上述现有技术中的不足,提供一种虚拟对象生成方法、装置、设备及存储介质,以解决现有技术中场景元素摆放效果无法实时生成、真实性差的问题。

为实现上述目的,本申请采用的技术方案如下:

第一方面,本申请提供了一种虚拟对象生成方法,所述方法包括:

根据虚拟对象的纹理图像,确定所述虚拟对象的二维位置信息;

根据所述虚拟对象的二维位置信息,确定所述虚拟对象的三维位置信息;

根据所述虚拟对象的三维位置信息、所述虚拟对象的原始三维模型以及预设所述虚拟对象的物理特性信息,生成所述虚拟对象的基元模型,以根据所述基元模型将所述虚拟对象摆放至三维场景中。

可选的,所述根据虚拟对象的纹理图像,确定所述虚拟对象的二维位置信息,包括:

对所述纹理图像进行贴图采样,得到采样后的贴图;

根据所述采样后的贴图,生成所述纹理图像的掩码图像;

根据所述掩码图像中的像素点的像素值和位置,确定所述虚拟对象的二维位置信息。

可选的,所述根据所述采样后的贴图,生成所述纹理图像的掩码图像,包括:

对所述采样后的贴图进行去色处理,得到纹理图像对应的去色贴图;

对所述去色贴图进行锐化处理,得到纹理图像对应的锐化去色贴图;

根据所述纹理图像对应的锐化去色贴图,得到所述纹理图像的掩码图像。

可选的,所述根据所述纹理图像对应的锐化去色贴图,得到所述纹理图像的掩码图像,包括:

若所述纹理图像的数量为多个,则基于预设的混合系数对各纹理图像对应的锐化去色贴图进行叠加处理,得到所述纹理图像的掩码图像。

可选的,所述根据所述掩码图像中的像素点的像素值和位置,确定所述虚拟对象的二维位置信息,包括:

对所述掩码图像进行缩放采样,得到所述掩码图像的像素数组和位置数组,所述像素数组用于存储所述掩码图像的像素点的像素值,所述位置数组用于存储所述掩码图像的像素点的位置;

对所述像素数组进行阈值筛选,根据阈值筛选的结果,对所述位置数组进行调整,并根据调整后的位置数组,确定所述虚拟对象的二维位置信息。

可选的,所述对所述掩码图像进行缩放采样,得到所述掩码图像的像素数组和位置数组,包括:

对所述掩码图像进行分辨率缩放采样,读取所述掩码图像中每个像素点的像素值和位置;

将读取到的像素值记录在所述像素数组中,并将读取到的位置记录在所述位置数组中。

可选的,所述对所述像素数组进行阈值筛选,根据阈值筛选的结果,对所述位置数组进行调整,并根据调整后的位置数组,确定所述虚拟对象的二维位置信息,包括:

从所述像素数组中筛选出像素值小于预设阈值的多个目标像素点;

确定各所述目标像素点在位置数组中的对应位置,并向各对应位置添加预设标识;

读取所述位置数组中具有所述预设标识的位置,并将具有所述预设标识的位置记录在目标数组中,将所述目标数组作为所述虚拟对象的二维位置信息。

可选的,所述根据所述虚拟对象的二维位置信息,确定所述虚拟对象的三维位置信息,包括:

在所述二维位置信息上添加垂直方向的预设坐标,得到所述虚拟对象的三维位置信息。

可选的,所述根据所述虚拟对象的三维位置信息、所述虚拟对象的原始三维模型以及预设所述虚拟对象的物理特性信息,生成所述虚拟对象的基元模型之前,还包括:

基于随机偏移向量对各所述三维位置信息进行位置偏移,得到偏移后的三维位置信息;

所述根据所述虚拟对象的三维位置信息、所述虚拟对象的原始三维模型以及预设所述虚拟对象的物理特性信息,生成所述虚拟对象的基元模型,包括:

根据所述偏移后的三维位置信息、所述虚拟对象的原始三维模型以及预设所述虚拟对象的物理特性信息,生成所述虚拟对象的基元模型。

第二方面,本申请提供了一种虚拟对象生成装置,所述装置包括:

第一确定模块,用于根据虚拟对象的纹理图像,确定所述虚拟对象的二维位置信息;

第二确定模块,用于根据所述虚拟对象的二维位置信息,确定所述虚拟对象的三维位置信息;

生成模块,用于根据所述虚拟对象的三维位置信息、所述虚拟对象的原始三维模型以及预设所述虚拟对象的物理特性信息,生成所述虚拟对象的基元模型,以根据所述基元模型将所述虚拟对象摆放至三维场景中。

可选的,所述第一确定模块还用于:

对所述纹理图像进行贴图采样,得到采样后的贴图;

根据所述采样后的贴图,生成所述纹理图像的掩码图像;

根据所述掩码图像中的像素点的像素值和位置,确定所述虚拟对象的二维位置信息。

可选的,所述第一确定模块还用于:

对所述采样后的贴图进行去色处理,得到纹理图像对应的去色贴图;

对所述去色贴图进行锐化处理,得到纹理图像对应的锐化去色贴图;

根据所述纹理图像对应的锐化去色贴图,得到所述纹理图像的掩码图像。

可选的,所述第一确定模块还用于:

若所述纹理图像的数量为多个,则基于预设的混合系数对各纹理图像对应的锐化去色贴图进行叠加处理,得到所述纹理图像的掩码图像。

可选的,所述第一确定模块还用于:

对所述掩码图像进行缩放采样,得到所述掩码图像的像素数组和位置数组,所述像素数组用于存储所述掩码图像的像素点的像素值,所述位置数组用于存储所述掩码图像的像素点的位置;

对所述像素数组进行阈值筛选,根据阈值筛选的结果,对所述位置数组进行调整,并根据调整后的位置数组,确定所述虚拟对象的二维位置信息。

可选的,所述第一确定模块还用于:

对所述掩码图像进行分辨率缩放采样,读取所述掩码图像中每个像素点的像素值和位置;

将读取到的像素值记录在所述像素数组中,并将读取到的位置记录在所述位置数组中。

可选的,所述第一确定模块还用于:

从所述像素数组中筛选出像素值小于预设阈值的多个目标像素点;

确定各所述目标像素点在位置数组中的对应位置,并向各对应位置添加预设标识;

读取所述位置数组中具有所述预设标识的位置,并将具有所述预设标识的位置记录在目标数组中,将所述目标数组作为所述虚拟对象的二维位置信息。

可选的,所述第二确定模块还用于:

在所述二维位置信息上添加垂直方向的预设坐标,得到所述虚拟对象的三维位置信息。

可选的,所述生成模块还用于:

基于随机偏移向量对各所述三维位置信息进行位置偏移,得到偏移后的三维位置信息;

所述生成模块还用于:

根据所述偏移后的三维位置信息、所述虚拟对象的原始三维模型以及预设所述虚拟对象的物理特性信息,生成所述虚拟对象的基元模型。

第三方面,本申请实施例还提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如第一方面中任一项所述的一种虚拟对象生成方法的步骤。

第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如第一方面中任一项所述的一种虚拟对象生成方法的步骤。

本申请的有益效果是:通过虚拟对象的纹理图像确定虚拟对象在三维场景中的位置,相比于现有技术,本申请的方法可以通过纹理图像快速、精准的确定虚拟对象在三维场景中的位置,并将场景元素的原始三维模型摆放到三维场景的对应位置上,无需人工反复进行修改绘制,实现了场景元素摆放效果的实时生成,并且本申请引入了虚拟对象的物理特性信息,因此生成的基元模型还具备物理特性,能够实现更加真实的物理模拟,提高虚拟对象与三维场景交互的真实性。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本申请实施例提供的一种应用场景的示意图;

图2示出了本申请实施例提供的一种虚拟对象生成方法的流程图;

图3示出了本申请实施例提供的一种确定二维位置信息的流程图;

图4示出了本申请实施例提供的一种掩码图像的示意图;

图5示出了本申请实施例提供的一种得到掩码图像的流程图;

图6示出了本申请实施例提供的又一种确定二维位置信息的流程图;

图7示出了本申请实施例提供的一种确定像素数组和位置数组的流程图;

图8示出了本申请实施例提供的再一种确定二维位置信息的流程图;

图9示出了本申请实施例提供的又一种虚拟对象生成方法的流程图;

图10示出了本申请实施例提供的一种虚拟对象生成装置的结构示意图;

图11示出了本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。

在本公开其中一种实施例中的虚拟对象生成方法可以运行于本地终端设备或者是服务器。当虚拟对象生成方法运行于服务器时,该方法则可以基于云交互系统来实现与执行,其中,云交互系统包括服务器和客户端设备。

在一可选的实施方式中,云交互系统下可以运行各种云应用,例如:云游戏。以云游戏为例,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,虚拟对象生成方法的储存与运行是在云游戏服务器上完成的,客户端设备的作用用于数据的接收、发送以及游戏画面的呈现,举例而言,客户端设备可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑等;但是进行信息处理的为云端的云游戏服务器。在进行游戏时,玩家操作客户端设备向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回客户端设备,最后,通过客户端设备进行解码并输出游戏画面。

在一可选的实施方式中,以游戏为例,本地终端设备存储有游戏程序并用于呈现游戏画面。本地终端设备用于通过图形用户界面与玩家进行交互,即,常规的通过电子设备下载安装游戏程序并运行。该本地终端设备将图形用户界面提供给玩家的方式可以包括多种,例如,可以渲染显示在终端的显示屏上,或者,通过全息投影提供给玩家。举例而言,本地终端设备可以包括显示屏和处理器,该显示屏用于呈现图形用户界面,该图形用户界面包括游戏画面,该处理器用于运行该游戏、生成图形用户界面以及控制图形用户界面在显示屏上的显示。

在一种可能的实施方式中,本发明实施例提供了一种虚拟对象生成方法,通过终端设备提供图形用户界面,其中,终端设备可以是前述提到的本地终端设备,也可以是前述提到的云交互系统中的客户端设备。

场景元素是指游戏中可交互的实体,其可以是游戏中的任意一个物体,例如角色、道具、环境、非用户玩家等,场景元素通常是游戏中的一个独立单元,具有自己的状态、属性和行为。

在游戏引擎中,场景元素通常会被放置在场景中,与其他场景元素或游戏物体进行互动,例如在一个动作游戏中,玩家控制的角色就是一个场景元素,可以与游戏中其他的角色、道具进行互动。在一些策略游戏中,建筑物和单位也可以是场景元素,具有类似于角色的属性和行为。

目前的三维场景中场景元素的摆放大多是基于图形数据进行,设计人员可以先将三维场景中场景元素的摆放位置先呈现在二维图形上,然后基于二维图形中各个场景元素的位置,将各场景元素的三维模型摆放到三维场景的对应位置上。

为了实现场景元素高效、真实的交互效果,就需要将场景元素准确的摆放在三维场景中的对应位置。

现有技术中,第一种方式是手动进行摆放,按照二维图形中场景元素的位置,一个个的将场景元素的三维模型摆放到三维场景中的对应位置上,但是这种方式无疑会造成大量的人力消耗。

第二种方式是将图片图形加载到地形中,通过地形材质去拾取图片图形,在材质中通过计算得到地形权重信息,然后在绘制地形笔刷中加入场景元素的三维模型去拾取此地形权重信息,并在地形中进行反复修改绘制,得到场景元素的摆放结果,这种方式虽然节省了很多人力,但是还是需要认为的反复进行修改绘制,因此精确性较差,并且不能实现实时生成,并且只按照二维图形进行场景元素的摆放,缺乏对场景元素物理特性的描述,因此真实性也较差。

因此,如何实现三维场景中场景元素的精确、快速摆放成为了亟待解决的问题。

基于上述问题,本申请提出了一种虚拟对象生成方法,虚拟对象可以是前述的场景元素,通过对纹理图像进行处理得到虚拟对象在三维场景中的位置信息,然后根据虚拟对象的原始三维模型、三维位置信息以及虚拟对象的物理特性信息生成虚拟对象的基元模型,从而实现虚拟对象在三维场景中的快速定位和精确摆放,并且生成的基元模型具备物理特性,因此进行交互时真实性也更高。

如图1所示,是本申请给出的一种虚拟对象生成方法的应用场景示意图,该方法可以应用在游戏的设计阶段,设计人员将纹理图像和虚拟对象的原始三维模型输入电子设备,电子设备可以基于纹理图像、虚拟对象的原始三维模型以及虚拟对象的物理特性生成虚拟对象的基元模型,在游戏加载阶段,用户进入该交互界面时电子设备就可以根据基元模型将虚拟对象摆放到三维场景中。

接下来结合图2,对本申请的虚拟对象生成方法作进一步说明,如图2所示,该方法包括:

S201:根据虚拟对象的纹理图像,确定虚拟对象的二维位置信息。

本申请中虚拟对象可以是游戏场景中的场景元素,例如角色、NPC、道具、环境等等。在游戏引擎中,场景元素可以被实现为一个类或对象,包含与游戏世界交互所需的各种方法和数据。

可选的,纹理图像可以是游戏场景的二维图形数据,表征游戏场景中的虚拟对象在二维平面上的位置,因此根据纹理图像可以确定虚拟对象的二维位置信息,其中,二维位置信息可以是虚拟对象在纹理图像中的二维位置坐标。

值得说明的是,在一个游戏场景中,虚拟对象的数量可以是一个或多个,举例来说,一个游戏场景中只包括一个玩家角色时,该场景中的虚拟对象就可以是该玩家角色,一个游戏场景中包括多个玩家角色和多个道具时,该场景中的每一个玩家角色和道具就都可以被看作一个虚拟对象,此时就可以根据纹理图像确定每个虚拟对象在纹理图像中的二维位置信息。

作为一种可能的实施方式,当一个游戏场景中包括多个道具时,也可以将这个游戏场景的整体作为一个虚拟对象,各个道具可以作为虚拟对象的组成部分,此时可以根据纹理图像确定虚拟对象的各个组成部分,即各个道具在游戏场景中的二维位置信息。

需要说明的是,纹理图像和三维场景可以具有对应关系,即一个纹理图像对应一个三维场景,应当理解,一个三维场景可以对应多张纹理图像,但纹理图像中可能存在不需要显示的虚拟对象,当一个游戏场景对应多张纹理图像时,可以通过多张纹理图像确定该游戏场景中需要显示的虚拟对象的二维位置信息。

S202:根据虚拟对象的二维位置信息,确定虚拟对象的三维位置信息。

可选的,虚拟对象的二维位置信息可以表征虚拟对象在纹理图像中的二维位置坐标,虚拟对象的三维位置信息可以表征虚拟对象在纹理图像的三维场景中的三维位置坐标。

S203:根据虚拟对象的三维位置信息、虚拟对象的原始三维模型以及预设虚拟对象的物理特性信息,生成虚拟对象的基元模型,以根据基元模型将虚拟对象摆放至三维场景中。

可选的,设计人员可以提前建立虚拟对象的原始三维模型,并对游戏场景中的虚拟对象预先设置物理特性信息,其中,物理特性信息可以包括虚拟对象的重力、阻力、速度等。

可选的,虚拟对象的基元模型可以表征虚拟对象在游戏场景中的初始位置,并表征虚拟对象的物理特性信息,游戏设计阶段生成基元模型之后,在游戏加载阶段,电子设备可以加载基元模型,将虚拟对象按照三维位置信息放置在三维场景中,并根据基元模型的物理特性信息进行物理模拟,得到虚拟对象在三维场景中摆放的最终效果。

本申请实施例中,根据虚拟对象的纹理图像确定虚拟对象的二维位置信息,然后根据虚拟对象的二维位置信息确定虚拟对象的三维位置信息,最后根据虚拟对象的三维位置信息、虚拟对象的原始三维模型以及虚拟对象的物理特性信息生成虚拟对象的基元模型,以根据基元模型将虚拟对象摆放至三维场景中。本申请通过虚拟对象的纹理图像确定虚拟对象在三维场景中的位置,相比于现有技术,本申请的方法可以通过纹理图像快速、精准的确定虚拟对象在三维场景中的位置,并将场景元素的原始三维模型摆放到三维场景的对应位置上,无需人工反复进行修改绘制,实现了场景元素摆放效果的实时生成,并且本申请引入了虚拟对象的物理特性信息,因此生成的基元模型还具备物理特性,能够实现更加真实的物理模拟,提高虚拟对象与三维场景交互的真实性。

接下来对上述根据虚拟对象的纹理图像,确定虚拟对象的二维位置信息的步骤进行说明,如图3所示,上述S201步骤包括:

S301:对纹理图像进行贴图采样,得到采样后的贴图。

贴图采样是一种用于在渲染图像时从纹理图像中获取颜色的技术。在渲染中,贴图是指将纹理映射到三维模型表面的过程。为了获取三维模型表面上的颜色信息,需要对纹理图像进行采样。

贴图采样的过程是将纹理图像中的像素映射到三维模型表面的过程。对于每个像素,需要确定其在纹理图像中的位置,并计算出其采样的颜色。采样的颜色可以根据不同的采样方法和纹理过滤器来确定,常见的采样方法包括最近邻采样和双线性插值采样等。示例性的,在最近邻采样中,采样点的颜色可以取离其最近的纹理像素的颜色值。

本申请实施例中通过对纹理图像进行贴图采样,得到采样后的贴图,可以为三维场景提供更加真实的纹理和色彩信息,使得渲染效果更加逼真。

S302:根据采样后的贴图,生成纹理图像的掩码图像。

可选的,纹理图像的掩码图像可以表征虚拟对象在纹理贴图中的位置,应当理解,纹理图像是有颜色的图像,纹理图像的掩码图像可以是灰度图,其中不同颜色的像素点能够表征该位置是否存在虚拟对象,因此掩码图像能够更加清楚的表示虚拟对象在纹理贴图中的位置。

作为一种可能的实施方式,当一个三维场景对应多张纹理图像时,本申请可以对多张纹理图像生成一个掩码图像,该掩码图像能够表征三维场景中需要显示的虚拟对象在纹理图像中的位置。

S303:根据掩码图像中的像素点的像素值和位置,确定虚拟对象的二维位置信息。

可选的,掩码图像中不同颜色的像素点能够表征该位置是否存在虚拟对象,因此根据掩码图像中的像素点的位置和像素值,就可以确定虚拟对象在纹理图像中的二维位置坐标。

示例性的,图4是本申请给出的一种掩码图像的示意图,其中黑色表示该位置存在虚拟对象,白色表示该位置不存在虚拟对象,根据掩码图像中各个像素点的像素值以及位置,就可以确定虚拟对象的二维位置坐标。

进一步的,如图5所示,上述S302步骤中根据采样后的贴图,生成纹理图像的掩码图像,包括:

S501:对采样后的贴图进行去色处理,得到纹理图像对应的去色贴图。

采样后的贴图中像素的颜色为C=(R,G,B),其中R、G、B分别表示红、绿、蓝三个通道的颜色值,本申请中可以将原始颜色C的红、绿、蓝三个通道的值取平均值,并将结果赋给新的颜色C'的三个通道,从而实现去色的效果,得到纹理图像对应的去色贴图,去色可以按照下式(1)进行。

C′=(R′,G′,B′)    (1)

其中,R′=G′=B′=(R+G+B)/3。

S502:对去色贴图进行锐化处理,得到纹理图像对应的锐化去色贴图。

可选的,一个像素的颜色为C,它的周围有一些相邻像素,可以将这些像素与C进行卷积运算,从而得到新的颜色C',实现对去色贴图的锐化处理。

其中,锐化处理的公式可以如下式(2)所示。

C′=C+m×(C-Cavg)    (2)

m表示锐化系数,Cavg表示周围像素的平均颜色。该公式将原始像素的颜色C加上一个与C-Cavg成正比的偏移量,从而增强像素的边缘特性,实现锐化的效果。

S503:根据纹理图像对应的锐化去色贴图,得到纹理图像的掩码图像。

作为一种可能的实施方式,当三维场景的纹理图像只有一张时,可以将锐化去色贴图直接作为纹理图像的掩码图像。

作为另一种可能的实施方式,当三维场景的纹理图像包括多张时,每张纹理图像可能分别包括三维场景中的不同的虚拟对象,此时可以根据多张纹理图像的锐化去色贴图得到多张纹理图像的一张掩码图像,如此,掩码图像就可以表征所有需要显示的虚拟对象在三维场景的二维投影平面中的位置。

接下来进一步对上述S503中,根据纹理图像对应的锐化去色贴图,得到纹理图像的掩码图像的步骤进行说明。

若纹理图像的数量为多个,则基于预设的混合系数对各纹理图像对应的锐化去色贴图进行叠加处理,得到纹理图像的掩码图像。

本申请中将一个纹理A叠加到另一个纹理B上,可以使用式(3)所示的混合公式,其中,k是混合系数,控制了两个纹理的混合程度,C

C

对纹理图像进行处理得到掩码图像,可以通过掩码图像表征虚拟对象在纹理图像中的位置,接下来对上述根据掩码图像中的像素点的像素值和位置,确定虚拟对象的二维位置信息的步骤作进一步说明,如图6所示,上述S303步骤包括:

S601:对掩码图像进行缩放采样,得到掩码图像的像素数组和位置数组,像素数组用于存储掩码图像的像素点的像素值,位置数组用于存储掩码图像的像素点的位置。

可选的,可以通过渲染目标(Render Target,RT)技术对掩码图像进行缩放采样,得到掩码图像的像素数组和位置数组。

其中,像素数组可以记录每个像素点的像素值,位置数组可以记录每个像素点在两维纹理坐标空间中的位置。

S602:对像素数组进行阈值筛选,根据阈值筛选的结果,对位置数组进行调整,并根据调整后的位置数组,确定虚拟对象的二维位置信息。

本申请中可以对像素数组按照其存储的每个像素点的像素值大小进行筛选,其中,筛选的阈值可以由设计人员根据虚拟对象的像素值预先设定,示例性的,假设三维场景中包括多个碎石,碎石的像素值与其余位置的像素值一般会存在较大差别,此时就可以将碎石像素值的最小值作为筛选的阈值。

应当理解,像素数组中存储的是每个像素点的像素值,在确定像素点的像素值通过阈值筛选后,还需要确定像素点在掩码图像中的位置,因此要根据阈值筛选的结果对位置数组进行调整,得到通过阈值筛选的像素点的位置信息,即虚拟对象的二维位置信息。

以下是对上述对掩码图像进行缩放采样,得到掩码图像的像素数组和位置数组的步骤的具体说明,如图7所示,上述S601步骤包括:

S701:对掩码图像进行分辨率缩放采样,读取掩码图像中每个像素点的像素值和位置。

可选的,对掩码图像进行缩放采样,得到掩码图像的像素数组和位置数组可以按照下式(4)和(5)进行。读取缩放采样后的掩码图像上每个像素的值,将其记录在一个像素数组中,并相应的记录一个二维数组UV记录UV.xy的二维坐标,即像素点在两维纹理坐标空间(U-VEEZ,UV)中的相对位置。

RTmask=Cmask.Sample(Mip)    (4)

式中的Mip表示缩放等级,其计算方式为:

Mip=log2(max(RTmask.u,RTmask.v)/max(Cmask.u,Cmask.v))

其中,RTmask表示缩放采样后的掩码图像,Cmask表示掩码图像。

S702:将读取到的像素值记录在像素数组中,并将读取到的位置记录在位置数组中。

可选的,可以将读取到的缩放采样后的掩码图像中每个像素点的像素值记录在像素数组中,将缩放采样后的掩码图像中每个像素点在UV空间中的相对位置记录在位置数组中。

在上述得到像素数组和位置数组之后,本申请可以对像素数组进行阈值筛选,以最终确定虚拟对象的二维位置信息,如图8所示,上述S602步骤包括:

S801:从像素数组中筛选出像素值小于预设阈值的多个目标像素点。

可选的,预设阈值可以是虚拟对象像素值的最小值,设计人员可以预先获取虚拟对象的像素值范围,并将像素值的最小值作为预设阈值,实际应用中,也可以将其他取值作为预设阈值,例如虚拟对象的像素值的中位数、平均数或众数等,本申请在此不做限制。

可选的,目标像素点可以是虚拟对象在UV空间的相对位置所在的像素点,一个虚拟对象所在的范围内可能包括多个目标像素点。

本申请中,对像素数组中的每个像素点逐一进行筛选,可以得到多个阈值范围内的目标像素点,然后结合位置数组就可以确定目标像素点的位置。

S802:确定各目标像素点在位置数组中的对应位置,并向各对应位置添加预设标识。

值得说明的是,像素数组和位置数组中像素点的顺序可以一致,即像素数组中的第i位存储的可以是位置数组的第i个数组元素所指示的像素点的像素值,因此可以确定各个目标像素点在位置数组中对应的数组元素,并向各个目标像素点在位置数组中对应的数组元素中添加预设标识,表示该数组元素所指示的像素点上存在虚拟对象。

S803:读取位置数组中具有预设标识的位置,并将具有预设标识的位置记录在目标数组中,将目标数组作为虚拟对象的二维位置信息。

可选的,目标数组中可以记录目标像素点的像素位置,因此目标数组可以指示虚拟对象的二维位置信息。

本申请中,可以根据下式(5)对像素数组C进行阈值筛选,得到阈值范围内的多个目标像素点,并向位置数组UV中的对应位置添加标识。

UV[i]=C[i]<=X?UV[i]:0    (5)

其中X为阈值,在此公式中如果比X小则向位置数组UV中第i位坐标添加标识0,i表示数组中第i号数组元素。

接下来可以按照下式(6)读取位置数组中具有标识0的位置,得到目标数组P。

P[i].xy=UV[i].xy    (6)

在上述确定虚拟对象的三维位置信息之后,可以进行二维空间到三维空间中的转化,以确定虚拟对象的三维位置信息,上述S202步骤包括:

在二维位置信息上添加垂直方向的预设坐标,得到虚拟对象的三维位置信息。

本申请中可以将垂直方向Z轴设为定量,并将这一定量添加到目标数组中的每一个二维坐标,得到虚拟对象的三维位置信息。

示例性的,假设目标数组中的二维坐标包括(1,4)、(15,7)、(45,114)、(121,86)以及(255,2),垂直方向的预设坐标为100,那么最终得到的虚拟对象的三维位置信息就可以包括(1,4,100)、(15,7,100)、(45,114,100)、(121,86,100)以及(255,2,100)。

在上述得到虚拟对象的三维位置信息之后,就可以执行上述S203步骤,以生成虚拟对象的基元模型,作为一种优选的实施方案,在上述S203步骤之前,还可以对三维位置信息进行偏移处理,以得到更加自然真实的基元模型。上述S203步骤之前本申请的方法还包括:

基于随机偏移向量对各三维位置信息进行位置偏移,得到偏移后的三维位置信息。

可选的,随机偏移向量可以是设计人员预设的定值,示例性的,假设Rxyz为随机偏移向量,最终生成位置Wxyz表示为以下公式(7)。

W.xyz=W.xyz+R.xyz    (7)

进行位置偏移之后,上述根据虚拟对象的三维位置信息、虚拟对象的原始三维模型以及预设虚拟对象的物理特性信息,生成虚拟对象的基元模型的步骤包括:

根据偏移后的三维位置信息、虚拟对象的原始三维模型以及预设虚拟对象的物理特性信息,生成虚拟对象的基元模型。

可选的,虚拟对象的基元模型可以表征虚拟对象在游戏场景中的初始位置,并表征虚拟对象的物理特性信息,游戏设计阶段生成基元模型之后,在游戏加载阶段,电子设备可以加载基元模型,将虚拟对象按照偏移后的三维位置信息放置在三维场景中,并根据基元模型的物理特性信息进行物理模拟,得到虚拟对象在三维场景中摆放的最终效果。

本申请实施例中,通过对三维位置信息进行偏移,并基于偏移后的三维位置信息生成基元模型,可以使得生成的基元模型更加自然、真实。

接下来结合图9,对本申请的虚拟对象生成方法做进一步说明,如图9所示,首先对纹理图像进行贴图采样以及图像的去色、锐化、叠加处理,得到纹理图像的掩码图像,然后对掩码图像进行分辨率缩放采样,得到掩码图像的像素数组和位置数组,并确定二维位置信息,然后对二维位置信息进行空间转化,并根据转化得到的三维位置信息生成基元模型,作为一种优选的方案,设计人员可以对基元模型进行偏移,得到最终的基元模型。在游戏加载阶段就可以根据物理特性加载基元模型得到场景元素最终的摆放效果。

基于同一发明构思,本申请实施例中还提供了与虚拟对象生成方法对应的虚拟对象生成装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述虚拟对象生成方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。

图10示出了本申请实施例所提供的一种虚拟对象生成装置的结构示意图,所述装置包括第一确定模块1001、第二确定模块1002以及生成模块1003。

第一确定模块1001,用于根据虚拟对象的纹理图像,确定虚拟对象的二维位置信息;

第二确定模块1002,用于根据虚拟对象的二维位置信息,确定虚拟对象的三维位置信息;

生成模块1003,用于根据虚拟对象的三维位置信息、虚拟对象的原始三维模型以及预设虚拟对象的物理特性信息,生成虚拟对象的基元模型,以根据基元模型将虚拟对象摆放至三维场景中。

在一个可行的实施方案中,第一确定模块1001还用于:

对纹理图像进行贴图采样,得到采样后的贴图;

根据采样后的贴图,生成纹理图像的掩码图像;

根据掩码图像中的像素点的像素值和位置,确定虚拟对象的二维位置信息。

在一个可行的实施方案中,第一确定模块1001还用于:

对采样后的贴图进行去色处理,得到纹理图像对应的去色贴图;

对去色贴图进行锐化处理,得到纹理图像对应的锐化去色贴图;

根据纹理图像对应的锐化去色贴图,得到纹理图像的掩码图像。

在一个可行的实施方案中,第一确定模块1001还用于:

若纹理图像的数量为多个,则基于预设的混合系数对各纹理图像对应的锐化去色贴图进行叠加处理,得到纹理图像的掩码图像。

在一个可行的实施方案中,第一确定模块1001还用于:

对掩码图像进行缩放采样,得到掩码图像的像素数组和位置数组,像素数组用于存储掩码图像的像素点的像素值,位置数组用于存储掩码图像的像素点的位置;

对像素数组进行阈值筛选,根据阈值筛选的结果,对位置数组进行调整,并根据调整后的位置数组,确定虚拟对象的二维位置信息。

在一个可行的实施方案中,第一确定模块1001还用于:

对掩码图像进行分辨率缩放采样,读取掩码图像中每个像素点的像素值和位置;

将读取到的像素值记录在像素数组中,并将读取到的位置记录在位置数组中。

在一个可行的实施方案中,第一确定模块1001还用于:

从像素数组中筛选出像素值小于预设阈值的多个目标像素点;

确定各目标像素点在位置数组中的对应位置,并向各对应位置添加预设标识;

读取位置数组中具有预设标识的位置,并将具有预设标识的位置记录在目标数组中,将目标数组作为虚拟对象的二维位置信息。

在一个可行的实施方案中,第二确定模块1002还用于:

在二维位置信息上添加垂直方向的预设坐标,得到虚拟对象的三维位置信息。

在一个可行的实施方案中,生成模块1003还用于:

基于随机偏移向量对各三维位置信息进行位置偏移,得到偏移后的三维位置信息;

生成模块1003还用于:

根据偏移后的三维位置信息、虚拟对象的原始三维模型以及预设虚拟对象的物理特性信息,生成虚拟对象的基元模型。

本申请通过虚拟对象的纹理图像确定虚拟对象在三维场景中的位置,相比于现有技术,本申请的方法可以通过纹理图像快速、精准的确定虚拟对象在三维场景中的位置,并将场景元素的原始三维模型摆放到三维场景的对应位置上,无需人工反复进行修改绘制,实现了场景元素摆放效果的实时生成,并且本申请引入了虚拟对象的物理特性信息,因此生成的基元模型还具备物理特性,能够实现更加真实的物理模拟,提高虚拟对象与三维场景交互的真实性。

图11示出了本申请实施例所提供的一种电子设备的结构示意图,包括:处理器1101、存储介质1102和总线1103,所述存储介质1102存储有所述处理器1101可执行的机器可读指令,当电子设备运行如实施例中的一种虚拟对象生成方法时,所述处理器1101与所述存储介质1102之间通过总线1103通信,所述处理器1101执行所述机器可读指令,所述处理器1101方法项的前序部分,以执行以下步骤:

在一个可行的实施方案中,所述处理器1101在执行虚拟对象生成方法时,具体用于:

根据虚拟对象的纹理图像,确定虚拟对象的二维位置信息;

根据虚拟对象的二维位置信息,确定虚拟对象的三维位置信息;

根据虚拟对象的三维位置信息、虚拟对象的原始三维模型以及预设虚拟对象的物理特性信息,生成虚拟对象的基元模型,以根据基元模型将虚拟对象摆放至三维场景中。

在一个可行的实施方案中,所述处理器1101在执行虚拟对象生成方法时还具体用于:

对纹理图像进行贴图采样,得到采样后的贴图;

根据采样后的贴图,生成纹理图像的掩码图像;

根据掩码图像中的像素点的像素值和位置,确定虚拟对象的二维位置信息。

在一个可行的实施方案中,所述处理器1101在执行虚拟对象生成方法时还具体用于:

对采样后的贴图进行去色处理,得到纹理图像对应的去色贴图;

对去色贴图进行锐化处理,得到纹理图像对应的锐化去色贴图;

根据纹理图像对应的锐化去色贴图,得到纹理图像的掩码图像。

在一个可行的实施方案中,所述处理器1101在执行虚拟对象生成方法时还具体用于:

若纹理图像的数量为多个,则基于预设的混合系数对各纹理图像对应的锐化去色贴图进行叠加处理,得到纹理图像的掩码图像。

在一个可行的实施方案中,所述处理器1101在执行虚拟对象生成方法时还具体用于:

对掩码图像进行缩放采样,得到掩码图像的像素数组和位置数组,像素数组用于存储掩码图像的像素点的像素值,位置数组用于存储掩码图像的像素点的位置;

对像素数组进行阈值筛选,根据阈值筛选的结果,对位置数组进行调整,并根据调整后的位置数组,确定虚拟对象的二维位置信息。

在一个可行的实施方案中,所述处理器1101在执行虚拟对象生成方法时还具体用于:

对掩码图像进行分辨率缩放采样,读取掩码图像中每个像素点的像素值和位置;

将读取到的像素值记录在像素数组中,并将读取到的位置记录在位置数组中。

在一个可行的实施方案中,所述处理器1101在执行虚拟对象生成方法时还具体用于:

从像素数组中筛选出像素值小于预设阈值的多个目标像素点;

确定各目标像素点在位置数组中的对应位置,并向各对应位置添加预设标识;

读取位置数组中具有预设标识的位置,并将具有预设标识的位置记录在目标数组中,将目标数组作为虚拟对象的二维位置信息。

在一个可行的实施方案中,所述处理器1101在执行虚拟对象生成方法时还具体用于:

在二维位置信息上添加垂直方向的预设坐标,得到虚拟对象的三维位置信息。

在一个可行的实施方案中,所述处理器1101在执行虚拟对象生成方法时还具体用于:

基于随机偏移向量对各三维位置信息进行位置偏移,得到偏移后的三维位置信息;

在一个可行的实施方案中,所述处理器1101在执行虚拟对象生成方法时还具体用于:

根据偏移后的三维位置信息、虚拟对象的原始三维模型以及预设虚拟对象的物理特性信息,生成虚拟对象的基元模型。

本申请通过虚拟对象的纹理图像确定虚拟对象在三维场景中的位置,相比于现有技术,本申请的方法可以通过纹理图像快速、精准的确定虚拟对象在三维场景中的位置,并将场景元素的原始三维模型摆放到三维场景的对应位置上,无需人工反复进行修改绘制,实现了场景元素摆放效果的实时生成,并且本申请引入了虚拟对象的物理特性信息,因此生成的基元模型还具备物理特性,能够实现更加真实的物理模拟,提高虚拟对象与三维场景交互的真实性。

本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行,所述处理器执行以下步骤:

根据虚拟对象的纹理图像,确定虚拟对象的二维位置信息;

根据虚拟对象的二维位置信息,确定虚拟对象的三维位置信息;

根据虚拟对象的三维位置信息、虚拟对象的原始三维模型以及预设虚拟对象的物理特性信息,生成虚拟对象的基元模型,以根据基元模型将虚拟对象摆放至三维场景中。

在一个可行的实施方案中,处理器在执行根据虚拟对象的纹理图像,确定虚拟对象的二维位置信息时,具体用于:

对纹理图像进行贴图采样,得到采样后的贴图;

根据采样后的贴图,生成纹理图像的掩码图像;

根据掩码图像中的像素点的像素值和位置,确定虚拟对象的二维位置信息。

在一个可行的实施方案中,处理器在执行根据采样后的贴图,生成纹理图像的掩码图像时,具体用于:

对采样后的贴图进行去色处理,得到纹理图像对应的去色贴图;

对去色贴图进行锐化处理,得到纹理图像对应的锐化去色贴图;

根据纹理图像对应的锐化去色贴图,得到纹理图像的掩码图像。

在一个可行的实施方案中,处理器在执行根据纹理图像对应的锐化去色贴图,得到纹理图像的掩码图像时,具体用于:

若纹理图像的数量为多个,则基于预设的混合系数对各纹理图像对应的锐化去色贴图进行叠加处理,得到纹理图像的掩码图像。

在一个可行的实施方案中,处理器在执行根据掩码图像中的像素点的像素值和位置,确定虚拟对象的二维位置信息时,具体用于:

对掩码图像进行缩放采样,得到掩码图像的像素数组和位置数组,像素数组用于存储掩码图像的像素点的像素值,位置数组用于存储掩码图像的像素点的位置;

对像素数组进行阈值筛选,根据阈值筛选的结果,对位置数组进行调整,并根据调整后的位置数组,确定虚拟对象的二维位置信息。

在一个可行的实施方案中,处理器在执行对掩码图像进行缩放采样,得到掩码图像的像素数组和位置数组时,具体用于:

对掩码图像进行分辨率缩放采样,读取掩码图像中每个像素点的像素值和位置;

将读取到的像素值记录在像素数组中,并将读取到的位置记录在位置数组中。

在一个可行的实施方案中,处理器在执行对像素数组进行阈值筛选,根据阈值筛选的结果,对位置数组进行调整,并根据调整后的位置数组,确定虚拟对象的二维位置信息时,具体用于:

从像素数组中筛选出像素值小于预设阈值的多个目标像素点;

确定各目标像素点在位置数组中的对应位置,并向各对应位置添加预设标识;

读取位置数组中具有预设标识的位置,并将具有预设标识的位置记录在目标数组中,将目标数组作为虚拟对象的二维位置信息。

在一个可行的实施方案中,在根据虚拟对象的二维位置信息,确定虚拟对象的三维位置信息时,处理器还用于:

在二维位置信息上添加垂直方向的预设坐标,得到虚拟对象的三维位置信息。

在一个可行的实施方案中,在根据虚拟对象的三维位置信息、虚拟对象的原始三维模型以及预设虚拟对象的物理特性信息,生成虚拟对象的基元模型之前,处理器还用于:

基于随机偏移向量对各三维位置信息进行位置偏移,得到偏移后的三维位置信息;

在一个可行的实施方案中,处理器还用于:

根据偏移后的三维位置信息、虚拟对象的原始三维模型以及预设虚拟对象的物理特性信息,生成虚拟对象的基元模型。

通过虚拟对象的纹理图像确定虚拟对象在三维场景中的位置,相比于现有技术,本申请的方法可以通过纹理图像快速、精准的确定虚拟对象在三维场景中的位置,并将场景元素的原始三维模型摆放到三维场景的对应位置上,无需人工反复进行修改绘制,实现了场景元素摆放效果的实时生成,并且本申请引入了虚拟对象的物理特性信息,因此生成的基元模型还具备物理特性,能够实现更加真实的物理模拟,提高虚拟对象与三维场景交互的真实性。

在本申请实施例中,该计算机程序被处理器运行时还可以执行其它机器可读指令,以执行如实施例中其它所述的方法,关于具体执行的方法步骤和原理参见实施例的说明,在此不再详细赘述。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 虚拟对象的操作控制方法、装置、电子设备及存储介质
  • 虚拟对象控制方法、装置、电子设备及存储介质
  • 虚拟对象控制方法及装置、电子设备、存储介质
  • 三维虚拟宠物的生成方法、装置、设备及存储介质
  • 分布式对象存储数据冗余方法、装置、设备及存储介质
  • 移动对象,控制移动对象的方法,生成移动对象组的方法和装置,及存储用于生成移动对象组的程序的存储介质
  • 虚拟对象阴影生成方法、装置、设备、存储介质及产品
技术分类

06120116189632