用于改善msaa渲染效率的技术的制作方法_4

文档序号:8476754阅读:来源:国知局
二进制索引值转换成正确地标识那些颜色存储位置的二进制索引值。 换言之,那些二进制索引值被改变,以便它们匹配它们指向的颜色存储位置的数字标识符。 然后,与由存储在倒数第二个颜色存储位置的颜色数据值所指定的颜色所应用到的样本对 应的样本颜色索引被写入指向倒数第二个颜色存储位置并且匹配倒数第二个颜色存储位 置的数字标识符的二进制索引值。如果透明颜色被触发以应用于样本中的任何一个,那么, 对应于那些样本的样本颜色索引被写入指向最后一个颜色存储位置的并且匹配最后一个 颜色存储位置的数字标识符的二进制索引值。存储或者不存储指定透明颜色的颜色数据 值,样本颜色索引现在一起存储有效的二进制索引值组合。如前面所讨论的,二进制索引值 的全部有效组合指出存储标识应用于每一个样本的颜色的颜色数据值的颜色存储位置,以 及像素样本数据已经转换到完全着色状态。
[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,像素样 本数据被转换到完全着色状态。二进制索引值被存储在样本颜色索引中的每一个中,那些 二进制索引值中的每一个都正确地将第一可用的颜色存储位置标识为在其中存储此颜色 的颜色数据值的颜色存储位置,以便不需要数学运算来导出第一可用的颜色存储位置的身 份。如所讨论的,给定实行的规则,使用这样的正确的二进制索引值会导致二进制索引值的 组合有效,并且此组合是有效组合的事实编码像素样本数据已经被置于完全着色状态的指 不O
[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)总线、HyperTransport?、快速路 径等等。
[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)、指令集、计 算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。然而,判断实施例 使用硬件元件或软件元件来实现可以根据任意数量的因素而不同,如所希望的计算速率、 功率级别、耐热性、处理周期预算、输入数据率、输出数据率、存储器资源、数据
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1