渲染3D环境中的内容的制作方法

文档序号:16049737发布日期:2018-11-24 11:10阅读:262来源:国知局

本说明书涉及数据处理,包括用于减少未使用的第三方内容的传输以及用于有效地渲染(render)3d环境中的第三方内容的技术。

已经开发了能够渲染三维(three-dimensional,3d)虚拟环境的各种计算系统。作为示例,虚拟现实(virtualreality,vr)系统可以渲染呈现给佩戴头戴式显示器的用户的3d环境。头戴式显示器可以包括用户通过该光学透镜观看屏幕和显示的3d环境的电子显示屏和光学透镜。该系统可以在屏幕上立体地渲染3d环境,当通过头戴式显示器的镜透镜观察时,其为用户创建立体感。一些vr系统提供沉浸式用户体验,因此用户感觉好像他或她实际存在于虚拟环境中。一些vr系统允许用户环视3d环境、在3d环境中移动、并且在3d环境中操纵虚拟对象。



技术实现要素:

该文档描述了用于减少网络上未使用的第三方内容的传输以及用于有效地渲染3d环境中的第三方内容的系统、方法、设备和其他技术。通常,诸如虚拟现实系统或增强现实系统的客户端计算系统可以呈现包括一个或多个合格的第三方内容(third-partycontenteligible,3pce)虚拟对象的3d环境。3pce虚拟对象是被配置为在3d环境的指定位置呈现第三方内容(例如,由实体提供的内容(该实体不同于提供3d环境的实体))的对象(例如,诸如立方体、球体、圆柱体或其他几何形状的3d对象)。3pce虚拟对象可以在任何给定时间以与该对象相关联的多种显示模式中的一个来显示。当检测到触发事件(诸如,用户与3pce虚拟对象的交互)时,系统可以(诸如,通过将对象从一个显示模式转换到另一显示模式)更新虚拟对象。在一些实施方式中,用户与3pce虚拟对象的交互使得对象显示一组新的第三方内容,以改变由对象显示的第三方内容的类型,以打开到与所显示的第三方内容(例如,网站或应用)相关联的外部资源(也被称为“门户资源”)的门户或者在3d环境外的外部环境中生成与所显示的第三方内容相关的通知。

本文描述的主题的一些实施方式包括计算系统。该计算系统包括存储器子系统、通信接口、渲染引擎、输入处理装置和虚拟对象管理器。存储器子系统被配置为存储第一数据,该第一数据(i)定义三维(3d)环境,以及(ii)识别3d环境中的虚拟对象。通信接口被配置为通过网络发送用于第三方内容的请求,以与3d环境中的虚拟对象一起显示,并响应于请求接收第三方内容。渲染引擎被配置为使用来自存储器子系统的第一数据来渲染3d环境,用于在耦合到计算系统的显示器设备上呈现,这包括以虚拟对象显示第一组第三方内容的第一模式在3d环境的特定位置渲染虚拟对象。输入处理装置被配置为检测用户与3d环境中的虚拟对象的交互。虚拟对象管理器被配置为从输入处理装置接收第一用户与3d环境中的虚拟对象的交互的指示,并且作为响应,命令渲染引擎将虚拟对象从虚拟对象显示第一组第三方内容的第一模式转换到虚拟对象显示第二组第三方内容的第二模式。

这些和其他实施方式可以可选地包括以下特征中的一个或多个。

显示器可以是头戴式显示器。3d环境可以是被配置成使用该头戴式显示器观看的虚拟现实(vr)环境。

渲染引擎可以被配置为在系统已获得第二组第三方内容之前以第一模式渲染虚拟对象。通信接口可以被配置为基于(i)识别用户与虚拟对象的交互即将发生或者(ii)识别第一用户与虚拟对象的交互已经发生来发送对第二组第三方内容的请求。

第一组第三方内容可以包括图像的集合。在第一模式中,虚拟对象可以包括形成3d几何形状的多边形表面的集合。渲染引擎可以被配置为通过在多边形表面的集合的每个多边形表面上显示来自图像集合的相应图像来以第一模式渲染虚拟对象。

当以第一模式渲染虚拟对象时,虚拟对象的多边形表面的集合可以形成立方体。

响应于从虚拟对象管理器接收将虚拟对象从第一模式转换到第二模式的指令,渲染引擎可以被配置为使立方体动画化以展现第二组第三方内容。

图像的集合可以各自描绘与相同主题或实体相关的内容。

输入处理装置可以被配置为接收用户输入以在3d环境内移动用户的当前观看位置,并且检测用户的当前观看位置与3d环境中的虚拟对象的位置之间的关系。

虚拟对象管理器可以被配置为基于用户的当前观看位置与3d环境中的虚拟对象的位置之间的关系满足一个或多个标准的确定,将虚拟对象从第一模式转换到第二模式。

用户当前观看位置与虚拟对象的位置之间的关系可以是用户当前观看位置与虚拟对象位置之间的距离,其中虚拟对象管理器被配置为基于用户当前观看位置和虚拟对象在3d环境中的位置之间的距离小于阈值距离的确定,将虚拟对象从第一模式转换到第二模式。

输入处理装置可以被配置为监视3d环境中用户注视的方向,并且基于识别用户的注视在虚拟对象的方向上来检测第一用户交互。

虚拟对象管理器可以被配置为基于识别用户的注视已经在虚拟对象的方向上保持预定的时间长度来将虚拟对象从第一模式转换到第二模式。

输入处理装置可以被配置为在用户的注视在3d环境中的虚拟对象的方向上的同时,从基于手的控制器接收输入并且基于从基于手的控制器接收的第一输入来检测第一用户交互。

虚拟对象管理器还可以被配置为响应于从输入处理装置接收到第一用户与虚拟对象交互的指示,以在3d环境外触发生成用户通知,该用户通知与第一组第三方内容相关联的主题或实体相关。

虚拟对象以第二模式显示的第二组第三方内容的类型可以与虚拟对象以第一模式显示的第一组第三方内容的类型不同。

虚拟对象以第一模式显示的第一组第三方内容的类型可以是图像。虚拟对象以第二模式显示的第二组第三方内容的类型可以是视频或3d模型。

本文公开的主题的一些实施方式包括由计算系统执行的方法。该方法可以包括在计算系统的显示器上显示三维(3d)环境;由计算系统识别位于3d环境中的虚拟对象是合格的以呈现第三方内容;由计算系统获得虚拟对象的第一组第三方内容;由计算系统以虚拟对象呈现第一组第三方内容的第一模式渲染3d环境中的虚拟对象;识别用户与3d环境中的虚拟对象的交互满足一组预定标准;以及响应于识别出用户与3d环境中的虚拟对象的交互满足一组预定标准,以虚拟对象呈现不同于第一组第三方内容的第二组第三方内容的第二模式重新渲染3d环境中的虚拟对象。

这些和其他实施方式可以可选地包括以下特征中的一个或多个。显示器可以是头戴式显示器。3d环境可以是被配置成使用该头戴式显示器观看的虚拟现实(vr)环境。系统可以在已获得第二组第三方内容之前以第一模式渲染虚拟对象。该方法还可以包括基于(i)识别用户与虚拟对象的交互即将发生或者(ii)识别第一用户与虚拟对象的交互已经发生来发送对第二组第三方内容的请求。在第一模式中,虚拟对象可以包括形成3d几何形状的多边形表面的集合。第一组第三方内容可以包括图像的集合。以第一模式渲染虚拟对象可以包括在多边形表面的集合的每个多边形表面上渲染来自图像的集合的相应图像。以第一模式渲染虚拟对象可以包括渲染立方体,该立方体展示来自立方体的每个面上的图像集合的相应图像。第二组第三方内容可以包括视频,并且以第二模式重新呈现虚拟对象包括在3d环境中播放视频。以第二模式重新渲染虚拟对象可以包括使立方体动画化以展现第二组第三方内容。图像的集合可以各自描绘与相同主题或实体相关的内容。该方法可以进一步包括接收用户输入以在3d环境内移动用户的当前观看位置,以及检测用户的当前观看位置与3d环境中的虚拟对象的位置之间的关系。可以基于用户的当前观看位置与3d环境中的虚拟对象的位置之间的关系满足一个或多个标准的确定以第二模式重新渲染虚拟对象。用户的当前观看位置与虚拟对象的位置之间的关系可以是用户的当前观看位置与虚拟对象的位置之间的距离,其中以第二模式重新渲染虚拟对象可以基于用户的当前观看位置与3d环境中虚拟对象的位置之间的距离小于阈值距离的确定。该方法可以进一步包括监视3d环境中用户的注视方向,并基于识别用户的注视在虚拟对象的方向上来检测第一用户交互。可以基于识别用户的注视已经在虚拟对象的方向上保持预定的时间长度以第二模式重新渲染虚拟对象。该方法可以进一步包括在用户的注视在3d环境中的虚拟对象的方向上的同时,从基于手的控制器接收输入并基于从基于手的控制器接收的第一输入检测第一用户交互。该方法还可以包括响应于接收到第一用户与虚拟对象的交互的指示,在3d环境外触发生成用户通知,该用户通知与第一组第三方内容相关联的主题或实体相关。虚拟对象以第二模式显示的第二组第三方内容的类型可以与虚拟对象以第一模式显示的第一组第三方内容的类型不同。虚拟对象以第一模式显示的第一组第三方内容的类型可以是图像。虚拟对象在第二模式中显示的第二组第三方内容的类型可以是视频或3d模型

