采用动态控制的采样提高渲染性能的制作方法

文档序号:11584596阅读:125来源:国知局
采用动态控制的采样提高渲染性能的制造方法与工艺

本发明涉及计算机图形处理技术领域,尤其是采用动态控制的采样提高渲染性能。



背景技术:

三维(3d)图形是使用几何数据的3d表现所呈现的图形(例如,视频帧或静止图像)。某些3d图形可能包括对象彼此重叠的场景,在观看时离观看者的视角较近的对象可能会阻挡(或部分地阻挡)离观看者的视角较远的对象。与在不同深度的渲染重叠的对象相关联的复杂度可以被称为深度复杂度。

应当注意,随着给定帧中彼此重叠的对象数目的增加,深度复杂度也因此增加,而且图形处理器可能需要多次(例如,每个重叠对象一次)处理重叠区域内的像素以确定如何渲染每个像素。因此,深度复杂度的增加会降低图形处理器渲染帧的速度。由于图形处理器要保持特定的帧速率(例如,每秒60帧),因此需要改进渲染过程的性能以避免降低到所需的帧速率以下。



技术实现要素:

在一个方面,本文公开的发明构思的实施例涉及一种装置。该装置可以包括一非瞬时性处理器可读介质和与所述非瞬时性处理器可读介质通信连接的图形处理器。所述图形处理器被构形用以维持访问存储在所述非瞬时性处理器可读介质中的多个帧缓存集。两个或者多个帧缓存集被构形用以支持不同的每像素采样数。所述图形处理器可以经进一步被构形用以确定使用第一帧缓存集处理的第一帧的性能度量是否超过一阈值。当所述第一帧的性能度量超过所述阈值时,所述图形处理器可以选择与第一帧缓存集相比具有减少的每像素采样数的第二帧缓存集,并且使用具有减少的每像素采样数的所述第二帧缓存集处理第二帧以显示给观看者。

在又一方面,此处公开的发明构思的实施例涉及一种装置,该装置可以包括一个非瞬时性处理器可读介质和与所述非瞬时性处理器可读介质通信连接的图形处理器。所述图形处理器被构形用以维持访问存储在至少一个所述非瞬时性处理器可读介质中的多个帧缓存集。两个或者多个帧缓存集被构形用以支持不同的每像素采样数。所述图形处理器可以经进一步被构形用以确定使用第一帧缓存集处理的第一帧的性能度量是否超过了一上限阈值或者降低到一下限阈值以下。当所述第一帧的性能度量超过所述上限阈值时,所述图形处理器可以选择与第一帧缓存集相比具有减少的每像素采样数的第二帧缓存集,并且使用具有减少的每像素采样数的所述第二帧缓存集处理第二帧以显示给观看者。当所述第一帧的性能度量降低到所述下限阈值以下时,所述图形处理器可以选择与第一帧缓存集相比具有增加的每像素采样数的第二帧缓存集,并且使用具有增加的每像素采样数的所述第二帧缓存集处理第二帧以显示给观看者。

另一方面,此处公开的发明构思的实施例涉及一种方法,该方法可以包括:提供访问多个缓存集的图像处理器,其中两个或者多个帧缓存集可以支持不同的每像素采样数;确定使用第一帧缓存集处理的第一帧的性能度量是否超过一阈值;当所述第一帧的性能度量超过所述上限阈值时,选择与第一帧缓存集相比具有减少的每像素采样数的第二帧缓存集;使用具有减少的每像素采样数的所述第二帧缓存集处理第二帧;以及显示所述第二帧给观看者。

应当理解,前文总说明和下文详细描述仅仅是示例和示范性的,不应该限制此处公开的发明构思和权利要求的范围。引入并作为说明书一部分的附图阐明了此处发明构思的实施例,并与总说明一起解释此处公开的发明构思的原理和特征。

附图说明

当考虑下面的实施方式的详细描述时,可以更好地理解此处公开的发明构思的技术方案。所述的详细描述可以参考附图,但为了清晰起见,附图不一定按比例绘制,其中一些特征可能被夸大,一些特征可能被省略,一些特征可能按照图式来表示。附图中相同的附图标记可以表示和指代相同或相似的元件、特征或功能。其中:

