掌桥专利:专业的专利平台
掌桥专利
首页

混合云与本地渲染

文献发布时间:2024-04-18 20:01:55


混合云与本地渲染

背景技术

“云游戏”或“游戏流传输”通常涉及在一个或多个远程服务器上执行视频游戏应用,并提供所得到的视频和音频内容分别作为通过一个或多个网络传送到用户的客户端设备视频流和音频流。通过利用至少一个远程服务器(即,“云”)来执行图形渲染、视频捕获、视频编码和视频流传输的相关联任务的一些或所有方面,用户可以在不使用高端硬件客户端设备的情况下运行耗费性能的游戏应用。相反,用户通常可能仅需要显示屏、能够播放视频流的设备以及一个或多个用户输入设备。类似地,虚拟现实(VR)和增强现实(AR)系统通常利用一个或多个高性能服务器(无论对于此类系统的用户是本地还是远程)来图形地渲染虚拟环境,该虚拟环境随后经由一个或多个网络传送到客户端设备。

各种渲染任务与大的计算和带宽需求相关联,诸如可以使用服务器网络或数据中心中的一个或多个图形处理单元来获得。然而,与VR和AR应用一样,某些应用可能要求将较高优先级置于低时延和高响应性。在这样的应用中,高时延可能导致“渲染滞后”,甚至导致用户晕动病或对用户的其他负面影响。

发明内容

本文描述了实施例,其中由一个或多个服务器接收关于要被呈现以供由远程客户端设备显示的虚拟环境的多个组件的信息。基于所接收的信息来确定指示用于由一个或多个服务器计算设备渲染多个组件中的各个组件的优先化程度的远程渲染优先化值的集合。基于该远程渲染优先化值的集合,通过渲染多个组件中的第一组件的集合在一个或多个服务器处生成虚拟环境的部分场景。所生成的虚拟环境的部分场景被传送到远程客户端设备,以用于与要由远程客户端设备渲染的多个组件中的第二组件的集合进行合成。

在某些实施例中,一种服务器实现的方法可以包括:由一个或多个服务器计算设备接收关于要被呈现以供远程客户端设备显示的虚拟环境的多个组件的信息;在一个或多个服务器计算设备处至少部分地基于所接收的信息来确定远程渲染优先化值的集合,远程渲染优先化值的集合指示用于由一个或多个服务器计算设备渲染多个组件中的各个组件的优先化程度;在一个或多个服务器计算设备处至少部分地基于远程渲染优先化值的集合,通过渲染多个组件中的第一组件的集合来生成虚拟环境的部分场景;以及由服务器设备传送表示虚拟环境的所生成的部分场景的信息,以用于与要由远程客户端设备渲染的多个组件中的第二组件的集合进行合成。

方法可进一步包括将远程渲染优先化值中的至少一些传送到远程客户端设备以供在渲染第二组件的集合中使用。

该方法还可以包括接收关于多个组件的信息包括从远程客户端设备接收信息。

接收关于多个组件的信息可以包括从由一个或多个服务器计算设备中的至少一个执行的游戏应用接收信息。

在一个或多个服务器计算设备处渲染多个组件中的第一组件的集合可以包括由一个或多个服务器计算设备渲染虚拟环境的第一部分,而由远程客户端设备渲染虚拟环境的其余部分。

该方法还可以包括将表示所生成的部分场景的信息格式化为与由客户端设备执行的软件应用兼容的格式,以用于虚拟环境的处理和显示。

要由一个或多个服务器计算设备渲染的第一组件的集合可以由至少一个环境渲染阈值来定义。

方法可进一步包括通过识别这样的组件来确定第一组件的集合:对于每个组件指派给该组件的远程渲染优先化值超过至少一个环境渲染阈值。

确定远程渲染优先化值的集合可以包括至少部分地基于通信地耦合到一个或多个服务器计算设备中的至少一个的一个或多个网络的网络状况来确定远程渲染优先化值的集合。

该方法还可以包括至少部分地基于网络状况来确定环境渲染阈值。

确定远程渲染优先化值的集合可以包括至少部分地基于虚拟环境中的虚拟观看位置与多个组件中的一个或多个组件之间的空间接近度来确定远程渲染优先化值的集合。

确定远程渲染优先化值的集合可以包括至少部分地基于与多个组件中的一个或多个组件相关联的复杂度的程度来确定远程渲染优先化值的集合。

确定远程渲染优先化值的集合可以包括至少部分地基于与虚拟环境中的多个组件中的至少一个组件相关联的最近运动的程度来确定远程渲染优先化值的集合。

确定远程渲染优先化值的集合可以包括至少部分地基于与虚拟环境中的多个组件中的至少一个组件相关联的预测的运动的程度来确定远程渲染优先化值的集合。

确定该远程渲染优先化值的集合可以包括至少部分地基于对多个先前虚拟环境的一个或多个组件的分析来确定远程渲染优先化值的集合。

