The invention discloses a method for rendering vector graphics GPU, based on 2D, including data pre-processing, graphics to the composite layer step, triangle mesh data step, add rendering steps; the general increase rendering efficiency is high, reducing the CPU load.
【技术实现步骤摘要】
一种基于GPU的高效2D矢量图形渲染方法
本专利技术涉及图像处理领域,更具体的说,其涉及用于一种基于GPU的高效2D矢量图形渲染方法。
技术介绍
矢量图形是计算机图形学中用点、线、多边形等基于数学方程的几何图元表示图像,在工业图形设计、游戏视频特效、文字处理等方面有着广泛应用。由于矢量图元本身的复杂度,其渲染时大多采用CPU光栅化算法。为了提高绘制效率,现有的2D渲染引擎如Skia,Cario等采用CPU和GPU相结合的算法,在CPU中对矢量图元进行三角剖分,再利用GPU渲染。然而该方法的CPU负载仍较大。英伟达(NVidia)公司提出了一种基于CUDA的2D矢量路径渲染方法,但由于该算法所需的硬件专用性,其广泛度和通用性比较有限。另外,对于2D和3D相结合场景,通常需要使用2D渲染引擎(Skia,Cario等)将矢量图形渲染成光栅位图,然后再把其作为纹理贴图在3D流水线中处理。2D和3D是相互分离的过程,需要在内存和显存之间拷贝数据,渲染效率不够高。
技术实现思路
本专利技术的目的在于提供一种基于GPU的高效2D矢量图形渲染方法,使得通用性增加,渲染效率高,降低了CPU负载。为了解决上述技术问题,本专利技术的技术方案如下:一种基于GPU的高效2D矢量图形渲染方法,具体包括如下步骤:101)数据预处理步骤:加载矢量图形文件,并解析转换成矢量基本图元构成的2D矢量形状;102)图形去复合层级变换步骤:经步骤101)处理的图形建立3D空间变换矩阵,判断所述图形是否存在父子层级关系,如果有则进行递归叠加变换矩阵,以应用复合空间变换;103)三角形网格数据步骤:经步骤 ...
【技术保护点】
一种基于GPU的高效2D矢量图形渲染方法,其特征在于,具体包括如下步骤:101)数据预处理步骤:加载图形文件,并解析转换成矢量基本图元构成的2D矢量形状;102)图形去复合层级变换步骤:经步骤101)处理的图形建立3D空间变换矩阵,判断所述图形是否存在父子层级关系,如果有则进行递归叠加变换矩阵,以应用复合空间变换;103)三角形网格数据步骤:经步骤102)处理后的图形,由GPU即图像处理器按照矢量图形构成类型和剪裁形状生成对应的三角形网格数据;104)添加渲染效果步骤:根据步骤103)生成的三角形网格数据和矢量形状的绘制样式,填充模板缓存,确定矢量图形的填充或描绘区域,由GPU根据指定的形状着色特效渲染三角形网格数据,并将渲染后的矢量图形呈现给用户,或者将结果作为其他模型的贴图,在GPU流水线中进一步处理。
【技术特征摘要】
1.一种基于GPU的高效2D矢量图形渲染方法,其特征在于,具体包括如下步骤:101)数据预处理步骤:加载图形文件,并解析转换成矢量基本图元构成的2D矢量形状;102)图形去复合层级变换步骤:经步骤101)处理的图形建立3D空间变换矩阵,判断所述图形是否存在父子层级关系,如果有则进行递归叠加变换矩阵,以应用复合空间变换;103)三角形网格数据步骤:经步骤102)处理后的图形,由GPU即图像处理器按照矢量图形构成类型和剪裁形状生成对应的三角形网格数据;104)添加渲染效果步骤:根据步骤103)生成的三角形网格数据和矢量形状的绘制样式,填充模板缓存,确定矢量图形的填充或描绘区域,由GPU根据指定的形状着色特效渲染三角形网格数据,并将渲染后的矢量图形呈现给用户,或者将结果作为其他模型的贴图,在GPU流水线中进一步处理。2.根据权利要求1所述的一种基于GPU的高效2D矢量图形渲染方法,其特征在于,所述步骤101)中的解析转换是将图像转换成由点、线、贝塞尔曲线基本图元进行表示,同时加载渲染参数包括描绘线宽、连接线形、填充模式和着色样式。3.根据权利要求1所述的一种基于GPU的高效2D矢量图形渲染方法,其特征在于,所述步骤102)的每个矢量形状的设置空间变换参数,若当前矢量形状存在父子层级复合变换,则递归获取父亲层的空...
【专利技术属性】
技术研发人员:张金矿,熊永春,
申请(专利权)人:杭州趣维科技有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。