闭合符号绘制方法、装置、电子设备及存储介质与流程

文档序号:19421697发布日期:2019-12-14 01:34阅读:330来源:国知局
闭合符号绘制方法、装置、电子设备及存储介质与流程

本申请涉及图像处理技术领域,具体而言,涉及一种闭合符号绘制方法、装置、电子设备及存储介质。



背景技术:

随着信息技术的高速发展,军事信息化已成为世界军事装备发展的主流方向,各国在军事装备电子化、信息化方向投入大量资源来增强对其他国家的军事威慑力。其中,作战标图是军事装备信息化的重要发展方向,作战标绘系统是战场态势和军事指挥自动化的一项重要组成部分,是反映战场态势环境的一种重要手段,广泛应用于战场监控、作战指挥、态势推演等方面。

目前军事标图系统的标绘符号的绘制主要采用了基于cpu逐条绘制图元和基于gpu的将图元分解成基本三角形绘制这两种方法。基于cpu逐条绘制图元的方法具有易于控制、绘制效果美观,但是效率较低,在叠加各项作战基础数据后,绘制大批量标绘符号时,cpu成为制约绘制性能提高的瓶颈,因此当前基于cpu逐条调用绘图设备图元绘制指令的方式从根本上制约了标绘符号绘制的提高。

近二十年来,随着gpu的性能逐年快速提高,cpu与gpu的计算能力差距越来越大,基于gpu绘制标绘符号成为目前态势系统研发的主流方向,基于gpu将图元分解成三角形列表逐项绘制的方法,极大的提高了军事标图的绘制性能,但是绘制效果不美观,特别是含有贝塞尔曲面的封闭路径的是填充绘制,都是采用将贝塞尔曲线拟合成折线段后再绘制多边形填充的方法,这种方法有以下缺点:符号放大后,会明显看到贝塞尔曲线拟合的折线段,绘制效果较差。



技术实现要素:

有鉴于此,本申请实施例的目的在于提供一种闭合符号绘制方法、装置、电子设备及存储介质,以改善现有技术中存在的封闭符号绘制质量较低的问题。

本申请实施例提供了一种闭合符号绘制方法,所述方法包括:生成封闭符号对象的骨架点信息集合;基于所述骨架点信息集合生成用于填充所述封闭符号对象的贝塞尔曲面三角形集合和内部三角形集合;基于所述贝塞尔曲面三角形集合获得贝塞尔曲面mesh集合,所述mesh为绘图工具中的模型网格;基于所述内部三角形集合获得内部三角形mesh集合;通过图形处理器基于所述贝塞尔曲面mesh集合绘制贝塞尔曲面三角形图形;通过所述图形处理器基于所述内部三角形mesh集合绘制内部三角形图形。

在上述实现方式中,采用普通的内部三角形和含有贝塞尔曲线的贝塞尔曲面三角形进行封闭符号的填充绘制,通过贝塞尔曲面三角形绘制封闭符号中包含贝塞尔曲线的部分,能够得到更好的封闭路径的折线边缘抗锯齿效果,从而提高了封闭符号的绘制质量;且图形绘制的主要工作由图形处理器完成,从而提高了封闭符号的绘制效率。

可选地,所述生成所述封闭符号对象的骨架点信息集合,包括:输入所述封闭符号对象的几何点集合;基于所述几何点集合和所述封闭符号对象的符号类型对应的构建规则,生成所述封闭符号对象的骨架点信息集合,所述骨架点信息集合包括每个骨架点的位置信息及路径类型。

在上述实现方式中,通过几何点集合和封闭符号对象的构建规则进行骨架点集合生成,能够进行不同类型封闭符号的绘制,增强了闭合符号绘制方法的绘制全面性。

可选地,所述基于所述骨架点信息集合生成用于填充所述封闭符号对象的贝塞尔曲面三角形集合和内部三角形集合,包括:基于所述骨架点信息集合构建边界列表;基于所述边界列表构建所述贝塞尔曲面三角形集合与内部闭合多边形路径;将所述内部闭合多边形路径分解成所述内部三角形集合。

