CN114359454A - 一种图形绘制设备、方法及装置 - Google Patents
一种图形绘制设备、方法及装置 Download PDFInfo
- Publication number
- CN114359454A CN114359454A CN202111580078.1A CN202111580078A CN114359454A CN 114359454 A CN114359454 A CN 114359454A CN 202111580078 A CN202111580078 A CN 202111580078A CN 114359454 A CN114359454 A CN 114359454A
- Authority
- CN
- China
- Prior art keywords
- data
- rendering
- program
- machine code
- target
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000007781 pre-processing Methods 0.000 claims abstract description 73
- 238000009877 rendering Methods 0.000 claims abstract description 49
- 238000012545 processing Methods 0.000 claims abstract description 41
- 238000004590 computer program Methods 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 16
- 230000009466 transformation Effects 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 5
- 238000011161 development Methods 0.000 abstract description 14
- 238000004891 communication Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 6
- 239000013598 vector Substances 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000005520 cutting process Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Landscapes
- Image Generation (AREA)
Abstract
本申请实施例提供了一种图形绘制设备、方法及装置,涉及计算机通信领域。该图形绘制设备包括图形处理程序和处理器,其中,所述图形处理程序,用于获取目标图形的预处理数据以及所述预处理数据的渲染程序;编译所述渲染程序,生成机器代码;其中,所述预处理数据包括用于对所述目标图形进行图形绘制的绘制数据;所述机器代码包括与所述渲染程序相匹配的硬件可执行的指令信息;所述处理器,用于通过所述机器代码处理所述绘制数据,得到所述目标图形。本申请实施例在现有处理器的基础上结合纯软件的方式,实现了渲染程序的编译和绘制数据的渲染;相比现有技术中基于显示芯片对图形信息进行渲染和绘制的方案,本申请摆脱了硬件芯片的约束,降低图形处理的技术门槛,同时可以满足用户个性化的开发需求。
Description
技术领域
本申请涉及计算机通信领域,具体而言,本申请涉及一种图形绘制设备、方法及装置。
背景技术
图形处理器(graphics processing unit,GPU),是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。一个光栅显示系统离不开图形处理器,图形处理器是图形系统结构的重要元件,是连接计算机和显示终端的纽带。
显示芯片作为图形处理器的重要部分,它的主要任务是对系统输入的视频信息进行构建和渲染。显示芯片的制造工艺与CPU(central processing unit,中央处理器)一样,也是用微米来衡量其加工精度并在硅晶片上制成。然而,现有GPU的发展受制于芯片制造工艺,存在技术门槛高的问题。
发明内容
本申请实施例提供了一种图形绘制设备、方法及装置,以解决现有技术中,GPU的发展受制于芯片制造工艺,存在技术门槛高的问题。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种图形绘制设备,该设备包括图形处理程序和处理器,其中,
图形处理程序,其配置为获取目标图形的预处理数据以及预处理数据的渲染程序;编译渲染程序,生成机器代码;其中,预处理数据包括用于对目标图形进行图形绘制的绘制数据;机器代码包括与渲染程序相匹配的硬件可执行的指令信息;
处理器,其配置为通过机器代码处理绘制数据,得到目标图形。
可选的,上述图形处理程序为基于Mesa 3D架构的程序,处理器为基于Risc-V架构的处理器。
可选的,上述图形处理程序,其配置为:
获取目标图形的原始几何数据;
基于图形程序接口对原始几何数据进行预处理,得到预处理数据;其中,预处理包括空间布局、坐标转换和排序中的至少一项;
将预处理数据存储到预设目标地址。
可选的,上述处理器,其配置为:
基于机器代码所包括的指令信息,从目标地址获取预处理数据,并对绘制数据进行计算。
可选的,上述渲染程序包括与目标图形对应的着色器程序;上述图形处理程序,其配置为:
编译着色器程序,生成第一中间代码;
将第一中间代码转换为第二中间代码;
基于预设编译器编译第二中间代码,得到机器代码。
根据本申请实施例的另一个方面,提供了一种图形绘制方法,该方法包括:
获取目标图形的预处理数据以及预处理数据的渲染程序;其中,预处理数据包括用于对目标图形进行图形绘制的绘制数据;
编译渲染程序,生成机器代码;其中,机器代码包括与渲染程序相匹配的硬件可执行的指令信息;
通过机器代码处理绘制数据,得到目标图形。
可选的,上述渲染程序包括与目标图形对应的着色器程序;
编译渲染程序,生成机器代码,包括:
编译着色器程序,生成第一中间代码;
将第一中间代码转换为第二中间代码;
基于预设编译器编译第二中间代码,得到机器代码。
可选的,上述方法还包括:
获取目标图形的原始几何数据;
对原始几何数据进行预处理,得到预处理数据;其中,预处理包括空间布局、坐标转换和排序中的至少一项。
根据本申请实施例的另一个方面,提供了一种图形绘制装置,该装置包括:
获取模块,用于获取目标图形的预处理数据以及预处理数据的渲染程序;其中,预处理数据包括用于对目标图形进行图形绘制的绘制数据;
编译模块,用于编译渲染程序,生成机器代码;其中,机器代码包括与渲染程序相匹配的硬件可执行的指令信息;
处理模块,用于通过机器代码处理绘制数据,得到目标图形。
可选的,上述渲染程序包括与目标图形对应的着色器程序;
上述编译模块,用于:
编译着色器程序,生成第一中间代码;
将第一中间代码转换为第二中间代码;
基于预设编译器编译第二中间代码,得到机器代码。
可选的,上述装置还包括预处理模块,用于:
获取目标图形的原始几何数据;
基于图形程序接口对原始几何数据进行预处理,得到预处理数据;其中,预处理包括空间布局、坐标转换和排序中的至少一项;
将预处理数据存储到预设目标地址。
可选的,上述处理模块,还用于:
基于机器代码所包括的指令信息,从目标地址获取预处理数据,并对绘制数据进行计算。
根据本申请实施例的另一个方面,提供了一种电子设备,该电子设备包括:存储器、处理器及存储在存储器上的计算机程序,上述处理器执行计算机程序以实现本申请实施例第一方面所示方法的步骤。
根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本申请实施例第一方面所示方法的步骤。
根据本申请实施例的一个方面,提供了一种计算机程序产品,其包括计算机程序,该计算机程序被处理器执行时实现本申请实施例第一方面所示方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例通过图形处理程序获取目标图形的预处理数据和渲染程序,并基于渲染程序进行编译生成机器代码,接着处理器基于机器代码进行数据处理;由于预处理数据包括用于对目标图形进行图形绘制的绘制数据,通过机器代码可以针对绘制数据进行渲染,进而得到目标图形;本申请实施例可以在现有处理器的基础上结合纯软件的方式,实现渲染程序的编译和绘制数据的渲染;不同于现有技术中基于显示芯片对图形信息进行渲染和绘制的方案,本申请可以摆脱硬件芯片的约束,降低图形处理的技术门槛,同时可以满足用户个性化的开发需求,有效提升了用户体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种图形绘制设备的系统架构图;
图2为本申请实施例提供的一种图形绘制设备进行图形绘制的流程示意图;
图3为本申请实施例提供的一种图形绘制方法的流程示意图;
图4为本申请实施例提供的一个示例的图形绘制方法的流程示意图;
图5为本申请实施例提供的一种图形绘制装置的结构示意图;
图6为本申请实施例提供的一种图形绘制电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图形处理器(graphics processing unit,GPU)是一种专门在个人电脑、工作站、游戏机和一些移动设备上做图像和图形相关运算工作的微处理器。图形处理器由以下器件组成:
1、显示芯片,俗称GPU芯片,它的主要任务是对系统输入的视频信息进行构建和渲染;
2、显示缓冲存储器用来存储将要显示的图形信息以及保存图形运算的中间数据;显示缓存的大小和速度直接影响着主显示芯片的性能;
3、RAM(Random Access Memory,随机存取存储器)数模转换器把二进制的数字转换成为和显示器相适应的模拟信号。
显示芯片是显卡的核心芯片,它的性能好坏直接决定了显卡性能的好坏,它的主要任务就是处理系统输入的视频信息并将其进行构建、渲染等工作。不同的显示芯片,不论从内部结构还是其性能,都存在着差异,而其价格差别也很大。显示芯片在显卡中的地位,就相当于电脑中CPU的地位,是整个显卡的核心。因为显示芯片的复杂性,设计、制造显示芯片的厂家只有NVIDIA(一家人工智能计算公司)、ATI(世界著名的显示芯片生产商)等公司。家用娱乐性显卡都采用单芯片设计的显示芯片,而在部分专业的工作站显卡上有采用多个显示芯片组合的方式。
现有GPU的发展受制于芯片制造工艺,存在技术门槛高、无法满足用户个性化开发需求的问题。
本申请提供的图形绘制设备、方法及装置,旨在解决现有技术的如上技术问题。
本申请实施例提供了一种图形绘制设备,如图1所示,该设备的系统架构可以包括接口层、代码编译层和图形绘制层;上述接口层、代码编译层由图形处理程序实现,上述图形绘制层由处理器实现。该图形绘制设备可以通过接口层获取目标图形的预处理数据和渲染程序,并基于代码编译层将渲染程序进行编译生成机器代码;接着图形绘制层根据获取得到的机器代码进行数据处理;由于预处理数据包括用于对目标图形进行图形绘制的绘制数据,处理器通过机器代码可以针对绘制数据进行渲染,进而得到目标图形,达到了降低图形处理技术门槛的目的,同时可以满足用户个性化的开发需求。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
本申请实施例提供了一种图形绘制设备,如图2所示,该设备包括图形处理程序和处理器,其中,
图形处理程序,其配置为获取目标图形的预处理数据以及预处理数据的渲染程序;编译渲染程序,生成机器代码;其中,预处理数据包括用于对目标图形进行图形绘制的绘制数据;机器代码包括与渲染程序相匹配的硬件可执行的指令信息。
处理器,其配置为通过机器代码处理绘制数据,得到目标图形。
本申请实施例中提供了一种可能的实现方式,上述图形处理程序为基于Mesa 3D架构的程序,处理器为基于Risc-V架构的处理器。
在一些实施方式中,基于Mesa 3D(一种三维计算机图形库)架构的图形处理程序,可以从预设存储地址获取原始几何数据,并基于OpenGL(Open Graphics Library,开放图形库)接口调用预处理函数对原始几何数据进行预处理,以生成预处理数据。
同时,图形处理程序可以基于预设的LLVM(Low Level Virtual Machine,底层虚拟机)编译器编译渲染程序,以生成机器代码。其中,机器代码可以包括与渲染程序相匹配的CPU指令。编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。LLVM是构架编译器的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time),对开发者保持开放,并兼容已有脚本。
其中,预处理数据是根据目标图形的原始几何数据确定的;该目标图形是待绘制的图形。
原始几何数据可以包括目标图形的顶点和顶点的属性信息,预处理数据则可以包括根据顶点信息布局后生成的几何体数据,该几何体数据包括顶点坐标、法向量、纹理坐标、纹理等数据中的至少一种,可以将该几何体数据作为绘制数据。
渲染程序可以包括基于与目标图形对应的着色器程序,该着色器程序可以是开发人员根据GLSL(OpenGL Shading Language,OpenGL着色语言)语言编写的。
在一些实施方式中,Risc-V处理器可以基于机器代码渲染绘制数据,以得到绘制完成的目标图形的像素信息,最终使得用于图形显示的显示器根据该像素信息,显示该目标图形。
Risc-V是一个基于精简指令集(RISC,Reduced Instruction Set Computer)原则的开源指令集架构。与大多数指令集相比,Risc-V指令集的使用不受限制,允许任何人设计、制造和销售Risc-V芯片和软件。虽然这不是第一个开源指令集,但它具有重要意义,因为其设计使其适用于现代计算设备(如仓库规模云计算机、高端移动电话和微小嵌入式系统)。设计者考虑到了这些用途中的性能与功率效率。该指令集还具有众多支持的软件,这解决了新指令集通常的通用性差的缺点。
其中,OpenGL是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(Application Programming Interface,API)。这个接口由近350个不同的函数调用组成,用来绘制从简单的图形比特到复杂的三维景象。OpenGL常用于CAD、虚拟现实、科学可视化程序和电子游戏开发。
Mesa 3D是一个在MIT(The MIT License,一种软件授权条款)许可证下开放源代码的三维计算机图形库,以开源形式实现了OpenGL的应用程序接口。开放源代码库Mesa是一个纯基于软件的图形API,它的代码兼容于OpenGL。
GLSL是用来在OpenGL中着色编程的语言,也即开发人员写的短小的自定义程序,他们可以作为固定的渲染管线的一部分,使渲染管线中不同层次具有可编程性。比如:视图转换、投影转换等。GLSL的着色器代码分成2个部分:Vertex Shader(顶点着色器)和Fragment(片断着色器),有时还会有Geometry Shader(几何着色器)。负责运行顶点着色的是顶点着色器。它可以得到当前OpenGL中的状态,GLSL内置变量进行传递。GLSL其使用C语言作为基础高阶着色语言,避免了使用汇编语言或硬件规格语言的复杂性。
本申请实施例通过图形处理程序获取目标图形的预处理数据和渲染程序,并基于渲染程序进行编译生成机器代码,接着处理器基于机器代码进行数据处理;由于预处理数据包括用于对目标图形进行图形绘制的绘制数据,通过机器代码可以针对绘制数据进行渲染,进而得到目标图形;本申请实施例可以在现有处理器的基础上结合纯软件的方式,实现渲染程序的编译和绘制数据的渲染;不同于现有技术中基于显示芯片对图形信息进行渲染和绘制的方案,本申请可以摆脱硬件芯片的约束,降低图形处理的技术门槛,同时可以满足用户个性化的开发需求,有效提升了用户体验。
本申请实施例中提供了一种可能的实现方式,上述图形处理程序,其配置为:
(1)获取目标图形的原始几何数据。
具体的,图形处理程序可以基于从预设存储地址获取原始几何数据;其中,原始几何数据可以包括目标图形的顶点和顶点的属性信息。
(2)基于图形程序接口对原始几何数据进行预处理,得到预处理数据;其中,预处理包括空间布局、坐标转换和排序中的至少一项。
具体的,图形处理程序可以基于OpenGL接口调用预处理函数对原始几何数据进行预处理,以生成预处理数据。其中,预处理数据可以包括根据顶点信息布局后生成的几何体数据,该几何体数据包括顶点坐标、法向量、纹理坐标、纹理等数据中的至少一种。
在一个实施方式中,图形处理程序可以基于原始几何数据中的顶点数据,通过预设构建函数构建点、线、三角面片等基本图元。接着基于视锥裁剪算法剔除视锥体之外的基本图元,并对筛选后的基本图元信息进行排序,通过四叉树或八叉树算法进行空间更新和坐标转换,以得到与原始几何数据对应的预处理数据。
在本申请实施例中,基于视锥裁剪算法将对后续的图形绘制没有任何贡献的空间体积即视锥体裁剪掉,避免了后续渲染资源的浪费;同时,为后续的图形绘制步骤提供了基本图元信息,可以优化图形绘制系统的计算性能,有效提升了图形绘制效率。
(3)将预处理数据存储到预设目标地址。
其中,预设目标地址可以是预设存储器的内存地址,以便后续处理器从该目标地址获取上述预处理数据。
本申请实施例中提供了一种可能的实现方式,上述处理器,其配置为:
基于机器代码所包括的指令信息,从目标地址获取预处理数据,并对绘制数据进行计算。
其中,机器代码还包括预处理数据的存储信息。
具体的,处理器通过解析该机器代码,从目标地址获取预处理数据,以及机器代码对应的CPU指令信息;并基于该CPU指令信息对预处理数据所包括的绘制数据进行计算。
本申请实施例中提供了一种可能的实现方式,上述渲染程序包括与目标图形对应的着色器程序;上述图形处理程序,其配置为:
(1)编译着色器程序,生成第一中间代码。
其中,上述着色器程序可以是基于GLSL着色器语言的代码。着色器语言是一类专门用来为着色器编程的编程语言。这类语言使用“颜色”“法线”等特殊的数据类型。由于三维计算机图形目标市场的多元化,不同的目标市场通常使用不同的着色器语言。着色器语言在实时计算机图形领域有着广泛应用。
具体的,图形处理程序可以基于Mesa 3D架构,调用编译程序对GLSL代码进行编译,生成第一中间代码即TGSL(GLSL着色器程序编译出的中间过程)代码。
(2)将第一中间代码转换为第二中间代码。
具体的,图形处理程序可以基于Mesa 3D架构调用转换程序,将第一中间代码转换为第二中间代码。
其中,第二中间代码可以为LLVM IR(LLVMIntermediate Representation,LLVM中间表示)代码。
(3)基于预设编译器编译第二中间代码,得到机器代码。
其中,预设编译器可以是基于LLVM的编译器。机器代码可以是CPU可执行的代码。
在本申请实施例中,根据可读的第二中间代码,获得在生成机器代码之前的代码信息;而且根据第二中间代码,我们可以选择使用不同的编译器后端生成对应的可执行代码。以编译器是LLVM编译器为例,LLVM IR是LLVM编译器优化和进行机器代码生成的关键。由于使用了统一的IR,可以重用LLVM的优化功能,对机器代码进行优化。
具体的,图形处理程序可以基于LLVM编译器后端,编译LLVM IR代码,将LLVM IR代码转化为抽象机器代码即CPU可执行代码,接着优化该CPU可执行代码,并管理对应的CPU硬件资源的使用;图形处理程序可以基于转化出来的抽象CPU可执行代码,实现与CPU硬件资源的具体对接。
本申请实施例通过图形处理程序获取目标图形的预处理数据和渲染程序,并基于渲染程序进行编译生成机器代码,接着处理器基于机器代码进行数据处理;由于预处理数据包括用于对目标图形进行图形绘制的绘制数据,通过机器代码可以针对绘制数据进行渲染,进而得到目标图形;本申请实施例可以在现有处理器的基础上结合纯软件的方式,实现渲染程序的编译和绘制数据的渲染;不同于现有技术中基于显示芯片对图形信息进行渲染和绘制的方案,本申请可以摆脱硬件芯片的约束,降低图形处理的技术门槛,同时可以满足用户个性化的开发需求,有效提升了用户体验。
本申请实施例中提供了一种图形绘制方法,如图3所示,该方法包括:
S301,获取目标图形的预处理数据以及预处理数据的渲染程序;其中,预处理数据包括用于对目标图形进行图形绘制的绘制数据。
在本申请实施例中,预处理数据是根据目标图形的原始几何数据确定的;该目标图形是待绘制的图形。其中,原始几何数据可以包括目标图形的顶点和顶点的属性信息,预处理数据则可以包括根据顶点信息布局后生成的几何体数据,该几何体数据包括顶点坐标、法向量、纹理坐标、纹理等数据中的至少一种,可以将该几何体数据作为绘制数据。
其中,渲染程序可以包括基于与目标图形对应的着色器程序,该着色器程序可以是开发人员根据GLSL语言编写的。
具体的,用于进行图形绘制的终端或服务器,可以基于Mesa 3D架构构建。用于进行图形绘制的终端或服务器,可以从预设存储地址获取原始几何数据,并基于OpenGL接口调用预处理函数对原始几何数据进行预处理,以生成预处理数据。
S302,编译渲染程序,生成机器代码;其中,机器代码包括与渲染程序相匹配的硬件可执行的指令信息。
具体的,用于进行图形绘制的终端或服务器,可以基于预设编译器编译渲染程序,以生成机器代码。其中,机器代码可以包括与渲染程序相匹配的CPU指令。
在本申请实施例中,编译器可以包括基于LLVM的编译器。
S303,通过机器代码处理绘制数据,得到目标图形。
具体的,用于进行图形绘制的终端或服务器,可以基于机器代码渲染绘制数据,以得到绘制完成的目标图形的像素信息,最终使得用于图形显示的显示器根据该像素信息,显示该目标图形。
本申请实施例通过获取目标图形的预处理数据和渲染程序,并基于渲染程序进行编译生成机器代码,实现基于机器代码进行数据处理;由于预处理数据包括用于对目标图形进行图形绘制的绘制数据,通过机器代码可以针对绘制数据进行渲染,进而得到目标图形;本申请实施例可以在现有处理器的基础上结合纯软件的方式,实现渲染程序的编译和绘制数据的渲染;不同于现有技术中基于显示芯片对图形信息进行渲染和绘制的方案,本申请可以摆脱硬件芯片的约束,降低图形处理的技术门槛,同时可以满足用户个性化的开发需求,有效提升了用户体验。
本申请实施例中提供了一种可能的实现方式,上述渲染程序包括与目标图形对应的着色器程序;上述步骤S202中的编译渲染程序,生成机器代码,包括:
(1)编译着色器程序,生成第一中间代码。
其中,上述着色器程序可以是基于GLSL着色器语言的代码。
具体的,用于进行图形绘制的终端或服务器,可以基于Mesa 3D架构调用编译程序对GLSL代码进行编译,生成第一中间代码即TGSL代码。
(2)将第一中间代码转换为第二中间代码。
具体的,用于进行图形绘制的终端或服务器,可以基于Mesa 3D架构调用转换程序,将第一中间代码转换为第二中间代码。
其中,第二中间代码可以为LLVM IR代码。
(3)基于预设编译器编译第二中间代码,得到机器代码。
其中,预设编译器可以是基于LLVM的编译器。机器代码可以是CPU可执行的代码。
在本申请实施例中,根据可读的第二中间代码,获得在生成机器代码之前的代码信息;而且根据第二中间代码,可以选择使用不同的编译器后端生成对应的可执行代码。以编译器是LLVM编译器为例,LLVM IR是LLVM编译器优化和进行机器代码生成的关键。由于使用了统一的IR,可以重用LLVM的优化功能,对机器代码进行优化。
具体的,用于进行图形绘制的终端或服务器,可以基于LLVM编译器后端编译LLVMIR代码,将LLVM IR代码转化为抽象机器代码即CPU可执行代码,优化该CPU可执行代码,并管理对应的CPU硬件资源的使用;在本申请实施例中,用于进行图形绘制的终端或服务器,可以基于转化出来的抽象CPU可执行代码,实现与CPU硬件资源的具体对接。
本申请实施例中提供了一种可能的实现方式,上述方法还包括:
(1)获取目标图形的原始几何数据。
具体的,用于进行图形绘制的终端或服务器,可以从预设存储地址获取原始几何数据;其中,原始几何数据可以包括目标图形的顶点和顶点的属性信息。
(2)对原始几何数据进行预处理,得到预处理数据;其中,预处理包括空间布局、坐标转换和排序中的至少一项。
具体的,用于进行图形绘制的终端或服务器,可以基于OpenGL接口调用预处理函数对原始几何数据进行预处理,以生成预处理数据。其中,预处理数据可以包括根据顶点信息布局后生成的几何体数据,该几何体数据包括顶点坐标、法向量、纹理坐标、纹理等数据中的至少一种,将该几何体数据作为绘制数据。
在一个实施方式中,用于进行图形绘制的终端或服务器,可以基于原始几何数据中的顶点数据,通过预设构建函数构建点、线、三角面片等基本图元。接着基于视锥裁剪算法剔除视锥体之外的基本图元,并对筛选后的基本图元信息进行排序,通过四叉树或八叉树算法进行空间更新和坐标转换,以得到与原始几何数据对应的预处理数据。
在本申请实施例中,基于视锥裁剪算法将对后续的图形绘制没有任何贡献的空间体积即视锥体裁剪掉,避免了后续渲染资源的浪费;同时,为后续的图形绘制步骤提供了基本图元信息,可以优化图形绘制系统的计算性能,有效提升了图形绘制效率。
为了更好的理解上述图形绘制方法,下面结合图4详细阐述一个本申请的图形绘制方法的示例,包括如下步骤:
S401,获取目标图形的原始几何数据。
具体的,用于进行图形绘制的终端或服务器,可以基于Mesa 3D架构构建。用于进行图形绘制的终端或服务器,可以从预设存储地址获取原始几何数据;其中,原始几何数据可以包括目标图形的顶点和顶点的属性信息。
S402,对原始几何数据进行预处理,得到预处理数据;其中,预处理包括空间布局、坐标转换和排序中的至少一项;其中,预处理数据包括用于对目标图形进行图形绘制的绘制数据。
具体的,用于进行图形绘制的终端或服务器,可以基于OpenGL接口调用预处理函数对原始几何数据进行预处理,以生成预处理数据。其中,预处理数据可以包括根据顶点信息布局后生成的几何体数据,该几何体数据包括顶点坐标、法向量、纹理坐标、纹理等数据中的至少一种,将该几何体数据作为绘制数据。
S403,获取与预处理数据对应的渲染程序;上述渲染程序包括与目标图形对应的着色器程序。
其中,该着色器程序可以是开发人员根据GLSL语言编写的。
S404,编译着色器程序,生成第一中间代码。
具体的,用于进行图形绘制的终端或服务器,可以基于Mesa 3D架构调用编译程序对GLSL代码进行编译,生成第一中间代码即TGSL代码。
S405,将第一中间代码转换为第二中间代码。
具体的,用于进行图形绘制的终端或服务器,可以基于Mesa 3D架构调用转换程序,将第一中间代码转换为第二中间代码。
其中,第二中间代码可以为LLVM IR代码。
S406,基于预设编译器编译第二中间代码,得到机器代码;其中,机器代码包括与渲染程序相匹配的硬件可执行的指令信息。
其中,预设编译器可以是基于LLVM的编译器。机器代码可以是CPU可执行的代码。
具体的,用于进行图形绘制的终端或服务器,可以基于LLVM编译器后端编译LLVMIR代码,将LLVM IR代码转化为抽象机器代码即CPU可执行代码,接着优化该CPU可执行代码,并管理对应的CPU硬件资源的使用;在本申请实施例中,用于进行图形绘制的终端或服务器,可以基于转化出来的抽象CPU可执行代码,实现与CPU硬件资源的具体对接。
S407,通过机器代码处理绘制数据,得到目标图形。
具体的,用于进行图形绘制的终端或服务器,可以基于机器代码渲染绘制数据,以得到绘制完成的目标图形的像素信息,最终使得用于图形显示的显示器根据该像素信息,显示该目标图形。
本申请实施例通过获取目标图形的预处理数据和渲染程序,并基于渲染程序进行编译生成机器代码,实现基于机器代码进行数据处理;由于预处理数据包括用于对目标图形进行图形绘制的绘制数据,通过机器代码可以针对绘制数据进行渲染,进而得到目标图形;本申请实施例可以在现有处理器的基础上结合纯软件的方式,实现渲染程序的编译和绘制数据的渲染;不同于现有技术中基于显示芯片对图形信息进行渲染和绘制的方案,本申请可以摆脱硬件芯片的约束,降低图形处理的技术门槛,同时可以满足用户个性化的开发需求,有效提升了用户体验。
本申请实施例提供了一种图形绘制装置,如图5所示,该图形绘制装置50可以包括:获取模块501、编译模块502和处理模块503;
其中,获取模块501,用于获取目标图形的预处理数据以及预处理数据的渲染程序;其中,预处理数据包括用于对目标图形进行图形绘制的绘制数据;
编译模块502,用于编译渲染程序,生成机器代码;其中,机器代码包括与渲染程序相匹配的硬件可执行的指令信息;
处理模块503,用于通过机器代码处理绘制数据,得到目标图形。
本申请实施例中提供了一种可能的实现方式,上述渲染程序包括与目标图形对应的着色器程序;
上述编译模块502,用于:
编译着色器程序,生成第一中间代码;
将第一中间代码转换为第二中间代码;
基于预设编译器编译第二中间代码,得到机器代码。
本申请实施例中提供了一种可能的实现方式,上述装置还包括预处理模块,用于:
获取目标图形的原始几何数据;
基于图形程序接口对原始几何数据进行预处理,得到预处理数据;其中,预处理包括空间布局、坐标转换和排序中的至少一项;
将预处理数据存储到预设目标地址。
本申请实施例中提供了一种可能的实现方式,上述处理模块503,还用于:
基于机器代码所包括的指令信息,从目标地址获取预处理数据,并对绘制数据进行计算。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例通过获取目标图形的预处理数据和渲染程序,并基于渲染程序进行编译生成机器代码,实现基于机器代码进行数据处理;由于预处理数据包括用于对目标图形进行图形绘制的绘制数据,通过机器代码可以针对绘制数据进行渲染,进而得到目标图形;本申请实施例可以在现有处理器的基础上结合纯软件的方式,实现渲染程序的编译和绘制数据的渲染;不同于现有技术中基于显示芯片对图形信息进行渲染和绘制的方案,本申请可以摆脱硬件芯片的约束,降低图形处理的技术门槛,同时可以满足用户个性化的开发需求,有效提升了用户体验。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现图形绘制方法的步骤,与相关技术相比可实现:本申请实施例通过获取目标图形的预处理数据和渲染程序,并基于渲染程序进行编译生成机器代码,实现基于机器代码进行数据处理;由于预处理数据包括用于对目标图形进行图形绘制的绘制数据,通过机器代码可以针对绘制数据进行渲染,进而得到目标图形;本申请实施例可以在现有处理器的基础上结合纯软件的方式,实现渲染程序的编译和绘制数据的渲染;不同于现有技术中基于显示芯片对图形信息进行渲染和绘制的方案,本申请可以摆脱硬件芯片的约束,降低图形处理的技术门槛,同时可以满足用户个性化的开发需求,有效提升了用户体验。
在一个可选实施例中提供了一种电子设备,如图6所示,图6所示的电子设备600包括:处理器601和存储器603。其中,处理器601和存储器603相连,如通过总线602相连。可选地,电子设备600还可以包括收发器604,收发器604可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器604不限于一个,该电子设备600的结构并不构成对本申请实施例的限定。
处理器601可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器601也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线602可包括一通路,在上述组件之间传送信息。总线602可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线602可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器603可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器603用于存储执行本申请实施例的计算机程序,并由处理器601来控制执行。处理器601用于执行存储器603中存储的计算机程序,以实现前述方法实施例所示的步骤。
其中,电子设备包括但不限于:诸如移动电话、笔记本电脑、PAD等等移动终端以及诸如数字TV、台式计算机等等固定终端。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行时实现如下情况:
获取目标图形的预处理数据以及预处理数据的渲染程序;其中,预处理数据包括用于对目标图形进行图形绘制的绘制数据;
编译渲染程序,生成机器代码;其中,机器代码包括与渲染程序相匹配的硬件可执行的指令信息;
通过机器代码处理绘制数据,得到目标图形。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (10)
1.一种图形绘制设备,其特征在于,所述图形绘制设备包括图形处理程序和处理器,其中,
所述图形处理程序,其配置为获取目标图形的预处理数据以及所述预处理数据的渲染程序;编译所述渲染程序,生成机器代码;
其中,所述预处理数据包括用于对所述目标图形进行图形绘制的绘制数据;所述机器代码包括与所述渲染程序相匹配的硬件可执行的指令信息;
所述处理器,其配置为通过所述机器代码处理所述绘制数据,得到所述目标图形。
2.根据权利要求1所述的图形绘制设备,其特征在于,所述图形处理程序为基于Mesa3D架构的程序,所述处理器为基于Risc-V架构的处理器。
3.根据权利要求2所述的图形绘制设备,其特征在于,所述图形处理程序,其配置为:
获取所述目标图形的原始几何数据;
基于图形程序接口对所述原始几何数据进行预处理,得到预处理数据;其中,所述预处理包括空间布局、坐标转换和排序中的至少一项;
将所述预处理数据存储到预设目标地址。
4.根据权利要求3所述的图形绘制设备,其特征在于,所述图形处理程序,其配置为:
基于所述机器代码所包括的所述指令信息,从所述目标地址获取所述预处理数据,并对所述绘制数据进行计算。
5.一种图形绘制方法,其特征在于,包括:
获取目标图形的预处理数据以及所述预处理数据的渲染程序;其中,所述预处理数据包括用于对所述目标图形进行图形绘制的绘制数据;
编译所述渲染程序,生成机器代码;其中,所述机器代码包括与所述渲染程序相匹配的硬件可执行的指令信息;
通过所述机器代码处理所述绘制数据,得到所述目标图形。
6.根据权利要求5所述的方法,其特征在于,所述渲染程序包括与所述目标图形对应的着色器程序;
所述编译所述渲染程序,生成机器代码,包括:
编译所述着色器程序,生成第一中间代码;
将所述第一中间代码转换为第二中间代码;
基于预设编译器编译所述第二中间代码,得到机器代码。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取所述目标图形的原始几何数据;
对所述原始几何数据进行预处理,得到预处理数据;其中,所述预处理包括空间布局、坐标转换和排序中的至少一项。
8.一种图形绘制装置,其特征在于,包括:
获取模块,用于获取目标图形的预处理数据以及所述预处理数据的渲染程序;其中,所述预处理数据包括用于对所述目标图形进行图形绘制的绘制数据;
编译模块,用于编译所述渲染程序,生成机器代码;其中,所述机器代码包括与所述渲染程序相匹配的硬件可执行的指令信息;
处理模块,用于通过所述机器代码处理所述绘制数据,得到所述目标图形。
9.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求5-7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求5-7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111580078.1A CN114359454A (zh) | 2021-12-22 | 2021-12-22 | 一种图形绘制设备、方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111580078.1A CN114359454A (zh) | 2021-12-22 | 2021-12-22 | 一种图形绘制设备、方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114359454A true CN114359454A (zh) | 2022-04-15 |
Family
ID=81100781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111580078.1A Pending CN114359454A (zh) | 2021-12-22 | 2021-12-22 | 一种图形绘制设备、方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114359454A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118154759A (zh) * | 2024-05-06 | 2024-06-07 | 武汉凌久微电子有限公司 | 一种可编程管线gpu中固定管线功能实现方法 |
-
2021
- 2021-12-22 CN CN202111580078.1A patent/CN114359454A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118154759A (zh) * | 2024-05-06 | 2024-06-07 | 武汉凌久微电子有限公司 | 一种可编程管线gpu中固定管线功能实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11232534B2 (en) | Scheme for compressing vertex shader output parameters | |
KR102003655B1 (ko) | 그래픽 프로세싱에서 셰도우 레이들에 대한 트리 횡단을 위한 시작 노드 결정 | |
WO2022116759A1 (zh) | 图像渲染方法、装置、计算机设备和存储介质 | |
JP6309620B2 (ja) | 頂点シェーダのフロント・エンドとしてコンピュート・シェーダを使用すること | |
KR101820621B1 (ko) | 광선 추적 어플리케이션들에서 트리 순회를 위한 시작 노드 결정 | |
CN100507852C (zh) | 用于优化流处理程序的方法、装置和系统 | |
CN109087384B (zh) | 光线跟踪系统和方法以及光线压缩方法和模块 | |
US9928637B1 (en) | Managing rendering targets for graphics processing units | |
KR20140139553A (ko) | 그래픽 프로세싱 유닛들에서 가시성 기반 상태 업데이트들 | |
TW201439965A (zh) | 用於樣本後綴陣列的平行重建之系統、方法、與電腦程式產品 | |
CN107209951B (zh) | 单遍表面溅射 | |
KR20170132758A (ko) | 하이브리드 2d/3d 그래픽 렌더링 | |
EP3427229B1 (en) | Visibility information modification | |
CN104823220A (zh) | 用于图形处理的图形存储器加载掩模 | |
CN107403461B (zh) | 使用随机光栅化生成随机采样分布的采样设备和方法 | |
WO2017105595A1 (en) | Graphics processor logic for encoding increasing or decreasing values | |
CN111091620A (zh) | 基于图形学的地图动态路网处理方法及系统、计算机设备 | |
CN114359454A (zh) | 一种图形绘制设备、方法及装置 | |
Tine et al. | Skybox: Open-source graphic rendering on programmable risc-v gpus | |
US20180082397A1 (en) | Static Data Sharing Mechanism for a Heterogeneous Processing Environment | |
JP5864474B2 (ja) | 空間を分割してグラフィックスを処理する画像処理装置及び画像処理方法 | |
CN114943795A (zh) | 模型的渲染方法、装置、电子设备及存储介质 | |
CN113256771A (zh) | 图形系统和相应地图形处理方法 | |
CN118229507A (zh) | 一种图像处理方法、装置、系统、设备及计算机存储介质 | |
CN114494564A (zh) | 法线贴图生成方法、设备、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100176 Room 101, 1f, building 3, yard 18, Kechuang 10th Street, Beijing Economic and Technological Development Zone, Beijing Applicant after: Beijing ESWIN Computing Technology Co.,Ltd. Address before: 100176 Room 101, 1f, building 3, yard 18, Kechuang 10th Street, Beijing Economic and Technological Development Zone, Beijing Applicant before: Beijing yisiwei Computing Technology Co.,Ltd. |
|
CB02 | Change of applicant information |