系统可以响应于识别用户与3d环境中的虚拟对象的交互或另一用户交互,从与计算系统分离的服务器中检索第二组内容。

本文公开的主题的一些实施方式包括具有存储其上的指令一个或多个非暂时性计算机可读介质,当这些指令由一个或多个处理器执行时,使得一个或多个处理器执行本文公开的任何方法。

在某些情况下,本文描述的主题的一些实施方式可以实现以下优点中的一个或多个。首先,计算系统可以通过约束在初始渲染内容时(例如,在将对象转换到不同显示状态的触发事件发生之前)用于在对象上显示的内容的类型和/或格式是合格的来更有效地渲染包含3d环境中的第三方内容的虚拟对象。例如,在一些实施方式中,系统可以在用户与对象交互以对所显示的图像表达兴趣之前在对象上仅显示不超过最大尺寸约束的图像。可以在以对象的初始显示模式在对象上显示的一组主要内容中禁止超大图像或其他类型的媒体格式(例如,音频、视频)。这样的约束可以通过减少渲染对象所需的计算需求来帮助更有效地渲染3d环境中的对象。此外,由于类型和/或格式约束,可以减少合格的第三方内容的文件大小,这加速了从内容分发系统的远程服务器传送第三方内容。

其次,通过延迟某些格式或类型的第三方内容的呈现直到发生触发事件,可以减少对渲染3d环境的客户端系统的计算需求。例如,用户可能希望在探索3d环境的同时看到复杂的3d模型项目,但是渲染3d环境中的3d模型可能在计算上是昂贵的。为了避免在立即显示复杂3d模型时耗尽计算资源,可以仅在用户首次与具有第一模式的图像的虚拟对象交互之后显示3d模型,其使用较轻的足迹模型(例如,在具有相对较少的多边形的立方体或其他对象上显示图像)为用户预览3d模型。

第三,通过推迟对与虚拟对象的次要显示模式相关联的第三方内容的请求,直到检测到触发事件(例如,与虚拟对象的用户交互或与虚拟对象的预期用户交互)已经发生,可以避免或减少未使用的第三方内容的传输。例如,如果虚拟对象被配置为在用户与对象交互之后呈现视频,则视频可能不会立即从内容分发系统的服务器发送到客户端系统。相反,仅在用户与3d环境中的对象已经交互之后,才可以在一些实施方式中发送视频。

第四,通过合并多条用于在虚拟对象上显示第三方内容以及通过向3d环境外的用户生成外部通知,可以减少对3d环境中的用户的体验的干扰。例如,如本文所讨论的使用虚拟对象呈现第三方内容的技术可以减少对沉浸式vr体验的干扰。

附图说明

图1是示例框架的框图,在该示例框架中第三方内容被分发用于在3d环境中与虚拟对象一起呈现。

图2a至图2d描绘了3d环境中的示例性的合格的第三方内容(3pce)虚拟对象的图示。

图3描绘了示例客户端计算系统的框图,该客户端计算系统被配置为渲染示出由内容分发系统指定的第三方内容的3d环境。

图4a和图4b描绘了用于渲染3d环境中的虚拟对象的示例过程的流程图。

图5描绘了示出客户vr系统和内容分发系统之间的示例过程中的交互的泳道图。

图6描绘了用于基于与由于用户与3pce虚拟对象的交互而生成的外部通知相关联的转换来评估3d环境中的第三方内容选择的示例过程的流程图。

图7是计算机系统的示意图,该计算机系统可用于执行结合本文描述的计算机实施的方法、系统、设备和其他技术描述的操作。

具体实施方式

图1是示例框架100的框图,在该示例框架中第三方内容被分发,用于在3d环境(诸如虚拟现实环境)中与虚拟对象一起呈现。示例框架100包括网络102,诸如局域网(localareanetwork,lan)、广域网(wideareanetwork,wan)、因特网或其组合。网络102连接3d应用服务器104、用户设备106、第三方内容服务器108和第三方内容分发系统110(也称为内容分发系统)。示例框架100可以包括许多不同的3d应用服务器104、用户设备106和第三方内容服务器108。

用户设备106是能够通过网络102请求和接收资源(例如,3d应用)的电子设备。示例用户设备106包括个人计算机、移动通信设备和可以通过网络102传送和接收数据的其他设备。用户设备106通常包括用户应用(诸如web浏览器)以便于通过网络102传送和接收数据,但是由用户设备106执行的本机应用(nativeapplication)也可以促进通过网络102传送和接收数据。

3d资源(例如,3d应用或3d环境的定义文件)是针对在用户设备106上渲染3d环境的资源。3d资源的示例包括虚拟现实应用、视频游戏、混合现实应用、增强现实应用以及可以在任何这些类型的应用中显示的3d环境的定义。3d资源可以包括定义3d环境内的一个或多个3d环境和虚拟对象的数据。3d应用服务器104可以向用户设备106提供3d资源。例如,3d应用服务器104可以包括托管发布者网站的服务器。在该示例中,用户设备106可以发起针对给定3d资源的请求,并且托管给定3d资源的3d应用服务器104可以通过将3d资源发送到用户设备106来响应该请求。在一些实施方式中,3d应用服务器可以向用户设备106提供一个或多个定义文件。定义文件包括表示3d环境的数据,该3d环境可以由安装在用户设备106上的3d应用程序处理以渲染3d环境。

在一些情况下,给定3d资源可以包括引用第三方内容分发系统110的第第三方脚本或第三方标签。在这些情况下,当由用户设备106处理给定3d资源时,用户设备106执行第三方标签或第三方脚本。第三方标签或第三方脚本的执行将用户设备106配置为生成对通过网络102被发送到第三方内容分发系统110的第三方内容112的请求。例如,第三方标签或第三方脚本可以使得用户设备106能够生成包括报头和有效载荷数据的分组化的数据请求。请求112可以包括诸如从其请求第三方内容的服务器的名称(或网络位置)、请求设备(例如,用户设备106)的名称(或网络位置)的数据和/或第三方内容分发系统110可用于选择响应于该请求而提供的第三方内容的信息。用户设备106通过网络102(例如,电信网络)将请求112发送到第三方内容分发系统110的服务器。

请求112可以包括指定3d资源的数据、指定要在其上呈现第三方内容的虚拟对象的特性的数据以及指定虚拟对象出现的3d环境的特性的数据。例如,可以向内容分发系统110提供指定将在其上呈现第三方内容的虚拟对象的形状或几何形状、虚拟对象的尺寸(例如,长度、宽度、高度和/或体积)、虚拟对象在3d环境中的位置、可以接收第三方内容的虚拟对象上合格的表面的数量、与3d环境相关联的描述性关键字和/或对于在虚拟对象上呈现是合格的媒体类型的数据。

请求112还可以包括与其他信息有关的数据,诸如用户已提供的信息、指示提交请求的状态或区域的地理信息、或者为将显示第三方内容的环境提供上下文的其他信息。还可以在请求112中提供指定用户设备106的特性的数据,诸如识别用户设备106的模型的信息、设备106的选择能力(例如,基于手的控件是否可用于选择虚拟对象、用户可以点击以选择3d环境中渲染的项的耳机本身上的控件是否可用)、用户设备106的配置、电子显示器的类型(例如,用于vr设备106的触摸屏或头戴式显示器)。例如,可以通过分组化的网络发送请求112,并且可以将请求112本身格式化为具有报头和有效载荷数据的分组化数据。报头可以指定分组的目的地,并且有效载荷数据可以包括以上讨论的任何信息。

第三方内容分发系统110响应于接收到请求112和/或使用包括在请求112中的信息,选择将在3d环境中的虚拟对象上或附近呈现的第三方内容。

在一些实施方式中,第三方内容分发系统110在分布式计算系统中实施,该分布式计算系统包括例如服务器和一组多个计算设备114,它们互连并且响应于请求112识别和分发第三方内容。例如,该组多个计算设备114一起操作以从数百万个可用第三方内容(3pc1-x)的语料库中识别是合格的而被与3pce虚拟对象一起呈现一组第三方内容。例如,可以在第三方语料库数据库116中索引数百万个可用的第三方内容项。每个第三方内容索引条目可以引用相应的第三方内容和/或包括调节相应第三方内容分发的分发参数(dp1-dpx)(例如,选择标准)。

在一些实施方式中,特定第三方内容的分发参数(例如,选择标准)可以包括必须匹配的分发关键字(例如,由请求112中指定的3d资源或术语)以便第三方内容是合格的以进行呈现。分发参数还可以要求请求112包括指定特定地理区域(例如,国家或州)的信息和/或指定请求112源自特定类型的用户设备106的信息以便第三方内容是合格的以进行呈现。分发参数还可以指定用于分发特定第三方内容的出价和/或预算。

