[发明专利]基于OpenGL的线型绘制方法、系统及介质在审
申请号: | 202110142558.3 | 申请日: | 2021-02-02 |
公开(公告)号: | CN112907436A | 公开(公告)日: | 2021-06-04 |
发明(设计)人: | 宋斌;杨哲宇 | 申请(专利权)人: | 深圳市显控科技股份有限公司 |
主分类号: | G06T1/20 | 分类号: | G06T1/20;G06T15/00 |
代理公司: | 广州嘉权专利商标事务所有限公司 44205 | 代理人: | 洪铭福 |
地址: | 518000 广东省深圳市深*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 opengl 线型 绘制 方法 系统 介质 | ||
1.一种基于OpenGL的线型绘制方法,其特征在于,包括:
在CPU端:
根据要绘制的线条建立一维整数数组,所述一维整数数组中每个元素值交替表示为实线长度或空白长度;
将所述一维整数数组转换为一维纹理数组并传送到GPU端;
在GPU端:
计算要绘制的线条上每个顶点距离起点的距离,记为距离数据;
将所述距离数据以顶点属性方式传入顶点着色器,根据所述距离数据的顶点属性计算采样距离,并将所述采样距离传递给片元着色器;
根据所述采样距离,在所述片元着色器中对生成的一维纹理进行采样并生成片元信息;
根据所述片元信息进行可视化表达。
2.根据权利要求1所述的基于OpenGL的线型绘制方法,其特征在于,所述将所述一维整数数组转换为一维纹理数组步骤包括:
根据所述一维整数数组中表示实线长度的元素的值,生成对应数量的值为255的元素;
根据所述一维整数数组中表示空白长度的元素的值,生成对应数量的值为0的元素。
3.根据权利要求1所述的基于OpenGL的线型绘制方法,其特征在于,所述方法还包括:在绘制GL_LINE_LOOP图元时,在其顶点序列最后添加该序列的第一个顶点。
4.一种基于OpenGL的线型绘制方法,其特征在于,包括:
在CPU端:
根据要绘制的线条建立一维整数数组,所述一维整数数组中每个元素值交替表示为实线长度或空白长度;
将所述一维整数数组转换为一维纹理数组并传送到GPU端;
在GPU端:
计算要绘制的线条上每个顶点距离起点的距离,得到顶点的间距数组;
在顶点着色器中定义一个SSBO,所述SSBO包括要绘制的顶点数组,每个顶点的间距数组和一个bool值;
根据所述顶点的间距数组计算得到采样距离,将所述采样距离传递给片元着色器;
在所述片元着色器中对生成的一维纹理进行采样并生成片元信息;
根据所述片元信息进行可视化表达。
5.根据权利要求4所述的基于OpenGL的线型绘制方法,其特征在于,所述将所述一维整数数组转换为一维纹理数组步骤包括:
根据所述一维整数数组中表示实线长度的元素的值,生成对应数量的值为255的元素;
根据所述一维整数数组中表示空白长度的元素的值,生成对应数量的值为0的元素。
6.根据权利要求4所述的基于OpenGL的线型绘制方法,其特征在于,所述方法还包括:在绘制GL_LINE_LOOP图元时,在其顶点序列最后添加该序列的第一个顶点。
7.一种基于OpenGL的线型绘制系统,其特征在于,包括:
在CPU端:
线型编码模块,用于根据要绘制的线条建立一维整数数组,所述一维整数数组中每个元素值交替表示为实线长度或空白长度;
数组转换模块,用于将所述一维整数数组转换为一维纹理数组并传送到GPU端;
在GPU端:
距离数据计算模块,用于计算要绘制的线条上每个顶点距离起点的距离,记为距离数据;
采样距离计算模块,用于将所述距离数据以顶点属性方式传入顶点着色器,根据所述距离数据的顶点属性计算采样距离,并将所述采样距离传递给片元着色器;
片元信息生成模块,用于根据所述采样距离,在所述片元着色器中对生成的一维纹理进行采样并生成片元信息;
绘制模块,用于根据所述片元信息进行可视化表达。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市显控科技股份有限公司,未经深圳市显控科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110142558.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种通信设备
- 下一篇:一种地域性的离线口音语音识别系统的生成方法和装置