关于多个组件的信息可以包括群组的一个或多个成员,该群组包括虚拟环境内的一个或多个对象的3D模型信息、虚拟环境内的一个或多个对象的姿态信息、虚拟环境内的一个或多个对象的材料信息、以及虚拟环境内的一个或多个对象的纹理信息。

关于多个组件的信息可以包括虚拟环境内的至少一个对象中的每个对象的标识符,使得标识符被包括在一个或多个服务器计算设备的对象数据库中。

在某些实施例中,服务器可以包括网络接口、一个或多个处理器以及存储可执行指令集合的存储器。可执行指令集合在由一个或多个处理器执行时可以操纵一个或多个处理器以:接收关于要被呈现以供远程客户端设备显示的虚拟环境的多个组件的信息;至少部分地基于所接收的信息来确定用于虚拟环境的远程渲染优先化值的集合,远程渲染优先化值的集合指示用于由一个或多个服务器计算设备渲染多个组件中的各个组件的优先化程度;至少部分地基于远程渲染优先化值的集合,通过渲染多个组件中的第一组件的集合来生成虚拟环境的部分场景;以及传送表示虚拟环境的所生成的部分场景的信息,以用于与要由远程客户端设备渲染的多个组件中的第二组件的集合进行合成。

可执行指令集合可进一步操纵一个或多个处理器以将远程渲染优先化值中的至少一些传送到远程客户端设备以供在渲染第二组件的集合中使用。

可以从远程客户端设备接收关于多个组件的信息。

可以从由一个或多个服务器计算设备中的至少一个执行的游戏应用接收关于多个组件的信息。

远程渲染优先化值的集合可以基于包括以下的群组的一个或多个成员:通信地耦合到一个或多个服务器计算设备中的至少一个的一个或多个网络的网络状况;虚拟环境中的虚拟观看位置与多个组件中的一个或多个组件之间的空间接近度;与多个组件中的一个或多个组件相关联的复杂度的程度;与虚拟环境中的多个组件中的至少一个组件相关联的最近运动的程度;与虚拟环境中的多个组件中的至少一个组件相关联的预测的运动的程度;以及对多个先前虚拟环境的一个或多个组件的分析。

关于多个组件的信息包括群组的一个或多个成员,该群组包括虚拟环境内的一个或多个对象的3D模型信息、虚拟环境内的一个或多个对象的姿态信息、虚拟环境内的一个或多个对象的材料信息以及虚拟环境内的一个或多个对象的纹理信息。

关于多个组件的信息包括虚拟环境内的至少一个对象中的每一个的标识符,该标识符被包括在一个或多个服务器计算设备的对象数据库中。

在某些实施例中,一种计算机实现的方法可以包括:由客户端计算设备向一个或多个服务器计算设备提供关于要呈现以供显示的虚拟环境的多个组件的信息;由客户端计算设备至少部分地基于所提供的信息从一个或多个服务器计算设备接收虚拟环境的部分渲染,该部分渲染包括多个组件中的所渲染的第一组件的集合;由客户端计算设备渲染多个组件中的第二组件的集合;以及向用户显示虚拟环境,使得向用户显示虚拟环境包括将所渲染的第一组件的集合与所渲染的第二组件的集合进行合成。

该方法还可以包括:响应于关于多个组件的所提供的信息,接收描述(delineate)多个组件中的第二组件的集合的一个或多个远程渲染优先化值的指示。

提供关于多个组件的信息可以包括经由由客户端计算设备执行的游戏应用来生成信息。

可以基于包括以下的群组的一个或多个成员来确定第二组件的集合:通信地耦合到客户端计算设备的一个或多个网络的网络状况;虚拟环境中的虚拟观看位置与多个组件中的一个或多个组件之间的空间接近度;与多个组件中的一个或多个组件相关联的复杂度的程度;与虚拟环境中的多个组件中的至少一个组件相关联的最近运动的程度;与虚拟环境中的多个组件中的至少一个组件相关联的预测的运动的程度;以及对多个先前虚拟环境的一个或多个组件的分析。

关于多个组件的信息可以包括群组的一个或多个成员,该组包括虚拟环境内的一个或多个对象的3D模型信息、虚拟环境内的一个或多个对象的姿态信息、虚拟环境内的一个或多个对象的材料信息以及虚拟环境内的一个或多个对象的纹理信息。

关于多个组件的信息可以包括虚拟环境内的至少一个对象中的每个对象的标识符,该标识符被包括在一个或多个服务器计算设备的对象数据库中。

在某些实施例中,一种非暂时性计算机可读介质可以存储可执行指令集合以操纵至少一个处理器以执行上文所描述的方法中的任一项。

附图说明

通过参考附图,可以更好地理解本公开及其许多特征和优点。在不同附图中使用相同的附图标记指示相似或相同的项目。

图1是示出根据一个或多个实施例的促进单玩家和多玩家游戏的云游戏系统的框图。

图2示出了描绘根据一个或多个实施例的要渲染的虚拟环境的线框表示的示例场景。

图3描绘了基于虚拟环境内的对象的相对复杂度和其与用户的虚拟视点的接近度的虚拟环境内的对象的简化远程渲染优先化值。

