[发明专利]基于OpenGL的线型绘制方法、系统及介质在审
申请号: | 202110142558.3 | 申请日: | 2021-02-02 |
公开(公告)号: | CN112907436A | 公开(公告)日: | 2021-06-04 |
发明(设计)人: | 宋斌;杨哲宇 | 申请(专利权)人: | 深圳市显控科技股份有限公司 |
主分类号: | G06T1/20 | 分类号: | G06T1/20;G06T15/00 |
代理公司: | 广州嘉权专利商标事务所有限公司 44205 | 代理人: | 洪铭福 |
地址: | 518000 广东省深圳市深*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 opengl 线型 绘制 方法 系统 介质 | ||
本发明实施例公开了基于OpenGL的线型绘制方法、系统及介质,其中方法包括以下步骤:在CPU端:根据要绘制的线条建立一维整数数组,一维整数数组中每个元素值交替表示为实线长度或空白长度;将一维整数数组转换为一维纹理数组并传送到GPU端;在GPU端:计算要绘制的线条上每个顶点距离起点的距离,记为距离数据;将距离数据以顶点属性方式传入顶点着色器,根据距离数据的顶点属性计算采样距离,并将采样距离传递给片元着色器;根据采样距离,在片元着色器中对生成的一维纹理进行采样并生成片元信息;根据片元信息进行可视化表达。本发明能够对不同图元类型统一使用统一的算法模型。
技术领域
本发明涉及计算机图形领域,特别涉及一种基于OpenGL的线型绘制方法、系统及介质。
背景技术
在OpenGL3.1版本以前,绘制不同线型的直线图元,只需要调用glLineStipple函数设置线型。随着OpenGL的发展,着色器管线模式取代了固定管线模式,因此在OpenGL3.1版本之后,固定管线中的glLineStipple函数被废弃。
对于新的着色器管线,想要绘制一条自定义线型的线条不再是那么简单。
目前已知解决方案有:
⑴.在CPU端,对即将绘制的线条按照线型进行分割。
⑵.在GPU端,将线型数据保存为一维纹理,然后在几何着色器中计算线段的基于屏幕空间的长度,并传递到片元着色器中,最后在片元着色器中,通过之前设置的一维纹理对长度进行采样,将小于设定阈值的片段抛弃,即可达到效果。
上述方案的缺点包括:
a.对于上述解决方案中的(1)项,由于按照线型分割线段需要在CPU端进行大量的计算,特别是线段量大,且线型复杂时,计算量倍增。因此并不实用。
b.对于上述解决方案中的(2)项,由于计算在GPU中进行,因此速度不是问题,但由于OpenGL中的线段图元有GL_LINES,GL_LINE_STRIP,GL_LINE_LOOP。对于GL_LINES图元类型,方案(2)可以使用,但对于GL_LINE_STRIP和GL_LINE_LOOP,由于无法在着色器中计算出每个顶点距离起点的距离,因此方案(2)无法使用。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种基于OpenGL的线型绘制方法,能够对不同图元类型统一使用统一的算法模型。
本发明还提出一种基于OpenGL的线型绘制系统。
本发明还提出一种实施上述方法的计算机可读存储介质。
根据本发明的第一方面实施例的基于OpenGL的线型绘制方法,包括:在CPU端:根据要绘制的线条建立一维整数数组,所述一维整数数组中每个元素值交替表示为实线长度或空白长度;将所述一维整数数组转换为一维纹理数组并传送到GPU端;在GPU端:计算要绘制的线条上每个顶点距离起点的距离,记为距离数据;将所述距离数据以顶点属性方式传入顶点着色器,根据所述距离数据的顶点属性计算采样距离,并将所述采样距离传递给片元着色器;根据所述采样距离,在所述片元着色器中对生成的一维纹理进行采样并生成片元信息;根据所述片元信息进行可视化表达。
根据本发明的一些实施例,所述将所述一维整数数组转换为一维纹理数组步骤包括:根据所述一维整数数组中表示实线长度的元素的值,生成对应数量的值为255的元素;根据所述一维整数数组中表示空白长度的元素的值,生成对应数量的值为0的元素。
根据本发明的一些实施例,所述方法还包括:在绘制GL_LINE_LOOP图元时,在其顶点序列最后添加该序列的第一个顶点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市显控科技股份有限公司,未经深圳市显控科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110142558.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种通信设备
- 下一篇:一种地域性的离线口音语音识别系统的生成方法和装置