图形处理的制作方法

文档序号:11584581阅读:350来源:国知局
图形处理的制造方法与工艺

本发明涉及图形处理,具体地涉及图形处理系统的操作,该图形处理系统执行最终收集处理以生成用于待渲染场景的最终收集照明数据。



背景技术:

在图形处理系统中,通常通过将各个表面子划分为称为“基元”的多个类似基本成分以允许更容易执行图形处理操作来渲染用于显示的表面。这些基元通常以简单的多边形(诸如三角形)的形式。各个基元通常由一组顶点限定并且被表示为一组顶点。用于基元的各个顶点通常与指示基元在该顶点处的特性的一组顶点属性数据(诸如位置、颜色、透明度、纹理坐标等)关联。例如,当栅格化和渲染基元以生成图形处理系统的期望输出时,可以使用该顶点属性数据。

经常期望的是应用照明效果,以加强含有待渲染表面的场景的气氛和/或现实(realism)。用于应用照明效果的一种常见方法使用“光子射线追踪”处理,以生成场景内的表面的辐射度数据(即,生成表示透过场景内的表面、从场景内的表面发射、被场景内的表面反射等的光的强度的数据)。光子射线追踪处理通常包括从用于照亮场景的各个光源朝向场景内的表面投射多个光子射线。计算被射线交叉的表面上的点处的辐射度,并且计算得的辐射度作为辐射度数据存储在场景的表面的“光照图”中。然后,当渲染场景的表面时,可以使用光照图。例如,光照图中的辐射度数据在渲染代表场景的表面的基元时可以用作照明纹理。

当执行光子射线追踪时,进一步“递归性”光子射线可以从场景内的表面朝向场景内的其他表面投射。这可以提供重复第一和可能随后的光反弹的间接照明效果。这可以改善照明效果的气氛和/或现实。然而,投射充足数量的递归光子射线可能在计算上是花费多的。另一方面,不投射递归光子射线或投射不充足数量的递归光子射线可能导致该场景中不期望的和/或不现实的阴暗或黑暗区域。

为了改进照明效果的气氛和/或现实,可以执行“最终收集”处理。最终收集处理通常包括远离场景内的表面的“最终收集点”朝向场景的其他表面和/或光源沿所有方向投射多个采样射线。采样射线在那些采样射线满足其他表面和/或光源的点处对用于其他表面和/或光源的辐射度数据进行采样。然后组合用于最终收集点的所采样辐射度数据,以生成用于场景的最终收集照明数据。然后,当渲染场景时,可以使用最终收集照明数据。例如,最终收集照明数据可以用于创建照明纹理,其然后在渲染代表场景的表面的基元时可以使用。

投射采样射线所沿的方向(即,远离生成照明数据的点)意味着无需投射递归射线,以当执行最终收集处理时创建间接照明效果。由此,最终收集处理可能导致加强场景被照亮的气氛和/或现实,而与等同的光子射线追踪处理相比在计算上花费不太多。

为了特别有效,最终收集处理通常仍然要求大量的采样射线,以从大量的最终收集点沿所有方向投射。这可能对图形处理系统有较大处理负担。当然可以减少采样射线和/或最终收集点的数量,以减少所需的处理量,但这将不可避免地减少生成的最终收集照明数据的量。

申请人因此相信还存在针对改进执行最终收集处理的图形处理系统的操作的范围。



技术实现要素:

根据本发明的一个方面,提供了一种操作图形处理系统的方法,该方法包括以下步骤:

执行最终收集处理,以生成用于待渲染场景的最终收集照明数据,所述最终收集处理包括:

从所述场景内的一个或更多个最终收集点投射采样射线,其中,从所述一个或更多个最终收集点投射的所述采样射线的分布基于针对所述场景而提供的方向辐照度(irradiance)数据;

使用从所述一个或更多个最终收集点投射的所述采样射线对针对所述场景而提供的辐射度(radiosity)数据进行采样;以及

从所采样的辐射度数据生成所述最终收集照明数据。

根据本发明的另一个方面,提供了一种图形处理系统,该图形处理系统包括:

处理电路,该处理电路被构造成执行最终收集处理,以生成用于待渲染场景的最终收集照明数据,所述处理电路被构造成:

从所述场景内的一个或更多个最终收集点投射采样射线,其中,从所述一个或更多个最终收集点投射的所述采样射线的分布基于针对所述场景而提供的方向辐照度数据;

使用从所述一个或更多个最终收集点投射的所述采样射线对针对所述场景而提供的辐射度数据进行采样;以及

从所采样的辐射度数据生成所述最终收集照明数据。

在本发明中,为待渲染场景提供的辐射度数据例如,以常规方式在最终收集处理期间被采样,以生成最终收集照明数据。然而,在本发明中,方向辐照度数据在最终收集处理期间用作用于决定和/或选择应当如何分布最终收集处理的采样射线的基础。本发明因此提供一种图形处理系统,其允许用于一个或更多个最终收集点的采样射线基于辐照的方向以所通知的方式分布。例如,如果或当方向辐照度数据指示那些具体方向可能提供相对较大量的辐照时,例如,较多的采样射线可以沿特定方向投射。另选地,如果或当方向辐照度数据指示那些其他具体方向可能提供相对较少量的辐照时,例如,较少或无采样射线可以朝向其他图特定方向投射。因此,通过基于辐照的方向来选择采样射线的更合适的分布,本发明可以提供更高质量的一组最终收集照明数据(例如,具有低方差)。而且,因为投射采样射线可能在计算上花费多,所以本发明提供了一种图形处理系统,其例如,通过使用更少、但更适当分布的采样射线,允许最终收集处理以计算上更有效的方式执行。