图1是本发明所述的实施例的图形处理器的框图;

图2是本发明所述实施例的基于缓存集选择过程的描述渲染性能示意图;

图3是本发明所述的实施例的描绘图形渲染方法的流程图。

具体实施方式

在详细解释此处公开的发明构思的至少一个实施例之前,应当理解,本发明构思不限于在下面的描述中或附图说明中所提到的应用、实施细节、所提出的部件或步骤或方法的安排。在以下对此处发明构思实施例的详细描述中,阐述了许多具体细节以便更透彻的理解此发明构思。然而,显而易见地,对受益于此处公开的发明构思的本领域的普通技术人员,可以在没有这些具体细节的情况下实践此处所公开的发明构思。在其它情况下,不再详细描述已知特征以避免使本公开复杂化。此处公开的发明概念还可以有其它实施例或者用其它方式去实践或执行。此外,应当理解,此处使用的措辞和术语是为了描述实施例,而不应该被认为是对实施例的限制。

本文所使用的位于附图标记之后的字母是为了指代实施例中相似的特征或元件,所述相似的特征或元件可以类似但不一定与先前描述的具有相同附图标记(例如,1a,1b)的元件或特征完全相同。使用这样的简化符号仅仅是为了方便,并不应被理解为以任何方式限制此处公开的发明构思,除非另有明文规定。

此外,除非另有明文规定,“或”是指包括性或而不是排它性或。例如,条件a或b由以下任一项满足:a为真(或存在)和b为假(或不存在),a为假(或不存在)和b为真(或存在),以及a和b都是真(或存在)。

此外,使用“一”来描述本发明构思实施例中的元件和组件。仅仅是因为这样既方便,又能给出本发明构思的一般意义;“一”意味着包括一个或至少一个,而且单个也包括复数,除非明显意味着其它方面。

最后,如此处所使用的对“一个实施例”或“一些实施例”的任何引用意味着结合该实施例描述的特定元件、特征、结构或特性包括在此处公开的发明构思的至少一个实施例中。在说明书中多个地方出现的短语“在一些实施例中”不一定都指同一个实施例,并且此处公开的发明构思的实施例可以包括本发明清晰描述的或固有的一个或多个特征,还包括两个或多个上述特征组成的子组合的组合,以及本发明没有进行清晰描述的或非固有的任何其它特征。

现在将详细描述此处公开的发明构思的示例性实施例,将结合附图对实施例进行描述。

此处公开的发明构思实施例中的图形处理器,被构形用以通过逐帧地动态控制每像素抗混叠采样数(可以简单地称为采样)以帮助提高渲染性能。图形处理器可以采用抗混叠的方法帮助提高图像质量。为了给图形应用程序渲染可以代表3d空间中物体的帧,在首次初始化所述图形应用程序时,图形处理器可以选择帧缓存的每像素抗混叠采样数的帧缓存。然后,所述图形应用程序可以使用所选择的采样数创建一组3d渲染帧缓存面。可预期的,动态地控制每像素采样数,能使图形处理器快速适应操作条件并调整渲染性能,而不对显示质量造成显著的不良视觉异常现象或影响。

参考图1,图1给出了根据此处公开的发明构思配置的示例性图形处理器100的框图。图形处理器100可以包括一个或多个专用处理设备、专用集成电路(asic)、现场可编程门阵列(fpga)或多种其它类型被构形具有图形处理功能的处理器或处理设备。所述图形处理器100被构形用以访问存储在帧缓存存储器110(非瞬时性处理器可读介质)中的多个帧缓存集102和104。所述多个帧缓存集102和104可以支持不同的每像素采样数(分别用106和108来表示)。可预期的,所述图形处理器100可以产生帧缓存集102的每像素样本106,并使用帧缓存集102进行抗混叠处理(例如,多重采样反混叠和/或其它处理)。所述图形处理器100还可维持一个或多个每像素较少采样108的帧缓存集104。通过减少每像素采样108数量,为所述图形处理器100提供使用帧缓存集104相比于使用帧缓存集102可以更快地处理帧的选择。

