一种基于OpenGL ES2.0绘制图元的方法及系统技术方案

技术编号:22755118 阅读:22 留言:0更新日期:2019-12-07 03:59
本发明专利技术实施例提供一种基于OpenGL ES2.0绘制图元的方法及系统,其中方法包括:构建着色器管理类,所述着色器管理类中存储有多种预设的着色器源代码字符串,且每种预设的着色器源代码字符串都有对应的着色器标识;基于着色器对应的着色器标识,对所述着色器进行初始化;根据着色器标识和对应着色器源代码字符串封装使用着色器的方法;绘制并显示图元。通过设置存储有多种预设的着色器源代码字符串的着色器管理类,简化了使用OpenGL ES2.0绘制图元的过程,同时解决了不用频繁修改着色器源代码字符串就可以定制化创建所需的着色器,可以方便地进行定制化绘制。

A method and system of drawing entity based on OpenGL es2.0

The embodiment of the invention provides a method and system for drawing entity based on OpenGL es2.0, wherein the method includes: constructing a shader management class, in which a variety of preset shader source code strings are stored, and each preset's shader source code string has a corresponding shader ID; based on the corresponding shader ID of the shader, the shader management class has a corresponding shader ID Initialize; encapsulate the method of using the shader according to the shader ID and the corresponding shader source code string; draw and display the entity. By setting up the shader management class which stores a variety of preset shader source code strings, the process of drawing primitives with OpenGL es2.0 is simplified. At the same time, it solves the problem that the required shaders can be customized without frequently modifying the shader source code strings, and the customized drawing can be easily carried out.

【技术实现步骤摘要】
一种基于OpenGLES2.0绘制图元的方法及系统
本专利技术涉及计算机
,更具体地,涉及一种基于OpenGLES2.0绘制图元的方法及系统。
技术介绍
传统的OpenGLES2.0绘制图元(包括点、线、面)的步骤一般包括创建着色器(包括顶点着色器和片元着色器)、指定着色器源代码字符串、编译着色器、创建着色器可执行程序、向可执行程序中添加着色器、链接可执行程序、使用可执行程序、绘制并显示图元。其中,在指定着色器源代码字符串时,一般使用GLSL语言,要么在程序中直接写好使用,要么使用GLSL文件的方式进行加载,而且着色器源代码字符串的编写是否成功直接影响到着色器可执行程序是否能创建成功,最终影响到图元能否显示。综合以上情况,OpenGLES2.0绘制一个图元的传统方法很复杂,而且要进行定制化绘制的时候需要修改着色器源代码字符串,很不方便且容易失败。
技术实现思路
本专利技术实施例提供一种克服上述问题或者至少部分地解决上述问题的基于OpenGLES2.0绘制图元的方法及系统。第一方面,本专利技术实施例提供一种基于OpenGLES2.0绘制图元的方法,包括:构建着色器管理类,所述着色器管理类中存储有多种预设的着色器源代码字符串,且每种预设的着色器源代码字符串都有对应的着色器标识;基于着色器对应的着色器标识,对所述着色器进行初始化;根据着色器标识和对应着色器源代码字符串封装使用着色器的方法;绘制并显示图元。可选地,所述着色器管理类中存储有顶点着色器和片元着色器的对中预设的着色器源代码字符串。可选地,基于着色器对应的着色器标识,对所述着色器进行初始化,具体包括:基于所述着色器对应的着色器标识,从所述着色器管理类中选取对应的预设的着色器源代码字符串;利用所述对应的预设的着色器源代码字符串对所述着色器进行初始化。可选地,所述利用所述对应的预设的着色器源代码字符串对所述着色器进行初始化,具体包括:利用所述对应的预设的着色器源代码字符串依次编译着色器、创建着色器可执行程序、向可执行程序中添加着色器、链接可执行程序、使用可执行程序。可选地,还包括:增加额外种类的预设的着色器源代码字符串至所述着色器管理类中。第二方面,本专利技术实施例提供一种基于OpenGLES2.0绘制图元的系统,包括:构建模块,用于构建着色器管理类,所述着色器管理类中存储有多种预设的着色器源代码字符串,且每种预设的着色器源代码字符串都有对应的着色器标识;初始化模块,用于基于着色器对应的着色器标识,对所述着色器进行初始化;封装模块,用于根据着色器标识和对应着色器源代码字符串封装使用着色器的方法;绘制模块,用于绘制并显示图元。第三方面,本专利技术实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的基于OpenGLES2.0绘制图元的方法的步骤。第四方面,本专利技术实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的基于OpenGLES2.0绘制图元的方法的步骤。本专利技术实施例提供的基于OpenGLES2.0绘制图元的方法及系统,通过设置存储有多种预设的着色器源代码字符串的着色器管理类,简化了使用OpenGLES2.0绘制图元的过程,同时解决了不用频繁修改着色器源代码字符串就可以定制化创建所需的着色器,可以方便地进行定制化绘制。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种基于OpenGLES2.0绘制图元的方法的流程示意图;图2为本专利技术实施例提供的一种基于OpenGLES2.0绘制图元的系统的结构框图;图3为本专利技术实施例提供的电子设备的实体结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。在本专利技术实施例的方案进行详细说明之前,先对方案中涉及到的几个名词进行解释如下:着色器:着色器(Shader)是用来实现图像渲染的,用来替代固定渲染管线的可编辑程序。本文中提到的着色器指顶点着色器和片元着色器。顶点着色器:顶点着色器是一组指令代码,这组指令代码在顶点被渲染时执行。顶点着色器只管独立的顶点,顶点之间并不建立联系,用于计算顶点的裁剪坐标、深度缓冲、颜色及纹理坐标等。片元着色器:片元着色器也是一组指令代码,其作用是处理由光栅化阶段生成的每个片元,最终计算出每个像素的最终颜色。GLSL:OpenGL中着色编程的语言,也即开发人员写的短小的自定义程序。图1为本专利技术实施例提供的一种基于OpenGLES2.0绘制图元的方法的流程示意图,如图1所示,该方法包括:S101,构建着色器管理类,所述着色器管理类中存储有多种预设的着色器源代码字符串,且每种预设的着色器源代码字符串都有对应的着色器标识;S102,基于着色器对应的着色器标识,对所述着色器进行初始化;S103,根据着色器标识和对应着色器源代码字符串封装使用着色器的方法;S104,绘制并显示图元。具体地,图元绘制过程可以包括以下步骤:第一,创建着色器管理类,将常用的几种着色器源代码字符串先在类中写好,有扩展时再添加,此管理类可同时管理顶点着色器和片元着色器。第二,给每一个着色器设定一个标识。第三,基于着色器标识,初始化着色器;根据初始化的结果,对着色器进行编译、添加和链接。第四,根据标识和着色器源代码字符串封装使用着色器的方法;定制化绘制时,创建自己的顶点数据,根据标识使用相应的着色器,不需要修改着色器源代码字符串。本专利技术实施例提供的基于OpenGLES2.0绘制图元的方法,通过设置存储有多种预设的着色器源代码字符串的着色器管理类,简化了使用OpenGLES2.0绘制图元的过程,同时解决了不用频繁修改着色器源代码字符串就可以定制化创建所需的着色器,可以方便地进行定制化绘制。在本专利技术的一个可选实施例中,所述着色器管理类中存储有顶点着色器和片元着色器的对中预设的着色器源代码字符串。在本专利技术的一个可选实施例中,基于着色器对应的着色器标识,对所述着色器进行初始化,具体包括:基于所述着色器对应的着色器标识,从所述着色器管理类中选取对应的预设的着色器源代码字符串;利用所本文档来自技高网...

