图像渲染的方法、装置、电子设备及计算机可读存储介质转让专利

申请号 : CN201910363701.4

文献号 : CN111796812B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王伟亮林顺

申请人 : 厦门雅基软件有限公司

摘要 :

本申请提供了一种图像渲染的方法、装置、电子设备及计算机可读存储介质,涉及图像处理领域。该方法包括:在接收到待渲染的图像数据后,通过预置的接口,将图像数据发送至不同类型的着色器,以使得不同类型的着色器对图像数据进行渲染。这样,无论着色器的类型如何,对上层而言,处理的接口都是统一的,这样用户就可以在即使不支持高级特性组件的着色器上也能够使用高性能组件来提升性能,不用担心与由于着色器类型的差异而带来的兼容问题。

权利要求 :

1.一种图像渲染的方法,其特征在于,包括:

接收待渲染的图像数据;

通过预置的接口,将所述图像数据发送至不同类型的着色器,以使得不同类型的着色器对所述图像数据进行渲染;

其中,所述将所述图像数据发送至不同类型的着色器包括:将所述图像数据发送至基于WebGL1.0的着色器;所述基于WebGL1.0的着色器通过对基于WebGL2.0的着色器的源代码进行文本替换生成;

所述将所述图像数据发送至基于WebGL1.0的着色器包括:通过预置的第一uniform buffer接口,将所述图像数据发送至基于WebGL1.0的着色器;其中,所述第一uniform buffer接口为uniform buffer虚拟接口,uniform buffer包括多个uniform,每个uniform对应一部分图像数据;

所述通过预置的第一uniform buffer接口,将所述图像数据发送至基于WebGL1.0的着色器,包括:依次依据各个uniform在uniform buffer虚拟接口中对应的偏移量,以及各个uniform在预置缓冲区中对应的实际位置,获取各个uniform对应的各个图像数据块,所述预置缓冲区用于存储所述图像数据;将各个图像数据块发送至所述基于WebGL1.0的着色器。

2.根据权利要求1所述的图像渲染的方法,其特征在于,所述通过预置的接口,将所述图像数据发送至不同类型的着色器的步骤,包括:将所述图像数据发送至基于WebGL2.0的着色器;

其中,通过预置的第二uniform buffer接口,将所述图像数据发送至基于WebGL2.0的着色器。

3.根据权利要求1所述的图像渲染的方法,其特征在于,所述文本替换包括关键词替换、函数名称替换、过滤注释,以及源代码合并。

4.根据权利要求1所述的图像渲染的方法,其特征在于,

所述通过预置的第一uniform buffer接口,将所述图像数据发送至基于WebGL1.0的着色器的步骤中,依次依据各个uniform在uniform buffer虚拟接口中对应的偏移量,以及各个uniform在预置缓冲区中对应的实际位置,获取各个uniform对应的各个图像数据块之前,还包括:依次获取各个uniform在uniform buffer虚拟接口中对应的偏移量,以及各个uniform在预置缓冲区中对应的实际位置。

5.根据权利要求2所述的图像渲染的方法,其特征在于,所述第二uniform buffer接口为uniform buffer组件接口;

所述通过预置的第二uniform buffer接口,将所述图像数据发送至基于WebGL2.0的着色器的步骤,包括:通过所述uniform buffer组件接口,将所述图像数据发送至所述基于WebGL2.0的着色器。

6.一种图像渲染的装置,其特征在于,包括:

接收模块,用于接收待渲染的图像数据;

发送模块,用于通过预置的接口,将所述图像数据发送至不同类型的着色器,以使得不同类型的着色器对所述图像数据进行渲染;

其中,所述将所述图像数据发送至不同类型的着色器包括:将所述图像数据发送至基于WebGL1.0的着色器;所述基于WebGL1.0的着色器通过对基于WebGL2.0的着色器的源代码进行文本替换生成;

所述将所述图像数据发送至基于WebGL1.0的着色器包括:通过预置的第一uniform buffer接口,将所述图像数据发送至基于WebGL1.0的着色器;其中,所述第一uniform buffer接口为uniform buffer虚拟接口,uniform buffer包括多个uniform,每个uniform对应一部分图像数据;

所述通过预置的第一uniform buffer接口,将所述图像数据发送至基于WebGL1.0的着色器的步骤,包括:依次依据各个uniform在uniform buffer虚拟接口中对应的偏移量,以及各个uniform在预置缓冲区中对应的实际位置,获取各个uniform对应的各个图像数据块,所述预置缓冲区用于存储所述图像数据;将各个图像数据块发送至所述基于WebGL1.0的着色器。