应当理解,虽然所述帧缓存集102和104被表示为分别支持每像素8个和4个采样,但是这样的描述仅仅是一种示例,并不意味着对此处公开的发明构思的限制。可预期的,由多个所述帧缓存集102和104支持的每像素采样数可以变化,而不脱离此处所公开的发明构思的范围。还可以预期的,访问所述图形处理器100的帧缓存集102和104的数量可以变化,而不脱离此处所公开的发明构思的范围。

进一步预期的,所述帧缓存集102和104不必作为物理独立的缓存来使用。例如,所述帧缓存集102和104可以存储在所述帧缓存存储器110的相同部分,并且所述图形处理器100可以引用所述帧缓存集102的子集作为所述帧缓存集104。设想多个所述帧缓存集102和104能够以多种其它方式存储,而不脱离此处所公开的发明构思的范围,只要多个所述帧缓存集102和104的每个帧缓存集可以被所述图形处理器100识别和独立访问。

应当注意,在某些实现方式中,每个帧缓存集102和104中的高度逐像素分辨率可以被构形为相同,只有所述帧缓存集102和104之间的每像素采样数不同。在一些实施例中,最大每像素采样数的帧缓存集可以被指定为被所述图形处理器100使用的默认帧缓存集。然而,应当理解,这样的配置可以改变,而不脱离此处所公开的发明构思的范围。

图2是表示帧缓存集102和104如何基于渲染性能动态选择的图示。为了说明的目的,假设图形处理器100需要保持每秒x个帧的速率,这意味着每个帧的渲染时间不能超过最大值1/x秒(作为最大渲染时间并在图2中作为示例)。为了帮助防止实际渲染时间超过允许的最大渲染时间,需要定义可配置的上限阈值(系统确定的或用户定义的),使得当所述图形处理器100遇到比所定义的上限阈值花费更多的时间来渲染的帧(例如,具有高深度复杂度)时,所述图形处理器100可采取适当的措施以便根据需要减少渲染时间。

更具体地,如图2所示,所述图形处理器100被构形用以使用默认帧缓存集102直到帧200,所述帧200是比已确定的上限阈值花费更多时间来渲染的帧。所述图形处理器100随后可决定从帧202开始选择帧缓存集104来减少每像素采样数,从而有效地减少帧202之后的总渲染时间。所述图形处理器100可继续使用帧缓存集104以渲染其它后续帧,且如果使用帧缓存集104渲染的另一帧所花费的时间再一次比以确定的上限阈值多,那么图形处理器100可以确定通过选择支持进一步减少的每像素采样的帧缓存集来减少每像素采样数。

图形处理器100还可以设置在适当时候增加每像素采样数的选项。例如,假设图形处理器100继续使用帧缓存集104来渲染帧,并且进一步假设所述帧的渲染变得不那么复杂(例如,具有降低的深度复杂度),直到花费的渲染时间比配置的下限阈值(可以是系统确定的或用户定义的)还少的帧204。图形处理器100随后可决定从帧206开始增加每像素采样数。以此方式,图形处理器100最终可使用具有最多每像素采样的默认帧缓存集102,如果渲染性能允许它发生。

应当理解,虽然所述上限阈值和下限阈值保持与图2中所示的相同,但这种配置仅仅是一种示例,并不意味着对此处公开的发明构思的限制。可预期的,根据所使用的帧缓存集,可以配置不同的上限阈值和/或下限阈值。例如,如果使用帧缓存集102,那么可以将上限阈值和/或下限阈值设置为某些数值,但是如果使用帧缓存集104,那么上限阈值和/或下限阈值就改变为不同的数值。