在上述实现方式中,基于边界列表进行贝塞尔曲面三角形集合与内部闭合多边形路径的获取,并通过内部闭合多边形路径直接得到内部三角形集合,从而高效地实现了贝塞尔曲面三角形集合与内部三角形集合的生成。

可选地,所述基于所述贝塞尔曲面三角形集合获得贝塞尔曲面mesh集合,包括:基于所述内部闭合多边形路径的朝向和所述边界列表中任意一点的十字交叉点个数确定每个贝塞尔曲面三角形的填充边信息;确定所述贝塞尔曲面三角形的曲线点纹理坐标;基于所述贝塞尔曲面三角形集合、所述填充边信息和所述曲线点纹理坐标确定所述贝塞尔曲面mesh集合,所述贝塞尔曲面mesh集合包括贝塞尔顶点数组,所述贝塞尔顶点数组包括所有贝塞尔曲面三角形的第一顶点坐标、第一纹理坐标。

在上述实现方式中,通过贝塞尔曲面三角形集合获得贝塞尔曲面mesh集合,以使图形处理器能够基于贝塞尔曲面mesh集合进行图形渲染和绘制。

可选地,所述基于所述内部三角形集合获得内部三角形mesh集合,包括:基于所述内部三角形集合确定所述内部三角形mesh集合,所述内部三角形mesh集合包括每个内部三角形的内部顶点数组,所述内部顶点数组包括所有内部三角形的第二顶点坐标、颜色值。

在上述实现方式中,通过贝塞尔曲面三角形集合获得内部三角形mesh集合,以使图形处理器能够基于内部三角形mesh集合进行图形渲染和绘制。

可选地,所述通过图形处理器基于所述贝塞尔曲面mesh集合绘制贝塞尔曲面三角形图形,包括:通过所述图形处理器中的顶点着色器对第一顶点坐标进行视图投影矩阵变换,获得所述贝塞尔曲面三角形的第一顶点在显示图像坐标系中的坐标;通过所述图形处理器中的片段着色器,基于所述第一纹理坐标获得所述贝塞尔曲面三角形中每个像素点的阿尔法值;通过所述片段着色器将所述阿尔法值与所述颜色值融合,获得最终颜色值;通过颜色缓冲区,基于所述最终颜色值对所述贝塞尔曲面三角形进行渲染,以完成所述贝塞尔曲面三角形图形的绘制。

在上述实现方式中,通过图形处理中的顶点着色器、片段着色器、颜色缓冲区等完成贝塞尔曲面三角形图形的绘制,从而获得高质量的封闭路径的折线边缘图像,同时提高了图形绘制效率。

可选地,所述通过所述图形处理器基于所述内部三角形mesh集合绘制内部三角形图形,包括:通过所述图形处理器中的顶点着色器对第二顶点坐标进行矩阵变换,获得所述内部三角形的第二顶点在显示图像坐标系中的坐标;通过颜色缓冲区,基于所述颜色值对所述内部三角形进行渲染,以完成所述内部三角形图形的绘制。

在上述实现方式中,通过图形处理中的顶点着色器、颜色缓冲区等完成内部三角形图形的绘制,从而获得高质量的封闭路径的折线边缘图像,同时提高了图形绘制效率。

本申请实施例提供了一种闭合符号绘制装置,所述装置包括:骨架点生成模块,用于生成封闭符号对象的骨架点信息集合;三角形集合生成模块,用于基于所述骨架点信息集合生成用于填充所述封闭符号对象的贝塞尔曲面三角形集合和内部三角形集合;曲面mesh集合生成模块,用于基于所述贝塞尔曲面三角形集合获得贝塞尔曲面mesh集合,所述mesh为绘图工具中的模型网格;内部mesh集合生成模块,用于基于所述内部三角形集合获得内部三角形mesh集合;曲面绘制模块,用于通过图形处理器基于所述贝塞尔曲面mesh集合绘制贝塞尔曲面三角形图形;内部绘制模块,用于通过所述图形处理器基于所述内部三角形mesh集合绘制内部三角形图形。

