本申请要求2003年10月10日提交的名为“PRT的健壮采样(ROBUSTSAMPLING FOR PRT)”的美国临时专利申请号60/510,301(客户摘要号306874.01)的优先权,其整体内容通过引用结合于此。
本申请主题上涉及以下普通转让申请中所揭示的发明,其整体内容通过引用结合于此:同日提交的名为“使用球谐函数和点光分布的全频率重点亮系统和方法(SYSTEMS AND METHODS FOR ALL-FREQUENCY RELIGHTING USINGSPHERICAL HARMONICS AND POINT LIGHT DISTRIBUTIONS)”的美国专利申请号(未转让)(委托摘要号MSFT-2926/306875.02)。
背景技术
关于自然光照环境中存在的计算机生成三维图形对象,适当地表示来自面光源、软性阴影和互反射的光,是逼真图像合成的重要效果。不幸地,本领域中的用于在大规模光照环境集成的一般方法,包括蒙特卡洛光线跟踪、辐射通量密度和在多个点光源上求和的多路呈现,对于实时呈现都不实用。实时、逼真全局光照遇到三个难题:(a)它必须对真实材料的复杂、空间变化的双向反射分布函数(BRDF)建模(即,BRDF复杂度);(b)它需要在光照方向的半球面上的每一点上积分(光学积分);以及(c)它必须考虑跳动/遮挡效果,如阴影,这是由于沿从光源到接收器的光路的介入问题(光传播复杂度)。如本领域的技术人员已知且理解的,本领域中的现有开发很大程度上着眼于扩充BRDF复杂度(如,平滑且各向异性反射)并通过将入射光表示为方向或点的总和来解光学积分问题。由此,光学积分易处理地减少到在几个点上对分析或表格BRDF进行采样,但是变得对大光源难处理。其它现有方法对辐射进行采样,并用各种大小的核对其进行预卷积来解光学积分问题,但是这些方法忽略了诸如阴影等光传播复杂度,因为卷积假定入射辐射未被遮挡且未散射。最后,存在一些额外的方法来模拟更复杂的光传播,尤其是阴影,但是光学积分仍是问题,且这些技术对十分大的光源不实用。
最近形成的一种用于解决先前存在的方法中的许多这些问题的改进的方法是预计算辐射转移(PRT),它是用于低频光照环境中漫反射和光滑对象的实时呈现的方法,它捕捉软性阴影、互反射和焦散。作为一种预处理,全局传播模拟器在表示任意、低频入射光的对象的表面上创建函数到转移辐射,它包括来自其上的对象的全局效果,如阴影和互反射。在运行时,这些转移函数被应用到实际的入射光照。动态地,局部光线通过在每一帧靠近对象对其进行采样来处理,并且该对象也可相对于光线来刚性旋转(反之亦然)。使用低阶球谐函数来表示光线和转移函数,它避免了混迭,并通过将阴影积分减少到如九(9)到二十五(25)元素矢量的点乘在图形硬件上有效地进行估算,用于漫反射接收器。光滑对象使用矩阵而非矢量来处理。该方法也实现从动态光照环境通过预处理对象到空间中邻近点的辐射转移函数。这些允许来自刚性移动对象的软性阴影和焦散被投射到任意、动态接收器,以提供实时全局光效果。
PRT通过使用这一低阶、球谐函数(SH)基来有效地表示环境,较好地考虑了光学积分和实时光传播复杂度,尤其是在低频光照环境中。PRT方法的基础方法是表示对象如何将光散射到其自身或其相邻空间。一般而言,PRT方法的技术假定最初凸面、漫反射对象由无穷远环境地图点亮。该对象对其环境的阴影“响应”可以被视为一转移函数,将传入映射到传出辐射,在本情况下简单地执行了余弦加权积分。一个更复杂的积分捕捉凹面对象如何遮挡其自身,其中,被积函数乘以一表示沿每一方向的额外的转移因子。PRT方法是为给定的对象预计算如阴影等复杂转移函数所需要的昂贵的转移模拟。结果的转移函数被表示为其表面上一组密集的矢量或矩阵。同时,不需要预计算入射辐射,因为图形硬件可以在若干个点上对入射辐射进行采样-也可以使用分析模型,如天空光线模型或简单几何结构,如圆形。通过在线性基础(本情况下为SH)中表示入射辐射和转移函数,该方法利用了光传播的直线性以将光学积分减少为其系数矢量之间的简单点乘(漫反射接收器),或通过一小转移矩阵的光系数矢量的简单线性变换(光滑接收器)。低频光照环境需要很少的系数-再一次,范围从九(9)到二十五(25)个系数-以令图形硬件能够在单次传递中计算结果。由此,与蒙特卡洛光线跟踪技术和多路光学积分方法不同,PRT方法的运行时计算保持不变,不论有多少光源或者光源多大,并且事实上,该方法实际上从大规模、平滑光中获益以限制必需的SH系数的数量。
PRT方法表示转移函数中的复杂传播效果,如互反射和焦散。由于这些被模拟为预处理,仅影响转移函数的基系数,而非运行时计算。该方法处理基于面积和体积的几何结构。除从刚性对象转移到其本身,即自转移之外,可以将该技术一般化为从刚性对象到其相邻空间的邻域转移,允许在动态接收器上投射软性阴影、光滑反射和焦散。
作为预处理,全局光模拟器在捕捉它如何在其上遮蔽并散射光的模型上运行。结果被记录为该模型上一组密集的矢量(漫反射情况)或矩阵(光滑情况)。在运行时,首先将入射辐射投影到SH基。然后将该转移矢量或矩阵的模型域应用到光的系数矢量。如果该对象是漫反射的,将该对象的每一点上的转移矢量与光的系数点乘来正确地生成自散射阴影。如果该对象是光滑的,则将转移矩阵应用到光系数来生成表示每一点上的自散射入射辐射的球面函数的系数。将该函数与对象的BRDF卷积,然后在视角相关反射方向上进行估算,以生成最终阴影。
为补充PRT方法的简要描述,可以在Peter-Pike Sloan、Jan Kautz和John Snyder的“动态、低频光照环境中用于实时呈现的预计算辐射变换(Precomputed RadianceTransfer for Real-Time Rendering in Dynamic,Low-Frequency LightingEnvironments)”(SIGGRAPH,2002年7月)(http://www.cs.brown.edu/~tor/sig2002.html)中找到更多的信息,其副本在此处作为附录A包括在内,并且其整体通过引用结合于此。
然而,尽管现有的PRT方法有利,凸面无阴影区域比投射清晰阴影的阻挡物附近的区域显示更少的空间变化-并因此需要更少的样值,并且迄今为止,PRT未考虑空间采样密度的好处。同样,尽管真实变换会具有很高频率的内容-如由阻挡物引起的清晰可见水平线,或由焦散聚焦效果引起的亮点-通常在信号的低频分量中有更大的兴趣。本领域中需要的是一种更好地考虑空间和密度特性的增强PRT方法。
具体实施方式
用细节描述了主题来满足法定需求。然而,该描述本身并非局限本专利的范围。相反,发明人考虑所要求权利的主题也可以结合其它现有或未来的技术以其它方式来实施,以包括与本文档所描述的步骤类似的不同步骤或步骤的组合。此外,尽管此处术语“步骤”可以用于暗示所采用的方法的不同元素,该术语不应当被解释为暗示此处所揭示的各种步骤之间或之中的任一具体顺序,除非当明确描述了个别步骤的顺序。
计算环境
本发明的许多实施例可在计算机上执行。图1及以下讨论提供了对适于在其中实现本发明的计算环境的简要概括描述。尽管并非所需,但本发明将在计算机可执行指令的一般上下文环境中描述,计算机可执行指令如程序模块,由诸如客户机工作站或服务器等计算机执行。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,执行特定的任务或实现特定的抽象数据类型。此外,本领域的技术人员可以理解,本发明可以在其它计算系统配置中实践,包括手持式设备、多处理器系统、基于微处理器或可编程消费者电子设备、网络PC、小型机、大型机等等。本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
参考图1,示例性系统包括常规计算机20或其类似物,包括处理单元21、系统存储器22以及将包括系统存储器的各类系统组件耦合至处理单元21的系统总线23。系统总线23可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线结构的局部总线。系统存储器包括只读存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出系统(BIOS)26,包含如在启动时协助在个人计算机20内的元件之间传输信息的基本例程,储存在ROM 24中。个人计算机20也可包括用于对硬盘(未示出)进行读写的硬盘驱动器27、用于对可移动磁盘29进行读写的磁盘驱动器28以及用于对可移动光盘31如CD-ROM或其它光媒质进行读写的光盘驱动器30。硬盘驱动器27、磁盘驱动器28以及光盘驱动器30分别通过硬盘驱动器接口32、磁盘驱动器接口33和光盘驱动器接口34连接至系统总线23。驱动器及其相关的计算机可读媒质为个人计算机20提供了计算机可执行指令、数据结构、程序模块和其它数据的非易失存储。尽管这里描述的示例性环境采用了硬盘、可移动磁盘29以及可移动光盘31,本领域的技术人员应当理解,在示例性操作环境中也可以使用可储存可由计算机访问的数据的其它类型的计算机可读媒质,包括盒式磁带、闪存卡、数字多功能盘、Bernoulli盒式磁盘、随机存取存储器(RAM)、只读存储器(ROM)等等。
多个程序模块可储存在硬盘、磁盘29、光盘31、ROM 24或RAM 25中,包括操作系统35、一个或多个应用程序36、其它程序模块37以及程序数据38。用户可以通过诸如键盘40和定位设备42等输入设备向个人计算机20输入命令和信息。其它输入设备(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合至系统总线的串行端口接口46连接到处理单元21,但是也可以通过其它接口连接,如并行端口、游戏端口或通用串行总线(USB)。监视器47或另一类型的显示设备也通过接口,如视频适配器48连接到系统总线23。除监视器之外,个人计算机通常包括其它外围输出设备(未示出),如扬声器和打印机。图1的示例性系统也包括主机适配器55、小型计算机系统接口(SCSI)总线56和连接至SCSI总线56的外部存储设备62。
个人计算机20可以在使用到一个或多个远程计算机,如远程计算机49的逻辑连接的网络化环境中操作。远程计算机49a可以是另一个人计算机、服务器、路由器、网络PC、对等设备或其它公用网络节点,并通常包括许多或所有上述与个人计算机20相关的元件,尽管在图1中仅示出了存储器存储设备50。图1描述的逻辑连接包括局域网(LAN)51和广域网(WAN)52。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。
当在LAN网络环境中使用时,个人计算机20通过网络接口或适配器53连接至LAN 51。当在WAN网络环境中使用时,个人计算机20可包括调制解调器54或其它装置,用于通过广域网52,如因特网建立通信。调制解调器54可以是内置或外置的,通过串行端口接口46连接至系统总线23。在网络化环境中,描述的与个人计算机20相关的程序模块或其部分可储存在远程存储器存储设备中。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它装置。
尽管可以想像,本发明的许多实施例尤其适合计算机化的系统,然而本文档中没有一样东西旨在将本发明局限到这些实施例。相反,如此处所使用的,术语“计算机系统”旨在包括能够储存并处理信息和/或能够使用所储存的信息来控制装置本身的行为或执行的任一和所有装置,而不论这些装置本质上是电子、机械、逻辑还是虚拟的。
图形处理子系统
图2所示是一个典型的计算机图形子系统200的框图。子系统200包括CPU21′,它进而包括了核心处理器214,它具有片上L1高速缓存(未示出),并还直接连接到L2高速缓存212。CPU 21′的L1高速缓存(未示出)通常被构建到微处理器芯片本身,如,具有32KB L1高速缓存的Intel MMX微处理器。另一方面,L2高速212通常在单独的芯片上(或可能在扩充卡上),但是仍能够比RAM快地被访问,并且它通常大于L1高速缓存,如,一千兆字节是L2高速缓存的常见大小。如本领域的技术人员众所周知且理解的,CPU 21′访问高速缓存存储器中的数据和指令比必须访问随机存取存储器(参考图1,RAM 25)中的数据和指令有效得多,并且由此,CPU可比缺少高速缓存的GPU获得显著的性能增益。
CPU 21′连接至AGP 230。AGP提供了CPU 21′、系统存储器RAM 25′和图形卡240之间的点对点连接,并且还将这三个组件通过诸如PCI总线23′等传统系统总线连接至其它输入/输出(I/O)设备232-如图1所示的硬盘驱动器32、磁盘驱动器34、网络53和/或外围设备。AGP的存在也表示计算机系统支持数据通信量的系统-视频流-即,比反向有更多的通信量从CPU 21′及其系统存储器RAM 25′流向图形卡240-因为通常设计AGP使得以从图形卡240流回的数据的四倍的数据流向图形卡240。
图形卡240还包括帧缓存246,它直接连接到显示设备47′。如本领域的技术人员众所周知且理解的,帧缓存通常是双端口存储器,它允许处理器(GPU 242或CPU 21′,视情况而定)将新(或修订的)图像写入帧缓存中,而显示设备47′同时从帧缓存中读取来刷新(或“更新”)当前显示内容。图形卡240还包括GPU242和VRAM 244。
GPU 242本质上是计算机系统内为图形操作特别优化的第二处理单元。取决于图形卡,GPU 242可以是图形协处理器或图形加速器。当图形卡是图形协处理器时,视频驱动器224直接向图形协处理器发送图形相关任务用于执行,并且图形协处理器单独为帧缓存246呈现图形(不直接涉及CPU 21′)。另一方面,如当图形卡是图形加速器,视频驱动器224向CPU 21′发送图形相关任务,CPU 21′然后指示图形加速器执行具体的图形密集型任务。例如,CPU 21′可指示图形加速器用定义的顶点画多边形,图形加速器然后执行将该多边形的像素写入视频存储器(VRAMSM 248)中的任务,然后从那一点开始,将更新的图形复制到帧缓存246用于在显示设备47′上显示。
GPU 242所附的是VRAM 244,它令GPU能够就在眼前维护其影像存储器(VRAMSM)用于快速的存储器调用(而非使用RAM),并且也可提供诸如GPU方法等额外的处理操作所必需的额外的存储器。VRAMSM 248是VRAM 244中GPU 242构造并修订图形图像(包括GPU方法中的CI)的位置,并且它是GPU 242从其复制呈现的图形图像到图形卡240的帧缓存246来更新显示设备47′的位置。在GPU方法中,VWM是由GPU 242用于临时储存可由GPU 242用来储存GO和/或储存/恢复PO(或其部分)等的图形数据的VRAM的额外区域。(通过向图形卡240卸载这一功能,CPU 21′和VSM 222解除这些任务。)
系统存储器RAM 25′可包括操作系统35′、视频驱动器224、视频存储器表面(VMS)223和视频影像存储器(VSM)222。VSM是RAM 25′中CPU 21′构造并修订图形图像(包括CPU方法中的CI),并从其通过AGP 230复制呈现的图像图形到图形卡240的帧缓存246的位置。在CPU方法中,VMS是由CPU 21′用于临时储存可由CPU 21′用来储存GO和/或储存/恢复PO(或其部分)等图形数据的RAM的额外的区域。
空间离散自适应采样算法
本发明的各种实施例针对PRT系统,即,一种使用算法在表面网格上计算PRT信号的计算机系统,它划分该网格的小平面来增加表面顶点的数量,使得在该表面上的每一处都充分地解析转移信号的变化。该方法确保辐射转移阴影在该表面的各处生成具有足够精度的色彩。在某些实施例中,转移仅在表面顶点处计算,尽管这的确在棋盘形镶嵌太过粗略的区域中导致表面光清晰度的一定数量的可接受混迭和模糊。
图3所示是用于本发明的若干实施例的输入和输出的框图。在图中,PRT系统302接受包括粗略的棋盘形镶嵌的三角形网格(具有法线)312、一对应于误差容许的值314(后文更详细地讨论)以及一对应于细分等级的最大数的值316。使用这些输入,PRT系统然后生成:(i)一新的、增强的网格(“EM”)322,它几何上类似于输入网格,但某些小平面被更细微地细分;以及(ii)一增强网格上每一顶点处的转移信号矢量(共称“TSV”)328。
图4所示是包括本发明的各方面的方法的一个实施例的流程图。总的来说,为将输入转换到输出,PRT系统采用一种算法,它使用如软件光跟踪程序,如后端到当前的DirectX 9.1 D3DXSHPRTSimulation函数(尽管应当注意,该功能当前未在DirectX API中展现)中所找到的程序在网格的顶点上对PRT矢量进行采样。这一光跟踪程序可使用,如每一点的半球面上分布的Hammersley点或甚至是射线方向的Halton序列,其中,样值的概率分布可以是余弦加权的,以对漫反射余弦衰落进行重要的采样,并且其中可以使用静态分布并将其旋转至每一顶点的局部帧。
如图所示,并且对于本发明的若干实施例,由PRT系统采用的算法包括多个步骤。在步骤402,该系统最初在棋盘形镶嵌的每一边的每一顶点以及中点(即,对网格中的每一原始三角形)对PRT矢量进行采样并将其高速缓存。在步骤404,系统然后计算每一边上的误差,该误差可以简单地是采样的矢量和从边的每一端点上的矢量的线性内插所获的矢量之间的平方误差。在步骤406,对于每一边,系统确定该误差是否大于提供的阈值,并且如果是这样,将每一这样的边标记为要细分的边。在步骤408,对于棋盘形镶嵌中的每一三角形(包括三条边和三个顶点),如果标记了1个、2个或3个三角形,系统然后将所述三角形细分成2个、3个或4个三角形,其中,对每一新顶点处的PRT矢量给予在细分前在该边的中点处计算的值。在步骤410,如果在步骤408有任一三角形被分割成新的三角形,并且如果尚未达到细分的最大数量,则在步骤412(并且在随后的迭代中),系统在步骤408的最近一次操作中创建的新三角形的每一顶点和每一边的中点处对PRT矢量进行采样并将其高速缓存,然后返回到步骤404来继续对这些边的进一步处理。该循环继续直到在步骤410,或者没有三角形在步骤408的最近一次操作中被细分,或者已达到细分的最大数量,在这一点上,在步骤414,细分过程终止,系统用输出网格替换输入网格,输出网格其后提供顶点和三角形的当前列表,并且其中PRT信号是每一顶点上高速缓存的PRT矢量。
图5A、5B和5C所示是将一个三角形分别划分成两个、三个或四个新三角形的框图,所有这些都依照图4的步骤408中所描述的本发明的一个实施例。在图5A中,当新边432从标记边512延伸到所述标记边512对面的顶点552时,具有单个标记边的三角形502被划分成两个新三角形522和524。
在图5B中,具有两条标记边512和514的同样的三角形502本质上采用了与图5A所示的相同的方法,但是分成两部分,第一部分如图5A所示地对边512作出细分,第二部分对边514作出细分,其中对第二边514作出的细分在从对边512所得出第一部分细分中所获的新三角形522内作出。更具体地,对于具有两条标记边的三角形502:(a)当新边532从标记边512的中点542延伸到所述标记边512对面的顶点552时,首先将三角形502划分成两个新三角形522和524;以及(b)当新边534从标记边514的中点延伸到所述标记边514对面的顶点554时,将新三角形522进一步划分成两个新三角形526和527(其中,所述顶点554也恰巧是边512的中点)。
在图5C中,现在具有三条标记边512、514和516的同样的三角形502本质上也采用了图5A和5B所示的相同的方法,但是分成三部分,第一部分如图5A所示对边512作出细分,第二部分如图5B所示对边514作出细分,并且第三部分对边516作出细分,其中,对第三边516的所述细分在从第一部分对边512作出的细分所获的新三角形524内作出。更具体地,对于具有三条标记边512、514和516的三角形502:(a)当新边532从标记边512的中点542延伸到所述标记边512对面的顶点552时,三角形502首先被划分成两个新三角形522和524;(b)当新边534从标记边514的中点544延伸到所述标记边514对面的顶点554时,新三角形522被进一步划分成两个新三角形526和527(其中,所述顶点554也恰巧是边512的中点);以及(c)当新边536从标记边514的中点546延伸到所述标记边514对面的顶点556时,新三角形524被进一步划分成两个新三角形528和529(其中,所述顶点556也恰巧是边512的中点和三角形522中边514对面的顶点)。
再次参考图4,关于步骤408,重要的是注意,所创建的新三角形的总和(如图5C的三角形526、527、528和529)仍确切地横跨与原始三角形(502)相同的空间。另外,也认为该算法也内插了从端点到新顶点的法线矢量,使得法向变化可以在新的、增强的网格中被更好地分辨。
在对图4所示的方法的某些替换实施例中,并且尤其是关于步骤408,如果标记了1条、2条或3条边,作为对将三角形细分成2个、3个或4个三角形的替代,PRT系统可基于原始三角形的每一边的中点甚至用单个标记边将任一三角形细分成四个三角形。该方法避免了一种“窄三角形”结果,它会在图4所示的方法的步骤408中产生,其中,该算法迭代地重复划分原始三角形的同一边。图6所示是从图4的方法的四次迭代中产生的窄三角形结果的框图,当例如点602和604之间的过渡在表示的图形中定义了清晰的图像边界时会产生这一结果。另一方面,图7A、7B和7C所示是来自替换的4三角形细分方法的三次迭代的结果三角形的框图,其中,应当注意,每一结果三角形是较大三角形的较小但几乎相同的形式。在图7A中,原始三角形702被划分成四个三角形712、714、716和718。在图7B中,结果三角形716(未标出)被再次划分成四个三角形722、724、726和728。在图7C中,结果三角形726(未标出)被再次划分成四个三角形732、734、736和738。
此外,对于若干这些实施例,并且尤其是对于图7A、7B和7C所示的四一三角形细分,应当注意,为避免T顶点,额外的边,一般称为“保角边”,必须被作为消除T顶点所需的细分过程的一部分包括在内。在图7B中,这导致三角形714被如图7D所示划分成两个三角形714′和714″;并且在图7C中,这导致三角形724被如图7E所示划分成两个三角形724′和724″。在这两种情况下,由于邻近的三角形中出现的对应的4-1细分而出现这些保角划分。该同一过程也可以是必需的,并且对于某些实施例,对如图5A、5B和5C所示的被划分成两个、三个或四个三角形的三角形也自动出现。
然而,不管所使用的方法如何,本发明的这些不同的实施例采用了具有固有优点的细分方法,在一轮边细分之后,总是在不具有任何T裂缝的意义上较好地形成了网格,由此,该方法比需要修补通道或需要更精细的分割规则的更复杂的模式简单。
本发明的各种实施例采用的误差度量是在边上积分的PRT信号的平方误差;这涉及边的长度,并由此误差在更高级别的细分上降低。本发明的某些替换实施例使用的替换误差度量消除了积分,并仅在测试的每一边的正中点处测量绝对误差差值,它进而可被概略地解释为通过在表面上对最大误差的离散采样来估算L∞范数。
全面地,该增强PRT方法是简单的,并且该基础算法在细分的每一步骤上提供了有效的网格。此外,转移信号的最终值能够直接被导出,因为这些是在跨边估算误差中计算并高速缓存的数据。
结论
此处描述的各种系统、方法和技术可以用硬件或软件或在适当时两者的组合来实现。由此,本发明的方法和装置,或其某些方面或其部分可采用包含在有形媒质中的程序代码(即指令)的形式,有形媒质如软盘、CD-ROM、硬盘或任一其它机器可读存储媒质,其中,当程序代码被加载到机器,如计算机,并由其执行时,该机器变为用于实践本发明的装置。在程序代码在可编程计算机上执行的情况下,计算机一般包括处理器、可由处理器读取的存储媒质(包括易失和非易失存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。一个或多个程序较佳地以高级程序语言或面向对象编程语言实现来与计算机系统进行通信。然而,如期望,程序可以汇编语言或机器语言实现。在任一情况下,语言可以是已编译或已解释语言,并预硬件实现相组合。
本发明的方法和装置也可以通过某一传输媒质,如通过电线或电缆、通过光纤或通过任一其它形式的传输发送的程序代码的形式来实施,其中,当程序代码被接受并被加载到机器,如EPROM、门阵列、可编程逻辑器件(PLD)、客户机计算机、录影机等,并由其执行时,该机器变为用于实践本发明的装置。当在通用处理器上实现时,程序代码与处理器组合来提供操作来执行本发明的标引功能的唯一装置。
尽管结合各个附图的较佳实施例描述老本发明,可以理解,在不背离本发明的情况下,可以使用其它类似的实施例,或可以向描述的实施例作出修改和添加来执行本发明的同一功能。例如,尽管在仿真个人计算机的功能的数字设备的上下文中描述了本发明的示例性实施例,本领域的技术人员将认识到,本发明不限于这类数字设备,本申请中所描述的可应用到任意数量的现有或新兴计算装置或环境,如游戏控制台、手持式计算机、便携式计算机等等,不论它们是有线还是无线,并且可应用到通过通信网络连接并跨网络进行交互的任意数量的这类计算装置。此外,应当强调,此处考虑了各种计算机平台,包括手持式设备操作系统和其它应用专用硬件/软件接口系统,尤其是当无线网络化设备的数量持续增长的情况下。因此,本发明不应局限与任一单个环境,而是依照所附权利要求书的宽度和范围来解释。