一种OpenGLES2.0的uniform参数的配置方法及装置制造方法及图纸

技术编号:27498131 阅读:14 留言:0更新日期:2021-03-02 18:20
本发明专利技术提供的一种OpenGL ES 2.0的uniform参数的配置方法及装置,通过先获取所有的uniform参数,并进行预处理,再通过对所有预处理后的uniform参数进行打包处理,得到一通用数组;根据所述通用数组对OpenGL ES 2.0的着色器中的uniform参数进行配置,渲染时只需要调用一次uniform参数的接口,大大的降低了接口调用所产生的性能开销。了接口调用所产生的性能开销。了接口调用所产生的性能开销。

【技术实现步骤摘要】
一种OpenGL ES 2.0的uniform参数的配置方法及装置


[0001]本专利技术涉及计算机图形渲染
,特别涉及一种OpenGL ES 2.0的uniform参数的配置方法及装置。

技术介绍

[0002]OpenGL ES(OpenGL for Embedded Systems)是OpenG三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。该API由Khronos集团定义推广,Khronos是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准。
[0003]Android上面的OpenGL ES一共有三个版本,1.0,2.0以及现在的3.x(3.1,3.2),其中1.0是旧式的API,与桌面版本的OpenGL非常接近,但是却不太好用。
[0004]从2.0开始,API有较大变化,具体的渲染相关使用专门的着色语言来表达,然而现有的OpenGL ES 2.0下配置uniform参数通常需要逐个设置传递,在渲染中需要大量地调用uniform参数的接口,导致较大的性能开销。

技术实现思路

