CN116263981B - 图形处理器、系统、装置、设备及方法 - Google Patents
图形处理器、系统、装置、设备及方法 Download PDFInfo
- Publication number
- CN116263981B CN116263981B CN202210414506.1A CN202210414506A CN116263981B CN 116263981 B CN116263981 B CN 116263981B CN 202210414506 A CN202210414506 A CN 202210414506A CN 116263981 B CN116263981 B CN 116263981B
- Authority
- CN
- China
- Prior art keywords
- texture
- texture space
- coloring object
- pixel
- space coloring
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000004040 coloring Methods 0.000 claims abstract description 259
- 238000012545 processing Methods 0.000 claims abstract description 130
- 238000013507 mapping Methods 0.000 claims abstract description 89
- 238000009877 rendering Methods 0.000 claims description 29
- 239000003086 colorant Substances 0.000 claims description 12
- 238000012360 testing method Methods 0.000 claims description 12
- 238000005070 sampling Methods 0.000 claims 2
- 230000008569 process Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 6
- 238000003672 processing method Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 238000010420 art technique Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 239000003973 paint Substances 0.000 description 2
- 239000012634 fragment Substances 0.000 description 1
- 239000002674 ointment Substances 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
Abstract
本公开提供一种图形处理器、系统、装置、设备及方法。该图形处理器包括:几何处理模块,被配置为:针对画图命令,对纹理空间着色物体进行几何处理,输出所述纹理空间着色物体的纹理图;光栅化处理模块,被配置为:所述几何处理结束后,对所述纹理空间着色物体进行光栅化处理,输出所述纹理空间着色物体的像素坐标与纹理坐标映射关系;像素处理模块,被配置为:所述光栅化处理结束后,对所述纹理空间着色物体进行像素处理,输出所述纹理空间着色物体的纹理图;画图显示模块,被配置为:针对画图显示命令,通过所述映射关系从所述纹理空间着色物体的纹理图中查找所述纹理空间着色物体的像素颜色。
Description
技术领域
本公开涉及图像渲染技术领域,尤其涉及一种GPU(Graphics Processing Unit,图形处理器)、图形处理系统、电子装置、电子设备及图形处理方法。
背景技术
纹理空间着色(Texture Space Shading,TSS)的思路是对在多个帧中相对不变的物体(Object)进行单独的着色,从而使每一帧在显示该物体时只进行贴图,而不用进行复杂的像素计算。通过纹理空间着色技术,能够很好地使一个物体在多帧中复用,减少对该物体的重复渲染。
本文中将采用纹理空间着色技术进行单独着色的物体称为纹理空间着色物体。对一个纹理空间着色物体单独着色的过程如下:
提交纹理空间着色物体的几何信息,对纹理空间着色物体进行几何处理,将3D坐标转换为展开的2D坐标(一般用(u,v)坐标来表示);
针对上述纹理空间着色物体,进行着色(shader)计算,例如光照计算,生成纹理空间着色物体的纹理图。
纹理空间着色物体的画图过程如下:
再次提交纹理空间着色物体的几何信息,对纹理空间着色物体进行几何处理;
然后对纹理空间着色物体进行光栅化贴图,从上述着色过程产生的着色结果里取出物体最终显示的颜色,作为纹理空间物体显示的颜色。
现有的采用纹理空间着色技术的图像渲染过程,在硬件开销以及内存带宽消耗上存在可优化的空间。
发明内容
本公开的目的是提供一种图形处理器、图形处理系统、电子装置、电子设备及图形处理方法,以降低硬件开销及内存带宽消耗。
根据本公开的一个方面,提供一种图形处理器,该图形处理器至少包括:
几何处理模块,被配置为:针对画图命令,对纹理空间着色物体进行几何处理,输出纹理空间着色物体的纹理坐标;
光栅化处理模块,被配置为:几何处理结束后,对纹理空间着色物体进行光栅化处理,输出该纹理空间着色物体的像素坐标与纹理坐标映射关系;
像素处理模块,被配置为:光栅化处理结束后,对纹理空间着色物体进行像素处理,输出纹理空间着色物体的纹理图;
画图显示模块,被配置为:针对画图显示命令,通过上述映射关系从纹理空间着色物体的纹理图中查找纹理空间着色物体的像素颜色。
可选的,光栅化处理模块包括像素覆盖测试子模块和像素插值计算子模块。像素覆盖测试子模块被配置为:确定纹理空间着色物体的像素坐标并填入映射关系数据结构;像素插值计算子模块被配置为:确定纹理空间着色物体的每个像素坐标对应的纹理坐标并填入映射关系数据结构。
在上述任一图形处理器实施例的基础上,可选的,画图显示模块还被配置为:判断待画图的顶点是否为纹理空间着色物体的顶点,以便针对纹理空间着色物体的顶点,通过映射关系从纹理空间着色物体的纹理图中查找纹理空间着色物体的像素颜色。
进一步的,画图显示模块被配置为:根据画图显示命令指示的顶点属性信息判断待画图的顶点是否为纹理空间着色物体的顶点,顶点属性信息中包括纹理空间着色物体的顶点识别信息。
在上述任一图形处理器实施例的基础上,光栅化处理模块还可以被配置为:输出纹理空间着色物体中像素的深度值。相应的,确定纹理空间着色物体的像素颜色之前,画图显示模块还可以被配置为:根据纹理空间着色物体中像素的深度值判断纹理空间着色物体是否被遮挡,以便在纹理空间着色物体未被遮挡的情况下,通过映射关系从纹理空间着色物体的纹理图中查找纹理空间着色物体的像素颜色。
在上述任一图形处理器实施例基础上,上述画图命令中可以携带纹理空间着色物体的纹理图保存地址、映射关系的保存地址及深度值的保存地址。相应的,像素处理模块被配置为:输出纹理空间着色物体的纹理图至纹理图保存地址;光栅化处理模块被配置为:输出纹理空间着色物体的像素坐标与纹理坐标映射关系至映射关系的保存地址。
根据本公开的另一个方面,提供一种图形处理系统,该图形处理系统包括上述任一实施例中所述的图形处理器。
根据本公开的另一个方面,提供一种电子装置,包括上述实施例中所述的图形处理系统。
根据本公开的另一个方面,提供一种电子设备,包括上述实施例所述的电子装置。
根据本公开的另一个方面,提供一种图形处理方法,该方法至少包括如下步骤:
针对画图命令,对纹理空间着色物体进行几何处理,输出纹理空间着色物体的纹理坐标;
几何处理结束后,对纹理空间着色物体进行光栅化处理,输出纹理空间着色物体的像素坐标与纹理坐标映射关系;
光栅化处理结束后,对纹理空间着色物体进行像素处理,输出该纹理空间着色物体的纹理图;
针对画图显示命令,通过上述映射关系从纹理空间着色物体的纹理图中查找纹理空间着色物体的像素颜色。
可选的,对纹理空间着色物体进行光栅化处理,输出纹理空间着色物体的像素坐标与纹理坐标映射关系,该步骤的实现方式可以包括:确定纹理空间着色物体的像素坐标并填入映射关系数据结构;确定纹理空间着色物体的每个像素坐标对应的纹理坐标并填入映射关系数据结构。
在上述任一方法实施例的基础上,通过所述映射关系从所述纹理空间着色物体的纹理图中查找纹理空间着色物体的像素颜色之前,还可以判断待画图的顶点是否为纹理空间着色物体的顶点,以便针对纹理空间着色物体的顶点,通过上述映射关系从纹理空间着色物体的纹理图中查找纹理空间着色物体的像素颜色。
进一步的,判断待画图的顶点是否为纹理空间着色物体的顶点的实现方式可以包括:根据画图显示命令指示的顶点属性信息判断待画图的顶点是否为纹理空间着色物体的顶点,顶点属性信息中包括纹理空间着色物体的顶点识别信息。
在上述任一方法实施例的基础上,对纹理空间着色物体进行光栅化处理后,还可以输出纹理空间着色物体中像素的深度值。相应的,确定纹理空间着色物体的像素颜色之前,还可以根据纹理空间着色物体中像素的深度值判断纹理空间着色物体是否被遮挡,以便在纹理空间着色物体未被遮挡的情况下,通过上述映射关系从纹理空间着色物体的纹理图中查找纹理空间着色物体的像素颜色。
在上述任一方法实施例的基础上,画图命令中可以携带纹理空间着色物体的纹理图保存地址、上述映射关系的保存地址及上述深度值的保存地址。相应的,对纹理空间着色物体进行像素处理后,还可以输出纹理空间着色物体的纹理图至纹理图保存地址;对纹理空间着色物体进行光栅化处理后,还可以输出所述纹理空间着色物体的像素坐标与纹理坐标映射关系至映射关系的保存地址,输出纹理空间着色物体的像素坐标。
附图说明
图1为本公开一个实施例的纹理空间着色物体2D坐标展开示意图;
图2为本公开一个实施例的纹理空间着色物体中像素颜色查找示意图;
图3为本公开一个实施例的图形处理系统结构示意图;
图4为本公开一个实施例的图形处理方法流程示意图。
具体实施方式
在介绍本公开实施例之前,应当说明的是:
本公开部分实施例被描述为处理流程,虽然流程的各个操作步骤可能被冠以顺序的步骤编号,但是其中的操作步骤可以被并行地、并发地或者同时实施。
本公开实施例中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区分。
本公开实施例中可能使用了术语“和/或”,“和/或”包括其中一个或更多所列出的相关联特征的任意和所有组合。
应当理解的是,当描述两个部件的连接关系或通信关系时,除非明确指明两个部件之间直接连接或直接通信,否则,两个部件的连接或通信可以理解为直接连接或通信,也可以理解为通过中间部件间接连接或通信。
为了使本公开实施例中的技术方案及优点更加清楚明白,以下结合附图对本公开的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本公开的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
本公开的目的是提供一种在渲染过程中可减少几何处理过程的GPU,在纹理空间着色过程中保存纹理空间着色物体的像素坐标与纹理坐标的映射关系,在画图显示过程中,不需要再进行几何处理过程,通过上述映射关系直接查找纹理图从而确定纹理空间着色物体的像素颜色。本公开实施例可减少纹理空间着色物体重复的几何处理过程,从而减少硬件进行几何计算的开销和内存带宽的消耗。其中,GPU是指通过硬件实现、具有计算功能的处理器,其包括计算单元、缓存等等组成部件,可以是GPGPU(general-purposegraphics processing unit,通用图形处理器),也可以是GPU。
本公开实施例提供的图形处理器适用于IMR(Immediate Mode Rendering,立即模式渲染)、TBR(Tile Based Render,基于图块的渲染)、TBDR(Tile Based DeferredRendering,基于图块的延迟渲染)等多种不同的渲染管线架构。
本公开的一个实施例提供一种图形处理器,该图形处理器至少包括几何处理模块、光栅化处理模块、像素处理模块和画图显示模块。
其中,几何处理模块被配置为:针对画图命令,对纹理空间着色物体进行几何处理,输出纹理空间着色物体的纹理坐标;光栅化处理模块被配置为:几何处理结束后,对纹理空间着色物体进行光栅化处理,输出该纹理空间着色物体的像素坐标与纹理坐标映射关系;像素处理模块,被配置为:光栅化处理结束后,对纹理空间着色物体进行像素处理,输出纹理空间着色物体的纹理图;画图显示模块被配置为:针对画图显示命令,通过上述映射关系从纹理空间着色物体的纹理图中查找纹理空间着色物体的像素颜色。
本公开中,纹理坐标可以但不仅限于是u,v坐标。
其中,上述几何处理、光栅化处理和像素处理是在纹理空间着色阶段执行的。几何处理模块通过硬件实现,且基于不同的渲染管线架构,几何处理模块实现的功能有所不同,且几何处理模块可以由单一硬件模块或者多个硬件模块构成。同样的,光栅化处理模块及像素处理模块通过硬件实现,且基于不同的渲染管线架构,光栅化处理模块及像素处理模块实现的功能有所不同,且光栅化处理模块及像素处理模块可以由单一硬件模块或者多个硬件模块构成。但无论基于何种渲染管线架构,几何处理模块均能够实现将纹理空间着色物体进行三维到二维展开;光栅化处理模块均能够实现纹理空间着色物体的像素坐标与纹理坐标映射关系的生成与输出;像素处理模块均能够实现纹理空间着色物体的像素处理,生成纹理图。
作为举例而非限定,在一个实施例中,几何处理模块包括顶点着色器(vertexshader)和几何着色器(geometry shader)。其中,顶点着色器获取纹理空间着色物体的几何信息,并将纹理空间着色物体的几何信息传输给几何着色器。几何着色器利用纹理空间着色物体的几何信息,将纹理空间着色物体的3D坐标转换为展开的纹理坐标(u,v)。如图1所示,纹理空间着色物体的几何信息包括纹理空间物体的3D坐标,通过(u,v)坐标展开,得到纹理空间着色物体的各个顶点的3D坐标对应的纹理坐标。
如上所述,实际应用中,也可以由更多或更少的硬件模块实现上述顶点着色器和几何着色器的功能。
作为举例而非限定,在一个实施例中,光栅化处理模块包括像素覆盖测试子模块和像素插值计算子模块。像素覆盖测试子模块被配置为:确定纹理空间着色物体的像素坐标并填入映射关系数据结构;像素插值计算子模块被配置为:确定纹理空间着色物体的每个像素坐标对应的纹理坐标并填入映射关系数据结构。
本公开中,映射关系数据结构中关联保存存在映射关系的像素坐标及纹理坐标。本公开不对映射关系数据结构的具体数据结构形式进行限定,作为举例,可以采用映射表的数据结构形式。
如上所述,实际应用中,也可以由更多或更少的硬件模块实现上述像素覆盖测试子模块和像素插值计算子模块的功能。
更进一步的,纹理空间着色物体的像素坐标与纹理坐标的映射关系可以保存在系统内存中。在一个实施例中,系统内存中分配了用于存储该映射关系的存储空间,确定该映射关系后,将该映射关系输出至映射关系的存储空间。
本公开实施例不对光栅化处理模块如何获知映射关系的存储空间地址的实现方式进行限定。作为举例而非限定,画图命令中携带映射关系的保存地址(在该实施例中,映射关系的保存地址即为系统内存中映射关系的存储空间地址),光栅化处理模块根据画图命令获取映射关系的保存地址,从而将纹理空间着色物体的像素坐标与纹理坐标的映射关系输出至该映射关系的保存地址。
在光栅化处理过程中可能涉及到深度计算。如果纹理空间着色物体带有深度信息,那么,光栅化处理模块还可以被配置为:输出纹理空间着色物体中像素的深度值。相应的,确定纹理空间着色物体的像素颜色之前,画图显示模块还可以被配置为:根据纹理空间着色物体中像素的深度值判断纹理空间着色物体是否被遮挡,以便在纹理空间着色物体未被遮挡的情况下,通过映射关系从纹理空间着色物体的纹理图中查找纹理空间着色物体的像素颜色。
更进一步的,像素的深度值可以保存在系统内存中。在一个实施例中,系统内存中分配了用于存储深度值的存储空间(以下称为深度缓冲区(buffer)),确定纹理空间着色物体中像素的深度值后,将深度值输出至深度缓冲区。
本公开实施例不对光栅化处理模块如何获知深度缓冲区地址的实现方式进行限定。作为举例而非限定,画图命令中携带深度保存地址(在该实施例中,深度值的保存地址即为深度缓冲区地址),光栅化处理模块根据画图命令获取深度值的保存地址,从而将纹理空间着色物体中像素的深度值输出至该深度值的保存地址。
在纹理空间着色阶段,对纹理空间着色物体光栅化处理后,由像素处理模块对纹理空间着色物体进行像素处理,像素处理包括着色处理(例如光照计算),可选的,像素处理还可以包括像素后处理等。其具体实现方式可参照现有像素处理技术实现,本公开对此不做限定。
像素处理完成后,像素处理模块输出纹理空间着色物体的纹理图。
更进一步的,纹理空间着色物体的纹理图可以保存在系统内存中。在一个实施例中,系统内存中分配了用于存储纹理图的存储空间,生成纹理图后,将纹理图输出至纹理图的存储空间。
本公开实施例不对像素处理模块如何获知纹理图的存储空间地址的实现方式进行限定。作为举例而非限定,画图命令中携带纹理图保存地址(在该实施例中,纹理图保存地址即为纹理图的存储空间地址),像素处理模块根据画图命令中的纹理图保存地址,将纹理空间着色物体的纹理图输出至该纹理图保存地址。
如上所述,纹理空间着色的目的是对多个帧中相对不变的物体进行单独着色,从而使每一帧在显示该物体时只进行贴图。因此,在对纹理空间着色物体进行纹理空间着色后,在后续的多帧中,均可以由上述画图显示模块按照上述实现方式确定纹理空间着色物体的像素颜色。
画图显示模块在查找到纹理空间着色物体的像素颜色后,将查找到的像素颜色输出至帧缓冲区(frame buffer)。如图2所示,画图显示模块从纹理图中查找像素颜色,并将查找到的像素颜色保存到帧缓冲区。
本公开中,画图显示模块由硬件实现,在实际应用中,根据渲染管线架构的不同,画图显示模块可以通过现有渲染硬件实现(例如实现纹理贴图功能的硬件),也可以通过新增硬件实现,本公开对此不作限定。
实际应用中,在几何处理阶段,需要先识别顶点是否为纹理空间着色物体的顶点。相应的,在通过映射关系从纹理空间着色物体的纹理图中查找纹理空间着色物体的像素颜色之前,画图显示模块还被配置为:判断待画图的顶点是否为纹理空间着色物体的顶点,以便针对纹理空间着色物体的顶点,通过映射关系从纹理空间着色物体的纹理图中查找纹理空间着色物体的像素颜色。
其中,待画图的顶点具体包括依据画图显示命令获取顶点属性信息的顶点。
本公开实施例不对如何判断待画图的顶点是否为纹理空间着色物体的顶点的实现方式进行限定。作为举例,画图显示命令中可以指示纹理空间着色物体的顶点属性信息,该顶点属性信息中包括纹理空间着色物体的顶点识别信息。相应的,画图显示模块被配置为:根据画图显示命令指示的顶点属性信息判断待画图的顶点是否为纹理空间着色物体的顶点。
其中,纹理空间着色物体的顶点识别信息用于指示待画图的顶点是否纹理空间着色物体的顶点。本公开实施例不对纹理空间着色物体的顶点识别信息的具体表达形式进行限定。
本公开实施例还提供一种图形处理系统,该图形处理系统包括上述任一实施例中所述的图形处理器。
本公开实施例中,图形处理系统的产品形态可以为SOC(System on Chip,片上系统)芯片。
本公开实施例中的图形处理器系统可以是单die(晶片)SOC芯片,也可以是多die互联的SOC芯片。
下面以一个die为例,对本公开提供的图形处理系统的架构及工作原理进行说明。
在图3所示的一个实施例中,单die的图形处理系统包括GPU核,该GPU核即上述的图形处理器。
GPU核用来处理画图的命令,根据画图命令,执行图像渲染的Pipeline,还可以用来执行其他运算命令。GPU核中进一步包括:计算单元,用于执行着色器编译后的指令,属于可编程模块,由大量的ALU组成;缓存(Cache),用于GPU核数据的缓存,以减少对内存的访问;光栅化模块,3D渲染管线的一个固定的阶段;划片(Tilling)模块,TBR和TBDR GPU架构中对一帧进行划片处理;裁剪模块,3D渲染管线的一个固定的阶段,裁剪掉观察范围外,或者背面不显示的图元;后处理模块,用于对画完的图进行缩放,裁剪,旋转等操作;微核(Micro core),用于GPU核上各个管线硬件模块之间的调度,或者用于多GPU核的任务调度。
GPU核连接到片上网络。其中,片上网络用于图形处理系统上各个主(master)和从(salve)之间的数据交换,本实施例中,片上网络包括配置总线、数据通信网络、通信总线等等。
如图3所示,图形处理系统还可以包括:
通用DMA(Direct Memory Access,直接存储器访问),用于执行主机端到图形处理系统内存(例如显卡内存)之间的数据搬移,例如,通过DMA将3D画图的顶点(vertex)数据从主机端搬到图形处理系统内存;
PCIe控制器,用于和主机通信的接口,实现PCIe协议,使图形处理系统通过PCIe接口连接到主机上,主机上运行了图形API以及显卡的驱动等程序;
应用处理器,用于图形处理系统上各个模块任务的调度,例如GPU渲染完一帧图后通知应用处理器,应用处理器再启动显示控制器将GPU画完的图显示到屏幕上;
内存控制器,用于连接内存设备,用于保存SOC上的数据;
显示控制器,控制将内存里的frame buffer以显示接口(HDMI,DP等)输出到显示器上;
视频解码,可以将主机硬盘上的编码的视频解码成能显示的画面;
视频编码,可以将主机硬盘上原始的视频码流编码成指定的格式返回给主机。
基于图3所示的图形处理系统架构,主机的图形API(对于移动端的图形处理系统,也可以由应用处理器上的软件)向SOC芯片发送画图命令,并提交纹理空间着色物体的几何信息,要求对纹理空间着色物体进行渲染。该画图命令中包括但不仅限于以下信息:
该命令是否用于获取物体的2D展开坐标(即纹理坐标)的标识;
纹理空间着色物体纹理图保存地址;
纹理空间着色物体的深度缓冲区地址;
纹理空间着色物体的像素地址-纹理图地址映射关系(map)表保存地址。
通用DMA将纹理空间着色物体的几何信息(在本实施例中,即纹理空间着色物体的顶点数据,包括纹理空间着色物体顶点的3D坐标)从主机端搬运至图形处理系统内存。
GPU核的计算单元对上述画图命令译码,根据上述标识判断该命令是否用于获取物体的2D展开坐标(即是否画图命令)。在识别出该命令是画图命令后,从该命令中获取上述地址信息。
GPU核的顶点着色器(由计算单元实现其功能)从系统内存中获取纹理空间着色物体的几何信息,并将纹理空间着色物体的几何信息传输给几何着色器(由计算单元实现其功能),几何着色器将纹理空间着色物体顶点的3D坐标转换为展开的纹理坐标(即(u,v)坐标)。
几何处理结束后,GPU核中的光栅化模块对纹理空间着色物体进行光栅化处理。本实施例中,对纹理空间着色物体的光栅化处理不仅包括像素覆盖测试,还包括像素插值计算及深度计算。通过像素覆盖测试可以确定纹理空间着色物体覆盖的像素,并将纹理空间着色物体覆盖的像素的像素坐标输出至系统内存中上述map表保存地址指示的map表中的指定位置。本公开中,采用现有技术实现像素覆盖测试。通过像素插值计算确定纹理空间着色物体的每个像素对应的纹理坐标,并将纹理空间着色物体的每个像素对应的纹理坐标输出至系统内存中上述map表保存地址指示的map表中的指定位置。本公开中,采用现有技术实现像素插值计算。本公开中,map表中,像素的像素地址及对应的纹理地址关联保存。通过深度计算,可以确定纹理空间着色物体覆盖的像素的深度值,并将纹理空间着色物体覆盖像素的深度值输出至系统内存中深度缓冲区地址指示的深度缓冲区。本公开中,采用现有技术实现深度计算。
光栅化处理结束后,片段着色器(由计算单元实现其功能)执行纹理空间着色物体的着色计算(例如光照计算),并将生成的纹理空间着色物体的纹理图输出至系统内存中纹理图保存地址指示的存储空间(本实施例中称为纹理缓冲区)。
当需要显示一帧包含纹理空间着色物体的图像时,主机的图形API(对于移动端的图形处理系统,也可以由应用处理器上的软件)向GPU核发送画图显示命令以及该画图显示命令对应的物体的几何信息。其中,画图显示命令用于指示对上述图像进行画图显示,画图显示命令中至少携带以下信息:
顶点属性信息保存地址,该顶点属性信息保存地址中保存有图像帧中各个物体顶点的顶点属性信息,每个顶点的顶点属性信息中都包括纹理空间着色物体的顶点识别信息;
纹理空间着色物体纹理图保存地址;
纹理空间着色物体的深度缓冲区地址;
纹理空间着色物体的像素地址-纹理图地址映射关系(map)表保存地址。
GPU核根据软件发送的画图显示命令执行画图显示。具体的,计算单元从顶点缓冲区(vertex buffer)中读取顶点数据,并判断读取到的顶点(待画图的顶点)是否属于纹理空间着色物体,如果属于纹理空间着色物体,可直接跳转到深度测试阶段,即控制光栅化模块从深度缓冲区读取像素的深度值,将读取到的像素深度值与当前渲染管线光栅化输出的深度值进行比较,如果读取到的深度值大于光栅化输出的深度值,代表纹理空间着色物体的部分被其他物体遮挡,如果读取到的深度值小于光栅化输出的深度值,代表纹理空间着色物体的部分未被其他物体遮挡。
在读取到的深度值小于光栅化输出的深度值的情况下,像素颜色查找模块(由计算单元实现其功能)工作,像素颜色查找模块通过读取上述map表和纹理图,根据map表中的纹理坐标在纹理图中查找纹理空间着色物体的像素颜色,并将查找到的像素颜色写入帧缓冲区。
应当指出的是,像素查找模块的功能也可以通过新增硬件模块来实现。
在读取到的深度值大于光栅化输出的深度值的情况下,不显示顶点对应部分的纹理空间着色物体的颜色。
如果顶点不属于纹理空间着色物体,那么,GPU核按照常规渲染流程进行渲染及画图显示处理。并且,光栅化阶段进行深度测试得到的深度值用于与纹理空间着色物体的深度值进行比较。
本公开实施例还提供一种电子装置,该电子装置包括上述任一实施例中所述的图形处理系统。在一些使用场景下,该电子装置的产品形式体现为显卡;在另一些使用场景下,该电子装置的产品形式体现为CPU主板。
本公开实施例还提供一种电子设备,该电子设备包括上述的电子装置。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机、工作站、服务器等。
基于相同的发明构思,本公开实施例还提供一种图形处理方法,如图4所示,该方法至少包括如下步骤:
步骤401、针对画图命令,对纹理空间着色物体进行几何处理,输出纹理空间着色物体的纹理坐标。
该步骤由GPU的几何处理模块执行,其具体实现方式可以参照上述实施例,此处不再赘述。
步骤402、几何处理结束后,对纹理空间着色物体进行光栅化处理,输出纹理空间着色物体的像素坐标与纹理坐标映射关系。
该步骤由GPU的光栅化处理模块执行,其具体实现方式可以参照上述实施例,此处不再赘述。
步骤403、光栅化处理结束后,对纹理空间着色物体进行像素处理,输出纹理空间着色物体的纹理图。
该步骤由GPU的像素处理模块执行,其具体实现方式可以参照上述实施例,此处不再赘述。
步骤404、针对画图显示命令,通过上述映射关系从纹理空间着色物体的纹理图中查找纹理空间着色物体的像素颜色。
该步骤由GPU的画图显示模块执行,其具体实现方式可以参照上述实施例,此处不再赘述。
应当指出的是,在实际应用中,执行完步骤401和步骤402后,可能会重复执行步骤403,以实现包含纹理空间着色物体的多帧图像的画图显示。
可选的,对纹理空间着色物体进行光栅化处理,输出纹理空间着色物体的像素坐标与纹理坐标映射关系,该步骤的实现方式可以包括:确定纹理空间着色物体的像素坐标并填入映射关系数据结构;确定纹理空间着色物体的每个像素坐标对应的纹理坐标并填入映射关系数据结构。
在上述任一方法实施例的基础上,通过所述映射关系从所述纹理空间着色物体的纹理图中查找纹理空间着色物体的像素颜色之前,还可以判断待画图的顶点是否为纹理空间着色物体的顶点,以便针对纹理空间着色物体的顶点,通过上述映射关系从纹理空间着色物体的纹理图中查找纹理空间着色物体的像素颜色。
进一步的,判断待画图的顶点是否为纹理空间着色物体的顶点的实现方式可以包括:根据画图显示命令指示的顶点属性信息判断待画图的顶点是否为纹理空间着色物体的顶点,顶点属性信息包括纹理空间着色物体的顶点识别信息。
在上述任一方法实施例的基础上,对纹理空间着色物体进行光栅化处理后,还可以输出纹理空间着色物体中像素的深度值。相应的,确定纹理空间着色物体的像素颜色之前,还可以根据纹理空间着色物体中像素的深度值判断纹理空间着色物体是否被遮挡,以便在纹理空间着色物体未被遮挡的情况下,通过上述映射关系从纹理空间着色物体的纹理图中查找纹理空间着色物体的像素颜色。
在上述任一方法实施例的基础上,画图命令中可以携带纹理空间着色物体的纹理图保存地址、上述映射关系的保存地址及上述深度值的保存地址。相应的,对纹理空间着色物体进行像素处理后,还可以输出纹理空间着色物体的纹理图至纹理图保存地址;对纹理空间着色物体进行光栅化处理后,还可以输出所述纹理空间着色物体的像素坐标与纹理坐标映射关系至映射关系的保存地址,输出纹理空间着色物体的像素坐标。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
Claims (15)
1.一种图形处理器,其中,包括:
几何处理模块,被配置为:针对画图命令,对纹理空间着色物体进行几何处理,输出所述纹理空间着色物体的纹理坐标;
光栅化处理模块,被配置为:所述几何处理结束后,对所述纹理空间着色物体进行光栅化处理,输出所述纹理空间着色物体的像素坐标与纹理坐标映射关系;
像素处理模块,被配置为:所述光栅化处理结束后,对所述纹理空间着色物体进行像素处理,输出所述纹理空间着色物体的纹理图,从而实现所述纹理空间着色物体的纹理空间着色,所述纹理空间着色的目的是对所述纹理空间着色物体进行单独着色,以便后续显示所述纹理空间着色物体时只进行贴图,所述纹理空间着色物体为多个帧中相对不变且使用画图显示模块进行采样贴图处理的物体;
画图显示模块,被配置为:针对画图显示命令,通过所述映射关系从所述纹理空间着色物体的纹理图中查找所述纹理空间着色物体的像素颜色。
2.根据权利要求1所述的图形处理器,其中,所述光栅化处理模块包括像素覆盖测试子模块和像素插值计算子模块;
所述像素覆盖测试子模块被配置为:确定所述纹理空间着色物体的像素坐标并填入映射关系数据结构;
所述像素插值计算子模块被配置为:确定所述纹理空间着色物体的每个像素坐标对应的纹理坐标并填入所述映射关系数据结构。
3.根据权利要求1或2所述的图形处理器,其中,所述画图显示模块还被配置为:判断待画图的顶点是否为所述纹理空间着色物体的顶点,以便针对所述纹理空间着色物体的顶点,通过所述映射关系从所述纹理空间着色物体的纹理图中查找所述纹理空间着色物体的像素颜色。
4.根据权利要求3所述的图形处理器,其中,所述画图显示模块被配置为:根据所述画图显示命令指示的顶点属性信息判断待画图的顶点是否为所述纹理空间着色物体的顶点,所述顶点属性信息中包括纹理空间着色物体的顶点识别信息。
5.根据权利要求1或2所述的图形处理器,其中,所述光栅化处理模块还被配置为:输出所述纹理空间着色物体中像素的深度值;
确定所述纹理空间着色物体的像素颜色之前,所述画图显示模块还被配置为:根据所述纹理空间着色物体中像素的深度值判断所述纹理空间着色物体是否被遮挡,以便在所述纹理空间着色物体未被遮挡的情况下,通过所述映射关系从所述纹理空间着色物体的纹理图中查找所述纹理空间着色物体的像素颜色。
6.根据权利要求5所述的图形处理器,其中,所述画图命令中携带所述纹理空间着色物体的纹理图保存地址、所述映射关系的保存地址及所述深度值的保存地址;
所述像素处理模块被配置为:输出所述纹理空间着色物体的纹理图至所述纹理图保存地址;
所述光栅化处理模块被配置为:输出所述纹理空间着色物体的像素坐标与纹理坐标映射关系至所述映射关系的保存地址。
7.一种图形处理系统,其中,包括权利要求1至6任一项所述的图形处理器。
8.一种电子装置,其中,包括权利要求7所述的系统。
9.一种电子设备,其中,包括权利要求8所述的电子装置。
10.一种图形处理方法,其中,包括:
针对画图命令,对纹理空间着色物体进行几何处理,输出所述纹理空间着色物体的纹理坐标;
所述几何处理结束后,对所述纹理空间着色物体进行光栅化处理,输出所述纹理空间着色物体的像素坐标与纹理坐标映射关系;
所述光栅化处理结束后,对所述纹理空间着色物体进行像素处理,输出所述纹理空间着色物体的纹理图,从而实现所述纹理空间着色物体的纹理空间着色,所述纹理空间着色的目的是对所述纹理空间着色物体进行单独着色,以便后续显示所述纹理空间着色物体时只进行贴图,所述纹理空间着色物体为多个帧中相对不变且使用画图显示模块进行采样贴图处理的物体;
针对画图显示命令,通过所述映射关系从所述纹理空间着色物体的纹理图中查找所述纹理空间着色物体的像素颜色。
11.根据权利要求10所述的方法,其中,所述对所述纹理空间着色物体进行光栅化处理,输出所述纹理空间着色物体的像素坐标与纹理坐标映射关系,包括:
确定所述纹理空间着色物体的像素坐标并填入映射关系数据结构;
确定所述纹理空间着色物体的每个像素坐标对应的纹理坐标并填入所述映射关系数据结构。
12.根据权利要求10或11所述的方法,其中,所述通过所述映射关系从所述纹理空间着色物体的纹理图中查找所述纹理空间着色物体的像素颜色之前,所述方法还包括:
判断待画图的顶点是否为所述纹理空间着色物体的顶点,以便针对所述纹理空间着色物体的顶点,通过所述映射关系从所述纹理空间着色物体的纹理图中查找所述纹理空间着色物体的像素颜色。
13.根据权利要求12所述的方法,其中,所述判断待画图的顶点是否为所述纹理空间着色物体的顶点,包括:
根据所述画图显示命令指示的顶点属性信息判断待画图的顶点是否为所述纹理空间着色物体的顶点,所述顶点属性信息中包括纹理空间着色物体的顶点识别信息。
14.根据权利要求10或11所述的方法,其中,对所述纹理空间着色物体进行光栅化处理后,所述方法还包括:输出所述纹理空间着色物体中像素的深度值;
确定所述纹理空间着色物体的像素颜色之前,所述方法还包括:根据所述纹理空间着色物体中像素的深度值判断所述纹理空间着色物体是否被遮挡,以便在所述纹理空间着色物体未被遮挡的情况下,通过所述映射关系从所述纹理空间着色物体的纹理图中查找所述纹理空间着色物体的像素颜色。
15.根据权利要求14所述的方法,其中,所述画图命令中携带所述纹理空间着色物体的纹理图保存地址、所述映射关系的保存地址及所述深度值的保存地址;
对纹理空间着色物体进行像素处理后,所述方法还包括:输出所述纹理空间着色物体的纹理图至所述纹理图保存地址;
对所述纹理空间着色物体进行光栅化处理后,所述方法还包括:输出所述纹理空间着色物体的像素坐标与纹理坐标映射关系至所述映射关系的保存地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210414506.1A CN116263981B (zh) | 2022-04-20 | 2022-04-20 | 图形处理器、系统、装置、设备及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210414506.1A CN116263981B (zh) | 2022-04-20 | 2022-04-20 | 图形处理器、系统、装置、设备及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116263981A CN116263981A (zh) | 2023-06-16 |
CN116263981B true CN116263981B (zh) | 2023-11-17 |
Family
ID=86722819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210414506.1A Active CN116263981B (zh) | 2022-04-20 | 2022-04-20 | 图形处理器、系统、装置、设备及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116263981B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6229553B1 (en) * | 1998-08-20 | 2001-05-08 | Apple Computer, Inc. | Deferred shading graphics pipeline processor |
CN114092308A (zh) * | 2020-08-03 | 2022-02-25 | 三星电子株式会社 | 图形处理器和图形处理器中执行后处理的方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1542167A1 (en) * | 2003-12-09 | 2005-06-15 | Koninklijke Philips Electronics N.V. | Computer graphics processor and method for rendering 3D scenes on a 3D image display screen |
EP1700271A1 (en) * | 2003-12-23 | 2006-09-13 | Koninklijke Philips Electronics N.V. | Computer graphics processor and method of rendering images |
US7728841B1 (en) * | 2005-12-19 | 2010-06-01 | Nvidia Corporation | Coherent shader output for multiple targets |
KR101782044B1 (ko) * | 2011-02-22 | 2017-09-26 | 삼성전자주식회사 | 그래픽 프로세서 및 조기 가시성 테스트 방법 |
US10339704B2 (en) * | 2017-12-04 | 2019-07-02 | Axell Corporation | Image data processing method in image processor and computer readable medium storing program therefor for rendering a texture based on a triangulation pattern |
GB2578470B (en) * | 2018-10-29 | 2023-05-10 | Advanced Risc Mach Ltd | Processing of primitives in a graphics processor |
-
2022
- 2022-04-20 CN CN202210414506.1A patent/CN116263981B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6229553B1 (en) * | 1998-08-20 | 2001-05-08 | Apple Computer, Inc. | Deferred shading graphics pipeline processor |
CN114092308A (zh) * | 2020-08-03 | 2022-02-25 | 三星电子株式会社 | 图形处理器和图形处理器中执行后处理的方法 |
Non-Patent Citations (4)
Title |
---|
"GPU-Based Feature-Preserving Distance Field Computation";Xiaoxiao Wu 等;2008 International Conference on Cyberworlds;全文 * |
"图形处理器3D 引擎渲染管线设计与验证";蔡叶芳;《中国优秀硕士学位论文全文数据库 (信息科技辑)》;全文 * |
"图形处理器3D引擎渲染管线设计与验证";蔡叶芳;《中国优秀硕士学位论文全文数据库(信息科技辑)》;全文 * |
Xiaoxiao Wu等,."GPU-Based Feature-Preserving Distance Field Computation".2008 International Conference on Cyberworlds.2009,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN116263981A (zh) | 2023-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7843468B2 (en) | Accellerated start tile search | |
EP3008701B1 (en) | Using compute shaders as front end for vertex shaders | |
US9092906B2 (en) | Graphic processor and method of early testing visibility of pixels | |
US9070213B2 (en) | Tile based precision rasterization in a graphics pipeline | |
US8537168B1 (en) | Method and system for deferred coverage mask generation in a raster stage | |
CN109785417B (zh) | 一种实现OpenGL累积操作的方法及装置 | |
EP1306810A1 (en) | Triangle identification buffer | |
US9626733B2 (en) | Data-processing apparatus and operation method thereof | |
WO2020192608A1 (zh) | 图形渲染方法、装置和计算机可读存储介质 | |
US11954782B2 (en) | Hybrid render with preferred primitive batch binning and sorting | |
US10825129B2 (en) | Eliminating off screen passes using memoryless render target | |
CN112189215A (zh) | 用于在图形流水线中实现存储器使用减少的编译器辅助技术 | |
KR102477265B1 (ko) | 그래픽스 프로세싱 장치 및 그래픽스 파이프라인의 텍스쳐링을 위한 LOD(level of detail)를 결정하는 방법 | |
CN114002701A (zh) | 一种实时渲染点云的方法、装置、电子设备及系统 | |
US10192348B2 (en) | Method and apparatus for processing texture | |
WO2017105595A1 (en) | Graphics processor logic for encoding increasing or decreasing values | |
CN103679786A (zh) | 图形处理单元可编程着色器的纹元数据结构和其操作方法 | |
WO2023202367A1 (zh) | 图形处理器、系统、装置、设备及方法 | |
US10049487B2 (en) | Identifying duplicate indices in an input index stream | |
CN116263981B (zh) | 图形处理器、系统、装置、设备及方法 | |
CN117058288A (zh) | 图形处理器及方法、多核图形处理系统、电子装置及设备 | |
CN115880127A (zh) | 一种渲染格式选择方法及其相关设备 | |
CN116263982B (zh) | 图形处理器、系统、方法、电子装置及设备 | |
KR20170075440A (ko) | 텍스쳐의 배치를 결정하는 방법 및 장치. | |
US7737988B1 (en) | Using font filtering engines for texture blitting |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |