CN103955965A - 基于OpenGL ES非固定管线矢量点显示方法和装置 - Google Patents
基于OpenGL ES非固定管线矢量点显示方法和装置 Download PDFInfo
- Publication number
- CN103955965A CN103955965A CN201410182290.6A CN201410182290A CN103955965A CN 103955965 A CN103955965 A CN 103955965A CN 201410182290 A CN201410182290 A CN 201410182290A CN 103955965 A CN103955965 A CN 103955965A
- Authority
- CN
- China
- Prior art keywords
- point
- opengl
- pixel
- inradius
- dimension
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Image Generation (AREA)
Abstract
一种基于OpenGL ES非固定管线的矢量点显示方法和装置,所述方法包括步骤:通过输入的点的坐标、宽度、颜色值获取所述点的2维方阵;根据所述2维方阵的逻辑坐标确定所述2维方阵的内接圆半径;从所述2维方阵中获取与方阵中心距离不大于所述内接圆半径的像素点;将获取的所述像素点进行颜色输出。本发明无须借助额外的圆点位图,直接对2维方阵进行筛选,将与方阵中心距离不大于所述内接圆半径的像素点进行颜色输出,直接显示圆点,简单快速,并且当需要绘制多个矢量圆点时,只需重复执行本发明所提供的方法即可实现,使圆点显示操作变得简单高效。
Description
技术领域
本发明涉及图像显示技术领域,特别是涉及一种基于OpenGL ES非固定管线的矢量点显示方法和装置。
背景技术
OpenGL ES(OpenGL for Embedded Systems)是OpenGL(Open GraphicsLibrary)三维图形API(Application Programming Interface,应用程序编程接口)的子集,针对手机、PDA(Personal Digital Assistant,掌上电脑)和游戏主机等嵌入式设备而设计。管线又称之为渲染管线,OpenGL ES在渲染处理过程中会顺序执行一系列操作,这一系列相关处理阶段被称之为OpenGL ES渲染管线。目前OpenGL ES支持固定管线和非固定管线(即可编程管线)两种。
在使用OpenGL ES渲染引擎的非固定管线进行矢量点绘制时,绘制的点只能是方点,比如绘制的点的宽度为10,那么显示出来的点就是边长为10个像素点的正方形区域。但是在实际应用中往往需要圆点,现有的方法是预先准备圆点位图,通过对圆点位图进行数据读取、解码、纹理贴图等操作显示该圆点位图从而间接得到圆点。但是当显示的圆点比较多时,例如10000个,采用现有的圆点位图方法需要对位图进行解析并进行10000次贴图,操作比较繁琐。
发明内容
基于此,有必要针对上述问题,提供一种基于OpenGL ES非固定管线的矢量点显示方法和装置,使其可以真实高效的显示矢量圆点。
一种基于OpenGL ES非固定管线的矢量点显示方法,包括步骤:
通过输入的点的坐标、宽度、颜色值获取所述点的2维方阵;
根据所述2维方阵的逻辑坐标确定所述2维方阵的内接圆半径;
从所述2维方阵中获取与方阵中心距离不大于所述内接圆半径的像素点;
将获取的所述像素点进行颜色输出。
一种基于OpenGL ES非固定管线的矢量点显示装置,包括:
点着色器,用于通过输入的点的坐标、宽度、颜色值获取所述点的2维方阵;
片元着色器,用于根据所述2维方阵的逻辑坐标确定所述2维方阵的内接圆半径,然后从所述2维方阵中获取与方阵中心距离不大于所述内接圆半径的像素点,并将获取的所述像素点进行颜色输出。
本发明基于OpenGL ES非固定管线的矢量点显示方法和装置,与现有技术相互比较时,具有以下优点:
1、无须借助额外的圆点位图,直接对2维方阵进行筛选,将与方阵中心距离不大于所述内接圆半径的像素点进行颜色输出,直接显示圆点,简单快速,并且当需要绘制多个矢量圆点时,只需重复执行本发明所提供的方法即可实现,使圆点显示操作变得简单高效;
2、在用OpenGL ES绘制粗线时,通过本发明程序可以直接在粗线的拐点处补圆点,使绘制的粗线变得圆滑,改善粗线的显示效果。
附图说明
图1为本发明方法实施例的流程示意图;
图2为本发明装置实施例的结构示意图。
具体实施方式
下面结合附图对本发明基于OpenGL ES非固定管线矢量点显示方法的具体实施方式做详细描述。
如图1所示,一种基于OpenGL ES非固定管线的矢量点显示方法,包括步骤:
S100、通过输入的点的坐标、宽度、颜色值获取所述点的2维方阵,其中点的宽度需要进行设置,否则输入的点默认为一个像素点大小;
S200、根据所述2维方阵的逻辑坐标确定所述2维方阵的内接圆半径,内接圆半径可以根据现有技术的已知方法获得,方阵的内接圆半径一般为方阵边长的一半;逻辑坐标是独立于设备的,既可以与设备单位相同,也可以是自定义的一种单位;
S300、从所述2维方阵中获取与方阵中心距离不大于所述内接圆半径的像素点;
S400、将获取的所述像素点进行颜色输出,即将获取的所述像素点转化成可被渲染到屏幕上的像素点,并设置该像素点的颜色值,由于只对与方阵中心距离不大于内接圆半径的像素点进行颜色输出,所以最后显示的是圆点。
本发明方法可以通过代码或程序实现,是OpenGL ES应用程序的一部分,可以运行在显卡上。步骤S100中的2维方阵的获取可以通过调用OpenGL ES的绘制点的函数实现,例如调用glDrawArrays(GL_POINTS,0,pointcount)命令显卡绘制点,通过对OpenGL ES输入点的坐标、宽度、颜色值进行光栅化获取所述点的2维方阵,其中通过对输入的点光栅化获取2维方阵的过程可以通过现有技术实现。获取的2维方阵大小为点宽度*点宽度,例如点的宽度为10个像素点,那么获取的2维方阵即为10*10。
为了方便的绘制多个圆点以及调用OpenGL ES内建变量函数,可以将一个点看作一个完整的单元,那么所述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维方阵进行筛选之后,即获取到圆形点阵的像素点,对获取的所述像素点进行颜色输出,使其变为可以显示到计算机屏幕上的像素点,那么显示出来的图形即为圆点,其中对像素点进行颜色输出以及将所述像素点显示到计算机屏幕上可以通过现有技术中已知的方法实现。
当需要绘制其它圆点时,只需要重复执行本发明提供的方法,即所有的圆点绘制都可以使用该方法,大大提高了圆点显示的高效性及易用性。同时在用OpenGL ES绘制粗线时,由于点均为方形,在粗线的拐角处会有小突起,影响粗线的显示效果,而通过本发明方法可以直接在粗线的拐点处补圆点,使绘制的粗线变得圆滑,大大改善了粗线的显示效果。
基于同一发明构思,本发明还提供一种基于OpenGL ES非固定管线的矢量点显示装置,下面结合附图对本发明装置的具体实施方式做详细描述。
如图2所示,一种基于OpenGL ES非固定管线的矢量点显示装置,包括:
顶点着色器100,用于通过输入的点的坐标、宽度、颜色值获取所述点的2维方阵;其中点的宽度需要进行设置,否则输入的点默认为一个像素点大小;
片元着色器200,用于根据所述2维方阵的逻辑坐标确定所述2维方阵的内接圆半径,然后从所述2维方阵中获取与方阵中心距离不大于所述内接圆半径的像素点,并将获取的所述像素点进行颜色输出;
顶点着色器100和片元着色器200是OpenGL ES应用程序的一部分,即为代码模块,运行在显卡上,绘制速度快;内接圆半径可以根据现有技术的已知方法获得,方阵的内接圆半径一般为方阵边长的一半;逻辑坐标是独立于设备的,既可以与设备单位相同,也可以是自定义的一种单位;将获取的所述像素点进行颜色输出,即将获取的所述像素点转化成可被渲染到屏幕上的像素点,由于只对与方阵中心距离不大于内接圆半径的像素点进行颜色输出,所以最后显示的是圆点。
2维方阵的获取可以通过调用OpenGL ES提供的绘制点的函数实现,例如,在一个实施例中,本发明装置还可以包括与顶点着色器100相连的数据输入模块,用于调用glDrawArrays(GL_POINTS,0,pointcount)命令显卡绘制点,将点的坐标、宽度、颜色值输入到所述顶点着色器100,然后所述顶点着色器100对所述点进行光栅化获取所述点的2维方阵,其中通过对输入的点光栅化获取2维方阵的过程可以通过现有技术实现。获取的2维方阵大小为点宽度*点宽度,例如点的宽度为10个像素点,那么获取的2维方阵即为10*10。
为了方便的绘制多个圆点以及调用OpenGL ES内建变量函数,在一个实施例中,可以将一个点看作一个完整的单元,所述2维方阵左下角逻辑坐标为(0.0,0.0),方阵中心逻辑坐标为(0.5,0.5),右上角逻辑坐标为(1.0,1.0),求出的所述2维方阵的内接圆半径即为0.5。
所述片元着色器200以求解出的内接圆半径为筛选条件,计算所述2维方阵中每个像素点到方阵中心的距离,其中各像素点到方阵中心的距离可以借助OpenGL ES提供的内建变量函数计算,例如所述片元着色器200可以根据公式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。
所述片元着色器200对2维方阵进行筛选之后,即获取到圆形点阵的像素点,对获取的所述像素点进行颜色输出,使其变为可以显示到计算机屏幕上的像素点,那么显示出来的图形即为圆点,其中对像素点进行颜色输出以及将所述像素点显示到计算机屏幕上可以通过现有技术中已知的方法实现。
当需要绘制其它圆点时,只需要调用本发明提供的装置,即所有的圆点绘制都可以使用该装置,大大提高了圆点显示的高效性及易用性,当不需要显示圆点时,可以直接删除本发明装置,不影响现有方形点的正常显示。同时在用OpenGL ES绘制粗线时,由于点均为方形,在粗线的拐角处会有小突起,影响粗线的显示效果,而通过本发明装置可以直接在粗线的拐点处补圆点,使绘制的粗线变得圆滑,大大改善了粗线的显示效果。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种基于OpenGL ES非固定管线的矢量点显示方法,其特征在于,包括步骤:
通过输入的点的坐标、宽度、颜色值获取所述点的2维方阵;
根据所述2维方阵的逻辑坐标确定所述2维方阵的内接圆半径;
从所述2维方阵中获取与方阵中心距离不大于所述内接圆半径的像素点;
将获取的所述像素点进行颜色输出。
2.根据权利要求1所述的基于OpenGL ES非固定管线的矢量点显示方法,其特征在于,根据公式length(gl_PointCoord-vec(x,y))≤R获取与方阵中心距离不大于所述内接圆半径的像素点,其中gl_PointCoord的值是当前像素点的逻辑坐标,vec(x,y)是方阵中心的逻辑坐标,length是长度计算函数,R是所述内接圆半径。
3.根据权利要求1所述的基于OpenGL ES非固定管线的矢量点显示方法,其特征在于,所述2维方阵左下角逻辑坐标为(0.0,0.0),方阵中心逻辑坐标为(0.5,0.5),右上角逻辑坐标为(1.0,1.0)。
4.根据权利要求1至3任意一项所述的基于OpenGL ES非固定管线的矢量点显示方法,其特征在于,调用glDrawArrays(GL_POINTS,0,pointcount)命令显卡绘制点,通过对OpenGL ES输入点的坐标、宽度、颜色值进行光栅化获取所述点的2维方阵。
5.一种基于OpenGL ES非固定管线的矢量点显示装置,其特征在于,包括:
顶点着色器,用于通过输入的点的坐标、宽度、颜色值获取所述点的2维方阵;
片元着色器,用于根据所述2维方阵的逻辑坐标确定所述2维方阵的内接圆半径,然后从所述2维方阵中获取与方阵中心距离不大于所述内接圆半径的像素点,并将获取的所述像素点进行颜色输出。
6.根据权利要求5所述的基于OpenGL ES非固定管线的矢量点显示装置,其特征在于,所述片元着色器根据公式length(gl_PointCoord-vec(x,y))≤R获取与方阵中心距离不大于所述内接圆半径的像素点,其中gl_PointCoord的值是当前像素点的逻辑坐标,vec(x,y)是方阵中心的逻辑坐标,length是长度计算函数,R是所述内接圆半径。
7.根据权利要求5所述的基于OpenGL ES非固定管线的矢量点显示装置,其特征在于,所述2维方阵左下角逻辑坐标为(0.0,0.0),方阵中心逻辑坐标为(0.5,0.5),右上角逻辑坐标为(1.0,1.0)。
8.根据权利要求5至7任意一项所述的基于OpenGL ES非固定管线的矢量点显示装置,其特征在于,还包括与顶点着色器相连的数据输入模块,用于调用glDrawArrays(GL_POINTS,0,pointcount)命令显卡绘制点,将点的坐标、宽度、颜色值输入到所述顶点着色器,然后所述顶点着色器对所述点进行光栅化获取所述点的2维方阵。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410182290.6A CN103955965B (zh) | 2014-04-30 | 2014-04-30 | 基于OpenGL ES非固定管线矢量点显示方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410182290.6A CN103955965B (zh) | 2014-04-30 | 2014-04-30 | 基于OpenGL ES非固定管线矢量点显示方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103955965A true CN103955965A (zh) | 2014-07-30 |
CN103955965B CN103955965B (zh) | 2017-02-15 |
Family
ID=51333234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410182290.6A Expired - Fee Related CN103955965B (zh) | 2014-04-30 | 2014-04-30 | 基于OpenGL ES非固定管线矢量点显示方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103955965B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108765534A (zh) * | 2018-05-24 | 2018-11-06 | 武汉斗鱼网络科技有限公司 | 一种图像渲染方法、装置、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719057A (zh) * | 2009-11-27 | 2010-06-02 | 广东威创视讯科技股份有限公司 | 绘制几何图形的方法及装置 |
CN103295252A (zh) * | 2013-05-15 | 2013-09-11 | 广东威创视讯科技股份有限公司 | 基于OpenGL的线段绘制交点的平滑处理方法及系统 |
-
2014
- 2014-04-30 CN CN201410182290.6A patent/CN103955965B/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108765534A (zh) * | 2018-05-24 | 2018-11-06 | 武汉斗鱼网络科技有限公司 | 一种图像渲染方法、装置、设备及存储介质 |
CN108765534B (zh) * | 2018-05-24 | 2022-06-21 | 武汉斗鱼网络科技有限公司 | 一种图像渲染方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103955965B (zh) | 2017-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6504212B2 (ja) | 装置、方法およびシステム | |
JP6676703B2 (ja) | 選択的ラスタライゼーション | |
KR101952983B1 (ko) | 콘텐트의 타일-기반 렌더링을 위한 방법 및 콘텐트를 렌더링하기 위한 시스템 | |
US10410398B2 (en) | Systems and methods for reducing memory bandwidth using low quality tiles | |
KR102454893B1 (ko) | 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치의 동작 방법 | |
US20140096087A1 (en) | Method and device for software interface display on terminal, and computer storage medium | |
CN105426191A (zh) | 用户界面显示处理方法及装置 | |
US9928621B2 (en) | Line stylization through graphics processor unit (GPU) textures | |
KR20180056316A (ko) | 타일-기반 렌더링을 수행하는 방법 및 장치 | |
US8525843B2 (en) | Graphic system comprising a fragment graphic module and relative rendering method | |
CN107301045B (zh) | 窗口显示方法及装置 | |
CN105719335A (zh) | 一种地图图像渲染方法、装置以及车载终端 | |
CN103955965A (zh) | 基于OpenGL ES非固定管线矢量点显示方法和装置 | |
CN116597044A (zh) | 一种军标绘制方法、装置、设备及可读储存介质 | |
CN103034975A (zh) | 图像处理方法及装置 | |
CN103593822B (zh) | 对数据图像进行磨砂特效处理的方法和装置 | |
US10089708B2 (en) | Constant multiplication with texture unit of graphics processing unit | |
CN110489083B (zh) | 一种纹理共享的方法、计算机设备和存储介质 | |
CN103049267A (zh) | 一种图像数据处理方法及装置 | |
CN112822418B (zh) | 视频处理方法和装置、存储介质和电子设备 | |
Duan et al. | Image interpolation by pixel-level data-dependent triangulation on android platform | |
CN104571799B (zh) | 信息处理方法及电子设备 | |
CN116912093A (zh) | 画面的渲染方法、装置、电子设备和存储介质 | |
CN104461480A (zh) | 一种信息处理方法及电子设备 | |
CN113487708A (zh) | 基于图形学的流动动画实现方法、存储介质及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: Kezhu road high tech Industrial Development Zone, Guangzhou city of Guangdong Province, No. 233 510670 Patentee after: Wei Chong group Limited by Share Ltd Address before: 510670 Guangdong city of Guangzhou province Kezhu Guangzhou high tech Industrial Development Zone, Road No. 233 Patentee before: Guangdong Weichuangshixun Science and Technology Co., Ltd. |
|
CP03 | Change of name, title or address | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170215 Termination date: 20210430 |
|
CF01 | Termination of patent right due to non-payment of annual fee |