在上述实现方式中,采用普通的内部三角形和含有贝塞尔曲线的贝塞尔曲面三角形进行封闭符号的填充绘制,通过贝塞尔曲面三角形绘制封闭符号中包含贝塞尔曲线的部分,能够得到更好的封闭路径的折线边缘抗锯齿效果,从而提高了封闭符号的绘制质量;且图形绘制的主要工作由图形处理器完成,从而提高了封闭符号的绘制效率。

可选地,所述骨架点生成模块具体用于:输入所述封闭符号对象的几何点集合;基于所述几何点集合和所述封闭符号对象的符号类型对应的构建规则,生成所述封闭符号对象的骨架点信息集合,所述骨架点信息集合包括每个骨架点的位置信息及路径类型。

在上述实现方式中,通过几何点集合和封闭符号对象的构建规则进行骨架点集合生成,能够进行不同类型封闭符号的绘制,增强了闭合符号绘制方法的绘制全面性。

可选地,所述三角形集合生成模块具体用于:基于所述骨架点信息集合构建边界列表;基于所述边界列表构建所述贝塞尔曲面三角形集合与内部闭合多边形路径;将所述内部闭合多边形路径分解成所述内部三角形集合。

在上述实现方式中,基于边界列表进行贝塞尔曲面三角形集合与内部闭合多边形路径的获取,并通过内部闭合多边形路径直接得到内部三角形集合,从而高效地实现了贝塞尔曲面三角形集合与内部三角形集合的生成。

可选地,所述曲面mesh集合生成模块具体用于:基于所述内部闭合多边形路径的朝向和所述边界列表中任意一点的十字交叉点个数确定每个贝塞尔曲面三角形的填充边信息;确定所述贝塞尔曲面三角形的曲线点纹理坐标;基于所述贝塞尔曲面三角形集合、所述填充边信息和所述曲线点纹理坐标确定所述贝塞尔曲面mesh集合,所述贝塞尔曲面mesh集合包括贝塞尔顶点数组,所述贝塞尔顶点数组包括所有贝塞尔曲面三角形的第一顶点坐标、第一纹理坐标。

在上述实现方式中,通过贝塞尔曲面三角形集合获得贝塞尔曲面mesh集合,以使图形处理器能够基于贝塞尔曲面mesh集合进行图形渲染和绘制。

可选地,所述内部mesh集合生成模块具体用于:基于所述内部三角形集合确定所述内部三角形mesh集合,所述内部三角形mesh集合包括每个内部三角形的内部顶点数组,所述内部顶点数组包括所有内部三角形的第二顶点坐标、颜色值。

在上述实现方式中,通过贝塞尔曲面三角形集合获得内部三角形mesh集合,以使图形处理器能够基于内部三角形mesh集合进行图形渲染和绘制。

可选地,所述曲面绘制模块具体用于:通过所述图形处理器中的顶点着色器对第一顶点坐标进行视图投影矩阵变换,获得所述贝塞尔曲面三角形的第一顶点在显示图像坐标系中的坐标;通过所述图形处理器中的片段着色器,基于所述第一纹理坐标获得所述贝塞尔曲面三角形中每个像素点的阿尔法值;通过所述片段着色器将所述阿尔法值与所述颜色值融合,获得最终颜色值;通过颜色缓冲区,基于所述最终颜色值对所述贝塞尔曲面三角形进行渲染,以完成所述贝塞尔曲面三角形图形的绘制。

在上述实现方式中,通过图形处理中的顶点着色器、片段着色器、颜色缓冲区等完成贝塞尔曲面三角形图形的绘制,从而获得高质量的封闭路径的折线边缘图像,同时提高了图形绘制效率。

可选地,所述内部绘制模用于:通过所述图形处理器中的顶点着色器对第二顶点坐标进行矩阵变换,获得所述内部三角形的第二顶点在显示图像坐标系中的坐标;通过颜色缓冲区,基于所述颜色值对所述内部三角形进行渲染,以完成所述内部三角形图形的绘制。

在上述实现方式中,通过图形处理中的顶点着色器、颜色缓冲区等完成内部三角形图形的绘制,从而获得高质量的封闭路径的折线边缘图像,同时提高了图形绘制效率。

本申请实施例还提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行上述任一实现方式中的步骤。

