CN105335141A - 图形处理方法及装置 - Google Patents
图形处理方法及装置 Download PDFInfo
- Publication number
- CN105335141A CN105335141A CN201410360477.0A CN201410360477A CN105335141A CN 105335141 A CN105335141 A CN 105335141A CN 201410360477 A CN201410360477 A CN 201410360477A CN 105335141 A CN105335141 A CN 105335141A
- Authority
- CN
- China
- Prior art keywords
- register
- vertex
- program
- glsl
- statement
- 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
本发明提供一种图形处理方法及装置。本发明提供的图形处理方法,包括:读取图形汇编语言AGAL的程序代码,所述程序代码中包括所述AGAL的数据信息和指令码;根据所述AGAL与着色语言GLSL的对应关系,将所述AGAL的程序代码转化为用于图形程序接口OpenGL的GLSL的程序代码;通过图形处理器GPU执行所述GLSL。本发明实施例解决了现有技术中的图形处理方法,通过GPU进行三维渲染无法直接执行AGAL语言,而导致基于Stage?3D技术的AGAL的实用性低的问题,相应地提高了Stage?3D技术使用的灵活性。
Description
技术领域
本发明涉及计算机技术,尤其涉及一种图形处理方法及装置。
背景技术
随着计算机技术的广泛应用,为了满足用户在使用终端设备时对视觉效果的更高要求,交互式矢量图(Flash)三维(ThreeDimensions,简称为:3D)在计算机中的应用也随之发展,由中央处理器(CentralProcessingUnit,简称为:CPU)进行三维渲染的效率低下,只能完成简单的3D模型。
目前的计算机系统都集成了图形处理器(GraphicProcessingUnit,简称为:GPU)以支持硬件加速,因此可以将庞大的3D运算交给GPU执行,在处理基于Flash3D程序的过程中,只消耗很少的CPU资源就能做出复杂的3D模型;GPU通常可以支持基于开放式图形程序接口(OpenGraphicsLibrary,简称为:OpenGL)的着色语言(OpenGLShadingLanguage,简称为:GLSL),和基于微软3D绘图编程接口(Direct3D,简称为:D3D)的高级着色器语言(HighLevelShaderLanguage,简称为:HLSL)。
现有技术中的图形处理方法,通过GPU进行三维渲染无法直接执行图形汇编语言(AdobeGraphicsAssemblyLanguage,简称为:AGAL),而导致基于Stage3D技术的AGAL的实用性低的问题,相应地降低了Stage3D技术使用的灵活性。
发明内容
本发明提供一种图形处理方法及装置,以解决现有技术中的图形处理方法,通过GPU进行三维渲染无法直接执行AGAL,而导致基于Stage3D技术的AGAL的实用性低的问题,节省CPU资源,提高了Stage3D技术使用的灵活性。
第一方面,本发明提供一种图形处理方法,包括:
读取图形汇编语言AGAL的程序代码,所述程序代码包括所述AGAL的数据信息和指令码;
根据所述AGAL与着色语言GLSL的对应关系,将所述AGAL的程序代码转化为用于图形程序接口OpenGL的GLSL的程序代码,其中,所述对应关系包括所述AGAL中数据信息和指令码所指示的操作与所述GLSL程序代码的变量和操作的对应关系;
通过图形处理器GPU执行所述GLSL的程序代码。
在第一方面的第一种可能的实现方式中,所述指令码包括顶点着色语句和片段着色语句;
所述根据所述AGAL与着色语言GLSL的对应关系,将所述AGAL的程序代码转化为用于图形程序接口OpenGL的GLSL的程序代码,包括:
根据所述AGAL的数据信息获取对应的寄存器信息,所述寄存器信息包括寄存器类型、索引,以及所述寄存器的着色类型;
根据所述寄存器信息,对所述顶点着色语句进行顶点着色程序转化;
根据所述寄存器信息和所述顶点着色程序转化的结果,对所述片段着色语句进行片段着色程序转化。
根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述寄存器的着色类型包括顶点着色器;
所述根据所述寄存器信息,对所述顶点着色语句进行顶点着色程序转化,包括:
将所述着色类型为顶点着色器的寄存器和所述顶点着色语句中的可变性变量转化为所述GLSL的顶点着色程序对应的全局变量;
根据所述顶点着色语句所指示的操作推导所述顶点着色语句的寄存器信息,并将所述寄存器类型为临时寄存器中的临时变量转化为所述GLSL的顶点着色程序对应的局部变量;
将所述顶点着色语句的操作转换为所述GLSL中顶点着色程序对应的操作。
根据第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述局部变量包括所述局部变量的类型和标识符;则所述将所述寄存器类型为临时寄存器中的临时变量转化为所述GLSL的顶点着色程序对应的局部变量,包括:
根据所述顶点着色语句所指示的操作,推导所述临时寄存器中的临时变量转化为所述GLSL的顶点着色程序对应的局部变量的类型;
将所述局部变量对应的所述顶点着色语句的寄存器名称定义为所述局部变量的标识符。
根据第一方面的第二种或第三种可能的实现方式,在第四种可能的实现方式中,所述寄存器的着色类型还包括片段着色器;
所述根据所述寄存器信息,对所述顶点着色语句进行顶点着色程序转化之后,还包括:
存储所述顶点着色程序转换过程中使用的所述可变性变量;
则所述根据所述寄存器信息和所述顶点着色程序转化的结果,对所述片段着色语句进行片段着色程序转化,包括:
将所述着色类型为片段着色器的寄存器和所述存储的可变性变量转化为所述GLSL的片段着色程序对应的全局变量;
根据所述片段着色语句所指示的操作推导所述片段着色语句的寄存器信息,并将所述寄存器类型为临时寄存器中的临时变量转化为所述GLSL的片段着色程序对应的局部变量;
将所述片段着色语句的操作转换为所述GLSL中片段着色程序对应的操作。
第二方面,本发明提供一种图形处理装置,包括:
读取模块,用于读取图形汇编语言AGAL的程序代码,所述程序代码包括所述AGAL的数据信息和指令码;
转化模块,用于根据所述AGAL与着色语言GLSL的对应关系,将所述AGAL的程序代码转化为用于图形程序接口OpenGL的GLSL的程序代码,其中,所述对应关系包括所述AGAL中数据信息和指令码所指示的操作与所述GLSL程序代码中的变量和操作的对应关系;
执行模块,用于通过图形处理器GPU执行所述GLSL的程序代码。
在第二方面的第一种可能的实现方式中,所述指令码包括顶点着色语句和片段着色语句;所述转化模块包括:获取单元,用于根据所述读取模块读取的AGAL的数据信息获取对应的寄存器信息,所述寄存器信息包括寄存器类型、索引,以及所述寄存器的着色类型;
顶点着色转化单元,用于根据所述获取单元获取的寄存器信息,对所述顶点着色语句进行顶点着色程序转化;
片段着色转化单元,用于根据所述获取单元获取的寄存器信息和所述顶点着色转化单元对所述顶点着色程序转化的结果,对所述片段着色语句进行片段着色程序转化。
根据第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述寄存器的着色类型包括顶点着色器;
所述顶点着色转化单元,具体包括:
第一全局变量转化子单元,用于将所述着色类型为顶点着色器的寄存器和所述顶点着色语句中的可变性变量转化为所述GLSL的顶点着色程序对应的全局变量;
第一局部变量转化子单元,用于根据所述顶点着色语句所指示的操作推导所述顶点着色语句的寄存器信息,从而将所述寄存器类型为临时寄存器中的临时变量转化为所述GLSL的顶点着色程序对应的局部变量;
第一操作转化子单元,用于将所述顶点着色语句的操作转换为所述GLSL中顶点着色程序对应的操作。
根据第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述局部变量包括所述局部变量的类型和标识符;则所述第一局部变量转化子单元,用于将所述寄存器类型为临时寄存器中的临时变量转化为所述GLSL的顶点着色程序对应的局部变量,具体包括:
根据所述顶点着色语句所指示的操作,推导所述临时寄存器中的临时变量转化为所述GLSL的顶点着色程序对应的局部变量的类型;并将所述局部变量对应的所述顶点着色语句的寄存器名称定义为所述局部变量的标识符。
根据第二方面的第二种或第三种可能的实现方式,在第四种可能的实现方式中,所述寄存器的着色类型还包括片段着色器;则所述装置还包括:存储模块,用于在所述顶点着色转化单元根据所述寄存器信息,对所述顶点着色语句进行顶点着色程序转化之后,存储所述顶点着色程序转换过程中使用的所述可变性变量;
则所述片段着色转化单元,具体包括:
第二全局变量转化子单元,用于将所述着色类型为片段着色器的寄存器和所述存储模块存储的可变性变量转化为所述GLSL的片段着色程序对应的全局变量;
第二局部变量转化子单元,用于根据所述片段着色语句所指示的操作推导所述片段着色语句的寄存器信息,从而将所述寄存器类型为临时寄存器中的临时变量转化为所述GLSL的片段着色程序对应的局部变量;
第二操作转化子单元,用于将所述片段着色语句的操作转换为所述GLSL中片段着色程序对应的操作。
本发明提供一种图形处理方法及装置,通过读取的AGAL的程序代码对其进行转化处理,具体基于AGAL程序代码中的数据信息和指令码所指示的操作与GLSL程序代码中的变量和操作的对应关系将该AGAL的程序代码转化为可以通过GPU执行的基于OpenGL使用的GLSL的程序代码,实现了将AGAL转化为可以通过GPU执行的着色语言,解决了现有技术中的图形处理方法通过GPU进行三维渲染无法直接执行AGAL语言,而导致基于Stage3D技术的AGAL的实用性低的问题,节省了CPU的资源,相应地提高了Stage3D技术使用的灵活性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一所提供的一种图形处理方法的流程图;
图2为本发明实施例二所提供的一种图形处理方法的流程图;
图3为本发明实施例三所提供的一种图形处理方法的流程图;
图4为本发明实施例四所提供的一种图形处理装置的结构示意图;
图5为本发明实施例五所提供的一种图形处理装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1为本发明实施例一所提供的一种图形处理方法的流程图。本实施例提供的方法适用于通过GPU执行AGAL的图形处理的情况,该方法可以由图形处理装置执行,该图形处理装置通常以硬件和/或软件的方法来实现,可以集成在终端设备的存储器中,例如集成在处理器芯片中,供处理器调用执行。如图1所示,本实施例的方法可以包括:
S110,读取AGAL的程序代码,该程序代码包括该AGAL的数据信息和指令码。
通常的三维渲染技术中通过GPU执行基于OpenGL中的GLSL,本实施例以3D图像的处理方式为例进行说明,OpenGL中也可以处理二维(TwoDimensions,简称为:2D)图像;AGAL是Stage3D技术中所依赖的低级着色语言,可以精确地操控机器硬件比如可编程显卡,由于Stage3D是为了区别Flash中旧的不支持GPU渲染的接口创建的,因此设计了抽象的着色语言,例如AGAL,但是,该AGAL不能直接在GPU中执行,使得采用该Stage3D技术的图形处理方法的实用性降低;一些多媒体播放器(FlashPlayer),例如,龙芯(Loongson)FlashPlayer要支持Stage3D技术就要将AGAL转化为一种可以通过GPU执行的着色语言;在本实施例中,可以对AGAL进行转化处理,即翻译成OpenGL中使用的编程语言,在具体实现时,需要首先获取该AGAL的程序代码,获取的AGAL的程序代码为一个程序段,包括多条程序语句,该AGAL的程序代码通常可以包括该AGAL的数据信息和指令码,其中,AGAL的数据信息包括寄存器信息等,指令码包括多条程序语句,一条指令码中的程序语句一般包括指令码所指示的操作和该操作所涉及的寄存器或变量等。
S120,根据该AGAL与着色语言GLSL的对应关系,将该AGAL的程序代码转化为用于OpenGL的GLSL的程序代码,其中,该对应关系包括AGAL中数据信息和指令码所指示的操作分别与GLSL程序代码中的变量和操作的对应关系。
通常地,AGAL指令码包括顶点着色语句和片段着色语句,顶点着色语句是指令码中与顶点着色相关的程序语句,片段着色语句是指令码中与片段着色相关的程序语句。本实施例在具体实现中,将AGAL的程序代码转化为GLSL的程序代码的具体方式包括:根据AGAL的数据信息获取对应的寄存器信息,该寄存器信息包括寄存器类型、索引,以及该寄存器的着色类型;并根据该寄存器信息对指令码中的顶点着色语句进行顶点着色程序转化;进而根据该寄存器信息和该顶点着色程序转化的结果对指令码中的片段着色语句进行片段着色程序转化。需要说明的是,根据数据信息获取的寄存器信息中包括AGAL程序代码中的寄存器类型及着色类型等信息,顶点着色程序转化和片段着色程序转化均需要将寄存器信息转换为GLSL中的变量,并将指令码所指示的操作转换为GLSL程序代码中对应的操作。
在本实施例中,可以根据已读取的AGAL的数据信息获取该数据信息对应的寄存器信息,具体地,AGAL的寄存器类型可以包括属性寄存器、常量寄存器、临时寄存器、输出寄存器、可变寄存器和纹理采样寄存器。对于特定类型的寄存器通常对应特定的着色类型和着色属性,举例来说,属性寄存器为顶点着色器的顶点属性数据,常量寄存器用于顶点或片段着色器的输入,临时寄存器用于存储临时数据,输出寄存器用于顶点或片段着色器的输出,可变寄存器用于顶点与片段着色器间传递数据,纹理采样寄存器专用于片段着色器的输入;在确定寄存器的着色类型后可以对AGAL的程序代码进行转化,本实施例提供的方法按照先进行顶点着色程序转化,再进行片段着色程序转化的方式执行,符合OpenGL中着色语言的渲染方式。
S130,通过GPU执行该GLSL的程序代码。
在本实施例中,对已转化为GLSL的程序代码,可以基于Flash3D技术的图形处理方式,通过GPU执行该已转化为GLSL的程序代码;对于现有技术中不能直接由GPU执行的AGAL汇编语言的程序代码,在通过本实施例的处理方式后,转化为基于OpenGL中的GLSL的程序代码,使该种汇编语言得以使用,相应地提高了Stage3D技术的使用的灵活性。
本实施例所提供的图形处理方法,通过读取的AGAL的程序代码对其进行转化处理,具体基于AGAL程序代码中的数据信息和指令码所指示的操作与GLSL程序代码中的变量和操作的对应关系将该AGAL的程序代码转化为可以通过GPU执行的基于OpenGL使用的GLSL的程序代码,在程序的转化过程中,具体可以先根据AGAL的程序代码获取对应的寄存器信息,进而根据寄存器的着色类型按照顶点着色程序和片段着色程序的顺序进行转化,使得该转化后的程序代码可以通过GPU来执行,实现了将AGAL转化为可以通过GPU执行的着色语言,解决了现有技术中的图形处理方法,由于通过GPU进行三维渲染而导致基于Stage3D技术的AGAL的实用性低的问题,节省了CPU的资源,相应地提高了Stage3D技术使用的灵活性。
实施例二
图2为本发明实施例二所提供的一种图形处理方法的流程图。如图2所示,本实施例的方法可以包括:
S210,读取AGAL的程序代码,该程序代码中包括该AGAL的数据信息和指令码,其中,该指令码包括顶点着色语句和片段着色语句。
S220,根据AGAL的数据信息获取对应的寄存器信息,该寄存器信息包括寄存器类型、索引,以及该寄存器的着色类型;具体的,寄存器类型通常包括属性寄存器、常量寄存器、临时寄存器、输出寄存器、可变寄存器和纹理采样寄存器。
S230,根据该寄存器信息,对顶点着色语句进行顶点着色程序转化,转化为GLSL的程序代码。
S240,根据该寄存器信息和该顶点着色程序转化的结果,对片段着色语句进行片段着色程序转化,转化为GLSL的程序代码。
具体地,S210的实现方式参照实施例一中的S110,S220~S240的实现方式参照实施例一中的S120。
S250,通过GPU执行该GLSL的程序代码。
具体地,GPU将已转化的GLSL的程序代码编译成在GPU中用于执行的指令代码,并执行该指令代码。
在本实施例中,具体GPU可以通过自带的编译器将已转换为GLSL的着色语言编译为特定的可用于执行的指令代码,通常将GLSL的程序代码转换为处理器和GPU可以识别的二进制语言,以使该GLSL的程序代码最终可以被GPU执行,该指令代码的编译方式和GPU执行代码的具体过程为现有技术中通过GPU执行基于OpenGL的着色语句,在此不再赘述其具体过程。
实施例三
进一步地,图3为本发明实施例三所提供的一种图形处理方法的流程图。图3在上述图2所示实施例的基础上,通常地,根据AGAL的数据信息获取的寄存器的着色类型包括顶点着色器和片段着色器;相应地,对于着色程序的转化的具体方式可以为:顶点着色程序的转化和片段着色程序的转化。
在具体实现时,对顶点着色程序的转化可以概括为全局变量的转化、局部变量的转化和具体操作时的转化。即S230可以包括:S231,将着色类型为顶点着色器的寄存器和顶点着色语句中的可变性变量转化为GLSL的顶点着色程序对应的全局变量;S232,根据顶点着色语句所指示的操作推导该顶点着色语句的寄存器信息,并将该寄存器类型为临时寄存器中的临时变量转化为GLSL的顶点着色程序对应的局部变量;S233,将该顶点着色语句的操作转换为该GLSL中顶点着色程序对应的操作。
通常地,GLSL程序代码中变量的定义方式为变量类型加变量名称,也可以使用限定符,以对它们的行为进行限定;表1为AGAL寄存器与GLSL的限定符对应关系表,具体地,该AGAL寄存器与GLSL的限定符的对应关系可以参考表1。
表1.AGAL寄存器与GLSL的限定符对应关系表:
从上述表1可以看出,顶点着色器没有对应的纹理样本,片段着色器没有对应的顶点属性。
在AGAL的数据信息中的寄存器的类型可以包括属性寄存器、常量寄存器、输出寄存器和纹理采样寄存器,在S231进行转化时,将寄存器类型为上述这些类型且寄存器的着色类型为顶点着色器的寄存器直接转化为顶点着色程序对应的全局变量。
需要说明的是,对于GLSL的顶点着色程序中全局变量的转换,即S231中,该全局变量还包括顶点着色语句中的可变性变量;具体地,本实施在进行顶点着色程序的转化过程中,可以存储该顶点着色程序转换过程中使用的可变性(varying)变量,即用于GLSL程序代码的varying变量,由于varying变量是顶点着色器和片段着色器之间做数据传递用的,一般顶点着色器修改varying变量的值,然后片段着色器使用该varying变量的值,因此必须保证varying变量在顶点着色器和片段着色器之间的声明必须是一致的,即此着色程序的转化过程为先进行顶点着色程序的转化后,再进行片段着色程序的转化,并且该varying变量是全局变量,所以在进行顶点着色程序转化时,可以将所有转化过程中使用的varying变量进行存储以便用于片段着色程序的转化。
对于GLSL的顶点着色程序中临时变量的转换,即S232中,由于AGAL程序代码和GLSL程序代码中存在临时变量,AGAL的顶点着色语句中的临时变量为临时寄存器中的值,即vt0~vt7和ft0~ft7中的值,因此,在GLSL中需要有其相应的表示,即局部变量;将临时寄存器中的临时变量,也就是指令码中用到的临时寄存器中的值转化为GLSL的顶点着色程序对应的局部变量,并使用新的变量名。
需要说明的是,局部变量包括局部变量的类型和标识符,局部变量不能像全局变量那样直接根据AGAL的程序代码中数据信息获取,则S232中将临时寄存器中的临时变量转化为GLSL的顶点着色程序对应的局部变量的具体方式为,可以根据指令码中顶点着色语句所指示的操作推导出临时寄存器中的临时变量转换为GLSL的顶点着色程序对应的局部变量的类型,进而将该局部变量对应的顶点着色语句的寄存器名称定义为该局部变量的标识符。举例来说,AGAL中使用n个寄存器共同来表示一个mat类型的数据,相应地,AGAL对一个mat类型的操作实际就是对这n个寄存器的操作,同时这n个寄存器在GLSL中的命名也要做相应的改变。
通常地,AGAL的指令码大小为192位,具体格式为:[操作码][目标寄存器][源寄存器1][源寄存器2(或样本)]。推导局部变量时所遵循的规则为:尽量使目标寄存器与源寄存器的类型一致,如有特殊情况特殊处理(在对具体操作的转化过程中进行说明);在确定了源寄存器和目标寄存器的类型之后,局部变量的标识符可直接使用AGAL中的寄存器名,如vec4vt0,vec4ft0等;具体推导寄存器类型的方法是从目标、源和样本的字段格式中获得寄存器类型,编号等信息。
在具体实现中,可以将AGAL中的操作暂时分为以下的四种以便在局部变量的推导中区别对待。通常地,将AGAL中目标寄存器与源寄存器的类型一致的操作定义为A类,包括:mov,add,sub,mul,div,rcp,min,max,frc,sqt,rsq,pow,log,exp,nrm,sin,cos,abs,neg和sat;将存在特殊情况的操作定义为B类,包括:crs,dp3,dp4,m33,m44,m34,tex;在AGAL中,暂未对条件判断类提供支持的操作其定义为C类:ifz,inz,ife,ine,ifg,ifl,ieg,iel,els,eif,rep,erp,brk;将关于流程控制的类型定义为D类:kil,sge,slt,sgn,seq,sne。
需要说明的是,对于A类指令码的操作比较简单,可由目标寄存器和源寄存器来相互推导对方的类型,例如,如果源寄存器类型确定而目标寄存器类型不确定,直接将源寄存器的类型赋给目标寄存器,反之亦然。
对于B类指令码的操作由于存在特殊性需要特殊处理,具体地,对于叉积操作crs,仅生成一个3组件结果,目标必须遮罩为.xyz,因此,所有操作寄存器在类型不确定的情况下可以直接赋为vec3;对于点积操作包括dp3和dp4,dp3的源寄存器类型为vec3,dp4的源寄存器类型为vec4,两者的目的寄存器类型都可以赋为float;对于矩阵连乘,例如矩阵连乘3x3操作,即m33,该操作仅生成一个3组件结果,目标必须遮罩为.xyz;目标寄存器和源寄存器的默认类型均为vec3,同时需要处理3个寄存器合并成一个mat3类型的命名问题;又例如,矩阵连乘4x4操作,即m44无需遮罩,只需将目标寄存器和源寄存器默认为vec4类型,同时需要处理4个寄存器合并成一个mat4类型的命名问题;再例如,矩阵连乘3x4操作,即m34仅生成一个3组件结果,目标必须遮罩为.xyz;目标寄存器和源寄存器的默认类型分别为vec3和vec4,也需要处理3个寄存器合并成一个mat3类型的命名问题,同时每个寄存器均需要声明为vec4;对于纹理取样操作tex中,源寄存器2必须使用取样器格式,默认设置目标寄存器的类型为vec4,源寄存器的类型为vec2;进而再通过AGAL指令码样本字段格式中的维度来推导该样本属于何种类型,如Sample2D,SampleCube。对于C类和D类操作,无需进行处理。
本实施例在对具体操作的转换中执行对寄存器类型的强转型,即执行S233所述的将顶点着色语句的操作转换为GLSL中顶点着色程序对应的操作,其具体方式为:通常在AGAL与GLSL中寄存器类型信息不对应的情况下,可以在具体操作的转换中对其进行强转型,对于AGAL的每个操作码,在GLSL中都可以使用相应的操作来实现同样的同能以实现无差异的转换,表2为AGAL操作与GLSL操作的对应关系表,具体地,该AGAL操作与GLSL操作的对应关系可以参考表2。
表2.AGAL操作与GLSL操作的对应关系表:
对于上述具体操作的转化,在具体实现中,举例来说,对于A类中的mov操作,实现将数据从源寄存器移动到目标寄存器的功能,需要按组件进行操作;如果源寄存器和目标寄存器的类型确定,但是不匹配,则说明某个寄存器是属于matN类型的一部分,可以直接替换为vcmat0[0]的形式,或者,将GLSL着色器改为例如vec4vc0=vec4(vec2vc1,0,1)或者floatvc1.x=float(vec2vc0)的形式;否则,若类型确定且匹配,则需要做以下的操作:由于AGAL中给matN类型的变量赋值时是连续的给n个寄存器赋值,所以当出现连续的n个赋值操作时,判断这n个寄存器是否属于某个matN类型的数据,若是,将这连续的n个赋值操作归并为matNname1=matNname2的形式。最终转化为strDestReg=strSrc1Reg的形式。A类其他操作的方式与mov操作的方式类似。
对于crs操作:就是实现源寄存器1和源寄存器2的叉积操作,具体是将结果赋给目标寄存器,仅生成一个3组件结果,目标必须遮罩为.xyz;将源寄存器1和源寄存器2强制转换为vec3类型,同时,如果目标寄存器的类型不是vec3,则需将叉积的类型再强制转化为目标寄存器的类型,即最终转化为strDestReg=cross(strSrc1Reg,strSrc2Reg)的形式。
对于dp3操作:就是实现源寄存器1和源寄存器2的点积操作,参数类型要求为vec3类型,需要将源寄存器1和源寄存器2强制转换为vec3类型,同时,如果目标寄存器的类型不是float,则需将点积的类型再强制转化为目标寄存器的类型,最终转化为strDestReg=dot(strSrc1Reg,strSrc2Reg)的形式。
对于dp4操作:也是实现源寄存器1和源寄存器2的点积操作,参数类型要求为vec4类型,需要将源寄存器1和源寄存器2强制转换为vec4型,同时,如果目标寄存器的类型不是float,则需将结果目标的类型再强制转化为目标寄存器的类型,最终转化为strDestReg=dot(strSrc1Reg,strSrc2Reg)的形式。
对于m33操作:就是实现源寄存器1和源寄存器2的矩阵连乘3*3操作,仅生成一个3组件结果,目标必须遮罩为.xyz,需要将源寄存器1强制转换为vec3类型,并在转化过程中将源寄存器2所代表的由连续的3个寄存器所组成的mat3型数据的标识符设置为类似vcMat0的类型,同时,如果目标寄存器的类型不是vec3类型,则需将结果目标的类型再强制转化为目标寄存器的类型,最终转化为strDestReg=strSrc1Reg*strSrc2Reg的形式。
对于m44操作:就是实现源寄存器1和源寄存器2的矩阵连乘4*4操作,直接将目标结果赋给目标寄存器,需要将源寄存器1强制转换为vec4类型,并在转化过程中将源寄存器2所代表的由连续的4个寄存器所组成的mat4型数据的标识符设置为类似vcMat0的类型,同时,如果目标寄存器的类型不是vec4类型,则需将结果目标的类型再强制转化为目标寄存器的类型,最终转化为strDestReg=strSrc1Reg*strSrc2Reg的形式。
对于m34操作:就是实现源寄存器1和源寄存器2的矩阵连乘3*4操作,仅生成一个3组件结果,目标必须遮罩为.xyz,需要将源寄存器1强制转换为vec4类型,并在转化过程中将源寄存器2所代表的由连续的3个寄存器所组成的mat3型数据的标识符设置为类似vcMat0的类型,同时,如果目标寄存器的类型不是vec3类型,则需将结果目标的类型再强制转化为目标寄存器的类型,最终转化为strDestReg=strSrc1Reg*strSrc2Reg的形式。
对于tex操作:就是实现从纹理source2上将坐标source1上的内容加载到目标寄存器的功能,此操作仅适用于片段着色器,源寄存器2必须采用取样器格式,返回值是vec4类型,需要将源寄存器1强制转换为vec2类型,还需要根据目标样本中的维度D项来判断是使用2D格式还是Cube格式:当维度D为0时转化为strDestReg=texture2D(strSrc1Reg,strSrc2Reg);当维度D为1时转化为strDestReg=textureCube(strSrc1Reg,strSrc2Reg)的形式。
其他的操作,例如:add,sub,mul,div,rcp,min,max,frc,sqt,pow,log,exp,nrm,sin,cos,abs,neg,sat,kil,sge,slt,seg等,只需按照相应的功能进行转化,无需特殊处理,如果出现类型不匹配的情况可以进行强制类型转化。
需要说明的是,本实施例提供的方法在S240之前,即顶点着色程序的转换过程中还包括,存储顶点着色程序转换过程中使用的varying变量;相应地,在具体实现时,对片段着色程序的转化也可以概括为全局变量的转化、局部变量的转化和具体操作时的转化,即本实施例中的S240可以包括:S241,将着色类型为片段着色器的寄存器转和已存储的varying变量转化为GLSL的片段着色程序对应的全局变量;S242,根据片段着色语句指示的操作推导该片段着色语句的寄存器信息,并将该寄存器类型为临时寄存器中的临时变量转化为GLSL的片段着色程序对应的局部变量;S243,将该片段着色语句的操作转换为GLSL中片段着色程序对应的操作。
在本实施例中,片段着色程序转化中的全局变量的转化、局部变量的转化和具体操作时的转化,其转换的基本方式与顶点着色程序转化的方式类似,故在此不再赘述;需要说明的是,该片段着色程序在进行全局变量的转化时,需要使用上述顶点着色程序中存储的varying变量。
本实施例所提供的图形处理方法,通过读取的AGAL的程序代码对其进行转化处理,具体基于AGAL程序代码中的数据信息和指令码所指示的操作与GLSL程序代码中的变量和操作的对应关系将该AGAL的程序代码转化为可以通过GPU执行的基于OpenGL使用的GLSL的程序代码,在程序的转化过程中,具体可以先根据AGAL的程序代码获取对应的寄存器信息,进而根据寄存器的着色类型按照顶点着色程序和片段着色程序的顺序进行转化,使得该转化后的程序可以通过GPU来执行,实现了将AGAL转化为可以通过GPU执行的着色语言,解决了现有技术中的图形处理方法,通过GPU进行三维渲染无法直接执行AGAL语言,而导致基于Stage3D技术的AGAL的实用性低的问题,节省了CPU的资源,相应地提高了Stage3D技术使用的灵活性。另外,本实施例提供的图形处理方法,在着色程序的转化过程中,通过全局变量、局部变量和具体操作的转化将AGAL转化为OpenGL使用的GLSL,提供了将AGAL用于Stage3D技术的具体方式,进一步地提高了Stage3D技术的实用性。
实施例四
图4为本发明实施例四所提供的一种图形处理装置的结构示意图。如图4所示,本实施例提供的图形处理装置,具体包括:读取模块11,转化模块12和执行模块13。
其中,读取模块11,用于读取AGAL的程序代码,该程序代码包括该AGAL的数据信息和指令码。
转化模块12,用于根据该AGAL与着色语言GLSL的对应关系,将该AGAL的程序代码转化为用于OpenGL的GLSL的程序代码,其中,该对应关系包括AGAL中数据信息和指令码所指示的操作与GLSL中程序代码的变量和操作的对应关系。
执行模块13,用于通过GPU执行该GLSL的程序代码。
本发明实施例提供的图形处理装置用于执行本发明实施例一提供的图形处理方法,具备相应的功能模块,其实现原理和技术效果类似,此处不再赘述。
实施例五
图5为本发明实施例五所提供的一种图形处理装置的结构示意图。如图5所示,本实施例提供的图形处理装置在图4所示装置结构的基础上,其中,指令码包括顶点着色语句和片段着色语句;转化模块12可以包括:获取单元14,用于根据读取模块11读取的AGAL的数据信息获取对应的寄存器信息,寄存器信息包括寄存器类型、索引,以及寄存器的着色类型;顶点着色转化单元15,用于根据该获取单元14获取的寄存器信息,对顶点着色语句进行顶点着色程序转化;片段着色转化单元16,用于根据该获取单元14获取的寄存器信息和顶点着色转化单元15对顶点着色程序转化的结果,对片段着色语句进行片段着色程序转化。
本发明实施例提供的图形处理装置用于执行本发明实施例二提供的图形处理方法,具备相应的功能模块,其实现原理和技术效果类似,此处不再赘述。
进一步地,本实施例提供的图形处理装置中,获取单元14获取的寄存器的着色类型可以包括顶点着色器;则顶点着色转化单元15具体包括:第一全局变量转化子单元,用于将着色类型为顶点着色器的寄存器和顶点着色语句中的可变性变量转化为GLSL的顶点着色程序对应的全局变量;第一局部变量转化子单元,用于根据顶点着色语句所指示的操作推导该顶点着色语句的寄存器信息,从而将该寄存器类型为临时寄存器中的临时变量转化为GLSL的顶点着色程序对应的局部变量;第一操作转化子单元,用于将该顶点着色语句的操作转换为GLSL中顶点着色程序对应的操作。在具体实现中,局部变量包括该局部变量的类型和标识符;则第一局部变量转化子单元,用于将所述寄存器类型为临时寄存器中的临时变量转化为所述GLSL的顶点着色程序对应的局部变量,具体包括:根据顶点着色语句所指示的操作,推导临时寄存器中的临时变量转化为GLSL的顶点着色程序对应的局部变量的类型;并将该局部变量对应的顶点着色语句的寄存器名称定义为该局部变量的标识符。
需要说明的是,对于GLSL的顶点着色程序中全局变量的转换,该全局变量包括着色类型为顶点着色器的寄存器和顶点着色语句中的可变性变量;具体地,本实施在进行顶点着色程序的转化过程中,可以存储该顶点着色程序转换过程中使用的varying变量,即用于GLSL程序代码的varying变量,由于varying变量是顶点着色器和片段着色器之间做数据传递用的,一般顶点着色器修改varying变量的值,然后片段着色器使用该varying变量的值,因此必须保证varying变量在顶点着色器和片段着色器之间的声明必须是一致的,即此着色程序的转化过程为先进行顶点着色程序的转化后,再进行片段着色程序的转化,并且该varying变量是全局变量,所以在进行顶点着色程序转化时,可以将所有转化过程中使用的varying变量进行存储以便用于片段着色程序的转化。
更进一步地,本实施例提供的图形处理装置中,获取单元14获取的寄存器的着色类型还可以包括片段着色器,则该装置还包括:存储模块17,用于在顶点着色转化单元15根据寄存器信息,对顶点着色语句进行顶点着色程序转化之后,存储该顶点着色程序转换过程中使用的varying变量;相应地,片段着色转化单元16具体包括:第二全局变量转化子单元,用于将着色类型为片段着色器的寄存器和该存储模块17存储的可变性变量转化为GLSL的片段着色程序对应的全局变量;第二局部变量转化子单元,用于根据片段着色语句所指示的操作推导该片段着色语句的寄存器信息,从而将该寄存器类型为临时寄存器中的临时变量转化为GLSL的片段着色程序对应的局部变量;第二操作转化子单元,用于将该片段着色语句的操作转换为GLSL中片段着色程序对应的操作。需要说明的是,本实施例在对该片段着色程序在进行全局变量的转化的过程中,需要使用上述顶点着色程序中存储的varying变量。
可选地,本实施例提供的图形处理装置,还可以包括:编译模块18,用于在执行模块13通过GPU执行GLSL之前,将已转化的GLSL编译成在GPU中用于执行的指令代码;相应地,该执行模块13,具体用于通过GPU执行该指令代码。
本发明实施例提供的图形处理装置用于执行本发明实施例三提供的图形用处理方法,具备相应的功能模块,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种图形处理方法,其特征在于,包括:
读取图形汇编语言AGAL的程序代码,所述程序代码包括所述AGAL的数据信息和指令码;
根据所述AGAL与着色语言GLSL的对应关系,将所述AGAL的程序代码转化为用于图形程序接口OpenGL的GLSL的程序代码,其中,所述对应关系包括所述AGAL的数据信息和所述指令码所指示的操作分别与所述GLSL程序代码中的变量和操作的对应关系;
通过图形处理器GPU执行所述GLSL的程序代码。
2.根据权利要求1所述的方法,其特征在于,所述指令码包括顶点着色语句和片段着色语句;
所述根据所述AGAL与着色语言GLSL的对应关系,将所述AGAL的程序代码转化为用于图形程序接口OpenGL的GLSL的程序代码,包括:
根据所述AGAL的数据信息获取对应的寄存器信息,所述寄存器信息包括寄存器类型、索引,以及所述寄存器的着色类型;
根据所述寄存器信息,对所述顶点着色语句进行顶点着色程序转化;
根据所述寄存器信息和所述顶点着色程序转化的结果,对所述片段着色语句进行片段着色程序转化。
3.根据权利要求2所述的方法,其特征在于,所述寄存器的着色类型包括顶点着色器;
所述根据所述寄存器信息,对所述顶点着色语句进行顶点着色程序转化,包括:
将所述着色类型为顶点着色器的寄存器和所述顶点着色语句中的可变性变量转化为所述GLSL的顶点着色程序对应的全局变量;
根据所述顶点着色语句所指示的操作推导所述顶点着色语句的寄存器信息,并将所述寄存器类型为临时寄存器中的临时变量转化为所述GLSL的顶点着色程序对应的局部变量;
将所述顶点着色语句的操作转换为所述GLSL中顶点着色程序对应的操作。
4.根据权利要求3所述的方法,其特征在于,所述局部变量包括所述局部变量的类型和标识符;则所述将所述寄存器类型为临时寄存器中的临时变量转化为所述GLSL的顶点着色程序对应的局部变量,包括:
根据所述顶点着色语句所指示的操作,推导所述临时寄存器中的临时变量转化为所述GLSL的顶点着色程序对应的局部变量的类型;
将所述局部变量对应的所述顶点着色语句的寄存器名称定义为所述局部变量的标识符。
5.根据权利要求3或4所述的方法,其特征在于,所述寄存器的着色类型还包括片段着色器;
所述根据所述寄存器信息,对所述顶点着色语句进行顶点着色程序转化之后,还包括:
存储所述顶点着色程序转换过程中使用的所述可变性变量;
则所述根据所述寄存器信息和所述顶点着色程序转化的结果,对所述片段着色语句进行片段着色程序转化,包括:
将所述着色类型为片段着色器的寄存器和所述存储的可变性变量转化为所述GLSL的片段着色程序对应的全局变量;
根据所述片段着色语句所指示的操作推导所述片段着色语句的寄存器信息,并将所述寄存器类型为临时寄存器中的临时变量转化为所述GLSL的片段着色程序对应的局部变量;
将所述片段着色语句的操作转换为所述GLSL中片段着色程序对应的操作。
6.一种图形处理装置,其特征在于,包括:
读取模块,用于读取图形汇编语言AGAL的程序代码,所述程序代码包括所述AGAL的数据信息和指令码;
转化模块,用于所述AGAL与着色语言GLSL的对应关系,将所述AGAL的程序代码转化为用于图形程序接口OpenGL的GLSL程序代码,其中,所述对应关系包括所述AGAL中数据信息和指令码所指示的操作与所述GLSL程序代码的变量和操作的对应关系;
执行模块,用于通过图形处理器GPU执行所述GLSL的程序代码。
7.根据权利要求6所述的装置,其特征在于,所述指令码包括顶点着色语句和片段着色语句;所述转化模块包括:获取单元,用于根据所述读取模块读取的AGAL的数据信息获取对应的寄存器信息,所述寄存器信息包括寄存器类型、索引,以及所述寄存器的着色类型;
顶点着色转化单元,用于根据所述获取单元获取的寄存器信息,对所述顶点着色语句进行顶点着色程序转化;
片段着色转化单元,用于根据所述获取单元获取的寄存器信息和所述顶点着色转化单元对所述顶点着色程序转化的结果,对所述片段着色语句进行片段着色程序转化。
8.根据权利要求7所述的装置,其特征在于,所述寄存器的着色类型包括顶点着色器;
所述顶点着色转化单元,具体包括:
第一全局变量转化子单元,用于将所述着色类型为顶点着色器的寄存器和所述顶点着色语句中的可变性变量转化为所述GLSL的顶点着色程序对应的全局变量;
第一局部变量转化子单元,用于根据所述顶点着色语句所指示的操作推导所述顶点着色语句的寄存器信息,从而将所述寄存器类型为临时寄存器中的临时变量转化为所述GLSL的顶点着色程序对应的局部变量;
第一操作转化子单元,用于将所述顶点着色语句的操作转换为所述GLSL中顶点着色程序对应的操作。
9.根据权利要求8所述的装置,其特征在于,所述局部变量包括所述局部变量的类型和标识符;则所述第一局部变量转化子单元,用于将所述寄存器类型为临时寄存器中的临时变量转化为所述GLSL的顶点着色程序对应的局部变量,具体包括:
根据所述顶点着色语句所指示的操作,推导所述临时寄存器中的临时变量转化为所述GLSL的顶点着色程序对应的局部变量的类型;并将所述局部变量对应的所述顶点着色语句的寄存器名称定义为所述局部变量的标识符。
10.根据权利要求8或9所述的装置,其特征在于,所述寄存器的着色类型还包括片段着色器;则所述装置还包括:存储模块,用于在所述顶点着色转化单元根据所述寄存器信息,对所述顶点着色语句进行顶点着色程序转化之后,存储所述顶点着色程序转换过程中使用的所述可变性变量;
则所述片段着色转化单元,具体包括:
第二全局变量转化子单元,用于将所述着色类型为片段着色器的寄存器和所述存储模块存储的可变性变量转化为所述GLSL的片段着色程序对应的全局变量;
第二局部变量转化子单元,用于根据所述片段着色语句所指示的操作推导所述片段着色语句的寄存器信息,从而将所述寄存器类型为临时寄存器中的临时变量转化为所述GLSL的片段着色程序对应的局部变量;
第二操作转化子单元,用于将所述片段着色语句的操作转换为所述GLSL中片段着色程序对应的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410360477.0A CN105335141B (zh) | 2014-07-25 | 2014-07-25 | 图形处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410360477.0A CN105335141B (zh) | 2014-07-25 | 2014-07-25 | 图形处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105335141A true CN105335141A (zh) | 2016-02-17 |
CN105335141B CN105335141B (zh) | 2018-08-07 |
Family
ID=55285711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410360477.0A Active CN105335141B (zh) | 2014-07-25 | 2014-07-25 | 图形处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105335141B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107015956A (zh) * | 2016-10-19 | 2017-08-04 | 阿里巴巴集团控股有限公司 | Web客户端中图表的绘制方法及装置 |
CN108648138A (zh) * | 2018-04-22 | 2018-10-12 | 成都明镜视觉科技有限公司 | 一种针对hdr格式编码的高动态数据处理方法 |
CN111796867A (zh) * | 2019-07-11 | 2020-10-20 | 厦门雅基软件有限公司 | 着色器的转换方法、装置及电子设备 |
CN111813380A (zh) * | 2019-04-29 | 2020-10-23 | 厦门雅基软件有限公司 | 基于游戏引擎的着色数据处理方法、装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090122062A1 (en) * | 2007-11-09 | 2009-05-14 | Lucasfilm Entertainment Company Ltd. | Translating Renderman Shading Language Code |
US20110254839A1 (en) * | 2010-02-26 | 2011-10-20 | Hammer Vincent M | Systems and Methods for Creating Near Real-Time Embossed Meshes |
CN102243770A (zh) * | 2011-07-19 | 2011-11-16 | 南昌航空大学 | 一种基于osg的虚拟海战场真实感图形快速绘制方法 |
CN102789650A (zh) * | 2012-07-19 | 2012-11-21 | 中国科学院软件研究所 | 一种基于粒子系统的海面航迹并行化仿真方法 |
-
2014
- 2014-07-25 CN CN201410360477.0A patent/CN105335141B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090122062A1 (en) * | 2007-11-09 | 2009-05-14 | Lucasfilm Entertainment Company Ltd. | Translating Renderman Shading Language Code |
US20110254839A1 (en) * | 2010-02-26 | 2011-10-20 | Hammer Vincent M | Systems and Methods for Creating Near Real-Time Embossed Meshes |
CN102243770A (zh) * | 2011-07-19 | 2011-11-16 | 南昌航空大学 | 一种基于osg的虚拟海战场真实感图形快速绘制方法 |
CN102789650A (zh) * | 2012-07-19 | 2012-11-21 | 中国科学院软件研究所 | 一种基于粒子系统的海面航迹并行化仿真方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107015956A (zh) * | 2016-10-19 | 2017-08-04 | 阿里巴巴集团控股有限公司 | Web客户端中图表的绘制方法及装置 |
CN107015956B (zh) * | 2016-10-19 | 2020-04-14 | 阿里巴巴集团控股有限公司 | Web客户端中图表的绘制方法及装置 |
CN108648138A (zh) * | 2018-04-22 | 2018-10-12 | 成都明镜视觉科技有限公司 | 一种针对hdr格式编码的高动态数据处理方法 |
CN111813380A (zh) * | 2019-04-29 | 2020-10-23 | 厦门雅基软件有限公司 | 基于游戏引擎的着色数据处理方法、装置及电子设备 |
CN111813380B (zh) * | 2019-04-29 | 2022-11-08 | 厦门雅基软件有限公司 | 基于游戏引擎的着色数据处理方法、装置及电子设备 |
CN111796867A (zh) * | 2019-07-11 | 2020-10-20 | 厦门雅基软件有限公司 | 着色器的转换方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105335141B (zh) | 2018-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3745256A1 (en) | External code integrations within a computing environment | |
US8310484B2 (en) | Efficient processing of operator graphs representing three-dimensional character animation | |
US20040255272A1 (en) | Component dependency matrices | |
CN105493030A (zh) | 着色器函数链接图表 | |
CN105335141A (zh) | 图形处理方法及装置 | |
CN113826070A (zh) | 工作流引擎工具 | |
US10643369B2 (en) | Compiler-assisted techniques for memory use reduction in graphics pipeline | |
CN112199086A (zh) | 自动编程控制系统、方法、装置、电子设备及存储介质 | |
CN104537715B (zh) | 一种实现fbx三维模型自动转换为obj三维模型的方法 | |
CN103970659A (zh) | 基于插桩技术的安卓应用软件自动化测试方法 | |
US20180232935A1 (en) | Graphics processing | |
CN114598631B (zh) | 面向神经网络计算的分布式数据路由的建模方法和装置 | |
CN115828349A (zh) | 几何模型处理方法、装置、电子设备及存储介质 | |
US9442826B2 (en) | Kernel functionality checker | |
US20150088483A1 (en) | Simulated component connector definition and connection process | |
CN114925591A (zh) | 基于多面体模型建模的自动并行策略搜索方法及相关设备 | |
CN115033434B (zh) | 一种内核性能理论值计算方法、装置及存储介质 | |
US10459429B2 (en) | Highly automated application of digital finish material to 3D data | |
CN103377050A (zh) | 一种贴片机程序坐标转换方法 | |
CN114816972A (zh) | 着色语言的测试方法、装置、电子设备以及存储介质 | |
CN116755684B (zh) | OAS Schema的生成方法、装置、设备及介质 | |
CN116755714B (zh) | 深度神经网络模型的运行方法、装置、设备和存储介质 | |
CN112036139A (zh) | 报表生成方法及装置 | |
CN117270858A (zh) | 针对硬件描述语言并行编译的前端解决方法及装置 | |
Wang et al. | Modeling and Implementation of EMU Traction System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Patentee after: Loongson Zhongke Technology Co.,Ltd. Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd. |