可预期的,所述图形处理器100可继续监视帧的渲染时间,并且确定每像素采样数是否应该减少、增加或保持相同。因此,所述图形处理器100可基于是否应该减少、增加或维持每像素采样数而继续选择多个帧缓存集102和104中的最合适的帧缓存集。当采用一种与正常操作模式(例如,当使用默认帧缓存集102时)不同的性能增强操作模式(例如,当使用帧缓存集104时)时,以上述方式配置的所述图形处理器100产生的视觉差异非常小,因为所述图形处理器100不需要改变场景的内容和像素着色器的复杂性。相反,所述图形处理器100可以逐帧地动态控制每像素采样数,并且当允许的时候可以增加每像素采样数。另外,由于在模糊、低可见度情况下(例如通过云或烟雾)查看时经常遇到高深度复杂性场景,所以在性能增强操作模式下,抗混叠质量的降低可以忽略不计。

参考图3,图3描绘了一个根据此处公开的发明构思来配置的示例性的图形渲染方法300的流程图。如图3所示,分析先前渲染的帧以帮助确定如何处理随后的帧。更具体地,起决定性的步骤302可以确定前一帧的渲染时间是否超过上限阈值。如果先前帧的渲染时间超过所述上限阈值,那么可以在选择步骤310中选择具有减少的每像素采样数的帧缓存集(与当前使用的帧缓存集相比)处理一个或多个后续帧。应当注意,如果当前正在使用的帧缓存集是具有最少每像素采样数(即,每像素采样数不能进一步减少)的帧缓存集,那么所述帧缓存集可以保持不变。

在某些实施方案中,在起决定性的步骤304中可以考虑一些可选择的(和/或此外)控制条件,以确定是否应选择具有减少的每像素采样数的帧缓存集。在此些实施方案中,如果可选择的控制条件表明应选择具有减少的每像素采样数的帧缓存集,那么即使先前帧的渲染时间未超过所述上限阈值,仍可调用所述选择步骤310。

可预期的,可以使用各种类型的条件作为可选择的控制条件。例如,如果检测到观看者的注视处于高深度复杂度区域的附近,例如,在云层中或云层附近(如,飞行模拟器应用),那么需要执行允许选择具有减少的每像素采样数的帧缓存集的条件。其它示例性的控制条件还可以包括频率/速率切换限制器,因为帧缓存集之间的切换太频繁可能引起明显的伪影。在某些实施例中,还可以添加恢复时间参数以减缓帧缓存集的复位。其它条件,例如,当前正在使用的帧缓存集是否具有最小或最大每像素采样数,以及先前帧的渲染时间是否下降到低于下限阈值,以及这些条件的组合,都可以在起决定性的步骤304中被考虑。应当理解,在不脱离此处公开的发明构思的范围的情况下,也可以考虑上文未具体提及的其它类型的条件。

此外,在某些实施例中,可调用起决定性的步骤306以进一步确定先前帧的渲染时间是否下降到下限阈值以下。如果前一帧的渲染时间没有下降到下限阈值以下,则不需要改变,并且在步骤312中可以继续使用当前正在使用的帧缓存集。另一方面,如果前一帧的渲染时间下降到所述下限阈值以下,则可在选择步骤314中选择具有增加的每像素采样数的帧缓存集处理一个或多个后续帧。应当注意,如果当前使用的帧缓存集是最大每像素采样数(即,每像素采样数不能进一步增加)的帧缓存集,那么帧缓存集可以保持不变。

可以预期,在起决定性的步骤308中可以考虑可选择的(和/或此外)控制条件,以确定是否确实应该选择具有增加的每像素采样数的帧缓存集(即使前一帧的渲染时间下降到低于下限阈值)。在某些实施例中,仅当可选的(此外的)控制条件确认确实应该选择具有增加的每像素采样数的帧缓存集时,才可以调用选择步骤314。

一旦基于上述选择过程来选择帧缓存集,所选择的帧缓存集可在处理步骤316中用于处理当前正渲染的帧,以便将所述帧缓存到所选择的帧缓存集中来促进对该帧的抗混叠处理。然后在处理步骤318中将该帧处理成可显示的图像,所述方法300可以再次对下一帧重复。