7.根据权利要求6所述的图像渲染的装置,其特征在于,所述发送模块包括:第一发送子模块,用于通过预置的第一uniform buffer接口,将所述图像数据发送至基于WebGL1.0的着色器;

第二发送子模块,用于通过预置的第二uniform buffer接口,将所述图像数据发送至基于WebGL2.0的着色器。

8.根据权利要求6所述的图像渲染的装置,其特征在于,所述文本替换包括关键词替换、函数名称替换、过滤注释,以及源代码合并。

9.一种电子设备,其特征在于,其包括:

处理器、存储器和总线;

所述总线,用于连接所述处理器和所述存储器;

所述存储器,用于存储操作指令;

所述处理器,用于通过调用所述操作指令,执行上述权利要求1‑5中任一项所述的图像渲染的方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机指令,当其在计算机上运行时,使得计算机可以执行上述权利要求1‑5中任一项所述的图像渲染的方法。

说明书 :

图像渲染的方法、装置、电子设备及计算机可读存储介质

技术领域

[0001] 本申请涉及图像处理技术领域,具体而言,本申请涉及一种图像渲染的方法、装置、电子设备及计算机可读存储介质。

背景技术

[0002] 网页游戏又称Web游戏,无端网游,简称页游,是基于Web浏览器的网络在线多人互动游戏,无需下载客户端。
[0003] WebGL(全写Web Graphics Library)是一种3D绘图协议,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的一个JavaScript绑定,WebGL可以为HTML5Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。显然,WebGL技术标准免去了开发网页专用渲染插件的麻烦,可被用于创建具有复杂3D结构的网站页面,甚至可以用来设计3D网页游戏等等。
[0004] WebGL目前包括两个版本:WebGL1.0和WebGL2.0。WebGL1.0基于OpenGL ES 2.0,并提供了3D图形的API,它使用HTML5Canvas并允许利用文档对象模型接口;WebGL2.0基于OpenGL ES 3.0,确保了提供许多选择性的WebGL1.0扩展,并引入新的API,可利用部分Javascript实现自动存储器管理。
[0005] 在现有技术中,WebGL1.0与WebGL2.0分别对应一套shader,但是根据API的相关规定的,WebGL1.0的shader与WebGL2.0的shader是两套独立的shader,两套shader是不兼容的,而不兼容的后果就是如果想要同时运行在两个图形API(WebGL1.0和WebGL2.0)上,就需要编写两套shader,一套shader对应WebGL1.0,一套shader对应WebGL2.0,工作量较大。

发明内容