可以将合格的第三方内容的识别分段为多个任务117a-117c,然后在一组多个计算设备114内的计算设备之间分配这些任务。例如,组114中的不同计算设备可以各自分析第三方语料库数据库116的不同部分,以识别具有与请求112中包括的信息匹配的分发参数的各种第三方内容。在一些实施方式中,组114中的每个给定计算设备可以分析不同的数据维度(或维度组)并且将分析的结果(res1-res3)118a-118c传递回第三方内容分发系统110。例如,由组中的计算设备中的每一个提供的结果118a-118c可以识别响应于请求而是合格的以用于分发的第三方内容的子集和/或具有某些分发参数或属性的第三方内容的子集。

第三方内容分发系统110聚合从一组多个计算设备114接收的结果118a-118c,并使用与聚合的结果相关联的信息来选择将响应于请求112而提供的第三方内容的一个或多个实例。例如,第三方内容分发系统110可以基于一个或多个内容评估过程的结果来选择一组获胜的第三方内容,如以下进一步详细讨论的那样。反过来,第三方内容分发系统110可以通过网络102生成并发送回复数据120(例如,表示回复的数字数据),使得用户设备106能够将该组获胜的第三方内容成到3d环境当中,例如,用于在3d环境中的合格虚拟对象上呈现。

在一些实施方式中,用户设备106执行包括在回复数据120中的指令,该指令配置并使得用户设备106能够从一个或多个第三方内容服务器获得该组获胜的第三方内容。例如,回复数据120中的指令可以包括网络位置(例如,统一资源定位符(uniformresourcelocator,url))和脚本,该脚本使得用户设备106向第三方内容服务器108发送第三方请求(3pr)121,以从第三方内容服务器108获得给定的获胜第三方内容。响应于该请求,第三方内容服务器108将向用户设备106发送第三方数据(tp数据)122,该第三方数据122使得给定的获胜第三方内容被合并到3d环境中并在用户设备106处呈现。

图2a至图2d描绘了3d环境中的示例性第三方内容合格(3pce)虚拟对象202的图示。通常,3pce对象是被布置为呈现3d环境中的第三方内容的虚拟对象。在3pce对象上呈现的内容可以被创建并且可用于一个或多个第三方实体(例如,个人、企业、组织)分发,这些第三方实体不同于并且独立于开发呈现第三方内容的3d环境的一个或多个实体。例如,虚拟现实游戏可以包括3pce虚拟对象以呈现独立于游戏本身及其3d环境生成的第三方内容(例如,广告)。

当渲染3d环境中的3pce虚拟对象时,3pce虚拟对象可以具有多个显示模式。对于每个显示模式,虚拟对象可呈现不同组的第三方内容、可采用定义虚拟对象的形状的不同3d模型、可触发3d环境内外的不同事件(例如,外部通知)或这些的组合。在一些实施方式中,不同的显示模式提供不同类型或格式的第三方内容以在虚拟对象上显示(或以其他方式与虚拟对象结合)。例如,在第一显示模式中,可以在定义虚拟对象的形状的3d模型的表面上显示一组第三方图像。相反,第二显示模式可以以要与虚拟对象一起呈现的另一种媒体格式提供文本、视频或内容。用户可以与3pce虚拟对象交互,例如,通过选择对象、注视对象、接近对象或这些的组合。在一些实施方式中,检测到的与3pce对象的用户交互通过从一个活动的显示模式转换到另一活动的显示模式来触发对象改变显示模式。因此,如果用户对以第一显示模式在虚拟对象上呈现的第三方内容感兴趣,则用户可以选择该对象以观看与最初呈现的第三方内容的相同主题相关的附加内容或不同内容。在一些实施方式中,系统推迟获得或呈现附加内容,直到用户通过与虚拟对象交互来指示他或她对内容的兴趣,从而减少来自内容分发系统的、不会在3d环境中渲染的第三方内容的传输。

转到图2a,以第一显示模式示出3pce虚拟对象202。这里,对象202具有基于立方体形状的3d模型的立方几何。在一些实施方式中,虚拟对象202的形状符合第三方内容分发标准,以确保虚拟对象202可以正确地显示也根据分发标准格式化的一组第三方内容。例如,可以通过分发标准来指定第三方媒体内容的分辨率和文件类型,并且可以对虚拟对象进行整形以便在其表面上正确地显示第三方媒体内容。如图2a所示,在第一显示模式中,虚拟对象202在立方体的每个面上展示相应的图像(例如,202a-c)。以第一显示模式呈现在立方体上的图像集合构成一组主要的第三方内容,该第三方内容是第一次渲染3d环境时最初显示在对象202上的一组第三方内容。在一些实施方式中,虚拟对象202在3d环境中缓慢旋转以允许用户观看对象的所有侧面以及在对象的每一侧上呈现的内容。

当用户与3d环境中的虚拟对象202交互时,虚拟对象202可以从第一显示模式转换到与对象202相关联的另一显示模式。图2b至图2d示出了虚拟对象202可以响应于检测到的与对象202的用户交互而转换的可替换的显示模式的示例表示。2b至图2d中的显示模式中的每一个可以由相应的转换状态模型定义,该转换状态模型指示对象202如何以显示模式显示第三方内容以及指示与显示模式相关联的任何补充的操作(例如,在3d环境外生成通知)。例如,当虚拟对象202转换到第二显示模式时,如图2b中所示的那样,立方体模型被动画化以便打开立方体并展现第二3d模型204。第二3d模型204可以与已经在立方体的侧面上显示的一组主要的第三方内容主题相关。例如,如果立方体侧面上的图像显示跑车,则在立方体内部展现的第二3d模型204可以是相同跑车的3d模型。

作为另一示例,图2c示出了虚拟对象202的第三显示模式,其中当立方体响应于用户与对象202的交互而打开时,在立方体内部展现视频播放器206。视频播放器206可以以视频的形式呈现次要第三方内容。可以基于视频内容与以第一显示模式在立方体的面上显示的主要内容之间的主题关系来选择视频。

作为另一示例,图2d示出了虚拟对象202的第四显示模式。在第四模式中,在其上渲染3d环境的客户端系统、内容分发系统或两者生成与3d环境之外的第三方内容相关的通知。当用户以第一显示模式与对象202交互时,可以将通知消息自动发送到用户的一个或多个账户。通知消息可以包括例如关于在一组主要的第三方内容中展出的产品或服务的附加信息或者关于提供第三方内容的一组主要的第三方内容提供商的附加信息。通知消息有时可以包括到与一组主要的第三方内容相关联或与第三方内容提供商相关联的外部资源(例如,网站或应用)的链接。开发者、分销商、内容提供商和终端用户有时可能更喜欢直接在3d环境中呈现的第三方内容的外部通知,以便最小化来自3d环境中呈现的本机内容的干扰。在一些实施方式中,弹出通知消息208还可以在虚拟对象202上或附近的3d环境内显示。弹出通知消息208可以包含在外部通知中传送的相同消息、可以包含已经传送的外部通知的确认或者两者。

图3描绘了示例客户端计算系统300的框图,该客户端计算系统300被配置为渲染展出由内容分发系统350指定的第三方内容的3d环境。在一些实施方式中,客户端计算系统300是用户设备,例如,来自图1的用户设备106。内容分发系统350可以被配置为来自图1的第三方内容分发系统110、来自图1的第三方内容服务器108或者可以包括系统108和110两者的方面。内容分发系统350一般可以被实施为一个或多个位置中的一个或多个计算机的系统。客户端计算系统300通过网络(例如,因特网、局域网、无线宽带网络)与内容分发系统350通信。尽管未在图3中示出,但是出于各种目的,客户端计算系统300除了内容分发系统350之外还可以与其他系统通信。例如,客户端计算系统300可以与用于在线应用商店的服务器或开发者服务器通信,以获得使得系统300能够渲染3d环境的虚拟现实、增强现实和/或混合现实应用。同样地,客户端计算系统300可以通信用于在线应用商店的服务器或开发者服务器以获得3d环境(例如,沉浸式虚拟现实游戏)的定义文件。

客户端计算系统300可以是被配置并启用以渲染具有合并的第三方内容的3d环境的各种计算系统中的任何一种。在一些示例中,客户端计算系统被配置为呈现虚拟现实类型的3d环境,用户经由头戴式显示器观看该3d环境。在其他示例中,客户端计算系统300被配置为在传统的二维屏幕上呈现其他类型的3d环境,诸如增强现实环境、混合现实环境或游戏环境。系统300可以被集成到一个设备中,或者可以在一个或多个位置中包括多个单独连接的组件。在一些实施方式中,客户端计算系统300包括显示器304、存储器子系统306、3d环境渲染引擎308、输入处理器310、虚拟对象管理器312和网络接口314。

显示器304是电子显示器,其被配置为向用户可视地显示3d环境。显示器304可以采用各种形式用于不同类型的系统。例如,在虚拟现实系统中,显示器304可以是头戴式显示器,其中显示器304的观看屏幕被固定在用户眼睛前方几英寸的位置。在vr系统中,显示器304可以提供3d环境的立体呈现。当用户通过一组透镜观看3d环境的立体呈现时,3d环境看起来具有深度,因此用户感觉好像他或她沉浸在3d环境中。在一些实施方式中,屏幕是头戴式显示器的整体组件。在其他实施方式中,智能手机或其他移动单元可拆卸地固定到头部单元以形成头戴式显示器,该头戴式显示器使用移动单元的屏幕作为头戴式显示器的屏幕。显示器304可以是例如液晶显示器(liquid-crystaldisplay,lcd)、有机发光二极管显示器(organiclight-emittingdiodedisplay,oled)或有源矩阵oled(activematrixoled,amoled)显示器。

