虚拟模型的调整方法、装置、存储介质及电子装置与流程



1.本公开涉及计算机领域,具体而言,涉及一种虚拟模型的调整方法、装置、存储介质及电子装置。


背景技术:



2.目前,在对虚拟模型进行渲染时,为了使虚拟模型能够更好的匹配方形贴图,避免产生锯齿,需要对虚拟模型在纹理空间中的映射进行变形调整(例如,拉直)。
3.相关技术中,在对虚拟模型进行变形调整的过程中,通常手动从虚拟模型中选择待调整的纹理点,并对待调整的纹理点进行移动或者旋转,以将待调整的纹理点排列为直线,然后再逐行选择需要变形调整的纹理点,以缩放或对齐工具统一对某个轴向的纹理点进行变形调整。
4.上述虚拟模型的变形调整方式手动操作效率低,效果差,难以应付复杂模型。而且,该方式还会使模型中的部分区域发生扭曲,虚拟模型变形调整的效果差。
5.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:



6.本公开至少部分实施例提供了一种虚拟模型的调整方法、装置、存储介质及电子装置,以至少解决相关技术中,对虚拟模型进行变形所存在的部分模型发生扭曲的技术问题。
7.根据本公开其中一实施例,提供了一种虚拟模型的调整方法,包括:获取构成待调整模型的至少一个待调整分块,其中,待调整分块为待调整模型在纹理空间中展开所得到的多个纹理分块中的任意一个纹理分块;确定位于待调整分块上的主序边,并识别主序边上的当前主序点的纹理标识,得到第一纹理标识,其中,主序边为待调整分块中的多个连续边中的任意一个连续边,当前主序点为主序边上的纹理点;基于第一纹理标识确定第二纹理集合所包含的纹理点的变形调整模式,其中,第二纹理点集合由待调整分块中除主序边上的主序点之外的纹理点组成;基于变形调整模式对第二纹理集合所包含的纹理点进行变形调整,得到调整后的虚拟模型。
8.根据本公开其中一实施例,还提供了一种虚拟模型的调整装置,包括:获取模块,用于获取构成待调整模型的至少一个待调整分块,其中,待调整分块为待调整模型在纹理空间中展开所得到的多个纹理分块中的任意一个纹理分块;识别模块,用于确定位于待调整分块上的主序边,并识别主序边上的当前主序点的纹理标识,得到第一纹理标识,其中,主序边为待调整分块中的多个连续边中的任意一个连续边,当前主序点为主序边上的纹理点;确定模块,用于基于第一纹理标识确定第二纹理集合所包含的纹理点的变形调整模式,其中,第二纹理点集合由待调整分块中除主序边上的主序点之外的纹理点组成;调整模块,用于基于变形调整模式对第二纹理集合所包含的纹理点进行变形调整,得到调整后的虚拟模型。
9.根据本公开其中一实施例,还提供了一种非易失性存储介质,该非易失性存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的虚拟模型的调整方法。
10.根据本公开其中一实施例,还提供了一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述的虚拟模型的调整方法。
11.在本公开至少部分实施例中,采用在待调整分块的主序边进行变形调整的同时,对主序边之外的纹理点进行变形调整的方式,在获取构成待调整模型的至少一个待调整分块之后,通过确定位于待调整分块上的主序边,并识别主序边上的当前主序点的纹理标识,得到第一纹理标识,然后,基于第一纹理标识确定第二纹理集合所包含的纹理点的变形调整模式,最后,基于变形调整模式对第二纹理集合所包含的纹理点进行变形调整,得到调整后的虚拟模型。其中,第二纹理点集合由待调整分块中除主序边上的主序点之外的纹理点组成。
12.由上述内容可知,在对虚拟模型进行变形调整的过程中,无需人工手动操作,从而避免了手动变形调整虚拟模型所存在的效率低的问题,进而提高了虚拟模型变形调整的效率。另外,在对待调整模型中的主序边进行变形调整的过程中,同时对待调整模型中除主序边上的纹理点之外的纹理点进行调整,从而避免了相关技术中,仅对主序边进行调整导致部分模型扭曲变形的问题,降低了虚拟模型变形调整不协调现象的出现,提升了虚拟模型变形调整的效果。
13.由此可见,本公开所提供的方案达到了对虚拟模型进行变形调整的目的,从而实现了提升虚拟模型变形调整的效果的技术效果,进而解决了相关技术中,对虚拟模型进行变形所存在的部分模型发生扭曲的技术问题。
附图说明
14.此处所说明的附图用来提供对本公开的进一步理解,构成本技术的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
15.图1是本公开实施例的一种虚拟模型的调整方法的移动终端的硬件结构框图;
16.图2是根据本公开其中一实施例的虚拟模型的调整方法的流程图;
17.图3是根据本公开其中一实施例的待调整分块的示意图;
18.图4是根据本公开其中一实施例的直线型的纹理分块的示意图;
19.图5是根据本公开其中一实施例的邻边示意图;
20.图6是根据本公开其中一实施例的旋转后的待调整分块的示意图;
21.图7是根据本公开其中一实施例的第一参考坐标系的示意图;
22.图8是根据本公开其中一实施例的第二参考坐标系的示意图;
23.图9是根据本公开其中一实施例的第一角度的示意图;
24.图10是根据本公开其中一实施例的第一参考坐标系的示意图;
25.图11是根据本公开其中一实施例的第一参考坐标系的示意图;
26.图12是根据本公开其中一实施例的虚拟模型的调整装置的结构框图;
27.图13是根据本公开其中一可选实施例的电子装置的示意图。
具体实施方式
28.为了使本技术领域的人员更好地理解本公开方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
29.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
30.根据本公开其中一实施例,提供了一种虚拟模型的调整方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
31.该方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,该移动终端可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobile internet devices,简称为mid)、pad、游戏机等终端设备。图1是本公开实施例的一种虚拟模型的调整方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于中央处理器(cpu)、图形处理器(gpu)、数字信号处理(dsp)芯片、微处理器(mcu)、可编程逻辑器件(fpga)、神经网络处理器(npu)、张量处理器(tpu)、人工智能(ai)类型处理器等的处理装置)和用于存储数据的存储器104。可选地,上述移动终端还可以包括用于通信功能的传输设备106、输入输出设备108以及显示设备110。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
32.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本公开实施例中的虚拟模型的调整方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的虚拟模型的调整方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
33.传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(network interface controller,简称为nic),其可通过与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(radio frequency,简称为rf)
模块,其用于通过无线方式与互联网进行通讯。
34.输入输出设备108中的输入可以来自多个人体学接口设备(human interface device,简称为hid)。例如:键盘和鼠标、游戏手柄、其他专用游戏控制器(如:方向盘、鱼竿、跳舞毯、遥控器等)。部分人体学接口设备除了提供输入功能之外,还可以提供输出功能,例如:游戏手柄的力反馈与震动、控制器的音频输出等。
35.显示设备110可以例如平视显示器(hud)、触摸屏式的液晶显示器(lcd)和触摸显示器(也被称为“触摸屏”或“触摸显示屏”)。该液晶显示器可使得用户能够与移动终端的用户界面进行交互。在一些实施例中,上述移动终端具有图形用户界面(gui),用户可以通过触摸触敏表面上的手指接触和/或手势来与gui进行人机交互,此处的人机交互功能可选的包括如下交互:创建网页、绘图、文字处理、制作电子文档、游戏、视频会议、即时通信、收发、通话界面、播放数字视频、播放数字音乐和/或网络浏览等、用于执行上述人机交互功能的可执行指令被配置/存储在一个或多个处理器可执行的计算机程序产品或可读存储介质中。
36.在本公开其中一种实施例中的虚拟模型的调整方法可以运行于本地终端设备或者是服务器。当虚拟模型的调整方法运行于服务器时,该方法则可以基于云交互系统来实现与执行,其中,云交互系统包括服务器和客户端设备。
37.在一种可能的实施方式中,本公开实施例提供了一种虚拟模型的调整方法,执行该方法的终端设备可以是前述提到的本地终端设备,也可以是前述提到的云交互系统中的客户端设备。图2是根据本公开其中一实施例的虚拟模型的调整方法的流程图,如图2所示,该方法包括如下步骤:
38.步骤s202,获取构成待调整模型的至少一个待调整分块,其中,待调整分块为待调整模型在纹理空间中展开所得到的多个纹理分块中的任意一个纹理分块。
39.在步骤s202中,待调整模型为虚拟模型,例如,游戏中的虚拟人物、树木、云朵、山石等,待调整分块为虚拟模型在纹理空间中的映射,即待调整分块为虚拟模型在纹理空间中展开后所得到的纹理分块,待调整分块可以是整个待调整模型在纹理空间展开后的纹理分块,也可以是待调整模型中的部分模型在纹理空间展开后所得到的纹理分块,例如,对于虚拟人物的模型,待调整分块可以是手指部分在纹理空间展开后所得到的纹理分块。
40.另外,待调整分块的形状可以为直线型、c型、s型、o型、p型等。在本公开中,以将图3所示的待调整分块变形调整为直线型的纹理分块为例进行说明。
41.在一种可选的实施例中,终端设备在获取到待调整模型之后,将待调整模型映射到纹理空间中,得到多个纹理分块,然后,响应用户的选择操作,从多个纹理分块中确定至少一个待调整分块。
42.在另一种可选的实施例中,终端设备可将待调整模型分为多个模型分块,并响应用户的选择操作,从多个模型分块中选择目标模型分块。然后,在将目标模型分块映射到纹理空间中,从而得到待调整分块。
43.步骤s204,确定位于待调整分块上的主序边,并识别主序边上的当前主序点的纹理标识,得到第一纹理标识。
44.在步骤s204中,主序边为待调整分块中的多个连续边中的任意一个连续边,当前主序点为主序边上的纹理点。连续边为待调整分块中头尾相接没有断开,也没有分支的一
组边的组合,其中,主序边也是一种连续边,用于作为待调整分块变形调整的基准,而主序点为主序边上的点,即每条连续边由多个纹理点组成,位于主序边上的纹理点即为主序点。每个主序点或纹理点具有一个标识,即纹理标识。
45.在一种可选的实施例中,终端设备可响应用户的选择操作,从待调整分块所包含的多个连续边中确定主序边,如图3所示,用户选择了中间的一条连续边作为主序边。在确定了主序边之后,终端设备根据将主序边的某一个端点作为起始点,按照顺序对主序边上的纹理点进行编号,从而得到上述的第一纹理标识。即在本实施例中,第一纹理标识表征了主序点在主序边的位置信息。
46.步骤s206,基于第一纹理标识确定第二纹理集合所包含的纹理点的变形调整模式。
47.在步骤s206中,第二纹理点集合由待调整分块中除主序边上的主序点之外的纹理点组成。
48.需要说明的是,每个主序点对应一个第二纹理集合,对于当前主序点,终端设备可通过当前主序点的第一纹理标识确定第二纹理集合所包含的纹理点在预设控制表中的行号范围,并根据不同的行号范围可确定该第二纹理集合所对应的变形调整模式。其中,预设控制表中存储有主序点的相关信息(例如,主序点标识)以及与主序点相关的纹理点的相关信息(例如,纹理点的标识)。
49.此外,还需要说明的是,对第二纹理集合中的纹理点进行变形调整,主要是对第二纹理集合中的纹理点进行旋转。而采用不同的变形调整模式来对第二纹理集合中的纹理点进行变形调整,可减少调整后的待调整分块出现不协调的扭曲变形。
50.步骤s208,基于变形调整模式对第二纹理集合所包含的纹理点进行变形调整,得到调整后的虚拟模型。
51.需要说明的是,由于步骤s206中的第二纹理集合中的纹理点并不是主序边上的纹理点,即在本公开中,在对待调整模型中的主序边进行变形调整的过程中,同时对待调整模型中除主序边上的主序点之外的纹理点进行调整,从而避免了相关技术中,仅对主序边进行调整导致部分模型扭曲变形的问题,降低了虚拟模型变形调整不协调现象的出现,提升了虚拟模型变形调整的效果。例如,对图3所示的待调整分块进行变形调整后,即可得到图4所示的直线型的纹理分块,由图4所示的纹理分块的示意图可知,调整后的纹理分块中并未出现模型扭曲变形的问题。
52.基于上述步骤s202至步骤s208所限定的方案,可以获知,在本公开至少部分实施例中,采用在待调整分块的主序边进行变形调整的同时,对主序边之外的纹理点进行变形调整的方式,在获取构成待调整模型的至少一个待调整分块之后,通过确定位于待调整分块上的主序边,并识别主序边上的当前主序点的纹理标识,得到第一纹理标识,然后,基于第一纹理标识确定第二纹理集合所包含的纹理点的变形调整模式,最后,基于变形调整模式对第二纹理集合所包含的纹理点进行变形调整,得到调整后的虚拟模型。其中,第二纹理点集合由待调整分块中除主序边上的主序点之外的纹理点组成。
53.容易注意到的是,在对虚拟模型进行变形调整的过程中,无需人工手动操作,从而避免了手动变形调整虚拟模型所存在的效率低的问题,进而提高了虚拟模型变形调整的效率。另外,在对待调整模型中的主序边进行变形调整的过程中,同时对待调整模型中除主序
边上的纹理点之外的纹理点进行调整,从而避免了相关技术中,仅对主序边进行调整导致部分模型扭曲变形的问题,降低了虚拟模型变形调整不协调现象的出现,提升了虚拟模型变形调整的效果。
54.由此可见,本公开所提供的方案达到了对虚拟模型进行变形调整的目的,从而实现了提升虚拟模型变形调整的效果的技术效果,进而解决了相关技术中,对虚拟模型进行变形所存在的部分模型发生扭曲的技术问题。
55.在一种可选的实施例中,在获取待调整分块之后,终端设备可将主序边上的主序点的相关信息存储在预设控制表中。具体的,终端设备首先确定主序边的起始位置,然后,基于起始位置对第一纹理点集合进行排序,得到排序结果。最后,按照排序结果将第一纹理点集合所包含的主序点的纹理标识存储至预设控制表的目标列中。其中,第一纹理点集合由主序边上的所有主序点组成。
56.可选的,在确定了主序边之后,终端设备获取主序边上所有的纹理点,得到主序点,记为主序点集合(即第一纹理点集合)m
uv
,并从主序边的其中一端开始对主序边上的主序点进行排序,按照顺序将主序点的相关信息存入主序点控制表(即预设控制表)的第一列,例如,在图3中,主序边的端点为a1和b,终端设备从a1端开始对主序边上的主序点进行排序,并将主序点的相关信息存储在预设控制表的第一列中,其中,主序点的顺序对应其在预设控制表中的行数。
57.需要说明的是,预设控制表中除存储有主序点的相关信息外,还存储有与主序点相关的其他连续边上的纹理点的相关信息。
58.具体的,终端设备遍历第二纹理点集合,确定当前纹理点,并从待调整分块中确定当前纹理点所对应的邻边。然后,获取邻边所对应的邻点,得到第三纹理点集合,并检测第三纹理点集合属于第一纹理点集合的纹理点的纹理点数量,最后,根据纹理点数量对预设控制表进行更新。
59.需要说明的是,上述的邻边至少包括当前纹理点所在的线段,邻点为邻边的端点。可选的,终端设备可检测通过当前纹理点的线段数量,根据该线段数据即可确定邻边数量,而邻边所对应的端点即为邻点。例如,在图5所示的邻边示意图中,当前纹理点为c,通过当前纹理点c的线段为四条,即线段c1c、cc2、c3c、cc4,邻边对应的端点除当前纹理点c外,还包括端点c1、c2、c3和c4,则当前纹理点为c对应的第三纹理点集合由c1、c2、c3和c4组成。在确定邻点之后,终端设备检测上述四个端点中为主序点的端点数量(即纹理点数量),进而根据纹理点数量来对预设控制表进行更新。
60.在一种可选的实施例中,终端设备通过检测邻点的位置与第一纹理点集合中主序点位置是否重合,来确定该邻点是否为主序点。如果当前纹理点对应的所有邻点均不是主序点,则上述的纹理点数量为零。如果纹理点数量为零,则将所有邻点记为当前纹理点,例如,以图5为例,如果邻点c1、c2、c3和c4中不存在主序点,则将邻点c1、c2、c3和c4记为当前纹理点,然后再重复上述步骤,即继续遍历第二纹理点集合,确定当前纹理点,并从待调整分块中确定当前纹理点所对应的邻边以及邻边所对应的邻点,然后,检测邻点中属于第一纹理点集合的纹理点的纹理点数量,直至所获得的邻点中包含1个或多个的主序点为止。
61.进一步的,在确定了纹理点数量之后,终端设备即可根据纹理点数量对预设控制表进行更新。具体的,在纹理点数量为预设阈值时,确定当前纹理点所对应的目标主序点,
并在预设控制表中的第一目标行中添加当前纹理点的纹理标识,其中,第一目标行为目标主序点在预设控制表中所在的行。可选的,上述预设阈值为1,即在纹理点数量为1个时,表征当前纹理点所对应的邻点中属于m
uv
的纹理点只有1个,则终端设备查该当前纹理点所对应的主序点在预设控制表中所在的行,并把该当前纹理点的纹理标识记入至预设控制表中该行所对应的新的一列中。
62.在纹理点数量大于预设阈值时,确定当前纹理点所对应的多个主序点,并计算多个主序点在预设控制表中的行号的平均值,根据平均值确定第二目标行,然后在第二目标行中添加当前纹理点的纹理标识。即当属于m
uv
的纹理点数量多于1个时,则获取计算当前纹理点所对应的多个主序点在预设控制表中的行号的平均值,并根据平均值来确定当前纹理点的纹理标识在预设控制表中的行。
63.可选的,在平均值为整数时,确定行号为平均值的行为第二目标行,例如,当前纹理点所对应的主序点的行号为12和14,则上述的平均值为13,终端设备将当前纹理点所对应的纹理标识存储至预设控制表中13行的新一列中。
64.可选的,在平均值为非整数时,获取与平均值相邻的两个整数,确定两个整数所对应的行为第二目标行。例如,若当前纹理点所对应的主序点在预设控制表中的行号为13、14和20,则终端设备将将当前纹理点所对应的相关信息同时记入预设控制表中的第15和16行中。
65.在一种可选的实施例中,在确定位于主序边上的当前主序点的纹理坐标,得到第一纹理坐标之前,终端设备还对待调整分块进行整体旋转。
66.具体的,终端设备按照排序结果从主序边中确定第一主序点以及第一主序点的下一主序点,然后,确定第一主序点与下一主序点之间的子主序边,并确定子主序边与第一方向之间的夹角,得到第一夹角,最后,基于第一夹角,以第一主序点为轴,对待调整分块进行旋转操作,得到旋转后的待调整分块。
67.需要说明的是,上述的第一主序点为主序边的第一个纹理点,即按照主序点在预设控制表中的顺序,预设控制表中的第一个纹理点。上述的第一主序点的下一主序点为预设控制表中的第二个纹理点。上述的第一方向可以为世界坐标系中x轴的正向。
68.可选的,以图3所示的待调整分块的示意图为例进行说明,第一主序点为a1,第一主序点的下一主序点为a2,第一主序点与下一主序点之间的子主序边为a1a2,确定该子主序边a1a2与世界坐标系中x轴的正向之间的夹角(即第一夹角)α,以第一主序点为轴,将整个待调整分块旋转180
°‑
α,从而得到图6所示的旋转后的待调整分块。
69.需要说明的是,上述的第一夹角可定义为一条边绕轴点向逆时针方向旋转至另一条边所经过的角度,上述的夹角可以是子主序边与世界坐标系中x轴的正向之间的夹角,还可以是子主序边与世界坐标系中任意轴向之间的夹角,在实际应用中可根据实际需求进行选择,在此不进行具体的限定。
70.进一步的,在对待调整分块进行整体旋转后,终端设备执行步骤s206,即基于第一纹理标识确定第二纹理集合所包含的纹理点的变形调整模式。
71.具体的,终端设备首先获取范围影响因子,然后,基于第一纹理标识确定当前主序点在预设控制表中的当前目标行号,并基于范围影响因子及当前目标行号确定多个行号范围,最后,基于第二纹理集合所包含的纹理点的行号范围确定第二纹理集合所包含的纹理
点的变形调整模式。其中,预设控制表中处于不同的行号范围内的纹理点对应不同的变形调整模式。
72.需要说明的是,上述的范围影响因子可根据实际经验来确定,例如,上述范围影响因子可以为5。设置上述的范围影响因子可减少每次迭代需要计算的纹理点数量,从而提高系统的运算性能,还可避免在计算c型的虚拟模型一端的纹理点时,使另一端的纹理点受到影响的问题,从而提升了虚拟模型的变形调整效果。
73.可选的,在获取到范围影响因子之后,终端设备计算当前目标行号与范围影响因子之间的差值,得到第一行号,并计算当前目标行号与范围影响因子之和,得到第二行号,然后,基于第一行号以及第二行号确定第一行号范围、第二行号范围以及第三行号范围,其中,第一行号范围的最大行号小于第一行号,第二行号范围的最小行号为第一行号,第二行号范围的最大行号为第二行号,第三行号范围的最小行号大于第二行号。
74.例如,范围影响因子为r,当前目标行号为i,则第一行号为i-r,第二行号为i+r,第一行号范围为小于i-r;第二行号范围为大于或等于i-r,并且,小于或等于i+r;第三行号范围为大于i+r。
75.可选的,在当前纹理点对应的行号处于第一行号范围内时,禁止调整当前纹理点。即在当前纹理点在预设控制表中的行号小于i-r时,该当前纹理点无需变形调整。
76.需要说明的是,在当前纹理点对应的行号处于第三行号范围内时,直接按照第一角度γ旋转纹理点不仅可以节省系统的计算时间,还可避免c型的待调整分块在对其中一端进行计算,使用另一端的纹理点的相关信息,从而导致变形调整后的纹理分块存在扭曲的问题。
77.可选的,在当前纹理点对应的行号处于第二行号范围内时,基于第一参考坐标系与第二参考坐标系生成纹理权重值,并基于纹理权重值确定当前纹理点的目标旋转角度。其中,第一参考坐标系中第一轴的正方向与第二参考坐标系中第一轴的正方向不同。
78.需要说明的是,在该场景中,又可分为六种子场景,每种子场景所对应的纹理权重值的计算方式不同。在得到纹理权重值之后,计算纹理权重值与预设角度的乘积,即可得到当前纹理点所对应的目标旋转角度。
79.可选的,在当前纹理点对应的行号处于第三行号范围内时,以第一参考坐标系的原点为轴心,将当前纹理点旋转第一角度。
80.在该场景中,终端设备从预设控制表中获取行号大于i+r的行中所记录的所有纹理点以及所有行号大于i的主序点,并以第一参考坐标系原点为轴心,旋转角度γ(即上述第一角度),其中,在γ》0时,逆时针旋转;在γ《0时,顺时针旋转。
81.终端设备可在第一参考坐标系下计算上述的第一角度。
82.具体的,在获取当前主序点的前一主序点的第三纹理坐标,以及当前主序点的下一主序点的第四纹理坐标之后,终端设备基于第三纹理坐标及第一纹理坐标确定第一向量,并基于第四纹理坐标及第一纹理坐标确定第二向量,然后再计算第一向量与第二向量之间的夹角,从而得到第一角度。其中,当前主序点在预设控制表中的行号大于1,第一向量指向第三纹理坐标,第二向量指向第四纹理坐标。
83.另外,终端设备可以以第一纹理坐标为原点创建第一参考坐标系和第二参考坐标系,其中,第一参考坐标系中第一轴的正方向为第一向量所指向的方向,第二参考坐标系中
第一轴的正方向为第二向量所指向的方向。
84.可选的,终端设备从预设控制表中的第2个主序点开始,记当前主序点为m
uvi
,以之为坐标原点创建第一参考坐标系和第二参考坐标系,其中,第一参考坐标系的x轴正向指向前一主序点m
uv(i-1)
,如图7所示;第二参考坐标系的x轴正向指向后一主序点m
uv(i+1)
,如图8所示。如图9所示,获取与之间的夹角,即可得到α,令γ=180-α,从而得到第一角度γ。
85.在一种可选的实施例中,在当前纹理点对应的行号处于第二行号范围内时,终端设备确定在多个预设角度区间中,当前纹理点所对应的目标角度区间;然后,基于目标角度区间确定纹理权重值所对应的目标计算模式,并确定目标计算模式所对应的权重值,得到纹理权重值。其中,多个预设角度区间是基于当前纹理点与第一参考坐标系的原点之间的连线,与第一参考坐标系的第一方向之间的第二角度所确定的。
86.在上述过程中,第二角度为纹理点与第一参考坐标系的原点的连线,与第一参考坐标系的x轴正向之间的夹角,多个预设角度区间可基于第一角度γ来确定,其中,基于第一角度可计算出四个分割角度,基于这四个分割角度可将以当前纹理点为原点的坐标系划分为6个区间(即上述预设角度区间)。对于不同的预设角度区间,其对应的纹理权重值的计算方式不同。
87.即在确定在多个预设角度区间中,当前纹理点所对应的目标角度区间之前,终端设备基于第一角度生成第一参数值及第二参数值,然后,基于第一参数值、第二参数值以及第一角度生成多个预设角度,并基于多个预设角度生成多个预设角度区间。其中,第一参数值与第二参数值之和为固定值。
88.可选的,终端设备从预设控制表中获取行号大于i-r并且小于i+r的所有纹理点,把每个纹理点与原点的连线和第一参考坐标系的x轴正向的夹角记为β,然后根据β的角度和4个分割角度的关系以当前纹理点为原点划分为6个集合(即上述的预设角度区间)。
89.令第一参数值第二参数值则当γ》0时,ξ=1,τ=0;当γ《0时,ξ=0,τ=1,即无论γ大于0,还是小于0,第一参数值与第二参数值之和为1。上述的多个预设角度(即分割角度)可以记为θ1、θ2、θ3、θ4,其中,θ1、θ2、θ3、θ4分别满足下式:
90.θ1=(270-180*ξ-γ*ξ)
91.θ2=(270-180*ξ-γ*τ)
92.θ3=(270-180*τ-γ(ξ)
93.θ4=(270-180*ξ-γ*τ)
94.其中,第一预设角度区间为:[(θ2*τ),(θ1*ξ+360τ)],在该角度区间内的纹理点记为第1集合;第二预设角度区间为:(θ1,θ2),在该角度区间内的纹理点记为第2集合;第三预设角度区间为:[(ξ*θ2+τ*α),(ξ*α+τ*θ1)],在该角度区间内的纹理点记为第3集合;第四预设角度区间为:((ξ*α+τ*θ4),(ξ*θ3+τ*α)],在该角度区间内的纹理点记为第4集合;第五预设角度区间为:(θ3,θ4),在该角度区间内的纹理点记为第5集合;第六预设角度区间为:[θ4,(θ2*τ)],在该角度区间内的纹理点记为第6集合。
[0095]
需要说明的是,通过设置第一参数值ξ和第二参数值τ,可避免γ本身大于0或小于0导致第1、2、3集合位于第一参考系的x轴不同侧的问题,进而保证了第1、2、3集合的纹理点
与m
uv(i+1)
位于第一参考坐标系的x轴的同侧。如图10所示的γ>0的第一参考坐标系的示意图以及如图11所示的γ<0的第一参考坐标系的示意图,第1、2、3集合的纹理点与m
uv(i+1)
位于第一参考坐标系的x轴的同侧。其中,图10和11中的区间1至区间6分别对应上述的第一预设角度区间至第六预设角度区间。
[0096]
需要说明的是,在确定了纹理权重值的情况下,终端设备可通过计算纹理权重值与第一角度的乘积来得到目标旋转角度。即目标旋转角度δ满足下式:
[0097]
δ=γ*s
[0098]
在上式中,γ为第一角度;s为纹理权重值。
[0099]
对于当前纹理点所在预设角度区间的不同,其对应的纹理权重值的计算方式也不相同。在说明不同预设角度区间所对应的纹理权重值的计算方式之前,需进行如下限定:
[0100]
主序点m
uv(i+1)
在第二参考坐标系中的坐标x值,记为x
(i+1)
;主序点m
uv(i-1)
在第一参考坐标系中的坐标x值,记为x
(i-1)
;主序点m
uvi
点在第一参考坐标系和第二参考坐标系的坐标x值的加成权重
[0101]
另外,当前纹理点p在第二参考坐标系中的坐标x值,记为d
(i+1)
;当前纹理点p在第一参考坐标系中的坐标x值,记为d
(i-1)
,则第一权重值第二权重值其中,r1表示后一子主序边对当前纹理点p的影响权重,r2表示前一子主序边对当前纹理点p点的影响权重,r
p
表示r1与r2对当前纹理点p的权重影响的比例系数。
[0102]
场景1:若当前纹理点p属于第1集合,则δ通过下式表示:
[0103]
δ=s*γ=r2*ψ*γ
[0104]
在上式中,纹理权重值s=r2*ψ。在该式中,当前纹理点p的坐标x值越接近m
uv(i-1)
,则其加成权重越接近0;若当前纹理点p的坐标x值越接近m
uvi
,则其加成权重越接近ψ。
[0105]
场景2:若当前纹理点p属于第2集合,则δ通过下式表示:
[0106]
δ=s*γ={[(1-ψ)*r1+ψ]*r
p
+[r2*ψ*(1-r
p
)]}*γ,
[0107]
在上式中,纹理权重值s=[(1-ψ)*r1+ψ]*r
p
+[r2*ψ*(1-r
p
)]。其中,在γ>0时,δ∈[0,γ];在γ<0时,δ∈[γ,0]。
[0108]
需要说明的是,由于第2集合的纹理点的x坐标位于第一参考坐标系与第二参考坐标系的x轴正向,因此,可通过场景1的权重计算方式和场景3权重计算方式相结合的方式计算纹理权重值,并以r
p
调整两种算法所得权重的比例。其中,β越偏向第一预设角度区间,则通过场景1的权重计算方式计算得到的权重越大;β越偏向第三预设角度区间,则通过场景3的权重计算方式计算得到的权重越大。最后,终端设备综合上述两种方式的权重得到当前纹理点p的加成权重。在计算后δ的值超出主序点旋转角度时,将该δ限定至主序点旋转角度范围内。
[0109]
场景3:若当前纹理点p属于第3集合,则δ通过下式表示:
[0110]
δ=s*γ=[(1-ψ)*r1+ψ]*γ
[0111]
在上式中,纹理权重值s=(1-ψ)*r1+ψ。在该式中,当前纹理点p在第二参考坐标系
中的坐标x值越接近m
uv(i+1)
,则其加成权重越接近1;若当前纹理点p的坐标x值越接近m
uvi
,则其加成权重越接近ψ。
[0112]
场景4:若当前纹理点p属于第4集合,则δ通过下式表示:
[0113][0114]
在上式中,纹理权重值
[0115]
需要说明的是,由于第五预设角度区间中的纹理点在两个参考坐标系中的坐标x值均为负,如果继续沿用第一预设角度区间和第三预设角度区间的线性算法,则会使第五预设角度区间内的纹理点在旋转后与第四预设角度区间和第六预设角度区间内的纹理点交叉,因此,在本实施例中,以整体角度变化计算第五预设角度区间的权重。整体上将第四预设角度区间、第五预设角度区间、第六预设角度区间三个角度区间合共180+|γ|的角度压缩至180度,因此,按照上述三个角度区间所占比例计算出第五预设角度区间与两个相邻角度区间边界处的权重,作为第四预设角度区间和第六预设角度区间边界的权重。如此则有,第四预设角度区间与第五预设角度区间边界的权重为第五预设角度区间与第六预设角度区间的边界的权重为计算出边界的权重后,在第四预设角度区间内继续沿用第二参坐标系的坐标x值与权重的线性关系,从边界处线性过渡至d
(i+1)
=x
(i+1)
的1即可。
[0116]
场景5:若当前纹理点p属于第5集合,则δ通过下式表示:
[0117][0118]
在上式中,纹理权重值在该式中,直接按照角度占比计算变化的权重,越接近第四预设角度区间和第五预设角度区间的边界,其权重越接近越接近第五预设角度区间、第六预设角度区间的边界,其权重越接近
[0119]
场景6:若当前纹理点p属于第6集合,则δ通过下式表示:
[0120][0121]
在上式中,纹理权重值与第四预设角度区间类似,第六预设角度区间继续沿用第一参坐标系的坐标x值与权重的线性关系,从边界处d
(i-1)
=0的线性过渡至d
(i-1)
=x
(i-1)
的0即可。
[0122]
以上各预设角度区间的算法的设计原则,均能够减少拉直纹理分块后所存在的变
形,令主序边两侧的纹理点在主序边拉直后尽量保持其与主序边位置的相对稳定。
[0123]
另外,为了保持坐标x值比较接近前后主序点m
uv(i-u)
和m
uv(i+1)
,但距离主序边比较远的纹理点与主序边的位置关系,在本实施例中,在第一预设角度区间、第三预设角度区间、第四预设角度区间、第六预设角度区间内部不直接使用β角度作为权重计算依据,而使用第一参考坐标系和第二参考坐标系的坐标x值。
[0124]
需要说明的是,遍历第一纹理集合内的主序点,重复执行上述的纹理点的变形调整方法,直至完成对倒数第2个主序点的操作,即可得到如图4所示的变形调整后的虚拟模型。
[0125]
此外,本实施例所提供的方案可适用于所有纹理分块,无论所选择的主序边如何扭曲,均可在逐步旋转拉直主序边的同时,对每条边两侧的纹理点进行适当的同步旋转,使用分区分算法的方案确保旋转后纹理点不会在局部区域产生过度密集或稀疏,或者大幅改变与主序边距离等情况,从而保证了纹理模块的变形调整效果。
[0126]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本公开各个实施例所述的方法。
[0127]
在本实施例中还提供了一种虚拟模型的调整装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0128]
图12是根据本公开其中一实施例的虚拟模型的调整装置的结构框图,如图12所示,该装置包括:获取模块1201、识别模块1203、确定模块1205以及调整模块1207。
[0129]
其中,获取模块1201,用于获取构成待调整模型的至少一个待调整分块,其中,待调整分块为待调整模型在纹理空间中展开所得到的多个纹理分块中的任意一个纹理分块;识别模块1203,用于确定位于待调整分块上的主序边,并识别主序边上的当前主序点的纹理标识,得到第一纹理标识,其中,主序边为待调整分块中的多个连续边中的任意一个连续边,当前主序点为主序边上的纹理点;确定模块1205,用于基于第一纹理标识确定第二纹理集合所包含的纹理点的变形调整模式,其中,第二纹理点集合由待调整分块中除主序边上的主序点之外的纹理点组成;调整模块1207,用于基于变形调整模式对第二纹理集合所包含的纹理点进行变形调整,得到调整后的虚拟模型。
[0130]
可选的,虚拟模型的调整装置还包括:第一确定模块、排序模块以及存储模块。其中,第一确定模块,用于在获取待调整分块之后,确定主序边的起始位置;排序模块,用于基于起始位置对第一纹理点集合进行排序,得到排序结果,其中,第一纹理点集合由主序边上的所有主序点组成;存储模块,用于按照排序结果将第一纹理点集合所包含的主序点的纹理标识存储至预设控制表的目标列中。
[0131]
可选的,虚拟模型的调整装置还包括:遍历模块、第二确定模块、第一获取模块、检测模块以及第一更新模块。其中,遍历模块,用于遍历第二纹理点集合,确定当前纹理点;第
二确定模块,用于从待调整分块中确定当前纹理点所对应的邻边,其中,邻边至少包括当前纹理点所在的线段;第一获取模块,用于获取邻边所对应的邻点,得到第三纹理点集合,其中,邻点为邻边的端点;检测模块,用于检测第三纹理点集合属于第一纹理点集合的纹理点的纹理点数量;第一更新模块,用于根据纹理点数量对预设控制表进行更新。
[0132]
可选的,第一更新模块包括:第三确定模块、第四确定模块以及第五确定模块。其中,第三确定模块,用于在纹理点数量为预设阈值时,确定当前纹理点所对应的目标主序点,并在预设控制表中的第一目标行中添加当前纹理点的纹理标识,其中,第一目标行为目标主序点在预设控制表中所在的行;第四确定模块,用于在纹理点数量大于预设阈值时,确定当前纹理点所对应的多个主序点,并计算多个主序点在预设控制表中的行号的平均值,根据平均值确定第二目标行,然后在第二目标行中添加当前纹理点的纹理标识;第五确定模块,用于在纹理点数量小于预设阈值时,遍历第二纹理集合,确定当前纹理点,并基于当前纹理点确定第三纹理点集合,直至纹理点数量大于或等于预设阈值。
[0133]
可选的,第四确定模块包括:第六确定模块以及第七确定模块。其中,第六确定模块,用于在平均值为整数时,确定行号为平均值的行为第二目标行;第七确定模块,用于在平均值为非整数时,获取与平均值相邻的两个整数,确定两个整数所对应的行为第二目标行。
[0134]
可选的,虚拟模型的调整装置还包括:第八确定模块、第九确定模块、第十确定模块以及旋转模块。其中,第八确定模块,用于在确定位于主序边上的当前主序点的纹理坐标,得到第一纹理坐标之前,按照排序结果从主序边中确定第一主序点以及第一主序点的下一主序点,其中,第一主序点为主序边的第一个纹理点;第九确定模块,用于确定第一主序点与下一主序点之间的子主序边;第十确定模块,用于确定子主序边与第一方向之间的夹角,得到第一夹角;旋转模块,用于基于第一夹角,以第一主序点为轴,对待调整分块进行旋转操作,得到旋转后的待调整分块。
[0135]
可选的,确定模块包括:第二获取模块、第十一确定模块、第十二确定模块以及第十三确定模块。其中,第二获取模块,用于获取范围影响因子;第十一确定模块,用于基于第一纹理标识确定当前主序点在预设控制表中的当前目标行号;第十二确定模块,用于基于范围影响因子及当前目标行号确定多个行号范围,其中,预设控制表中处于不同的行号范围内的纹理点对应不同的变形调整模式;第十三确定模块,用于基于第二纹理集合所包含的纹理点的行号范围确定第二纹理集合所包含的纹理点的变形调整模式。
[0136]
可选的,第十二确定模块包括:第一计算模块以及第十四确定模块。其中,第一计算模块,用于计算当前目标行号与范围影响因子之间的差值,得到第一行号,并计算当前目标行号与范围影响因子之和,得到第二行号;第十四确定模块,用于基于第一行号以及第二行号确定第一行号范围、第二行号范围以及第三行号范围,其中,第一行号范围的最大行号小于第一行号,第二行号范围的最小行号为第一行号,第二行号范围的最大行号为第二行号,第三行号范围的最小行号大于第二行号。
[0137]
可选的,第十三确定模块包括:第一处理模块、第二处理模块以及第三处理模块。其中,第一处理模块,用于在当前纹理点对应的行号处于第一行号范围内时,禁止调整当前纹理点;第二处理模块,用于在当前纹理点对应的行号处于第二行号范围内时,基于第一参考坐标系与第二参考坐标系生成纹理权重值,并基于纹理权重值确定当前纹理点的目标旋
转角度,其中,第一参考坐标系中第一轴的正方向与第二参考坐标系中第一轴的正方向不同;第三处理模块,用于在当前纹理点对应的行号处于第三行号范围内时,以第一参考坐标系的原点为轴心,将当前纹理点旋转第一角度。
[0138]
可选的,虚拟模型的调整装置还包括:第三获取模块、第十五确定模块、第十六确定模块以及第二计算模块。其中,第三获取模块,用于获取当前主序点的前一主序点的第三纹理坐标,以及当前主序点的下一主序点的第四纹理坐标,其中,当前主序点在预设控制表中的行号大于1;第十五确定模块,用于基于第三纹理坐标及第一纹理坐标确定第一向量,其中,第一向量指向第三纹理坐标;第十六确定模块,用于基于第四纹理坐标及第一纹理坐标确定第二向量,其中,第二向量指向第四纹理坐标;第二计算模块,用于计算第一向量与第二向量之间的夹角,得到第一角度。
[0139]
可选的,虚拟模型的调整装置还包括:创建模块,用于以第一纹理坐标为原点创建第一参考坐标系和第二参考坐标系,其中,第一参考坐标系中第一轴的正方向为第一向量所指向的方向,第二参考坐标系中第一轴的正方向为第二向量所指向的方向。
[0140]
可选的,第二处理模块包括:第十七确定模块、第十八确定模块以及第十九确定模块。其中,第十七确定模块,用于确定在多个预设角度区间中,当前纹理点所对应的目标角度区间,其中,多个预设角度区间是基于当前纹理点与第一参考坐标系的原点之间的连线,与第一参考坐标系的第一方向之间的第二角度所确定的;第十八确定模块,用于基于目标角度区间确定纹理权重值所对应的目标计算模式;第十九确定模块,用于确定目标计算模式所对应的权重值,得到纹理权重值。
[0141]
可选的,第二处理模块包括:第三计算模块,用于计算纹理权重值与第一角度的乘积,得到目标旋转角度。
[0142]
可选的,虚拟模型的调整装置还包括:第一生成模块、第二生成模块以及第三生成模块。其中,第一生成模块,用于在确定在多个预设角度区间中,当前纹理点所对应的目标角度区间之前,基于第一角度生成第一参数值及第二参数值,其中,第一参数值与第二参数值之和为固定值;第二生成模块,用于基于第一参数值、第二参数值以及第一角度生成多个预设角度;第三生成模块,用于基于多个预设角度生成多个预设角度区间。
[0143]
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
[0144]
本公开的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一方法实施例中的步骤。
[0145]
可选地,在本实施例中,上述非易失性存储介质可以包括但不限于:u盘、只读存储器(read-only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
[0146]
可选地,在本实施例中,上述非易失性存储介质可以位于计算机网络中计算机终端中的任意一个计算机终端中,或者位于移动终端中的任意一个移动终端中。
[0147]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个计算机
可读存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
[0148]
在本技术的示例性实施例中,计算机可读存储介质上存储有能够实现本实施例上述方法的程序产品。在一些可能的实施方式中,本公开实施例的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本实施例上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
[0149]
根据本公开的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开实施例的程序产品不限于此,在本公开实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0150]
上述程序产品可以采用一个或多个计算机可读介质的任意组合。该计算机可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列举)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0151]
需要说明的是,计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
[0152]
本公开的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一方法实施例中的步骤。
[0153]
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
[0154]
图13是根据本公开实施例的一种电子装置的示意图。如图13所示,电子装置1300仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0155]
如图13所示,电子装置1300以通用计算设备的形式表现。电子装置1300的组件可以包括但不限于:上述至少一个处理器1310、上述至少一个存储器1320、连接不同系统组件(包括存储器1320和处理器1310)的总线1330和显示器1340。
[0156]
其中,上述存储器1320存储有程序代码,所述程序代码可以被处理器1310执行,使得处理器1310执行本技术实施例的上述方法部分中描述的根据本公开各种示例性实施方式的步骤。
[0157]
存储器1320可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)13201和/或高速缓存存储单元13202,还可以进一步包括只读存储单元(rom)13203,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。
[0158]
在一些实例中,存储器1320还可以包括具有一组(至少一个)程序模块13205的程序/实用工具13204,这样的程序模块13205包括但不限于:操作系统、一个或者多个应用程
序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。存储器1320可进一步包括相对于处理器1310远程设置的存储器,这些远程存储器可以通过网络连接至电子装置1300。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0159]
总线1330可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理器1310或者使用多种总线结构中的任意总线结构的局域总线。
[0160]
显示器1340可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与电子装置1300的用户界面进行交互。
[0161]
可选地,电子装置1300也可以与一个或多个外部设备1400(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子装置1300交互的设备通信,和/或与使得该电子装置1300能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口1350进行。并且,电子装置1300还可以通过网络适配器1360与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图13所示,网络适配器1360通过总线1330与电子装置1300的其它模块通信。应当明白,尽管图13中未示出,可以结合电子装置1300使用其它硬件和/或软件模块,可以包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0162]
上述电子装置1300还可以包括:键盘、光标控制设备(如鼠标)、输入/输出接口(i/o接口)、网络接口、电源和/或相机。
[0163]
本领域普通技术人员可以理解,图13所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子装置1300还可包括比图13中所示更多或者更少的组件,或者具有与图13所示不同的配置。存储器1320可用于存储计算机程序及对应的数据,如本公开实施例中的虚拟模型的调整方法对应的计算机程序及对应的数据。处理器1310通过运行存储在存储器1320内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的虚拟模型的调整方法。
[0164]
上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
[0165]
在本公开的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0166]
在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0167]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0168]
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以
是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0169]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0170]
以上所述仅是本公开的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本公开原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本公开的保护范围。