[0005](一)要解决的技术问题
[0006]为了解决现有技术的上述问题,本专利技术提供一种OpenGL ES 2.0的uniform参数的配置方法及装置,能够有效的减少渲染中uniform参数的接口的调用,降低性能开销。
[0007](二)技术方案
[0008]为了达到上述目的,本专利技术采用的一种技术方案为:
[0009]一种OpenGL ES 2.0的uniform参数的配置方法,包括步骤:
[0010]S1、获取所有的uniform参数,并进行预处理;
[0011]S2、对所有预处理后的uniform参数进行打包处理,得到一通用数组;
[0012]S3、根据所述通用数组对OpenGL ES 2.0的着色器中的uniform参数进行配置。
[0013]为了达到上述目的,本专利技术采用的一种技术方案为:
[0014]一种OpenGL ES 2.0的uniform参数的配置装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
[0015]S1、获取所有的uniform参数,并进行预处理;
[0016]S2、对所有预处理后的uniform参数进行打包处理,得到一通用数组;
[0017]S3、根据所述通用数组对OpenGL ES 2.0的着色器中的uniform参数进行配置。
[0018](三)有益效果
[0019]本专利技术的有益效果在于:通过先获取所有的uniform参数,并进行预处理,再通过对所有预处理后的uniform参数进行打包处理,得到一通用数组;根据所述通用数组对OpenGL ES 2.0的着色器中的uniform参数进行配置,渲染时只需要调用一次uniform参数的接口,大大的降低了接口调用所产生的性能开销。
附图说明
[0020]图1为本专利技术实施例的OpenGL ES 2.0的uniform参数的配置方法的流程图;
[0021]图2为本专利技术实施例的OpenGL ES 2.0的uniform参数的配置装置的结构示意图。
[0022]【附图标记说明】
[0023]1:OpenGL ES 2.0的uniform参数的配置装置;
[0024]2:存储器;
[0025]3:处理器。
具体实施方式
[0026]为了更好的解释本专利技术,以便于理解,下面结合附图,通过具体实施方式,对本专利技术作详细描述。
[0027]实施例一
[0028]请参照图1,一种OpenGL ES 2.0的uniform参数的配置方法,包括步骤:
[0029]S1、获取所有的uniform参数,并进行预处理;
[0030]步骤S1具体为:
[0031]获取所有的uniform参数,并根据uniform参数的类型进行相应的预处理。
[0032]所述的uniform参数的类型包括四维数组、4X4矩阵、三维数组、3X3矩阵、二维数据、float和bool。
[0033]所述的根据uniform参数的类型进行相应的预处理具体为:
[0034]若uniform参数为四维数组类型,则直接记录相应的索引和类型;
[0035]若uniform参数为4X4矩阵类型,则先拆分为4个四维数组,再记录相应的索引和类型;
[0036]若uniform参数为三维数组类型,则先用预设值填充为四维数组后,再记录相应的索引和类型;
[0037]若uniform参数为3X3矩阵类型,则先拆分为3个三维数组后,并分别用预设值填充为四维数组后,再记录相应的索引和类型;
[0038]若uniform参数为二维数组类型,则先进行两两为一组,合成一个四维数组,再记录相应的索引和类型,若存在单个二维数组,则用预设值填充为四维数组;
[0039]若uniform参数为float和bool类型,则先对用预设值填充的四维数组的预设值进行替换后,再记录相应的索引和类型,若替换后仍存在float和bool类型的uniform参数,则新建四维数组进行填充。
[0040]S2、对所有预处理后的uniform参数进行打包处理,得到一通用数组;
[0041]步骤S2具体为:
[0042]获取预处理后的uniform参数的数量,并根据所述数量生成一数组模板;
[0043]根据所述数组模板对所有预处理后的uniform参数进行打包处理,得到一通用数组。
[0044]S3、根据所述通用数组对OpenGL ES 2.0的着色器中的uniform参数进行配置。
[0045]实施例二
[0046]本实施例和实施例一的区别在于,本实施例将结合具体的应用场景进一步说明本
专利技术上述OpenGL ES 2.0的uniform参数的配置方法是如何实现的:
[0047]1、着色器(Shader)预编译阶段
[0048](1)获取所有的uniform参数,并根据uniform参数的类型进行相应的重新排序和组合;
[0049](2)数据排序和组合
[0050]若uniform参数为四维数组类型,则直接记录相应的索引和类型,索引是指后续在大的连续存储数组中的起始位置索引;
[0051]若uniform参数为4X4矩阵类型,则先拆分为4个四维数组,再记录相应的索引和类型;
[0052]若uniform参数为三维数组类型,则先用预设值填充为四维数组后,再记录相应的索引和类型;
[0053]若uniform参数为3X3矩阵类型,则先拆分为3个三维数组后,并分别用预设值填充为四维数组后,再记录相应的索引和类型;
[0054]若uniform参数为二维数组类型,则先进行两两为一组,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种OpenGL ES 2.0的uniform参数的配置方法,其特征在于,包括步骤:S1、获取所有的uniform参数,并进行预处理;S2、对所有预处理后的uniform参数进行打包处理,得到一通用数组;S3、根据所述通用数组对OpenGL ES 2.0的着色器中的uniform参数进行配置。2.根据权利要求1所述的OpenGL ES 2.0的uniform参数的配置方法,其特征在于,步骤S1具体为:获取所有的uniform参数,并根据uniform参数的类型进行相应的预处理。3.根据权利要求2所述的OpenGL ES 2.0的uniform参数的配置方法,其特征在于,所述的uniform参数的类型包括四维数组、4X4矩阵、三维数组、3X3矩阵、二维数据、float和bool。4.根据权利要求3所述的OpenGL ES 2.0的uniform参数的配置方法,其特征在于,所述的根据uniform参数的类型进行相应的预处理具体为:若uniform参数为四维数组类型,则直接记录相应的索引和类型;若uniform参数为4X4矩阵类型,则先拆分为4个四维数组,再记录相应的索引和类型;若uniform参数为三维数组类型,则先用预设值填充为四维数组后,再记录相应的索引和类型;若uniform参数为3X3矩阵类型,则先拆分为3个三维数组后,并分别用预设值填充为四维数组后,再记录相应的索引和类型;若uniform参数为二维数组类型,则先进行两两为一组,合成一个四维数组,再记录相应的索引和类型,若存在单个二维数组,则用预设值填充为四维数组;若uniform参数为float和bool类型,则先对用预设值填充的四维数组的预设值进行替换后,再记录相应的索引和类型,若替换后仍存在float和bool类型的uniform参数,则新建四维数组进行填充。5.根据权利要求4所述的OpenGL ES 2.0的uniform参数的配置方法,其特征在于,步骤S2具体为:获取预处理后的uniform参数的数量,并根据所述数量生成一数组模板;根据所述数组模板对所有预处理后的uniform参数进行打包处理,得到一通用数组。6.一种OpenGL ES 2.0的uniform参数的配置装...

【专利技术属性】
技术研发人员:林进浔黄明炜
申请(专利权)人:福建数博讯信息科技有限公司
类型:发明
国别省市:

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

1