[发明专利]一种基于GPU的高效2D矢量图形渲染方法有效
申请号: | 201611237753.X | 申请日: | 2016-12-28 |
公开(公告)号: | CN106709863B | 公开(公告)日: | 2020-04-28 |
发明(设计)人: | 张金矿;熊永春 | 申请(专利权)人: | 杭州趣维科技有限公司 |
主分类号: | G06T1/20 | 分类号: | G06T1/20 |
代理公司: | 杭州天昊专利代理事务所(特殊普通合伙) 33283 | 代理人: | 董世博 |
地址: | 310013 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 gpu 高效 矢量 图形 渲染 方法 | ||
本发明公开了一种基于GPU的高效2D矢量图形渲染方法,具体包括数据预处理步骤、图形去复合层步骤、三角形网格数据步骤、添加渲染效果步骤;使得通用性增加,渲染效率高,降低了CPU负载。
技术领域
本发明涉及图像处理领域,更具体的说,其涉及用于一种基于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)三角形网格数据步骤:经步骤102)处理后的图形,由GPU即图像处理器按照矢量图形构成类型和剪裁形状生成对应的三角形网格数据;
104)添加渲染效果步骤:根据步骤103)生成的三角形网格数据和矢量形状的绘制样式,填充模板缓存,确定矢量图形的填充或描绘区域,由GPU根据指定的形状着色特效渲染三角形网格数据,并将渲染后的矢量图形呈现给用户,或者将结果作为其他模型的贴图,在GPU流水线中进一步处理。
进一步的,所述步骤101)中的解析转换是将矢量图形文件转换成由点、线、贝塞尔曲线基本图元进行表示,同时加载渲染参数包括描绘线宽、连接线形、填充模式和着色样式。
进一步的,所述步骤102)的每个矢量形状的复合空间变换参数,若当前矢量形状存在父子层级复合变换,则递归获取父亲层的空间变换矩阵,并采用矩阵乘法将其叠加到当前形状中。
进一步的,所述步骤103)的GPU建立三角形网格数据,先由图形处理中GPU的顶点着色器,对2D基本图元的位置应用空间变换矩阵,再由GPU的剖分着色器和几何形状着色器,对空间变换后的矢量基本图元,按照矢量图形构成类型和剪裁形状生成对应的三角形网格数据。
进一步的,所述步骤104)的特效渲染包括结合模板缓存确定的边缘区域做抗锯齿或羽化效果处理。
进一步的,所述101)数据预处理步骤包括图形处理和动画图形处理。
进一步的,所述动画图形处理的具体步骤如下:
701)确定数据动画插值系数步骤:根据动画时间映射方式将当前时刻映射到动画整体时间范围内,由此查找相邻的两个动画时间关键点,并按照线性方式获取插值系数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州趣维科技有限公司,未经杭州趣维科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611237753.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:移动自组织网络分簇方法
- 下一篇:多模态探测系统的坐标配准模体