用于改善MSAA渲染效率的技术转让专利

申请号 : CN201380061131.4

文献号 : CN104798108B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : P·萨蒂T·A·皮萨

申请人 : 英特尔公司

摘要 :

各实施例一般涉及用于当为样本存储渲染的颜色数据值时导致透明颜色的颜色数据值的存储被推迟的技术。设备包括处理器电路,以及存储指令的存储器,所述指令导致处理器电路渲染来自从对象的三维模型取出的多个样本的像素,像素对应于像素样本数据,像素样本数据包括多个颜色存储位置,每一颜色存储位置都通过数字标识符来标识,像素样本数据还包括多个样本颜色索引,每一样本颜色索引都对应于样本以指向至少一个颜色存储位置;以被选择以便将全部样本颜色索引之中的二进制索引值的可能组合的子集定义为无效组合的顺序,分配颜色存储位置。描述并要求保护其他实施例。

权利要求 :

1.一种改善渲染效率的设备,包括:

处理器电路;以及

存储器,所述存储器通信地耦合到所述处理器电路以存储指令,所述指令,在由所述处理器电路执行时,导致所述处理器电路用于:渲染来自从对象的三维模型取出的多个样本的像素,所述像素对应于像素样本数据,所述像素样本数据包括多个颜色存储位置,每一颜色存储位置都通过数字标识符来标识,所述像素样本数据包括多个样本颜色索引,每一样本颜色索引都对应于所述多个样本中的样本以指向所述多个颜色存储位置中的至少一个颜色存储位置;以及以被选择以便将全部所述样本颜色索引之中的二进制索引值的可能组合的子集定义为无效组合的顺序,分配所述多个颜色存储位置中的颜色存储位置。

2.如权利要求1所述的设备,所述像素包括2、4、8或16个样本中的一项。

3.如权利要求1所述的设备,包括下列各项中的一项:

显示器,所述处理器电路用于在所述显示器上在视觉上呈现包括所述像素的图像;以及将所述处理器电路耦合到网络的接口,所述处理器电路用于操作所述接口,以通过所述网络,将包括所述像素样本数据并定义包括所述像素的图像的最终图像数据传输到另一计算设备。

4.如权利要求1所述的设备,所述处理器电路用于:

利用创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本数据被初始化到未着色状态的第一无效组合的二进制索引值,初始化所述多个样本颜色索引;以及基于所述第一无效组合,推迟将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的任何颜色存储位置。

5.如权利要求4所述的设备,二进制索引值的所述第一无效组合被选择以便包括每个二进制索引值设置为1的所有比特或每个二进制索引值设置为0的所有比特。

6.如权利要求4所述的设备,所述处理器电路用于:

以所选择的顺序分配由第一数字标识符所标识的第一颜色存储位置;

将指定第一颜色的第一颜色数据值存储在所述第一颜色存储位置,所述第一颜色应用于所述多个样本中的所有样本;

将二进制索引值存储在所述多个样本颜色索引中的所有样本颜色索引中,所述二进制索引值被选择以便:指出所述第一颜色数据值被存储在所述第一颜色存储位置;以及匹配所述第一数字标识符,以创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本数据被转换到完全着色状态的有效组合;以及基于所述有效组合以及将颜色分配给所有颜色存储位置,阻止将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的任何颜色存储位置。

7.如权利要求4所述的设备,所述处理器电路用于:

以所选择的顺序分配由第一数字标识符所标识的第一颜色存储位置;

将指定第一颜色的第一颜色数据值存储在所述第一颜色存储位置,所述第一颜色应用于所述多个样本中的第一样本,没有颜色应用于所述多个样本中的第二样本;

将第一二进制索引值存储在所述多个样本颜色索引中的对应于所述第一样本的第一样本颜色索引中,所述第一二进制索引值被选择以便:指出所述第一颜色数据值被存储在所述第一颜色存储位置;以及要求使用算术运算以从所述第一二进制索引值导出所述第一数字标识符,以创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本数据被转换到部分着色状态的第二无效组合;以及基于所述第二无效组合,推迟将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的任何颜色存储位置。

8.如权利要求7所述的设备,所述算术运算包括下列各项中的一项:从所述第一二进制索引值减去二进制值01,或将二进制值01与所述第一二进制索引值相加。

9.如权利要求7所述的设备,所述处理器电路用于:

以所选择的顺序分配由第二数字标识符所标识的第二颜色存储位置;

将指定第二颜色的第二颜色数据值存储在所述第二颜色存储位置,所述第二颜色应用于所述第二样本;

将第二二进制索引值存储在所述多个样本颜色索引中的对应于所述第二样本的第二样本颜色索引中,所述第二二进制索引值被选择以便:指出所述第二颜色数据值被存储在所述第二颜色存储位置;以及匹配所述第二数字标识符;

确定所述第二颜色应用于所述第二样本导致完全着色状态,在所述完全着色状态下,颜色应用于所述多个样本中的所有样本;

基于所述确定,将第三二进制索引值存储在所述第一样本颜色索引中,所述第三二进制索引值被选择以便:指出所述第一颜色数据值被存储在所述第一颜色存储位置;以及匹配所述第一数字标识符,以创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本数据被转换到完全着色状态的有效组合;以及基于所述有效组合以及将颜色分配给所有颜色存储位置,阻止将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的任何颜色存储位置。

10.如权利要求7所述的设备,所述处理器电路用于:

以所选择的顺序分配由第二数字标识符所标识的第二颜色存储位置;

将指定第二颜色的第二颜色数据值存储在所述第二颜色存储位置,所述第二颜色应用于所述第二样本,没有颜色应用于所述多个样本中的第三样本;

将第二二进制索引值存储在所述多个样本颜色索引中的对应于所述第二样本的第二样本颜色索引中,所述第二二进制索引值被选择以便:指出所述第二颜色数据值被存储在所述第二颜色存储位置;以及要求使用算术运算以从所述第二二进制索引值导出所述第二数字标识符,以创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本仍保持在所述部分着色状态的第三无效组合;以及基于所述第三无效组合,推迟将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的任何颜色存储位置。

11.如权利要求7所述的设备,所述处理器电路用于:

以所选择的顺序分配由第二数字标识符所标识的第二颜色存储位置;

将指定第二颜色的第二颜色数据值存储在所述第二颜色存储位置,所述第二颜色应用于所述第二样本,没有颜色应用于所述多个样本中的第三样本;以及基于确定所述第二颜色存储位置是以所选择的顺序的倒数第二个颜色存储位置并基于没有颜色应用于所述第三样本:将第二二进制索引值存储在所述多个样本颜色索引中的对应于所述第二样本的第二样本颜色索引中,所述第二二进制索引值被选择以便指出所述第二颜色数据值存储在所述第二颜色存储位置,并被选择以便匹配所述第二数字标识符;

以所选择的顺序分配由第三数字标识符所标识的第三颜色存储位置;

将指定透明颜色的第三颜色数据值存储在所述第三颜色存储位置;

将第三二进制索引值存储在所述多个样本颜色索引中的对应于所述第三样本的第三样本颜色索引中,所述第三二进制索引值被选择以便指出所述第三颜色数据值存储在所述第三颜色存储位置,并被选择以便匹配所述第三数字标识符;以及将第四二进制索引值存储在所述第一样本颜色索引中,所述第四二进制索引值被选择以便:指出所述第一颜色数据值被存储在所述第一颜色存储位置;以及匹配所述第一数字标识符,以创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本数据被转换到完全着色状态的有效组合。

12.一种改善渲染效率的设备,包括:

处理器电路;以及

存储器,所述存储器通信地耦合到所述处理器电路以存储指令,所述指令,在由所述处理器电路执行时,导致所述处理器电路用于:渲染来自从对象的三维模型取出的多个样本的像素,所述像素对应于像素样本数据,所述像素样本数据包括多个颜色存储位置,每一颜色存储位置都通过数字标识符来标识,所述像素样本数据还包括多个样本颜色索引,每一样本颜色索引都对应于所述多个样本中的样本以指向所述多个颜色存储位置中的至少一个颜色存储位置;

以将全部所述样本颜色索引之中的二进制索引值的可能组合的第一子集定义为无效组合,将全部所述样本颜色索引之中的二进制索引值的可能组合的第二子集定义为有效组合的所选择的顺序,分配所述多个颜色存储位置中的颜色存储位置;以及基于存储在全部所述样本颜色索引中的所述二进制索引值的当前组合包括无效组合,推迟将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的任何颜色存储位置。

13.如权利要求12所述的设备,所述处理器电路用于利用创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本数据被初始化到未着色状态的第一无效组合的二进制索引值,初始化所述多个样本颜色索引。

14.如权利要求13所述的设备,所述第一无效组合包括每个二进制索引值设置为1的所有比特或每个二进制索引值设置为0的所有比特。

15.如权利要求12所述的设备,所述处理器电路用于基于存储在全部所述样本颜色索引中的全部所述二进制索引值的当前组合包括无效组合,推迟将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的颜色存储位置,直到按所选择的顺序的倒数第二个颜色存储位置被分配用于存储指定从渲染所述多个样本中的样本导出的颜色的颜色数据值。

16.如权利要求12所述的设备,所述处理器电路用于基于存储在全部所述样本颜色索引中的全部所述二进制索引值的当前组合包括有效组合,并基于按所选择的顺序的倒数第二个颜色存储位置未被分配用于存储指定从渲染所述多个样本中的样本导出的颜色的颜色数据值,阻止将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的颜色存储位置。

17.一种用于改善渲染效率的计算机实现的方法,包括:

渲染来自从对象的三维模型取出的多个样本的像素,所述像素对应于像素样本数据,所述像素样本数据包括多个颜色存储位置,每一颜色存储位置都通过数字标识符来标识,所述像素样本数据包括多个样本颜色索引,每一样本颜色索引都对应于所述多个样本中的样本以指向所述多个颜色存储位置中的至少一个颜色存储位置;

以被选择以便将全部所述样本颜色索引之中的二进制索引值的可能组合的子集定义为无效组合的顺序,分配所述多个颜色存储位置中的颜色存储位置;以及利用创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本数据被初始化到未着色状态的第一无效组合的二进制索引值,初始化所述多个样本颜色索引。

18.如权利要求17所述的计算机实现的方法,包括基于存储在全部所述样本颜色索引中的所述二进制索引值的当前组合包括无效组合,推迟将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的任何颜色存储位置。

19.如权利要求17所述的计算机实现的方法,包括:

以所选择的顺序分配由第一数字标识符所标识的第一颜色存储位置;

将指定第一颜色的第一颜色数据值存储在所述第一颜色存储位置,所述第一颜色应用于所述多个样本中的所有样本;

将二进制索引值存储在所述多个样本颜色索引中的所有样本颜色索引中,所述二进制索引值被选择以便:指出所述第一颜色数据值被存储在所述第一颜色存储位置;以及匹配所述第一数字标识符,以创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本数据被转换到完全着色状态的有效组合;以及基于所述有效组合以及将颜色分配给所有颜色存储位置,阻止将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的任何颜色存储位置。

20.如权利要求17所述的计算机实现的方法,包括:

以所选择的顺序分配由第一数字标识符所标识的第一颜色存储位置;

将指定第一颜色的第一颜色数据值存储在所述第一颜色存储位置,所述第一颜色应用于所述多个样本中的第一样本,没有颜色应用于所述多个样本中的第二样本;

将第一二进制索引值存储在所述多个样本颜色索引中的对应于所述第一样本的第一样本颜色索引中,所述第一二进制索引值被选择以便:指出所述第一颜色数据值被存储在所述第一颜色存储位置;以及要求使用算术运算以从所述第一二进制索引值导出所述第一数字标识符,以创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本数据被转换到部分着色状态的第二无效组合;以及基于所述第二无效组合,推迟将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的任何颜色存储位置。

21.如权利要求20所述的计算机实现的方法,所述算术运算包括下列各项中的一项:从所述第一二进制索引值减去二进制值01,或将二进制值01与所述第一二进制索引值相加。

22.如权利要求20所述的计算机实现的方法,包括:

以所选择的顺序分配由第二数字标识符所标识的第二颜色存储位置;

将指定第二颜色的第二颜色数据值存储在所述第二颜色存储位置,所述第二颜色应用于所述第二样本;