存储器子系统306包括存储表征3d环境的数据的一个或多个存储设备。3d环境是能够在三维中渲染的虚拟环境。3d环境的示例包括3d游戏和视频环境(例如,现场或记录的事件流,诸如3d音乐会或运动事件流)。在一些情况下,客户端计算系统302的用户可以通过移动他或她的头以环顾环境(例如,在虚拟现实系统中)、通过在环境中移动、通过操纵环境中的对象或这些的组合来探索虚拟3d环境。客户端计算系统302的其他组件可以访问存储器子系统306以从存储设备读取、写入或删除数据。

在一些实施方式中,由存储器子系统306存储的、表征3d环境的数据包括对一个或多个合格第三方内容(3pce)虚拟对象的声明。可以使用各种合适的编程技术中的任何一种来声明针对3d环境的3pce虚拟对象。在一些实施方式中,开发者可以将标签、脚本或可执行代码插入到3d环境的(多个)定义文件,当标签、脚本或可执行代码被执行时根据其中指定的任何参数实例化3d环境中的3pce虚拟对象。例如,当由客户端计算系统302处理插入的标签,脚本或可执行代码时,插入的标签,脚本或可执行代码可以使客户端计算系统302访问特定3d模型(例如,立方体或球体),以从内容分发系统350请求第三方内容,并且利用从内容分发系统350返回(或者从由内容分发系统350识别的一个或多个其他第三方内容服务器返回)的第三方内容来渲染3d模型。开发者可以手动将标签,脚本或可执行代码插入到3d环境的定义(例如,源代码或可执行代码)中,或者可以通过开发者用来创建3d环境(例如,所见即所得(whatyouseeiswhatyouget,wysiwyg)开发环境)的编程或设计环境自动地插入代码。

在一些实施方式中,声明3pce虚拟对象的标签、脚本或可执行代码可以包括指定对象的一个或多个属性的一个或多个参数。例如,3pce虚拟对象的属性可以指示对象在3d环境中的显示方式、对象位于3d环境中的位置、对象的合格类型或几何形状、对可以被选择用于在对象上显示的第三方内容的约束、与对象相关联的交互模型、与对象相关联的转换状态模型、或者这些中的两个或更多个的组合。在一些实施方式中,3pce虚拟对象可以高度定制具有许多开发者可指定的属性。在其他实施方式中,可以用相对较少的开发者指定的属性来声明3pce虚拟对象,并且可选地,可以向开发者提供较少的定制选项。例如,开发者可以通过标记、脚本或可执行代码声明3pce虚拟对象,该标记、脚本或可执行代码仅指定对象将放置在虚拟环境中的位置,并且在某些实例中,还指定对象的大小(例如,物体的长度、宽度、高度和/或体积)。可以由客户端计算系统302、内容分发系统350或两者基于默认设置或基于与对象相关联的上下文自动选择未在对象声明中指定的虚拟对象的特性。与3pce虚拟对象相关联的上下文可以包括例如,对象放置其中的3d环境的特性、客户端计算系统302的特性、用户或观看3d环境的用户的帐户的特性、3d环境的开发者的特性或偏好、或者这些上下文中的两个或更多个的组合。

3d环境渲染引擎308是客户端计算系统302的子系统,其被配置为从存储器子系统306读取3d环境的定义并且渲染3d环境以经由显示器304并且可选地使用一个或多个附加外围输出设备(例如,扬声器、手控制器、触觉反馈设备)呈现给用户。渲染引擎308可以包括被配置和启动以执行本文描述的操作的一个或多个数据处理装置(例如,处理器)。数据处理装置可以专用于渲染引擎308,或者可以至少部分地与客户端计算系统302的其他组件共享。在一些实施方式中,渲染引擎308包括处理3d环境定义文件并渲染环境的3d呈现的一个或多个图形处理单元(graphicsprocessingunits,gpu)。例如,用于虚拟现实系统的渲染引擎308可以处理用于3d环境的一个或多个定义文件以生成3d环境的立体显示,当用户通过特殊配置的镜头观看该立体显示时,其向用户提供沉浸式3d体验。

输入处理器310是客户端计算系统302的子系统,其被配置为监测一个或多个输入通道,用于在为用户渲染3d环境的同时接收的用户输入。输入处理器310可以包括被配置和启动以执行本文描述的操作的一个或多个数据处理装置(例如,处理器)。输入处理器310可以根据客户端计算系统302的特定配置来检测各种类型的用户输入。例如,基本虚拟现实(vr)系统可以基于来自头戴式显示器单元中的一个或多个方位传感器和运动传感器的信号来检测用户输入。方位传感器和运动传感器可包括一个或多个加速度计、罗盘、陀螺仪、磁力计或这些传感器的组合。方位传感器和运动传感器可以实时地生成指示用户在3dvr环境内的注视的方向的信号,并且这些信号可以由输入处理器310解释以实时跟踪用户注视的方向。此外,客户端计算系统302可以包括例如在基于手的控制器上或在头戴式显示器上的一个或多个按钮或开关,其可以由用户致动以向系统302提供输入。更先进的vr系统可以提供附加的用户输入通道,诸如位于头戴式显示器外部的运动跟踪传感器,其跟踪头戴式显示器上的基准点的移动。输入处理器310可以解释来自外部运动传感器的信号以确定用户在六个自由度中的运动,例如包括旋转和平移。

在一些实施方式中,输入处理器310包括用于检测3d环境内的预定用户动作的逻辑。预定用户动作可以包括与3d环境中的3pce虚拟对象的交互,或者指示用户可能即将与3pce虚拟对象交互的动作。例如,渲染引擎308可以在3d环境的显示器中绘制识别用户凝视的方向标线(reticle)。标线可以是小的,以便不会混淆3d环境的显示或分散vr系统中的沉浸式体验,但是标线可以为用户提供有用的反馈,以基于用户的注视方向可视化地识别3d环境中的目标对象。在一些实施方式中,输入处理器310可以使用标线来检测用户与3pce虚拟对象的交互。例如,如果输入处理器310检测到标线已经在3d环境中的虚拟对象上保持位置达预定的时间长度(例如,预先指定的阈值时间间隔),则输入处理器310可以标示(register)发生用户与虚拟对象的交互,并将用户与对象的交互的通知推送到虚拟对象管理器312。在一些实施方式中,当输入按钮或开关被激活时,输入处理器310基于识别标线位于虚拟对象上方来检测用户与虚拟对象的交互。在一些实施方式中,输入处理器310基于识别用户的凝视指向对象(例如,当用户在3d环境中的当前观看位置在3d环境中的对象的位置的阈值距离内时,通过识别标线位于虚拟对象上方)来检测用户与虚拟对象的交互。渲染引擎308还可以在3pce虚拟对象上、在对象附近或者以其他方式在3d环境中绘制进度条,进度条指示用户必须注视对象以触发动作的时间,例如直到对象转换显示模式的时间。

在一些实施方式中,系统302可以监视用户输入的模式,该模式指示用户可能即将与3pce虚拟对象交互。输入处理器310可以存储表示指示用户可能即将与3pce虚拟对象交互的预定用户动作(例如,用户输入的模式)的规则或其他逻辑。当输入处理器310检测到与预定用户输入模式中的一个匹配的用户输入模式时,输入处理器310可以抛出标记并向虚拟对象管理器312推送指示用户可能即将与对象交互的通知。例如,如下面关于虚拟对象管理器314进一步讨论的,当系统抛出指示可能与虚拟对象的用户交互的标志时,该标志可以触发检索次要第三方内容,以虚拟对象的次要模式与对象一起显示。这样,可以在用户与对象的实际交互之前检索次要内容,但是次要内容被推迟,直到用户的动作指示与对象实际交互以显示次要内容的意图。因此,可以通过推迟次要内容的传输,直到输入处理器310检测到用户已经与虚拟对象交互或者可能与虚拟对象交互来减少对次要内容的网络传输和本地存储要求。

虚拟对象管理器312是客户端计算系统302的子系统,虚拟对象管理器312管理出现在3d环境中的3pce虚拟对象。虚拟对象管理器312可以被实施为被编程以执行本文描述的操作的一个或多个位置中的一个或多个数据处理装置(例如,处理器)。数据处理装置可以专用于虚拟对象管理器312,或者可以在虚拟对象管理器312和客户端计算系统302的一个或多个其他组件之间共享。

在一些实施方式中,当最初在系统302上加载并渲染3d环境时,渲染引擎308解析3d环境的(多个)定义文件、识别被声明出现在3d环境中的任何3pce虚拟对象、以及调用虚拟对象管理器312来实例化每个3pce虚拟对象。在调用虚拟对象管理器312时,渲染引擎308可以将对象声明中指定的任何参数的值传递给管理器312。对于每个对象,虚拟对象管理器312至少获得最初显示在对象上的相应第一组第三方内容,诸如要在对象的外表面上显示的一组第三方图像。在一些实施方式中,虚拟对象管理器312使用网络接口314请求第三方内容来从内容分发系统350获得要在对象上呈现的第三方内容。然后,虚拟对象管理器312返回到渲染引擎308,用以在3d环境中呈现表示3pce虚拟对象的几何形状和已被选择用于在对象上显示的第三方内容的3d模型。在一些实施方式中,第三方内容是文本。在一些实施方式中,第三方内容是一个或多个图像、视频或两者。然后,渲染引擎308绘制3d环境中的虚拟3d对象用以呈现给用户。