图4是示出根据一个或多个实施例的基于处理器的服务器系统的操作例程的概述的框图。

图5是示出根据一个或多个实施例的被配置用于执行本文描述的技术的示例服务器计算系统的组件级框图。

具体实施方式

本文描述的技术解决了对渲染虚拟环境的图形真实性与在包括移动通过该虚拟环境的用户操作期间渲染虚拟环境的响应性的竞争需求。具体地,这样的技术允许虚拟环境的部分模拟和渲染由与高计算带宽相关联(但是远离用户并且因此经受相对高的时延和/或低响应性)的一个或多个服务器计算设备执行,并且虚拟环境的这种模拟和渲染的其余部分将由具有较少计算带宽但相对于该用户具有相对低的时延和较高响应性的客户端设备执行。因此,可以通过选择性地在一个或多个服务器计算设备上渲染描绘虚拟环境的场景的第一部分和在客户端设备上渲染场景的第二部分来解决对响应性和图形细节的竞争需求,所述客户端设备然后合成场景的第一部分和第二部分以显示给用户。合成场景的第一和第二部分涉及将源自不同源(例如,远程一个或多个服务器作为一个源,客户端设备作为另一不同源)的第一和第二部分组合或融合成单个图像,使得相应的第一和第二部分作为同一场景的各部分被显示给用户。因此,所提出的解决方案涉及使用云和本地计算设备来渲染虚拟环境的组件的虚拟环境的混合渲染。

图1是示出根据至少一个实施例的促进单玩家和/或多玩家(包括大规模多玩家)游戏的云游戏系统100的框图。云游戏系统100包括云平台102,云平台102具有经由一个或多个网络(诸如互联网)耦合到多个客户端系统106的对应子集的多个服务器计算设备(服务器)104。服务器104在所描绘的实施例中经由高带宽、低时延的服务器间消息总线108互连。服务器104通常分布在地理区域上的一个或多个数据中心中,以便通过物理接近度来减少传输时延。在图1的简化示例中,云平台102包括支持九个客户端系统106-1至106-9的三个服务器104-1至104-3,其中客户端系统106-1至106-4由服务器104-1服务,客户端系统106-5和106-6由服务器104-2服务,并且客户端系统106-7至106-8由服务器104-3服务。应当理解,在典型的现实世界实现中,服务器104的数量和客户端系统106的数量通常将高得多。

在图1的所描绘的实施例中,每个服务器104操作以执行对应的游戏平台实例,游戏平台实例促进对应玩家的游戏应用的一个或多个游戏会话的执行。也就是说,游戏平台实例提供各种资源,诸如通信/网络管理、资源管理、媒体渲染编码等,以便为对应玩家模拟游戏应用的执行,就好像游戏应用正在本地游戏设备(诸如个人计算机(PC)或游戏控制台)上玩一样。每个玩家游戏会话因此表示对应玩家的游戏应用的执行或模拟。

每个客户端系统106表示用于以下的硬件和软件资源:通过操纵至少一个玩家的一个或多个输入/输出设备来接收玩家输入,以及呈现分别表示至少一个玩家的游戏玩法(gameplay)的视觉和听觉内容的视频和音频内容。客户端系统106的示例包括一个或多个台式计算机、笔记本计算机、平板计算机、虚拟现实系统、增强现实系统、支持计算的蜂窝电话(即,“智能电话”)、支持计算的电视(即,“智能电视”)等。如参考客户端系统106-1所示,每个客户端系统106包括一个或多个客户端设备110。在所描绘的实施例中,客户端系统106-1包括第一客户端设备110-1,其通信地耦合到显示器116、至少一个输入设备112、耦合到将客户端系统106连接到对应的服务器104的网络的一个或多个网络接口、一个或多个处理器、存储器、存储、扬声器和用于渲染、处理和显示虚拟环境的场景的其他计算资源。客户端系统106-1还包括智能电话客户端设备110-2和可穿戴虚拟现实客户端设备110-3,其中每个设备可以操作为具有输入设施、输出设施、显示设施和通信设施的集成移动计算设备,类似于上面关于客户端设备110-1所述的那些。在某些实施例中,客户端设备110-2和110-3可以包括用于获取表示客户端设备的移动的运动数据以及这种移动的速率或加速度的一个或多个设施,诸如加速度计、全球定位系统(GPS)设备等。

虽然将具体参考云游戏场景讨论本文描述的实施例的某些方面,但是应当理解,在某些实施例中,所描述的技术可以用于各种非游戏场景中,诸如如果服务器104和客户端系统106中的一个或多个操作来渲染、处理和显示其他类型的信息性、教育性、娱乐性和/或艺术性内容。因此,将进一步理解,虽然本文关于可利用与云游戏和游戏内容相关的特定示例的内容的渲染讨论了技术,但是此类讨论和技术可应用于此类非游戏场景。本文提供的示例可以指涉及由于与此类内容相关的特定带宽和网络时延问题而导致的游戏内容的渲染、处理和显示的场景,并且不应被解释为指示所描述的技术限于这些场景。

