图形处理方法及装置的制造方法

文档序号:9579043阅读:483来源:国知局
图形处理方法及装置的制造方法
【技术领域】
[0001] 本发明涉及计算机技术,尤其涉及一种图形处理方法及装置。
【背景技术】
[0002] 随着计算机技术的广泛应用,为了满足用户在使用终端设备时对视觉效果的更高 要求,交互式矢量图(Flash)三维(Three Dimensions,简称为:3D)在计算机中的应用也随 之发展,由中央处理器(Central Processing Unit,简称为:CPU)进行三维渲染的效率低 下,只能完成简单的3D模型。
[0003] 目前的计算机系统都集成了图形处理器(Graphic Processing Unit,简称为: GPU)以支持硬件加速,因此可以将庞大的3D运算交给GPU执行,在处理基于Flash 3D程 序的过程中,只消耗很少的CPU资源就能做出复杂的3D模型;GPU通常可以支持基于开放 式图形程序接口(Open Graphics Library,简称为:0penGL)的着色语言(OpenGL Shading Language,简称为:GLSL),和基于微软3D绘图编程接口(Direct3D,简称为:D3D)的高级着 色器语言(High Level Shader Language,简称为:HLSL)。
[0004] 现有技术中的图形处理方法,通过GPU进行三维渲染无法直接执行图形汇编语言 (Adobe Graphics Assembly Language,简称为:AGAL),而导致基于 Stage 3D 技术的 AGAL 的实用性低的问题,相应地降低了 Stage 3D技术使用的灵活性。

【发明内容】