在一些实施方式中,虚拟对象管理器312还被配置为处理对检测到的与3d虚拟环境中的3pce虚拟对象的用户交互的响应。例如,在检测到用户在虚拟环境中的动作与指示用户已经与3pce虚拟对象交互或可能即将交互的一组预定用户动作匹配时,输入处理器310可以调用虚拟对象管理器312确定如何响应与对象的用户交互或预期的用户交互。在对虚拟对象管理器312的调用中,输入处理器310可以传递作为交互或预期交互的目标的对象的标识符,并且还可以传递表征与对象的交互类型的信息(例如,凝视和选择、扩展凝视、基于手的对象操纵)。虚拟对象管理器312可以使用从输入处理器310传递的信息来确定如何响应给定用户与对象的交互或如何响应与对象的预期用户交互。在一些实施方式中,虚拟对象管理器312维持已经在虚拟环境中检测到的用户与3pce对象的交互或预期用户交互的日志,该日志被自动且周期地报告给内容分发系统350或分析3d虚拟环境中用户与3pce对象的交互的模式的另一系统。因此,当虚拟对象管理器312从输入处理器310接收到与3pce虚拟对象的用户交互或预期用户交互的指示时,虚拟对象管理器312可以向日志中添加捕捉关于交互的显著信息的条目,例如交互的时间戳、交互的目标对象以及与交互相关联的上下文。

可以在与对象相关联的多个模式中的一个中激活3pce虚拟对象。在一些实施方式中,3pce对象具有主要模式和次要模式。在主要模式下,对象显示一组主要的第三方内容。在次要模式中,对象使用从一组可能的转换状态模型选择的特定转换状态模型向客户端计算系统302的用户提供信息。如下面参考图4b进一步详细讨论的那样,每个转换状态模型表示相应的技术,通过该技术对象以第二模式呈现与一组主要的第三方内容相关的附加信息。

例如,使用第一转换状态模型,3pce虚拟对象被配置为呈现一组次要的第三方内容。一组次要的第三方内容可以不同于一组主要的第三方内容,但是仍然与一组主要的第三方内容相关联的相同主题或实体相关。一组次要的第三方内容也可以具有与第一组第三方内容不同的类型(例如,媒体格式)。例如,在第一模式中,3pce虚拟对象可以将与特定产品或服务相关的图像集合展示为一组主要的第三方内容。在第二模式中,可以用关于特定产品或服务的视频将主要内容替换为一组次要的第三方内容。视频可以是2d视频,或者在一些实施方式中可以是沉浸式360度视频。

可替换地,使用第二转换状态模型,3pce虚拟对象被配置为生成关于与一组主要的第三方内容相关联的主题或实体的外部通知。外部通知是在3d环境的外部(例如,在不同的应用中和/或在不同的设备上)提供给用户的通知,诸如短消息服务(short-messageservice,sms)文本消息中的通知、社交媒体消息、电子邮件消息或在智能手机或其他移动设备或计算系统的通知列表中显示的通知。

可替换地,使用第三转换状态模型,3pce虚拟对象被配置为向与一组主要的第三方内容相关的主题或实体相关联的外部目的地提供门户。例如,对象可以呈现展示与关于一组主要的第三方内容的主题或实体相关联的指定网站的弹出框架、呈现展示与关于一组主要的第三方内容的主题或实体相关联的应用的弹出框架,或者可以将用户引导到与关于一组主要的第三方内容的主题或实体相关联的不同3d环境。在一些实施方式中,3pce虚拟对象的次要模式可以提供两个或更多个转换状态模型的方面,诸如既呈现一组次要的第三方内容又向用户传送外部通知的虚拟对象。

分配给给定3pce对象的(多个)转换状态模型可以由客户端计算系统302的虚拟对象管理器312、内容分发系统350的转换状态模型选择器368、或两者来选择。在一些实施方式中,响应于从输入处理器310接收到用户与3pce虚拟对象的交互的指示同时对象以第一模式显示一组主要的第三方内容,虚拟对象管理器312识别分配给该对象的转换状态模型和与该转换状态模型相关联的参数(例如,一组次要的第三方内容、通知消息、指向外部环境的指针)。然后,虚拟对象管理器312命令渲染引擎308使用所识别的转换状态模型和所识别的转换状态模型的参数将3pce对象从第一模式转换到第二模式。作为响应,渲染引擎308使用所识别的转换状态模型并根据与转换状态模型相关联的指定参数,以第二模式重新渲染对象。例如,使用第一转换状态模型并且响应于用户与3d环境中的3pce对象的交互,渲染引擎308可以使虚拟对象动画化以变形或以其他方式从第一模式转换到第二模式。可以移除在3d几何模型的表面上显示的主要第三方内容(例如,图像),并利用次要第三方内容(例如,视频)来替换。

客户端计算系统302向内容分发系统350发送消息并从内容分发系统350接收消息。内容分发系统350可以被实施为一个或多个位置中的一个或多个计算机(例如,数据处理装置)。通常,内容分发系统350被配置为选择第三方内容以在客户端计算系统302处的3d环境中与3pce虚拟对象一起显示。内容分发系统350使所选择的第三方内容可用于客户端计算系统302,例如,通过经由诸如因特网或局域网的网络将内容发送到客户端系统302。内容分发系统350可以包括前端服务器352、第三方内容数据库354、内容选择器366、转换状态模型选择器368、存储选择标准的第一数据仓库370、存储终端用户账户和简档信息的第二数据仓库372、以及存储第三方内容提供商账户和简档信息的第三数据仓库374中的一个或多个。

前端服务器352被配置为从内容分发系统350接收和发送信息。前端服务器352为内容分发系统350提供接口,以通过通信网络(例如,因特网)与其他计算机交互。例如,图3示出了与客户端计算系统352通信时的前端服务器352。前端服务器304接收对第三方内容的请求、执行接收到的请求的初始处理、将从请求导出的信息转发到内容分发系统350的其他适当组件、并发送系统350响应于请求而生成的响应。在一些实施方式中,前端服务器350包括提供内容分发系统350与一个或多个网络之间的互连的网络接口,该网络可以是公共的(例如,因特网)或私有的(例如,局域网)。网络接口可以包括一个或多个网络接口卡,例如,被配置为通过分组化网络发送和接收数据的网络接口卡。

内容数据库354是维持第三方内容的索引的数据库或其他类型的数据仓库。第三方内容本身也可以由内容数据库354存储、可以由内容分发系统350(但是在内容数据库354的外部的)存储、或者可以被存储在内容分发系统350外部的一个或多个其他系统上。通常,内容数据库354识别可用于内容分发系统350以响应于对第三方内容的请求(例如,用于在3pce虚拟对象上呈现)而返回给客户端系统的一组第三方内容。在一些实施方式中,第三方内容由第三方内容提供商(例如,广告商)独立创建,然后被提交给内容分发系统350用于目标性地分发给终端用户。在一些实施方式中,内容提供商可以使用内容分发系统350的内容创建平台或服务来创建第三方内容。第三方内容可以作为文本、图像、视频或以其他媒体格式来提供。

在一些实施方式中,内容数据库354分别包括用于主要第三方内容356和次要第三方内容的索引358。主要第三方内容是当对象处于第一模式时指定用于在虚拟对象上呈现的内容。次要第三方内容是当对象处于第二模式时指定用于在虚拟对象上呈现的内容。在一些实施方式中,3pce虚拟对象的第一模式是“低功率”模式,其中在3d环境中以相对低的计算开销为客户端计算系统302呈现对象。低功率模式可以至少部分地通过仅在对象上显示主要第三方内容来实现,其符合主要第三方内容的一个或多个指定约束。例如,约束可以定义主要第三方内容的可接受格式和大小。例如,具有指定分辨率的图像可被视为可接受的主要第三方内容,但视频可被视为不可接受的主要第三方内容。相反,例如视频可能仅被允许作为次要第三方内容。因此,与次要第三方内容相比,向客户端计算系统302发送主要第三方内容可能花费更少的带宽。此外,在3d环境中呈现主要第三方内容对于客户端计算系统302来说可能比呈现次要第三方内容计算密集更小。

主要第三方内容索引356和次要第三方内容索引358可以将各个内容项分组为一组相关的内容项。例如,在第一显示模式中,3pce虚拟对象可以具有立方体几何形状并且在立方体的六个面中的每一个上显示相应的主要第三方内容项。内容分发系统350可以选择相关或重复的内容项以显示在全部或一些立方体面上。例如,由特定第三方内容提供者提交的一组相关图像可以被返回到客户端计算系统302用于在立方体上显示,或者已经在算法上被确定为与公共主题或实体相关的一组相关图像可以使用主要第三方内容索引356来选择并且被返回,以在立方体上显示。在一些实施方式中,内容数据库354可以将主要第三方内容映射到次要第三方内容。如果在第一显示模式中选择用于在3pce虚拟对象上显示的一组特定主要第三方内容,则内容选择器366可以在第二显示模式中为相同的虚拟对象仅选择次要第三方内容,该次要第三方内容被映射到为该对象选择的一组特定主要第三方内容。例如,一组次要的第三方内容可以包括与第三方内容提供商提供的产品或服务相关的一组图像,并且映射的次要第三方内容项可以是关于相同产品或服务的一个或多个视频。内容选择器366可以选择映射的次要第三方内容项中的一个或多个来返回以在第二显示模式中与虚拟对象一起显示,从而保持由给定虚拟对象呈现的主要和次要第三方内容之间的主题关系。