将第二二进制索引值存储在所述多个样本颜色索引中的对应于所述第二样本的第二样本颜色索引中,所述第二二进制索引值被选择以便:指出所述第二颜色数据值被存储在所述第二颜色存储位置;以及匹配所述第二数字标识符;

确定所述第二颜色应用于所述第二样本导致完全着色状态,在所述完全着色状态下,颜色应用于所述多个样本中的所有样本;

基于所述确定,将第三二进制索引值存储在所述第一样本颜色索引中,所述第三二进制索引值被选择以便:指出所述第一颜色数据值被存储在所述第一颜色存储位置;以及匹配所述第一数字标识符,以创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本数据被转换到完全着色状态的有效组合;以及基于所述有效组合以及将颜色分配给所有颜色存储位置,阻止将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的任何颜色存储位置。

23.如权利要求20所述的计算机实现的方法,包括:

以所选择的顺序分配由第二数字标识符所标识的第二颜色存储位置;

将指定第二颜色的第二颜色数据值存储在所述第二颜色存储位置,所述第二颜色应用于所述第二样本,没有颜色应用于所述多个样本中的第三样本;

基于确定所述第二颜色存储位置是以所选择的顺序的倒数第二个颜色存储位置并基于没有颜色应用于所述第三样本:将第二二进制索引值存储在所述多个样本颜色索引中的对应于所述第二样本的第二样本颜色索引中,所述第二二进制索引值被选择以便指出所述第二颜色数据值存储在所述第二颜色存储位置,并被选择以便匹配所述第二数字标识符;

以所选择的顺序分配由第三数字标识符所标识的第三颜色存储位置;

将指定透明颜色的第三颜色数据值将存储在所述第三颜色存储位置;

将第三二进制索引值存储在所述多个样本颜色索引中的对应于所述第三样本的第三样本颜色索引中,所述第三二进制索引值被选择以便指出所述第三颜色数据值存储在所述第三颜色存储位置,并被选择以便匹配所述第三数字标识符;以及将第四二进制索引值存储在所述第一样本颜色索引中,所述第四二进制索引值被选择以便:指出所述第一颜色数据值被存储在所述第一颜色存储位置;以及匹配所述第一数字标识符,以创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本数据被转换到完全着色状态的有效组合。

24.如权利要求17所述的计算机实现的方法,所述方法包括下列各项中的一项:在显示器上在视觉上呈现包括所述像素的图像,通过网络,将包括所述像素样本数据并定义包括所述像素的图像的最终图像数据传输到另一计算设备。

25.一种机器可读的存储介质,包括指令,所述指令在由计算设备执行时,导致所述计算设备执行权利要求17-24中的任一项所述的方法。

说明书 :

用于改善MSAA渲染效率的技术

[0001] 背景
[0002] 为在渲染三维(3D)对象的二维(2D)图像时降低锯齿效应(aliasing effect)(例如,沿着像素之间的边界的锯齿形线),发明了各种超采样抗锯齿(SSAA)技术,其中,首先在采样数据内以比稍后从该采样数据创建的最终2D图像更细的分辨率创建2D图像。通常,在SSAA中,对于最终2D图像的每个像素,选择所选数量的样本(常常是2,4,8或16),从最终2D图像的图像平面内的那些像素中的每一个的角度,对于每一个像素取出3D对象的该数量的样本。每一个样本都指定与该样本所属的像素相关联的颜色,使用每一个像素的样本的各种颜色来导出被给予最终2D图像中的每一个像素的颜色。
[0003] 令人遗憾的是,SSAA要求存储器和处理器带宽,因为始终为每一个样本存储完全分离的颜色数据值,不管是否存在其中所有样本都是相同颜色的一个或多个像素的区域。事实上,至少就颜色数据值的存储而言,超采样中的样本基本上被视为好像每一个都是微型像素。在必须以足以支持运动视频(例如,视频游戏中的风景和人物的图像)的高速率实时执行2D图像的渲染的应用中,这样对待样本需要过于昂贵的处理器和存储器带宽量。
[0004] 为了获得以较细的分辨率采样的优点而没有这样的高带宽要求,构想了各种多采样抗锯齿(MSAA)技术,其中,可以为一个像素内的每一个样本存储分离的颜色数据值,但是,在多于一个样本具有相同颜色的情况下,也可以为多个样本只存储一种颜色数据值。事实上,这是颜色数据的压缩的一种形式,它利用这样的情况:像素落在最终2D图像的区域内,在该区域中,在该像素内没有颜色转变(例如,没有边缘)以致于所有其样本都是相同颜色。在这样的情况下,为该像素的所有样本,只存储一次单一颜色值。只有在像素落在其中在该像素内有一个或多个颜色的转变(例如,跨边缘)的区域内以致于在其样本之间至少有两个不同的颜色的情况下,才存储该像素的样本所需的多于一个的颜色数据值。
[0005] 令人遗憾的是,不管在MSAA中这些存储的效率,但是,每当为像素的一个或多个样本存储颜色值时都始终为透明颜色存储颜色数据值的常见的做法限制了带宽要求可以被降低的程度。正是针对这些和其它考虑才需要此处所描述的实施例。
[0006] 附图简述
[0007] 图1示出了导出差异图的计算设备的实施例。
[0008] 图2示出了图1的实施例的部分,描绘了数据结构和图像之间的关系。
[0009] 图3示出了图1的实施例的部分。
[0010] 图4示出了处于未着色状态的图1的实施例的部分。
[0011] 图5a和5b示出了处于未着色状态以及处于完全着色状态的图1的实施例的部分。
[0012] 图6a,6b和6c示出了处于未着色状态、处于部分着色状态、以及处于完全着色状态的图1的实施例的部分。
[0013] 图7a,7b,7c以及7d示出了处于未着色状态、处于各种部分着色状态以及处于各种完全着色状态的图1的实施例的部分。
[0014] 图8a以及8b示出了第一逻辑流程的实施例。
[0015] 图9示出了处理架构的实施例。

具体实施方式

