用于延迟解耦合着色的技术的制作方法

文档序号:13765815阅读:215来源:国知局
用于延迟解耦合着色的技术的制作方法

一旦仅作为执行相对专门化的基于计算机的功能的一部分而被完成,来自三维(3D)模型的二维(2D)计算机生成的图像(CGI)的渲染(rendering)在操作计算设备的更多的方面正被越来越多地采用。具体地,虽然视频游戏继续呈现此类图像的最普遍使用,但是它们的使用已开始扎根在web站点中并且作为不断增加的设备阵列的图形用户界面(GUI)的部分。

虽然图形渲染硬件的设计中的进步以及渲染算法的效率中的提高已经使能了很多基于3D模型的CGI的该不断增加的使用,但是这些进步和效率提高尚不足以完全解决在便携式设备中典型的处理和电力资源中的限制。具体地讲,对图形基元进行着色(shading)以向图像中的对象提供颜色和纹理的工作继续要求相当多的处理资源,这继而对由电池和/或通常在便携式设备中发现的其他电源所供给的有限电力资源提出了相当高的需求。另外,由于并入到便携式设备中的显示器的像素分辨率继续增加,在处理和功率要求中已进行的减少已经被这种分辨率增加所引起的着色量的指数增长所压倒。更进一步来讲,由于对CGI中的写实(realism)的期望已经提高,所以着色随着实施运动模糊和/或景深效果而变得更例行地被增加。

以前已经做出了努力以通过尝试直接减少所执行的着色的量来至少限制对电力资源的这些不断增长的需求。已经想出各种技术来确定什么图形基元和/或图形基元的什么部分实际需要被着色。不幸的是,尽管缓解了一些着色负担,但是许多这些以前的努力需要对图形渲染硬件的大量改变,这可以具有讽刺意味地增加电力资源需求,所述改变包括更多专业化的图形处理单元(GPU)和/或典型的基于硬件的图形渲染管线的架构的相当大的变更,以支持诸如复杂缓冲器的生成和排序这样的特征。

附图说明

图1示出了图形渲染系统的示例实施例。

图2示出了图形渲染系统的替代示例实施例。

图3示出了示例实施例的一部分。

图4示出了3D模型的栅格化的示例实施例。

图5A和图5B示出了屏幕和着色空间之间的对应关系的示例实施例。

图6示出了用于在着色空间中进行着色的准备的示例实施例。

图7示出了在着色空间中进行着色的示例实施例。

图8示出了在屏幕空间中对采样颜色进行平均以导出像素颜色的示例实施例。

图9-图11中的每个示出了根据实施例的逻辑流程。

图12示出了根据实施例的处理架构。

图13示出了图形处理系统的另一替代实施例。

图14示出了设备的实施例。

具体实施方式

各种实施例一般涉及用于减少在渲染来自3D模型的2D屏幕图像的中对基元进行着色的处理需求的技术,包括:从屏幕空间中将着色从栅格化和效果的应用解耦合,将着色的执行延迟至着色空间中的稍后阶段,并且避免使用G-缓冲器和/或其他复杂的数据结构来支持着色。细栅格化被采用来标识在屏幕图像的屏幕图像像素中可见的3D模型的基元的几何形状(geometry),以使得着色能够被限定于这样的可见几何形状。然后,粗栅格化被采用来标识3D模型中可能是用于在与屏幕图像对应的着色图像的每个着色图像像素中的着色的候选的所有基元。着色在与其中生成用于查看的屏幕图像的屏幕空间分离的着色空间中的着色图像上执行,以使得着色能够以可能与屏幕图像的像素分辨率不同的着色图像的像素分辨率执行来减少着色复杂性。为对图像像素着色导出的颜色值然后被转送到屏幕图像的像素。运动模糊和/或景深效果在细栅格化期间或在颜色值到屏幕图像的转送之后可能被应用。

细栅格化可能采用各种类型的采样的任何类型,包括随机(stochastic)采样,多重采样,射线追踪等,其中,存在分配给屏幕图像的每个屏幕图像像素的多个屏幕图像采样,以标识在屏幕图像像素的位置处从屏幕图像的视角(perspective)是可见的3D模型的基元的部分。随着这样的可见基元被如此标识,可以生成数据结构,所述数据结构将每个屏幕图像采样与可见基元以及与着色图像的着色图像像素相关。该数据结构可能由着色点标识符(SPID)组成,其每一个通过参考被唯一地指派给每个基元的标识符来将一个屏幕图像采样与可见基元相关。每个SPID也可能通过参考着色图像内的着色图像像素的坐标来将一个屏幕图像采样与该着色图像像素相关。

在生成SPID以后,可能分析该SPID以生成由列表组成的数据结构,针对每个着色图像像素有一个列表。每个列表可能包括由落在由可见基元的关联的着色图像像素所覆盖的区域内的屏幕图像采样所标识的该可见基元的标识符。每个列表还可能包括在可见基元的关联的着色图像像素内的该可见基元的深度的指示。在一些实施例中,随着每个SPID被分析,可能生成另一个数据结构,该数据结构针对每个着色图像像素指示在由那个着色图像像素所覆盖的区域内由屏幕图像采样所标识的可见基元中发现的深度中的最大深度。可替代地或附加地,还可能生成另一个数据结构,该数据结构将每个屏幕图像采样与地址位置相关,在该地址位置处,存储从对与那个着色图像像素内的那个屏幕图像采样关联的可见基元进行着色导出的颜色值,并且在着色之后可能从该地址位置指派那个屏幕图像采样的颜色值。

在生成和分析SPID以后,粗栅格化和着色可能一起被执行,一次执行每个着色图像像素内的一个可见基元。在粗栅格化中,每个着色图像像素被有效地视为相对宽且钝(blunt)的采样以标识具有由那个着色图像像素所覆盖的区域内呈现的其任何部分的3D模型的所有基元。如本领域技术人员可认识到的那样,每个着色图像像素作为宽且钝采样的此类使用可能通过在执行粗栅格化中的外部保守栅格化的使用来实现。从与较早执行的采样相同的视角执行该采样作为细栅格化的部分。对于被发现呈现于着色图像像素的区域内的每一个基元,检查来自SPID的较早针对那个像素所生成的可见基元的列表,以确定那个基元在那个列表中是否被落在那个着色图像像素内的屏幕图像采样之一标识为屏幕图像中的可见基元。如果是这样,那么执行着色以导出由那个着色图像像素所覆盖的区域内的那个基元的颜色,并且存储那个颜色。如果不是这样,那么针对由那个着色图像像素所覆盖的区域的那个基元不执行着色。在一些实施例中,指示在每个这样的列表中所标识的可见基元中的最大深度的较早生成的数据结构可能被采用来增加进行关于那个基元是否被标识在那个列表中的确定的效率。

在针对跨着色图像的所有像素的所有可见基元都已执行着色之后,针对每个着色图像像素内的每个可见基元导出的颜色的颜色值被转送到屏幕图像像素。如前面讨论的,每个SPID将屏幕图像采样之一与可见基元相关以及与着色图像像素相关,并且那些相关可能被用来在进行着色期间对与每个SPID关联的屏幕图像采样指派针对每个可见基元所导出的颜色值。可替代地或者附加地,通过使用较早生成的数据结构,可能增加为每个屏幕图像采样指派颜色的效率,所述较早生成的数据结构将每个屏幕图像采样与地址位置相关,在该地址位置处,存储从对与那个着色图像像素内的那个屏幕图像采样关联的可见基元进行着色所导出的颜色值。

不管为每个屏幕图像采样指派在着色期间所导出的颜色的确切方式,屏幕图像采样被采用来转送在着色期间所导出的颜色到屏幕图像像素。因此,对于每个屏幕图像像素,它的屏幕图像采样的颜色值可能以各种方式中的任何方式被平均和/或组合,以导出用于那个屏幕图像像素的单个颜色值。如将更加详细地解释的那样,着色图像像素和屏幕图像像素的大小和/或边界可一致(coincide)或可不一致。更具体地说,在一些实施例中,在它们之间可能存在一一对应关系。然而,在其他实施例中,着色图像像素可能比屏幕图像像素更大和/或更小,和/或屏幕图像像素和着色图像像素的边界可能不对齐。结果,屏幕图像像素可能覆盖如下的屏幕图像的区域:该屏幕图像的区域包含来自一个以上着色图像像素的采样,并且因此,对落在每个屏幕图像像素内的屏幕图像采样的平均可能用于组合来自多个着色图像像素的颜色值。

在屏幕图像意在描绘运动模糊和/或景深效果的实施例中,除了或替代对屏幕图像采样的颜色值进行平均,可能采用过滤器作为应用运动模糊和/或景深效果的部分。在一些实施例中,过滤器本身可能应用运动模糊和/或景深效果。然而,在其他实施例中,运动模糊和/或景深效果可能在SPID的生成期间被应用以将噪声有意引入到屏幕图像像素和SPID的相关中。正如本领域技术人员可认识到的那样,噪声的这样的引入可能通过各种技术的任何技术来完成,包括且不限于:在细栅格化的执行期间,在时间维度(time dimension)和/或透镜维度(lens dimension)上的随机采样。在这样的其他实施例中,对于每个屏幕图像像素的单个颜色值的导出期间所采用的过滤器可能包括来自相邻屏幕图像像素的像素颜色值,以减少引入这样噪声的不希望的影响。

一般性地参考本文中所使用的符号和命名法,可能在计算机或计算机网络上执行的程序过程方面呈现下面的详细描述的部分。这些过程描述和表示被本领域技术人员用来将他们工作的实质最有效地传达给其他的本领域技术人员。过程在这里并且一般被设想为是导致所需结果的自相一致的操作序列。这些操作是需要对物理量进行物理操纵的那些操作。通常,虽然不一定,但是这些量采用能够被存储、转送、组合、比较、以及以另外方式操纵的电、磁或光信号的形式。主要出于常见使用的原因,证明有时将这些信号称为比特、值、元素、符号、字符、术语、数字等是方便的。然而,应当注意,所有这些术语和相似术语与适当的物理量关联并且仅是被应用于那些量的方便的标签。

进一步地,这些操纵经常被明确称为如相加或比较,它们通常与由人类操作员执行的智力操作关联。然而,在大多数情况下,在本文中所描述的形成一个或多个实施例的一部分的任何操作中不需要或不期望人类操作员的这种能力。相反,这些操作是机器操作。用于执行各实施例的操作的有用机器包括通用数字计算机,该通用数字计算机由存储在其中根据本文的教导编写的计算机程序选择性地激活或配置,和/或包括针对所需目的专门构造的设备。各实施例还涉及用于执行这些操作的设备或系统。这些设备可能是针对所需目的专门构造的或者可能包括通用计算机。各种这些机器的所需结构将从给出的描述中清楚。

现在参考附图,其中,贯穿附图相同的参考标号用来表示相同的元素。在以下描述中,出于解释的目的,阐述了许多具体的细节以便提供对其彻底的理解。然而,可以明显的是,可能在没有这些具体细节的情况下实践新颖的实施例。在其他情形中,以框图的形式示出了公知的结构和设备,以便促进对其的描述。本发明将涵盖在权利要求书的范围内的所有修改、等同物和替代方案。

图1示出了图形渲染系统1000的实施例的框图,图形渲染系统1000并入了源设备300、计算设备500和观看设备700中的一个或多个。计算设备500生成被投影到屏幕图像880的2D平面上的三维(3D)模型280的二维(2D)屏幕图像880。计算设备500可能接收3D模型数据330,其表示来自源设备300的限定的3D空间内的一个或多个对象的3D模型280。3D模型数据330可能直接指定构成模型280的一个或多个对象的基元,或可能包括足够的信息以使能导出那些基元。

在生成屏幕图像880以后,计算设备500可能在显示器580上呈现屏幕图像880和/或将表示屏幕图像880的屏幕图像数据730传输到观看设备700以在它的显示器780上呈现。屏幕图像数据730可能包括屏幕图像880的位图,其中,屏幕图像880的每个像素的颜色可能以各种格式中的任何格式而被编码。在一些实施例中,屏幕图像880的像素分辨率可能被选择以匹配显示器580的和/或显示器780的像素分辨率。事实上,在一些实施例中,观看设备700可能向计算设备500提供显示器780的像素分辨率的指示,以使得屏幕图像880的像素分辨率能够被设置为与显示器780的像素分辨率匹配。

这些计算设备的每一个可能是各种类型的计算设备中的任何类型,包括但不限于:台式计算机系统、数据输入终端、膝上型计算机、上网本计算机、平板计算机、手持个人数字助理、智能电话、智能眼镜、智能手表、数码相机、并入到衣物中的身体可穿戴计算设备、集成到交通工具(例如,汽车,自行车,轮椅等)中的计算设备、服务器、服务器集群、服务器场等。

如所描绘的,这些计算设备300、500和700通过网络999交换传达表示3D模型和/或2D屏幕图像的数据的信号。然而,这些计算设备中的一个或多个可能经由网络999彼此交换和/或仍然与其他的计算设备(未示出)交换与渲染来自3D模型的2D图像完全无关的其他数据。在各种实施例中,网络可能是可能限于在单个建筑物或其他相对有限的区域内延伸的单个网络、可能延伸相当距离的相连网络的组合、和/或可能包括因特网。因此,网络999可能基于各种通信技术(或其组合)中的任何通信技术,通过该通信技术,信号可被交换,所述通信技术包括但不限于:使用电和/或光传导布线的有线技术和使用红外、射频或其他形式的无线传输的无线技术。