在操作期间,客户端系统106从对应的服务器104接收表示从对应玩家游戏会话的执行生成的虚拟环境(未示出)的渲染的第一组件的集合的信息,并且利用客户端设备110的计算、存储和显示资源来本地渲染虚拟环境的第二组件的集合,合成第一渲染组件的集合和第二渲染组件的集合以生成虚拟环境的场景,并且为用户显示所得的合成场景。在一些实施例中,由客户端系统106处的第一和/或第二游戏客户端设备执行(并且在图1中由图形用户界面(GUI)114表示)的软件应用促进这样的场景的处理和显示。该软件应用可以包括例如云游戏专用软件应用。在其他实施例中,使用更一般的软件应用,并且所渲染的图形信息由服务器104格式化和传送以与该软件应用兼容。例如,在一个实施例中,客户端系统106利用利用超文本标记语言(HTML)格式的web浏览器来合成和显示服务器渲染的组件。

虚拟环境在客户端设备110的显示器上的呈现受到虚拟环境内用户的虚拟观看位置和取向(也称为虚拟视点)的改变的影响。例如,在某些场景中,表示场景中的远距离对象的背景图像可以保持相对静态,而不管用户在虚拟环境中的穿移。作为交互,正执行的玩家游戏会话利用玩家输入来至少部分地指导与玩家的游戏会话的游戏体验,包括穿过虚拟环境的平移和角度移动(俯仰、偏转等)。关于客户端设备110-1,至少部分地通过输入设备112接收玩家输入,输入设备112包括诸如以下的各种I/O设备中的任何一个或其组合:游戏控制器、游戏手柄、操纵杆、键盘、鼠标、触摸板、触摸屏、轨迹球、方向盘或摇杆、踏板、舞蹈垫、模拟枪、光学运动跟踪器、惯性传感器、光/激光源和检测器等。在一些实施例中,输入设备112通信地耦合到相关联的游戏客户端设备中的一个或多个,使得由玩家对输入设备112的操纵生成的玩家输入数据经由客户端系统106被提供给对应的服务器104。为了说明,在某些实施例中,输入设备112可以有线或无线地连接到客户端系统106,使得通过客户端系统106与将客户端系统106连接到服务器104的网络之间的网络接口来路由输入设备112输出的所有数据。在其他实施例中,输入设备112具有经由网络与对应服务器104的分开的独立的网络连接。例如,云游戏系统100可以采用客户端系统106和输入设备112本地并连接到互联网的无线局域网(WLAN)接入点(未示出),并且其中客户端系统106和输入设备112中的每一个与WLAN接入点建立单独的无线连接,以经由WLAN接入点通过互联网与对应的服务器104独立地通信。关于客户端设备110-2和110-3,类似的操作可以利用客户端设备的集成设施来将用户输入的一个或多个方面中继到服务器104。

如本文所使用的,“时延”是指在用户输入与响应于该用户输入的虚拟环境的呈现中的改变之间流逝的时间。通常,用户对关于在虚拟环境中显得更接近用户的虚拟视点的对象的运动或改变的这种时延更敏感。因此,渲染虚拟环境的一个目的是确保关于具有与用户的虚拟视点的高接近度的程度的那些对象的运动和渲染的低时延。相反,与更接近虚拟视点的对象的这种改变相比,更远离虚拟视点的虚拟环境中的对象的运动或改变对用户可以是没那么明显的。因此,可以通过在远程服务器计算设备和本地客户端计算设备之间选择性地划分虚拟环境中各种组件(例如,对象)的渲染过程来减轻用户移动通过虚拟环境的可辨别的影响。在本地渲染的组件和远程渲染的组件之间划分场景的渲染可以平衡对低时延、强烈的沉浸感和高观看质量的竞争需求。

服务器104和客户端设备110可以交换各种类型的信息作为渲染虚拟场景的一部分。作为非限制性示例,这样的信息可以包括参考信息,诸如:坐标和/或对准信息,其可以用于将由服务器104渲染的虚拟环境的第一组件的集合与由客户端设备渲染的第二组件的集合对准;与这样的组件相关的对象模型信息;以及渲染的图形,其表示由主机处理系统基于由服务器确定的远程渲染优先化值的集合来渲染的组件。客户端设备将本地渲染的组件与由服务器计算系统提供的渲染的组件合成,诸如基于坐标/对准信息来创建要显示的场景,该场景的各部分由本地和远程渲染的组件形成。

