CN110832442A - 注视点渲染***中的优化的阴影和自适应网状蒙皮 - Google Patents
注视点渲染***中的优化的阴影和自适应网状蒙皮 Download PDFInfo
- Publication number
- CN110832442A CN110832442A CN201880045164.2A CN201880045164A CN110832442A CN 110832442 A CN110832442 A CN 110832442A CN 201880045164 A CN201880045164 A CN 201880045164A CN 110832442 A CN110832442 A CN 110832442A
- Authority
- CN
- China
- Prior art keywords
- game
- shadow
- user
- rendering
- foveal region
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/013—Eye tracking input arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/60—Shadow generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/506—Illumination models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2215/00—Indexing scheme for image rendering
- G06T2215/12—Shadow map, environment map
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本发明提供一种用于实施图形管线的方法。所述方法包括构建高分辨率的第一阴影图,并且基于较低分辨率的所述第一阴影图而构建第二阴影图。所述方法包括确定影响虚拟场景的光源,并且从第一视角将所述虚拟场景的图像的对象的几何图形投影到显示器的多个像素上。所述方法包括在渲染所述图像时确定中心凹区域,其中所述中心凹区域对应于用户的注意力指向处。所述方法包括:确定将第一组几何图形绘制到第一像素;基于所述光源而确定所述第一组几何图形处于阴影中;以及确定所述第一组几何图形处于所述中心凹区域之外。所述方法包括使用所述第二阴影图来渲染所述第一组几何图形。
Description
背景技术
视频游戏随着视频游戏技术的进步而越来越流行。举例来说,高性能图形处理器在播放视频游戏时提供难以置信的观看和交互体验。另外,显示器被设计成具有越来越高的分辨率。举例来说,目前的技术包括纵横比为约19:10的具有2K分辨率(例如,2.2百万像素(2048x1080个像素))的显示器。现在将纵横比为16:9的具有4KUHD(超高清晰度)分辨率(例如,8.2百万像素(3840x2160个像素))的其他显示器推向市场并且预期得到牵引。增加的图形处理能力以及高分辨率显示器尤其当玩被设计成利用较高分辨率显示器的视频游戏和游戏引擎时为用户提供迄今为止难以置信的观看体验。
将所渲染的图像/帧推送到高分辨率显示器还需要例如渲染引擎与显示器之间的增加的带宽能力。在大多数情况下,有线连接将能够处置支持所述显示器的所需带宽。然而,游戏***越来越多地配置有无线连接,这在将数据推送到显示器时引起瓶颈。例如,可以在用户本地的游戏控制台与显示器之间建立无线连接。在这些情况下,所述无线连接可能不足够稳健来处置完全利用所述较高分辨率显示器所需的带宽,使得可能会中断所显示的视频游戏(在缓冲器填满时),以便显示所渲染的整个视频序列。在一些情况下,可以节制视频游戏处理以便使无线连接的较低带宽与显示器匹配,使得可以在较低的分辨率下渲染视频帧以便无中断地经由所述无线连接推送视频数据;然而,由于节制所述处理,用户不承认整个游戏体验具有较高分辨率图形。
将有益的是,尤其当玩视频游戏时修改图形处理以让用户实现高用户满意水平。
在此背景下出现了本公开的实施例。
发明内容
本公开的实施例涉及注视点渲染,所述注视点渲染被配置成使用高分辨率显示中心凹区域中的图像的部分并且使用较低分辨率显示所述中心凹区域之外的部分。具体来说,使用高分辨率的阴影图来渲染在中心凹区域之内的图像中的对象的阴影。使用较低分辨率的阴影图来渲染在所述中心凹区域之外的对象的阴影。因此,不是以较高分辨率计算所有阴影,而是仅使用较高分辨率的阴影图来渲染在所述中心凹区域内显示的阴影。通过那种方式,例如部分地由于复杂性更小的图像而减小了所显示的视频帧序列的总带宽。此外,因为降低了计算复杂性,所以可以在最小的等待时间或没有等待时间的情况下实时地递送(例如,经由有线或无线连接)所述视频帧序列。另外,使用全分辨率的骨骼分层结构来执行和渲染在中心凹区域之内的图像中的对象的动画。使用较低分辨率的骨骼分层结构来执行和渲染在中心凹区域之外的对象的动画。因此,使用较低分辨率的骨骼分层结构来动画化和渲染位于***区域中的对象,这减少了用于渲染所述对象的处理成本。通过那种方式,减小了所显示的视频帧序列的总带宽。
在一个实施例中,公开了一种用于实施图形管线的方法。所述方法包括构建高分辨率的第一阴影图。所述方法包括基于所述第一阴影图来构建第二阴影图,其中所述第二阴影图具有比所述第一阴影图更低的分辨率。所述方法包括确定影响虚拟场景的光源。所述方法包括从第一视角将所述虚拟场景的图像的对象的几何图形投影到显示器的多个像素上。所述方法包括在渲染所述虚拟场景的所述图像时确定中心凹区域,其中所述中心凹区域对应于用户的注意力指向处。所述方法包括确定将第一组几何图形绘制到第一像素。所述方法包括基于光源而确定所述第一组几何图形处于阴影中。所述方法包括确定所述第一组几何图形处于所述中心凹区域之外。所述方法包括使用所述第二阴影图来渲染所述第一像素的所述第一组几何图形。
在另一实施例中,公开了一种计算机***。所述计算机***包括处理器和存储器,其中所述存储器耦合到所述处理器并且具有存储在其中的指令,所述指令在由所述计算机***执行时致使所述计算机***执行用于实施图形管线的方法。所述方法包括构建高分辨率的第一阴影图。所述方法包括基于所述第一阴影图来构建第二阴影图,其中所述第二阴影图具有比所述第一阴影图更低的分辨率。所述方法包括确定影响虚拟场景的光源。所述方法包括从第一视角将所述虚拟场景的图像的对象的几何图形投影到显示器的多个像素上。所述方法包括在渲染所述虚拟场景的所述图像时确定中心凹区域,其中所述中心凹区域对应于用户的注意力指向处。所述方法包括确定将第一组几何图形绘制到第一像素。所述方法包括基于光源而确定所述第一组几何图形处于阴影中。所述方法包括确定所述第一组几何图形处于所述中心凹区域之外。所述方法包括使用所述第二阴影图来渲染所述第一像素的所述第一组几何图形。
在另一实施例中,公开了一种非暂时性计算机可读介质,所述非暂时性计算机可读介质存储用于实施图形管线的计算机程序。所述计算机可读介质包括用于构建高分辨率的第一阴影图的程序指令。所述介质包括用于基于所述第一阴影图来构建第二阴影图的程序指令,其中所述第二阴影图具有比所述第一阴影图更低的分辨率。所述介质包括用于确定影响虚拟场景的光源的程序指令。所述介质包括用于从第一视角将所述虚拟场景的图像的对象的几何图形投影到显示器的多个像素上的程序指令。所述介质包括用于在渲染所述虚拟场景的所述图像时确定中心凹区域的程序指令,其中所述中心凹区域对应于用户的注意力指向处。所述介质包括用于确定将第一组几何图形绘制到第一像素的程序指令。所述介质包括用于基于光源而确定所述第一组几何图形处于阴影中的程序指令。所述介质包括用于确定所述第一组几何图形处于所述中心凹区域之外的程序指令。所述介质包括用于使用所述第二阴影图来渲染所述第一像素的所述第一组几何图形的程序指令。
在一个实施例中,公开了一种用于实施图形管线的方法。所述方法包括产生对象的多个骨骼,从而界定所述骨骼之间的定位关系。所述方法包括从所述对象的所述多个骨骼确定骨骼子***。所述方法包括在渲染包括所述对象的所述虚拟场景的图像时确定中心凹区域,其中所述中心凹区域对应于用户的注意力指向处。所述方法包括确定所述对象的至少一个部分位于所述图像的***区域中。所述方法包括通过向所述骨骼子***应用变换而使所述对象动画化。
在另一实施例中,公开了一种计算机***。所述计算机***包括处理器和存储器,其中所述存储器耦合到所述处理器并且具有存储在其中的指令,所述指令在由所述计算机***执行时致使所述计算机***执行用于实施图形管线的方法。所述方法包括产生对象的多个骨骼,从而界定所述骨骼之间的定位关系。所述方法包括从所述对象的所述多个骨骼确定骨骼子***。所述方法包括在渲染包括所述对象的所述虚拟场景的图像时确定中心凹区域,其中所述中心凹区域对应于用户的注意力指向处。所述方法包括确定所述对象的至少一个部分位于所述图像的***区域中。所述方法包括通过向所述骨骼子***应用变换而使所述对象动画化。
在另一实施例中,公开了一种非暂时性计算机可读介质,所述非暂时性计算机可读介质存储用于实施图形管线的计算机程序。所述计算机可读介质包括用于产生对象的多个骨骼从而界定所述骨骼之间的定位关系的程序指令。所述介质包括用于从所述对象的所述多个骨骼确定骨骼子***的程序指令。所述介质包括用于在渲染包括所述对象的所述虚拟场景的图像时确定中心凹区域的程序指令,其中所述中心凹区域对应于用户的注意力指向处。所述介质包括用于确定所述对象的至少一个部分位于所述图像的***区域中的程序指令。所述介质包括用于通过向所述骨骼子***应用变换而使所述对象动画化的程序指令。
通过结合附图进行的以下详细描述,本公开的其他方面将变得显而易见,以下详细描述举例说明本公开的原理。
附图说明
通过参考结合附图进行的以下描述来最佳地理解本公开,其中:
图1A说明根据本公开的一个实施例的被配置成提供与VR内容的交互式体验的***。
图1B至图1C在概念上说明根据本发明的实施例的结合执行的视频游戏的HMD的功能。
图2A说明根据本公开的一个实施例的向玩一个或多个游戏应用的一个或多个用户提供游戏控制的***,所述一个或多个游戏应用在对应用户本地执行。
图2B说明根据本公开的一个实施例的向玩在云游戏网络上执行的游戏应用的一个或多个用户提供游戏控制的***。
图3A说明根据本公开的一个实施例的在显示器上示出并且包括高分辨率的中心凹区域的图像,其中所述中心凹区域对应于所述显示器的中心。
图3B说明根据本公开的一个实施例的在显示器上示出并且包括高分辨率的中心凹区域的图像,其中所述中心凹区域对应于用户的注视所指向的显示器的位置。
图4说明根据本公开的一个实施例的实施针对注视点渲染而配置的图形管线的图形处理器,所述注视点渲染包括使用不同的阴影图来渲染阴影,其中基于所述阴影是否处于中心凹区域中而使用适当的阴影图渲染阴影,并且其中基于所显示的所述阴影的相对于所述中心凹区域的位置而使用适当的阴影图渲染所述阴影。
图5是说明根据本公开的一个实施例的用于实施针对注视点渲染而配置的图形管线的方法中的步骤的流程图,所述注视点渲染包括使用不同的阴影图来渲染阴影,其中使用较高分辨率渲染中心凹区域中的图像的部分,并且使用较低分辨率渲染***区域中的图像的部分,并且其中基于所显示的所述阴影的相对于中心凹区域的位置而使用适当的阴影图渲染阴影。
图6A是根据本公开的一个实施例的游戏世界的虚拟场景的图像的说明,其中所述图像示出渲染在中心凹区域中显示的阴影。
图6B是根据本公开的一个实施例的在图像中渲染的在图6A中介绍的虚拟场景的说明,并且示出渲染在***区域中显示的阴影。
图6C是根据本公开的一个实施例的具有向在图6A中介绍的虚拟场景施加的逐步降低的分辨率的一系列阴影图的说明。
图7说明根据本公开的一个实施例的实施针对注视点渲染而配置的图形管线的图形处理器,所述注视点渲染包括依据动画化的对象是否在中心凹区域中显示而使用不同的骨骼分层结构来动画化和渲染所述对象。
图8是说明根据本公开的一个实施例的用于实施针对注视点渲染而配置的图形管线的方法中的步骤的流程图,其中使用较高分辨率渲染中心凹区域中的图像的部分,并且使用较低分辨率渲染***区域中的图像的部分,并且其中使用高分辨率的骨骼分层结构来执行中心凹区域中的对象的动画化和渲染,并且使用低分辨率的骨骼分层结构来执行***区域中的对象的动画化和渲染。
图9是说明根据本公开的一个实施例的当在中心凹区域中显示对象时使用高分辨率的骨骼分层结构来动画化和渲染对象,并且当在***区域中显示对象时使用低分辨率的骨骼分层结构来动画化和渲染对象。
图10是说明根据本公开的实施例的头戴式显示器的部件的图。
图11是根据本公开的各种实施例的游戏***的框图。
具体实施方式
虽然以下详细描述出于说明的目的而含有许多具体细节,但本领域普通技术人员将了解,对以下细节的许多变化和更改在本公开的范围内。因此,在不失在此描述之后的权利要求的一般性并且不向权利要求强加限制的情况下陈述在下文所描述的本公开的各方面。
一般来说,本公开的各种实施例描述被配置成执行注视点渲染的视频渲染***的图形处理器,其中可以使用高分辨率渲染中心凹区域中的图像的部分,并且使用较低的分辨率渲染在所述中心凹区域之外的部分。具体来说,使用较高分辨率的阴影图来渲染在中心凹区域之内显示的对象的阴影,并且使用较低分辨率的阴影图来渲染在中心凹区域之外显示的对象的阴影。而且,当对象处于***区域中时,使用低分辨率的骨骼分层结构来执行对象的动画,使得还使用与所述低分辨率骨骼分层结构相关联的较低分辨率图元来渲染所述对象。而且,当对象处于中心凹区域中时,使用高分辨率的骨骼分层结构来执行对象的动画,使得使用与所述高分辨率骨骼分层结构相关联的较高分辨率图元来渲染所述对象。在一些实施例中,在头戴式显示器(HMD)内的图像内执行注视点渲染,或者执行注视点渲染以便显示所述图像。
通过对各个实施例的以上一般理解,现在将参见各个图式来描述实施例的示例性细节。
在整个说明书中,对“视频游戏”或“游戏应用”的参考打算表示通过执行输入命令而引导的任何类型的交互式应用。仅出于说明目的,交互式应用包括用于游戏、字处理、视频处理、视频游戏处理等的应用。此外,术语视频游戏和游戏应用是可以互换的。
图1A说明根据本发明的实施例的用于视频游戏的交互式玩法的***。用户100示出为穿戴着头戴式显示器(HMD)102。通过与眼镜、护目镜或头盔类似的方式穿戴HMD 102,并且所述HMD被配置成向用户100显示来自交互式视频游戏的视频游戏或来自交互式应用的其他内容。HMD 102通过紧密接近用户的眼睛提供显示机制而向用户提供深度沉浸式体验。因此,HMD 102可以向用户的眼睛中的每只眼睛提供显示区,所述显示区占据用户的视场的大部分或甚至全部。虽然图1A至图1B以及在其他图中示出为使用HMD来显示所渲染的图像,但本发明的实施例良好地适合于在任何显示装置中执行注视点渲染,其中所述注视点渲染包括基于所述阴影相对于中心凹区域的位置来渲染图像中的阴影,并且在任何显示器上显示所渲染的图像。
在一个实施例中,HMD 102可配置以显示配置有注视点渲染的图像,其中使用高分辨率显示中心凹区域中的图像的部分,并且使用较低的分辨率显示在所述中心凹区域之外的部分。具体来说,依据阴影是在所显示的中心凹区域之内还是之外而不同地渲染阴影。举例来说,使用高分辨率的阴影图来渲染在中心凹区域之内的图像中的对象的阴影。使用较低分辨率的阴影图来渲染在所述中心凹区域之外的对象的阴影。因此,不是使用较高分辨率的阴影图计算所有阴影,而是仅使用较高分辨率的阴影图来渲染在所述中心凹区域内显示的阴影,从而减少渲染对应图像中的所有阴影所需的计算。而且,含有在中心凹区域之外的以较低分辨率渲染的阴影的每个图像需要比含有全部以较高分辨率渲染的阴影的图像更少的定义数据。通过那种方式,减小了所显示的视频帧序列的总带宽。
在一个实施例中,HMD 102可以连接到计算机或游戏控制台106。到计算机106的连接可以是有线或无线的。计算机106可以是在本领域中已知的任何通用计算机或专用计算机,包括(但不限于)游戏控制台、个人计算机、膝上型计算机、平板计算机、移动装置、蜂窝式电话、平板计算机、瘦客户端、机顶盒、媒体流式传输装置等。在一个实施例中,计算机106可以被配置成执行视频游戏,并且从所述视频游戏输出视频和音频以供HMD 102渲染。计算机106不限于执行视频游戏,而是还可以被配置成执行输出VR内容191以供HMD 102渲染的交互式应用。在一个实施例中,当渲染在中心凹区域之外显示的图像中的对象的阴影时,计算机106执行对较低分辨率的阴影图的选择和使用。
用户100可以操作控制器104以提供视频游戏的输入。另外,相机108可以被配置成捕获用户100所处的交互式环境的一个或多个图像。可以分析这些所捕获的图像以确定用户100、HMD 102和控制器104的位置和移动。在一个实施例中,控制器104包括灯或其他标记器元件,可以跟踪所述灯或其他标记器元件以确定其位置和定向。相机108可以包括一个或多个麦克风以捕获来自交互式环境的声音。可以处理由麦克风阵列捕获的声音以识别声音源的位置。可以选择性地利用或处理来自所识别的位置的声音以排除并非来自所识别的位置的其他声音。此外,可以将相机108界定为包括多个图像捕获装置(例如,立体像对相机)、IR相机、深度相机,和其组合。
在另一实施例中,计算机106充当经由网络与云游戏提供者112通信的瘦客户端。云游戏提供者112维持并执行用户102正在玩的视频游戏。计算机106将来自HMD 102、控制器104和相机108的输入传输到云游戏提供者,所述云游戏提供者处理所述输入以影响执行的视频游戏的游戏状态。将来自执行的视频游戏的输出(例如,视频数据、音频数据和触觉反馈数据)传输到计算机106。计算机106可以在传输之前进一步处理所述数据,或者可以将所述数据直接传输到相关装置。举例来说,将视频流和音频流提供给HMD 102,而使用触觉反馈数据以产生振动反馈命令,将所述振动反馈命令提供给控制器104。
在一个实施例中,HMD 102、控制器104和相机108自身可以是连接到网络110以与云游戏提供者112通信的连网装置。举例来说,计算机106可以是本地网络装置,例如路由器,其不另外执行视频游戏处理,而是促进通道网络业务。HMD 102、控制器104和相机(即,图像捕获装置)108到网络的连接可以是有线或无线的。
在另一实施例中,计算机106可以执行所述视频游戏的一部分,而可以在云游戏提供者112上执行所述视频游戏的剩余部分。在其他实施例中,还可以在HMD 102上执行所述视频游戏的部分。举例来说,云游戏提供者112可以服务来自计算机106的对下载视频游戏的请求。在服务所述请求时,云游戏提供者112可以执行所述视频游戏的一部分,并且将游戏内容提供给计算机106以便在HMD102上渲染。计算机106可以经由网络110与云游戏提供者112通信。在将视频游戏下载到计算机106上时,将从HMD 102、控制器104和相机108接收的输入传输到云游戏提供者112。云游戏提供者112处理所述输入以影响执行的视频游戏的游戏状态。将来自执行的视频游戏的输出(例如,视频数据、音频数据和触觉反馈数据)传输到计算机106以便转交给相应装置。
一旦已经将视频游戏完全下载到计算机106,计算机106便可以执行所述视频游戏并且重新开始所述视频游戏的玩法,在云游戏提供者112上在此处脱离。计算机106处理来自HMD 102、控制器104和相机108的输入,并且响应于从HMD 102、控制器104和相机108接收的输入来调整视频游戏的游戏状态。在这些实施例中,使计算机106处的视频游戏的游戏状态与云游戏提供者112处的游戏状态同步。可以周期性地进行所述同步以使计算机106和云游戏提供者112两者处的视频游戏的状态保持当前。计算机106可以将输出数据直接传输到相关装置。举例来说,将视频流和音频流提供给HMD102,而使用触觉反馈数据以产生振动反馈命令,将所述振动反馈命令提供给控制器104。
图1B在概念上说明根据本发明的实施例的结合VR内容191的产生(例如,执行应用和/或视频游戏等)的HMD 102的功能。在一些实现方式中,在通信地耦合到HMD 102的计算机106(未示出)上执行VR内容引擎120。所述计算机可以在HMD本地(例如,局域网的部分),或者可以远程地定位(例如,广域网、云网络等的部分)并且经由网络访问。HMD 102与计算机106之间的通信可以遵循有线连接协议或无线连接协议。举例来说,执行应用的VR内容引擎120可以是执行视频游戏的视频游戏引擎,并且被配置成接收输入以更新视频游戏的游戏状态。出于简明和清晰起见,在执行视频游戏的VR内容引擎120的背景内描述图1B的以下描述,并且意在表示执行能够产生VR内容191的任何应用。可以至少部分地通过界定当前游戏的各个方面的视频游戏的各种参数的值来界定视频游戏的游戏状态,所述方面例如为对象的存在和位置、虚拟环境的状况、事件的触发、用户简档、视角等。
在所说明的实施例中,举例来说,游戏引擎120接收控制器输入161、音频输入162和运动输入163。可以从与HMD 102分开的游戏控制器的操作来界定控制器输入161,所述游戏控制器例如为手持式游戏控制器104(例如,Sony无线控制器、Sony运动控制器)或可穿戴控制器,例如可穿戴手套接口控制器等。举例来说,控制器输入161可以包括方向输入、按钮按压、触发器启动、移动、手势或从游戏控制器的操作处理的其他种类的输入。可以从HMD 102的麦克风151或者从在图像捕获装置108中或本地***环境内的其他地方包括的麦克风来处理音频输入162。可以从在HMD 102中包括的运动传感器159或者在图像捕获装置108捕获HMD 102的图像时从所述图像捕获装置处理运动输入163。VR内容引擎120(例如,执行游戏应用)接收根据游戏引擎的配置而处理的输入以更新视频游戏的游戏状态。引擎120向各种渲染模块输出游戏状态数据,所述渲染模块处理所述游戏状态数据以界定将向用户呈现的内容。
在所说明的实施例中,界定视频渲染模块183来渲染视频流以供在HMD 102上呈现。注视点视图渲染器190被配置成与视频渲染模块183联合地和/或独立于所述视频渲染模块来渲染注视点图像。另外,在实施例中,可以将由注视点视图渲染器190提供的功能性并入视频渲染模块183内。具体来说,注视点视图渲染器190被配置成执行注视点渲染,其中中心凹区域中的图像的部分具有高分辨率,并且在所述中心凹区域之外的部分具有较低的分辨率。更具体地,使用较低分辨率的阴影图来渲染在所述中心凹区域之外的对象的阴影,以便减少用于渲染对应图像的计算。使用较高分辨率的阴影图来渲染在所述中心凹区域之内的对象的阴影。注视点片元确定器192被配置成确定被渲染的片元是在中心凹区域之内还是之外显示。阴影图选择器194被配置成确定在渲染对应片元时使用哪个阴影图。举例来说,当在中心凹区域之内显示片元时,选择较高分辨率的阴影图,并且当在中心凹区域之外显示片元时,选择较低分辨率的阴影图。此外,阴影图选择器194被配置成基于对应片元距所显示的中心凹区域的距离来选择适当的阴影图,其中基于距中心凹区域的距离来产生一系列阴影图,使得所述系列中的阴影图的分辨率随着距中心凹区域的距离增加而减小。阴影贴图产生器195被配置成构建较高分辨率和较低分辨率的阴影图,并且包括上文描述的所述一系列阴影图。举例来说,可以在较高分辨率下产生第一阴影图,并且可以基于所述第一阴影图而产生第一阴影图的其他贴图(mipmap)(例如,减小分辨率的阴影图)。具体来说,一系列贴图可以界定阴影图,每个阴影图具有第一阴影图的逐步降低的分辨率。
HMD 102中的光学器件170的透镜被配置成观看VR内容191。显示屏幕175设置在光学器件170的透镜后方,使得当用户穿戴HMD 102时,光学器件170的透镜处于显示屏幕175与用户的眼睛160之间。通过那种方式,可以通过显示屏幕/投影仪机构175呈现视频流,并且用户的眼睛160可以通过光学器件170观看所述视频流。HMD用户(例如)可以通过穿戴HMD并且选择用于游戏的视频游戏来选择与交互式VR内容191(例如,VR视频源、视频游戏内容等)交互。在HMD的显示屏幕175上渲染来自视频游戏的交互式虚拟现实(VR)场景。通过那种方式,HMD通过与用户的眼睛紧密接近地提供HMD的显示机构而允许用户完全沉浸在游戏中。在用于渲染内容的HMD的显示屏幕中界定的显示区域可能会占据用户的视场的大部分或甚至全部。通常,每只眼睛受到观看一个或多个显示屏幕的光学器件170的相关联的透镜支持。
音频渲染模块182被配置成渲染音频流以供用户收听。在一个实施例中,通过与HMD 102相关联的扬声器152输出所述音频流。应了解,扬声器152可以采取露天扬声器、耳机或能够呈现音频的任何其他种类的扬声器的形式。
在一个实施例中,在HMD 102中包括注视跟踪相机165以实现对用户的注视的跟踪。虽然仅包括一个注视跟踪相机165,但应注意,可以采用一个以上注视跟踪相机来跟踪用户的注视。注视跟踪相机捕获用户的眼睛的图像,对所述图像进行分析以确定用户的注视方向。在一个实施例中,可以利用关于用户的注视方向的信息以影响视频渲染。举例来说,如果确定用户的眼睛看向特定方向,那么可以例如通过以下方式来优先或着重那个方向的视频渲染:通过由注视点视图渲染器190提供的注视点渲染来提供更大的细节、更高的分辨率;提供在中心凹区域中显示的阴影的较高分辨率;提供在所述中心凹区域之外显示的阴影的较低分辨率;或在用户正在观看的区域中提供更快的更新。应了解,可以相对于头戴式显示器、相对于用户所处的实际环境,和/或相对于在头戴式显示器上正在渲染的虚拟环境来界定用户的注视方向。
一般来说,当单独地考虑时,对由注视跟踪相机165捕获的图像的分析提供用户相对于HMD 102的注视方向。然而,当与HMD102的跟踪位置和定向组合地考虑时,可以确定用户的现实世界注视方向,因为HMD 102的位置和定向与用户的头的位置和定向同义。也就是说,可以通过跟踪用户的眼睛的位置移动并且跟踪HMD 102的位置和定向来确定用户的现实世界注视方向。当在HMD 102上渲染虚拟环境的视图时,可以应用用户的现实世界注视方向以确定用户在虚拟环境中的虚拟世界注视方向。
另外,触觉反馈模块181被配置成向在HMD 102或由HMD用户操作的另一装置(例如,控制器104)中包括的触觉反馈硬件提供信号。触觉反馈可以采取各种触觉感觉的形式,例如振动反馈、温度反馈、压力反馈等。
图1C在概念上说明根据本发明的实施例的结合VR内容191的产生(例如,执行应用和/或视频游戏等)的HMD 102的功能。图1C类似于图1B,不同之处在于,图1C中的HMD 102包括针对自适应网状蒙皮而配置的注视点视图渲染器9190,而图1B中的HMD 102包括针对优化的阴影而配置的注视点视图渲染器190。图1B和图1C(以及整个说明书)中的类似编号的部件是相同的并且执行相同的功能。
在所说明的实施例中,界定视频渲染模块183来渲染视频流以供在HMD 102上呈现。注视点视图渲染器9190被配置成与视频渲染模块183联合地和/或独立于所述视频渲染模块来渲染注视点图像。另外,在实施例中,可以将由注视点视图渲染器9190提供的功能性并入视频渲染模块183内。具体来说,注视点视图渲染器9190被配置成执行注视点渲染,其中中心凹区域中的图像的部分具有高分辨率,并且在所述中心凹区域之外的部分具有较低的分辨率。更具体地,使用较低分辨率的骨骼分层结构来执行在所述中心凹区域之外的对象的动画化,以便减少用于渲染对应图像的计算。使用较高分辨率的骨骼分层结构来执行在中心凹区域之内的对象的动画化。注视点视图渲染器9190被配置成依据对象在对应图像中相对于中心凹区域的相应位置来执行所述对象的动画化和渲染。具体来说,注视点骨骼***确定器9192被配置成确定被动画化和/或渲染的骨骼(或其包括多边形或顶点等的图元)是在中心凹区域之内还是之外显示。骨骼***产生器9195被配置成产生用于将对象动画化的骨骼分层结构,并且包括骨骼***缩减器9196,所述骨骼***缩减器被配置成产生从较低分辨率的骨骼分层结构取得的骨骼子***,当对象处于***区域中时,可以使用所述骨骼子***来动画化和渲染所述对象。动画模块9199被配置成当对象处于中心凹区域中时使用高分辨率的骨骼分层结构来执行所述对象的动画化,并且当对象处于***区域中时使用低分辨率的骨骼分层结构来执行所述对象的动画化。骨骼***和子***渲染器9402被配置成执行在图形管线中进行的用于逐帧地渲染现在动画化的对象的操作。
在一个实施例中,在HMD 102中包括注视跟踪相机165以实现对用户的注视的跟踪。虽然仅包括一个注视跟踪相机165,但应注意,可以采用一个以上注视跟踪相机来跟踪用户的注视。注视跟踪相机捕获用户的眼睛的图像,对所述图像进行分析以确定用户的注视方向。在一个实施例中,可以利用关于用户的注视方向的信息以影响视频渲染。举例来说,如果确定用户的眼睛看向特定方向,那么可以例如通过以下方式来优先或着重那个方向的视频渲染:通过由注视点视图渲染器9190提供的注视点渲染来提供更大的细节、更高的分辨率;当动画化和渲染在中心凹区域中显示的对象时使用较高分辨率的骨骼分层结构;当动画化和渲染在***区域中显示的对象时使用较低分辨率的骨骼分层结构;或在用户正在观看的区域中提供更快的更新。应了解,可以相对于头戴式显示器、相对于用户所处的实际环境,和/或相对于在头戴式显示器上正在渲染的虚拟环境来界定用户的注视方向。
图2A说明向玩在对应用户本地执行的一个或多个游戏应用的一个或多个用户提供游戏控制的***200A,并且其中后端服务器支持(例如,可以通过游戏服务器205访问)可以被配置成支持多个本地计算装置,所述多个本地计算装置支持多个用户,其中每个本地计算装置可以例如在单玩家或多玩家视频游戏中执行视频游戏的例子。举例来说,在多玩家模式中,当所述视频游戏在本地执行时,云游戏网络同时从每个本地计算装置接收信息(例如,游戏状态数据)并且将那个信息相应地分发到所述本地计算装置中的一者或多者中,使得每个用户能够与多玩家视频游戏的游戏环境中的其他用户交互(例如,通过视频游戏中的对应人物)。通过那种方式,云游戏网络协调并组合多玩家游戏环境内的用户中的每一者的游戏。现在参看图式,相同的参考数字标示相同或对应的部分。
如图2A中所示,多个用户215(例如,用户100A、用户100B…用户100N)正在玩多个游戏应用,其中在对应用户的对应的客户端装置106(例如,游戏控制台)上在本地执行所述游戏应用中的每一者。客户端装置106中的每一者可以被类似地配置,使得执行对应的游戏应用的本地执行。举例来说,用户100A可以在对应的客户端装置106上玩第一游戏应用,其中通过对应的游戏标题执行引擎211来执行第一游戏应用的例子。实施所述第一游戏应用的游戏逻辑226A(例如,可执行代码)存储在对应的客户端装置106上,并且用于执行所述第一游戏应用。出于说明的目的,可以通过便携式介质(例如,快闪驱动器、高密度磁盘等)或通过网络(例如,通过互联网250从游戏提供者下载)将游戏逻辑递送到对应的客户端装置106。另外,用户100B在对应的客户端装置106上玩第二游戏应用,其中通过对应的游戏标题执行引擎211来执行所述第二游戏应用的例子。所述第二游戏应用可以与为用户100A执行的所述第一游戏应用相同,或者是不同的游戏应用。实施所述第二游戏应用的游戏逻辑226B(例如,可执行代码)存储在先前描述的对应的客户端装置106上,并且用于执行所述第二游戏应用。此外,用户100N在对应的客户端装置106上玩第N游戏应用,其中通过对应的游戏标题执行引擎211来执行所述第N游戏应用的例子。所述第N游戏应用可以与所述第一游戏应用或所述第二游戏应用相同,或者可以是完全不同的游戏应用。实施所述第三游戏应用的游戏逻辑226N(例如,可执行代码)存储在先前描述的对应的客户端装置106上,并且用于执行所述第N游戏应用。
如先前描述,客户端装置106可以从各种类型的输入装置(例如,游戏控制器、平板计算机、键盘、由摄像机捕获的手势、鼠标触摸板等)接收输入。客户端装置106可以是至少具有存储器和处理器模块的能够经由网络150连接到游戏服务器205的任何类型的计算装置。而且,对应用户的客户端装置106被配置成产生由在本地或远程地执行的游戏标题执行引擎211执行的所渲染的图像,并且在显示器(例如,显示器11、HMD 102等)上显示所述所渲染的图像。举例来说,所述所渲染的图像可以与在用户100A的客户端装置106上执行的第一游戏应用的例子相关联。举例来说,对应的客户端装置106被配置成与在本地或远程地执行的对应的游戏应用的例子交互,以例如通过用于驱动游戏玩法的输入命令来实施对应用户的游戏。客户端装置106的一些示例包括个人计算机(PC)、游戏控制台、家庭影院装置、通用计算机、移动计算装置、平板计算机、电话,或可以与游戏服务器205交互以执行视频游戏的例子的任何其他类型的计算装置。
在一个实施例中,客户端装置106针对玩游戏应用的对应用户在单玩家模式下操作。在另一实施例中,多个客户端装置106针对各自玩特定游戏应用的对应用户在多玩家模式下操作。在那种情况下,经由游戏服务器的后端服务器支持可以例如通过多玩家处理引擎219来提供多玩家功能性。具体来说,多玩家处理引擎219被配置成控制用于特定游戏应用的多玩家游戏会话。举例来说,多玩家处理引擎219与多玩家会话控制器216通信,所述多玩家会话控制器被配置成与参与多玩家游戏会话的用户和/或玩家中的每一者建立和维持通信会话。通过那种方式,所述会话中的用户可以彼此进行受到多玩家会话控制器216控制的通信。
此外,多玩家处理引擎219与多玩家逻辑218通信以便实现在每个用户的对应游戏环境内的用户之间的交互。具体来说,状态共享模块217被配置成管理多玩家游戏会话中的用户中的每一者的状态。举例来说,状态数据可以包括在特定点处界定对应用户的(游戏应用的)游戏的状态的游戏状态数据。举例来说,游戏状态数据可以包括游戏人物、游戏对象、游戏对象属性、游戏属性、游戏对象状态、图形覆盖等。通过那种方式,游戏状态数据允许产生在游戏应用中的对应点处存在的游戏环境。游戏状态数据还可以包括用于渲染游戏的每个装置的状态,例如CPU、GPU、存储器的状态、寄存器值、程序计数器值、可编程DMA状态、DMA的缓冲数据、音频芯片状态、CD-ROM状态等。游戏状态数据还可以识别从那个点需要加载可执行代码的哪些部分以执行视频游戏。游戏状态数据可以存储在数据库(未示出)中,并且可以由状态共享模块217访问。
此外,状态数据可以包括用户保存的数据,用户保存的数据包括将对应玩家的视频游戏个性化的信息。这包括与用户玩的人物相关联的信息,使得使用对于那个用户可以是唯一的人物(例如,位置、形状、外观、服装、武器等)来渲染视频游戏。通过那种方式,用户保存的数据使得能够产生对应用户的游戏的人物,其中所述人物具有与对应用户当前经历的游戏应用中的点相对应的状态。举例来说,用户保存的数据可以包括对应用户100A在玩游戏时所选择的游戏难度、游戏水平、人物属性、人物位置、剩下的生命的数目、可用的生命的可能的总数目、护甲、战利品、时间计数器值等。例如,用户保存的数据还可以包括识别对应用户100A的用户简档数据。可以将用户保存的数据存储在存储装置(未示出)中。
通过那种方式,使用状态共享数据217和多玩家逻辑218的多玩家处理引擎219能够覆盖对象和人物/将所述对象和人物***到参与多玩家游戏会话的用户的游戏环境中的每一者中。举例来说,覆盖第一用户的人物/将所述人物***到第二用户的游戏环境中。这允许多玩家游戏会话中的用户之间经由它们的相应游戏环境中的每一者(例如,在屏幕上显示)的交互。
图2B说明根据本公开的一个实施例的向在经由云游戏网络执行的相应的VR观看环境中玩游戏应用的一个或多个用户215(例如,用户100L、100M…100Z)提供游戏控制的***200B。在一些实施例中,所述云游戏网络可以是包括在主机的管理程序上运行的多个虚拟机(VM)的游戏云***210,其中一个或多个虚拟机被配置成执行游戏处理器模块,所述游戏处理器模块利用所述主机的管理程序可用的硬件资源。现在参看图式,相同的参考数字标示相同或对应的部分。
如所示,游戏云***210包括提供对多个交互式视频游戏或游戏应用的访问的游戏服务器205。游戏服务器205可以是在所述云中可用的任何类型的服务器计算装置,并且可以被配置成在一个或多个主机上执行的一个或多个虚拟机。举例来说,游戏服务器205可以管理虚拟机,所述虚拟机支持将用于用户的游戏应用的例子具现化的游戏处理器。因此,与多个虚拟机相关联的游戏服务器205的多个游戏处理器被配置成执行与多个用户215的游戏相关联的游戏应用的多个例子。通过那种方式,后端服务器支持向多个对应的用户提供多个游戏应用的玩法的媒体(例如,视频、音频等)的流式传输。
多个用户215经由网络250访问游戏云***210,其中用户(例如,用户100L、100M…100Z)经由对应的客户端装置106’访问网络250,其中客户端装置106’可以与图2A的客户端装置106(例如,包括游戏执行引擎211等)类似地配置,或者可以被配置成瘦客户端,所述瘦客户端提供与提供计算功能性的后端服务器(例如,包括游戏执行引擎211)的接口。
具体来说,对应用户100L的客户端装置106’被配置成请求经由网络250(例如,互联网)访问游戏应用,并且渲染由游戏服务器205执行的游戏应用(例如,视频游戏)的例子,并且递送到与对应用户100L相关联的显示装置。举例来说,用户100L可以通过客户端装置106’与在游戏服务器205的游戏处理器上执行的游戏应用的例子交互。更具体地,通过游戏标题执行引擎211执行所述游戏应用的例子。实施所述游戏应用的游戏逻辑(例如,可执行代码)存储在数据存储装置(未示出)中并且可以通过所述数据存储装置访问,并且用于执行所述游戏应用。游戏标题处理引擎211能够使用如所示的多个游戏逻辑277支持多个游戏应用。
如先前描述,客户端装置106’可以从各种类型的输入装置(例如,游戏控制器、平板计算机、键盘、由摄像机捕获的手势、鼠标触摸板等)接收输入。客户端装置106’可以是至少具有存储器和处理器模块的能够经由网络250连接到游戏服务器205的任何类型的计算装置。而且,对应用户的客户端装置106’被配置成产生由在本地或远程地执行的游戏标题执行引擎211执行的所渲染的图像,并且在显示器上显示所述所渲染的图像。举例来说,所述所渲染的图像可以与在用户100L的客户端装置106’上执行的第一游戏应用的例子相关联。举例来说,对应的客户端装置106’被配置成与在本地或远程地执行的对应的游戏应用的例子交互,以例如通过用于驱动游戏玩法的输入命令来实施对应用户的游戏玩法。
客户端装置106’被配置成接收所渲染的图像,并且在显示器11和/或HMD 102上显示所渲染的图像(例如,显示VR内容)。举例来说,通过基于云的服务,可以通过在与用户100相关联的游戏服务器205的游戏执行引擎211上执行的游戏应用的例子来递送所述所渲染的图像。在另一示例中,通过本地游戏处理,可以通过本地游戏执行引擎211递送所述所渲染的图像。在任一情况下,客户端装置106被配置成例如通过用于驱动游戏玩法的输入命令来与和对应用户100的游戏玩法相关联的本地或远程执行引擎211交互。在另一实现方式中,可以将所述所渲染的图像无线地或有线地从基于云的服务直接地或经由客户端装置106(例如,Play)流式传输到智能电话或平板计算机。
在另一实施例中,先前描述的多玩家处理引擎219用于控制游戏应用的多玩家游戏会话。具体来说,当多玩家处理引擎219正在管理所述多玩家游戏会话时,多玩家会话控制器216被配置成与所述多玩家会话中的用户和/或玩家中的每一者建立和维持通信会话。通过那种方式,所述会话中的用户可以彼此进行受到多玩家会话控制器216控制的通信。
此外,多玩家处理引擎219与多玩家逻辑218通信以便实现在每个用户的对应的游戏环境内的用户之间的交互。具体来说,状态共享模块217被配置成管理多玩家游戏会话中的用户中的每一者的状态。举例来说,状态数据可以包括如先前描述在特定点处界定对应用户100的(游戏应用的)游戏的状态的游戏状态数据。此外,如先前描述,状态数据可以包括用户保存的数据,用户保存的数据包括将对应玩家的视频游戏个性化的信息。举例来说,状态数据包括与用户的人物相关联的信息,使得使用对于那个用户可以是唯一的人物(例如,形状、外观、服装、武器等)来渲染视频游戏。通过那种方式,使用状态共享数据217和多玩家逻辑218的多玩家处理引擎219能够覆盖对象和人物/将所述对象和人物***到参与多玩家游戏会话的用户的游戏环境中的每一者中。这允许多玩家游戏会话中的用户之间经由它们的相应游戏环境中的每一者(例如,在屏幕上显示)的交互。
图3A说明根据本公开的一个实施例的在显示器300上示出的图像310,其中所述图像包括高分辨率的中心凹区域310A,其中所述中心凹区域对应于所述显示器的中心。具体来说,出于简单和清晰起见,图像310包括字母“E”的行和列。将图像310分割成多个区域,包括中心凹区域310A和***区域310B。
如所示,中心凹区域310A是静态的并且对应于显示器300的中心。假设中心凹区域310A是用户例如在观看视频游戏的图形时将他或她的注视(例如,使用眼睛的中心凹)主要指向的区域。虽然用户的注视可能偶尔偏离中心,但所述注视主要指向中心(以观看主要内容)。在一些情况下,图像被设计成起初使用户的注视偏离中心(例如,观看所关注的对象),但随后使所述注视回到中心(例如,通过朝向中心凹区域310A移动对象)。
具体来说,将以较高的分辨率渲染在中心凹区域310A内显示和定位的任何图像(例如,图像310)的部分。举例来说,图形管线将渲染中心凹区域310A中的图像的部分,同时将用于降低计算复杂性的任何技术的使用最小化。具体来说,对于本发明的实施例,在图形管线内个别地计算影响使用与中心凹区域310A相对应的像素所显示的对象的光源,以便确定它们对所述对象的影响中的每一者(例如,所述对象的多边形上的色彩、纹理、阴影等)。使用清晰、鲜艳的色彩并且以最小模糊强度示出在表示较高分辨率的中心凹区域310A内显示的字母“E”对象。这与用户的注视指向显示器300上的中心凹区域310A一致并且利用了所述事实。
另外,将以较低的分辨率(例如,比位于中心凹区域310A中的图像的部分和/或对象的分辨率低)渲染设置并定位在***区域310B中的图像(例如,图像310)的部分。用户的注视通常不指向在***区域310B中定位和/或显示的对象,因为所述注视的主要焦点指向中心凹区域310A中的对象。与场景中的现实视图一致,例如,使用较低的分辨率渲染***区域310B中的对象,其中具有足够的细节以使得用户能够感知移动对象(例如,人类直腿行走而不是弯曲着膝盖行走),并且在***区域310B中的对象内或对象之间具有足够的对比度。为了实现以较低的分辨率进行渲染,图形管线可以使用降低计算复杂性的在计算上有效的技术来渲染***区域310B中的图像的部分。具体来说,对于本发明的实施例,使用高分辨率的阴影图来渲染在中心凹区域之内的图像中的对象的阴影。使用较低分辨率的阴影图来渲染在所述中心凹区域之外的对象的阴影。因此,不是以较高分辨率计算所有阴影,而是仅使用较高分辨率的阴影图来渲染在所述中心凹区域内显示的阴影。这在渲染整体图像时减少了计算处理,并且对于在***区域310B中渲染的对象尤其如此。
而且,与场景中的现实视图一致,例如,使用较低的分辨率渲染***区域310B中的对象,其中具有足够的细节以使得用户能够感知移动对象(例如,人类直腿行走而不是弯曲着膝盖行走),并且在***区域310B中的对象内或对象之间具有足够的对比度。为了实现以较低的分辨率进行渲染,图形管线可以使用降低计算复杂性的在计算上有效的技术来渲染***区域310B中的图像的部分。具体来说,对于本发明的实施例,使用高分辨率的骨骼分层结构来执行在中心凹区域之内的图像中的对象的动画化和渲染。使用较低分辨率的骨骼分层结构来执行在中心凹区域之外的对象的动画化和渲染。因此,不使用骨骼分层结构的所有骨骼来计算动画化,而是当动画化和渲染位于***区域中的对象时计算骨骼子***。这减少了当渲染整个图像时的计算处理,并且对于在***区域310B中渲染的对象来说尤其如此,并且减少了将对应图像中的每一者递送(例如,无线或有线)到显示器所需的数据量。
图3B说明根据本公开的一个实施例的在显示器300上示出并且包括高分辨率的中心凹区域310A’的图像310’,其中所述中心凹区域对应于用户的注视所指向的显示器的位置。具体来说,图像310’类似于在图3A中示出的图像310,并且出于简单和清晰起见,所述图像包括字母“E”的行和列。将图像310分割成多个区域,包括中心凹区域310A’和***区域310B’。
如所示,依据用户的注视指向的方向,中心凹区域310A’在显示器300上动态地移动。如先前描述,例如,可以使用HMD 102的注视跟踪相机165跟踪注视。因此,中心凹区域310A’可以不一定对应于显示器300的中心,而是替代地与用户在图像310’内的实际方向和关注焦点相关。也就是说,中心凹区域310A’随着用户的眼睛移动而动态地移动。
如先前介绍,将通过在渲染位于中心凹区域310A’中的对象时将用于降低计算复杂性的任何渲染技术的使用最小化而以较高的分辨率渲染在中心凹区域310A内显示和定位的任何图像(例如,图像310’)的部分。具体来说,对于本发明的实施例,在图形管线内个别地计算影响使用与中心凹区域310A’相对应的像素所显示的对象的光源,以便确定它们对所述对象的影响中的每一者(例如,所述对象的多边形上的色彩、纹理、阴影等)。使用清晰、鲜艳的色彩并且以最小模糊强度示出在表示较高分辨率的中心凹区域310A’内显示的字母“E”对象。
另外,将以较低的分辨率(例如,比位于中心凹区域310A中的图像的部分和/或对象的分辨率低)渲染设置并定位在***区域310B’中的图像(例如,图像310’)的部分。如先前介绍,通常不将用户的注视引导到在***区域310B’中定位和/或显示的对象,因为将所述注视的主要焦点引导到中心凹区域310A’中的对象。因此,例如,使用较低的分辨率渲染***区域310B’中的对象,其中具有足够的细节以使得用户能够感知移动对象(例如,人类直腿行走而不是弯曲着膝盖行走),并且在***区域310B’中的对象内或对象之间具有足够的对比度。为了实现以较低的分辨率进行渲染,图形管线可以使用降低计算复杂性的在计算上有效的技术来渲染***区域310B’中的图像的部分。具体来说,对于本发明的实施例,使用较低分辨率的阴影图来渲染处于***区域310B’中的对象的阴影。此外,例如,可以使用较低的分辨率渲染***区域310B’中的对象,其中具有足够的细节以使得用户能够感知移动对象(例如,人类直腿行走而不是弯曲着膝盖行走),并且在***区域310B’中的对象内或对象之间具有足够的对比度。为了实现以较低的分辨率进行渲染,图形管线可以使用降低计算复杂性的在计算上有效的技术来渲染***区域310B’中的图像的部分。具体来说,对于本发明的实施例,使用较低分辨率的骨骼分层结构(骨骼分层结构中的骨骼的缩减集)来执行处于***区域310B’中的对象的动画化和渲染。
注视点渲染***中的优化的阴影
图4说明根据本公开的一个实施例的实施针对注视点渲染而配置的图形管线400A的图形处理器。图形管线400A说明用于使用3D(三维)多边形渲染过程来渲染图像的一般过程,但包括管线内的执行注视点渲染的额外的可编程元件。用于所渲染的图像的图形管线400A输出显示器中的像素中的每一者的对应的色彩信息,其中所述色彩信息可以表示纹理和着色(例如,色彩、阴影等)。可以在图1A的游戏控制台106、图1B的VR内容引擎120、图2A和图2B的客户端装置106,和/或图2B的游戏标题处理引擎211内实施图形管线400A。
如所示,所述图形管线接收输入几何图形405。举例来说,输入几何图形405可以包括3D游戏世界内的顶点,以及与所述顶点中的每一者相对应的信息。可以使用由顶点界定的多边形(例如,三角形)来表示所述游戏世界内的给定对象,其中随后通过图形管线400A处理对应多边形的表面以实现最终效果(例如,色彩、纹理等)。顶点属性可以包括法线(例如,哪个方向是与顶点相关的光)、色彩(例如,RGB-红色、绿色和蓝色三元组等)和纹理坐标/映射信息。
顶点着色器和/或程序410接收输入几何图形405,并且构建多边形或图元,所述多边形或图元构成3D场景内的对象。也就是说,顶点着色器410在对象置于游戏世界内时使用图元来建立所述对象。顶点着色器410可以被配置成执行所述多边形的照明和阴影计算,这取决于所述场景的照明。顶点着色器410输出图元并且将所述图元递送到图形管线400A的下一级。顶点着色器410还可以执行额外的操作,例如裁剪(例如,识别和忽视在由游戏世界中的观看位置界定的视锥之外的图元)。
在本发明的实施例中,图形处理器400被配置成执行注视点渲染,包括通过有效的方式渲染阴影。在图形处理器400内实施阴影贴图,其中使用阴影图在场景的图像中渲染虚拟场景中的对象的阴影。如先前描述,基于以最高分辨率产生的第一阴影图而创建一系列阴影图。所述一系列阴影图(包括第一阴影图)包括预定的阴影图像序列,所述阴影图像中的每一者与逐步降低的分辨率(例如,基于所述第一阴影图)相关联。图1B的阴影贴图产生器195被配置成产生第一阴影图。另外,阴影贴图产生器195被配置成使用贴图技术产生较低分辨率的相关阴影图。一般来说,以降低的细节水平复制最高分辨率的第一阴影图从而产生较低分辨率的第二阴影图。依据所应用的缩减,可以产生减小的分辨率的多个阴影图,所述阴影图中的每一者是基于所述第一阴影图。使用减小的分辨率的阴影图增加了图像的渲染速度,因为用于渲染图像中的阴影的纹素的数目比当以较高分辨率渲染阴影时小。
可以将阴影图存储在存储装置460中。具体来说,一系列阴影图465可以在由阴影贴图产生器195产生之后位于存储装置460中,并且由图形管线400存取以便使用具有适当分辨率的阴影图来恰当地渲染阴影。在一个实施例中,将阴影图的二进制***实施为所述一系列阴影图465,其中所述第一阴影图具有较高分辨率,并且第二阴影图具有低于所述第一阴影图的分辨率。更具体地,使用较高分辨率的第一阴影图来渲染位于所显示的图像的中心凹区域中的阴影,并且使用较低分辨率的第二阴影图来渲染位于***区域中的阴影。在另一实施例中,基于距中心凹区域的距离而构建所述一系列阴影图,其中所述系列中的阴影图的分辨率随着距中心凹区域的距离增加而减小。
顶点着色器410包括z缓冲区产生器412,所述z缓冲区产生器被配置成产生值的深度或z缓冲区414。具体来说,从对应光源的视角渲染虚拟场景,以便确定哪些对象和/或表面投射阴影以及哪些对象和/或表面处于阴影中。当渲染场景时,在z缓冲区414中捕获深度纹理,所述z缓冲区存储用于参考图像平面中的每个像素的虚拟场景中的最近表面的深度。为了说明,沿着来自光源的穿过对应像素的线,可以沿着所述线以各种深度渲染多个对象。z缓冲区414存储最靠近所述光源的深度,所述深度对应于沿着那条线投射阴影的表面。当通过注视点片元着色器和/或程序430渲染多边形时,参考z缓冲区414。
将由顶点着色器410输出的图元馈送到光栅化器420中,所述光栅化器被配置成将场景中的对象投射到由3D游戏世界中的观看位置(例如,相机位置、用户眼睛位置等)界定的二维(2D)图像平面。在过分简单化的层面,光栅化器420看向每个图元并且确定哪些像素受到对应的图元影响。具体来说,光栅化器420将所述图元分割成像素大小的片元,其中每个片元对应于显示器中的像素和/或与渲染视角(例如,相机视野)相关联的参考平面。重要的是要注意,一个或多个片元可能会在显示图像时贡献于对应像素的色彩。光栅化器420还可以根据观看位置来执行额外的操作,例如裁剪(识别和忽视在视锥之外的片元)和剔除(忽视被较靠近的对象挡住的片元)。
其核心处的注视点片元着色器430对所述片元执行着色操作,以确定图元的色彩和亮度如何随可用的照明而变。举例来说,片元着色器430可以确定每个片元的深度、色彩、法线和纹理坐标(例如,纹理细节),并且可以进一步确定所述片元的适当水平的光、暗度和色彩。具体来说,片元着色器430计算每个片元的特征,包括色彩和其他属性(例如,距观看位置的距离的z深度,以及透明度的α值)。另外,片元着色器430基于影响对应片元的可用的照明来向所述片元施加照明效果。此外,片元着色器430可以针对每个片元施加阴影效果,如下文所描述。仅出于描述的目的,将光源描述为点光,所述点光在游戏世界中具有明确的位置并且全方位地辐射光。可以使用其他照明,例如方向性照明等。
更具体地,注视点片元着色器430基于片元是在中心凹区域还是***区域内而执行如上文描述的着色操作。使用着色操作以高分辨率处理位于所显示的图像的中心凹区域内的片元,而不考虑处理效率,以便实现所述中心凹区域内的片元的详细纹理和色彩值。另一方面,注视点片元着色器430在关注处理效率的情况下对位于***区域内的片元执行着色操作,以便以具有例如提供移动的最少操作的足够细节和足够的对比度处理片元。
举例来说,在本发明的实施例中,使用较高分辨率的阴影图来渲染在中心凹区域之内显示的对象的阴影,并且使用较低分辨率的阴影图来渲染在***区域中显示的对象的阴影。具体来说,注视点片元着色器被配置成通过存取z缓冲区414中的值来确定片元是否处于阴影中,和/或确定贡献于像素的色彩的一个或多个对象的多个片元是否处于阴影中。可以通过顶点着色器410或片元着色器430来执行3D游戏空间和视野空间(例如,从相机视角,或观看位置)中的片元的坐标的相关性。具体来说,一旦确定片元处于阴影中,那么阴影贴图选择器194依据所述片元的位置来选择适当的阴影图。注视点片元确定器192被配置成确定是在中心凹区域中还是***区域中显示所述片元。例如,当在中心凹区域中显示所述片元时,阴影贴图选择器194从所述一系列阴影图465选择最高分辨率的第一阴影图来渲染所述片元。而且,当在非注视点区域中显示所述片元时,阴影贴图选择器194从所述一系列阴影图465选择较低分辨率的第二阴影图来渲染所述片元。这可以是映射所述系列465的二进制阴影的说明。另外,阴影贴图选择器194可以从所述一系列阴影图465选择具有适当的分辨率的阴影图,这是基于被渲染和显示的片元距中心凹区域的距离。随着距离增加并且进一步远离中心凹区域,选择更低分辨率的阴影图。
片元着色器430的输出包括经过处理的片元(例如,包括阴影的纹理和着色信息),并且将所述输出递送到图形管线400A的下一级。
输出合并部件440依据贡献和/或影响每个对应像素的片元来计算每个像素的特征。也就是说,3D游戏世界中的所有图元的片元被组合成显示器的2D彩色像素。举例来说,贡献于对应像素的纹理和着色信息的片元经过组合以输出像素的最终色彩值,所述最终色彩值被递送到图形管线400A中的下一级。输出合并部件440可以执行在由片元着色器430确定的片元和/或像素之间的值的任选的混合。
显示器中的每个像素的色彩值存储在帧缓冲器455中。在显示场景的对应图像时将这些值扫描到对应的像素。具体来说,显示器从每个像素的帧缓冲器逐行地、从左到右或从右到左、自上而下或自下而上或以任何其他模式读取色彩值,并且在显示图像时使用那些像素值来照亮像素。
在详细描述了经由网络进行通信的游戏服务器和客户端装置的各种模块的情况下,图5的流程图500公开了根据本公开的一个实施例的用于实施被配置成执行注视点渲染的图形管线的方法,其中使用较高分辨率的阴影图来渲染在中心凹区域之内显示的阴影,并且使用较低分辨率的阴影图来渲染在非注视点中显示的阴影。如先前描述,在渲染图像时在客户端装置或基于云的游戏***内实施流程图500。在一个实现方式中,所述客户端装置是游戏控制台(gaming console)(还称为游戏控制台(game console))。
在510处,所述方法包括构建和/或产生高分辨率的第一阴影图。这可以是最高分辨率的阴影图,使用所述阴影图来产生较低分辨率的阴影图(例如,贴图)。也就是说,在520处,所述方法包括基于所述第一阴影图来构建和/或产生第二阴影图,其中所述第二阴影图具有比所述第一阴影图更低的分辨率。这可以是阴影图的二进制***的说明。此外,可以基于所述第一阴影图而产生一系列阴影图,其中所述系列包括逐步降低的分辨率的阴影图。
在530处,所述方法包括确定影响虚拟场景的光源。所述光源可以是多个光源中的一者,所述多个光源中的每一者影响虚拟场景。来自所述光源的照明将在显示从观看位置观看到的所述场景内的对应对象时确定对应像素的最终色彩。当确定阴影时,必须考虑所述光源中的每一者以完全渲染在图像内含有的阴影。出于说明起见,使用单个光源来公开本发明的实施例。在一个实施例中,针对所述多个光源中的每一者执行用于确定阴影的相同过程,并且组合和/或合并所述过程以形成显示器中的像素的最终色彩。
在540处,所述方法包括从第一视角(例如,观看位置)将所述场景的图像的对象的几何图形投影到显示器的多个像素上。如先前介绍,光栅化器和/或顶点着色器被配置成使图元和/或图元的片元与对应像素相关联。具体来说,顶点着色器可以被配置成使图元与对应像素相关联,其中在光栅化之前,通过图元将场景分割成瓦片。另外,光栅化器可以被配置成使图元的片元与对应像素相关联,其中可以通过片元将所述场景分割成瓦片。
在550处,所述方法包括确定将第一组几何图形绘制到第一像素。所述组几何图形可以包括一个或多个对象的一个或多个片元。举例来说,顶点着色器可以被配置成确定哪些像素受到所述组中的片元影响或由所述片元绘制,如先前描述。
在560处,所述方法包括基于光源而确定所述第一组几何图形处于阴影中。如先前描述,通过片元着色器执行深度测试以确定哪些片元处于相对于所述光源的阴影中。向与所述像素相关联的所述组几何图形中的每一者施加深度测试。举例来说,当处于阴影中时,所述组中的几何图形将具有比存储在z缓冲区中的深度(其为与用于贡献于那个像素的片元的光源最靠近的对象的深度)大的深度。因此,所述组几何图形中的每一者处于阴影中。
在570处,所述方法包括在渲染所述虚拟场景的所述图像时确定中心凹区域,其中所述中心凹区域对应于用户的注意力指向处。所述中心凹区域可以与以最高分辨率渲染表面相关联。通过假设(例如,一般处于覆盖显示器的静态区域的显示器中心处)或通过眼睛跟踪(例如,用于确定注视方向),所述中心凹区域可以是用户的注意力集中的地方。对于静态中心凹区域,所述中心凹区域以所述显示器的中心为中心。当执行眼睛跟踪时,跟踪观看虚拟场景的用户的注视,其中所述注视指示用户的注意力指向的在所述虚拟场景中的方向。在此情况下,所述中心凹区域可以基于注视方向在图像中居中。另外,通过图形处理器以高分辨率渲染所述中心凹区域中的图像的部分(例如,图元和/或片元)。举例来说,使用较高分辨率和/或最高分辨率的阴影图来渲染中心凹区域中的阴影。另一方面,***区域不具有用户的注意力,并且通过图形处理器以较低的分辨率渲染所述***区域中的图像的部分(例如,图元和/或片元)。举例来说,使用较低分辨率的阴影图来渲染***区域中的阴影。更具体地,向中心凹区域指派第一像素子集,并且其中以高分辨率处理与所述第一子集相关联的图元和/或片元。向在中心凹区域之外的***区域指派第二像素子集,并且其中以较低的分辨率(例如,低于与所述中心凹区域相关联的分辨率)处理与所述第二子集相关联的图元和/或片元。
另外,在580处,所述方法包括确定所述第一组几何图形处于所述中心凹区域之外。也就是说,所述第一组几何图形影响显示器的处于***区域中的像素。在此情况下,为了有效的渲染,在590处,所述方法包括使用较低分辨率的第二阴影图来渲染第一像素的第一组几何图形。通过那种方式,需要更少的计算来渲染由所述第一组几何图形投影的阴影。
此外,对于在中心凹区域之内的几何图形,使用较高分辨率的阴影图来渲染阴影。举例来说,可以确定将第二组几何图形绘制到第二像素。此外,确定所述第二组几何图形在用户的注意力指向的中心凹区域之内。因此,可以针对第二像素使用较高分辨率的第一阴影图来渲染所述第二像素的第二组几何图形。
另外,当渲染第一像素的第一组几何图形时可以停用其他阴影效果。也就是说,为了降低计算成本,***区域中的阴影受限于使用较低分辨率的第二阴影图进行渲染。除了使用第二阴影图之外,在图形管线内不计算其他阴影效果或最小阴影效果。
在另一实施例中,产生一系列阴影图,其中所述阴影图是基于最高分辨率的阴影图,并且所述系列中的阴影图的分辨率逐步减小。当基于所显示的对应片元与中心凹区域之间的距离来渲染片元时应用所述一系列阴影图。举例来说,可以确定将第三组几何图形绘制到第三像素。确定所述第三像素在中心凹区域之外。另外,可以基于z缓冲区测试来确定所述第三组几何图形处于相对于光源的阴影中,如先前描述。在绘制于所述第三像素中的所述第三组几何图形与所述中心凹区域之间确定距离。基于所确定的距离而从所述一系列阴影图选择第三阴影图。基本上,当从所述中心凹区域渲染所述第三组几何图形时所述像素越远,选择的阴影图的分辨率越低。在选择之后,使用第三阴影图来渲染用于所述第三像素的所述第三组几何图形,所述第三阴影图具有比最高分辨率的第一阴影图更低的分辨率,并且可以具有比第二阴影图更低的分辨率。
图6A是根据本公开的一个实施例的游戏世界的虚拟场景的图像600A的说明,其中所述图像示出渲染在中心凹区域中显示的阴影。图像600A示出具有墙壁601、602和地面603的空间。在所述空间中示出两个对象,包括搁置在地面603上的对象670(桌子),和悬挂在墙壁602上的时钟610。
出于简明和清晰起见,在图像600A中示出影响虚拟场景的光源640。如所示,光源640具有游戏世界(例如,所述空间)中的位置。可以通过坐标***(未示出)界定所述位置。光源640可以是定向的或全向的,这在任一情况下将投射阴影675。如所示,光源640沿着至少一个方向645投射桌子670的阴影675(其中方向645叠加于图像600A上)。
从游戏世界内的特定观看位置渲染图像600A,并且进行显示。举例来说,可以从与所述游戏世界中的观看位置相关联的虚拟图像平面渲染所述图像。例如,将眼睛630叠加于图像600A上以说明用户沿着方向635的注视。可以将图像600A投影在以方向635为中心的图像平面650内。如图6A中所示,用户的注视沿着图像600A中的方向635指向桌子670。
另外,用户的注意力沿着方向635集中。因此,基于用户的注视方向(例如,假设和/或跟踪)来界定所显示的图像的中心凹区域620。如先前描述,以高分辨率渲染中心凹区域620中的对象。另外,在本发明的实施例中,使用较高分辨率的阴影图(例如,产生其他阴影图(例如,使用贴图)所基于的最高分辨率的第一阴影图)来渲染在中心凹区域620之内的阴影。举例来说,使用高分辨率阴影图来渲染由照在桌子670上的光源640产生的阴影675。
如所示,以较低分辨率渲染在中心凹区域之外的对象,如先前描述。举例来说,在中心凹区域620之外显示时钟610,并且以较低分辨率渲染所述时钟。出于说明起见,模糊地示出时钟610以表示较低分辨率下的渲染。也就是说,因为时钟610处于***区域中,所以需要更少的细节来渲染图像600A中的时钟610。
图6B是根据本公开的一个实施例的在图像600B中渲染的在图6A中介绍的虚拟场景的说明,并且示出渲染在***区域中显示的阴影。
图像600B类似于图像600A,不同之处在于,用户的注意力朝向不同的对象。如先前介绍,图像600B示出具有墙壁601、602和地面603的空间。在所述空间中示出两个对象,包括搁置在地面603上的对象670(桌子),和悬挂在墙壁602上的时钟610。在图像600A中示出光源640,并且沿着至少一个方向645投射桌子670的阴影675’(其中方向645叠加于图像600B上)。
另外,用户的注意力现在沿着方向635’集中。因此,基于用户的注视方向(例如,假设和/或跟踪)来界定所显示的图像600B的中心凹区域620’。如先前描述,以高分辨率渲染中心凹区域620’中的对象。因此,在图6B中,现在以高分辨率渲染时钟610,并且在图6B中清楚地且显眼地示出所述时钟。
如所示,以较低分辨率渲染在中心凹区域620’之外的对象,如先前描述。在图6B中,现在模糊地示出时钟670以表示较低分辨率下的渲染。因为桌子670处于***区域中,所以需要更少的细节来渲染图像600B中的桌子670。
另外,在本发明的实施例中,使用较低分辨率的阴影图(例如,较低分辨率的第二或随后的阴影图)来渲染在中心凹区域620’之外的阴影。举例来说,使用较低分辨率阴影图来渲染由照在桌子670上的光源640产生的阴影675’。使用比图6A的阴影675更少的细节来示出阴影675’,其中阴影675’在其位于***区域中时不需要全部细节。
图6C是根据本公开的一个实施例的具有向在图6A中介绍的虚拟场景施加的逐步降低的分辨率的一系列阴影图的说明。如先前描述,基于最高分辨率的阴影图而产生一系列阴影图,并且所述系列中的阴影图的分辨率逐步减小。在一个实施例中,当基于所显示的对应片元与中心凹区域之间的距离来渲染片元时应用所述一系列阴影图。如图6C中所示,中心凹区域620包括以高分辨率渲染的对象。中心凹区域620在图6C中还称为区1。因为桌子670位于区1中,所以通过更多的细节(以高分辨率)渲染中心凹区域(桌子670)。另外,因为阴影675位于区1中,所以使用所述一系列阴影图中的最高分辨率的阴影图1来渲染阴影675。在中心凹区域620中示出的对象具有距中心凹区域620的最小距离或零距离,并且因此,选择最高分辨率的阴影图来渲染阴影。
另外,中心凹区域620的点线边界621和外部边界界定区2,所述区是在中心凹区域620之外的最近区。使用比阴影图1的分辨率更低的分辨率的阴影图2来渲染区2中的阴影。此外,点线边界621和点线边界622界定区3,所述区也在中心凹区域620之外。区3比区2离中心凹区域620更远。因此,使用比阴影图2分辨率更低的分辨率的阴影图3来渲染区3中的阴影。在所述系列中,阴影图3具有最低分辨率并且与区3相关联,所述区离中心凹区域最远。
在一个实施例中,计算机***包括处理器和存储器,所述存储器耦合到所述处理器并且具有存储在其中的指令,所述指令在由所述计算机***执行时致使所述计算机***执行用于实施图形管线的方法。所述方法包括构建高分辨率的第一阴影图。所述方法包括基于所述第一阴影图来构建第二阴影图,其中所述第二阴影图具有比所述第一阴影图更低的分辨率。所述方法包括确定影响虚拟场景的光源。所述方法包括从第一视角将所述虚拟场景的图像的对象的几何图形投影到显示器的多个像素上。所述方法包括确定将第一组几何图形绘制到第一像素。所述方法包括基于光源而确定所述第一组几何图形处于阴影中。所述方法包括在渲染所述虚拟场景的图像时确定中心凹区域,其中所述中心凹区域对应于用户的注意力指向处。所述方法包括确定所述第一组几何图形处于所述中心凹区域之外。所述方法包括使用所述第二阴影图来渲染所述第一像素的所述第一组几何图形。
在另一实施例中,由所述计算机***执行的方法还包括确定将第二组几何图形绘制到第二像素。所述方法还包括确定所述第二组几何图形在中心凹区域之内。所述方法还包括使用所述第一阴影图来渲染所述第二像素的所述第二组几何图形。
在另一实施例中,由所述计算机***执行的方法还包括基于距中心凹区域的距离而构建一系列阴影图,其中所述系列中的阴影图的分辨率随着距中心凹区域的距离增加而减小。所述方法还包括确定将第三组几何图形绘制到在中心凹区域之外的第三像素。所述方法还包括基于所述光源而确定所述第三组处于阴影中。所述方法还包括确定在第三像素中绘制的所述第三组几何图形与中心凹区域相距的距离。所述方法还包括基于所述第三组几何图形的距离而从所述一系列阴影图中选择所述第三阴影图。所述方法还包括使用所述第三阴影图来渲染所述第三像素的所述第三组几何图形。
在另一实施例中,由所述计算机***执行的方法还包括根据显示器的中心使中心凹区域居中,其中所述中心凹区域是静态的。
在另一实施例中,由所述计算机***执行的方法还包括跟踪观看虚拟场景的用户的注视,其中所述注视指示用户的注意力指向的在所述虚拟场景中的方向。所述方法还包括确定用户观看虚拟场景的图像的第一方向。所述方法还包括基于所述第一方向使所述中心凹区域在所述图像中居中。
在另一实施例中,在由计算机***执行的方法中,显示器包括头戴式显示器。
在另一实施例中,由所述计算机***执行的方法还包括当渲染用于所述第一像素的所述第一组几何图形时停用另一阴影效果。
在一个实施例中,非暂时性计算机可读介质存储用于实施图形管线的计算机程序。所述计算机可读介质包括用于构建高分辨率的第一阴影图的程序指令。所述计算机可读介质包括用于基于所述第一阴影图来构建第二阴影图的程序指令,其中所述第二阴影图具有比所述第一阴影图更低的分辨率。所述计算机可读介质包括用于确定影响虚拟场景的光源的程序指令。所述计算机可读介质包括用于从第一视角将所述虚拟场景的图像的对象的几何图形投影到显示器的多个像素上的程序指令。所述计算机可读介质包括用于确定将第一组几何图形绘制到第一像素的程序指令。所述计算机可读介质包括用于基于光源而确定所述第一组几何图形处于阴影中的程序指令。所述计算机可读介质包括用于在渲染所述虚拟场景的图像时确定中心凹区域的程序指令,其中所述中心凹区域对应于用户的注意力指向处。所述计算机可读介质包括用于确定所述第一组几何图形处于所述中心凹区域之外的程序指令。所述计算机可读介质包括用于使用所述第二阴影图来渲染所述第一像素的所述第一组几何图形的程序指令。
在另一实施例中,所述计算机可读介质还包括用于确定将第二组几何图形绘制到第二像素的程序指令。所述计算机可读介质还包括用于确定所述第二组几何图形处于所述中心凹区域之内的程序指令。所述计算机可读介质还包括用于使用所述第一阴影图来渲染所述第二像素的所述第二组几何图形的程序指令。
在另一实施例中,所述计算机可读介质还包括用于基于距中心凹区域的距离而构建一系列阴影图的程序指令,其中所述系列中的阴影图的分辨率随着距中心凹区域的距离增加而减小。所述计算机可读介质还包括用于确定将第三组几何图形绘制到在中心凹区域之外的第三像素的程序指令。所述计算机可读介质还包括用于基于光源而确定所述第三组处于阴影中的程序指令。所述计算机可读介质还包括用于确定在第三像素中绘制的所述第三组几何图形与中心凹区域相距的距离的程序指令。所述计算机可读介质还包括用于基于所述第三组几何图形的距离而从所述一系列阴影图中选择所述第三阴影图的程序指令。所述计算机可读介质还包括用于使用所述第三阴影图来渲染所述第三像素的所述第三组几何图形的程序指令。
在另一实施例中,所述计算机可读介质还包括用于根据显示器的中心使中心凹区域居中的程序指令,其中所述中心凹区域是静态的。
在另一实施例中,所述计算机可读介质还包括用于跟踪观看虚拟场景的用户的注视的程序指令,其中所述注视指示用户的注意力指向的在所述虚拟场景中的方向。所述计算机可读介质还包括用于确定用户观看虚拟场景的图像的第一方向的程序指令。所述计算机可读介质还包括用于基于所述第一方向使所述中心凹区域在所述图像中居中的程序指令。
在另一实施例中,所述计算机可读介质还包括用于将所述图像的对象的几何图形投影到头戴式显示器的像素上的程序指令。
注视点渲染***中的自适应网状蒙皮
本公开的各种实施例描述被配置成执行注视点渲染的视频渲染***的图形处理器,其中可以使用高分辨率渲染中心凹区域中的图像的部分,并且使用较低的分辨率渲染在所述中心凹区域之外的部分。具体来说,当对象处于***区域中时,使用低分辨率的骨骼分层结构来执行对象的动画化,使得还使用与所述低分辨率骨骼分层结构相关联的较低分辨率图元来渲染所述对象,如在下文更全面地描述。而且,当对象处于中心凹区域中时,使用高分辨率的骨骼分层结构来执行对象的动画化,使得使用与所述高分辨率骨骼分层结构相关联的较高分辨率图元来渲染所述对象。在一些实施例中,可以在先前在图1至图6中描述的背景内实施自适应网状蒙皮。
图7说明根据本公开的实施例的实施针对注视点渲染而配置的图形管线的***,所述注视点渲染包括对象动画化以及当所述对象处于中心凹区域中时使用高分辨率的骨骼分层结构(骨骼***)渲染对象,并且当所述对象处于***区域中时使用低分辨率的骨骼分层结构(骨骼子***)渲染对象。图形管线9400说明用于使用3D(三维)多边形渲染过程来渲染图像的一般过程,但经过修改以在所述管线内执行额外的可编程元件来执行注视点渲染,例如依据对象相对于对应图像的中心凹区域的位置而使用骨骼分层结构的全部骨骼或骨骼子***来动画化和/或渲染粒子***。用于所渲染的图像的图形管线9400输出显示器中的像素中的每一者的对应的色彩信息,其中所述色彩信息可以表示纹理和着色(例如,色彩、阴影等)。可以在图1A的游戏控制台106、图1B和图1C的VR内容引擎120、图2A和图2B的客户端装置106,和/或图2B的游戏标题处理引擎211内实施图形管线9400。
可以在CPU或GPU上进行动画化。***9400被配置成执行对象动画化,并且包括针对注视点渲染而配置的计算着色器9401和可编程着色器9402,所述注视点渲染包括:处理顶点数据;将顶点聚集成图元(例如,多边形);执行光栅化以相对于显示器由所述图元产生片元;以及随后计算每个片元的色彩值和深度值,并且逐像素地混合所述片元以便存储到帧缓冲器进行显示。由计算着色器9401执行的操作(例如,用于动画化)可以在CPU或GPU中执行。由可编程着色器9402执行的操作一般更适合于在GPU中执行以实现更好的性能和效率。
如所示,所述图形管线接收输入几何图形9405。举例来说,输入几何图形9405可以包括3D游戏世界内的顶点,以及与所述顶点中的每一者相对应的信息。可以使用由顶点界定的多边形(例如,三角形)来表示所述游戏世界内的给定对象,其中随后通过图形管线9400处理对应多边形的表面以实现最终效果(例如,色彩、纹理等)。顶点属性可以包括法线(例如,哪个方向是与顶点相关的光)、色彩(例如,RGB-红色、绿色和蓝色三元组等)和纹理坐标/映射信息。为了易于说明,示出将3D游戏世界的输入几何图形输入到计算着色器9401,但还可以分割所述几何图形,使得将用于粒子***的几何图形输入到计算着色器9401,并且将剩余的几何图形输入到可编程着色器9402的顶点着色器9410。举例来说,可以将输入几何图形输入到顶点缓冲器中,可以在着色器9401和9402之间共享所述顶点缓冲器。
具体来说,计算着色器9401依据施加于对象上的力和/或由所述对象施加的力(例如,例如重力等外力,和对象引发的移动的内力)而逐帧地执行对象动画化(例如,计算粒子运动等)。一般来说,从第一帧到后续帧,计算着色器9401执行操作以将对象动画化,或向所述对象提供运动。具体来说,对于所渲染的每个帧,在离散的时间步骤(例如,逐帧地)更新对象的动画化(例如,位置、定向、速度等)。如图7中所示,计算着色器9401可以在GPU配置内实施并且经编程以执行对象动画化。举例来说,顶点着色器9406可以包括骨骼***产生器9195,所述骨骼***产生器被配置成产生或存取对象的顶点和/或图元。另外,骨骼***产生器9195包括骨骼***缩减器9196,所述骨骼***缩减器被配置成减小骨骼分层结构中的骨骼的数目,使得从所述骨骼分层结构产生并取得骨骼子***。所述子***可以具有减小数目个骨骼,并且可以具有骨骼之间的减小数目个关节或连接,其中所述关节界定两个互连的骨骼之间的移动点。顶点着色器9406还可以包括动画模块9199,所述动画模块被配置成在离散的时间步骤中(例如,逐帧地)向所述对象提供动画化或移动,并且更具体地提供移动(例如,通过更新骨骼位置或骨骼的顶点)。注视点骨骼***确定器9192被配置成计算对象相对于图像的中心凹区域所处的地方,其中使用较低分辨率的骨骼分层结构来渲染位于***区域中的对象,并且使用较高分辨率的骨骼分层结构来渲染位于中心凹区域中的对象。顶点着色器9406的输出可以包括对象的图元(例如,顶点、多边形等),包括高分辨率或低分辨率的骨骼分层结构的图元,这取决于对象相对于中心凹区域的位置。当在GPU配置内实施时,剩余的部件(例如,光栅化器、片元着色器,以及包括输出合并器和帧缓冲器的渲染器)是闲置的,使得随后递送来自顶点着色器9406的输出,和/或使所述输出与可编程着色器9402共享以执行包括渲染的更多传统的GPU操作。当然,在CPU实现方式中,可以将计算着色器9401简化成仅包括着色器9406和粒子模拟模块9407。
使用可编程着色器9402逐帧地绘制动画化的对象。具体来说,将动画结果存储到顶点缓冲器,随后将所述模拟结果输入到可编程着色器9402(例如,顶点着色器)。可以在图7中示出的***9400的图形管线的多个级之间共享所述顶点缓冲器中的值。更具体地,如先前描述,顶点着色器9410直接从计算着色器9401接收输入几何图形9405,并且构建多边形或图元,所述多边形或图元构成3D场景内的对象。如果计算着色器9401未完成,那么顶点着色器9410可以进一步构建动画化的对象的图元。也就是说,顶点着色器9410在对象置于游戏世界内时使用图元来建立所述对象。举例来说,顶点着色器9410可以被配置成执行所述多边形的照明和阴影计算,这取决于所述场景的照明。顶点处理器9410输出图元并且将所述图元递送到图形管线9400的下一级。顶点处理器9410还可以执行额外的操作,例如裁剪(例如,识别和忽视在由游戏世界中的观看位置界定的视锥之外的图元)。
因为在可编程着色器9402(例如,顶点着色器9410等)执行之前计算着色器9401已经减少了对象图元,所以在实施例中不需要进一步的确定来确定对象是在中心凹区域内还是***区域中。在其他实施例中,在需要时,顶点着色器9410可以执行是使用较低分辨率还是较高分辨率骨骼分层结构的确定。在那种情况下,顶点着色器9410还可以被配置成选择较低分辨率骨骼分层结构的图元以供进一步处理。例如,顶点着色器9410可以被配置成依据顶点是否在中心凹区域内来确定是抛弃还是保持顶点。
将由顶点处理器9410输出的图元馈送到光栅化器9420中,所述光栅化器被配置成将场景中的对象投影到由3D游戏世界中的观看位置(例如,相机位置、用户眼睛位置等)界定的二维(2D)图像平面。当动画化的对象处于***区域中时,这些图元包括骨骼子***(例如,而不是骨骼分层结构中的全部骨骼)。在一个实施例中,当对象的至少一部分处于***区域中时,渲染骨骼子***。在另一实施例中,当整个对象处于***区域中时渲染骨骼子***,从而以较低分辨率渲染所述对象(例如,不大详细的运动)。而且,当对象处于中心凹区域中时,图元可以包括整个骨骼***,从而使用更详细的运动渲染所述对象。
在过分简单化的层面,光栅化器9420看向每个图元并且确定哪些像素受到对应的图元影响。具体来说,光栅化器9420将所述图元分割成像素大小的片元,其中每个片元对应于显示器中的像素和/或与渲染视角(例如,相机视野)相关联的参考平面。重要的是要注意,一个或多个片元可能会在显示图像时贡献于对应像素的色彩。光栅化器9420还可以根据观看位置来执行额外的操作,例如裁剪(识别和忽视在视锥之外的片元)和剔除(忽视被较靠近的对象挡住的片元)。
其核心处的注视点片元处理器9430对所述片元执行着色操作,以确定图元的色彩和亮度如何随可用的照明而变。举例来说,片元处理器9430可以确定每个片元的深度、色彩、法线和纹理坐标(例如,纹理细节),并且可以进一步确定所述片元的适当水平的光、暗度和色彩。具体来说,片元处理器9430计算每个片元的特征,包括色彩和其他属性(例如,距观看位置的距离的z深度,以及透明度的α值)。另外,片元处理器9430基于影响对应片元的可用的照明来向所述片元施加照明效果。此外,片元处理器9430可以针对每个片元施加阴影效果。
更具体地,注视点片元着色器9430基于片元是在中心凹区域还是***区域内而执行如上文描述的着色操作。使用着色操作以高分辨率处理位于所显示的图像的中心凹区域内的片元,而不考虑处理效率,以便实现所述中心凹区域内的片元的详细纹理和色彩值。另一方面,注视点片元处理器9430在关注处理效率的情况下对位于***区域内的片元执行着色操作,以便以具有例如提供移动的最少操作的足够细节和足够的对比度处理片元。
举例来说,在本发明的实施例中,依据粒子***的片元是在中心凹区域之内还是之外(例如,贡献于中心凹区域之内或之外的像素)而不同地渲染粒所述片元。因为计算着色器9401先前已经确定粒子和/或它们的分量几何图形是位于中心凹区域之内还是之外并且相应地对那些分量几何图形进行滤波(例如,当对象处于***区域中时使用骨骼子***),所以已经将顶点着色器9410的输出定位成向图形管线的其余部件(例如,包括光栅化器9420和注视点片元着色器9430等)提供适当的图元。因此,可编程着色器9402的图形管线的其余部件被配置成在所述对象处于中心凹区域中时渲染骨骼分层结构中的全部骨骼。而且,可编程着色器9402的图形管线的其余部件被配置成在所述对象处于***区域中时渲染骨骼分层结构中的骨骼子***。
片元处理器9430的输出包括经过处理的片元(例如,包括阴影的纹理和着色信息),并且将所述输出递送到图形管线9400的下一级。
输出合并部件9440依据贡献和/或影响每个对应像素的片元来计算每个像素的特征。也就是说,3D游戏世界中的所有图元的片元被组合成显示器的2D彩色像素。举例来说,贡献于对应像素的纹理和着色信息的片元经过组合以输出像素的最终色彩值,所述最终色彩值被递送到图形管线9400中的下一级。输出合并部件9440可以执行在由片元处理器9430确定的片元和/或像素之间的值的任选的混合。
显示器中的每个像素的色彩值存储在帧缓冲器9450中。在显示场景的对应图像时将这些值扫描到对应的像素。具体来说,显示器从每个像素的帧缓冲器逐行地、从左到右或从右到左、自上而下或自下而上或以任何其他模式读取色彩值,并且在显示图像时使用那些像素值来照亮像素。
在详细描述了经由网络进行通信的游戏服务器和客户端装置的各种模块的情况下,图8的流程图9500公开了根据本公开的一个实施例的用于实施被配置成执行注视点渲染的图形管线的方法,其中使用较高分辨率的骨骼分层结构(骨骼***)来动画化和渲染在中心凹区域之内显示的对象,并且使用较低分辨率的骨骼分层结构(例如,骨骼子***)来动画化和渲染在非注视点中显示的对象。如先前描述,在渲染图像时在客户端装置或基于云的游戏***内实施流程图9500。在一个实现方式中,所述客户端装置是游戏控制台(gamingconsole)(还称为游戏控制台(game console))。
在9510处,所述方法包括产生对象的多个骨骼,从而界定所述骨骼之间的定位关系。当将对象动画化时,使用分层的一组骨骼以向对象提供移动,其中随后向骨骼应用多边形网(例如,使多边形与一个或多个骨骼的顶点相关联)。每个骨骼具有3D游戏世界内的3D变换,包括位置、尺度和定向等。因此,当逐帧地重新定位骨骼并且应用网时,对象的移动受到影响。也就是说,当将骨骼分层结构动画化时,骨骼改变变换,包括改变它们在3D游戏世界内的定位。每个骨骼与一个或多个顶点相关联。随后使所述网的多边形与一个或多个骨骼相关联。也就是说,所述网中的多边形的每个顶点与一个或多个骨骼相关联或绑定到所述一个或多个骨骼。当骨骼移动时,网(例如,蒙皮)的多边形与骨骼一起移动,使得所述网可以逐帧地改变形状。也就是说,多边形网响应于骨骼变换而变形。应用于多边形的比例因数提供混合权重,使得向与两个或更多个骨骼相关联的多边形给予指定哪个骨骼对多边形的移动具有更大的影响的权重。也就是说,多边形的每个顶点可以具有每个相关联的骨骼的混合权重。
骨骼分层结构界定骨骼之间的互连部分,其中关节可以界定两个或更多个骨骼之间的互连部分。然而,骨骼分层结构可以宽松地界定骨骼之间的位置关系。也就是说,骨骼不需要互连(例如,在关节处触碰),而是可以具有界定所述骨骼之间的相对定位的某一其他关系。
当对象位于***区域中时,在动画化和渲染之前缩减所述骨骼***。具体来说,在9520处,所述方法包括从所述对象的所述多个骨骼确定骨骼子***。具体来说,所述骨骼子***可以包括比骨骼分层结构中的全部骨骼更少的骨骼。由于使用更少的骨骼来界定对象,当将对象动画化时需要执行更少的计算。举例来说,在行走的人类作为对象的情况下,可以将骨骼子***动画化,使得人类直腿行走,而不具有膝盖中的任何关节移动。当人类位于***区域中时,可以将骨骼子***用于动画化和渲染。
可以确定骨骼子***。具体来说,产生骨骼***的顶点***。从顶点***取得顶点子***,并且向所述骨骼子***指派顶点子***。可以从顶点***取得所述子***,例如将两个骨骼的顶点组合为一个骨骼。另外,可以组合地删除一些顶点。在其他实现方式中,产生新的顶点来界定所述骨骼子***。当附接多边形网时,可以将用于骨骼的多个混合权重减少到混合权重子集以供骨骼子***使用。举例来说,可以从第一骨骼和第二骨骼形成缩减的一组顶点。从第一骨骼的第一组顶点和第二骨骼的第二组顶点取得缩减的一组顶点。更具体地,所述缩减的组界定比在第一组顶点和第二组顶点的组合中具有的关节更少的关节。
在9530处,所述方法包括在渲染所述虚拟场景的所述图像时确定中心凹区域,其中所述中心凹区域对应于用户的注意力指向处。所述中心凹区域可以与以最高分辨率渲染表面相关联。通过假设(例如,一般处于覆盖显示器的静态区域的显示器中心处)或通过眼睛跟踪(例如,用于确定注视方向),所述中心凹区域可以是用户的注意力集中的地方。对于静态中心凹区域,所述中心凹区域以所述显示器的中心为中心。当执行眼睛跟踪时,跟踪观看虚拟场景的用户的注视,其中所述注视指示用户的注意力指向的在所述虚拟场景中的方向。在此情况下,所述中心凹区域可以基于注视方向在图像中居中。另外,通过图形处理器以高分辨率渲染所述中心凹区域中的图像的部分(例如,图元和/或片元)。举例来说,可以使用最高分辨率的骨骼分层结构(例如,使用全部骨骼)来执行位于中心凹区域中的对象的动画化和渲染。
另一方面,***区域不具有用户的注意力,并且通过图形处理器以较低的分辨率渲染所述***区域中的图像的部分(例如,图元和/或片元)。举例来说,可以使用较低分辨率的骨骼分层结构(例如,使用骨骼子***)来执行位于***区域中的对象的动画化和渲染。更具体地,向中心凹区域指派第一像素子集,并且其中以高分辨率处理与所述第一子集相关联的图元和/或片元。向在中心凹区域之外的***区域指派第二像素子集,并且其中以较低的分辨率(例如,低于与所述中心凹区域相关联的分辨率)处理与所述第二子集相关联的图元和/或片元。
在9540处,所述方法包括确定对象的至少一个部分位于所述图像的***区域中。当确定对象的至少一部分处于***区域中时,在9550处,所述方法包括通过向骨骼子***应用变换来将对象动画化,并且随后通过图形管线的其余级来渲染结果。其后,是全部骨骼还是骨骼子***用于动画化并且输入到可编程着色器402,顶点着色器410的输出已经考虑到注视点或非注视点渲染,并且如此其余的操作通过典型的方式进行操作。也就是说,当对象处于中心凹区域中时,顶点着色器410将对骨骼***操作,并且当对象处于***区域中时,顶点着色器410将对骨骼子***操作。
在另一实施例中,除了当对象处于***区域中时减小骨骼数目之外,当执行动画化和渲染时,可以进一步减少帧数。也就是说,可以减少对骨骼定位的谨慎的更新,使得可以使用更少数目个帧来实现***区域中的对象的运动,并且可以使用常规数目个帧来实现中心凹区域中的对象的运动。
图9是说明根据本公开的一个实施例的当在中心凹区域中显示对象时使用高分辨率的骨骼分层结构来动画化和渲染对象,并且当在***区域中显示对象时使用低分辨率的骨骼分层结构来动画化和渲染对象。具体来说,9610示出以高分辨率动画化和渲染的对象9650的逐帧移动。举例来说,对象9650可以位于中心凹区域中。如所示,对象9650具有全部骨骼,使得当对象逐帧地在3D空间中移动时,关节(例如,手臂和腿)的移动示出腿和手臂的弯曲。另一方面,9620示出以低分辨率动画化和渲染的对象9650’的逐帧移动。例如,对象9650’可以位于***区域中。如所示,对象9650’具有减少数目个骨骼,使得当对象9650’逐帧地在3D空间中移动时,关节的移动不示出腿和手臂的任何弯曲。具体来说,缩减的一组骨骼可以包括用于整个腿的一个骨骼,而不是其中多个关节示出关于膝盖和脚踝的移动的两个骨骼或三个骨骼。
在一个实施例中,计算机***包括处理器和存储器,所述存储器耦合到所述处理器并且具有存储在其中的指令,所述指令在由所述计算机***执行时致使所述计算机***执行用于实施图形管线的方法。所述方法包括产生对象的多个骨骼,从而界定所述骨骼之间的定位关系。所述方法还包括从所述对象的所述多个骨骼确定骨骼子***。所述方法还包括在渲染包括所述对象的所述虚拟场景的图像时确定中心凹区域,其中所述中心凹区域对应于用户的注意力指向处。所述方法还包括确定所述对象的至少一个部分位于所述图像的***区域中。所述方法还包括通过向所述骨骼子***应用变换而使所述对象动画化。
在另一实施例中,在由计算机***执行的方法中,在所述方法中所述确定骨骼子***还包括产生与骨骼***相关联的顶点***。所述方法还包括产生从所述顶点***取得的顶点子***。所述方法还包括向所述骨骼子***指派所述顶点子***。
在另一实施例中,在由计算机***执行的方法中,在所述方法中所述指派所述顶点子***还包括形成第一骨骼和第二骨骼的缩减的一组顶点,其中所述缩减的一组顶点是从所述第一骨骼的第一组顶点和所述第二骨骼的第二组顶点取得,其中所述缩减的组界定比第一组顶点和第二组顶点的组合更少的关节。
在另一实施例中,由计算机***执行的方法还包括渲染所述顶点子***。
在另一实施例中,在由计算机***执行的方法中,所述多个骨骼界定分层的一组互连骨骼。
在另一实施例中,由计算机***执行的方法还包括当将对象动画化时减小关键帧的数目。
在另一实施例中,非暂时性计算机可读介质存储用于实施图形管线的计算机程序。所述计算机可读介质包括用于产生对象的多个骨骼从而界定所述骨骼之间的定位关系的程序指令。所述计算机可读介质还包括用于从所述对象的所述多个骨骼确定骨骼子***的程序指令。所述计算机可读介质还包括用于在渲染包括所述对象的所述虚拟场景的图像时确定中心凹区域的程序指令,其中所述中心凹区域对应于用户的注意力指向处。所述计算机可读介质还包括用于确定所述对象的至少一个部分位于所述图像的***区域中的程序指令。所述计算机可读介质还包括用于通过向所述骨骼子***应用变换而使所述对象动画化的程序指令。
在另一实施例中,所述用于确定骨骼子***的程序指令还包括用于产生骨骼***的顶点***的程序指令。所述用于确定骨骼子***的程序指令还包括用于产生从顶点***取得的顶点子***的程序指令。所述用于确定骨骼子***的程序指令还包括用于向骨骼子***指派顶点子***的程序指令。
在另一实施例中,所述用于指派所述顶点子***的程序指令还包括用于形成第一骨骼和第二骨骼的缩减的一组顶点的程序指令,其中所述缩减的一组顶点是从所述第一骨骼的第一组顶点和所述第二骨骼的第二组顶点取得,其中所述缩减的组界定比第一组顶点和第二组顶点的组合更少的关节。
在另一实施例中,所述计算机可读介质还包括将多个混合权重减少到混合权重子集以用于界定多边形网与骨骼子***之间的关联。
在另一实施例中,所述计算机可读介质还包括渲染所述顶点子***。
在另一实施例中,在所述程序指令中,所述多个骨骼界定分层的一组互连骨骼。
在另一实施例中,所述计算机可读介质还包括当将对象动画化时减小关键帧的数目。
虽然已经提供了演示被配置成执行注视点渲染的视频渲染***的图形处理器的实现方式的特定实施例,其中使用高分辨率渲染中心凹区域中的图像的部分(例如,使用较高分辨率的阴影图来渲染阴影),并且使用较低的分辨率渲染***区域中的部分(例如,使用较低分辨率的阴影图来渲染阴影),通过示例而非通过限制的方式描述这些。已经阅读了本公开的本领域技术人员将认识到落在本公开的精神和范围之内的额外实施例。
应注意,经由较广的地理区域递送的访问服务(例如,提供对当前实施例的游戏的访问)常常使用云计算。云计算是其中经由互联网将动态可缩放且常常虚拟化的资源提供为服务的一类型计算。用户不需要在支持他们的“云”中的技术基础结构方面是专家。可以将云计算划分为不同的服务,例如基础结构即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。云计算服务常常在线提供从网络浏览器访问的普通应用(例如,视频游戏),而软件和数据存储在云中的服务器上。基于在计算机网络中如何描绘互联网,术语云用作互联网的隐喻,并且是其隐藏的复杂基础结构的抽象化。
游戏处理服务器(GPS)(或简称为“游戏服务器”)由游戏客户端使用以玩单玩家和多玩家视频游戏。在互联网上玩的大多数视频游戏经由到游戏服务器的连接进行操作。通常,游戏使用专用的服务器应用,其从玩家收集数据并且向其他玩家分发所述数据。这比对等布置更高效和有效,但是其需要单独的服务器来操控服务器应用。在另一实施例中,GPS在玩家之间建立通信,并且它们的相应玩游戏装置在不依赖于集中的GPS的情况下交换信息。
专用的GPS是独立于客户端而运行的服务器。此类服务器通常在位于数据中心中的专用硬件上运行,从而提供更多的带宽和专用的处理能力。专用服务器是针对大多数基于PC的多玩家游戏来操控游戏服务器的优选方法。大量多玩家在线游戏在通常由拥有游戏产权的软件公司操控的专用服务器上运行,从而允许它们控制和更新内容。
用户使用客户端装置访问远程服务,所述客户端装置至少包括CPU、显示器和I/O。所述客户端装置可以是PC、移动电话、上网本、PDA等。在一个实施例中,在游戏服务器上执行的网络辨识客户端所使用的装置的类型,并且调整所采用的通信方法。在其他情况下,客户端装置使用标准的通信方法(例如,html)经由互联网来访问游戏服务器上的应用。
可以使用各种计算机***配置来实践本公开的实施例,包括手持式装置、微处理器***、基于微处理器或可编程的消费者电子器件、小型计算机、主机计算机等。还可以在分布式计算环境中实践本公开,其中通过经由有线网络或无线网络链接的远程处理装置来执行任务。
应了解,可针对特定平台和特定相关联的控制器装置来开发给定视频游戏。然而,当经由如本文呈现的游戏云***使得可以使用此类游戏时,用户可能使用不同的控制器装置来访问视频游戏。举例来说,可能已经针对游戏控制台及其相关联的控制器开发出游戏,而用户可能从利用键盘和鼠标的个人计算机访问所述游戏的基于云的版本。在此情景中,输入参数配置可以界定从可以由用户的可用控制器装置(在此情况下是键盘和鼠标)产生的输入到对于执行视频游戏可接受的输入的映射。
在另一示例中,用户可经由平板计算装置、触摸屏智能电话,或其他触摸屏驱动的装置来访问云游戏***。在此情况下,客户端装置和控制器装置一起集成在同一装置中,其中通过检测到的触摸屏输入/手势来提供输入。对于此装置,输入参数配置可以界定对应于视频游戏的游戏输入的特定触摸屏输入。举例来说,在视频游戏的运行期间可能显示或覆盖按钮、指向垫或其他类型的输入元件,从而在触摸屏上指示用户可以触摸以产生游戏输入的位置。在特定方向或特定触摸动作中的例如挥扫等手势也可被检测为游戏输入。在一个实施例中,例如在开始视频游戏的游戏戏玩之前,可以将教程提供给用户,从而指示如何经由用于游戏戏玩的触摸屏来提供输入,以便使用户适应触摸屏上的控制件的操作。
在一些实施例中,客户端装置用作控制器装置的连接点。也就是说,控制器装置经由无线连接或有线连接与客户端装置通信,以将输入从控制器装置传输到客户端装置。客户端装置继而可以处理这些输入并且随后经由网络(例如,经由例如路由器等本地连网装置进行访问)将输入数据传输到云游戏服务器。然而,在其他实施例中,控制器自身可以是连网装置,其具有经由网络将输入直接传送到云游戏服务器的能力,而不需要首先通过客户端装置传送此类输入。举例来说,控制器可能连接到本地连网装置(例如,前述路由器)以将数据发送到云游戏服务器以及从云游戏服务器接收数据。因此,虽然可能仍然需要客户端装置从基于云的视频游戏接收视频输出并且在本地显示器上渲染所述视频输出,但可以通过允许控制器经由网络绕过客户端装置将输入直接发送到云游戏服务器而减小输入等待时间。
在一个实施例中,连网控制器和客户端装置可以被配置成将特定类型的输入从控制器直接发送到云游戏服务器,以及经由客户端装置发送其他类型的输入。可以绕过客户端装置经由网络将其检测不取决于除了控制器自身之外的任何额外的硬件或处理的输入从所述控制器直接发送到云游戏服务器。此类输入可以包括按钮输入、操纵杆输入、嵌入式运动检测输入(例如,加速度计、磁力计、陀螺仪)等。然而,可以通过客户端装置将利用额外的硬件或需要客户端装置的处理的输入发送到云游戏服务器。这些可能包括从游戏环境捕获可能由客户端装置处理的视频或音频,之后将所述视频或音频发送到云游戏服务器。另外,来自控制器的运动检测硬件的输入可能由客户端装置结合所捕获的视频进行处理以检测控制器的位置和运动,随后将通过客户端装置将所述位置和运动传送到云游戏服务器。应了解,根据各种实施例的控制器装置还可以从客户端装置接收数据(例如,反馈数据)或直接从云游戏服务器接收数据。
应理解,可以在任何类型的客户端装置上执行本文描述的实施例。在一些实施例中,所述客户端装置是头戴式显示器(HMD)。
图10示出说明根据本公开的实施例的头戴式显示器102的部件的图。头戴式显示器102包括用于执行程序指令的处理器1000。提供存储器1002用于存储目的,并且可以包括易失性存储器和非易失性存储器两者。包括显示器1004,所述显示器提供用户可以观看的视觉界面。提供电池1006作为头戴式显示器102的电源。运动检测模块1008可以包括各种运动敏感硬件中的任一者,例如磁力计1010A、加速度计1012和陀螺仪1014。
加速度计是用于测量加速度和重力诱发的反作用力的装置。可以使用单轴模型和多轴模型检测不同方向上的加速度的量值和方向。使用加速度计来感测倾斜度、振动和冲击。在一个实施例中,使用三个加速度计1012来提供重力的方向,其给出对两个角度(世界空间俯仰和世界空间横滚)的绝对参考。
磁力计测量头戴式显示器的邻近的磁场的强度和方向。在一个实施例中,在头戴式显示器内使用三个磁力计1010A,从而确保对世界空间偏航角度的绝对参考。在一个实施例中,磁力计被设计成跨越地球磁场,其为±80微特斯拉。磁力计受到金属影响,并且提供与实际偏航单调的偏航测量。磁场可能会由于环境中的金属而歪曲,其导致偏航测量结果中的歪曲。在需要时,使用来自例如陀螺仪或相机等其他传感器的信息来校准此歪曲。在一个实施例中,加速度计1012与磁力计1010A一起使用以便获得头戴式显示器102的倾斜度和方位角。
陀螺仪是用于基于角动量的原理来测量或维持定向的装置。在一个实施例中,在一个实施例中,三个陀螺仪1014基于惯性感测而提供关于跨相应轴线(x,y和z)的移动的信息。陀螺仪有助于检测快速的旋转。然而,陀螺仪可能在没有绝对参考的情况下随时间漂移。这需要将陀螺仪周期性地复位,这可以使用其他可用的信息来进行,例如基于对物体的视觉跟踪、加速度计、磁力计等的位置/定向确定。
提供相机1016来捕获实际环境的图像和图像流。可以在头戴式显示器102中包括一个以上相机,包括:面向后的相机(在用户观看头戴式显示器102的显示时背向用户);以及面向前的相机(在用户观看头戴式显示器102的显示时指向用户)。另外,在头戴式显示器102中包括深度相机1018以便感测实际环境中的物体的深度信息。
在一个实施例中,可以使用集成于HMD的前面上的相机来提供关于安全性的警报。举例来说,如果用户正在接近墙壁或物体,那么可以警告用户。在一个实施例中,可以向用户提供空间中的物理对象的轮廓视图,从而向用户警告它们的存在。所述轮廓可以是(例如)虚拟环境中的覆盖物。在一些实施例中,可以向HMD用户提供覆盖在(例如)地面中的参考标记的视图。例如,所述标记可以向用户提供用户正在其中玩游戏的空间的中心所在处的参考。这可以向用户提供(例如)用户应移动到哪里的视觉信息,以避免撞到墙壁或所述空间中的其他物体。还可以向用户提供触觉警报和/或音频警报,从而在用户佩戴HMD并且使用HMD玩游戏或导航内容时提供更多的安全性。
头戴式显示器102包括用于提供音频输出的扬声器1020。而且,可以包括麦克风1022以便从实际世界环境捕获音频,包括来自周围环境的声音、用户发出的话音等。头戴式显示器102包括触觉反馈模块1024以便向用户提供触觉反馈。在一个实施例中,触觉反馈模块1024能够导致头戴式显示器102的移动和/或振动以便向用户提供触觉反馈。
提供LED 1026作为头戴式显示器102的状态的视觉指示器。举例来说,LED可以指示电池电量、通电等。提供读卡器1028以使得头戴式显示器102能够从存储器卡读取信息以及将信息写入到存储器卡。包括USB接口1030作为用于启用***装置的连接或到其他装置(例如,其他便携式装置、计算机等)的连接的接口的一个示例。在头戴式显示器102的各种实施例中,可以包括各种接口中的任一者以启用头戴式显示器102的更大的连接性。
包括Wi-Fi模块1032以便启用经由无线连网技术到互联网的连接。而且,头戴式显示器102包括蓝牙模块1034以便启用到其他装置的无线连接。还可以包括通信链接1036以便连接到其他装置。在一个实施例中,通信链接1036利用红外传输用于无线通信。在其他实施例中,通信链接1036可以利用各种无线或有线传输协议中的任一者来用于与其他装置通信。
包括输入按钮/传感器1038以为用户提供输入接口。可以包括各种输入接口中的任一者,例如按钮、触摸垫、操纵杆、跟踪球等。可以在头戴式显示器102中包括超声波通信模块1040以便促进经由超声波技术与其他装置的通信。
包括生物传感器1042以便启用对来自用户的生理数据的检测。在一个实施例中,生物传感器1042包括用于通过用户的皮肤来检测用户的生物电信号的一个或多个干电极。
包括光敏传感器1044以对来自置于3维物理环境中的发射器(例如,红外基站)的信号作出响应。游戏控制台分析来自光敏传感器1044和发射器的信息以确定与头戴式显示器102相关的位置和定向信息。
已经将头戴式显示器102的前述部件描述为可以在头戴式显示器102中包括的仅示例性部件。在本公开的各种实施例中,头戴式显示器102可以包括或可以不包括各种前述部件中的一些。头戴式显示器102的实施例可以另外包括目前未描述但在本领域中已知的其他部件,以便促进本文描述的本公开的各方面。
本领域技术人员将了解,在本公开的各种实施例中,可以结合在显示器上显示的交互式应用来利用前述手持式装置以提供各种交互功能。仅通过示例而非限制的方式提供本文描述的示例性实施例。
图11是根据本公开的各种实施例的游戏***1100的框图。游戏***1100被配置成经由网络1115向一个或多个客户端1110提供视频流。游戏***1100通常包括视频服务器***1120和任选的游戏服务器1125。视频服务器***1120被配置成以最小服务质量向一个或多个客户端1110提供视频流。举例来说,视频服务器***1120可以接收改变视频游戏的状态或视频游戏内的视角的游戏命令,并且以最小滞后时间向客户端1110提供反映此状态改变的经更新的视频流。视频服务器***1120可以被配置成按照广泛多种替代性视频格式提供所述视频流,包括已经界定的格式。此外,所述视频流可以包括被配置成以广泛多种帧速率向用户呈现的视频帧。典型的帧速率是30帧/秒、80帧/秒和820帧/秒。但在本公开的替代性实施例中包括更高或更低的帧速率。
在本文单独地称为1110A、1110B等的客户端1110可以包括头戴式显示器、终端、个人计算机、游戏控制台、平板计算机、电话、机顶盒、信息站、无线装置、数字垫、独立装置、手持式玩游戏装置等等。通常,客户端1110被配置成接收经编码的视频流(即,经压缩)、解码所述视频流,并且向用户(例如,游戏玩家)呈现所得的视频。接收经编码的视频流和/或解码所述视频流的过程通常包括将个别视频帧存储在客户端的接收缓冲器中。可以在与客户端1110成一体的显示器上或在例如监视器或电视等单独的装置上向用户呈现视频流。客户端1110任选地被配置成支持一个以上游戏玩家。举例来说,游戏控制台可以被配置成支持两个、三个、四个或更多个同时的玩家。这些玩家中的每一者可以接收单独的视频流,或者单个视频流可以包括特定针对每个玩家而产生(例如,基于每个玩家的视角而产生)的帧的区域。客户端1110任选地是在地理上分散的。在游戏***1100中包括的客户端的数目可以广泛地变化,从一个或两个到数千个、数万个,或更多。如本文所使用,使用术语“游戏玩家”来指玩游戏的人,并且使用术语“玩游戏装置”来指用于玩游戏的装置。在一些实施例中,玩游戏装置可以指进行协作以便向用户递送游戏体验的多个计算装置。举例来说,游戏控制台和HMD可以与视频服务器***1120进行协作以便递送通过HMD观看的游戏。在一个实施例中,游戏控制台从视频服务器***1120接收视频流,并且游戏控制台将所述视频流或对所述视频流的更新转发到HMD进行渲染。
客户端1110被配置成经由网络1115接收视频流。网络1115可以是任何类型的通信网络,包括电话网络、互联网、无线网络、电力线网络、局域网、广域网、专用网络等等。在典型的实施例中,经由例如TCP/IP或UDP/IP等标准协议传送视频流。可替代地,经由专有标准传送视频流。
客户端1110的典型示例是个人计算机,所述个人计算机包括处理器、非易失性存储器、显示器、解码逻辑、网络通信能力和输入装置。解码逻辑可以包括硬件、固件,和/或存储在计算机可读介质上的软件。用于解码(和编码)视频流的***在本领域中是众所周知的,并且依据所使用的特定编码方案而变。
客户端1110可以(但不要求)还包括被配置成修改所接收的视频的***。举例来说,客户端可以被配置成执行进一步的渲染、将一个视频图像覆盖在另一视频图像上、修剪视频图像,等等。举例来说,客户端1110可以被配置成接收各种类型的视频帧,例如I帧、P帧和B帧,并且将这些帧处理成图像以便向用户显示。在一些实施例中,客户端1110的构件被配置成对视频流执行进一步的渲染、着色、转换为3-D或类似的操作。客户端1110的构件任选地被配置成接收一个以上音频或视频流。客户端1110的输入装置包括(例如)单手游戏控制器、双手游戏控制器、手势辨识***、注视辨识***、语音辨识***、键盘、操纵杆、指向装置、力反馈装置、运动和/或位置感测装置、鼠标、触摸屏、神经接口、相机、已经开发的输入装置,等等。
通过视频服务器***1120产生和提供由客户端1110接收的视频流(和任选地音频流)。如本文在其他地方进一步描述,此视频流包括视频帧(并且音频流包括音频帧)。视频帧被配置成(例如,它们包括适当的数据结构中的像素信息)有意义地贡献于向用户显示的图像。如本文所使用,术语“视频帧”用于指主要包括被配置成贡献于(例如,影响)向用户示出的图像的信息的帧。本文关于“视频帧”的大多数教导还可以应用于“音频帧”。
客户端1110通常被配置成从用户接收输入。这些输入可以包括被配置成改变视频游戏的状态或者以其他方式影响游戏的游戏命令。可以使用输入装置接收所述游戏命令,和/或可以通过在客户端1110上执行的计算指令自动产生所述游戏命令。经由网络1115将所接收的游戏命令从客户端1110传送到视频服务器***1120和/或游戏服务器1125。举例来说,在一些实施例中,经由视频服务器***1120将所述游戏命令传送到游戏服务器1125。在一些实施例中,将游戏命令的单独的副本从客户端1110传送到游戏服务器1125和视频服务器***1120。对游戏命令的传送任选地取决于命令的身份。通过用于向客户端1110A提供音频流或视频流的不同路线或通信信道从客户端1110A传送游戏命令。
任选地通过与视频服务器***1120不同的实体操作游戏服务器1125。举例来说,可以通过多玩家游戏的发布者操作游戏服务器1125。在此示例中,视频服务器***1120任选地被游戏服务器1125视为客户端,并且任选地被配置成从游戏服务器1125的视角来看显得是执行现有技术游戏引擎的现有技术客户端。视频服务器***1120与游戏服务器1125之间的通信任选地经由网络1115进行。因此,游戏服务器1125可以是向多个客户端发送游戏状态信息的现有技术多玩家游戏服务器,所述多个客户端中的一者是游戏服务器***1120。视频服务器***1120可以被配置成同时与游戏服务器1125的多个例子通信。举例来说,视频服务器***1120可以被配置成向不同用户提供多个不同的视频游戏。这些不同的视频游戏中的每一者可以由不同的游戏服务器1125支持和/或由不同的实体发布。在一些实施例中,视频服务器***1120的若干在地理上分布的例子被配置成向多个不同的用户提供游戏视频。视频服务器***1120的这些例子中的每一者可以与游戏服务器1125的同一例子通信。视频服务器***1120与一个或多个游戏服务器1125之间的通信任选地经由专用的通信信道进行。举例来说,视频服务器***1120可以经由专用于这两个***之间的通信的高带宽信道而连接到游戏服务器1125。
视频服务器***1120至少包括视频源1130、I/O装置1145、处理器1150和非暂时性存储装置1155。视频服务器***1120可以包括一个计算装置或分布在多个计算装置之间。这些计算装置任选地经由例如局域网等通信***进行连接。
视频源1130被配置成提供视频流,例如串流视频或形成移动图片的一系列视频帧。在一些实施例中,视频源1130包括视频游戏引擎和渲染逻辑。所述视频游戏引擎被配置成从玩家接收游戏命令,并且基于所接收的命令来维持视频游戏的状态的副本。此游戏状态包括游戏环境中的对象的位置,并且通常包括视角。所述游戏状态还可以包括对象的性质、图像、色彩和/或纹理。
通常基于游戏规则以及游戏命令来维持游戏状态,所述游戏命令例如为移动、转向、攻击、设定焦点、交互、使用等等。游戏引擎的部分任选地设置在游戏服务器1125内。游戏服务器1125可以基于从使用在地理上分散的客户端的多个玩家接收的游戏命令来维持游戏的状态的副本。在这些情况下,游戏服务器1125向视频源1130提供游戏状态,其中存储游戏状态的副本并且执行渲染。游戏服务器1125可以经由网络1115直接从客户端1110接收游戏命令,和/或可以经由视频服务器***1120接收游戏命令。
视频源1130通常包括渲染逻辑,例如,硬件、固件,和/或存储在计算机可读介质(例如,存储装置1155)上的软件。此渲染逻辑被配置成基于游戏状态而产生视频流的视频帧。所有或部分渲染逻辑任选地安置在图形处理单元(GPU)内。所述渲染逻辑通常包括被配置成基于游戏状态和视角来确定对象之间的三维空间关系和/或施加适当的纹理等的处理级。所述渲染逻辑产生原始视频,随后通常对所述原始视频进行编码,之后传送到客户端1110。举例来说,所述原始视频可以根据以下标准进行编码:Adobe标准、.wav、H.264、H.263、On2、VP6、VC-1、WMA、Huffyuv、Lagarith、MPG-x.Xvid.FFmpeg、x264、VP6-8、realvideo、mp3等。编码过程产生视频流,所述视频流任选地经过打包以便递送到远程装置上的解码器。通过帧大小和帧速率来表征所述视频流。典型的帧大小包括800x600、1280x720(例如,720p)、1024x768,但可以使用任何其他帧大小。帧速率是每秒的视频帧的数目。视频流可以包括不同类型的视频帧。举例来说,H.264标准包括“P”帧和“I”帧。I帧包括用于刷新显示装置上的所有宏块/像素的信息,而P帧包括用于刷新其子集的信息。P帧在数据大小方面通常比I帧小。如本文使用,术语“帧大小”打算是指帧内的像素的数目。术语“帧数据大小”用于指存储帧所需的字节的数目。
在替代性实施例中,视频源1130包括例如相机等视频记录装置。此相机可以用于产生可以在计算机游戏的视频流中包括的延时视频或实况视频。所得的视频流任选地包括所渲染的图像和使用静态相机或摄像机记录的图像。视频源1130还可以包括被配置成存储将要包括在视频流中的先前记录的视频的存储装置。视频源1130还可以包括被配置成检测例如人等对象的运动或位置的运动或定位感测装置,和被配置成基于检测到的运动和/或位置来确定游戏状态或产生视频的逻辑。
视频源1130任选地被配置成提供覆盖,所述覆盖被配置成置于其他视频上。举例来说,这些覆盖可以包括命令界面、登录指令、给游戏玩家的消息、其他游戏玩家的图像、其他游戏玩家的视频馈给(例如,网络摄像头视频)。在包括触摸屏界面或注视检测界面的客户端1110A的实施例中,所述覆盖可以包括虚拟键盘、操纵杆、触摸板等等。在覆盖的一个示例中,将玩家的语音覆盖在音频流上。视频源1130任选地还包括一个或多个音频源。
在其中视频服务器***1120被配置成基于来自一个以上玩家的输入来维持游戏状态的实施例中,每个玩家可以具有包括观看位置和方向的不同视角。视频源1130任选地被配置成基于他们的视角来提供每个玩家的单独的视频流。此外,视频源1130可以被配置成向客户端1110中的每一者提供不同的帧大小、帧数据大小和/或编码。视频源1130任选地被配置成提供3-D视频。
针对视频服务器***1120配置I/O装置1145以发送和/或接收信息,例如视频、命令、对信息的请求、游戏状态、注视信息、装置运动、装置位置、用户运动、客户端身份、玩家身份、游戏命令、安全信息、音频等等。I/O装置1145通常包括例如网卡或调制解调器等通信硬件。I/O装置1145被配置成与游戏服务器1125、网络1115和/或客户端1110通信。
处理器1150被配置成执行在本文论述的视频服务器***1120的各种部件内包括的逻辑,例如软件。举例来说,可以使用软件指令编程处理器1150以便执行视频源1130、游戏服务器1125和/或客户端限定器1160的功能。视频服务器***1120任选地包括处理器1150的一个以上例子。还可以使用软件指令编程处理器1150以便执行由视频服务器***1120接收的命令,或者协调本文论述的游戏***1100的各种元件的操作。处理器1150可以包括一个或多个硬件装置。处理器1150是电子处理器。
存储装置1155包括非暂时性模拟存储装置和/或数字存储装置。举例来说,存储装置1155可以包括被配置成存储视频帧的模拟存储装置。存储装置1155可以包括计算机可读数字存储装置,例如硬盘驱动器、光学驱动器或固态存储装置。存储装置1155被配置成(例如,通过适当的数据结构或文件***)存储视频帧、人工帧、包括视频帧和人工帧两者的视频流、音频帧、音频流等等。存储装置1155任选地分布在多个装置之间。在一些实施例中,存储装置1155被配置成存储本文在其他地方论述的视频源1130的软件部件。可以按照在需要时迅速提供的格式来存储这些部件。
视频服务器***1120任选地还包括客户端限定器1160。客户端限定器1160被配置成远程地确定客户端(例如,客户端1110A或1110B)的能力。这些能力可以包括客户端1110A自身的能力以及客户端1110A与视频服务器***1120之间的一个或多个通信信道的能力。举例来说,客户端限定器1160可以被配置成通过网络1115测试通信信道。
客户端限定器1160可以手动地或自动地确定(例如,发现)客户端1110A的能力。手动确定包括与客户端1110A的用户通信并且要求用户提供能力。举例来说,在一些实施例中,客户端限定器1160被配置成在客户端1110A的浏览器内显示图像、文本等等。在一个实施例中,客户端1110A是包括浏览器的HMD。在另一实施例中,客户端1110A是具有可以在HMD上显示的浏览器的游戏控制台。所显示的对象请求用户输入客户端1110A的信息,例如操作***、处理器、视频解码器类型、网络连接类型、显示分辨率等。用户输入的信息被传送回到客户端限定器1160。
可以(例如)通过在客户端1110A上执行代理和/或通过将测试视频发送到客户端1110A来进行自动确定。所述代理可以包括嵌入网页中或安装成插件的计算指令,例如脚本。客户端限定器1160任选地提供所述代理。在各种实施例中,所述代理可以发现客户端1110A的处理能力、客户端1110A的解码和显示能力、客户端1110A与视频服务器***1120之间的通信信道的滞后时间可靠性和带宽、客户端1110A的显示类型、存在于客户端1110A上的防火墙、客户端1110A的硬件、在客户端1110A上执行的软件、客户端1110A内的注册表条目等等。
客户端限定器1160包括硬件、固件,和/或存储在计算机可读介质上的软件。客户端限定器1160任选地设置在与视频服务器***1120的一个或多个其他元件分开的计算装置上。举例来说,在一些实施例中,客户端限定器1160被配置成确定客户端1110与视频服务器***1120的一个以上例子之间的通信信道的特性。在这些实施例中,可以使用客户端限定器所发现的信息来确定视频服务器***1120的哪个例子最佳地适合于将串流视频递送到客户端1110中的一者。
应理解,可以将本文界定的各种实施例组合或聚集成使用本文公开的各种特征的特定实现方式。因此,所提供的示例仅是一些可能的示例,而非限于通过组合各种元件以界定更多的实现方式所可能的各种实现方式。在一些示例中,在不脱离所公开或等效的实现方式的精神的情况下,一些实现方式可以包括更少的元件。
可以使用各种计算机***配置来实践本公开的实施例,包括手持式装置、微处理器***、基于微处理器或可编程的消费者电子器件、小型计算机、主机计算机等。本公开的实施例还可以在分布式计算环境中实践,其中通过经由基于电线的或无线的网络链接的远程处理装置来执行任务。
在了解了以上实施例的情况下,应理解,本公开的实施例可以采用涉及计算机***中存储的数据的各种计算机实施的操作。这些操作是需要对物理量的物理操纵的操作。形成本公开的实施例的部分的本文描述的操作中的任一者是有用的机器操作。本发明的实施例还涉及用于执行这些操作的装置或设备。所述设备可以被特别构造成用于所需的目的,或者所述设备可以是由计算机中存储的计算机程序选择性地启动或配置的通用计算机。具体来说,各种通用机器可以与根据本文的教导而编写的计算机程序一起使用,或者构造更专门的设备来执行所需的操作可能会更加便利。
本公开还可以体现为计算机可读介质上的计算机可读代码。计算机可读介质是可以存储数据的任何数据存储装置,所述数据其后可以由计算机***读取。计算机可读介质的示例包括硬盘驱动器、网络附接存储装置(NAS)、只读存储器、随机存取存储器、CD-ROM、CD-R、CD-RW、磁带,和其他光学和非光学数据存储装置。计算机可读介质可以包括计算机可读有形媒体,其分布在网络耦合的计算机***上,使得以分布的方式存储和执行计算机可读代码。
虽然以特定次序描述方法操作,但应理解,其他内务操作可以在操作之间执行,或者可以对操作进行调整,使得它们在略微不同的时间出现,或者可以分布在***中,这允许处理操作以与处理相关联的各种间隔出现,只要是以期望的方式执行覆盖操作的处理即可。
虽然已经出于理解清楚起见而稍微详细地描述了前述公开内容,但将明白,可以在所附权利要求的范围内实践某些改变和修改。因此,本实施例将被视为说明性而非限制性的,并且本公开的实施例不限于本文给出的细节,而是可以在所附权利要求的范围和等效物内修改。
Claims (14)
1.一种用于实施图形管线的方法,其包括:
构建高分辨率的第一阴影图;
基于所述第一阴影图来构建第二阴影图,其中所述第二阴影图具有比所述第一阴影图更低的分辨率;
确定影响虚拟场景的光源;
从第一视角将所述虚拟场景的图像的对象的几何图形投影到显示器的多个像素上;
确定将第一组几何图形绘制到第一像素;
基于所述光源而确定所述第一组几何图形处于阴影中;
在渲染所述虚拟场景的图像时确定中心凹区域,其中所述中心凹区域对应于用户的注意力指向处;
确定所述第一组几何图形处于所述中心凹区域之外;以及
使用所述第二阴影图来渲染所述第一像素的所述第一组几何图形。
2.如权利要求1所述的方法,所述方法还包括:
确定将第二组几何图形绘制到第二像素;
确定所述第二组几何图形处于所述中心凹区域之内;以及
使用所述第一阴影图来渲染所述第二像素的所述第二组几何图形。
3.如权利要求1所述的方法,所述方法还包括:
基于距所述中心凹区域的距离而构建一系列阴影图,其中所述系列中的阴影图的分辨率随着距所述中心凹区域的所述距离增加而减小;
确定将第三组几何图形绘制到在所述中心凹区域之外的第三像素;
基于所述光源而确定所述第三组处于阴影中;
确定在所述第三像素中绘制的所述第三组几何图形与所述中心凹区域相距的距离;
基于所述第三组几何图形的所述距离而从所述一系列阴影图中选择所述第三阴影图;以及
使用所述第三阴影图来渲染所述第三像素的所述第三组几何图形。
4.如权利要求1所述的方法,所述方法还包括:
根据所述显示器的中心使所述中心凹区域居中,其中所述中心凹区域是静态的。
5.如权利要求1所述的方法,所述方法还包括:
跟踪观看所述虚拟场景的用户的注视,其中所述注视指示所述用户的所述注意力指向的在所述虚拟场景中的方向;
确定所述用户观看所述虚拟场景的所述图像的第一方向;以及
基于所述第一方向使所述中心凹区域在所述图像中居中。
6.如权利要求1所述的方法,其中所述显示器包括头戴式显示器。
7.如权利要求1所述的方法,所述方法还包括:
当渲染所述第一像素的所述第一组几何图形时停用另一阴影效果。
8.一种用于实施图形管线的方法,其包括:
产生对象的多个骨骼,从而界定所述骨骼之间的定位关系;
从所述对象的所述多个骨骼确定骨骼子***;
在渲染所述虚拟场景的包括所述对象的图像时确定中心凹区域,其中所述中心凹区域对应于用户的注意力指向处;
确定所述对象的至少一个部分位于所述图像的***区域中;以及
通过向所述骨骼子***应用变换而将所述对象动画化。
9.如权利要求8所述的方法,其中所述确定骨骼子***还包括:
产生与所述骨骼***相关联的顶点***;
产生从所述顶点***取得的顶点子***;以及
向所述骨骼子***指派所述顶点子***。
10.如权利要求9所述的方法,其中所述指派所述顶点子***包括:
形成第一骨骼和第二骨骼的缩减的一组顶点,其中所述缩减的一组顶点是从所述第一骨骼的第一组顶点和所述第二骨骼的第二组顶点取得,其中所述缩减的组界定比所述第一组顶点和所述第二组顶点的组合更少的关节。
11.如权利要求9所述的方法,所述方法还包括:
将多个混合权重减少至混合权重子集以用于界定多边形网与所述骨骼子***之间的关联。
12.如权利要求9所述的方法,所述方法还包括:
渲染所述顶点子***。
13.如权利要求8所述的方法,其中所述多个骨骼界定分层的一组互连骨骼。
14.如权利要求8所述的方法,所述方法还包括:
当将所述对象动画化时减小关键帧的数目。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762517848P | 2017-06-09 | 2017-06-09 | |
US201762517829P | 2017-06-09 | 2017-06-09 | |
US62/517,848 | 2017-06-09 | ||
US62/517,829 | 2017-06-09 | ||
US15/727,512 US11107183B2 (en) | 2017-06-09 | 2017-10-06 | Adaptive mesh skinning in a foveated rendering system |
US15/727,512 | 2017-10-06 | ||
US15/727,505 US10650544B2 (en) | 2017-06-09 | 2017-10-06 | Optimized shadows in a foveated rendering system |
US15/727,505 | 2017-10-06 | ||
PCT/US2018/036675 WO2018227100A1 (en) | 2017-06-09 | 2018-06-08 | Optimized shadows and adaptive mesh skinning in a foveated rendering system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110832442A true CN110832442A (zh) | 2020-02-21 |
Family
ID=64566074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880045164.2A Pending CN110832442A (zh) | 2017-06-09 | 2018-06-08 | 注视点渲染***中的优化的阴影和自适应网状蒙皮 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP3635515A1 (zh) |
JP (1) | JP6959365B2 (zh) |
CN (1) | CN110832442A (zh) |
WO (1) | WO2018227100A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111784817A (zh) * | 2020-06-30 | 2020-10-16 | 完美世界(北京)软件科技发展有限公司 | 阴影的展示方法和装置、存储介质、电子装置 |
CN112218132A (zh) * | 2020-09-07 | 2021-01-12 | 聚好看科技股份有限公司 | 一种全景视频图像显示方法及显示设备 |
WO2022161319A1 (zh) * | 2021-01-26 | 2022-08-04 | 腾讯科技(深圳)有限公司 | 一种阴影贴图的处理方法、装置、设备及计算机可读存储介质、程序产品 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11170579B2 (en) * | 2019-04-09 | 2021-11-09 | Microsoft Technology Licensing, Llc | Hybrid rendering |
KR102582407B1 (ko) * | 2019-07-28 | 2023-09-26 | 구글 엘엘씨 | 포비에이티드 메시들로 몰입형 비디오 콘텐츠를 렌더링하기 위한 방법들, 시스템들, 및 매체들 |
US11307655B2 (en) * | 2019-09-19 | 2022-04-19 | Ati Technologies Ulc | Multi-stream foveal display transport |
CN111292405B (zh) * | 2020-02-06 | 2022-04-08 | 腾讯科技(深圳)有限公司 | 一种图像渲染的方法以及相关装置 |
CN111790150B (zh) * | 2020-06-18 | 2021-05-28 | 完美世界(北京)软件科技发展有限公司 | 阴影数据确定方法、装置、设备和可读介质 |
GB2600944B (en) | 2020-11-11 | 2023-03-01 | Sony Interactive Entertainment Inc | Image rendering method and apparatus |
WO2023208385A1 (en) * | 2022-04-29 | 2023-11-02 | Huawei Technologies Co., Ltd. | A soft shadow algorithm with contact hardening effect for mobile gpu |
US11562531B1 (en) * | 2022-07-28 | 2023-01-24 | Katmai Tech Inc. | Cascading shadow maps in areas of a three-dimensional environment |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140225887A1 (en) * | 2013-02-11 | 2014-08-14 | EchoPixel, Inc. | Graphical system with enhanced stereopsis |
CN105550685A (zh) * | 2015-12-11 | 2016-05-04 | 哈尔滨工业大学 | 基于视觉注意机制的大幅面遥感影像感兴趣区域提取方法 |
CN106461951A (zh) * | 2014-06-17 | 2017-02-22 | 汤姆逊许可公司 | 利用像素再分配优化的方法和显示设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4384697B2 (ja) * | 2008-03-26 | 2009-12-16 | 株式会社コナミデジタルエンタテインメント | ゲーム装置、ゲーム処理方法、ならびに、プログラム |
JP6271837B2 (ja) * | 2013-01-11 | 2018-01-31 | キヤノン株式会社 | 投影装置及びその制御方法 |
-
2018
- 2018-06-08 EP EP18735469.1A patent/EP3635515A1/en active Pending
- 2018-06-08 JP JP2019568068A patent/JP6959365B2/ja active Active
- 2018-06-08 CN CN201880045164.2A patent/CN110832442A/zh active Pending
- 2018-06-08 WO PCT/US2018/036675 patent/WO2018227100A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140225887A1 (en) * | 2013-02-11 | 2014-08-14 | EchoPixel, Inc. | Graphical system with enhanced stereopsis |
CN106461951A (zh) * | 2014-06-17 | 2017-02-22 | 汤姆逊许可公司 | 利用像素再分配优化的方法和显示设备 |
CN105550685A (zh) * | 2015-12-11 | 2016-05-04 | 哈尔滨工业大学 | 基于视觉注意机制的大幅面遥感影像感兴趣区域提取方法 |
Non-Patent Citations (2)
Title |
---|
ANDREI BORZA 等: "Eye Tracked Shadow Maps", 《2014 INFORMATION PROCESSING SOCIETY OF JAPAN》 * |
ANJUL PATNEY 等: "Towards Foveated Rendering for Gaze-Tracked Virtual Reality", 《ACM TRANS. GRAPH.》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111784817A (zh) * | 2020-06-30 | 2020-10-16 | 完美世界(北京)软件科技发展有限公司 | 阴影的展示方法和装置、存储介质、电子装置 |
CN111784817B (zh) * | 2020-06-30 | 2024-03-29 | 完美世界(北京)软件科技发展有限公司 | 阴影的展示方法和装置、存储介质、电子装置 |
CN112218132A (zh) * | 2020-09-07 | 2021-01-12 | 聚好看科技股份有限公司 | 一种全景视频图像显示方法及显示设备 |
CN112218132B (zh) * | 2020-09-07 | 2022-06-10 | 聚好看科技股份有限公司 | 一种全景视频图像显示方法及显示设备 |
WO2022161319A1 (zh) * | 2021-01-26 | 2022-08-04 | 腾讯科技(深圳)有限公司 | 一种阴影贴图的处理方法、装置、设备及计算机可读存储介质、程序产品 |
Also Published As
Publication number | Publication date |
---|---|
EP3635515A1 (en) | 2020-04-15 |
WO2018227100A1 (en) | 2018-12-13 |
JP2020523687A (ja) | 2020-08-06 |
JP6959365B2 (ja) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11210807B2 (en) | Optimized shadows in a foveated rendering system | |
US10740951B2 (en) | Foveal adaptation of particles and simulation models in a foveated rendering system | |
US11222444B2 (en) | Optimized deferred lighting in a foveated rendering system | |
KR102472152B1 (ko) | 멀티 서버 클라우드 가상 현실 (vr) 스트리밍 | |
JP6959365B2 (ja) | 中心窩レンダリングシステムにおけるシャドーの最適化及びメッシュスキンの適応 | |
JP7181316B2 (ja) | Hmd環境での高速中心窩レンダリングのための予測及びgpuに対する最新の更新を伴う視線追跡 | |
CN107533230B (zh) | 头戴式显示器用追踪*** | |
EP3634593B1 (en) | Optimized deferred lighting and foveal adaptation of particles and simulation models in a foveated rendering system | |
US11107183B2 (en) | Adaptive mesh skinning in a foveated rendering system | |
JP7503122B2 (ja) | 位置に基づくゲームプレイコンパニオンアプリケーションへユーザの注目を向ける方法及びシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |