三维图形处理制造技术

技术编号:2946395 阅读:210 留言:0更新日期:2012-04-11 18:40
一种图形渲染流水线(1)具有多个不同的渲染单元(2,3)并接收碎片(4)用于渲染。渲染器状态字高速缓存(5)用来存储用于当渲染单元渲染碎片时配置渲染单元(2,3)的渲染状态数据。每个渲染单元(2,3)包括对接收的碎片执行渲染操作的功能块(10),和渲染状态字接口(11),其可以用来从渲染状态字高速缓存(5)中查找所需的渲染状态数据。每个碎片(4)被提供到渲染流水线(1),其具有碎片数据(6),其尤其指示碎片索引(7)、渲染器状态字索引(8),和渲染碎片所必需的其他碎片数据(9)。当渲染流水线(1)的渲染单元(2,3)接收将要渲染的碎片时,它首先使用与碎片(4)相关联的渲染器状态字索引(8)以利用其渲染器状态字接口(11)从渲染器状态字高速缓存(5)中查找相关的渲染状态数据。然后它利用该渲染状态数据配置其功能块(10),并且然后渲染该碎片。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及用于例如显示屏上显示的三维(3D)图形处理,并且特别涉及用于显示的三维图形的渲染(rendering)。正如本领域中已知的,一般通过首先把将要显示的场景分成许多类似的基本分量(所谓的“基元(primitive)”)来执行3D图形处理以允许更容易地执行该3D图形处理操作。这些“基元”一般采用简单的多边形形式,例如三角形,并且一般通过限定它们的顶点而被描述。一旦将要显示的场景被分成了多个图形基元,那么正如本领域中已知的,这些图形基元一般将会被进一步分成分立的图形实体或元素,一般称作“碎片(fragment)”,在其上执行实际的图形处理操作(例如渲染操作)。每个这种图形碎片将代表并且对应于基元中的给定位置,并且实际上包括用于所述位置的一组数据(例如颜色和深度值)。每个图形碎片(数据元)一般对应于最终显示中的单像素(像元)(因为当这些像素是最终将要显示的画面中的奇异点时,在3D图形处理器所操作的“碎片”和显示中的像素之间一般将存在一一对应的映射)。然而,可能的情况是在“碎片”和“像素”之间不存在直接对应,例如在显示最终图像之前对渲染的图像实施后期处理例如按比例缩小的特殊形式的情况下。因此,一般执行的3D图形处理的两个方面是图形“基元”(或多边形)位置数据到图形碎片位置数据的“光栅化(rasterising)”(即确定用来代表将要显示的场景中的每个基元的图形碎片的(x,y)位置),并且然后“渲染”“被光栅化的”碎片(即对这些碎片进行染色(colouring)、着色等),用于在显示屏上显示。(在3D图形文献中,术语“光栅化”有时候用来表示基元转换成碎片以及渲染。然而,在此“光栅化”将仅用来指把基元数据转换成碎片地址。)渲染过程基本上包括导出显示每个碎片必需的数据。这种数据一般包括用于每个碎片的红、绿和蓝色(RGB)值(其基本上将确定显示上的碎片的颜色),以及用于每个碎片的所谓的“α”(透明度)值。正如本领域中已知的,一般通过以线性或流水线(pipelined)方式一个接一个地对每个碎片(即用于该碎片的数据)执行单独的渲染过程(步骤)来导出该数据。因此,例如,根据例如记录的用于碎片所属的基元的顶点的颜色和透明度数据,每个碎片首先被分配初始的RGB和α值,然后对碎片数据接连地执行例如纹理化、雾化、和混合等操作。这些操作修改为每个碎片设置的初始RGB和α值,以便在最后的处理操作之后,每个碎片具有适当设置的RGB和α值,以允许该碎片正确地显示在显示屏上。然后存储该最后设置的RGB和α值,准备在显示屏上显示该碎片。然后对当前正在渲染的场景区域中的所有碎片重复该过程。以该方式执行渲染过程,因为单独的渲染操作一般彼此独立,并且可以不参考其他渲染步骤或碎片而执行,因此它们可以在没有损害的情况下以线性、流水线方式来执行。以这种流水线方式(以所谓的“渲染流水线”)执行渲染操作意味着“流水线”的不同渲染单元可以同时对不同碎片进行操作,由此使得渲染过程更有效。为执行正确的渲染操作,渲染过程的每个阶段需要适当地配置,即将被设置成正确的所谓的“渲染状态”。渲染状态确定渲染过程的这些阶段怎样对每个碎片进行操作,并且一般确定例如渲染图形碎片所使用的反走样模式、混合模式、模板缓存操作、纹理函数(texture function)、纹理映射信息、z测试模式、RGBa缓存写模式等中的一个或多个。它也可以用来例如表示将要使用的光栅化模式。一般通过驱动图形处理器的“驱动器”软件来确定和设置渲染状态。(正如本领域中已知的,一般由“主”设备(例如在图形处理器的主机系统上)控制图形处理器,该主设备借助在该主设备上运行的软件“驱动器”与图形处理器进行通信并且控制图形处理器,该软件“驱动器”被配置以响应于从在该主设备上运行的需要使用图形处理器的(软件)应用程序接收的命令,与图形处理器进行通信并且控制图形处理器。)在现有的3D图形处理系统中,渲染过程的所有阶段通常首先被配置成期望的渲染状态,然后图形碎片被发出以便进行渲染。换句话说,整个渲染器在图形碎片发送给它之前被配置到单个渲染状态。然而,这意味着当利用不同的渲染状态将碎片渲染成渲染器的当前状态时(例如当将要渲染来自具有不同渲染状态的另一个基元的第一碎片时),该渲染器必须使其渲染状态在能够渲染新的碎片之前变成新的渲染状态。此外,直到目前在渲染器中的所有碎片的处理都已经结束,该渲染器的渲染状态才能改变。实际上,这意味着当需要渲染器状态改变时,在可以渲染新的碎片之前,需要新的渲染状态的新碎片必须“停止”,已经在渲染器中的碎片“刷新(flush)”它,并且渲染状态改变。这降低了渲染器的性能。因此公知的是试图减少渲染状态变化的数量,其需要通过在将它们“发送”给渲染器之前根据它们的渲染状态对将要渲染的基元分类来完成。然而,即使利用这种分类,渲染状态变化仍旧易于相对频繁地发生。还公知的是试图增加可以进行渲染状态变化的速度,例如通过在提供给渲染器的基元数据流中包括渲染状态变化命令和数据,以便例如减少实现渲染器状态变化所需的时间。然而,只要需要进行渲染状态变化,这种操作就仍需要渲染器停止和被刷新。因此本申请人相信仍然存在改善渲染操作的余地,特别是在渲染状态变化的情况下。根据本专利技术的第一方面,提供一种图形处理器,包括用来渲染图形碎片用于显示的渲染器,该渲染器包括可以被配置成不同渲染状态的一个或多个渲染单元;用来存储多组数据的装置,每组数据限定用来配置渲染器的渲染单元的不同渲染状态;用来把将要渲染的图形碎片与存储的渲染状态数据组中的一个相关联的装置;以及用来将已经与存储的渲染状态数据组关联的图形碎片发送到渲染器的渲染单元以便进行渲染的装置;其中渲染器的渲染单元中的一个或多个包括用来确定与将要渲染的图形碎片相关联的渲染状态数据组的装置;以及用来根据确定的渲染状态数据组配置渲染单元的装置。根据本专利技术的第二方面,提供操作具有渲染器的图形处理器的方法,该渲染器包括用来渲染用于显示的图形碎片的一个或多个渲染单元,该方法包括存储限定用来配置渲染器的渲染单元的一个或多个渲染状态的数据;把将要渲染的每个碎片与存储的渲染状态之一相关联;以及渲染单元,当它接收将要渲染的碎片时,确定与该碎片相关联的渲染状态,根据确定的渲染状态被配置,并且对接收的碎片执行其渲染操作。在本专利技术中,将要渲染的图形碎片与它们的渲染状态相关联,并且然后渲染器的渲染单元利用该关联来确定它们应当使用的用于渲染碎片的渲染状态。换句话说,当渲染单元接收用于渲染的碎片时,它根据与碎片相关联的渲染状态“查找”用于该碎片的渲染状态,并且然后相应地渲染该碎片。这避免了对在渲染任何碎片之前将整个渲染器配置到给定的渲染状态的需要。它也意味着渲染器的渲染单元均可以独立于当前的渲染状态或渲染器中剩余的渲染单元的状态,有效地将它们自己配置成它们的当前碎片所需要的渲染状态。本专利技术的这种设置的优点是渲染器的不同单元可以(并且优选)被同时配置到不同的渲染状态,即使得渲染器的渲染单元可以同时对需要不同渲染状态的碎片进行操作。因此这允许具有不同渲染状态的碎片被同时发送到渲染器(并且被该渲染器渲染),而不需要在连续的碎片之间发生渲染状态变化时将渲染器的其他或所有单元重新配置到新的渲染状本文档来自技高网...

【技术保护点】
一种图形处理器,包括:    用来渲染图形碎片用于显示的渲染器,该渲染器包括可以被配置成不同渲染状态的一个或多个渲染单元;    用来存储多组数据的装置,每组数据限定用来配置渲染器的渲染单元的不同渲染状态;    用来把将要渲染的图形碎片与存储的渲染状态数据组中的一个相关联的装置;以及    用来将已经与存储的渲染状态数据组关联的图形碎片发送到渲染器的渲染单元以便进行渲染的装置;    其中:    渲染器的渲染单元中的一个或多个包括:    用来确定与将要渲染的图形碎片相关联的渲染状态数据组的装置;以及    用来根据确定的渲染状态数据组配置渲染单元的装置。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:J尼斯塔德M布拉策维克B约斯兰德E索尔加德
申请(专利权)人:ARM挪威股份有限公司
类型:发明
国别省市:NO[挪威]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1