公开/公告号CN112837416A
专利类型发明专利
公开/公告日2021-05-25
原文格式PDF
申请/专利权人 上海幻电信息科技有限公司;
申请/专利号CN201911156063.5
发明设计人 李杰;
申请日2019-11-22
分类号G06T17/20(20060101);G06T15/00(20110101);
代理机构31314 上海大视知识产权代理事务所(特殊普通合伙);
代理人顾小伟;蔡沅
地址 201203 上海市浦东新区中国(上海)自由贸易试验区祖冲之路2277弄1号905、906室
入库时间 2023-06-19 11:05:16
技术领域
本发明涉及计算机技术领域,特别涉及计算机图像处理技术领域,具体是指一种基于三角剖分的多边形渲染方法、装置及存储介质。
背景技术
在现有技术中,三角网格(TriangleMesh)是一种游戏开发者经常使用的建模方法。可以利用三角网格实现对于任意多边形的渲染。实时渲染之所以选用三角形,是因为三角形有以下的优点:
·三角形是最简单的多边形,少于3个顶点就不能成为一个表面;
·三角形必然是平坦的,含4个或以上的顶点的多边形,不一定平坦,三个点确定一个平面,多余的点可能在这个面之上或者之下;
·三角形经多种转换之后,仍然是三角形,这对于仿射转换和透视转换也成立。最坏的情况下,从三角形的边去看,三角形会退化为线段,在其它角度观察,仍能维持是三角形;
·几乎所有商用图形加速硬件都是为三角形光栅化而设计的。
因此将多边形分割为若干个三角形,并利用三角形实现图形的渲染是一种非常常见且适用范围广泛的图形绘制方法。
多边形的三角剖分涉及以下主要的概念:
·凸顶点、凹顶点:对于一个多边形,去掉它的一个任意点可构成一个新多边形,如果所去掉的顶点位于生成的新多边形的内部,则该顶点称为多边形的一个凹顶点。如果该顶点位于生成的新多边形的外部,则该顶点称凸顶点。
·划分、可划分顶点:对于一个凹多边形,去掉它的一个任意顶点产生一个新多边形并同时分割出一个三角形,如果生成的新多边形和同时分割出的三角形互不重叠并且二者的并集为原始凹多边形,则把生成的新多边形和三角形称为原凹多边形的一个划分。把这样的操作称为原凹多边形的一个划分。把这样的顶点称为凹多边形的一个可划分顶点
·凸多边形、凹多边形性质:
1.凸多边形无凹顶点。凹多边形至少有一个凹顶点。凹多边形至少有3个凸顶点。
2.一个凹多边形至少有一个划分或者多边形不存在凹顶点,则多边形为凸多边形。
现有技术,以Unity 2017软件为例,渲染一张纯色非矩形的图,需要导入一张像素图,如果图片特别大,则很占内存,举例而言,457×293大小的像素图占0.7MB内存和硬盘,占用存储空间较大。而且,像素图边缘具有锯齿,清晰度不高。
若以Unity 2018为例,Unity支持SVG格式的图,但是该方法出现过多的三角形,并不是最优方法。以一个四边形为例,在Unity 2018软件中会被分成如图1所示的若干个三角面。其划分的三角形数量过多,加重了系统计算的负担,显然不是最优的剖分方法。
因此,如何提供一种能够将多边形剖分为最少的三角形,从而节省图像存储所需空间,同时减轻系统计算负担,加快图片读取速度,优化用户体验的多边形渲染方法成为本领域亟待解决的问题。
发明内容
本发明的目的是克服了上述现有技术中的缺点,提供一种能够将多边形剖分为最少的三角形,从而节省图像存储所需空间,从而可基于剖分出的三角形绘制多边形,减轻系统计算负担,加快图片读取速度,进而优化用户体验的多边形渲染方法、装置及计算机可读存储介质。
为了实现上述的目的,本发明的基于三角剖分的多边形渲染方法包括以下步骤:
(1)获得原多边形图像;
(2)判断所述的原多边形是凸多边形还是凹多边形,若是凸多边形,则进入步骤(4);若是凹多边形,则进入步骤(3);
(3)将所述的凹多边形剖分为一个新的凸多边形和至少一个三角形,然后进入步骤(4);
(4)将所述的凸多边形剖分为若干个三角形;
(5)利用全部所述的三角形组合形成与所述的原多边形图像一致的绘制图像。
该基于三角剖分的多边形渲染方法中,所述的步骤(3)具体包括以下步骤:
(31)将所述的凹多边形剖分为一个三角形以及一个新多边形;
(32)判断所述的新多边形是否为凹多边形,若是,则以所述的新多边形作为待剖分的凹多边形,并返回步骤(31),若否,则进入步骤(4)。
该基于三角剖分的多边形渲染方法中,所述的步骤(31)具体为:
在所述的凹多边形上找到一个可划分顶点,将所述的凹多边形剖分为一个包含该可划分顶点的三角形以及一个新多边形。
该基于三角剖分的多边形渲染方法中,所述的步骤(4)具体为:
从所述的凸多边形上任意一个顶点开始剖分,顺时针将该凸多边形剖分为若干个三角形。
该基于三角剖分的多边形渲染方法中,该方法还包括以下步骤:
(6)描绘所述的绘制图像的轮廓线。
该基于三角剖分的多边形渲染方法中,所述的方法利用unity软件实现,所述的绘制图像为纯色多边形图像。
该基于三角剖分的多边形渲染方法中,所述的步骤(1)具体包括以下步骤;
运行unity软件,创建空的Image以及原多边形图像Image;
在所述的空的Image上添加PureColorMesh脚本和PureColorMeshEditor脚本;
利用所述的PureColorMeshEditor脚本,在所述的原多边形图像Image上确定该原多边形的各个顶点。
该基于三角剖分的多边形渲染方法中,所述的步骤(5)具体包括以下步骤;
将全部所述的三角形保存到所述的PureColorMesh脚本组件上;
利用全部所述的三角形组合形成所述的绘制图像。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现上述的基于三角剖分的多边形渲染方法。
本发明还提供一种基于三角剖分的多边形渲染装置,其包括处理器和存储器,所述的存储器上存储有计算机程序,该计算机程序被所述的处理器执行时,实现上述的基于三角剖分的多边形渲染方法。
采用了该发明的基于三角剖分的多边形渲染方法、装置及计算机可读存储介质,该方法首先将原多边形是为凹多边形的剖分为新的凸多边形和若干个三角形,再将凸多边形剖分为最少数量的三角形,最后将全部三角形组合形成与原多边形图像一致的绘制图像。采用该方法可将任意的多边形剖分为数量最少的若干三角形,节省了图像存储所需空间,进而可基于剖分出的三角形绘制多边形,减轻系统计算负担,加快图片读取速度,进一步可以优化用户体验,同时,本发明的基于三角剖分的多边形渲染方法流程简单,运行所需系统资源有限,且应用范围较为广泛。
附图说明
图1为采用现有技术对一个四边形进行剖分的效果图。
图2为本发明的基于三角剖分的多边形渲染方法的步骤流程图。
图3为利用本发明的基于三角剖分的多边形渲染方法中原多边形图像示意图。
图4为图3中原多边形图像的局部放大图。
图5为利用本发明的基于三角剖分的多边形渲染方法形成的绘制图像示意图。
图6为图5中绘制图像的局部放大图。
图7为采用本发明的基于三角剖分的多边形渲染方法对背景技术中例举的四边形进行剖分的效果图。
图8为利用本发明的基于三角剖分的多边形渲染方法进行绘制图像描边的效果图。
图9为本发明的基于三角剖分的多边形渲染方法在实际应用中的流程示意图。
图10为本发明的基于三角剖分的多边形渲染方法在实际应用中的三角剖分过程示意图。
具体实施方式
为了能够更清楚地理解本发明的技术内容,特举以下实施例详细说明。
请参阅图2所示,为本发明的基于三角剖分的多边形渲染方法的步骤流程图。
在一种实施方式中,该基于三角剖分的多边形渲染方法包括以下步骤:
(1)获得原多边形图像;
(2)判断所述的原多边形是凸多边形还是凹多边形,若是凸多边形,则进入步骤(4);若是凹多边形,则进入步骤(3);
(3)将所述的凹多边形剖分为一个新的凸多边形和至少一个三角形,然后进入步骤(4);
(4)将所述的凸多边形剖分为若干个三角形;
(5)利用全部所述的三角形组合形成与所述的原多边形图像一致的绘制图像。
其中,所述的步骤(3)具体包括以下步骤:
(31)将所述的凹多边形剖分为一个三角形以及一个新多边形;
(32)判断所述的新多边形是否为凹多边形,若是,则以所述的新多边形作为待剖分的凹多边形,并返回步骤(31),若否,则进入步骤(4)。
在较优选的实施方式中,所述的步骤(31)具体为:
在所述的凹多边形上找到一个可划分顶点,将所述的凹多边形剖分为一个包含该可划分顶点的三角形以及一个新多边形。
在一种优选的实施方式中,所述的步骤(4)具体为:
从所述的凸多边形上任意一个顶点开始剖分,顺时针将该凸多边形剖分为若干个三角形。
在另一种优选的实施方式中,该方法还包括以下步骤:
(6)描绘所述的绘制图像的轮廓线。
在更优选的实施方式中,所述的方法利用unity软件实现,所述的绘制图像为纯色多边形图像。
所述的步骤(1)具体包括以下步骤;
运行unity软件,创建空的Image以及原多边形图像Image;
在所述的空的Image上添加PureColorMesh脚本和PureColorMeshEditor脚本;
利用所述的PureColorMeshEditor脚本,在所述的原多边形图像Image上确定该原多边形的各个顶点。
所述的步骤(5)具体包括以下步骤;
将全部所述的三角形保存到所述的PureColorMesh脚本组件上;
利用全部所述的三角形组合形成所述的绘制图像。
本发明还提供一种基于三角剖分的多边形渲染装置和一种计算机可读存储介质,所述的基于三角剖分的多边形渲染装置包括处理器和存储器。所述的存储器即为所述的计算机可读存储介质,其上存储有计算机程序。当该计算机程序被所述的处理器执行时,实现上述的基于三角剖分的多边形渲染方法。
以下通过数个实施例说明本发明的基于三角剖分的多边形渲染方法在实际应用中的实现方式。
实施例1
在实际应用中,如图9所示,该基于三角剖分的多边形渲染方法可以包括以下步骤:
第一步:在unity创建空的Image和原图像Image;
原图像Image如图3所示,表示一个地块的形状,是一张像素图,内存占用122.5KB,边缘有锯齿,如局部放大图图4所示。
第二步:在空的Image上添加PureColorMesh和PureColorMeshEditor脚本;
第三步:添加顶点,利用PureColorMeshEditor脚本,根据原图像确定多边形的顶点;
第四步:开始三角剖分,剖分过程如图10所示,可以包括以下子步骤;
1.寻找一个可划分顶点;
2.分割出新的多边形和三角形;
3.对新生成的多边形判断其凹凸性,新多边形若为凸多边形,结束;否则继续剖分;
4.直到原始的凹多边形划分成一系列三角形和一个凸多边形;
5.将凸多边形顶点以顺时针序列,划分成一系列三角形;
6.最终计算出所有三角形;
第五步:将所有三角形保存到PureColorMesh脚本组件上;
第六步:根据所有三角形绘制出图像,绘制出的图像如图5所示。该绘制图像由最少的三角形组成与原像素图形状相同的图像,内存仅需2.33KB,与原图像相差52.57倍。且如图6的局部放大图所示,绘制图像的边缘无锯齿。
利用该实施例,对背景技术中所举例的四边形进行剖分,其结果如图7所示,四边形仅会被剖分成2个三角形。因此,本发明的基于三角剖分的多边形渲染方法,其过程更简单,所需占用的存储空间及系统计算能力均有限,从而可以加快图片读取速度,进一步优化用户体验。
实施例2
与实施例1的区别在于,当图像绘制完成后,所绘制的多边形图像作为一个整体成为需要被进一步编辑的对象,为了方便对于该对象的点选编辑,需要对绘制图像进行描边。
因此,在第六步之后,还包括第七步:
第七步:如有描边需要,可以运行描边工具给图像加下描边。描边的效果如图8所示。
描边可以在绘制出的图像上判断顶点,并完成描边,也可以利用第三步确定的原图像的多边形顶点直接形成描边后添加到绘制出的图像上。
采用了该发明的基于三角剖分的多边形渲染方法、装置及计算机可读存储介质,该方法首先将原多边形是为凹多边形的剖分为新的凸多边形和若干个三角形,再将凸多边形剖分为最少数量的三角形,最后将全部三角形组合形成与原多边形图像一致的绘制图像。采用该方法可将任意的多边形剖分为数量最少的若干三角形,节省了图像存储所需空间,进而可基于剖分出的三角形绘制多边形,减轻系统计算负担,加快图片读取速度,进一步可以优化用户体验,同时,本发明的基于三角剖分的多边形渲染方法流程简单,运行所需系统资源有限,且应用范围较为广泛。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
机译: 基于三角剖分的坐标定位方法,装置和设备和存储介质
机译: 基于径向模糊和存储介质的绒毛渲染方法和装置
机译: 用于基于深度的聚焦全光摄像机数据渲染的方法,装置和计算机可读存储介质