【技术保护点】
1.一种基于OpenGL ES2.0绘制图元的方法,其特征在于,包括:/n构建着色器管理类,所述着色器管理类中存储有多种预设的着色器源代码字符串,且每种预设的着色器源代码字符串都有对应的着色器标识;/n基于着色器对应的着色器标识,对所述着色器进行初始化;/n根据着色器标识和对应着色器源代码字符串封装使用着色器的方法;/n绘制并显示图元。/n

【技术特征摘要】
1.一种基于OpenGLES2.0绘制图元的方法,其特征在于,包括:
构建着色器管理类,所述着色器管理类中存储有多种预设的着色器源代码字符串,且每种预设的着色器源代码字符串都有对应的着色器标识;
基于着色器对应的着色器标识,对所述着色器进行初始化;
根据着色器标识和对应着色器源代码字符串封装使用着色器的方法;
绘制并显示图元。


2.根据权利要求1所述的方法,其特征在于,所述着色器管理类中存储有顶点着色器和片元着色器的对中预设的着色器源代码字符串。


3.根据权利要求1所述的方法,其特征在于,基于着色器对应的着色器标识,对所述着色器进行初始化,具体包括:
基于所述着色器对应的着色器标识,从所述着色器管理类中选取对应的预设的着色器源代码字符串;
利用所述对应的预设的着色器源代码字符串对所述着色器进行初始化。


4.根据权利要求3所述的方法,其特征在于,所述利用所述对应的预设的着色器源代码字符串对所述着色器进行初始化,具体包括:
利用所述对应的预设的着色器源代码字符串依次编译着色器、创建着色器可执行程序、向可执行程序中添加...

【专利技术属性】
技术研发人员:林云齐甘霖郑武贞尚忠亮罗跃军
申请(专利权)人:武汉中海庭数据技术有限公司
类型:发明
国别省市:湖北;42

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

1