[0006] 本申请的目的旨在至少能解决上述的技术缺陷之一,特提出以下技术方案:
[0007] 第一方面,提供了一种图像渲染的的方法,该方法包括:
[0008] 接收待渲染的图像数据;
[0009] 通过预置的接口,将所述图像数据发送至不同类型的着色器,以使得不同类型的着色器对所述图像数据进行渲染。
[0010] 优选地,所述通过预置的接口,将所述图像数据发送至不同类型的着色器的步骤,包括:
[0011] 通过预置的第一uniform buffer接口,将所述图像数据发送至基于WebGL1.0的着色器;
[0012] 或,
[0013] 通过预置的第二uniform buffer接口,将所述图像数据发送至基于WebGL2.0的着色器。
[0014] 优选地,所述基于WebGL1.0的着色器通过如下方式生成:
[0015] 对所述基于WebGL2.0的着色器的源代码进行文本替换,生成基于WebGL1.0的着色器;所述文本替换包括关键词替换、函数名称替换、过滤注释,以及源代码合并。
[0016] 优选地,所述第一uniform buffer接口为uniform buffer虚拟接口;
[0017] 所述通过预置的第一uniform buffer接口,将所述图像数据发送至基于WebGL1.0的着色器的步骤,包括:
[0018] 依次获取各个uniform在uniform buffer虚拟接口中对应的偏移量,以及各个uniform在预置缓冲区中对应的实际位置;所述预置缓冲区用于存储所述图像数据;
[0019] 依次依据各个uniform在uniform buffer虚拟接口中对应的偏移量,以及各个uniform在预置缓冲区中对应的实际位置,获取各个uniform对应的各个图像数据块;
[0020] 将各个图像数据块发送至所述基于WebGL1.0的着色器。
[0021] 优选地,所述第二uniform buffer接口为uniform buffer组件接口;
[0022] 所述通过预置的第二uniform buffer接口,将所述图像数据发送至基于WebGL2.0的着色器的步骤,包括:
[0023] 通过所述uniform buffer组件接口,将所述图像数据发送至所述基于WebGL2.0的着色器。
[0024] 第二方面,提供了一种图像渲染的的装置,该装置包括:
[0025] 接收模块,用于接收待渲染的图像数据;
[0026] 发送模块,用于通过预置的接口,将所述图像数据发送至不同类型的着色器,以使得不同类型的着色器对所述图像数据进行渲染。
[0027] 优选地,所述发送模块包括:
[0028] 第一发送子模块,用于通过预置的第一uniform buffer接口,将所述图像数据发送至基于WebGL1.0的着色器;
[0029] 第二发送子模块,用于通过预置的第二uniform buffer接口,将所述图像数据发送至基于WebGL2.0的着色器。
[0030] 优选地,所述基于WebGL1.0的着色器通过如下方式生成:
[0031] 对所述基于WebGL2.0的着色器的源代码进行文本替换,生成基于WebGL1.0的着色器;所述文本替换包括关键词替换、函数名称替换、过滤注释,以及源代码合并。
[0032] 优选地,所述第一uniform buffer接口为uniform buffer虚拟接口;
[0033] 所述第一发送子模块包括:
[0034] 第一获取单元,用于依次获取各个uniform在uniform buffer虚拟接口中对应的偏移量,以及各个uniform在预置缓冲区中对应的实际位置;所述预置缓冲区用于存储所述图像数据;
[0035] 第二获取单元,用于依次依据各个uniform在uniform buffer虚拟接口中对应的偏移量,以及各个uniform在预置缓冲区中对应的实际位置,获取各个uniform对应的各个图像数据块;
[0036] 发送单元,用于将各个图像数据块发送至所述基于WebGL1.0的着色器。
[0037] 优选地,所述第二uniform buffer接口为uniform buffer组件接口;
[0038] 所述第二发送子模块具体用于:通过所述uniform buffer组件接口,将所述图像数据发送至所述基于WebGL2.0的着色器。
[0039] 第三方面,提供了一种电子设备,该电子设备包括:
[0040] 处理器、存储器和总线;
[0041] 所述总线,用于连接所述处理器和所述存储器;
[0042] 所述存储器,用于存储操作指令;
[0043] 所述处理器,用于通过调用所述操作指令,可执行指令使处理器执行如本申请的第一方面所示的图像渲染的的方法对应的操作。
[0044] 第四方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现本申请第一方面所示的图像渲染的的方法。
[0045] 本申请提供的技术方案带来的有益效果是:
[0046] 在本发明实施例中,在接收到待渲染的图像数据后,通过预置的接口,将图像数据发送至不同类型的着色器,以使得不同类型的着色器对图像数据进行渲染。这样,无论着色器的类型如何,对上层而言,处理的接口都是统一的,这样用户就可以在即使不支持高级特性组件的着色器上也能够使用高性能组件来提升性能,不用担心与由于着色器类型的差异而带来的兼容问题。

附图说明

[0047] 为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
[0048] 图1为本申请一个实施例提供的一种图像渲染的方法的流程示意图;
[0049] 图2为本申请又一实施例提供的一种图像渲染的装置的结构示意图;
[0050] 图3为本申请又一实施例提供的一种图像渲染的的电子设备的结构示意图。

具体实施方式