图2示出了根据一个或多个实施例的示例场景,其描绘要被渲染(无论以本地、远程还是其某种组合的方式)以用于由客户端设备显示的三维(3D)虚拟环境200内的游戏玩法的线框表示。在所描绘的实施例中,虚拟环境200包括该虚拟环境内各种不同复杂度和对游戏用户的虚拟视点(例如,用户观看虚拟环境的坐标和取向,在本文中与“虚拟观看位置”可互换使用)具有不同接近度的程度的各种对象。具体地,虚拟环境200包括第一人称武器对象205,该第一人称武器对象205具有相对高的复杂度和与用户的虚拟视点的非常高的接近度的程度;几个盒体对象210(分别指示为盒体对象210-1、210-2和210-3),每个盒体对象具有低复杂度的程度和与虚拟视点的相对高的接近度的程度;虚拟显示对象215,该虚拟显示对象215具有相对低的复杂度的程度和与虚拟视点的低接近度的程度;小的楼梯230的集合,该小的楼梯230的集合通向小的出口房间235,每个楼梯具有相对高的复杂度的程度和与虚拟视点的低接近度的程度;以及抵靠虚拟房间天花板245放置的天花板梁对象220的集合,每个天花板梁对象220具有低复杂度的程度和与虚拟视点的低接近度的程度。

在某些实施例中,服务器计算设备可以通信地耦合到对象数据库,该对象数据库包含唯一标识符的集合,每个唯一标识符与表示二维或三维对象的一个或多个组件的信息相关联,诸如当首次渲染对象时可以由服务器计算设备存储,并且当服务器计算设备识别对象先前已经被渲染时可以被取回以用于更快的渲染。

在操作期间,一个或多个远程服务器计算设备(在该示例中被描述为基于由一个或多个居间网络、线缆或其他传输介质与本地用户远离的“远程”)接收关于要被呈现以供本地客户端设备显示的虚拟环境200的组件的信息。出于图2的示例场景的目的,假设虚拟环境被提供用于作为执行游戏应用的一部分,由一个或多个服务器计算设备(诸如图1的服务器104)或由通信地耦合到服务器计算设备的客户端计算设备(诸如图1的客户端设备110)渲染。在任一情况下,服务器计算设备接收关于虚拟环境200内的对象的组件的信息。虽然为了简洁起见,该持续的示例将引用单个服务器,但是应当理解,在各种场景和实施例中,这样的服务器可以包括单独地或组合地操作的一个或多个服务器计算设备。

虚拟环境200内的每个列出的对象可以包括多个组件。作为非限制性示例,虚拟环境中的对象可以包括一个或多个模型组件,每个模型组件描述一个或多个表面几何结构和/或坐标图(例如,作为二维或三维空间中的点的集合);描述与对象的至少一部分相关联的位置、方位和/或取向的姿态信息;一个或多个材料组件,每个材料组件描述包括对象的至少一部分的虚拟材料(例如,石头、金属、玻璃等)的一个或多个方面;一个或多个纹理组件,每个纹理组件描述对象的一个或多个表面的一个或多个方面;以及一个或多个照明组件,每个照明组件描述要与对象相关联地渲染的照明效果。例如,盒体对象210-1可以包括描述其在虚拟环境200中的物理几何形状和位置的模型组件;用于描述盒体对象的一些或所有表面的一个或多个材料组件;以及用于描述这样的表面的一个或多个纹理组件。

响应于接收到关于虚拟环境200的组件的信息,服务器确定与虚拟环境中的组件(例如,个体对象或其部分)相对应的远程渲染优先化值的集合。该远程渲染优先化值的集合指示由一个或多个服务器计算设备渲染多个组件中的各个组件的优先化程度。在各种实施例和场景中,服务器可以基于各种准则来确定远程渲染优先化值的集合。作为非限制性示例,服务器计算设备可以基于以下各项中的一项或多项来确定远程渲染优先化值的集合:通信地耦合在服务器和客户端设备之间的一个或多个网络的网络状况,诸如网络时延、网络带宽或其他网络状况的程度;虚拟环境200中的用户的虚拟视点与虚拟环境中的一个或多个组件之间的空间接近度;与虚拟环境中的一个或多个组件相关联的复杂度的程度;与虚拟环境中的一个或多个对象和/或组件相关联的最近运动的程度(诸如紧接在渲染场景的相关联的请求之前的定义的秒数内)或预测的运动(诸如紧接在渲染场景的请求之后的定义的秒数内);以及对先前已经由服务器计算设备在当前虚拟环境200中或在一个或多个先前虚拟环境中渲染的一个或多个组件的分析,诸如如果对象先前已经被存储在服务器的对象数据库中。

图3描绘了图2的虚拟环境200内的对象的、基于它们的相对复杂度和与该虚拟环境内的用户的虚拟视点的接近度的简化的相对远程渲染优先化图形300。如本文所使用的,对象的复杂度可以指与对象相关联的组件的数量(例如,表面、纹理图、凹凸贴图(bumpmap)、光照图、镜面组件等)。另外,单个组件可与相对复杂度的程度相关联,相对复杂度的程度(作为非限制性实例)是基于与组件相关联的坐标点、三角形、曲线、样条(spline)或其它基元(primitive)的数量。因此,与对象相关联的相对复杂度的程度可反映其单个组件的评估整体。

如本文其他地方所述,指派给虚拟环境200内的组件的远程渲染优先化值指示由服务器渲染那些组件的优先化程度。此外,图3进一步描绘了由环境渲染阈值305、310和315表示的那些对象的不同环境渲染阈值。应当理解,为了简单起见,虚拟环境内的每个对象作为整体被置于远程渲染优先化图形300上,而不是单独地表示那些对象的每个组件。在实际操作中,服务器可以例如确定远程渲染对象的一个或多个组件,而客户端可以在将远程渲染的组件与本地渲染的组件合成以生成和显示用户的完整场景之前渲染那些组件的表面上的镜面反射或其他视图相关的效果。