如上所述,本发明使用针对场景而提供的辐射度数据。该辐射度数据优选地包括关于场景内的一个或更多个表面区域(例如,场景内的一个或更多个表面所划分成的一个或更多个表面区域)提供的辐射度数据。用于场景内的各个表面区域的辐射度数据优选地代表该表面区域的辐射度,例如,透过该表面区域和/或从表面区域发射和/或被表面区域反射的光的强度。

辐射度数据可以是用于待渲染场景的任意期望和/或合适的辐射度数据。例如,辐射度数据可以包括光源辐射度数据。光源辐射度数据可以从用于照亮场景的一个或更多个光源发射的光的辐射强度得到,或可以是从用于照亮场景的一个或更多个光源发射的光的辐射强度。

辐射度数据可以还包括或者反而包括表面辐射度数据。表面辐射度数据可以由从用于照亮场景的一个或更多个光源朝向场景内的一个或更多个表面的光子射线追踪得到。另选地,表面辐射度数据可以经由从场景内的一个或更多个表面朝向用于照亮场景的一个或更多个光源的射线追踪得到。

表面辐射度数据还可以或者反而是通过考虑或计算被各个表面区域发射和/或透射和/或反射的光量(例如,由于被场景内的一个或更多个其他表面区域照亮)。所反射的光量可以基于考虑之中的表面区域的反射率信息和/或用于一个或更多个其他表面区域中的每一个的之前辐射度数据和/或相对于一个或更多个其他表面区域中的每一个的考虑之中的表面区域的表面交互数据来确定。如下面更详细地讨论的,表面交互数据优选地代表例如,基于那些表面区域的相对位置和/或定向的、用于考虑之中的表面区域之间的光交互的电位。

辐射度数据可以以任意期望和合适的方式来提供。例如,方法可以包括生成、检索(例如,从储存器)和/或接收用于场景的辐射度数据。类似地,图形处理系统可以包括处理电路,该处理电路被构造成生成、检索(例如,从储存器)和/或接收用于场景的辐射度数据。

辐射度数据可以以任意期望和合适的方式来生成。例如,生成用于场景的辐射度数据可以包括从用于场景的一个或更多个光源朝向场景内的一个或更多个表面投射一个或更多个光子射线。另选地,生成用于场景的辐射度数据可以包括从场景内的一个或更多个表面朝向用于场景内的一个或更多个光源投射一个或更多个射线。表面辐射度数据可以因此包括通过将一个或更多个直接射线投射到一个或更多个表面或远离一个或更多个表面而生成的直接辐射度数据。

如果期望,生成用于场景的辐射度数据可以还包括从表面中的一个或更多个(例如,一个或更多个反射面和/或一个或更多个漫反射面)朝向场景内的一个或更多个其他表面投射一个或更多个递归光子射线。表面辐射度数据可以因此还或反而包括通过将一个或更多个递归光子射线从一个或更多个(例如,反射和/或漫反射)表面投射到一个或更多个其他表面而生成的间接辐射度数据。

生成用于场景的辐射度数据可以然后包括得到被(直接和/或递归)射线交叉的一个或更多个表面区域或点处(一个或更多个表面上和/或一个或更多个其他表面上)的辐射度数据。

生成用于场景的辐射度数据还可以或者反而是通过考虑或计算被各个表面区域发射和/或透射和/或反射的光量(例如,由于被场景内的一个或更多个其他表面区域照亮)。如上面所讨论的,所反射的光量可以基于考虑之中的表面区域的反射率信息和/或用于一个或更多个其他表面区域中的每一个的之前辐射度数据和/或相对于一个或更多个其他表面区域中的每一个的考虑之中的表面区域的表面交互数据来确定。在这些实施方式中,用于场景的辐射度数据可以在多个过程中迭代生成,各个随后的过程使用之前过程中生成的之前辐射度数据。迭代可以为所选和预定数量的过程重复,或可以重复,直到已经达到大致稳定的辐射度状态为止。

用于场景的一个或更多个光源可以是任意期望和合适的源。例如,用于场景的一个或更多个光源可以从由以下组成的组选择:点光源、聚光灯源、方向光源和区域光源。

例如,在场景几何图形中,可以针对场景指定一个或更多个表面和/或一个或更多个光源的特性(例如,位置、定向、尺寸、材料、辐射颜色、辐射强度、反射率等)。

生成辐射度数据可以进一步包括采样(例如,点采样)用于场景的较高分辨率初始辐射度数据,并将所采样的辐射度数据应用于一个或更多个对应的较低分辨率表面区域。这可以允许例如针对场景而提供的辐射度数据(在最终收集处理中之后采样)的分辨率比可以初始提供的辐射度数据(可以用于除了最终收集处理之外的目的)的分辨率低。这可以减少处理最终收集处理中的辐射度数据所需的资源量(例如,功率、区域、带宽、存储空间等)。

针对场景而提供的辐射度数据可以以任意期望和合适的形式存储。例如,辐射度数据可以存储在用于场景的一个或更多个光照图(纹理)中。场景可以例如包括一个或更多个照明系统,并且可以是用于一个或更多个照明系统中的每一个的至少一个光照图。一个或更多个照明系统可以各包括场景内的一组光相互依赖表面和/或物体和/或几何图形。一个或更多个照明系统可以各包括单独的和/或局部可溶的照明系统,例如,关于该照明系统可以单独地和/或局部地执行最终收集处理。

提供辐射度数据的一个或更多个表面区域的分辨率(因此是光照图的分辨率)可以由一个或更多个质量参数指定。