[0005] 本发明提供一种图形处理方法及装置,以解决现有技术中的图形处理方法,通过 GPU进行三维渲染无法直接执行AGAL,而导致基于Stage 3D技术的AGAL的实用性低的问 题,节省CPU资源,提高了 Stage 3D技术使用的灵活性。
[0006] 第一方面,本发明提供一种图形处理方法,包括:
[0007] 读取图形汇编语言AGAL的程序代码,所述程序代码包括所述AGAL的数据信息和 指令码;
[0008] 根据所述AGAL与着色语言GLSL的对应关系,将所述AGAL的程序代码转化为用于 图形程序接口 OpenGL的GLSL的程序代码,其中,所述对应关系包括所述AGAL中数据信息 和指令码所指示的操作与所述GLSL程序代码的变量和操作的对应关系;
[0009] 通过图形处理器GPU执行所述GLSL的程序代码。
[0010] 在第一方面的第一种可能的实现方式中,所述指令码包括顶点着色语句和片段着 色语句;
[0011] 所述根据所述AGAL与着色语言GLSL的对应关系,将所述AGAL的程序代码转化为 用于图形程序接口 OpenGL的GLSL的程序代码,包括:
[0012] 根据所述AGAL的数据信息获取对应的寄存器信息,所述寄存器信息包括寄存器 类型、索引,以及所述寄存器的着色类型;
[0013] 根据所述寄存器信息,对所述顶点着色语句进行顶点着色程序转化;
[0014] 根据所述寄存器信息和所述顶点着色程序转化的结果,对所述片段着色语句进行 片段着色程序转化。
[0015] 根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述寄存 器的着色类型包括顶点着色器;
[0016] 所述根据所述寄存器信息,对所述顶点着色语句进行顶点着色程序转化,包括 :
[0017] 将所述着色类型为顶点着色器的寄存器和所述顶点着色语句中的可变性变量转 化为所述GLSL的顶点着色程序对应的全局变量;
[0018] 根据所述顶点着色语句所指示的操作推导所述顶点着色语句的寄存器信息,并将 所述寄存器类型为临时寄存器中的临时变量转化为所述GLSL的顶点着色程序对应的局部 变量;
[0019] 将所述顶点着色语句的操作转换为所述GLSL中顶点着色程序对应的操作。
[0020] 根据第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述局部 变量包括所述局部变量的类型和标识符;则所述将所述寄存器类型为临时寄存器中的临时 变量转化为所述GLSL的顶点着色程序对应的局部变量,包括:
[0021] 根据所述顶点着色语句所指示的操作,推导所述临时寄存器中的临时变量转化为 所述GLSL的顶点着色程序对应的局部变量的类型;
[0022] 将所述局部变量对应的所述顶点着色语句的寄存器名称定义为所述局部变量的 标识符。
[0023] 根据第一方面的第二种或第三种可能的实现方式,在第四种可能的实现方式中, 所述寄存器的着色类型还包括片段着色器;
[0024] 所述根据所述寄存器信息,对所述顶点着色语句进行顶点着色程序转化之后,还 包括:
[0025] 存储所述顶点着色程序转换过程中使用的所述可变性变量;
[0026] 则所述根据所述寄存器信息和所述顶点着色程序转化的结果,对所述片段着色语 句进行片段着色程序转化,包括:
[0027] 将所述着色类型为片段着色器的寄存器和所述存储的可变性变量转化为所述 GLSL的片段着色程序对应的全局变量;
[0028]根据所述片段着色语句所指示的操作推导所述片段着色语句的寄存器信息,并将 所述寄存器类型为临时寄存器中的临时变量转化为所述GLSL的片段着色程序对应的局部 变量;
[0029] 将所述片段着色语句的操作转换为所述GLSL中片段着色程序对应的操作。
[0030] 第二方面,本发明提供一种图形处理装置,包括:
[0031] 读取模块,用于读取图形汇编语言AGAL的程序代码,所述程序代码包括所述AGAL 的数据信息和指令码;
[0032] 转化模块,用于根据所述AGAL与着色语言GLSL的对应关系,将所述AGAL的程序 代码转化为用于图形程序接口 OpenGL的GLSL的程序代码,其中,所述对应关系包括所述 AGAL中数据信息和指令码所指示的操作与所述GLSL程序代码中的变量和操作的对应关 系;
[0033] 执行模块,用于通过图形处理器GPU执行所述GLSL的程序代码。
[0034] 在第二方面的第一种可能的实现方式中,所述指令码包括顶点着色语句和片段着 色语句;所述转化模块包括:获取单元,用于根据所述读取模块读取的AGAL的数据信息获 取对应的寄存器信息,所述寄存器信息包括寄存器类型、索引,以及所述寄存器的着色类 型;
[0035] 顶点着色转化单元,用于根据所述获取单元获取的寄存器信息,对所述顶点着色 语句进行顶点着色程序转化;
[0036] 片段着色转化单元,用于根据所述获取单元获取的寄存器信息和所述顶点着色转 化单元对所述顶点着色程序转化的结果,对所述片段着色语句进行片段着色程序转化。
[0037] 根据第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述寄存 器的着色类型包括顶点着色器;
[0038] 所述顶点着色转化单元,具体包括:
[0039] 第一全局变量转化子单元,用于将所述着色类型为顶点着色器的寄存器和所述顶 点着色语句中的可变性变量转化为所述GLSL的顶点着色程序对应的全局变量;
[0040] 第一局部变量转化子单元,用于根据所述顶点着色语句所指示的操作推导所述顶 点着色语句的寄存器信息,从而将所述寄存器类型为临时寄存器中的临时变量转化为所述 GLSL的顶点着色程序对应的局部变量;
[0041] 第一操作转化子单元,用于将所述顶点着色语句的操作转换为所述GLSL中顶点 着色程序对应的操作。
[0042] 根据第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述局部 变量包括所述局部变量的类型和标识符;则所述第一局部变量转化子单元,用于将所述寄 存器类型为临时寄存器中的临时变量转化为所述GLSL的顶点着色程序对应的局部变量, 具体包括:
[0043] 根据所述顶点着色语句所指示的操作,推导所述临时寄存器中的临时变量转化为 所述GLSL的顶点着色程序对应的局部变量的类型;并将所述局部变量对应的所述顶点着 色语句的寄存器名称定义为所述局部变量的标识符。
[0044] 根据第二方面的第二种或第三种可能的实现方式,在第四种可能的实现方式中, 所述寄存器的着色类型还包括片段着色器;则所述装置还包括:存储模块,用于在所述顶 点着色转化单元根据所述寄存器信息,对所述顶点着色语句进行顶点着色程序转化之后, 存储所述顶点着色程序转换过程中使用的所述可变性变量;
[0045] 则所述片段着色转化单元,具体包括:
[0046] 第二全局变量转化子单元,用于将所述着色类型为片段着色器的寄存器和所述存 储模块存储的可变性变量转化为所述GLSL的片段着色程序对应的全局变量;
[0047] 第二局部变量转化子单元,用于根据所述片段着色语句所指示的操作推导所述片 段着色语句的寄存器信息,从而将所述寄存器类型为临时寄存器中的临时变量转化为所述 GLSL的片段着色程序对应的局部变量;
[0048] 第二操作
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1