专利名称:显示图形纹理的制作方法
技术领域:
本发明主要涉及计算机图形。更具体地,本发明尤其涉及显示图形纹理。
背景技术:
需要某些种类的计算机图形系统,当用户与计算机图形系统交互时,实时快速地显示的大量不同的图形纹理。例如,David Gettman等人于2003年12月3日提交的名为“信息显示(InformationDisplay)”的共同未决申请第10/727,799号,一方面描述了一种浏览器,用于导航可能包括虚拟城市的虚拟三维环境,其中,将从HTML文档或Web页提取的纹理显示在虚拟建筑的各侧上。
在这种环境中,需要浏览器显示当用户导航通过虚拟城市的纹理。在具有大量虚拟建筑的虚拟城市中,被潜在地存储和显示的纹理的数量可以非常大,并且每个纹理可以是例如1Mb那么大或更大。与目前传统的个人计算机系统中可用的主存储器相比,需要更大的主存储器来存储用于当用户导航虚拟三维环境时进行实时显示的数千个这样的高分辨率纹理。尽管有些个人计算机使用具有专用显示存储功能的图形显示卡,但这些卡的存储容量太小,以至于不能存储所有纹理中看得见的所有高分辨率纹理。
尽管可以将这些纹理存储在大容量存储器或高速缓冲存储器中,但是由于这种存储器的执行速率较低,所以在显示的同时从这样的存储器加载这些纹理将会给用户带来不能接受的时延。因此,在主存储器或显示存储器中,某些纹理可能由于磁盘反应时间而在被需要时不可用。需要一种更好的方式来管理环境(其中,一些纹理在虚拟环境中的远处出现)中高分辨率纹理的显示,以便当呈现关于用户的视点的纹理时,从用户的视点无法看见这些纹理的很多细节。
另外,在这种环境中,某些纹理显示在用户观察到的最显著位置,而其他纹理显示在较远位置处。为了提供逼真的显示,该系统需要以高分辨率来显示显著位置的纹理;而较远距离的纹理则无需具有相同的分辨率。在这种环境下,为了以一个高等级的分辨率存储所有纹理并且当在远处显示这些纹理时以低分辨率呈现,将会使效率很低而昂贵且浪费计算资源。需要一种更好的方法来处理具有随着在虚拟三维环境中纹理的位置而变化的分辨率需求的纹理。
另外,关于纹理的源内容(诸如,HTML文档或Web页)可以随着时间的变化而改变,例如,当提供HTML文档或Web页的在线Web站点的拥有者或操作者对文档或者网页进行修改时。尽管这样的修改可能在使用该系统期间的任何时间发生,但是只要用户的视点发生改变或需要再次呈现纹理,恢复源内容是无法实现的。
发明内容
本发明的一个方面包括一种管理大量图形纹理的显示的方法,其中,不是所有的纹理每次都可见,该方法包括以下机器执行的步骤在存储器中创建并存储一个或多个高分辨率纹理的库(pool);在虚拟三维环境中的多边形上显示纹理;其中,一个或多个纹理显示信息内容并向三维环境的观察者传递信息内容,其中,能够以高细节层次来观察这些纹理中的一个或多个,其中,这些纹理中的一个或多个具有基本相似的尺寸,以及其中,观察者可以与这些纹理中的一个或多个交互;其中,在一个或多个源中定义这些纹理的排列,以及其中,与这些纹理相关的信息内容可以从一个或多个远程源获得;以及其中,虚拟三维环境包括一条或多条通道,以及其中,沿着这些通道来排列用于显示信息内容的一个或多个纹理。
根据一个特征,显示特定纹理的步骤包括在虚拟三维环境中的多边形上显示特定纹理。根据另一个特征,大多数这种多边形是规则的四边“四边形”。
根据另一特征,在存储器介质上创建一个或多个纹理的高速缓冲存储器。纹理在从远程源下载的内容生成后被保存到这些高速缓冲存储器中,或是从远程源下载的纹理的副本。当它们变为可用时,可以将它们保存,或可以在退出程序时一起执行。在程序启动时或在需要时,从高速缓冲存储器加载纹理以用于显示。根据另一特征,该程序可以形成用于与当前显示的三维环境不同的三维环境的高速缓冲存储器。根据另一个特征,当进入那个虚拟三维环境时,从高速缓冲存储器加载存在于高速缓冲存储器中的、与当前虚拟三维环境相关的所有纹理。根据另一个特征,基于来自高速缓冲存储器的要求,加载与存在于高速缓冲存储器中的当前虚拟三维环境相关的纹理。
根据另一个特征,纹理的高速缓冲存储器可以在主存储器中。
根据另一个特征,可以压缩这些纹理。可以以压缩形式将纹理保存在存储器介质上,并且当加载到存储器时进行解压缩。在另一个特征中,可以将纹理以压缩形式保存在存储器中,并且在将纹理传送到图形卡的控制器之前进行解压缩。在另一个特征中,可以以压缩形式将特征纹理保存在图形卡上,并且当需要通过卡显示时进行解压缩。
根据本发明的另一个特征,系统可以执行确定是否存在对一个或多个内容元素中的特定内容元素的更新的步骤,其中,每个内容元素与一个或多个纹理相关,并且如果存在任何更新,则更新相关的一个纹理或多个纹理。如果纹理不能本地使用,则可以认为其适于更新。
在另一个特征中,可以创建纹理生成库的源内容,使得可以同时处理至少一个源内容元素。可以根据包括在内容元素中的信息使用这样的库来提供纹理的单个更新或生成、或连续的更新流。
根据另一个特征,可以使生成库条目与显示库条目相关,从而保存一些显示库条目用于生成纹理。这些条目可以被具有高纹理优先级的纹理使用。
以下各种事件可以使得纹理被更新,包括但不限于三维环境中的纹理的位置变化、相关内容源的变化、映射到相关纹理源的变化、包括动画或其他动态信息的内容源的变化、与用户或用户特征(诸如,年龄或语言偏好)的交互、或虚拟三维环境中的用户位置和/或视点的变化。
在其他特征中,可以根据更新纹理的状态(诸如,表明加载或生成等待、正在进行、或失败)来改变纹理。
上述任何一种对纹理的更新都会导致重新生成纹理或从远程源下载纹理。
在另一个特征中,系统可以执行根据一个或多个标准确定是否显示代替高分辨率纹理的较低分辨率的纹理的步骤。可以为每个高分辨率纹理分配一个或多个低分辨率纹理。可以将这种低分辨率纹理存储在大容量存储系统中,和/或通过网络下载。可以根据定义的纹理优先级对低优先级纹理的下载进行排序,这种优先级可以基于虚拟三维环境中的观察者的位置。
根据另一个特征,可以在生成相应的高分辨率纹理的同时,生成每个低分辨率纹理。根据不同的特征,可以通过网络将每个低分辨率纹理下载到客户端计算机系统中。在另一个特征中,创建对应于每个高分辨率纹理的较低分辨率纹理的一个或多个较大的库。
在另一个特征中,给多边形分配多个纹理优先级,用于以下各项从高速缓冲存储器加载、或存储到高速缓冲存储器、生成、处理更新、提供激活的更新、下载源内容、下载完整纹理、或管理环境的任何其他方面等。可以根据以下多个标准来分配这些优先级世界上的用户位置和视点、纹理近来是否将变得可见、自从上次生成纹理开始,是否已经更新了源内容,或源内容是否包括使得纹理被动态更新的信息。每个操作都可以有其自己的优先级集——尽管从高速缓冲存储器加载的优先级与用于生成的优先级相似,但是它们不必相同。
在另一个特征中,将具有较高纹理优先级的多边形分配给高分辨率纹理库中的条目,并将余下的一些多边形分配给低分辨率纹理。
在另一个特征中,内容通过网络被下载到客户端计算机系统,并在下载之后使用客户端计算机系统组织并呈现。在又一特征中,由至少一个实体拥有或控制内容。在又一特征中,源内容包括下列内容中的一个或多个互联网网页、电视屏幕截图、移动电话页、游戏屏幕截图、图像、文档、或视频内容。
在另一特征中,系统将执行通过与虚拟环境交互来阻止用户改变虚拟三维环境中的纹理的位置的步骤。
在另一特征中,当确定是否需要使与特定纹理相关的多边形可用时,如果已经完成生成纹理的步骤,则显示特定纹理;如果没有完成生成纹理的步骤,则显示第二特定纹理。第二纹理可以是低或高分辨率纹理,并且可以与第一纹理的较早版本相关,或可以不基于第一纹理而从现存可选纹理集中选择。
在另一特征中,当确定是否需要使多边形变得可用时,其中,使得多边形与特定纹理相关;如果该纹理在存储器中,则显示特定纹理;如果该纹理不在存储器中,则启动将纹理传输到存储器中的过程,并在加载未完成时显示第二特定纹理。在另一个特征中,获取纹理的过程包括从本地存储器介质加载纹理。在又一个特征中,获取纹理的过程包括从网络下载纹理。
在另一个特征中,一个或多个纹理库用于纹理的加载和生成,然后创建单独的纹理库,用于处理纹理的显示;如果需要更加紧急地观察比显示库中已经存在的纹理之一的生成纹理,则当纹理完成生成时,其将代替显示纹理库中的条目;加载/生成库中的条目接下来将通过其他纹理来释放用于用户。
参考附图,通过实施例来描述本发明而不用于限制本发明,其中,相同的参考标号表示相似的元件,其中图1A是示出用于显示图形纹理的典型系统的框图;图1B是根据实施例的典型虚拟控件浏览系统的框图;图1C是示出用于准备显示虚拟三维环境中的纹理的过程的高度综述的流程图;
图2是示出用于动态更新纹理的过程的流程图;图3是示出用于处理动态更新四边形的过程的流程图;图4是示出用于处理动态更新纹理的过程的流程图;图5是示出用于加载或保存纹理的过程的流程图;以及图6是示出可以实施本发明的实施例的计算机系统的框图。
具体实施例方式
描述了一种用于显示图形纹理的方法和装置。在下列描述中,为了说明,阐述了多个具体实施例,以提供本发明的彻底理解。然而,本领域的技术人员将了解,没有这些具体细节也可以实施本发明。在其他实例中,以框图的形式示出了公知的纹理和装置,以避免不必要地混淆本发明。
此处根据下列提纲描述多个实施例纹理综述功能综述硬件综述扩展及可选实施例纹理综述图1A是示出用于显示图形纹理的典型系统的框图。术语“纹理”指已经预先由诸如,HTML文档或Web网页、或其他交互内容的源内容呈现的数字位像。显示和生成模块110可通信地连接至加载和保存模块120。显示和生成模块110以及加载和保存模块120均包括一个或多个计算机程序、指令、或其他软件单元,它们彼此合作来执行此处描述的多个功能。一般,显示和生成模块110用于显示和生成计算机显示器中的纹理。如根据此处描述的方法所需,加载和保存模块120用于将纹理加载并保存到存储器以及加载并保存来自存储器的纹理。
图1B是典型的虚拟空间浏览系统的框图,其中,可以使用实施例。计算机1001A包括三维虚拟空间浏览器1001B和操作系统518。计算机1001A还包括主存储器1007A和具有显示存储器1008B的显示卡1008A。显示卡1008A可以使用一些主存储器1007A来存储显示信息。计算机1001A直接或间接地通过一个或多个网络510可通信地连接至应用服务提供者505和提供存储内容506的一个或多个内容服务提供者502。在实施例中,应用服务提供者505包括Gettman等人描述的类型的城市服务器。计算机1001A包括或可以访问源内容磁盘高速缓冲存储器1021和辅助页(secondarypage)高速缓冲存储器1020。计算机1001A在显示器1009上显示纹理和其他图形图像或题材。在一个实施例中,计算机1001A包括基于PCI总线的个人计算机、工作站、PDA、TV机顶盒、移动电话等。
三维虚拟空间浏览器1001B包括初始化逻辑1002、虚拟空间显示逻辑1004、高速缓冲存储器输入/输出(I/O)线程1006、窗口生成线程1022、及控制/绘制线程1012。线程1006、1022、1012由虚拟空间显示逻辑1004与操作系统518一起生成,用于执行此处描述的功能。
一般,初始化逻辑1002询问显示卡1008A,确定显示卡提供什么图形显示功能,开启或关掉这些功能(包括提供所需的参数值),并基于可用的功能和资源调整该卡的应用。由于不同品牌的图形卡提供不同类型的显示功能,所以提供初始化逻辑1002提供前述功能,从而使得三维虚拟空间浏览器1001B能够与多种不同类型的图形卡交互操作。例如,显示卡1008A可以提供用于改善其显示的图形图像的外观的抗失真功能。初始化逻辑1002可以检测显示卡1008A中的抗锯齿失真功能(anti-aliasing function)的存在,并可以提供用于使该卡能够适当地配置该功能的设置。
另外,在实施例中,虚拟空间显示逻辑1004与显示存储器1008B交互,以在显示存储器中显示相对较小数量的高分辨率纹理和相对较大数量的低分辨率纹理。以此方式,不断更新显示存储器1008B,以存储与邻近虚拟三维环境中的特定用户视点的虚拟位置相关的高分辨率纹理(相对较小数量的高分辨率纹理)、以及出现在相对于用户视点较远位置处的所有纹理(相对较大数目的低分辨率纹理)。此处进一步描述用于将恰当数量的纹理保存在显示存储器1008B中的技术。
在实施例中,内容服务提供者502的内容506包括一个或多个HTML文档或Web页。计算机1001A可以通过经由网络510与内容服务提供者502通信,在任何时候获取内容506的更新副本。另外,可以使用源内容磁盘高速缓冲存储器1021将内容506本地高速缓存在计算机1001A处。例如,源内容磁盘高速缓冲存储器1021可以存储最近使用的源内容(诸如,HTML文档或Web页)、或用于生成在相对于虚拟三维环境的用户的之后-当前(then-current)视点的当前视场中的纹理、或用于生成当由虚拟三维环境中的用户位置显示时随后可以被用户看到的纹理。
高速缓冲存储器I/O线程1006用于向纹理高速缓冲存储器1020加载纹理和页面调度纹理(paging texture)。高速缓冲存储器I/O线程1006还用于将由源内容506生成的更新纹理保存到纹理高速缓冲存储器1020中。纹理生成线程1022用于利用适当的源内容磁盘高速缓冲存储器1021,从内容服务提供者502获取内容506、以及基于该内容来生成纹理。控制和提交线程1012用于全面控制系统元件,并用于根据显示卡的功能将纹理提交到显示卡1008A及其显示存储器1008B中。
图1C是示出用于准备显示虚拟三维环境中的纹理的过程的高度综述的流程图。在步骤130中,在存储器中创建并存储第一纹理库和第二纹理库。一种方法是,以两种版本定义并存储从同一源内容得出的每个纹理(包括高分辨率纹理和低分辨率纹理)。可用的主存储器或显示存储器存储较高分辨率纹理的相对较小的库和较低分辨率纹理的相对较大的库。不存在对每个库的尺寸的特殊限制。小库主要包括靠近虚拟三维环境中的用户的当前或显著视点的纹理。较大的库主要包括相对于用户视点隐喻地处于较远位置的纹理。在可选实施例中,可以将较大的纹理库拆分为用于加载和生成纹理的库和用于显示纹理的单独库。
在一个实施例中,所有可能纹理的低分辨率版本都保存在与显示客户端相关的局部大容量存储器中,诸如用于计算机1001A的磁盘存储器。内容服务提供者502或应用服务提供者505可以周期性地生成用于虚拟环境的所有显示位置(例如,虚拟城市中的显示窗口)的低分辨率纹理,并一次性地向三维虚拟空间浏览器1001B提供这些低分辨率纹理。例如,浏览器1001B可以在启动或初始化时,下载并存储所有的低分辨率纹理,或作为部分安装过程。结果,浏览器1001B仅需要生成用于靠近用户的视点的显示位置、以及用于远程窗口(其中,由于接收到了来自内容服务提供者的低分辨率纹理,所以改变了其源内容)的高分辨率纹理。当浏览器生成高分辨率纹理时,也同时生成了更新的低分辨率纹理。
在这种方法的一种变形中,如果任何纹理都需要纹理生成,则可以为正在经历有效生成的纹理保存确定数量的高分辨率纹理库条目。由于高分辨率纹理库中存在有限数量的条目,所以将这些条目分配给具有高纹理优先级值的对象。
在步骤136中,创建虚拟三维环境。为虚拟三维环境中的每个四边形设置四边形标识符。每个纹理均具有纹理标识符。将纹理标识符分配给每个四边形。
在步骤138中,确定纹理优先级值,并将其分配给每个四边形。纹理优先级值表示虚拟环境中显示纹理的当前优先级顺序。在一个实施例中,纹理优先级值取决于多个因素,诸如,四边形是否看得见、用户是否已经选择四边形作为目的地、四边形距离观察者多远、以及四边形相对于观察者的角度。基于观察者的之后-当前位置、观察角度、以及用户交互,周期性地重新计算每个纹理优先级值。另外,重新分配纹理库中的条目,以提供最佳应用。具体地,删除用于已经变得距离观察者的虚拟视点太远的纹理的纹理库中的条目。可以从源内容重新生成以改变的源内容为基础的纹理。
在步骤134中,将状态值分配给高分辨率纹理库中的每个纹理。此处的其他部分进一步描述状态值的使用。
在前述方法中,当显示位置从用户的视点进入视界中时,浏览器1001B从纹理高速缓冲存储器获取用于可见显示位置的高分辨率纹理并显示它们。如果自从上次显示起,用于这种纹理的源内容已经改变,那么可以重新生成高分辨率纹理并显示。希望重新生成过程比从存储器加载和显示高分辨率纹理慢得多,且有可能用完存储器,否则可以用来显示虚拟环境中的附加高分辨率纹理的存储器。所以,在可选的方法中,可以利用服务器来完成所有高分辨率纹理的生成,并且当每个纹理都进入视界中时,浏览器1001B可以通过网络连接将每个高分辨率纹理下载到服务器。
另外,在一种方法中,如果与四边形相关的高分辨率纹理库条目不具有当需要显示时所加载的高分辨率纹理,但相应的高分辨率纹理在磁盘上可用的话,则使用并显示低分辨率纹理,并调度高分辨率纹理用于加载。
在实施例中,将低分辨率纹理分配给如下所述的低分辨率纹理库。为从用户的视点看得见的所有四边形、或位于其特定距离中的所有四边形(没有为其加载高分辨率纹理)提供低分辨率纹理库中的条目。调度分配有低分辨率纹理库中的条目但在存储器中不存在的任何低分辨率纹理用于加载。
一个实施例还使用了标准技术,其中,每个纹理都包括多个图像分辨率或“多级分辨率显示(mipmap)”,以在观察者的虚拟位置移动期间,改善显示性能并提供更高质量的显示。
因而,此处的方法使用具有变化分辨率或具有每个纹理对象中的多个图像分辨率的多个版本的纹理。其与图像细节层次通过模型上的虚拟多边形的数目的改变而改变的现有方法相反。
在一个实施例中,主存储器1007A包括纹理集列表(texturebank list)1007B。纹理集列表1007B是用于标识或引用所有的可用高分辨率纹理(其被之后-当前使用、设置,用于加载或生成)的数据结构。在实施例中,使用下列三个数据结构来确定纹理集中应该是什么纹理,并在下述的主线程和下述的用于加载和保存的工作线程之间进行协调。在可选实施例中,可以存在两个库—用于加载和生成纹理的纹理集和用于显示纹理的素材集。
第一,LiveQuadGeneratePriorityList纹理存储适于被激活、按照优先级排序的四边形列表。激活的四边形在世界上看得到且其纹理根据包括在源内容中的信息反复更新。第二,LiveQuadGeneratePriorityList存储足够靠近以保证生成的、按照优先级排序的不具有有效纹理或具有过期纹理的四边形列表。第三,QuadDisplayPriorityList存储具有有效纹理且适于显示的四边形列表。在本文中,“适于显示”是指四边形离观察者的视点足够近、从而可以被看见。四边形列表按照优先级排序,且不包括存储器或磁盘中的任何不具有有效纹理的四边形。具有过期纹理的四边形可以位于QuadGeneratePriorityList和QuadDisplayPriorityList上。
功能综述显示图形纹理——主线程图2是示出用于处理对纹理进行更新的过程的流程图。图3是示出用于处理动态更新四边形的过程的流程图。图4是示出用于处理动态更新纹理的过程的流程图。图5是示出用于加载或保存纹理的过程的流程图。图2、图3、图4以及图5的各种实施例提供了一种用于显示图形纹理的技术,该图形纹理可以基于与纹理有关的外部内容的改变而快速更新,且当用户视点在虚拟三维环境中进行导航或与虚拟空间浏览器交互时可以迅速被显示。尽管图2、图3、图4以及图5均示出了事件的某个流程,但是本发明的实施例不限于该流程中的这些步骤。可以执行其他步骤,可以省略一些步骤,且可以并行执行或以不同的顺序执行这些步骤。
在实施例中,图2、图3以及图4的过程被执行为作为虚拟显示逻辑1004(图1)的一部分的主处理线程。
首先参考图2,用于处理对纹理的更新的过程包括,在步骤202中,确定是否经过了特定或预定义的周期。选择特定周期,以提供用于纹理显示的适当的更新周期。例如,在一个实施例中,特定周期为0.1秒,所以显示每秒更新十(10)次。
如果这样的话,则在步骤204中,确定一个或多个纹理更新是否可用。在本文中,更新是指新纹理、或根据源内容改变的纹理。例如,在图1B的情境中,计算机1001A将请求内容服务提供者502服务于内容506的当前副本,并且窗口生成线程1022将处理源内容并为控制和提交线程1012提供更新纹理。如果没有一个应用了纹理的四边形是“激活的(live)”,则一旦源内容的处理结束,步骤204将估算为真,并且转到步骤206,控制究竟更新哪个纹理。如果应用了纹理的一个或多个四边形是“激活的”,则一旦源内容的初始处理结束,步骤204将估算为真,然后当源内容确定需要改变看到的纹理时,重复任意次。以前下载的一些源内容可以包括确定何时对纹理进行更新所需的所有信息,诸如具有动画图像的网页。其他源内容可以定义订阅由内容服务提供者502(诸如新闻记者(news ticker))公布的事件的过程,其中,这些事件表示何时需要对纹理进行更新。
所以,此处的方法使得能够在特定周期内对动态变化的任何形式的源内容进行多次更新,而不论其是包括诸如动画图像、航线飞行到达或出发信息的激活可见内容还是为诸如新闻故事或最近特别提供的仅被定期更新的内容。
在一个实施例中,块206中的更新纹理可以包括动态处理更新后的四边形。在本文中,“四边形”是可以显示纹理的四条(4)边的对象。在一个实施例中,四边形是显示在虚拟城市中的虚拟建筑的表面,所以显示四边形中的纹理使得虚拟建筑的显示窗口中的纹理的显示内容显示出来。
在某些实施例中,相同的纹理可以显示在多个四边形上。每个纹理都具有唯一的标识符,且每个四边形都设有唯一的标识符。由三维虚拟空间浏览器1001B保存的四边形列表数据结构将每个四边形标识符映射到用于指定将在相关四边形上显示什么纹理的纹理标识符上。另外,纹理列表数据结构将特定的纹理标识符映射到一个或多个四边形上。
图3是示出用于处理动态更新四边形的过程的流程图。现在参考图3,在步骤302中,执行测试以确定是否已经经过了指定或预定义的周期。步骤302用于概括地表明,可以根据定时器、进度表、或响应于事件,反复执行图3的过程。在一个实施例中,步骤302与1/3秒定时器相关,所以,图3的过程每秒重复三(3)次。
如果已经经过了指定时间,则在步骤304中,更新四边形生成列表。四边形生成列表是由三维虚拟空间浏览器1001B保存的数据结构,用于标识其纹理需要从源数据生成或更新的四边形。步骤304的作用在于,确定是否需要生成四边形,并且如果需要,则将四边形添加至生成列表。
在步骤306中,参考纹理集并执行测试,以确定是否有任何纹理已经完成生成。如果这样的话,则控制转至步骤320,在该步骤中,将引用该纹理的完整四边形添加到四边形显示列表中。从而,完整四边形变得可以在随后的过程中用于显示。更新与完整纹理相关的纹理集条目,以表明需要在步骤318中将该纹理保存在纹理高速缓冲存储器中。在步骤316中,如果步骤306的测试为真,则从四变形生成列表中删除完整四边形。
然而,如果步骤306的测试为假,或在步骤320、318、316的循环中处理了所有的完整四边形之后,控制转至步骤308,在该步骤中执行测试以确定纹理集中标识的任何四边形是否发生了任何超时。步骤308的目的在于,确定四边形是不是在特定周期中生成并显示的。在这种情况下,该过程通过策略优先恢复不完全四边形使用的资源,从而可以使用相同的源处理不同的四边形。如果步骤308的测试为真,则在步骤322中,从四边形生成列表中删除相关的四边形。
一旦不存在由步骤308确定的显著超时,则在步骤310中,更新四边形显示列表。四边形显示列表标识哪些四边形最适合显示。例如,在一个实施例中,四变形显示列表不包括不可见的四边形。所以,四边形显示列表的改变主要由虚拟三维环境中的观察者或用户的虚拟位置驱动。
在步骤312中,根据四边形显示列表更新纹理集。例如,在一个实施例中,步骤312包括确定纹理集中的多达五(5)个条目中的哪个引用了最不适合用户的当前视场的四边形,以及用来自四边形显示列表的顶部的、引用来自当前不在纹理集中的四边形的纹理的条目来代替它们。为最新分配的纹理集条目标记表明它们从存储器或储存器加载所需要的状态值。
在步骤314中,将用于从源内容生成或再生的纹理的内容源分配给纹理集中的多个条目。在一个实施例中,内容源可以从四边形生成列表数据结构获取。步骤314具有进一步定义什么纹理应该在纹理集中的作用。
图4是示出用于处理动态更新纹理的过程的流程图。在步骤402中,执行测试以确定是否已经经过了预定义的时间。在一个实施例中,步骤402用作具有0.1秒的持续时间的定时器,从而使得图4的过程每秒钟重复10次。如果没有经过预定义的时间,则图4的过程终止在步骤416。
如果定时器已经经过预定义的时间,则在步骤406中,执行测试以确定预先被标记为需要加载的纹理集中的任何纹理是否已经完成加载,并确定现在是否已经标记为加载入了显示卡存储器中。如果是这样的话,则在步骤408中,在虚拟三维环境中使用该纹理,并在步骤410中,将与该纹理相关的纹理集条目标记为“可见的”,表示其当前正被用在虚拟三维环境中,并且适于在任何点被其他纹理代替(如果用户的视点改变的话),从而使其他纹理更适用于那个纹理集条目。
在步骤406、408、410的循环中对所有加载的纹理进行处理之后,在步骤412中,执行测试以确定是否将任何纹理都标记为了被保存。如果这样的话,则在步骤414中,将纹理集中的纹理设置为可见的。如果这些纹理距离观察者或用户的视点太远的话,可以将其删除。
加载并保存纹理——工作线程图5是示出用于加载或保存纹理的过程的流程图。在一个实施例中,图5的过程在三维虚拟空间浏览器1001B的虚拟空间显示逻辑1004的工作线程中执行。图5的过程可以用于将纹理加载到计算机的视频显示卡中,诸如图1的卡1008。可选地,图5的过程可以用于将纹理加载到用于驱动显示器的共享存储器中的纹理集中,或加载到连接至显示器或由显示器访问的任何其他的适当的存储位置中。图5的过程特别适于加载或存储大的、高分辨率的纹理。
在步骤502中,执行测试以确定纹理集中的任何纹理是否已被标记上了表示需要加载或保存的状态值。如果纹理集中没有这样标记的纹理,则在图5的步骤504中,等待、中止操作、或“睡眠”指定的短周期。
另外,对纹理集中被标记为用于加载或保存的每个纹理执行步骤506、508、510、512的循环。在步骤506中,选择用于加载或保存的标记纹理。在步骤508中,将在纹理集中选择的纹理标记为之后-当前进行加载或保存操作。在步骤510中,适当地从诸如磁盘的大容量存储器加载或保存纹理,或将纹理加载或存储到大容量存储器中。在步骤512中,将纹理标记为已经加载或保存。
通过表明正在执行工作线程的纹理集条目,从而在工作线程正在其当前的纹理集条目上运行的同时,允许主线程根据由用户的视点的变化导致的更新后的四边形优先级,删除其他纹理集条目的需要加载和需要保存状态。
总的来说,图5的方法提供了一种有选择地将纹理加载到存储器并根据其将被显示的顺序列表显示这些纹理的方法。例如,当显示卡1008具有相对较小的存储空间时,可以使用图5的过程来仅加载直接位于虚拟三维环境中的观察者、用户、或浏览器的虚拟位置前方的那些纹理。可选地,当显示卡1008具有大存储空间时,可以标记纹理集中的更大数量的纹理,然后利用图5的过程显示。
用于将要加载或保存的纹理集的信息可以直接保存在纹理库中,也可以保存为操作队列。该队列向主线程提供了对于操作顺序的更大的控制权,并且对于纹理库的更大的总尺寸变得更有效率。
作为图5的可选项,可以使用多种其他方法。如果虚拟环境包括大量的小纹理,则当观察者来回移动时,确保存储器中的最佳设置,在计算成本方面和从磁盘加载大量的较小方面都会比较昂贵。根据一种方法,可以将小纹理保存在映射到存储器中的单个文档中。在该方法的变形中,可以将该文档保持在打开状态,并通过检索文档中的适当位置,在适当的时间读取每个小纹理。这个变形的方法仅影响磁盘上的纹理排列,并减少了磁盘开销。
在第二种方法中,例如,通过总体地在虚拟环境上覆盖大表格,并将所有对象组合在单一栅格中,将虚拟环境分隔为多个部分。将最接近观察者的部分中的纹理保存在存储器中。当观察者来回移动时,删除纹理的所有部分,并加载新的部分。这种方法大大减小了计算哪些小纹理应该在存储器中的计算开销。
在第三种方法中,将前述的两个可选方法结合起来,使得单个部分中的纹理一起存储在同一文档中。所有部分可以使用一个文档,也可以每个部分使用一个文档。这种方法的结合是这样的如果在至少一个对象上使用纹理,则其可以使用在多个部分中,这就需要保存至少一次。
在第四种可选方法中,将纹理以压缩格式保存在主存储器中,并在需要时解压缩。可以将这种方法与上述的第二种方法相结合,以减少计算需要哪些纹理的计算成本,但是解压缩纹理的计算成本又会增加计算成本。
在第五种可选方法中,将多个纹理打包到单个硬件纹理中。例如,多个图形卡将仅处理像素中的图像宽度和高度表示为2的多次幂(例如,256、512、1024、2048)的纹理。如果所需的尺寸不是这些尺寸之一,则浪费了分配给硬件纹理的一些存储器。为了避免这种浪费,将存储器配置为比实际纹理尺寸“更宽”或“更高”的量,这种存储器存储多个所需的纹理。例如,如果所需的纹理为100×64像素,则系统可以分配512×64的硬件纹理,并将五个所需的纹理水平打包过硬件纹理。在显示时,系统从硬件纹理选择所需的区域。在上述情况下,由于将五个纹理放到原来保存四个纹理的空间中,所以将硬件纹理存储器应用减少了20%。
在第六种方法中,将多个纹理压缩在磁盘上,以节省磁盘空间并减少用于加载或保存纹理的磁盘工作时间。尽管这种方法可能会增加用于保存纹理的准备时间和加载后时间,但是如果磁盘工作是限制因素,并且CPU处理功率可接受,这种折中是适当的。由于纹理在尺寸上将会不同,所以使用这种方法可以使上述的第一或第三种方法变得复杂。通常,如果重新生成并重新保存相同的纹理,相同的纹理将发生尺寸上的变化。如果纹理尺寸增加,则其不再能放在文档中的相同空间中。如果纹理由于重新生成而变得更小,则其可以放在文档中的相同空间中,但会浪费空间。
状态值的使用上述方法是指,可以使用用于使线程确定怎样处理纹理集的状态值来标记纹理集中的条目。在一个实施例中,有效的状态值包括可用、可见、持续可见、生成、加载、及保存。可用状态值表示不与纹理集条目相关的有效纹理。可见状态值表示相关纹理集条目具有加载在存储器中的纹理,并且虚拟环境中的相关四边形具有高纹理优先级值。持续可见的状态值表示上次检验时该纹理是可见的,但相关四边形不再具有高纹理优先级。
生成的状态值表示正在为纹理集条目生成纹理内容。加载的状态值表示已经向四边形分配了纹理,并且在诸如磁盘或网络存储器的存储位置存在高分辨率纹理,该高分辨率纹理已经被调度用来从存储位置加载。当条目具有加载的状态值时,相关的四边形使用虚拟三维环境中的低分辨率纹理。
保存的状态值表示,用于纹理的生成已经完成,并且正处于保存的过程中。在保存过程中,如果相关的四边形在虚拟三维环境中是看得见的,则可以显示纹理。一旦保存了,库条目就基于四边形纹理优先级而变为可见的或可用的。
在一个实施例中,使用三个加载状态和三个保存状态来管理此处所述的主线程和工作线程之间的任务1、动作(加载或保存)请求(由主线程设置)2、动作(加载或保存)进行中(由工作线程设置)3、动作(加载或保存)完成(由工作线程设置)。
主线程可以将纹理集中的多个条目标记为加载或保存。如果纹理优先级改变,则主线程可以删除还未起作用的任何标记或可以删除当前正在工作线程中使用的任何标记。不能删除当前正在进行的动作。
当存在多个未完成的加载和保存操作时,工作线程可以平衡多个操作,使得即使在需要执行一系列保存操作或发生对话的时候,也能执行所有的加载操作。如果一直给予加载操作优先级的话,则当观察者移动得足够快以确保至少一个加载总是未完成时,保存操作将从不发生。这将导致一直处于生成纹理的处理停止,直到观察者停止在虚拟环境中进行导航。这将最大化任何时候看得见的大纹理的数目,但是将增加观察者移入该环境中还未生成大纹理的部分的可能性。
可选地,如果一直给予保存操作优先级,则生成速度被最大化,从而导致生成过程的额外磁盘业务量,并进一步减少了可用于加载的磁盘带宽。这将最小化观察者移入没有大纹理的区域的可能性,但减少了移动时看得见的大纹理的数目。
在一种方法中,如果有任何加载操作未完成,则需要在每个保存操作之间执行至少特定数量的加载操作。结果,限制了连续保存操作的最大数目,所以不存在足够长时间的加载操作阻塞,以使观察者移动得非常靠近具有未完成加载操作的对象。
生成纹理可以通过两种方法生成纹理。第一,由于纹理相对于相关的源内容丢失或过期,所以可以再生纹理。第二,由于显示纹理的四边形可以看起来非常近,并可以被标记为激活的四边形,所以可以再生纹理,从而可以基于源内容中所包括的信息不断更新显示在四边形上的纹理。例如,后一种方法可以使四边形显示动画。
在每种方法中,源内容的变化使得再生纹理。例如,可以将诸如能在传统网络浏览器中显示的源内容提交给虚拟存储器窗口,并可以在显示在四边形上的纹理中再生这个虚拟存储器窗口的更新。更新可以包括Web页状态的改变,诸如动画图像。三维虚拟显示浏览器1001B可以合并实现传统的网络浏览器(诸如,Mozilla)功能的软件单元,用于加载包括用于纹理的源内容的Web页、翻译Web页的HTML源代码、及确定通过这种译码生成什么纹理更新。
在一个实施例中,可以延长Web页加载时生成的更新,直到页面加载完成为止。将Web页请求的每个更新的细节(诸如,影响区域)传递给三维虚拟空间浏览器1001B。三维虚拟空间浏览器1001B每生成源就在存储器中存储一个位图,并将受影响区域读出到存储器中的适当位图中。每次位图由传统浏览器确定而变化时,再生高分辨率纹理。如果由于相关网页加载完成或由于生成源离开激活状态而使生成源变得无效时,生成低分辨率版本的纹理,并将位图数据保存到大容量存储器中。
可以使用两种方法执行用于大纹理库的动态内容生成。在第一种方法中,每个生成源都一直具有高分辨率纹理库中的条目。在生成完成之前,条目将示出生成的内容的任何先前版本。如果不存在先前内容,则在生成完成之前,在虚拟三维环境中未实际使用纹理库条目。在第二种方法中,生成源不自动接收高分辨率纹理库中的条目。这意味着,给定纹理可以处于高分辨率纹理库(当对象关闭并看得见时)中,也可以处于生成源中(内容过期),但是不保证其将会发生。通过与上述第一种方法相同的方式,处理具有高分辨率纹理库中的条目的生成源。一旦不具有高分辨率纹理库中的条目的生成源完成生成,生成的纹理就变得可以被复制到该库中的下一个可用条目中。
应用注解本方法对于使用了大量大纹理的虚拟三维环境中的纹理的显示非常有用。例如,虚拟三维环境可以包括诸如虚拟城市中的虚拟街道或虚拟商店中的虚拟过道的一系列通道。根据元数据或标记语言描述,在本系统外部定义这些纹理及其排列。
本文中的方法适用于其中的纹理提供信息内容的环境,与其他的用于观赏目的(例如,在视频游戏的背景环境中、或作为游戏特征的一部分)的纹理显示的方法不同。此处的方法可以使用用于为用户提供具有超链接文档性质的交互的纹理中。在本方法中,信息承载(information-bearing)纹理用于形成或定义虚拟三维环境,而不仅仅用于呈现在该环境中。
本文中的方法还适用于大量纹理被呈现在平面虚拟表面或多边形上的情况。用于这些纹理的源内容可以来自远程源或本地源。可以通过多个第三方的大组来拥有或控制用于这些纹理的源内容。源内容可以包括互联网页、电视屏幕截图、移动电话页、游戏屏幕截图、图像、文档、或视频内容等。纹理可以是动态的并基于外部内容而变化。在用户会话期间,远程源可以重定义使用哪个纹理以及它们位于环境中的什么地方。可以提供多个动画纹理。
在一个实施例中,用户不能通过与环境交互来修改虚拟环境中的纹理位置或内容。
硬件综述图6是示出可以在其上执行本发明的实施例的计算机系统600的框图。计算机系统600包括用于传送信息的总线602或其他通信机构、以及与总线602连接的用于处理信息的处理器604。计算机系统600还包括连接至总线602的主存储器606(诸如,随机存取存储器(RAM)或其他动态存储装置),用于存储将被处理器604执行的信息或指令。主存储器606还可以用于存储在通过处理器604执行将被执行的指令期间的临时变量或其他中间信息。计算机系统600进一步包括连接至总线602的只读存储器(ROM)608或其他静态存储装置,用于存储用于处理器604的静态信息和指令。存储装置610(诸如,磁盘或光盘)设置为连接至总线602,用于存储信息和指令。
计算机系统600可以通过总线602连接至显示器612(诸如,阴极射线管(CRT)),该显示器用于向计算机用户显示信息。具有显示存储器611B的显示卡611A可以连接至总线602,用于驱动显示器612。输入装置(包括字母数字键和其他键)614连接至总线602,用于向处理器604传递信息和指令选择。其他类型的用户输入装置为光标控制装置616,诸如,鼠标、光标运动球、或光标方向键,用于向处理器604传送方向信息和指令选择并用于控制光标在显示器612上移动。输入装置一般具有两个轴(第一个轴(例如,x)和第二个轴(例如,y))上的两个自由度,从而使得装置可以在平面上指定位置。
本发明涉及用于执行此处描述的方法的计算机系统600的使用。根据本发明的一个实施例,通过响应于执行主存储器606中包括的一个或多个序列的一个或多个指令的处理器604的计算机系统600来执行这些方法。可以从诸如存储装置610的其他机器可读介质将这些指令读入主存储器606中。包括在主存储器606中的指令序列的执行使得处理器604执行此处描述的处理步骤。在可选实施例中,可以使用硬接线电路代替软件指令或与软件指令一起实现本发明。所以,本发明的实施例不限于硬件电路和软件的任何具体组合。
此处使用的术语“机器可读介质”是指用于提供促使机器以特定方式运转的数据的任何介质。在使用计算机系统600执行的实施例中,涉及了多种机器可读介质,例如,用于向处理器604提供用于执行的指令的机器可读介质。这种介质可以采用多种形式,包括但不限于,非易失性介质、易失性介质、及传输介质。非易失性介质包括,例如,光盘或磁盘,诸如存储装置610。易失性介质包括动态存储器,诸如主存储器606。传输介质包括同轴电缆、铜线、及光纤,包括具有总线602的导线。传输介质还可以采用声波或光波的形式,诸如在无线电波和红外线数据传输过程中生成的波等。
一般的机器可读介质的形式包括,例如,软盘、软磁盘、硬盘、磁带、或其他磁性介质;CD-ROM、或其他光学介质;穿孔卡、纸带、或其他具有孔图案的物理介质;RAM、PROM、及EPROM和FLASH-EPROM、或其他存储器芯片或盒;下文中所述的载波;或其他计算机可读的介质。
不同形式的机器可读介质可用于将一个或多个序列的一个或多个指令传送到用于执行的处理器604。例如,最初可以将指令携带在磁盘或远程计算机上。远程计算机可以将指令加载到其的动态存储器中,并使用调制解调器将指令发送到电话线上。计算机系统600的本地调制解调器可以接收电话线上的数据并可以使用红外变送器将数据转换为红外信号。红外检测器可以接收红外信号中携带的数据,适当的电路可以将数据放置在总线602上。总线602将数据传送到主存储器606,处理器604从主存储器获取并执行指令。主存储器606接收的指令可以在处理器604执行之前或之后随意地存储在存储装置610上。
计算机系统600还包括连接至总线602的通信接口618。连接至与局部网络622连接的网络链路620的通信接口618提供双向数据通信。例如,通信接口618可以是综合业务数字网(ISDN)卡或调制解调器,以向相应类型的电话线提供数据通信连接。作为另一个实例,通信接口618可以是局域网络(LAN)卡,用于向兼容的LAN提供数据通信连接。还可以实施无线电线路。在任何这样的实施中,通信接口618都用于发送和接收用于携带表示各种类型信息的数字数据流的电、电磁、或光信号。
网络链路620一般提供通过一个或多个网络与其他数据装置的数据通信。例如,网络链路620可以提供通过局部网络622到主机624、或到由国际互联网接入服务供应商(ISP)626操作的数据装置的连接。而ISP 626又通过现在一般被称为“国际互联网”628的环球数据包数据通信网络提供数据通信业务。局部网络622和国际互联网628都使用携带数字数据流的电、电磁、或光信号。通过各种网络的信号以及网络链路620上的且通过通信接口618信号(其将数字数据传送到计算机系统600或从计算机系统中传送出数字数据)是传输信息的载波的典型形式。
计算机系统600可以通过网络、网络链路620、及通信接口618发送信息和接收数据(包括程序代码)。在国际互联网的实例中,服务器630可以通过国际互联网628、ISP 626、局部网络622、和通信接口618传送用于应用程序的请求代码。
可以在接收到代码时,通过处理器604运行所接收的代码,和/或将其存储在存储装置610或其他非易失性存储器中,用于以后执行。通过这种方式,计算机系统600可以获得载波形式的应用代码。
扩展和可选实施例在前述的说明中,参考具体实施例说明了本发明。然而,很明显,可以对本发明进行各种修改和改变。例如,在各种实施例中,可以结合上述方法使用多种尺寸的纹理。可以将压缩纹理用于此处所述的高分辨率或低分辨率的纹理中,从而,仅在显示卡处的显示之前执行解压缩。可以使用主动(aggressive)有损压缩来减小纹理的存储大小。可以提供存储器中高速缓冲存储器。可以结合多个不同的较小的纹理并存储为一个单元,以减小整个存储大小。所以,在一个实例中,可以合并用于虚拟三维环境的相邻窗口的多个纹理,并呈现为单个纹理。可以存储与用于生成纹理的近似的纹理相关的非纹理信息或向量细节。所参考的说明和附图用于说明而不是用于限制本发明。
权利要求
1.一种管理大量图形纹理的显示的方法,其中,不是所有的所述纹理在任何时间都是可见的,所述方法包括以下机器执行的步骤在存储器中创建并存储一个或多个高分辨率纹理库;在虚拟三维环境中的多边形上显示所述纹理;其中,一个或多个所述纹理显示信息内容并将所述信息内容传送给所述三维环境的观察者,其中能够以高细节层次来观察一个或多个这些纹理,其中,一个或多个所述纹理具有基本相似的尺寸,并且其中,观察者能够与一个或多个所述纹理交互;其中,在一个或多个源中定义所述纹理的排列,并且其中,可以从一个或多个远程源获取与所述纹理相关的所述信息内容;以及其中,所述虚拟三维环境包括一条或多条通道,并且其中,沿着所述通道排列显示信息内容的一个或多个所述纹理。
2.根据权利要求1所述的方法,进一步包括以下步骤为将要显示一个或多个所述纹理的一个或多个多边形中的每一个多边形分配纹理优先级值;以及将所述纹理优先级值分配给相关纹理。
3.根据权利要求2所述的方法,进一步包括以下步骤根据所述相关纹理的位置是否可见、所述位置距离观察者的位置多远、以及相对于所述观察者的位置的角度,确定所述纹理优先级值。
4.一种管理用于显示的图形纹理的持续时间的方法,其中,所述方法包括以下机器执行的步骤在存储器介质上创建一个或多个纹理的高速缓冲存储器;在虚拟三维环境中的多边形上显示所述纹理;其中,多个所述纹理显示信息内容并将信息内容传送给所述虚拟三维环境的观察者,其中,能够以高细节层次来观察一个或多个这些纹理,其中,大多数这些纹理具有基本相似的尺寸,以及其中,观察者能够与一个或多个这些纹理交互;其中,在与执行所述方法的机器分离的一个或多个源中定义所述纹理的排列,以及其中,可以从一个或多个远程源获取与所述纹理相关的所述内容;其中,所述虚拟三维环境包括一条或多条通道,并且其中,沿着那些通道排列显示信息内容的多个所述纹理;以及将一个或多个纹理存储至存储器介质上的高速缓冲存储器,用于随后在所述虚拟三维环境中恢复以及显示。
5.根据权利要求4所述的方法,进一步包括以下步骤当从所述虚拟三维环境退出时,将与当前虚拟三维环境相关的所述纹理存储到高速缓冲存储器中。
6.根据权利要求4所述的方法,进一步包括以下步骤在生成或下载每个所述纹理后保存所述纹理。
7.根据权利要求4、5或6所述的方法,其中,存储与不同于当前显示的虚拟三维环境的虚拟三维环境相关的所述纹理。
8.根据权利要求4至7中的任一项所述的方法,进一步包括以下步骤给所述纹理分配优先级值以对到所述存储器介质的存储进行排序,并且当执行所述存储步骤时,使用所述优先级值。
9.根据前述权利要求中任一项所述的方法,进一步包括以下步骤在将所述纹理存储在所述高速缓冲存储器中之前,压缩所述纹理,并且在从所述高速缓冲存储器加载所述纹理后,解压缩所述纹理。
10.根据前述权利要求中任一项所述的方法,进一步包括以下步骤在形成在计算机主存储器的第一区域中的附加高速缓冲存储器中存储所述纹理,其中,所述计算机主存储器的所述第一区域位于用于保存用来显示的所述纹理的存储器的第二区域和用于所述主高速缓冲存储器的所述存储器介质之间。
11.根据权利要求10所述的方法,进一步包括以下步骤在所述主存储器高速缓冲存储器中压缩所述纹理,并在将所述纹理复制到用于保存用来显示的所述纹理的所述存储器的所述第二区域之前,解压缩所述纹理。
12.一种管理更新用于显示的图形纹理的方法,其中,所述方法包括以下机器执行的步骤在虚拟三维环境中的多边形上显示所述纹理;其中,多个所述纹理显示信息内容并向所述虚拟三维环境的观察者传送信息内容,其中,能够以高细节层次观察一个或多个这些纹理,其中,大多数这些纹理具有基本相似的尺寸,以及其中,观察者能够与一个或多个所述纹理交互;其中,在与执行所述方法的机器分离的一个或多个源中定义所述纹理的所述排列,并且其中,可以从一个或多个远程源获取与所述纹理相关的所述内容;其中,所述虚拟三维环境包括一条或多条通道,以及其中,沿着那些通道排列显示信息内容的多个所述纹理;确定是否存在用于一个或多个内容元素中的特定内容元素的更新,其中,每个内容元素均与一个或多个纹理相关;如果存在任何更新,则更新所述相关的一个或多个纹理。
13.根据权利要求12所述的方法,进一步包括以下步骤当一个纹理需要更新时,考虑在执行所述方法的所述机器上本地不可用的纹理。
14.根据权利要求12或13所述的方法,其中,创建纹理生成库的源内容,允许至少一个源内容元素被同时处理。
15.根据权利要求14所述的方法,其中,根据所述内容元素中包括的信息,所述纹理生成库中的条目可以被用来提供纹理的单个更新或生成、或连续更新流。
16.根据权利要求14或15所述的方法,进一步包括以下步骤根据一个或多个标准给多个纹理分配一个激活的优先级,并保存用于从它们的内容元素生成这些纹理的一个或多个生成库条目。
17.根据权利要求16所述的方法,进一步包括以下步骤根据显示所述纹理的所述多边形是否可见或者是否可能在不久的将来变得可见来确定所述激活的优先级。
18.根据权利要求16或17所述的方法,进一步包括以下步骤根据用于纹理的所述源内容是否包括将使所述纹理被动态更新的信息,确定所述激活的优先级。
19.根据权利要求12至18中的任一项所述的方法,进一步包括以下步骤确定用于处理特定内容元素的任何更新的优先级顺序,并且根据所述顺序来更新所述相关纹理。
20.根据权利要求12至19中的任一项所述的方法,其中,改变所述虚拟三维环境中的一个或多个所述纹理的位置。
21.根据权利要求12至20中的任一项所述的方法,其中,所述纹理到相关内容源的映射的改变导致所述纹理中的一个纹理改变。
22.根据权利要求12至20中的任一项所述的方法,其中,相关内容源的改变导致所述纹理中的一个纹理改变。
23.根据权利要求12至20中的任一项所述的方法,其中,包括动画或其他动态信息的所述内容源导致所述纹理中的一个纹理改变。
24.根据权利要求12至20中的任一项所述的方法,其中,与所述用户的交互或所述用户的特征导致所述纹理改变。
25.根据权利要求24所述的方法,其中,所述观察者的特征可以是所述观察者的年龄或语言偏好。
26.根据权利要求12至20中的任一项所述的方法,其中,所述虚拟三维环境中的所述用户的位置和/或视点的改变导致所述纹理改变。
27.根据权利要求12至20中的任一项所述的方法,其中,根据所述纹理的更新情况改变所述纹理。
28.根据权利要求27所述的方法,其中,所述情况是下列情况之一“等待加载”、“等待生成”、“正在加载”、“正在生成”、“加载失败”、或“生成失败”。
29.根据权利要求12至27中的任一项所述的方法,其中,纹理的改变可以导致生成新纹理。
30.根据权利要求12至27中的任一项所述的方法,其中,纹理的改变可以导致从远程源下载新纹理。
31.根据权利要求1和12所述的方法,进一步包括以下步骤保存用于主动生成纹理的一个或多个所述纹理库条目。
32.根据权利要求2或31所述的方法,进一步包括以下步骤保存用于主动生成纹理的一个或多个所述纹理库条目,并给高优先级的纹理分配所保存的纹理库条目。
33.一种管理用于显示的图形纹理的方法,其中,所述方法包括以下机器执行的步骤在虚拟三维环境中的多边形上显示所述纹理;使一个或多个较低分辨率的纹理与每个纹理相关;其中,多个所述纹理显示信息内容并向所述虚拟三维环境的观察者传送信息内容,其中,能够以高细节层次观察一个或多个所述纹理,其中,大多数这些纹理具有基本相似的尺寸,以及其中,观察者能够与一个或多个所述纹理交互;其中,在与执行所述方法的机器分离的一个或多个源中定义所述纹理的排列,以及其中,可以从一个或多个远程源获取与所述纹理相关的所述内容;其中,所述虚拟三维环境包括一条或多条通道,并且其中,沿着那些通道排列显示信息内容的多个所述纹理;以及根据一个或多个标准确定是否显示代替高分辨率纹理的较低分辨率纹理。
34.根据权利要求33所述的方法,进一步包括以下步骤在大容量存储系统上存储所述低分辨率纹理。
35.根据权利要求33或34所述的方法,进一步包括以下步骤通过网络下载对应于一个或多个所述高分辨率纹理的低分辨率纹理。
36.根据权利要求35所述的方法,进一步包括以下步骤定义低分辨率纹理的所述下载的优先级顺序,并根据所述优先级下载所述低分辨率纹理。
37.根据权利要求36所述的方法,其中,所述优先级基于所述虚拟三维环境中的所述观察者的位置。
38.根据权利要求12或33所述的方法,进一步包括以下步骤生成每个低分辨率纹理,同时生成相应高分辨率纹理。
39.根据权利要求1和33所述的方法,其中,另外创建相应的较低分辨率纹理的一个或多个较大的库。
40.根据前述权利要求中任一项所述的方法,其中,通过网络将所述内容下载到客户端计算机系统,并且在下载之后,使用所述客户端计算机系统进行组织和呈现。
41.根据前述权利要求中任一项所述的方法,进一步包括以下步骤通过网络将完整的纹理下载至客户端计算机系统。
42.根据权利要求41所述的方法,进一步包括以下步骤给完整纹理的所述下载分配优先级顺序,并根据所述优先级下载所述完整纹理。
43.根据前述权利要求中任一项所述的方法,其中,通过至少一个条目来拥有或控制所述内容。
44.根据前述权利要求中任一项所述的方法,进一步包括以下步骤通过与所述虚拟环境交互,阻止所述用户改变所述虚拟三维环境中的所述纹理的位置。
45.根据前述权利要求中任一项所述的方法,其中,所述源内容包括一个或多个互联网网页、电视屏幕截图、移动电话页、游戏屏幕截图、图像、文档、或视频内容。
46.根据权利要求2和36所述的方法,其中,给具有较高纹理优先级的多边形分配所述高分辨率纹理库中的条目,并且为余下的所述多边形中的一些分配低分辨率纹理。
47.根据前述权利要求中任一项所述的方法,进一步包括以下步骤确定是否需要使多边形可用,其中,所述多边形与所述特定纹理有关;如果生成所述纹理的所述步骤已经完成,则显示所述特定纹理;如果生成所述纹理的所述步骤还未完成,则显示第二特定纹理。
48.根据前述权利要求中任一项所述的方法,其中,所述方法进一步包括以下步骤确定是否需要使多边形可用,其中,所述多边形与所述特定纹理有关;如果所述纹理在存储器中,则显示所述特定纹理;如果所述纹理不在存储器中,则发起将所述纹理存储到存储器中的过程,并且当所述加载未完成时显示第二特定纹理。
49.根据权利要求4或48所述的方法,其中,所述获取所述纹理的过程包括从本地存储器介质加载所述纹理。
50.根据权利要求48所述的方法,其中,所述获取所述纹理的过程包括从网络下载所述纹理。
51.根据权利要求4、49或50所述的方法,其中,为了加载纹理,给每个纹理分配优先级值,并且其中,所述优先级值用于所述纹理的加载。
52.根据权利要求4或48所述的方法,其中,当进入所述虚拟三维环境时,从高速缓冲存储器加载出现在所述高速缓冲存储中的与所述当前虚拟三维环境相关的一个或多个所述纹理。
53.根据权利要求4或48所述的方法,其中,在高速缓冲存储器请求时,加载出现在所述高速缓冲存储器中的与所述当前虚拟三维环境相关的所述纹理。
54.根据权利要求47或48所述的方法,其中,所述第二特定纹理是基于所述第一特定纹理的先前版本的。
55.根据权利要求47或48所述的方法,其中,从现有的可选纹理集中而不是基于所述第一特定纹理来选择所述第二特定纹理。
56.根据权利要求47或48所述的方法,其中,所述第二特定纹理包括高分辨率纹理。
57.根据权利要求47或48所述的方法,其中,所述第二特定纹理包括低分辨率纹理。
58.根据权利要求1、47或48所述的方法,进一步包括以下步骤在存储器中创建一个或多个库用于加载和生成纹理;以及在存储器中创建单独的库用于显示纹理。
59.根据权利要求58所述的方法,进一步包括以下步骤检测所述纹理的生成是否完成;确定所生成的纹理是否比所述显示库中的所述纹理中的至少一个更适于显示;确定在所述显示库中最不适于显示的纹理,并用所生成的纹理代替其显示纹理库条目;使先前用于在所述加载/生成库中生成的所述条目可用于其他纹理。
60.一种计算机可读介质,包括一个或多个指令序列,当一个或多个处理器执行所述指令时,使得所述一个或多个处理器执行前述权利要求中任一项所述的步骤。
61.一种计算机设备,包括用于显示图形图像的装置;以及用于执行在权利要求1至59中任一项所述的步骤中所述的功能的装置。
62.一种计算机设备,包括一个或多个处理器;可通信地连接至所述一个或多个处理器的一个或多个存储器;以及一个或多个计算机可读介质,包括一个或多个指令序列,当所述一个或多个处理器执行所述指令时,使所述一个或多个处理器执行权利要求1至59中任一项所述的步骤。
63.一种计算机程序,包括一个或多个指令序列,其能够执行权利要求1至59中任一项所述的方法。
全文摘要
本发明提供了一种显示图形纹理的方法,其包括确定是否存在对一个或多个内容元素中的特定内容元素的更新,其中,每个内容元素与一个或多个纹理相关;如果存在对特定内容元素的更新,则执行从一个或多个与信息相关的纹理中确定特定纹理的步骤;获取特定纹理,其中,特定纹理基于特定内容元素生成;以及显示该特定纹理。
文档编号G06T15/04GK1961339SQ200480043258
公开日2007年5月9日 申请日期2004年7月23日 优先权日2004年6月8日
发明者戴维·C·布朗利, 莱斯利·彼得斯, 戴维·格特曼, 妮科尔·莫里斯 申请人:斯瑞毕国际有限公司