辐射度数据可以从静态场景几何图形和/或动态场景几何图形生成。在一些实施方式中,辐射度数据从静态场景几何图形而不是动态场景几何图形生成(例如,离线)。这可以允许例如辐射度数据针对场景而提前生成,即,在要求场景运行的应用(例如,游戏)之前,而不是实时。在一些实施方式中,其他辐射度数据还可以从动态场景几何图形(当场景具有动态内容时)生成(例如,实时)。该其他辐射度数据可以以任意期望和合适的方式来提供。如下面将讨论的,该其他辐射度数据可以用于提供动态照明效果。这些实施方式可以减小图形处理系统上的实时处理负担,而未严重不利地影响应用于具有动态内容的场景的照明效果的质量。

如上面所讨论的,本发明使用针对场景而提供的方向辐照度数据。该方向辐照度数据优选地包括关于场景内的一个或更多个表面区域提供的方向辐照度数据(例如,场景内的一个或更多个表面所划分成的一个或更多个表面区域)。用于场景内的各个表面区域的方向辐照度数据优选地代表(例如粗略估计或估算)从用于该表面区域的多个不同贡献(contributing)方向中的每一个在该表面区域处的辐照度(即,所接收的光的强度)。

方向辐照度数据所提供的一个或更多个表面区域中的每一个可以包括一个或更多个最终收集点。例如,一个或更多个表面区域中的每一个可以包括最终收集点中的单一个。然而,在优选实施方式中,一个或更多个表面区域中的每一个包括多个最终收集点。这可以减小处理方向辐照度数据所需的资源,而不严重影响为多个最终收集点的最终收集照明数据的质量。

用于特定表面区域的方向辐照度数据可以相对于用于该特定表面区域的一组(预限定和/或离散)贡献方向限定。该组贡献方向可以从考虑之中的特定表面区域从立体角的方面被限定。该组贡献方向内的贡献方向可以分布(例如,均匀地)在考虑之中的表面区域的半球或球上。例如,在该组贡献方向中可以有n个贡献方向,其中,n等于或是至少2^n,其中,n是正整数。由此,n可以是2、4、8、16、32、64、128、256、512、1024、2048等。

方向辐照度数据可以以任意期望和合适的方式来提供。例如,方法可以包括生成、检索(例如,从储存器)和/或接收用于场景的方向辐照度数据。类似地,图形处理系统可以包括处理电路,该处理电路被构造成生成、检索(例如,从存储器)和/或接收用于场景的方向辐照度数据。

方向辐照度数据可以以任意期望和合适的方式来生成。例如,生成用于特定表面区域的方向辐照度数据可以包括从用于该特定表面区域的该组贡献方向中的方向中的各个一个方向考虑辐照作用。

方向辐照度数据可以至少部分地,从用于场景的表面交互数据生成。如上面所讨论的,表面交互数据优选地代表用于场景内的表面区域之间的光交互的电位。表面交互数据可以包括用于场景内的一个或更多个表面区域中的每一个的一个或更多个形状因数。用于特定表面区域的各个形状因数优选地代表场景内的特定表面区域与特定其他表面区域之间的光交互的电位。例如,用于特定表面区域的各个形状因数可以代表特定表面区域可以“看到”特定其他表面区域的量。由此,例如,在特定其他表面区域的更大量可以被特定表面区域看到的情况下,该特定表面区域相对于特定其他表面区域的形状因数可以更大。相反地,在更少量的特定其他表面区域的量可以被特定表面区域看到的情况下,该特定表面区域相对于特定其他表面区域的形状因数可以更小。

各个形状因数还可以或反而基于特定表面区域与特定其他表面区域之间的距离。例如,在特定表面区域与特定其他表面区域之间有更大距离的情况下,形状因数可以更小。相反,在特定表面区域与特定其他表面区域之间有更小距离的情况下,形状因数可以更大。

表面交互数据优选地从用于场景的场景几何图形得到,例如,一个或更多个表面的表面轮廓、表面定向、表面材料和/或表面位置等。表面交互数据可以从静态场景几何图形和/或动态场景几何图形生成。然而,表面交互数据优选地从静态场景几何图形而不是动态场景几何图形生成(例如,离线)。这可以允许例如表面交互数据针对场景而提前生成,即,在要求场景运行的应用(例如,游戏)之前,而不是实时。这可以减小图形处理系统上的实时处理负担,而未严重不利地影响应用于具有动态内容的场景的照明效果的质量。

方向辐照度数据可以还或反而至少部分地从用于场景的辐射度数据生成。例如,生成用于特定表面区域的方向辐照度可以包括组合(例如,相乘)用于特定表面区域关于特定其他表面区域的表面交互数据(例如,用于该特定表面区域的形状因数)和用于该特定其他表面区域的辐射度数据。该处理可以关于场景内的例如,从特定表面区域沿特定方向的多个其他表面区域中的每一个为特定表面区域执行。这些处理的结果然后可以组合(例如,加和),以提供用于该特定方向的方向辐照度值。该处理还可以从特定表面区域为各个方向执行,以生成用于特定表面区域的方向辐照度数据。该处理还可以针对场景内的一个或更多个表面区域中的每一个执行,以生成用于一个或更多个表面区域的方向辐照度数据。

再次,方向辐照度数据可以从静态辐射度数据和/或动态辐射度数据生成。然而,在优选实施方式中,方向辐照度数据从静态辐射度数据而不是动态辐射度数据生成(例如,离线)。这可以允许例如方向辐照度数据针对场景而提前生成,即,在要求场景运行的应用(例如,游戏)之前,而不是实时。这可以再次减小图形处理系统上的实时处理负担,而未严重不利地影响应用于具有动态内容的场景的照明效果的质量。