在一些实施方式中,除了相应的第三方内容索引356和358之外,内容数据库354还存储数据。例如,内容数据库354可以存储表示第三方内容属性360、外部通知362、门户参数364或这些中的多个的数据结构。

第三方内容属性数据存储360存储指示在索引356、358中表示的第三方内容项的属性的数据。作为示例,给定第三方内容项的属性可以包括第三方内容项的描述性关键字、提交内容项的第三方内容提供商的唯一标识符、内容项的格式或类型(例如,文本、音频、图像、视频)和内容项的历史性能度量(例如,印象、点击率、转换率)。可以将属性分配给单个内容项或内容项组群(group)。属性可以由内容分发系统350自动确定,或者手动输入(例如,由内容分发系统350的代理或相对应的第三方内容提供商的代理)。在一些实施方式中,内容选择器366使用来自数据存储360的属性来响应于第三方内容请求来选择(多个)第三方内容项。例如,从客户端计算系统302发送的对第三方内容的请求可以包括指示关于客户端系统302的终端用户的信息的上下文数据、其中第三方内容将在虚拟对象上渲染的3d环境、其中执行3d环境的应用和/或客户端系统302的硬件配置的信息。内容选择器366可以将第三方请求的上下文与由数据存储360指示的第三方内容属性进行比较,作为用于选择“获胜”第三方内容的过程的部分,即响应于请求返回的第三方内容。

外部通知数据存储362存储表示与第三方内容项相关联的外部通知的数据。如果客户端系统302已采用了利用外部通知向用户提供关于展示在虚拟对象上的主要第三方内容项目中的主题或实体的附加信息的转换状态模型,则内容分发系统350可以向客户端系统302和/或向与客户端系统302的用户相关联的一个或多个账户返回外部通知。数据存储362可以包括定义一个或多个通知消息和数据,并且数据将通知消息映射到相对应的第三方内容项、第三方内容项组群或第三方内容提供商。在第一显示模式中接收到与3pce虚拟对象的用户交互的指示时,内容分发系统350从数据存储362中选择通知消息以提供给用户。所选择的通知消息可以被映射到显示在虚拟对象上的一组次要的第三方内容,或者一组次要的第三方内容和所选择的通知消息可以至少基于它们与相同的第三方内容提供商的相互连接而间接相关。例如,基于用户在第一显示模式中与3pce立方体交互的指示(在其中立方体展示表示产品或服务的第三方图像),内容分发系统350的通知控制器可以发送通知消息,用于经由一个或多个频道(例如,电子邮件、sms、应用级通知服务、操作系统级通知服务)呈现给用户。

在一些实施方式中,数据存储362包括定义通知消息的模板的数据。模板可以包括文本消息中的字段,这些字段可以用特定于终端用户的信息或者基于特定用户与3pce虚拟对象交互的上下文来填充。例如,写着“$name:不要错过这个激动人心的机会!访问我们的网站www.example.com!的通知模板包括$name字段,该字段可以用客户端计算系统302的终端用户(该终端用户与对象的交互触发了通知)的姓来填充(例如,替换)。在一些实施方式中,通知可以包括指定例如网页的目标url的超链接、或者指定例如安装在用户的电话或其他设备上的特定应用的目标uri的超链接。通知控制器可以生成目标url,该目标url包括唯一地识别与3pce虚拟对象的特定用户交互的签名,该签名导致生成在其中放置了具有目标url的超链接的外部通知消息。当用户选择目标url时,可以将包括唯一签名的请求发送到内容分发系统350。内容分发系统350可以记录用户已经选择了url然后将指令(例如,脚本)返回给将设备重定向到目的地资源(诸如,由相对应的第三方内容提供商运营的网站)的用户设备(例如,客户端系统302)。

门户参数数据存储364包括识别与主要第三方内容或第三方内容提供商相关联的门户资源的数据。分发系统350响应于来自客户端系统302的对门户资源的请求,访问数据存储364以选择门户资源或指向门户资源的指针并将其返回给客户端计算系统302。客户端系统302可以例如,响应于在第一显示模式中检测到与3pce虚拟对象的用户交互而请求门户资源。门户资源一般是与提供对资源的门户的对象的3d环境分离并且在3d环境内的窗口中渲染或者被渲染为与3d环境分开的资源。例如,门户资源可以是当用户与3d环境中的3pce虚拟对象交互时,在web浏览器中自动启动的网站。网站可以在3d环境中的web浏览器窗口中呈现,或者可以在3d环境外分离地启动。在一些实施方案中,门户资源是安装在客户端系统302上的第三方应用。当用户与3d环境中的3pce虚拟对象交互时,应用可以在3d环境的窗口内启动,或者用户可以被自动地从3d环境带出并被带到应用中。在一些实施方式中,门户资源是另一3d环境。例如,当用户在第一3d环境中与3pce虚拟对象交互时,客户端系统302可以自动离开第一3d环境,并且渲染与当用户与对象交互发生时在对象上展示的主要内容所识别的主题或实体相关的第二3d环境。数据存储364存储与门户资源相关的参数以及将门户资源链接(例如,映射)到索引356和358中引用的第三方内容的数据。内容分发系统352的门户控制器可以访问数据存储364,以确定合格的门户资源,从该资源中选择特定资源,例如,基于被映射到与用户交互的虚拟对象上示出的第三方内容来引导客户端系统302。

内容选择器366是内容分发系统350的组件,内容选择器366为请求选择获胜的第三方内容,例如,与3pce虚拟对象一起显示的主要第三方内容或次要第三方内容。为了确定获胜的第三方内容,内容选择器366针对与请求相关联的各种选择标准评估合格的第三方内容项。选择标准可以包括请求中指定的关键字或其他上下文数据。在一些实施方式中,选择标准包括指示客户端系统302的终端用户的兴趣和偏好的简档数据、第三方内容提供商的简档数据、以及关于在其中呈现虚拟对象的3d环境的信息。选择标准324还可以包括由第三方内容提供商提出的出价,该出价指示第三方内容提供商为响应于请求而被选择并被返回用于在3pce虚拟对象上显示或由3pce虚拟对象显示的提供商的第三方内容愿意支付的价格。内容选择器366将选择标准324应用于给定的第三方内容请求,并执行评估过程以选择获胜的第三方内容。

内容分发系统350还可以包括转换状态模型选择器368。转换状态模型选择器368被配置为将转换状态模型分配给3d环境中的3pce虚拟对象。转换状态模型表示当3pce虚拟对象从第一显示模式改变为第二显示模式时执行的操作类型。虚拟对象的第二显示模式一般是不活动的(例如,隐藏的),直到用户与对象发生交互,然后该交互触发执行由分配给对象的转换状态模型定义的操作。例如,第一转换状态模型可以提供响应于用户与虚拟对象的交互而将在虚拟对象上显示的次要第三方内容。第二转换状态模型可以响应于用户与对象的交互,提供要发送给3d环境外的用户的外部通知。第三转换状态模型可以响应于用户与对象的交互而提供要被启动的门户资源。转换状态模型选择器368确定将哪个或哪些转换状态模型应用于3pce虚拟对象。在一些实施方式中,转换状态模型选择器368随机选择分配给对象的转换状态模型。在一些实施方式中,转换状态模型选择器368基于与对象相关联的上下文来选择分配给对象的转换状态模型。可以基于客户端系统302的能力、终端用户偏好、第三方内容提供商偏好、放置对象的3d环境的开发者偏好或这些上下文中的多个来选择合适的转换状态模型。

在一些实施方式中,转换状态模型选择器368应用一组规则来选择分配给对象的转换状态模型。例如,转换状态模型选择器368可以首先检查是否已经在客户端系统302处安装了启动门户资源所需的插件(例如,通过轮询客户端系统以获得关于已安装的插件的信息、查找包括客户端系统到已安装插件的映射的索引、或从内容请求获取关于已安装插件的信息)。如果已经安装了插件,则转换状态模型选择器368可以将使用门户资源的转换状态模型分配给对象。如果未安装插件,则可以选择另一转换状态模型。在一些实施方式中,第三方内容或开发者可以指定哪个转换状态模型应该应用于给定对象或者应该与一组主要第三方内容相关联。

图4a和图4b描绘了用于渲染3d环境中的虚拟对象的示例过程400的流程图。客户端过程400可以由诸如客户端系统302(图3)的客户端计算系统来执行。在一些实施方式中,客户端计算系统是通过头戴式显示器呈现的渲染沉浸式3d环境的虚拟现实系统。