在各种实施例中,计算设备500并入了处理器部件550、记忆装置560、显示器580、控制器600和用于将计算设备500耦合至网络999的接口590中的一个或多个。记忆装置560存储控制例程540、3D模型数据330和控制数据335中的一个或多个。控制器600并入了处理器部件650和记忆装置660中的一个或多个。记忆装置660存储评估例程640、SPID数据632、基元列表数据633、最大深度数据634、着色地址数据635、着色颜色数据637和屏幕图像数据730中的一个或多个。

控制例程540并入了在其角色为计算设备500的主处理器部件的处理器部件550上可操作的指令序列以实现用于执行各种功能的逻辑。在执行控制例程540时,处理器部件550可能经由网络999从源设备300接收3D模型数据330,并且可能将它的至少一部分存储在记忆装置560中,所述它的至少一部分代表3D模型280的至少一部分。应当注意的是,3D模型数据330在对它进行包括生成它的2D图像或传输的任何使用之前可能被存储在记忆装置560中相当长的时间。在一些实施例中,处理器部件550可能分析3D模型数据330以导出组成一个或多个对象的3D模型280的基元的至少一个子集。在其他实施例中,3D模型数据330可能更直接地指定那些基元的细节,致使由处理器部件550进行的这种分析不必要。在生成表示屏幕图像880的屏幕图像数据730以后,处理器部件550可能在显示器580上可视地呈现图像880以用于观看和/或传输屏幕图像数据730到观看设备700,以使得屏幕图像880能够在显示器780上被呈现以用于观看。

在一些实施例中,处理器部件550可能接收各种配置参数的指示以在从3D模型280生成屏幕图像880中采用。例如,在屏幕图像880要被传输到观看设备700以用于在显示器780上呈现的实施例中,可能(例如,经由网络999)从观看设备700接收显示器780的像素分辨率、颜色深度、帧速率和/或其他参数的指示。提供另一示例,可能经由网络999从观看设备700和/或从另一个设备(未示出)接收屏幕图像880相对于3D模型280的平面的位置和/或朝向的指示和/或边界。处理器部件550可能将此类参数的指示作为控制数据335的一部分进行存储以供处理器部件650在生成屏幕图像880中使用。可替代地或附加地,像素分辨率的指示可能是显示器580的指示,而不是显示器780的指示。

控制例程640并入了其角色为计算设备500的控制器600的控制器处理器部件的处理器部件650上可操作的指令序列以实现用于执行各种功能的逻辑。在执行评估例程640时,处理器部件650从表示3D模型280的3D模型数据330生成表示屏幕图像880的屏幕图像数据730。更精确地,处理器部件650将屏幕图像880渲染为3D模型280的在屏幕图像880的平面上的2D投影。

图3描绘了从表示3D模型280的3D模型数据330这样生成表示屏幕图像880的屏幕图像数据730的示例实施例。如所描绘的,控制例程640可能并入细栅格化部件642、着色约束部件643、着色地址部件645、粗栅格化部件646、着色部件647和解析部件(resolving component)648中的一个或多个。在执行控制例程640中,处理器部件650可能执行控制例程640的部件642、643、645、646、647和648中的一个或多个。

细栅格化部件642可能从控制数据335检索屏幕图像880的平面相对于3D模型280的一个或多个对象的位置和朝向的指示、以及屏幕图像880在那个平面内的边界。细栅格化部件642然后可能在使用屏幕图像880的每个像素的多个采样来对3D模型280的一个或多个对象的图形基元进行细栅格化中采用那个指示,以确定那些基元中的哪些基元是在屏幕图像880中至少部分地可见的可见基元。图4更详细地描绘了此细栅格化的示例的方面。如所描绘的,3D模型数据330可能并入基元数据332,所述基元数据332包括基元282的各种特性的指示,比如大小,形状,位置和/或朝向。如本领域技术人员熟悉的那样,每个基元282可能是各种类型的多边形中的任何类型,其中每一个均在单个平面内延伸,但在典型的3D模型中的大多数基元(如果不是全部的话)是三角形。

在执行细栅格化以确定3D模型280的哪些基元282也是在屏幕图像880中至少部分地可见的可见基元882中,细栅格化部件642可能将针对屏幕图像880的每个屏幕图像像素885的多个屏幕图像采样888(为了视觉清楚起见只描绘了其中一个)向3D模型280投影。在这样投影屏幕图像采样888中,各种采样技术中的任何技术可能被使用在选择每屏幕图像像素885的屏幕图像采样888的量中、以及在选择屏幕图像采样888在由每个屏幕图像像素885覆盖的区域内的位置中。这样的技术包括并且不限于,超级采样、多重采样、随机采样(包括在时间维度和/或透镜维度上的随机采样以赋予运动模糊和/或景深效果)、和/或射线追踪。由于朝向3D模型280投影每个屏幕图像采样888(比如从屏幕图像880的平面延伸的并且垂直于屏幕图像880的平面的线),每个屏幕图像采样888遇到的3D模型280的第一个基元282变成在屏幕图像880中至少部分可见的可见基元882。

正如已经讨论的那样,生成屏幕图像880以在诸如计算设备500的显示器580或观看设备700的显示器780之类的显示器上被可视地呈现。因此,并且如本领域技术人员所熟悉的那样,由于图像数据730表示将要被看到的图像,所以屏幕图像880和表示屏幕图像880的屏幕图像数据730被说成是在“屏幕空间”中生成。如本领域技术人员也熟悉的那样,着色通常与栅格化一起被执行,以直接导出表示屏幕空间中的图像的图像数据的至少一部分,并且因此,着色通常被说成是“在屏幕空间中”完成。然而,在执行控制例程640中,着色从在屏幕空间中执行的细栅格化解耦合,并被延迟到稍后阶段,以使得它不与屏幕空间中的细栅格化一起被执行。代之以,在执行控制例程640中,处理器部件650执行着色以生成着色图像680,其对应于屏幕图像880,但是与屏幕图像880是分开的且不同的,并且不意味着被看见。更具体地,解耦合且延迟的着色是与粗栅格化一起执行以在“着色空间”中生成着色图像680。

在着色空间中的着色图像680的内容的至少一个子集平行于在屏幕空间中的屏幕图像880的内容。更具体地,可见基元882的以及屏幕图像采样888的相对位置在屏幕图像880和着色图像680之间对应。此外,限定图像880和图像680二者的边缘的边界可能对应以使得相对于那些边界的可见基元882的以及屏幕图像采样888的位置也可能对应。另外,在一些实施例中,屏幕图像880的屏幕图像像素885可能与着色图像680的着色图像像素685具有一一对应关系。然而,在其他实施例中,并且如图4中所示,像素885和像素685在大小方面和/或在每个覆盖的区域的边界的对齐方面可能不对应。

图5A和图5B描绘了其中屏幕图像像素885的大小和/或边界的对齐可能不对应于着色图像像素685的大小和/或对齐的各种方式的示例。转到图5A,随机采样在由细栅格化部件642执行的细栅格化中被采用,如由屏幕图像像素885中的十六个屏幕图像采样888a至888p的不规则分配(例如,非网格状的分配)所指示的那样。正如可以看到的那样,屏幕图像采样中的四个:888f、888g、888j和888k被主要定位在由屏幕图像像素885之一覆盖的区域内。然而,也如所描述的那样,着色图像像素685中的至少一个覆盖更大的区域,使得屏幕图像采样中的九个:888a,888b,888c,888e,888f,888g,888i,888j和888k被主要定位在该被覆盖的区域内。

转向图5B,在一些实施例中,着色图像像素685中的不同着色图像像素可能是不同的大小,使得一些着色图像像素比其他覆盖更多的着色图像680的区域。此外,它可能是:着色图像像素685的不同大小中没有一个与屏幕图像的像素885的大小是相同的。例如,可能被视为希望的是:作为减少所需的处理资源以及相应地减少所需的电力资源的一种方法,在减少要被着色的图像像素685的总量的努力中,在着色图像680中的不同位置处采用不同大小的着色图像像素685。具体而言并且如图所示,与可见基元882的基本上不间断的宽阔(expanse)相一致的着色图像像素685的较小大小的着色图像像素可能基于如下假设而组合,针对被如此组合的所有着色图像像素685将导出的颜色将是基本上类似的,使得出现仅导出一个颜色的机会。可替代地或者附加地,与可见基元882的边缘一致的着色图像像素685的较大大小的着色图像像素可能基于如下假设而被细分成更大量的着色图像像素685的较小大小的着色图像像素,边缘的任一侧上的颜色往往是不同的,并且着色图像像素685中的一个或多个的这种细分通过使能那些颜色的更清楚的描述而将使得边缘能够在视觉上更清楚。

返回到图4,当细栅格化部件642执行细栅格化以标识可见基元882时,细栅格化部件642可能生成用于每个屏幕图像采样888的着色点标识符(SPID),并将SPID作为SPID数据632的一部分进行存储。在SPID和屏幕图像采样888之间存在一一对应关系使得每个SPID对应于一个且仅一个屏幕图像采样888。每个SPID可能包括用于由屏幕图像采样888所标识的可见基元882的标识符k、覆盖那个屏幕图像采样888所落在的着色图像680内的区域的着色图像像素685的坐标sx,sy、以及在那个着色图像像素685处的那个可见基元882的深度sz的指示。因此,该SPID提供一种机制来通过屏幕图像采样888将在屏幕空间中的屏幕图像880的屏幕图像像素885与在着色空间中的着色图像680的着色图像像素685相关。如将更详细地解释的那样,该相关被用来在着色图像680的着色以后将颜色值从着色图像680转送到屏幕图像880。

在一些实施例中,细栅格化部件642可能包括着色像素定义部件6422以分析被发现在每个屏幕图像像素885内可见的可见基元882的量,并且相对于屏幕图像像素885变化着色图像像素685中的一个或多个的大小,以控制在一个或多个着色图像像素685的每一个内可见的可见基元882的量。更精确地,着色像素定义部件6422可能针对所有着色图像像素685确定单个共同大小,该单个共同大小可能比屏幕图像像素885的大小更大或更小。可替代地或附加地,着色像素定义部件6422可能组合和/或细分着色图像像素685中的一个或多个,如在图5B中所描绘的那样,使得着色图像像素685可能是不同大小的。如参照图5B所讨论的那样,改变由着色图像像素685的至少一个子集所覆盖的着色图像680的区域可能减少要被执行的着色的处理要求(并且相应地减少功率要求)。

在一些实施例中,细栅格化部件642可能包括效果部件6423以改变生成SPID以赋予运动模糊和/或景深效果的方式。例如,在随机采样被细栅格化部件642使用来将屏幕图像采样888朝向3D模型280投影以标识屏幕图像880中的可见基元882的情况下,效果部件可能通过向屏幕图像采样888中的至少一些赋予时间维度来引入运动模糊,以根据在图像880中描绘的移动来在时间上对它们位移(displace)。更具体地,屏幕图像采样888中的至少一些的标识符k可能在它们之中被重新分配以在那些屏幕图像采样888与可见基元882的关联中引入一定程度的噪声,从而造成模糊。标识符k的这种重新分配可能局限于发生在屏幕图像像素885内的屏幕图像采样888之中,或者可能发生在多个屏幕图像像素885的屏幕图像采样888之中,这取决于所应用的运动模糊的程度。通过随机采样被细栅格化部件642再次使用的另一示例,效果部件6423可能通过向至少一些屏幕图像采样888赋予透镜坐标来根据透镜参数对它们位移而引入景深效果。

返回到图3,在由细栅格化部件642生成SPID数据632的SPID以后,着色约束部件643检索并分析SPID数据632中的每一个SPID以导出利用屏幕图像采样888而被检测为在每一个着色图像像素685内可见的可见基元882的列表。图6更详细地描绘了生成这种每像素列表的示例的各方面。更具体地,对于每个着色图像像素685,着色约束部件643生成在由那个像素685所覆盖的着色图像680的区域内可见的所有可见基元882(经由屏幕图像采样888而被检测)的列表,以及将针对那个着色图像像素685的那个列表作为基元列表数据633的一部分进行存储。如所描绘的那样,对于每个着色图像像素685的这样的列表可能由标识在那个着色图像像素685中可见的可见基元882的标识符ka,kb,…组成。为了生成基元列表数据633的列表,着色约束部件643可能从每个SPID检索坐标sx,sy以标识SPID与哪个着色图像像素685关联,然后检索SPID与之关联的可见基元882的标识符k,并且然后将检索到的标识符k添加到由检索到的坐标sx,sy所标识的那个着色图像像素685的基元列表数据633中的列表。

在基元列表数据633中的每个这样的列表可能是压缩列表,在其中,在对应的着色图像像素685内可见的每个可见基元882在基元列表数据633中仅被列出一次,无论有多少与那个对应着色图像像素685关联的SPID表示相同的可见基元882。在一些实施例中,着色约束部件643可能使SPID中指定的标识符k添加到基元列表数据633中的列表以标识符k是否还没有在该列表中列出为条件来避免添加重复的标识符。在其他实施例中,着色约束部件643可能在着色约束部件643迭代遍历SPID数据632的所有SPID而不关于标识符k是否已经在基元列表数据633中的列表中列出而将该标识符k添加到该列表中,并且然后可能随后迭代遍历基元列表数据633中的所有列表以移除任何重复标识符。

