CN108280867B - 图形处理方法和系统 - Google Patents
图形处理方法和系统 Download PDFInfo
- Publication number
- CN108280867B CN108280867B CN201711025944.4A CN201711025944A CN108280867B CN 108280867 B CN108280867 B CN 108280867B CN 201711025944 A CN201711025944 A CN 201711025944A CN 108280867 B CN108280867 B CN 108280867B
- Authority
- CN
- China
- Prior art keywords
- tile
- primitive
- overlap
- depth complexity
- graphics processing
- 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
Images
Classifications
-
- 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/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/08—Bandwidth reduction
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Hardware Design (AREA)
- Image Generation (AREA)
Abstract
提供了图形处理方法和图形处理系统。图形处理方法包括:对通过划分帧而生成的瓦片的深度复杂性进行估计;基于瓦片的估计出的深度复杂性而针对包括在瓦片中的至少一个图元来选择性地执行可见性计算;对瓦片执行渲染。图形处理设备包括:确定输入到当前瓦片的图元的深度复杂性并且确定是否存在半透明图元的一个或更多个处理器。所述图形处理设备可以根据对深度复杂性和对半透明图元的存在的确定而在基于瓦片渲染(TBR)模式或基于瓦片的延迟渲染(TBDR)模式下适应性地进行操作。
Description
本申请要求于2017年1月4日在韩国知识产权局提交的第10-2017-0001314号韩国专利申请的权益,该韩国专利申请的公开内容通过引用包含于此。
技术领域
本公开涉及图形处理方法和设备。
背景技术
伴随移动装置市场的最近发展,正在开发图形处理技术以满足移动装置的规格。图形处理技术可以分成即时模式渲染(或纹理渲染,IMR)和基于瓦片(tile-based)渲染(或贴图渲染,TBR),在IMR中,每当在几何阶段生成物体数据的图元时立即执行渲染,在TBR中,将帧划分成虚拟的瓦片(tile,或称为“区块”)以对每个瓦片执行渲染。在这些模式中,TBR使存储带宽减小并可以降低功耗。因此,TBR被频繁用于将功耗作为主要设计考虑之一的移动装置中。
TBR可以通过基于瓦片的延迟渲染(TBDR)来增强渲染性能,TBDR使对被覆盖的片元(fragment)进行渲染的过度绘制的量最小化,并且仅渲染可见的片元。例如,可通过隐藏面消除(HSR)减少过度绘制。然而,存在某些操作条件,在这些操作条件下无法使用或实现TBDR。因此,在某些条件下,确定图形处理的模式的方法可以带来功耗的降低。
发明内容
发明构思提供了图形处理方法和设备。
发明构思的额外教导将在下面的描述中被部分地阐述,并且部分地,将通过该描述而明显,或者可以通过给出的实施例的实践而获知。
根据发明构思的实施例,图形处理方法包括:将帧划分成多个瓦片;对所述多个瓦片中的瓦片的深度复杂性进行估计以确定所述帧中的物体之间的重叠;基于所述瓦片的估计出的深度复杂性而针对包括在所述瓦片中的至少一个图元选择性地进行可见性计算;并且对所述瓦片执行渲染。
根据发明构思的实施例,图形处理系统包括:分箱单元,被配置为对通过划分当前帧而生成的瓦片的深度复杂性进行估计;可见性测试单元,被配置为基于所述瓦片的估计出的深度复杂性而针对包括在所述瓦片中的至少一个图元选择性地进行可见性计算;以及渲染单元,被配置为对所述瓦片执行渲染。
根据发明构思的实施例,可被图形处理单元(GPU)操作的图形处理的方法包括:经由来自应用程序编程接口(API)的绘制调用命令来接收包括多个图元的图元流;确定帧的多个瓦片中的哪些瓦片包括图元流的一个或更多个图元的至少一部分;基于每个瓦片与一个或更多个图元的所述至少一部分的重叠来估计所述多个瓦片中的每个瓦片的深度复杂性;当图元流的至少一个图元包括半透明性质时,确定具有半透明性质的所述至少一个图元位于图元流的前部还是后部;当具有半透明性质的所述至少一个图元位于图元流的后部时,对所述多个瓦片执行可见性计算并对所述多个瓦片进行渲染;或者当具有半透明性质的所述至少一个图元位于图元流的前部时,在不执行可见性计算的情况下对所述多个瓦片进行渲染。
根据发明构思的实施例,当所述多个瓦片的估计出的深度复杂性大于预定阈值时,GPU在基于瓦片的延迟渲染(TBDR)模式下操作以对所述多个瓦片中的一个或更多个相应瓦片进行渲染,当估计出的深度复杂性小于预定阈值时,GPU在基于瓦片渲染(TBR)模式下操作以对所述多个瓦片中的剩余瓦片进行渲染。
根据发明构思的实施例,GPU在包括在GPU中的多个核心内对所述多个瓦片执行图形处理方法。
对所述多个瓦片中的一个或更多个瓦片选择性地执行可见性计算的执行步骤。
可见性计算的执行步骤包括:运行射线追踪法来对图元流的分别包括在所述多个瓦片的至少一个瓦片中的一个或更多个图元的所述至少一部分执行可见性测试。
附图说明
通过下面结合附图对实施例的描述,将更容易理解发明构思,其中:
图1示出图像渲染过程的概述;
图2是根据发明构思的示例实施例的图形处理方法的流程图;
图3示出根据发明构思的示例实施例的对包括在瓦片中的至少一个图元的重叠的量进行计算的操作;
图4示出根据发明构思的示例实施例的用来对包括在子瓦片中的至少一个图元的重叠的量进行计算的覆盖表;
图5示出根据发明构思的示例实施例的计算瓦片与图元之间的重叠面积的操作;
图6是示出根据发明构思的示例实施例的将前一帧的瓦片的深度复杂性估计为当前帧的瓦片的深度复杂性的操作的视图;
图7是根据示例实施例的图形处理设备的结构图;
图8示出根据发明构思的示例实施例的图形处理设备的内部结构;
图9是示出根据发明构思的实施例的图形处理方法的操作的流程图;
图10是示出诸如图7所示的图形处理设备的操作的流程图。
具体实施方式
现在将详细参考发明构思的实施例,附图中示出了发明构思的实施例的示例,其中,同样的附图标记始终指示同样的元件。对此,给出的实施例可以具有不同的形式并且不应该被理解为受限于在此阐述的描述。因此,为了说明性的目的,以下通过参照附图来描述发明构思的实施例。当诸如“……中的至少一个”的表述在一列元件之前时,修饰整列元件,而不是修饰该列中的个别元件。
现在将在下文中参照附图更充分地描述发明构思,附图中示出了发明构思的说明性实施例。可以以不同的方式来修改在此描述的示例实施例。为了对发明构思的实施例的特征进行清楚的描述,将省略对于本领域的普通技术人员而言所公知的细节。
本说明书中使用的术语是考虑到针对发明构思的功能而当前在本领域中广泛使用的那些普通术语,但是这些术语可以根据本领域的普通技术人员的理解、先例或者本领域中的新技术而改变。此外,可以由申请人来选择特定的术语,在这种情况下,将在发明构思的具体实施方式中描述这些术语的详细含义。因此,应该不以简单的望文生意而是基于术语的含义和发明构思的总体描述来理解在说明书中使用的术语。
贯穿说明书始终,本领域的普通技术人员应该理解:当组件“包括”元件时,除非另有与该描述相反的描述,否则其应该被理解为该组件不排除另一个元件,而是还可以包括另一个元件。另外,诸如“……单元”或“……模块”等的术语指的是执行至少一种功能或操作的单元,这些单元可以被实现为硬件或软件,或者被实现为硬件和软件的组合。
图1示出图像渲染过程的示例。图像渲染过程包括操作110至150。
操作110是对顶点进行着色(shading)的操作。在着色之前,生成顶点来表示包括在图像中的物体。顶点着色器可以通过向顶点分配颜色来对顶点执行着色。
操作120是生成图元的操作。术语“图元”表示由点、线或顶点形成的多边形。例如,图元可以是通过使顶点连接而形成的三角形。然而,图元不限于被形成为三角形。
操作130是对图元进行光栅化(rasterizing)的操作。当对图元进行光栅化时,图元被划分成多个片元。术语“片元”指图元的一部分并且可以是执行图像处理的基础单位。图元仅包括与顶点有关的信息。因此,当在光栅化操作期间生成顶点之间的片元时,执行插值。
操作140是对像素进行着色的操作。虽然在图1中以像素为单位来执行着色,但是也可以以片元为单位来执行着色。例如,当对像素或片元进行着色时,将像素或片元的颜色分别分配给像素或片元。
在操作150中,执行光栅操作。在光栅操作中,可以执行颜色混合、深度测试等,从而基于与被着色的像素有关的信息来生成光栅图像(像素或者样本)。
如上所述生成的光栅图像被输出到帧缓冲器以被存储。随后,被存储在帧缓冲器中的帧可以经由显示装置来显示。
图2是根据发明构思的示例实施例的图形处理方法的流程图。
在操作210中,图形处理系统对通过划分帧而生成的瓦片(tile)的深度复杂性(depth complexity)进行估计。深度复杂性指:通过对每个物体进行渲染而生成的片元根据深度值彼此重叠的量。图形处理系统可以将待处理的帧划分成多个瓦片,并驱动分箱通过(binning pass),在分箱通过期间,根据帧的多个图元所属的瓦片来对这些图元进行分类,并将与该分类有关的分箱流(bin-stream)存储在存储器中。可以使用分箱单元来操作分箱通过。根据示例实施例,图形处理系统可以通过驱动分箱通过来对生成的瓦片的深度复杂性进行估计。
另外,在图1的操作150中,通过计算包括在瓦片中的图元的片元在给定坐标处重叠的次数来确定深度复杂性。因此,在执行渲染之前不能计算出深度复杂性。然而,当执行渲染时,对预定瓦片的图形处理基本完成。根据发明构思的示例实施例,可以在瓦片的图形处理期间根据环境来适应性地修改处理方法,其中,在渲染操作之前对瓦片的深度复杂性进行估计(而非进行计算)以使其在稍后使用。
根据发明构思的示例实施例,图形处理系统可以计算瓦片与包括在该瓦片中的至少一个图元之间的重叠的量,并且可以基于重叠的量对该瓦片的深度复杂性进行估计。另外,图形处理系统可以将当前帧之前的帧中的与以上瓦片对应的瓦片的深度复杂性估计为以上瓦片的深度复杂性。在下文中将更详细地描述这个操作。
继续参照图2,在操作220中,图形处理系统基于估计出的深度复杂性而对包括在瓦片中的至少一个图元选择性地进行可见性计算。根据示例实施例,图形处理系统将操作210中估计出的深度复杂性与预设阈值比较,如果估计出的深度复杂性大于预设阈值,则图形处理系统可以对包括在瓦片中的至少一个图元执行可见性计算。
然而,如果估计出的深度复杂性小于预设阈值,则图形处理系统可以不对包括在瓦片中的至少一个图元执行可见性计算。在不执行可见性计算的情况下,图形处理系统可以立即运行操作230并且对瓦片执行渲染。
图形处理系统可以驱动深度预通过(depth prepass),即,从存储器中读取表示帧上的图元属于哪个瓦片的分箱流,仅提取例如包括屏幕上可见的片元的可见性图元,并且将该可见性图元存储在存储器中。深度预通过被用来去除与对屏幕上被覆盖的片元(例如,非显示的片元)进行渲染相关联的过度绘制。更详细地,在对包括在瓦片中的图元的片元执行渲染之前,可以基于片元的深度值来计算片元的可见性。然后,确定片元之间的可见性关系,并最终仅将可见性片元转换到渲染操作。通过在对瓦片进行渲染之前执行可见性计算,可以通过使过度绘制最小化来增强图形处理性能。
然而,在一些情况下,在渲染之前计算可见性不会带来增强的性能。例如,如果帧将被处理成低深度复杂性帧,则由过度绘制导致的成本(例如,对被覆盖的片元进行渲染的成本)不会高,而对计算可见性的操作进行驱动的成本(例如,由硬件操作和管线运行(pipeline execution)导致的成本)会相应地提高。另外,如果生成具有半透明性质的图元,则无法仅基于深度值来确定可见性关系,因此在执行渲染之前执行可见性计算不会显著地影响过度绘制的量。例如,半透明性质显示位于其后的物体,但是也使位于其后的物体模糊。半透明性质将造成投射到其的一些光的反射,这使得具有半透明性质的材料可被看到。因此,如果位于前方的图元具有半透明性质,由于光经过前方的图元,即使位于其后的图元也具有可见性。
根据发明构思的示例实施例,通过基于估计出的深度复杂性而对包括在瓦片中的至少一个图元选择性地执行可见性计算,可以根据环境来适应性地修改处理方法。
最后,在操作230中,图形处理系统对瓦片执行渲染。图形处理系统可以驱动对图元执行渲染的渲染通过(rendering pass)。根据示例实施例,当图形处理系统已经在操作220中执行了可见性计算时,图形处理系统基于包括在瓦片中的至少一个图元的可见性对该瓦片执行渲染。根据发明构思的实施例,如果省略可见性计算,则可以对包括在瓦片中的所有图元进行渲染,并且基于渲染的结果来确定图元的可见性。
以上描述了根据示例实施例的图形处理方法。在下文中,将更详细地描述图形处理方法的操作。
图形处理系统可以将瓦片划分成多个子瓦片,并且可以基于每个子瓦片与包括在该子瓦片中的至少一个图元彼此重叠的次数来确定重叠的量。通过这个确定操作,虽然无法计算达到片元级别的重叠的准确平均量,但是可以估计在子瓦片的级别的近似级别处的深度复杂性。当使用子瓦片时,对重叠的量进行确定的方法可以类似于分箱单元的功能。例如,可以使用分箱单元来对图元属于哪些瓦片进行分类。因此,当对子瓦片的图元的重叠的量进行确定时,可以使用分箱单元的分箱管线数据通路而不改变分箱单元,以使硬件成本最小化。将参照图3更详细地描述计算重叠的量的操作。
图3示出根据发明构思的示例实施例对包括在瓦片中的至少一个图元的重叠的量进行计算的操作。
参照图3,将帧划分成瓦片310、320、330等。图形处理系统可以将瓦片310划分成较小部分,即,子瓦片311、312、313、314等。可以基于最终近似值的准确性与计算成本之间的权衡来适当确定子瓦片的数量(例如,4×4或8×8)。在图3中,一个瓦片划分成8×8子瓦片,例如,64个子瓦片。本领域普通技术人员应理解并领会子瓦片的数量不限于4×4或8×8。
每个子瓦片(在这种情况下是64个子瓦片)可以与图元301、302和303中的至少一个重叠,或者可以完全不重叠。图形处理系统可以基于每个子瓦片与图元301、302和303彼此重叠的次数来确定重叠的量。
可以基于每个子瓦片与包括在该子瓦片中的至少一个图元彼此重叠的次数的总和或平均值来确定重叠的量。例如,可以通过对每个子瓦片与图元彼此重叠的次数进行计数来计算发生重叠的次数的总和。可选择地,可以通过计算出的发生重叠的次数的总和除以子瓦片的总数来计算每个子瓦片与包括在该子瓦片中的至少一个图元彼此重叠的次数的平均值。按照以上计算出来的值是相对值而不是绝对值,因此,可以通过确定瓦片的重叠的相对量来估计瓦片的深度复杂性。
根据发明构思的示例实施例,当对每个子瓦片与图元301、302和303彼此重叠的次数进行计算时,可以使用覆盖表(coverage table)。将参照图4对此进行描述。
图4示出根据发明构思的示例实施例的可以用来对包括在子瓦片中的至少一个图元的重叠的量进行计算的覆盖表。
参照图4,示出了与通过在图3的示例实施例中进行划分而生成的子瓦片的数量对应的覆盖表。覆盖表的每个值表示在对应位置处的子瓦片与图元重叠的次数。例如,图3的子瓦片311不具有重叠的图元,因此图4的覆盖表的表空格411中具有值0。图3的子瓦片312与图元303重叠一次,因此图4的覆盖表的表空格412中具有值1。另外,图3的子瓦片313与图元302和303重叠两次,因此图4的覆盖表中的表空格413中具有值2。图3的子瓦片314与图元301、302和303重叠三次,因此图4的覆盖表的表空格414中具有值3。
每次子瓦片与图元彼此重叠,图形处理系统可以使在对应位置处的覆盖表的对应表空格的值(例如,计数)增大以更新覆盖表。通过这种方式来完成覆盖表,可以将所有的值相加来计算总和,并且可以基于该总和来计算平均值。当计算总和时,也可以使用求和面积表(summed area table)。
另外,图形处理系统可以计算瓦片与至少一个图元彼此重叠的相对面积,并且可以基于计算出的相对面积来确定重叠的量。深度复杂性表示片元彼此重叠的量。因此,当计算出瓦片的面积与多个图元的与该瓦片重叠的面积的总和的相对比时,可以基于该相对比来估计深度复杂性。根据示例实施例,可以生成包围至少一个图元的基本矩形的限界框(bounding box),并且可以通过计算瓦片与限界框之间的重叠面积来计算瓦片与至少一个图元彼此重叠的相对面积。另外,如果图元具有三角形形状,则可以将瓦片与限界框之间的重叠面积除以2来计算瓦片与至少一个图元之间的重叠面积。以这种方式,可以相对准确地计算瓦片与图元之间的重叠面积。另外,当通过使用限界框来计算重叠面积时,可以通过两个矩形(例如,瓦片和限界框)的最小坐标与最大坐标之间的比较运算来容易地提取公共区域,因此,可以容易地计算重叠面积。现在将参照图5描述这个过程。
图5示出根据发明构思的示例实施例的计算瓦片与图元之间的重叠面积的操作。
参照图5,将帧划分成瓦片510、520、530等,并且三个图元501、502和503与瓦片510重叠。基本矩形的限界框541、542和543可以分别包围图元501、502和503。可以基于图元的坐标的最小值和最大值而容易地获得限界框。另外,如果基于分箱算法(binningalgorithm)来预先计算图元的限界框,则可以不作修改而使用计算出的限界框。
在对瓦片510、520和530中的每个进行分箱计算之后,针对包括在瓦片510、520和530中的多个图元,可以通过使用限界框来计算瓦片与图元彼此重叠的相对面积。如上所述获得的相对面积包括相对值而非绝对值,因此可以通过确定瓦片的重叠的相对量来估计瓦片的深度复杂性。
然而,如果图元具有三角形形状,则可以计算出瓦片与包括在该瓦片中的图元彼此重叠的更准确的相对面积。更详细地,三角形的面积对应于包围该三角形的矩形的面积的一半,因此可以通过计算与限界框的一半对应的面积来计算图元的面积。可以通过右移位运算以相对低的成本进行计算。因此,如果图元具有三角形形状,则可以计算瓦片与限界框之间的重叠面积,并且可以将该重叠面积除以2,从而计算出更准确的相对面积。
如上所述,可以计算出瓦片与至少一个图元彼此重叠的相对面积,可以基于该相对面积来确定瓦片与至少一个图元之间的重叠的量。更详细地,也可以通过将相对面积除以瓦片面积来确定重叠的量。通常,瓦片面积对应于2的指数幂(例如,32×32或16×16),因此可以通过右移位运算来计算重叠的量而不必使用硬件除法器。另外,当瓦片面积不对应于2的指数幂时,可以通过使用倒数单元来以低成本执行除法。
图形处理系统可以对来自前一帧的瓦片的深度复杂性进行估计以用作该瓦片在当前帧中的深度复杂性。当计算来自前一帧的深度复杂性时,不估计近似值,而是在作为渲染的最终操作的光栅操作中计算瓦片的准确的深度复杂性。计算出的深度复杂性在对下一帧进行渲染的操作中被估计为下一帧的深度复杂性。在这个过程中,可以使用帧间连贯性(frame to frame coherence),帧间连贯性是一种通常的性质。在几何学上(物体空间)或者在图像空间方面,渲染结果经常在连续的帧之间高度相似。因此,可以使用从前一帧计算出的深度复杂性作为针对当前帧的深度复杂性。
图6是示出根据发明构思的示例实施例的将前一帧的瓦片的深度复杂性估计为当前帧的瓦片的深度复杂性的操作的视图。
参照图6,帧610和620是连续的帧。如图6所示,帧610和620非常相似。因此,构成帧610的瓦片611、612、613和614与构成帧620的瓦片621、622、623和624也具有彼此相似性。因此,来自前一帧的瓦片的深度复杂性也可以被估计为该瓦片在当前帧中的深度复杂性。当前一帧和当前帧是连续的时,帧之间的相似性可以具有最高相关性。
现在将详细描述以上操作。在渲染前一帧的操作中,在对每个片元进行深度测试的光栅操作中计算准确的深度复杂性,并将该深度复杂性记录(写入)在每个瓦片的瓦片缓冲器中。随着前一帧的渲染完成并将渲染结果刷新到帧缓冲器,每个瓦片的深度复杂性被存储在存储器中。存储器可以存储前一帧的所有瓦片的深度复杂性。当执行对下一帧的渲染时,在分派(allocate)瓦片的同时将存储在存储器中的前一帧的瓦片的深度复杂性一起发送,并且将所发送的前一帧的深度复杂性估计为当前帧的深度复杂性。
根据发明构思的示例实施例,如果当前帧与前一帧之间没有相似性,则在对瓦片执行渲染之后,图形处理系统可以计算该瓦片的深度复杂性并存储深度复杂性。当渲染序列(rendering sequence)由于图像的内容转变而突发改变时,帧之间的相似性被中断,因此难以使用前一帧的信息。在这种情况下,可以预先确定帧之间是否不具有相似性以重置前一帧信息,并且再次开始连贯性机制。
图形处理系统可以确定是否在预设的时间点出现之前对具有半透明性质的图元进行处理,其中,正在被分析的所述图元是从包括在瓦片中的至少一个图元当中选择的图元。当在预设的时间点出现之前对具有半透明性质的图元进行处理时,可以在不对瓦片的深度复杂性进行估计或者不对包括在瓦片中的至少一个图元的可见性进行计算的情况下,执行对瓦片的渲染。另外,如果在预设的时间点出现之后对具有半透明性质的图元进行处理,则可以对直至处理具有半透明性质的图元之前的点的瓦片的深度复杂性进行估计,并且可以基于估计出的深度复杂性来选择性地执行包括在该瓦片中的至少一个图元的可见性计算。可以根据何时输入半透明的图元来确定预设的时间点的出现。本领域普通技术人员应理解并领会,在发明构思之内,可以使用其他方式来确定预设时间点的出现。
如果瓦片中包括具有半透明性质的图元,则在处理该图元的时间点之后不执行可见性计算。当生成具有半透明性质的图元时,会难以仅基于图元的深度值来确定图元之间的可见性关系,因此,在执行渲染之前计算图元的可见性不会显著地影响帧的显示。然而,在对具有半透明性质的图元进行处理之前,图形处理性能可以根据何时处理具有半透明性质的图元而改变。详细地,图形处理系统经由装置驱动器中的应用程序编程接口(API)的绘制调用命令来接收图元流。在图形处理系统中处理的具有半透明性质的图元的处理顺序不同。例如,根据具有半透明性质的图元在图元流中所处的位置,这种处理顺序会造成执行或者不执行可见性计算。当具有半透明性质的图元位于图元流的后部时,在具有半透明性质的图元之前将要被发送并处理的图元的数量会是大的,执行可见性计算所实现的收益会是高的。然而,如果具有半透明性质的图元位于图元流的前部,则在对具有半透明性质的图元进行处理之前将要被发送并处理的图元的数量会是小的,与执行可见性计算相关联的成本会大于所实现的收益。因此,根据发明构思的示例实施例,可以根据具有半透明性质的图元的处理点,通过选择性地针对图元进行可见性计算来适应性地修改处理图元的方法。
以上描述了根据示例实施例的图形处理方法。在下文中,现在将描述根据发明构思的图形处理设备。在本文中,以上已经描述过的细节仅在下面简短讨论。
图7是根据发明构思的示例实施例的图形处理设备700的结构图。
参照图7,图形处理设备700包括分箱单元710、可见性测试单元720和渲染单元730。
分箱单元710可以将二维帧划分成多个瓦片并且对瓦片执行分箱。瓦片分箱指:确定包括至少一个图元的瓦片。分箱单元710可以基于与包括在物体中的多个图元有关的信息来确定图元属于构成二维帧的多个瓦片中的哪个瓦片。例如,如图3中所示,二维帧可以包括瓦片310、320、330等,分箱单元710可以确定这些瓦片中的哪个瓦片包括特定的图元。
分箱单元710可以被配置为对通过划分帧而生成的瓦片的深度复杂性进行估计。根据示例实施例,分箱单元710可以计算瓦片与包括在该瓦片中的至少一个图元之间的重叠的量,并且可以基于重叠的量来估计该瓦片的深度复杂性。分箱单元710还可以将瓦片划分成多个子瓦片,并且可以基于每个子瓦片与包括在该子瓦片中的至少一个图元彼此重叠的次数来确定重叠的量。分箱单元710可以计算每个子瓦片与包括在该子瓦片中的至少一个图元彼此重叠的次数的平均值或总和。
分箱单元710可以被配置为计算瓦片与至少一个图元彼此重叠的相对面积,并且可以基于相对面积来确定重叠的量。根据示例实施例,分箱单元710可以生成包围至少一个图元的基本矩形的限界框,并且计算瓦片与限界框之间的重叠面积,并且将瓦片与限界框之间的重叠面积除以2,从而计算出瓦片与图元之间的重叠面积。
分箱单元710可以被配置为将前一帧的瓦片的深度复杂性估计为该瓦片在当前帧中的深度复杂性。根据示例实施例,如果当前帧与前一帧之间不具有相似性,则分箱单元710可以对瓦片执行渲染,并且计算该瓦片的深度复杂性并存储计算出的深度复杂性。
分箱单元710可以确定输入到瓦片的至少一个图元当中的具有半透明性质的图元是否在预设的时间点出现之前输入。
可见性测试单元720可以对多个瓦片中的每个瓦片所包括的图元执行可见性测试。根据示例实施例,可见性测试单元720可以进行射线追踪(ray tracing)法来对分别包括在瓦片中的图元执行可见性测试。然而,可见性测试单元720也可以通过使用其他方法来执行可见性测试。可以在随后被渲染单元730执行的渲染图元的操作中使用由可见性测试单元720获得的测试结果。
可见性测试单元720可以基于估计出的深度复杂性而对包括在瓦片中的至少一个图元选择性地执行可见性计算。
如果在预设的时间点出现之前处理具有半透明性质的图元,则可见性测试单元720可以省略对瓦片的深度复杂性进行估计,或者省略针对包括在该瓦片中的至少一个图元进行可见性计算。如果在预设的时间点出现之后处理具有半透明性质的图元,则可见性测试单元720可以在处理具有半透明性质的图元之前估计瓦片的深度复杂性,并且可以基于估计出的深度复杂性而对包括在该瓦片中的至少一个图元选择性地进行可见性计算。
例如,可见性测试单元720可以被配置为将估计出的深度复杂性与预设阈值进行比较,如果估计出的深度复杂性大于预设阈值,则可见性测试单元720可以对包括在瓦片中的至少一个图元进行可见性计算。另外,如果估计出的深度复杂性小于预设阈值,则可见性测试单元720可以不对包括在瓦片中的至少一个图元进行可见性计算。
渲染单元730可以被配置为对瓦片执行渲染。更详细地,渲染单元730可以对包括在瓦片中的至少一个图元执行渲染。根据示例实施例,渲染单元730可以基于针对至少一个图元的可见性来对瓦片执行渲染。
图8示出根据发明构思的示例实施例的图形处理设备800的内部结构。
参照图8,图形处理设备800可以包括存储器810、控制器830以及至少一个核心(例如,核心821、822、……、82K)。
存储器810可被至少一个核心(核心821、822、……、82K)访问。存储器810对从外部存储器读取的数据或被至少一个核心821、822、……、82K处理的数据进行存储。另外,存储器810输出存储在外部存储器和至少一个核心821、822、……、82K中的数据。根据示例实施例,存储器810可以存储待渲染的数据。另外,在渲染期间处理的中间数据或者最终数据可以被存储在存储器810中。
至少一个核心821、822、……、82K读取数据并且处理数据。根据示例实施例,图形处理设备800可以从存储器810读取数据并处理数据,并且可以将处理的所得值再次存储在存储器810中。每个核心也可以处理多个线程。根据示例实施例,包括核心821、822、……、82K的至少一个核心可以包括内部存储器以及对线程进行处理的至少一个功能单元。功能块对实际操作进行处理并且可以包括加法器。
控制器830被配置为控制图形处理设备800(包括存储器810以及至少一个核心821、822、……、82K)的数据处理的总体操作。控制器830可以控制存储器810和至少一个核心821、822、……、82K对通过划分帧而生成的瓦片的深度复杂性进行估计,基于估计出的深度复杂性而对包括在瓦片中的至少一个图元选择性地进行可见性计算,并且对瓦片执行渲染。
图9是示出根据发明构思的实施例的图形处理方法的操作的流程图。图形处理设备(例如,GPU)可以被配置为运行图9的流程图的操作。
参照图9,在操作900处,经由被应用程序编程接口(API)发送的绘制调用命令来接收至少一个物体的图元的流。可以以与所述至少一个物体的显示(例如,一个物体可以局部地遮挡/隐藏另一个物体的显示)相关联的顺序来发送图元的流。
在操作905处,对于帧的多个瓦片(该帧被划分成多个瓦片)中的哪个或哪些瓦片包括一个或更多个图元的至少一部分,做出确定。例如,图6示出被划分成四个瓦片的两个连续图像。可以通过点、线、三角形、矩形等的多个图元来呈现每个瓦片中的各个物体。虽然实施例以三角形构成图元,但是发明构思不限于使用三角形。例如,线或矩形是可以构成图元的两个非限制性示例。
在操作910处,可以估计多个瓦片中的每个瓦片的深度复杂性。由于以上已经在此讨论了深度复杂性的估计,所以在此省略赘述。
在操作915处,具有对图元流的至少一个图元是否包括半透明性质进行确定的步骤。如果图形处理设备确定不存在这种图元,则在操作917处,可以执行可见性计算,然后对瓦片进行渲染。例如,可以在基于瓦片的延迟渲染(TBDR)模式下做出这样的可见性计算,使得图形处理设备减少或消除因其他项阻碍其图像而部分或全部无法显示的项的过度绘制的量。
在操作916处,当在操作915处确定了图元流的至少一个图元包括半透明性质的情况下,做出另一个确定,即,对具有半透明性质的图元在图元流的前部还是后部做出确定。按照以上在此之前讨论的,如果具有半透明性质的图元位于图元流的后部,则在对瓦片进行渲染之前在操作917处执行可见性计算。然而,如果具有半透明性质的图元位于图元流的前部,则可以在不执行可见性计算的情况下(例如,省略操作917)在操作920处对瓦片进行渲染。如之前讨论过的,可以在位于图元流的前部的具有半透明性质的图元之前被发送并处理的图元的数量会相对小。因此,在这种情况下,当具有半透明性质的图元位于图元流的前部时,进行可见性计算的成本会比进行可见性计算的收益要大。
图10是示出诸如图7所示的图形处理设备的操作的流程图。本领域普通技术人员应理解并领会,与图7所示不同的构造也在发明构思之内。
图形处理设备可以包括电路,诸如分箱电路(例如,分箱单元)、可见性测试电路(例如,可见性测试单元)以及渲染电路(例如,渲染单元)。这些组件可以是例如图形处理单元(GPU)的部件,并且可以由集成电路构成,所述集成电路被配置有可运行的代码。
在操作1000处,分箱单元可以对多个瓦片中的一个或更多个瓦片的深度复杂性进行估计。按照以上在此之前讨论的,分箱单元可以被配置为将帧划分成多个瓦片,并且执行分箱(例如,确定多个瓦片中的哪些瓦片包括至少一个图元)。分箱单元还可以将瓦片划分成多个子瓦片,对于一个或更多个相应的子瓦片中至少部分地包括了哪些图元做出确定。
在操作1005处,可见性测试单元可以基于估计出的深度复杂性对至少一个瓦片进行可见性测试。根据发明构思,考虑到估计出的深度复杂性,可以基于一个或更多个特定瓦片中的图元是否具有半透明性质而选择性地执行可见性计算。例如,可以基于估计出的深度复杂性是否小于预设阈值而省略(例如,跳过)可见性计算。例如,可以使用比较器来将估计出的深度复杂性与预设阈值进行比较。
在操作1010处,渲染单元可以像以上在此讨论的那样,考虑到可见性计算而对瓦片进行渲染或者不执行可见性计算而对瓦片进行渲染。
因此,基于输入到当前瓦片的图元,并且考虑到是否存在一个或更多个图元的半透明性质,GPU可以根据考虑到的当前瓦片的深度复杂性而在TBDR模式或TBR模式下操作。因此,根据发明构思的实施例,如果存在图元流内的被识别为具有半透明性质的图元,则TBDR模式选择性地进行操作,而不是例如将GPU切换到TBR模式。
在此描述的装置可以包括处理器、存储程序数据和运行的存储器、诸如硬盘驱动器的永久性存储装置、处理与外部装置通信的通信端口、以及包括显示器、键盘等的用户接口装置。当包含软件模块时,这些软件模块可以被存储为程序指令或者可由处理器运行的计算机可读代码,计算机可读代码位于计算机可读介质上,计算机可读介质为诸如磁性存储介质(例如,只读存储器(ROM)、随机存取存储器(RAM)、软盘、硬盘等)以及光学记录介质(例如,CD-ROM、DVD等)。计算机可读记录介质也可以分布在网络连接的计算机系统上,从而以分布式来存储并运行计算机可读代码。该介质可以被计算机读取、被存储在存储器中并由处理器运行。
可以在功能块组件和各种处理步骤的方面来描述发明构思。可以通过被配置为用于执行特定功能的任意数量的硬件和/或软件组件来实现这种功能块。例如,发明构思可采用各种集成电路组件(例如,存储器元件、处理元件、逻辑元件、查找表等),其中,所述集成电路组件可以在一个或更多个微处理器或其他控制装置的控制下实现多种功能。类似地,在使用软件编程或软件元素来实现发明构思的元素时,可以以各种算法利用任何编程或脚本语言(诸如C、C++、Java、汇编程序等)来实现发明构思,所述算法利用数据结构、对象、处理、例行程序或其他编程元素的任意组合来实现。可以以被一个或更多个处理器运行的算法来实现发明构思。此外,发明构思可以采用任意数量的各种配置、信号处理和/或控制、数据处理等。词语“机构”和“元件”被广义地使用并且不限于机械的或物理的实施例,而是可以包括与处理器等结合的软件程序。
在此示出和描述的特定实施方式是发明构思的说明性的示例,并且不以任何方式限制发明构思的范围。为了简洁起见,在此不会详细描述传统的电子件、控制系统、软件开发和其他系统操作(以及系统的单独的操作组件中的组件)。此外,在给出的各个附图中示出的连接线或连接件意在表示各种元件之间的示例性功能关系和/或物理或逻辑连接。应该注意,许多可选的或附加的功能关系、物理连接或逻辑连接可以存在于实际的装置中。
在描述发明构思的语境(尤其在权利要求的语境)中的术语“一”和“一个(种/者)”以及“该(所述)”的使用和类似的指称将被理解为覆盖单数和复数两者。此外,除非在此另有指示,否则在此数值范围的陈述仅仅意图用作分别指示落入所述范围的每个单独的数值的快捷方法,每个单独的数值被合并到说明书中,如同每个单独的数值被各自在此陈述一样。最后,除非这里另有指示或者另外清楚地与语境相矛盾,否则可以按照任何合适的顺序执行在此描述的所有方法的步骤。除非另有声明,否则在此提供任意和全部示例或示例性语言(例如,“诸如”)的使用以说明发明构思,并且不对发明构思的范围进行限制。在不脱离发明构思的精神和范围的前提下,多种变更和适用对本领域的技术人员将是容易明了的。
应该理解的是,应当仅以描述性的含义而非出于限制的目的来考虑在此描述的实施例。发明构思的实施例的描述可以通常被考虑为对于其他实施例也是可适用的。
虽然已经参照附图描述了发明构思的一个或更多个实施例,但是本领域技术人员将理解的是,在不脱离由所附权利要求限定的精神和范围的情况下可以在其中做出形式和细节上的各种改变。
Claims (24)
1.一种图形处理方法,所述图形处理方法包括以下步骤:
将帧划分成多个瓦片;
对所述多个瓦片中的整个瓦片的深度复杂性进行估计以确定所述帧中的物体之间的重叠;
基于所述瓦片的估计出的深度复杂性而针对包括在所述瓦片中的至少一个图元选择性地进行可见性计算;以及
对所述瓦片执行渲染,
其中,针对包括在所述瓦片中的至少一个图元选择性地进行可见性计算的步骤包括:
将估计出的深度复杂性与预设阈值进行比较;
如果估计出的深度复杂性小于预设阈值,则在对所述瓦片执行渲染的步骤之前,省略针对包括在所述瓦片中的至少一个图元进行可见性计算;
如果估计出的深度复杂性大于预设阈值,则针对包括在所述瓦片中的至少一个图元进行可见性计算,并且
如果已经进行了可见性计算,则基于所述至少一个图元的可见性来执行渲染。
2.根据权利要求1所述的图形处理方法,其中,对所述瓦片的深度复杂性进行估计的步骤包括:
对所述瓦片与包括在所述瓦片中的所述至少一个图元之间的重叠的量进行计算;以及
基于重叠的量来估计所述瓦片的深度复杂性。
3.根据权利要求2所述的图形处理方法,其中,对所述瓦片与包括在所述瓦片中的所述至少一个图元之间的重叠的量进行计算的步骤包括:
将所述瓦片划分成多个子瓦片;以及
基于每个子瓦片与包括在每个子瓦片中的所述至少一个图元彼此重叠的次数来确定重叠的量。
4.根据权利要求3所述的图形处理方法,其中,基于每个子瓦片与包括在每个子瓦片中的所述至少一个图元彼此重叠的次数来确定重叠的量的步骤包括:计算所述多个子瓦片中的每个子瓦片与包括在每个子瓦片中的所述至少一个图元彼此重叠的次数的总和或平均值。
5.根据权利要求2所述的图形处理方法,其中,对所述瓦片与包括在所述瓦片中的所述至少一个图元之间的重叠的量进行计算的步骤包括:
计算所述瓦片与所述至少一个图元彼此重叠的相对面积;以及
基于相对面积来确定重叠的量。
6.根据权利要求5所述的图形处理方法,其中,计算所述瓦片与所述至少一个图元彼此重叠的相对面积的步骤包括:
生成包围所述至少一个图元的基本矩形的限界框;以及
计算所述瓦片与基本矩形的限界框之间的重叠面积。
7.一种图形处理方法,包括:
将帧划分成多个瓦片;
对所述多个瓦片中的瓦片的深度复杂性进行估计以确定所述帧中的物体之间的重叠;
基于所述瓦片的估计出的深度复杂性而针对包括在所述瓦片中的至少一个图元选择性地进行可见性计算;以及
对所述瓦片执行渲染,
其中,对所述瓦片的深度复杂性进行估计的步骤包括:计算所述瓦片与包括在所述瓦片中的至少一个图元之间的重叠的量,并基于重叠的量来估计所述瓦片的深度复杂性,
其中,计算所述瓦片与包括在所述瓦片中的至少一个图元之间的重叠的量的步骤包括:计算所述瓦片与所述至少一个图元彼此重叠的相对面积,并基于相对面积来确定重叠的量,
其中,计算所述瓦片与所述至少一个图元彼此重叠的相对面积的步骤包括:生成围绕所述至少一个图元的基本矩形的限界框并计算所述瓦片与基本矩形的限界框之间的重叠面积,
其中,计算所述瓦片与所述至少一个图元彼此重叠的相对面积的步骤包括:通过将所述瓦片与基本矩形的限界框之间的重叠面积除以2来计算所述瓦片与所述至少一个图元之间的重叠面积。
8.根据权利要求1或7所述的图形处理方法,其中,所述帧是当前帧,对所述瓦片的深度复杂性进行估计的步骤包括:将针对来自前一帧的对应瓦片计算的深度复杂性用作所述瓦片在当前帧中的深度复杂性。
9.根据权利要求8所述的图形处理方法,所述图形处理方法还包括:
如果当前帧与前一帧之间不具有相似性,则在对所述瓦片执行渲染之后,计算并存储所述瓦片的深度复杂性。
10.根据权利要求1或7所述的图形处理方法,所述图形处理方法还包括:
确定是否在预设的时间点出现之前对包括在所述瓦片中的所述至少一个图元当中的具有半透明性质的图元进行处理,
其中,如果在预设的时间点出现之前,对包括在所述瓦片中的所述至少一个图元当中的具有半透明性质的所述图元进行处理,则在不对所述瓦片的深度复杂性进行估计或者不针对包括在所述瓦片中的所述至少一个图元进行可见性计算的情况下,对所述瓦片执行渲染。
11.根据权利要求10所述的图形处理方法,所述图形处理方法还包括:
当在预设的时间点之后对具有半透明性质的所述图元进行处理时,对直至处理具有半透明性质的所述图元的点的所述瓦片的深度复杂性进行估计,以及
针对包括在所述瓦片中的所述至少一个图元选择性地进行可见性计算。
12.一种图形处理系统,所述图形处理系统包括:
分箱电路,被配置为对通过划分当前帧而生成的整个瓦片的深度复杂性进行估计;
可见性测试电路,被配置为基于瓦片的估计出的深度复杂性而选择性地针对包括在瓦片中的至少一个图元进行可见性计算;以及
渲染电路,被配置为对瓦片执行渲染,
其中,可见性测度电路通过下列步骤针对包括在所述瓦片中的至少一个图元选择性地进行可见性计算:
将估计出的深度复杂性与预设阈值进行比较;
如果估计出的深度复杂性小于预设阈值,则在对所述瓦片执行渲染的步骤之前,省略针对包括在所述瓦片中的至少一个图元进行可见性计算;
如果估计出的深度复杂性大于预设阈值,则针对包括在所述瓦片中的至少一个图元进行可见性计算,并且
如果已经进行了可见性计算,则渲染电路基于所述至少一个图元的可见性来对所述瓦片执行渲染。
13.根据权利要求12所述的图形处理系统,其中,分箱电路被配置为对瓦片与包括在瓦片中的所述至少一个图元之间的重叠的量进行计算,并基于重叠的量来估计瓦片的深度复杂性。
14.根据权利要求13所述的图形处理系统,其中,分箱电路将瓦片划分成多个子瓦片,并基于每个子瓦片与包括在每个子瓦片中的至少一个图元彼此重叠的次数来确定重叠的量。
15.根据权利要求14所述的图形处理系统,其中,分箱电路通过计算每个子瓦片与包括在每个子瓦片中的至少一个图元彼此重叠的次数的总和或平均值来确定重叠的量。
16.根据权利要求13所述的图形处理系统,其中,分箱电路计算瓦片与包括在瓦片中的所述至少一个图元彼此重叠的相对面积,并基于相对面积来确定重叠的量。
17.根据权利要求16所述的图形处理系统,其中,分箱电路生成包围所述至少一个图元的基本矩形的限界框,并计算瓦片与基本矩形的限界框之间的重叠面积。
18.一种图形处理系统,包括:
分箱电路,被配置为对通过划分当前帧而生成的瓦片的深度复杂性进行估计;
可见性测试电路,被配置为基于瓦片的估计出的深度复杂性而选择性地针对包括在瓦片中的至少一个图元进行可见性计算;以及
渲染电路,被配置为对瓦片执行渲染,
其中,分箱电路被配置为计算瓦片与包括在瓦片中的所述至少一个图元之间的重叠的量,并基于重叠的量来估计瓦片的深度复杂性,
其中,分箱电路计算瓦片与包括在瓦片中的所述至少一个图元彼此重叠的相对面积,基于相对面积来确定重叠的量,生成围绕所述至少一个图元的基本矩形的限界框,并计算瓦片与基本矩形的限界框之间的重叠面积,
其中,分箱电路通过将瓦片与基本矩形的限界框之间的重叠面积除以2来计算瓦片与包括在瓦片中的所述至少一个图元彼此重叠的面积。
19.根据权利要求12或18所述的图形处理系统,其中,分箱电路将针对前一帧中的对应瓦片计算的深度复杂性用作所述瓦片在当前帧中的深度复杂性。
20.根据权利要求19所述的图形处理系统,其中,如果当前帧与前一帧之间不具有相似性,则在对当前帧的瓦片执行渲染之后,分箱电路计算并存储当前帧的瓦片的深度复杂性。
21.根据权利要求12或18所述的图形处理系统,其中,分箱电路确定是否在预设的时间点出现之前对包括在瓦片中的所述至少一个图元当中的具有半透明性质的图元进行处理,
其中,如果在预设的时间点出现之前对具有半透明性质的所述图元进行处理,则可见性测试电路省略对瓦片的深度复杂性进行估计并省略针对包括在瓦片中的所述至少一个图元进行可见性计算。
22.根据权利要求21所述的图形处理系统,其中,如果在预设的时间点之后对具有半透明性质的所述图元进行处理,则可见性测试电路在处理具有半透明性质的所述图元之前估计瓦片的深度复杂性,并基于估计出的深度复杂性而针对包括在瓦片中的至少一个图元选择性地进行可见性计算。
23.一种可被图形处理单元GPU操作的图形处理的方法,所述方法包括以下步骤:
经由来自应用程序编程接口(API)的绘制调用命令来接收包括多个图元的图元流;
确定帧的多个瓦片中的哪些瓦片包括图元流的一个或更多个图元的至少一部分;
基于瓦片与一个或更多个图元的所述至少一部分的重叠来估计所述多个瓦片中的整个瓦片的深度复杂性;
当图元流的至少一个图元包括半透明性质时,确定具有半透明性质的所述至少一个图元位于图元流的前部还是后部;
当具有半透明性质的所述至少一个图元位于图元流的后部时,对所述多个瓦片中的至少一些瓦片执行可见性计算,并在此之后对所述多个瓦片进行渲染;并且
当具有半透明性质的所述至少一个图元位于图元流的前部时,在不执行可见性计算的情况下对所述多个瓦片中的至少一些瓦片进行渲染;
如果图元流不包括具有半透明性质的至少一个图元,则基于瓦片的估计出的深度复杂性而针对瓦片选择性地进行可见性计算,其包括:
将估计出的深度复杂性与预设阈值进行比较;
如果估计出的深度复杂性小于预设阈值,则在对瓦片执行渲染的步骤之前,省略针对包括在瓦片中的所述至少一个图元进行可见性计算;
如果估计出的深度复杂性大于预设阈值,则针对包括在瓦片中的所述至少一个图元进行可见性计算,并且
如果已经进行了可见性计算,则基于所述至少一个图元的可见性来执行瓦片的渲染。
24.根据权利要求23所述的方法,其中,如果图元流不包括具有半透明性质的至少一个图元,则:
当估计出的深度复杂性大于预定阈值时,GPU在基于瓦片的延迟渲染(TBDR)模式下操作以对瓦片进行渲染,
当估计出的深度复杂性小于预定阈值时,GPU在基于瓦片渲染(TBR)模式下操作以对瓦片进行渲染;并且
所述帧是当前帧,对瓦片的深度复杂性进行估计的步骤包括:将针对来自前一帧的对应瓦片计算的深度复杂性用作当前帧的所述瓦片的估计出的深度复杂性。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2017-0001314 | 2017-01-04 | ||
KR1020170001314A KR102637736B1 (ko) | 2017-01-04 | 2017-01-04 | 그래픽스 처리 방법 및 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108280867A CN108280867A (zh) | 2018-07-13 |
CN108280867B true CN108280867B (zh) | 2022-12-23 |
Family
ID=60244880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711025944.4A Active CN108280867B (zh) | 2017-01-04 | 2017-10-27 | 图形处理方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10497085B2 (zh) |
EP (1) | EP3346448B1 (zh) |
KR (1) | KR102637736B1 (zh) |
CN (1) | CN108280867B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2561807B (en) | 2017-01-12 | 2019-09-25 | Imagination Tech Ltd | Computing systems and methods for processing graphics data using cost indications for sets of tiles of a rendering space |
US10838599B2 (en) | 2019-02-25 | 2020-11-17 | Snap Inc. | Custom media overlay system |
US11080928B2 (en) * | 2019-04-01 | 2021-08-03 | Qualcomm Incorporated | Methods and apparatus for visibility stream management |
US11321806B2 (en) * | 2020-07-22 | 2022-05-03 | Samsung Electronics Co., Ltd. | Enhanced early coverage discard using opportunistic bypassing and dynamic queue resizing |
CN116670719A (zh) * | 2020-12-27 | 2023-08-29 | 华为技术有限公司 | 一种图形处理方法、装置及电子设备 |
CN112614042B (zh) * | 2020-12-29 | 2022-09-27 | 完美世界(北京)软件科技发展有限公司 | 贴图延迟渲染的数据驱动方法及装置 |
US20220207827A1 (en) * | 2020-12-30 | 2022-06-30 | Advanced Micro Devices, Inc. | Systems and methods for distributed rendering using two-level binning |
US20240005601A1 (en) * | 2022-06-29 | 2024-01-04 | Advanced Micro Devices, Inc. | Hierarchical depth data generation using primitive fusion |
US11961160B2 (en) * | 2022-07-01 | 2024-04-16 | Arm Limited | Method of and apparatus for defining bounding boxes |
CN116894906A (zh) * | 2023-09-11 | 2023-10-17 | 瀚博半导体(上海)有限公司 | 图形渲染方法和处理器硬件架构 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6525726B1 (en) * | 1999-11-02 | 2003-02-25 | Intel Corporation | Method and apparatus for adaptive hierarchical visibility in a tiled three-dimensional graphics architecture |
CN104169974A (zh) * | 2012-03-15 | 2014-11-26 | 高通股份有限公司 | 图形处理单元中基于可见性的状态更新 |
CN104183005A (zh) * | 2013-05-24 | 2014-12-03 | 三星电子株式会社 | 图形处理单元和基于图块的渲染方法 |
CN104715503A (zh) * | 2013-12-13 | 2015-06-17 | 想象技术有限公司 | 图形处理系统中的基元处理 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6771264B1 (en) | 1998-08-20 | 2004-08-03 | Apple Computer, Inc. | Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor |
GB2378108B (en) | 2001-07-24 | 2005-08-17 | Imagination Tech Ltd | Three dimensional graphics system |
US7242400B2 (en) * | 2002-11-13 | 2007-07-10 | Ati Technologies Ulc | Compression and decompression of data using plane equations |
GB2404316B (en) | 2003-07-25 | 2005-11-30 | Imagination Tech Ltd | Three-Dimensional computer graphics system |
GB0723536D0 (en) | 2007-11-30 | 2008-01-09 | Imagination Tech Ltd | Multi-core geometry processing in a tile based rendering system |
GB2473513B (en) | 2009-09-14 | 2012-02-01 | Sony Comp Entertainment Europe | A method and apparatus for determining processor performance |
US8988441B2 (en) | 2011-02-10 | 2015-03-24 | Edward A. Hutchins | Reconfigurable 3D graphics processor |
US8982136B2 (en) | 2011-05-16 | 2015-03-17 | Qualcomm Incorporated | Rendering mode selection in graphics processing units |
US9342322B2 (en) | 2011-09-12 | 2016-05-17 | Microsoft Technology Licensing, Llc | System and method for layering using tile-based renderers |
US9547930B2 (en) | 2011-11-30 | 2017-01-17 | Qualcomm Incorporated | Hardware switching between direct rendering and binning in graphics processing |
KR101953133B1 (ko) | 2012-02-27 | 2019-05-22 | 삼성전자주식회사 | 렌더링 장치 및 그 방법 |
US9087410B2 (en) * | 2013-01-17 | 2015-07-21 | Qualcomm Incorporated | Rendering graphics data using visibility information |
US9483861B2 (en) | 2013-03-15 | 2016-11-01 | Qualcomm Incorporated | Tile-based rendering |
US9767595B2 (en) | 2013-05-02 | 2017-09-19 | Arm Limited | Graphics processing systems |
US10204391B2 (en) * | 2013-06-04 | 2019-02-12 | Arm Limited | Method of and apparatus for processing graphics |
US9501859B2 (en) * | 2013-07-19 | 2016-11-22 | Adobe Systems Incorporated | Triangle rasterization |
US10134160B2 (en) * | 2013-09-26 | 2018-11-20 | Intel Corporation | Anti-aliasing for graphics hardware |
KR102122454B1 (ko) * | 2013-10-02 | 2020-06-12 | 삼성전자주식회사 | 이전 타일의 이미지를 이용하여 현재 프레임을 렌더링하는 방법 및 장치 |
GB2518902B (en) | 2013-10-07 | 2020-07-01 | Advanced Risc Mach Ltd | Early depth testing in graphics processing |
KR102101834B1 (ko) | 2013-10-08 | 2020-04-17 | 삼성전자 주식회사 | 영상 처리 장치 및 방법 |
GB2517809B (en) * | 2014-02-13 | 2015-07-22 | Imagination Tech Ltd | Processing of primitive blocks in parallel tiling engine pipes |
US9495606B2 (en) * | 2014-02-28 | 2016-11-15 | Ricoh Co., Ltd. | Method for product recognition from multiple images |
GB2524120B (en) | 2014-06-17 | 2016-03-02 | Imagination Tech Ltd | Assigning primitives to tiles in a graphics processing system |
US9928610B2 (en) | 2014-06-27 | 2018-03-27 | Samsung Electronics Co., Ltd. | Motion based adaptive rendering |
GB2530996B (en) * | 2014-10-06 | 2016-09-14 | Imagination Tech Ltd | Depth forwarding in a graphics processing system |
KR20160047316A (ko) | 2014-10-22 | 2016-05-02 | 삼성전자주식회사 | 렌더링 장치 및 방법 |
KR20160051155A (ko) | 2014-10-31 | 2016-05-11 | 삼성전자주식회사 | 렌더링 장치 및 방법 |
US9361697B1 (en) | 2014-12-23 | 2016-06-07 | Mediatek Inc. | Graphic processing circuit with binning rendering and pre-depth processing method thereof |
GB2534567B (en) | 2015-01-27 | 2017-04-19 | Imagination Tech Ltd | Processing primitives which have unresolved fragments in a graphics processing system |
US10482648B2 (en) * | 2016-12-13 | 2019-11-19 | Qualcomm Incorporated | Scene-based foveated rendering of graphics content |
-
2017
- 2017-01-04 KR KR1020170001314A patent/KR102637736B1/ko active IP Right Grant
- 2017-09-07 US US15/698,010 patent/US10497085B2/en active Active
- 2017-10-27 CN CN201711025944.4A patent/CN108280867B/zh active Active
- 2017-10-27 EP EP17198986.6A patent/EP3346448B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6525726B1 (en) * | 1999-11-02 | 2003-02-25 | Intel Corporation | Method and apparatus for adaptive hierarchical visibility in a tiled three-dimensional graphics architecture |
CN104169974A (zh) * | 2012-03-15 | 2014-11-26 | 高通股份有限公司 | 图形处理单元中基于可见性的状态更新 |
CN104183005A (zh) * | 2013-05-24 | 2014-12-03 | 三星电子株式会社 | 图形处理单元和基于图块的渲染方法 |
CN104715503A (zh) * | 2013-12-13 | 2015-06-17 | 想象技术有限公司 | 图形处理系统中的基元处理 |
Also Published As
Publication number | Publication date |
---|---|
KR102637736B1 (ko) | 2024-02-19 |
US10497085B2 (en) | 2019-12-03 |
CN108280867A (zh) | 2018-07-13 |
EP3346448A1 (en) | 2018-07-11 |
KR20180080517A (ko) | 2018-07-12 |
EP3346448B1 (en) | 2020-04-08 |
US20180189925A1 (en) | 2018-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108280867B (zh) | 图形处理方法和系统 | |
US10102663B2 (en) | Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location | |
KR101952633B1 (ko) | 고 분해능 디스플레이 버퍼들의 효율적인 구성을 위한 방법 | |
US8379013B2 (en) | Method, medium and apparatus rendering 3D graphic data | |
JP4977712B2 (ja) | ディスプレースクリーン上に立体画像をレンダリングするコンピュータグラフィックスプロセッサならびにその方法 | |
US20120229460A1 (en) | Method and System for Optimizing Resource Usage in a Graphics Pipeline | |
JP2005092863A (ja) | データ処理システム | |
US10388063B2 (en) | Variable rate shading based on temporal reprojection | |
CN104933749B (zh) | 图形图元的裁剪 | |
US10147226B1 (en) | 2D motion vectors from 3D model data | |
JP2007507036A (ja) | 動作ぼかしの生成 | |
US9430818B2 (en) | Analytical motion blur rasterization with compression | |
KR20170026192A (ko) | 그래픽 처리 시스템 | |
US8462156B1 (en) | Method and system for generating shadows in a graphics processing unit | |
US9286714B2 (en) | Apparatus and method for processing graphics primitives | |
KR20180037838A (ko) | 텍스쳐를 처리하는 방법 및 장치 | |
KR20170031480A (ko) | 렌더링 장치 및 방법 | |
US20220139023A1 (en) | Apparatus and method for generating a light intensity image | |
KR102558739B1 (ko) | 3d 렌더링 방법 및 장치 | |
CN116563435A (zh) | 用于游戏双通道传递的方法和系统 | |
EP1926052B1 (en) | Method, medium, and system rendering 3 dimensional graphics data considering fog effect | |
Palmér | Analytical motion blurred shadows |
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 |