[0016] 各实施例一般涉及用于当为样本存储基元(例如,线、多边形等等)的颜色数据值时导致透明颜色(clear color)的颜色数据值的存储被推迟或完全地避免的技术。更具体而言,以附加地指出那些样本的颜色数据值的存储的当前状态的方式,标识其中存储了像素样本的颜色数据值的颜色存储位置的索引值被编码并解释。可以被指出的状态包括初始化的未着色状态,其中,还没有为特定像素的任何样本存储颜色数据值;部分着色状态,其中,存储了少于像素的全部样本的颜色数据值,但是没有颜色数据值包括透明颜色的颜色数据值;以及,其中存储了所有样本的颜色数据值的状态,可能包括透明颜色的颜色数据值。
[0017] 这些索引值的这样的使用依赖于组织像素的样本的颜色数据值的存储的MSAA实现的常见做法,以便被分配用于该像素的颜色存储位置始终按特定顺序用颜色数据值填充。换句话说,存在其中始终存储特定像素的任何样本的第一颜色数据值的颜色存储位置,存在其中存储下一颜色数据值的颜色存储位置,依次类推。这会导致特定的递增顺序以及使用每一个索引值的方式,以便索引值的某些组合通常是未定义的。除标识颜色存储位置之外,这些以别的方式未定义的索引值用于使这些索引值能指出上述状态中的一个。
[0018] 每当将为特定像素的样本中的一个或多个存储颜色数据值时,访问包括该像素的全部样本的索引值的索引存储位置,以确定什么颜色存储位置已经用于存储颜色数据值,以及该像素的样本的颜色数据值的存储的当前状态。此信息用于确定什么颜色存储位置是其中要存储现在要被存储的颜色数据值的下一可用的颜色存储位置,以及现在是否应该存储像素的透明颜色的颜色数据值。此信息还用于确定索引值的编码现在是否应该被更改为指出其中存储了该像素的所有样本的颜色数据值(可能包括透明颜色的颜色数据值)的完全着色状态的编码。
[0019] 在一个实施例中,例如,设备包括处理器电路和存储器、存储器可通信地耦合到处理器电路以存储指令,在由处理器电路执行时,指令导致处理器电路:渲染来自从对象的三维模型取出的多个样本的像素,像素对应于像素样本数据,像素样本数据包括多个颜色存储位置,每一颜色存储位置都通过数字标识符来标识,像素样本数据还包括多个样本颜色索引,每一样本颜色索引都对应于多个样本中的指向多个颜色存储位置中的至少一个颜色存储位置的样本;以及,以被选择将全部样本颜色索引之中的二进制索引值的可能组合的子集定义为无效组合的顺序,分配多个颜色存储位置中的颜色存储位置。描述并要求保护其他实施例。
[0020] 一般参考此处所使用的符号和命名法,可以以按照在计算机或计算机网络上执行的程序过程来呈现随后的详细描述的各部分。这些过程描述和表示法被所属领域的技术人员用于最有效地将他们的工作实质传递给本领域技术人员。过程,这里一般是指导致所希望的结果的自相一致的操作序列。这些操作是那些需要对物理量进行物理操纵的那些操作。尽管不是必要的,但通常这些量采用能够被存储、传输、组合、比较以及以其它方式操纵的电和/或磁或光信号的形式。已经证明有时,主要是由于通用的原因,将这些信号称为位、值、元素、符号、字符、项、数字等等比较方便。然而,值得注意的是,所有那些和/或类似的项将与适当的物理量关联,而且仅仅是应用于这些量的方便的标记。
[0021] 进一步地,这些操纵常常以诸如添加或比较(通常与由人类操作员执行的智力操作相关联)之类的术语来引用。然而,在大多数情况下,在构成一个或多个实施例的一部分的此处所描述的操作中的任何一种操作中,这样的人类操作员的能力不是必须的,或不是需要的。相反,这些操作是机器操作。对于执行各实施例的操作的有用的机器包括通过根据此处的原理编写的存储在存储器内的计算机程序有选择地激活或配置的通用数字计算机,和/或包括专门地为所需的用途构建的设备。各实施例还涉及用于执行这些操作的设备或系统。这些设备可以为所需的用途专门地构建或可以包括通用计算机。根据给定的描述,会呈现这些机器中的各种机器的所需结构。
[0022] 现在将参考附图,全部附图中相似的参考编号用于表示类似的元件。在下面的描述中,为了进行说明,阐述了很多具体细节以便提供对本公开的全面理解。然而,显而易见,可以在没有这些具体细节的情况下实施各新颖实施方式。在其他情况下,以框图形式示出了各个公知的结构和设备以便于描述本公开。本公开将涵盖落入权利要求的范围内的所有修改、等效方案和替换方案。
[0023] 图1示出了计算设备1000的框图,计算设备1000可以耦合到另一计算设备300,以给其他计算设备300提供由计算设备1000渲染的图像的图像数据。这些计算设备1000和300中的每一个都可以是各种类型的计算设备中的任何一种,包括,但不仅限于,台式计算机系统、数据输入终端、膝上型计算机、上网本计算机、超极本计算机、平板电脑、手持式个人数据助理、智能电话、数码相机、安装在衣服中的穿戴计算设备、集成到交通工具(例如,汽车、自行车、轮椅等等)中的计算设备、服务器、服务器集群、服务器场等等。
[0024] 如所描绘的,这些计算设备1000和300通过网络999交换用于传输所渲染图像的信号。然而,这些计算设备中的一个或两个可以通过网络999彼此和/或与其他计算设备(未示出)交换与渲染的图像完全不相关的其他数据。在各种实施例中,网络可以是可能局限于在单一建筑物或其他相对有限区域内延伸的单一网络,可能延伸相当长的距离的经连接网络的组合,和/或可以包括因特网。如此,网络999可以基于可以用来交换信号的各种通信技术中的任何一种(或组合),包括,但不仅限于,使用电缆和/或光缆的有线技术,以及使用红外线、射频或其他形式的无线传输的无线技术。
[0025] 在各实施例中,计算设备1000包括处理器电路150、存储器160、控件120、显示器180、控制器200以及接口190中的一个或多个。存储器160存储至少一个控制例程140以及3D模型数据130和方向数据135中的一项或多项。控制器200包括处理器电路250、存储器260和显示器接口285中的一项或多项。存储器260存储至少一个控制例程240和3D模型数据130的副本、方向数据135的副本、图像样本数据230和最终图像数据275中的一项或多项。
[0026] 在执行控制例程140时,使处理器电路150维护和/或修改3D模型数据130。响应于可能通过控件120(如果存在的话),响应于它们的被操作,和/或可能通过网络999,从另一计算设备,接收到传输修改3D模型数据130的命令的信号,处理器电路150可能被导致修改3D模型数据130。在某些实施例中,计算设备1000可以是视频游戏系统,其中,3D模型数据
130是视频游戏中的风景和/或人物的3D表示。在某些实施例中,计算设备1000可以是医学工作站,其中,3D模型数据130是人体的组织、结构和/或器官的3D表示。在这样的实施例中,计算设备的操作员可以操作控件120以操纵由3D模型数据130所表示的对象。
[0027] 不管用于维护和/或修改3D模型数据130的目的,处理器电路150进一步被控制例程140导致将3D模型数据130的副本传输到控制器200,并用信号通知控制器200渲染3D模型数据130表示为图像270的任何对象的2D图像。处理器电路140也可以被导致将方向数据135传输到控制器200,方向数据135包括位置的指示,以及图像270的图像平面相对于由3D模型数据130表示的任何对象的朝向,如此,指定将使那些对象在图像270中可查看的视角。
[0028] 在执行控制例程240时,使处理器电路250从在方向数据135中指出的视角渲染由3D模型数据130所表示的对象的图像270。这样做时,使处理器电路250将在3D模型数据130中形成那些对象的基元(例如,线、三角形、多边形等等)栅格化为图像样本数据230。图像样本数据230包括从在方向数据135中指出的图像平面视角可查看的那些对象的基元的子集的2D图像,方向数据135由从该视角从那些基元取出的那些基元的样本构成。图像样本数据
230是随后可以作为图像270显示在显示器180上的最终图像数据275的前身。然而,创建图像样本数据230执行的采样比由最终图像数据275所定义的图像270的分辨率更高。
[0029] 对基元执行此采样以创建图像样本数据230,以减轻图像270中的锯齿的发生,并使用由处理器电路250执行的多采样抗锯齿。如此,图像样本数据230包括样本数据,其中样本按最终将在最终图像数据275中被渲染以定义图像270的像素分组,可能具有每像素的所选的样本比率。为了将指出样本的颜色的颜色数据值存储在存储器260的存储器组件中的效率起见,只要可能,就利用单个颜色数据值指定每一个像素中的多个样本的颜色。
[0030] 图2描绘了图像270的样本和像素之间的此关系的一个可能的示例。具体而言,描绘了图像270的单个像素271(不按比例),在像素271内描绘了四个样本272a-d的位置。应该指出的是,每个像素使用较少的或较多数量的样本的其他实施例也是可以的。还应注意,尽管是在基本上与像素271的区域的矩形形状对齐的矩形布局中描绘四个样本272a-d的,但是,其他实施例也是可以的,其中,样本272a-d可以被随机定位在像素271的矩形区域内,在相对于像素211的矩形形状旋转的矩形布局内,或在精通采样的技术人员所熟知的各种其他布局中的任何一个布局内。
[0031] 也如图2中所描绘的,对应于图像270的一个所描绘的像素271是图像样本数据230内的像素样本数据231和最终图像数据275内的像素颜色数据276。需要明确的是,图像样本数据230内的像素样本数据231的实例,以及最终图像数据275内的像素颜色数据276的实例,与图像270内的像素271的实例一样多。图2旨在描绘以下方式:单个像素271与图像样本数据230以及最终图像数据275内的对应于它的数据相关联。
[0032] 如在图2中进一步描绘的,像素样本数据231包括四个样本颜色索引232a-d。样本颜色索引232a-d分别对应于样本272a-d。像素样本数据231还包括四个颜色存储位置236w-z。虽然四个颜色存储位置(例如,颜色存储位置236w,236x,236y和236z)的量对应于像素271的样本272a-d的量,如将更详细地说明的,在颜色存储位置236w-z和样本272a-d的个体之间不一定有对应关系。
[0033] 在某些实施例中,以定义存储器260内的存储位置的不同区域或“块”的方式,可以在存储器260包括的存储器设备之中组织图像样本数据230,其中在只由样本颜色索引构成的可以称为存储器“平面”的位置中,对应于全部像素的全部样本颜色索引与对应于全部那些像素的全部颜色存储位置分开地存储。进一步,也可以在存储器260内为所有像素的颜色存储位置236w、为所有像素的颜色存储位置236x、为所有像素的颜色存储位置236y、以及为所有像素的颜色存储位置236z定义单独的存储器板。然而,应该指出的是,其他实施例也是可以的,其中,定义存储器260内的存储位置的较小块的量,每一块都对应于图像270的一个像素,其中,每一个像素的全部样本颜色索引以及颜色存储位置分开地放置。
[0034] 由于样本272a-d是从由3D模型数据130所表示的从图像270的像素271的视角可查看的对象的基元取出的,因此,它们的颜色(在不久将更详细地说明的过程中)存储在颜色存储位置236w-z中的一个或多个中。在图像270的所有像素的采样完成之后,对存储在颜色存储位置236w-z内的颜色执行各种数学或其他函数中的任何一种(例如,平均、加权平均、随机选择,等等),以导出被给予像素271的最终颜色,指定该最终颜色的单个颜色数据值存储在最终图像数据275中的像素颜色数据276中。
[0035] 返回到图1,在如此导出图像270的所有像素的颜色的情况下,图像270的渲染完成。在某些实施例中,处理器电路250可以操作显示接口285,以导致图像270在视觉上显示在显示器180上。在其他实施例中,处理器电路250可以用信号通知处理器150,说明图像270的渲染完成,并可以向处理器电路150提供定义图像270的最终图像数据275,以允许处理器电路本身在显示器180上在视觉上呈现图像270,和/或通过网络999,将最终图像数据275传输到其他计算设备300,可能供显示在其显示器380上。
[0036] 应该指出的是,虽然图1描绘了包括分开地执行它们的相应的任务的两个处理器电路(例如,处理器电路150和250)的计算设备1000的实现,但是,其中单一处理器电路执行所有这些上述的任务的计算设备1000的其他实施例也是可以的。然而,可以预想,控制器200包括图形系统,其中,处理器电路250可以在某种程度上被专门化和/或优化以执行与渲染、视频解压缩、图像重新缩放等等相关的任务,而处理器电路150充当执行由操作系统、一个或多个设备驱动程序和/或一个或多个应用程序的指令指示的预期的更广泛各种指令和任务的比较通用的处理电路。
[0037] 在各实施例中,处理器电路150和250中的每一个都可以包括各种市场上可买到的处理器中的任一种,包括但不仅限于, 或 处理器;应用程序、嵌入式和安全处理器; 和/或 或
处理器;IBM和/或 Cell处理器;或 Core(2)
Core(2) Core Core Core
或 处理器。进一步地,这些处理器电路中的一个或多个可以包括多核处理器(无论多个核在同一芯片上共存或存在于单独的晶片上),和/或多个在物理上分离的处理器以某种方式链接所利用的某种其他种类的多处理器架构。
[0038] 在各种实施例中,存储器160和260中的每一个都可以基于各种信息存储技术中的任何一种,可能包括要求电能的不中断的供应的易失性技术,以及可能包括需要使用可以或可以不可移动的机器可读的存储介质的技术。如此,这些存储器中的每一个都可以包括各种类型的存储设备中的任何一种(或类型组合),包括,但不仅限于,只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双倍数据速率DRAM(DDR-DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除编程ROM(EPROM)、电可擦可编程序ROM(EEPROM)、闪存、聚合物存储器(例如,铁电聚合物存储器)、奥氏存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁卡或光卡、一个或多个独立铁磁磁盘驱动器,或被组织成一个或多个阵列的多个存储设备(例如,被组织成独立磁盘冗余阵列,或RAID阵列的多个铁磁磁盘驱动器)。应该指出的是,虽然这些存储器中的每一个都被描绘成单个块,但是,这些中的一个或多个可以包括可以基于不同的存储技术的多个存储设备。如此,例如,这些所描绘的存储器中的一个或多个可以表示可以用来在某种形式机器可读的存储介质上存储和传输程序和/或数据的光驱动器或闪存卡读取器、本地地存储程序和/或数据相对来说比较长的时间的铁磁磁盘驱动器、以及允许相对快速地访问程序和/或数据的一个或多个易失性固态存储器设备(例如,SRAM或DRAM)的组合。还应注意,这些存储器中的每一个都可以由基于相同存储技术的多个存储器组件构成,但是,这些存储器组件可以由于用途的特殊化而分开地维护(例如,某些DRAM设备被用作主存储器,而其他DRAM设备被用作图形控制器的不同的帧缓冲器)。
[0039] 在各种实施例中,接口190可以使用允许计算设备1000耦合到其他设备的各种信令技术中的任何一种,如所描述的。这些接口中的每一个都包括提供至少某些所需的功能以实现这样的耦合的电路。然而,此接口也可以至少部分地利用由处理器电路150执行的指令序列来实现(例如,以实现协议堆栈或其他特征)。在使用电缆和/或光缆的情况下,这些接口可以使用符合各种行业标准中的任何一种的信令和/或协议,包括,但不仅限于,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等等。
[0040] 在各实施例中,显示器180可以基于各种显示技术中的任何一种,包括,但不仅限于,液晶显示器(LCD),包括触敏、彩色、和薄膜晶体管(TFT)LCD;等离子体显示器;发光二极管(LED)显示器;有机发光二极管(OLED)显示器;阴极射线管(CRT)显示器等等。这些显示器中的每一个都可以设置在对应计算设备1000的的外壳内,或可以设置在计算设备1000的在物理上分离的组件的分离外壳内(例如,通过电缆耦合到其他组件的平板监视器)。
[0041] 图3比较详细地示出了图1的计算设备1000某些部分。更具体而言,描绘了执行控制例程140和240的相应控制例程以执行上述的功能的处理器电路150和250的操作环境各方面。如将由所属领域的技术人员认识到的,控制例程140和240中的每一个,包括其组件,被选为在被选择为在分别实现处理器电路150和250中的每一个的任何类型的处理器上操作(例如,可由其执行的)。
[0042] 在各种实施例中,控制例程140可以包括操作系统、设备驱动程序和/或应用级例程(例如,在光盘介质上提供的所谓的“软件套装”,从远程服务器中获取的“小程序”,等等)的组合。在包括操作系统的情况下,操作系统可以是适合于处理器电路150和/或350中的任何对应处理器电路的各种可用的操作系统中的任何一种,包括,但不仅限于,WindowsTM、OS XTM、 或Android OSTM。在包括一个或多个设备驱动程序的情况下,这些设备驱动程序可以为包括计算设备1000的各种其他组件(无论是硬件还是软件组件)中的任何一种提供支持。
[0043] 控制例程140包括可由处理器电路150执行以操作接口190以通过网络999传输并接收信号的通信组件149,如所描述的。如所属领域的技术人员将认识到的,这些通信组件中的每一个被选为与被选为实现这些接口中的对应接口中的每一个的任何类型的接口技术一起操作。
[0044] 控制例程140包括可由处理器电路150执行以维护和/或操纵3D模型数据130的3D例程141,如可能如由处理器电路150可能通过接口190从控件120和/或网络999接收到的信号传达的命令中所指定的。如前面所讨论的,3D模型数据130可以表示从作为视频游戏的一部分绘制的假想对象到人体可以包括的真实对象的各种类型的对象中的任何一种。如此,3D例程141可以是视频游戏程序、CT(计算层析成像)扫描或MRI(磁共振成像)数据查看程序等等。
[0045] 控制例程240包括栅格化组件241,该栅格化组件241执行基于栅格化的渲染过程的一部分,以通过对由3D模型数据130表示的任何对象的至少图形基元(例如,线、三角形、多边形等等)的采样,创建图像样本数据230。在该过程中,栅格化组件导出构成图像样本数据230的样本中的每一个的颜色。控制例程240还包括与栅格化组件241进行协作以存储为样本导出的颜色的样本存储组件243。如前面所讨论的,控制器200实现MSAA作为抗锯齿技术,如此,以当像素的多个样本具有相同颜色时允许那些多个样本的颜色利用单个共同的颜色数据值来描述的方式,描述每一个像素的样本的颜色的颜色数据值由样本存储组件243存储在图像样本数据230中。
[0046] 图4进一步描绘了为在图2中描绘的像素271的样本272a-d的前面所讨论的示例存储颜色数据值的方式的细节。再次如描绘的,对应于像素271的像素样本数据231包括样本颜色索引232a-d和颜色存储位置236w-z。也如用图形方式描绘的,分别存在样本272a-d和样本颜色索引232a-d的1到l对应关系。如比较详细地说明并进一步描绘的,当由栅格化组件241导出样本272a-d中的一个或多个的颜色时,标识该特定颜色的颜色数据值存储在颜色存储位置236w-z中的一个中。然后,样本颜色索引232a-d中的对应于样本272a-d中的已为其导出该颜色的那些样本的那些样本颜色索引各自被导致存储二进制索引值,该二进制索引值指向颜色存储位置236w-z中的其中已经存储了该特定颜色的颜色数据值的那一个颜色存储位置。如此,作为样本272a-d中的多个样本(可能,样本272a-d中的全部)的颜色而导出的颜色只需存储一次,由此,降低访问构成存储器260的存储设备(例如,存储器设备)时的带宽要求。
[0047] 可以使样本颜色索引232a-d中的每一个指向四个颜色存储位置236w-z中的任何一个的方式是通过写入指定颜色存储位置236w-z中的一个的二进制编码的数字标识符的二进制索引值。如所描述的,样本颜色索引232a-d各自存储2比特二进制索引值(由于有四个颜色存储位置236w-z),那些2比特二进制索引值可以被串联,以形成单一8比特值(例如,由存储在样本颜色索引232a-d中的每一个中的二进制索引值的组合形成的字节值),以便这些索引可以以组合形式作为字节值,一起存储在存储器260的一部分内。如所描述的,颜色存储位置236w被分配二进制编码的数字标识符00,颜色存储位置236x被分配二进制编码的数字标识符01,颜色存储位置236y被分配二进制编码的数字标识符10,以及颜色存储位置236z被分配二进制编码的数字标识符11。
[0048] 在图4中还描绘了其中像素样本数据231被初始化到未着色的状态以便为要被存储的颜色数据值作准备的方式。代替初始化颜色存储位置236w-z本身(可能,例如,通过将全0或某种其他初始值写入到每一个颜色存储位置236w-z中),全部四个样本颜色索引232a-d被初始化为全1,由此,通过消除初始化颜色存储位置236w-z(可能每一个都是24比特、32比特或类似较宽的二进制值,取决于颜色深度)的必要性,降低带宽要求。样本颜色索引232a-d的全部比特中的全1指出初始化到未着色的状态的事实部分是由于由样本存储组件243实行的规则,在该规则中,颜色存储位置236w-z始终从颜色存储位置236w开始分配,然后236x,然后236y,然后236z。结果,要被分配的颜色存储位置236w-z中的第一个始终是利用二进制数值00标识的那一个。给出这一点,全1的存在指出颜色存储位置236w-z中没有一个被分配,这表明没有存储样本272a-d中的任何一个的颜色值。
[0049] 给定分配必须从由00二进制索引值所指定的颜色存储位置236w开始的规则,全1的存在表示跨全部样本颜色索引232a-d的二进制索引值的组合,该组合在已经作出颜色存储位置的任何分配的情况下,在分配颜色存储位置用于存储颜色数据值的正常的过程中不会发生,。导致处理器电路250通过使用二进制索引值的全1的这种原本无意义的(如此,无效)组合来编码像素样本数据231已经被初始化到未着色状态的指示,来利用这种组合。如将要比较详细地说明的,假设上述的分配顺序的规则,在其它情况下也无效的二进制索引值的其他组合用于指出部分着色状态,同时,还指出样本272a-d中的不同样本以及存储在颜色存储位置236w-z中的不同颜色存储位置中的颜色数据值之间的关联。也如比较详细地说明的,有跨全部样本颜色索引232a-d存储的有效或无效的二进制索引值组合的事实,与其他因素一起,用于确定将在颜色存储位置236w-z中一个颜色存储位置存储指定“透明(clear)”颜色的颜色数据值推迟多长时间。
[0050] 返回到图3,控制例程240包括像素着色组件246,该像素着色组件246可由处理器电路250执行,以从与每一个像素相关联的样本的存储在图像样本数据230中的颜色数据值导出图像270的每一个像素的最终颜色。如前面所讨论的,可以使用各种方法来导出每一个像素的最终颜色,包括,但不仅限于,平均在每一个像素的样本之中发现的颜色数据值(可能,加权平均),以及从在每一个像素的样本之中发现的那些颜色数据值之中随机选择颜色数据值。用于从它们相关联的样本的颜色导出像素颜色的各种其他技术将是为所属领域的技术人员所熟知。当像素着色组件246导出这些颜色时,像素着色组件246将指出每一个像素的最终颜色的颜色数据值存储在最终图像数据275中,如此,定义在图像270中描绘了什么。
[0051] 在某些实施例中,控制例程240包括呈现组件248,该呈现组件248可由处理器电路250执行以操作显示接口285(如果存在的话)以如在最终图像数据275中定义的,将图像270驱动到显示器180中,由此,在显示器180上在视觉上呈现图像270。另选地或另外地,处理器电路250可以向处理器电路150提供最终图像数据275,以使处理器电路150能够将最终图像数据275传输到另一计算设备(例如,其他计算设备300)或以使处理器电路150能够执行导致图像270在视觉上呈现在显示器180上的任务,代替处理器电路250这样做。
[0052] 值得注意的是,虽然此讨论的中心点是从3D模型数据130导出单个图像270,但是,这不应该被当作暗示只有一个图像被如此导出。换句话说,图像270可以只是构成运动视频的帧流的一个帧,其中,每个帧都是按类似的方式从3D模型数据130导出的。如这种图像渲染领域的技术人员轻松地认识到的,运动视频简单地涉及对于每一个帧重复这样的渲染过程。
[0053] 图5a和5b各自描绘了与在图4中描绘的计算设备1000的相同部分,但是,在存储为像素的样本指定颜色的颜色数据值一个示例的不同的阶段。在此示例中,存储了单个颜色数据值,该颜色数据值应用于像素271中的全部四个样本272a-d。
[0054] 从图5a开始,以前面所描述的方式,通过将全部颜色索引232a-d初始化为全1,像素样本数据231初始化为未着色状态,为存储样本272a-d中的一个或多个的颜色数据值作准备。再次,这种将全1存储到2比特样本颜色索引232a-d的串联的8个比特作为初始化的机制在访问存储器260的某些部分时比将初始值(例如,全0)存储在颜色存储位置236w-z中的每一个要求较少的带宽。
[0055] 如前面所讨论的,存储一对1的样本颜色索引232a-d中的每一个的全部四个值是这四个索引之中的二进制索引值组合,给定分配颜色存储位置236x-z的顺序的上述的规则,该组合通常不会发生。如此,这种二进制索引值的组合是二进制索引值的无效组合,也如前面所讨论的,该组合被分配以编码未着色状态的指示,在未着色状态下,颜色存储位置236w-z中没有一个被分配给用于存储样本272a-d中的任何一个的颜色数据值。这样的使用原本无效的二进制索引值组合作为这样的初始化状态的指示具有消除了为像素样本数据
231分配至少一个附加比特(相应地,为整个图像样本数据230中的每一个其他像素,分配一个附加比特)来提供此初始化状态的指示的必要性的优点。
[0056] 转向图5b,通过样本存储组件243,导致处理器电路250存储单个颜色数据值,该单个颜色数据值指定由栅格化组件241导出的并且此时被判断为对全部四个样本272a-d共同的颜色。这样做时,导致处理器电路250将这一共同的颜色的颜色数据值存储在颜色存储位置236w,如说明的,该颜色存储位置236w始终是要分配的颜色存储位置236w-z中的第一个。还导致处理器电路250将二进制索引值00存储在样本颜色索引232a-d中的每一个中,由此,导致全部四个样本颜色索引232a-d指向颜色存储位置236w(通过二进制代码00来标识的,如所描绘的)。换言之,导致全部四个样本颜色索引232a-d指出,分别为样本272a-d中其对应样本指定颜色的颜色数据值存储在颜色存储位置236w。
[0057] 跨全部这些索引的全0的存在是完全有效的值。它符合通过二进制索引值00来标识的颜色存储位置必须始终被第一个分配(例如,颜色存储位置236w)的规则。此外,如将要比较详细地说明的,导致创建有效组合的二进制索引值00在样本颜色索引232a-d的至少一个中的存在也被分配用于编码像素样本数据231已经被设置为完全着色状态的指示,在完全着色状态,样本272a-d中的每一个都与颜色数据值相关联。如此,二进制索引值00在样本颜色索引232a-d的任何一个中的存在被给予双重同时的含义。
[0058] 图6a、6b和6c中每一个都描绘了与在图4中描绘的计算设备1000的相同部分,但是,在存储为像素的样本指定颜色的颜色数据值的再一个示例的不同阶段。在此示例中,存储了一对颜色数据值,一次一个,其中每一个都应用于像素271中的样本272a-d中的两个。
[0059] 从图6a开始,再次,像素样本数据231通过将全部样本颜色索引232a-d初始化为全1,初始化为未着色状态,为存储颜色数据值作准备。再次,全1的存在是用于编码像素样本数据231已经被初始化到未着色状态的指示的原本无效的二进制索引值组合。
[0060] 转向图6b,通过样本存储组件243,导致处理器电路250存储第一颜色数据值,该第一颜色数据值指定由栅格化组件241导出的并且被判断为应用于样本272a和272b的颜色。这样做时,导致处理器电路250将此颜色的此第一颜色数据值存储在颜色存储位置236w,该颜色存储位置236w始终是第一个分配的颜色存储位置。
[0061] 然而,代替如将预期的,将二进制索引值00存储在样本颜色索引232a和232b中的每一个中,以准确地指出分别与样本272a和272b相关联的颜色数据值存储在颜色存储位置236w,将二进制索引值01存储在样本颜色索引232a和232b中的每一个中。这会导致二进制索引值的另一个无效组合,因为颜色存储位置的分配的第一实例应该导致样本颜色索引
232a-d中的至少一个存储二进制索引值00。如此,根据颜色存储位置的分配的顺序的如前所述的规则,存储在样本颜色索引中的全部四个二进制索引值之中的最低二进制索引值应该是值00。
[0062] 回头参考前面的图5B的讨论,导致有效组合的创建的二进制索引值00在样本颜色索引232a-d中的至少一个中的存在被分配用于编码像素样本数据231已经被设置为完全着色状态的指示,在完全着色状态,样本272a-d中的每一个都与颜色数据值相关联。然而,在图6b中的此示例中,到目前为止,只有样本272a和272b与任何颜色数据值相关联。因此,像素样本数据231还不在完全着色状态。相反,像素样本数据231被置于部分着色状态,在部分着色状态,样本272c和272d有待于与任何颜色数据值相关联。
[0063] 如此,由样本存储组件243导致处理器电路250同时指出样本272a和272b被给予利用存储在颜色存储位置236a中的颜色数据值描述的颜色,并通过将二进制值01与通常分别存储在样本颜色索引232a和232b中的每一个中的二进制索引值00相加,指出像素样本数据231被设置为部分着色状态。如所讨论的,结果是,所有样本颜色索引232a-d中的最低二进制索引值是01,而不是00。具体而言,它是二进制索引值01作为二进制索引值中的最低值在样本颜色索引232a-d中的任何一个中的存在(导致创建无效组合),该存在提供部分着色状态的编码指示。这种部分着色状态的指示也被当作如下指示:必须通过从存储在样本颜色索引232a和232b中的每一个中的二进制索引值01减去二进制值01,导出指出哪一个颜色存储位置存储分配给样本272a和272b的颜色数据值的真实的二进制索引值。此减法导致利用导出的二进制值00准确地标识颜色存储位置236w。
[0064] 部分着色状态的另一个特征是,样本颜色索引232a-d中的任何一个中的二进制索引值11继续被解释为指出样本272a-d中的其相关联的样本还没有被分配颜色数据值。这与存在于所有样本颜色索引232a-d中的此相同二进制索引值11所给出的解释不同,尽管二进制索引值11在所有颜色索引232a-d中的存在也编码未着色状态的指示。如此,样本颜色索引232a-b中的每一个中的指向颜色存储位置236w的二进制索引值01被解释(通过减去二进制值01)为存储分配给样本272a-b的颜色数据值,而样本颜色索引232c-d中的每一个中的二进制索引值11被解释为指出样本272c-d中没有一个被指定一个颜色。
[0065] 简要地返回到前面的图5a和5b的示例,在该示例中,作出了直接从未着色状态到完全着色状态的转换,因为在该示例中存储在颜色存储位置236w的一种颜色数据值应用于全部四个样本272a-d。如此,在该示例中,决不会有少于全部样本272a-d与一个颜色数据值相关联的实例。这是为什么在该示例不会发生其中最低二进制索引值是01的无效二进制索引值组合。
[0066] 转向图6c,通过样本存储组件243,导致处理器电路250存储第二颜色数据值,该第二颜色数据值指定由栅格化组件241导出的并且此时被确定为应用于样本272c和272d的另一个颜色。这样做时,导致处理器电路250根据上述的分配颜色存储位置的顺序的规则,将此第二颜色数据值存储在待分配的下一颜色存储位置,即,颜色存储位置236x。
[0067] 在将此第二颜色数据值存储在颜色存储位置236x的情况下,现在给所有四个样本272a-d中的每一个分配颜色,因此,像素样本数据231现在被置于完全着色状态。如前面所讨论的,像素样本数据231处于完全着色状态的事实被分配为通过使用样本颜色索引232a-d中的二进制索引值指出,这些二进制索引值准确地标识存储与每一个样本272a-d相关联的颜色数据值的颜色存储位置236w-z的颜色存储位置。更具体而言,完全着色状态用存储标识颜色存储位置236w的二进制索引值00的样本颜色索引232a-d中的至少一个来指出,使得00是这些索引之中的最低二进制值。
[0068] 如此,在从指出部分着色状态转换到完全着色状态时,由样本存储组件243导致处理器电路250将存储在样本颜色索引232a和232b中的每一个中的二进制索引值从01修改为00,以准确指向颜色存储位置236w(无需如在部分着色状态时那样减去二进制01)。还由样本存储组件243导致处理器电路250将值01存储在样本颜色索引232c和232d中的每一个中,以指向颜色存储位置236x(也无需减去二进制01)。这样做时,导致处理器电路250跨全部样本颜色索引232a-d创建有效二进制索引值组合。
[0069] 图7a、7b,7c和7d各自描绘了与在图4中描绘的计算设备1000的相同部分,但是,处于存储为像素的样本指定颜色的颜色数据值的再一个示例的不同阶段。在此示例中,存储了四个颜色数据值,一次一个,其中每一个都应用于像素271中的样本272a-d中的一个。进一步,颜色数据值中的一个指定“透明”颜色。
[0070] 从图7a开始,再次,像素样本数据231通过将全部样本颜色索引232a-d初始化为全1,初始化为未着色状态,为存储颜色数据值作准备。再次,全1的存在是用于编码像素样本数据231已经被初始化到未着色状态的指示的原本无效的二进制索引值组合。
[0071] 转向图7b,通过样本存储组件243,导致处理器电路250存储第一颜色数据值,该第一颜色数据值指定由栅格化组件241导出的并由栅格化组件241确定为只应用于样本272a的颜色。这样做时,导致处理器电路250将此颜色的此第一颜色数据值存储在颜色存储位置236w,该颜色存储位置236w始终是第一个分配的颜色存储位置。
[0072] 假定这导致只给样本272a分配颜色数据值,像素样本数据231现在处于部分着色状态。结果,为指出此部分着色状态以及指出存储在颜色存储位置236w中的颜色数据值是分配给样本272a的颜色数据值,二进制索引值01存储在样本颜色索引232a中。如前面所讨论的,并如在图7b中所描绘的,这会导致存储在样本颜色索引232a-d中的任何一个中的最低二进制索引值是二进制01,并且,这会导致需要存储在样本颜色索引232a-d中的指向颜色存储位置的样本颜色索引232a-d中任一个的二进制索引值中的任何一个减去二进制值01,以导出颜色存储位置236w-z中的一个的正确的数字标识符。如此,为使样本颜色索引
232a中的二进制索引值01被正确地解释为指向颜色存储位置236w,必须将此二进制索引值
01减去二进制值01(由此,得出匹配颜色存储位置236w的数字标识符的二进制索引值00)。
[0073] 部分着色模式再次导致样本颜色索引232a-d中的任何一个中的二进制索引值11继续被解释为指出样本272a-d中的其相关联的样本还没有被分配颜色数据值。如此,样本颜色索引232b-d中的每一个中的二进制索引值11被解释为指出样本272b-d中没有一个被分配颜色数据值。
[0074] 转向图7c,通过样本存储组件243,导致处理器电路250存储第二颜色数据值,该第二颜色数据值指定由栅格化组件241导出的并且此时被确定为只应用于样本272c的另一个颜色。这样做时,导致处理器电路250根据上述的分配颜色存储位置的顺序的规则,将此第二颜色数据值存储在可用于分配的下一颜色存储位置,即,颜色存储位置236x。
[0075] 假定这导致只给样本272a和272c分配颜色数据值,像素样本数据231仍保持在部分着色状态。为继续指出此部分着色状态以及指出存储在颜色存储位置236w中的颜色数据值是分配给样本272c的颜色数据值,二进制索引值10存储在样本颜色索引232c中。再次,存储在样本颜色索引232a-d中的任何一个中的最低二进制索引值仍然是存储在样本颜色索引232a中的二进制索引值01,再次,这会提供像素样本数据231仍处于部分着色状态的指示。再次,继续需要减去二进制值01,以导出由存储在样本颜色索引232a-d中的一个中的二进制索引值中的被解释为指向颜色存储位置236w-z中的一个的任何一个所指向的颜色存储位置236w-z中的任何一个的正确的数字标识符。如此,为使样本颜色索引232c中的二进制索引值10被正确地解释为指向颜色存储位置236x,必须将此二进制索引值10减去二进制值10(由此,得出匹配颜色存储位置236x的数字标识符的二进制索引值01)。
[0076] 而且,样本颜色索引232a-d中的任何一个中的二进制索引值11继续被解释为指出样本272a-d中的其相关联的样本还没有被分配颜色数据值。如此,样本颜色索引232b和232d中的每一个中的二进制索引值11被解释为指出样本272b或272d中没有一个被分配颜色数据值。
[0077] 转向图7d,通过样本存储组件243,导致处理器电路250存储第三颜色数据值,该第三颜色数据值指定由栅格化组件241导出的并且此时被确定为只应用于样本272d的再一个颜色。这样做时,导致处理器电路250根据上述的分配颜色存储位置的顺序的规则,将此第三颜色数据值存储在可用于分配的下一颜色存储位置,即,颜色存储位置236y。
[0078] 假定这导致给样本272a和272c-d,但不给样本272b,分配颜色数据值,像素样本数据231将仍保持在部分着色状态。然而,在将此第三颜色数据值存储到颜色存储位置236y时,颜色存储位置的倒数第二个现在已经分配,响应于此,由样本存储组件243导致处理器电路250也将“透明”颜色的颜色数据值存储在颜色存储位置236z(始终是最后一个被分配的颜色存储位置)。这实际会导致也给样本272b分配颜色数据值,这会导致像素样本数据231现转换成处于完全着色状态。这是使用颜色存储位置中的倒数第二个(具体而言,在此示例中,颜色存储位置236y),此时,并非所有样本272a-d都被指定了着色,从而触发此将“透明”颜色的颜色数据值存储在最后一个颜色存储位置。
[0079] 在此转换到完全着色状态时,预期全部样本颜色索引232a-d中的二进制索引值的组合是有效值,其中,样本颜色索引232a-d中的每一个的二进制索引值都正确地标识颜色存储位置236w-z中的一个(例如,存储在样本颜色索引232中的每一个中的二进制索引值实际匹配存储位置236w-z中的它们所指向的存储位置的数字标识符,使得不再需要减去二进制01以导出正确的数字标识符)。如此,在此转换到完全着色状态时,由样本存储组件243进一步导致处理器电路250使用正确的二进制索引值,代替使用要求减去二进制01以导出匹配数字标识符的正确二进制索引值的二进制索引值,分别修改存储在样本颜色索引232a和232c中的二进制索引值,以指向颜色存储位置236w和236x。如此,存储在颜色存储位置232a中的二进制索引值01被替换为二进制索引值00,而存储在样本颜色索引232c中的二进制索引值10被替换为二进制索引值01。通过这样做,二进制索引值10变得可用于样本颜色索引
232d中,以正确地指出分配给样本272d的颜色数据值存储在颜色存储位置236y。样本颜色索引232b继续存储二进制索引值11,然而,在进入完全着色模式时,二进制索引值11现在被解释为指向颜色存储位置236z。
[0080] 在某些实施例中,其颜色数据值存储在颜色存储位置236z中的“透明”颜色可以是用于图像270中由3D模型数据130所表示的任何对象的没有任何部份被示出的区域中的背景颜色。在其他实施例中,透明颜色可以根本不是真正的颜色,而是可以简单地是向控制例程240的另一个组件(未示出)提供需要导出一个像素和/或一个或多个像素的一个或多个样本的没有示出由3D模型数据所表示的任何对象的一部分的背景或其他颜色的指示的颜色数据值。这可以是背景颜色不是单一均匀颜色的情况。
[0081] 部分着色状态的一个特征是,“透明”颜色的存储即便没有完全避免,也至少被推迟。这改进了MSAA的其他实现,在其他实现中,将任何一个颜色数据值存储在颜色存储位置236w-z中的任何一个中,紧跟着将“透明”颜色的颜色数据值存储在颜色存储位置236w-z中的下一可用的颜色存储位置,用于将该透明颜色分配给样本272a-d中的还没有被分配颜色的任何一个样本。换言之并返回到图6b,在MSAA的那些其他实现中,将颜色数据值存储在颜色存储位置236w中以及其分配到样本272a和272b,紧跟着将透明颜色存储在颜色存储位置
236x,以及其分配到样本272c和272d。然而,通过稍后在图6c中将颜色分配到那些完全相同的样本272c和272d,这将变得多余。如此,用于访问存储器260的存储器设备的某些可用带宽被这样快地浪费于存储该“透明”颜色的颜色值数据。通过在部分着色状态过程中将透明颜色的存储至少推迟到倒数第二个颜色存储位置用于存储由栅格化组件241导出的颜色数据值,如图7d所示,在全部样本272a-d被分配由栅格化组件241导出的颜色数据值的情况下,提供了完全避免访问存储器260以存储透明颜色的机会。当跨构成图像270的许多像素执行时,这样的存储透明颜色的颜色数据值的推迟可以防止浪费大量的带宽。例如,假定存储在颜色存储位置236y中的颜色数据值(如图7d所示)被分配给样本272b和272d两者,那么,透明颜色的颜色数据值的存储将会被完全避免,因为样本272a-d中的全部都被分配了由栅格化组件241导出的颜色。在渲染图像270时的稍后的阶段,这样的避免存储透明颜色的颜色数据值也可以提供进一步的优点,因为透明颜色的颜色数据值的最终是多余的所存储副本在颜色存储位置236w-z之中不存在,不会被检索访问,然后被再次存储。
[0082] 从图5a-b、图6a-c以及图7a-7d的示例概括,实行颜色存储位置的分配的顺序的规则,该规则导致样本颜色索引中的二进制索引值的可能组合的子集被定义为可能(因此,有效的),并导致二进制索引值的可能组合的另一个子集被定义为不可能的(因此,无效的)。选择无效组合中的一个来编码像素的像素样本数据被初始化到未着色状态(其中,与该像素相关联的样本中没有一个被分配了颜色)的指示。在上面的示例中,导致全1的样本颜色索引232a-d的二进制索引值组合被选择来编码此指示。
[0083] 若干个其他无效组合用于同时编码由于少于全部样本被分配了由栅格化导出的颜色而该像素的像素样本数据已经被置于部分着色状态的指示,并编码标识哪些颜色存储位置存储应用于样本中的一个或多个的颜色数据值的指示。在标识颜色存储位置的指示的编码中,不使用与数字标识符匹配以正确地标识二进制索引值所指向的颜色存储位置的二进制索引值,来避免创建有效的二进制索引值组合。相反,存储在样本颜色索引中的二进制索引值被选择以要求算术运算来导出匹配二进制索引值指向的颜色存储位置的数字标识符的二进制索引值。在上面的示例中,存储在样本颜色索引232a-d中的指向颜色存储位置236w-z中的一个或多个的二进制索引值被选择来要求减去二进制值01,以导出正确的标识的二进制索引值。
[0084] 在部分着色状态,尽管可能有被分配了由栅格化导出的颜色的一个或多个样本,但是,没有一个样本被分配了透明颜色。实际上,在部分着色状态,表示透明颜色的颜色数据值的存储被推迟(至少直到分配了倒数第二个颜色存储位置),以有可能不需要存储这样的颜色数据值,因为为从栅格化导出的颜色存储的下一颜色数据值可以应用于还没有被分配颜色的全部样本的可能性仍存在。如此,通过使存储随后可能被渲染的透明颜色的颜色数据值的存储器访问不必要,以及避免导致在渲染流水线的以后阶段对该不必要的颜色数据值的后续不必要的访问,努力防止浪费存储器带宽。
[0085] 将通过栅格化导出的颜色数据值存储到倒数第二个颜色存储位置(如由颜色存储位置的分配的顺序的规则规定的)触发从部分着色状态转换到完全着色状态,该转换可以以两种方式中的一种执行——将指定透明颜色的颜色数据值存储到最后一个颜色存储位置,或不。在存储在倒数第二个颜色存储位置中的颜色数据值应用于还没有被分配颜色的全部样本的情况下,不存储透明颜色的颜色数据值。如此,在部分着色状态被推迟,结果是阻止存储透明颜色的颜色数据值。然而,在存储在倒数第二个存储位置中的颜色数据值将不会应用于还没有被分配颜色的全部样本以便仍至少有一个样本仍未被分配颜色的情况下,贯穿整个部分着色状态对存储透明颜色的颜色数据值的推迟在此转换中结束。最后一个颜色存储位置用于存储透明颜色的颜色数据值,对应于仍未被分配颜色的任何样本的任何样本颜色索引被提供有指向现在存储透明颜色的颜色数据值的最后一个颜色存储位置的二进制索引值。
[0086] 在此转换中,从部分着色状态到完全着色状态,检查已经存储在样本颜色索引中的二进制索引值,以确定哪些样本已经被分配了通过栅格化导出的颜色。这与哪些样本现在将被分配由现在被存储在倒数第二个颜色存储位置中的颜色数据值所指定的颜色一起被考虑。如果确定将仍有一个或多个仍未被分配通过栅格化导出的颜色的样本,那么,触发“透明”颜色的颜色数据值存储在最后一个颜色存储位置。
[0087] 在此转换中,不管是否触发透明颜色的颜色数据值的存储,已经存储在样本颜色索引中的任何一个中的并且指向颜色存储位置的二进制索引值从要求算术运算以导出正确的二进制索引值的二进制索引值转换成正确地标识那些颜色存储位置的二进制索引值。换言之,那些二进制索引值被改变,以便它们匹配它们指向的颜色存储位置的数字标识符。
然后,与由存储在倒数第二个颜色存储位置的颜色数据值所指定的颜色所应用到的样本对应的样本颜色索引被写入指向倒数第二个颜色存储位置并且匹配倒数第二个颜色存储位置的数字标识符的二进制索引值。如果透明颜色被触发以应用于样本中的任何一个,那么,对应于那些样本的样本颜色索引被写入指向最后一个颜色存储位置的并且匹配最后一个颜色存储位置的数字标识符的二进制索引值。存储或者不存储指定透明颜色的颜色数据值,样本颜色索引现在一起存储有效的二进制索引值组合。如前面所讨论的,二进制索引值的全部有效组合指出存储标识应用于每一个样本的颜色的颜色数据值的颜色存储位置,以及像素样本数据已经转换到完全着色状态。
[0088] 应该指出的是,尽管描绘并讨论了特定的二进制值被分配用于编码特定的含义,描绘并讨论了以使它们的数字标识符随着每一次这样的分配而递增的方式分配颜色存储位置,描绘并讨论了减去特定的二进制值,但是,这些是任意地选择的二进制和数值。如此,以下替换实施例也是可以的:其中,以如下方式分配颜色存储位置,其中它们的数字标识符随着每一次分配递减和/或被分配用于编码未着色状态的指示的二进制索引值的无效组合是全0,代替全1。
[0089] 图8a和8b一起示出了逻辑流2100的实施例。逻辑流2100可以代表由此处所描述的一个或多个实施例执行的某些或全部操作。更具体而言,逻辑流程2100可以示出由至少控制器200的处理器电路250在执行至少控制例程240时执行的操作。
[0090] 在2110,通过存储已经被分配用于编码其中没有颜色被分配给该像素的任何样本(例如,样本272a-d)的该像素样本数据的样本颜色索引(例如,像素样本数据231的样本颜色索引232a-d)中的未着色状态的指示的无效的二进制索引值组合,栅格化由3D模型数据(例如,3D模型数据130)所表示的对象的图像(例如,图像270)的控制器(例如,控制器200)初始化对应于图像的像素的像素样本数据(例如,对应于图像270的像素271的图像样本数据230的像素样本数据231)。如所讨论的,这样的样本颜色索引是实现抗锯齿的MSAA变体的一部分,在MSAA中,在分配存储颜色数据值的颜色存储位置时,实行始终按所选择的顺序分配那些颜色存储位置的规则。结果,可以存储在样本颜色索引中的二进制索引值的某些组合是无效的,因为它们不应该作为实行颜色存储位置的分配顺序的规则的结果而发生。
[0091] 在2120,将通过由3D模型数据所表示的对象的栅格化导出的颜色的颜色数据值存储在第一可用的颜色存储位置(例如,颜色存储位置236w)。如所讨论的,颜色存储位置的分配顺序的规则的实行规定颜色存储位置中始终第一个分配的特定颜色存储位置,诸如在上面的示例中,颜色存储位置236w。
[0092] 在2130,检查此颜色是否应用于像素的所有样本。如果是,那么,在2132,像素样本数据被转换到完全着色状态。二进制索引值被存储在样本颜色索引中的每一个中,那些二进制索引值中的每一个都正确地将第一可用的颜色存储位置标识为在其中存储此颜色的颜色数据值的颜色存储位置,以便不需要数学运算来导出第一可用的颜色存储位置的身份。如所讨论的,给定实行的规则,使用这样的正确的二进制索引值会导致二进制索引值的组合有效,并且此组合是有效组合的事实编码像素样本数据已经被置于完全着色状态的指示。
[0093] 然而,如果颜色没有应用于像素的所有样本,那么,在2140,像素样本数据被转换到部分着色状态,二进制索引值存储在对应于颜色所应用到的样本的样本颜色索引中的每一个中,二进制索引值被选择来要求数学运算以导出标识第一可用的颜色存储位置的正确二进制索引值。如所讨论的,这样的二进制索引值用于故意创建存储在样本颜色索引中的被分配用于编码像素样本数据已经被置于部分着色状态的指示的二进制索引值的无效组合。
[0094] 在2150,将通过由3D模型数据所表示的对象的栅格化导出的另一颜色的颜色数据值存储在下一可用的颜色存储位置(例如,颜色存储位置236w)。如所讨论的,颜色存储位置的分配顺序的规则的实行规定:还没有被用于存储颜色数据值的颜色存储位置中的哪一个是将要被分配用于存储颜色数据值的下一个颜色存储位置。
[0095] 在2160,检查颜色是否已经分配给像素的全部样本。如果是,那么,在2162,像素样本数据已经转换到完全着色状态。二进制索引值存储在对应于此最新的颜色所应用到的样本的样本颜色索引中的每一个中,正确地指出此最新的颜色的颜色数据值刚刚存储到的颜色存储位置的身份。进一步,其他样本颜色索引中的旨在指向其他颜色存储位置的所有其他二进制索引值都被替换为正确的二进制索引值,以标识那些其他颜色存储位置(通过匹配那些其他颜色存储位置的数字标识符),以便不需要数学运算来导出那些正确的二进制索引值。如所讨论的,给定实行的规则,使用这样的正确二进制索引值会导致有效的二进制索引值组合,并且此组合是有效组合的事实编码像素样本数据已经被置于完全着色状态的指示。
[0096] 然而,如果少于全部样本具有分配给它们的颜色,那么,在2170,检查刚刚分配用于存储此最新颜色的颜色数据值的颜色存储位置是否是倒数第二颜色存储位置(如由实行颜色存储位置的分配顺序的规则规定的)。如果是,那么,在2172,将透明颜色的颜色数据值存储在最后一个颜色存储位置,匹配最后一个存储位置的数字标识符的二进制索引值存储在对应于透明颜色所应用到的样本的每一个样本颜色索引中。在2162,这会将像素样本数据转换到完全着色状态,其中存储在其他样本颜色索引中的指向其他颜色存储位置的二进制索引值被替换为正确的二进制索引值,如所描述的。
[0097] 然而,如果用于存储此最新颜色的颜色数据值的颜色存储位置不是倒数第二个颜色存储位置,那么,在2180,像素样本仍保持在部分着色状态。二进制索引值存储在对应于要被存储的此最新颜色所应用到的样本的样本颜色索引中的每一个中,那些二进制索引值中的每一个都被选择以要求数学运算来导出标识第一可用的颜色存储位置的正确二进制索引值。如所讨论的,如此,跨全部样本颜色索引存储的二进制索引值继续构成继续编码像素样本数据处于部分着色状态的指示的无效组合。
[0098] 图9示出了适用于实现如前所述的各实施例的示例性处理架构3100的实施例。更具体而言,处理架构3100(或其变体)可以被实现为计算设备1000和/或控制器200的一部分。应该指出的是,给处理架构3100的组件提供了附图标记,其中最后两个数字对应于前面所描绘的并且描述为计算设备1000以及控制器200的一部分的组件中的附图标记的最后两个数字。在各实施例中,这有助于将计算设备1000的这样的组件相关联,控制器200可以使用此示例性处理架构。
[0099] 处理架构3100包括各种通常用于数字处理的元件,包括,但不仅限于,一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、计时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件、电源等等。如本申请中所使用的,术语“系统”和“组件”是指其中执行数字处理的计算设备的实体,该实体是硬件、硬件和软件的组合、软件或执行中的软件,通过此所描绘的示例性处理架构提供了其示例。例如,组件可以是,但不仅限于是,在处理器电路上运行的进程、处理器电路本身、可以使用光学和/或磁存储介质的存储设备(例如,硬盘驱动器、阵列中的多个存储驱动器等等)、软件对象、可执行的指令序列、执行线程、程序和/或整个计算设备(例如,整个计算机)。作为说明,在服务器上运行的应用和该服务器两者都可以是组件。一个或多个组件可以驻留在进程和/或执行线程内,且组件可以位于一个计算设备上和/或分布在两个或更多的计算设备之间。进一步地,组件可以通过各种类型的通信介质可通信地彼此耦合,以协调操作。协调可以涉及信息的单向或双向交换。例如,组件可以以通过通信介质传递的信号的形式来传递信息。信息可被实现为分配给一个或多个信号线的信号。消息(包括命令、状态、地址或数据消息)可以是这样的信号中的一个,或可以是多个这样的信号,并可以通过各种连接和/或接口中的任何一种串行地或者基本上并行地传输。
[0100] 如所描绘的,在实现处理架构3100时,计算设备至少包括处理器电路950、支持逻辑951、存储器960、控制器900、到其他设备的接口990以及耦合955。如将说明的,取决于实现处理架构3100的计算设备的各方面,包括其计划的用途和/或使用条件,这样的计算设备还可以包括额外的组件,诸如,但不仅限于,显示接口985和/或一个或多个相机910。
[0101] 耦合955包括一个或多个总线、点对点互连、收发机、缓冲器、交叉点交换机,和/或其他导体和/或可通信地将至少处理器电路950耦合到存储器960的逻辑。耦合955还可以进一步将处理器电路950耦合到接口990、音频子系统970和显示接口985中的一个或多个(取决于还存在这些和/或其他组件中的哪个)。在处理器电路950通过耦合955如此耦合的情况下,处理器电路950能够执行上文详细地所描述的任务中的各种任务,无论是上述的计算设备1000和控制器200中的哪个(哪些)实现处理架构3100。耦合955可以利用以光学方式和/或以电学方式传输信号所采用的各种技术中的任何一种或技术的组合来实现。进一步地,耦合955的至少某些部分可以使用符合各种行业标准中的任何一种的定时和/或协议,包括,但不仅限于,加速图形端口(AGP)、CardBus、扩展的工业标准架构(E-ISA)、微通道架构(MCA)、NuBus、外围组件互连(扩展的)(PCI-X)、PCI Express(PCI-E)、个人计算机存储器卡国际联盟(PCMCIA)总线、HyperTransportTM、快速路径等等。
[0102] 如前面所讨论的,处理器电路950(对应于处理器电路150和250)可以包括各种市场上销售的处理器中的任何一种,使用各种技术中的任何一种,并利用以若干种方式中的任何一种以物理方式组合的一个或多个核来实现。
[0103] 如前面所讨论的,存储器960(对应于存储器160、和260)可以基于各种技术中的任何一种或技术的组合,由一个或多个不同的存储设备构成。更具体而言,如所描绘的,存储器960可以包括易失性存储器961(例如,基于一种或多种形式的RAM技术的固态存储器)、非易失性存储器962(例如,固态、铁磁或不要求持续供电以保留它们的内容的其他存储器)以及可移除介质存储器963(例如,可以用来在计算设备之间传输信息的可移除磁盘或固态存储器卡存储器)中的一个或多个。这种将存储器960描绘为可能包括多个不同类型的存储器是识别计算设备中的多于一个类型的存储设备的常见的用途,其中,一种类型提供相对快速的读取和写入能力,允许处理器电路950更快速地对数据进行操纵(但是可能使用持续要求电能的“易失性”技术),而另一种类型提供比较高密度的非易失性存储器(但是,可能提供相对慢的读取和写入能力)。
[0104] 给定使用不同技术的不同存储设备的不同特征,通常这样的不同存储设备通过不同存储器控制器(这些存储器控制器通过不同的接口耦合到它们的不同存储设备)耦合到计算设备的其他部分。作为示例,在易失性存储器961存在并基于RAM技术的情况下,易失性存储器961可以通过提供合适的到易失性存储器961的接口的存储器控制器965a(易失性存储器961或许使用行和列寻址,并且其中存储器控制器965a可能执行行刷新和/或其他维护任务以帮助保留存储在易失性存储器961内的信息)可通信地耦合到耦合955。作为另一示例,在非易失性存储器962存在并包括一个或多个铁磁和/或固态磁盘驱动器的情况下,非易失性存储器962可以通过提供合适的到非易失性存储器962的接口的存储器控制器965b(非易失性存储器962或许使用对信息块和/或柱面和扇区的寻址)可通信地耦合到耦合955。作为再一个示例,在可移除介质存储器963存在并包括使用一个或多个机器可读的存储介质969的一个或多个光学和/或固态磁盘驱动器的情况下,可移除介质存储器963可以通过提供合适的到可移除介质存储器963的接口的存储器控制器965c(可移除介质存储器
963或许使用对信息块的寻址,其中存储器控制器965c可以以延长机器可读的存储介质969的寿命的方式协调读取、擦除和写入操作)可通信地耦合到耦合955。
[0105] 取决于每一个存储介质所采用的技术,易失性存储器961或非易失性存储器962中的某一个可以包括机器可读的存储介质的形式的制品,在其上面,可以存储包括可由处理器电路950执行的指令序列的例程。作为示例,在非易失性存储器962包括基于铁磁的磁盘驱动器(例如,所谓的“硬盘驱动器”)的情况下,每一个这样的磁盘驱动器通常都使用一个或多个旋转盘,在旋转盘上沉积了磁性响应性粒子的涂层,并以各种模式磁定向粒子以近乎于诸如软盘之类的存储介质的方式存储诸如指令序列之类的信息。作为另一示例,非易失性存储器962可以由固态存储设备组构成,以近乎于紧凑闪存卡的方式来存储诸如指令序列之类的信息。再次地,通常在不同时间在计算设备中使用不同类型的存储设备来存储可执行的例程和/或数据。如此,包括要由处理器电路950执行的指令序列的例程最初可以存储在机器可读的存储介质969中,可移动介质存储器963随后可以用于将该例程复制到非易失性存储器962中,以便存储比较长的时间,不要求机器可读的存储介质969和/或易失性存储器961的持续存在,以便在执行该例程时,由处理器电路950更快速地访问。
[0106] 如前面所讨论的,接口990(可能对应于接口190)可以使用对应于可以用于可通信地将计算设备耦合到一个或多个其他设备的各种通信技术中的任何一种的各种信令技术中的任何一种。可以使用各种形式的有线或无线信令中的一种或两种来使处理器电路950与输入/输出设备(例如,所描绘的示例键盘920或打印机925)和/或其他计算设备进行交互(可能通过网络(例如,网络999)或互连网络组)。在识别常常必须由任何一个计算设备支持的多种类型的信令和/或协议的显著不同的特征时,接口990被描绘成包括多个不同的接口控制器995a、995b和995c。接口控制器995a可以使用各种类型的有线数字串行接口或射频无线接口中的任何一种来从用户输入设备(诸如所描绘的键盘920)接收串行传输的消息。接口控制器995b可以通过所描绘的网络999(或许由一个或多个链路、较小的网络构成的网络,或或许因特网)使用各种基于缆线或无线信令、定时和/或协议中的任何一种来访问其他计算设备。接口995c可以使用允许使用串行或并行信号传输来将数据传输到所描绘的打印机925的各种导电电缆中的任何一种。可以通过接口990的一个或多个接口控制器可通信地耦合的设备的其他示例包括,但不仅限于,话筒、遥控器、指示笔、读卡器、指纹读取器、虚拟现实交互手套、图形输入平板、操纵杆、其他键盘、视网膜扫描仪、触摸屏的接触输入组件、轨迹球、各种传感器、照相机或照相机阵列,以监测人的移动,以接受那些人通过手势和/或面部表情发出的命令和/或数据、激光打印机、喷墨打印机、机械机器人、铣床等等。
[0107] 在计算设备可通信地耦合到(或或许,实际包括)显示器(例如,所描绘的示例显示器980,对应于显示器180)的情况下,实现处理架构3100的这样的计算设备也可以包括显示接口985。虽然在可通信地耦合到显示器时可以使用更一般类型的接口,但是,在显示器上视觉显示各种形式的内容常常要求的有点专业化的附加处理以及所使用的基于缆线的接口的有点专业化的特性,常常需要提供不同显示接口。可以被显示接口985用于显示器980的通信耦合的有线和/或无线信令技术可以利用符合各种行业标准中的任何一种的信令和/或协议,包括,但不仅限于,各种模拟视频接口、数字视频接口(DVI)、显示端口等等中的任何一种。
[0108] 更一般而言,计算设备1000的各种元件可以包括各种硬件元件、软件元件,或两者的组合。硬件元件的示例可包括器件、逻辑器件、组件、处理器、微处理器、电路、处理器电路、电路元件(例如,晶体管、电阻器、电容器、感应器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件元件的示例可包括软件组件、程序、应用、计算机程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。然而,判断实施例使用硬件元件或软件元件来实现可以根据任意数量的因素而不同,如所希望的计算速率、功率级别、耐热性、处理周期预算、输入数据率、输出数据率、存储器资源、数据总线速度及其他设计或性能约束,如根据需要给定实现的需要。
[0109] 可以使用表达“一个实施例”或“实施例”以及它们的派生词来描述某些实施例。这些术语意味着,参考实施例所描述的特定功能、结构或特征包括在至少一个实施例中。在本说明书中的不同位置出现短语“在一个实施例中”不一定都是指同一个实施例。进一步地,可以使用表达耦合摂和连接摂以及它们的派生词来描述某些实施例。这些术语不一定作为彼此的同义词。例如,某些实施例可以使用术语“连接的”和/或“耦合的”来描述,以指示两个或更多个元件彼此直接物理或电气接触。然而,术语“耦合”也可以意味着,两个或更多彼此不直接接触,但是仍彼此合作或进行交互的元件。此外,来自不同的实施例的各方面或元件还可以组合。
[0110] 值得强调的是,提供“摘要”以使读者快速地弄清技术公开的本质。但应理解,它不能被用来解释或限制权利要求的范围或含义。此外,由上述具体实施方式摂可见,将各种特征组合在单个实施例中是为了使公开内容流畅。这种公开方式不应被解释为反映了这样一种意图,即所要求保护的实施例需要比各权利要求清楚记载的特征要多的特征。相反,如所附权利要求反映出来的那样,发明主题依赖于少于以上公开的单个实施例的所有特征。因此,所附权利要求在此被包括到具体描述中,其中每个权利要求独立作为单独的优选实施例。在所附权利要求书中,术语“包含”和“其中”(in which)被用作相应的术语“包含”和“其中”(herein)的普通英语等效词。此外,术语“第一”、“第二”、“第三”等等只用作标记,并不旨在对它们的对象施加数值要求。
[0111] 上面描述的包括所公开的架构的各示例。当然,描述每一个可以想到的组件和/或方法的组合是不可能的,但本领域内的普通技术人员应该认识到,许多其他组合和排列都是可能的。因此,该新颖架构旨在涵盖所有这些落入所附权利要求书的精神和范围内的更改、修改和变化。详细的公开现在转向提供涉及进一步的实施例。下面所提供的示例不旨在是限制性的。
[0112] 设备的示例包括处理器电路和通信地耦合到处理器电路以存储指令的存储器。当由处理器电路执行时,指令导致处理器电路渲染来自从对象的三维模型取出的多个样本的像素,所述像素对应于像素样本数据,所述像素样本数据包括多个颜色存储位置,每一颜色存储位置都通过数字标识符来标识,所述像素样本数据还包括多个样本颜色索引,每一样本颜色索引都对应于所述多个样本中的样本以指向所述多个颜色存储位置中的至少一个颜色存储位置;以被选择用于将全部所述样本颜色索引之中的二进制索引值的可能组合的子集定义为无效组合的顺序,分配所述多个颜色存储位置中的颜色存储位置。
[0113] 在上面的设备的示例中,像素包括2、4,8或16个样本中的一项。
[0114] 在上面的设备的示例的任何一项中,处理器电路用于利用创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本数据被初始化到未着色状态的无效组合的二进制索引值,初始化所述多个样本颜色索引,以及,基于所述无效组合,推迟将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的任何颜色存储位置。
[0115] 在上面的设备的示例中的任何一个中,二进制索引值的第一无效组合被选择包括设置为1的每个二进制索引值的所有比特或设置为0的每个二进制索引值的所有比特。
[0116] 在设备的上面的示例中的任何一个中,设备包括显示器,处理器电路用于在显示器上在视觉上呈现包括像素的图像。
[0117] 在上面的设备的示例中的任何一个中,处理器电路用于以所选择的顺序分配由第一数字标识符所标识的第一颜色存储位置;将指定第一颜色的第一颜色数据值存储在所述第一颜色存储位置,所述第一颜色应用于所述多个样本中的所有样本;将二进制索引值存储在所述多个样本颜色索引中的所有样本颜色索引中(所述二进制索引值被选择以便指出所述第一颜色数据值存储在所有颜色存储位置中,并且以便匹配所述第一数字标识符,来创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本数据被转换到完全着色状态的有效组合);以及基于所述有效组合以及将颜色分配给所有颜色存储位置,阻止将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的任何颜色存储位置。
[0118] 在上面的设备的示例中的任何一个中,处理器电路用于以所选择的顺序分配由第一数字标识符所标识的第一颜色存储位置;将指定第一颜色的第一颜色数据值存储在所述第一颜色存储位置,所述第一颜色应用于所述多个样本中的第一样本,没有颜色应用于所述多个样本中的第二样本;将第一二进制索引值存储在所述多个样本颜色索引中的对应于所述第一样本的第一样本颜色索引中(所述第一二进制索引值被选择以便指出所述第一颜色数据值存储在所述第一颜色存储位置中,并且以便要求使用算术运算以从所述第一二进制索引值导出所述第一数字标识符,来创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本数据被转换到部分着色状态的第一无效组合);以及,基于所述第一无效组合,推迟将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的任何颜色存储位置。
[0119] 在上面的设备的示例中的任何一个中,算术运算包括下列各项中的一项:从所述第一二进制索引减去二进制值01,或将二进制值01与所述第一二进制索引相加。
[0120] 在上面的设备的示例中的任何一个中,处理器电路用于以所选择的顺序分配由第二数字标识符所标识的第二颜色存储位置;将指定第二颜色的第二颜色数据值存储在所述第二颜色存储位置,所述第二颜色应用于所述第二样本;将第二二进制索引值存储在所述多个样本颜色索引中的对应于所述第二样本的第二样本颜色索引中,(所述第二二进制索引值被选择以指出所述第二颜色数据值存储在所述第二颜色存储位置,并被选择以匹配所述第二数字标识符);确定将所述第二颜色应用于所述第二样本会造成完全着色状态,在所述完全着色状态下,颜色应用于所述多个样本中的所有样本;基于所述确定,将第三二进制索引值存储在所述第一样本颜色索引中(所述第三二进制索引值被选择以便指出所述第一颜色数据值存储在所述第一颜色存储位置中,并且以便匹配所述第一数字标识符,来创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本数据被转换到完全着色状态的有效组合;以及基于所述有效组合以及将颜色分配给所有颜色存储位置,阻止将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的任何颜色存储位置。
[0121] 在上面的设备的示例中的任何一个中,处理器电路用于以所选择的顺序分配由第二数字标识符所标识的第二颜色存储位置;将指定第二颜色的第二颜色数据值存储在所述第二颜色存储位置,所述第二颜色应用于所述第二样本,没有颜色应用于所述多个样本中的第三样本;将第二二进制索引值存储在所述多个样本颜色索引中的对应于所述第二样本的第二样本颜色索引中,(所述第二二进制索引值被选择以便指出所述第二颜色数据值存储在所述第二颜色存储位置中,并且以便要求使用算术运算以从所述第二二进制索引值导出所述第二数字标识符,来创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本仍保持在所述部分着色状态的第二无效组合);以及,基于所述第二无效组合,推迟将指定透明颜色的透明颜色数据值存储在多个颜色存储位置中的任何颜色存储位置。
[0122] 在上面的设备的示例中的任何一个中,处理器电路用于以所选择的顺序分配由第二数字标识符所标识的第二颜色存储位置;将指定第二颜色的第二颜色数据值存储在所述第二颜色存储位置,所述第二颜色应用于所述第二样本,没有颜色应用于所述多个样本中的第三样本;以及,基于确定所述第二颜色存储位置是以所选择的顺序的倒数第二颜色存储位置并基于没有颜色应用于所述第三样本:将第二二进制索引值存储在所述多个样本颜色索引中的对应于所述第二样本的第二样本颜色索引中,所述第二二进制索引值被选择以便指出所述第二颜色数据值存储在所述第二颜色存储位置,并被选择以便匹配所述第二数字标识符;以所选择的顺序分配由第三数字标识符所标识的第三颜色存储位置;将指定透明颜色的第三颜色数据值存储在所述第三颜色存储位置;将第三二进制索引值存储在所述多个样本颜色索引中的对应于所述第三样本的第三样本颜色索引中,所述第三二进制索引值被选择以便指出所述第三颜色数据值存储在所述第三颜色存储位置,并被选择以便匹配所述第三数字标识符;以及,将第四二进制索引值存储在所述第一样本颜色索引中,(所述第四二进制索引值被选择以便指出所述第一颜色数据值存储在所述第一颜色存储位置中,并且匹配以便所述第一数字标识符,来创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本数据被转换到完全着色状态的有效组合)。
[0123] 另一设备的示例包括处理器电路和通信地耦合到处理器电路以存储指令的存储器。当由处理器电路执行时,指令导致处理器电路渲染来自从对象的三维模型取出的多个样本的像素,所述像素对应于像素样本数据,所述像素样本数据包括多个颜色存储位置,每一颜色存储位置都通过数字标识符来标识,所述像素样本数据还包括多个样本颜色索引,每一样本颜色索引都对应于所述多个样本中的样本以指向所述多个颜色存储位置中的至少一个颜色存储位置;以将全部所述样本颜色索引之中的二进制索引值的可能组合的第一子集定义为无效组合并且将全部所述样本颜色索引之中的二进制索引值的可能组合的第二子集定义为有效组合的所选择的顺序,分配所述多个颜色存储位置中的颜色存储位置;以及,基于存储在全部所述样本颜色索引中的所述二进制索引值当前组合包括无效组合,推迟将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的任何颜色存储位置。
[0124] 在上面的另一设备的示例的任何第一项中,处理器电路用于利用创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本数据被初始化到未着色状态的第一无效组合的二进制索引值,初始化所述多个样本颜色索引。
[0125] 在上面的另一设备的示例中的任何一个中,所述第一无效组合包括设置为1的每个二进制索引值的所有比特或设置为0的每个二进制索引值的所有比特。
[0126] 在上面的另一设备的示例中的任何一个中,处理器电路用于基于存储在全部所述样本颜色索引中的全部所述二进制索引值的当前组合包括无效组合,推迟将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的颜色存储位置,直到按所选择的顺序的倒数第二个颜色存储位置被分配用于存储指定从渲染所述多个样本中的样本导出的颜色的颜色数据值。
[0127] 在上面的另一设备的示例中的任何一个中,处理器电路用于基于存储在全部所述样本颜色索引中的全部所述二进制索引值的当前组合包括有效组合,并基于按所选择的顺序的倒数第二个颜色存储位置未被分配用于存储指定从渲染所述多个样本中的样本导出的颜色的颜色数据值,阻止将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的一个颜色存储位置。
[0128] 在计算机实现的方法的示例中,方法包括渲染来自从对象的三维模型取出的多个样本的像素,所述像素对应于像素样本数据,所述像素样本数据包括多个颜色存储位置,每一颜色存储位置都通过数字标识符来标识,所述像素样本数据还包括多个样本颜色索引,每一样本颜色索引都对应于所述多个样本中的样本以指向所述多个颜色存储位置中的至少一个颜色存储位置;以被选择以便将全部所述样本颜色索引之中的二进制索引值的可能组合的子集定义为无效组合的顺序,分配所述多个颜色存储位置中的颜色存储位置;以及,利用创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本数据被初始化到未着色状态的无效组合的二进制索引值,初始化所述多个样本颜色索引。
[0129] 在上面的计算机实现的方法的示例中,方法包括基于存储在全部所述样本颜色索引中的所述二进制索引值的当前组合包括无效组合,推迟将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的任何颜色存储位置。
[0130] 在上面的计算机实现的方法的示例中的任何一个中,方法包括以所选择的顺序分配由第一数字标识符所标识的第一颜色存储位置;将指定第一颜色的第一颜色数据值存储在所述第一颜色存储位置,所述第一颜色应用于所述多个样本中的所有样本;将二进制索引值存储在所述多个样本颜色索引中的所有样本颜色索引中(所述二进制索引值被选择以便指出所述第一颜色数据值存储在所有所述颜色存储位置中,并且以便匹配所述第一数字标识符,来创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本数据被转换到完全着色状态的有效组合);以及,基于所述有效组合以及将颜色分配给所有颜色存储位置,阻止将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的任何颜色存储位置。
[0131] 在上面的计算机实现的方法的示例中的任何一个中,方法包括以所选择的顺序分配由第一数字标识符所标识的第一颜色存储位置;将指定第一颜色的第一颜色数据值存储在所述第一颜色存储位置,所述第一颜色应用于所述多个样本中的第一样本,没有颜色应用于所述多个样本中的第二样本;将第一二进制索引值存储在所述多个样本颜色索引中的对应于所述第一样本的第一样本颜色索引中(所述第一二进制索引值被选择以便指出所述第一颜色数据值存储在所述第一颜色存储位置中,并且以便要求使用算术运算以从所述第一二进制索引值导出所述第一数字标识符,来创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本数据被转换到部分着色状态的第一无效组合);以及,基于所述第一无效组合,推迟将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的任何颜色存储位置。
[0132] 在上面的计算机实现的方法的示例中的任何一个中,算术运算包括下列各项中的一项:从所述第一二进制索引减去二进制值01,或将二进制值01与所述第一二进制索引相加。
[0133] 在上面的计算机实现的方法的示例中的任何一个中,方法包括以所选择的顺序分配由第二数字标识符所标识的第二颜色存储位置;将指定第二颜色的第二颜色数据值存储在所述第二颜色存储位置,所述第二颜色应用于所述第二样本;将第二二进制索引值存储在所述多个样本颜色索引中的对应于所述第二样本的第二样本颜色索引中(所述第二二进制索引值被选择以便指出所述第二颜色数据值存储在所述第二颜色存储位置,并被选择以便匹配所述第二数字标识符);确定所述第二颜色应用于第二样品造成完全着色状态,在所述完全着色状态下,颜色应用于所述多个样本中的所有样本;基于所述确定,将第三二进制索引值存储在所述第一样本颜色索引中(所述第三二进制索引值被选择以便指出所述第一颜色数据值存储在所述第一颜色存储位置中,并且以便匹配所述第一数字标识符,来创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本数据被转换到完全着色状态的有效组合;以及,基于所述有效组合以及将颜色分配给所有颜色存储位置,阻止将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的任何颜色存储位置。
[0134] 在上面的计算机实现的方法的示例中的任何一个中,方法包括以所选择的顺序分配由第二数字标识符所标识的第二颜色存储位置;将指定第二颜色的第二颜色数据值存储在所述第二颜色存储位置,所述第二颜色应用于所述第二样本,没有颜色应用于所述多个样本中的第三样本;基于确定所述第二颜色存储位置是以所选择的顺序的倒数第二个颜色存储位置并基于没有颜色应用于所述第三样本:将第二二进制索引值存储在所述多个样本颜色索引中的对应于所述第二样本的第二样本颜色索引中,所述第二二进制索引值被选择以便指出所述第二颜色数据值存储在所述第二颜色存储位置,并被选择以便匹配所述第二数字标识符;以所选择的顺序分配由第三数字标识符所标识的第三颜色存储位置;将指定透明颜色的第三颜色数据值存储在所述第三颜色存储位置;将第三二进制索引值存储在所述多个样本颜色索引中的对应于所述第三样本的第三样本颜色索引中,所述第三二进制索引值被选择以便指出所述第三颜色数据值存储在所述第三颜色存储位置,并被选择以便匹配所述第三数字标识符;以及,将第四二进制索引值存储在所述第一样本颜色索引中,(所述第四二进制索引值被选择以便指出所述第一颜色数据值存储在所述第一颜色存储位置中,并且以便匹配所述第一数字标识符,来创建全部所述样本颜色索引之中的二进制索引值的指出所述像素样本数据被转换到完全着色状态的有效组合)。
[0135] 至少一个机器可读的存储介质的示例包括指令,所述指令,当由计算设备执行时,导致计算设备渲染来自从对象的三维模型取出的多个样本的像素,所述像素对应于像素样本数据,所述像素样本数据包括多个颜色存储位置,每一颜色存储位置都通过数字标识符来标识,所述像素样本数据还包括多个样本颜色索引,每一样本颜色索引都对应于所述多个样本中的样本以指向所述多个颜色存储位置中的至少一个颜色存储位置;以将全部所述样本颜色索引之中的二进制索引值的可能组合的第一子集定义为无效组合并且将全部所述样本颜色索引之中的二进制索引值的可能组合的第二子集定义为有效组合的所选择的顺序,分配所述多个颜色存储位置中的颜色存储位置;以及,基于存储在全部所述样本颜色索引中的所述二进制索引值的当前组合包括无效组合,推迟将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的任何颜色存储位置。
[0136] 在上面的至少一个机器可读的存储介质的示例中,导致所述计算设备基于存储在全部所述样本颜色索引中的全部所述二进制索引值的当前组合包括无效组合,推迟将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的颜色存储位置,直到按所选择的顺序的倒数第二个颜色存储位置被分配用于存储指定从渲染所述多个样本中的样本导出的颜色的颜色数据值。
[0137] 在上面的至少一个机器可读的存储介质的示例中的任何一项中,导致所述计算设备基于存储在全部所述样本颜色索引中的全部所述二进制索引值的当前组合包括有效组合,并基于按所选择的顺序的倒数第二个颜色存储位置未被分配用于存储指定从渲染所述多个样本中的样本导出的颜色的颜色数据值,阻止将指定透明颜色的透明颜色数据值存储在所述多个颜色存储位置中的颜色存储位置。