CN105850099A - 用于中间图形再现的本地管理 - Google Patents
用于中间图形再现的本地管理 Download PDFInfo
- Publication number
- CN105850099A CN105850099A CN201480070775.4A CN201480070775A CN105850099A CN 105850099 A CN105850099 A CN 105850099A CN 201480070775 A CN201480070775 A CN 201480070775A CN 105850099 A CN105850099 A CN 105850099A
- Authority
- CN
- China
- Prior art keywords
- equipment
- local network
- renders
- render
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000009877 rendering Methods 0.000 claims abstract description 133
- 238000000034 method Methods 0.000 claims description 235
- 230000008569 process Effects 0.000 claims description 164
- 238000003860 storage Methods 0.000 claims description 66
- 230000004044 response Effects 0.000 claims description 54
- 238000004364 calculation method Methods 0.000 claims description 34
- 238000007726 management method Methods 0.000 claims description 26
- 230000015654 memory Effects 0.000 claims description 23
- 238000003786 synthesis reaction Methods 0.000 claims description 9
- 230000015572 biosynthetic process Effects 0.000 claims description 8
- 238000013439 planning Methods 0.000 claims description 6
- 230000001052 transient effect Effects 0.000 claims 2
- 238000005516 engineering process Methods 0.000 abstract description 13
- 238000012545 processing Methods 0.000 abstract description 8
- 238000004891 communication Methods 0.000 description 54
- 238000010586 diagram Methods 0.000 description 14
- 238000000605 extraction Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 230000033228 biological regulation Effects 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 6
- 238000012384 transportation and delivery Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 241000196324 Embryophyta Species 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 210000003141 lower extremity Anatomy 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000004899 motility Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/355—Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/765—Media network packet handling intermediate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
- H04N21/42653—Internal components of the client ; Characteristics thereof for processing graphics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
一般地描述了与中间图形再现有关的技术。在一些示例中,本地网络中的一个或多个设备可以被配备以充当用于本地网络中的客户端的实时图形渲染中间计算设备。用于本地网络的图形渲染管理器可以收集本地网络中的设备的图形处理性能信息,并且可以选择本地网络中的计算设备以充当中间计算设备。图形渲染管理器可与服务器或数据中心处的系统控制器交互,以响应于为本地网络中的客户端开始进行中间图形渲染的系统控制器请求而将合成流定向到选择的计算设备。
Description
相关申请的交叉引用
本申请是要求2013年10月23日提交的且由律师案号MTCW004501标识的、名称为“中间图形再现(INTERMEDIARY GRAPHICS RENDITION)”的国际申请PCT/US13/66300的优先权的部分继续申请。
背景技术
除非在此处进行说明,否则此处所描述的材料不是本申请权利要求的现有技术并且不因包含在该部分中而承认是现有技术。
图形渲染典型地涉及到生成图像和/或视频。例如,视频游戏通常涉及到在玩视频游戏时实时图形渲染以生成视频。所生成的视频可以反映例如玩家与视频游戏环境交互的视频游戏对象和场景,以及玩家动作、多玩家游戏中的多个其它玩家的动作、和/或可能发生于视频游戏环境中的其它动作或事件。实时图形渲染还可以在其它各种各样的非视频游戏应用中执行。
当前在因特网上流送的大量视频不是被实时渲染,或者根本未经过任何图形渲染而被记录。例如,许多可以从诸如新闻网站、社交网网站以及很多其它网站等网站获得的视频,以及可从诸如的服务获得的电影和电视节目包括未经过实时图形渲染操作而被流送的预记录或以其它方式预先渲染的视频。这些视频可以从诸如托管网站或服务的数据中心的托管网站或服务本身的数据中心直接流送到客户端设备,或者这些视频可以从部署在跨因特网的多个数据中心中的多个分布式内容分发网络(CDN)服务器中的任一个流送给客户端设备。通过将视频文件存储在分布式的CDN服务器中,能够减少与数据输送相关联的网络负荷和成本。
此外,输送到客户端设备的预记录或以其它方式预先渲染的视频可任选地存储在客户端设备处,或者存储在客户端设备可连接到的局域网(LAN)内,用于后续重放。该本地存储和后续重放操作还可以在无需任何实时图形渲染操作的情况下来实现。
同时,在流送之前实时地或者近似实时地渲染的视频内容当前局限于从托管与客户端交互的网站或服务的数据中心流送。因为其是实时地渲染,所以这些视频内容也不能有用地存储在LAN中以便后续重放。例如,多玩家视频游戏应用可以在中央数据中心处渲染图形,并且可以将实时渲染的视频内容从托管视频游戏应用的中央数据中心流送到视频游戏的玩家操作的各种客户端设备。对于多玩家游戏进行实时图形渲染的数据中心或基于云的应用当前不能利用除了位于中央数据中心之外的设备来进行实时渲染视频的输送。一个结果是,实时渲染的视频内容会平均比预记录的视频内容行进更长的网络距离;实时渲染的视频内容会平均比预记录的视频内容行进经过更昂贵的网络基础结构;并且实时渲染的视频内容会平均行进经过比载有预记录的视频内容的网络基础结构负担有更高负荷的网络基础结构。
发明概述
本公开一般描述了包括与中间图形再现有关的设备、方法和计算机可读介质以及用于中间图形再现的本地管理的技术。一些示例方法可包括通过中间计算设备来渲染图形。示例方法可以包括:将一个或多个图形模型存储在模型库中;经由网络接收来自服务器计算设备的会话信息,所述会话信息标识客户端设备;经由该网络接收由服务器提供的合成流,其中合成流可以包括例如模型标识符和模型渲染信息,其中模型渲染信息包括至少模型位置信息;从模型库中检索在合成流中标识的模型;以及将来自模型库的标识的模型和模型渲染信息提供给图形处理单元(GPU)用于渲染,从而使GPU渲染图形以便输送给客户端设备。用于输送给客户端设备的渲染后的图形可以包括根据合成流中的模型渲染信息而定位的来自模型库的标识的模型。
一些示例方法可包括:通过服务器计算设备将合成流提供给中间计算设备,其中中间计算设备适于根据合成流来提供渲染后的图形。示例方法可包括:经由网络接收来自客户端设备的应用控制指令;经由网络将标识客户端设备的会话信息发送到中间计算设备;生成合成流,其中合成流可以包括模型标识符和模型渲染信息作为通过实时图形应用处理包括来自客户端设备的应用控制指令的输入所得到的实时图形应用输出,其中合成流任选地不包括模型标识符所标识的一个或多个模型,并且其中模型渲染信息包括至少模型位置信息;以及经由网络将合成流发送到中间计算设备。示例方法可进一步包括利用本文所描述的多种模型输送方法中的任一种将模型发送到中间计算设备。
一些示例方法可包括用于管理本地网络中的中间图形渲染的方法。示例方法可包括:通过本地网络中的图形渲染管理器来收集本地网络中的计算设备的图形处理性能信息;通过图形渲染管理器来接收针对本地网络中的客户端开始中间图形渲染的请求;通过图形渲染管理器基于收集的图形处理性能信息来从本地网络中的一个或多个计算设备中选择计算设备以充当进行该客户端的中间图形渲染的中间计算设备;以及通过图形渲染管理器来将包括模型标识符和模型渲染信息的合成流定向到所选择的计算设备以使所选择的计算设备能够渲染图形以便输送给客户端。
一些示例方法可包括:通过系统控制器来确定进行客户端的中间图形渲染的中间计算设备的方法,其中中间计算设备连接到包括客户端的本地网络。示例方法可包括:通过系统控制器来接收标识客户端以及标识与本地网络连接的图形渲染管理器设备的会话信息;通过系统控制器将针对客户端开始本地网络中的中间图形渲染的请求发送到图形渲染管理器设备;通过系统控制器来接收本地网络中选择的计算设备的标识,其中所选择的计算设备被选择以充当进行客户端的中间图形渲染的中间计算设备;以及通过系统控制器将包括模型标识符和模型渲染信息的合成流定向到所选择的计算设备以使所选择的计算设备能够渲染图形以便输送给客户端。
还公开了具有实现本文所描述的各种技术的指令的计算设备和计算机可读介质。示例计算机可读介质可以包括具有能够由处理器执行的计算机可执行指令的非暂态计算机可读存储介质,所述指令在由处理器执行时使处理器实施本文提供的各种方法的任意组合。示例计算设备可包括:中间计算设备,该中间计算设备包括处理器、存储器和被配置为实施本文所描述的中间方法的图形渲染中间件;图形渲染管理器设备,其包括处理器、存储器和被配置为实施本文所描述的中间图形渲染管理方法的图形渲染管理器;以及服务器计算设备,其包括处理器、存储器、被配置为实施本文所描述的服务器方法的实时图形应用,和/或被配置为实施本文所描述的系统控制器方法的系统控制器。
前面的概述仅仅是示例性的,而不意在以任何方式进行限制。通过参考附图以及下面的详细说明,除了上文所描述的示例性方案、实施例和特征之外,另外的方案、实施例和特征将变得清楚。
附图说明
通过下面结合附图给出的详细说明和随附的权利要求,本公开的前述特征以及其它特征将变得更加清楚。应理解的是,这些附图仅描绘了依照本公开的多个实施例,因此,不应视为对本发明范围的限制,将通过利用附图结合附加的具体描述和细节对本公开进行说明,在附图中:
图1是示出示例服务器、中间件和客户端设备的图;
图2是示出可在中间计算设备处配置的示例图形渲染中间件的图;
图3是作为提供实时图形渲染应用的服务器计算设备的一个示例的计算设备的框图;
图4是通过服务器计算设备将合成流提供给中间计算设备的示例方法的流程图;
图5是作为适于提供渲染图形的中间计算设备的一个示例的计算设备的框图;
图6是通过中间计算设备来渲染图形的示例方法的流程图;
图7是示出示例模型、示例合成流和示例渲染图形流的图;
图8是示出被配置为管理中间图形渲染的示例本地网络的图;
图9是用于管理本地网络中的中间图形渲染的示例方法的流程图;
图10是包括收集的图形处理性能信息的示例图形处理性能表;
图11是通过系统控制器来确定在本地网络进行中间图形渲染的中间计算设备的示例方法的流程图;以及
图12是通过客户端设备参与包含中间计算设备进行的图形输送的通信会话的示例方法的流程图,
全部按照本公开的至少一些实施例来布置。
发明详述
在下面的详细说明中,将参考附图,附图构成了详细说明的一部分。在附图中,除非上下文指出,否则相似的符号通常表示相似的部件。在详细说明、附图和权利要求中所描述的示例性实施例不意在限制。可以使用其它实施例,并且可以做出其它改变,而不偏离本文呈现的主题的精神或范围。将易于理解的是,如本文大致描述且如图中所图示的,本公开的方案能够以各种不同配置来布置、替代、组合和设计,所有这些都明确地构思出且构成本公开的部分。
本公开一般尤其涉及包括与使用中间件渲染图形有关的方法、设备、系统和/或部署于其中的计算机可读介质的技术。在一些示例中,中间计算设备可以将图形模型存储在模型库中。服务器计算设备可以生成合成流且将合成流发送到中间计算设备。合成流可以包括模型标识符和模型渲染信息。中间计算设备可以从模型库中检索在合成流中标识的模型,并且将标识的模型和模型渲染信息提供给GPU用于渲染。GPU可以渲染图形以经由网络输送给客户端设备。
在一些示例中,本地网络中的一个或多个设备可被配备以充当本地网络中的客户端的实时图形渲染中间计算设备。用于本地网络的图形渲染管理器可以收集本地网络中的设备的图形处理性能信息,并且可以选择本地网络中的计算设备来充当中间计算设备。图形渲染管理器可以与服务器或数据中心处的系统控制器交互以响应于为本地网络中的客户端开始中间图形渲染的系统控制器请求而将合成流定向到所选择的计算设备。
视频游戏应用在本文中用作示例实时图形应用,其被配备用于根据本公开的中间图形再现。例如,数据中心处的服务器可以托管多玩家在线视频游戏。视频游戏可以使用诸如视频游戏对象、视频游戏人物和视频游戏场景元素的视频游戏模型。示例视频游戏对象包括书、车辆、藏宝箱、服装、武器等。示例视频游戏人物包括代表视频游戏的一个或多个玩家、怪物、对手、助手等的人物。示例视频游戏场景元素包括石头、树、建筑物等。在多玩家在线视频游戏中,合成流中的模型标识符和模型渲染信息会受视频游戏的多个玩家的动作影响。本领域技术人员将理解,本文所描述的技术可应用于除了视频游戏之外的应用中,即,应用于将实时渲染的图形输送给一个或多个客户端设备的任何应用中。
在本文所描述的中间图形再现技术的示例使用中,期望玩视频游戏的用户可以使用客户端设备,诸如个人计算机(PC)、移动电话、平板设备、视频游戏控制台、电视机或其它计算设备,来经由诸如因特网的网络连接到在数据中心中的一个或多个服务器处托管的视频游戏应用。视频游戏应用和客户端设备可以初始地交换网络地址、身份和/或证书信息以建立通信会话。
一旦客户端设备连接到视频游戏应用,用户可以控制诸如键盘、鼠标、控制杆、触摸屏或其它设备的输入设备来与视频游戏应用交互。与应用交互的用户输入在本文称为应用控制指令。客户端设备可以将在网络上接收到的应用控制指令发送给视频游戏应用。视频游戏应用可以接收并处理应用控制指令。
托管在数据中心处的视频游戏应用可适于处理从客户端设备接收到的应用控制指令输入,以及生成合成流输出。合成流可以包括模型标识符和模型渲染信息。视频游戏应用可以将合成流发送到中间计算设备,由此采用中间计算设备来响应于应用控制指令而渲染视频游戏图形,并将渲染后的图形输送给客户端设备。客户端设备可以接收并显示渲染后的图形。用户可以继续与视频游戏交互,生成附加的应用控制指令,该附加的应用控制指令可类似地从客户端设备发送到数据中心处的视频游戏应用。视频游戏应用可以继续接收并处理应用控制指令;并且视频游戏应用可以继续将合成流提供给中间计算设备,以便采用中间计算设备来渲染视频游戏图形并且将渲染后的图形输送给客户端设备。
图1是示出根据本公开的至少一些实施例布置的示例服务器、中间件和客户端设备的图。如所描绘的,图1包括服务器计算设备100、中间计算设备120和客户端设备130。服务器计算设备100包括实时图形应用101,并且实时图形应用101包括合成流生成器102。中间计算设备120包括模型库121、图形渲染中间件122以及GPU 123。
服务器计算设备100、中间计算设备120和客户端设备130可以经由包括诸如因特网的有线和/或无线网络连接的网络来耦合。在一些实施例中,服务器计算设备100可以经由“长的”网络连接161与中间计算设备120耦合,并且中间计算设备120可以经由“短的”网络连接162与客户端设备130耦合。“长的”和“短的”网络连接161和162可以包括诸如因特网的较大网络的部分,其中在可能是但无需是由于较长的物理距离导致的端点之间具有较长的网络包行进时间和/或具有较高的传输成本的意义上,“长的”网络连接161可以比“短”的网络连接162长。
在一些实施例中,“长的”网络连接161可以例如包括一层网络,其可以在高的负荷因素下运行且可以基于所输送的太字节(TB)来付费(通过现金或对等信用)。“长的”网络连接161还可以包括比“短的”网络连接162更多的网络跳转和/或较大网络的部分受到比“短的”网络连接162更高的负荷。例如,当服务器计算设备100是任何给定数据中心中的服务器,且CDN、城域网(MAN)或其它网络包括可适于充当计算设备的服务器时,则中间计算设备120可以包括可被选择以为客户端设备130渲染图形的CDN或MAN服务器。服务器计算设备100可以至少部分地针对其与客户端设备130的相对短的网络连接而选择中间计算设备120。同时,服务器计算设备100可以经由网络连接161和162的任意组合、其部分和/或经由图1未示出的附加网络段而与客户端设备130耦合。
在一些实施例中,“短的”网络连接162可以包括同一本地网络中的设备之间的LAN连接,例如,中间计算设备120和客户端设备130可以位于同一本地网络中,诸如有线或无线家庭或办公室网络。服务器计算设备100可以位于本地网络之外,诸如在远程数据中心中。本地网络中的设备可以经由“长的”网络连接161与服务器计算设备100通信。图8-图12描述了与中间计算设备120和客户端设备130处于同一本地网络中的实施例有关的另外的方面。
在一些实施例中,实时图形应用101可适于经由“长的”网络连接161将模型151发送到中间计算设备120。实时图形应用101可适于任选地还将模型151发送到任何其它中间计算设备,实时图形应用101可采用任何其它中间计算设备用于图形渲染和输送。被发送到中间计算设备120的模型151中的每一个可由模型标识符(ID)标识,例如,由包括可用于唯一地标识每个模型的唯一的字母、数字和/或符号串的模型ID来标识。中间计算设备120可以适于接收模型151且将由模型ID标识的模型151存储在模型库121中。
模型151可包括表示实时图形应用101所采用的图形元素的数字数据。例如,在视频游戏应用的上下文中,模型151可以包括视频游戏玩家所遇到的对象、人物和/或场景元素的三维(3D)数字模型。在一些实施例中,模型151可以包括音频以及视觉属性和/或诸如触觉反馈属性的其它属性或者可以与音频以及视觉属性和/或诸如触觉反馈属性的其它属性相关联,例如,用于控制器振动或其它触觉反馈,控制器振动或其它触觉反馈可以与玩家与模型相遇相结合地应用到客户端设备130处。
实时图形应用101可适于例如响应于来自客户端设备130的连接请求与客户端设备130建立通信会话。在通信会话期间,客户端设备130可以将应用控制指令152经过诸如因特网的网络发送到实时图形应用101。在一些实施例中,实时图形应用101还可以与多个其它客户端设备建立通信会话,并且可以从多个其它客户端设备,例如通过多玩家在线视频游戏的多个玩家操作的客户端设备接收应用控制指令。
实时图形应用101可适于接收并处理应用控制指令152,任选地连同从多个其它客户端设备接收到的应用控制指令一起。处理应用控制指令152可以尤其包括,使用合成流生成器102来生成合成流154。实时图形应用101可适于将合成流154发送到中间计算设备120,用于图形渲染以及将渲染后的图形流158输送到客户端设备130。在一些实施例中,实时图形应用101可以任选地被配置为将合成流154发送到多个不同的中间计算设备,用于图形渲染以及将相同的渲染图形流输送给多个客户端设备中的每个。在一些实施例中,实时图形应用101可以任选地被配置为针对多个客户端设备中的每个生成不同的合成流,以及将不同的合成流输送给多个不同的中间计算设备。多个不同的中间计算设备又可以为多个客户端设备中的每个渲染且输送不同的渲染后的图形流。合成流154可以包括模型ID以及模型渲染数据作为实时图形应用101对包括应用控制指令152的输入进行处理而得到的实时图形应用101输出。合成流154可以任选地不包括由合成流154中包含的模型ID所标识的一些或全部的模型。
合成流生成器102可被布置成生成合成流154,作为渲染后的图形流的替代或者作为渲染后的图形流的轻量级版本。除了生成用于输送给中间计算设备120的合成流154之外,实时图形应用101可以或者可以不在服务器计算设备100处本地生成渲染图形流。
在适于经由本地GPU在服务器计算设备100渲染图形的实施例中,实时图形应用101可适于将利用3D空间中的顶点以及诸如那些顶点处的颜色和纹理的性质所表示的形状基元发送给本地GPU。形状基元可以发送到本地GPU,而没有诸如模型位置信息、模型方向信息、视点信息或光源信息的混合信息。而是,顶点位置可以在表示模型的对象坐标系中。实时图形应用101可以应用混合操作,其中指令发送到本地GPU,尤其用于每个模型的位置、方向、视点和/或光源。可以使用合成指令来例如定位、定向、变换和旋转每个对象坐标系,和/或将灯光/阴影应用于模型。定位模型可以包括:模型在场景中的“环境”定位,以及通过整体地相对于模型来调节模型的部分而对模型的“内部”定位。例如,“内部”定位可以包括模型的腿弯曲和伸直以便弯身或步行,抬起和放下模型的臂,转向模型头角度,等等。根据合成操作所构成的各种模型的视图可以包括3D场景的渲染后的2D视图。
合成复杂度可源自于以下事实:模型可能非常大,渲染典型的场景可以包括向每帧多次提供模型和信息,这是图形卡通常使用高带宽外围组件互连(PCI)通信的原因之一。场景合成技术可包含三个种类:首先分类、中间分类和最后分类。在适于提供展开场景的多个视图的实施例中,例如在每个玩家可以自不同视点观看场景的多玩家视频游戏的情况下,实时图形应用101可以通过装载适合的模型以及定位模型,以及对模型定向、照亮模型等来构成每个场景。实时图形应用101随后可以渲染每个场景的多个不同的视图,例如来自多个玩家的视点的视图。将理解的是,受益于本公开,这些方法还可由一些实施例使用来生成多个合成流以便输送给多个中间计算设备。
在一些实施例中,实时图形应用101可适于生成合成流154,作为经由如上所述的本地GPU渲染图形的替代或者附加。可以观察到,如果实时图形应用101在服务器计算设备100处与本地GPU的交互不需要模型输送,则合成操作可限于提供包括模型ID和诸如模型方向和布置、视点、纹理和光源信息的渲染信息的指令。在一些情况下,当这些渲染信息从一个场景到另一场景保持不变时,还可以通过例如省略光源、定位、方向或其它渲染信息来限制一些渲染信息。预装载有模型的假定的极大存储器GPU可使用例如每秒合成更新的几千字节(KB),而不是例如当前用于包括模型输送的图形渲染的每秒32通道PCI-express的8千兆字节(GB)。
在一些实施例中,合成流生成器102可以被布置成通过计算或提取基本上类似于可以发送到本地GPU的合成操作指令的合成操作指令来在服务器计算设备100生成合成流154。合成流生成器102可以适于在合成流154中包含合成操作指令。在一些实施例中,合成流生成器102可以适于修改合成操作指令,例如通过插入或修改模型ID号。实时图形应用101可以或者可以不同样在服务器计算设备100处本地生成渲染后的图形流,作为生成合成流154的副产物,或者由于其它原因。
诸如CDN服务器的中间计算设备和高性能家庭或办公计算设备可以包括诸如模型库121的大存储器模型库,并且中间计算设备120可以利用模型库121来有效地在中间计算设备120实现上述由实时图形应用101使用的假定的很大存储器图形卡,至少部分地允许通过将模型151的输送与合成流154的输送分离来相应减少网络通信流量。
实时图形应用101可适于采用中间计算设备120来渲染图形并通过经由“长的”网络连接161将会话信息153和合成流154发送到中间计算设备120来将渲染后的图形输送给客户端设备130。实时图形应用101可以任选地利用高优先级通道将合成流154发送到中间计算设备120。实时图形应用101可适于采用中间计算设备120和/或其它中间计算设备来渲染图形并将渲染后的图形输送给多个其它客户端设备。
中间计算设备120可与图形渲染中间件122适用,其中图形渲染中间件122可适于代表实时图形应用101来管理在中间计算设备120接收模型151、在模型库121中存储模型151、从服务器计算设备100接收会话信息153和合成流154、通过GPU 123进行图形渲染、以及将渲染后的图形流158输送给客户端设备130。在一些实施例中,中间计算设备120还可以适于渲染图形且将渲染后的图形流供给到多个其它客户端设备,例如通过加载图形渲染中间件122的多个实例来服务多个客户端设备。中间计算设备120可由此适于由多个不同的接收的合成流同时生成多个不同的渲染图形流。中间计算设备120可将不同的渲染图形流中的每个同时供给到不同的客户端设备,其中客户端设备可在能应用于每个接收到的合成流的接收到的会话信息中被标识。
图形渲染中间件122可适于根据一个或多个不同模型输送实施例来接收和存储模型151。一个或多个不同模型输送实施例还可以实现在服务器计算设备100处。在一些模型输送实施例中,实时图形应用101可适于在与客户端设备的通信会话之前将模型151发送到中间计算设备120。图形渲染中间件122可相应地适于接收和存储模型151,以便结合与客户端设备的未来可能的通信会话而用于图形渲染操作。
在一些模型输送实施例中,实时图形应用101可适于在与客户端设备130的通信会话期间将模型151发送到中间计算设备120。图形渲染中间件122可相应地适于接收和存储模型151,以便结合与客户端设备130的进行中的通信会话而用于图形渲染操作。图形渲染中间件122还可以任选地适于存储模型151,以便结合与客户端设备的未来可能的通信会话而用于图形渲染操作。
在一些模型输送实施例中,实时图形应用101可适于以混合的方式将模型151发送到中间计算设备120,例如,通过在与客户端设备进行通信会话之前发送一些模型151,以及在与客户端设备130进行通信会话期间发送一些模型151。图形渲染中间件122可相应地适于接收并存储最初和后续接收到的模型151,用于图形渲染操作。图形渲染中间件122可以使用最初和后续接收到的模型151,结合与客户端设备130的进行中的通信会话。图形渲染中间件122可以存储最初和后续接收到的模型151,结合与客户端设备的未来可能的通信会话而用于图形渲染操作。
响应于从服务器计算设备100接收会话信息153,图形渲染中间件122可适于建立与客户端设备130的通信会话。在一些实施例中,会话信息153可以将客户端设备130标识为中间计算设备120。在一些实施例中,会话信息153可以包括附加的会话信息,诸如用于实时图形应用101与客户端设备130之间的通信会话的会话ID,以允许中间计算设备120以与客户端设备130和实时图形应用101之间的会话整合的方式将渲染后的图形发送到客户端设备130。在与客户端设备130的通信会话中,中间计算设备120可以将渲染后的图形流158发送到客户端设备130,用于结合服务器计算设备100与客户端设备130之间的会话而在客户端设备130显示。
在根据图1的示例操作中,合成流154可以包括模型ID 155,该模型ID 155可以标识模型库121中的较大模型集合151内的模型156。合成流154还可以包括模型156的模型渲染数据157。模型渲染数据157可以包括例如模型位置信息(包括“环境”和/或“内部”位置信息)、模型方向信息、视点信息、纹理信息、光源信息、和/或规定应如何渲染模型156的任何其它信息,例如通过定位模型156,对模型156定向,从一个或多个视点观看模型156,将纹理应用于模型156,和/或根据光源信息来照亮(以及遮蔽)模型156。模型渲染数据157可以任选地伴随有音频、触觉或结合显示渲染模型来规定用于回放的附加输出的其它数据。
响应于接收到合成流154,图形渲染中间件122可以适于检索在合成流154中标识的模型156。例如,图形渲染中间件122可以利用模型ID 155来查询模型库121,并且模型库121可以返回对应的模型156。图形渲染中间件122可适于为GPU 123任选地对模型156渲染数据157进行组合或排序。图形渲染中间件122可适于将模型156和渲染数据157,任选地作为组合或排序流,提供给GPU 123用于渲染,从而使GPU 123渲染图形以便输送给客户端设备130。可根据例如任何行业标准图形格式(诸如例如各种开放图形库(OpenGL)标准所使用的图形格式)对模型156和渲染数据157进行组合或排序。
在一些实施例中,诸如GPU 123的同一GPU可用于根据多个不同的合成流而同时将渲染后的图形提供给多个客户端。例如,GPU 123可以包括例如使用由制作的VGX虚拟化技术的虚拟化或共享的GPU。该布置允许中间计算设备120处的不同模型库所服务的实时图形应用101和/或多个不同的实时图形应用实现多个不同的渲染图形流到不同客户端设备的输送,同时针对每个渲染后的图形流的特定需求而适当地在中间计算设备120处共享GPU 123。
在一些实施例中,GPU 123可以包括针对数据中心的GPU图形卡。当前的图形卡包括例如NVIDIA和AMD系列图形卡。AMD SKY 900当前具有3,584个流处理器。因此,如果480个流处理器用于为每个客户端设备生成HD渲染的视频图形流,则平均22个终端用户/客户端设备可由包括三个AMD SKY 900卡的单个中间计算设备120来服务。使粗略估计的2x增益应用于虚拟化负荷优化将服务44个终端用户/客户端设备,也用于单个中间计算设备120。包括中间计算设备120的数据中心当然可以包括满足需求所需的附加的中间计算设备。
渲染后的图形流158可以包括来自GPU 123的渲染的视频图形,包括由合成流154中的模型ID 155所标识的来自模型库121的模型156的渲染,模型156根据来自合成流154的模型渲染数据157中的模型位置信息和/或其它数据而定位并以其它方式渲染。图形渲染中间件122可适于将渲染后的图形流158输送给客户端设备130,或者以其它方式使得渲染后的图形流158经由“短”网络连接162而从GPU 123输送给客户端设备130。
在一些实施例中,图形渲染中间件122可以随着进行中的合成流154被接收而连续地或者基本上连续地操作。换言之,合成流154可以包括不同的模型ID和模型渲染数据的连续或基本连续的流,其可以在服务器计算设备100与客户端设备130之间的整个通信会话期间继续。图形渲染中间件122可以连续地或基本上连续地接收不同的模型ID和模型渲染数据,从模型库121检索标识的模型,将模型和模型渲染数据供给到GPU 123,并且将渲染后的图形流158输送给会话信息153中所标识的客户端设备130。当服务器计算设备100与客户端设备130之间的会话结束时,服务器计算设备100可任选地将结束通知(图1中没有示出)发送给中间计算设备120,或者服务器计算设备100可以中断合成流154,并且中间计算设备120可以响应于合成流154的结束通知或中断而代表服务器计算设备100中断图形渲染。
将理解的是,虽然在一些实施例中,中间计算设备120可经由网络连接161来从服务器计算设备100接收模型151,其它实施例可以包括通过除了服务器计算设备100之外的模型输送服务器将模型151发送到中间计算设备120。此外,通过将数字多功能盘(DVD)或其它存储介质运送到中间计算设备120的操作者,中间计算设备120的操作者随后可以将来自这些存储介质的模型151传送到模型库121,模型151可提供给中间计算设备120。
在实时图形应用101适于在与客户端设备进行通信会话之前将模型151发送到中间计算设备120并且图形渲染中间件122适于接收和存储模型151以便结合与客户端设备的未来的可能的通信会话而用于图形渲染操作的模型输送实施例,实时图形应用101可以通过任意数量的模型包和/或模型更新来发送模型151。模型包和模型更新可以标识实时图形应用101,使得中间计算设备120可以将接收到的模型存储到适合的模型库121中。在一些实施例中,中间计算设备120可以包括多个模型库或者中间计算设备120可以访问多个模型库以便结合多个不同的实时图形应用来使用。
在实时图形应用101适于在与客户端设备130的通信会话期间将模型151发送到中间计算设备120并且图形渲染中间件122适于接收并存储模型151以便结合与客户端设备130的进行中的通信会话而用于图形渲染操作的模型输送实施例中,实时图形应用101可以包括合成流154中的模型151。例如,实时图形应用101可初始地在合成流154中包括模型ID(例如在合成流154中参照的模型ID 155)参照的模型。随着合成流154继续,一些参照模型可能是新的,即,可能先前未包含在合成流154中,而其它参照模型可能先前已经包含在合成流154中。实时图形应用101可适于确定合成流154中的模型ID所标识的哪些模型先前被发送到中间计算设备120。实时图形应用101可以在合成流154中包括先前未发送到中间计算设备120的模型,而在合成流154中不包括先前发送到中间计算设备120的模型。因此,例如,在一些方案中,随着合成流154继续,实时图形应用101可以在合成流154中包括较少的模型。
同时,响应于接收到合成流154中的模型,例如先前未存储在模型库121中的模型,中间计算设备120可适于从合成流154提取模型并将提取的模型存储在模型库121中。将提取的模型存储在模型库121中可以与将合成流154中的模型连同模型渲染数据一起提供给GPU 123用于图形渲染以及将渲染后的图形流158输送给客户端设备130同时进行。
示例实时图形应用可以包括例如诸如经由能够访问这些应用的应用,以及可以被修改以包含本文所描述的技术的云游戏网络。实时图形应用的优点一般包括将渲染后的图形流输送到存储器和处理性能可变化的不同的客户端设备的性能。具有板载GPU的高性能台式计算机或游戏控制台能够在本地渲染图形,然而,较低性能的平板设备、电视或智能手机可能不具有足以在本地渲染图形的板载图形处理。为服务所有的客户端设备,无论设备性能如何,有益的是经由网络来输送完全成熟的视频,而不是依赖于本地客户端设备性能。然而,本公开理解,在“长的”网络连接161上输送完全成熟的视频比在“短的”网络连接162上输送完全成熟的视频成本更高且性能更低。
本公开因此尤其提供了在“长的”网络连接161上输送相对轻量级合成流而在“短的”网络连接162上输送完全成熟的视频的方法。该方法的益处包括:从网络的长距层(long haul layer)去除大带宽视频流量,降低将视频输送到客户端设备的网络成本。结果,客户端设备处的用户可以体验响应性更好的实时图形应用,同时继续接收高品质视频。客户端设备还可以通过在客户端设备内不渲染图形来节约电力,从而提高例如移动设备的电池寿命。因为输送的视频图形不会经受长距拥塞,所以输送的视频图形还可以具有更高的品质和稳定性。同时,实时图形应用供应商可以支付较少来提供该流式视频。中间计算设备操作者可以将有意义的服务提供给实时图形应用,推动向CDN或中间计算设备的其它操作者以及转而与CDN协同工作的电缆和其它最后一英里操作者进行一些支付。此外,通过在多个实时图形应用之间共享中间计算设备的GPU资源,还可以降低与GPU相关联的硬件成本。
图2是示出依照本公开的至少一些实施例布置的可被配置在中间计算设备处的示例图形渲染中间件的图。示例图形渲染中间件122包括模型复印机201、实时渲染管理器210和会话/输送管理器220。实时渲染管理器210包括模型提取器211、模型检索器212以及定序器213。
在图2中,图形渲染中间件122可适于在多种不同的模型输送模式下接收模型。模型复印机201可以适接收并存储模型更新到模型库中,用于结合未来可能的与客户端设备的通信会话而用于图形渲染操作。模型提取器211可适于从合成流154中提取模型,并将提取的模型存储在模型库中,用于与客户端设备的进行中的通信会话中,以及任选地用于结合未来可能的与客户端设备的通信会话而用于图形渲染操作。图形渲染中间件122可适于经由模型复印机201和/或模型提取器211中的任一者或两者来接收模型。
实时渲染管理器210可适于接收合成流154;采用模型提取器211来提取合成流154中包含的任何模型并且将提取的模型存储在模型库中;采用模型检索器212从模型库中检索合成流154中的模型ID所标识的模型;以及采用定序器213对模型流和渲染数据进行排序,所述流包括来自合成流154的渲染信息和模型,其中流中的模型可从合成流154中提取和/或从模型库中检索。实时渲染管理器210和/或定序器213可适于将模型和渲染数据的排序流输送给GPU。
会话/输送管理器220可适于接收标识客户端设备和/或用于服务器计算设备与客户端设备之间的会话的会话ID的会话信息;在所标识的会话的上下文中建立与客户端设备的通信;从GPU接收渲染后的图形流;以及将渲染后的图形流发送到客户端设备。
图3是依照本公开的至少一些实施例布置的作为提供实时图形渲染应用的服务器计算设备的一个示例的计算设备的框图。在最基本配置301中,计算设备300可包括一个或多个处理器310和系统存储器320。存储器总线330可以用于处理器310和系统存储器320之间的通信。
根据所需的配置,处理器310可以是任意类型,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或其任意组合。处理器310可以包括诸如一级高速缓存311和二级高速缓存312的一级或多级高速缓存、处理器核313和寄存器314。处理器核313可以包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSP Core)或其任意组合。存储器控制器315还可与处理器310一起使用,或者在一些实施方式中,存储器控制器315可以是处理器310的内部部件。
根据所需的配置,系统存储器320可以是任意类型,包括但不限于易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或其任意组合。系统存储器320典型地包括操作系统321、一个或多个应用322以及程序数据325。在一些实施例中,操作系统321可以包括由虚拟机管理器(VMM)管理的虚拟机。
应用322可以包括例如实时图形应用101、合成流生成器102和/或中间选择模块323。实时图形应用101和合成流生成器102被上文结合图1进行了介绍。在一些实施例中,合成流生成器102可部署在操作系统321内。合成流生成器102可以例如被提供作为可供多个不同的实时图形应用使用的操作系统服务。中间选择模块323可适于为与实时图形应用101交互的每个客户端设备选择适合的中间计算设备。中间选择模块323通常可以使用客户端设备可用的中间计算设备的网络位置和来做出中间计算设备选择。例如,中间选择模块323可适于选择具有到客户端设备的最短网络连接的中间计算设备。在一些实施例中,中间选择模块323可以尤其包括系统控制器324,其适于与本地网络中的图形渲染管理器交互,如本文参考图8-12所描述的。
程序数据325可以包括可由应用322使用的模型151和数据327。数据327可以包括先前已经输送给每个中间计算设备的模型列表。将理解的是,实时图形应用可使用程序数据325所包含的各种各样的专用程序数据中的任一种。
计算设备300可具有附加的特征或功能以及附加的接口以便于基本配置301与任何所需的设备和接口之间的通信。例如,总线/接口控制器340可用于便于基本配置301与一个或多个数据存储设备350之间经由存储接口总线341的通信。数据存储设备350可以是可移除存储设备351、非可移除存储设备352或者其组合。可移除存储设备和非可移除存储设备的示例包括诸如软盘驱动器和硬盘驱动器(HDD)的磁盘设备、诸如压缩盘(CD)驱动器或数字多功能盘(DVD)驱动器的光盘驱动器、固态驱动器(SSD)和磁带驱动器,仅列举了几个。示例计算机存储介质可以包括以用于诸如计算机可读指令、数据结构、程序模块或其它数据的信息的存储的任何方法或技术实现的易失性和非易失性的介质以及可移除和非可移除的介质。
一级高速缓存311、二级高速缓存312、系统存储器320、可移除存储设备351和非可移除存储设备352是计算机存储介质的全部示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储设备、磁盒、磁带、磁盘存储设备或其它磁存储设备、或者可用于存储所需信息并且可由计算设备300访问的任何其它介质。任意这样的计算机存储介质可以是设备300的一部分。
计算设备300还可以包括接口总线342,该接口总线用于方便从各接口设备(例如,输出接口、外围设备接口和通信接口)经由总线/接口控制器340到基本配置301的通信。示例输出设备360包括图形处理单元361和音频处理单元362,其可被配置为经由一个或多个A/V端口363与诸如显示器或扬声器的各种外部设备通信。示例外围设备接口370可以包括串行接口控制器371或并行接口控制器372,其可被配置为经由一个或多个I/O端口373与诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备等)或其它外围设备(例如,打印机、扫描仪等)的外部设备通过有线或无线连接进行通信。其它常规的I/O设备同样可以连接,诸如鼠标、键盘等等。示例通信设备380包括网络控制器381,其可被布置成便于经由一个或多个通信端口382通过网络通信与一个或多个其它计算设备390的通信。
计算机存储介质可以是通信介质的一个示例。通信介质通常可通过计算机可读指令、数据结构、程序模块或诸如载波或其它传输机制的调制数据信号中的其它数据来具体化,并且可以包括任何信息输送介质。“调制数据信号”可以是具有以对信号中的信息进行编码的方式设定或改变的一个或多个信号属性的信号。通过举例而不是限制的方式,通信介质可以包括诸如有线网络或直接线连接的有线介质,以及诸如声波、射频(RF)、微波、红外(IR)和其它无线介质的无线介质。
计算设备300可实现为数据中心中的服务器计算设备。在一些实施例中,数据中心可以包括“开放”数据中心,其将计算资源提供给多个不同的客户,包括例如实时图形应用101的所有者/操作者。在一些实施例中,数据中心可以包括“封闭”数据中心,其可由实时图形应用101的所有者/操作者排他地使用,例如运行实时图形应用101,以及任选地运行由同一所有者/操作者还拥有或控制的其它实时图形应用。在一些实施例中,计算设备300可以实现为托管由实时图形应用101使能的多玩家在线视频游戏的数据中心处的服务器计算设备,其中模型151可以包括视频游戏模型,并且其中通过合成流生成器102生成的合成流中的模型标识符和模型渲染信息会被来自多玩家在线视频游戏的多个玩家的应用控制指令影响。
图4是依照本公开的至少一些实施例布置的通过服务器计算设备向中间计算设备提供合成流的示例方法的流程图。示例流程图可以包括如框401-406所示的一个或多个操作/模块,这些代表了通过实时图形应用101在方法中执行的操作、计算设备300中的功能模块和/或可以记录在计算机可读介质450上的指令。图示的框401-406可以与中间计算设备120和客户端设备130交互,如图所示。
在图4中,图示的框401-406包括顺序地执行的框,例如,首先是框401,最后是框406。然而,将理解的是,这些框可重新布置为方便适应特定的实施例,并且在一些实施例中,这些框或其部分可以同时执行。还将理解的是,在一些示例中,各个框可被去除,被分为附加的框,和/或与其他框组合。
图4示出了示例方法,通过该示例方法,布置为诸如图1的服务器计算设备100的服务器计算设备的计算设备300可根据从客户端设备130接收到的应用控制指令将合成流提供给中间计算设备120,其中中间计算设备120适于将与合成流一致的渲染后的图形提供给客户端设备130。在图4中,“模型输送”框401先于包括“接收应用控制指令”框402、“生成合成流”框404以及“模型包含”框405和“发送合成流”框406的循环。为完成该循环,框406将合成流发送到中间计算设备120,中间计算设备120将渲染后的图形流发送到客户端设备130,并且客户端设备130将附加的应用控制指令发送到“接收应用控制指令”框402。在包括框402、404/405和406的循环的第一实例中,可另外执行依照“选择中间件/发送会话信息”框403的操作。框403无需一定在包括框402、404/405和406的循环的后续实例中执行。
在“模型输送”框401中,计算设备300可以经由网络将一个或多个模型发送到中间计算设备120。在计算设备300与框401适用的实施例中,计算设备300可以通过任何适合的方法来发送模型。例如,计算设备300可以将模型作为包括了基本上与实时图形应用101一起使用的全部模型的模型包发送;计算设备300可以发送初始模型包,然后是模型更新包;计算设备300可以在夜间或者在诸如161的长网络连接上的网络需求低的时段中发送模型;以及计算设备300可以任选地采用用于将大的模型文件传送到多个中间计算设备的任何可用技术。在一些实施例中,计算设备300可以在框401中选择一组模型以便在框401进行输送。所选择的一组模型可以是实时图形应用101所使用的模型的子集。模型选择可任选地考量模型流行度、模型大小、直至模型更新的期望时间、模型使用的统计概率、特定用户或用户人口统计对模型的先前使用、和/或在受益于本公开的情况下可意识到的任意数量的其他考虑中的一项或多项。
在一些实施例中可省去框401。例如,可通过除了服务器计算设备300之外的单独的模型服务器将模型提供给中间计算设备120;框401可通过将DVD或其他计算机可读存储器物理地邮寄到中间计算设备120的操作者来实现;或者计算设备300和实时图形应用101可依赖于框405,用于模型输送。框401之后可以是框402,其中框402可以发生于框401后的任意时间,结合实时图形应用101与客户端设备130之间的初始会话。
在“接收应用控制指令”框402,计算设备300可以经由网络接收来自客户端设备130的应用控制指令。在实时图形应用101支持多个用户或玩家的交互的实施例中,框402可以包括从客户端设备130以及从对应于实时图形应用101的其他用户或玩家的多个其他设备接收应用控制指令。
实时图形应用101通常可以结合开始与客户端设备130的会话以及因此将应用服务提供给客户端设备130来执行任何操作。具体的应用服务可取决于设计实时图形应用101的目的。本文所描述的示例性的实施例包括但不限于视频游戏服务。视频游戏应用的应用控制指令可包括例如玩家移动以及其他玩家动作命令。框402之后可以是框403和404。
在“选择中间件/发送会话信息”框403中,计算设备300可以经由网络将标识客户端设备130的会话信息发送到中间计算设备120。计算设备300可初始地从多个可用的中间计算设备中选择中间计算设备120。例如,计算设备300可以基于中间计算设备120和客户端设备130的网络位置来选择中间计算设备120,使得中间计算设备120与客户端设备130之间的网络距离比服务器计算设备300与客户端设备130之间的网络距离短。在一些实施例中,计算设备300可以从多个可用的中间计算设备中选出中间计算设备,其中与其他可用的中间计算设备相比,所选择的中间计算设备具有最短的到客户端设备130的网络距离。可用于框403处的选择的中间计算设备可包括例如CDN或MAN中的一个或多个设备。
在一些实施例中,服务器计算设备300可包括系统控制器,该系统控制器适于与连接到本地网络的图形渲染管理器交互,如本文参考图8-12进一步详述的。框403可以包括系统控制器与图形渲染管理器之间的一个或多个交互。例如,系统控制器可以将为客户端设备130开始本地网络中的中间图形渲染的请求发送给图形渲染管理器。系统控制器可以从图形渲染管理器接收本地网络中的所选择的计算设备的标识,其中所选择的计算设备被选择以充当为客户端设备130进行中间图形渲染的中间计算设备120。结合图8-12对可通过系统控制器和图形渲染管理器执行的进一步的操作进行说明。
一旦计算设备300选择了中间计算设备120,计算设备300可以将会话信息发送到中间计算设备120。会话信息可以向中间计算设备120标识客户端设备130和/或关于计算设备300与客户端设备130之间的会话的会话信息。在一些实施例中,框403可以并入框404中,例如通过在发送给中间计算设备120的合成流中包含客户端设备ID和/或会话ID信息。框403可在每次与客户端设备130会话时执行一次,并且框403无需在后续向中间计算设备120发送合成流信息时重复。框403之后可以是框404。
在“生成合成流”框404中,计算设备300可以生成合成流。合成流可以包括至少模型ID以及作为由于实时图形应用101处理包括从客户端设备130接收到的应用控制指令的输入所得到的实时图形应用101输出的模型渲染信息。模型渲染信息可以包括例如模型位置信息、模型方向信息、视点信息、光源信息、纹理信息和/或适合于渲染模型以产生例如渲染的视频图形的任何其他信息。合成流可以不包括其中的模型ID所标识的一个或多个模型。合成流中不包括的模型可以包括例如先前在例如框401或405发送给中间计算设备的模型。
合成流可以利用任何硬件或软件方法来生成。例如,在一些实施例中,合成流生成器102可以截获例如为通过计算设备300处的GPU进行本地图形渲染的目的而生成的包括GPU指令和数据的GPU指令流。合成流生成器102可以适当地修改所截获的GPU指令流以包含能够由中间计算设备可识别的模型ID和渲染信息,从而生成合成流。在一些实施例中,实时图形应用101可以通过计算设备300处的GPU来渲染图形,并且合成流生成器102可使用本地渲染后的图形,任选地与GPU指令流信息相结合,以确定模型ID和渲染信息包含在合成流中。在一些实施例中,合成流生成器102可以包括修改后的GPU,修改后的GPU可适于输出包括模型ID和渲染信息而不是渲染图形的合成流。在一些实施例中,框404可包括框405。
在“模型包含”框405中,计算设备300可确定通过合成流中的模型ID所标识的哪些模型先前被发送给中间计算设备120,并且计算设备300可以在合成流中包含先前未发送到中间计算设备120的模型,而在合成流中不包含先前发送给中间计算设备120的一些或全部模型。在框401中一些或全部模型没有被发送给中间计算设备120的实施例中,计算设备300可以在合成流中包含模型。
在示例的方案中,合成流可初始地参照模型A、B和C的模型ID,其中没有一个先前发送给中间计算设备120。框405可以确定模型A、B和C先前未发送给中间计算设备120,并且计算设备300可以在初始合成流中包含模型A、B和C。合成流随后可以参照模型B、C、D和E的模型ID,其中模型B和C先前发送给中间计算设备120,但是模型D和E先前未发送给中间计算设备120。框405可以确定模型B和C先前发送给中间计算设备120(在该情况下,模型B和C先前在初始合成流中发送)并且模型D和E先前未发送给中间计算设备120。计算设备300可以例如保持并检查先前发送给中间计算设备120的模型列表。计算设备300可以在后续的合成流中包含模型D和E,而在后续的合成流中不包含模型B和C。框405之后可以是框406。
在“发送合成流”框406中,计算设备300可以经由网络将合成流发送到中间计算设备120。框406之后可以是中间计算设备120处的图形渲染以及渲染后的图形从中间计算设备120输送到客户端设备130。客户端设备130可以将新的应用控制指令发送给计算设备300,该新的应用控制指令在框402中被接收到。包含了框402、404/405和406的循环可以在客户端设备130与计算设备300/实时图形应用101之间的会话持续期间继续。
图5是是根据本公开的至少一些实施例布置的作为适于提供渲染图形的中间计算设备的一个示例计算设备的框图。计算设备500还包括本地客户端523以及适于与管理本地网络中的中间图形渲染相结合使用的图形渲染管理器524。计算设备500通常可布置有如结合图3中的计算设备300所描述的类似的设备组件、连接和属性。计算设备500与计算设备300至少部分区别在于配置有不同的应用,诸如应用522,以及不同的数据,诸如数据525。计算设备500还可以具有不同于计算设备300的支持中间计算设备和/或图形渲染管理器的各操作所需的硬件,所述硬件可适当地被选择以支持本公开的实施例。
在最基本的配置501中,计算设备500可以包括一个或多个处理器510以及系统存储器520。存储器总线530可用于在处理器510与系统存储器520之间通信。处理器510可以包括一级或多级高速缓存,诸如一级高速缓存511和二级高速缓存512、处理器核513以及寄存器514。存储器控制器515还可以与处理器510一起使用,或者在一些实现方式中,存储器控制器515可以是处理器510的内部部件。
系统存储器520可以包括操作系统521、一个或多个应用522和程序数据525。在一些实施例中,操作系统521可以包括虚拟机管理器(VMM)所管理的虚拟机。应用522可以包括例如图形渲染中间件122、本地客户端523和/或图形渲染管理器524。程序数据525可以包括模型库121以及其他数据527,诸如会话信息以及包含模型ID和可由图形渲染中间件122使用的渲染信息的合成流信息,和/或由如本文所描述的图形渲染管理器524所使用的收集的图形处理性能信息。
参考图5,可以理解本公开的多个不同的实施例。在一些实施例中,计算设备500可以包括图形渲染中间件122、本地客户端523和图形渲染管理器524,如图5所示。在一些实施例中,计算设备500可以包括图形渲染管理器524,并且可以省去本地客户端523和图形渲染中间件122。在一些实施例中,计算设备500可包括本地客户端523以及图形渲染中间件122,并且可以省去图形渲染管理器524。在一些实施例中,计算设备500可以包括图形渲染中间件122,并且可以省去本地客户端523以及图形渲染管理器524。
例如,当计算设备500被配置为与实时图形应用交互的中间计算设备而无需通过图形渲染管理器来管理计算设备500时,其中计算设备500可包括图形渲染中间件122以及可以省去本地客户端523和图形渲染管理器524的实施例可以被布置。例如,计算设备500可以包括在图形渲染管理器的管理下位于本地网络之外的CDN或MAN中的中间计算设备。
例如,当计算设备500被配置为用于本地网络的图形渲染管理器设备时,可以部署其中计算设备500可包括图形渲染管理器524并且可以省去本地客户端523和图形渲染中间件122的实施例,本地网络包括可充当能够由图形渲染管理器524选择的中间计算设备的一个或多个其他计算设备,并且其中不期望使计算设备500还充当本地网络中的可选的中间计算设备。例如,计算设备500可以具有比可充当中间计算设备的本地网络中的一个或多个其他计算设备少的图形处理性能,并且因此不期望允许计算设备500充当本地网络中的可选的中间计算设备。
例如,当计算设备500被配置为用于本地网络的图形渲染管理器设备时,可以部署如图5所示的其中计算设备500可包括图形渲染中间件122、本地客户端523和图形渲染管理器524的实施例,并且其中,期望允许计算设备500还充当本地网络中的可选的中间计算设备。例如,在计算设备500处的图形渲染管理器524可以收集包括计算设备500的图形处理性能以及可选地本地网络中的一个或多个其他计算设备的图形处理性能的图形处理性能信息。计算设备500和/或本地网络中的其他计算设备的图形处理性能可由本地网络中的各个计算设备处的本地客户端报告给图形渲染管理器524。图形渲染管理器524可以选择计算设备500,或者布置为充当中间计算设备的本地网络中的任何其他计算设备,以提供用于本地网络中的客户端的中间图形渲染。
在一些实施例中,本地网络中的多个计算设备可各自包括图形渲染中间件、本地客户端和图形渲染管理器,诸如图5所示的计算设备500。多个计算设备可以选择本地网络中的最佳设备来充当图形渲染管理器设备。选择的图形渲染管理器设备,例如计算设备500,可以激活其图形渲染管理器524在管理器模式下操作,以执行本文所描述的图形渲染管理功能。本地网络中的其他未被选择的设备可以在本地客户端模式下操作它们的本地客户端和图形渲染中间件,除非且直至随后被选为充当本地网络的图形渲染管理器设备。
例如,当计算设备500被配置为在本地网络中由本地网络中的另一设备中的图形渲染管理器管理的中间计算设备时,可以部署其中计算设备500可包括本地客户端523和图形渲染中间件122且可以省去图形渲染管理器524的实施例。例如,计算设备500可以具有比本地网络中的一个或多个其他计算设备更多的图形处理性能,并且因此计算设备500可以是作为中间计算设备的良好选择。然而,计算设备500可能比本地网络中的其他设备更频繁地关闭,并且因此不期望作为托管图形渲染管理器的设备。
计算设备500还可以包括利于基本配置501与一个或多个数据存储设备550之间经由存储接口总线541的通信的总线/接口控制器540。数据存储设备440可以是可移除存储设备551、非可移除存储设备552、或其组合。可移除存储设备和非可移除存储设备的示例包括磁盘设备,诸如软盘驱动器和HDD、光盘驱动器、诸如CD驱动器或DVD驱动器、SSD以及磁带驱动器。
计算设备500还可以包括利于从各接口设备经由总线/接口控制器540到基本配置501的通信的接口总线542。示例的输出设备560包括:GPU561,在一些实施例中该GPU可以实现图1中的GPU 123,以及音频处理单元562,其可以被配置为经由一个或多个A/V端口563与诸如显示器或扬声器的各外部设备通信。示例的外围接口570可包括串行接口控制器571或并行接口控制器572,它们可被配置为通过有线或无线连接与诸如输入设备或其他外围设备的外部设备经由一个或多个I/O端口573通信。示例的通信设备580包括网络控制器581,该网络控制器可布置成利于经由一个或多个通信端口582通过网络通信与一个或多个其他计算设备590通信,诸如图1中的服务器计算设备100和客户端设备130。
计算设备500可实现为CDN、MAN或包括可以比运行实时图形应用的服务器更靠近客户端设备的服务器的任何其他网络中的服务器计算设备,诸如服务器计算设备100。计算设备500还可以实现为可通过例如实时图形应用的操作者所操作的中间计算设备的分布式网络中的服务器。
图6是依照本公开的至少一些实施例布置的通过中间计算设备来渲染图形的示例方法的流程图。示例流程图可包括如框601-608所示的一个或多个操作/模块,其代表了可以通过图形渲染中间件122在方法中执行的操作、计算设备500中的功能模块和/或可记录在计算机可读介质650上的指令。
在图6中,框601-608图示为包括顺序地执行的框,例如,首先是框601,最后是框608。然而将理解的是,这些框可重新布置为方便适应特定的实施例,并且在一些实施例中,这些框或其部分可以同时执行。还将理解的是,在一些示例中,各个框可被去除,被分为附加的框,和/或与其他框组合。
图6示出了通过中间计算设备500渲染图形的示例的方法。在图6中,“接收/存储模型”框601先于渲染图形且输送给客户端设备的会话。会话包括“接收会话信息”框602,之后是包括“接收合成流”框603、“提取/存储模型”框604、“从模型库接收模型”框605、“对模型和渲染信息排序”框606、“提供排序的模型/渲染信息给GPU”框607和“将渲染后的图形流输送给客户端设备”框608的循环。包括框603-608的循环无需必然一次执行一个框。例如,在一些实施例中,框603-608可响应于在框604处接收到的基本上连续的合成流而各自基本连续地操作。包括框603-608的循环可以在客户端设备与实时图形应用之间的会话过程中操作,也即,只要实时图形应用将用于客户端设备的合成流输送给中间计算设备500。
在“接收/存储模型”框601中,计算设备500可以接收一个或多个模型并将一个或多个模型存储在模型库中。框601可以包括维护用于存储模型的查找表,该查找表包括模型ID和到模型库中标识的模型被存储的存储器位置的指针。框601可以包括:将模型存储在任何期望的位置,例如存储在设备500中的本地存储器中或者在与设备500相同的本地网络内的设备中的本地存储器中。在一些实施例中,框601可以包括:跨多个存储器位置映射和/或分布模型库。模型可通过经由网络输送而被接收或者通过任何其他方法,诸如通过从DVD或其他计算机可读介质复制。一些实施例可以省去框601,并且反而依赖于框604来接收和存储模型。一些实施例可使用框601和604的组合来接收并存储模型。框601之后可以是框602。
在“接收会话信息”框602中,计算设备500可以经由网络接收来自服务器计算设备的会话信息,该会话信息标识客户端设备。会话信息可任选地标识多个客户端设备,在该情况下,从合成流渲染的图形可任选地输送给多个客户端设备。在一些实施例中,计算设备500可存储接收到的会话信息用于将渲染后的图形流输送给标识的客户端设备。框602之后可以是框603。
在“接收合成流”框503中,计算设备500可经由网络接收由服务器计算设备提供的合成流。该合成流可至少包括模型ID和模型渲染信息。在一些实施例中,合成流可包括基本上连续的模型ID和模型渲染信息的流。模型ID可以标识先前由计算设备500存储在模型库中的模型。模型渲染信息可包括模型位置信息、模型方向信息、视点信息、纹理信息、光源信息和/或任何其他模型渲染信息。在一些实施例中,合成流可偶尔包含不在模型库中的一个或多个模型,这些模型可在框604中被提取且存储在模型库中。框603之后可以是框604。
在“提取/存储模型”框604中,计算设备500可以从在框603处接收到的合成流中提取模型。例如,当全模型包含在接收到的合成流中时,除了通常包含在合成流中的模型ID和渲染信息之外,框604可以提取全模型以便结合用于实时图形应用的合成流和/或后续图形渲染的后续部分进行存储和后期使用。框604可以将提取的模型存储在模型库中。在一些实施例中,框604可以任选地还将提取的模型直接提供给框605,随即用于图形渲染。框604之后可以是框605。
在“从模型库检索模型”框605中,计算设备500可以从模型库检索在接收的合成流中所标识的模型。计算设备500可以例如读取接收到的合成流信息以标识其中的模型ID。计算设备500可以查找查找表中的接收到的合成流中所引用的模型ID以确定模型库中的标识的模型的存储器位置。计算设备500可将标识的模型从它们在模型库中的存储器位置复制到另一存储器位置,例如复制到CPU高速缓存、图形卡存储器、GPU高速缓存、SSD存储设备、磁盘存储、或其他自其发送标识的模型到GPU用于渲染的存储器。框605之后可以是框606。
在“对模型和渲染信息排序”框606中,计算设备500可以通过来自合成流的渲染信息对在框605检索的标识的模型进行排序。接收到的合成流中的渲染信息可包括用于一个或多个不同的模型的渲染信息,并且渲染信息可包括规定在顺序视频帧中实施渲染操作的排序信息。框606可以通过如下来对模型排序:当在GPU中需要模型时通过按适合的顺序以及在适当的时候将模型发送到GPU,以及通过按适合的顺序将渲染信息发送到GPU,使得根据合成流中规定的顺序来渲染顺序视频帧。框606之后可以是框607。
在“将排序后的模型/渲染信息提供给GPU”框607中,计算设备500可以将在框606排序的来自模型库的标识的模型以及来自接收到的合成流的模型渲染信息提供给GPU以进行渲染,从而使得所述GPU根据接收到的合成流来渲染图形。
GPU可以是本地GPU,例如在与计算设备500的其他组件相同的设备壳体中,或者GPU可以以其他方式与计算设备500可操作地耦合。例如,在一些实施例中,多个计算设备可以共享包括GPU的相同的高性能图形卡。此外,在一些实施例中,位于计算设备500中和/或与计算设备500相同的LAN中的其他计算设备中的图形渲染中间件122的多个示例可共享GPU资源。例如,诸如图6所示的方法可以利用相同的GPU或者一个或多个共享GPU以基本同时的方式多次执行,以便根据多个不同的合成流将渲染后的图形同时提供给多个客户端。
在一些实施例中,框607可以包括:通过GPU渲染图形以便在框608中经由网络输送给客户端设备。渲染后的图形可以包括根据合成流中的模型渲染信息而渲染的来自模型库的标识的模型。例如,标识的模型可根据模型位置信息来定位,根据模型方向信息来定向,根据视点信息来观看,根据光源信息来照明,根据纹理信息来加纹理,和/或根据合成流中的模型渲染信息来以其他方式渲染。框607之后可以是框608。
在“将渲染后的图形流输送到客户端设备”框608中,计算设备500可经由网络将由GPU产生的渲染图形流输出输送给客户端设备。渲染图形流输出可包括根据如按照框607生成的合成流中的模型位置信息而定位和/或以其他方式渲染的来自模型库的标识模型。在一些实施例中,计算设备500可以将音频、触觉或其他输出信息连同渲染后的图形流一起输送以便在客户端设备处连同渲染后的图形流一起进行回放。例如,计算设备500可以将连同合成流一起接收到的音频或触觉信息合并到渲染图形流数据中以便输送给客户端设备。在一些实施例中,在LAN中与计算设备500耦合的另一设备可包括框608—例如,渲染图形流可从GPU转送到专门负责将图形流送到客户端设备的流服务器。在一些实施例中,框608之后可以返回框603,进行包括框603-608的循环的连续操作。在一些实施例中,框608以及框603-607可以基本上连续地操作以将来自GPU的基本连续渲染图形流输出输送给客户端设备。
图7是示出依照本公开的至少一些实施例布置的示例的方法、示例的合成流以及示例的渲染图形流的图。图7包括模型701、模型702和模型703,合成流710和渲染图形流720,渲染图形流720包括帧1和帧2。
模型701、702和703可以输送到中间计算设备且存储在模型库中,如本文所描述。合成流710可以接收到中间计算设备中且连同模型701、702和703一起使用以生成渲染图形流720而输送给客户端设备。合成流710包括包含帧1和帧2的帧序列,以及对于每个帧简化的渲染信息。例如,帧1的渲染信息包括用于模型701和703的模型ID。对于模型701规定位置X1,Y1以及方向O1,并且对于模型703规定位置X2,Y2以及方向O2。帧2的渲染信息包括用于模型701、702和703的模型ID。对于模型701,规定位置X3,Y3以及方向O3,并且对于模型703,规定位置X4,Y4以及方向O4,并且对于模型702,规定位置X5,Y5以及方向O5。在该示例中,位置信息可被理解为包括用于模型701、702、703的“环境”位置,并且进一步的位置信息可以规定模型701、702、703的“内部”位置,这是能理解的。合成流710可包括进一步的渲染信息,例如包括用于模型701、702、703的不同渲染指令流的基本上连续的渲染信息流。
渲染图形流720可生成于中间计算设备处,且输送给客户端设备,如本文所描述的。渲染图形流720可以包括渲染帧,诸如渲染帧1和渲染帧2,它们可利用合成流710中的模型701、702和703和渲染信息来渲染。渲染图形流720可包括根据可包含在合成流710中的进一步的渲染信息来渲染的另外的渲染帧。例如,渲染帧1包括处于示例位置X1,Y1和方向O1的模型701,以及处于示例的位置X2,Y2和方向的模型703。渲染的帧2包括处于示例位置X3,Y3以及方向O3的模型701,处于示例位置X4,Y4以及方向O4的模型703,以及处于示例的位置X5,Y5以及方向O5的模型702。
图8是示出依照本公开的至少一些实施例布置的被配置为管理中间图形渲染的示例的本地网络的图。图8包括本地网络800、服务器计算设备100以及CDN服务器860。本地网络800尤其包括设备801,设备801包括图形渲染管理器524A。图形渲染管理器524A可被配置为选择本地网络800中的计算设备,诸如设备801、设备802或设备803,以充当为诸如客户端设备831或客户端设备832的客户端进行中间图形渲染的中间计算设备。图形渲染管理器524A可以与服务器计算设备100处的实时图形应用101交互以将合成流154定向到选择的设备,使选择的设备能够渲染图形以便输送给客户端。
在用户在客户端设备831处玩视频游戏的示例实施例中,客户端设备831处的玩家835A可以被配置为尤其通过将会话信息851发送到实时图形应用101来开始与实时图形应用101的通信会话。会话信息851可包括标识图形渲染管理器524A的管理器ID 854,以及建立通信会话的任何其他信息,诸如客户端设备831的网络地址,用户、玩家835A和/或客户端设备831的身份和/或信用信息。
实时图形应用101可被配置为确定用于与客户端设备831进行通信会话的适合的中间计算设备。例如,实时图形应用101可以将会话信息851提供给中间选择模块323。中间选择模块323可适于选择适合的中间计算设备用于与客户端设备831的通信会话,以及将选择的中间计算设备向实时图形应用101标识为选择的中间件854。中间选择模块323可尤其包括系统控制器324,该系统控制器适于选择本地网络800中的适合的中间计算设备,用于与客户端设备831的通信会话。系统控制器324可被配置为与图形渲染管理器524A交互以判定本地网络800是否包括任何可用的中间计算设备。中间选择模块323还可以被配置为判定本地网络800之外的任何计算设备如CDN服务器860是否可用于充当通信会话的中间计算设备。
为判定本地网络800是否包括任何可用的中间计算设备,系统控制器324可被配置为将请求852发送到由接收到的管理器ID 854标识的图形渲染管理器,即,发送到图形渲染管理器524A。在一些实施例中,系统控制器324可被配置为利用查找操作而不是来自会话信息851中所包含的管理器ID来将图形渲染管理器524A标识为请求852的目的地。例如,系统控制器324可查找由实时图形应用101所维护的表或其他数据结构中的对应于客户端设备831的图形渲染管理器。请求852可以包括为客户端设备831开始本地网络800中的中间渲染图形的请求。
响应于请求852,图形渲染管理器524A可被配置为基于收集到的图形处理性能信息来从本地网络800中的计算设备801、802、803中选择计算设备。在本文阐述的示例中,图形渲染管理器524A可以例如选择设备802。选择的设备802可被选择以充当为客户端设备831进行中间图形渲染的中间计算设备。在一些实施例中,收集到的图形处理性能信息可存储在例如图形处理性能表820中。图形渲染管理器524A可以至少部分地通过将中间选择规则应用于图形处理性能表820而基于收集到的图形处理性能信息来选择计算设备。
图形渲染管理器524A可以将对请求852的响应853发送到实时图形应用101。响应853可以指示本地网络800中的中间图形渲染性能和/或向实时图形应用101标识选择的计算设备802。例如,在一些实施例中,响应853可以确认,本地网络800当前具有中间图形渲染性能,并且响应853可以包括用于选择的计算设备802的标识符,诸如网络地址后其他标识符。
在一些实施例中,响应853可以包括“是”或“否”指示,而不必向实时图形应用101标识选择的计算设备802。“是”指示可以例如表明,本地网络800包括可用于充当用于客户端设备831的中间计算设备的至少一些设备。“否”指示可以例如表明,本地网络800当前不包括可用于充当用于客户端设备831的中间计算设备的设备。
在一些实施例中,响应853可以包括例如来自图形处理表820的收集的图形处理性能信息。在响应853包括收集的图形处理性能信息的实施例中,实时图形应用101可被配置为参与选择本地网络800中的中间计算设备,如本文所描述的。
在一些实施例中,通过配置和发送响应853,图形渲染管理器524A可以有效地将合成流154定向到选择的计算设备802以使得选择的计算设备802能够渲染图形以便输送给客户端设备831。例如,当响应853标识选择的计算设备802时,响应853可以使得实时图形应用101将合成流154定向到选择的计算设备802。当响应853不向服务器计算设备100标识选择的计算设备802,而是响应853反而包括例如本地网络800包括可用于充当客户端设备831的中间计算设备的至少一个设备,响应853可以使得实时图形应用101将合成流154定向到图形渲染管理器524A,并且图形渲染管理器524A可被配置为接收合成流154且将合成流154转送到选择的计算设备802。
在响应853包括收集的图形处理性能信息且实时图形应用101参与选择中间计算设备的实施例中,图形渲染管理器524A可以选择设备801、802或803中的哪一个包含在提供给实时图形应用101的收集的图形处理性能信息中。响应853可因此有效地将合成流154定向到从被选择以用于在提供给实时图形应用101的信息内标识的设备中选择的计算设备。
实时图形应用101可被配置为接收响应853且将响应853提供给系统控制器324用于处理。当响应853指示本地网络800中的中间图形渲染性能时,系统控制器324可被配置为将合成流154定向到本地网络800。例如,当响应853标识选择的计算设备802时,系统控制器324可被配置为将合成流154定向到选择的计算设备802。当响应853标识“是”指示,而没有标识选择的计算设备时,系统控制器324可以被配置为将合成流154定向到图形渲染管理器524A以适当地转送给本地选择的设备。当响应853包括多个选择设备的图形处理性能时,系统控制器324可被配置为从多个选择的设备中选择设备,例如选择的设备802,并且将合成流154定向到选择的计算设备802。
为将合成流154定向到本地网络800,系统控制器324可例如向中间选择模块323标识本地网络800内的选择的计算设备,例如设备801或设备802,作为可用的本地网络中间计算设备。中间选择模块323转而可以向实时图形应用101标识本地网络800内的选择的计算设备作为选择的中间件854。在一些情况下,中间选择模块323反而可以选择任何其他可用的中间计算设备,诸如CDN服务器860,作为选择的中间件854,并且该选择可任选地做出,而无论在中间计算设备在本地网络800内的可用性如何,这将被理解。
实时图形应用101可被配置为将合成流154定向到选择的中间件854。例如,当设备802被标识为选择的中间件854时,实时图形应用101可以将会话信息153发送到选择的计算设备802,实时图形应用101可以开始从客户端设备831接收应用控制指令152,并且实时图形应用101可以将合成流154发送到选择的计算设备802,用于实时图形渲染且输送给客户端设备831,如本文参考例如图1所描述的。
在本地网络800中不存在可用于充当用于客户端设备831的中间计算设备的计算设备的情形下,响应853可以表明本地网络800中没有中间图形渲染性能。系统控制器324可以被配置为通知中间选择模块323,在本地网络800中没有适合的中间计算设备可用。中间选择模块323可选择本地网络800之外的中间计算设备,诸如CDN服务器860。在中间计算设备在本地网络800内以及本地网络800外均不可用的情形下,中间选择模块323可被配置为将该不可用性通知给实时图形应用101。实时图形应用101可以在服务器计算设备100中(或者在与服务器计算设备100相同的数据中心内)本地地渲染图形,并且服务器计算设备100可将渲染后的图形流经由“长的”网络连接161输送给客户端设备831。
在一些实施例中,在实时图形应用101处实现的偏好顺序可包括:首先,在本地网络800中使用中间计算设备;接着,使用本地网络800之外的中间计算设备;以及最后,在服务器计算设备100进行本地图形渲染。其他实施例可应用不同的偏好顺序,这是能理解的。在一些实施例中,用于中间图形渲染的偏好顺序还可以符合可用的中间计算设备的图形处理性能、与可用的各个中间计算设备的使用相关联的成本、和/或可用的中间计算设备与客户端设备831之间的“短的”网络连接中的每一个的网络长度。
选择的计算设备802可被配置为接收合成流154,以及使用合成流154和模型库121中的模型151来生成渲染后的图形流158以及将渲染后的图形流158输送给客户端设备831,如本文所描述的。选择的计算设备802可以任选地在将渲染后的图形流158发送到客户端设备831之前将渲染后的图形流158压缩成压缩视频格式,诸如h.264,h.265,或者任何其他压缩视频格式,从而减少本地网络800内的通信带宽的使用。玩家835A可被配置为从选择的计算设备802接收渲染后的图形流158,以任选地解压和显示渲染后的图形流158,以及继续将应用控制指令152发送到实时图形应用101,如本文参考图12所描述的。
在一些实施例中,图形渲染管理器524A和/或实时图形应用101可被配置为选择备用中间计算设备。备用中间计算设备可在初始选择的中间计算设备故障(例如,选择的设备802故障)的情形下未客户端设备831渲染图形。当使用本地网络中间计算设备时,备用选择尤其适合,因为本地网络中的设备通常比数据中心的设备更不可靠。本地网络设备可能偶尔关闭,被携带到本地网络的范围之外,和/或用于除了中间图形渲染之外的目的,从而减弱它们用于中间图形渲染的容量。图形渲染管理器524A可被配置为基于收集的图形处理性能信息来从计算设备801、802和803中选择备用计算设备。例如,当选择的计算设备802不能用于中间图形渲染时,图形渲染管理器524A可以选择设备801作为备用计算设备,充当为客户端设备831进行中间图形渲染的备用中间计算设备。
在一些实施例中,图形渲染管理器524A可被配置为例如在响应853中向实时图形应用101标识备用计算设备801。实时图形应用101可被配置为接收并存储备用计算设备801的标识。实时图形应用101可以将备用计算设备801的标识提供给系统控制器324。系统控制器324和/或中间选择模块323可例如将偏好处理顺序应用于可用的备用计算设备,并且中间选择模块323可以配置为保持用于实时图形应用101与客户端设备831之间的通信会话的可用的备用计算设备的优先表。
在一些实施例中,玩家835A可以被配置为检测渲染后的图形流158的故障或延迟,以及将检测到的故障或延迟通知实时图形应用101。实时图形应用101可以考虑到故障或延迟而将选择的设备802视为不能用来充当中间计算设备。实时图形应用101可被配置为将合成流154定向到备用计算设备801以使备用计算设备801能够渲染图形以便输送给客户端设备801。实时图形应用101可以例如响应于固定或延迟通知而将会话信息153和合成流154定向到备用计算设备801。
在一些实施例中,玩家835A和/或初始选择的中间计算设备802可以被配置为检测渲染后的图形流158的故障或延迟,以及将检测到的故障或延迟通知图形渲染管理器524A。此外,在一些实施例中,选择的中间计算设备802可被配置为检测可能导致渲染后的图形流158的故障或延迟的设备802处的状况,诸如设备802处的使用状态的变化和/或设备802从壁式电源断开连接。设备802可被配置为将潜在的故障或延迟通知图形渲染管理器524A。图形渲染管理器524A可被配置为响应于检测到的和/或潜在的故障或延迟而将中间图形渲染切换到选择的备用设备,例如,将渲染操作切换到设备801。图形渲染管理器524A可以任选地还将切换通知给实时图形应用101。
在图8中,本地网络800包括路由器840、设备801、设备802、设备803、客户端设备831、以及客户端设备832。路由器840是用于建立本地网络800的网络装备的示例,并且在一些实施例中,附加的或不同的网络装备可用于建立本地网络800。设备801、802和803以及客户端设备831和832可以包括任何类型的计算设备。在一些实施例中,本地网络800可以包括附加的或更少的设备,诸如801、802和803,以及附加的或更少的客户端设备831和832。
设备801包括图形处理性能表820以及模型库121,并且模型库121包括模型151。设备801进一步包括图形渲染管理器524A、本地客户端523A、图形渲染中间件122A和图形处理硬件810A。设备802还包括图形渲染管理器524B、本地客户端523B、图形渲染中间件122B以及图形处理硬件810B。设备802还包括图形渲染管理器524C、本地客户端523C、图形渲染中间件122C以及图形处理硬件810C。客户端设备831包括玩家835A,并且客户端设备832包括玩家835B。
在一些实施例中,设备801、802和803可以包括具有相对更强的图形处理性能的设备,而客户端设备831和832可以包括具有相对更弱的图形处理性能的设备。在该上下文中术语“更强”和“更弱”是相对于本地网络800中的其他设备而言的,从而设备801、802和803可具有比客户端设备831和832更强的图形处理性能。设备801、802和803可以例如包括具有比客户端设备831和832更强的GPU处理器和较大的存储器的膝上型和台式计算设备。客户端设备831和832可以例如包括智能手机和平板式计算设备。在一些实施例中,设备801、802和803可以装备有例如包括图形渲染管理器、本地客户端和图形渲染中间件的应用,如图8所示。客户端设备831和832可装备有例如包括玩家的应用,也如图8所示。将理解的是,其他实施例可包括例如为全部设备801、802、803、831和832装备包含图形渲染管理器、本地客户端、图形渲染中间件和玩家的应用。这些其他实施例可通过允许全部设备801、802、803、831和832装备有相同的应用来利于设置。
在一些实施例中,设备801、802和803中的任一个可被装备以充当中间计算设备,该中间计算设备被配置为对于本地网络800中的其他设备进行中间图形渲染。例如,设备801、802和803可以包括如图1所示的中间计算设备120的实例。设备801、802和803可分别包括图形渲染中间件122A、122B和122C,其中每个均包括如图1和图2所示的图形渲染中间件122的实例。设备801、802和803可以分别包括图形处理硬件810A、810B和810C,诸如GPU或者可充当如图1所示的GPU 123的其他处理器,和/或其他图形处理硬件。模型库121可位于本地网络800内的任何适合的设备内。在一些实施例中,模型库121可以分布在本地网络800中的设备801、802和803或者其他存储器位置中。在一些实施例中,模型库121可以镜像在设备801、802和803中的两个以上处,使得设备801、802和803中的两个以上具有模型库121的本地副本。
本地网络800中的设备801、802和803中的一个或多个可被装备以充当图形渲染管理器设备。在一些实施例中,本地网络800中的一个设备可装备有图形渲染管理器,例如设备801可装备有图形渲染管理器524A,而其他设备802、803无需包括图形渲染管理器。装备有图形渲染管理器524A的一个设备801可以执行本文所描述的各种图形渲染管理器方法。
在一些实施例中,多个设备801、802和803可以分别包括图形渲染管理器,诸如图形渲染管理器524A、524B和524C,如图8所示。图形渲染管理器524A、524B和524C可以被配置为选择用于本地网络800的图形渲染管理器。选择的图形渲染管理器,例如图形渲染管理器524A,可以执行本文所描述的各种图形渲染管理器方法。
任何管理器选择标准可用于选择用于本地网络800的图形渲染管理器。示例管理器选择标准可包括设备可用时间、设备处理能力、设备存储器大小和/或设备使用历史,其中任一个均可单独地或者于其他管理器选择标准相结合用作管理器选择标准。
在一些实施例中,图形渲染管理器524A、524B和524C可被配置为分别在设备801、802和803中查询管理器选择标准信息。图形渲染管理器524A、524B和524C可被配置为彼此交换管理器选择标准,并且选择设备中的最佳适合充当用于本地网络800的图形渲染管理器设备的图形渲染管理器。例如,当管理器选择标准包括设备可用时间时,图形渲染管理器524A、524B和524C可以选择设备中的具有最长可用时间间隔的图形渲染管理器,例如基于历史设备状态模式而最可能保持接通的设备。
非选择的图形渲染管理器,例如,图形渲染管理器524B和524C,可以保持不活跃,除非选择的图形渲染管理器524A无效,例如通过关闭设备801或者将设备801与本地网络800断开连接。在选择的图形渲染管理器524A无效的情形下,图形渲染管理器524B和524C可被配置为重新选择本地网络800的图形渲染管理器。例如,在一些实施例中,图形渲染管理器524A、524B和524C可被配置为彼此周期性地通信,以基于图形渲染管理器周期性通信的故障来检测该图形渲染管理器已至少临时被无效,以及在检测到选择的图形渲染管理器524A故障的情形下重新选择用于本地网络800的图形渲染管理器。
一旦被选择为本地网络800的图形渲染管理器,图形渲染管理器524A可以执行本文所描述的用于管理本地网络800中的中间图形渲染的各种方法。示例方法通常可包括为中间选择准备图形渲染管理器524A的管理器设置操作,以及对于本地网络800中的如831或832的客户端设备支持本地网络800中的实时图形渲染的中间选择操作。用于管理本地网络800中的中间图形渲染的示例方法在下文结合图9进一步详述。
图8示出了“长的”网络连接161作为服务器计算设备100与本地网络800之间的连接,而“短”的网络连接162被图示为本地网络800内的设备之间的连接,例如设备802与客户端设备831之间。将理解,本地网络800中的设备之间的任意连接比远程服务器计算设备100与本地网络800之间的连接短,并且因此,服务器计算设备100与本地网络800之间的连接正确地理解为“长的”网络连接161,而本地网络800中的设备之间的连接正确地理解为“短的”网络连接162。
图9是依照本公开的至少一些实施例布置的用于管理本地网络中的中间图形渲染的示例方法的流程图。示例流程图可包括如框910-915和920-924所图示的一个或多个操作/模块,它们代表了可通过图形渲染管理器524A执行的操作、计算设备801中的功能模块、和/或可记录在计算机可读介质950上的指令。
在图9中,框910-915和920-924图示为包括顺序地执行的框,例如在管理器设置框910中,先是框911,最后是框915,在中间选择框920中,首先是框921,最后是框924。然而,将理解的是,这些框可重新布置为方便适应特定的实施例,并且在一些实施例中,这些框或其部分可以同时执行。还将理解的是,在一些示例中,各个框可被去除,被分为附加的框,和/或与其他框组合。
在图9中,图形渲染管理器524A的操作被划分成“管理器设置”框910处的管理器设置操作以及“中间选择”框920处的中间选择操作。图形渲染管理器524A和/或计算设备801处的用户配置图形渲染管理器524A可以在框920的中间选择操作之前执行框910的管理器设置操作任意次。例如,在一些实施例中,图形渲染管理器524A可以执行管理器设置框910一次,并且图形渲染管理器524A可以任选地随后偶尔重复一些或全部的管理器设置框910。图形渲染管理器524A可以结合本地网络800处的客户端设备与实时图形应用之间的每个新会话而执行中间选择框920。在一些实施例中,图形渲染管理器524A可以尽可能频繁地重复中间选择框920,而不必重复管理器设置框910。
“管理器设置”框910可尤其包括“管理器选择”框911、“配置本地网络”框912、“模型库管理器”框913、“收集图形处理性能信息”框914以及“确定本地网络中的设备的图形处理性能”框915。在一些实施例中,图形渲染管理器524A可以开始框910作为在计算设备801处安装图形渲染管理器524A的部分或者响应于在计算设备801处安装图形渲染管理器524A而开始框910。在一些实施例中,框910可以至少部分地通过用户按照在本地网络800中的计算设备801、802和803中安装图形渲染管理器524A、524B和524C,本地客户端523A、523B和523C,和/或图形渲染中间件122A、122B和122C而执行。
在“管理器选择”框911中,图形渲染管理器524A和/或用户可以选择用于包括计算设备801的本地网络的图形渲染管理器。例如,多个安装的图形渲染管理器可协作以交换管理器选择标准且选择用于本地网络800的例如图形渲染管理器524A,如上文参考图8所描述的。一般地,选择的图形渲染管理器优选地是安装在连续地或者基本上连续地接通的设备处的图形渲染管理器,连接到本地网络800的图形渲染管理器,连接到因特网的图形渲染管理器,并且具有足以与设备的其他共同用途同时地进行本文所描述的图形渲染管理器操作的处理性能的图形渲染管理器。
在一些实施例中,用户可以被指示选择本地网络800内的安装有图形渲染管理器524A的适合的设备。框911可以包括选择本地网络800内的适合的设备以及将图形渲染管理器524A安装在选择的设备处。
在一些实施例中,框911可以包括通过安装的图形渲染管理器524A而从本地网络800中的多个设备检索或请求管理器选择标准。图形渲染管理器524A可以基于检索的或请求的管理器选择标准来标识托管图形渲染管理器524A的适合的设备,如本文所描述的。图形渲染管理器524A随后可以执行或通过其他方式利于图形渲染管理器524A传递到标识的适合的设备,以及图形渲染管理器524A在标识的适合设备处的安装。框911之后可以是框912。
在“配置本地网络”框912中,图形渲染管理器524A和/或用户可以配置本地网络800中的一个或多个设备以充当图形渲染中间件,并且图形渲染管理器524A和/或用户可以配置本地网络800中的一个或多个设备作为适于利用图形渲染中间件的客户端设备。例如,在一些实施例中,用户可被指示选择本地网络800内要安装诸如本地客户端523A,523B和523C的本地客户端以及要安装诸如图形渲染中间件122A,122B和122C的图形渲染中间件的适合的设备。框912可以包括:选择本地网络800内的适合的设备,例如设备801、802和803,以及将本地客户端和图形渲染中间件安装在选择的设备处。一般地,适合于本地客户端和图形渲染中间件的设备可以那些具有足够强大以充当实时图形渲染中间件的图形处理硬件的设备。图形处理能力的推荐量可取决于实时图形应用所做出的渲染需求。
此外,用户可被指示选择本地网络800内的要安装适于利用图形渲染中间件的玩家的适合的设备,例如用户可以将玩家835A和835B安装在客户端设备831、832处。一般地,适合于安装玩家的客户端设备可包括能够连接到包括图形渲染中间件的本地网络、用于访问实时图形应用以及不具有足以渲染客户端设备处的图形的本地图形处理能力的设备。玩家可被配置为请求或检索管理器ID 854,用于向实时图形渲染应用101标识图形渲染管理器524A,如本文所描述。
在一些实施例中,框912可以包括通过安装的图形渲染管理器524A来检索或请求本地网络800中的设备的设备属性。然后,图形渲染管理器524A可以选择用于安装本地客户端和图形渲染中间件的设备,并且图形渲染管理器524A可以将本地客户端和图形渲染中间件安装在选择设备处或利于将本地客户端和图形渲染中间件安装在选择设备处。图形渲染管理器524A可类似地将玩家安装在可能的客户端设备处或者利于将玩家安装在可能的潜在设备处。框912之后可以是框913。
在“模型库管理器”框913中,图形渲染管理器524A可以将模型库121配置在本地网络800内。例如,图形渲染管理器524A可以确定模型库121在本地网络800内的适合的位置。适合的位置通常可以包括能够由本地网络800中的全部图形渲染中间件访问、具有足以存储模型151的容量且具有足以在实时图形渲染期间内支持将模型151提供给图形渲染中间件的速度的位置。图形渲染管理器524A可任选地与其它设备802、803通信以将模型库121镜像到多个设备处,或者将模型库121分布在多个设备之间。图形渲染管理器524A可以与实时图形应用101通信以开始网络模型输送,使得模型151在实时图形渲染需求之前在本地网络800处可用。图形渲染管理器524A还可以将模型库121在本地网络800中的位置通知图形渲染中间件122A、122B和122C,使得图形渲染中间件122A、122B和122C可结合中间图形渲染来利用模型库121。框913之后可以是框914。
在“收集图形处理性能信息”框914中,图形渲染管理器524A可以从本地网络900中被装备以充当图形渲染中间件的每个设备收集图形处理性能信息。框914可以包括与本地客户端523A、523B和523C交互。本地客户端523A、523B和523C可被配置为将图形处理性能信息提供给图形渲染管理器524A。收集的图形处理性能信息可以包括任何可用于选择本地网络800中的图形渲染中间件的信息。图形渲染管理器524A可以将收集的图形处理性能信息存储在例如表或其它数据结构中。图10提供了示例的图形处理性能表。
图10是依照本公开的至少一些实施例布置的包括收集的图形处理性能信息的示例图形处理性能表。图形处理性能表1000包括例如本地网络中的示例设备的行,以及对于每个设备收集的图形处理性能信息的列。示例图形处理性能表1000包括四行和8列,然而,将理解的是,更多或更少的行可用于更多或更少的设备,更多或更少的列可用于包括更多或更少的图形处理性能信息。图10中包括收集的图形处理性能信息是用于不一定为本地网络800的示例本地网络,但是将理解的是,对于本地网络800的设备,可以收集类似的图形处理性能信息。
图形处理性能表1000包括在设备ID列1000中标识为设备1,2,3和4的四个示例的设备。另外,图形处理性能表1000包括设备类型列1002、设备电力状态列1003、设备电源列1004、设备使用状态列1005、计划使用状态列1006、图形处理硬件列1007以及图形处理能力列1008,每列包括用于设备1,2,3和4的收集的图形处理性能信息。
设备类型1002可以包括例如平板设备、智能手机、膝上型计算机、台式计算机或其它设备类型。设备电力状态1003可以包括例如设备是接通还是关闭的指示。设备电源1004可包括例如设备是否连接到壁式电源的指示。设备使用状态1005可包括设备是否在使用中的指示。计划使用状态1006可包括例如基于历史设备使用模式设备是否计划要使用的指示。图形处理硬件1008可以包括例如设备中包含的GPU的制造标识和型号。图形处理能力1008可以包括例如设备的相对图形处理能力的指示。
现在返回图9的框914,在一些实施例中,图形渲染管理器524A可以从本地客户端523A、523B和523C收集图形处理性能信息,例如通过向本地客户端523A、523B和523C发送请求,以及接收并存储响应于这些请求而返回的图形处理性能信息。在一些实施例中,图形渲染管理器524A可以通过接收从本地客户端523A、523B和523C发起的图形处理性能信息更新来收集图形处理性能信息。
本地客户端523A、523B和523C可适于查询设备操作系统和/或设备硬件以收集一些图形处理性能信息,例如设备类型1002、设备电力状态1003、设备电源1004、设备使用状态1005、和/或图形处理硬件1007。在一些实施例中,本地客户端523A、523B和523C可适于确定图形处理性能信息,例如通过在一定时间内跟踪设备使用模式以确定设备使用模式,以及基于设备使用模式来计算计划使用状态1006。
在一些实施例中,本文中对于框914所描述的一些或全部操作可从框910中省去,并且可反而作为中间选择的部分来执行,例如在框922处。框914之后可以是框915。
在“确定本地网络中的设备的图形处理能力”框915中,图形渲染管理器524A可以确定本地网络800中的设备801、802、803的图形处理能力。例如,在一些实施例中,图形渲染管理器524A可请求本地客户端523A、523B和523C进行图形处理能力测试。本地客户端523A、523B和523C可被配置为进行图形处理能力测试且可以使用测试结果来分配从1-10的图形处理能力级别,1是慢/差性能,10是快/高性能。本地客户端523A、523B和523C可被配置为将图形处理能力返回到图形渲染管理器524A以便包含在收集的图形处理性能信息中。
在一些实施例中,图形渲染管理器524A可以基于收集的设备图形处理硬件信息1007来确定本地网络800中的设备801、802、803的图形处理能力。例如,图形渲染管理器524A可以访问图形处理硬件和关联的图形处理能力级别的数据库或列表。图形渲染管理器524A可以利用对于图形处理性能表1000中的每个设备列出的图形处理硬件信息1007来查找图形处理能力级别。图形渲染管理器524A可被配置为将来自列表的图形处理能力级别分配给图形处理性能表1000中的每个设备。图形处理硬件和关联的图形处理能力的列表可包含在连同图形渲染管理器524A安装于计算设备801处的信息中,或者可以保持在例如系统控制器324中作为网络服务或者以其它方式作为能够由图形渲染管理器524A能访问的信息。
在一些实施例中,图形渲染管理器524A可以通过评估图形处理硬件信息1007的是属性而基于收集的设备图形处理硬件信息1007来确定本地网络800中的设备801、802、803的图形处理能力。例如,图形处理硬件信息1007可指示GPU中的处理核的数量、GPU的时钟速度、可用于GPU的存储器的量、GPU的分辨率级别、和/或GPU的纹理填充率。图形渲染管理器524A可以评估这些或其它属性来确定设备801、802、803的图形处理能力。
“中间选择”框920可以尤其包括“接收请求”框921、“收集图形处理性能信息”框922、“选择中间计算设备”框923以及“响应于请求/定向合成流到选择的计算设备”框924。图形渲染管理器524A可以结合诸如客户端设备831的客户端设备与诸如实时图形应用101的实时图形应用之间的每个新的会话而在框920处执行中间选择操作。
在“接收请求”框921中,图形渲染管理器524A可以接收为如本地网络800中的客户端设备831的客户端开始中间图形渲染的请求852。框921之后可以是框922。
在“收集图形处理性能信息”框922中,图形渲染管理器524A可以执行上述结合框914所描述的一些或全部的操作。在一些实施例中,在框922处收集图形处理性能信息可取决于任何在先收集的信息的年龄。例如,如果比预定年龄老,则在框922处刷新设备电力状态1003、设备电源1004、设备使用状态1005和计划使用状态1006。预定年龄可以包括例如一分钟与两个小时之间的年龄。设备类型1002、图形处理硬件1007和图形处理能力1008通常是稳定且不变的,并且因此在一些实施例中无需在框922处刷新。框922之后可以是框923。
在“选择中间计算设备”框923中,图形渲染管理器524A可基于收集的图形处理性能信息来从本地网络800中的计算设备中选出充当为客户端设备831进行中间图形渲染的中间计算设备的计算设备。在一些实施例中,可根据一个或多个中间选择规则来进行中间选择。中间选择规则可应用于收集的图形处理性能信息。任何期望的中间选择规则可应用以确保选择能够充当中间计算设备的计算设备。在一些实施例中,请求852可以包括待由图形渲染管理器524A应用的中间选择规则,并且图形渲染管理器524A可以被配置为应用请求852中所包含的中间选择规则。在一些实施例中,图形渲染管理器524A可具有要应用于所有请求的中间选择规则的缺省集合。
例如,在一些实施例中,图形渲染管理器524A可以应用如下的中间选择规则:规定选择的计算设备具有接通的设备电力状态1003;选择的计算设备具有未在使用中的设备使用状态1005;选择的计算设备具有在计划时间段内不计划使用的计划使用状态1006;选择的计算设备具有表明选择的设备连接到壁式电源的设备电源信息1004;和/或选择的计算设备具有符合或超过阈值图形处理能力的设备图形处理能力1008。中间选择规则可实现为要求和/或实现为设备选择偏好。
规定具有在计划时间段内不计划使用的计划使用状态1006的计算设备的选择的中间选择规则可以多种方式来实现。在基于图10的示例中,计划使用状态1006可以表明当前设备使用状态1005计划继续的计划时间段。因此,设备1在使用中且计划仍使用30分钟,设备2在使用中且计划仍使用3分钟,设备3在使用中且计划仍使用45分钟,设备4未在使用中且计划在120分钟内仍不使用。规定例如在30分钟的计划时间段内不计划使用的中间选择规则可去除全部设备除了设备4作为可用的中间计算设备。替选地,例如,通过在基于偏好的选择方法中应用偏好权重,该规则可以产生设备4相对于其它设备的偏好。将理解的是,存在许多可应用于该中间选择规则的变型例和修改例。
规定符合或超过阈值图形处理能力的计算设备的选择的中间选择规则可通过多种方式来实现。在基于图10的示例中,阈值图形处理能力可以设置在从1-10的任意期望能力。得分在阈值能力或以上的设备可作为中间计算设备来使用,而得分在阈值能力以下的设备可被去除作为可用中间计算设备。因此,例如如果阈值图形处理能力被设定为6,则设备1和2可被去除,而设备3和4可仍作为中间计算设备可用。替选地,通过在基于偏好的选择方法中应用偏好权重,对于设备3和4指示了相对于设备1和2的偏好。将理解的是,存在许多可应用于该中间选择规则的变型例和修改例。
在一些实施例中,当选择的计算设备不能用于中间图形渲染时,图形渲染管理器524A可以在框923处基于收集的图形处理性能信息来从本地网络800中的计算设备中选择用来充当对客户端设备831进行中间图形渲染的备用中间计算设备的备用计算设备。在一些实施例中,用于选择备用计算设备的一组中间选择规则可与用于选择选择的计算设备的一组中间选择规则相同或相似。
在一些实施例中,图形渲染管理器524A可以在框923处基于收集的图形处理性能信息来从本地网络800中的计算设备中选择一个或多个选择的计算设备。图形渲染管理器524A可以将收集到的一个或多个选择计算设备的图形处理性能信息发送到实时图形应用101,允许实时图形应用101确定一个或多个选择的计算设备中的哪一个(如果有)可用作中间计算设备。图形渲染管理器524A可以使用如本文所述的一组中间选择规则来选择标识给实时图形应用101的一个或多个选择的计算设备。框923之后可以是框924。
在“响应于请求/定向合成流到选择计算设备”框924,图形渲染管理器524A可以发送对在框921处接收到的请求的响应。当响应表明在本地网络800处没有图形渲染性能时,实时图形应用101可被配置为在本地网络800之外渲染图形。当响应表明本地网络800处的图形渲染性能时,响应可利于将合成流154定向到在框923处选择的计算设备,以使选择的计算设备能够渲染图形以便输送给客户端设备831。
响应可以例如向实时图形应用101标识选择的计算设备802而使得实时图形应用101可以将合成流154发送到选择的计算设备802,例如,直接发送到选择的计算设备802,或者经由包括图形渲染管理器524A的设备801间接地发送到选择的计算设备802。在一些实施例中,响应可表明本地网络800处的图形渲染性能,而不一定向实时图形应用101标识选择的计算设备802,并且图形渲染管理器524A可以配置计算设备801将合成流154从实时图形应用101转送到选择的计算设备802。在一些实施例中,响应可包括用于一个或多个选择的计算设备,例如用于设备801、802和/或803的图形处理性能信息,允许图形应用101判定一个或多个选择的计算设备中的哪一个(如果有)用作中间计算设备。
图11是依照本公开的至少一些实施例布置的通过系统控制器来确定要在本地网络处进行中间图形渲染的中间计算设备的示例方法的流程图。示例流程图可包括如框1101-1105所图示的一个或多个操作/模块,这代表了可通过系统控制器324执行的操作、计算设备300中的功能模块、和/或可以记录在计算机可读介质1150上的指令。
在图11中,框1101-1105被图示为包括顺序地执行的框,例如,首先是框1101,最后是框1105。然而,将理解的是,这些框可重新布置为方便适应特定的实施例,并且在一些实施例中,这些框或其部分可以同时执行。还将理解的是,在一些示例中,各个框可被去除,被分成附加的框,和/或与其他框组合。
在图11中,系统控制器324可以与中间选择模块323、实时图形应用101、客户端设备831和/或图形渲染管理器524A配合地操作以确定是否能够通过本地网络800内的设备进行中间图形渲染。系统控制器324可以例如适于在实时图形应用101中支持视频游戏和其它实时渲染图形经由本地网络中间计算设备到客户端设备的网络输送。
在“接收会话信息”框1101中,系统控制器324可以接收来自客户端设备831的会话信息851。在一些实施例中,会话信息851可以从客户端设备831发送到实时图形应用101,并且实时图形应用101可以启动系统控制器324且将会话信息851提供给系统控制器324。如本文提到的,在一些实施例中,会话信息851可以包括标识图形渲染管理器524A的管理器ID 854。在一些实施例中,会话信息851可包括其它信息,诸如客户端设备31、玩家835或客户端设备831的用户的标识,并且系统控制器324可使用这些包含的信息来查找标识图形渲染管理器524A的信息。框1101之后可以是框1102。
在“发送开始本地网络中的中间图形渲染的请求”框1102中,系统控制器324可以将请求852发送到图形渲染管理器524A。请求852可以包括为客户端设备831开始本地网络800中的中间图形渲染的请求。请求852可以标识客户端设备831,并且请求852可以任选地包括要应用于选择中间计算设备的中间选择规则。在一些实施例中,可采用附加的步骤,例如,可以在请求本地网络800中的中间图形渲染之前采用确定本地网络800中的图形渲染性能的发现步骤。框1102之后可以是框1103。
在“接收响应”框1103中,系统控制器324可以接收响应853。在一些实施例中,响应853可以包括本地网络800中的选择的计算设备802的标识。选择的计算设备802可以被例如图形渲染管理器524A选择以充当为客户端设备831进行中间图形渲染的中间计算设备。
在一些实施例中,响应853可包括本地网络800中的图形处理性能的指示,而不一定标识选择的计算设备802。当系统控制器324例如基于本地网络800处图形处理性能的指示,选择本地网络800用于中间图形处理时,系统控制器324可以使得实时应用101将合成流154发送到图形渲染管理器524A以便通过图形渲染管理器524A转送到本地网络800内的选择设备。
在一些实施例中,响应853可以指示本地网络800处没有图形处理性能,或者系统控制器324可被判定为不足以支持实时图形渲染需求的本地网络800处的图形处理性能。响应于指示本地网络800中没有图形处理性能,系统控制器324可以使得实时图形应用101在本地网络800之外渲染图形。
在一些实施例中,响应853可以包括附加的信息,诸如本地网络800中备用计算设备801的标识,和/或本地网络800中的一个或多个选择计算设备的收集的图形处理性能信息。系统控制器324可在框1104处接收并应用该附加信息。框1103之后可以是框1104。
在“选择中间计算设备”框1104中,系统控制器324可与中间选择模块323相配合地操作以选择实时图形应用101所使用的适合的中间计算设备。在一些实施例中,系统控制器324可在框1104处选择如图形渲染管理器524A所标识的选择的计算设备802作为中间计算设备。
在一些实施例中,系统控制器324和/或中间选择模块323可以将本地网络800处的图形处理和输送性能与在其它中间计算设备(如CDN服务器860)处的图形处理和输送性能进行比较。框1104可以包括基于比较结果和/或偏好的次序来选择中间计算设备,例如通过根据在系统控制器324处执行的偏好的次序选择满足任何阈值图形处理能力标准和/或任何用于“短的”网络连接162的长度的标准的中间计算设备。
在一些实施例中,系统控制器324可以在框1103处接收本地网络800中的一个或多个选择的计算设备的收集的图形处理性能信息,如本文所描述的。一个或多个选择的计算设备可被预选,例如通过图形渲染管理器524A。框1104可包括:基于收集的图形处理性能信息来选择充当中间计算设备的计算设备。框1104可包括例如基于设备图形处理硬件信息1007来确定本地网络800中的一个或多个选择计算设备的图形处理能力。选择计算设备充当中间计算设备可至少部分地基于所确定的图形处理能力。框1104之后可以是框1105。
在“将合成流定向到选择的设备”框1105中,系统控制器324可以将包括模型标识符和模型渲染信息的合成流154定向到选择的计算设备802以使选择的计算设备802能够渲染图形以便输送给客户端设备831。在一些实施例中,系统控制器324可以向实时图形应用101标识选择的计算设备802作为选择中间件854,从而使得实时图形应用101将合成流154定向到选择的计算设备802。在一些实施例中,系统控制器324可以向实时图形应用101标识计算设备801作为选择中间件854,从而使得实时图形应用101将合成流154定向到计算设备801,其中可适于将合成流154转送到选择的计算设备802。
在一些实施例中,系统控制器324可将合成流154定向到本地网络800中的标识的备用计算设备。例如,在响应853中,设备801可以被标识为备用计算设备,以使备用计算设备能够渲染图形以便输送给客户端设备831。当选择的计算设备802不能用于充当中间计算设备时,系统控制器324可将合成流154定向到备用计算设备801。在一些实施例中,系统控制器324可以由客户端设备831和/或图形渲染管理器524A通知,选择的计算设备802不能用或者经过高延迟或其它错误。系统控制器324可以响应于该通知而将合成流154定向到备用计算设备801。
此外,当本地网络800中的选择的计算设备802和/或任何备用计算设备不可用时,系统控制器324可以切换到远程图形渲染模式,该远程图形渲染模式包括通过本地网络800之外的计算设备来进行图形渲染。例如,系统控制器324可以将本地网络800中的中间计算设备的不可用性通知给中间选择模块323。中间选择模块3234可以选择CDN服务器860或者本地网络800之外的另一计算设备,并且中间选择模块323可以更新选择的中间件854以便由实时图形应用101使用。在没有中间计算设备可供实时图形应用101使用的情形下,实时图形应用101可以切换到在包括服务器计算设备100的数据中心处本地地渲染图形。
图12是依照本公开的至少一些实施例布置的通过客户端设备参与包括通过中间计算设备进行图形输送的通信会话的示例方法的流程图。示例流程图可包括如框1201-1204中所图示的一个或多个操作/模块,这代表了可通过玩家835A执行的操作、客户端设备831中的功能模块,和/或可记录在计算机可读介质1250上的指令。
在图12中,框1201-1204被图示为包括顺序地执行的框,例如,首先是框1201,最后是框1204。然而,将理解的是,这些框可重新布置为方便适应特定的实施例,并且在一些实施例中,这些框或其部分可以同时执行。还将理解的是,在一些示例中,各个框可被去除,被分为附加的框,和/或与其他框组合。
在图12中,玩家835A可以与图形渲染管理器524A、实时图形应用101、系统控制器324和/或本地网络800内的选择的中间计算设备配合地操作以开始并进行与实时图形应用101的通信会话。在通信会话中,玩家835A可以从本地网络800内的中间计算设备接收并显示渲染后的图形流,同时将应用控制指令发送到实时图形应用101。
在“接收管理器ID”框1201中,玩家835A可以从图形渲染管理器524A接收管理器ID 854。玩家835A可以存储管理器ID 854以便用于建立与实时图形应用101的通信会话。框1202之后可以是框1202。
在“开始与实时图形应用的会话”框1202中,玩家835A可以开始与实时图形应用101的通信会话,例如通过适当地执行各网络协议来经由因特网连接到实时图形应用101。玩家835A可以将会话信息851发送到实时图形应用101。会话信息851可以任选地标识客户端设备831、客户端设备831处的用户、玩家835A、和/或图形渲染管理器524A。图形渲染管理器524A可通过例如在框1202提供给玩家835A的管理器ID 854来标识。框1202之后可以是框1203。
在“从中间计算设备接收并显示渲染后的图形流”框1203中,玩家835A可以从选择的计算设备802接收渲染后的图形流158。在一些实施例中,选择的计算设备802可向玩家835A标识渲染后的图形流158能够用于玩家835A与实时图形应用101之间的会话的上下文。玩家835A可以在客户端设备831处将渲染后的图形流158解压并显示。框1203之后可以是框1204。
在“将应用控制指令发送到实时图形应用”框1204中,玩家835A可以将应用控制指令152发送到实时图形应用101,如本文所描述的。从框1204到框1203的箭头表明,玩家835A可以继续将应用控制指令152发送到实时图形应用101,并且在与实时图形应用101的通信会话的持续期间内,玩家835A可以继续从选择的计算设备802接收并显示渲染后的图形流158。玩家835A可因此适于同时与两个设备交互。玩家835A接收来自选择的计算设备802的渲染后的图形流158,而同时接收并发送应用控制指令152到服务器计算设备100处的实时图形应用101。
在一些实施例中,玩家835A可以检测渲染图形流158中的延迟或错误,并且玩家835A可以将检测到的延迟或错误通知实时图形应用101,同时继续发送应用控制指令152。框1203可以包括从新选择的计算设备接收并显示渲染后的图形流158,例如在本地网络800之内或之外的备用计算设备,而玩家835A继续将应用控制指令152发送到实时图形应用101。
在系统方案的硬件实现和软件实现之间存在极小的区别;硬件或软件的使用通常是(但并不总是,因为在一些背景下硬件和软件之间的选择会变得重要)表示成本相对于效率权衡的设计选择。存在各种可以实现(例如,硬件、软件和/或固件)本文所描述的过程和/或系统和/或其它技术的媒介物,并且优选的媒介物将随着部署过程和/或系统和/或其它技术的背景而变化。例如,如果实施者判定速度和精度重要,则实施者可以选择主硬件和/或固件媒介物;如果灵活性重要,则实施者可以选择主软件实现;或者,另外可选地,实施者可以选择硬件、软件和/或固件的一些组合。
前面的详细说明已经通过框图、流程图和/或示例阐述了设备和/或过程的各个实施例。在这些框图、流程图和/或示例包含一个或多个功能和/或操作的程度上,本领域技术人员将理解的是可以通过各种各样的硬件、软件、固件或几乎其任意组合来单独地和/或统一地实现这些框图、流程图或示例内的每个功能和/或操作。在一个实施例中,本文所描述的主题的多个部分可经由专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它集成格式来实现。然而,本领域技术人员将理解的是,在本文公开的实施例的一些方案可以整体地或部分地等同地实现为集成电路、在一个或多个计算机上运行的一个或多个计算机程序(例如,实现为在一个或多个计算机系统上运行的一个或多个程序)、在一个或多个处理器上运行的一个或多个程序(例如,实现为在一个或多个微处理器上运行的一个或多个程序)、固件、或几乎任何组合,并且根据本公开的内容,设计电路和/或编写用于软件和/或固件的代码将在本领域技术人员的技能范围内。另外,本领域技术人员将理解的是,本文所描述的主题的机制能够以各种形式分布为程序产品,并且本文所描述的主题的示例性实施例适用,无论实际上用于实施分布的特定类型的信号承载介质如何。信号承载介质的示例包括但不限于以下:可记录型介质,诸如软盘、硬盘驱动器、压缩盘(CD)、数字多功能盘(DVD)、数字带、计算机存储器等;以及传输型介质,诸如数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路,等等)。
本领域技术人员将理解的是,在本领域内常见的是以本文阐述的方式来描述设备和/或过程,此后利用工程实践将这些所描述的设备和/或过程集成到数据处理系统中。也即,本文所描述的设备和/或过程的至少一部分可以通过合理量的实验集成到数据处理系统中。本领域技术人员将理解的是,典型的数据处理系统通常包括如下一种或多种:系统单元壳体、视频显示设备、诸如易失性和非易失性存储器的存储器、诸如微处理器和数字信号处理器的处理器、诸如操作系统的计算实体、驱动器、图形用户接口、和应用程序、诸如触摸板或触摸屏的一个或多个交互设备、和/或包括反馈环和控制电机(例如,用于感测位置和/或速度的反馈;用于移动和/或调整部件和/或量的控制电机)的控制系统。典型的数据处理系统可利用任何适合的商业上提供的部件来实现,诸如在数据计算/通信和/或网络计算/通信系统中常见的部件。本文所描述的主题有时说明了包含在不同的其它部件内的不同部件或与不同的其它部件连接的不同部件。应理解的是,这些所描绘的体系结构仅是示例性的,并且实际上可以实施实现相同功能的许多其它体系结构。在概念意义上,实现相同功能的任何部件的布置有效地“相关联”,使得实现期望功能。因此,在此处组合以实现特定功能的任何两个部件可视为彼此“相关联”,使得实现期望功能,无论体系结构或中间部件如何。同样,任意两个如此相关联的部件还可视为彼此“可操作地连接”、或“可操作地耦合”以实现期望的功能,并且能够如此相关联的任意两个部件还可视为彼此“能够可操作地耦合”以实现期望功能。能够可操作耦合的具体示例包括但不限于能够物理上连接和/或物理交互的部件和/或能够无线交互和/或无线交互的部件和/或逻辑上交互和/或能够逻辑上交互的部件。
关于本文中基本上任何复数和/或单数术语的使用,本领域技术人员能够根据上下文和/或应用适当地从复数变换成单数和/或从单数变换成复数。为了清晰的目的,本文中明确地阐明了各单数/复数的置换。
本领域技术人员将理解,一般地,本文所使用的术语,尤其是随附权利要求(例如,随附权利要求的主体)中所使用的术语,通常意在为“开放式”术语(例如,术语“包括”应当解释为“包括但不限于”,术语“具有”应解释为“至少具有”,术语“包括”应解释为“包括但不限于”,等等)。本领域技术人员还理解,如果意图表达定向性权利要求记述项的具体数量,该意图将明确地记述在权利要求中,并且在不存在这种记述的情况下,不存在这样的意图。例如,为辅助理解,下面的随附权利要求可能包含了定向性短语“至少一个”和“一个或多个”的使用以定向权利要求记述项。然而,这种短语的使用不应解释为暗示不定冠词“一”或“一个”定向权利要求记述项将包含该所定向的权利要求记述项的任何特定权利要求局限于仅包含一个该记述项的实施例,即使当同一权利要求包括了定向性短语“一个或多个”或“至少一个”以及诸如不定冠词“一”或“一个”的(例如,“一”和/或“一个”应当解释为表示“至少一个”或“一个或多个”);这同样适用于对于用于定向权利要求记述项的定冠词的使用。另外,即使明确地记述了被定向的权利要求记述项的具体数量,本领域技术人员将理解到这些记述项应当解释为至少表示所记述的数量(例如,没有其它修饰语的裸记述“两个记述项”表示至少两个记述项或两个以上的记述项)。此外,在使用类似于“A、B和C等中的至少一个”的惯用法的那些实例中,通常这样的构造旨在表达本领域技术人员理解该惯用法的含义(例如,“具有A、B和C中的至少一个的系统”将包括但不限于仅具有A、仅具有B、仅具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B和C等等的系统)。在使用类似于“A、B或C等中的至少一个”的惯用法的那些实例中,通常这样的构造旨在表达本领域技术人员理解该惯用法的含义(例如,“具有A、B或C中的至少一个的系统”将包括但不限于仅具有A、仅具有B、仅具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B和C等等的系统)。本领域技术人员将进一步理解,呈现两个以上可选项的几乎任何分离词和/或短语,无论是在说明书、权利要求或附图中,都应理解为设想包括一项、任一项或两项的可能性。例如,术语“A或B”将理解为包括“A”或“B”或“A和B”的可能性。
虽然利用各种方法、设备和系统在此描述和显示出一些示例技术,本领域技术人员应当理解,可以做出其它各种修改,并且可以替代等同方案,而不偏离权利要求主题。另外,可做出许多修改来使特定情形适应权利要求主题的教导而不偏离本文所描述的中心构思。因此,目的在于权利要求主题不限于公开的特定示例,而是该权利要求主题还可以包括落入随附权利要求的范围内的全部的实现方式及其等同方面。
Claims (51)
1.一种用于管理本地网络中的中间图形渲染的方法,包括:
通过所述本地网络中的图形渲染管理器来收集所述本地网络中的一个或多个计算设备中的每一个的图形处理性能信息;
通过所述图形渲染管理器来接收为所述本地网络中的客户端开始中间图形渲染的请求;
通过所述图形渲染管理器基于所收集的图形处理性能信息来从所述本地网络中的一个或多个计算设备中选择充当中间计算设备的计算设备以为所述客户端进行中间图形渲染;以及
通过所述图形渲染管理器将包括模型标识符和模型渲染信息的合成流定向到所选择的计算设备,以使所述所选择的计算设备能够渲染图形以便输送给所述客户端。
2.如权利要求1所述的方法,其中所述所收集的图形处理性能信息包括如下各项中一项或多项:设备类型信息、设备图形处理能力信息、设备使用状态信息、设备电力状态信息、或者设备电源信息。
3.如权利要求2所述的方法,其中用于所述所选择的计算设备的所述所收集的图形处理性能信息包括接通的设备电力状态。
4.如权利要求2所述的方法,其中用于所述所选择的计算设备的所述所收集的图形处理性能信息包括未在使用中的设备使用状态。
5.如权利要求2所述的方法,其中用于所述所选择的计算设备的所述所收集的图形处理性能信息包括计划使用状态,所述计划使用状态包括在计划时间段内的未计划使用。
6.如权利要求2所述的方法,其中用于所述所选择的计算设备的所述所收集的图形处理性能信息包括指示所选择的设备连接到壁式电源的设备电源信息。
7.如权利要求2所述的方法,其中用于所述所选择的计算设备的所述所收集的图形处理性能信息包括符合或超过阈值图形处理能力的设备图形处理能力信息。
8.如权利要求1所述的方法,其中所述所收集的图形处理性能信息包括设备图形处理硬件信息,并且进一步包括:
基于所述设备图形处理硬件信息来确定所述本地网络中的一个或多个计算设备的图形处理能力,其中针对充当所述中间计算设备的所述计算设备的选择基于所述本地网络中的一个或多个计算设备的确定的图形处理能力。
9.如权利要求1所述的方法,进一步包括:通过所述图形渲染管理器基于所述所收集的图形处理性能信息来从所述本地网络中的所述计算设备中选择充当备用中间计算设备的备用计算设备,以便当所述所选择的计算设备不能用于中间图形渲染时针对所述客户端进行中间图形渲染。
10.如权利要求1所述的方法,其中通过所述图形渲染管理器收集图形处理性能信息包括与所述本地网络中的所述一个或多个计算设备处的一个或多个本地客户端模块交互,并且其中所述本地网络中的所述一个或多个计算设备中的每一个均包括被配置为将图形处理性能信息提供给所述图形渲染管理器的本地客户端模块。
11.如权利要求1所述的方法,进一步包括:通过所述图形渲染管理器来发送对开始中间图形渲染的请求的响应,所述响应指示所述本地网络处的中间图形渲染性能。
12.一种具有能够由处理器执行的计算机可执行指令的非暂态计算机可读存储介质,所述指令在由所述处理器执行时实现图形渲染管理器,所述图形渲染管理器使得所述处理器:
收集本地网络中的一个或多个计算设备中的每一个的图形处理性能信息;
接收为所述本地网络中的客户端开始中间图形渲染的请求;
基于所收集的图形处理性能信息来从所述本地网络中的一个或多个计算设备中选择充当中间计算设备的计算设备以为所述客户端进行中间图形渲染;以及
将包括模型标识符和模型渲染信息的合成流定向到所选择的计算设备,以使所述所选择的计算设备能够渲染图形以便输送给所述客户端。
13.如权利要求12所述的非暂态计算机可读存储介质,其中所述所收集的图形处理性能信息包括如下各项中的一项或多项:设备类型信息、设备图形处理能力信息、设备使用状态信息、设备电力状态信息、或者设备电源信息。
14.如权利要求13所述的非暂态计算机可读存储介质,其中用于所述所选择的计算设备的所述所收集的图形处理性能信息包括接通的设备电力状态。
15.如权利要求13所述的非暂态计算机可读存储介质,其中用于所述所选择的计算设备的所述所收集的图形处理性能信息包括未在使用中的设备使用状态。
16.如权利要求13所述的非暂态计算机可读存储介质,其中用于所述所选择的计算设备的所述所收集的图形处理性能信息包括计划使用状态,所述计划使用状态包括在计划时间段内的未计划使用。
17.如权利要求13所述的非暂态计算机可读存储介质,其中用于所述所选择的计算设备的所述所收集的图形处理性能信息包括指示所述所选择的设备连接到壁式电源的设备电源信息。
18.如权利要求13所述的非暂态计算机可读存储介质,其中用于所述所选择的计算设备的所述所收集的图形处理性能信息包括符合或超过阈值图形处理能力的设备图形处理能力信息。
19.如权利要求12所述的非暂态计算机可读存储介质,其中所述所收集的图形处理性能信息包括设备图形处理硬件信息,并且其中所述图形渲染管理器进一步使所述处理器:
基于所述设备图形处理硬件信息来确定所述本地网络中的一个或多个计算设备的图形处理能力,其中针对充当所述中间计算设备的所述计算设备的选择基于所述本地网络中的一个或多个计算设备的确定的图形处理能力。
20.如权利要求12所述的非暂态计算机可读存储介质,其中所述图形渲染管理器进一步使所述处理器:
基于所述所收集的图形处理性能信息来从所述本地网络中的所述计算设备中选择充当备用中间计算设备的备用计算设备,以便当所述所选择的计算设备不能用于中间图形渲染时针对所述客户端进行中间图形渲染。
21.如权利要求12所述的非暂态计算机可读存储介质,其中收集图形处理性能信息的所述指令包括与所述本地网络中的所述一个或多个计算设备处的一个或多个本地客户端模块交互的指令,并且其中所述本地网络中的所述一个或多个计算设备中的每一个均包括被配置为将图形处理性能信息提供给所述图形渲染管理器的本地客户端模块。
22.如权利要求12所述的非暂态计算机可读存储介质,其中所述图形渲染管理器进一步使所述处理器发送对开始中间图形渲染的请求的响应,所述响应指示所述本地网络处的中间图形渲染性能。
23.一种适于管理本地网络中的中间图形渲染的图形渲染管理器设备,所述图形渲染管理器设备包括:
处理器;
存储器;以及
图形渲染管理器,其存储在所述存储器中且能够由所述处理器执行,其中所述图形渲染管理器被配置为:
收集所述本地网络中的一个或多个计算设备中的每一个的图形处理性能信息;
接收为所述本地网络中的客户端开始中间图形渲染的请求;
基于所收集的图形处理性能信息来从所述本地网络中的一个或多个计算设备中选择充当中间计算设备的计算设备以为所述客户端进行中间图形渲染;以及
将包括模型标识符和模型渲染信息的合成流定向到所选择的计算设备以使所选择的计算设备能够渲染图形以便输送给所述客户端。
24.如权利要求23所述的图形渲染管理器设备,其中所述所收集的图形处理性能信息包括如下各项中的一项或多项:设备类型信息、设备图形处理能力信息、设备使用状态信息、设备电力状态信息、或者设备电源信息。
25.如权利要求24所述的图形渲染管理器设备,其中用于所述所选择的计算设备的所述所选择的图形处理性能信息包括接通的设备电力状态。
26.如权利要求24所述的图形渲染管理器设备,其中用于所述所选择的计算设备的所述所收集的图形处理性能信息包括未在使用中的设备使用状态。
27.如权利要求24所述的图形渲染管理器设备,其中用于所述所选择的计算设备的所述所收集的图形处理性能信息包括计划使用状态,所述计划使用状态包括在计划时间段内未计划使用。
28.如权利要求24所述的图形渲染管理器设备,其中用于所述所选择的计算设备的所述所收集的图形处理性能信息包括指示所述所选择的设备连接到壁式电源的设备电源信息。
29.如权利要求24所述的图形渲染管理器设备,其中用于所述所选择的计算设备的所述所收集的图形处理性能信息包括符合或超过阈值图形处理能力的设备图形处理能力信息。
30.如权利要求23所述的图形渲染管理器设备,其中所述所收集的图形处理性能信息包括设备图形处理硬件信息,并且其中所述图形渲染管理器被配置为:
基于所述设备图形处理硬件信息来确定所述本地网络中的一个或多个计算设备的图形处理能力,其中针对充当所述中间计算设备的计算设备的选择基于所述本地网络中的一个或多个计算设备的确定的图形处理能力。
31.如权利要求23所述的图形渲染管理器设备,其中所述图形渲染管理器被配置为:
基于收集的图形处理性能信息来从所述本地网络中的所述计算设备中选择充当备用中间计算设备的备用计算设备,以便当所述所选择的计算设备不能用于中间图形渲染时为所述客户端进行中间图形渲染。
32.如权利要求23所述的图形渲染管理器设备,其中收集图形处理性能信息包括与所述本地网络中的所述一个或多个计算设备处的一个或多个本地客户端模块交互,并且其中所述本地网络中的所述一个或多个计算设备中的每一个均包括被配置为将图形处理性能信息提供给所述图形渲染管理器的本地客户端模块。
33.如权利要求23所述的图形渲染管理器设备,其中所述图形渲染管理器被配置为发送对开始中间图形渲染的请求的响应,所述响应指示所述所述本地网络处的中间图形渲染性能。
34.一种通过系统控制器来确定为客户端进行中间图形渲染的中间计算设备的方法,其中所述中间计算设备连接到包括所述客户端的本地网络,所述方法包括:
通过所述系统控制器来接收标识所述客户端以及标识与所述本地网络连接的图形渲染管理器的会话信息;
通过所述系统控制器将为所述客户端开始所述本地网络中的中间图形渲染的请求发送到所述图形渲染管理器;
通过所述系统控制器来接收所述本地网络中的所选择的计算设备的标识,其中所述所选择的计算设备被选择充当中间计算设备以为所述客户端进行中间图形渲染;以及
通过所述系统控制器来将包括模型标识符和模型渲染信息的合成流定向到所述所选择的计算设备,以使所述所选择的计算设备能够渲染图形以便输送给所述客户端。
35.如权利要求34所述的方法,进一步包括:当所述本地网络中的所述所选择的计算设备不能用于充当中间计算设备时,通过所述系统控制器切换到远程图形渲染模式,所述远程图形渲染模式包括通过所述本地网络之外的计算设备来进行图形渲染。
36.如权利要求34所述的方法,进一步包括:通过所述系统控制器来接收所述本地网络中的备用计算设备的标识,并且当所述本地网络中的所述所选择的计算设备不能用于充当中间计算设备时,通过所述系统控制器将所述合成流定向到所述备用计算设备以使所述备用计算设备能够渲染图形以便输送给所述客户端。
37.如权利要求34所述的方法,进一步包括:通过所述系统控制器来接收所述本地网络中的一个或多个所选择的计算设备的收集的图形处理性能信息,并且通过所述系统控制器基于所收集的图形处理性能信息来从所述本地网络中的所述一个或多个所选择的计算设备中选择充当所述中间计算设备的所述所选择的计算设备。
38.如权利要求37所述的方法,其中所述所收集的图形处理性能信息包括设备图形处理硬件信息,并且进一步包括:
基于所述设备图形处理硬件信息来确定所述本地网络中的一个或多个所选择的计算设备的图形处理能力,其中对充当所述中间计算设备的所述计算设备的选择基于所述本地网络中的一个或多个所选择的计算设备的确定的图形处理能力。
39.如权利要求34所述的方法,其中所述系统控制器适于支持实时图形应用的中间计算设备选择,其中所述实时图形应用包括视频游戏应用,并且其中所述合成流包括渲染视频游戏图形以便输送给所述客户端的模型标识符和模型渲染信息。
40.一种具有能够由处理器执行的计算机可执行指令的非暂态计算机可读存储介质,所述指令在由所述处理器执行时实现适于确定为客户端进行中间图形渲染的中间计算设备的系统控制器,其中所述中间计算设备连接到包括所述客户端的本地网络,其中所述系统控制器使所述处理器:
接收标识所述客户端以及标识与所述本地网络连接的图形渲染管理器设备的会话信息;
将为所述客户端开始所述本地网络中的中间图形渲染的请求发送到所述图形渲染管理器设备;
接收所述本地网络中的所选择的计算设备的标识,其中所述所选择的计算设备被选择充当中间计算设备以为所述客户端进行中间图形渲染;以及
将包括模型标识符和模型渲染信息的合成流定向到所述所选择的计算设备以使所述所选择的计算设备能够渲染图形以便输送给所述客户端。
41.如权利要求40所述的非暂态计算机可读存储介质,其中所述系统控制器使得所述处理器在所述本地网络中的所述所选择的计算设备不能充当中间计算设备时,切换到远程图形渲染模式,所述远程图形渲染模式包括通过所述本地网络之外的计算设备来进行图形渲染。
42.如权利要求40所述的非暂态计算机可读存储介质,其中所述系统控制器使所述处理器在所述本地网络中的所述所选择的计算设备不能用于充当中间计算设备时,将所述合成流定向到所述本地网络中的备用计算设备以使所述备用计算设备能够渲染图形以便输送给客户端。
43.如权利要求40所述的非暂态计算机可读存储介质,其中所述系统控制器使所述处理器基于所述本地网络中的一个或多个所选择的计算设备的收集的图形处理性能信息来选择充当所述中间计算设备的所述所选择的计算设备。
44.如权利要求43所述的非暂态计算机可读存储介质,其中所述所收集的图形处理性能信息包括设备图形处理硬件信息,并且其中所述系统控制器使所述处理器:
基于所述设备图形处理硬件信息来确定所述本地网络中的一个或多个所选择的计算设备的图形处理能力,其中针对充当所述中间计算设备的所述计算设备的选择基于所述本地网络中的一个或多个所选择的计算设备的确定的图形处理能力。
45.如权利要求40所述的非暂态计算机可读存储介质,其中所述系统控制器适于支持实时图形应用的中间计算设备选择,其中所述实时图形应用包括视频游戏应用,并且其中所述合成流包括渲染视频游戏图形以便输送给所述客户端的模型标识符和模型渲染信息。
46.一种系统控制器计算设备,其适于确定为客户端进行中间图形渲染的中间计算设备,其中所述中间计算设备连接到包括所述客户端的本地网络,所述系统控制器计算设备包括:
处理器;
存储器;以及
系统控制器,其存储在所述存储器中且能够由所述处理器执行,其中所述系统控制器被配置为:
接收标识所述客户端以及标识与所述本地网络连接的图形渲染管理器设备的会话信息;
将为所述客户端开始所述本地网络中的中间图形渲染的请求发送到所述图形渲染管理器设备;
接收所述本地网络中的所选择的计算设备的标识,其中所述所选择的计算设备被选择充当中间计算设备以为所述客户端进行中间图形渲染;以及
将包括模型标识符和模型渲染信息的合成流定向到所述所选择的计算设备以使所述所选择的计算设备能够渲染图形以便输送给所述客户端。
47.如权利要求46所述的系统控制器计算设备,其中所述系统控制器被配置为当所述本地网络中的所述所选择的计算设备不能用于充当中间计算设备时,切换到远程图形渲染模式,所述远程图形渲染模式包括通过所述本地网络之外的计算设备来进行图形渲染。
48.如权利要求46所述的系统控制器计算设备,其中所述系统控制器被配置为当所述本地网络中的所述所选择的计算设备不能用于充当中间计算设备时,将所述合成流定向到所述本地网络中的备用计算设备以使所述备用计算设备能够渲染图形以便输送给客户端。
49.如权利要求46所述的系统控制器计算设备,其中所述系统控制器被配置为基于所述本地网络中的一个或多个所选择的计算设备的收集的图形处理性能信息来选择充当所述中间计算设备的所述所选择的计算设备。
50.如权利要求49所述的系统控制器计算设备,其中所述所收集的图形处理性能信息包括设备图形处理硬件信息,并且其中所述系统控制器被配置为:
基于所述设备图形处理硬件信息来确定所述本地网络中的一个或多个所选择的计算设备的图形处理能力,其中针对充当所述中间计算设备的所述计算设备的选择基于所述本地网络中的一个或多个所选择的计算设备的确定的图形处理能力。
51.如权利要求46所述的系统控制器计算设备,其中所述系统控制器适于支持实时图形应用的中间计算设备选择,其中所述实时图形应用包括视频游戏应用,并且其中所述合成流包括渲染视频游戏图形以便输送给所述客户端的模型标识符和模型渲染信息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
USPCT/US2013/066300 | 2013-10-23 | ||
PCT/US2013/066300 WO2015060835A1 (en) | 2013-10-23 | 2013-10-23 | Intermediary graphics rendition |
PCT/US2014/015776 WO2015060889A2 (en) | 2013-10-23 | 2014-02-11 | Local management for intermediary graphics rendition |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105850099A true CN105850099A (zh) | 2016-08-10 |
CN105850099B CN105850099B (zh) | 2019-05-14 |
Family
ID=52993287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480070775.4A Expired - Fee Related CN105850099B (zh) | 2013-10-23 | 2014-02-11 | 用于中间图形再现的本地管理 |
Country Status (3)
Country | Link |
---|---|
US (4) | US9619857B2 (zh) |
CN (1) | CN105850099B (zh) |
WO (2) | WO2015060835A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110393921A (zh) * | 2019-08-08 | 2019-11-01 | 腾讯科技(深圳)有限公司 | 云游戏的处理方法、装置、终端、服务器及存储介质 |
CN111033570A (zh) * | 2017-08-22 | 2020-04-17 | 高通股份有限公司 | 使用两个渲染计算装置从计算机图形渲染图像 |
CN111796940A (zh) * | 2020-07-06 | 2020-10-20 | 中国铁塔股份有限公司 | 一种资源分配方法、装置和电子设备 |
Families Citing this family (78)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8028090B2 (en) | 2008-11-17 | 2011-09-27 | Amazon Technologies, Inc. | Request routing utilizing client location information |
US7991910B2 (en) | 2008-11-17 | 2011-08-02 | Amazon Technologies, Inc. | Updating routing information based on client location |
US7970820B1 (en) | 2008-03-31 | 2011-06-28 | Amazon Technologies, Inc. | Locality based content distribution |
US7962597B2 (en) | 2008-03-31 | 2011-06-14 | Amazon Technologies, Inc. | Request routing based on class |
US8321568B2 (en) | 2008-03-31 | 2012-11-27 | Amazon Technologies, Inc. | Content management |
US8606996B2 (en) | 2008-03-31 | 2013-12-10 | Amazon Technologies, Inc. | Cache optimization |
US8447831B1 (en) | 2008-03-31 | 2013-05-21 | Amazon Technologies, Inc. | Incentive driven content delivery |
US8601090B1 (en) | 2008-03-31 | 2013-12-03 | Amazon Technologies, Inc. | Network resource identification |
US9407681B1 (en) | 2010-09-28 | 2016-08-02 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US8073940B1 (en) | 2008-11-17 | 2011-12-06 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US8412823B1 (en) | 2009-03-27 | 2013-04-02 | Amazon Technologies, Inc. | Managing tracking information entries in resource cache components |
US8688837B1 (en) | 2009-03-27 | 2014-04-01 | Amazon Technologies, Inc. | Dynamically translating resource identifiers for request routing using popularity information |
US8756341B1 (en) | 2009-03-27 | 2014-06-17 | Amazon Technologies, Inc. | Request routing utilizing popularity information |
US9723319B1 (en) * | 2009-06-01 | 2017-08-01 | Sony Interactive Entertainment America Llc | Differentiation for achieving buffered decoding and bufferless decoding |
US8782236B1 (en) | 2009-06-16 | 2014-07-15 | Amazon Technologies, Inc. | Managing resources using resource expiration data |
US8397073B1 (en) | 2009-09-04 | 2013-03-12 | Amazon Technologies, Inc. | Managing secure content in a content delivery network |
US8433771B1 (en) | 2009-10-02 | 2013-04-30 | Amazon Technologies, Inc. | Distribution network with forward resource propagation |
US9495338B1 (en) | 2010-01-28 | 2016-11-15 | Amazon Technologies, Inc. | Content distribution network |
US9712484B1 (en) | 2010-09-28 | 2017-07-18 | Amazon Technologies, Inc. | Managing request routing information utilizing client identifiers |
US8468247B1 (en) | 2010-09-28 | 2013-06-18 | Amazon Technologies, Inc. | Point of presence management in request routing |
US10958501B1 (en) | 2010-09-28 | 2021-03-23 | Amazon Technologies, Inc. | Request routing information based on client IP groupings |
US9003035B1 (en) | 2010-09-28 | 2015-04-07 | Amazon Technologies, Inc. | Point of presence management in request routing |
US10097398B1 (en) | 2010-09-28 | 2018-10-09 | Amazon Technologies, Inc. | Point of presence management in request routing |
US8452874B2 (en) | 2010-11-22 | 2013-05-28 | Amazon Technologies, Inc. | Request routing processing |
US10467042B1 (en) | 2011-04-27 | 2019-11-05 | Amazon Technologies, Inc. | Optimized deployment based upon customer locality |
US10623408B1 (en) | 2012-04-02 | 2020-04-14 | Amazon Technologies, Inc. | Context sensitive object management |
US9154551B1 (en) | 2012-06-11 | 2015-10-06 | Amazon Technologies, Inc. | Processing DNS queries to identify pre-processing information |
US9323577B2 (en) | 2012-09-20 | 2016-04-26 | Amazon Technologies, Inc. | Automated profiling of resource usage |
US10205698B1 (en) | 2012-12-19 | 2019-02-12 | Amazon Technologies, Inc. | Source-dependent address resolution |
US9294391B1 (en) | 2013-06-04 | 2016-03-22 | Amazon Technologies, Inc. | Managing network computing components utilizing request routing |
WO2015060835A1 (en) | 2013-10-23 | 2015-04-30 | Empire Technology Development Llc | Intermediary graphics rendition |
US9168459B1 (en) | 2013-10-24 | 2015-10-27 | Kabam, Inc. | System and method for dynamically altering an in-game experience based on a user's connection to the game |
US10369461B2 (en) * | 2014-01-24 | 2019-08-06 | Nvidia Corporation | Cloud gaming system and method of initiating a gaming session |
KR20170020776A (ko) * | 2014-06-12 | 2017-02-24 | 엘지전자 주식회사 | Hdmi를 사용하여 데이터를 송수신하기 위한 방법 및 장치 |
US9741161B2 (en) * | 2014-08-26 | 2017-08-22 | General Electric Company | Method, system, and medical imaging device for shading with multiple light sources |
CN104618733A (zh) * | 2014-10-31 | 2015-05-13 | 腾讯科技(深圳)有限公司 | 图像远程投射方法和相关装置 |
US10097448B1 (en) | 2014-12-18 | 2018-10-09 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10091096B1 (en) | 2014-12-18 | 2018-10-02 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10033627B1 (en) | 2014-12-18 | 2018-07-24 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10225326B1 (en) | 2015-03-23 | 2019-03-05 | Amazon Technologies, Inc. | Point of presence based data uploading |
US9819567B1 (en) | 2015-03-30 | 2017-11-14 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9832141B1 (en) | 2015-05-13 | 2017-11-28 | Amazon Technologies, Inc. | Routing based request correlation |
US10097566B1 (en) | 2015-07-31 | 2018-10-09 | Amazon Technologies, Inc. | Identifying targets of network attacks |
US9774619B1 (en) | 2015-09-24 | 2017-09-26 | Amazon Technologies, Inc. | Mitigating network attacks |
US10270878B1 (en) | 2015-11-10 | 2019-04-23 | Amazon Technologies, Inc. | Routing for origin-facing points of presence |
US10193999B1 (en) * | 2015-12-10 | 2019-01-29 | Kabam, Inc. | Dynamic online game implementation on a client device |
US10068431B1 (en) | 2015-12-10 | 2018-09-04 | Kabam, Inc. | Facilitating event implementation in an online game |
US10049051B1 (en) | 2015-12-11 | 2018-08-14 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10257307B1 (en) | 2015-12-11 | 2019-04-09 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US20170180217A1 (en) * | 2015-12-18 | 2017-06-22 | Amazon Technologies, Inc. | Use of virtual endpoints to improve data tranmission rates |
US10348639B2 (en) | 2015-12-18 | 2019-07-09 | Amazon Technologies, Inc. | Use of virtual endpoints to improve data transmission rates |
EP3185214A1 (en) * | 2015-12-22 | 2017-06-28 | Dassault Systèmes | Streaming of hybrid geometry and image based 3d objects |
EP3185152B1 (en) | 2015-12-22 | 2022-02-09 | Dassault Systèmes | Distributed clash and snapping |
US10075551B1 (en) | 2016-06-06 | 2018-09-11 | Amazon Technologies, Inc. | Request management for hierarchical cache |
US10110694B1 (en) | 2016-06-29 | 2018-10-23 | Amazon Technologies, Inc. | Adaptive transfer rate for retrieving content from a server |
US9992086B1 (en) | 2016-08-23 | 2018-06-05 | Amazon Technologies, Inc. | External health checking of virtual private cloud network environments |
US10033691B1 (en) | 2016-08-24 | 2018-07-24 | Amazon Technologies, Inc. | Adaptive resolution of domain name requests in virtual private cloud network environments |
WO2018041324A1 (de) * | 2016-09-03 | 2018-03-08 | Gorillabox Gmbh | Verfahren zum streamen und zur wiedergabe von anwendungen über ein bestimmtes telekommunikationssystem, telekommunikationsnetz zum durchführen dieses verfahrens und verwendung eines derartigen telekommunikationsnetzes |
US10616250B2 (en) | 2016-10-05 | 2020-04-07 | Amazon Technologies, Inc. | Network addresses with encoded DNS-level information |
US10831549B1 (en) | 2016-12-27 | 2020-11-10 | Amazon Technologies, Inc. | Multi-region request-driven code execution system |
US10372499B1 (en) | 2016-12-27 | 2019-08-06 | Amazon Technologies, Inc. | Efficient region selection system for executing request-driven code |
US10938884B1 (en) | 2017-01-30 | 2021-03-02 | Amazon Technologies, Inc. | Origin server cloaking using virtual private cloud network environments |
US11103778B1 (en) * | 2017-03-28 | 2021-08-31 | Kabam, Inc. | Multi-level lighting system |
US10719902B2 (en) | 2017-04-17 | 2020-07-21 | Intel Corporation | Thread serialization, distributed parallel programming, and runtime extensions of parallel computing platform |
US10503613B1 (en) | 2017-04-21 | 2019-12-10 | Amazon Technologies, Inc. | Efficient serving of resources during server unavailability |
US11075987B1 (en) | 2017-06-12 | 2021-07-27 | Amazon Technologies, Inc. | Load estimating content delivery network |
US10447648B2 (en) | 2017-06-19 | 2019-10-15 | Amazon Technologies, Inc. | Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP |
US10776997B2 (en) | 2017-08-24 | 2020-09-15 | Qualcomm Incorporated | Rendering an image from computer graphics using two rendering computing devices |
US10742593B1 (en) | 2017-09-25 | 2020-08-11 | Amazon Technologies, Inc. | Hybrid content request routing system |
CN108052364A (zh) * | 2017-12-13 | 2018-05-18 | 上海曼恒数字技术股份有限公司 | 一种基于远程操作的图像显示方法、装置、设备及存储介质 |
US10592578B1 (en) | 2018-03-07 | 2020-03-17 | Amazon Technologies, Inc. | Predictive content push-enabled content delivery network |
US11314532B2 (en) | 2018-10-11 | 2022-04-26 | Citrix Systems, Inc. | Systems and methods for traffic optimization via system on chip of intermediary device |
US10862852B1 (en) | 2018-11-16 | 2020-12-08 | Amazon Technologies, Inc. | Resolution of domain name requests in heterogeneous network environments |
US11025747B1 (en) | 2018-12-12 | 2021-06-01 | Amazon Technologies, Inc. | Content request pattern-based routing system |
US10452868B1 (en) | 2019-02-04 | 2019-10-22 | S2 Systems Corporation | Web browser remoting using network vector rendering |
US10558824B1 (en) * | 2019-02-04 | 2020-02-11 | S2 Systems Corporation | Application remoting using network vector rendering |
US10552639B1 (en) * | 2019-02-04 | 2020-02-04 | S2 Systems Corporation | Local isolator application with cohesive application-isolation interface |
US11880422B2 (en) | 2019-02-04 | 2024-01-23 | Cloudflare, Inc. | Theft prevention for sensitive information |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7092983B1 (en) * | 2000-04-19 | 2006-08-15 | Silicon Graphics, Inc. | Method and system for secure remote distributed rendering |
US20080204460A1 (en) * | 2006-05-30 | 2008-08-28 | Ati Technologies Ulc | Device having multiple graphics subsystems and reduced power consumption mode, software and methods |
CN102196300A (zh) * | 2010-03-18 | 2011-09-21 | 国际商业机器公司 | 虚拟世界场景的图像的提供方法和设备及处理方法和设备 |
US20130050063A1 (en) * | 2011-08-25 | 2013-02-28 | Rajesh Poornachandran | Collaborative graphics rendering using mobile devices to support remote display |
CN102959517A (zh) * | 2010-06-10 | 2013-03-06 | Otoy公司 | 在并行的多个客户端之间的gpu资源的分配 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5682506A (en) | 1994-09-12 | 1997-10-28 | General Electric Company | Method and system for group visualization of virtual objects |
US20030149762A1 (en) * | 2001-10-05 | 2003-08-07 | Knight Gregory John | Storage area network methods and apparatus with history maintenance and removal |
US7430593B2 (en) * | 2001-10-05 | 2008-09-30 | International Business Machines Corporation | Storage area network for topology rendering |
US20110126255A1 (en) | 2002-12-10 | 2011-05-26 | Onlive, Inc. | System and method for remote-hosted video effects |
US8549574B2 (en) * | 2002-12-10 | 2013-10-01 | Ol2, Inc. | Method of combining linear content and interactive content compressed together as streaming interactive video |
CN101918921B (zh) * | 2008-01-27 | 2013-12-04 | 思杰系统有限公司 | 用于远程提供三维图形的方法和系统 |
US20120165101A1 (en) | 2010-11-15 | 2012-06-28 | Venu Krishnamoorthy | Remote Gaming Systems |
US20130212538A1 (en) | 2011-08-19 | 2013-08-15 | Ghislain LEMIRE | Image-based 3d environment emulator |
US8736622B2 (en) | 2011-12-07 | 2014-05-27 | Ubitus Inc | System and method of leveraging GPU resources to enhance performance of an interact-able content browsing service |
US20140207911A1 (en) * | 2013-01-22 | 2014-07-24 | James Kosmach | System and method for embedding multimedia controls and indications in a webpage |
WO2015060835A1 (en) | 2013-10-23 | 2015-04-30 | Empire Technology Development Llc | Intermediary graphics rendition |
-
2013
- 2013-10-23 WO PCT/US2013/066300 patent/WO2015060835A1/en active Application Filing
- 2013-10-23 US US14/360,288 patent/US9619857B2/en not_active Expired - Fee Related
-
2014
- 2014-02-11 WO PCT/US2014/015776 patent/WO2015060889A2/en active Application Filing
- 2014-02-11 US US14/380,908 patent/US9779463B2/en not_active Expired - Fee Related
- 2014-02-11 CN CN201480070775.4A patent/CN105850099B/zh not_active Expired - Fee Related
-
2017
- 2017-04-10 US US15/483,740 patent/US10262389B2/en not_active Expired - Fee Related
-
2019
- 2019-03-15 US US16/354,246 patent/US10586303B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7092983B1 (en) * | 2000-04-19 | 2006-08-15 | Silicon Graphics, Inc. | Method and system for secure remote distributed rendering |
US20080204460A1 (en) * | 2006-05-30 | 2008-08-28 | Ati Technologies Ulc | Device having multiple graphics subsystems and reduced power consumption mode, software and methods |
CN102196300A (zh) * | 2010-03-18 | 2011-09-21 | 国际商业机器公司 | 虚拟世界场景的图像的提供方法和设备及处理方法和设备 |
CN102959517A (zh) * | 2010-06-10 | 2013-03-06 | Otoy公司 | 在并行的多个客户端之间的gpu资源的分配 |
US20130050063A1 (en) * | 2011-08-25 | 2013-02-28 | Rajesh Poornachandran | Collaborative graphics rendering using mobile devices to support remote display |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111033570A (zh) * | 2017-08-22 | 2020-04-17 | 高通股份有限公司 | 使用两个渲染计算装置从计算机图形渲染图像 |
CN111033570B (zh) * | 2017-08-22 | 2023-10-20 | 高通股份有限公司 | 使用两个渲染计算装置从计算机图形渲染图像 |
CN110393921A (zh) * | 2019-08-08 | 2019-11-01 | 腾讯科技(深圳)有限公司 | 云游戏的处理方法、装置、终端、服务器及存储介质 |
CN110393921B (zh) * | 2019-08-08 | 2022-08-26 | 腾讯科技(深圳)有限公司 | 云游戏的处理方法、装置、终端、服务器及存储介质 |
CN111796940A (zh) * | 2020-07-06 | 2020-10-20 | 中国铁塔股份有限公司 | 一种资源分配方法、装置和电子设备 |
CN111796940B (zh) * | 2020-07-06 | 2024-01-26 | 中国铁塔股份有限公司 | 一种资源分配方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US20160292810A1 (en) | 2016-10-06 |
US20190279332A1 (en) | 2019-09-12 |
US10586303B2 (en) | 2020-03-10 |
WO2015060889A3 (en) | 2015-10-29 |
US10262389B2 (en) | 2019-04-16 |
CN105850099B (zh) | 2019-05-14 |
US9619857B2 (en) | 2017-04-11 |
US9779463B2 (en) | 2017-10-03 |
US20170209792A1 (en) | 2017-07-27 |
US20150154051A1 (en) | 2015-06-04 |
WO2015060889A2 (en) | 2015-04-30 |
WO2015060835A1 (en) | 2015-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105850099A (zh) | 用于中间图形再现的本地管理 | |
JP7393029B2 (ja) | マルチスレッド・スマートルーティングメディア用の相互運用可能なデジタル・ソーシャル・レコーダと、暗号資産のコンプライアンスおよび支払いのシステムおよび方法 | |
JP7320672B2 (ja) | 人工知能(ai)制御のカメラパースペクティブジェネレータ及びaiブロードキャスタ | |
TWI444927B (zh) | 結合影像伺服器之點唱機 | |
CN104904183B (zh) | 内容获取源选择和管理 | |
CN106621326A (zh) | 利用云转变的本地应用快速启动 | |
CN102640147B (zh) | 用于在通信网络中提供媒体池的系统和方法 | |
JP7224715B2 (ja) | 人工知能(ai)制御のカメラパースペクティブジェネレータ及びaiブロードキャスタ | |
CN105473196A (zh) | 向远程游戏环境中的游戏标题的资源分配 | |
CN113785283A (zh) | 管理对数字资产的访问 | |
CN106664438A (zh) | 服务器装置、动画传送系统、其中使用的控制方法以及计算机程序 | |
JP2017535140A (ja) | ユーザ・インタラクション分析モジュール | |
CN101313321A (zh) | 跨多个设备和网络的嵌入式玩家卡 | |
CN106464719A (zh) | 被管理无线分发网络中的内容发现 | |
CN105246567A (zh) | 受缓存影响的视频游戏 | |
US11550951B2 (en) | Interoperable digital social recorder of multi-threaded smart routed media | |
CN106464718A (zh) | 被管理无线分发网络中的内容递送优先化 | |
CN100365619C (zh) | 用于播放多媒体数据的方法以及实现该方法的系统 | |
Lin | 5G improved cloud service experience and promotes the data collection for big data analysis | |
HARLE et al. | " Cloud Gaming: The Future of Gaming Infrastructure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190514 Termination date: 20200211 |