图形处理系统的制作方法

文档序号:9327880阅读:330来源:国知局
图形处理系统的制作方法
【技术领域】
[0001]本发明涉及图形处理系统,特别是在渲染图像以用于显示时考虑阴影效果的方法和设备。
【背景技术】
[0002]在图形处理系统中渲染图像(例如,输出帧)以用于显示时,常常期望能够考虑渲染的场景中的阴影效果。因此,已开发出各种渲染技术来尝试这样做。
[0003]—种此类技术是所谓的“阴影映射”。在该技术中,推导(例如,在第一次渲染中)指示从光源至在各个采样点处投射阴影的对象的深度的“阴影映射图(shadow map)”,然后在渲染输出帧时使用该阴影映射图来确定采样位置是否在阴影中(通过比较阴影映射图深度与所涉及的采样点处的几何形状的深度以确定该几何形状是在阴影投射对象的前面还是后面(因此是否在阴影中))。
[0004]尽管对于允许在渲染包括单个“点”光源的图像时考虑阴影效果而言阴影映射图可以是有效的技术,但是在这些布置中需要首先准备阴影映射图然后存储并使用该阴影映射图意味着(例如)在需要考虑多个光源和/或面光源(即,不是单个点而是具有“面积”的光源)的情况下,使用阴影映射图会变得非常昂贵(例如,在存储器和带宽资源方面)。
[0005]渲染阴影效果的另一已知技术是使用“阴影体”。在该技术中,对于各个阴影投射对象,生成包围被所涉及的对象遮挡光的空间的“阴影体”。然后就采样位置测试阴影体,如果采样位置落在任何阴影体内,则认为该采样位置在阴影中。
[0006]然而,当(例如)考虑多个光源和/或面光源时,阴影体同样会变得非常昂贵。
[0007]因此申请人相信用于在图形处理系统中渲染阴影的技术仍存在改进空间。

【发明内容】