方向辐照度数据可以以任意期望和合适的形式存储。例如,方向辐照度数据可以作为用于场景的一个或更多个方向辐照度数据纹理存储。可以有例如用于场景的各个照明系统的至少一个方向辐照度数据纹理。如上面所讨论的,各个照明系统可以包括场景内的一组光相互依赖表面和/或物体和/或几何图形。一个或更多个照明系统可以各包括单独的和/或局部可溶的照明系统,例如,关于该照明系统可以单独地和/或局部地执行最终收集处理。

一个或更多个表面区域(为其提供方向辐照度数据)的分辨率(因此,是方向辐照度数据纹理的分辨率)可以由一个或更多个质量参数指定。如将根据上面理解的,方向辐照度数据纹理的分辨率可以与上述光照图的分辨率相同。

如上面所讨论的,本发明包括执行最终收集处理,最终收集处理包括从场景内的一个或更多个最终收集点投射采样射线。采样射线优选地远离一个或更多个表面区域(方向辐照度数据为该一个或更多个表面区域提供)和/或朝向一个或更多个表面区域(为该一个或更多个表面区域提供辐射度数据)投射。

如上面所指示的,一个或更多个表面区域(为该一个或更多个表面区域提供方向辐照度数据)优选地具有比最终收集点的分辨率更低的分辨率。例如,如上面所讨论的,一个或更多个表面区域(为其提供方向辐照度数据)优选地各包括多个最终收集点。类似地,一个或更多个表面区域(为其提供辐射度数据)优选地具有比最终收集点的分辨率更低的分辨率。一个或更多个表面区域(为其提供方向辐照度数据和/或辐射度数据)的较低分辨率允许处理方向辐照度数据和/或辐射度数据所需的资源量更少。然而,用于最终收集点的较高分辨率意味着最终收集照明数据的质量不太受不利影响和/或不受严重地不利影响。

如上面所讨论的,在本发明中,从最终收集点中的一个或更多个投射的采样射线的分布基于方向辐照度数据(例如,选择)。采样射线的分布可以基于方向辐照度数据以任意期望和合适的方式(例如,选择)。

在优选实施方式中,用于特定最终收集点的采样射线的分布通过参考方向辐照度数据纹理来选择,例如,以检索用于含有特定最终收集点的特定表面区域的相关方向辐照度数据。查阅处理可以包括阅读方向辐照度数据纹理中的一个或更多个方向辐照度数据值,和/或可以包括使用方向辐照度数据纹理中的方向辐照度数据的插值,例如,双线性插值。

在一些实施方式中,采样射线的分布被得到,通过从一组(预限定的和/或离散)采样方向选择例如一个或更多个采样方向(沿该方向基于方向辐照度数据投射采样射线)。例如,来自可能促进考虑之中的特定表面区域处的更多辐照的该组的一个或更多个采样方向可以从该组选择。相反,可以忽视可能促进考虑之中的特定表面区域处的更少辐照度的该组中的一个或更多个采样方向。

采样射线的分布还可以或反而通过基于方向辐照度数据施加权重而得到。例如,更重的权重可以朝向可能促进更多辐照的一个或更多个方向施加(因此可以投射更多的采样射线)。相反,更轻或零权重可以朝向一个或更多个采样方向施加(因此可以投射更少或零采样射线),该一个或更多个采样方向可能促进更少的辐照,或可能促进考虑之中的表面区域处的无辐照。权重可以由一个或更多个(例如,交叠)函数施加,诸如一个或更多个(例如,交叠)余弦瓣。一个或更多权重函数可以在一个或更多个(例如,所选和/或预限定和/或离散)采样方向上的大致中心。权重还可以或反而由用于(例如,在蒙特卡洛仿真中)生成采样射线的分布的函数而施加(例如,概率密度函数)。

提供采样射线的分布的采样方向可以包括用于限定和/或生成方向辐照度数据的上述贡献方向中的一个或更多个。

如将理解的,用于特定最终收集点的采样射线的分布可以大致非均匀(例如,当方向辐照度数据指示考虑之中的表面区域不太可能被均匀照亮时)或可以大致均匀(例如,当方向辐照度数据指示考虑之中的表面区域可能被均匀照亮时)-本发明的实施方式中重要的是用于特定最终收集点的采样射线的分布基于方向辐照度数据适当(例如,选择)。

如上面所讨论的,最终收集处理还包括使用从一个或更多个最终收集点投射的采样射线对用于场景的辐射度数据进行采样。例如,用于一个或更多个表面区域的辐射度数据可以使用交叉那些一个或更多个表面区域的采样射线来采样。采样可以包括查阅光照图,例如,以检索用于含有交叉点的表面区域的相关辐射度数据。查阅可以包括阅读光照图中的一个或更多个辐射度数据值,和/或可以包括使用光照图中的辐射度数据的插值,例如,双线性插值。

最终收集处理可以还包括从场景内的一个或更多个最终收集点中的一个或更多个投射进一步大致均匀(例如,大致均衡地)分布的采样射线,以及使用从那些最终收集点投射的进一步大致均匀(例如,大致均衡)分布的采样射线来采样用于场景的辐射度数据。这可以例如避免用沿特定方向投射的射线过度地偏置最终收集数据。

然后,可以例如使用(例如,多次)重要性采样组合最终收集处理中采样的辐射度数据(例如,用于特定最终收集点和/或用于特定表面区域的最终收集点),和/或校对该辐射度数据,以生成最终收集照明数据(例如,用于特定最终收集点和/或用于特定表面区域)。用于多个最终收集点和/或多个表面区域的最终收集照明数据可以被组合和/或校正,以生成用于场景的最终收集照明数据。最终收集处理中采样的辐射度数据因此生成用于场景的最终收集照明数据。