虽然落在每个着色图像像素685内的屏幕图像采样888的量可能在生成SPID数据632之前就已知,但是在任何着色图像像素685内可见的可见基元882的量可能直到对SPID进行分析都不是可知的。因此,虽然可能使用各种类型的数据结构的任何类型来实现基元列表数据633内的每个列表,但是可能被认为理想的是采用在整个大小中可变的数据结构来实现每个列表,比如链表数据结构。可替代地,可能使用各种数组型数据结构的任何数据结构,在其中每个数组的大小被选择为足够大以容纳可能被认为在着色图像像素685的单个内很可能可见的可见基元882的最大可能的量。在一些实施例中,在着色约束部件643分析SPID数据632中的SPID时,着色约束部件643还可能在最大深度数据634中针对每个着色图像像素685存储由任何可见基元882达到的最深深度Zmax(从屏幕图像880的平面的视角)的指示,所述任何可见基元882经由落在着色图像像素685内的屏幕图像采样888而被检测到在着色图像像素685内可见。

在一些实施例中,SPID数据632中的SPID还可能由着色地址部件645检索并分析以导出指定记忆装置660内的位置的地址,在该位置处颜色值指定在针对在SPID数据632中所指定的每个着色图像像素685内可见的每个可见基元882着色期间要被导出的颜色。着色地址部件645可能将这些地址的指示存储为着色地址数据635,每个SPID一个指示。如先前所讨论的那样,在采样888和SPID数据632的SPID之间存在一一对应关系。因此,在针对每个SPID导出这些地址之一中,着色地址部件645实质上针对每个采样888导出记忆装置660内的地址,在着色图像680的着色以后可能从该地址检索指示针对那个采样888的颜色的颜色值。

返回到图3,在生成至少基元列表数据633以后,如果还没有最大深度数据634和/或着色地址数据635,从屏幕图像880的相同平面的相同视角,但是着色图像680被替代到那个视角中,粗栅格化部件646执行3D模型280的另一栅格化。该栅格化是粗略栅格化,因为每个着色图像像素685只有一个着色图像采样688被使用,并且在每个着色图像像素685中的那一个着色图像采样688被有效地扩宽以覆盖着色图像680的、被它的关联的着色图像像素685所覆盖的整个区域。在粗栅格化部件646的此粗栅格化中,每个着色图像像素685的单个更宽的着色图像采样688被用来检测沿着始终(all the way)通过3D模型280被投影的那个着色图像采样688的路径存在的3D模型280的所有基元282,无论那些基元282是否可见。应当指出的是,较粗糙着色图像采样688被垂直于与较精细屏幕图像采样888相同的平面投影,使得着色图像采样688和屏幕图像采样888的路径彼此平行地被投影。随着标识沿着每个着色图像采样688的路径的所有基元,使用那个着色图像采样688来检索涉及沿着那个路径的每个基元282的平面的朝向的其他数据、沿着那个路径的每个基元282的深度和/或有关着色的另外其他信息。

因此,由细栅格化部件642和粗栅格化部件646执行的细栅格化和粗栅格化分别在特色(character)上非常不同并且提供非常不同的功能。正如已经讨论的那样,细栅格化部件642的细栅格化每个屏图像像素885采用多个窄得多的屏幕图像采样888以标识3D模型280的哪些基元282是可见基元882。而且,多个更窄屏幕图像采样888的这样的使用提供了由在其中可见的每个可见基元882所覆盖的每个屏幕图像像素885的区域的相对比例的指示。相对地,粗栅格化部件646的粗栅格化每个着色图像像素685只采用一个更宽的着色图像采样688,以标识沿着那个着色图像采样688的路径存在的所有基元282,并沿着那个路径检索与使能着色有关的每个基元282的进一步信息。

虽然细栅格化部件642的细栅格化的屏幕图像采样888可能已被用来获得关于对可见基元882进行着色的进一步信息,但是在着色空间中分开地执行着色的事实将需要在通常被称为“G缓冲器”的相对大的数据结构中存储关于针对所有的屏幕图像采样888着色的此类信息。正如用于典型图形渲染系统的硬件架构领域的技术人员熟悉的那样,每个屏幕图像采样888存储如此多不同条信息的这样的大且复杂的数据结构的生成往往是不可能以有效地使用记忆装置560的方式来进行。更具体而言,填充这样的数据结构的条目常常需要一系列访问操作:所述一系列访问操作难以有效地高速缓存或组织以便有效地利用图形渲染系统的存储位置的典型行-列组织。的确,执行第二不同的栅格化处理实际上可能是更有效的,比如粗栅格化部件646的粗栅格化,以在执行着色时获得与着色有关的信息,而不是试图存储那个信息。

因此,在粗栅格化部件646前进通过每个基元282和每个着色图像采样688时,粗栅格化部件646向着色部件647提供涉及沿着那个着色图像采样688的路径的所有基元282的信息、连同关于与着色有关的那些基元282的信息,以供在与那个着色图像采样688关联的着色图像像素685内执行着色使用。

图7更详细地描绘了对着色图像680着色的示例的各方面。对于每个着色图像像素685,着色部件647可能对沿着从那个着色图像的像素685发出(emanating)的着色图像采样688的路径检测的每个基元282一次一个地并且按照它们被如此检测到的顺序进行有条件地着色。由着色部件647强加的条件可能是:经由着色图像采样688所检测的每个基元282先前在细栅格化中是否被确定为在相关联的着色图像像素685内是可见的。换言之,对于沿着着色图像采样688的路径检测到的每个基元282,着色部件647可能针对与那个着色图像采样688关联的着色图像像素685检查基元列表数据633中的列表,以确定那个检测到的基元282是否被列为在那个着色图像像素685内的可见基元882。对于那个着色图像像素685,着色部件647然后可能只对既沿着那个着色图像采样688的路径被检测到又在那个列表中被列出的基元882进行着色,将由针对那个着色图像像素685的此种着色所导出的颜色的指示作为着色颜色数据637进行存储。

更精确地,对于每个着色图像像素685,着色部件647可能接收与那个着色图像像素685关联的、沿着着色图像采样688的路径检测到的每个基元282的标识符k。着色部件647然后可能检查针对那个着色图像像素685的基元列表数据633中的可见基元的标识符ka,kb,...的列表,以标识沿着那个路径检测到的基元282中的哪些具有在那个列表中的匹配标识符。在基元列表数据633中的那个列表中的这样的匹配将沿着那个路径检测到的基元282之一标识为在那个着色图像像素685内可见的可见基元882。着色部件647然后针对沿着那个路径检测到的并且对于其在那个列表中存在匹配的每个基元282执行着色,并在着色颜色数据637中存储针对那些着色基元282的每一个所导出的颜色值。

正如先前所讨论的那样,针对着色图像像素685之一的基元列表数据633的每个列表包括针对在那个着色图像像素685的甚至一小部分内是可见的每个可见基元882的标识符。如本领域技术人员所熟悉的那样,在每个像素685内的特定可见基元882的着色以那个特定可见基元882的标识符k是否在那个像素685的列表内为条件意味着由着色部件647执行的着色可能被分类为外部保守着色的每像素形式。更具体地说,在只针对可见的3D模型280的基元282执行着色使得它们在可见基元882之中的意义上,该着色是“保守”的。然而,该着色包括每个可见基元882 的边界的“外部”限制,因为可见基元882在像素685中被着色,即使那个可见基元882的仅一小部分在那个像素685内可见。

在其中生成最大深度数据634的实施例中,着色部件647确定是否对沿着着色图像采样688的路径检测出的基元282进行着色的速度可能由着色部件647增加,着色部件647检查每个这样检测到的基元282相对于在针对与那个着色图像采样688关联的着色图像像素685的最大深度数据635中所指示的最大深度Zmax的深度。如果沿着那个着色图像采样688的基元282的深度大于针对关联的着色图像的像素685的最大深度Zmax,那么那个检测到的基元282在那个着色图像像素685内不可见,并且不需要在相对于针对那个着色图像像素685的基元列表数据633内的列表中的(一个或多个)标识符检查那个检测到的基元282的标识符中采用进一步的处理资源。然而,如果那个检测到的基元282的深度等于或小于针对那个着色图像像素685的最大深度Zmax,那么存在如下可能性:那个检测到的基元282在那个着色图像像素685内可见,使得着色部件647可能将那个检测到的基元282的标识符与在那个列表中的标识符进行比较以确定那个检测到的基元282是否在那个着色图像像素685内可见。

假如由着色部件647所执行的着色导出每着色图像的像素685每可见基元882一个颜色,则可能存在由着色部件647针对每个着色图像像素685导出的不止一个颜色。更精确地,针对每个着色图像像素685所导出的颜色的量等于在那个着色图像像素685内可见的可见基元882的量。因此,例如,如果有在特定着色图像像素685内是可见的三个可见基元882,那么着色部件647针对那个像素执行三次着色(针对在其中可见的每个可见基元882执行一次),以及针对那个特定着色图像像素685在着色颜色数据637中存储三个颜色值(针对在其中可见的每个可见基元882有一个颜色值)。

作为在每个着色图像像素685中可见的可见基元882的量和由着色部件647针对每个着色图像像素685所导出的颜色的量之间的该一一对应的结果,着色颜色数据637可能由颜色值的列表组成,每个像素685生成一个列表,而不像在基元列表数据633中每个像素的标识符的列表。实际上,着色颜色数据637可能由颜色(例如,如所描绘的colora,colorb,……,)列表组成,每个着色图像像素685一个列表,使用与在基元列表数据633中实现可见基元882的标识符(例如,也如所描绘的,ka,kb,……,)的列表(例如,每着色图像像素685的链表)中所使用的类型类似的类型的数据结构来实现。在一些实施例中,基元列表数据633和着色颜色数据637可能被组合,使得在每个列表中的可见基元882的每个标识符k可能由作为着色部件647所执行的着色的结果的相应颜色值来伴随。

返回到图3,在由着色部件647执行着色以后,解析部件648经由屏幕图像采样888从着色图像像素685的颜色导出屏幕图像像素885的颜色。在这样做时,解析部件648也可能实现一个或多个过滤器以赋予运动模糊效果、赋予景深效果、和/或在生成SPID期间从运动模糊和/或景深效果的实现移除噪声元素,如较早在其中屏幕图像880是描绘运动模糊和/或景深效果的实施例中所描述的那样。图8更详细地描绘了将像素颜色值从着色图像像素685转送到屏幕图像像素885的示例的各方面。

如先前所讨论的那样,屏幕图像采样888具有相对于彼此以及相对于在每个屏幕图像880和着色图像680内的可见基元882的位置的对应位置,从而使得屏幕图像采样888能够被用来将着色图像像素685的(一个或多个)颜色值转送到屏幕图像像素885。正如前面也讨论的那样,每个屏幕图像采样888与SPID关联,该SPID包括经由关联的屏幕图像采样888检测到的可见基元882的标识符。如之前进一步所讨论的那样,存在由着色图像的着色针对每个着色图像像素685导出的不止一个颜色值,具体地,在着色图像像素685内可见的每个可见基元882有一个颜色值。因此,从着色图像像素685向每个屏幕图像采样888指派以用于向屏幕图像像素885转送的颜色值是针对在与那个屏幕图像采样888关联的SPID中所标识的可见基元882而在那个着色图像像素685内所导出的颜色值。

为了在着色地址数据635较早由着色地址部件645生成的实施例中实现颜色值到屏幕图像采样888的转送,解析部件648从着色地址数据635检索地址,在该地址处可能获得用于每个屏幕图像采样888的颜色值。再次,对于每个屏幕图像采样888,在着色地址数据635中的它关联的地址指示可以获得针对由那个屏幕图像采样888所落入的着色图像像素685内的那个屏幕图像采样888所检测的可见基元882所导出的颜色值的地方。解析部件648然后使用那些地址来检索针对落入每个屏幕图像的像素885内的屏幕图像采样888的颜色值。

然而,在着色地址数据635没有较早由着色地址部件645生成的实施例中(例如,在不包括着色地址部件645的实施例中),颜色值向屏幕图像采样888的指派可能由解析部件648从SPID数据632检索与每个屏幕图像采样888关联的SPID来实现。从与每个屏幕图像采样888关联的SPID,解析部件648检索那个屏幕图像采样888落入其中的着色图像像素685的坐标sx,sy,以及在细栅格化部件642所执行的细栅格化期间由那个屏幕图像采样888所检测到的可见基元882的标识符k。使用针对每个屏幕图像采样888所检索的坐标sx,sy和标识符k,解析部件648导出地址,从该地址可能检索将被指派给那个屏幕图像采样888的颜色值。

无论屏幕图像采样888被指派由着色图像680的较早着色所导出的颜色值的确切方式如何,在其中没有运动模糊或景深效果要在图像880中被描绘的实施例中,解析部件648可能并入采样平均部件6487来平均落入每个屏幕图像像素885内的屏幕图像采样888的像素颜色值以导出那个屏幕图像像素885的颜色值。然后,在其中运动模糊或景深效果将在图像880中被描绘的实施例中,解析部件648可能应用过滤器以从可能是落在那个屏幕图像采样888内以及它的相邻屏幕图像像素885内的屏幕图像采样888的组合的事物导出每个屏幕图像像素885的颜色值。