可预期的,可以利用各种技术来促进图像的显示。例如,在以开放性图形库(opengl)为基础的实施例中,正被处理的帧可以被解析为单采样后备缓存,所述单采样后备缓存可以被调换到显示缓存进行显示。然而,应当理解,所述opengl的实施例仅仅是一种示例,并不意味着对此处公开的发明构思的限制。可预期的,可以利用其它技术来促进图像的显示,而不脱离此处公开的发明构思的范围。

应当注意,尽管上述实施例中使用渲染时间作为性能度量,但此实施例并不意味着对此处公开的发明构思的限制。可预期的,可以使用多种其它类型的性能度量来衡量渲染性能。例如,深度复杂度、一帧处理的像素数量以及多种其它类型的性能度量,而不仅是(或除了)渲染时间,而不脱离此处公开的发明构思的广范围。

还应当注意,尽管上述实施例中逐帧地监视渲染性能,但此实施例并不意味着对此处公开的发明构思的限制。例如,每n个帧就可以监视渲染性能,其中n大于或等于1。还应当注意,不管n的具体数值如何,切换到具有减少的每像素采样数的帧缓存集都是一种临时的增强性能的方法,而且这一切换仅在像素填充率限制了图形处理器的性能和/或其它可选择的控制条件(上文提到的)满足时的特定情况下才允许。

此外,应当理解,虽然在上述实施例中参考了用于飞行模拟器应用的图形处理器,但是此处公开的用于提高图形处理器渲染性能的系统和方法并不局限于飞行模拟器的应用。包括陆地交通工具模拟器、海上交通工具模拟器、空中交通工具模拟器、太空交通工具模拟器在内的多种其它类型的模拟器中的图形处理器,以及用于多种其它类型的图形应用中的图形处理器,都可以采用上文提到的改善图形处理器渲染性能的系统和方法,并且不脱离此处公开的发明构思的范围。

从上文将理解,根据此处公开的发明构思中的实施例来配置的图形处理器和图形处理方法,能使图形处理器快速适应操作条件并调整渲染性能而不对显示质量造成显著的不良视觉异常现象或影响。

可预期的,与此处公开的发明构思相一致的系统和方法可用于多种类型的显示设备以进行图形处理,所述多种类型的显示设备包括发射显示器、非发射显示器、投影显示器、头盔式显示器、头戴式显示器、二维显示器和三维显示器。还可预期的,根据此处公开的发明构思构形的图形处理器还可以作为上述显示设备的独立或嵌入式组件。

应当理解,根据此处公开的发明构思的方法实施例中可以包括此处所述的一个或多个步骤。此外,这些步骤可以采用任何期望的顺序实施,并且两个或多个步骤可以彼此同时实施。此处公开的两个或多个步骤可以在某一个步骤中组合,并且在一些实施方案中,一个或多个步骤也可以作为两个或更多个子步骤实施。此外,其它步骤或子步骤除了可以实施,还可以代替此处公开的一个或多个步骤。

从上述描述中,很清楚,此处公开的发明构思可以很好地实现此处所述的目的,并获得此处所述的优点以及此处公开的发明构思中所固有的优点。虽然为了此处公开的目的描述了此处公开的发明构思的当前优选实施例,但是应当理解,还可以进行许多改变;这些改变对于本领域技术人员来说将是显而易见的,并落在此处公开的发明构思和权利要求的范围内。

应当理解,此处公开的发明构思的实施例可以很方便以软件、硬件或固件程序包的形式实施。这样的程序包可以是采用包含计算机存储代码的计算机可读存储介质的计算机程序产品,所述计算机代码用于对计算机进行编程以公开此发明的功能和过程。所述计算机可读介质可以包括但不限于任何类型的常规软盘、光盘、cd-rom、磁盘、硬盘驱动器、磁光盘、rom、ram、eprom、eeprom、磁或光卡,或任何其它合适的用于存储电子指令的介质。

应当相信,此处公开的发明和相应的许多优势可通过前文说明被理解,很明显的,在各部件的形状,构造和排列上可以做各种各样的变化,而不会脱离此处公开的发明构思的范围或者牺牲掉它们的材料优势。前文所述的形状仅仅是一个典型实施例,所述权利要求的目的包括这样的变化。

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