本申请实施例还提供了一种可读取存储介质,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述任一实现方式中的步骤。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种闭合符号绘制方法的流程示意图;

图2为本申请实施例提供的一种贝塞尔曲面mesh集合确定步骤的流程示意图;

图3为本申请实施例提供的一种贝塞尔曲面三角形图形绘制步骤的流程示意图;

图4为本申请实施例提供的一种内部三角形图形绘制步骤的流程示意图;

图5为本申请实施例提供的一种折线边缘效果对比图;

图6为本申请实施例提供的一种闭合符号绘制装置的模块示意图。

图标:20-闭合符号绘制装置;21-骨架点生成模块;22-三角形集合生成模块;23-曲面mesh集合生成模块;24-内部mesh集合生成模块;25-曲面绘制模块;26-内部绘制模块。

具体实施方式

下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。

经本申请人研究发现,现有的军事标图的绘制方法的绘制效率较低、绘制效果不美观,例如基于cpu的扫描线种子填充算法和基于gpu的多边形绘制算法,对于贝塞尔曲面高平滑度的符号,一个符号会产生相当数量的三角形,严重影响绘制效率,另一方面,符号放大后,会明显看到贝塞尔曲线拟合的折线段,绘制效果较差。

为了解决上述问题,本申请实施例提高了一种闭合符号绘制方法,请参考图1,图1为本申请实施例提供的一种闭合符号绘制方法的流程示意图,所述方法的具体步骤可以如下:

步骤s11:生成封闭符号对象的骨架点信息集合。

本实施例中的封闭符号对象可以是箭头、旗标、军标等具有贝塞尔曲面高平滑度部分的封闭符号对象。应当理解的是,在步骤s11之前,可以先在绘制界面中构建制定类型的封闭符号对象。

具体地,封闭符号对象的生成步骤可以如下:输入几何点集合pin=[p1,p2,p3...,pn],采用封闭符号对象类型对应的符号构建算法生成封闭符号对象的骨架点信息集合sout=[s1,s2,s3...sm],其中p1,p2,p3...,pn分别为单个几何点,s1,s2,s3...sm分别为每个骨架点信息。

骨架,其定位为用一组与原始形状连通性和拓扑结构分布性相一致的完整表达物体形状的曲线集合。骨架点就是骨架的点集合。

上述骨架点信息集合sout包括每个骨架点位置信息s(x,y)和路径类型,x,y分别为坐标系中的横坐标和纵坐标。其中,针对每个骨架点,位置信息记录了该骨架点的位置,路径类型记录了该骨架点的路径(path)元素类型。可选地,路径类型可以包括moveto、lineto、curveto、close等。moveto函数是移动到某个坐标;lineto是用当前画笔画一条线,从当前位置连到一个指定的点;curveto为通过使用表示三次贝塞尔曲线的指定控制点,向当前路径添加一个点;close用于关闭一个输出流,并显示选定的数据。

步骤s12:基于骨架点信息集合生成用于填充封闭符号对象的贝塞尔曲面三角形集合和内部三角形集合。