更具体地,作为一个示例,在其中细栅格化部件642包括效果部件6423以在SPID数据632的SPID的生成期间引入运动模糊的实施例中,解析部件648可能并入过滤部件6488以减少从在重新分配SPID中的可见基元882的标识符k中由效果部件6423引入的噪声产生的不希望的赝像。在执行这样的过滤中,过滤部件6488可能采用加权平均,以在从落在每个屏幕图像像素885内的屏幕图像采样888导出每个屏幕图像像素885的颜色值中将相邻屏幕图像像素885的屏幕图像采样888的颜色值包括到选择的程度。

无论在导出每个屏幕图像像素885的颜色值中是否采用平均和/或过滤,解析部件648都将每个屏幕图像像素885的颜色值存储为屏幕图像数据730。对于存储在屏幕图像数据730中的每个屏幕图像像素885的值,屏幕图像数据730成为屏幕图像880的表示。返回到图1,在生成表示屏幕图像880的屏幕图像数据730以后,正如已经描述的那样,处理部件550可能在显示器580上呈现图像880。可替代地或附加地,处理器部件550可能操作接口590以向另一个设备传输屏幕图像数据730,比如观看设备700,以使得图像880能够在诸如显示器780的另一显示器上呈现。

在各种实施例中,观看设备700并入处理器部件750、记忆装置760、显示器780以及接口790中的一个或多个,所述接口790用于将观看设备700耦合至网络999。记忆装置760存储控制例程740和屏幕图像数据730中的一个或多个。控制例程740并入在其角色为观看设备700的主处理器部件的处理器部件750上可操作的指令序列以实现用于执行各种功能的逻辑。在某实施例中执行控制例程740时,处理器部件750可能对接口790进行操作以向计算设备500传输显示器780的像素分辨率的指示。正如先前所讨论的那样,这样的指示可能作为控制数据335的一部分存储在计算设备500内,并稍后被用于渲染屏幕图像880中的一个或多个方面(例如,设置屏幕图像800的像素分辨率)。可替代地或附加地,处理器部件750可能操作接口790以在计算设备500已经渲染屏幕图像880之后从计算设备500接收表示屏幕图像880的屏幕图像数据730,正如已经描述的那样。然后,处理器部件750可能在显示器780上可视地呈现运动屏幕图像880。

图2示出了图形渲染系统1000的替代实施例的框图,其包括计算设备500的替代实施例。图2的图形渲染系统1000的替代实施例在很多方面类似于图1的实施例,并且因此,贯穿附图相同的参考标号被用于指代相同的元素。然而,不同于图1的计算设备500,图2的计算设备500没有并入控制器600。因此,与图1的计算设备500不同,在图2 的计算设备500中,处理器部件550执行控制例程640,以代替存在单独的处理器部件650这样做。因此,在图2的图形渲染系统1000的替代实施例中,处理器部件550执行屏幕图像880的渲染,包括以与已经关于由处理器部件650执行控制例程640所描述的内容没有不同的方式进行栅格化、着色和颜色值的转送。

在各种实施例中,处理器部件550和650中的每个处理器部件可能包括各种各样的商业上可获得的处理器中的任何处理器。而且,这些处理器部件中的一个或多个处理器部件可能包括多个处理器、多线程处理器、多核处理器(无论多核共存在相同的还是分离的管芯上)、和/或通过其多个物理上分离的处理器以某种方式相连接的一些其他种类的多处理器架构。此外,尽管处理器部件550和650中的每个处理器部件可能包括各种类型的处理器中的任何处理器,但是可能设想控制器600(如果存在的话)的处理器部件650可能稍微被专门化和/或被优化以执行与图形和/或视频有关的任务。更广泛地,可能设想控制器600体现了计算设备500的图形子系统,以使能使用与处理器部件650分离和不同的部件和其更密切相关的部件来执行与图形渲染、视频压缩,图像重新缩放等相关的任务。

在各种实施例中,记忆装置560,660和760中的每个记忆装置可能基于各种各样的信息存储技术中的任何信息存储技术,所述技术可能包括需要不间断提供电力的易失性技术、以及可能包括需要使用可能是或可能不是可移除的机器可读存储介质的技术。因此,这些记忆装置中的每个记忆装置可能包括各种各样的类型(或类型的组合)的存储设备中的任何存储设备,包括但不限于:只读存储器(ROM)、随机访问存储器(RAM)、动态RAM(DRAM)、双数据速率DRAM(DDR-DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、闪存、聚合物存储器(例如,铁电聚合物存储器)、奥氏存储器、相变或铁电存储器、硅氧化氮氧化硅(SONOS)存储器、磁性或光学卡、一个或多个单独的铁磁盘驱动器或者组织成一个或多个阵列的多个存储设备(例如,组织成独立盘阵列的冗余阵列或者RAID阵列的多个铁磁盘驱动器)。应注意的是,尽管这些记忆装置中的每个记忆装置被描绘成单个块,但是这些记忆装置中的一个或多个记忆装置可能包括多个存储设备,这些存储设备可能基于不同的存储技术。因此,例如,这些描绘的记忆装置中的每个的一个或多个记忆装置可能表示程序和/或数据通过其可能在某种形式的机器可读存储介质上存储并传达的光驱或闪存读卡器、用于将程序和/或数据本地地存储相对延长的时段的铁磁盘驱动器、以及使能相对快速访问程序和/或数据的一个或多个易失性固态存储器设备(例如,SRAM或者DRAM)的组合。还应注意的是,这些记忆装置中的每个记忆装置可能是由基于相同的存储技术的多个存储部件构成的,但是由于用途的专门化这些存储部件可能个别地被维持(例如,某些DRAM设备用作主记忆装置,而其他DRAM设备用作图形控制器的不同的帧缓冲器)。

在各种实施例中,接口590和790可能采用各种各样的信令技术中的任何信令技术来使得这些计算设备能够耦合到其他设备,正如已经描述的那样。这些接口中的每个接口包括提供使能这种耦合所必需的功能性中的至少一些功能性的电路。然而,这些接口中的每个接口还可能至少部分地用由处理器部件中相应的处理器部件所执行的指令序列来实现(例如,来实现协议栈或其他特征)。在采用电和/或光传导布线的情况下,这些接口可能采用与各种各样的工业标准中的任何工业标准相符的信令和/或协议,包括但不限于:RS-232C、RS-422、USB、以太网(IEEE-802.3)或IEEE-1394。在需要使用无线信号传输的情况下,这些接口可能采用与各种各样的工业标准中的任何工业标准相符的信令和/或协议,包括但不限于:IEEE 802.11a、802.11b、802.11g、802.16、802.20(通常被称为“移动宽带无线接入”);蓝牙;ZigBee;或者蜂窝无线电电话服务,如具有通用分组无线电服务的GSM(GSM/GPRS)、CDMA/1xRTT、全球演进的增强型数据速率(EDGE)、仅/优化演进数据(EV-DO)、数据和话音演进(EV-DV)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、4G LTE等。

图9示出了逻辑流程2100的一个实施例。逻辑流程2100可能代表由本文中所描述的一个或多个实施例执行的操作中的一些或所有。更具体地,逻辑流程2100可能示出在至少执行控制例程640中由处理器部件550和/或650执行的和/或由计算设备500的(一个或多个)其他部件执行的操作。

在2110处,计算设备的处理器部件(例如,计算设备500的处理器部件550和/或650)从来自3D模型要被渲染的2D屏幕图像(例如,屏幕图像880)的平面的视角执行3D模型的所有图形基元(例如,3D模型280的基元282)的细栅格化,以标识从那个视角可见的3D模型的所有基元(例如,可见基元882)。正如已经讨论的那样,这样的平面的位置和/或朝向、以及屏幕图像在那个平面内的边界可能从另一计算设备(例如,观看设备700)接收。

在2120处,对细栅格化的每个屏幕图像采样(例如,每个屏幕图像采样888)进行分析,以生成SPID,所述SPID将屏幕图像采样与经由屏幕图像采样被发现从屏幕图像的视角是可见基元的3D模型的基元相关,并且将屏幕图像采样与对应于屏幕图像的着色图像的着色图像像素(例如,着色图像680的着色图像像素685)相关。SPID可能作为如SPID阵列的较大数据结构的一部分而被存储。正如已经讨论的那样,屏幕和着色图像相关到至少可见基元和屏幕图像采样的相对位置一致的程度。然而,着色图像像素可能在大小方面与屏幕图像像素(例如,屏幕图像像素885)不同,和/或屏幕图像像素和着色图像像素的边界可能不对齐。此外,每个SPID还可能包括在SPID将其关联的屏幕图像采样相关到的着色图像像素处的可见基元的深度的指示。

在2130处,从2D屏幕图像的相同平面的视角但是代替着色图像,处理器部件执行3D模型的所有图形基元的粗栅格化,以标识沿着每个着色图像采样(例如,着色图像采样688)的路径存在的3D模型的所有基元。正如已经讨论的那样,与标识沿着每个这样的路径的每个基元一起,检索与对那些基元进行着色有关的其他信息以使得着色能够与粗栅格化一起被执行。

在2140处,在沿着着色图像采样的路径被标识的并针对着色图像的每个像素被标识为可见基元的每个基元上执行外部保守着色,以导出针对那个着色图像像素内的每个这样的基元的颜色值。在2150处,每个着色图像像素内的每个基元的颜色值被指派给落在那个着色图像像素内的屏幕图像采样中的一个或多个。正如已经讨论的那样,在细栅格化期间被采用来标识可见基元的屏幕图像采样现在被用来将那些颜色值转送给屏幕图像像素。然而,也如所讨论的那样,假定着色图像像素与屏幕图像像素之间可能不存在大小的一一对应关系和/或边界的对齐,落在单个屏幕图像像素内的屏幕图像采样可能也落在多个着色图像像素内,使得来自多个着色图像像素的颜色值被转送给屏幕图像像素的至少子集。为了解决这一点,在2160处,落在每个屏幕图像像素内的所有屏幕图像采样的颜色值被平均以导出该屏幕图像像素的单个颜色值。

图10示出了逻辑流程2200的一个实施例。逻辑流程2200可能代表由本文中所描述的一个或多个实施例执行的操作中的一些或所有。更具体地,逻辑流程2200可能示出在至少执行控制例程640中由处理器部件550和/或650执行的和/或由计算设备500的(一个或多个)其他部件执行的操作。

在2210处,计算设备的处理器部件(例如,计算设备500的处理器部件550和/或650)采用随机采样来从2D屏幕图像(例如,屏幕图像880)的平面的视角执行3D模型的所有图形基元(例如, 3D模型280的基元282)的细栅格化,以标识从那个视角可见的3D模型的所有基元(例如,可见基元882)。

在2220处,对细栅格化的每个屏幕图像采样(例如,每个屏幕图像采样888)进行分析,以生成SPID,所述SPID将屏幕图像采样与经由屏幕图像采样被发现从屏幕图像的视角是可见基元的3D模型的基元相关,并且将屏幕图像采样与对应于屏幕图像的着色图像的着色图像像素(例如,着色图像680的着色图像像素685)相关。正如已经讨论的那样,每个SPID还可能包括在SPID将其关联的屏幕图像采样相关到的着色图像像素处的可见基元的深度的指示。

在2230处,对每个SPID进行分析,以针对每个着色图像像素生成在由那个着色图像像素所覆盖的着色图像的区域内可见的可见基元的列表。再次,针对所有着色图像像素的列表(无论采用什么数据结构来实现每个列表)可能被组合成单个较大的数据结构,比如链表的阵列等。也可能分析每个SPID以生成并存储最深深度(例如最大距离)的指示,在所述最深深度处,在每个着色图像像素内发现任何可见基元。在2240处,可能进一步分析每个SPID以导出并存储地址,每个屏幕图像采样一个地址,在该地址处将存储针对在着色图像像素内被着色的基元的颜色值,并且在执行着色之后从该地址将指派针对那个屏幕图像采样的颜色值。

在2250处,从2D屏幕图像的相同平面的视角但是代替着色图像,处理器部件执行3D模型的所有图形基元的粗栅格化,以标识沿着每个着色图像采样(例如,着色图像采样688)的路径存在的3D模型的所有基元。正如已经讨论的那样,与标识沿着每个这样的路径的每个基元一起,与对那些基元进行着色有关的其他信息被检索以使得着色能够与粗栅格化一起被执行。

在2260处,由每个着色图像像素内的任何可见基元所达到的最深深度的指示被采用来更有效地标识哪些基元沿着着色图像采样的路径被标识并且也是针对着色图像的每个像素的可见基元,作为为了导出针对那个着色图像像素内的每个这样的基元的颜色值而控制外部保守着色的执行的一部分。在2270处,作为将在2260处的着色期间针对每个着色图像像素所导出的颜色经由屏幕图像采样转送给屏幕图像像素的一部分,在2240处导出并存储的地址可能被用来将颜色值指派给每个屏幕图像采样。

在2280处,过滤器被采用来从落在那个屏幕图像像素内的屏幕图像采样的颜色值导出针对每个屏幕图像像素的颜色值,以赋予运动模糊或景深效果。正如已经讨论的那样,一些过滤器可能包括落在相邻像素内的屏幕图像采样的颜色值连同落在针对其确定了颜色值的屏幕图像像素内的屏幕图像采样的颜色值。

图11示出了逻辑流程2300的一个实施例。逻辑流程2300可能代表由本文中所描述的一个或多个实施例执行的操作中的一些或所有。更具体地,逻辑流程2300可能示出在至少执行控制例程640中由处理器部件550和/或650执行的和/或由计算设备500的(一个或多个)其他部件执行的操作。

在2310处,计算设备的处理器部件(例如,计算设备500的处理器部件550和/或650)采用随机采样来从2D屏幕图像(例如,屏幕图像880)的平面的视角执行3D模型的所有图形基元(例如,3D模型280的基元282)的细栅格化,以标识从那个视角可见的3D模型的所有基元(例如,可见基元882)。

在2320处,对细栅格化的每个屏幕图像采样(例如,每个屏幕图像采样888)进行分析,以生成SPID,所述SPID将屏幕图像采样与经由屏幕图像采样被发现从屏幕图像的视角是可见基元的3D模型的基元相关,并且将屏幕图像采样与对应于屏幕图像的着色图像的着色图像像素(例如,着色图像680的着色图像像素685)相关。正如已经讨论的那样,每个SPID还可能包括在SPID将其关联的屏幕图像采样相关到的着色图像像素处的可见基元的深度的指示。

在2330处,可见基元的标识符可能在SPID的至少子集之中进行重新分配以赋予运动模糊和/或景深效果。正如已经讨论的那样,这种重新分配可能被限制为在仅与落在单个屏幕图像像素内的屏幕图像采样关联的SPID之中被执行,或者可能在与落在多个相邻屏幕图像像素内的屏幕图像采样关联的SPID之中被执行。

在2340处,对每个SPID进行分析,以针对每个着色图像像素生成在由那个着色图像像素所覆盖的着色图像的区域内可见的可见基元的列表。再次,对于所有着色图像像素的列表(无论采用什么数据结构来实现每个列表)可能被组合成单个较大的数据结构,比如链表的阵列等。每个SPID也可能被分析,以生成并存储最深深度(如最大距离)的指示,在所述最深深度处在每个着色图像像素内发现任何可见基元。在2350处,每个SPID可能进一步被分析,以导出并存储地址,每个屏幕图像采样一个地址,在该地址处将存储针对在着色图像像素内被着色的基元的颜色值,并且在执行着色之后从该地址将指派针对那个屏幕图像采样的颜色值。

在2360处,处理器部件从2D屏幕图像的相同平面的视角,但是代替着色图像,执行3D模型的所有图形基元的粗栅格化,以标识沿着每个着色图像采样(例如,着色图像采样688)的路径存在的3D模型的所有基元。正如已经讨论的那样,与标识沿着每个这样的路径的每个基元一起,与对那些基元进行着色有关的其他信息被检索以使得着色能够与粗栅格化一起被执行。

在2370处,由每个着色图像像素内的任何可见基元所达到的最深深度的指示被采用来更有效地标识哪些基元沿着着色图像采样的路径被标识并且同时也是针对着色图像的每个像素的可见基元作为为了导出针对在那个着色图像像素内的每个这样的基元的颜色值而控制外部保守着色的执行的一部分。在2380处,作为将在2370处的着色期间针对每个着色图像像素所导出的颜色经由屏幕图像采样转送给屏幕图像像素的一部分,在2350处导出并存储的地址可能被用来将颜色值指派给每个屏幕图像采样。

在2390处,过滤器被采用来减少在SPID的生成期间来自运动模糊和/或景深效果的赋予的视觉赝像。正如已经讨论的那样,一些过滤器可能包括落在相邻像素内的屏幕图像采样的颜色值连同落在针对其确定了颜色值的屏幕图像像素内的屏幕图像采样的颜色值。

图12示出了适用于实现之前描述的各实施例的示例性处理架构3000的实施例。更具体地,处理架构3000(或其变型)可能被实现为一个或多个计算设备300、500或700的一部分,和/或被实现为控制器600的一部分。应注意的是,处理架构3000的部件被给以参考标号,其中,最后两个数字对应于作为计算设备300、500和700的一部分以及控制器600而较早被描绘并描述的部件中的至少一些部件的参考标号的最后两个数字。完成这一点作为对将每个的部件相关的辅助。

处理架构3000包括通常在数字处理中采用的各种元件,包括但不限于:一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)部件、电源等。如在本申请中所使用的,术语“系统”和“部件”意旨在其中执行数字处理的计算设备的实体,那个实体是硬件、硬件与软件的组合、软件、或执行中的软件,其示例由该描绘的示例性处理架构提供。例如,部件可以是但不限于是:在处理器部件上运行的进程、处理器部件自身、可能采用光学和/或磁性存储介质的存储设备(例如,硬盘驱动器、阵列形式的多存储驱动器等)、软件对象、可执行指令序列、执行线程、程序和/或整个计算设备(例如,整个计算机)。举例来说,运行在服务器上的应用和该服务器二者都可以是部件。一个或多个部件可以驻留在执行的进程和/或线程内,并且部件可以被定位在一个计算设备上和/或被分布在两个或更多个的计算设备之间。进一步地,部件可能通过各种类型的通信介质彼此通信地耦合以协调操作。该协调可能涉及信息的单向或双向交换。例如,部件可能以通过通信介质传送的信号的形式来传送信息。信息可以被实现为分配给一个或多个信号线的信号。消息(包括命令、状态、地址或数据消息)可能是这样的信号之一或者可能是多个这样的信号,并且可能串行地或者基本上并行地被传输通过各种连接和/或接口中的任何连接和/或接口。