技术特征:


1.一种虚拟模型的调整方法,其特征在于,所述方法包括:获取构成待调整模型的至少一个待调整分块,其中,所述待调整分块为所述待调整模型在纹理空间中展开所得到的多个纹理分块中的任意一个纹理分块;确定位于所述待调整分块上的主序边,并识别所述主序边上的当前主序点的纹理标识,得到第一纹理标识,其中,所述主序边为所述待调整分块中的多个连续边中的任意一个连续边,所述当前主序点为所述主序边上的纹理点;基于所述第一纹理标识确定第二纹理集合所包含的纹理点的变形调整模式,其中,所述第二纹理点集合由所述待调整分块中除所述主序边上的主序点之外的纹理点组成;基于所述变形调整模式对所述第二纹理集合所包含的纹理点进行变形调整,得到调整后的虚拟模型。2.根据权利要求1所述的方法,其特征在于,在获取待调整分块之后,所述方法还包括:确定所述主序边的起始位置;基于所述起始位置对第一纹理点集合进行排序,得到排序结果,其中,所述第一纹理点集合由所述主序边上的所有主序点组成;按照所述排序结果将所述第一纹理点集合所包含的主序点的纹理标识存储至预设控制表的目标列中。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:遍历所述第二纹理点集合,确定当前纹理点;从所述待调整分块中确定所述当前纹理点所对应的邻边,其中,所述邻边至少包括所述当前纹理点所在的线段;获取所述邻边所对应的邻点,得到第三纹理点集合,其中,所述邻点为所述邻边的端点;检测所述第三纹理点集合属于所述第一纹理点集合的纹理点的纹理点数量;根据所述纹理点数量对所述预设控制表进行更新。4.根据权利要求3所述的方法,其特征在于,根据所述纹理点数量对所述预设控制表进行更新,包括:在所述纹理点数量为预设阈值时,确定所述当前纹理点所对应的目标主序点,并在所述预设控制表中的第一目标行中添加所述当前纹理点的纹理标识,其中,所述第一目标行为所述目标主序点在所述预设控制表中所在的行;在所述纹理点数量大于所述预设阈值时,确定所述当前纹理点所对应的多个主序点,并计算所述多个主序点在所述预设控制表中的行号的平均值,根据所述平均值确定第二目标行,然后在所述第二目标行中添加所述当前纹理点的纹理标识;在所述纹理点数量小于所述预设阈值时,遍历所述第二纹理集合,确定所述当前纹理点,并基于所述当前纹理点确定所述第三纹理点集合,直至所述纹理点数量大于或等于所述预设阈值。5.根据权利要求4所述的方法,其特征在于,根据所述平均值确定第二目标行,包括:在所述平均值为整数时,确定行号为所述平均值的行为所述第二目标行;在所述平均值为非整数时,获取与所述平均值相邻的两个整数,确定所述两个整数所对应的行为所述第二目标行。
6.根据权利要求3所述的方法,其特征在于,在确定位于主序边上的当前主序点的纹理坐标,得到第一纹理坐标之前,所述方法还包括:按照所述排序结果从所述主序边中确定第一主序点以及所述第一主序点的下一主序点,其中,所述第一主序点为所述主序边的第一个纹理点;确定所述第一主序点与所述下一主序点之间的子主序边;确定所述子主序边与第一方向之间的夹角,得到第一夹角;基于所述第一夹角,以所述第一主序点为轴,对所述待调整分块进行旋转操作,得到旋转后的待调整分块。7.根据权利要求6所述的方法,其特征在于,基于所述第一纹理标识确定第二纹理集合所包含的纹理点的变形调整模式,包括:获取范围影响因子;基于所述第一纹理标识确定所述当前主序点在所述预设控制表中的当前目标行号;基于所述范围影响因子及所述当前目标行号确定多个行号范围,其中,所述预设控制表中处于不同的行号范围内的纹理点对应不同的变形调整模式;基于所述第二纹理集合所包含的纹理点的行号范围确定所述第二纹理集合所包含的纹理点的变形调整模式。8.根据权利要求7所述的方法,其特征在于,基于所述范围影响因子及所述当前目标行号确定多个行号范围,包括:计算所述当前目标行号与所述范围影响因子之间的差值,得到第一行号,并计算所述当前目标行号与所述范围影响因子之和,得到第二行号;基于所述第一行号以及所述第二行号确定第一行号范围、第二行号范围以及第三行号范围,其中,所述第一行号范围的最大行号小于所述第一行号,所述第二行号范围的最小行号为所述第一行号,所述第二行号范围的最大行号为所述第二行号,所述第三行号范围的最小行号大于所述第二行号。9.根据权利要求8所述的方法,其特征在于,基于所述第二纹理集合所包含的纹理点的行号范围确定所述第二纹理集合所包含的纹理点的变形调整模式,包括:在所述当前纹理点对应的行号处于所述第一行号范围内时,禁止调整所述当前纹理点;在所述当前纹理点对应的行号处于所述第二行号范围内时,基于第一参考坐标系与第二参考坐标系生成纹理权重值,并基于所述纹理权重值确定所述当前纹理点的目标旋转角度,其中,所述第一参考坐标系中第一轴的正方向与所述第二参考坐标系中第一轴的正方向不同;在所述当前纹理点对应的行号处于所述第三行号范围内时,以所述第一参考坐标系的原点为轴心,将所述当前纹理点旋转第一角度。10.根据权利要求9所述的方法,其特征在于,所述方法还包括:获取所述当前主序点的前一主序点的第三纹理坐标,以及所述当前主序点的下一主序点的第四纹理坐标,其中,所述当前主序点在所述预设控制表中的行号大于1;基于所述第三纹理坐标及所述第一纹理坐标确定第一向量,其中,所述第一向量指向所述第三纹理坐标;
基于所述第四纹理坐标及所述第一纹理坐标确定第二向量,其中,所述第二向量指向所述第四纹理坐标;计算所述第一向量与所述第二向量之间的夹角,得到所述第一角度。11.根据权利要求10所述的方法,其特征在于,所述方法还包括:以所述第一纹理坐标为原点创建所述第一参考坐标系和所述第二参考坐标系,其中,所述第一参考坐标系中第一轴的正方向为所述第一向量所指向的方向,所述第二参考坐标系中第一轴的正方向为所述第二向量所指向的方向。12.根据权利要求10所述的方法,其特征在于,基于第一参考坐标系与第二参考坐标系生成纹理权重值,包括:确定在多个预设角度区间中,第一纹理点所述当前纹理点所对应的目标角度区间,其中,所述多个预设角度区间是基于所述当前纹理点与所述第一参考坐标系的原点之间的连线,与所述第一参考坐标系的第一方向之间的第二角度所确定的;基于所述目标角度区间确定所述纹理权重值所对应的目标计算模式;确定所述目标计算模式所对应的权重值,得到所述纹理权重值。13.根据权利要求12所述的方法,其特征在于,基于所述纹理权重值确定所述当前纹理点的目标旋转角度,包括:计算所述纹理权重值与所述第一角度的乘积,得到所述目标旋转角度。14.根据权利要求12所述的方法,其特征在于,在确定在多个预设角度区间中,所述当前纹理点所对应的目标角度区间之前,所述方法还包括:基于所述第一角度生成第一参数值及第二参数值,其中,所述第一参数值与所述第二参数值之和为固定值;基于所述第一参数值、所述第二参数值以及所述第一角度生成多个预设角度;基于所述多个预设角度生成所述多个预设角度区间。15.一种虚拟模型的调整装置,其特征在于,所述装置包括:获取模块,用于获取构成待调整模型的至少一个待调整分块,其中,所述待调整分块为所述待调整模型在纹理空间中展开所得到的多个纹理分块中的任意一个纹理分块;识别模块,用于确定位于所述待调整分块上的主序边,并识别所述主序边上的当前主序点的纹理标识,得到第一纹理标识,其中,所述主序边为所述待调整分块中的多个连续边中的任意一个连续边,所述当前主序点为所述主序边上的纹理点;确定模块,用于基于所述第一纹理标识确定第二纹理集合所包含的纹理点的变形调整模式,其中,所述第二纹理点集合由所述待调整分块中除所述主序边上的主序点之外的纹理点组成;调整模块,用于基于所述变形调整模式对所述第二纹理集合所包含的纹理点进行变形调整,得到调整后的虚拟模型。16.一种计算机可读存储介质,其特征在于,计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为被处理器运行时执行权利要求1至14中任一项中所述的虚拟模型的调整方法。17.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至14中任一项中所述的虚
拟模型的调整方法。

技术总结


本公开公开了一种虚拟模型的调整方法、装置、存储介质及电子装置。该方法包括:获取待调整分块,待调整分块为待调整模型在纹理空间中展开所得到的多个纹理分块中的任意一个纹理分块;确定主序边上的当前主序点的纹理标识,得到第一纹理标识,主序边为待调整分块中的多个连续边中的任意一个连续边,当前主序点为主序边上的纹理点;基于第一纹理标识确定第二纹理集合所包含的纹理点的变形调整模式,第二纹理点集合由待调整分块中除主序边上的主序点之外的纹理点组成;基于变形调整模式对第二纹理集合所包含的纹理点进行变形调整,得到调整后的虚拟模型。本公开解决了相关技术中,对虚拟模型进行变形所存在的部分模型发生扭曲的技术问题。技术问题。技术问题。


技术研发人员:

关耀荣

受保护的技术使用者:

网易(杭州)网络有限公司

技术研发日:

2022.08.22

技术公布日:

2022/12/22

本文发布于:2024-09-21 11:20:21,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/46842.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:纹理   行号   所述   角度
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议