CN114022603B - 一种图形处理方法、装置及电子设备 - Google Patents
一种图形处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN114022603B CN114022603B CN202111340648.XA CN202111340648A CN114022603B CN 114022603 B CN114022603 B CN 114022603B CN 202111340648 A CN202111340648 A CN 202111340648A CN 114022603 B CN114022603 B CN 114022603B
- Authority
- CN
- China
- Prior art keywords
- polygon
- layer
- polygons
- layers
- barrel
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本公开涉及一种图形处理方法、装置及电子设备,属于图像信息处理技术领域。图形处理方法包括:获取至少两层多边形图形的第一图形信息;至少两层多边形图形中的每一层多边形之间具有嵌套关系,每一层多边形包括至少一个多边形;根据第一图形信息,对至少两层多边形图形进行转换处理,得到一层多边形图形的第二图形信息,一层多边形图形为不具有嵌套关系的一个平面多边形图形;根据第二图形信息,得到目标一层多边形图形;根据目标一层多边形图形,对虚拟场景中目标对象进行渲染处理,得到目标对象的渲染处理结果。本公开可实现多边形图形的快速处理,提高目标对象的渲染效率。
Description
技术领域
本公开属于图像信息处理技术领域,具体涉及一种图形处理方法、装置及电子设备。
背景技术
UE4(虚幻引擎)中绘制多边形的方式为三角剖分,若多边形含有内环,则需要引入CGAL(Computational Geometry Algorithms Library,计算几何算法库)和GDAL(Geospatial Data Abstraction Library,开源栅格空间数据转换库)来辅助运算;但引入CGAL和GDAL进行辅助运算可能会加重引擎负担,降低运算速率,同时很难对运算过程中的内存进行管理,现有技术中,对多边形的处理效率低。
发明内容
本公开实施例的目的是提供一种图形处理方法、装置及电子设备,解决现有多边形处理算法对多边形的处理效率低的问题。
第一方面,本公开实施例提供了一种图形处理方法,该方法包括:
获取至少两层多边形图形的第一图形信息;两层多边形图形中的每一层多边形之间具有嵌套关系,每一层多边形包括至少一个多边形;
根据第一图形信息,对至少两层多边形图形进行转换处理,得到一层多边形图形的第二图形信息,一层多边形图形为不具有嵌套关系的一个平面多边形图形;
根据第二图形信息,得到目标一层多边形图形;
根据目标一层多边形图形,对虚拟场景中目标对象进行渲染处理,得到目标对象的渲染处理结果。
可选地,获取至少两层多边形图形的第一图形信息,包括:
获取至少两层多边形图形的各个多边形的顶点在预设坐标系中的坐标信息。
可选地,根据第一图形信息,对至少两层多边形图形转换处理,得到一层多边形图形的第二图形信息,包括:
根据第一图形信息,对至少两层多边形图形中的任意两个多边形进行处理,建立两个多边形之间的辅助线;
按顺序遍历辅助线以及至少两层多边形图形中所有多边形的顶点,得到一层多边形图形的第二图形信息,第二图形信息包括:按顺序排列的一层多边形图形的顶点坐标。
可选地,根据第一图形信息,对至少两层多边形图形中的任意两个多边形进行处理,建立两个多边形之间的辅助线,包括:
根据第一图形信息,计算至少两层多边形图形中第一多边形的任意一顶点与第二多边形的任意一顶点之间的距离,得到多个距离值;
将多个距离值中最短的距离值对应的两个顶点连接,形成第一多边形与第二多边形之间的辅助线;直到两层多边形图形中的所有多边形之间的辅助线建立完成;辅助线与第一多边形和第二多边形的边没有交叉,且与已经建立的辅助线没有交叉。
可选地,按顺序遍历辅助线以及至少两层多边形图形中所有多边形的顶点,得到一层多边形图形的第二图形信息,包括:
将具有辅助线的两个多边形成一个桶,得到多个多边形桶;
将多个多边形桶进行合并处理,得到目标桶;
按顺序输出目标桶中的所有多边形的顶点,得到一层多边形图形的第二图形信息。
可选地,将多个多边形桶进行合并处理,得到目标桶,包括:
若多个多边形桶中的第一桶中的多边形与第二桶中的多边形完全相同,则删除第一桶和第二桶中的任意一个桶,得到当前中间桶;
若多个多边形桶中的第一桶中的多边形与第二桶中的多边形不完全相同,则将第一桶和第二桶合并,得到当前中间桶;
将当前中间桶中的多边形与下一个多边形桶中的多边形进行是否完全相同的判断,直到遍历所有多边形桶,得到目标桶。
可选地,按顺序输出目标桶中的所有多边形的顶点,得到一层多边形图形的第二图形信息,包括:
对目标桶中的所有多边形,按顺序遍历所有多边形的顶点,若当前顶点没有辅助线,按顺序遍历多边形的下一个顶点;
若当前顶点有辅助线,且辅助线为一条,按照辅助线前进至连接辅助线的下一个多边形进行顶点遍历;
若当前顶点有辅助线且辅助线为N条,获得基线与N条辅助线以及从当前顶点出发的各条边之间的夹角,按照夹角的大小顺序进行遍历,重置遍历的前进方向为最小夹角对应的辅助线或者边,进入辅助线连接的下一个多边形;直到所有多边形的顶点遍历完毕,得到一层多边形图形的第二图形信息,N为大于1的整数,第二图形信息包括:所有多边形的顶点遍历完毕形成的顶点序列。
第二方面,本公开实施例提供了一种图形处理装置,包括:
获取模块,用于获取至少两层多边形图形的第一图形信息;两层多边形图形中的每一层多边形之间具有嵌套关系,每一层多边形包括至少一个多边形;
处理模块,用于根据第一图形信息,对至少两层多边形图形进行转换处理,得到一层多边形图形的第二图形信息,一层多边形图形为不具有嵌套关系的一个平面多边形图形;根据第二图形信息,得到目标一层多边形图形;根据目标一层多边形图形,对虚拟场景中目标对象进行渲染处理,得到目标对象的渲染处理结果。
可选地,获取模块包括:
第一获取子模块,用于获取至少两层多边形图形的各个多边形的顶点在预设坐标系中的坐标信息。
可选地,处理模块包括:
第一处理子模块,用于根据第一图形信息,对至少两层多边形图形中的任意两个多边形进行处理,建立两个多边形之间的辅助线;
第二处理子模块,用于按顺序遍历辅助线以及至少两层多边形图形中所有多边形的顶点,得到一层多边形图形的第二图形信息,第二图形信息包括:按顺序排列的一层多边形图形的顶点坐标。
可选地,第一处理子模块包括:
第一处理单元,用于根据第一图形信息,计算至少两层多边形图形中第一多边形的任意一顶点与第二多边形的任意一顶点之间的距离,得到多个距离值;
第二处理单元,用于将多个距离值中最短的距离值对应的两个顶点连接,形成第一多边形与第二多边形之间的辅助线;直到两层多边形图形中的所有多边形之间的辅助线建立完成;辅助线与第一多边形和第二多边形的边没有交叉,且与已经建立的辅助线没有交叉。
可选地,第二处理子模块包括:
第三处理单元,用于将具有辅助线的两个多边形成一个桶,得到多个多边形桶;
第四处理单元,用于将多个多边形桶进行合并处理,得到目标桶;
第五处理单元,用于按顺序输出目标桶中的所有多边形的顶点,得到一层多边形图形的第二图形信息。
可选地,第四处理单元包括:
第一处理子单元,用于若多个多边形桶中的第一桶中的多边形与第二桶中的多边形完全相同,则删除第一桶和第二桶中的任意一个桶,得到当前中间桶;
第二处理子单元,用于若多个多边形桶中的第一桶中的多边形与第二桶中的多边形不完全相同,则将第一桶和第二桶合并,得到当前中间桶;
第三处理子单元,用于将当前中间桶中的多边形与下一个多边形桶中的多边形进行是否完全相同的判断,直到遍历所有多边形桶,得到目标桶。
可选地,第五处理单元包括:
第四处理子单元,用于对目标桶中的所有多边形,按顺序遍历所有多边形的顶点,若当前顶点没有辅助线,按顺序遍历多边形的下一个顶点;
第五处理子单元,用于若当前顶点有辅助线,且辅助线为一条,按照辅助线前进至连接辅助线的下一个多边形进行顶点遍历;
第六处理子单元,用于若当前顶点有辅助线且辅助线为N条,获得基线与N条辅助线以及从当前顶点出发的各条边之间的夹角,按照夹角的大小顺序进行遍历,重置遍历的前进方向为最小夹角对应的辅助线或者边,进入辅助线连接的下一个多边形;直到所有多边形的顶点遍历完毕,得到一层多边形图形的第二图形信息,N为大于1的整数,第二图形信息包括:所有多边形的顶点遍历完毕形成的顶点序列。
第四方面,本公开实施例提供了一种电子设备,该电子设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序或指令,程序或指令被处理器执行时实现如第一方面的图形处理方法的步骤。
第五方面,本公开实施例提供了一种可读存储介质,可读存储介质上存储程序或指令,程序或指令被处理器执行时实现如第一方面的图形处理方法的步骤。
在本公开实施例中,通过获取至少两层多边形图形的第一图形信息;两层多边形图形中的每一层多边形之间具有嵌套关系,每一层多边形包括至少一个多边形;根据第一图形信息,对至少两层多边形图形进行转换处理,得到一层多边形图形的第二图形信息,一层多边形图形为不具有嵌套关系的一个平面多边形图形;根据第二图形信息,得到目标一层多边形图形;根据目标一层多边形图形,对虚拟场景中目标对象进行渲染处理,得到目标对象的渲染处理结果。解决现有技术多边形绘制处理效率低的问题,可实现加快多边形绘制的运算效率。
附图说明
图1示出了是本公开提供的实施例中至少两层多边形图形的示意图;
图2示出了是本公开实施例提供的图形处理方法的流程示意图;
图3示出了本公开的具体的实施例1中至少两层多边形中建立辅助线的示意图;
图4示出了本公开的具体的实施例2中将多边形存储至多边形桶的示意图;
图5示出了本公开的具体的实施例3中将多边形存储至多边形桶的第一示意图;
图6示出了本公开的具体的实施例3中将多边形存储至多边形桶的第二示意图;
图7示出了本公开的具体的实施例3中对多边形桶进行合并处理的第一示意图;
图8示出了本公开的具体的实施例3中对多边形桶进行合并处理的第二示意图;
图9示出了本公开的具体的实施例3中对多边形桶进行合并处理的第三示意图;
图10示出了本公开的具体的实施例3中对多边形桶进行合并处理的第四示意图;
图11示出了本公开提供的具体的实施例4中生成一层多边形图形的第二图形信息的示意图;
图12示出了本公开提供的具体的实施例5中生成一层多边形图形的第二图形信息的示意图;
图13示出了本公开提供的具体的实施例6中生成一层多边形图形的第二图形信息的示意图;
图14示出了本公开实施例提供的图形处理装置的结构示意图;
图15示出了本公开的实施例提供的电子设备的结构示意图;
图16示出了实现本公开的实施例提供的电子设备的硬件结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本公开保护的范围。
本公开的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
本公开实施例主要涉及图形处理,用户在虚拟引擎UE4(Unreal Engine 4,虚幻引擎)中绘制多边形图形时,在三角剖分绘制的基础上,结合对多边形图形降低层数的方式,将二维平面上至少两层嵌套设置的多边形图形通过转换处理后得到一层多边形图形,至少两层多边形图形转换为一层多边形图形时,在至少两层多边形图形之间添加辅助线,再将至少两层多边形图形通过辅助线按照一定的顺序依次连接,然后将辅助线去除,以使得至少两层多边形图形可以“近似一笔画”的方式快速画出,这里的“近似一笔画”的方式具体是指从其中一个顶点对该多边形图形开始绘制,可连续不断开的情况下将该多边形图形绘制完成;如图1所示,二维平面上,一个多边形ABCA内嵌套设置一个多边形DEFGD,两层多边形图形之间添加的辅助线为线段AD,对两层多边形图形进行转换处理后的一层多边形图形为ABCADGFEDA,再将一层多边形图形ABCADGFEDA的辅助线AD去除,以实现将嵌套设置有多边形DEFGD的两层多边形图形以“近似一笔画”的方式快速画出。
本公开涉及到的至少两层多边形图形以嵌套设置的方式设置在二维平面上,这里所说的至少两层多边形图形的“层数”的概念是指在二维平面上,至少两层多边形图形的全部多边形中,嵌套在任意一个多边形外的外设多边形的总数最大的数,嵌套设置是指在任意一个多边形外的设置有完全大于该多边形的外设多边形的设置方式,且外设多边形的所有边与嵌套在内的多边形的边不相交;
例如,图1中,至少两层多边形图形包括多边形ABCA和多边形DEFGD,在多边形ABCA外不存在嵌套设置的外设多边形,因此,多边形ABCA的层数为1,而图1中在多边形DEFGD嵌套设置有外设多边形ABCA,因此,多边形DEFGD的层数为2;由于多边形ABCA的层数为1,多边形DEFGD的层数为2,嵌套在任意一个多边形图形外的外设多边形图形的总数最大的数为2,因此,至少两层多边形图形的层数为2,即该二维平面上设置有两层多边形图形;
需要说明的是,这里的嵌套设置的至少两层多边形图形不仅限于上述的多边形1与多边形2嵌套设置,还可以是多边形1分别与多边形2和多边形3嵌套设置,但多边形2和多边形3之间不存在嵌套设置的关系,本申请不以此为限制,即嵌套设置的至少两层多边形图形中至少两个多边形之间为嵌套设置的关系。
下面结合附图,通过具体的实施例及其应用场景对本公开实施例提供的图形处理方法、装置及电子设备进行详细地说明。
图2是本公开实施例提供的一种图形处理方法流程图,参见图2,该方法可以包括以下步骤:
步骤201,获取至少两层多边形图形的第一图形信息;两层多边形图形中的每一层多边形之间具有嵌套关系,每一层多边形包括至少一个多边形;
这里的至少两层多边形图形中的每一层多边形包括至少一个多边形,其中任意一层多边形中的一个多边形优选与其他层的多边形分别具有嵌套关系,第一图形信息优选用数组表示,该数组可以是一个二维数组,当然也可以是能够清楚地将每个多边形对应的顶点坐标示出的N维数组,本申请中不以此为限制;
当数组为二维数组时,该二维数组中,第一维的元素为每个多边形对应的坐标结构体,该坐标结构体用于表示多边形的顶点坐标,第二维的元素依次为嵌套关系中最外环的多边形以及其他多边形;
其中,坐标结构体优选包括x轴坐标和y轴坐标,还需要内置数据结构的比较方法,用于使用自定义的方式对坐标结构体进行排序和对比;
例如,如图1所示,至少两层多边形图形中包括多边形ABC和多边形DEGF,该二维数组优选为M[2][4];第二维中元素依次表示多边形ABC和多边形DEGF,第一维的元素对应的为多边形ABC中点A的顶点坐标、点B的顶点坐标、点C的顶点坐标以及多边形DEGF中点D的顶点坐标、点E的顶点坐标、点G的顶点坐标、点F的顶点坐标,这里,对顶点坐标的表示优选包含该点的横坐标x值和纵坐标y值;。
进一步的,上述的步骤201中,获取至少两层多边形图形的第一图形信息,可以包括:
步骤2011,获取至少两层多边形图形的各个多边形的顶点在预设坐标系中的坐标信息。
本实施例中,预设坐标系优选为二维坐标系,各个多边形的顶点在预设坐标系中的坐标信息优选为该点的横坐标x值和纵坐标y值;将获取的各个多边形的顶点在预设坐标系中的坐标信息优选的以上述输入数组的方式表示,得到第一图形信息;需要说明的是,这里的第一图形信息不仅可以输入数组的方式表示,还可以以其他方式进行表示,本申请中不以此为限制。
步骤202,根据第一图形信息,对至少两层多边形图形转换处理,得到一层多边形图形的第二图形信息,一层多边形图形为将多个顶点按顺序连接形成的不具有嵌套关系的一个平面多边形图形;
本实施例中,对步骤201中获取的第一图形信息进行转换处理,该转换处理用于在第一图形信息对应的至少两层多边形图形中增加辅助线,得到携带辅助线的一层多边形图形对应的第二图形信息;需要说明的是,这里的第二图形信息与上述的第一图形信息的表述方式相似,即可以也用数组的方式表示,还可以以其他方式进行表示,本申请中不以此为限制。
上述步骤202可以包括:
步骤2021,根据第一图形信息,对至少两层多边形图形中的任意两个多边形进行处理,建立两个多边形之间的辅助线;
这里,在第一图像信息对应的至少两层多边形图形中的任意两个多边形中建立辅助线,这里的辅助线的建立需要满足以下条件:
(1)当至少两层多边形图形的层数为N时,建立的辅助线的数量M≤N;
(2)建立的每个辅助线都不会与至少两层多边形图形中的任意一条边和已建立的辅助线形成交叉;
(3)建立的每个辅助线都不会与至少两层多边形图形中的任意一条边和已建立的辅助线形成环,该环是指形成一个新的封闭的内环多边形;
进一步地,步骤2021可以包括:
步骤20211,根据第一图形信息,计算至少两层多边形图形中第一多边形的任意一顶点与第二多边形的任意一顶点之间的距离,得到多个距离值;
在建立辅助线的过程中,需要避开至少两层多边形图形中的任意一条边和已建立的辅助线,以避免与至少两层多边形图形中的任意一条边和已建立的辅助线形成新的封闭的环或产生交叉,计算至少两层多边形图形中第一多边形的顶点与第二多边形的顶点之间的距离,可建立第一多边形和至少两层多边形图形中其他的任意一个多边形之间最短的辅助线,建立最短的辅助线是由于长的辅助线对所产生的障碍多,即会对后续建立辅助线的过程产生阻碍,因而每个辅助线的建立需遵循找到最短的辅助线,即在对应的一个多边形和距离该多边形最近的另一多边形之间建立辅助线;
这里,需要说明的是,当第一多边形和第二多边形的至少一个顶点相同时,由于第一多边形和第二多边形之间的最短距离为0,则在第一多边形和第二多边形之间建立一个长度为0的辅助线,即在第一多边形和第二多边形之间不建立辅助线。
步骤20212,将多个距离值中最短的距离值对应的顶点连接,形成第一多边形与第二多边形之间的辅助线;直到两层多边形图形中的所有多边形之间的辅助线建立完成;辅助线与第一多边形和第二多边形的边没有交叉,且与已经建立的辅助线没有交叉。
本实施例中,将至少两层多边形图形中的所有多边形之间的辅助线建立,这里的所有多边形之间的辅助线是指将每个多边形都通过至少一个辅助线与另一多边形连接;辅助线应满足与第一多边形和第二多边形的边没有交叉且无法形成环,且与已经建立的辅助线没有交叉且无法形成环;将每个多边形对应的最短的距离值记录在状态节点中,这里的状态节点用于记录下最短距离值以及最短的距离值对应的两个多边形之间距离最短的两个点,以避免多次进行最短的距离值计算,提高了运行速度,即状态节点包括:第一多边形的第一顶点的坐标信息、第二多边形的第二顶点的坐标信息以及最短的距离值,该第一多边形的第一顶点和第二多边形的第二顶点之间的距离即为最短的距离值;
是否存在交叉可以通过向量计算判断待建立的辅助线和其他线段之间是否存在交点,具体地,可包括:
步骤a,将待建立的辅助线与多边形图形的所有边进行向量计算,计算判断是否存在障碍,若存在障碍,则无法建立该辅助线,若不存在障碍,则进行下一步步骤b的计算;需要说明的是,由于辅助线不会与已建立的辅助线相同,因此在进行与多边形图形的所有边进行向量计算时,不会产生与之前相同的重复计算过程,因此每个待建立的辅助线应与多边形图形的所有边进行向量计算;
步骤b,将待建立的辅助线与已建立的辅助线进行向量计算,计算判断是否存在障碍,若存在障碍,则无法建立该辅助线,若不存在障碍,则可以建立该辅助线;需要说明的是,由于辅助线不会与已建立的辅助线相同,因此在进行与已建立的辅助线进行向量计算时,不会产生与之前相同的重复计算过程,因此每个待建立的辅助线应与已建立的辅助线进行向量计算;
需要说明的是,已建立的辅助线存储与障碍容器中,该障碍容器是可重复无序集合,用于记录辅助线的两端点,以便建立新的辅助线时对已建立过的进行避障;
图3示出了本公开的具体的实施例1中至少两层多边形中建立辅助线的示意图;如图3所示,一个具体的实施例1中,与多边形0距离值最短的多边形为多边形1,通过障碍容器判断,通过哈希表进行判断,可知在多边形0和多边形1之间建立第一目标辅助线(0-0,1-0)不存在障碍,同时将目标辅助线(0-0,1-0)记录到障碍容器中;
与多边形1距离值最短的多边形为多边形2,同样通过障碍容器判断,可知在多边形1和多边形2之间建立第二目标辅助线(1-2,2-0)不存在障碍,同时将目标辅助线(1-2,2-0)记录到障碍容器中;
与多边形2距离值最短的多边形为多边形1,通过障碍容器判断,可知在多边形1和多边形2之间建立第三目标辅助线(2-0,1-2)和第二目标辅助线(1-2,2-0)相同,则不重复建立辅助线;
与多边形3距离值最短的多边形为多边形4,通过障碍容器判断,可知在多边形3和多边形4之间建立第四目标辅助线(3-3,4-0)不存在障碍,同时将第四目标辅助线(3-3,4-0)记录到障碍容器中;
与多边形4距离值最短的多边形为多边形3,通过障碍容器判断,可知在多边形3和多边形4之间建立第五目标辅助线(4-0,3-3)和第四目标辅助线(3-3,4-0)相同,则不重复建立辅助线;
与多边形5距离值最短的多边形为多边形2,通过障碍容器判断,可知在多边形5和多边形2之间建立第六目标辅助线(5-0,2-2)不存在障碍,同时将第六目标辅助线(5-0,2-2)记录到障碍容器中;
由于多边形0、多边形1、多边形2以及多边形5之间通过辅助线形成了一个第一单层多边形,而多边形3和多边形4之间通过辅助线形成了一个第二单层多边形,因此,通过障碍容器判断,可知第一单层多边形和第二单层多边形之间的最短距离为第七目标辅助线(1-2,3-1),且该第七目标辅助线不存在障碍,同时将第七目标辅助线(1-2,3-1)记录到障碍容器中。
步骤2022,按顺序遍历辅助线以及至少两层多边形图形中所有多边形的顶点,得到一层多边形图形的第二图形信息,第二图形信息包括:按顺序排列的一层多边形目标的顶点坐标。
本实施例中的第二图形信息优选的以输出数组的方式表示,该输出数组包括:新的多边形数组以及忽略数组;新的多边形数组为与第二图形信息对应的一层多边形图形的数组,该新的多边形数组用于表示按顺序排列的一层多边形目标的顶点坐标,忽略数组为记录已添加的辅助线的端点坐标信息的数组。
进一步地,步骤2022包括:
步骤20221,将具有辅助线的两个多边形成一个桶,得到多个多边形桶;
这里,当计算出第一多边形对应的最短的距离值的多边形为第二多边形时,将第一多边形和第二多边形存储于多边形桶中;
图4示出了本公开的具体的实施例2中将多边形存储至多边形桶的示意图;如图3和图4所示,一个具体的实施例2中,与多边形0距离值最短的多边形为多边形1,将多边形1和多边形2以“0,1”的方式存入多边形桶中。
步骤20222,将多个多边形桶进行合并处理,得到目标桶;合并处理后的目标桶可确定所有的多边形图形都存在至少一条辅助线与至少一个多边形连接,并且确保辅助线不会形成环和产生交叉;桶用于记录多边形和多边形之间的连接,而并不记录点和点之间的连接;
进一步地,步骤20222,包括:
步骤202221,若多个多边形桶中的第一桶中的多边形与第二桶中的多边形完全相同,则删除第一桶和第二桶中的任意一个桶,得到当前中间桶;请注意,这里的多边形完全相同与多边形在桶中的顺序无关,即当第一桶中的多边形为“1,2”,而第二中的多边形为“2,1”,则第一桶和第二桶相同;
步骤202222,若多个多边形桶中的第一桶中的多边形与第二桶中的多边形不完全相同,则将第一桶和第二桶合并,得到当前中间桶;这里的多边形不完全相同同样与多边形在桶中的顺序无关,即当第一桶中的多边形为“0,1,2”,而第二中的多边形为“2,3”,则第一桶和第二桶不完全相同;其中,桶的作用近似于一种容器,用于存储至少两个多边形之间的连接关系,其桶中的内容是动态变化的,当第一桶和第二桶合并后得到当前中间桶,这里,当前中间桶用于存储桶合并过程中至少两个多边形之间的连接关系;进一步地,若将第三桶和第一当前中间桶进行合并,可在第一当前中间桶的基础上得到第二当前中间桶,此时第一当前中间桶中的内容更新为第二当前中间桶的内容;
步骤202223,将当前中间桶中的多边形与下一个多边形桶中的多边形进行是否完全相同的判断,直到遍历所有多边形桶,得到目标桶。
目标桶优选为桶列表,该同列表为一维数组,元素为集合,键值相同,记录多边形的信息,若对多边形分桶进行初始化处理,可以分为若干个桶,对桶进行迭代合并处理时,桶的剩余数量为1时,则合并处理完成;集合类似于容器,可保存对象,集合对添加顺序不做记录,当有重复的对象保存到集合时,不会新增后加的重复对象;
需要说明的是,在进行多边形桶的合并处理之前还可以包括多边形桶清洗处理,用于对外接算法规则进行多边形桶数据清洗。
如图3至图10所示,一个具体的实施例3中,图3中的二维坐标系xy上包括有两层多边形图形,该两层多边形图形包括多边形0、多边形1、多边形2、多边形3、多边形4以及多边形5,虚线为辅助线,当计算多边形0的最短的距离值时,可知多边形0对应的最短的距离值的多边形图形为多边形1,则在图4中的多边形桶内记录“0,1”;当计算多边形1的最短的距离值时,可知多边形1对应的最短的距离值的多边形图形为多边形2,则在图5中的多边形桶内记录“1,2”;当计算多边形2、多边形3、多边形4以及多边形5的最短的距离值时,可知多边形2、多边形3、多边形4以及多边形5对应的最短的距离值的多边形图形分别为多边形1、多边形4、多边形3以及多边形2,则在图6中的多边形桶内依次记录“2,1”、“3,4”、“4,3”以及“5,2”;
对多边形桶进行合并处理,由于图6中的“0,1”和“1,2”并不完全相同,因此,将“0,1”和“1,2”合并为图7所示的“0,1,2”;由于图7中的“0,1,2”和“2,1”中的多边形完全相同,因此,将图7中的“2,1”删除,多边形桶中剩余的数据如图8所示;由于图8中的“0,1,2”和“3,4”并不完全相同,因此,将“0,1,2”和“3,4”合并为图9所示的“0,1,2,3,4”;由于图9中的“0,1,2,3,4”和“4,3”中的多边形完全相同,因此,将图9中的“4,3”删除,多边形桶中剩余的数据如图10所示;最后,由于图10中所示的“0,1,2,3,4”和“5,2”中的多边形并不完全相同,因此将“0,1,2,3,4”和“5,2”可合并为“0,1,2,3,4,5,2”。
步骤20223,按顺序输出目标桶中的所有多边形的顶点,得到一层多边形图形的第二图形信息。
本实施例中的一层多边形图形的第二图形信息优选的为一维数组,该一维数组包括了一层多边形中的各个顶点的坐标结构体,其中,该一维数组中的各个顶点的坐标结构体是按照一定的顺序进行排列的,按照该顺序可完成“近似一笔画”的方式将一层多边形输出;
进一步地,步骤20223,包括:
步骤202231,对目标桶中的所有多边形,按顺序遍历所有多边形的顶点,若当前顶点没有辅助线,按顺序遍历多边形的下一个顶点;
步骤202232,若当前顶点有辅助线,且辅助线为一条,按照辅助线前进至连接辅助线的下一个多边形进行顶点遍历;
步骤202233,若当前顶点有辅助线且辅助线为N条,获得按照夹角的角度的大小顺序进行遍历,重置遍历的前进方向为最小夹角对应的辅助线或者边,进入辅助线连接的下一个多边形;直到所有多边形的顶点遍历完毕,得到一层多边形图形的第二图形信息,N为大于1的整数,第二图形信息包括:所有多边形的顶点遍历完毕形成的顶点序列。
本实施例中,对目标桶中的所有多边形按照顺序对每个多边形的顶点进行遍历,该遍历的顺序可以是顺时针也可以是逆时针,对于每个多边形,在进行遍历的过程中都有可能按照顺时针或是逆时针的方向遍历,这里,优选的计算该多边形数据源,预设顺时针的情况下为索引递增,逆时针的情况下为索引递减,可以减少资源浪费和整理数据的时间损耗;
对目标桶中的所有多边形的遍历时,对当前顶点上是否有辅助线进行判断,若当前顶点上没有辅助线,按顺序遍历至下一个顶点;若当前顶点上仅有一条辅助线时,则遍历至辅助线的另一个端点,即将辅助线的另一个端点作为下一个顶点;若当前顶点上有N条辅助线时,则获取基线与N条辅助线以及从当前顶点出发的各条边之间的夹角,对角度按照大小顺序进行遍历,直到所有多边形的顶点遍历完毕;
需要说明的是,当前顶点上除了辅助线以外,还有可能存在其他多边形的边,当当前顶点上除了至少一条辅助线和至少一条其他多边形的边时,同样按照步骤202233中的方式,按照夹角大小进行排序并依次遍历;还有可能存在该顶点为该一个自封闭形的多边形内的另一顶点,即当前顶点除了至少一条辅助线和至少一条其他多边形的边之外,还存在本身的该自封闭形的多边形的边的情况,若该自封闭形的多边形的边仅存在一条且已遍历过,则可以忽略;若该自封闭形的多边形的边存在M条(M>1)且都已遍历过,则可以忽略;若该自封闭形的多边形的边存在M条(M>1)且存在未遍历过的边,则可以忽略已遍历过的边,同时对剩下的未遍历过的边按照步骤202233中的方式,按照夹角大小对未遍历过的边进行排序并依次遍历。
图11示出了本公开提供的具体的实施例4中生成一层多边形图形的第二图形信息的示意图;如图11所示,一个具体的实施例4中,从多边形0的0-0点开始,依次按照0-0、0-1、0-2、0-3、0-0完成对多边形0的遍历,当对多边形0的遍历完成后,0-0点上存在辅助线(0-0,2-0)、多边形3的边(0-0,3-2)、多边形3的边(0-0,3-1)、辅助线(0-0,1-0)以及多边形0自身的边(0-0,0-1),对当前0-0点上的边进行判断,由于多边形0自身的边(0-0,0-1)已遍历过,则忽略多边形0自身的边(0-0,0-1),以最近一次遍历的边(0-0,0-3)为基线,分别计算出基线与辅助线(0-0,2-0)、多边形3的边(0-0,3-2)、多边形3的边(0-0,3-1)以及辅助线(0-0,1-0)之间的夹角依次为∠1、∠2、∠3以及∠4,夹角的大小排序为∠1<∠2<∠3<∠4,按照夹角从小到大的顺序进行遍历,因此,当前0-0点遍历的下一顶点为2-0点;
2-0点上存在多边形2的边(2-0,2-1)和多边形2的边(2-0,2-2),以辅助线(0-0,2-0)作为基线,按照夹角从小到大的顺序进行遍历,当前2-0点遍历的下一顶点为2-1点,2-1点的下一顶点为2-2点,2-2点的下一顶点为2-0点,当在2-0点时,以多边形2的边(2-0,2-2)为基线,存在多边形2的边(2-0,2-1)和辅助线(0-0,2-0),由于已遍历过多边形2的边(2-0,2-1),且仅有一条辅助线(0-0,2-0),则2-0点的下一顶点为该辅助线的另一端点0-0;
此时,再次回到0-0点,以辅助线(0-0,2-0)为基线,存在多边形0的边(0-0,0-3)、多边形3的边(0-0,3-2)、多边形3的边(0-0,3-1)、辅助线(0-0,1-0)以及多边形0的边(0-0,0-1),忽略已遍历过的多边形0的边(0-0,0-3)和多边形0的边(0-0,0-1),按照夹角从小到大的顺序进行遍历,当前0-0点遍历的下一顶点为3-2点;当前3-2点上存在辅助线(3-2,6-0)、多边形4的边(3-2,4-1)、多边形4的边(3-2,4-2)、辅助线(3-2,7-0)以及多边形3的边(3-2,3-1),这时,由于多边形3的边(3-2,3-1)未被遍历过,因此不能被忽略,按照夹角从小到大的顺序进行遍历,当前0-0点遍历的下一顶点为6-0点;以此类推,则对应图11中的第二图形信息为{0-0,0-1,0-2,0-3,0-0,2-0,2-1,2-2,2-0,0-0,3-2,6-0,6-1,6-2,6-0,3-2,4-1,4-2,3-2,7-0,5-0,5-2,5-1,5-0,7-0,7-2,7-1,7-0,3-2,3-1,0-0,1-0,1-2,1-1,1-0,0-0},需要说明的是,图中的0-0点和3-0点重合为同一点,3-2点和4-0点重合为同一点,为了表述统一,分别用0-0点代表0-0点和3-0点,用3-2点代表3-2点和4-0点,该实施例中按照夹角从小到大的顺序进行遍历是依据该多边形图形最外圈的一圈多边形的相反的方向而定的,即当最外圈的多边形(本实施例中为多边形0)是以逆时针方向遍历,则内圈的多边形均以顺时针方向遍历。
图12示出了本公开提供的具体的实施例5中生成一层多边形图形的第二图形信息的示意图;如图12所示,一个具体的实施例5中,多边形图形包括多边形0、多边形1以及多边形2,分别用辅助线(0-0,1-0)将多边形0和多边形1之间进行连接,用辅助线(1-0,2-0)将多边形1和多边形2之间进行连接,从顶点0-0开始,按照0-0、0-1、0-2、0-3、0-0的顺序进行遍历,当前点为0-0点,此时存在多边形0的边(0-0,0-1)和辅助线(0-0,1-0),忽略多边形0的边(0-0,0-1),当前0-0点的下一顶点为1-0点;以最近一次遍历过的线段(0-0,1-0)为基线,分别得到夹角为∠5<∠6<∠7,按照夹角从小到大的顺序进行遍历,当前1-0点遍历的下一顶点为2-0点;依次类推,则对应图12中的第二图形信息为:
{0-0,0-1,0-2,0-3,0-0,1-0,2-0,2-2,2-1,2-0,1-0,1-2,1-1,1-0,0-0},需要说明的是,该实施例中按照夹角从小到大的顺序进行遍历是依据该多边形图形最外圈的一圈多边形的相反的方向而定的,即当最外圈的多边形(本实施例中为多边形0)是以逆时针方向遍历,则内圈的多边形均以顺时针方向遍历。
图13示出了本公开提供的具体的实施例6中生成一层多边形图形的第二图形信息的示意图;如图13所示,一个具体的实施例6中,多边形图形包括多边形0、多边形1、多边形2以及多边形3,分别用辅助线(0-0,1-5)将多边形0和多边形1之间进行连接,用辅助线(0-2,3-2)将多边形0和多边形3之间进行连接,用辅助线(3-1,2-3)将多边形3和多边形2之间进行连接,按照0-0、0-1、0-2的顺序进行遍历,当前点为0-2点时,存在辅助线(0-2,3-2)和多边形0本身的边(0-2,0-1),此时,以最近一次遍历过的线段(0-3,0-2)为基线,分别得到夹角∠8<∠9,按照夹角从小到大的顺序进行遍历,当前0-2点遍历的下一顶点为3-2点;依次类推,则对应图13中的第二图形信息为:
{0-0,0-1,0-2,3-2,3-3,3-0,3-1,2-3,2-0,2-1,2-2,2-3,3-1,3-2,0-2,0-1,0-0,1-5,1,4,1-3,1-2,1-1,1-0,1-5,0-0},需要说明的是,该实施例中按照夹角从小到大的顺序进行遍历是依据该多边形图形最外圈的一圈多边形的相反的方向而定的,即当最外圈的多边形(本实施例中为多边形0)是以逆时针方向遍历,则内圈的多边形均以顺时针方向遍历。
步骤203,根据第二图形信息,得到目标一层多边形图形;
在第二图形信息中将辅助线的头尾进行预设标记,进而根据预设标记将辅助线进行删除,得到目标一层多边形图形。
步骤204,根据目标一层多边形图形,对虚拟场景中目标对象进行渲染处理,得到目标对象的渲染处理结果。
将上述“近似一笔画”得到的目标一层多边形图形,在虚拟场景中目标对象进行渲染处理,可不在需要引入CGAL或者GDAL等辅助运算工具进行辅助运行,大大加快运算速率和提高了资源利用率。
本公开实施例中图形处理方法,可以应用于UE4引擎,但不限于该引擎,也可应用于任何需要按照上述方法处理多边形的应用或者设备,上述实施例通过获取至少两层多边形图形的第一图形信息;两层多边形图形中的每一层多边形之间具有嵌套关系,每一层多边形包括至少一个多边形;根据第一图形信息,对至少两层多边形图形转换处理,得到一层多边形图形的第二图形信息,一层多边形图形为不具有嵌套关系的一个平面多边形图形;根据第二图形信息,得到目标一层多边形图形;根据目标一层多边形图形,对虚拟场景中目标对象进行渲染处理,得到目标对象的渲染处理结果;实现了按照高效处理多边形,从而达到高效对目标对象进行渲染处理的目标,同时,应用于相关的引擎或者应用中时,可以拓展多缓存多任务,加快上述图形处理方法的运算速率和资源利用率。
上述所有可选技术方案,可以任意结合,形成本公开的可选实施例,在此不再一一赘述。
图14是本公开实施例提供的一种图形处理装置的结构示意图,参见图14,该装置1400包括:
获取模块1401,用于获取至少两层多边形图形的第一图形信息;两层多边形图形中的每一层多边形之间具有嵌套关系,每一层多边形包括至少一个多边形;
处理模块1402,用于根据第一图形信息,对至少两层多边形图形进行转换处理,得到一层多边形图形的第二图形信息,一层多边形图形为不具有嵌套关系的一个平面多边形图形;根据第二图形信息,得到目标一层多边形图形;根据目标一层多边形图形,对虚拟场景中目标对象进行渲染处理,得到目标对象的渲染处理结果。
可选地,获取模块1401包括:
第一获取子模块,用于获取至少两层多边形图形的各个多边形的顶点在预设坐标系中的坐标信息。
可选地,处理模块1402包括:
第一处理子模块,用于根据第一图形信息,对至少两层多边形图形中的任意两个多边形进行处理,建立两个多边形之间的辅助线;
第二处理子模块,用于按顺序遍历辅助线以及至少两层多边形图形中所有多边形的顶点,得到一层多边形图形的第二图形信息,第二图形信息包括:按顺序排列的一层多边形图形的顶点坐标。
可选地,第一处理子模块包括:
第一处理单元,用于根据第一图形信息,计算至少两层多边形图形中第一多边形的任意一顶点与第二多边形的任意一顶点之间的距离,得到多个距离值;
第二处理单元,用于将多个距离值中最短的距离值对应的两个顶点连接,形成第一多边形与第二多边形之间的辅助线;直到两层多边形图形中的所有多边形之间的辅助线建立完成;辅助线与第一多边形和第二多边形的边没有交叉,且与已经建立的辅助线没有交叉。
可选地,第二处理子模块包括:
第三处理单元,用于将具有辅助线的两个多边形成一个桶,得到多个多边形桶;
第四处理单元,用于将多个多边形桶进行合并处理,得到目标桶;
第五处理单元,用于按顺序输出目标桶中的所有多边形的顶点,得到一层多边形图形的第二图形信息。
可选地,第四处理单元包括:
第一处理子单元,用于在多个多边形桶中的第一桶中的多边形与第二桶中的多边形完全相同时,删除第一桶和第二桶中的任意一个桶,得到当前中间桶;
第二处理子单元,用于在多个多边形桶中的第一桶中的多边形与第二桶中的多边形不完全相同时,将第一桶和第二桶合并,得到当前中间桶;
第三处理子单元,用于将当前中间桶中的多边形与下一个多边形桶中的多边形进行是否完全相同的判断,直到遍历所有多边形桶,得到目标桶。
可选地,第五处理单元包括:
第四处理子单元,用于对目标桶中的所有多边形,按顺序遍历所有多边形的顶点,若当前顶点没有辅助线,按顺序遍历多边形的下一个顶点;
第五处理子单元,用于若当前顶点有辅助线,且辅助线为一条,按照辅助线前进至连接辅助线的下一个多边形进行顶点遍历;
第六处理子单元,用于若当前顶点有辅助线且辅助线为N条,获得基线与N条辅助线以及从当前顶点出发的各条边之间的夹角,按照夹角的大小顺序进行遍历,重置遍历的前进方向为最小夹角对应的辅助线或者边,进入辅助线连接的下一个多边形;直到所有多边形的顶点遍历完毕,得到一层多边形图形的第二图形信息,N为大于1的整数,第二图形信息包括:所有多边形的顶点遍历完毕形成的顶点序列。
本公开实施例提供的装置,在进行图形处理时,对至少两层多边形图形进行转换处理,得到一层多边形图形的第二图形信息,从而根据第二图形信息得到目标一层多边形图形,进而根据一层多边形图形,对虚拟场景中目标对象进行渲染处理,提高了图形处理的效率。
需要说明的是:上述实施例提供的图形处理装置仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的图形处理装置与图形处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本公开实施例中的图形处理装置可以是虚拟装置,也可以是服务器或者终端中的部件、集成电路或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,非移动电子设备可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本公开实施例不作具体限定。
本公开实施例中的图形处理装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本公开实施例不作具体限定。
本公开实施例提供的图形处理装置能够实现图2至图13的方法实施例实现的各个过程,为避免重复,这里不再赘述。
可选地,如图15所示,本公开实施例还提供一种电子设备1500,包括处理器1501,存储器1502,存储在存储器1502上并可在处理器1501上运行的程序或指令,该程序或指令被处理器1501执行时实现上述图形处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。需要说明的是,本公开实施例中的电子设备包括上述的移动电子设备和非移动电子设备。
图16为实现本公开实施例的一种电子设备的硬件结构示意图。
该电子设备1600包括但不限于:射频单元1601、网络模块1602、音频输出单元1603、输入单元1604、传感器1605、显示单元1606、用户输入单元1607、接口单元1608、存储器1609、以及处理器1610等部件。
本领域技术人员可以理解,电子设备1600还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器1610逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图16中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
应理解的是,本公开实施例中,输入单元1604可以包括图形处理器(GraphicsProcessing Unit,GPU)16041和麦克风16042,图形处理器16041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元1606可包括显示面板16061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板16061。用户输入单元1607包括触控面板16071以及其他输入设备16072。触控面板16071,也称为触摸屏。触控面板16071可包括触摸检测装置和触摸控制器两个部分。其他输入设备16072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。存储器1609可用于存储软件程序以及各种数据,包括但不限于应用程序和操作系统。处理器1610可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1610中。
本公开实施例还提供一种可读存储介质,可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述远程自动驾驶仿真控制方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,处理器为上述实施例中的电子设备中的处理器。可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等。
本公开实施例另提供了一种芯片,芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行程序或指令,实现上述远程自动驾驶仿真控制方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本公开实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本公开实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本公开各个实施例的方法。
上面结合附图对本公开的实施例进行了描述,但是本公开并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本公开的启示下,在不脱离本公开宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本公开的保护之内。
Claims (9)
1.一种图形处理方法,其特征在于,所述方法包括:
获取至少两层多边形图形的第一图形信息;所述至少两层多边形图形中的每一层多边形之间具有嵌套关系,每一层多边形包括至少一个多边形;
根据所述第一图形信息,对所述至少两层多边形图形进行转换处理,得到一层多边形图形的第二图形信息,所述一层多边形图形为不具有嵌套关系的一个平面多边形图形;
根据所述第二图形信息,得到目标一层多边形图形;
根据所述目标一层多边形图形,对虚拟场景中目标对象进行渲染处理,得到所述目标对象的渲染处理结果;
其中,根据所述第一图形信息,对所述至少两层多边形图形转换处理,得到一层多边形图形的第二图形信息,包括:
根据所述第一图形信息,对所述至少两层多边形图形中的任意两个多边形进行处理,建立两个多边形之间的辅助线;
按顺序遍历所述辅助线以及所述至少两层多边形图形中所有多边形的顶点,得到一层多边形图形的第二图形信息,所述第二图形信息包括:按顺序排列的一层多边形图形的顶点坐标。
2.根据权利要求1所述的图形处理方法,其特征在于,获取至少两层多边形图形的第一图形信息,包括:
获取至少两层多边形图形的各个多边形的顶点在预设坐标系中的坐标信息。
3.根据权利要求1所述的图形处理方法,其特征在于,根据所述第一图形信息,对所述至少两层多边形图形中的任意两个多边形进行处理,建立两个多边形之间的辅助线,包括:
根据所述第一图形信息,计算所述至少两层多边形图形中第一多边形的任意一顶点与第二多边形的任意一顶点之间的距离,得到多个距离值;
将所述多个距离值中最短的距离值对应的两个顶点连接,形成所述第一多边形与所述第二多边形之间的辅助线;直到所述两层多边形图形中的所有多边形之间的辅助线建立完成;所述辅助线与所述第一多边形和所述第二多边形的边没有交叉,且与已经建立的辅助线没有交叉。
4.根据权利要求1所述的图形处理方法,其特征在于,按顺序遍历所述辅助线以及所述至少两层多边形图形中所有多边形的顶点,得到一层多边形图形的第二图形信息,包括:
将具有辅助线的两个多边形成一个桶,得到多个多边形桶;
将所述多个多边形桶进行合并处理,得到目标桶;
按顺序输出所述目标桶中的所有多边形的顶点,得到一层多边形的第二图形信息。
5.根据权利要求4所述的图形处理方法,其特征在于,将所述多个多边形桶进行合并处理,得到目标桶,包括:
若所述多个多边形桶中的第一桶中的多边形与第二桶中的多边形完全相同,则删除所述第一桶和第二桶中的任意一个桶,得到当前中间桶;
若所述多个多边形桶中的第一桶中的多边形与第二桶中的多边形不完全相同,则将所述第一桶和第二桶合并,得到当前中间桶;
将所述当前中间桶中的多边形与下一个多边形桶中的多边形进行是否完全相同的判断,直到遍历所有多边形桶,得到所述目标桶。
6.根据权利要求4所述的图形处理方法,其特征在于,按顺序输出所述目标桶中的所有多边形的顶点,得到一层多边形图形的第二图形信息,包括:
对所述目标桶中的所有多边形,按顺序遍历所有多边形的顶点,若当前顶点没有辅助线,按顺序遍历所述多边形的下一个顶点;
若当前顶点有辅助线,且所述辅助线为一条,按照所述辅助线前进至连接所述辅助线的下一个多边形进行顶点遍历;
若当前顶点有辅助线且所述辅助线为N条,获得基线与N条辅助线以及从所述当前顶点出发的各条边之间的夹角,按照所述夹角的大小顺序进行遍历,重置遍历的前进方向为最小夹角对应的辅助线或者边,进入辅助线连接的下一个多边形;直到所有多边形的顶点遍历完毕,得到一层多边形图形的第二图形信息,N为大于1的整数,所述第二图形信息包括:
所有多边形的顶点遍历完毕形成的顶点序列。
7.一种图形处理装置,其特征在于,包括:
获取模块,用于获取至少两层多边形图形的第一图形信息;所述两层多边形图形中的每一层多边形之间具有嵌套关系,每一层多边形包括至少一个多边形;
处理模块,用于根据所述第一图形信息,对所述至少两层多边形图形进行转换处理,得到一层多边形图形的第二图形信息,所述一层多边形图形为不具有嵌套关系的一个平面多边形图形;根据所述第二图形信息,得到目标一层多边形图形;根据所述目标一层多边形图形,对虚拟场景中目标对象进行渲染处理,得到所述目标对象的渲染处理结果;
其中,根据所述第一图形信息,对所述至少两层多边形图形转换处理,得到一层多边形图形的第二图形信息,包括:
根据所述第一图形信息,对所述至少两层多边形图形中的任意两个多边形进行处理,建立两个多边形之间的辅助线;
按顺序遍历所述辅助线以及所述至少两层多边形图形中所有多边形的顶点,得到一层多边形图形的第二图形信息,所述第二图形信息包括:按顺序排列的一层多边形图形的顶点坐标。
8.一种电子设备,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-6任一项所述的图形处理方法的步骤。
9.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1-6任一项所述的图形处理方法的步骤。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202111340648.XA CN114022603B (zh) | 2021-11-12 | 2021-11-12 | 一种图形处理方法、装置及电子设备 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202111340648.XA CN114022603B (zh) | 2021-11-12 | 2021-11-12 | 一种图形处理方法、装置及电子设备 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN114022603A CN114022603A (zh) | 2022-02-08 |
| CN114022603B true CN114022603B (zh) | 2025-04-01 |
Family
ID=80063948
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202111340648.XA Active CN114022603B (zh) | 2021-11-12 | 2021-11-12 | 一种图形处理方法、装置及电子设备 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN114022603B (zh) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113256782A (zh) * | 2021-07-06 | 2021-08-13 | 武汉幻城经纬科技有限公司 | 三维模型的生成方法、装置、存储介质、电子设备 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6600485B1 (en) * | 1998-07-03 | 2003-07-29 | Sega Enterprises, Ltd. | Polygon data generation method and image display apparatus using same |
| JP4885080B2 (ja) * | 2007-07-09 | 2012-02-29 | 任天堂株式会社 | 画像処理プログラムおよび画像処理装置 |
| FR2994500B1 (fr) * | 2012-08-10 | 2015-10-16 | Real Fusio France | Procede d'optimisation de l'execution d'un pipeline graphique |
| US11087430B2 (en) * | 2018-09-28 | 2021-08-10 | Apple Inc. | Customizable render pipelines using render graphs |
| CN111773688B (zh) * | 2020-06-30 | 2021-11-16 | 完美世界(北京)软件科技发展有限公司 | 柔性对象的渲染方法和装置、存储介质、电子装置 |
-
2021
- 2021-11-12 CN CN202111340648.XA patent/CN114022603B/zh active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113256782A (zh) * | 2021-07-06 | 2021-08-13 | 武汉幻城经纬科技有限公司 | 三维模型的生成方法、装置、存储介质、电子设备 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN114022603A (zh) | 2022-02-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN112634401B (zh) | 一种平面轨迹绘制方法、装置、设备及存储介质 | |
| CN111967297B (zh) | 图像的语义分割方法、装置、电子设备及介质 | |
| CN117237502A (zh) | 一种三维渲染方法、装置、设备及介质 | |
| CN111966767B (zh) | 轨迹热力图生成方法、装置、电子设备和存储介质 | |
| CN112416201A (zh) | 应用缓存的清理方法、装置、电子设备及介质 | |
| CN110598629B (zh) | 超网络的搜索空间构建方法、装置以及电子设备 | |
| CN114022603B (zh) | 一种图形处理方法、装置及电子设备 | |
| CN117631618A (zh) | 一种dcs逻辑组态画面连线的实时优化方法及系统 | |
| CN112529984B (zh) | 绘制多边形的方法、装置、电子设备及存储介质 | |
| CN119444977B (zh) | 基于大模型的虚拟形象生成方法、装置、智能体、电子设备及存储介质 | |
| CN111563453B (zh) | 用于确定表格顶点的方法、装置、设备和介质 | |
| WO2025236913A1 (zh) | 地图更新方法、装置、计算机设备和存储介质 | |
| CN120085980A (zh) | Cpu-gpgpu异构加速系统的任务调度方法、系统、电子设备及介质 | |
| CN110083812B (zh) | 电子文档的图片布局方法及装置、电子设备 | |
| CN113487694B (zh) | 电子地图渲染方法、装置、设备及自动驾驶车辆 | |
| CN116110046B (zh) | 一种数据流形实例的确定方法、装置及设备 | |
| WO2024124485A1 (zh) | 三维人体重建方法、装置、设备及存储介质 | |
| CN114063772A (zh) | 手势识别方法、装置、设备及介质 | |
| CN113342917A (zh) | 空间位置查找方法、装置、电子设备及存储介质 | |
| CN114547395A (zh) | 搜索方法及装置 | |
| CN113821293A (zh) | 界面切换方法及装置 | |
| CN113010251A (zh) | 信息处理方法、装置和电子设备 | |
| CN116028679B (zh) | 一种数据处理方法、装置及设备 | |
| CN113590219B (zh) | 一种数据处理方法、装置、电子设备以及存储介质 | |
| CN112419145B (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 |