在阶段402处,客户端系统加载3d环境。3d环境是能够在三维中渲染的虚拟环境。3d环境的示例包括3d游戏和视频环境(例如,现场或记录的事件流,诸如3d音乐会或运动事件流)。在一些情况下,用户可以通过移动他或她的头来环顾环境(例如,在虚拟现实系统中)、通过在环境中移动、通过操纵环境中的对象、或者这些的组合来探索虚拟3d环境。可以在存储在客户端的存储器子系统中的一个或多个定义文件中定义3d环境。在一些实施方式中,定义文件由渲染引擎解释或执行以生成可以在特定类型的客户端系统的适当的显示器上呈现的3d环境的可视显示(阶段404)。例如,头戴式显示器可以用于虚拟现实系统中。

在阶段406处,客户端系统识别位于3d环境中的合格的第三方内容(3pce)虚拟对象。可以通过在3d环境的定义文件中提供例如标签、脚本或可执行代码来声明3pce虚拟对象。当客户端系统解释或以其他方式执行标签、脚本或可执行代码时,渲染引擎可以根据其中指定的任何参数实例化3d环境中的3pce虚拟对象。例如,开发者可以指定指示3d环境中的虚拟对象的形状、尺寸和位置的参数值。这些和其他属性可以由内容分发系统处的内容选择器、客户端系统或内容分发系统处的转换状态模型选择器或两者分别用于选择与对象一起呈现的第三方内容或为对象选择转换状态模型。

3pce对象可以与多个显示模式相关联,其中每个显示模式对应于相应的转换状态模型,该相应的转换状态模型定义对象显示第三方内容的方式或者在激活显示模式时以其他方式定义与对象相关联的操作。在一些实施方式中,最初在默认显示模式下激活3pce对象。例如,在默认显示模式中,3pce虚拟对象可以展示相对基本的一组主要的第三方内容(例如,图像),该组主要的第三方内容可以在3d环境中以相对低的计算花销来渲染。在检测到预定事件(例如持续用户与对象的交互)时,对象可以转换到一个或多个其他显示模式。

在阶段408处,客户端系统在第一显示模式中获得在虚拟对象上显示的一组主要的第三方内容。为了检索一组次要的第三方内容,客户端系统生成请求并将其发送到内容分发系统。该请求可以包括用于选择第三方内容和上下文数据的任何显式约束,内容分发系统处的内容选择器可以使用该约束来促进选择一组次要的第三方内容。在一些实施方式中,一组主要的第三方内容是内容项的组群,每个内容项可由相同的第三方内容提供商分发。作为示例,虚拟对象可以是在第一显示模式中在其每个面上呈现相应图像的立方体。一组次要的第三方内容可以包括被分配用于在立方体的每个面上显示的相应图像,其中每个图像涉及共同主题(例如,由第三方内容提供者推销的产品或服务)。

在阶段410处,渲染引擎生成3d环境中的虚拟对象的显示。系统最初可以以其第一显示模式渲染对象,该第一显示模式呈现从内容分发系统检索的一组主要的第三方内容。

在阶段412处,客户端系统检测到用户已经向系统提供输入以在第一显示模式中与虚拟对象交互。客户端系统可以包括监测用户输入的一个或多个模式的输入处理器,并且如果确定用户输入被定向到3pce虚拟对象,则系统可以向虚拟对象管理器发出警报。例如,在vr系统中,输入处理器可以检测用户的显示器的标线是否在对象上保持聚焦至少阈值时间长度。如果标线聚焦在对象上至少达到阈值时间长度(指示用户的凝视在对象的方向上保持至少阈值时间长度),则输入处理器可以将指示已经检测到用户与虚拟对象交互的消息传递给虚拟对象管理器。

在阶段414处,响应于从输入处理器接收到指示用户已经与3d环境中的虚拟对象交互的消息,虚拟对象管理器确定虚拟对象从第一显示模式到第二显示模式的转换。图4b描绘了阶段414的展开视图,其示出了虚拟对象的若干可能转换。客户端系统或内容分发系统处的转换状态选择器可以基于例如由提交一组次要的第三方内容的终端用户、3d环境开发者和/或第三方内容提供商指定的任何显式约束来确定哪个转换模型适用于给定虚拟对象。此外或替代地,转换状态选择器可以随机地或基于与对象相关联的隐式上下文、3d环境以及客户端系统的技术能力来确定哪个转换模型适用于给定虚拟对象。例如,在第一模型(416)下,虚拟对象可以通过用不同的一组次要的第三方内容替换一组次要的第三方内容来从第一显示模式转换。在阶段418处,客户端系统从内容分发系统获得一组次要的第三方内容。在阶段420处,客户端系统的渲染引擎重新渲染虚拟对象以展示一组次要的第三方内容。在一些实施方式中,一组次要的第三方内容的类型或格式可以与一组主要的第三方内容的类型或格式不同。在一些实施方式中,定义虚拟对象的几何形状的3d模型可以与由对象呈现的该组第三方内容一起改变。例如,具有更多多边形表面的更复杂的虚拟对象可以在第二显示模式中而不是在第一显示模式中被渲染。客户端系统可以从内容分发系统请求和接收新的3d模型。在一些实施方式中,虚拟对象的第一显示模式和第二显示模式之间的转换包括使虚拟对象动画化以平滑地改变对象的可视化外观。

在第二转换模型(422)下,用户与虚拟对象的交互触发客户端系统、内容分发系统或两者以生成一个或多个外部通知。外部通知是在3d环境外被提供给客户端系统的用户的通知,该3d环境包括用户与之交互以触发通知的虚拟对象。因为用户倾向于在3d环境中偏爱最小的干扰,特别是在沉浸式3d虚拟现实环境中,所以外部通知可以是用户完成他或她在3d环境中的会话后,提醒用户在3d环境中遇到的第三方内容的有效方式。例如,可以将通知消息推送到用户的电子邮件帐户、文本消息收发帐户、rss订阅源、os级通知服务、应用级通知服务或这些中的多个。特别地,在阶段424处,用户与虚拟对象的交互触发生成通知并向一个或多个外部环境发送通知。在一些实施方式中,在阶段426处,可以在虚拟对象上或虚拟对象附近显示确认消息,以确认通知消息正在或已经被发送到(多个)用户的账户。

在第三转换模型(428)下,用户与虚拟对象的交互触发客户端系统到外部资源的门户(阶段430)。可以在内容分发系统处指定对象的外部资源,该对象可以例如响应于检测到用户与对象的交互,在首次实例化虚拟对象时或在另一时间识别客户端系统的资源。作为示例,客户端系统可以通过自动启动呈现外部资源的应用(例如,web浏览器)来进入外部资源。在一些实施方式中,3d环境被关闭并且注意力被重定向到外部资源(例如,在web浏览器中显示的网站)。外部资源可以与虚拟对象在第一显示模式下显示的一组主要的第三方内容相关。在一些实施方式中,客户端系统通过启动不同的3d环境来进入外部资源,该3d环境例如已经被提交虚拟对象上展示的一组主要的第三方内容的相同第三方内容提供商提交用于分发。

图5描绘了展示客户vr系统502和内容分发系统504之间的示例过程500中的交互的泳道图。

在阶段506处,vr系统502识别出3pce虚拟对象被声明存在于3d环境中。例如,可以通过用于3d环境的一个或多个定义文件中的标签、脚本或可执行代码来声明该对象。

在阶段508处,vr系统502生成并向内容分发系统504发送对第三方内容的请求。例如,识别的虚拟对象可以与显示不同的第三方内容的多个显示模式相关联。在一些实施方式中,vr系统502最初仅检索在第三方对象的初始激活的显示模式中显示的一组次要的第三方内容。可以推迟在其他显示模式被激活时可以显示的其他组的第三方内容的检索,直到用户与虚拟对象交互、或者直到系统502检测到用户可能即将与虚拟对象交互。这样,虚拟对象最初可以更快地加载,并且直到实际需要(或者可能需要)时才会检索到次要第三方内容,从而避免了第三方内容从内容分发系统504到vr系统502的不必要的传输。

在阶段510处,内容分发系统504接收对第三方内容的请求,并在初始显示模式中为虚拟对象选择一组次要的第三方内容。在阶段512处,内容分发系统504通过网络将第三方内容发送到vr系统502。在阶段514处,vr系统接收选择的主要内容并渲染用主要第三方内容纹理化的虚拟对象。

在阶段516处,内容分发系统504确定虚拟对象的第二显示模式的参数。第二模式参数指示虚拟对象将如何从第一显示模式转换到第二显示模式以及转换到第二显示模式的结果。在一些实施方式中,第二模式参数指定应该应用于虚拟对象的一个或多个转换模型。例如,内容分发系统的转换模型选择器可以将选择的转换模型分配给虚拟对象,该选择的转换模型指示当对象从第一显示模式转换到第二模式时次要第三方内容是否将替换虚拟对象上的主要第三方内容;当对象从第一显示模式转换到第二显示模式时,是否会产生外部通知;以及当虚拟对象从第一显示模式转换到第二显示模式时,虚拟对象是否将提供从初始3d环境到外部资源的门户。