在各种实施例中,环境渲染阈值可以基于各种准则来确定,包括一个或多个显示时延目标(例如,目标时延阈值、目标平均时延阈值等),通信地耦合在服务器和本地客户端设备之间的一个或多个网络的一个或多个网络状况。在某些实施例中,环境渲染阈值可以被确定为指派的远程渲染优先化值的阈值,使得由服务器渲染指派有满足或超过环境渲染阈值的远程渲染优先化值的对象,而由本地客户端设备渲染被指派有低于环境渲染阈值的远程渲染优先化值的对象。

在图3的实施例中,环境渲染阈值305、310和315中的每一个表示总体网络状况(包括时延、带宽等),其指示是否要由远程服务器或本地客户端设备执行针对特定对象的渲染。具体地,服务器可以确定渲染在远程渲染优先化图形300上位于给定环境渲染阈值外部的对象的组件,而客户端设备渲染位于同一环境渲染阈值内的对象的组件。

例如,环境渲染阈值305表示相对好的网络状况,使得远程服务器可以渲染虚拟环境200内除了盒体对象210之外的所有枚举对象,每个枚举对象与低复杂度的程度(由相对少的表面、纹理等组成)和用户的虚拟视点的相对高的接近度的程度相关联。环境渲染阈值310表示中等网络状况,使得本地客户端设备渲染盒体对象210和第一人称武器对象205两者,而远程服务器渲染虚拟显示对象215、天花板梁对象220、虚拟房间天花板225、楼梯230和出口房间235。环境渲染阈值315表示相对差的网络状况,使得本地客户端设备将渲染虚拟环境200内除了虚拟房间天花板225、楼梯230和出口房间235之外的所有枚举对象。在各种实施例和场景中,服务器可以动态地调整环境渲染阈值以适应变化的网络状况,以便满足一个或多个显示时延目标(例如,维持显示时延低于100ms,平均显示时延低于80ms,和/或其他定义的度量)。应当理解,尽管环境渲染阈值305、310和315在这里被描绘为具有除了半径之外曲率和外观基本上相同的弧,但是服务器可以利用各种动态环境渲染阈值来实现这样的目标,诸如基于客户端设备的相对计算带宽、基于正在渲染的游戏应用输出或其他应用输出的类型的动态时延目标、或其他准则。

在某些实施例中,在确定虚拟环境200的组件的远程渲染优先化值的集合之后,服务器可以通过渲染第一组件的集合来生成虚拟环境的部分场景并将渲染的第一组件的集合传送到客户端设备,以诸如用于与由客户端设备本身渲染的虚拟环境的第二组件的集合合成。客户端设备然后经由显示器向用户呈现虚拟环境的合成场景,该显示器耦合到客户端设备(如图1的客户端设备110-1)或集成在客户端设备内(如图1的客户端设备110-2或110-3)。

图4是示出根据一个或多个实施例的基于处理器的服务器系统的操作例程的概述的框图。该例程可以例如由图1的服务器104中的一个或多个、由图5的云游戏服务器计算系统500或通过一些其他实施例来执行。

例程开始于框405,其中基于处理器的服务器系统接收关于要被渲染以显示给远程客户端计算设备的用户的虚拟环境的多个组件的信息。远程客户端计算设备例如可以是图1的客户端计算设备110之一。例程然后进行到框410。

在框410处,基于处理器的服务器系统确定指示要由基于处理器的服务器系统执行的虚拟环境中的各个组件的图形渲染的优先化的远程渲染优先化值的集合。在各种实施例中,远程渲染优先化值的集合的确定可以基于准则450中的一个或多个。在所描绘的实施例中,准则450包括网络状况准则450-1,指示通信地耦合到基于处理器的服务器系统的一个或多个网络的状况(诸如可以指示与带宽、时延等相关的参数);空间接近度准则450-2,指示虚拟环境中的虚拟视点与虚拟环境中的一个或多个组件之间的空间接近度;组件复杂度准则450-3,指示与虚拟环境中的一个或多个组件相关联的复杂度的程度;最近运动准则450-4,指示与虚拟环境中的一个或多个组件相关联的最近运动的程度;预测的运动准则450-5,指示与虚拟环境的一个或多个组件相关联的预测的运动的程度;以及先前环境准则450-6,基于在当前虚拟环境或一个或多个先前虚拟环境中的、已经全部或部分地由基于处理器的服务器系统渲染的相同或相似的组件的分析。作为一个示例,基于处理器的服务器系统可以向虚拟环境中的每个对象指派指定范围(例如,从0.001到1.000)的远程渲染优先化值,其中较高的值指示服务器系统将在图形环境中渲染该对象同时仍然符合一个或多个定义的环境渲染阈值(例如,时延要求、平均时延要求、渲染质量要求等)的较大可能性。应当理解,可以利用指派这样的远程渲染优先化值的任何系统,而不偏离意图的实施例的范围。

