CN106504310A - 图形处理系统 - Google Patents
图形处理系统 Download PDFInfo
- Publication number
- CN106504310A CN106504310A CN201610801596.4A CN201610801596A CN106504310A CN 106504310 A CN106504310 A CN 106504310A CN 201610801596 A CN201610801596 A CN 201610801596A CN 106504310 A CN106504310 A CN 106504310A
- Authority
- CN
- China
- Prior art keywords
- sampled point
- vector
- sampled
- texture
- determined
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- 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/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
-
- 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
-
- 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
- G06T15/60—Shadow generation
-
- 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
- G06T15/80—Shading
-
- 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/12—Bounding box
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
图形处理系统。在图形处理系统中定义代表要渲染场景体积包围体(20)和代表包围体表面透明度的立方体纹理(30)。然后当渲染场景以输出时通过以下确定代表如从场景的视点位置(24)看到的第一采样点(25)的颜色:对于沿着从第一采样点(25)至视点位置(24)的矢量(26)的多个第二采样点(27)的每个,确定指示落到第二采样点(27)的光量的透明度参数,然后使用多个第二采样点(27)中的每个的所确定透明度参数值来确定颜色。各透明度参数通过以下来确定:确定对代表场景中包围体(20)表面透明度的图形纹理(30)采样的矢量(29),然后使用所确定矢量(29)来对图形纹理(30)采样以确定第二采样点(27)的光源(22)的透明度参数值。
Description
技术领域
本发明涉及图形处理系统,具体地涉及用于在渲染图像以显示时考虑光轴的效应的方法和设备。
背景技术
当在图形处理系统中渲染图像(诸如输出帧)以显示时,经常期望能够考虑所渲染场景中的光轴的效应。光轴例如可能发生在光穿过光散射介质时。已开发各种渲染技术来尝试这样做。
一个这种技术涉及将代表光轴的几何对象置于场景中。对象被渲染为透明对象,并且与场景的剩余部分混合,以给出光轴的外观。然而,该技术不总是给出逼真的结果,例如在用于场景的视点(照相机)位置靠近光轴或在光轴内部时。另外,光轴可能似乎具有“硬”边缘。此外,每当光位置变化时必须重建几何对象。
用于将光轴的效应考虑在内的其他技术使用所谓的“阴影图”或光空间采样平面。通常在这些技术中,(例如,在一个或更多个第一渲染过程中)导出指示如从用于场景的视点(照相机)位置看到的光轴的一个或更多个纹理,然后在渲染输出帧时使用该纹理来修改场景,使得光轴被显示。
虽然这些技术的使用对于允许在渲染图像时以逼真方式考虑光轴的效应可以是有效的,但对在这些结构中首先准备然后存储并使用一个或更多个纹理的需要意味着它们可能变得非常昂贵(例如,鉴于存储和带宽资源),特别是在存在需要考虑的多个光源时。还可能需要在每当视点(照相机)位置的光变化(这可能每帧发生)时重新生成纹理。这些技术例如在视点(照相机)位置移动时还可能遭受像素不稳定性/闪烁。
发明内容
因此,申请人相信还存在针对用于在图形处理系统中渲染光轴的改进技术的范围。
根据本发明的第一方面,提供了一种在渲染场景以输出时操作图形处理系统的方法,其中,定义代表要渲染的场景的全部或部分的体积的包围体;所述方法包括以下步骤:
对于所述包围体上或包围体内的至少一个第一采样点,通过以下确定用于在从用于所述场景的视点位置看时代表该采样点的颜色:
对于沿着从所述第一采样点至用于所述场景的所述视点位置的矢量的多个第二采样点中的每个第二采样点,通过以下确定指示从在所述包围体外部的光源落到所述第二采样点上的光的量的透明度参数:
确定要用于代表所述场景中的所述包围体的表面的透明度的图形纹理进行采样的矢量;并且
使用所确定的矢量来对所述图形纹理进行采样,以确定用于所述第二采样点的所述光源的透明度参数值;并且
使用用于所述多个第二采样点中的每个第二采样点的所确定的透明度参数值来确定用于在从用于所述场景的所述视点位置看时代表所述第一采样点的所述颜色。
根据本发明的第二方面,提供了一种图形处理单元,该图形处理单元包括:
处理电路,该处理电路被构造成:对于代表要渲染的场景的全部或部分的体积的包围体上或包围体内的至少一个第一采样点,通过以下确定用于在从用于所述场景的视点位置看时代表该采样点的颜色:
对于沿着从所述第一采样点至用于所述场景的所述视点位置的矢量的多个第二采样点中的每个第二采样点,通过以下确定指示从在所述包围体外部的光源落在所述第二采样点上的光的量的透明度参数:
确定要用于对代表所述场景中的所述包围体的表面的透明度的图形纹理进行采样的矢量;并且
使用所确定的矢量来对所述图形纹理进行采样,以确定用于所述第二采样点的所述光源的透明度参数值;并且
使用所述多个第二采样点中的每个第二采样点的所确定的透明度参数值来确定用于在从用于所述场景的所述视点位置看时代表所述第一采样点的所述颜色。
本发明致力于用于在渲染场景以输出时(特别是在存在场景内所定义的包围体外部的光源的情况下)将光轴的效应考虑在内的方法和设备。为了确定由于光源产生的光轴在包围体中的效应,对于用于场景的至少一个“第一”(画面空间)采样点,对于沿着从第一采样点至用于场景的视点(照相机)位置的矢量的多个“第二”(中间)采样点中的每个分别确定多个透明度参数。该透明度参数各指示从光源落到讨论中的第二采样点上的光的量,并且使用代表包围体的表面的透明度的纹理来确定。多个透明度参数用于确定用于在从用于场景的视点位置看时(即,在透过光轴看时)代表第一采样点的颜色。
如下面将进一步讨论的,申请人已经意识到,该结构可以用于以实际有效的方式逼真地模拟由于包围体外部的光源产生的光轴的效应。具体地,因为本发明的技术可以(并且优选地为)用于确定对用于在从用于场景的视点位置看时代表第一采样点的颜色的体积光轴“贡献”,所以该技术例如在用于场景的视点(照相机)位置靠近光轴或光轴内部时不遭受与传统几何方法关联的问题(相反,本发明的技术在这些情况下可以提供逼真的结果)。
此外,申请人已经意识到,本发明的结构可以用于使用代表包围体的表面的透明度的单个“静态”图形纹理来模拟由于光源产生的光轴的效应。这然后意味着例如计时在视点(照相机)位置和/或光的位置变化时,同一图形纹理也可以用于多个帧。同样地,该同一纹理可以用于接近由于在包围体外部的全部光源产生的光轴(而不是需要每光源存在例如单独的纹理或几何对象)。
因为本发明使用“静态”纹理来模拟光轴效应,而不是使用“动态”纹理,所以这还意味着本发明的纹理可以以更高的质量来生成,并且使用更精密的效应。纹理例如可以“离线”生成并经历非实时优化,然后提供给由图形处理系统使用。因为单个“静态”纹理在本发明中可以用于给定的包围体,所以还可以提供压缩形式的纹理(如果期望),从而提供带宽和存储节省。
因此,本发明提供用于处理光轴存在的情况的存储和带宽有效技术,同时还提供提高的渲染质量。
本发明与光轴由于包围体外部的光源而存在于包围体内的情况有关系。包围体可以代表被渲染的整个场景(并且在一个优选实施方式中是这种情况),但还将可以使包围体仅代表场景的一部分。包围体例如可以代表含有光散射介质(诸如灰尘或雾)的房间。
包围体可以以任意期望且合适的方式来定义。包围体优选地在自然空间中定义。包围体可以采取任意合适且期望的形式,但优选地为包围盒(bounding box)(立方体)的形式。用于包围体的其他结构当然会是可以的。
代表包围体的表面的透明度的图形纹理可以采取任意合适且期望的形式。在特别优选地实施方式中,该图形纹理为用于环境映射的纹理的形式,诸如立方体纹理(立方体图(cubemap))或球体纹理(球体图)。
由此,在优选实施方式中,代表包围体的表面的透明度的纹理包括纹理,该纹理对于围绕该纹理包含的体积内的基准位置的表面上的点指示并存储用于各点的透明度值。纹理优选地基于从用于纹理的(定义纹理所关于的)基准位置开始的矢量(方向)来采样。
换言之,纹理优选地存储用于从纹理代表的体积内的基准位置(点)开始的各方向的透明度值,并且通过确定从纹理内的基准位置(点)至纹理代表的表面上的位置的方向来采样。
定义(并采样)纹理所关于的纹理内的基准位置(点)优选地处于纹理包含的体积的中心,但其他结构当然会是可以的(如果期望)。
代表包围体的表面的透明度的纹理优选地被配置为对应于用于场景的包围体。由此,例如,在包围体为立方体的形式的情况下,纹理优选地为立方体纹理(立方体图)的形式。在优选实施方式中,纹理为立方体纹理(立方体图)。
对应地,纹理优选地具有将适于要一起使用的包围体的预期尺寸的分辨率(虽然这不是必要的,并且例如可以对纹理进行缩放以使用(如果期望))。
纹理应且优选地确实,存储指示场景中的包围体的表面从纹理的定义所关于的体积内的基准点开始的相关方向上的透明度的透明度值(阿尔法值)。由此,例如,在包围体表面在给定方向上不透明时,用于从基准点开始的该方向上的纹理透明度(阿尔法)值应被设置为指示表面在该方向上不透明的值(例如,“1”)。对应地,对于从表面完全透明的基准点开始的那些方向,指示完全透明度的透明度(阿尔法)值(例如,“0”)应存储在纹理中。对于半透明表面区域,可以使用指示半透明度的透明度(阿尔法)值(即,在“0”至“1”之间)。这样,纹理可以用于代表从完全透明到完全不透明的透明度的全范围。(纹理中的阿尔法值将如本领域技术人员将理解的本质上代表来自光源的多少光由讨论中的点(从方向开始的)处的表面来传输(光强度))。
纹理可以单独存储透明度值(即,作为单个通道纹理,仅存储单个透明度(阿尔法)通道)。另选地,纹理还可以存储其他数据通道(诸如颜色通道)(例如,作为RGBα纹理(并且在优选实施方式中,进行这一点))。在这种情况下,不透明度(阿尔法)数据通道可以用于存储要用于不同目的的环境纹理。例如,RGBα纹理可以用于将要以本发明的方式使用的纹理存储于阿尔法通道中,并且还将用于其他目的的第二纹理存储与RGB颜色通道中。然后,这将允许同一(例如,立方体)纹理用于多个目的。
还将或相反可以生成并使用用于这些目的的另一个(单独)颜色(例如,RGB)纹理。
在纹理还(或其他纹理)包括颜色通道的优选实施方式中,这些颜色通道还用于本发明的方法中,例如作为要在计算光轴效应时使用的另外颜色参数。然后,这将允许模拟染色(着色)半透明表面(例如,彩色玻璃窗)的效果,并且在计算包围体内的光轴的效应时将该效果考虑在内。
由此,在优选实施方式中,纹理(或其他纹理)存储指示场景中的包围体的表面在从纹理的定义所关于的体积内的基准点开始的相关方向上的颜色的颜色(RGB)值。
纹理优选地通过从用于纹理的基准位置的视点(从纹理基准点)渲染用于包围体的表面的图像来生成。所生成的纹理可以存储例如在适当的便携式存储介质(诸如DVD)上或存储在存储器中,以当期望在渲染例如图像时使用纹理时,由图形处理单元将来使用。
在优选实施方式中,纹理存储(编码)为一组贴图(mipmap)(即,在存储各具有不同的细节层次(分辨率)的初始纹理的多个版本以使用的情况下)。
纹理可以“实时”生成(运行时)(即,需要时),但更优选地,纹理在它的需要前面生成,例如“离线地”。
在优选实施方式中,纹理在生成之后(并且在存储以使用之前)经由一个或更多个处理操作,诸如且优选地,一个或更多个滤波处理(诸如使一个或更多个卷积滤波器应用于纹理)。优选地,纹理经历以下处理中的一个或更多个:模糊、亮度处理、对比度处理(例如,增强)、锐化等。在特别优选的实施方式中,纹理经历一个或更多个非实时优化。(如上面所讨论的,本发明的具体优点是因为用于代表透明度的纹理事实上是“静态”纹理,所以该纹理不需要实时生成,并且因此可以经历一个或更多个非实时优化(如果期望)。)
在特别优选的实施方式中,纹理还在存储之前被压缩。任意合适的纹理压缩处理可以用于该过程。
在特别优选的实施方式中,除了生成纹理之外,还生成并存储纹理代表的(与纹理一起使用的)包围体。该包围体应并优选地确实代表要使用纹理所连同的、要渲染的场景的全部或部分的体积。
优选地,定义使用纹理所连同的包围体的数据与纹理关联的生成并存储。包围体优选地在自然空间中定义,并且优选地与透明度指示纹理对齐。再次,该包围体信息还经历任意期望的后处理操作,诸如压缩(如果期望)。
如上面所讨论的,透明度指示纹理优选地通过渲染将从用于纹理的基准位置的视点代表包围体的表面的图像来生成。这优选地通过对于包围体上(在从用于纹理的基准位置的相关方向上)的各位置采样表面(图像代表该表面)上的各位置来进行。在该处理中,因为包围体通常将为所定义的实际场景(例如,房间)的近似,所以包围体可能不与所定义的场景(例如,房间)的表面精确匹配(例如,在例如房间的墙壁可能不平坦或具有表面粗糙度的情况下)。为了在生成纹理时允许这一点,对于纹理(对于各纹素)采样的表面的点可以并且优选地被允许落到包围体上、外部或内部(而不是采样点被限于包围体的墙壁上)。这将在包围体不与场景几何结构精确匹配的情况下避免孔被引入纹理内。因为采样点离包围体越远,将在使用纹理时引入的误差越大(特别是在进行局部校正时(如下所述)),所以表面优选地在尽可能靠近包围体上(从用于纹理的基准位置开始的相关方向上)的对应位置的位置处采样。因此,包围体优选地被定义为使得包围体(表面定义该场景)与紧密(优选地为尽可能紧密地)配合,使得纹理可以使用靠近(尽可能靠近)包围体的墙壁的样本来生成。
在优选实施方式中,多个纹理优选地和对应的包围体对于预期可以在执行纹理和场景关于的应用(例如,游戏)时显示的各场景生成并存储。例如,在游戏将包括可以具有外部光源的多个场景(诸如房间)的情况下,在优选实施方式中,对于可以在玩游戏时开始显示的各场景(例如,房间)生成各透明度指示纹理和包围体。然后,纹理和包围体可以例如用在执行游戏时使用的剩余游戏数据来存储。
如上面所讨论的,在本发明中,为了确定用于在从用于场景的视点(照相机)位置看时(即,在透过光轴看时)代表第一采样点的颜色,对于沿着从第一采样点至用于场景的视点位置的矢量的多个“第二”采样点中的每个“第二”采样点确定透明度参数。即,对于第一采样点,优选地例如在“光线行进”过程中分别对于沿着第一采样点至视点矢量(上)的多个第二采样点中的每个第二采样点确定多个透明度参数。
从第一采样点至用于场景的视点位置的矢量优选地在自然空间中定义。如将理解的,该矢量等于从用于场景的视点位置至第一采样点的矢量。
第一采样点应是(并且优选地是)例如多个第一(画面空间)采样点(片段)阵列的画面空间采样点(例如,片段),即,对于该采样点,需要确定渲染处理中的(输出)颜色(即,如透过光轴看到的)。
第二采样点应是(并且优选地是)沿着第一采样点至视点矢量(上)的一组“中间”采样点(即,用于“光线行进”过程中的采样点)。
确定透明度参数的第二采样点可以包括沿着采样点至视点矢量(上)的任意合适且期望的一组采样点。要使用的第二采样点的数量可以根据期望来选择。如将理解的,使用更多个第二采样点将产生用于光轴计算的更准确结果,但以需要更多资源为代价(反之亦然)。
同样地,沿着采样点至视点矢量(上)的第二采样点的位置可以根据期望来选择。第二采样点优选地沿着第一采样点至视点矢量每隔一定距离(等间隔)定位,并且优选地铺开,但还可以使用不规则的间隔。还可以在已知或预期光轴将存储的区域中使用相对更多的第二采样点(并且在其他区域中使用相对更少或不使用第二采样点)。
用于多个第二采样点的多个透明度参数可以以任意合适且期望的顺序来确定。例如,参数可以逐一确定,例如从采样点至视点矢量的一端逐渐至另一端(例如,从采样点至视点或从视点至采样点),和/或透明度参数中的一些或全部可以并行确定。
如下面将更详细描述的,本发明的技术优选地(例如,通过确定沿着各第一采样点至视点矢量的透明度参数)对于第一采样点的阵列的多个(优选地为全部)第一采样点来执行。沿着各采样点至视点矢量的对应第二采样点位置可以用于第一采样点的阵列中的一些或全部。然而,更优选地,这一点不进行,并且沿着各第一采样点至视点矢量(上)的第二采样点位置优选地对于各(相邻)第一(画面空间)采样点是不同的(不对应于各第一采样点)。例如,将可以从沿着各(相邻)第一采样点至视点矢量的(轻微)不同的位置(距离里)开始“光线行进”过程,然后例如在“光线行进”过程中使用恒定的第二采样点间隔(即,可以使用交错的采样(并且在一个优选实施方式中,进行这一点))。如本领域技术人员将理解的,这可以避免由于光线行进过程的量子化性质而产生的跨相邻第一采样点的“捆扎”伪影。
其他结构当然会是可以的。
如上所讨论的,在本发明中,对于各第二采样点,透明度参数通过对代表透明度的图形纹理进行采样来确定。用于对代表透明度的图形纹理进行采样的矢量可以以任意合适且期望的方式来确定。
在优选实施方式中,用于对代表透明度的图形纹理进行采样的矢量通过首先确定包围体上与从第二采样点至光源的矢量相交的位置且然后使用相交位置来确定要用于对图形纹理进行采样的矢量来确定。
在该实施方式中,包围体上与从(需要透明度参数的)第二采样点至(确定透明度参数的)光源的矢量相交的位置可以根据期望来确定。在优选实施方式中,确定从第二采样点至光源位置(在自然空间中)的矢量,然后确定包围体上的、第二采样点至光源的该矢量的相交位置。
然后,可以以任意合适且期望的方式使用相交位置来确定用于对代表透明度的图形纹理进行采样的矢量。例如,从第二采样点至相交点的矢量可以简单地用作用于对图形纹理采样的矢量。
然而,申请人已经意识到,在参照图形纹理对应于的体积内的基准位置(例如,中心点)定义图形纹理的情况下,然后简单地使用从感兴趣的第二采样点位置至包围体上的相交点的矢量将不总是正确采样图形纹理。由此,在优选实施方式中,采样处理涉及解释(补偿)纹理参照可能不对应于考虑的第二采样点的基准点来定义的事实。
该补偿可以根据期望来执行,但在优选实施方式中,确定从纹理的定义所关于的基准位置至包围体上的所确定相交点的矢量,然后该矢量用于对透明度指示纹理进行采样。这将确保即使在第二采样位置不对应于定义纹理所关于的基准位置,也采样纹理中的正确位置。实际上将“局部”校正应用于从所考虑的第二采样位置至光源的矢量。
换言之,包围体上所确定的相交位置用于确定从纹理基准位置(例如,中心点)至所确定相交点的矢量,然后,从基准点至所确定相交点的该矢量用于对透明度指示纹理进行采样。
(用于确定要用于对图形纹理进行采样的矢量的)这些处理可以由图形处理单元的任意期望且合适的阶段或部件来进行。在优选实施方式中,处理由图形处理单元的片段着色阶段(片段着色器)(优选地通过执行适当的片段着色程序)来执行。
还将可以执行用于由图形处理单元的顶点着色阶段(顶点着色器)(优选地通过执行适当的顶点着色程序(并且在一个优选实施方式中,进行这一点))确定要用于对图形纹理进行采样的矢量的处理中的至少一些。
在优选实施方式中,确定一组纹理采样矢量,然后通过使用该组纹理采样示例插值来确定用于对代表透明度的图形纹理进行采样的矢量。
一组纹理采样矢量优选地包括对于有限数量(“第三个”)优选所选的采样点确定的多个纹理采样矢量,其中,各纹理采样矢量优选地为将用于对用于该(第三个)采样点的图形纹理进行采样的矢量(例如,“经局部校正的”矢量)。由此,在该实施方式中,实际上确定有限数量的纹理采样矢量,然后(例如,硬件)插值处理用于获得用于讨论中的(优选地为各个)第二采样点的期望纹理采样矢量(要用于对图形纹理进行采样的矢量)。这可以减少确定用于讨论中的第一采样点的颜色所需的处理的总量,特别是在期望确定用于该第一采样点的(用于较大量第二采样点的)较大量的透明度参数。
一组纹理采样矢量中的各矢量优选地通过确定包围体上与从讨论中的(第三)采样点至光源的矢量相交的位置且然后使用相交位置来确定要用于对图形纹理进行采样的矢量来确定。优选地,确定从第三采样点至(自然空间中的)光源位置的矢量,然后确定包围体上从第三采样点至光源的该矢量的相交点。
从第三采样点至相交点的矢量可以简单的用作纹理采样矢量,但更优选地,一组纹理采样矢量中的各矢量为“经局部校正的”这种矢量。由此,该组纹理采样矢量中的各纹理采样矢量优选地为从纹理的定义所关于的采样位置至包围体上从第三采样点至光源的矢量的相交点的矢量(在所确定的相交点优选地用于确定该矢量的情况下)。
对于一组纹理采样矢量确定纹理采样矢量的第三采样点可以根据期望来选择。例如,要使用的第三采样点的数量可以根据期望来选择。如将理解的,使用更多个第三采样点将产生用于插值处理的更准确结果,但以需要用于确定一组纹理采样矢量的更多资源为代价(反之亦然)。
在一个优选实施方式中,第三采样点包括沿着采样点至视点(照相机)矢量(上)的采样点。由此,第三采样点可以包括第二采样点的子集。在另一个优选实施方式中,多个第三采样点可以包括沿着从被认为与第一采样点有关的图元的顶点至视点(照相机)位置的矢量(上)的采样点。
第三采样点优选地为较稀疏(例如,当与一组第二采样点相比时)的采样点选择,并且优选地以规则方式隔开。第三采样点优选地沿着讨论中的矢量每隔一定距离定位(并且优选地铺开),但还将可以使用不规则的间隔。还将可以在已知或预期光轴将存在的区域中使用相对更多个第三采样点(并且可以在其他区域中使用相对更少或不使用第三采样点)。
在这些实施方式中,要用于对代表(用于给定第二采样点的)图形纹理进行采样的透明度的矢量优选地通过使用来自一组纹理采样矢量的两个或更多个纹理采样矢量适当(例如,硬件)插值来确定。
在第三采样点包括沿着第一采样点至视点(照相机)矢量(上)的采样点的情况下,要用于代表用于给定第二采样点的透明度的图形纹理的矢量应(并且优选地)通过使用用于位于讨论中的第二采样点的两侧之一(最靠近讨论中的第二采样点)的第三采样点的一组纹理采样矢量的纹理采样矢量进行插值来确定。在多个第三采样点包括沿着(在)从被认为与第一采样点有关的图元的顶点至视点(照相机)位置的矢量(上)的采样点的情况下,应(并且优选地)还执行顶点插值,以确定要用于对代表针对讨论中的第二采样点的透明度的图形纹理进行采样矢量。
在这些实施方式中,将可以减少执行本发明的处理中的一些或全部的第一采样点的数量(并且在优选实施方式中,进行这一点)。即,在实施方式中,对于少于全部第一采样点执行本发明的处理。
再有选的这种实施方式中,对于一组纹理采样矢量中的至少一些纹理采样矢量(并且优选地为每一个),例如通过使用纹理采样矢量采样图形纹理来确定来自光源的光是否落到对应的第三采样点上(如下所述)。
在确定来自光源的光未落到特定第一采样点至视点矢量的全部第三采样点上的情况下,那么可以假定来自光源的光未落到该矢量上的任何(第二)采样点上。
类似地,在确定来自光源的光未落到用于特定图元的顶点至视点矢量的全部第三采样点上的情况下,那么可以假定来自光源的光未落到用于该图元的任何(第二)采样点上。由此,在这种情况下,将不必对于讨论中的图元执行根据本发明的任何另外处理。
由此,在优选实施方式中,对于一组纹理采样矢量中的至少一些纹理采样矢量(并且优选地为每一个),确定来自光源的光是否落到对应的第三采样点上,并且然后可以基于这些确定来确定是否省略进一步处理。
实际上,最初(例如在顶点着色器中)执行关于(“第三”)采样点是否被光源照亮的“粗略”检查,然后该粗略检查用于(例如,在片段着色器中)减少(在适当的情况下)随后“精细”确定要用于代表第一采样点的颜色所需的处理。
在这些实施方式中,将可以减少确定透明度因数(并因此确定纹理采样矢量,采样纹理等)的第一采样点至视点矢量上的第二采样点的数量,并且在优选实施方式中,进行这一点。即,在实施方式中,对于少于第一采样点至视点矢量上的第二采样点的全部确定透明度参数。
在优选的这种实施方式中,对于一组纹理采样矢量中的至少一些纹理采样矢量(并且优选地为每一个),例如通过使用纹理采样矢量采样图形纹理来确定来自光源的光是否落到对应的第三采样点上(如下所述)。在确定来自光源的光未落到相邻的第三采样点(或相邻组的第三采样点)上的情况下,那么可以假定来自光源的光不落到相邻第三采样点或相邻组第三采样点之间的任何(第二)采样点上。由此,在这种情况下,将不必对于这些第二采样点确定透明度参数,相反可以使用指示没有光落到讨论中的第二采样点上的透明度参数(例如“1”)。
由此,在优选实施方式中,对于一组纹理采样矢量中的至少一些纹理采样矢量(并且优选地为每一个),确定来自光源的光是否落到对应的第三采样点上,并且然后基于这些确定来确定是否可以针对视点至第一采样点矢量上的一个或更多个第二采样点是否可以省略透明度参数确定处理。
实际上,最初(例如在顶点着色器中)执行关于(“第三”)采样点是否被光源照亮的“粗略”检查,然后该粗略检查用于(例如,在片段着色器中)减少随后“精细”确定(“第二”)采样点是否被光源照亮(即,对于多个第二采样点确定透明度参数的步骤)所需的处理。
用于确定一组纹理采样矢量和由插值确定用于对代表透明度的图形纹理进行采样的矢量的这些处理可以由图形处理单元的任意期望且合适的阶段或部件来进行。在优选实施方式中,一组纹理采样矢量由图形处理单元的顶点着色阶段(顶点着色器)(优选地通过执行适当的顶点着色程序)来确定。对应地,在优选实施方式中,插值处理由图形处理单元的片段着色阶段(片段着色器)(优选地通过执行适当的片段着色程序)来执行。
其他结构当然还会是可以的(如果期望)。
无论用于对代表透明度的图形纹理进行采样的矢量是使用相交位置、由插值还是其他方面来确定,然后都可以使用所确定的纹理采样矢量来适当采样透明度指示纹理,以检索期望的透明度值。
透明度指示纹理可以以任意期望且合适的方式来采样。例如,在采样纹理时可以使用适当的滤波(插值)处理(诸如双线性滤波)(如果期望)。类似地,在透明度指示纹理被提供为一组贴图的情况下,采样处理优选地被配置为例如(并且优选地)使用三线性滤波来滤波贴图,以提供所采样的纹理值。
在纹理为一组贴图的形式的情况下,采样处理优选地还包括确定应采样透明度指示纹理的贴图层次(细节层次)(然后采样用于透明度指示纹理的所确定的贴图层次)。
要使用的贴图层次(细节层次)优选地基于从考虑的第二采样点至包围体上从该采样点至光源的矢量的相交位置的距离(从第二采样点至相交位置的矢量的长度)来确定。
其他结构当然会是可以的。
这些处理可以再次由图形处理单元的任意期望且合适的阶段或部件来进行。在优选实施方式中,处理由图形处理单元的片段着色阶段(片段着色器)(优选地通过执行适当的片段着色程序)来执行。处理还可以或相反至少部分由图形处理单元的适当纹理映射阶段来执行(如果期望)。
用于多个第二采样点中的每个第二采样点的多个透明度参数值可以以任意合适且期望的方式用于确定用于在从用于场景的视点位置看时代表采样点的颜色。
在这一点上,申请人已经意识到,各个所确定的透明度参数将代表从光源落到讨论中的第二采样点上的光的量(例如,将与光的量成比例),因此各个透明度参数将与在讨论中的第二采样点处散射并因此将从用于场景的视点(照相机)位置可见的光的量有关。此外,通过确定沿着第一采样点至视点矢量的多个这种透明度参数,可以(并且优选地)提供如从视点(照相机)位置看到的光轴的效应的“真实的”体积(逼真)代表,例如不管视点(照相机)和/或光源位置如何(特别是即使视点(照相机)位置靠近光轴或在光轴内部)。
由此,根据优选实施方式,对于所确定的透明度参数指示来自光源的光落到上面(例如,对于各透明度参数≠1)的各第二采样点,确定(对如从视点位置看到的用于讨论中的第一采样点的最终颜色的)颜色“贡献”。
用于多个第二采样点的各个颜色贡献优选地用于例如通过组合(求和)多个颜色贡献来确定要(如从视点位置看到的)代表讨论中的第一采样点的颜色,可选地连同例如可以在用于第一采样点的(传统)渲染计算中确定的、用于讨论中的第一采样点的一个或更多个其他颜色。这可以例如通过将所确定的颜色混合在一起以任意合适且适当的方式来进行。
多个贡献中的每个可以用于(单独地)影响讨论中的第一采样点的颜色,或者为了确定用于讨论中的第一采样位置的“最终”光轴颜色贡献,可以组合(例如,求和)多个贡献,该颜色然后可以可选地与用于讨论中的采样点的一个或更多个其他颜色组合(混合)。
各个颜色贡献可以例如使用任意合适且期望的渲染方程式以任意合适且期望的方式来确定。
根据一个优选实施方式,对于所确定的透明度参数指示来自光源的光落到上面的各第二采样点,,提供并使用恒定的颜色贡献。这代表用于确定光轴对讨论中的第一采样点的效应的特别简单且有效的技术。恒定颜色贡献可以根据期望来选择,并且可以根据例如光源的特性(例如,颜色、强度、位置等)。
根据另一个优选实施方式,各颜色贡献可以被设置为更直接地取决于透明度参数的值。用于各第二采样点的颜色贡献例如可以(直接)取决于所确定的透明度参数的值(与该值成比例)。例如,用于各第二采样点的所确定的透明度(阿尔法)参数可以用作或用于导出乘数(并且例如用于修改用于光源的颜色)。
在图形纹理还包括一个或更多个颜色通道的情况下(或在提供另一个颜色纹理的情况下)(如上所述),用于第二采样点的纹理采样矢量还可以(并且在一个实施方式中是)用于对图形纹理进行采样,以确定用于光源的颜色参数。在这种情况下,所确定的颜色参数优选地用于确定用于讨论中的第二采样点的颜色贡献。这然后将允许在计算光轴在包围体内的效应时模拟染色(着色)的半透明表面的效果并将其考虑在内。
还将可以将不同强度的光散射、吸收、衰减等(例如,包围体内的不同位置处的)效应考虑在内(并且一个实施方式中,进行这一点)。这可以例如用于模拟在包围体内具有变化密度的雾的效应。
在优选的这种实施方式中,确定指示至少一些(优选地为每一个)第二采样点处的光散射、吸收或衰减强度的光散射、吸收或衰减参数,并且优选地由所确定的光散射参数(例如通过将光散射、吸收或衰减参数用作或用来导出乘数)来修改用于各第二采样点的(例如,恒定或取决于透明度参数的)所确定的颜色贡献。各光散射、吸收或衰减参数可以例如根据对于包围体定义的介质“密度”函数来确定。
另外地或另选地,在优选实施方式中,例如可以使用噪声纹理(即,包括透明度(阿尔法)值的随机阵列的纹理)来模拟光轴的不均匀性。可以对于透明度指示图形纹理的透明和/或半透明区域对噪声纹理进行采样,并且所采样值例如可以用于修改用于一个或更多个第二采样点的所确定的颜色贡献。
由此,在优选实施方式中,对噪声纹理进行采样,并且所采样的噪声纹理值用于确定用于在从用于场景的视点位置看时代表第一采样点的颜色。
噪声纹理可以集成到透明度指示图形纹理中(为透明度指示纹理的一部分)或可以提供为单独的纹理。
在一个优选实施方式中,噪声纹理可以为动态的(即,可以随着时间而变化)(可以被绘制成动画的)。这例如可以用于模拟包围体内的移动对象(例如,颗粒,诸如灰尘)和/或在包围体外部的移动对象(例如,植物等)的效应。
用于确定用于在从用于场景的视点位置看时代表采样点的颜色的这些处理可以由图形处理单元的任意期望且合适的阶段或部件来进行。在优选实施方式中,处理由图形处理单元的渲染器来执行,并且优选地由图形处理单元的片段着色阶段来执行(再次优选地通过执行(执行期望渲染计算的)适当片段着色程序来执行)。
如上所述,在优选实施方式中,用于给定的第一(画面空间)采样点的光轴颜色贡献可以(并且优选地是)与由其他(例如,传统)渲染处理对于该第一采样点确定的一个或更多个颜色组合(混合),以确定代表该第一采样点的(最终)颜色。
还将可以使用关于一个或更多个其他第一(画面空间)采样点(例如,片段)的、用于给定第一(画面空间)采样点的光轴颜色贡献(例如,通过组合光轴颜色贡献与(由其他(例如,传统)渲染处理)对于其他第一采样点(片段)确定的一个或更多个颜色,以确定代表其他第一采样点(例如,片段)的(最终)颜色)。
在优选实施方式中,以(例如,在与对于第一采样点(例如,片段)的阵列执行的(例如,传统)渲染处理相比时)较低的分辨率确定(评估)(根据透明度参数确定的)光轴颜色贡献。然后优选地按比例放大并优选地(例如,使用适当的硬件)模糊所确定的光轴颜色贡献,并且该贡献优选地与对于场景执行的其他(例如,传统)渲染处理的结果组合(混合)。这可以进一步减小确定光轴的效应所需的资源量。
由此,在优选实施方式中,用于多个第二采样点中的每个第二采样点的所确定的透明度参数值用于确定对用于在从用于场景的视点位置看时代表第一采样点的颜色的颜色贡献,对于场景确定多个这种颜色贡献,并且对于场景确定分别用于在从用于场景的视点看时代表包围体上或包围体内的多个第一采样点中的每个第一采样点的多个颜色,其中,颜色贡献以比要用于代表多个第一采样点中的每个第一采样点的颜色低的分辨率来确定。
上述处理中的任意或全部可以对于采样点独立执行,或者处理中的一些或全部可以对于多组多个采样点执行(这然后将具有对于考虑的一组内的采样点执行处理的效果)。例如,在图形处理单元在各代表一组多个采样位置的片段上操作时,本发明的处理可以在每片段的基础上执行,而不是对于片段代表的各采样点独立执行(并且在优选实施方式中,这样进行)。在这种情况下,因此将存在例如对于片段确定的单个颜色,该颜色然后将用于片段用于渲染的各采样点。
如将从上面理解的,本发明的优点是技术可以用于计算光轴而不管在包围体外部的光源的位置如何。此外,这意味着代表包围体的表面的透明度的同一图形纹理可以用于不同的外部光源。
由此,本发明可以扩展为在包围体外部的随机数量的光。在这种情况下,确定用于光源的采样点的颜色贡献的本发明的处理应并且优选地对于在包围体中产生光轴的各外部光源重复。优选地对于考虑的各光源确定单独的光源贡献,然后适当地组合单独的光源贡献值,以确定讨论中的采样点处的光源的整体效应。
由此,在优选实施方式中,对于包围体外部的多个光源中的每个光源(并且优选地对于包围体外部的光源的全部)重复本发明的处理,例如以确定由于用于包围体内或上的采样点的两个或更多个外部光源产生的光轴的效应。在考虑多个外部光源的情况下,优选地对于各光源单独执行本发明的方式的操作,使得对于各光源单独确定颜色贡献,然后适当组合用于各单独光源的产生值,以确定用于采样点的多个光源的整体效应。
还将理解,虽然上面具体参照确定讨论中的包围体上或包围体内的给定第一采样点处的颜色描述了本发明,但本发明的技术可以并且优选地用于包围体上和内的多个第一采样点,把那个且优选地用于包围体上或包围体内在渲染场景时需要考虑的各第一采样点。
由此,优选地对于用于考虑的包围体上或包围体内的图元的各采样点且对于考虑的包围体上或包围体内的各图元重复处理。
类似地,优选地对于渲染的场景序列中的多个场景(例如且优选地,对于要渲染的帧序列的、包括可以产生光轴的外部光源的各帧)重复处理。
从上述将理解,本发明的技术特别适用于期望确定并模拟来自在代表要渲染的场景的全部或一部分的包围体外部的光源的光轴的效应的情况。由此,本发明特别适于(并且在优选实施方式中用于)确定并模拟用于场景内的环境(诸如房间)的光轴的效应,但更少用于(并且优选地不用于)确定由于考虑的包围体内的光而产生的光轴。
在存在本发明的技术无法用于或优选地不用于的其他光源的情况下,那么其他(例如,已知)光轴模拟技术可以用于这些光源。由此,在优选实施方式中,本发明的技术可以并且优选地与用于确定并模拟光轴效应的一个或更多个其他技术组合使用。由此,例如,在具有在场景包围体外部的光源和在场景包围体内部的光源的场景的情况下,本发明的技术优选地用于确定并模拟由于外部光源产生的光轴效应,但不同的光轴确定和模拟技术优选地用于包围体内部的光源。然后,可以对于影响场景的各个和每一个光源重复该结构。
本发明的技术还可以与任意一个或更多个其他渲染技术组合(根据期望)。例如,本发明的技术可以与考虑阴影和/或反射等效应的技术组合。
在特别优选的实施方式中,在期望渲染场景中的光轴和阴影和/或反射这两者的情况下,那么用于考虑光轴效应(如上所述)的同一图形纹理(例如,立方体图)还用于考虑阴影效应(以执行阴影映射)和/或反射效应(以执行反射映射)。这代表用于渲染复杂且高质量场景的特别方便且有效的技术。
在特别优选的实施方式中,为了在渲染场景时(另外)考虑阴影的效应,对于包围体上或包围体内的至少一个第一采样点,指示由光源产生的、采样点上的投影量的透明度参数通过以下来确定:确定包围体上与从采样点至光源的矢量相交的位置;使用相交位置来确定要用于对代表场景中的包围体表面的透明度的图形纹理进行采样的矢量;并且使用所确定的矢量来采样图形纹理,以确定用于采样点的光源的透明度参数值。如本领域技术人员将理解的,因为同一图形纹理(立方体图)在该实施方式中用于确定阴影和光轴的效应这两者,所以所渲染阴影和光轴将在场景中适当匹配。
本发明可以用于任意合适且期望的图形处理系统和单元中且与任意合适且期望的图形处理系统和单元一起使用。图形处理单元优选地包括图形处理流水线。
本发明优选地适于与成块渲染器(基于块的图形处理系统)。由此,在优选实施方式中,图形处理单元为基于块的图形处理单元。
图形处理单元优选地包括多个处理阶段,包括至少一个栅格化器,该栅格化器栅格化输入图元,以产生要处理的图形片段,各图形片段具有与之关联的一个或更多个第一采样位置;和渲染器,该渲染器处理由栅格化器生成的片段,以生成输出片段数据。
图形处理单元的栅格化器将优选地生成要渲染以生成用于期望图形输出(诸如要显示的帧)的采样点的所渲染图形数据的图形片段。由栅格化器生成的各图形片段关联有图形输出的一组(“第一”)采样点,并且要用于生成要用于与片段关联的一组采样点中的采样点中的一个或更多个的所渲染图形数据。
栅格化器可以被构造成以任意期望且合适方式生成用于渲染的片段。栅格化器将优选地接收例如要栅格化的图元,针对多组(“第一”)采样点位置测试这些图元,并且因此生成代表图元的片段。
渲染器应处理由栅格化器生成的片段,以生成用于片段代表的(所覆盖的)(“第一”)采样点的所渲染片段数据。这些渲染处理可以包括例如片段着色、混合、纹理映射等。在优选实施方式中,渲染器为可编程片段着色器的形式或包括可编程片段着色器。
图形处理单元还可以含有图形处理单元可以含有的任意其他合适且期望的处理阶段,诸如早期深度(或早期深度和模板)测试器、后期深度(或深度和模板)测试器、混合器、块缓冲器、写出单元等。
图形处理单元优选地还包括一个或更多个存储器和/或存储装置和/或与一个或更多个存储器和/或存储装置通信,该存储器和/或存储装置存储这里所述的数据(诸如透明度指示纹理、场景包围体等)和/或存储用于执行这里所述的处理的软件。图形处理单元还可以基于由图形处理单元生成的数据与主微处理器和/或与用于显示图像的显示器通信。
图形处理单元优选地包括用于存储透明度参数确定处理所需的数据和所确定的透明度参数的至少本地存储器,诸如(片上)缓冲器和/或寄存器。在存在的情况下,块缓冲器可以用于该目的(如果期望)。图形处理单元优选地还可以缓存所采样的透明度值以供将来使用(如果期望)。
本发明可以用于图形处理单元可以用于生成的所有形式的输出,诸如用于显示的帧、渲染到纹理输出等。
在特别优选实施方式中,本发明的各种功能在单个图形处理平台上执行,图形处理平台生成和输出例如写到用于显示装置的帧缓冲器的、渲染后的片段数据。
本发明可以在任意适当的系统中实施,诸如基于适当构造的微处理器的系统。在优选实施方式中,本发明在计算机和/或基于微处理器的系统中实施。
本发明的各种功能可以以任意期望且合适的方式执行。例如,本发明的功能可以实现在硬件或软件中(根据期望)。由此,例如,除非以其他方式指示,本发明的各种功能元件和“装置”可以包括合适的处理器、控制器、功能单元、电路、处理逻辑、微处理器结构等,它们可操作以进行各种功能等,诸如适当专用硬件元件和/或可以被编程以以期望方式操作的的可编程硬件元件。
这里还应当注意的是,如本领域技术人员将理解的,本发明的各种功能等可以在给定处理器上重复和/或并行执行。等同地,各种处理阶段可以共享处理电路等(如果期望)。
受制于必须执行上面讨论的特定功能的任意硬件,数据处理系统可以以其他方式包括数据处理系统包括的通常功能单元等中的任意一个或更多个或所有。
如本领域技术人员将理解的,本发明的所有描述的方面和实施方式可以(且优选地确实)酌情包括这里描述的所有优选和可选特征中的任意一个或更多个。
根据本发明的方法至少部分地可以使用软件(例如,计算机程序)实现。由此将看到当从其他方面看时,本发明提供计算机软件,该计算机软件当安装在数据处理装置上时专门适用于执行这里描述的方法;计算机程序元件,该计算机程序元件包括计算机软件代码部,用于在程序元件在数据处理装置上运行时执行这里描述的方法;和计算机程序,该计算机程序包括代码装置,该代码装置当程序在数据处理系统上运行时适用于执行这里描述的方法的所有步骤。数据处理器可以是微处理器系统、可编程FPGA(场可编程门阵列)等。
本发明还扩展到计算机软件载体,该计算机软件载体包括这种软件,这种软件当用于操作图形处理器、渲染器货包括数据处理装置的微处理器系统时与所述数据处理装置结合使所述处理器、渲染器系统执行本发明的方法的步骤。这种计算机软件载体可以是物理存储介质,诸如ROM芯片、CD ROM、RAM、闪存或盘,或可以是信号,诸如电线上的电信号、光信号或无线电信号,诸如卫星等。
还将进一步理解的是,不是本发明的方法的所有步骤都需要由计算机软件执行,并且由此根据更宽方面,本发明提供了计算机软件并且这种软件安装在计算机软件载体上,用于执行这里阐述的方法的步骤中的至少一个。
本发明可以因此适当地具体实施为用于与计算机系统一起使用的计算机程序产品。这种实现可以包括一系列计算机可读指令,该一系列计算机可读指令固定在有形、永久介质上,诸如计算机可读介质,例如,磁盘、CD-ROM、ROM、RAM、闪存或硬盘。还应当包括一系列计算机可读指令,在有形介质(包括但不限于,光学或模拟通信线)上,或无形地使用无线技术(包括但不限于,微波、红外或其他传输技术),这些指令经由调制解调器或其他接口装置可发送到计算机系统,。该系列计算机可读指令具体实施这里之前描述的功能的所有或一部分。
本领域技术人员将理解这种计算机可读指令可以以多种编程语言来写,用于与许多计算机架构或操作系统一起使用。进一步地,这种指令可以使用任意存储技术来存储(存储技术现在或将来包括但不限于半导体、磁或光),或使用任意通信技术来发送(通信技术现在或将来包括但不限于光学、红外或微波)。预期的是,这种计算机程序产品可以作为可去除介质来分发,附有已打印的文档或电子文档,例如,现成软件;例如在系统ROM或固定盘上预加载有计算机系统;或在网络(例如,因特网或万维网)上从服务器或电子公告栏分发。
附图说明
现在将仅以示例的方式并参照附图来描述本发明的多个优选实施方式,附图中:
图1示意性地示出了可以以本发明的方式操作的图形处理流水线;
图2示意性地示出了本发明的实施方式的操作;
图3示出了用于本发明的实施方式的示意性纹理;
图4示意性示出了本发明的实施方式中的纹理的生成;
图5、图6、图7和图8例示了本发明的实施方式的操作;
图9示出了根据本发明的实施方式的、从若干不同位置渲染的光轴;以及
图10和图11例示了本发明的实施方式的操作。
类似的附图标记在附图中适当的情况下用于类似的部件。
具体实施方式
现在将在用于显示的计算机图形的处理的背景下描述本发明的优选实施方式。
当要显示计算机图形图像时,计算机图形图像通常被首先限定为一系列图元(多边形),这些图元然后被划分(栅格化)为用于依次图形渲染的图形片段。在正常图形渲染操作期间,渲染器将修改(例如)颜色(红色、绿色以及蓝色,RGB)和与各片段关联的透明度(阿尔法、α)数据,使得可以正确地显示片段。在片段已经完全穿过渲染器时,它们的关联数据值存储在存储器中,以输出来显示。
图1示意性示出了可以根据本发明操作的图形处理流水线1。图形处理流水线1是具有完全可编程GPGPU背景的基于块的渲染器,例如部分经由Direct Compute、OpenCL、CUDA等执行的渲染器
因为图1中所示的图形处理流水线1是基于块的渲染器,该渲染器由此将生成渲染输出数据阵列的块,诸如要生成的输出帧。
(在基于块的渲染时,不是整个渲染输出(例如,帧)被一下子有效处理为中间模式渲染,而是渲染输出(例如,要显示的帧)被划分为多个更小的子区域(通常称为“块”)。各个块(子区域)被单独(通常一个接一个地)渲染,然后渲染后的块(子区域)被重组,以提供完整的渲染输出(例如用于显示的帧)。在这种结构中,渲染输出通常被划分为大小规律且成形的子区域(块)(它们通常是例如正方形或矩形),但这不是必须的。各块对应于各组画面空间(“第一”)采样点。)
渲染输出数据阵列可以通常是输出帧,输出帧旨在显示在显示装置上,诸如画面或打印机上,但还可以例如包括中间数据,中间数据旨在用于后期的渲染过程(还称为“渲染到纹理”输出)等。
图1示出了图形处理流水线1的与本实施方式的操作有关的主元件和流水线阶段。如本领域技术人员将理解的,可以存在图1未例示的图形处理流水线的其他元件。这里还应当注意的是,图1仅是示意性的,并且例如,实际上,所示的功能单元和流水线阶段可以共享重要的硬件电路(即使它们在图1中被示意性地示出为单独阶段)。还将理解的是,如图1所示的图形处理流水线的各个阶段、元件以及单元等可以根据期望来实现,并且因此将包括例如适当的电路和/或处理逻辑等,用于执行需要的操作和功能。
图1示意性示出了生成用于输入到栅格化处理的图形图元(多边形)2之后的流水线阶段。由此,此时,图形数据(顶点数据)已响应于提供给图形处理器的命令和顶点数据经历片段前端操作8(诸如变换操作(未示出)、顶点着色、插值以及设置要渲染的图元的图元设置阶段(未示出))。
如图1所示,图形处理流水线1的该部分包括多个阶段,包括栅格化阶段3、早期Z(深度)和模板测试阶段4、片段着色阶段6形式的渲染器、后期Z(深度)和模板测试阶段7、混合阶段9、块缓冲器10以及下采样和写出(多采样分辨率)阶段13。
图形处理流水线1的栅格化阶段3操作,以将组成渲染输出(例如,要显示的图像)的图元栅格化为各个图形片段以处理。为了这样做,栅格化器3接收用于渲染的图形图元2,将图元栅格化为(“第一”)采样点,并且生成具有用于渲染图元的适当位置(代表合适的采样位置)的图形片段。
由栅格化器生成的片段然后向前发送至用于处理的流水线的剩余部分。
早期Z/模板阶段4对其从栅格化器3接收的片段进行Z(深度)测试,以预见是否可以在该阶段丢弃(剔除)任何片段。为了这样做,早期Z/模板阶段4将从栅格化器3发布的片段的深度值(与片段关联的深度值)与已经渲染的片段的深度值进行比较(这些深度值存储在作为块缓存器10的一部分的深度(Z)缓冲器中),以确定新片段是否将由已经被渲染的片段遮蔽。同时,执行早期模板测试。
通过片段早期Z和模板测试阶段4的片段然后发送到片段着色(渲染)阶段6。片段着色阶段6对通过早期Z和模板测试的片段进行适当的片段处理操作,以处理片段,以生成适当渲染的片段数据等。
该片段处理可以包括任意合适且期望的片段着色处理,诸如对片段执行片段着色器程序、向片段应用纹理、向片段应用雾化或其他处理等,以生成合适的片段数据。在本实施方式中,片段着色阶段6是为着色器流水线(可编程片段着色器)的形式,但如果期望,其他结构(诸如使用或代替固定功能片段着色单元)将是可以的。
然后,存在“后期”片段Z和模板测试阶段7,该阶段尤其对着色后的片段执行流水线深度测试的结尾部分,以确定被渲染的片段是否将实际在最后输出中看到。该深度测试使用用于块缓冲器10中的Z缓冲器中存储的片段位置的Z缓冲器值,以确定用于新片段的片段数据是否应当代替片段的片段数据,该片段已经通过将从片段着色阶段6发布的片段(与片段关联的)深度值与已经被渲染的(如存储在深度缓冲器中的)片段的深度值进行比较来渲染。该后期片段深度和模板测试阶段7还对片段执行任意需要的“后期”阿尔法和/或模板测试。
通过后期片段测试阶段7的片段然后经历(如果需要)任意必须的与已经存储在混合器9中的块缓冲器10中的片段的混合操作。对片段需要进行的任意其他剩余操作(诸如,递色等(未示出))也在该阶段执行。
最后,(混合后的)输出片段数据(值)被写到块缓冲器10,从该块缓冲器10,它们可以例如被输出到帧缓冲器,用于显示。用于输出片段的深度值还适当写到块缓冲器10内的Z缓冲器。(块缓冲器和深度缓冲器对于缓冲器代表的各采样点(实质上是对于所处理的块的各采样点)分别存储适当的颜色等或Z值。)这些缓冲器存储代表整体渲染输出(例如,要显示的图像)的一部分(块)的片段数据的阵列,缓冲器中的各组采样值对应于整体渲染输出的各像素(例如,各2x2组采样值可以对应于输出像素,其中使用4x多采样)。
块缓冲器被提供为位于(本地于)图形处理流水线(芯片)上的RAM的一部分。
来自块缓冲器10的数据输入到下采样(多采样分辨率)写出单元13,并且从那里输出(写回)到外部存储输出缓冲器,诸如显示装置的帧缓冲器(未示出)。(该显示装置可以包括例如包括像素阵列的显示器,诸如计算机监视器或打印机。)
在本实施方式中,下采样和写出单元13(以固定或可变样式二者之一)块缓冲器10中所存储的片段数据下采样到输出缓冲器(装置)的合适分辨率(即,使得生成对应于输出装置的像素的像素数据阵列),以生成用于输出到输出缓冲器13的输出值(像素)。
在已经处理渲染输出的块且其数据导出到用于存储主存储器(例如,到主存储器中的帧缓冲器(未示出))时,然后处理下一块,以此类推,直到处理足够的块,以产生整个渲染输出(例如,要显示的帧(图像))。然后对于下一渲染输出(例如,帧)等重复处理。
当然,用于图形处理流水线1的其他结构将是可以的。
上面描述了图1中所示的图形处理系统的操作的特定特征。现在将描述根据本发明的实施方式的、允许模拟所渲染图像中的光轴的效应的、图1中所示的图形处理系统的操作的另外特征。
本实施方式操作为模拟由于在包围体外部的光源而产生的、用于场景的所定义体积内的光轴的效应。
图2例示了这一点且示出了在自然空间中定义的包围盒的形式的示例性包围体20,该包围体代表所渲染场景内的体积。在本实施方式中,假定包围体20对应于整个场景且代表例如房间,但其他结构当然会是可以的。如图2中可以看到的,假定包围体20具有窗口21,但另外具有不透明的墙壁。
如图2所示,还假定存在发光透过窗口21并因此在包围体20内产生光轴23的、包围体20之外的光源22。如上面所讨论的,本发明涉及用于确定如从用于场景的视点(照相机)位置24看到的在场景上的光轴23的效应的结构。
为了促进以本发明的方式进行的操作,在本实施方式中,生成立方体纹理,该立方体纹理对应于存储代表包围体20表面的透明度的透明度(阿尔法)值的包围体20的表面。
图3示出了用于图2中所示的包围体20的对应立方体纹理30。如图3所示,立方体纹理30将存储指示用于包围体表面不透明的那些区域的不透明表面的值,但对于包围体表面存在窗口21的区域,将存储指示透明度(或至少半透明度)的透明度值。由此,立方体纹理30不透明的面32(如将围绕窗口21的区域33)将存储阿尔法值1,但窗口21的区域将存储小于1的阿尔法值,以指示包围体表面的该部分为半透明或完全透明的。
图4示意性示出了图3中所示的立方体纹理的生成。如图4所示,处理通过从定义立方体纹理所关于的基准位置31(图2中所示)至立方体纹理渲染场景(或至少场景的阿尔法值)(步骤40)开始。(立方体纹理30将关于立方体纹理代表的体积(由此为用于场景的包围体)内的基准位置31(图2中所示)来定义,并且通过确定从需要采样值(采样位置)的该基准点开始的方向来采样。)
该处理将定义包围体20的信息、定义用于立方体纹理的基准位置31的信息以及指示对于立方体纹理期望的分辨率尺寸42的信息用作它关于场景41的输入信息。
立方体纹理30通过渲染将从用于纹理的基准位置31的视点代表包围体20的表面的图像来生成。为了这样做,对于(在从用于纹理的基准位置31开始的相关方向上的)包围体上的各位置采样用于(如由场景信息41定义的)场景的表面(代表表面的图像)上的各位置。在该处理中,因为包围体通常将为实际场景的近似且因此不与所定义的场景(例如,房间)的表面精确匹配,所以对于纹理(对于各纹素)采样的表面的点不需要精确落到包围体20的壁上,而是可以处于包围体上、外部或内部。该立方体纹理生成处理的输出47然后为如图3所示的立方体纹理,该立方体纹理具有阿尔法(透明度)通道,该通道代表用于立方体纹理关于的场景的包围体的表面在包围体表面上的各位置处的透明度。
如图4所示,在生成了立方体纹理时,该纹理可以可选择地经历各种处理效应和优化,诸如模糊、伽马校正、亮度和/或对比度增强等(步骤43)。该步骤将期望的后处理效应参数(诸如模糊参数、伽马校正参数、对比度参数等)用作输入。
因为在无论何时需要讨论中的场景时可以重新使用立方体纹理30,并且对于所有外部光源,立方体纹理30不需要在使用时动态再生且因此可以使用将不适于立方体纹理的实时生成的非实时优化,所以该优化处理是可以的。
此外,如图4所示,可以使用期望的压缩参数46,压缩所生成(并且如果期望,后处理的)的立方体纹理(步骤45)。再次,因为立方体纹理不需要实时生成,所以这是可以的。任意合适的纹理压缩方案可以用于压缩立方体纹理。
立方体纹理生成和立方体纹理的任意后处理/压缩可以根据期望且使用任意合适的处理系统来执行。在优选实施方式中,立方体纹理“离线”生成并存储,然后提供给图形处理流水线,以在需要立方体纹理时使用。这里还应注意,对于立方体纹理生成不需要或使用光的定义。
现在将参照图2、图5、图6、图7以及图8描述图3中所示的立方体纹理用于确定由于包围体20内的光22产生的光轴的效应。
图5-图8示意性示出了处理的主要步骤。
本实施方式操作为对于被渲染的包围体20上或内的各(“第一”)画面空间采样点25,使用立方体纹理30确定(由于来自光源22的光的散射而产生的)光轴23对如从视点(照相机)位置24看到的采样点25的颜色的效应。本质上,因为渲染包围体20上或内的用于场景的各图元,所以对于图元的各采样点25,图5中示意性示出的处理被执行为确定光轴23对讨论中的采样点25的效应(即,实际上确定应用于讨论中的采样点25的光轴颜色贡献)。
由此,图5示出了用于给定画面空间采样点25的处理。该处理对于要以本实施方式的方式处理的各(“第一”)画面空间采样点25重复。
如图5所示,本实施方式的处理在图形处理流水线的片段前端操作8的顶点着色阶段中开始(步骤51)。
如图6所示,开始顶点着色程序(步骤61)。确定考虑的画面空间采样点25关于的图元的自然空间中的顶点位置(步骤62),将自然空间中光源22的位置用作输入来确定从这些顶点至光源22的矢量(步骤63),以及将自然空间中的视点(照相机)位置24用作输入来确定从顶点至视点(照相机)位置24的矢量(步骤64)。然后这些值输出到片段着色器(步骤65)。
因此,如图5所示,顶点着色阶段51的结果是顶点位置、从顶点至光源22的矢量以及从顶点至视点(照相机)位置24的矢量(步骤52)。在片段着色器中继续处理(步骤53)。
如图7所示,在启动片段着色器程序(步骤71)之后,首先将可以根据期望设置的采样步长55用作输入来确定从讨论中的画面空间采样点25至视点(照相机)位置24的矢量26上的需要(“第二”)中间采样点(P1、P2……Pn)的数量n。还将颜色贡献(“AccumColor”)参数初始化为零(步骤72)。
然后开始沿着采样点(片段)至视点(照相机)矢量26的“光线行进”处理(步骤73)。本质上,在该处理中,对于画面空间采样点至视点矢量26上的一组中间采样点(P1、P2……Pn)中的各中间(“第二”)采样点27,确定对如从视点位置24看到的用于讨论中的画面空间(“第一”)采样点25的最终颜色的颜色贡献。各颜色贡献代表由于中间采样点27处的光散射而到达视点(照相机)24的、来自光源22的光的量。这样,可以提供如从视点24看到的光轴23的“真实”体积表示。
由此,如图7所示,对于采样点至视点(照相机)矢量26上的各(“第二”)中间采样点27,连同从中间采样点27至光源22的矢量28一起确定该采样点的位置(步骤74)。接着,确定要用于对立方体纹理30进行采样的矢量29,并且将该矢量用来确定用于讨论中的中间采样点27的阿尔法值来采样立方体纹理30(步骤75)。图8中示出了该处理。
如图8所示,处理通过确定从考虑的中间采样点27至光源22的矢量28(步骤81)开始。该处理将光22的位置和采样点27的位置用作它的输入。
下一步骤是将“局部校正”应用于采样点至光矢量28以确保采样立方体纹理30内的正确位置(步骤82)。因为如可以从图2中看到的,例如采样立方体纹理所从(所关于)的基准位置31可能不(并且通常将不)对应于考虑的采样位置27,使得简单地采用从采样点27至光源22的矢量28并将该矢量用于从用于立方体纹理30的基准位置31采样将不采样立方体纹理的正确部分,所以这是需要的。
为了应用该“局部校正”,如图2所示,确定包围体20的表面上从采样点27至光22的矢量28的相交点34,然后确定从定义立方体纹理30所关于的基准位置31至包围体20上的相交点34的矢量29,然后使用该矢量29来采样立方体纹理30(步骤83)。因此,如可以从图2看到的,这将可以在对应于包围体20表面位于所处理的采样点27与光源22之间的部分的相交点34处采样立方体纹理30。
然后,在对应于相交位置34的位置处采样立方体纹理30,以确定包围体20表面在该点处的阿尔法值(即,透明度)(步骤84)。立方体纹理30可以使用任意期望的纹理采样(滤波)处理(诸如双线性和/或三线性滤波)来采样(例如,在立方体纹理30为贴图的形式的情况下)。滤波例如可以由图形处理流水线的纹理模块(阶段)来提供。这然后给出指示从光源22落到采样点27上的光的量的阿尔法值(透明度值)。
现在返回图7,输出阿尔法值85然后用于确定讨论中的中间采样点27是否被官员22照亮(步骤76)。这将是阿尔法值不等于“1”的情况。在照亮采样点27的情况下,那么将某一颜色贡献加到颜色贡献参数(步骤77),然后考虑沿着采样点至视点(照相机)矢量26的一组采样点(P1、P2……Pn)中的下一中间采样点。在未照亮采样点27的情况下(即,在所采样的阿尔法值等于“1”的情况下),没有贡献夹到颜色贡献参数,然后考虑沿着采样点至视点(照相机)矢量26的一组采样点(P1、P2……Pn)中的下一中间采样点。在考虑了该组采样点(P1、P2……Pn)中的全部中间采样点时,结束光线行进处理(步骤78)。
然后,将颜色贡献参数的终值根据期望(并且根据需要)例如连同(例如,使用另一个纹理获得的)一个或更多个适当渲染计算的结果一起用来确定如从照相机位置24看到的用于画面空间采样点25的最终颜色(步骤79)。
如图5所示,最终色值然后输出到帧缓冲器(块缓冲器10)(步骤54)。
上述处理对于画面空间(“第一”)采样点中的全部并对于要渲染的全部图元(并且然后对于下一帧(如果适当)等)重复。
图9示出了使用本发明的技术(即,用单个立方体纹理30)渲染的各种光轴。各图像示出了渲染处理的结果,其中,光源22处于不同的位置中。如可以从图9看到的,当光源22的位置变化时,所渲染的光轴因此而变化。
图10和图11示意性示出了根据本发明的实施方式的另选“优化的”渲染处理的主要步骤。
如图10所示,在该实施方式中,在启动顶点着色器程序(步骤91)之后,连同顶点至视点(照相机)位置矢量上的受限的一组隔开(“第三”)采样点一起,确定从被认为与(“第一”)画面空间采样点25有关的图元的顶点至光源22的矢量(步骤92)。第三采样点例如当与一组中间(“第二”)采样点(P1、P2……Pn)相比时为较稀疏的采样点选择。这些处理将期望的第三采样点的数量98和光源22的位置用作输入。
对于顶点至视点(照相点)矢量上的各(“第三”)采样点,对于该采样点确定纹理采样矢量(步骤93),其中,纹理采样矢量为将用于对于对应第三采样位置采样立方体纹理30的矢量。由此,确定一组纹理采样矢量。各纹理采样矢量优选地为“经局部校正的”这种矢量,并且因此以对应于参照图8描述的方式来确定。如图10所示,该步骤将环境立方体纹理30、用于立方体纹理的基准位置31以及包围盒20的最小和最大范围用作它的输入。
接着,对于各(“第三”)采样点,使用对应所确定的纹理采样矢量来采样立方体纹理30,以确定讨论中的第三采样点的阿尔法值,并且将所采样的阿尔法值用来确定讨论中的采样点是否被光源22照亮(步骤94)。这将是阿尔法值不等于“1”的情况。
在对于一组(“第三”)采样点中的一些或全部完成了该处理时,确定采样点中的全部是否处于阴影中(即,未被光源22照亮)(步骤95)。在对于顶点至视点(照相机)矢量上的全部第三采样点就是这样的情况下,认为没有光轴存在。在情况不是这样的情况下,确定光轴存在(步骤96)。然后将该确定结果连同一组纹理采样矢量一起输出到片段着色器(步骤97)。然后,在片段着色器53中继续处理。
如图11所示,在启动片段着色程序(步骤100)之后,将颜色贡献(“AccumColor”)参数初始化为零(步骤101),并且将步骤96的确定的结果用于确定是否可以绕开片段处理操作中的一些或全部(步骤102)(例如因为假定没有光轴存在)。在光轴存在的情况下,那么处理继续到确定适当的颜色贡献。
由此,首先将(可以根据期望设置的)采样步长55用作输入来确定采样点至视点(照相机)矢量26上的所需(“第二”)中间采样点(P1、P2……Pn)的数量n(步骤103)。
然后开始沿着采样点至视点(照相机)矢量26的“光线行进”处理(步骤104),并且对于画面空间采样点至视点(照相机)矢量26上的各(“第二”)中间采样点27,确定该中间采样点27的位置(步骤105)。接着,确定要用于对立方体纹理30进行采样的矢量29,并且使用该矢量29来确定用于讨论中的中间采样点27的阿尔法值来采样立方体纹理30(步骤106)。
如图11所示,在该“优化的”实施方式中,用于对于各(“第二”)中间采样点27采样立方体纹理30的矢量29通过使用从顶点着色器51输出的一组纹理采样矢量97适当插值来确定。
输出阿尔法值然后酌情用于确定讨论中的中间采样点27是否被光源22照亮(步骤107)。在照亮采样点27的情况下,那么将某一颜色贡献加到颜色贡献参数(步骤108),然后考虑采样点至视点(照相机)矢量26上的一组中间采样点(P1、P2……Pn)中的下一中间采样点。在考虑了该组中间采样点(P1、P2……Pn)中的全部中间采样点时,结束光线行进处理(步骤109)。
然后,将颜色贡献参数的终值根据期望(并且根据需要)例如连同(例如,使用另一个纹理获得的)一个或更多个适当渲染计算的结果一起用来确定如从照相机位置24看到的用于画面空间采样点25的最终颜色(步骤110)。
如图5所示,最终色值然后输出到帧缓冲器(块缓冲器10)(步骤54)。再次,上述处理对于(“第一”)画面空间采样点中的全部并对于要渲染的全部图元(并且然后对于下一帧(如果适当)等)重复。
如本领域技术人员将理解的,在该实施方式中,渲染操作所需的资源通过以下来减少:有效地卸载在其他方面将在逐空间采样点(逐帧)基础上在片段着色器从顶点着色器中执行的处理中的一些,然后在对于画面空间采样点25确定适当颜色时依赖片段着色器中的(硬件)插值。
对本发明的上述实施方式的各种修改、添加以及另选会是可以的(如果期望)。
例如,虽然上面参照存储阿尔法值(透明度值)的立方体纹理30描述了处理,但将可以使立方体纹理30存储其他数据通道(诸如颜色通道),颜色数据然后用于光轴渲染处理中,例如以允许模拟所染色(着色)半透明表面的效果(例如,彩色玻璃窗等)。
信息还可以存储在单独的纹理中并从单独的纹理采样,该纹理例如可以对应于(适于)包围体20的透明或半透明部分21。
将可以减少确定透明度因数的第一采样点至视点矢量26上的第二采样点(P1、P2……Pn)的数量。例如,在(步骤94中)确定来自光源22的光未落到相邻第三采样点或相邻组的第三采样点的情况下,那么可以假定来自光源22的光未落到相邻第三采样点或相邻组第三采样点之间的任何第二采样点上。由此,在这种情况下,将不必对于这些第二采样点确定透明度参数,相反可以使用指示没有光落到讨论中的第二采样点上的透明度参数(例如“1”)。
用于各被照亮(“第二”)中间采样点的各颜色贡献可以为恒定颜色贡献(例如,这取决于光源22的特性,诸如颜色、强度、位置等),或者可以取决于透明度参数的值。例如,用于各中间采样点的所确定阿尔法值可以用作或用来导出乘数(例如用于修改用于光源的颜色)。
还将可以将不同强度的光散射、吸收和/或衰减等(例如,包围体内的不同位置处的)效应考虑在内,例如,以模拟在包围体内具有变化密度的雾的效应。例如,指示各中间采样点处的光散射、吸收或衰减强度的光散射、吸收或衰减参数可以根据对于包围体20定义的介质“密度”函数来确定,并且用于修改用于中间采样点的颜色贡献(例如,通过将光散射、吸收或衰减参数用作或用来导出乘数)。
例如可以对于包围体20的透明和/或半透明区域21对噪声纹理进行采样(即,包括透明度(阿尔法)值的随机阵列的纹理)并使用所采样值来修改用于讨论中的中间采样点的颜色贡献来模拟光轴的不均匀性的效应。噪声纹理可以集成到透明度指示图形纹理中或可以提供为单独的纹理,该单独的纹理例如可以对应于(或适于)包围体20的透明或半透明部分21。
还可以动画绘制噪声纹理,例如以模拟包围体20内的移动对象(例如,颗粒,诸如灰尘)和/或包围体20之外的移动对象(例如,植物等)的效应。
在优选实施方式中,光轴颜色分辨率以比基础场景的画面空间采样点更低的分辨率(例如,1/4)来评估,然后按比例放大,以匹配、模糊(例如,使用硬件)并且与基础场景混合。这可以减少光轴确定所需的处理。
还可以对于相邻的画面空间采样点25使用各采样点至视点矢量26上的不同中间采样点位置。例如,将可以从沿着相邻第一采样点至视点矢量26的轻微不同位置开始“光线行进”处理,然后在“光线行进”处理中使用恒定的中间采样点间隔,即,以执行交错采样。如本领域技术人员将理解的,这可以避免由于光线行进过程的量子化性质而产生的跨相邻画面空间采样点的“捆扎”伪影。
在优选实施方式中,透明度指示纹理(由此立方体纹理30)以贴图的形式来存储(即,在存储初始纹理数据阵列的多个版本(各版本具有不同的细节层次(分辨率))以使用的情况下)。在这种情况下,各低分辨率贴图层次优选地被下采样(优选地为因数2)为代表之前更高的分辨率贴图层次。
在这种情况下,纹理采样处理还优选地确定在哪个贴图层次(细节层次)处采样透明度指示纹理。要使用的贴图层次(细节层次)优选地基于离被认为是包围体上从采样点至光源的矢量的相交点的采样点的距离来选择。其他结构当然会是可以的。
虽然关于单个外部光源22描述了本实施方式,但立方体纹理30和包围体20可以用于确定并模拟来自包围体20之外的任意随机数量的光源的光轴的效应。在这种情况下,上面参照光源22描述的操作将对于各另外的外部光源单独重复,然后适当组合用于各外部光源的所确定光轴效应,以提供考虑的采样点处的全部外部光源的整体光轴效应。
还将可以组合本发明的处理与其他光轴模拟技术(例如在还存在包围体20内的光源的情况),和/或与任意一个或更多个其他渲染技术(根据期望)(诸如用于考虑阴影和/或反射等的效应的技术)。
在优选实施方式中,在期望渲染场景中的光轴和阴影和/或反射这两者的情况下,那么用于考虑光轴效应的同一立方体图还用于考虑阴影效应(以使用局部立方体图技术渲染阴影)和/或反射效应(以使用局部立方体图技术渲染反射)。这代表用于渲染复杂且高质量场景的特别方便且有效的技术。例如,如图9所示,在同一立方体图用于确定阴影和光轴的效应这两者的情况下,所渲染的阴影和光轴将在场景中适当地匹配。
如可以从上述看到的,本发明至少在其优选实施方式中提供了用于模拟光轴效应的有效且带宽高效机制,该机制可以将“静态”纹理图用于确定光轴的效应,而不是必须为了该目的而使用(并且经常重新生成)“动态”纹理图。这然后允许以带宽和处理高效的方式实现更高质量的光轴效应。
至少在本发明的优选实施方式中,这通过定义指示要渲染的场景内的包围体表面的透明度的纹理图且然后采样该纹理图以确定沿着采样点至视点(照相机)矢量的采样点关于包围体外部的光源的透明度值来实现。
Claims (22)
1.一种在渲染场景以输出时操作图形处理系统的方法,其中,定义了代表要渲染的场景的全部或部分的体积的包围体;所述方法包括以下步骤:
对于所述包围体上或所述包围体内的至少一个第一采样点,通过以下步骤来确定用于在从用于所述场景的视点位置看时代表该采样点的颜色:
对于沿着从所述第一采样点至用于所述场景的所述视点位置的矢量的多个第二采样点中的每个第二采样点,通过以下步骤确定指示从在所述包围体外部的光源落到所述第二采样点上的光的量的透明度参数:
确定用于对代表所述场景中的所述包围体的表面的透明度的图形纹理进行采样的矢量;以及
使用所确定的矢量来对所述图形纹理进行采样,以确定针对用于所述第二采样点的所述光源的透明度参数值;以及
使用针对所述多个第二采样点中的每个第二采样点的所确定的透明度参数值来确定用于在从用于所述场景的所述视点位置看时代表所述第一采样点的所述颜色。
2.根据权利要求1所述的方法,其中,通过以下步骤来确定用于对代表透明度的图形纹理进行采样的所述矢量:
确定所述包围体上与从所述第二采样点至所述光源的矢量相交的位置;以及
使用该相交位置来确定用于对所述图形纹理进行采样的所述矢量。
3.根据权利要求2所述的方法,其中,
使用所述包围体上的所确定的相交位置来确定用于对代表透明度的图形纹理进行采样的所述矢量包括:
使用所述包围体上的所确定的相交位置来确定从所述纹理的定义所关于的基准位置至所确定的相交点的矢量;并且
所述方法还包括以下步骤:
然后使用所确定的从所述基准位置至所确定的相交点的矢量来对指示透明度的纹理进行采样。
4.根据权利要求1所述的方法,其中,通过以下步骤来确定用于对代表透明度的图形纹理进行采样的所述矢量:
确定一组纹理采样矢量;以及
通过使用所述一组纹理采样矢量中的矢量进行插值来确定用于对代表透明度的图形纹理进行采样的所述矢量。
5.根据权利要求4所述的方法,其中,通过以下步骤来确定所述一组纹理采样矢量中的各纹理采样矢量:
确定所述包围体上与从第三采样点至所述光源的矢量相交的位置;以及
使用该相交位置来确定所述纹理采样矢量。
6.根据权利要求5所述的方法,其中,所述第三采样点包括沿着从被认为与所述第一采样点有关的图元的顶点至所述视点位置的所述矢量的所选采样点。
7.根据权利要求5或6所述的方法,所述方法还包括以下步骤:
对于所述一组纹理采样矢量中的至少一些纹理采样矢量,确定来自所述光源的光是否落到对应的第三采样点上;以及
基于该确定来确定针对一个或更多个第一采样点和/或第二采样点是否能够省略进一步处理。
8.根据前述权利要求中任一项所述的方法,所述方法还包括以下步骤:
对于至少一个第二采样点,对噪声纹理进行采样,以确定噪声纹理值;以及
在确定用于在从用于所述场景的所述视点位置看时代表所述第一采样点的颜色时使用所采样的噪声纹理值。
9.根据权利要求8所述的方法,所述方法还包括以下步骤:动画绘制所述噪声纹理。
10.根据前述权利要求中任一项所述的方法,其中,
使用针对所述多个第二采样点中的每个第二采样点的所确定的透明度参数值来确定对用于在从用于所述场景的所述视点位置看时代表所述第一采样点的所述颜色的颜色贡献;并且其中,所述方法包括以下步骤:
确定针对所述场景的多个这种颜色贡献;以及
确定分别用于在从用于所述场景的所述视点位置看时代表所述包围体上或所述包围体内的多个第一采样点中的每个第一采样点的多个颜色;
其中,以比用于代表所述多个第一采样点中的每个第一采样点的所述颜色低的分辨率来确定所述颜色贡献。
11.根据前述权利要求中任一项所述的方法,所述方法还包括以下步骤:针对所述包围体上或所述包围体内的第一采样点,通过以下步骤确定用于在从用于所述场景的所述视点位置看时代表该第一采样点的颜色:
对于沿着从所述第一采样点至用于所述场景的所述视点位置的矢量的多个第二采样点中的每个第二采样点,确定指示从在所述包围体外部的多个光源中的每个落到所述第二采样点上的光的量的透明度参数。
12.一种图形处理单元,该图形处理单元包括:
处理电路,该处理电路被构造成:对于代表要渲染的场景的全部或部分的体积的包围体上或该包围体内的至少一个第一采样点,通过以下步骤确定用于在从用于所述场景的视点位置看时代表该采样点的颜色:
对于沿着从所述第一采样点至用于所述场景的所述视点位置的矢量的多个第二采样点中的每个第二采样点,通过以下步骤确定指示从在所述包围体外部的光源落在所述第二采样点上的光的量的透明度参数:
确定要用于对代表所述场景中的所述包围体的表面的透明度的图形纹理进行采样的矢量;以及
使用所确定的矢量来对所述图形纹理进行采样,以确定用于所述第二采样点的所述光源的透明度参数值;以及
使用所述多个第二采样点中的每个第二采样点的所确定的透明度参数值来确定用于在从用于所述场景的所述视点位置看时代表所述第一采样点的所述颜色。
13.根据权利要求12所述的图形处理单元,其中,所述处理电路被构造成通过以下步骤来确定要用于对代表透明度的图形进行采样的所述矢量:
确定所述包围体上与从所述第二采样点至所述光源的矢量相交的位置;并且
使用该相交位置来确定用于对所述图形纹理进行采样的所述矢量。
14.根据权利要求13所述的图形处理单元,其中,所述处理电路被构造成:
通过使用所述包围体上的所确定的相交位置来确定从所述纹理的定义所关于的基准位置至所确定的相交点的矢量,来使用所述包围体上的所确定的相交位置来确定用于对代表透明度的图形纹理进行采样的所述矢量;以及:
然后使用所确定的从所述基准位置至所确定的相交点的矢量来对指示透明度的纹理进行采样。
15.根据权利要求12所述的图形处理单元,其中,所述处理电路被构造成:通过以下步骤来确定用于对代表透明度的图形纹理进行采样的所述矢量:
确定一组纹理采样矢量;以及
通过使用所述一组纹理采样矢量中的矢量进行插值来确定用于对代表透明度的图形纹理进行采样的所述矢量。
16.根据权利要求15所述的图形处理单元,其中,所述处理电路被构造成:通过以下步骤来确定所述一组纹理采样矢量中的各纹理采样矢量:
确定所述包围体上与从第三采样点至所述光源的矢量相交的位置;并且
使用该相交位置来确定所述纹理采样矢量。
17.根据权利要求16所述的图形处理单元,其中,所述第三采样点包括沿着从被认为与所述第一采样点有关的图元的顶点至所述视点位置的所述矢量的所选采样点。
18.根据权利要求16或17所述的图形处理单元,其中,所述处理电路被构造成:
针对所述一组纹理采样矢量中的至少一些纹理采样矢量,确定来自所述光源的光是否落到对应的第三采样点上;以及
基于该确定来确定针对一个或更多个第一采样点和/或第二采样点是否能够省略进一步处理。
19.根据前述权利要求中任一项所述的图形处理单元,其中,所述处理电路被构造成:
对于至少一个第二采样点,对噪声纹理进行采样,以确定噪声纹理值;并且
在确定用于在从用于所述场景的所述视点位置看时代表所述第一采样点的颜色时使用所采样的噪声纹理值。
20.根据权利要求19所述的图形处理单元,其中,所述处理电路被构造成:
动画绘制所述噪声纹理。
21.根据权利要求12-20中任一项所述的图形处理单元,其中,所述处理电路被构造成:
使用针对所述多个第二采样点中的每个第二采样点的所确定的透明度参数值来确定对用于在从用于所述场景的所述视点位置看时代表所述第一采样点的所述颜色的颜色贡献;
确定用于所述场景的多个这种颜色贡献;以及
确定分别用于在从用于所述场景的所述视点位置看时代表所述包围体上或所述包围体内的多个第一采样点中的每个第一采样点的多个颜色;
其中,以比用于代表所述多个第一采样点中的每个第一采样点的所述颜色低的分辨率来确定所述颜色贡献。
22.根据权利要求12-21中任一项所述的图形处理单元,其中,所述处理电路被构造成:
对于所述包围体上或所述包围体内的第一采样点,通过以下步骤确定用于在从用于所述场景的所述视点位置看时代表该第一采样点的颜色:
对于沿着从所述第一采样点至用于所述场景的所述视点位置的矢量的多个第二采样点中的每个第二采样点,确定指示从在所述包围体外部的多个光源中的每个落到所述第二采样点上的光的量的透明度参数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1515723.3 | 2015-09-04 | ||
GB1515723.3A GB2541928B (en) | 2015-09-04 | 2015-09-04 | Graphics processing systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106504310A true CN106504310A (zh) | 2017-03-15 |
CN106504310B CN106504310B (zh) | 2021-09-24 |
Family
ID=54345796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610801596.4A Active CN106504310B (zh) | 2015-09-04 | 2016-09-05 | 操作图形处理系统的方法、图形处理单元、介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10089776B2 (zh) |
JP (1) | JP6885693B2 (zh) |
CN (1) | CN106504310B (zh) |
GB (1) | GB2541928B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109741414A (zh) * | 2018-12-29 | 2019-05-10 | 北京金山安全软件有限公司 | 一种场景中半透明物体的渲染方法、装置及电子设备 |
CN112691378A (zh) * | 2020-12-23 | 2021-04-23 | 完美世界(北京)软件科技发展有限公司 | 图像处理方法、设备及可读介质 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2528655B (en) | 2014-07-24 | 2020-10-07 | Advanced Risc Mach Ltd | Graphics Processing Systems |
WO2016135498A1 (en) | 2015-02-27 | 2016-09-01 | Arm Limited | Graphics processing systems |
GB2543766B (en) | 2015-10-26 | 2018-02-14 | Advanced Risc Mach Ltd | Graphics processing systems |
US11004253B2 (en) * | 2019-02-21 | 2021-05-11 | Electronic Arts Inc. | Systems and methods for texture-space ray tracing of transparent and translucent objects |
CN112073795B (zh) * | 2019-06-10 | 2021-10-01 | 海信视像科技股份有限公司 | 视频数据处理方法、装置及显示设备 |
KR20210030147A (ko) * | 2019-09-09 | 2021-03-17 | 삼성전자주식회사 | 3d 렌더링 방법 및 장치 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1290907A (zh) * | 1999-06-30 | 2001-04-11 | 国际商业机器公司 | 实现运动模糊化的图像处理 |
US20050093857A1 (en) * | 2003-10-31 | 2005-05-05 | Microsoft Corporation | View dependent displacement mapping |
US20070257911A1 (en) * | 2006-05-03 | 2007-11-08 | Sony Computer Entertainment Inc. | Cone-culled soft shadows |
US20090179898A1 (en) * | 2008-01-15 | 2009-07-16 | Microsoft Corporation | Creation of motion blur in image processing |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL127314A0 (en) * | 1998-11-27 | 1999-09-22 | Algotec Systems Ltd | A method for forming a perspective rendering from a voxel space |
BR0010038A (pt) | 1999-02-19 | 2002-01-15 | Sony Computer Entertainment Inc | Sistema e método para a implementação de mapeamento de refração e meio para gravação |
JP2001092989A (ja) * | 1999-07-21 | 2001-04-06 | Sega Corp | 画像処理方法及びその装置 |
TW475155B (en) | 1999-09-10 | 2002-02-01 | Sony Computer Entertainment Inc | Method of and apparatus for rendering image, recording medium, and program |
JP2003099801A (ja) * | 2001-09-25 | 2003-04-04 | Toyota Motor Corp | 三次元モデルの画像表示方法、装置、プログラム及び記録媒体 |
US6876362B1 (en) | 2002-07-10 | 2005-04-05 | Nvidia Corporation | Omnidirectional shadow texture mapping |
US7212206B2 (en) | 2003-08-20 | 2007-05-01 | Sony Computer Entertainment Inc. | Method and apparatus for self shadowing and self interreflection light capture |
JP2005141646A (ja) * | 2003-11-10 | 2005-06-02 | Namco Ltd | プログラム、情報記憶媒体、及び画像生成システム |
JP2006099422A (ja) * | 2004-09-29 | 2006-04-13 | Konica Minolta Medical & Graphic Inc | 画像処理装置、およびプログラム |
US8773433B1 (en) * | 2006-04-12 | 2014-07-08 | Pixar | Component-based lighting |
NO324930B1 (no) * | 2006-06-13 | 2008-01-07 | Sinvent As | Anordning og fremgangsmate for beregning av rasterdata |
US7928993B2 (en) | 2006-07-28 | 2011-04-19 | Intel Corporation | Real-time multi-resolution 3D collision detection using cube-maps |
US7884819B2 (en) | 2006-09-27 | 2011-02-08 | International Business Machines Corporation | Pixel color accumulation in a ray tracing image processing system |
JP2011138445A (ja) | 2009-12-29 | 2011-07-14 | Kaadeikku Corporation:Kk | 透明物体表示回路 |
JP5827007B2 (ja) * | 2010-10-15 | 2015-12-02 | 任天堂株式会社 | ゲームプログラム、画像処理装置、画像処理システム、および画像処理方法 |
CA2737575A1 (en) * | 2011-04-18 | 2012-10-18 | Calgary Scientific Inc. | Configurable depth-of-field raycaster for medical imaging |
US9842424B2 (en) * | 2014-02-10 | 2017-12-12 | Pixar | Volume rendering using adaptive buckets |
KR102175162B1 (ko) * | 2014-03-24 | 2020-11-05 | 삼성전자주식회사 | 볼륨 렌더링 장치 및 그 동작방법 |
GB2528655B (en) | 2014-07-24 | 2020-10-07 | Advanced Risc Mach Ltd | Graphics Processing Systems |
WO2016135498A1 (en) | 2015-02-27 | 2016-09-01 | Arm Limited | Graphics processing systems |
GB2543766B (en) | 2015-10-26 | 2018-02-14 | Advanced Risc Mach Ltd | Graphics processing systems |
-
2015
- 2015-09-04 GB GB1515723.3A patent/GB2541928B/en active Active
-
2016
- 2016-08-25 US US15/247,272 patent/US10089776B2/en active Active
- 2016-09-02 JP JP2016171593A patent/JP6885693B2/ja active Active
- 2016-09-05 CN CN201610801596.4A patent/CN106504310B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1290907A (zh) * | 1999-06-30 | 2001-04-11 | 国际商业机器公司 | 实现运动模糊化的图像处理 |
US20050093857A1 (en) * | 2003-10-31 | 2005-05-05 | Microsoft Corporation | View dependent displacement mapping |
US20070257911A1 (en) * | 2006-05-03 | 2007-11-08 | Sony Computer Entertainment Inc. | Cone-culled soft shadows |
US20090179898A1 (en) * | 2008-01-15 | 2009-07-16 | Microsoft Corporation | Creation of motion blur in image processing |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109741414A (zh) * | 2018-12-29 | 2019-05-10 | 北京金山安全软件有限公司 | 一种场景中半透明物体的渲染方法、装置及电子设备 |
CN109741414B (zh) * | 2018-12-29 | 2023-06-20 | 超级魔方(北京)科技有限公司 | 一种场景中半透明物体的渲染方法、装置及电子设备 |
CN112691378A (zh) * | 2020-12-23 | 2021-04-23 | 完美世界(北京)软件科技发展有限公司 | 图像处理方法、设备及可读介质 |
CN112691378B (zh) * | 2020-12-23 | 2022-06-07 | 完美世界(北京)软件科技发展有限公司 | 图像处理方法、设备及可读介质 |
Also Published As
Publication number | Publication date |
---|---|
GB2541928B (en) | 2018-01-31 |
US10089776B2 (en) | 2018-10-02 |
US20170069129A1 (en) | 2017-03-09 |
JP2017076374A (ja) | 2017-04-20 |
GB2541928A (en) | 2017-03-08 |
CN106504310B (zh) | 2021-09-24 |
JP6885693B2 (ja) | 2021-06-16 |
GB201515723D0 (en) | 2015-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106504310A (zh) | 图形处理系统 | |
Kaufman et al. | Overview of volume rendering. | |
US9747718B2 (en) | System, method, and computer program product for performing object-space shading | |
US9171390B2 (en) | Automatic and semi-automatic generation of image features suggestive of motion for computer-generated images and video | |
CN106537459A (zh) | 图形处理系统 | |
US10614619B2 (en) | Graphics processing systems | |
US10430996B2 (en) | Graphics processing systems | |
US6573893B1 (en) | Voxel transfer circuit for accelerated volume rendering of a graphics image | |
US20110228055A1 (en) | Space skipping for multi-dimensional image rendering | |
CN107750373A (zh) | 使用光线跟踪渲染以生成可见性流 | |
GB2551388A (en) | Graphics processing systems | |
Peddie | Ray tracing: a tool for all | |
US10839600B2 (en) | Graphics processing systems | |
Crassin et al. | Aggregate G-buffer anti-aliasing | |
Andersson et al. | Adaptive texture space shading for stochastic rendering | |
Decaudin et al. | Volumetric billboards | |
McGuire et al. | Phenomenological transparency | |
Okuyan et al. | Direct volume rendering of unstructured tetrahedral meshes using CUDA and OpenMP | |
McGuire et al. | A phenomenological scattering model for order-independent transparency | |
GB2535792A (en) | Graphic processing systems | |
Pan | Dynamic Update of Sparse Voxel Octree Based on Morton Code | |
Kim et al. | Z‐Thickness Blending: Effective Fragment Merging for Multi‐Fragment Rendering | |
Tamás et al. | Practical Screen-Space Soft Shadows | |
Pettersson | Real-time rendering and dynamics of sparse voxel octree clouds | |
Shihan et al. | Adaptive volumetric light and atmospheric scattering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |