基于OpenGL ES非固定管线矢量点显示方法和装置制造方法及图纸

技术编号:10272907 阅读:240 留言:0更新日期:2014-07-31 14:58
一种基于OpenGL ES非固定管线的矢量点显示方法和装置,所述方法包括步骤:通过输入的点的坐标、宽度、颜色值获取所述点的2维方阵;根据所述2维方阵的逻辑坐标确定所述2维方阵的内接圆半径;从所述2维方阵中获取与方阵中心距离不大于所述内接圆半径的像素点;将获取的所述像素点进行颜色输出。本发明专利技术无须借助额外的圆点位图,直接对2维方阵进行筛选,将与方阵中心距离不大于所述内接圆半径的像素点进行颜色输出,直接显示圆点,简单快速,并且当需要绘制多个矢量圆点时,只需重复执行本发明专利技术所提供的方法即可实现,使圆点显示操作变得简单高效。

【技术实现步骤摘要】
基于OpenGLES非固定管线矢量点显示方法和装置
本专利技术涉及图像显示
,特别是涉及一种基于OpenGLES非固定管线的矢量点显示方法和装置。
技术介绍
OpenGLES(OpenGLforEmbeddedSystems)是OpenGL(OpenGraphicsLibrary)三维图形API(ApplicationProgrammingInterface,应用程序编程接口)的子集,针对手机、PDA(PersonalDigitalAssistant,掌上电脑)和游戏主机等嵌入式设备而设计。管线又称之为渲染管线,OpenGLES在渲染处理过程中会顺序执行一系列操作,这一系列相关处理阶段被称之为OpenGLES渲染管线。目前OpenGLES支持固定管线和非固定管线(即可编程管线)两种。在使用OpenGLES渲染引擎的非固定管线进行矢量点绘制时,绘制的点只能是方点,比如绘制的点的宽度为10,那么显示出来的点就是边长为10个像素点的正方形区域。但是在实际应用中往往需要圆点,现有的方法是预先准备圆点位图,通过对圆点位图进行数据读取、解码、纹理贴图等操作显示该圆点位图从而间接得到圆点。但是当显示的圆点比较多时,例如10000个,采用现有的圆点位图方法需要对位图进行解析并进行10000次贴图,操作比较繁琐。
技术实现思路
基于此,有必要针对上述问题,提供一种基于OpenGLES非固定管线的矢量点显示方法和装置,使其可以真实高效的显示矢量圆点。一种基于OpenGLES非固定管线的矢量点显示方法,包括步骤:通过输入的点的坐标、宽度、颜色值获取所述点的2维方阵;根据所述2维方阵的逻辑坐标确定所述2维方阵的内接圆半径;从所述2维方阵中获取与方阵中心距离不大于所述内接圆半径的像素点;将获取的所述像素点进行颜色输出。一种基于OpenGLES非固定管线的矢量点显示装置,包括:点着色器,用于通过输入的点的坐标、宽度、颜色值获取所述点的2维方阵;片元着色器,用于根据所述2维方阵的逻辑坐标确定所述2维方阵的内接圆半径,然后从所述2维方阵中获取与方阵中心距离不大于所述内接圆半径的像素点,并将获取的所述像素点进行颜色输出。本专利技术基于OpenGLES非固定管线的矢量点显示方法和装置,与现有技术相互比较时,具有以下优点:1、无须借助额外的圆点位图,直接对2维方阵进行筛选,将与方阵中心距离不大于所述内接圆半径的像素点进行颜色输出,直接显示圆点,简单快速,并且当需要绘制多个矢量圆点时,只需重复执行本专利技术所提供的方法即可实现,使圆点显示操作变得简单高效;2、在用OpenGLES绘制粗线时,通过本专利技术程序可以直接在粗线的拐点处补圆点,使绘制的粗线变得圆滑,改善粗线的显示效果。附图说明图1为本专利技术方法实施例的流程示意图;图2为本专利技术装置实施例的结构示意图。具体实施方式下面结合附图对本专利技术基于OpenGLES非固定管线矢量点显示方法的具体实施方式做详细描述。如图1所示,一种基于OpenGLES非固定管线的矢量点显示方法,包括步骤:S100、通过输入的点的坐标、宽度、颜色值获取所述点的2维方阵,其中点的宽度需要进行设置,否则输入的点默认为一个像素点大小;S200、根据所述2维方阵的逻辑坐标确定所述2维方阵的内接圆半径,内接圆半径可以根据现有技术的已知方法获得,方阵的内接圆半径一般为方阵边长的一半;逻辑坐标是独立于设备的,既可以与设备单位相同,也可以是自定义的一种单位;S300、从所述2维方阵中获取与方阵中心距离不大于所述内接圆半径的像素点;S400、将获取的所述像素点进行颜色输出,即将获取的所述像素点转化成可被渲染到屏幕上的像素点,并设置该像素点的颜色值,由于只对与方阵中心距离不大于内接圆半径的像素点进行颜色输出,所以最后显示的是圆点。本专利技术方法可以通过代码或程序实现,是OpenGLES应用程序的一部分,可以运行在显卡上。步骤S100中的2维方阵的获取可以通过调用OpenGLES的绘制点的函数实现,例如调用glDrawArrays(GL_POINTS,0,pointcount)命令显卡绘制点,通过对OpenGLES输入点的坐标、宽度、颜色值进行光栅化获取所述点的2维方阵,其中通过对输入的点光栅化获取2维方阵的过程可以通过现有技术实现。获取的2维方阵大小为点宽度*点宽度,例如点的宽度为10个像素点,那么获取的2维方阵即为10*10。为了方便的绘制多个圆点以及调用OpenGLES内建变量函数,可以将一个点看作一个完整的单元,那么所述2维方阵左下角逻辑坐标为(0.0,0.0),方阵中心逻辑坐标为(0.5,0.5),右上角逻辑坐标为(1.0,1.0),求出的所述2维方阵的内接圆半径即为0.5。以步骤S200中求解出的内接圆半径为筛选条件,计算所述2维方阵中每个像素点到方阵中心的距离,其中各像素点到方阵中心的距离可以借助OpenGLES提供的内建变量函数计算,例如可以根据公式length(gl_PointCoord-vec(x,y))≤R获取与方阵中心距离不大于所述内接圆半径的像素点,其中gl_PointCoord的值是当前像素点的逻辑坐标,vec(x,y)是方阵中心的逻辑坐标,length是长度计算函数,R是所述内接圆半径。若2维方阵的内接圆半径为0.5,方阵中心逻辑坐标为(0.5,0.5),那么获取与方阵中心距离不大于所述内接圆半径的像素点的公式就可以变为length(gl_PointCoord-vec(0.5,0.5))≤0.5。按照步骤S300中方法对2维方阵进行筛选之后,即获取到圆形点阵的像素点,对获取的所述像素点进行颜色输出,使其变为可以显示到计算机屏幕上的像素点,那么显示出来的图形即为圆点,其中对像素点进行颜色输出以及将所述像素点显示到计算机屏幕上可以通过现有技术中已知的方法实现。当需要绘制其它圆点时,只需要重复执行本专利技术提供的方法,即所有的圆点绘制都可以使用该方法,大大提高了圆点显示的高效性及易用性。同时在用OpenGLES绘制粗线时,由于点均为方形,在粗线的拐角处会有小突起,影响粗线的显示效果,而通过本专利技术方法可以直接在粗线的拐点处补圆点,使绘制的粗线变得圆滑,大大改善了粗线的显示效果。基于同一专利技术构思,本专利技术还提供一种基于OpenGLES非固定管线的矢量点显示装置,下面结合附图对本专利技术装置的具体实施方式做详细描述。如图2所示,一种基于OpenGLES非固定管线的矢量点显示装置,包括:顶点着色器100,用于通过输入的点的坐标、宽度、颜色值获取所述点的2维方阵;其中点的宽度需要进行设置,否则输入的点默认为一个像素点大小;片元着色器200,用于根据所述2维方阵的逻辑坐标确定所述2维方阵的内接圆半径,然后从所述2维方阵中获取与方阵中心距离不大于所述内接圆半径的像素点,并将获取的所述像素点进行颜色输出;顶点着色器100和片元着色器200是OpenGLES应用程序的一部分,即为代码模块,运行在显卡上,绘制速度快;内接圆半径可以根据现有技术的已知方法获得,方阵的内接圆半径一般为方阵边长的一半;逻辑坐标是独立于设备的,既可以与设备单位相同,也可以是自定义的一种单位;将获取的所述像素点进行颜色输出,即将获取的所述像素点转化成可被渲染到屏幕上的像素点,本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201410182290.html" title="基于OpenGL ES非固定管线矢量点显示方法和装置原文来自X技术">基于OpenGL ES非固定管线矢量点显示方法和装置</a>