在基于准则450和所接收的关于要在当前虚拟环境中渲染的多个组件的信息来确定远程渲染优先化值的集合之后,例程进行到框415。

在框415处,基于处理器的服务器系统渲染第一组件的集合,其中由于所确定的远程呈现优先化值的集合而使此类第一组件优先化以供基于处理器的服务器系统渲染。例如,继续参考以上示例,服务器系统可以确定渲染与大于0.43的远程渲染优先化值相关联的所有对象,以便与一个或多个定义的环境渲染阈值相称,诸如以确保在用户在虚拟环境中移动与用户看到该移动的结果之间的时延从不超过100ms。在基于处理器的服务器系统已渲染第一组件的集合之后,例程进行到框420。

在框420处,基于处理器的服务器系统基于其对第一组件的集合的渲染来生成虚拟环境的部分场景;在框425处,基于处理器的服务器系统向远程客户端设备传送表示部分场景的信息,以用于在远程客户端设备渲染虚拟环境中的剩余组件后与那些剩余组件进行合成。在某些实施例中,诸如在其中第一渲染组件的集合被提供给远程客户端设备的实施例或场景中,其中信息(例如,坐标映射信息)允许远程客户端设备独立地对准虚拟环境内的第一渲染组件的集合,基于处理器的服务器系统可以省略部分场景的生成,。

图5是示出适于实现一个或多个实施例的计算系统500的示例的组件级框图。在替代实施例中,计算系统500可以作为独立设备操作,或者可以连接(例如,联网)到其他系统。在各种实施例中,计算系统500的一个或多个组件可以被包含作为一个或多个服务器计算系统或包含在其内,以根据本文描述的技术提供各种类型的渲染内容。应当理解,相关联的服务器计算设备可以包括计算系统500的一些组件,但不一定包括所有组件。在联网部署中,计算系统500在服务器-客户端网络环境中可以在服务器机器、客户端机器或两者的容量下操作。在至少一个示例中,计算系统500可以充当对等(P2P)(或其他分布式)网络环境中的对等系统。计算系统500可以是服务器计算机、个人计算机(PC)、平板PC、机顶盒(STB)、移动计算设备、web装置、网络路由器、交换机或桥接器、或者能够执行指定要由该系统采取的动作的指令(顺序地或以其他方式)的任何系统。此外,虽然仅示出了单个系统,但是术语“系统”还应当被视为包括单独地或联合地执行一个(或多个)指令集以执行本文讨论的方法中的任何一个或多个的任何系统的集合,诸如云计算、软件即服务(SaaS)、其他计算机集群配置。

如本文所述,示例可以包括逻辑或多个组件或机制,或可以通过其来操作。电路系统(circuitry)是在包括硬件(例如,简单电路、门、逻辑等)的有形实体中实现的电路的集合。电路系统成员组成可以随时间和底层硬件可变性而是灵活的。电路系统包括可单独或组合地在操作时执行指定操作的成员。在示例中,电路系统的硬件可以被不可变地设计为执行特定操作(例如,硬连线)。在示例中,电路系统的硬件可以包括可变地连接的物理组件(例如,执行单元、晶体管、简单电路等),其包括计算机可读介质(例如,磁、电、可移动放置不变的映射粒子等),其被物理地修改的以对特定操作的指令进行编码。在连接物理组件时,硬件组件的底层电特性例如从绝缘体变为导体,反之亦然。指令使得嵌入的硬件(例如,执行单元或加载机制)能够经由可变连接在硬件中创建电路系统的成员,以在操作时执行特定操作的部分。因此,当设备操作时,计算机可读介质通信地耦合到电路系统的其他组件。在示例中,可以在多于一个电路的多于一个成员中使用任何物理组件。例如,在操作下,执行单元可以在一个时间点被用于第一电路系统的第一电路中,并且被第一电路系统中的第二电路或由第二电路系统中的第三电路在不同的时间重复使用。