然后,用于场景的最终收集照明数据可以作为用于场景的输出照明数据而输出。然而,用于场景的最终收集照明数据可以首先与针对场景而提供的其他(例如,更高分辨率和/或动态)辐射度数据组合,以生成用于场景的输出照明数据。这可以进一步改善用于场景的多个输出照明数据和/或施加动态照明效果。

最终收集处理中采样的辐射度数据可以包括静态辐射度数据和/或动态辐射度数据。然而,在优选实施方式中,最终收集处理中采样的辐射度数据包括静态辐射度数据而不是动态辐射度数据。由此,可以(整体)离线执行最终收集处理。这可以例如减小图形处理系统上的实时处理负担。在这些实施方式中,如上面所讨论的,通过将用于场景的最终收集照明数据与针对场景而提供的其他(即,动态)辐射度数据组合,可以仍然施加用于一个或更多个表面区域的动态照明效果。

输出照明数据(例如,最终收集照明数据或组合的最终收集和辐射度照明数据)可以如期望地使用。例如,当渲染一个或更多个基元以生成输出数据值例如用于显示时,可以使用输出照明数据。由此,本发明扩展到用于渲染一个或更多个基元以生成输出数据值例如用于显示的方法或系统,其在渲染一个或更多个基元时使用输出照明数据。

例如,输出照明数据可以用于创建(例如,可以存储为)用于场景的一个或更多个照明纹理。然后,渲染处理可以包括当渲染一个或更多个基元时使用一个或更多个照明纹理。渲染基元时使用照明纹理可以包括查阅照明纹理,例如,以检索用于采样基元的采样位置的相关照明数据。查阅处理可以包括阅读照明纹理中的一个或更多个照明数据值,和/或可以包括使用照明纹理中的照明数据的插值,例如,双线性插值。然后,相关照明数据可以用于修改(变亮、变暗和/或变浅)用于采样基元的采样位置的显示(例如,颜色)值。

另选地,渲染处理可以包括使用输出照明数据修改(变亮、变暗和/或变浅)用于一个或更多个基元的顶点属性(例如,颜色)数据。

和上面讨论的处理阶段相同,图形处理系统可以含有图形处理系统可含有的任意合适和期望的图形处理阶段(例如,图形处理流水线的阶段),诸如顶点着色器、栅格化阶段、渲染阶段等。

如上面所讨论的,图形处理流水线的顶点着色器可以例如使用输出照明数据,生成和/或修改(例如,变亮、变暗和/或变浅)用于一个或更多个基元的顶点数据(例如,颜色)数据。

图形处理流水线的栅格化阶段可以生成待渲染图形片段,例如以生成用于所期望的图形输出的采样点的渲染后的图形数据,诸如待显示帧。由栅格化阶段生成的各个图形片段可以与图形输出的一组采样点关联,并且可以用于生成与片段关联的该组采样点的一个或更多个采样点的渲染后的图形数据。栅格化阶段可以被构造成以任意期望和合适的方式生成用于渲染的片段。例如,栅格化阶段可以接收待栅格化的一个或更多个基元,根据该组采样点位置测试那些一个或更多个基元,并且因此生成代表基元的片段。

渲染阶段可以处理由栅格化阶段生成的片段,以生成用于片段代表的(覆盖的)采样点的渲染后的片段数据。渲染处理可以包括例如片段着色、混合、纹理映射等中的一种或更多种。纹理映射处理可以包括例如,以上述方式使用一个或更多个照明纹理。渲染阶段可以以可编程片段着色器的形式。

图形处理流水线可以还含有图形处理流水线可含有的任意其他的合适和期望的处理阶段,诸如早期深度(或早期深度和模具)测试器、晚期深度(或深度和模具)测试器、混合器等。

如由本领域技术人员理解的,本发明的图形处理系统可以是包括例如主处理机的整体图形处理系统中的一部分。主处理机可以例如执行要求由图形处理系统进行的图形处理的应用。主处理机可以向图形处理单元发送适当的命令和数据,以控制其执行图形处理操作并且产生应用在主处理机上执行所需要的图形处理输出。为了促进这一点,主处理机可以执行图形处理系统的驱动程序,和/或可以执行用于编译要由图形处理系统的可编程执行单元执行的着色器程序的编译器。

图形处理系统可以还包括一个或更多个存储器和/或存储装置,和/或与一个或更多个存储器和/或存储装置通信,该一个或更多个存储器和/或存储装置存储这里描述的数据,和/或由图形处理系统生成的输出数据,和/或用于执行这里描述的处理的软件。图形处理系统可以还基于由图形处理系统生成的数据与主微处理器通信,和/或与用于显示图像的显示器通信。

本发明可以用于图形处理系统可以用于生成的、所有形式的输出,诸如用于显示的帧、渲染-至-纹理输出等。来自图形处理的输出(例如,片段着色后的)数据值优选地被输出到外部(例如,主)存储器,用于储存和使用,诸如到用于显示器的帧缓冲器。

本发明可应用于任意合适形式或构造的图形处理系统,包括基于块的图形处理系统。

在特别优选实施方式中,本发明的各种功能在单个图形处理平台上执行,图形处理平台生成和输出输出照明数据和/或已渲染数据。

本发明可以在任意适当的系统中实现,诸如基于适当构造的微处理器的系统。在优选实施方式中,本发明实现在计算机和/或基于微处理器的系统中。