贝塞尔曲线(béziercurve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线,一般的矢量图形软件通过它来精确画出曲线,贝塞尔曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋,绘图工具中的笔类工具通常均采用贝塞尔曲线绘制矢量曲线。贝塞尔曲面则是对贝塞尔曲线多一个维度的扩展。本实施例中的贝塞尔三角形为边界上存在贝塞尔曲面的三角形网格,内部三角形则为边界上不包含贝塞尔曲面的普通内部三角形网格。

具体地,步骤s12可以包括如下子步骤:

步骤s12.1:基于骨架点信息集合构建边界列表。

边界列表为骨架点信息集合中每个骨架点(相邻同辈元素)之间的距离信息组成的列表。

步骤s12.2:基于边界列表构建贝塞尔曲面三角形集合与内部闭合多边形路径。

基于边界列表构建贝塞尔曲面三角形时,本实施例可以对边界列表对贝塞尔曲面进行二次剖分,并基于bernstein函数获得形状为三角形的剖分单元,将获得的剖分单元作为贝塞尔曲面三角形。

步骤s12.3:将内部闭合多边形路径分解成内部三角形集合。

将内部闭合多边形分解成内部三角形集合时,可以基于内部闭合多边形的各边界框的向量点乘和向量叉乘结果确定该内部闭合多边形的凸角和凹角,基于凹角或凸角的三角形化方式将内部闭合多边形分解成内部三角形集合。

本实施例通过上述步骤s12.1-s12.3,基于边界列表进行贝塞尔曲面三角形集合与内部闭合多边形路径的获取,并通过内部闭合多边形路径直接得到内部三角形集合,从而高效地实现了贝塞尔曲面三角形集合与内部三角形集合的生成。

步骤s13:基于贝塞尔曲面三角形集合获得贝塞尔曲面mesh集合,mesh为绘图工具中的模型网格。

其中,mesh指模型的网格,建模就是建立网格。mesh的主要属性内容包括顶点坐标、法线、纹理坐标、三角形序列(三角形绘制顺序)等其他有用属性和功能。因此,本实施例中的mesh集合就是封闭符号内所有贝塞尔曲面三角形的顶点坐标(又称顶点数组,其中可以包括三角形序列)、纹理坐标等信息的集合。

具体地,请参考图2,图2为本申请实施例提供的一种贝塞尔曲面mesh集合确定步骤的流程示意图,即步骤s13的子步骤,其具体可以包含以下子步骤:

步骤s13.1:基于内部闭合多边形路径的朝向和边界列表中任意一点的十字交叉点个数确定每个贝塞尔曲面三角形的填充边信息。

基于内部闭合路径的朝向确定贝塞尔曲面三角形的哪一边需要进行填充,从最外层边界往内填充,当在填充过程中遇到第一个十字交叉点时停止填充,直到遇到第二个十字交叉点时继续填充,上述在何处停止填充和继续填充的信息为填充边信息。

步骤s13.2:确定贝塞尔曲面三角形的曲线点纹理坐标。

纹理是一个二维数组,它的元素是一些颜色值。单个颜色值被称为纹理元素或纹理像素。每个纹理元素在纹理中都有一个唯一的地址。这个地址由一个行和列组成,通常分别用u,v表示。纹理中的每一个纹理像素可以通过它的坐标来声明,对于所有纹理的所有纹理像素,通常绘图工具要求一个统一的地址范围,这个地址范围可以为0.0-1.0,包含0.0和1.0,用u,v表示。纹理坐标位于纹理空间中,也就是说,它和纹理的坐标位置相对应。

步骤s13.3:基于贝塞尔曲面三角形集合、填充边信息和曲线点纹理坐标确定贝塞尔曲面mesh集合,贝塞尔曲面mesh集合包括贝塞尔顶点数组,贝塞尔顶点数组包括所有贝塞尔曲面三角形的第一顶点坐标、第一纹理坐标。

应当理解的是,本实施例中的第一顶点坐标包括贝塞尔三角形的第一顶点坐标及三角形序列。

步骤s14:基于内部三角形集合获得内部三角形mesh集合。

具体地,上述步骤包括:基于内部三角形集合确定内部三角形mesh集合,内部三角形mesh集合包括每个内部三角形的内部顶点数组,内部顶点数组包括所有内部三角形的第二顶点坐标、颜色值。

其中,本实施例中的内部三角形的颜色值可以是通过纹理坐标获得,此处也可以用纹理坐标代替颜色值,后续解析获得颜色值即可。

步骤s15:通过图形处理器基于贝塞尔曲面mesh集合绘制贝塞尔曲面三角形图形。

应当理解的是,本实施例中的步骤s15之前的步骤可以由中央处理器(centralprocessingunit,cpu)执行,基于cpu逐条绘制图元的方法具有易于控制、绘制效果美观的优点,但是效率较低,在叠加各项作战基础数据后,绘制大批量标绘符号时,cpu成为制约绘制性能提高的瓶颈,因此当前基于cpu逐条调用绘图设备图元绘制指令的方式从根本上制约了标绘符号绘制的提高。近二十年来,随着图形处理器(graphicsprocessingunit,gpu)的性能逐年快速提高,cpu与gpu的计算能力差距越来越大,基于gpu绘制标绘符号成为目前态势系统研发的主流方向,因此步骤s15和步骤s16可以由gpu执行。

具体地,请参考图3,图3为本申请实施例提供的一种贝塞尔曲面三角形图形绘制步骤的流程示意图,该步骤s15可以包括如下步骤:

步骤s15.1:通过图形处理器中的顶点着色器对第一顶点坐标进行视图投影矩阵变换,获得贝塞尔曲面三角形的第一顶点在显示图像坐标系中的坐标。

顶点着色器是一组指令代码,这组指令代码在顶点被渲染时在gpu上执行,其可以提高渲染场景速度,采用顶点着色器可以做布类仿真,高级别动画,实时修改透视效果(比如水底效果),高级光亮等。

步骤s15.2:通过图形处理器中的片段着色器,基于第一纹理坐标获得贝塞尔曲面三角形中每个像素点的阿尔法值。

片段着色器将顶点着色器输出的片段作为输入,片段的顶点属性已被光栅化单元进行了插值处理,从而输出每个贝塞尔曲面三角形的像素的最终颜色。其中,阿尔法值为像素的不透明度。

步骤s15.3:通过片段着色器将阿尔法值与颜色值融合,获得最终颜色值。

步骤s15.4:通过颜色缓冲区,基于最终颜色值对贝塞尔曲面三角形进行渲染,以完成贝塞尔曲面三角形图形的绘制。

颜色缓冲区(color_buffer)就是帧缓冲区(frame_buffer),其对需要渲染的场景、图形最终的每一个像素进行写入,然后渲染到屏幕的显示图像中进行显示。

步骤s16:通过图形处理器基于内部三角形mesh集合绘制内部三角形图形。

具体地,请参考图4,图4为本申请实施例提供的一种内部三角形图形绘制步骤的流程示意图,该步骤s16可以包括如下步骤:

步骤s16.1:通过图形处理器中的顶点着色器对第二顶点坐标进行矩阵变换,获得内部三角形的第二顶点在显示图像坐标系中的坐标。

步骤s16.2:通过颜色缓冲区,基于颜色值对内部三角形进行渲染,以完成内部三角形图形的绘制。

应当理解的是,由于封闭符号对象图形中的贝塞尔曲面三角形和内部三角形的颜色值一般相同,因此本实施例直接采用步骤s15获得的颜色值对内部三角形进行渲染。

进一步地,本实施例中对贝塞尔三角形和内部三角形的处理顺序可以任意调整,例如步骤s13和s14的步骤顺序可以调换,同样地,步骤s15和s16的顺序也可以调换。

本实施例通过步骤s15和步骤s16,采用图形处理中的顶点着色器、片段着色器、颜色缓冲区等完成贝塞尔曲面三角形图形和内部三角形图形的绘制,从而获得高质量的封闭路径的折线边缘图像,同时提高了图形绘制效率。请参考图5,图5为本申请实施例提供的一种折线边缘效果对比图,其中a部分展示了采用现有技术中将贝塞尔曲线拟合成折线段后再绘制多边形填充的方法获得的折线边缘,以及b部分展示了采用本实施例提供的闭合符号绘制方法获得的折线边缘。

为了更好地实现上述闭合符号绘制方法,本申请实施例还提供了一种闭合符号绘制装置20。请参考图6,图6为本申请实施例提供的一种闭合符号绘制装置的模块示意图。

闭合符号绘制装置20包括:

骨架点生成模块21,用于生成封闭符号对象的骨架点信息集合。

三角形集合生成模块22,用于基于骨架点信息集合生成用于填充封闭符号对象的贝塞尔曲面三角形集合和内部三角形集合。

曲面mesh集合生成模块23,用于基于贝塞尔曲面三角形集合获得贝塞尔曲面mesh集合,mesh为绘图工具中的模型网格。

内部mesh集合生成模块24,用于基于内部三角形集合获得内部三角形mesh集合。

曲面绘制模块25,用于通过图形处理器基于贝塞尔曲面mesh集合绘制贝塞尔曲面三角形图形。

内部绘制模块26,用于通过图形处理器基于内部三角形mesh集合绘制内部三角形图形。

具体地,骨架点生成模块21用于:输入封闭符号对象的几何点集合;基于几何点集合和封闭符号对象的符号类型对应的构建规则,生成封闭符号对象的骨架点信息集合,骨架点信息集合包括每个骨架点的位置信息及路径类型。

具体地,三角形集合生成模块22用于:基于骨架点信息集合构建边界列表;基于边界列表构建贝塞尔曲面三角形集合与内部闭合多边形路径;将内部闭合多边形路径分解成内部三角形集合。

具体地,曲面mesh集合生成模块23用于:基于内部闭合多边形路径的朝向和边界列表中任意一点的十字交叉点个数确定每个贝塞尔曲面三角形的填充边信息;确定贝塞尔曲面三角形的曲线点纹理坐标;基于贝塞尔曲面三角形集合、填充边信息和曲线点纹理坐标确定贝塞尔曲面mesh集合,贝塞尔曲面mesh集合包括贝塞尔顶点数组,贝塞尔顶点数组包括所有贝塞尔曲面三角形的第一顶点坐标、第一纹理坐标。

具体地,内部mesh集合生成模块24用于:基于内部三角形集合确定内部三角形mesh集合,内部三角形mesh集合包括每个内部三角形的内部顶点数组,内部顶点数组包括所有内部三角形的第二顶点坐标、颜色值。

具体地,曲面绘制模块25用于:通过图形处理器中的顶点着色器对第一顶点坐标进行视图投影矩阵变换,获得贝塞尔曲面三角形的第一顶点在显示图像坐标系中的坐标;通过图形处理器中的片段着色器,基于第一纹理坐标获得贝塞尔曲面三角形中每个像素点的阿尔法值;通过片段着色器将阿尔法值与颜色值融合,获得最终颜色值;通过颜色缓冲区,基于最终颜色值对贝塞尔曲面三角形进行渲染,以完成贝塞尔曲面三角形图形的绘制。

具体地,内部绘制模块26用于:通过图形处理器中的顶点着色器对第二顶点坐标进行矩阵变换,获得内部三角形的第二顶点在显示图像坐标系中的坐标;通过颜色缓冲区,基于颜色值对内部三角形进行渲染,以完成内部三角形图形的绘制。

本申请实施例还提供了一种电子设备,该电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行本实施例提供任一闭合符号绘制方法中的步骤。

应当理解是,该电子设备可以是个人电脑(personalcomputer,pc)、平板电脑、智能手机、个人数字助理(personaldigitalassistant,pda)等具有逻辑计算功能的电子设备。

本申请实施例还提供了一种可读取存储介质,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本实施例提供的任一闭合符号绘制方法中的步骤。

综上所述,本申请实施例提供了一种闭合符号绘制方法、装置、电子设备及存储介质,所述方法包括:生成封闭符号对象的骨架点信息集合;基于所述骨架点信息集合生成用于填充所述封闭符号对象的贝塞尔曲面三角形集合和内部三角形集合;基于所述贝塞尔曲面三角形集合获得贝塞尔曲面mesh集合,所述mesh为绘图工具中的模型网格;基于所述内部三角形集合获得内部三角形mesh集合;通过图形处理器基于所述贝塞尔曲面mesh集合绘制贝塞尔曲面三角形图形;通过所述图形处理器基于所述内部三角形mesh集合绘制内部三角形图形。

在上述实现方式中,采用普通的内部三角形和含有贝塞尔曲线的贝塞尔曲面三角形进行封闭符号的填充绘制,通过贝塞尔曲面三角形绘制封闭符号中包含贝塞尔曲线的部分,能够得到更好的封闭路径的折线边缘抗锯齿效果,从而提高了封闭符号的绘制质量;且图形绘制的主要工作由图形处理器完成,从而提高了封闭符号的绘制效率。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的框图显示了根据本申请的多个实施例的设备的可能实现的体系架构、功能和操作。在这点上,框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图中的每个方框、以及框图的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。因此本实施例还提供了一种可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行区块数据存储方法中任一项所述方法中的步骤。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1