如所描绘的,在实现处理架构3000中,计算设备至少包括处理器部件950、记忆装置960、到其他设备的接口990以及耦合件(coupling)959。正如将要解释的那样,取决于实现处理架构3000的计算设备的包括其预期用途和/或使用条件的各个方面,这种计算设备可能进一步包括附加的部件,诸如但不限于,显示器接口985。

耦合件959包括一个或多个总线、点对点互连、收发器、缓冲器、交叉点开关和/或至少通信地将处理器部件950耦合至记忆装置960的其他导体和/或逻辑。耦合件959可能进一步将处理器部件950耦合至接口990、音频子系统970和显示器接口985中的一个或多个(取决于这些部件和/或其他部件的哪些也存在)。对于处理器部件950被耦合件959如此耦合,处理器部件950能够针对上述计算设备中的无论哪个(哪些)实现处理架构3000执行以上详细描述的任务中各种任务。耦合件959可能用各种技术中的任何技术或技术的组合来实现,通过这些技术光学地和/或电传达信号。进一步地,耦合件959的至少部分可能采用与各种各样的工业标准中的任何工业标准相符的定时和/或协议,包括但不限于:加速图形端口(AGP)、卡总线、扩展工业标准架构(E-ISA)、微通道架构(MCA)、网络用户总线、(扩展的)外设部件互连(PCI-X)、PCI快速(PCI-E)、个人计算机存储器卡国际协会(PCMCIA)总线、HyperTransportTM、快速路径等。

如先前所讨论的那样,处理器部件950(对应于处理器部件550、650和750)可能包括各种各样商业上可获得的处理器中的任何处理器,其采用各种各样的技术中的任何技术并且利用以多种方式中的任何方式物理地组合的一个或多个核实现。

如先前所讨论的那样,记忆装置960(对应于记忆装置560、660和760)可能基于各种各样的技术中的任何技术或技术的组合由一个或多个不同的存储设备构成。更具体地,如所描绘的,记忆装置960可能包括以下各项中的一个或多个:易失性记忆装置961(例如,基于一个或多个形式的RAM技术的固态存储器)、非易失性记忆装置962(例如,不需要持续提供电力以保存其内容的固态、铁磁性或其他记忆装置)以及可移除介质记忆装置963(例如,通过其可能在计算设备之间传达信息的可移除盘式或固态存储器卡记忆装置)。可能包括多个不同类型记忆装置的记忆装置960的该描述在于认识到在计算设备中的多于一种类型的存储设备的普通使用,其中,一种类型的存储设备提供相对快速的读和写能力,使能由处理器部件950对数据的更快操纵(但可能使用一种持续需要电力的“易失性”技术)而另一种类型的存储设备提供相对高密度的非易失性记忆装置(但可能提供相对慢的读和写能力)。

假定采用不同技术的不同存储设备的通常不同的特性,对于这样的不同的存储设备通过不同的存储控制器耦合到计算设备的其他部分也是常见的,不同的存储控制器通过不同的接口耦合到其不同的存储设备。举例来讲,在易失性记忆装置961存在且基于RAM技术的情况下,易失性记忆装置961可能通过存储控制器965a通信性地耦合至耦合件959,该存储控制器965a为可能采用行和列寻址的易失性记忆装置961提供合适的接口,并且其中,该存储控制器965a可能执行行刷新和/或其他维护任务从而帮助保护存储在易失性记忆装置961内的信息。通过另一个示例,其中,非易失性记忆装置962存在并且包括一个或多个铁磁和/或固态盘驱动器,非易失性记忆装置962可能通过存储控制器965b通信性地耦合至耦合件959,该存储控制器965b为可能采用信息块和/或柱面(cylinder)和扇区寻址的非易失性记忆装置962提供合适的接口。通过又另一个示例,在可移除介质记忆装置963存在并且包括采用一个或多个机器可读存储介质969的一个或多个光学的和/或固态盘驱动器的情况下,该可移除介质记忆装置963可能通过存储控制器965c通信性地耦合至耦合件959,该存储控制器965c为可能采用信息块寻址的可移除介质记忆装置963提供合适的接口,并且其中,该存储控制器965c可能用专门用于延伸机器可读存储介质969的使用寿命的方式协调读取、擦除和写操作。

易失性记忆装置961或非易失性记忆装置962中总有一个可能包括机器可读存储介质形式的制品,在该机器可读存储介质上可存储包括可由处理器部件950执行的指令序列的例程,这取决于每个所基于的技术。举例来讲,在非易失性记忆装置962包括基于铁磁的盘驱动器(例如,所谓的“硬盘驱动器”)的情况下,每个这种磁盘驱动器典型地采用一个或多个旋转圆形磁盘片(platter),在旋转圆形磁盘片上磁响应性粒子的覆层被沉积并且以各种模式被磁定向以便以如下方式存储信息,如指令序列,该方式类似于如软盘的存储介质。通过另一个示例,非易失性记忆装置962可能由用于以如下方式存储信息的固态存储设备组构成,信息诸如指令序列,该方式类似于压缩闪存卡。再次,在不同时间处在计算设备中采用不同类型的存储设备以存储可执行例程和/或数据是常见的。

因此,包括将由处理器部件950执行的指令序列的例程最初可能被存储在机器可读存储介质969上,并且随后可能将可移除介质记忆装置963用在将那个例程复制到非易失性记忆装置962上用于更长期的存储而不需要机器可读存储介质969和/或易失性记忆装置961的继续存在以使当那个例程被执行时能够由处理器部件950更快速地进行访问。

如先前所讨论的,接口990(可能对应于接口590或790)可能采用对应于各种通信技术中的任何通信技术的各种信令技术中的任何信令技术,这些通信技术可能被采用以将计算设备通信地耦合至一个或多个其他设备。再次,可能采用各种形式的有线或无线信令中的一者或两者以使处理器部件950能够可能通过网络(例如,网络999)或网络的互连集合与输入/输出设备(例如,所描绘的示例键盘920或打印机925)和/或其他计算设备进行交互。在识别必须经常由任何一个计算设备支持的多种类型的信令和/或协议的经常极不相同的特性时,接口990被描绘为包括多个不同的接口控制器995a、995b和995c。接口控制器995a可能采用多种类型的有线数字串行接口或射频无线接口中的任何接口来接收来自用户输入设备的串行传输的消息,用户输入设备比如所描绘的键盘920。接口控制器995b可能采用多种基于线缆的或无线的信令、定时和/或协议中的任何一种来通过所描绘的网络999(可能是由一个或多个链路、较小的网络或可能是因特网构成的网络)访问其他计算设备。接口995c可能采用各种导电线缆中的任何导电线缆,从而使能串行或并行信号传输的使用以将数据传达至所描绘的打印机925。可能通过接口990的一个或多个接口控制器而被通信地耦合的设备的其他示例包括但不限于:用于监视人的声音以接受经由那些人可能弄出的语音或其他声音而由他们用信号传输的命令和/或数据的麦克风、遥控器、手写笔、读卡器、指纹读取器、虚拟现实交互手套、图形输入平板计算机、操纵杆、其他键盘、视网膜扫描仪、触摸屏的触摸输入部件、轨迹球、各种传感器、用于监视人的移动以接收由那些人通过手势和/或面部表情用信号传输的命令和/或数据的照相机或照相机阵列、激光打印机、喷墨打印机、机械机器人、铣削机器等。

在计算设备通信地耦合至(或有可能实际上并入)显示器(例如,所描绘的示例显示器980)的情况下,实现处理架构3000的这种计算设备还可能包括显示器接口985。尽管在通信地耦合至显示器时可能采用更一般类型的接口,但是在显示器上视觉地显示各种形式的内容中经常需要的稍微专门化的附加处理以及所使用的基于线缆的接口的稍微专门化的性质经常提供令人期望的不同的显示器接口。在显示器980的通信耦合中可能由显示器接口985采用的有线和/或无线信令技术可能利用符合各种工业标准中的任何工业标准的信令和/或协议,包括但不限于,各种模拟视频接口、数字视频接口(DVI)、显示端口等中的任何一种。