在阶段518处,内容分发系统518将第二模式参数发送到第三方内容服务器504。在一些实施方式中,vr系统502包括用于承载可能的转换模型中的每一个的本地逻辑。然后,被发送到vr系统502的第二模式参数可以简单地包括选择的转换模型的指示。在其他实施方式中,vr系统502可以响应于检测到用户与虚拟对象的交互,利用执行代码的指令将脚本或其他可执行代码发送到vr系统502。在一些实施方式中,如图5中所示,内容分发系统500在用户与虚拟对象交互之前执行阶段516和518。因此,vr系统在检测到用户与对象的交互时准备根据第二模式参数立即转换对象。以这种方式,系统可以减少响应于用户与对象的交互并将对象转换到第二显示模式的等待时间。然而,在其他实施方式中,在实际检测到用户与虚拟对象的交互之后或者在vr系统502检测到即将发生用户与对象的交互之后,vr系统502可以从内容分发系统504请求第二模式参数。

在阶段520处,vr系统520检测到用户与虚拟对象的交互,并且用户交互的条目被记录在vr系统520的日志中(阶段522)。在阶段524处,基于识别到用户与虚拟对象的交互,vr系统502根据第二模式参数将虚拟对象从第一显示模式转换到第二显示模式。vr系统502可以周期性地向内容分发系统报告用户交互以用于分析。因此,在阶段526处,将用户交互的日志发送到内容分发系统504,该日志可以被分析趋势并评估第三方内容项的性能度量(阶段528)。

在一些实施方式中,内容分发系统可以通过跟踪响应于用户与3d环境中的虚拟对象的交互而生成的外部通知的转化来评估与3pce虚拟对象相关联的第三方内容的性能。“转化”是指用户可以针对来源于与3d环境中的3pce虚拟对象的交互的通知采取的特殊动作。例如,如果用户查看通知,如果用户选择通知中提供的超链接,或者如果用户完成了与通知中描述的产品或服务相关的交易(例如,购买交易),则可以标示转化。

为此,图6描绘了用于基于与由于用户与3pce虚拟对象的交互生成的外部通知相关联的转化来评估3d环境中的第三方内容选择的示例过程600的流程图。在一些实施方式中,由诸如内容分发系统350(图3)的内容分发系统执行过程600。

在阶段602处,系统识别用户已经在3d环境中与3pce虚拟对象交互。系统确定适用于虚拟对象的转换状态模型。如果由转换状态模型指定,则系统可以生成外部通知以提供关于在3d环境中的对象上显示的一组次要的第三方内容的附加信息(阶段604)。在一些实施方式中,系统将条目记录到日志(例如,在数据库子系统中)中,该日志识别生成的外部通知、导致生成外部通知的用户交互、以及与用户交互相关联的上下文数据。稍后,系统可以接收与通知相关联的转化动作的指示(阶段606)。例如,用户对通知消息中的超链接的选择可以使客户端系统向内容分发系统发送指示用户对超链接的选择的消息。在接收到转化动作的指示时,系统将转化动作与相对应的通知消息以及与触发通知消息的用户交互事件相关联(阶段608)。在一些实施方式中,基于指示的转化动作,系统调整分配给在发生用户与3d环境中的对象交互时在虚拟对象上显示的第三方内容的分数。内容选择器可以在确定在未来第三方内容请求中返回的内容时使用该分数。在一些实施方式中,调整分数以增加内容分发系统选择作为转化动作的结果被分配给分数的第三方内容的可能性(阶段610)。

图7是计算机系统700的示意图。根据一些实施方式,系统700可用于执行与任何计算机实施的方法、系统、设备和先前描述的其他技术相关联地描述的操作。系统700旨在包括各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片式服务器、大型机和其他合适的计算机。系统700还可以包括移动设备,诸如个人数字助理、蜂窝电话、智能手机和其他类似的计算设备。此外,该系统可以包括便携式存储介质,诸如通用串行总线(universalserialbus,usb)闪速驱动器。例如,usb闪速驱动器可以存储操作系统和其他应用。usb闪速驱动器可以包括输入/输出组件,诸如可以插入到另一计算设备的usb端口当中的无线发送器或usb连接器。系统700包括处理器710、存储器720、存储设备730和输入/输出设备740。组件710、720、730和740中的每一个使用系统总线750互连。处理器710能够处理用于在系统700内执行的指令。处理器可以使用多个架构中的任何一个来设计。例如,处理器710可以是cisc(complexinstructionsetcomputer,复杂指令集计算机)处理器、risc(reducedinstructionsetcomputer,精简指令集计算机)处理器或misc(minimalinstructionsetcomputer,最小指令集计算机)处理器。

在一些实施方式中,处理器710是单线程处理器。在另一实施方式中,处理器710是多线程处理器。处理器710能够处理存储在存储器720或存储设备730上的指令,以在输入/输出设备740上显示用户界面的图形信息。

存储器720存储系统700内的信息。在一个实施方式中,存储器720是计算机可读介质。在一个实施方式中,存储器720是易失性存储器单元。在另一实施方式中,存储器720是非易失性存储器单元。

存储设备730能够为系统400提供大容量存储。在一个实施方式中,存储设备730是计算机可读介质。在各种不同的实施方式中,存储设备730可以是软盘设备、硬盘设备、光盘设备或磁带设备。

输入/输出设备740为系统400提供输入/输出操作。在一个实施方式中,输入/输出设备740包括键盘和/或指示设备。在另一实施方式中,输入/输出设备740包括用于显示图形用户界面的显示单元。

所描述的特征可以在数字电子电路中实施,或者在计算机硬件、固件、软件或它们的组合中实施。该装置可以在有形地体现在信息载体中的计算机程序产品中实施,例如在机器可读存储设备中由可编程处理器执行;并且可以由运行指令的程序的可编程处理器执行方法步骤,以通过对输入数据进行操作并生成输出来执行所描述的实施方式的功能。所描述的特征可以有利地在可编程系统上可执行的一个或多个计算机程序中实施,该可编程系统包括至少一个可编程处理器(其被耦合以从数据存储系统接收数据和指令,并将数据和指令发送到数据存储系统)、至少一个输入设备和至少一个输出设备。计算机程序是一组指令,其可以直接或间接地在计算机中使用以执行某种活动或产生某种结果。计算机程序可以以包括编译或解释语言的任何形式的编程语言写入,并且其可以以(包括作为独立程序或作为模块、组件、子程序或适合在计算环境中使用的其他单元)任何形式部署。

作为示例,用于运行指令程序的合适的处理器包括通用和专用微处理器,以及任何类型的计算机的唯一处理器或多个处理器中的一个。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于运行指令的处理器和用于存储指令和数据的一个或多个存储器。通常,计算机还将包括一个或多个用于存储数据文件的大容量存储设备,或者可操作地被耦合以与这些设备通信;这种设备包括磁盘,诸如内部硬盘和可移动磁盘;磁光盘;和光盘。适合于有形地体现计算机程序指令和数据的存储设备包括所有形式的非易失性存储器,作为示例包括半导体存储器设备(诸如,eprom、eeprom和闪存设备);磁盘(诸如,内部硬盘和可移动磁盘、磁光盘、cd-rom和dvd-rom磁盘)。处理器和存储器可以由asic(application-specificintegratedcircuits,专用集成电路)补充或被并入其中。

为了提供与用户的交互,这些特征可以在具有用于向用户显示信息的显示设备(诸如,crt(cathoderaytube,阴极射线管)或lcd(液晶显示器)监视器)的计算机上实施,以及用户可以通过其向计算机提供输入的键盘和定点设备,诸如鼠标或轨迹球。此外,这些活动可以通过触摸屏平板显示器和其他适当的机构来实施。

这些特征可以在包括后端组件(诸如数据服务器)、或者包括中间件组件(诸如应用服务器或互联网服务器)、或者包括前端组件(诸如具有图形用户界面或互联网浏览器的客户端计算机)、或者它们的任意组合的计算机系统中实施。系统的组件可以通过任何形式或介质的数字数据通信(诸如通信网络)来连接。通信网络的示例包括局域网(localareanetwork,“lan”)、广域网(wideareanetwork,“wan”)、对等网络(具有ad-hoc或静态成员)、网格计算基础设施和因特网。

计算机系统可以包括客户端和服务器。客户端和服务器一般彼此远离并且通常通过网络(例如所描述的网络)进行交互。客户端和服务器的关系由于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。

虽然本说明书包含许多具体的实施方式细节,但是这些不应被解释为对任何发明或可能要求保护的范围的限制,而是作为特定于特殊发明的特殊实施方式的特征的描述。本说明书中在单独的实施方式中的上下文中描述的某些特征也可以在单一实施方案中组合实施。相反,在单一实施方式中的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施方式中实施。而且,尽管以上可以将特征描述为以某些组合起作用甚至这些特征由此最初要求保护,但是在某些情况下来自要求保护的组合的一个或多个特征可以从该组合中删去,并且要求保护的组合可以指向子组合或子组合的变体。

类似地,虽然在附图中以特殊的顺序描绘了操作,但是这不应该被理解为要求以所示的特殊的顺序或按顺次的顺序来执行这些操作、或者执行所有示出的操作以实现期望的结果。在某些情况下,多任务处理和并行处理可以是有利的。而且,上述实施方式中的各种系统组件的分离不应被理解为在所有实施方式中都需要这种分离,并且应当理解的是,描述的程序组件和系统一般可以在单一软件产品中集成在一起或者被封装到多个软件产品当中。

因此,已经描述了主题的特殊的实施方式。其他实施方式在所附权利要求的范围内。在一些情况下,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。此外,附图中描绘的过程不一定要求所示的特殊的顺序或顺次的顺序来实现期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1