[0051] 下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
[0052] 本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
[0053] 为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0054] 本申请提供的图像渲染的方法、装置、电子设备和计算机可读存储介质,旨在解决现有技术的如上技术问题。
[0055] 下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
[0056] 在一个实施例中提供了一种图像渲染的的方法,如图1所示,该方法包括:
[0057] 步骤S101,接收待渲染的图像数据;
[0058] 具体而言,本发明实施例可以应用于渲染引擎,该渲染引擎可以对网页游戏的图像进行渲染。其中,渲染引擎设置有渲染层的抽象接口GFX,渲染引擎通过GFX接收上层逻辑的调度和用户层面传递过来的(游戏的)待渲染的图像数据。
[0059] 步骤S102,通过预置的接口,将所述图像数据发送至不同类型的着色器,以使得不同类型的着色器对所述图像数据进行渲染。
[0060] 渲染引擎接收到待渲染的图像数据之后,可以将这些图像数据提交给对应的WebGL1.0的shader(着色器),或WebGL2.0的shader,或其它底层图形api,比如WebGPU;其中,shader是GPU编程语言,shader经过驱动程序的编译放在GPU上跑,实现了各种渲染效果,光照效果、着色效果。
[0061] 在现有技术中,根据API的相关规定,WebGL1.0的shader与WebGL2.0的shader是两套独立的shader,两套shader是不兼容的,而不兼容的后果就是如果想要同时运行在两个图形API(WebGL1.0和WebGL2.0)上,就需要编写两套shader,一套shader对应WebGL1.0,一套shader对应WebGL2.0。
[0062] 在本发明实施例中,开发者可以采用高版本语言(比如#version 300es)编写一套shader就可以自动生成两套shader,实现了编写一套shader即可同时兼容webGL1.0和webGL2.0。
[0063] 在本发明一种优选实施例中,所述基于WebGL1.0的着色器通过如下方式生成:
[0064] 对所述基于WebGL2.0的着色器的源代码进行文本替换,生成基于WebGL1.0的着色器;所述文本替换包括关键词替换、函数名称替换、过滤注释,以及源代码合并。
[0065] 具体而言,开发人员编写后会自动生成两套shader,这是通过文本替换来实现。开发人员编写完高版本shader(webGL2.0对应的shader)后,会自动替换掉高版本shader中的关键字和函数名的差异化部分,即,将编程语言中的关键词、函数名称,具体对应到低版本的shader(webGL1.0对应的shader),进行转换从而得到低版本的shader。
[0066] 为了符合语言规范,做了一个文本替换。除了常用的文本替换技术之外,本发明实施例还会去掉一些注释,做一些代码的合并,通过外部工具去改善shader的执行效率(比如简化加减乘除、函数展开、减少函数调用)。
[0067] 在本发明一种优选实施例中,所述通过预置的接口,将所述图像数据发送至不同类型的着色器的步骤,包括:
[0068] 通过预置的第一uniform buffer接口,将所述图像数据发送至基于WebGL1.0的着色器;
[0069] 或,
[0070] 通过预置的第二uniform buffer接口,将所述图像数据发送至基于WebGL2.0的着色器。
[0071] 在实际应用中,因为WebGL1.0版本较低,所以,WebGL1.0是没有uniform buffer的,WebGL1.0只是能访问单独的一个uniform。WebGL2.0才有uniform buffer这个概念。因此,在本发明实施例中,会把uniform打包放在一起,在WebGL1.0上模拟出uniform buffer,而WebGL2.0属于高版本,则是已提供了一个技术组件uniform buffer,这样,相对于上层而言,WebGL1.0和WebGL2.0就是同一个uniform buffer接口了。
[0072] 在本发明一种优选实施例中,所述第一uniform buffer接口为uniform buffer虚拟接口;
[0073] 所述通过预置的第一uniform buffer接口,将所述图像数据发送至基于WebGL1.0的着色器的步骤,包括:
[0074] 依次获取各个uniform在uniform buffer虚拟接口中对应的偏移量,以及各个uniform在预置缓冲区中对应的实际位置;所述预置缓冲区用于存储所述图像数据;
[0075] 依次依据各个uniform在uniform buffer虚拟接口中对应的偏移量,以及各个uniform在预置缓冲区中对应的实际位置,获取各个uniform对应的各个图像数据块;
[0076] 将各个图像数据块发送至所述基于WebGL1.0的着色器。
[0077] 具体而言,预先记录每个uniform在uniform buffer中对应的偏移量,以及各个uniform在预置缓冲区中对应的实际位置,然后将uniform根据不同偏移量组织在内存的一段缓冲区中,就构成了uniform buffer。其中,偏移量记录了uniform参数在uniform buffer中的具体位置。也就是说,模拟uniform buffer的过程,本质上就是一段内存缓冲,里面将所有的uniform组织在了一起。
[0078] 其中,图像数据块为图像数据的部分数据,所有的图像数据块组成完整的图像数据。也就是说,uniform buffer包括多个uniform,每个uniform对应一部分图像数据(图像数据块),这样,uniform buffer就对应完整的图像数据了。
[0079] 在通过uniform buffer虚拟接口进行数据传输时,可以通过shader反射机制来获取到uniform偏移量的信息,这是API提供的通用接口。uniform buffer把单独的uniform变量打包放在了一起,一个buffer对应一个缓存,一个uniform是多种变量的集合,传到shader里,shader用这个uniform变量来进行计算,从而获得待渲染的图像数据。在本发明一种优选实施例中,所述第二uniform buffer接口为uniform buffer组件接口;
[0080] 所述通过预置的第二uniform buffer接口,将所述图像数据发送至基于WebGL2.0的着色器的步骤包括:
[0081] 通过所述uniform buffer组件接口,将所述图像数据发送至所述基于WebGL2.0的着色器。
[0082] 因为WebGL2.0属于高版本,已经具有对应的一个技术组件uniform buffer,所以,基于WebGL2.0的着色器通过组件uniform buffer接口进行数据交互即可。
[0083] 在本发明实施例中,在接收到待渲染的图像数据后,通过预置的接口,将图像数据发送至不同类型的着色器,以使得不同类型的着色器对图像数据进行渲染。这样,无论着色器的类型如何,对上层而言,处理的接口都是统一的,这样用户就可以在即使不支持高级特性组件的着色器上也能够使用高性能组件来提升性能,不用担心与由于着色器类型的差异而带来的兼容问题。
[0084] 进一步,本发明实施例可以自动将高版本的shader转换为低版本的shader,因此,开发人员编写一套shader即可生成两套shader,一套对应WebGL1.0,一套对应WebGL2.0,实现了编写一套shader即可兼容WebGL1.0和WebGL2.0。
[0085] 图2为本申请又一实施例提供的一种图像渲染的装置的结构示意图,如图2所示,本实施例的装置可以包括:
[0086] 接收模块201,用于接收待渲染的图像数据;
[0087] 发送模块202,用于通过预置的接口,将所述图像数据发送至不同类型的着色器,以使得不同类型的着色器对所述图像数据进行渲染。
[0088] 在本发明一种优选实施例中,所述发送模块包括:
[0089] 第一发送子模块,用于通过预置的第一uniform buffer接口,将所述图像数据发送至基于WebGL1.0的着色器;
[0090] 第二发送子模块,用于通过预置的第二uniform buffer接口,将所述图像数据发送至基于WebGL2.0的着色器。
[0091] 在本发明一种优选实施例中,所述基于WebGL1.0的着色器通过如下方式生成:
[0092] 对所述基于WebGL2.0的着色器的源代码进行文本替换,生成基于WebGL1.0的着色器;所述文本替换包括关键词替换、函数名称替换、过滤注释,以及源代码合并。
[0093] 在本发明一种优选实施例中,所述第一uniform buffer接口为uniform buffer虚拟接口;
[0094] 所述第一发送子模块包括:
[0095] 第一获取单元,用于依次获取各个uniform在uniform buffer虚拟接口中对应的偏移量,以及各个uniform在预置缓冲区中对应的实际位置;所述预置缓冲区用于存储所述图像数据;
[0096] 第二获取单元,用于依次依据各个uniform在uniform buffer虚拟接口中对应的偏移量,以及各个uniform在预置缓冲区中对应的实际位置,获取各个uniform对应的各个图像数据块;
[0097] 发送单元,用于将各个图像数据块发送至所述基于WebGL1.0的着色器。
[0098] 在本发明一种优选实施例中,所述第二uniform buffer接口为uniform buffer组件接口;
[0099] 所述第二发送子模块具体用于:通过所述uniform buffer组件接口,将所述图像数据发送至所述基于WebGL2.0的着色器。
[0100] 本实施例的图像渲染的装置可执行本申请第一个实施例所示的图像渲染的方法,其实现原理相类似,此处不再赘述。
[0101] 本申请的又一实施例中提供了一种电子设备,该电子设备包括:存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:在本发明实施例中,在接收到待渲染的图像数据后,通过预置的接口,将图像数据发送至不同类型的着色器,以使得不同类型的着色器对图像数据进行渲染。这样,无论着色器的类型如何,对上层而言,处理的接口都是统一的,这样用户就可以在即使不支持高级特性组件的着色器上也能够使用高性能组件来提升性能,不用担心与由于着色器类型的差异而带来的兼容问题。
[0102] 在一个可选实施例中提供了一种电子设备,如图3所示,图3所示的电子设备3000包括:处理器3001和存储器3003。其中,处理器3001和存储器3003相连,如通过总线3002相连。可选地,电子设备3000还可以包括收发器3004。需要说明的是,实际应用中收发器3004不限于一个,该电子设备3000的结构并不构成对本申请实施例的限定。
[0103] 处理器3001可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器3001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
[0104] 总线3002可包括一通路,在上述组件之间传送信息。总线3002可以是PCI总线或EISA总线等。总线3002可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0105] 存储器3003可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD‑ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
[0106] 存储器3003用于存储执行本申请方案的应用程序代码,并由处理器3001来控制执行。处理器3001用于执行存储器3003中存储的应用程序代码,以实现前述任一方法实施例所示的内容。
[0107] 其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。
[0108] 本申请的又一实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,在本发明实施例中,在接收到待渲染的图像数据后,通过预置的接口,将图像数据发送至不同类型的着色器,以使得不同类型的着色器对图像数据进行渲染。这样,无论着色器的类型如何,对上层而言,处理的接口都是统一的,这样用户就可以在即使不支持高级特性组件的着色器上也能够使用高性能组件来提升性能,不用担心与由于着色器类型的差异而带来的兼容问题。
[0109] 应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0110] 以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。