图形处理系统的制作方法_2

文档序号:9327880阅读:来源:国知局
节光源在所涉及的采样位置处的效果以在该采样位置处提供(表示或模拟)阴影效果的值。在这种情况下,在对帧区域进行渲染(着色)时将在完全未遮挡的情况下光源的光贡献优选地乘以光源可见性参数以得到从光源至所涉及的帧区域采样位置的“净”光贡献。
[0046]在另一优选实施方式中,(各个)帧区域采样位置的光源可见性参数直接指示从光源至所涉及的帧区域采样位置的“净”光贡献(因此将在对帧区域进行渲染(着色)时用作从光源至所涉及的帧区域采样位置的“净”光贡献)。
[0047]当然,其它布置也将是可能的。
[0048]在尤其优选的实施方式中,采样位置的光源可见性参数代表(指示)并且取决于有多少来自光源的光将落在所涉及的采样位置上。该参数然后可在渲染输出帧时用于模拟所涉及的采样位置处的光源的效果。
[0049]在一个优选实施方式中,针对(各个)帧区域采样位置确定将应用于所有颜色通道的单个光源可见性参数。在另一优选实施方式中,针对不同的颜色通道推导单独的光源可见性参数。在这种情况下,优选地针对各个颜色通道推导单独的光源可见性参数(尽管单独的光源可见性参数可能被确定为具有相同的值)。
[0050]可根据需要以任何合适的方式从所确定的帧区域的几何形状(例如,图元)的集合确定采样位置的光源可见性参数。
[0051]在尤其优选的实施方式中,估计有多少来自光源的光将落在所涉及的帧区域采样位置上。这可根据需要来估计,但是在优选实施方式中,优选地至少部分地基于在所涉及的帧区域采样点处光源是否可见以及有多少可见(即,所确定的在帧区域中可投射阴影的几何形状的集合中的任何几何形状是否将遮挡采样位置的光源)来估计。
[0052]在帧区域采样点处光源是否可见以及有多少可见可按照任何合适且期望的方式来确定,但是在优选实施方式中,这通过针对表示光源的位置的一个或更多个采样位置中的每一个,测试所涉及的帧区域采样位置与光源采样位置之间投射的光线是否将与所确定的可在所涉及的帧区域采样位置处投射阴影的几何形状的集合中的几何形状相交(即,是否被所确定的可在帧区域中投射阴影的几何形状的集合中的任何几何形状遮挡)来实现。
[0053]在该处理中,光源可由单个采样位置表示(在一个优选实施方式中就是这种情况)。如果光源是点光源,则这可能是适当的。
[0054]在优选实施方式中,光源由多个米样位置表不。在这种情况下,优选地针对表不光源的多个采样位置中的多个(优选地每一个)测试所涉及的帧区域采样位置与光源采样位置之间投射的光线是否将与可在帧区域采样位置处投射阴影的所确定的几何形状的集合中的任何几何形状相交(即,是否可被可在帧区域中投射阴影的所确定的几何形状的集合中的任何几何形状遮挡)。
[0055]利用多个采样点来表示光源使得本发明的方式的操作将能够以高效且有效的方式用于(并表示)面光源(即,具有面积的光源)。在这种情况下,光源优选地由最多达几百个采样位置(例如,60-600、64、128、256或512个采样位置)表示。
[0056]如果多个采样位置用于表示光源,则采样位置可按照任何合适且期望的方式布置。在优选实施方式中,采样位置被布置成表示(并对应于)所涉及的光源的采样位置阵列。因此,对于面光源,例如,优选地使用覆盖(并对应于)光源(所占据)的面积的采样位置阵列。还可使用采样位置的三维阵列(在优选实施方式中就是这样做的)。这可用于(例如)并表示具有体积的光源。
[0057]采样位置阵列可对应于(优选地对应于)所涉及的光源的形状(例如,面积或体积)。因此,对于矩形面光源,优选地使用光源采样位置的矩形阵列。对于具有不规则(非矩形或非立方体)形状的光源,还可使用光源采样位置的不规则形状的阵列,或者例如,对于具有不规则(非矩形或非立方体)形状的光源,矩形(或者对于具有体积的光源形状,立方体)阵列可与合适形状的掩模组合使用。
[0058]采样位置优选地规则地定位(规则地间隔开),这将有利于测试处理。因此,例如,可使用采样位置的规则(例如,矩形)阵列(网格)(在一个优选实施方式中使用)。
[0059]申请人认识到,使用光源采样位置的规则的矩形网格阵列可导致混叠(因此导致质量的损失),例如在矩形面光源和遮挡几何形状均对准坐标轴的(潜在)常见情况下。
[0060]因此,在优选实施方式中,使用被设计为减小混叠的影响(或风险)的采样位置阵列。为此可使用可减小混叠的风险的任何合适的采样位置布局。例如并且优选地,可向采样位置的各行和/或采样位置的各列增加变化的偏移,和/或采样位置网格的行和/或列无需与正使用它们来表示的光源对准(优选地不对准)。优选地,使用旋转网格采样位置布局。
[0061]光源采样点是否将从帧区域采样位置可见的测试可按照任何期望且合适的方式来完成。优选地利用栅格化操作来完成。(就这点,申请人认识到,利用所确定的“阴影投射”几何形状的集合确定哪些光源采样位置从帧区域采样位置可见是有效的栅格化操作,其以帧区域采样位置作为视点,以光源采样位置作为渲染目标)。
[0062]因此,在优选实施方式中,光源采样位置是否将从帧区域采样位置可见的测试通过将帧区域的所确定的阴影投射几何形状的集合中的几何形状(例如,图元)栅格化到与光源采样位置对应的渲染目标上(以帧区域采样位置作为视点)来完成。
[0063]该测试处理能够使用栅格化操作允许测试处理以高效且相对快速的方式执行。例如,由于针对各个帧区域采样位置将考虑几何形状的相同的集合,所以存储器存取和线程执行模式应该非常相干(coherent)。另外,如果使用规则间隔开的光源采样位置的行,则光源采样位置的各行的遮挡可按照扫描线方式来一起确定(然后例如利用适当的位移和逻辑或(OR)运算被写到渲染目标)。
[0064]另外,由于针对各个渲染目标采样位置(即,针对各个光源采样位置)存储的数据可(优选地)相对小(例如,仅I比特,如下面将进一步讨论的),所以测试的各个帧区域采样位置的渲染目标的大小可相对小(例如,仅几百比特),因此例如,适合于寄存器(从而避免了例如为了此处理而需要使用外部(主)存储器)。
[0065]任何合适且期望的栅格化技术可用于该测试处理。如果需要,还可标识并使用加速和/或停止(完成)栅格化处理的时机。例如,如果标识出占据整个光源包围视锥体的单个图元,则其可用于认为对于整个帧区域,光源被遮挡,针对该帧区域,该光源(或者至少针对所涉及的光源包围视锥体)的所有后续测试将被跳过。
[0066]在优选实施方式中,如果所考虑的光源为点光源(即,仅利用单个光源采样位置来表示),则光源采样位置是否将从帧区域采样位置可见的测试通过将帧区域的所确定的阴影投射几何形状的集合中的几何形状(例如,图元)栅格化到与帧区域采样位置对应的渲染目标上(以光源采样位置作为视点)来完成。这比例如从各个帧区域采样位置栅格化到表示光源采样位置的Ixl渲染目标上可能更有效。在这种情况下,栅格化输出将有效地为各个帧区域采样位置指示在该帧区域采样位置处点光源是否可见(或者例如,有多少来自光源的光落在所涉及的帧区域采样位置处(如下面将进一步讨论的))。
[0067]光源采样位置遮挡测试可用于以任何期望且合适的方式提供将用于所涉及的帧区域采样位置的光源可见性参数。
[0068]在一个优选实施方式中,确定各个光源采样位置是否被遮挡。在这种情况下,针对帧区域采样位置的光源采样位置遮挡测试的输出(渲染目标)可以是(优选地是)对于所涉及的帧区域采样位置,各个光源采样位置是否被遮挡的指示,例如并且优选地,为每光源采样位置单比特的形式,其可被设定为指示该光源采样位置是否被遮挡。在这种情况下,测试处理的渲染目标输出可具有每光源采样位置I比特,因此可(例如并且优选地)仅需要几百比特(使得它将例如适合于寄存器,因此可在不需要例如将它输出给外部(例如,主)存储器的情况下被本地生成并消耗)。
[0069]在这些布置中,然后优选地至少部分地从通过测试处理发现可见(或者发现被遮挡)的指示数量的光源采样位置确定所涉及的帧区域采样位置的光源可见性参数。例如并且优选地,可见光源位置的数量(例如,设定的比特的数量)可被计数然后用作(或者至少部分地用于推导)所涉及的帧区域采样位置的光源可见性参数。因此,在优选实施方式中,各个帧区域采样位置的光源可见性参数是基于所涉及的帧区域采样位置处的可见光源采样位置的数量的。
[0070]在一个实施方式中,各个帧区域采样位置的光源可见性参数是(或对应于)所涉及的帧区域采样位置处的可见光源采样位置与光源采样位置的总数之比。在完全未遮挡的情况下光源的总“贡献”然后可乘以(在优选实施方式中乘以)该比率以模拟所涉及的帧区域采样位置处的阴影效果。
[0071]如果需要,还可从光源采样位置遮挡测试推导落在帧区域采样位置上的光的更复杂的度量。这可导致遮挡测试的更多处理和遮挡测试的更大渲染目标输出,但是应该提供投射的阴影的更准确的表示。
[0072]在一个这样的优选实施方式中,代替仅针对各个未遮挡光源米样位置确定可见光源采样位置的比率(比例),确定将从所涉及的光源采样位置落在帧区域采样位置上的光的量的度量。在这种情况下,优选地,针对未遮挡的(可见)光源采样位置所涉及的光源区域确定强度参数(值)。在这种情况下,例如,强度参数值可例如针对所涉及的光源采样位置被存储在测试处理的渲染目标输出中,但是在优选实施方式中,随着处理连续的光源采样位置,维持运行的总强度值。
[0073]在这些布置中,所确定的落在帧区域采样位置上的总光量与在光源完全未遮挡的情况下将落在帧区域采样点上的光量之比然后例如可被确定并用作所涉及的光源采样位置的光源可见性参数(然后例如,在完全未遮挡的情况下光源的总“贡献”然后可乘以(在优选实施方式中乘以)该比率以模拟所涉及的帧区域采样位置处的阴影效果。另选地,所确定的落在所涉及的帧区域采样位置处的总光量可用作(或者至少部分地用于推导)所涉及的帧区域采样位置的光源可见性参数,然后例如在对采样位置进行渲染(着色)时直接用作从光源落在所涉及的帧区域采样位置上的光量。
[0074]落在帧区域采样位置上的光量可根据需要来确定。例如,它可基于(在优选实施方式中基于)帧区域采样位置距光源采样位置的距离(深度)。这可尤其适合于具有“体积”的光源。
[0075]另外地或另选地,落在帧区域采样位置上的光量可基于(在优选实施方式中基于)所涉及的光源采样位置生成的光量(在这种情况下,各个光源采样位置优选地具有与其关联的照明参数,该照明参数的值指示由光源的该部分生成的光量)。这在光源的输出可在其表面(或体积)上变化的情况下会很有用。
[0076]在这种情况下,然后优选地从所指示的从被发现在所涉及的帧区域采样位置处可见的光源采样位置落在帧区域采样位置上的光量确定帧区域采样位置的光源可见性参数。例如并且优选地,各个可见光源采样位置的光量可被求和或积分,然后用作(或用于推导)所涉及的帧区域采样位置的光源可见性参数。
[0077]然后这将允许帧区域采样位置的光源可见性参数考虑光源的哪些部分在帧区域采样位置处可见,而非仅考虑有多少光可见。
[0078]例如,帧区域采样位置的可见光源采样位置的比例(比率)或者落在帧区域采样位置上的光量之和可在生成可见性测试渲染目标输出之后确定,或者例如可随着测试处理进行(例如并且优选地)通过随着各个光源采样位置被测试维持运行计数或总数来确定。
[0079]如果需要,还可在光源采样位置遮挡测试中考虑其它因素。在一个优选实施方式中,该测试还考虑与所考虑的几何形状对象关联的透明度U值)。例如,如果使用“穿通” α (透明度),则用于确定在输出帧中的所涉及的位置处所涉及的几何形状将不透明还是透明的α查找表可(优选地)被包括并用于光源采样位置可见性测试。
[0080]还可例如使用与遮挡对象关联的透明度(α )值来调整所确定的落在帧区域采样位置上的光量(在优选实施方式中这样做)。例如,α值可用作或用于推导倍乘因子。然后这将允许更准确地考虑(遮挡)半透明表面的效果。在这样的优选实施方式中,各个颜色通道被单独地处理(考虑)(因此,为各个颜色通道推导单独的光源可见性参数)。然后这将允许更准确地考虑(遮挡)半透明有色(带色)表面的效果。
[0081]应该针对将要确定光源可见性参数的各个帧区域采样位置重复上述处理。如上所述,采样位置的光源可见性参数优选地是可用于在后续渲染处理中调整光源以模拟所涉及的采样位置处的阴影效果的值。因此在优选实施方式中,各个光源可见性参数是可用于调整光源的介于O和I之间的值。当然,其它布置也将是可能的。
[0082]确定的帧区域采样位置的光源可见性参数可根据需要用于模拟渲染的输出帧区域
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1