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

文档序号:9327880阅读:来源:国知局
中的(确定的)阴影效果。如上所述,所确定的光源可见性参数优选地用于在确定将用于帧区域(画面空间)采样位置的渲染的输出颜色时调整采样位置处的光源。
[0083]因此,在尤其优选的实施方式中,本发明的方法还包括(并且本发明的图形处理系统还被配置为)在渲染帧区域的输出版本时使用确定的正渲染的帧区域的光源可见性参数,最优选地,调整在帧区域的输出版本的各个采样位置处所涉及的光源的效果。如上所述,这可包括提升所确定的光源可见性参数以给出帧区域的输出版本的各个采样位置的光源可见性参数。
[0084]所确定的帧区域的光源可见性参数可根据需要提供用于在渲染帧区域时使用。例如,它们可被写入(存储在)帧区域光源可见性缓冲中,然后例如在后续渲染处理中被读取(并使用)。在一个优选实施方式中就是这样做的。在这种情况下,光源可见性缓冲可例如被缓存并保持在“芯片上”以在后续渲染处理中使用,或者它可例如被写出到主存储器然后在将要使用时被读回。
[0085]在这样的优选实施方式中,例如并且优选地,通过将光源可见性缓冲缓存和/或存储在图形处理流水线的寄存器中来将它保持在“芯片上”以在后续渲染处理中使用。(如上所述,本发明有利于这样的操作,因为存储各个帧区域采样位置的光源可见性参数所需的数据相对较小。)
[0086]将光源可见性缓冲存储在“芯片上”意指光源可见性数据可被“本地”应对和处理,而无需例如将数据结构写出到主存储器然后再次将它们读回。这进一步节省了功率和存储器带宽。
[0087]话说回来,如果需要,也可将所确定的光源可见性参数和光源可见性缓冲写出到主存储器以便于稍后使用(然后在将要使用它们时将值从主存储器读回)。在这种情况下,例如,可按照不同的(例如,较低的)分辨率写出和保存参数值,然后例如在将要使用它们时将保存的值提升至较高分辨率。
[0088]由于每采样位置地(基于采样位置)确定光源可见性参数,还可确定采样位置的光源可见性参数,然后“立即”将它用于所涉及的采样位置的后续(例如,最终)渲染处理中。
[0089]实际上,本发明的重要优点在于,由于它确定采样位置的光源可见性参数(即,阴影效果),这有利于在所涉及的采样位置的渲染处理中使用所确定的参数,而无需另外处理“阴影指示数据”或者另外在生成其它“阴影指示数据”的同时保持该数据。另外,一个采样位置的光源可见性参数可按照“自含”方式来确定(使得它将在其它采样位置的光源可见性参数被确定之前“完成”(无需等待其它采样位置的光源可见性参数被确定)。
[0090]因此,在尤其优选的实施方式中,一旦为帧区域采样位置确定光源可见性参数,就(立即)使用该确定的光源可见性参数来渲染所涉及的帧区域采样位置。因此,在尤其优选的实施方式中,采样位置的光源可见性参数确定与使用所确定的光源可见性参数的采样位置的后续着色(渲染)处理组合(整合)。然后这将不再需要存储光源可见性缓冲。
[0091]因此,在尤其优选的实施方式中,本发明的方法包括(并且本发明的系统被配置为)确定帧区域的采样位置的光源可见性参数,然后在确定帧区域的另一(例如并且优选地,下一)采样位置的光源可见性参数之前,使用该光源可见性参数来确定帧区域的采样位置(优选地该采样位置)的渲染的输出值。相应地,在尤其优选的实施方式中,本发明的方法包括(并且本发明的系统被配置为)确定帧区域的采样位置的光源可见性参数,然后使用该光源可见性参数来依次确定帧区域的采样位置的渲染的输出值。
[0092]将从上文理解,在那些布置中,如果在渲染所涉及的帧区域采样位置时直接使用确定的光源可见性参数,或者光源可见性缓冲被保持在“芯片上”,则光源可见性参数将在图形处理流水线中本地生成并使用,而无需(并且避免了需要)将任何数据写到主存储器以及从主存储器读取任何数据。然后这避免了光源可见性参数需要使用任何主存储器带宽等(即,光源可见性参数可被“本地”生成并消耗)。然后通过不再需要向外部存储器读取和写入,这可允许以更加带宽保护方式来考虑阴影效果。这继而可使得系统性能增加并且功耗降低。
[0093]因此,在尤其优选的实施方式中,所确定的光源可见性参数没有被写入主存储器,而是在没有将它们写入主(外部)存储器的情况下在图形处理系统(流水线)内使用。
[0094]尽管上面具体参照单个帧区域的处理描述了本发明,将理解,应该(优选地)针对帧所分割成的各个区域(例如,拼块)来重复所述处理(至少在光源可投射阴影的地方)。
[0095]类似地,优选地针对帧序列中的多个帧,例如并且优选地,针对包括可投射阴影的光源的待渲染的帧序列中的各个帧,重复所述处理。
[0096]另外,尽管上面具体参照关于给定光源的处理描述了本发明,将理解,本发明可扩展至任意数量的光源。在这种情况下,应该(优选地)针对可在帧区域中投射阴影的各个光源重复本发明的确定光源可见性参数的处理。优选地针对所考虑的各个光源确定单独的光源可见性参数集合(例如,光源可见性缓冲,如果使用的话)。在这种情况下,可投射阴影的几何形状集合的初始确定可(例如并且优选地)通过一次考虑所有光源来分摊。
[0097]本发明可例如在“世界空间”中考虑(测试)几何形状(在一个优选实施方式中就是这样做的)O然而,根据什么硬件可用以及需要什么结果,另外地或另选地,如果需要可在画面空间中考虑几何形状(执行计算)。
[0098]还可使用本发明的技术来确定由移动物体投射的阴影效果(S卩,考虑“运动模糊”)。本发明有利于此,因为它为考虑阴影效果提供了(除了别的以外)存储器和带宽高效机制。
[0099]为了考虑运动模糊,优选地针对(例如,在帧之间的时间周期期间)多个相应不同的时间实例中的每一个确定帧区域(以及所涉及的光源)的多个光源可见性参数集合,其中几何形状在帧中的位置根据执行光源可见性参数确定的时间实例以及所涉及的对象的运动而变化。换言之,优选地基于渲染的帧中的对象的已知运动确定(各个)帧区域采样位置的多个光源可见性参数。(因此,代替几何形状被假设为在帧中具有单一位置,基于(在帧的时间间隔期间)几何形状的运动针对几何形状在帧中的多个不同的位置确定光源可见性参数。)
[0100]在这种情况下,例如,可针对几何形状在帧内的起始位置和结束位置确定光源可见性参数,和/或如果需要,也可考虑帧内的一个或更多个中间位置。还可例如采用几何形状在帧内的起始位置及其速度来确定几何形状的相应时间间隔位置。
[0101]针对各个时间实例(几何形状位置)确定的相应光源可见性参数然后可(优选地)被组合以为各个帧区域采样位置提供适当“组合的”光源可见性参数,该参数将相应地更好地考虑了在帧的时间间隔期间几何形状的运动。例如,可为各个帧区域采样位置确定帧区域采样位置的“时间间隔开的”光源可见性参数的平均值,然后在渲染帧时将其用作所涉及的帧区域采样位置的光源可见性参数。
[0102]在帧的时间间隔期间按照时间实例采样可例如离散地进行,或者利用连续冲突检测算法来进行。
[0103]如果需要,还可执行更复杂的光源可见性参数确定,以例如考虑透明表面。在这种情况下,该方法可扩展至通过为各个帧区域采样位置生成最小几何形状深度值和最大几何形状深度值,而不是单个深度值,来应对透明度。
[0104]例如,在优选实施方式中,为了应对透明表面,首先确定不透明几何形状的深度缓冲,然后渲染半透明几何形状以生成表示半透明几何形状的位置的新深度缓冲。这两个深度缓冲然后可用作各个帧区域采样位置的最小深度和最大深度(其间隔将包含所关注的所有几何形状)。然后可如上所述执行光源可见性参数操作,基于各个深度缓冲值生成光源包围视锥体。(在这种情况下,如果不存在覆盖帧区域采样位置的不透明几何形状,则最大深度值可例如被设定为最大场景范围,或者例如,可确定半透明几何形状的最小深度和最大深度。)
[0105]如果需要,还可确定半透明几何形状的多个层的深度,并且相应地确定多个光源包围视锥体以用于标识在给定帧区域采样位置处半透明几何形状的各个层是否遮挡光源以及哪些层遮挡光源。然后这将允许为帧区域采样位置确定多个光源可见性参数值(例如,代表各个半透明几何形状层),因此允许提供更复杂的阴影效果模拟(例如,考虑几何形状中的多个半透明层)。
[0106]例如,多“层”光源可见性参数可用于确定光如何穿过半透明几何形状的层以及例如有多少光传播到对象中。在这种情况下,可考虑所有半透明几何形状(层),或者例如可仅考虑选定数量的层(例如,通过对几何形状进行深度排序并且仅考虑最靠近光源的前几个对象(层))。
[0107]还可例如对帧区域的多个版本(例如,一个版本仅考虑实心(不透明)几何形状,然后一个或更多个其它版本考虑半透明几何形状)进行渲染(着色),然后按照适当方式组合(例如,混合)帧区域的所述多个版本以提供帧区域的输出版本。
[0108]本发明可用在任何合适且期望的图形处理系统中(通常,可准备渲染的帧的深度缓冲的任何系统(例如,在深度⑵前处理(pre-pass)中))。
[0109]本发明尤其适合于随拼贴渲染器(图形处理系统)使用。它尤其适合于拼贴延迟渲染器,但是如果需要,也可随其它拼贴方法使用,例如“拼贴前向渲染”。因此,在优选实施方式中,图形处理系统是拼贴渲染器,优选地拼贴延迟渲染器。
[0110]还可在非拼贴渲染器中使用本发明,例如并且优选地,通过确定帧区域的光源可见性参数并且将它们存储在可见性缓冲中,然后在单独的渲染处理中执行最终渲染(利用存储的光源可见性参数)。
[0111]图形处理系统优选地能够在传统图形环境下操作以例如执行传统图形渲染处理,并且还能够在计算环境下操作以能够执行GPGPU处理。
[0112]如本领域已知的,图形处理系统的栅格化器将生成待渲染的图形片段以为期望的图形输出(例如,待显示的帧)的采样点生成渲染的图形数据。由栅格化器生成的各个图形片段具有与其关联的图形输出的采样点集合,并且将用于为与该片段关联的采样点集合中的一个或更多个采样点生成渲染的图形数据。
[0113]栅格化器可被配置为生成片段以用于以任何期望且合适的方式进行渲染。如本领域已知的,栅格化器将接收例如待栅格化的图元,依据采样点位置集合测试那些图元,并且相应地生成表示图元的片段。
[0114]如本领域已知的,渲染器应该处理由栅格化器生成的片段以为片段所表示的(覆盖的)采样点生成渲染的片段数据。这些渲染处理可包括例如片段着色、混合、纹理映射等。在优选实施方式中,渲染器为可编程片段着色器的形式或者包括可编程片段着色器。
[0115]图形处理系统还可包含图形处理流水线可包含的任何其它合适且期望的处理级,例如早期深度(或早期深度和模板)测试仪、后期深度(或深度和模板)测试仪、混合器、拼块缓冲器、写出单元等。
[0116]图形处理系统优选地包括至少本地存储器(例如(芯片上)缓冲器)和/或寄存器,其可用于存储光源可见性参数确定处理所需的数据以及所确定的光源可见性参数。如果存在的话,拼块缓冲器如果需要可用于此目的。
[0117]本发明可用于图形处理系统可用于生成的所有形式的输出,例如用于显示的帧、渲染至纹理输出等。
[0118]在尤其优选的实施方式中,本发明的各种功能在生成并输出渲染的片段数据(其例如被写到显示装置的帧缓冲器)的单个图形处理平台上执行。
[0119]本发明可实现在任何合适的系统中,例如适当配置的基于微处理器的系统。在优选实施方式中,本发明实现在基于计算机和/或微处理器的系统中。
[0120]本发明的各种功能可按照任何期望且合适的方式实现。例如,本发明的功能可根据需要以硬件或软件来实现。因此,例如,除非另外指示,否则本发明的各种功能元件和“装置”可包括能够操作以执行各种功能等的合适的处理器、控制器、功能单元、电路、处理逻辑、微处理器布置等,例如适当专用的硬件元件和/或可被编程以按照期望的方式操作的可编程硬件元件。
[0121]这里还应该注意的是,本领域技术人员将理解,本发明的各种功能等可被复制和/或在给定处理器上并行执行。同样,如果需要,各种处理级可共享处理电路等。
[0122]以实现上述特定功能所需的任何硬件为条件,图形处理系统可另外包括图形处理系统所包括的有用功能单元等中的任一个或更多个或全部。
[0123]本领域技术人员还将理解,本发明的所有描述的方面和实施方式可酌情包括(优选地包括)本文所述的任一个或更多个或全部优选和可选特征。
[0124]依据本发明的方法可至少部分地利用软件(例如,计算机程序)来实现。因此将看出,当从进一步的方面看时,本发明提供在安装在数据处理装置上时具体适于执行本文所述的方法的计算机软件、包括在程序元
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1