CN112837416A - 基于三角剖分的多边形渲染方法、装置及存储介质 - Google Patents
基于三角剖分的多边形渲染方法、装置及存储介质 Download PDFInfo
- Publication number
- CN112837416A CN112837416A CN201911156063.5A CN201911156063A CN112837416A CN 112837416 A CN112837416 A CN 112837416A CN 201911156063 A CN201911156063 A CN 201911156063A CN 112837416 A CN112837416 A CN 112837416A
- Authority
- CN
- China
- Prior art keywords
- polygon
- triangulation
- image
- triangles
- rendering method
- 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
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000009877 rendering Methods 0.000 title claims abstract description 49
- 238000013515 script Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 8
- 239000007787 solid Substances 0.000 claims 1
- 238000004364 calculation method Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- 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)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
本发明涉及一种基于三角剖分的多边形渲染方法、装置及计算机可读存储介质,属于计算机技术领域。该方法首先将原多边形是为凹多边形的剖分为新的凸多边形和若干个三角形,再将凸多边形剖分为最少数量的三角形,最后将全部三角形组合形成与原多边形图像一致的绘制图像。采用该方法可将任意的多边形剖分为数量最少的若干三角形,节省了图像存储所需空间,进而可基于剖分出的三角形绘制多边形,减轻系统计算负担,加快图片读取速度,进一步可以优化用户体验,同时,本发明的基于三角剖分的多边形渲染方法流程简单,运行所需系统资源有限,且应用范围较为广泛。
Description
技术领域
本发明涉及计算机技术领域,特别涉及计算机图像处理技术领域,具体是指一种基于三角剖分的多边形渲染方法、装置及存储介质。
背景技术
在现有技术中,三角网格(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所示。
描边可以在绘制出的图像上判断顶点,并完成描边,也可以利用第三步确定的原图像的多边形顶点直接形成描边后添加到绘制出的图像上。
采用了该发明的基于三角剖分的多边形渲染方法、装置及计算机可读存储介质,该方法首先将原多边形是为凹多边形的剖分为新的凸多边形和若干个三角形,再将凸多边形剖分为最少数量的三角形,最后将全部三角形组合形成与原多边形图像一致的绘制图像。采用该方法可将任意的多边形剖分为数量最少的若干三角形,节省了图像存储所需空间,进而可基于剖分出的三角形绘制多边形,减轻系统计算负担,加快图片读取速度,进一步可以优化用户体验,同时,本发明的基于三角剖分的多边形渲染方法流程简单,运行所需系统资源有限,且应用范围较为广泛。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
Claims (10)
1.一种基于三角剖分的多边形渲染方法,其特征在于,包括以下步骤:
(1)获得原多边形图像;
(2)判断所述的原多边形是凸多边形还是凹多边形,若是凸多边形,则进入步骤(4);若是凹多边形,则进入步骤(3);
(3)将所述的凹多边形剖分为一个新的凸多边形和至少一个三角形,然后进入步骤(4);
(4)将所述的凸多边形剖分为若干个三角形;
(5)利用全部所述的三角形组合形成与所述的原多边形图像一致的绘制图像。
2.根据权利要求1所述的基于三角剖分的多边形渲染方法,其特征在于,所述的步骤(3)具体包括以下步骤:
(31)将所述的凹多边形剖分为一个三角形以及一个新多边形;
(32)判断所述的新多边形是否为凹多边形,若是,则以所述的新多边形作为待剖分的凹多边形,并返回步骤(31),若否,则进入步骤(4)。
3.根据权利要求2所述的基于三角剖分的多边形渲染方法,其特征在于,所述的步骤(31)具体为:
在所述的凹多边形上找到一个可划分顶点,将所述的凹多边形剖分为一个包含该可划分顶点的三角形以及一个新多边形。
4.根据权利要求1所述的基于三角剖分的多边形渲染方法,其特征在于,所述的步骤(4)具体为:
从所述的凸多边形上任意一个顶点开始剖分,顺时针将该凸多边形剖分为若干个三角形。
5.根据权利要求1所述的基于三角剖分的多边形渲染方法,其特征在于,该方法还包括以下步骤:
(6)描绘所述的绘制图像的轮廓线。
6.根据权利要求1所述的基于三角剖分的多边形渲染方法,其特征在于,所述的方法利用unity软件实现,所述的绘制图像为纯色多边形图像。
7.根据权利要求6所述的基于三角剖分的多边形渲染方法,其特征在于,所述的步骤(1)具体包括以下步骤;
运行unity软件,创建空的Image以及原多边形图像Image;
在所述的空的Image上添加PureColorMesh脚本和PureColorMeshEditor脚本;
利用所述的PureColorMeshEditor脚本,在所述的原多边形图像Image上确定该原多边形的各个顶点。
8.根据权利要求7所述的基于三角剖分的多边形渲染方法,其特征在于,所述的步骤(5)具体包括以下步骤;
将全部所述的三角形保存到所述的PureColorMesh脚本组件上;
利用全部所述的三角形组合形成所述的绘制图像。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现权利要求1至8中任一项所述的基于三角剖分的多边形渲染方法。
10.一种基于三角剖分的多边形渲染装置,其包括处理器和存储器,所述的存储器上存储有计算机程序,其特征在于,该计算机程序被所述的处理器执行时,实现权利要求1至8中任一项所述的基于三角剖分的多边形渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911156063.5A CN112837416A (zh) | 2019-11-22 | 2019-11-22 | 基于三角剖分的多边形渲染方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911156063.5A CN112837416A (zh) | 2019-11-22 | 2019-11-22 | 基于三角剖分的多边形渲染方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112837416A true CN112837416A (zh) | 2021-05-25 |
Family
ID=75922553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911156063.5A Pending CN112837416A (zh) | 2019-11-22 | 2019-11-22 | 基于三角剖分的多边形渲染方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112837416A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116012491A (zh) * | 2023-03-20 | 2023-04-25 | 电科疆泰(深圳)科技发展有限公司 | 多边形填充方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020063708A1 (en) * | 2000-11-24 | 2002-05-30 | Keiichi Senda | Polygon rendering device |
CN101877145A (zh) * | 2010-05-21 | 2010-11-03 | 西安电子科技大学 | 基于质量因子的复杂平表面网格预剖分方法 |
CN109741458A (zh) * | 2019-01-24 | 2019-05-10 | 苏明 | 一种基于Unity3D快速构建复杂多边形平面的方法 |
-
2019
- 2019-11-22 CN CN201911156063.5A patent/CN112837416A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020063708A1 (en) * | 2000-11-24 | 2002-05-30 | Keiichi Senda | Polygon rendering device |
CN101877145A (zh) * | 2010-05-21 | 2010-11-03 | 西安电子科技大学 | 基于质量因子的复杂平表面网格预剖分方法 |
CN109741458A (zh) * | 2019-01-24 | 2019-05-10 | 苏明 | 一种基于Unity3D快速构建复杂多边形平面的方法 |
Non-Patent Citations (1)
Title |
---|
王成龙,周东明,崔维久: "BIM 云平台中三维模型的任意剖切", 《科学技术与工程》, vol. 19, no. 30, pages 2 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116012491A (zh) * | 2023-03-20 | 2023-04-25 | 电科疆泰(深圳)科技发展有限公司 | 多边形填充方法和装置 |
CN116012491B (zh) * | 2023-03-20 | 2023-09-19 | 电科疆泰(深圳)科技发展有限公司 | 多边形填充方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11830143B2 (en) | Tessellation method using recursive sub-division of triangles | |
CN110990516B (zh) | 地图数据的处理方法、装置和服务器 | |
CN107154063B (zh) | 图像展示区域的形状设置方法及装置 | |
US8044955B1 (en) | Dynamic tessellation spreading for resolution-independent GPU anti-aliasing and rendering | |
US8269770B1 (en) | Tessellation of trimmed parametric surfaces by walking the surface | |
EP3101628A1 (en) | Tessellation method | |
US10592242B2 (en) | Systems and methods for rendering vector data on static and dynamic-surfaces using screen space decals and a depth texture | |
US20240037693A1 (en) | Tiling a primitive in a graphics processing system by testing subsets of tiles in a rendering space | |
CN115147579B (zh) | 一种扩展图块边界的分块渲染模式图形处理方法及系统 | |
CN109697748B (zh) | 模型压缩处理方法、模型贴图处理方法装置、存储介质 | |
CN111260750B (zh) | openFL绘制矢量图形的处理方法、装置及电子设备 | |
JP4284285B2 (ja) | 画像処理装置、画像処理方法および画像処理プログラム | |
CN114494646A (zh) | 场景渲染方法、装置和电子设备 | |
CN112837416A (zh) | 基于三角剖分的多边形渲染方法、装置及存储介质 | |
KR20160068204A (ko) | 메시 지오메트리를 위한 데이터 처리 방법 및 이를 기록한 컴퓨터 판독 가능 저장 매체 | |
CN113786616A (zh) | 一种间接光照实现方法、装置、存储介质及计算设备 | |
JP2012230668A (ja) | 画像処理装置、画像処理方法、及びプログラム | |
CN107248187B (zh) | 一种快速三维模型纹理切割重组的方法 | |
US11488347B2 (en) | Method for instant rendering of voxels | |
US11869123B2 (en) | Anti-aliasing two-dimensional vector graphics using a compressed vertex buffer | |
US20230368454A1 (en) | Graphics Processing Unit Instancing Control | |
US11217005B1 (en) | Techniques for rendering 2D vector graphics on mobile devices | |
EP2338153B1 (en) | Method and system for anti-aliasing clipped polygons and polylines | |
WO2024008142A1 (zh) | 一种动画渲染方法、装置、设备及存储介质 | |
CN116934938A (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 |