CN114419206A - 虚拟模型的处理方法和装置 - Google Patents
虚拟模型的处理方法和装置 Download PDFInfo
- Publication number
- CN114419206A CN114419206A CN202111630121.0A CN202111630121A CN114419206A CN 114419206 A CN114419206 A CN 114419206A CN 202111630121 A CN202111630121 A CN 202111630121A CN 114419206 A CN114419206 A CN 114419206A
- Authority
- CN
- China
- Prior art keywords
- vector
- virtual model
- determining
- point
- target
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种虚拟模型的处理方法和装置。该方法包括:确定初始虚拟模型上的目标点和游戏场景内的映射点,其中,对初始虚拟模型进行变换后所得到的目标虚拟模型上的目标点和映射点重合;获取目标点在初始虚拟模型上的第一位置,和映射点在游戏场景内的第二位置;基于第一位置和第二位置,确定初始虚拟模型的变换参数,其中,变换参数用于表征将第一位置映射到第二位置的参数;根据变换参数控制将初始虚拟模型变换为目标虚拟模型,并在游戏场景中显示目标虚拟模型。本发明解决了相关技术中将虚拟模型上的目标点和游戏场景中的映射点进行匹配的方案成本较高的技术问题。
Description
技术领域
本发明涉及互联网领域,具体而言,涉及一种虚拟模型的处理方法和装置。
背景技术
目前,游戏中的虚拟模型是物体的多边形表示,采用大量的包含特定位置、朝向和尺寸的多边形来表现物体的整体轮廓。在虚拟模型中,为了方便确定一些特殊的位置,通常会正在虚拟模型上创建挂接点,例如,如图1所示,可以在鞭子模型的把手上添加挂接点Start、末端添加挂接点end。
在游戏中放置虚拟模型后,有时需要虚拟模型的两个挂接点与游戏中指定的两个位置匹配,例如,虚拟角色右手甩出可伸缩的鞭子,勾住前方某个位置的苹果,此时,鞭子模型上挂接点Start和挂接点end分别与虚拟角色的右手位置和苹果位置重合。
为了实现将虚拟模型上的目标点和游戏场景中的映射点进行匹配的目的,相关技术提供的技术方案需要在虚拟模型制作过程中,对虚拟模型进行额外处理,或增加一段动画,导致成本较高。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明至少部分实施例提供了一种虚拟模型的处理方法和装置,以至少解决相关技术中将虚拟模型上的目标点和游戏场景中的映射点进行匹配的方案成本较高的技术问题。
根据本发明其中一实施例,提供了一种虚拟模型的处理方法,包括:确定初始虚拟模型上的目标点和游戏场景内的映射点,其中,对初始虚拟模型进行变换后所得到的目标虚拟模型上的目标点和映射点重合;获取目标点在初始虚拟模型上的第一位置,和映射点在游戏场景内的第二位置;基于第一位置和第二位置,确定初始虚拟模型的变换参数,其中,变换参数用于表征将第一位置映射到第二位置的参数;根据变换参数控制将初始虚拟模型变换为目标虚拟模型,并在游戏场景中显示目标虚拟模型。
可选地,变换参数包括:偏移向量、缩放向量和旋转矩阵,基于第一位置和第二位置,确定初始虚拟模型的变换参数包括:基于第一位置,确定初始虚拟模型对应的第一向量;基于第二位置,确定游戏场景对应的第二向量;基于第一向量的第一长度和第二向量的第二长度,确定缩放向量;基于第一向量和第二向量,确定旋转矩阵,其中,旋转矩阵用于表征从第一向量旋转到第二向量的矩阵;基于第一位置、第二位置、缩放向量和旋转矩阵,确定偏移向量。
可选地,目标点包括:第一目标点和第二目标点,基于第一位置,确定初始虚拟模型对应的第一向量包括:获取第一目标点的位置和第二目标点的位置的差值,确定第一向量。
可选地,映射点包括:第一映射点和第二映射点,基于第二位置,确定游戏场景对应的第二向量包括:获取第一映射的位置和第二映射点的位置的差值,确定第二向量。
可选地,基于第一向量的第一长度和第二向量的第二长度,确定缩放向量包括:获取第一长度和第二长度的比值,确定缩放系数;基于缩放系数,生成缩放向量。
可选地,基于第一向量和第二向量,确定旋转矩阵包括:获取第一向量和第二向量的外积,得到旋转向量;获取第一向量和第二向量的夹角,得到旋转角度;基于旋转向量和旋转角度,确定旋转矩阵;其中,第一向量以旋转向量为中心轴,按照旋转角度进行旋转后得到第二向量。
可选地,基于第一位置、第二位置、缩放向量和旋转矩阵,确定偏移向量包括:获取第一位置和缩放向量包含的缩放系数的外积,得到缩放后的位置;获取旋转矩阵和缩放后的位置的差值,得到旋转后的位置;获取第二位置和旋转后的位置的差值,得到偏移向量。
根据本发明其中一实施例,还提供了一种虚拟模型的处理装置,包括:点确定模块,用于确定初始虚拟模型上的目标点和游戏场景内的映射点,其中,对初始虚拟模型进行变换后所得到的目标虚拟模型上的目标点和映射点重合;位置获取模块,用于获取目标点在初始虚拟模型上的第一位置,和映射点在游戏场景内的第二位置;参数确定模块,用于基于第一位置和第二位置,确定初始虚拟模型的变换参数,其中,变换参数用于表征将第一位置映射到第二位置的参数;模型变换模块,用于根据变换参数控制将初始虚拟模型变换为目标虚拟模型,并在游戏场景中显示目标虚拟模型。
可选地,变换参数包括:偏移向量、缩放向量和旋转矩阵,参数确定模块包括:第一向量确定单元,用于基于第一位置,确定初始虚拟模型对应的第一向量,并基于第二位置,确定游戏场景对应的第二向量;第二向量确定单元,用于基于第一向量的第一长度和第二向量的第二长度,确定缩放向量;矩阵确定单元,用于基于第一向量和第二向量,确定旋转矩阵,其中,旋转矩阵用于表征从第一向量旋转到第二向量的矩阵;第三向量确定单元,用于基于第一位置、第二位置、缩放向量和旋转矩阵,确定偏移向量。
可选地,目标点包括:第一目标点和第二目标点,第一向量确定单元还用于获取第一目标点的位置和第二目标点的位置的差值,确定第一向量。
可选地,映射点包括:第一映射点和第二映射点,第一向量确定单元还用于获取第一映射的位置和第二映射点的位置的差值,确定第二向量。
可选地,第二向量确定单元还用于获取第一长度和第二长度的比值,确定缩放系数,并基于缩放系数,生成缩放向量。
可选地,矩阵确定单元包括:第一外积子单元,用于获取第一向量和第二向量的外积,得到旋转向量;获取子单元,用于获取第一向量和第二向量的夹角,得到旋转角度;确定子单元,用于基于旋转向量和旋转角度,确定旋转矩阵;其中,第一向量以旋转向量为中心轴,按照旋转角度进行旋转后得到第二向量。
可选地,第三向量确定单元包括:第二外积子单元,用于获取第一位置和缩放向量包含的缩放系数的外积,得到缩放后的位置;第一差值子单元,用于获取旋转矩阵和缩放后的位置的差值,得到旋转后的位置;第二差值子单元,用于获取第二位置和旋转后的位置的差值,得到偏移向量。
根据本发明其中一实施例,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述实施例中的虚拟模型的处理方法。
根据本发明其中一实施例,还提供了一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述实施例中的虚拟模型的处理方法。
在本发明至少部分实施例中,在确定初始虚拟模型上的目标点和游戏场景内的映射点之后,可以获取目标点在初始虚拟模型上的第一位置,和映射点在游戏场景内的第二位置,并直接基于第一位置和第二位置,确定初始虚拟模型的变换参数,最后根据变换参数控制将初始虚拟模型变换为目标虚拟模型,并在游戏场景中显示目标虚拟模型,实现将虚拟模型上的目标点和游戏场景中的映射点进行匹配的目的。容易注意到的是,可以直接基于第一位置和第二位置,通过空间几何计算出变换参数,实现目标点和映射点的匹配,无需引入额外的模型制作和动画制作成本,可以应用于游戏场景中的任意位置,具有正确性和准确性,且计算开销较小,进而解决了相关技术中将虚拟模型上的目标点和游戏场景中的映射点进行匹配的方案成本较高的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种虚拟模型上创建挂接点的示意图;
图2是本发明实施例的一种虚拟模型的处理方法的移动终端的硬件结构框图;
图3是根据本发明其中一实施例的虚拟模型的处理方法的流程图;
图4是根据本发明其中一实施例的虚拟模型的处理装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先对本发明实施例中出现的技术名称或技术术语进行如下解释说明:
右手定则:假设有两个不共线的矢量,第一个为A,第二个为B,它们可以定义一个平面.首先将右手的四指指向A,再将四指弯向B,这时伸出拇指,拇指的方向即为右手定则定义的方向。
右手坐标系:一种笛卡尔空间直角坐标系,根据X到Y的右手定则确定的方向与坐标系的Z轴方向相同。
左手坐标系:一种笛卡尔空间直角坐标系,根据X到Y的右手定则确定的方向与坐标系的Z轴方向相反。
Position:位置。在直角坐标系中,点的位置可以用其在X、Y、Z三个轴上的坐标值表示。
Rotation:旋转。在直角坐标系中,点的旋转是指以点在旋转轴上的投影点为中心,按照顺时针或者逆时针的方向做一段圆弧,圆弧的终点便是旋转后的点。
Scale:缩放。在直角坐标系中,点的缩放是指其一个或者多个坐标值同时乘以某个数值,变换后的坐标值对应的点就是缩放后的点。
PRS:Position、Rotation、Scale的统称。
挂接点:3D模型内定义的虚拟位置,通常绑定在骨骼上或者设置成与模型原点的固定偏移。
向量归一化:不更改向量的方向,更改向量的分量使其长度变成1。
为了能够在不引入额外的模型制作和动画制作成本的情况下,本发明实施例提供了如下技术方案,可以通过加入PRS计算和设置,使得对初始虚拟模型进行变换得到的目标虚拟模型上任意一对挂接点可以匹配到世界坐标系中的任意位置。
根据本发明其中一实施例,提供了一种虚拟模型的处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
该方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,该移动终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,简称为MID)、PAD、游戏机等终端设备。图2是本发明实施例的一种虚拟模型的处理方法的移动终端的硬件结构框图。如图2所示,移动终端可以包括一个或多个(图2中仅示出一个)处理器102(处理器102可以包括但不限于中央处理器(CPU)、图形处理器(GPU)、数字信号处理(DSP)芯片、微处理器(MCU)、可编程逻辑器件(FPGA)、神经网络处理器(NPU)、张量处理器(TPU)、人工智能(AI)类型处理器等的处理装置)和用于存储数据的存储器104。可选地,上述移动终端还可以包括用于通信功能的传输设备106、输入输出设备108以及显示设备110。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的虚拟模型的处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的虚拟模型的处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
输入输出设备108中的输入可以来自多个人体学接口设备(Human InterfaceDevice,简称为HID)。例如:键盘和鼠标、游戏手柄、其他专用游戏控制器(如:方向盘、鱼竿、跳舞毯、遥控器等)。部分人体学接口设备除了提供输入功能之外,还可以提供输出功能,例如:游戏手柄的力反馈与震动、控制器的音频输出等。
显示设备110可以例如平视显示器(HUD)、触摸屏式的液晶显示器(LCD)和触摸显示器(也被称为“触摸屏”或“触摸显示屏”)。该液晶显示器可使得用户能够与移动终端的用户界面进行交互。在一些实施例中,上述移动终端具有图形用户界面(GUI),用户可以通过触摸触敏表面上的手指接触和/或手势来与GUI进行人机交互,此处的人机交互功能可选的包括如下交互:创建网页、绘图、文字处理、制作电子文档、游戏、视频会议、即时通信、收发电子邮件、通话界面、播放数字视频、播放数字音乐和/或网络浏览等、用于执行上述人机交互功能的可执行指令被配置/存储在一个或多个处理器可执行的计算机程序产品或可读存储介质中。
在本公开其中一种实施例中的虚拟模型的处理方法可以运行于本地终端设备或者是服务器。当虚拟模型的处理方法运行于服务器时,该方法则可以基于云交互系统来实现与执行,其中,云交互系统包括服务器和客户端设备。
在一可选的实施方式中,云交互系统下可以运行各种云应用,例如:云游戏。以云游戏为例,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,虚拟模型的处理方法的储存与运行是在云游戏服务器上完成的,客户端设备的作用用于数据的接收、发送以及游戏画面的呈现,举例而言,客户端设备可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑等;但是进行信息处理的为云端的云游戏服务器。在进行游戏时,玩家操作客户端设备向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回客户端设备,最后,通过客户端设备进行解码并输出游戏画面。
在一可选的实施方式中,以游戏为例,本地终端设备存储有游戏程序并用于呈现游戏画面。本地终端设备用于通过图形用户界面与玩家进行交互,即,常规的通过电子设备下载安装游戏程序并运行。该本地终端设备将图形用户界面提供给玩家的方式可以包括多种,例如,可以渲染显示在终端的显示屏上,或者,通过全息投影提供给玩家。举例而言,本地终端设备可以包括显示屏和处理器,该显示屏用于呈现图形用户界面,该图形用户界面包括游戏画面,该处理器用于运行该游戏、生成图形用户界面以及控制图形用户界面在显示屏上的显示。
在一种可能的实施方式中,本发明实施例提供了一种虚拟模型的处理方法,图3是根据本发明其中一实施例的虚拟模型的处理方法的流程图,如图3所示,该方法包括如下步骤:
步骤S302,确定初始虚拟模型上的目标点和游戏场景内的映射点,其中,对初始虚拟模型进行变换后所得到的目标虚拟模型上的目标点和映射点重合。
上述步骤中的初始虚拟模型可以是3D游戏中使用的物体的3D模型,可以是树木、房屋、装备等,但不仅限于此,本发明对此不做具体限定。游戏场景可以是3D游戏中玩家当前能够看到的游戏世界的画面,初始虚拟模型需要放置在游戏场景中的特定位置来展示给玩家查看。目标点可以是指初始虚拟模型上设定的挂接点,例如,如图1所示,目标点可以包括挂接点start和挂接点end,但不仅限于此,可以根据实际需要设定目标点的数量和位置。目标虚拟模型可以在玩家执行的特定操作,或经过特定的游戏判断后,需要显示在游戏场景中的虚拟模型,可以通过对初始虚拟模型进行变换得到。映射点可以是游戏场景内需要目标虚拟模型出现的点,可以根据玩家实际操作进行设定,也可以根据当前游戏设定需要进行设定,例如,玩家控制虚拟角色右手甩出可伸缩的鞭子,勾住前方某个位置的苹果,此时,可以确定目标点和映射点分别为虚拟角色右手上的点,和苹果上的点。
在一种可选的实施例中,可以由建模师在虚拟模型上创建目标点,包括第一目标点和第二目标点;并根据当前游戏需要指定游戏场景内的映射点,包括第一映射点和第二映射点。可以采用相关技术中目标点的绑定方法和映射点的指定方法实现,本发明对此不做赘述。
例如,在游戏场景中的虚拟角色手持虚拟道具,玩家控制虚拟角色挥动虚拟道具的场景中,可以将虚拟角色手上的点作为目标点,并将虚拟道具挥动后需要显示的位置所在的点为映射点。
步骤S304,获取目标点在初始虚拟模型上的第一位置,和映射点在游戏场景内的第二位置。
上述步骤中的第一位置可以是初始虚拟模型内多边形上所有的点的位置坐标,第二位置可以是游戏场景内世界坐标系中的位置坐标。
在一种可选的实施例中,可以获取虚拟模型的模型文件,并通过get_socket_pos()函数从该文件中读取出目标点的第一位置,该第一位置是模型空间中建立的坐标系中的位置。可以根据当前游戏需要设定映射点,也可以由用户指定映射点,从而确定映射点的第二位置,该第二位置是世界坐标系中的位置。
步骤S306,基于第一位置和第二位置,确定初始虚拟模型的变换参数,其中,变换参数用于表征将第一位置映射到第二位置的参数。
上述步骤中的变换参数可以是将第一位置映射到第二位置的参数,使得在将目标虚拟模型放入游戏场景后,目标点与映射点可以重合。可选地,变换参数包括:偏移向量、缩放向量和旋转矩阵,其中,偏移向量可以表示目标虚拟模型在游戏场景中的放置位置;缩放向量可以表示第一位置映射到第二位置的缩放系数;旋转矩阵可以表示从第一位置对应的第一向量旋转到第二位置对应的第二向量的旋转矩阵。
为了让虚拟模型以指定的尺寸、朝向和位置出现在3D游戏中,可以将第一位置通过PRS转换,换算成世界坐标系中的位置,从而进入后续的显示流程。在此基础上,可以利用PRS转换原理,基于第一位置和第二位置,确定能能够使第一位置转换为第二位置的变换参数(位置、缩放和旋转)。
在一种可选的实施例中,目标点包含第一目标点和第二目标点,映射点包含第一映射点和第二映射点,因此,第一位置包含第一目标点的位置Pa,以及第二目标点的位置Pb;第二位置包含第一映射点的位置Pm,以及第二映射点的位置Pn。初始虚拟模型可以通过第一目标点到第二目标点的第一向量表示,由于目标虚拟模型上的目标点和映射点重合,因此,目标虚拟模型可以通过第一映射点到第二映射点的第二向量表示,因此,缩放向量可以基于两个向量的长度确定,旋转矩阵可以根据现有的罗德里格斯旋转公式确定,偏移向量可以基于缩放向量和旋转矩阵确定。
采用本申请上述实施例提供的方案,在确定初始虚拟模型上的目标点和游戏场景内的映射点之后,可以获取目标点在初始虚拟模型上的第一位置,和映射点在游戏场景内的第二位置,并直接基于第一位置和第二位置,确定初始虚拟模型的变换参数,最后根据变换参数控制将初始虚拟模型变换为目标虚拟模型,并在游戏场景中显示目标虚拟模型,实现将虚拟模型上的目标点和游戏场景中的映射点进行匹配的目的。容易注意到的是,可以直接基于第一位置和第二位置,通过空间几何计算出变换参数,实现目标点和映射点的匹配,无需引入额外的模型制作和动画制作成本,可以应用于游戏场景中的任意位置,具有正确性和准确性,且计算开销较小,进而解决了相关技术中将虚拟模型上的目标点和游戏场景中的映射点进行匹配的方案成本较高的技术问题。
可选地,基于第一位置和第二位置,确定初始虚拟模型的变换参数包括:基于第一位置,确定初始虚拟模型对应的第一向量;基于第二位置,确定游戏场景对应的第二向量;基于第一向量的第一长度和第二向量的第二长度,确定缩放向量;基于第一向量和第二向量,确定旋转矩阵,其中,旋转矩阵用于表征从第一向量旋转到第二向量的矩阵;基于第一位置、第二位置、缩放向量和旋转矩阵,确定偏移向量。
在一种可选的实施例中,第一位置包含第一目标点的位置Pa,以及第二目标点的位置Pb;第二位置包含第一映射点的位置Pm,以及第二映射点的位置Pn,可以基于Pa和Pb确定第一向量Vab,基于Pm和Pn确定第二向量Vmn。第一长度可以表示初始虚拟模型的设定尺寸,第二长度可以表示目标虚拟模型的尺寸,因此,可以基于第二长度和第一长度的比值,确定初始虚拟模型需要缩放的缩放系数scale,进一步地,在3D游戏中,可以基于缩放系数,利用向量创建方法创建缩放向量Vscale。可以根据现有的罗德里格斯旋转公式确定从第一向量旋转到第二向量的旋转矩阵Mrot。由于初始虚拟模型和目标虚拟模型采用向量表示,向量的朝向是固定的,因此,可以直接从第一位置中选择一个位置,也即,选择第一目标点的位置或第二目标点的位置确定偏移向量Vp。
可选地,目标点包括:第一目标点和第二目标点,基于第一位置,确定初始虚拟模型对应的第一向量包括:获取第一目标点的位置和第二目标点的位置的差值,确定第一向量。
在一种可选的实施例中,第一位置包含第一目标点的位置Pa,以及第二目标点的位置Pb,可以通过如下公式确定第一目标点指向第二目标点的向量,也即,得到第一向量Vab:
Vab=Pb-Pa,其中,Pa=get_socket_pos(a),Pb=get_socket-pos(b)。
可选地,映射点包括:第一映射点和第二映射点,基于第二位置,确定游戏场景对应的第二向量包括:获取第一映射的位置和第二映射点的位置的差值,确定第二向量。
在一种可选的实施例中,第二位置包含第一映射点的位置Pm,以及第二映射点的位置Pn,可以通过如下公式确定第一映射点指向第二映射点的向量,也即,得到第二向量Vmn:
Vmn=Pm-Pn。
可选地,基于第一向量的第一长度和第二向量的第二长度,确定缩放向量包括:获取第一长度和第二长度的比值,确定缩放系数;基于缩放系数,生成缩放向量。
在一种可选的实施例中,可以通过如下公式计算第一长度Lab和第二长度Lmn:
Lmn=length(Vmn),
Lab=length(Vab)。
进一步地,可以通过如下公式计算缩放系数scale,进一步地通过向量创建的方法vector生成缩放向量:
scale=Lmn/Lab,
Vscale=vector(scale,scale,scale)。
可选地,基于第一向量和第二向量,确定旋转矩阵包括:获取第一向量和第二向量的外积,得到旋转向量;获取第一向量和第二向量的夹角,得到旋转角度;基于旋转向量和旋转角度,确定旋转矩阵;其中,第一向量以旋转向量为中心轴,按照旋转角度进行旋转后得到第二向量。
在一种可选的实施例中,首先需要对第一向量和第二向量进行长度归一化:
Vmn=normalize(Vmn),
Vab=normalize(Vab),
然后基于归一化后的向量进行如下处理:获取归一化后的第一向量Vab和归一化后的第二向量Vmn的外积,得到旋转向量Vaxis,其中,Vaxis=Vab×Vmn,由外积的性质可知,Vaxis垂直于Vab和Vmn。
进一步地可以获取归一化后的第一向量Vab和归一化后的第二向量Vmn的内积dot,其中,dot=Vab·Vmn,由于归一化后的两个向量的长度为1,由内积的性质可知,dot=Vab·Vmn=||Vab||||Vmn||cosθ=cosθ,因此,可以根据反三角函数,基于内积dot得到旋转角度θ,其中,θ=cos-1dot。
将第一向量Vab旋转到第二向量Vmn,等价与将一个向量以Vaxis为中心轴,旋转角度θ。而罗德里格斯旋转公式则是解决这个问题。其推论中,设k为定义旋转轴的单位向量,设V为绕k旋转角度θ的任何向量,根据罗德里格斯公式,记
R=I+(sinθ)Mk+(1-cosθ)Mk 2,
其中,可以将公式中的k换成Vaxis,计算得到的R即为旋转矩阵Mrot。
可选地,基于第一位置、第二位置、缩放向量和旋转矩阵,确定偏移向量包括:获取第一位置和缩放向量包含的缩放系数的外积,得到缩放后的位置;获取旋转矩阵和缩放后的位置的差值,得到旋转后的位置;获取第二位置和旋转后的位置的差值,得到偏移向量。
在一种可选的实施例中,可以通过如下公式计算缩放后的位置Psa:
Psa=Pa×scale,
进一步通过如下公式计算旋转后的位置Pra:
Pra=mulvec3x3(Mrot-Psa),其中,mulvec3x3用于对向量进行变换,从4x4的向量转换为3x3的向量。
最终通过如下公式计算偏移向量Vp:
Vp=Pm-Pra。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种虚拟模型的处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“单元”、“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是根据本发明其中一实施例的虚拟模型的处理装置的结构框图,如图4所示,该装置包括:
点确定模块42,用于确定初始虚拟模型上的目标点和游戏场景内的映射点,其中,对初始虚拟模型进行变换后所得到的目标虚拟模型上的目标点和映射点重合;
位置获取模块44,用于获取目标点在初始虚拟模型上的第一位置,和映射点在游戏场景内的第二位置;
参数确定模块46,用于基于第一位置和第二位置,确定初始虚拟模型的变换参数,其中,变换参数用于表征将第一位置映射到第二位置的参数;
模型变换模块48,用于根据变换参数控制将初始虚拟模型变换为目标虚拟模型,并在游戏场景中显示目标虚拟模型。
可选地,变换参数包括:偏移向量、缩放向量和旋转矩阵,参数确定模块包括:第一向量确定单元,用于基于第一位置,确定初始虚拟模型对应的第一向量,并基于第二位置,确定游戏场景对应的第二向量;第二向量确定单元,用于基于第一向量的第一长度和第二向量的第二长度,确定缩放向量;矩阵确定单元,用于基于第一向量和第二向量,确定旋转矩阵,其中,旋转矩阵用于表征从第一向量旋转到第二向量的矩阵;第三向量确定单元,用于基于第一位置、第二位置、缩放向量和旋转矩阵,确定偏移向量。
可选地,目标点包括:第一目标点和第二目标点,第一向量确定单元还用于获取第一目标点的位置和第二目标点的位置的差值,确定第一向量。
可选地,映射点包括:第一映射点和第二映射点,第一向量确定单元还用于获取第一映射的位置和第二映射点的位置的差值,确定第二向量。
可选地,第二向量确定单元还用于获取第一长度和第二长度的比值,确定缩放系数,并基于缩放系数,生成缩放向量。
可选地,矩阵确定单元包括:第一外积子单元,用于获取第一向量和第二向量的外积,得到旋转向量;获取子单元,用于获取第一向量和第二向量的夹角,得到旋转角度;确定子单元,用于基于旋转向量和旋转角度,确定旋转矩阵;其中,第一向量以旋转向量为中心轴,按照旋转角度进行旋转后得到第二向量。
可选地,第三向量确定单元包括:第二外积子单元,用于获取第一位置和缩放向量包含的缩放系数的外积,得到缩放后的位置;第一差值子单元,用于获取旋转矩阵和缩放后的位置的差值,得到旋转后的位置;第二差值子单元,用于获取第二位置和旋转后的位置的差值,得到偏移向量。
需要说明的是,上述各个单元、模块、子单元是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述单元、模块、子单元均位于同一处理器中;或者,上述各个单元、模块、子单元以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述计算机可读存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,确定初始虚拟模型上的目标点和游戏场景内的映射点,其中,对初始虚拟模型进行变换后所得到的目标虚拟模型上的目标点和映射点重合;
S2,获取目标点在初始虚拟模型上的第一位置,和映射点在游戏场景内的第二位置;
S3,基于第一位置和第二位置,确定初始虚拟模型的变换参数,其中,变换参数用于表征将第一位置映射到第二位置的参数;
S4,根据变换参数控制将初始虚拟模型变换为目标虚拟模型,并在游戏场景中显示目标虚拟模型。
可选地,在本实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,确定初始虚拟模型上的目标点和游戏场景内的映射点,其中,对初始虚拟模型进行变换后所得到的目标虚拟模型上的目标点和映射点重合;
S2,获取目标点在初始虚拟模型上的第一位置,和映射点在游戏场景内的第二位置;
S3,基于第一位置和第二位置,确定初始虚拟模型的变换参数,其中,变换参数用于表征将第一位置映射到第二位置的参数;
S4,根据变换参数控制将初始虚拟模型变换为目标虚拟模型,并在游戏场景中显示目标虚拟模型。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种虚拟模型的处理方法,其特征在于,包括:
确定初始虚拟模型上的目标点和游戏场景内的映射点,其中,对所述初始虚拟模型进行变换后所得到的目标虚拟模型上的目标点和所述映射点重合;
获取所述目标点在所述初始虚拟模型上的第一位置,和所述映射点在所述游戏场景内的第二位置;
基于所述第一位置和所述第二位置,确定所述初始虚拟模型的变换参数,其中,所述变换参数用于表征将所述第一位置映射到所述第二位置的参数;
根据所述变换参数控制将所述初始虚拟模型变换为所述目标虚拟模型,并在所述游戏场景中显示所述目标虚拟模型。
2.根据权利要求1所述的方法,其特征在于,所述变换参数包括:偏移向量、缩放向量和旋转矩阵,基于所述第一位置和所述第二位置,确定所述初始虚拟模型的所述变换参数包括:
基于所述第一位置,确定所述初始虚拟模型对应的第一向量;
基于所述第二位置,确定所述游戏场景对应的第二向量;
基于所述第一向量的第一长度和所述第二向量的第二长度,确定所述缩放向量;
基于所述第一向量和所述第二向量,确定所述旋转矩阵,其中,所述旋转矩阵用于表征从所述第一向量旋转到所述第二向量的矩阵;
基于所述第一位置、所述第二位置、所述缩放向量和所述旋转矩阵,确定所述偏移向量。
3.根据权利要求2所述的方法,其特征在于,所述目标点包括:第一目标点和第二目标点,基于所述第一位置,确定所述初始虚拟模型对应的所述第一向量包括:
获取所述第一目标点的位置和所述第二目标点的位置的差值,确定所述第一向量。
4.根据权利要求2所述的方法,其特征在于,所述映射点包括:第一映射点和第二映射点,基于所述第二位置,确定所述游戏场景对应的所述第二向量包括:
获取所述第一映射的位置和所述第二映射点的位置的差值,确定所述第二向量。
5.根据权利要求2所述的方法,其特征在于,基于所述第一向量的第一长度和所述第二向量的第二长度,确定所述缩放向量包括:
获取所述第一长度和所述第二长度的比值,确定缩放系数;
基于所述缩放系数,生成所述缩放向量。
6.根据权利要求2所述的方法,其特征在于,基于所述第一向量和所述第二向量,确定所述旋转矩阵包括:
获取所述第一向量和所述第二向量的外积,得到旋转向量;
获取所述第一向量和所述第二向量的夹角,得到旋转角度;
基于所述旋转向量和所述旋转角度,确定所述旋转矩阵;
其中,所述第一向量以所述旋转向量为中心轴,按照所述旋转角度进行旋转后得到所述第二向量。
7.根据权利要求2至6中任意一项所述的方法,其特征在于,基于所述第一位置、所述第二位置、所述缩放向量和所述旋转矩阵,确定所述偏移向量包括:
获取所述第一位置和所述缩放向量包含的缩放系数的外积,得到缩放后的位置;
获取所述旋转矩阵和所述缩放后的位置的差值,得到旋转后的位置;
获取所述第二位置和所述旋转后的位置的差值,得到所述偏移向量。
8.一种虚拟模型的处理装置,其特征在于,包括:
点确定模块,用于确定初始虚拟模型上的目标点和游戏场景内的映射点,其中,对所述初始虚拟模型进行变换后所得到的目标虚拟模型上的目标点和所述映射点重合;
位置获取模块,用于获取所述目标点在所述初始虚拟模型上的第一位置,和所述映射点在所述游戏场景内的第二位置;
参数确定模块,用于基于所述第一位置和所述第二位置,确定所述初始虚拟模型的变换参数,其中,所述变换参数用于表征将所述第一位置映射到所述第二位置的参数;
模型变换模块,用于根据所述变换参数控制将所述初始虚拟模型变换为所述目标虚拟模型,并在所述游戏场景中显示所述目标虚拟模型。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至7任一项中所述的虚拟模型的处理方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至7任一项中所述的虚拟模型的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111630121.0A CN114419206A (zh) | 2021-12-28 | 2021-12-28 | 虚拟模型的处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111630121.0A CN114419206A (zh) | 2021-12-28 | 2021-12-28 | 虚拟模型的处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114419206A true CN114419206A (zh) | 2022-04-29 |
Family
ID=81269113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111630121.0A Pending CN114419206A (zh) | 2021-12-28 | 2021-12-28 | 虚拟模型的处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114419206A (zh) |
-
2021
- 2021-12-28 CN CN202111630121.0A patent/CN114419206A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110019766B (zh) | 知识图谱的展示方法、装置、移动终端及可读存储介质 | |
CN110163942B (zh) | 一种图像数据处理方法和装置 | |
CN108196669B (zh) | 游戏角色模型的修正方法、装置、处理器及头戴式显示设备 | |
KR20220028069A (ko) | 이미지 처리 방법 및 장치, 전자 장치 및 저장 매체 | |
CN113318428B (zh) | 游戏的显示控制方法、非易失性存储介质及电子装置 | |
CN113262490B (zh) | 虚拟对象的标记方法、装置、处理器及电子装置 | |
CN113262489B (zh) | 游戏路线生成方法、装置、非易失性存储介质及电子装置 | |
WO2024103849A1 (zh) | 游戏角色的三维模型的展示方法、装置和电子装置 | |
CN113440848A (zh) | 游戏内信息标记方法、装置及电子装置 | |
CN115375822A (zh) | 云模型的渲染方法、装置、存储介质及电子装置 | |
CN114419206A (zh) | 虚拟模型的处理方法和装置 | |
CN116452704A (zh) | 镜头光晕特效的生成方法、装置、存储介质及电子装置 | |
CN115115814A (zh) | 信息处理方法、装置、可读存储介质和电子装置 | |
CN114283230A (zh) | 植被模型渲染方法、装置、可读存储介质和电子装置 | |
CN114742970A (zh) | 虚拟三维模型的处理方法、非易失性存储介质及电子装置 | |
CN114299203A (zh) | 虚拟模型的处理方法和装置 | |
CN114816457A (zh) | 克隆虚拟模型的方法、装置、存储介质及电子装置 | |
CN114504808A (zh) | 信息处理方法、装置、存储介质、处理器和电子装置 | |
CN115120979A (zh) | 虚拟对象的显示控制方法、装置、存储介质和电子装置 | |
CN113457127A (zh) | 虚拟角色的控制方法、装置、电子设备及存储介质 | |
CN114445531A (zh) | 雷云效果的实现方法、装置、存储介质及电子装置 | |
JP4637205B2 (ja) | 表示装置、表示方法、ならびに、プログラム | |
WO2024174576A1 (zh) | 数据处理方法、装置、设备及存储介质 | |
CN114299207A (zh) | 虚拟对象渲染方法、装置、可读存储介质和电子装置 | |
CN115105832A (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 |