计算系统500可以包括一个或多个硬件处理器502(例如,中央处理单元(CPU)、硬件处理器核心或其任何组合)、主存储器504和图形处理单元(GPU)506,其中的一些或全部可以经由互连链路(例如,总线)508彼此通信。计算系统500还可以包括显示单元510(诸如显示监视器或其他显示设备)、字母数字输入设备512(例如,键盘或其他物理或基于触摸的致动器)和用户界面(UI)导航设备514(例如,鼠标或其他定点设备,诸如基于触摸的接口)。在一个示例中,显示单元510、输入设备512和UI导航设备514可以包括触摸屏显示器。计算系统500可以另外包括存储设备(例如,驱动单元)516、信号生成设备518(例如,扬声器)、网络接口设备520和一个或多个传感器521,诸如全球定位系统(GPS)传感器、罗盘、加速度计或其他传感器。计算系统500可以包括输出控制器528,诸如串行(例如,通用串行总线(USB)、并行或其他有线或无线(例如,红外(IR)、近场通信(NFC)等)连接以传送或控制一个或多个外围设备(例如,打印机、读卡器等)。

存储设备516可包含计算机可读介质522,其上存储体现或由本文中所描述的技术或功能中的任何一或多者利用的数据结构523(例如,数据库)或指令524(例如,软件)的一个或多个集合。指令524还可在由计算系统500执行期间完全或至少部分地驻留在主存储器504内、GPU 506内或硬件处理器502内。在示例中,硬件处理器502、主存储器504、GPU 506或存储设备516中的一个或任何组合可以构成计算机可读介质。

虽然计算机可读介质522被示为单个介质,但是术语“计算机可读介质”可以包括被配置为存储一个或多个指令524的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。

术语“计算机可读介质”可以包括能够存储、编码或承载用于由计算系统500执行的指令并且使计算系统500执行本公开的技术中的任何一个或多个的任何介质,或者能够存储、编码或承载由此类指令使用或与此类指令相关联的数据结构的任何介质。非限制性计算机可读介质示例可以包括固态存储器以及光学和磁介质。在示例中,集中式计算机可读介质包括具有多个粒子的计算机可读介质,该多个粒子具有不变的(例如,静止)质量。因此,聚合的计算机可读介质不是暂时性传播信号。聚合的计算机可读介质的具体示例可以包括:非易失性存储器,诸如半导体存储器设备(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和闪存设备;磁盘,诸如内部硬盘和可移动盘;磁光盘;以及CD-ROM和DVD-ROM盘。

指令524还可以使用传输介质经由网络接口设备520利用多种传输协议(例如,帧中继、互联网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传输协议(HTTP)等)中的任何一种通过通信网络526传送或接收。示例通信网络可以包括局域网(LAN)、广域网(WAN)、分组数据网络(例如,互联网)、移动电话网络(例如,蜂窝网络)、普通老式电话(POTS)网络和无线数据网络(例如,称为Wi-

在一些实施例中,上述技术的某些方面可以由执行软件的处理系统的一个或多个处理器来实现。软件包括存储或以其他方式有形地体现在非暂时性计算机可读存储介质上的一个或多个可执行指令集。软件可以包括在由一个或多个处理器执行时操纵一个或多个处理器以执行上述技术的一个或多个方面的指令和某些数据。非暂时性计算机可读存储介质可以包括例如磁盘或光盘存储设备、诸如闪存的固态存储设备、高速缓存、随机存取存储器(RAM)或其他非易失性存储器设备或设备等。存储在非暂时性计算机可读存储介质上的可执行指令可以是源代码、汇编语言代码、目标代码或由一个或多个处理器解释或以其他方式可执行的其他指令格式。

计算机可读存储介质可以包括在使用期间可由计算机系统访问以向计算机系统提供指令和/或数据的任何存储介质或存储介质的组合。这样的存储介质可以包括但不限于光学介质(例如,光盘(CD)、数字通用盘(DVD)、蓝光盘)、磁介质(例如,软盘、磁带或磁硬盘驱动器)、易失性存储器(例如,随机存取存储器(RAM)或高速缓存)、非易失性存储器(例如,只读存储器(ROM)或闪速存储器)或基于微机电系统(MEMS)的存储介质。计算机可读存储介质可以嵌入在计算系统(例如,系统RAM或ROM)中,固定地附接到计算系统(例如,磁性硬盘驱动器),可移除地附接到计算系统(例如,基于光盘或通用串行总线(USB)的闪存),或者经由有线或无线网络耦合到计算机系统(例如,网络可访问存储(NAS))。

注意,并非以上在一般描述中描述的所有活动或元素都是必需的,可能不需要特定活动或设备的一部分,并且除了所描述的那些之外,还可以执行一个或多个另外的活动或包括元素。此外,列出活动的顺序不一定是执行活动的顺序。此外,已经参考特定实施例描述了概念。然而,本领域普通技术人员将理解,在不脱离如在所附权利要求书中阐述的本公开的范围的情况下,可以进行各种修改和改变。因此,说明书和附图将被认为是说明性的而非限制性的,并且所有这些修改旨在被包括在本公开的范围内。

以上关于具体实施例描述了益处、其他优点以及对问题的解决方案。然而,益处、优点、对问题的解决方案以及可能导致任何益处、优点或解决方案发生或变得更明显的任何特征不应被解释为任何或所有权利要求的关键、必需或必要特征。此外,以上公开的特定实施例仅是说明性的,因为所公开的主题可以以与对于受益于本文的教导的本领域技术人员显而易见的方式不同但等效的方式来修改和实践。除了如所附权利要求书中描述的之外,不旨在对本文所示的构造或设计的细节进行限制。因此显而易见的是,上面公开的特定实施例可以被改变或修改,并且所有这些变化都被认为在所公开的主题的范围内。因此,本文所寻求的保护如所附权利要求书中所述。

相关技术
  • 一种智能垃圾桶的自动打包机构及垃圾桶
  • 一种垃圾桶自动打包收袋结构及智能垃圾桶
技术分类

06120116572105