本发明的各种功能可以以任意期望且合适的方式执行。例如,本发明的功能可以实现在硬件或软件中(根据期望)。由此,例如,除非以其他方式指示,本发明的各种功能元件、阶段和“装置”可以包括合适的处理器、控制器、功能单元、电路、处理逻辑、微处理器结构等,它们可操作以进行各种功能等,诸如适当专用硬件元件和/或可以被编程以以期望方式操作的的可编程硬件元件。

这里还应当注意的是,如本领域技术人员将理解的,本发明的各种功能等可以在给定处理器上重复和/或并行执行。由此,例如,处理电路可以包括并行操作的多个分开的功能单元。等同地,各种处理阶段可以共享处理电路等(如果期望)。

受制于必须执行上面讨论的特定功能的任意硬件,图形处理系统可以以其他方式包括图形处理系统包括的所有通常功能单元等中的任意一个或更多个或所有。

各种图形处理阶段可以因此如期望地并且以任意合适方式实现,并且可以分别执行任意期望和合适的功能。类似地,各种数据(辐射度数据、方向辐照度数据、最终收集照明数据、输出照明数据、顶点属性数据等)可以以任意合适和期望的方式被限定和存储。

如本领域技术人员将理解的,本发明的所有描述的方面和实施方式可以(且优选地确实)酌情包括这里描述的所有优选和可选特征中的任意一个或更多个。

根据本发明的方法至少部分地可以使用软件(例如,计算机程序)实现。由此将看到当从其他方面看时,本发明提供计算机软件,该计算机软件当安装在数据处理装置上时专门适用于执行这里描述的方法;计算机程序元件,该计算机程序元件包括计算机软件代码部,用于在程序元件在数据处理装置上运行时执行这里描述的方法;和计算机程序,该计算机程序包括代码装置,该代码装置当程序在数据处理系统上运行时适用于执行这里描述的方法的所有步骤。数据处理器可以是微处理器系统、可编程fpga(场可编程门阵列)等。

本发明还扩展到计算机软件载体,该计算机软件载体包括这种软件,这种软件当用于操作图形处理器、渲染器货包括数据处理装置的微处理器系统时与所述数据处理装置结合使所述处理器、渲染器系统执行本发明的方法的步骤。这种计算机软件载体可以是物理存储介质,诸如rom芯片、cdrom、ram、闪存或盘,或可以是信号,诸如电线上的电信号、光信号或无线电信号,诸如卫星等。

还将进一步理解的是,不是本发明的方法的所有步骤都需要由计算机软件执行,并且由此根据更宽方面,本发明提供了计算机软件并且这种软件安装在计算机软件载体上,用于执行这里阐述的方法的步骤中的至少一个。

本发明可以因此适当地具体实施为用于与计算机系统一起使用的计算机程序产品。这种实现可以包括一系列计算机可读指令,该一系列计算机可读指令固定在有形、永久介质上,诸如计算机可读介质,例如,磁盘、cd-rom、rom、ram、闪存或硬盘。还应当包括一系列计算机可读指令,在有形介质(包括但不限于,光学或模拟通信线)上,或无形地使用无线技术(包括但不限于,微波、红外或其他传输技术),这些指令经由调制解调器或其他接口装置可发送到计算机系统,。该系列计算机可读指令具体实施这里之前描述的功能的所有或一部分。

本领域技术人员将理解这种计算机可读指令可以以多种编程语言来写,用于与许多计算机架构或操作系统一起使用。进一步地,这种指令可以使用任意存储技术来存储(存储技术现在或将来包括但不限于半导体、磁或光),或使用任意通信技术来发送(通信技术现在或将来包括但不限于光学、红外或微波)。预期的是,这种计算机程序产品可以作为可去除介质来分发,附有已打印的文档或电子文档,例如,现成软件;例如在系统rom或固定盘上预加载有计算机系统;或在网络(例如,因特网或万维网)上从服务器或电子公告栏分发。

附图说明

本发明的实施方式现在将仅以示例的方式并且参照附图描述,附图中:

图1例示了根据本发明的实施方式的执行最终收集处理所关于的场景;

图2示意性地示出了根据本发明的实施方式的图形处理系统的照明流水线;

图3图形地例示了根据本发明的实施方式的最终收集处理中投射采样射线的方法;以及

图4示意性地示出了根据本发明的实施方式的图形处理系统的渲染流水线和存储器。

类似的附图标记在附图中适当的情况下用于类似的部件。

具体实施方式

如上所述,本发明涉及执行用于待渲染场景的最终收集处理的图形处理系统。现在将参照非常简单的场景描述本发明的实施方式。然而,将理解本发明可以关于复杂地多的场景执行。

图1示出了执行最终收集处理所关于的场景10。场景10包括两个壁面11、12和地板面13。为了执行最终收集处理,三个面11、12、13中的每一个被划分为多个表面区域,各个表面区域被进一步划分为多个最终收集点,从这些点投射采样射线。为了简化,用于三个表面11、12、13中的每一个的仅一个表面区域14、15、16示出在图1中。类似地,为了清楚,仅示出了地板面区域16的最终收集点并且图1中仅例示了一个最终收集点17。

最终收集处理将特别参照地板面区域16及其与壁面区域14、15的光交互来描述。然而,实际上,还考虑到与场景10内的其他表面区域的光交互,执行用于地板面区域16的最终收集处理。而且,实际上,最终收集处理针对场景10内的各个表面区域来执行。

在该实施方式中,有用于场景10的单个聚光灯源18,虽然在其他实施方式中,可以有多个变化的光源。

现在将参照图2更详细地描述用于场景10的最终收集处理,图2示出了图形处理系统的照明流水线20。