[0008]根据本发明的第一方面,提供了一种在渲染包括可投射阴影的光源的用于输出的帧时操作图形处理系统的方法,该方法包括以下步骤:
[0009]对于清染的所述帧的至少一个区域:
[0010]针对渲染的所述帧的所述区域确定可从针对所述帧待考虑的光源投射阴影的针对所述帧待处理的几何形状的集合;以及
[0011]针对渲染的所述帧的所述区域的采样位置的集合中的各个采样位置,利用所确定的几何形状的集合来确定光源可见性参数。
[0012]根据本发明的第二方面,提供了一种图形处理系统,该图形处理系统包括:
[0013]多个处理级,该多个处理级至少包括栅格化器和渲染器,所述栅格化器将输入图元栅格化以生成待处理的图形片段,各个图形片段具有与其关联的一个或更多个采样点,所述渲染器对由栅格化器生成的片段进行处理以生成输出片段数据;
[0014]并且其中,所述图形处理系统被配置为在渲染包括可投射阴影的光源的用于输出的帧时:
[0015]对于清染的所述帧的至少一个区域:
[0016]针对渲染的所述帧的所述区域确定可从针对所述帧待考虑的光源投射阴影的针对所述帧待处理的几何形状的集合;以及
[0017]针对渲染的所述帧的所述区域的采样位置的集合中的各个采样位置,利用所确定的几何形状的集合来确定光源可见性参数。
[0018]本发明涉及一种用于在渲染用于输出的帧时考虑阴影效果的方法和设备。在本发明中,确定在输出帧的给定区域中可投射阴影的几何形状的集合,然后针对所述帧区域的各个采样位置使用该几何形状的集合来确定光源可见性参数。如下面将进一步讨论的,然后可在渲染用于输出的帧时使用该光源可见性参数来模拟阴影效果。
[0019]如下面将进一步讨论的,本发明可提供一种处理阴影效果的技术,其可用于更复杂的“阴影”情形(例如,存在多个光源和/或面光源),而不会有(例如)在那些情形下使用阴影映射图或阴影体时所导致的费用的显著增加。实际上,至少在其优选实施方式中,本发明与传统阴影处理技术相比可显著减少处理复杂阴影情形所需的存储器和带宽(同时仍维持令人满意的渲染质量)。
[0020]本发明的方式的操作所考虑的帧区域可以是帧的任何期望且合适的区域。可以将帧作为整体来考虑(在这种情况下将存在包括整个帧的单个区域),但是在优选实施方式中,帧被分割成多个较小的区域,并且那些区域中的至少一个(优选地多个(并且可能每个))以本发明的方式来处理。在这种情况下,可针对帧所分割成的各个区域来执行本发明的方式的处理,或者可针对帧所分割成的一些而非所有区域执行本发明的方式的处理。在帧被作为多个帧区域处理的情况下,优选地逐区域地进行处理。
[0021]本发明中所考虑的帧区域可以是帧的任何合适且期望的区域。在优选实施方式中,各个帧区域表示所涉及的帧的不同部分(区域)。各个区域应该理想地表示帧的适当部分(面积),例如帧内的多个采样位置。合适的区域尺寸可以是(例如)帧中的8X8、16X16、32X32采样位置。帧区域优选地具有规则的尺寸和形状,优选地为矩形(包括正方形)形式。然而,这不是必要的,如果需要,也可使用其它布置。
[0022]如果各个帧为了其处理已经被再分割成区域,则在尤其优选的实施方式中,以本发明的方式考虑的帧的各个区域对应于帧为了处理目的而以其它方式分割成的区域。例如,图形处理系统是基于拼块的系统,并且将例如利用基于拼块的图形处理单元以基于拼块的方式执行图形处理等就是这种情况。
[0023]因此,在尤其优选的实施方式中,以本发明的方式考虑的帧的各个区域对应于帧的一个或更多个拼块。在优选实施方式中,所考虑的各个区域对应于生成所涉及的帧的图形处理器或系统操作并作为其输出生成的(单个)拼块(即,所述区域是帧为了处理(渲染)目的而被分割成的拼块),但是如果需要,其它布置(例如,各个区域包括多个拼块或者拼块的一部分)也将是可能的。
[0024]在本发明的这些布置中,帧所分割成的处理(渲染)拼块可以是任何期望且合适的尺寸或形状,但是优选地为上述形式(因此优选地为矩形(包括正方形),并且尺寸优选地为8 X 8、16 X 16或32 X 32采样位置)。
[0025]针对其确定光源可见性参数的渲染的帧的区域的采样位置的集合可以是任何期望且合适的采样位置的集合。
[0026]在优选实施方式中,针对其确定光源可见性参数的渲染的帧的区域的采样位置的集合包括在生成(渲染)帧区域的(例如,优选地最终)输出时将针对帧区域处理的采样位置的集合(因此,优选地针对渲染的帧的区域(例如,拼块)的各个(画面空间)采样位置确定光源可见性参数值)。
[0027]然而,也可按照与渲染的帧区域的输出不同(例如并且优选地,较低)的分辨率来确定光源可见性参数(在一个优选实施方式中就是这样做的)。在这种情况下,在生成渲染的帧区域的输出(例如,输出的渲染的拼块)时使用所确定的光源可见性参数时优选将其适当地提升(例如)至渲染的帧区域的输出的分辨率。如果这样做,则优选地按照将趋于保护图像中的边缘处的对比度的方式进行(例如)上采样(例如,利用双边滤波器)。在这种情况下,例如,可针对所涉及的帧区域(例如,拼块)的一些而非所有(画面空间)采样位置确定光源可见性参数。
[0028]如果输出帧被分割成多个区域(例如,处理拼块),则尽管可按照本发明的方式处理各个这样的区域(例如,拼块),但是在优选实施方式中,仅针对选择的区域,优选地仅针对满足特定(优选地选择的)(优选地预定义的)标准或条件的区域来进行处理。最优选地,仅针对所涉及的光源按照本发明的方式处理被确定可被该光源照亮的那些区域。因此,优选地依据帧区域剔除光源以标识可被该光源照亮的帧区域(以标识包含可受光源影响的几何形状的帧区域)。
[0029]因此,在优选实施方式中,渲染的帧被分割成多个不同的区域(并且将作为多个不同的区域来处理),首先确定帧所分割成的哪些区域可被所考虑的光源照亮,然后以本发明的方式处理那些确定的帧区域中的一些或所有(并且优选地每一个)。
[0030]可根据需要来确定可被所考虑的光源照亮的帧区域。优选地,确定(各个)区域是否在光源的影响体内(在该影响体之外的区域不按照本发明的方式来处理)。另外地或替代地(优选地另外地),本发明的方式的处理可丢弃几何形状全部背离光源的区域。
[0031]对于将以本发明的方式处理的帧区域,可按照任何合适的方式确定该区域的可从光源投射阴影的几何形状的集合。所考虑的几何形状优选地为图元的形式,优选地为三角形,但是这不是必要的,如果需要,可使用和考虑其它形式的几何形状。
[0032]在优选实施方式中,这通过确定(一起)包含帧区域中的所有可见几何形状以及所考虑的光源的包围视锥体来实现。这种视锥体可根据需要来构造(例如,利用确定此类视锥体的任何合适的已知技术),例如并且优选地,通过确定从帧区域的相机(视点)看时几何形状的最小深度值和最大深度值(然后,知道相机位置和取向将允许重新构造几何形状的包围体),然后利用所述值以及(例如)帧区域和所涉及的光源的面积来构造所涉及的光源的包围视锥体。这可在观察(相机)空间或世界空间中进行。
[0033]在一个优选实施方式中,针对帧区域生成包含帧区域中的所有可见几何形状以及所考虑的光源的单个包围视锥体。
[0034]在另一实施方式中,针对帧区域生成多个包围视锥体。在这种情况下,各个包围视锥体应该包含帧区域中的一些(但是并非必然(优选地并非)全部)几何形状和光源,所有包围视锥体一起包含帧区域中的所有可见几何形状。如果区域的几何形状存在大的深度和/或空间位置不连续,例如,如果几何形状可被划分成不相交的群,这些群本身是局部的,但是彼此相对远离,则使用多个包围视锥体可以是优选的。
[0035]然后,优选地通过针对各个几何形状对象(例如,图元,例如三角形)确定它是否与光源包围视锥体(或者如果使用多个包围视锥体,则至少一个包围视锥体)相交来确定可从光源投射阴影的几何形状的集合。然后,被确定为与光源包围视锥体(或其中任一个)相交的任何几何形状优选地被包括在所确定的帧区域中可投射阴影(影响投射的阴影)的几何形状的集合中,但是被确定为不与光源包围视锥体(或其中任一个)相交的任何几何形状优选地不被包括在所确定的可影响投射的阴影的几何形状的集合中。(这基于这样的事实:为了能够在所涉及的帧区域中投射阴影,几何形状对象(例如,图元)必须与包括光源和帧区域的几何形状的包围视锥体相交。)
[0036]可根据需要按照任何合适的方式来确定帧区域的任何几何形状是否与光源包围视锥体相交。例如,可简单地依据包围视锥体依次测试帧区域的各个对象(例如,图元(例如,三角形))。
[0037]然而,在优选实施方式中,使用更有效的测试机制。例如,可使用分层测试布置来使测试处理更有效(在优选实施方式中就是这样做的),在分层测试布置中几何形状对象和/或帧区域和/或光源包围视锥体的较大尺寸的表示首先被测试,然后被逐渐再分割并再次测试(如果需要的话)。
[0038]因此,在实施方式中,光源包围视锥体相交测试处理操作以重复地依据光源包围视锥体测试逐渐缩小至给定的(优选地选择的)(优选地预定的)最小几何形状对象(优选地为图元)的帧几何形状的表示,丢弃没有与光源包围视锥体(至少部分地)相交的任何几何形状表示,然后将被发现与光源包围视锥体至少部分地相交的任何几何形状包括在几何形状集合中。
[0039]在这些布置中,优选地针对帧区域光源包围视锥体有单独的层次,针对几何形状有单独的层次。
[0040]在几何形状的情况下,例如,可预先处理大的静态网格以确定其图元子集的包围体,然后可对其进行相交测试(包围体根据需要被逐渐再分割)。
[0041]对于帧区域,可首先测试较大的帧区域群的光源包围视锥体,然后(如果需要的话)测试各个帧区域光源包围视锥体。例如,可使用各个帧区域(例如,拼块)的光源包围视锥体来为多个帧区域的集合(例如,为2X2、4X4和/或8X8邻近帧区域(拼块))构造更大的光源包围视锥体。
[0042]在优选的此类布置中,首先依据较高层次(较大尺寸)的帧区域光源包围视锥体(例如并且优选地,2X2(和/或4X4、8X8等)邻近帧区域(拼块)的集合的光源包围视锥体)对较高层次(较大尺寸)的几何形状表示(例如,包围体)进行相交测试,然后依据适当的各个帧区域光源包围视锥体对没有被第一阶段剔除的任何较高层次的几何形状表示(例如,包围体)进行相交测试,最后,依据各个帧区域光源包围视锥体对仍未被剔除的较高层次的几何形状表示的各个几何形状对象(例如,图元)进行相交测试。
[0043]当然,其它布置也将是可能的。
[0044]从确定的几何形状的集合针对所考虑的帧区域中的采样位置确定的光源可见性参数可以是可用于在渲染的输出帧中提供期望的阴影效果的任何期望且合适的参数。
[0045]在一个尤其优选的实施方式中,它是可(将要)用于调
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1