图13示出了系统4000的实施例。在各实施例中,系统4000可能代表适合供在此所描述的一个或多个实施例使用的系统或架构,如图形渲染系统1000;计算设备300、500或700中的一个或多个;和/或逻辑流程2100或2200中的一个或多个。实施例不限于此方面。

如所示的,系统4000可能包括多个元件。如针对设计或性能约束的给定集合所期望的,一个或多个元件可能使用一个或多个电路、部件、寄存器、处理器、软件子例程、模块、或其任何组合来实现。举例来讲,虽然图13示出了在某个拓扑中的有限数量的元件,但是可以理解可能如针对给定实现所期望的在系统4000中使用在任何合适的拓扑中的更多或更少的元件。实施例并不局限于本上下文中。

在实施例中,虽然系统4000不限于此上下文,但是系统4000可能是媒体系统。例如,系统4000可能并入个人计算机(PC)、膝上计算机、超级膝上计算机、平板计算机、触摸板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合式蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板计算机或智能电视)、移动因特网设备(MID)、消息收发设备、数据通信设备等。

在实施例中,系统4000包括耦合到显示器4980的平台4900a。平台4900a可能接收来自内容设备的内容,内容设备如(一个或多个)内容服务设备4900c或内容传递设备4900d或者其他类似内容源。包括一个或多个导航特征的导航控制器4920可能用来例如与平台4900a和/或显示器4980交互。以下将更详细地描述这些部件中的每个部件。

在实施例中,平台4900a可能包括处理器部件4950、芯片组4955、存储器单元4969、收发器4995、记忆装置4962、应用4940和/或图形子系统4985的任意组合。芯片组4955可能在处理器部件4950、存储器单元4969、收发器4995、记忆装置4962、应用4940和/或图形子系统4985中提供相互通信。例如,芯片组4955可能包括能够提供与记忆装置4962的相互通信的存储适配器(未描绘)。

处理器部件4950可能使用任何处理器或逻辑设备来实现,并且可能与处理器部件550、650或750中的一个或多个处理器部件和/或与图12的处理器部件950相同或者相似。

存储器单元4969可能使用能够存储数据的任何机器可读的或计算机可读的介质来实现,并且可能与图12的存储介质969相同或相似。

收发器4995可能包括能够使用各种合适的无线通信技术传输并接收信号的一个或多个无线电,并且可能与图12的收发器995b相同或相似。

显示器4980可能包括任何电视类型监视器或显示器,并且可能与显示器580和780中的一个或多个显示器和/或与图12中的显示器980相同或相似。

记忆装置4962可能被实现为非易失性存储设备,并且可能与图12中的非易失性记忆装置962相同或相似。

图形子系统4985可能对诸如用于显示的静止或视频之类的图像执行处理。例如,图形子系统4985可能是图形处理单元(GPU)或视觉处理单元(VPU)。可能使用模拟或数字接口来通信地耦合图形子系统4985与显示器4980。例如,接口可能是高清晰度多媒体接口、显示端口、无线HDMI和/或符合无线HD的技术中的任何技术。图形子系统4985可能集成到处理器电路4950或芯片组4955中。图形子系统4985可能是通信地耦合到芯片组4955的独立卡。

本文所描述的图形和/或视频处理技术可能在各种硬件架构中来实现。例如,图形和/或视频功能可能被集成到芯片组中。可替代地,可能使用分立的图形和/或视频处理器。如又另一个实施例,图形和/或视频功能可能由包括多核处理器的通用处理器来实现。在进一步的实施例中,该功能可能在消费电子设备中被实现。

在实施例中,(一个或多个)内容服务设备4900b例如可能由任意国家的、国际的和/或独立的服务所托管,并因此经由因特网对平台4900a可访问。(一个或多个)内容服务设备4900b可能耦合到平台4900a和/或耦合到显示器4980。平台4900a和/或(一个或多个)内容服务设备4900b可能耦合到网络4999以传送(例如,发送和/或接收)去往和来自网络4999的媒体信息。(一个或多个)内容传递设备4900c也可能耦合到平台4900a和/或显示器4980。

在实施例中,(一个或多个)内容服务设备4900b可能包括有线电视盒、个人计算机、网络、电话、能够传递数字信息和/或内容的使能因特网的设备或器具、以及能够在内容提供者与平台4900a和/显示器4980之间经由网络4999或直接地单向或双向传送内容的任意其他类似设备。将理解,内容可能经由网络4999单向地和/或双向地向和从系统4000中的任何一个部件和内容提供者进行传送。内容的示例可能包括任何媒体信息,包括例如视频、音乐、医疗和游戏信息等。

(一个或多个)内容服务设备4900b接收如包含媒体信息、数字信息和/或其他内容的有线电视节目的内容。内容提供者的示例可能包括任何有线或卫星电视或无线电或因特网内容提供者。所提供的示例并不意在限制实施例。

在实施例中,平台4900a可能从具有一个或多个导航特征的导航控制器4920中接收控制信号。导航控制器4920的导航特征可能用来例如与用户界面4880交互。在实施例中,导航控制器4920可能是指点设备,该指点设备可能是允许用户输入空间(如连续的和多维的)数据到计算机中的计算机硬件部件(具体是人类接口设备)。如图形用户界面(GUI)的许多系统和电视机以及监视器允许用户使用物理姿势控制计算机或电视机并向计算机或电视机提供数据。

可能通过指针、光标、聚焦环或在显示器上显示的其他视觉指示符的移动在显示器(例如,显示器4980)上回应导航控制器4920的导航特征的移动。例如,在软件应用4940的控制下,位于导航控制器4920上的导航特征可能被映射到在用户界面4880上显示的虚拟导航特征。在实施例中,导航控制器4920可能不是独立部件而是集成在平台4900a和/或显示器4980内。然而实施例不限于这些元素或本文中示出或描述的内容。

在实施例中,驱动(未示出)可能包括使用户能够利用例如在使能时在初始启动后对按钮的触摸立刻打开和关闭类似电视的平台4900a的技术。当平台被“关闭”时,程序逻辑可能允许平台4900a向媒体适配器或(一个或多个)其他内容服务设备4900b或(一个或多个)内容传递设备4900c流式传输内容。此外,芯片组4955可能例如包括用于5.1环绕声音频和/或高清7.1环绕声音频的硬件和/或软件支持。驱动可能包括用于集成图形平台的图形驱动。在实施例中,图形驱动可能包括外围部件互连(PCI)快速图形卡。

在各实施例中,可能集成系统4000中示出的任何一个或多个部件。例如,可能集成平台4900a和(一个或多个)内容服务设备4900b,或者可能集成平台4900a和(一个或多个)内容传递设备4900c,或者例如可能集成平台4900a、(一个或多个)内容服务设备4900b和(一个或多个)内容传递设备4900c。在各实施例中,平台4900a和显示器4890可能是集成单元。例如,显示器4980和(一个或多个)内容服务设备4900b可能是集成的,或者显示器4980和(一个或多个)内容传递设备4900c可能是集成的。这些示例并不意在限制实施例。

在各实施例中,系统4000可能被实现为无线系统、有线系统或二者的组合。当被实现为无线系统时,系统4000可能包括适合于通过如一个或多个天线、传输器、接收器、收发器、放大器、滤波器、控制逻辑等的无线共享介质进行通信的部件和接口。无线共享介质的示例可能包括无线频谱部分,如RF频谱等。当被实现为有线系统时,系统4000可能包括适用于通过有线通信介质进行通信的部件和接口,有线通信介质如I/O适配器、利用相应有线通信介质连接I/O适配器的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等。有线通信介质的示例可能包括导线、电缆、金属引线、印刷电路板(PCB)、背板、交换光纤、半导体材料、双绞线、同轴电缆、光纤等。

平台4900a可能建立一个或多个逻辑或物理信道以传送信息。该信息可能包括媒体信息和控制信息。媒体信息可能指表示用于用户的内容的任何数据。例如,内容的示例可能包括来自语音对话、视频会议、流传输视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文字等的数据。例如,来自语音对话的数据可能是语音信息、沉默时段、背景噪音、舒适噪音、声调等。控制信息可能是指表示用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可能用于将媒体信息通过系统路由或指示节点以预定方式处理媒体信息。然而,实施例不限于图13中示出或描述的元素或上下文。

如上所述,系统4000可能用变化的物理风格或形状因数来体现。图14示出了其中可能体现系统4000的小形状因数设备5000的实施例。例如,在实施例中,设备5000可能被实现为具有无线能力的移动计算设备。例如,移动计算设备可能指具有处理系统和诸如一个或多个电池的移动电源的任何设备。

如上所述,移动计算设备的示例可能包括个人计算机(PC)、膝上计算机、超级膝上计算机、平板计算机、触摸板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合式蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板计算机或智能电视)、移动因特网设备(MID)、消息收发设备、数据通信设备等。

移动计算设备的示例还可能包括被安排来由人穿戴的计算机,如手腕计算机、手指计算机、戒指计算机、眼镜计算机、领带夹计算机、臂带计算机、鞋计算机、服装计算机以及其他可穿戴计算机。在实施例中,例如移动计算设备可能实现为能够执行计算机应用、以及语音通信和/或数据通信的智能电话。举例来讲,尽管一些实施例可能利用被实现为智能电话的移动计算设备来描述,但是可能理解的是,其他实施例也可能使用其他无线移动计算设备实现。实施例并不局限于本上下文中。

如图14所示,设备5000可能包括显示器5980、导航控制器5920a、用户界面5880、外壳5905、I/O设备5920b和天线5998。显示器5980可能包括用于显示适合于移动计算设备的信息的任何合适的显示单元,并且可能与图13的显示器4980相同或相似。导航控制器5920a可能包括一个或多个导航特征,该一个或多个导航特征可能用于与用户界面5880交互,并且可能与图13中的导航控制器4920相同或相似。I/O设备5920b可能包括任意适当的用于将信息输入移动计算设备中的I/O设备。I/O设备5920b的示例可能包括字母数字键盘、数字小键盘、触摸板、输入建、按钮、开关、摇杆式开关、麦克风、扬声器、话音识别设备和软件等。信息也可能通过麦克风输入到设备5000中。这种信息可能由话音识别设备数字化。实施例并不局限于本上下文中。

更一般地,在此所描述和描绘的计算设备的各种元件可能包括各种硬件元件、软件元件、或二者的组合。硬件元件的示例可能包括:设备、逻辑设备、部件、处理器、微处理器、电路、处理器部件、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可能包括:软件部件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任意组合。然而,确定是否是使用硬件元件和/或软件元件来实现实施例可能根据任何数量的因素变化,如针对给定的实现所期望的,如期望的计算速率、功率电平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。

一些实施例可使用表述“一个实施例”和“一实施例”及其派生词来描述。这些术语意味着与实施例相联系地描述的特定特征、结构或者特性被包括在至少一个实施例中。短语“在一个实施例中”在本说明书中各地方的出现不一定全都表示相同的实施例。进一步地,一些实施例可能使用表述“耦合”以及“连接”及其派生词来描述。这些术语并不一定旨在作为彼此的同义词。例如,一些实施例可使用术语“连接”和/或“耦合”来描述,以表明两个或更多元件彼此直接物理或电接触。然而,术语“耦合”还可能意味着两个或更多个元件未直接地彼此接触,但还是彼此进行合作或交互。此外,可能组合来自不同实施例的方面或元件。

强调的是,提供本公开的摘要以允许读者快速确定本技术公开的本质。以如下理解提交其:其将不被用于解释或者限制权利要求书的范围或者含义。此外,在前述具体实施方式中,可以看到,出于将本公开连成一体的目的而将各种特征在单个实施例中分组在一起。本公开的方法并不被解释为反映以下意图:所要求保护的实施例需要比每项权利要求中明确记载的特征更多的特征。而是,如以下的权利要求书反映的那样,发明性主题在于比单个公开的实施例的全部特征少。因此,以下的权利要求书据此被并入具体实施方式中,其中,每项权利要求独立自主地作为单独的实施例。在所附权利要求书中,术语“包括(including)”和“其中(in which)”分别用作相应术语“包括(comprising)”和“其中(wherein)”的易懂的英文等价物。此外,术语“第一”、“第二”、“第三”等仅用作标签,且不旨在对它们的对象施加数字要求。

以上所描述的内容包括所公开的架构的示例。当然,不可能描述部件和/或方法的每个可想到的组合,但是本领域普通技术人员可能认识到许多其他组合和排列是可能的。相应地,本新颖的架构旨在涵盖落入所附权利要求书的精神和范围内的全部这种变更、修改和变型。详细的公开现在转为提供与进一步的实施例有关的示例。以下提供的示例并不旨在是限制性的。