照明流水线20包括一序列不同阶段,其各执行不同操作,以生成用于场景10的照明数据。图2示出了与本发明的实施方式有关的图形处理系统的主要元件。如本领域技术人员将理解的,可以有图2未例示的图形处理流水线的其他元件。这里还应当注意的是图2仅是示意性的,并且例如,实际上,所示的元件可以共享重要的硬件电路,即使它们在图2中被示意性地示出为分开的元件。

图形处理系统的照明流水线20首先包括预计算处理阶段23,其将质量参数21和场景几何图形22看做输入并且使用那些输入执行处理。在本实施方式中,由预计算处理阶段23执行的处理使用静态场景几何图形22离线执行。这可以减小图形处理系统上的运行处理负担。

质量参数21指定表面区域14、15、16的分辨率,关于其将提供用于场景10的辐射度数据和方向辐照度数据。场景几何图形22描述了场景10内的表面11、12和13和光源18的特性。

预计算处理阶段23获得质量参数21和场景几何图形22并且计算用于场景10的表面交互数据24。由预计算处理阶段23计算得的表面交互数据24代表场景10的表面11、12、13之间的光交互的电位。在该实施方式中,表面交互数据24包括用于表面区域14、15、16中的每一个的一个或更多个形状因数,用于特定表面区域(例如,地板表面区域16)的各个形状因数代表表面区域可以“看到”场景10内的各个其他表面区域(例如,壁面区域14、壁面区域15等)的程度。形状因数还基于考虑之中的表面区域14、15、16之间的距离。在该实施方式中,给出相对定向和位置,关于壁面区域15的用于地板表面区域16的形状因数大于关于壁面区域14的用于地板表面区域16的形状因数。

图形处理系统的照明流水线20首先包括运行时间(runtime)阶段25,其将表面交互24和场景几何图形22作为输入并且使用那些输入执行处理。在本实施方式中,由运行时间阶段25执行的以下处理使用静态场景几何图形22离线执行。再次,这可以减小图形处理系统上的运行时间处理负担。

运行时间阶段25首先使用静态场景几何图形22生成用于场景10的静态辐射度数据。用于场景10的辐射度数据代表从场景10的表面11、12、13发出的光的强度(作为被光源18照亮的结果)。在该实施方式中,辐射度数据在若干过程中迭代生成,基于表面区域14、15、16的形状因数和反射率,第一过程考虑从光源18转移到表面区域14、15、16的光量并且各个随后过程考虑场景内的表面区域14、15、16之间转移的光量。运行时间阶段25然后在用于场景10的光照图中存储用于表面区域14、15、16的辐射度数据。

为了简化,在本实施方式中,仅生成用于场景10的一个这种光照图。然而,实际上,场景10将通常被划分为多个独立照明系统,光照图为各个系统生成。

运行时间阶段25还生成场景内的各个表面区域14、15、16的方向辐照度数据。在本实施方式中,用于特定表面区域(例如,地板表面区域16)的方向辐照度数据接近于从该表面区域处的球体上均衡分布的256个不同的方向中的各个方向在表面区域处接收的光的强度。

在该实施方式中,从方向中的一个生成用于特定表面区域(例如,地板表面区域16)的方向辐照度数据包括使关于沿该方向的特定其他表面区域(例如,壁面区域14)的用于该表面区域的形式因数乘以该特定其他表面区域的辐射度。该乘法的结果因此接近于从该特定其他表面区域(例如,壁面区域14)从该方向在特定表面区域(例如,地板表面区域16)处的辐照度(即,可以接收的光量)。然后,该处理为用于沿该方向的各个其他表面区域的各个对应的形状因数和辐射度重复。

类似地,从方向中的另一个生成用于特定表面区域(例如,地板表面区域16)的方向辐照度数据包括使关于沿另一个方向的特定其他表面区域(例如,壁面区域14)的用于该表面区域的形式因数乘以该特定其他表面区域的辐射度。然后,该处理为用于沿该另一个方向的各个其他表面区域的各个对应的形状因数和辐射度重复。

如将理解的,以上处理为特定表面区域(例如,地板表面区域16)沿256个促进方向中的每一个为各个对应的形式因数和辐射度来执行,以生成用于该特定表面区域的方向辐照度数据。类似处理还针对场景10内的各个表面区域执行,以生成用于场景10的方向辐照度数据。用于场景10的方向辐照度数据然后存储在用于场景10的方向辐照度数据纹理中。

再次,为了简化,在本实施方式中,仅生成用于场景10的一个方向辐照度数据纹理。然而,实际上,场景10将通常被划分为多个独立照明系统,方向辐照度数据纹理为各个系统生成。

用于地板表面区域16的方向辐照度数据31图形地例示在图3中,图3示出了通过场景10的截面30。为了简化,在图3中,用于256个促进方向中的仅三个方向的方向辐照度数据31使用箭头图形地示出。方向辐照度数据31的更长箭头图形地代表促进方向,从该促进方向可能有更大的辐照并且方向辐照度数据31的更短箭头图形地代表促进方向,从该促进方向可能有更少的辐照。如可以从图3看到的,用于表面区域16的方向辐照度数据31指示从表面区域15的一般方向可能有更大的辐照,并且从其他方向(包括从表面区域14的通常方向)可能有更少的辐照。

在一些实施方式中,期望的输出照明数据可以含有静态和动态内容。在这些实施方式中,运行时间阶段25还可以实时生成动态辐射度数据,从而提供用于渲染场景10的实时照明数据26。