【技术保护点】
一种基于OpenGL ES非固定管线的矢量点显示方法,其特征在于,包括步骤:通过输入的点的坐标、宽度、颜色值获取所述点的2维方阵;根据所述2维方阵的逻辑坐标确定所述2维方阵的内接圆半径;从所述2维方阵中获取与方阵中心距离不大于所述内接圆半径的像素点;将获取的所述像素点进行颜色输出。

【技术特征摘要】
1.一种基于OpenGLES非固定管线的矢量点显示方法,其特征在于,包括步骤:通过输入的点的坐标、宽度、颜色值获取所述点的2维方阵;根据所述2维方阵的逻辑坐标确定所述2维方阵的内接圆半径;从所述2维方阵中获取与方阵中心距离不大于所述内接圆半径的像素点;将获取的所述像素点进行颜色输出。2.根据权利要求1所述的基于OpenGLES非固定管线的矢量点显示方法,其特征在于,根据公式length(gl_PointCoord-vec(x,y))≤R获取与方阵中心距离不大于所述内接圆半径的像素点,其中gl_PointCoord的值是当前像素点的逻辑坐标,vec(x,y)是方阵中心的逻辑坐标,length是长度计算函数,R是所述内接圆半径。3.根据权利要求1所述的基于OpenGLES非固定管线的矢量点显示方法,其特征在于,所述2维方阵左下角逻辑坐标为(0.0,0.0),方阵中心逻辑坐标为(0.5,0.5),右上角逻辑坐标为(1.0,1.0)。4.根据权利要求1至3任意一项所述的基于OpenGLES非固定管线的矢量点显示方法,其特征在于,调用glDrawArrays(GL_POINTS,0,pointcount)命令显卡绘制点,通过对OpenGLES输入点的坐标、宽度、颜色值进行光栅化获取所述点的2维方阵。5.一种基于OpenGLES非固定管线的矢量点显示装置,...

【专利技术属性】
技术研发人员:陈泓坤
申请(专利权)人:广东威创视讯科技股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1