在示例1中,一种渲染来自三维(3D)模型数据的二维(2D)图像的设备,包括:细栅格化部件,用于屏幕图像的每屏幕图像像素采用多个屏幕图像采样以执行3D模型的细栅格化来标识从所述屏幕图像的视角可见的所述3D模型的可见基元的集合;粗栅格化部件,用于与屏幕图像对应的着色图像的每着色图像像素采用单个着色图像采样来从所述屏幕图像的视角执行所述3D模型的粗栅格化,以标识沿着着色图像像素的路径的至少一个基元;和着色部件,用于对由第一屏幕图像像素的屏幕图像采样标识为在着色图像像素内可见的并且被标识为沿着与所述着色图像像素关联的着色图像采样的路径的基元进行着色以导出第一颜色值。

在包括示例1的主题的示例2中,所述设备可能包括解析部件,用于将所述第一颜色值指派给​​落在着色图像像素内的所述3D模型的着色图像采样的第一集合的每个屏幕图像采样;和采样平均部件,用于对落在第一屏幕图像像素内的所述3D模型的屏幕图像采样的第二集合的颜色值进行平均以确定所述第一屏幕图像像素的第二颜色值,所述第一屏幕图像像素至少部分地与所述着色图像像素一致,并且所述屏幕图像采样的第二集合与屏幕图像采样的第一集合不同并与屏幕图像采样的第一集合共享至少一个屏幕图像采样。

在包括示例1-2中任一个的主题的示例3中,所述细栅格化部件可能生成多个着色点标识符(SPID),以将包括屏幕图像采样的第一和第二集合的多个屏幕图像采样与所述着色图像的多个着色图像像素相关,多个SPID的每个SPID与多个屏幕图像采样的屏幕图像采样关联,并且每个SPID用于将所述可见基元集合中的可见基元与所述多个着色图像像素中的着色图像像素相关。

在包括示例1-3中任一个的主题的示例4中,多个SPID中的每个SPID可能包括:被指派给可见基元的集合的可见基元的标识符;多个着色图像像素的着色图像像素的坐标,与SPID关联的屏幕图像采样落在坐标中;和与坐标关联的着色图像像素内的可见基元的深度的指示。

在包括示例1-4中任一个的主题的示例5中,细栅格化部件可能在多个SPID中的SPID的至少子集之中重新分配标识符以赋予运动模糊效果或景深效果中的至少一个效果。

在包括示例1-5中任一个的主题的示例6中,设备可能包括着色约束部件,用于从多个SPID生成可见基元的集合的可见基元的列表的集合,列表的集合中的每个列表与多个着色图像像素中的着色图像像素关联,并且每个列表包括在与列表关联的着色图像像素内可见的可见基元的集合的至少一个可见基元的至少一个标识符,和在着色图像像素内的至少一个可见基元的深度的指示。

在包括示例1-6中任一个的主题的示例7中,列表的集合中的每个列表可能包括链表,并且列表的集合包括列表的阵列。

在包括示例1-7中任一个的主题的示例8中,着色部件可能将至少一个基元的标识符和与单个着色图像像素关联的列表的集合中的列表的至少一个标识符相比较,以确定是否对在单个着色图像像素中的至少一个基元着色。

在包括示例1-8中任一个的主题的示例9中,着色约束部件可能从多个SPID确定由在多个着色图像像素的每个着色图像像素中可见的可见基元的集合中的任何可见基元所达到的最大深度。

在包括示例1-9中任一个的主题的示例10中,着色部件可能比较至少一个基元的深度与由在单个着色图像像素内可见的任何可见基元所达到的最大深度,以确定是否对在单个着色图像像素内的至少一个基元着色。

在包括示例1-10中任一个的主题的示例11中,设备可能包括过滤部件,用于在确定第二颜色值以向屏幕图像中所描绘的至少一个对象赋予运动模糊效果或景深效果中的至少一个效果中包括与屏幕图像中的第一屏幕图像像素相邻的第二屏幕图像像素关联的颜色值。

在包括示例1-11中任一个的主题的示例12中,细栅格化部件可能采用超级采样、多重采样、随机采样、在时间维度上的随机采样、在透镜维度上的随机采样或射线跟踪中的至少一个。

在包括示例1-12中任一个的主题的示例13中,设备可能包括呈现屏幕图像的显示器。

在包括示例1-13中任一个的主题的示例14中,设备可能包括向另一设备传输表示屏幕图像的屏幕图像数据的接口。

在包括示例1-14中任一个的主题的示例15中,细栅格化部件可能将屏幕图像的像素分辨率设置为显示器的像素分辨率。

在示例16中,一种用于渲染来自三维(3D)模型数据的二维(2D)图像的设备,包括:着色部件,用于对与屏幕图像对应的着色图像的着色图像像素内的可见基元进行着色,以确定着色图像像素的第一颜色值​​;解析部件,用于将第一颜色值指派给​​落在着色图像像素内的3D模型的屏幕图像采样的第一集合中的每个屏幕图像采样;和采样平均部件,用于对落在屏幕图像的第一屏幕图像像素内的3D模型的屏幕图像采样的第二集合的颜色值进行平均,以确定第一屏幕图像像素的第二颜色值,第一屏幕图像像素与着色图像像素至少部分地一致,并且屏幕图像采样的第二集合与屏幕图像采样的第一集合不同并且与屏幕图像采样的第一集合共享至少一个屏幕图像采样。

在包括示例16的主题的示例17中,设备可能包括细栅格化部件,用于采用多个屏幕图像采样来对3D模型进行栅格化,以标识从屏幕图像的视角可见的3D模型的可见基元的集合,以及以生成多个着色点标识符(SPID)来将多个屏幕图像采样与着色图像的多个着色图像像素相关,多个SPID的每个SPID与包括屏幕图像采样的第一和第二集合的多个屏幕图像采样中的屏幕图像采样关联,并且每个SPID用于将可见基元的集合中的可见基元与多个着色图像像素的着色图像像素相关。

在包括示例16-17中任一个的主题的示例18中,多个SPID中的每个SPID可能包括:被指派给可见基元的集合的可见基元的标识符;多个着色图像像素的着色图像像素的坐标,与SPID关联的屏幕图像采样落在坐标中;和与坐标关联的着色图像像素内的可见基元的深度的指示。

在包括示例16-18中任一个的主题的示例19中,细栅格化部件可能在多个SPID中的SPID的至少子集之中重新分配标识符以赋予运动模糊效果或景深效果中的至少一个效果。

在包括示例16-19中任一个的主题的示例20中,设备可能包括着色约束部件,用于从多个SPID生成可见基元的集合的可见基元的列表的集合,列表的集合中的每个列表与多个着色图像像素中的着色图像像素关联,并且每个列表包括在与列表关联的着色图像像素内可见的可见基元的集合的至少一个可见基元的至少一个标识符和在着色图像像素内的至少一个可见基元的深度的指示。

在包括示例16-20中任一个的主题的示例21中,列表的集合中的每个列表可能包括链表,并且列表的集合包括列表的阵列。

在包括示例16-21中任一个的主题的示例22中,设备可能包括粗着色部件,用于采用与多个着色图像像素的单个着色图像像素关联的单个着色图像采样,以标识沿着通过3D模型的单个着色图像采样的路径存在的3D模型的至少一个基元,着色部件用于将至少一个基元的标识符和与单个着色图像像素关联的列表的集合中的列表的至少一个标识符相比较,以确定是否对在单个着色图像像素中的至少一个基元着色。

在包括示例16-22中任一个的主题的示例23中,着色约束部件可能从多个SPID确定由在多个着色图像像素的每个着色图像像素中可见的可见基元的集合中的任何可见基元所达到的最大深度。

在包括示例16-23中任一个的主题的示例24中,设备可能包括粗着色部件,用于采用与多个着色图像像素的单个着色图像像素关联的单个着色图像采样来标识沿着通过3D模型的单个着色图像采样的路径存在的3D模型的至少一个基元,着色部件用于比较至少一个基元的深度与由在单个着色图像像素内可见的任何可见基元所达到的最大深度,以确定是否对在单个着色图像像素内的至少一个基元着色。

在包括示例16-24中任一个的主题的示例25中,设备可能包括过滤部件,用于在确定第二颜色值以向屏幕图像中所描绘的至少一个对象赋予运动模糊效果或景深效果中的至少一个效果中包括与屏幕图像中的第一屏幕图像像素相邻的第二屏幕图像像素关联的颜色值。

在包括示例16-25中任一个的主题的示例26中,细栅格化部件可能采用超级采样、多重采样、随机采样、在时间维度上的随机采样、在透镜维度上的随机采样或射线跟踪中的至少一个。

在包括示例16-26中任一个的主题的示例27中,设备可能包括呈现屏幕图像的显示器,细栅格化部件将屏幕图像的像素分辨率设置为显示器的像素分辨率。

在包括示例16-27中任一个的主题的示例28中,设备可能包括呈现屏幕图像的显示器。

在包括示例16-28中任一个的主题的示例29中,设备可能包括向另一设备传输表示屏幕图像的屏幕图像数据的接口。

在包括示例16-29中任一个的主题的示例30中,该设备可能包括细栅格化部件,用于将屏幕图像的像素分辨率设置为显示器的像素分辨率。

在示例31中,一种用于渲染来自三维(3D)模型数据的二维(2D)图像的计算实现的方法,包括:

屏幕图像的每屏幕图像像素采用多个屏幕图像采样以执行3D模型的细栅格化以标识从屏幕图像的视角可见的3D模型的可见基元的集合;

与屏幕图像对应的着色图像的每着色图像像素采用单个着色图像采样以从屏幕图像的视角执行3D模型的粗栅格化,以标识沿着着色图像像素的路径的至少一个基元;和

对由第一屏幕图像像素的屏幕图像采样标识为在着色图像像素内可见的并且标识为沿着与着色图像像素关联的着色图像采样的路径的基元进行着色,以导出第一颜色值。

在包括示例31的主题的示例32中,方法可能包括:将第一颜色值指派给​​落在着色图像像素内的3D模型的屏幕图像采样的第一集合中的每个屏幕图像采样;和对落在第一屏幕图像像素内的3D模型的屏幕图像采样的第二集合的颜色值进行平均,以确定第一屏幕图像像素的第二颜色值,第一屏幕图像像素与着色图像像素至少部分地一致,并且屏幕图像采样的第二集合与屏幕图像采样的第一集合不同并且与屏幕图像采样的第一集合共享至少一个屏幕图像采样。

在包括示例31-32中任一个的主题的示例33中,方法可能包括:生成多个着色点标识符(SPID),以将包括屏幕图像采样的第一集合和第二集合的多个屏幕图像采样与着色图像的多个着色图像像素相关,多个SPID中的每个SPID与多个屏幕图像采样中的屏幕图像采样关联,并且每个SPID用于将可见基元的集合中的可见基元与多个着色图像像素中的着色图像像素相关。

在包括示例31-33中任一个的主题的示例34中,该方法可能包括:被指派给可见基元的集合中的可见基元的标识符;多个着色图像像素的着色图像像素的坐标,与SPID关联的屏幕图像采样落在该坐标;以及与该坐标关联的着色图像像素内的可见基元的深度的指示。

在包括示例31-34中任一个的主题的示例35中,方法可能包括在多个SPID中的SPID的至少子集之中重新分配标识符以赋予运动模糊效果或景深效果中的至少一个效果。

在包括示例31-35中任一个的主题的示例36中,方法可能包括:从多个SPID生成可见基元的集合中的可见基元的列表的集合,列表的集合中的每个列表与多个着色图像像素中的着色图像像素关联,并且每个列表包括在与列表关联的着色图像像素内可见的可见基元的集合中的至少一个可见基元的至少一个标识符,和在着色图像像素内的至少一个可见基元的深度的指示。

在包括示例31-36中任一个的主题的示例37中,列表的集合中的每个列表可能包括链表,并且列表的集合包括列表的阵列。

在包括示例31-37中任一个的主题的示例38中,方法可能包括:将至少一个基元的标识符和与单个着色图像像素关联的列表的集合中的列表的至少一个标识符相比较,以确定是否对在单个着色图像像素中的至少一个基元着色。

在包括示例31-38中任一个的主题的示例39中,方法可能包括:从多个SPID确定由在多个着色图像像素的每个着色图像像素中可见的可见基元的集合的任何可见基元所达到的最大深度。

在包括示例31-39中任一个的主题的示例40中,方法可能包括:比较至少一个基元的深度与由在单个着色图像像素内可见的任何可见基元所达到的最大深度,以确定是否对在单个着色图像像素内的至少一个基元着色。

在包括示例31-40中任一个的主题的示例41中,方法可能包括:在确定第二颜色值以向屏幕图像中所描绘的至少一个对象赋予运动模糊效果或景深效果中的至少一个效果中包括与屏幕图像中的第一屏幕图像像素相邻的第二屏幕图像像素关联的颜色值。

在包括示例31-41中任一个的主题的示例42中,方法可能包括:采用超级采样、多重采样、随机采样、在时间维度上的随机采样、在透镜维度上的随机采样或射线跟踪中的至少一个。

在包括示例31-42中任一个的主题的示例43中,方法可能包括在显示器上呈现屏幕图像。

在包括示例31-43中任一个的主题的示例44中,方法可能包括向另一设备传输表示屏幕图像的屏幕图像数据。

在包括示例31-44中任一个的主题的示例45中,方法可能包括将屏幕图像的像素分辨率设置为显示器的像素分辨率。