图形处理系统的照明流水线20还包括烘焙阶段29,其使用光照图中的静态辐射度数据和方向辐照度数据纹理中的方向辐照度数据,并且使用该数据执行处理。烘焙阶段29可以还接收并且使用与一个或更多个光源的特性有关的、进一步更复杂的照明信息27。在本实施方式中,由烘焙阶段29执行的以下处理离线执行。再次,这减小图形处理系统上的运行时间处理负担。

烘焙阶段29基于方向辐照度数据31从多个最终收集点投射采样射线。例如,对于地板面区域16的最终收集点17,这涉及查阅方向辐照度数据纹理,以检索用于地板表面区域16的方向辐照度数据31。这里应当注意的是,用于表面区域16的相同方向辐照度数据31用作用于从该表面区域16内的各个最终收集点分布采样射线的基础。这允许以表面区域的较低分辨率生成并存储方向辐照度数据31,同时以最终收集点的较高分辨率执行采样射线的投射。已经发现其减少了处理方向辐照度数据所需的资源,而不严重影响最终收集照明数据的质量。

图3还图形地例示了用于表面区域16的最终收集点17的采样射线的分布32。如图3所示,基于方向辐照度数据,为沿表面区域15的一般方向投射而选择更多的采样射线31,为沿其他所选方向投射而选择更少的采样射线,并且为沿其他方向(包括沿表面区域14的一般方向)投射而不选择采样射线。

烘焙阶段29然后使用为最终收集点17投射的采样射线对用于场景10的辐射度数据进行采样。这涉及查阅用于采样射线与场景10的表面(例如,壁面12)交叉的表面区域(例如,壁面区域15)的辐射度数据的场景10的光照图。这里再次应当注意的是,被采样射线采样的光照图中的辐射度数据的分辨率比最终收集点的分辨率更低。这再次减少执行最终收集处理时所需的资源,而不严重影响最终收集照明数据的质量。

然后,使用多次重要性采样,组合用于各个最终收集点(例如,最终收集点17)的被采样的辐射度数据,以生成用于该最终收集点的最终收集照明数据。如将理解的,关于用于该表面区域的各个最终收集点执行基于用于表面区域(例如,地板表面区域16)的方向辐照度数据(例如,方向辐照度数据31)投射采样射线、采样辐射度数据、以及组合所采样的辐射度数据的处理,以生成用于该表面区域的最终收集照明数据。如将理解的,关于用于场景的各个表面区域的各个最终收集点执行基于用于场景10的方向辐照度数据生成最终收集照明数据的处理,以生成用于场景10的最终收集照明数据。

用于场景10的最终收集照明数据可以然后从烘焙阶段29输出,作为烘焙后的照明数据28。

如上面所讨论的,在一些实施方式中,期望的输出照明数据可以含有静态和动态内容。在这些实施方式中,烘焙后的照明数据28可以与实时照明数据26组合,以生成用于渲染场景10的输出照明数据。然后,在其他实施方式中,期望的输出照明数据可以仅含有静态内容。在这些实施方式中,用于场景10的输出照明数据可以是烘焙后的照明数据28。在各个情况下,输出照明数据存储为照明纹理,并且可以然后用于渲染场景10。

现在将参照图4更详细地描述渲染处理,图4例示了图形处理系统的渲染流水线40和存储器45。

流水线40包括一系列不同阶段,各对基元执行不同操作,基元组成要显示以为例如用于显示器的渲染结果制备它们的物体。图4示出了与本发明的实施方式有关的图形处理系统的其他元件。如本领域技术人员将理解的,可以存在图4中未例示的图形处理系统的其他元件。这里还应当注意的是,图4仅是示意性的,并且例如,实际上,所示的功能单元和渲染流水线阶段可以共享重要的硬件电路,即使它们在图4中被示意性地示出为分开的阶段。

首先,在流水线40中,生成顶点着色器41,其顶点着色用于输出的顶点。顶点着色器41获得为要生成的输出限定的、与顶点关联的输入数据值,并且处理那些数据值,以生成一组对应的顶点着色后的属性数据值,用于由渲染流水线40的后续阶段使用。

栅格化器42然后操作,以将组成渲染输出的基元栅格化为用于处理的各个图形片段。为了这样做,栅格化器42接收用于渲染的图形基元,栅格化基元为采样点并且生成代表用于渲染基元的合适采样位置的图形片段。由栅格化器42生成的片段然后向前发送到用于处理的流水线的剩余部分。

由栅格化器42生成的图形片段被传递到片段着色器43,用于着色。作为着色处理的一部分,片段着色器43确定用于图形片段的采样位置的照明纹理坐标,使用那些纹理坐标执行查阅照明纹理,并且使用查阅的照明纹理值,以修改显示器,例如,颜色,用于那些采样位置的值。然后,片段着色器43的输出是一组适当照亮的(例如颜色)用于采样代表考虑之中的输出的各个表面区域的位置的值。

来自片段着色器43的着色后的采样位置然后被像素处理器44处理,以后处理(例如,下采样)渲染后的采样位置,以提供将实际输出的像素的像素数据。然后,像素数据可以输出例如到例如用于显示器的主存储器45(例如,帧缓冲器)。

用于渲染流水线40的其他排布当然是可能的。例如,不是片段着色器43应用照明效果,而是顶点着色器41可以修改其输入数据,以考虑待渲染图像中的照明的效果。这可以例如包括顶点着色器41,其使用上述输出照明数据来修改其输入数据。

可以从上面看出,在至少其优选实施方式中,本发明提供了可以以更有效的方式生成最终收集照明数据的一种图形处理系统。在至少优选实施方式中,这通过使从最终收集点投射的采样射线的分布基于针对场景而提供的方向辐照度数据来实现。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1