在示例46中,一种用于渲染来自三维(3D)模型数据的二维(2D)图像的计算实现的方法,包括:对与屏幕图像对应的着色图像的着色图像像素内可见的基元进行着色,以确定着色图像像素的第一颜色值​​;将第一颜色值指派给​​落在着色图像像素内的3D模型的屏幕图像采样的第一集合中的每个屏幕图像采样;和对落在屏幕图像的第一屏幕图像像素内的3D模型的屏幕图像采样的第二集合的颜色值进行平均,以确定第一屏幕图像像素的第二颜色值,第一屏幕图像像素与着色图像像素至少部分地一致,并且屏幕图像采样的第二集合与屏幕图像采样的第一集合不同并且与屏幕图像采样的第一集合共享至少一个屏幕图像采样。

在包括示例46的主题的示例47中,方法可能包括:采用多个屏幕图像采样来对3D模型进行栅格化,以标识从屏幕图像的视角可见的3D模型的可见基元的集合以及以生成多个着色点标识符(SPID)来将多个屏幕图像采样与着色图像的多个着色图像像素相关,多个SPID中的每个SPID与包括屏幕图像采样的第一集合和第二集合的多个屏幕图像采样中的屏幕图像采样关联,并且每个SPID用于将可见基元的集合中的可见基元与多个着色图像像素中的着色图像像素相关。

在包括示例46-47中任一个的主题的示例48中,多个SPID中的每个SPID可能包括:被指派给可见基元的集合中的可见基元的标识符;多个着色图像像素中的着色图像像素的坐标,与SPID关联的屏幕图像采样落在该坐标;和与该坐标关联的着色图像像素内的可见基元的深度的指示。

在包括示例46-48中任一个的主题的示例49中,方法可能包括在多个SPID中的SPID的至少子集之中重新分配标识符以赋予运动模糊效果或景深效果中的至少一个效果。

在包括示例46-49中任一个的主题的示例50中,方法可能包括:从多个SPID生成可见基元的集合中的可见基元的列表的集合,列表的集合中的每个列表与多个着色图像像素中的着色图像像素关联,并且每个列表包括在与列表关联的着色图像像素内可见的可见基元的集合中的至少一个可见基元的至少一个标识符和在着色图像像素内的至少一个可见基元的深度的指示。

在包括示例46-50中任一个的主题的示例51中,列表的集合中的每个列表可能包括链表,并且列表的集合包括列表的阵列。

在包括示例46-51中任一个的主题的示例52中,方法可能包括:采用与多个着色图像像素的单个着色图像像素关联的单个着色图像采样,以标识沿着通过3D模型的单个着色图像采样的路径存在的3D模型的至少一个基元,并且将至少一个基元的标识符和与单个着色图像像素关联的列表的集合中的列表的至少一个标识符相比较,以确定是否对在单个着色图像像素中的至少一个基元着色。

在包括示例46-52中任一个的主题的示例53中,方法可能包括:从多个SPID确定由在多个着色图像像素中的每个着色图像像素中可见的可见基元的集合中的任何可见基元所达到的最大深度。

在包括示例46-53中任一个的主题的示例54中,方法可能包括:采用与多个着色图像像素的单个着色图像像素关联的单个着色图像采样来标识沿着通过3D模型的单个着色图像采样的路径存在的3D模型的至少一个基元,并且比较至少一个基元的深度与由在单个着色图像像素内可见的任何可见基元所达到的最大深度,以确定是否对在单个着色图像像素内的至少一个基元着色。

在包括示例46-54中任一个的主题的示例55中,方法可能包括:在确定第二颜色值以向屏幕图像中所描绘的至少一个对象赋予运动模糊效果或景深效果中的至少一个效果中包括与屏幕图像中的第一屏幕图像像素相邻的第二屏幕图像像素关联的颜色值。

在包括示例46-任55一者的主题的示例56中,方法可能包括:采用多个屏幕图像采样以栅格化3D模型包括采用超级采样、多重采样、随机采样、在时间维度上的随机采样、在透镜维度上的随机采样或射线跟踪中的至少一个。

在包括示例46-56中任一个的主题的示例57中,方法可能包括在显示器上呈现屏幕图像。

在包括示例46-57中任一个的主题的示例58中,方法可能包括将屏幕图像的像素分辨率设置为显示器的像素分辨率。

在包括示例46-58中任一个的主题的示例59中,方法可能包括经由网络向另一设备传输表示屏幕图像的屏幕图像数据。

在包括示例46-59中任一个的主题的示例60中,方法可能包括将屏幕图像的像素分辨率设置为另一设备的显示器的像素分辨率。

在示例61中,至少一种机器可读的存储介质,包括:指令,所述指令当由计算设备执行时使得计算设备屏幕图像的每屏幕图像像素采用多个屏幕图像采样以执行3D模型的细栅格化来标识从屏幕图像的视角可见的3D模型的可见基元的集合;与屏幕图像对应的着色图像的每着色图像像素采用单个着色图像采样以从屏幕图像的视角执行3D模型的粗栅格化来标识沿着着色图像像素的路径的至少一个基元;和对由第一屏幕图像像素的屏幕图像采样标识为在着色图像像素内可见的并且被标识为沿着与着色图像像素关联的着色图像采样的路径的基元进行着色,以导出第一颜色值。

在包括示例61的主题的示例62中,可能使得计算设备:将第一颜色值指派给​​落在着色图像像素内的3D模型的屏幕图像采样的第一集合中的每个屏幕图像采样;和对落在第一屏幕图像像素内的3D模型的屏幕图像采样的第二集合的颜色值进行平均以确定第一屏幕图像像素的第二颜色值,第一屏幕图像像素与着色图像像素至少部分地一致,并且屏幕图像采样的第二集合与屏幕图像采样的第一集合不同并且与屏幕图像采样的第一集合共享至少一个屏幕图像采样。

在包括示例61-62中任一个的主题的示例63中,可能使得计算设备:生成多个着色点标识符(SPID),以将包括屏幕图像采样的第一集合和第二集合的多个屏幕图像采样与着色图像的多个着色图像像素相关,多个SPID中的每个SPID与多个屏幕图像采样中的屏幕图像采样关联,并且每个SPID用于将可见基元的集合中的可见基元与多个着色图像像素中的着色图像像素相关。

在包括示例61-63中任一个的主题的示例64中,多个SPID中的每个SPID可能包括: 被指派给可见基元的集合中的可见基元的标识符;多个着色图像像素中的着色图像像素的坐标,与SPID关联的屏幕图像采样落在该坐标;和与该坐标关联的着色图像像素内的可见基元的深度的指示。

在包括示例61-64中任一个的主题的示例65中,可能使得计算设备:在多个SPID中的SPID的至少子集之中重新分配标识符以赋予运动模糊效果或景深效果中的至少一个效果。

在包括示例61-65中任一个的主题的示例66中,可能使得计算设备:从多个SPID中生成可见基元的集合中的可见基元的列表的集合,列表的集合中的每个列表与多个着色图像像素中的着色图像像素关联,并且每个列表包括在与列表关联的着色图像像素内可见的可见基元的集合中的至少一个可见基元的至少一个标识符,和在着色图像像素内的至少一个可见基元的深度的指示。

在包括示例61-66中任一个的主题的示例67中,列表的集合中的每个列表可能包括链表,并且列表的集合可能包括列表的阵列。

在包括示例61-67中任一个的主题的示例68中,可能使得计算设备:

在包括示例61-68中任一个的主题的示例69中,可能使得计算设备:将至少一个基元的标识符和与单个着色图像像素关联的列表的集合中的列表的至少一个标识符相比较,以确定是否对在单个着色图像像素中的至少一个基元着色。

在包括示例61-69中任一个的主题的示例70中,可能使得计算设备:比较至少一个基元的深度与由在单个着色图像像素内可见的任何可见基元所达到的最大深度,以确定是否对在单个着色图像像素内的至少一个基元着色。

在包括示例61-70中任一个的主题的示例71中,可能使得计算设备:在确定第二颜色值以向屏幕图像中所描绘的至少一个对象赋予运动模糊效果或景深效果中的至少一个效果中包括与屏幕图像中的第一屏幕图像像素相邻的第二屏幕图像像素关联的颜色值。

在包括示例61-71中任一个的主题的示例72中,可能使得计算设备:采用超级采样、多重采样、随机采样、在时间维度上的随机采样、在透镜维度上的随机采样或射线跟踪中的至少一个。

在包括示例61-72中任一个的主题的示例73中,可能使得计算设备:在显示器上呈现屏幕图像。

在包括示例61-73中任一个的主题的示例74中,可能使得计算设备:向另一设备传输表示屏幕图像的屏幕图像数据。

在包括示例61-74中任一个的主题的示例75中,可能使得计算设备:将屏幕图像的像素分辨率设置为显示器的像素分辨率。

在示例76中,至少一种机器可读的存储介质,包括指令,所述指令当由计算设备执行时使得计算设备:对与屏幕图像对应的着色图像的着色图像像素内可见的基元进行着色,以确定着色图像像素的第一颜色值​​;将第一颜色值指派给​​落在着色图像像素内的3D模型的屏幕图像采样的第一集合中的每个屏幕图像采样;和对落在屏幕图像的第一屏幕图像像素内的3D模型的屏幕图像采样的第二集合的颜色值进行平均,以确定第一屏幕图像像素的第二颜色值,第一屏幕图像像素与着色图像像素至少部分地一致,并且屏幕图像采样的第二集合与屏幕图像采样的第一集合不同并且与屏幕图像采样的第一集合共享至少一个屏幕图像采样。

在包括示例76的主题的示例77中,可能使得计算设备:采用多个屏幕图像采样来对3D模型进行栅格化,以标识从屏幕图像的视角可见的3D模型的可见基元的集合以及以生成多个着色点标识符(SPID)来将多个屏幕图像采样与着色图像的多个着色图像像素相关,多个SPID中的每个SPID与包括屏幕图像采样的第一集合和第二集合的多个屏幕图像采样中的屏幕图像采样关联,并且每个SPID用于将可见基元的集合中的可见基元与多个着色图像像素中的着色图像像素相关。

在包括示例76-77中任一个的主题的示例78中,多个SPID中的每个SPID可能包括:被指派给可见基元的集合中的可见基元的标识符;多个着色图像像素中的着色图像像素的坐标,与SPID关联的屏幕图像采样落在该坐标;和与该坐标关联的着色图像像素内的可见基元的深度的指示。

在包括示例76-78中任一个的主题的示例79中,可能使得计算设备:在多个SPID中的SPID的至少子集之中重新分配标识符以赋予运动模糊效果或景深效果中的至少一个效果。

在包括示例76-79中任一个的主题的示例80中,可能使得计算设备:从多个SPID生成可见基元的集合中的可见基元的列表的集合,列表的集合中的每个列表与多个着色图像像素中的着色图像像素关联,并且每个列表包括在与列表关联的着色图像像素内可见的可见基元的集合中的至少一个可见基元的至少一个标识符,和在着色图像像素内的至少一个可见基元的深度的指示。

在包括示例76-80中任一个的主题的示例81中,列表的集合中的每个列表可能包括链表,并且列表的集合可能包括列表的阵列。

在包括示例76-81中任一个的主题的示例82中,可能使得计算设备:采用与多个着色图像像素中的单个着色图像像素关联的单个着色图像采样,以标识沿着通过3D模型的单个着色图像采样的路径存在的3D模型的至少一个基元,并且将至少一个基元的标识符和与单个着色图像像素关联的列表的集合中的列表的至少一个标识符相比较,以确定是否对在单个着色图像像素中的至少一个基元着色。

在包括示例76-82中任一个的主题的示例83中,可能使得计算设备:从多个SPID确定由在多个着色图像像素中的每个着色图像像素中可见的可见基元的集合中的任何可见基元所达到的最大深度。

在包括示例76-83中任一个的主题的示例84中,可能使得计算设备:采用与多个着色图像像素中的单个着色图像像素关联的单个着色图像采样来标识沿着通过3D模型的单个着色图像采样的路径存在的3D模型的至少一个基元,并且比较至少一个基元的深度与由在单个着色图像像素内可见的任何可见基元所达到的最大深度,以确定是否对在单个着色图像像素内的至少一个基元着色。

在包括示例76-84中任一个的主题的示例85中,可能使得计算设备:在确定第二颜色值以向屏幕图像中所描绘的至少一个对象赋予运动模糊效果或景深效果中的至少一个效果中包括与屏幕图像中的第一屏幕图像像素相邻的第二屏幕图像像素关联的颜色值。

在包括示例76-85中任一个的主题的示例86中,为采用多个屏幕图像采样以栅格化3D模型,可能使得计算设备:采用超级采样、多重采样、随机采样、在时间维度上的随机采样、在透镜维度上的随机采样或射线跟踪中的至少一个。

在包括示例76-86中任一个的主题的示例87中,可能使得计算设备:在计算设备的显示器上呈现屏幕图像。

在包括示例76-87中任一个的主题的示例88中,可能使得计算设备:将屏幕图像的像素分辨率设置为显示器的像素分辨率。

在包括示例76-88中任一个的主题的示例89中,可能使得计算设备:经由耦合到计算设备的网络向另一设备传输表示屏幕图像的屏幕图像数据。

在包括示例76-89中任一个的主题的示例90中,可能使得计算设备:将屏幕图像的像素分辨率设置为另一设备的显示器的像素分辨率。

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