由计算机实现的用于创建包括合成图像的内容的方法与流程

文档序号:24155469发布日期:2021-03-05 11:19阅读:395来源:国知局
由计算机实现的用于创建包括合成图像的内容的方法与流程
由计算机实现的用于创建包括合成图像的内容的方法
[0001]
本发明涉及由计算机实现的、以协作的方式并且以实时和统一的过程(也称为流水线)创建包括合成图像的数字声音和动画序列的方法。
[0002]
在视听创建领域中,术语2d与术语3d相对,术语2d与例如通过用手或视频绘制的一系列图像执行的传统动画相关联,术语3d对应于动画序列或固定图像的创建,动画序列或固定图像的创建一般是由计算机执行的计算的结果。这就是将3d中产生的图像称为合成图像的原因。
[0003]
3d动画序列可以是两种类型的:预先计算的或实时的。在预先计算的序列的情况下,预先计算3d动画,并且随后将创建的内容保存在视频文件中或以数字图像序列的形式保存。一旦进行了计算,图像的内容将不再修改。实时序列在显示时一般通过被称为gpu的专用处理器或被专门设计用于以非常高的速度计算合成图像的图形卡来计算。
[0004]
在现有技术中已知的是,不管图像的大小、输出的数目和所生成的声音质量如何,用于生成(预先计算或实时的)这些2d动画序列或者3d动画序列的频率一般为每秒至少24幅图像。
[0005]
对于本领域技术人员来说,作为合成图像的内容的制作对应于一组不同的任务,参照图1,其主要步骤按照通常制作顺序是:
[0006]
e1.创建3d模型(人类、动物、可选地有关节的对象)的步骤,该步骤也称为建模或表面处理。
[0007]
在该步骤中,例如还定义了模型的外观,例如其表面的颜色或哑光或有光泽的外貌。这些模型称为资产。
[0008]
e2.所谓的布局步骤。在该步骤中,将前一步骤中创建的对象进行组装和布置以形成更复杂的布景。换句话说,设置了在电影摄影意义内的“场景”,其包括例如被定位成满足故事和审美考虑的布景和角色。选择多个角度镜头以拍摄这些虚拟布景以及位于其中的可能的3d角色。
[0009]
e3.所谓的动画步骤。该步骤包括借助于各种方法对在布局期间设置的元素进行动画处理。
[0010]
e4.照明步骤。为了使元素可见,必须照亮布局中构成场景的元素,这些元素是根据布局步骤中选择的角度镜头而拍摄的。
[0011]
e5.编辑步骤。在该步骤中,将从各个角度镜头拍摄并进行动画处理的各种虚拟场景首尾相连,以形成构成影片的内容。
[0012]
用于将动画内容制作为合成图像的通常方法(称为制作流水线),一般还包括在编辑步骤e5之前的渲染步骤,在渲染步骤中,将纹理和特殊效果应用于所表示的场景的元素,以为它们提供符合所需的艺术标准的视觉外观。
[0013]
此处存在未描述的其他步骤,因为它们对于线性动画内容的制作不是严格必需的。可以列举如下:所谓的特效步骤,该特效步骤使得可能产生爆炸、烟雾、液体、火的特效或模拟衣服的运动等;合成的步骤,其包括混合多个图像源以仅由其形成一个;以及分级的步骤,其包括修改图像的色彩平衡以修改其外观。此外,通常在将线性叙事内容制作为动画
之前,以书面格式(通常以剧本、剧情梗概或编剧的术语来提及)和剧情梗概系列图片来描述该内容,剧情梗概系列图片是以一系列绘制图像的形式对该剧本的表示。
[0014]
这些工作步骤的集合构成了通常称为制作流水线的制作方法。
[0015]
这样的制作流水线是以顺序、线性和零碎的方式制作的。因此,该流水线的每个步骤需要专用且通常彼此独立的计算机工具,也称为软件解决方案;此外,这样的项目一般需要大量人员同时使用所有这些不同的工具。
[0016]
此外,对于预先计算的线性动画(例如动画影片)制作专业3d动画项目的已知制作流水线一般不适于线性实时动画内容的设计,或者对于诸如增强现实或虚拟现实的媒介几乎不需要交互。
[0017]
制作动画内容(更一般地将被称为3d动画)的过程首先是创意过程。这样的创意过程要求可以通过连续的迭代来测试(优选地快速且经常)关于媒介的所有方面的想法。
[0018]
例如,制作线性3d动画内容要求在创建过程的任何时刻都可以对建模、布局、动画、照明或编辑的步骤进行修改,因为在这些步骤中的每个步骤中产生的结果都会对最终结果产生影响;换句话说,对在链的末端所制作的内容产生影响。
[0019]
例如,电影的长篇3d动画项目是所有贡献于其制作的人做出的数万甚至数十万次修改的结果。
[0020]
这些修改中的一些修改是次要的所谓的微修改(例如,对对象的颜色、影片剪辑中的绘图长度的小幅度调整),或主要的所谓的宏修改(例如决定修改故事的主角的外观)。
[0021]
宏修改的频率比微修改的频率低,但宏修改更明显并且对创建过程具有更大的影响。然而,关于这些标准,现有技术的制作流水线存在许多问题:
[0022]
1.由于动画内容是线性的,因此在制作链的上游执行的修改需要经历位于进行修改的步骤的下游的所有步骤,然后才能在最终内容的上下文下(编辑步骤的输出)被考虑。该过程类似于多米诺骨牌效应或级联效应的过程:上游修改会触发一系列的下游事件,直到到达链的最后一步。
[0023]
2.在制作的各个步骤中使用的工具不能产生实时结果并且不能彼此沟通(由于制作流水线的零碎性质),因此所做的修改会引起制作时间的大量损失。并不罕见的是,在修改能够产生可见的结果之前,修改花费数分钟、数小时甚至有时是数天——特别地取决于修改在制作链中的位置。
[0024]
同样,众知的问题之一是,特别通过确保大量人员可以同时从事于这些内容的制作,优化创建3d动画内容(主要是线性的)的过程,而不管3d动画内容是实时的还是预先计算的。
[0025]
为了解决上述问题,提出了一种由计算机实现的实时和协作的统一流水线方法,用于以协作方式创建动画内容,其特征在于,一方面方法包括制作和传播作为合成图像的动画内容的步骤,该步骤旨在由多个终端与中央服务器合作实现,并且另一方面包括管理这些动画内容的步骤,该步骤适于允许中央服务器集中和管理在制作步骤的阶段产生的数据集;
[0026]
所述实时统一方法的所述制作步骤包括:
[0027]-创建动画内容项目的步骤;
[0028]-在创建的所述项目中创建一个或更多个3d场景以及一个或更多个3d序列的步
骤;
[0029]-打开和编辑至少一个3d场景的步骤;
[0030]-打开和编辑所创建的至少一个3d序列以将所述内容组装为合成图像的步骤;
[0031]-传播动画内容的步骤;
[0032]
所述管理步骤包括:
[0033]-管理制作历史的步骤,其适于提供由终端实现制作步骤的结果向所述中央服务器的传输和记录;
[0034]-根据在管理所述制作历史的步骤期间传输的由终端实现制作步骤的结果来更新存储在所述服务器上的项目的步骤;
[0035]-检测冲突的步骤,其适于在服务器上实现,以在至少两个制作步骤已经创建、修改或删除时直接或经由另一相关数据同时地检测存储在中央服务器上的至少一个相同数据;
[0036]-解决冲突的步骤,其当在先前的步骤中检测到冲突时,能够确定要应用于检测到冲突的所述至少一个数据的创建、修改或删除。
[0037]
因此,获得了一种简单、统一、协作和连接的方法,该方法能够在同一应用中管理对包括合成图像、适于预先计算或实时渲染的动画内容的创建和传播。
[0038]
有利地且以非限制性方式,该方法包括在中央服务器与所述终端之间实时同步项目的步骤,使得实现产生该方法的步骤的每个终端将根据由服务器和终端的集合所做的所有修改和创建来接收最新的项目的全部或部分数据,所述同步步骤适于由服务器在协作工作模式下在操作期间实现以及/或者在所述终端在连接至服务器时由所述终端实现。因此,可以确保从服务器的远程终端工作的任何用户人员不间断地拥有当前内容项目的最新版本,即使在大量用户同时处理项目的工作的情况下也是如此。
[0039]
有利地且以非限制性方式,对于在中央服务器与所述终端之间更新和同步项目的所述步骤,所述方法包括多个数据同步模块,所述多个模块包括:
[0040]-实时更新模块,其适于实现加密编码函数,该加密编码函数根据项目的所述数据生成哈希密钥,所述实时更新模块适于确定导入的项目的数据是否必须由所述终端和服务器进行记录;
[0041]-实时优化模块,其能够检测项目的数据的瞬时状态的变化,并且适于压缩项目的创建历史的所述列表,以减少由所述终端和服务器传送和存储的数据量;
[0042]-实时控制模块,其使用所述哈希密钥以控制在所述终端与服务器之间传输的数据的完整性,
[0043]-实时学习模块,其能够分析项目的创建历史的数据,并且能够定义优先级顺序,所述服务器根据优先级顺序将数据传输至所述终端并且更新数据;
[0044]-实时版本化模块,其能够以项目的一系列总状态备份和相对于这些状态的中间修订的形式保存项目的创建历史;所述总状态的备份的频率取决于所述实时学习模块的学习数据;
[0045]-实时标记模块,其能够授权终端的用户通过至少一个标签标记项目的开发的关键步骤,所述标记模块使得可以将所述项目恢复到项目在标记时刻处的状态。
[0046]
因此,更新和同步步骤是可靠、稳健且快速的。
[0047]
有利地且以非限制性方式,该方法还包括访问管理步骤,以用于禁止或授权连接至服务器的终端实现全部或部分制作和管理步骤。因此,可以分割用于实现该方法的权利,以限制在涉及许多人员的协作工作期间的交互。此外,例如,访问控制使得可以限制意外修改或删除内容的风险。
[0048]
有利地且以非限制性方式,解决冲突的步骤包括:当第二终端实现制作步骤的第二结果生成了对冲突的检测时,从项目中排除第一终端实现制作步骤的第一结果,在满足以下标准之一的情况下排除较早事件:
[0049]-第一结果删除已经被第二结果删除、修改、添加或引用的对象;
[0050]-第一结果添加已经被第二结果删除、添加或修改的对象;
[0051]-第一结果修改已经被第二结果删除的对象的属性;
[0052]-第一结果修改也已经被第二结果修改的对象的单个属性;
[0053]-第一结果添加对已经被第二结果删除的对象的引用;
[0054]-第一结果添加已经被第二结果添加、删除或更改的可以具有多个值的对象的属性的值或对对象的引用;
[0055]-第一结果删除能够接收已经被第二结果添加、删除或更改的同一属性的多个值的对象的值或对对象的引用;
[0056]-第一结果移动能够接收已经被所述第二结果在同一属性中添加、删除或移动的多个值的属性的值或对对象的引用。
[0057]
有利地且以非限制性方式,该方法包括自动学习模块,该自动学习模块适于根据项目的创建历史的数据、项目的数据以及由所述终端生成的元数据,优化用于将数据加载到所述终端的存储器中的序列,以在所述终端上实时地将项目的内容再现为声音和动画图像。因此,可以优化在终端与服务器之间使用的带宽以及在终端侧和服务器侧上占用的内存和所需的计算时间。
[0058]
有利地且以非限制性方式,制作和传播动画内容的所述步骤包括在连接至所述服务器的诸如智能电话或平板电脑的增强现实设备上实时显示所述动画内容的步骤。
[0059]
特别地,该方法实现创建适合于增强现实设备的虚拟摄像装置的步骤,创建虚拟摄像装置的所述步骤在打开并编辑至少一个3d场景的所述步骤之后被实现。
[0060]
本发明还涉及一种服务器设备,其包括网络接口、存储装置存储器和处理器,以用于至少实现如前所述的方法的管理步骤以及/或者制作和传播动画内容的步骤。
[0061]
本发明还涉及一种增强现实组件,其包括如前所述的服务器设备和诸如智能电话或平板电脑的增强现实设备,所述服务器设备实现如前所述的方法的制作和传播动画内容的步骤。
[0062]
本发明还涉及一种计算机终端,用于控制适于至少执行和/或进行产生前述方法的步骤的人机接口,并且包括用于与先前所述服务器设备通信的网络接口。
[0063]
本发明还涉及一种计算机系统,其包括如前所述的服务器设备以及如前所述的一个或更多个计算机终端。
[0064]
本发明还涉及一种计算机可读的存储介质,其上记录有控制服务器设备和/或计算机终端以执行如前所述的方法的指令,例如硬盘驱动器、大容量存储介质、光盘或任何其他合适的装置。
[0065]
通过阅读参照附图通过示例性而非限制性的示例给出的本发明的特定实施方式的以下描述,本发明的其他特定特征和优点将变得明显,在附图中:
[0066]-图1和图2是现有技术的制作流水线的示意图;
[0067]-图3是根据本发明的一个实施方式的方法的制作步骤之间的交互的示意图;
[0068]-图4是作为合成图像的动画内容的项目的图形表示;
[0069]-图5是根据现有技术已知的3d场景的表示,其通过被称为资产的一系列对象或3d模型以其更常规的形式示出,每个资产包括用于修改其外观的属性;
[0070]-图6是根据本发明一个实施方式的方法的内容项目的数据的组织的示意图;
[0071]-图7至图16是根据本发明的一个实施方式的在计算机上的方法实现方式的用户界面的简化视图;
[0072]-图17是根据本发明一个实施方式的同步步骤的示意图;
[0073]-图18是根据该方法的一个实施方式的一组传播和分发步骤的示意图;
[0074]-图19是根据该方法的另一实施方式的一组传播和分发步骤的示意图。
[0075]
本发明涉及方法的设计,该方法专用于对线性动画内容的创建、制作、分发和传播,或者更一般地,通过使用可以在过程或流水线中组合在一起的各种声音和图形源(例如,主要是合成图像(也称为3d内容)以及数字图像和视频(称为2d内容))来进行对声音和动画序列的创建和分发,该过程或流水线既是统一的、实时的、协作的,并且该方法与用于创建实时动画内容的其他方法(特别是用于增强现实)有联系。
[0076]
本发明生成的声音和动画序列可以被预先计算并被保存在例如视频文件中,或者可以被即时计算,这使得可以在增强或虚拟现实类型的系统或任何其他现有的或未来的显示或传播系统(例如流式传输)上使用这些声音和动画序列,对于这些系统,必须即时、实时(实时3d显示)计算作为合成图像的声音和动画序列。
[0077]
根据本发明的由计算机实现的方法包括导致内容的制造的多个制作步骤,这些制作步骤能够同时并且彼此独立地被实现。
[0078]
根据本发明的方法也被称为协作统一流水线,将在本文档的剩余部分中使用首字母缩写cup来引用该协作统一流水线。
[0079]
在说明书的剩余部分,将该方法的用户称为任何人或一组人,其借助于计算机或能够与实现该方法的全部或部分的计算机通信的任何设备,对根据本发明由计算机实现的方法进行作用。
[0080]
首先彼此分开地描述也可以被称为功能的各个制作步骤,然后在具体实施方式的范围内呈现各个制作步骤。
[0081]
根据本发明的方法包括两个主要的制作步骤组:创建和编辑步骤以及传播步骤。
[0082]
第一组制作步骤一般在用户终端上实现,而在该实施方式中,第二组步骤在服务器上实现。
[0083]
该方法还包括被称为管理步骤的第三组步骤,这些步骤由终端和服务器共同实现,这些步骤特别地包括历史和冲突解决步骤,这些步骤将被进一步描述。
[0084]
被称为创建和编辑功能的第一组制作步骤包括如在现有技术中描述的参照图1从建模步骤e1到编辑的最终步骤e5的对3d动画内容的制作的步骤e1至步骤e5的集合。
[0085]
此外,根据本发明的由计算机实现的方法使得可以从头到尾创建实时3d动画内
容,所述第一组步骤包括五个步骤:
[0086]
1.创建或打开动画内容项目;
[0087]
2.创建然而可以包含多种其他源(例如数字图像、视频等)的新3d场景,并且创建新序列;
[0088]
3.打开并编辑在前一步骤中创建的3d场景。在该步骤中,该方法的用户可以现场建模或导入利用其他解决方案创建的3d模型,选择角度镜头(借助于放置在场景中的虚拟摄像装置),添加光,并且对场景的所有对象(模型、摄像装置、光源等)以及这些对象的所有属性(例如3d对象的颜色)进行动画处理。场景还可以包含动画的多个版本(或本领域技术人员采用的术语动画);
[0089]
4.打开并编辑在步骤1.2中创建的序列。在该步骤中,该方法的用户可以编辑序列的内容。该过程涉及如在视频编辑解决方案中那样首尾放置绘图集合。与视频编辑软件包不同,本发明不是通过绘制的方式使用视频,而是通过在前一步骤1.3中创建的3d场景使用视频。对于在序列的编辑中使用的每个场景,用户必须至少指定将根据其计算所述场景的摄像装置或角度镜头。
[0090]
然而,对于任何编辑工具,构成编辑的绘图的顺序和长度也可以更改。简而言之,该系统中的绘图作为最低限度由3d场景、当播放该场景时必须用于该场景的动画版本、当在编辑中播放该场景时拍摄该场景的角度镜头、以及通常编辑信息(例如,绘图在编辑中的位置、绘图的持续时间、以及绘图的输入点和输出点)来定义。
[0091]
4.1.可以使用从不同角度镜头拍摄的单个且相同的3d场景由绘图的链接创建序列。
[0092]
4.2.也可以在同一序列中使用多个3d场景。在同一个序列中混合各种场景的可能性是本发明的特征;
[0093]
5.通过播放在前一步骤4中创建和编辑的序列来播放内容。
[0094]
5.1.在本发明的第一实施方式中,项目的内容在2d中被计算,以被投影到在其上执行系统的计算机的屏幕上(这也可以涉及平板电脑或智能电话或连接至计算机的任何投影设备的屏幕)。
[0095]
5.2.在本发明的第二实施方式中,不排除第一实施方式,计算这些内容以在增强和虚拟现实系统上传播。
[0096]
5.3.在文档的剩余部分中详细描述的本发明的第三实施方式中,可以在一个或更多个处理器上即时计算内容,并且向另一电子/计算机设备输出、传播(或根据本领域技术人员经常使用的新词的流式传输)结果、视频和音频。
[0097]
应当注意,场景、序列和由序列的集合组成的最终内容被实时播放,并且可以如刚刚指示的那样被计算,以适应任何显示系统的约束,无论显示系统是智能电话或平板电脑、增强或虚拟现实系统、计算机屏幕、还是任何其他合适的设备。
[0098]
由于这涉及从系统的用户选择的角度镜头拍摄的3d场景,因此即时计算场景。如在视频的情况下那样图像不是预先计算的事实是本发明的关键要素,因为这使得系统的用户可以通过使用任何显示系统在制造和传播内容的任何步骤中修改项目的任何要素(例如,对象在场景中的位置、摄像装置的位置、光源的位置和强度、角色的动画、序列的编辑),并且能够实时看到这些要素的变化的结果。
[0099]
所有这些步骤可以专门由根据本发明的、与人机接口屏幕的连续显示系统相关联的计算机实现的方法来执行,使得用户可以顺利地从一个步骤进行至另一个步骤。
[0100]
换句话说,该导航或屏幕系统被设计成以同一种方法(换句话说,以同一种解决方案)将制造3d动画内容的步骤集合聚在一起,以使得用户可以同时并且利用实时反馈(下一点)处理影片的任何方面(布局、编辑、照明、动画等)。
[0101]
实际上,根据本发明的方法是实时方法。为此,该方法基于两个要素:
[0102]
上述统一流水线的解决方案(1)利用了图形处理单元(gpu)的能力,该图形处理单元被设计成使诸如合成图像的计算或动画3d对象的变形的计算的任务加速,其中计算机处理使其本身适用于大规模并行类型的计算架构。图形处理单元(gpu)的使用在解决方案中不排除中央处理单元(cpu)的使用。解决方案所需的计算机处理资源比设计用于编辑文本的软件解决方案所需的计算机处理资源要好得多(解决方案进入名为数据密集型计算的类别)。因此,优选的是能够使用执行该解决方案的计算机/电子设备的所有可用资源,这涉及将在实现该解决方案的计算机设备上可用的(多个)cpu和(多个)gpu的计算能力进行组合。
[0103]
根据本发明的方法适于使得可以进行协作实现方式操作。
[0104]
为此,根据本发明的方法使得多个用户可以同时处理同一3d动画内容/项目/影片,并且可以实时地看到所有这些用户所执行的更改。
[0105]
因此,该方法使得可以同时远程地执行协作工作。
[0106]
此外,该方法部分地在集中数据的服务器上实现,而该方法的另一部分在终端(例如,台式计算机、平板电脑或智能电话)上实现。该方法的集中部分对于由同一3d动画内容项目的终端集合对该方法的实现方式是通用的。
[0107]
在本发明的优选版本中,用户凭借在他们的终端上(换句话说,在用户用来工作的计算机设备上)执行的软件解决方案(以下称为客户端应用)来访问项目的数据。
[0108]
终端是完整的计算机处理单元,其设置有一个或更多个中央和图形处理单元以及使得可以在各种设备(计算机屏幕、虚拟现实耳机、扬声器、头戴式耳机等)上显示图像和播放声音的一个或更多个音频和视频输出设备。
[0109]
在启动应用时,在终端上执行的计算机程序(客户端应用)连接至远程应用(以下称为服务器应用),该远程应用本身在终端所连接至的网络的服务器(以下称为服务器s)上执行。
[0110]
为了使得服务器和客户端应用能够处理服务器和客户端应用发送以及服务器和客户端应用接收的数据,根据本发明特定的协议来封装项目的数据。
[0111]
对于封装数据在网络上的传输,可以使用任何标准协议(例如tcp/ip,其是用于因特网上的数据交换的协议)。在本发明的优选版本中,终端和服务器形成局域网(lan)。
[0112]
在本发明的另一版本中,终端和服务器属于不同的网络,但是仍然可以例如凭借因特网类型的连接来进行通信。在这种情况下,终端和服务器形成广域网(wan)。
[0113]
从至少一个客户端连接至服务器的时刻起创建工作会话;在工作会话中连接至服务器的客户端应用的数目没有上限。
[0114]
这种划分使得客户端应用c1可以从终端t1向服务器应用发送对项目p所做的所有修改。
[0115]
当服务器s应用接收到修改时,服务器s应用执行两个任务:1)服务器将该修改应
用于其自己的项目版本,2)除了修改源于的客户端之外,服务器s将该修改传播到与其共享连接c2、c3、

、c
n
的所有客户端,这使得这些客户端应用可以将该修改应用于其自己的项目版本。
[0116]
然后,项目的所有版本,无论是由各种客户端应用c1、c2、c3、

、c
n
维护的版本还是由服务器s应用维护的版本,然后都是最新的或被同步。
[0117]
因此,该方法的所有彼此相距较远并且在不同终端上工作的用户不间断具有关于项目p的相同的“视图”。
[0118]
在本说明书中,相对于服务器应用,客户端应用是指与对应于在中央服务器s上实现的步骤的在用户的终端上实现的方法的步骤集合。
[0119]
在本发明的这个版本中,除了位于服务器上的项目的副本之外,还存在与终端上的项目的副本一样多的项目p的副本(本地);在工作会话中,所有这些副本是相同的。
[0120]
当启动新的客户端应用并且当位于终端的驱动上的项目p
c
的版本与位于服务器上的版本p
s
不同时,服务器应用然后执行同步步骤,在该步骤期间,服务器应用向客户端应用发送更新项目p
s
所需的所有修改,使得在该过程结束时,项目p
c
与p
s
相同。
[0121]
实现的方法还包括历史功能、连接功能和分发功能。
[0122]
实现历史功能,使得从创建项目开始由所有用户在其远程终端上进行操作时对项目所做的所有修改(无论是否同步)都保存在服务器s上,因为每当用户执行修改时,无论这涉及小的更改还是大的更改,该修改都会被发送至在本地记录修改的服务器,然后服务器根据刚才说明的方法进而传播修改。因此,该方法的用户在技术上不需要记录为保留其更改而做的修改。
[0123]
项目的更改历史的数据既保存在服务器应用的存储器中,也保存在与其相关联的存储空间中,例如硬盘驱动中。
[0124]
历史数据可以被划分为两大类别。
[0125]
第一类型数据由用户在项目中导入或创建的所有资产表示。资产是本领域技术人员众知的术语,并且特别包括3d模型,图像或纹理、声音、视频、材料等。
[0126]
在根据本发明的方法中,这些数据被描述为blob(二进制大对象的首字母缩写),其范围可以从几千字节到超过一千兆字节(千兆字节)。
[0127]
这些blob以二进制数据的形式存储在服务器的存储空间中。
[0128]
第二类型数据由附加了属性的对象表示。
[0129]
将对象定义为被称为属性的键值对集合。每个属性包含一个值或一个引用(对blob或另一对象的引用)或多值(值或引用的列表)。
[0130]
因此,例如,“3d对象”类型的对象引用blob,该blob包含3d模型的网格信息和属性(例如,该对象在3d场景中的位置以及对其分配的材料的引用)。材料是对象的另一示例,其包含有关3d模型外观的信息,例如3d模型的颜色或光泽,这些属性中的每一个都能够包含常量值或对纹理类型blob的引用。
[0131]
与blob的大小相比,在服务器的驱动上存储此类型信息所需的内存量相对较小。
[0132]
这两种类型的数据的大小不同,编辑频率也不同。与第二类型的数据相比,blob类型的数据很少添加到项目中,而对后者的编辑相反更为频繁。例如,可以在实时迭代过程中执行对象颜色的更改,每秒生成数十个甚至数百个更改。这些数据可以视为表示项目的创
建历史。
[0133]
例如,此处是对这种类型的更改的可能序列:
[0134]
1.创建新的场景
[0135]
2.将场景重命名为“scn_1”[0136]
3.将导入的3d对象添加到scn_1中
[0137]
4.更改该对象的位置
[0138]
5.更改该对象的颜色(红色)
[0139]
6.更改该对象的颜色(绿色)
[0140]
7.更改该对象的颜色(蓝色)
[0141]
8.将彩色纹理添加到该对象。
[0142]
在创建项目的这个阶段,项目因此包括编辑历史,该编辑历史包括步骤1至步骤8以及两个blob,这两个blob既保存在服务器的硬盘驱动上,也保存在本发明中的客户端应用的被称为blob存储区的硬盘驱动上。
[0143]
凭借该信息,例如可以在记录了u1所执行的更改之后更新连接至服务器的第二用户u2的项目。
[0144]
通过将历史的编辑任务应用到第二用户u2的项目上,可以更新第二用户的项目。例如:
[0145]
1.在u2的项目的本地副本中创建新的场景,
[0146]
2.该场景被重命名scn_1,
[0147]
3.从服务器的blob存储区导入3d对象,将3d对象保存在客户端应用的blob存储区中并将其添加到场景。
[0148]
4.更改对象的位置,
[0149]
5.更改对象的颜色(红色),
[0150]
6.更改对象的颜色(绿色),
[0151]
7.更改对象的颜色(蓝色),
[0152]
8.从服务器的blob存储区导入纹理,将纹理保存在客户端应用的blob存储区中并将其添加到场景。
[0153]
根据本发明的方法包括适于协作功能和适于生成结果解决方案的历史的模块。这些模块如下:
[0154]-更新的管理:可以区分1)在实时协作工作会话的范围内(也就是说,当多个客户端应用已经连接至服务器时)的更新以及2)当应用在断开连接时间之后连接至服务器时执行的更新:
[0155]
1.将源自客户端应用的更改发送至服务器应用,服务器应用(在下面描述的过程中)在本地保存更改,然后将更改发送回至其他连接的客户端应用,其他连接的客户端应用然后在本地执行这些更改。处于“推送(push)”逻辑中:服务器推送更改。
[0156]
2.当客户端应用在断开连接时间之后(或首次)连接至服务器时,客户端应用(经由下面描述的模块)从服务器获得项目的状态,该状态使得客户端应用能够建立自从其上一次连接以来被添加到该项目的所有blob的列表。然后,客户端应用能够通过将该列表与已经存在于其本地blob存储区中的blob的列表进行比较来建立丢失的blob。因此,仅丢失
的blob被服务器应用发送回至客户端应用。处于“拉(pull)”逻辑中:客户端请求它们需要的数据列表以便是最新的。
[0157]-blob的管理:当将二进制类型的数据添加到项目时,有时用户可能在一行中多次添加数据。实际上,二进制数据有时以束的形式相关联。
[0158]
作为示例,束b1包括描述3d模型和三个纹理(t1、t2和t3)的网格信息。在随后的工作步骤中,用户可以将束b1的新版本——将被称为b2——导入到项目中。
[0159]
在这个新的束b2中,仅纹理t3与包含在束b1中的文件中的纹理不同。因此,在仅t3必须经历更新的情况下,将3d对象的网格信息以及纹理t1和纹理t2重新导入到项目中是相对无效的。将二进制信息传送至服务器然后从服务器传送至客户端应用所需的存储空间和带宽的使用是昂贵且有限的,因此仅需传输和存储新的数据。
[0160]
因此,根据本发明的方法包括用于基于blob包含的信息来计算唯一签名的模块。在本发明的主要实施方式中,使用sha类型的密钥或哈希值,即,通过生成对于项目的每个blob唯一的印记的加密哈希函数获得的密钥。
[0161]
生成该哈希值的函数使用blob的二进制数据作为输入。
[0162]
当计算用于blob的sha时,该方法将所获得的哈希值与包含在blob存储区中的每个blob的哈希值进行比较:
[0163]
·
如果该方法在blob存储区中找到具有相同密钥的sha,则该方法从其推断blob已经存在于项目中并且因此不必导入bolb。
[0164]
·
如果sha还不存在,则导入blob。
[0165]
根据本发明的某些实施方式,服务器侧的存储容量和因特网业务量是有限的。因此,用户必须充分利用该存储容量和带宽,并且系统必须因此通知用户导入操作可能对驱动器空间的配额和为此预留的业务量的使用产生的影响。
[0166]
因此,根据本发明的方法的特定实施方式,当用户将blob导入到项目中时,客户端应用继续进行,使得:
[0167]
1.在存储器中读取被包含在束(导入的束)中的所有blob,并且针对该束的每个blob计算哈希值。如果blob存在于blob存储区中,则忽略该blob。如果blob不存在,则将blob的大小添加到用户想要导入的数据的总大小。
[0168]
2.一旦根据上述过程分析了束的所有blob,就获得了要导入到项目中并因此要存储在服务器上的数据的总大小。因此,该图可以通过用户界面呈现给用户。如果用户意识到要导入的数据量超过服务器上的剩余存储容量或者要导入的数据量太大(例如由于处理错误),则他们可以决定取消导入处理或者增加服务器上的存储容量。在相反的情况下,用户可以确认导入。如果用户确认导入,则数据然后被传送至服务器,并且然后变成能够由项目的其他用户访问。
[0169]
该两步导入模块是在开发根据本发明的方法的协作功能的上下文中创建的,并且是特定于此的。
[0170]-创建历史的管理:在以上给出的示例中,历史的多个步骤表示对客户端应用或项目的属性所做的连续并且潜在地非常快速(例如,约几毫秒)的修改。
[0171]
例如,在先前公开的项目u2的步骤中,步骤5、步骤6和步骤7,对对象的颜色执行的三个连续更改非常快速。当对对象的属性进行快速修改时,用户的意图是从状态e0(其中,
在更改属性之前找到该属性)到状态e1到状态5,然后在步骤6中到状态e2,最后在步骤7中到状态e3。
[0172]
这些修改是实时执行的(这些修改仅需要几毫秒来执行),对用户而言,这些修改仅表现为不间断的连续性或恒定的更改流。用户在状态e3处停止迭代过程。因此,可以认为用户的意图是从e0到e3,并且状态e1和状态e2仅是被称为瞬时状态的中间状态,用户在停止在期望的最终状态(e3)之前通过该中间状态。当状态的寿命非常短(仅几毫秒)时,状态被认为是瞬时的。该方法实现以下步骤:
[0173]
·
在协作编辑会话中由服务器向客户端应用发送实时修订:当用户u1在场景s1中移动对象并且当另一用户u2同时编辑同一场景s1的内容时,u2看到对象如该对象在用户u1的场景中移动那样进行移动。这是可能的,因为所有修订(无论修订是否为瞬时的)都被发送至服务器,该服务器将修订发送回去,而无需等待所有客户端应用编辑项目内容。
[0174]
·
在项目的创建历史中保存修订:根据示例,当用户停止修改系统的属性时(当以下修改涉及系统的另一属性或当涉及的属性在给定时间期间停止被修改时发生这种情况),服务器应用压缩修订列表以从其中删除瞬时状态并且用将状态e0的属性直接更改为状态e3的修订替换该瞬时状态,并且该压缩的结果是修订被保存在项目的创建历史中。一般而言,当系统的属性从状态e
n
到状态e
n+p
时,负责管理历史的方法的部分不在历史中保存p个瞬时状态,而是保存从状态e
n
直接到状态e
n+p
的单个修改,其中p是瞬时状态的数目。这种压缩方法可以由根据本发明的方法实现,或者由客户端应用实现,或者在服务器应用上实现。
[0175]-服务器应用对损坏blob的管理:有时,通过网络从客户端应用传输至服务器的某些blob可能仅部分到达服务器或者经过修改。blob可能损坏的原因有很多:发送数据的客户端应用意外停止、因特网中断、计算机攻击等。为了解决这个问题,该方法实现以下步骤:
[0176]
·
步骤1:客户端应用计算blob b的哈希值h
b
,并且向服务器应用发送查询,向服务器应用通知客户端应用正准备向其发送具有哈希值h
b
的blob。之后,客户端应用立即开始发送与该查询相关的blob b的数据。
[0177]
·
步骤2:当服务器停止接收与blob b相关联的数据时,服务器认为所有数据都已被传输。然后,服务器使用与客户端应用的算法相同的算法,计算服务器侧h’b
上的blob的哈希值。如果哈希值h’b
与客户端应用发送的哈希值(h
b
)相等,则服务器保证blob b的数据是完整且集成的,并且过程在这个步骤处停止。如果该值不同,则服务器进行至步骤3。
[0178]
·
步骤3:从服务器应用重新建立与客户端应用的连接的时刻起,服务器应用向客户端应用发送查询,询问客户端应用发送其中数据不完整的blob的数据。
[0179]
在假设客户端应用之一将拥有相同的blob并且最初发送了该blob的客户端应用将不可用的情况下,服务器应用向共享同一项目的所有客户端应用发送相同的查询。服务器应用重复步骤3,直到服务器应用获得blob的数据的完整副本。此外,服务器不向其他客户端应用发送与blob b相关的数据,并且服务器侧上保存的副本是不完整的。
[0180]
获取用于管理blob存储区的哈希值的该模块是重要的,因为该模块保证了根据本发明的方法的协作功能的可靠性。此外,先前的情况描述了当数据从客户端应用传输至服务器应用时的模块,但是当数据从服务器应用传输(例如在更新的情况下)至任何客户端应用时使用相同的模块。
[0181]
blob的“优先级”:根据本发明的方法的一个实施方式,取决于由客户端应用确定的标准,将blob从服务器应用传输至客户端应用。可能会发生多种情况:
[0182]
·
应用的带宽未被使用太多:在这种情况下,由服务器应用将blob按照blob到达服务器的顺序发送至客户端应用,因此没有“政策”或特定策略。
[0183]
·
在对项目进行几小时或几天的处理之后,项目的状态发生相当大的变化并不罕见。在长时间段离开项目之后重新连接到项目的用户必须等待该项目的所有新blob从服务器传送到其终端上之后,才能够继续工作。然而,用户在打开会话之后需要访问所有新的blob是罕见的。该方法以如下方式使用该观察结果:客户端应用首先检测用户对项目进行处理的部分(例如,项目的特定场景)并且将该信息传输至服务器应用,该服务器应用将在其他blob之前发送包含在该场景中的blob。这个分级或优先化过程首先向用户发送“有用”信息,这使得可以减少等待时间并且改善他们的体验。这对于其带宽和存储空间有限的客户端应用(例如移动电话上的增强现实客户端应用)特别有用。在上述示例中,用于确定由服务器优先向客户端发送blob的顺序的度量是简单的(其基于项目中的用户正在处理的部分),但是度量可以采取更为复杂的形式,特别是在其基于学习过程的情况下。实际上,根据本发明的方法的一个实施方式,以及因此根据本发明的协作功能的一个实施方式,服务器应用能够基于项目的创建历史知道并因此学习处理项目的每个用户的工作习惯,并且通常系统的每个用户对各个项目的参与。该基于机器学习的学习过程提供了决策矩阵,使得服务器应用可以针对blob的分级递送实时采用可能最适合于每个用户和每个客户端应用的策略。因此,服务器应用保持由用户向每个客户端应用(台式计算机、智能电话上的增强现实应用等)发送blob的优先级的列表。如果基于机器学习的学习过程的结果指示例如用户更特别地对项目的资产中的某一个而不是另一个进行处理,则与该资产相关的所有数据将成为其在用于发送增强blob的列表中的优先项。当已经更新了在服务器上等待特定客户端应用的所有blob的优先级时,服务器以优先级的降序将blob发送至客户端应用。该过程实时操作(不间断地更新每个客户端应用和系统的每个用户的优先级),并且优先级列表可以在blob的发送期间更改(由于由客户端传送至服务器的新信息)。
[0184]
·
用于存储中间状态(标签/快照)和创建历史的模块:当用户启动客户端应用并且加载自其上次连接以来已经经历了修改的项目的数据时,服务器应用通过将服务器应用的创建历史与客户端应用的创建历史进行比较来确定状态e
c
,其中,该项目位于客户端应用上。根据状态e
s
(其中,在服务器上发现该项目)(e
s
>=
à
e
c
),然后从状态e
s
推导出为了更新项目必须在客户端应用上执行的历史h的部分。换句话说:h=e
s-e
c
。然而,随着项目的创建历史增长,该模块变得无效。
[0185]
作为示例,一组用户处理项目达相对长的时间段,例如多个星期或多个月。项目是复杂的:历史包括几十或甚至几十万个状态更改(被称为修订),并且blob存储区包括几十千兆字节的数据。在用户u加入项目的情况下,根据上述逻辑,服务器必须将所有的blob(包括在项目的最新版本中不再可能使用的blob)和项目的历史的全部内容发送至新用户;为了在状态e
s
下在用户的系统上安装项目,随后将在客户端应用上执行自创建项目以来的所有修订,这对于具有重要历史的项目可能花费大量时间,如本示例中的情况一样。根据本发明的方法的一个实施方式,服务器应用自动地并且定期地保存项目的总状态。该总状态可以被看作是项目在时间t处的快照。在时间t处存在项目的总状态的备份的事实也被保存在
项目的创建历史中。凭借该方法,服务器不再必须向新用户u发送与项目的总状态e
total
的最新备份相关的数据,以及从生成e
total
的时刻起对项目执行的所有修改。在项目的历史中,总是在创建历史中相对于在项目的总状态的最新备份中找到该属性的状态,定义对项目的属性执行的修改。当从总状态的最新备份起的修订次数超过系统定义的值q
r
时,服务器执行项目的总备份。
[0186]
·
客户端侧上用户对历史的管理:凭借上述模块,在服务器上存在一系列所谓的总状态备份(以或多或少的规则间隔拍摄的项目的图像)。根据本发明的方法的一个实施方式,以时间线的形式在客户端应用的用户界面中公开了项目的这一系列总状态备份以及在每个总状态备份之间执行的修改的历史,该时间线表示自创建项目以来项目的整个历史。通过沿着该线移动,用户可以确保项目被恢复到更早的状态。为此,使用与先前描述的模块相同的模块。服务器应用通过使用在紧接期望的恢复时间t
restore
之前的项目的总状态的备份t
total
来发送用于更新客户端应用的信息,然后发送从执行该备份的时间直到期望的恢复时间(t
restore
)的附加修改。然后,项目恢复到其在时间t
restore
处的状态下。通过同一用户界面,用户可以在创建历史中留下标签,从而使他们可以在项目的创建历史中标记被视为对开发项目来说关键的步骤。这些标签使得可以快速恢复项目的较早版本,并且特别地可以简单且快速地建立项目的各个状态之间的视觉比较或其他比较。
[0187]
根据本发明的方法的一个实施方式,存在自动生成而不是由用户生成的特殊标签:当在时间流逝q
t
之后项目没有被任何客户端应用修改时,添加该特殊标签。实际上,在这种情况下,将认为在长时间内没有变化指示该项目对于根据本发明的方法的用户而言潜在地处于令人满意或稳定的状态,并且因此该状态值得保留。
[0188]
因此,在根据相互依赖的操作的主要实施方式中,根据本发明的方法包括彼此协作的模块集合,该模块集合建立在公共概念(例如,哈希值的计算)之上并且使用本发明的协作功能。该方法特别包括:
[0189]
·
实时模块a,其用于在协作工作会话(推)的情况下由服务器实现的或者在客户端应用连接至服务器(拉)时由客户端应用实现的客户端应用上的项目的数据同步,
[0190]
·
实时模块b,其凭借加密编码函数根据关于blob的二进制数据计算出的哈希值,使得可以决定是否必须将导入的blob添加到blob存储区,
[0191]
·
实时模块c,其可以区分其他状态变化的瞬时状态变化,使得可以显著压缩项目的创建历史的列表,并且减少对存储空间上存储的、内存中的和在网络上传输的数据量的影响,
[0192]
·
实时模块d,其使用哈希密钥保证在客户端应用与服务器应用之间传输数据的完整性,
[0193]
·
实时模块e,其在学习算法(机器学习)中使用项目的创建历史的数据,以将服务器应用在更新范围内将blob递送至各个用户以及连接至项目的各个客户端应用的顺序进行等级化,
[0194]
·
实时模块f,其以项目的一系列总状态备份以及与这些状态相关的中间修订的形式保存项目的创建历史。通过算法基于实时学习模块(机器学习)使用历史数据来确定总状态的备份的频率,
[0195]
·
实时模块g,其使得该方法的用户可以通过客户端应用的用户界面用标签标记
项目更改的关键时刻,并且使用或不使用这些标签来及时还原以容易地将项目恢复到较早的状态,由此,可以出于比较的目的将项目的各个状态之间的比较呈现给用户。
[0196]
用于通过学习系统尤其使用历史数据来优化管理和查看内容的过程的模块。
[0197]
根据本发明的方法的功能之一是实时或延迟时间地查看由以序列形式组织的绘图或剪辑的集合组成的3d动画内容,如上所述。目的是使得该方法的用户可以在客户端应用侧创建尽可能复杂的内容,同时保持最佳的观看性能,也就是说,也就是说,对于图像清晰度大于或等于被称为全高清的图像格式标准,图像和声音的显示频率大于或等于每秒30张图像。在这种情景下,该设备安装了用于优化过程的模块,由此形成要观看的内容的数据被转换成动画和声音图像。统一设备的协作使用生成与1)设备本身的使用和2)由设备的用户制造的内容有关的大量信息。由服务器应用收集的该信息包括1)项目的创建历史、2)与设备的使用和项目的编辑相关的元数据、3)构成项目的所有数据。上面已经呈现了创建历史。元数据可以例如包括如下度量:诸如用于加载给定3d场景所需的存储器大小、加载该场景所需的时间、给定场景或资产的使用频率(系统用户对场景或资产进行了编辑的次数、场景在最终动画内容的序列中出现的次数)等。设备的用户还频繁地观看构成项目的各种场景和序列:因此,在这些观看期间,可以收集与计算每个场景的每个图像的时间、可以根据屏幕上可见的内容而变化的存储器的使用等有关的信息。
[0198]
需要强调的是,设备的协作和统一特性使得可以1)生成新信息以及2)在云中集中信息,并且因此可以实现此优化模块。既不是协作的也不是统一的当前设备仅能够以非集中的方式访问这些数据中的一些数据,并且因此确实不具有实现相同方法的可能性。
[0199]
这些数据可以根据所使用的客户端应用(例如,用于智能电话或台式计算机的客户端应用)以及在其上执行客户端应用的系统的gpu和cpu的特征(存储量、核的数目等)而变化。最后,应当注意,当通过该方法播放项目的最终内容时(其中,根据在用于编辑序列的方法所实现的步骤中定义的编辑信息,在屏幕上显示带有声音的3d场景),计算该内容以再现该内容的过程是预测性的,因为在使用该方法的最常见情况下,该过程是线性的(与所谓的交互式内容相比,例如在视频游戏的情况下,播放内容时内容会发生变化)。根据本发明的方法的一个实施方式,基于学习(机器学习)的算法使用在项目上设置的所有信息(创建历史、由所使用的硬件配置随时间收集的元数据、以及项目的数据),以安排和优化在其上执行客户端应用的系统的资源的使用,以便尽可能最佳地保证在所需条件(图像的分辨率、每秒图像的数目等)下播放项目的内容。用于安排和优化资源的这个模块定义了根据本发明的方法的一部分,此处被称为影片引擎,随后其将在电影引擎的术语下提及。作为示例,该方法在收集信息的步骤期间已经检测到场景s3需要3秒来加载以及gpu上5gb的内存;该场景在动画序列开始10秒之后出现(序列q1由涉及3个不同场景s1、s2和s3的10幅图组成):因此,该方法能够在需要在屏幕上显示场景之前至少3秒来安排场景的加载,并且在加载过程开始时,gpu上至少有5gb的空闲内存,即使这意味着在必要时从内存中删除该方法并不立即需要的内存数据。因此,该方法包括电影引擎,其根据本发明的主要实施方式的操作如下:
[0200]
·
服务器应用收集以下信息:
[0201]
·
各个客户端应用发送的元数据,其用于编辑项目的内容,
[0202]
·
项目的创建历史,
[0203]
·
项目的数据,
[0204]
·
服务器处理该信息并将其重组为用于电影引擎的相关信息束,随后信息束被发送至客户端应用(基于与发送blob的原理相同的原理),
[0205]
·
这些信息束为电影引擎提供输入数据,其任务是基于执行客户端应用的硬件配置优化对以下问题的响应加载哪些数据以及何时加载这些数据,以便保证实时不间断的观看。
[0206]
·
电影引擎基于服务器应用不间断地发送至其的信息,以基本永久的方式、以比终端上的用户事件的频率更高的频率、以优选的方式,实时地改进对该问题的响应。电影引擎通过调整问题的参数来探索各种策略,以在不间断的自学习过程中优化对该问题的响应。因此,尽管对于系统的用户而言配置s1似乎比配置s2更有效,但是电影引擎可以在该学习过程的上下文中发现,借助于对系统的特定参数的修改,s2实际上比s1更有效。例如,策略可以包括优先考虑尽可能快地从客户端的存储空间向gpu的内存加载数据和从gpu的内存卸载数据,而不是在gpu的内存中尽可能长地保存最大的数据。
[0207]
·
电影引擎拥有替选的策略,以用于在安排过程不足以保证不间断的观看的情况下绕过系统的限制。根据本发明的方法的一个实施方式,电影引擎可以:
[0208]
·
在下述情况下在开始观看内容之前预先计算(并且安装缓冲器,即保留的存储器空间)在播放内容之前的内容部分:已经检测到尽管进行所有可能的优化,但是项目的这些部分不能例如在所需观看条件下实时播放。
[0209]
·
当单个gpu不充足时,安排在多个gpu上同时对项目的计算,并且在不间断的视频流中重组由这些gpu计算的图像。
[0210]
这些各种选项形成参数的一部分,电影引擎可以在其学习算法中修改的参数中的该部分,以根据系统(硬件配置)和项目的约束来提供最佳可能的响应。
[0211]
此外,根据本发明的方法是连接的方法。实际上,项目的协作性质要求客户端应用所连接的服务器s上发现的项目的版本是项目的参考版本。在服务器上布置项目的数据集(包括项目的历史)的事实使得可以开发可以从服务器访问项目的数据或者直接与客户端应用对接的卫星应用的集合。
[0212]
这些卫星应用可以被认为是另一类型的客户端应用。
[0213]
为此,根据本发明的方法包括将卫星应用连接至服务器的步骤。在本发明的主要实施方式中,在配备有增强现实功能的智能电话或平板电脑上执行软件解决方案。另外,作为示例,服务器s的卫星应用读取服务器s上项目p的数据,并且在智能电话的应用上显示项目的各种场景。然后,应用的用户可能会选择项目的场景之一,然后借助增强现实系统,将虚拟场景sv的内容存放在电话能够知道3d空间中的位置和取向的现实世界的任何表面上(在最简单的情况下,这通常涉及水平或垂直表面,例如桌子或墙壁的表面)。3d虚拟场景sv随后被添加到电话的双重曝光的摄像装置的视频流中。该设备的目的是使用户可以播放3d场景sv,并且能够在增强现实中对该3d场景sv进行拍摄。
[0214]
为此,应用提出了摄像装置的记录功能。当应用的用户激活该记录功能时,摄像装置在(由增强现实系统提供的)3d空间中的移动以及创建的视频流的图像将保持在智能电话的存储器中。
[0215]
记录完成后,摄像装置的移动、视频的图像和所有由增强现实系统创建的其他的
辅助数据(例如,所谓的跟踪点,即由增强现实系统用来计算智能电话在空间中的位置和旋转的真实场景的点)保存在服务器上的项目p中。
[0216]
这种获取方法使得用户特别地可以借助于普通公共设备(智能电话或平板电脑)为3d动画内容项目创建动画虚拟摄像装置。
[0217]
根据一个具体实施方式,由计算机实现的方法还包括将实时应用连接至客户端应用的步骤。在本具体实施方式中,可以将用于记录对象或生物四肢(身体和脸)的位置和旋转的移动捕获系统与计算机上的虚拟对应物(摄像装置、3d模型或化身)相关联,以对其进行控制。该方法使得可以在项目p中直接记录在服务器s上捕获的数据;然后,所有连接至服务器的客户端应用都能够立即访问这些数据。
[0218]
本发明的这些各种实施方式使用两种连接模式,其中一种连接模式是卫星应用经由因特网类型的网络连接访问服务器s上的项目p的数据。其中,另一种连接模式是卫星应用(例如通过流式传输系统)直接与客户端应用通信,将与服务器通信的责任留给客户端应用,以访问服务器上项目的数据。
[0219]
根据本发明的方法还包括被称为传播步骤的第二组制作步骤。
[0220]
在一个实施方式中,这些传播步骤包括本地计算和传播(流式传输)步骤。
[0221]
此外,根据该实施方式,客户端应用c的使用配备有一个或更多个中央处理单元(cpu)以及一个或更多个图形处理单元(gpu)的平板电脑或台式计算机类型的计算机设备以用于执行该应用的用户可以通过使用这些各种处理单元的资源在本地(实时)即时计算声音动画序列。
[0222]
所创建的音频和视频输出可以重定向到任何连接至计算机的观看设备,如2d屏幕和扬声器或虚拟现实耳机。
[0223]
在其中观看系统的用户控制摄像装置的动态观看系统(例如增强或虚拟现实系统)的情况下,在创建音频和视频流时考虑与由观看系统提供的摄像装置的位置和旋转相关的信息,从而创建反馈循环:例如,虚拟或增强现实系统提供与(智能电话或虚拟现实耳机的)真实摄像装置的位置和旋转有关的3d信息,这使得可以在与之连接的计算机上计算对应的音频和视频流,这些流本身连接至增强或虚拟现实系统的相应音频和视频输入。
[0224]
根据本发明的第二实施方式,从服务器s远程执行计算和流式传输。
[0225]
同样在该第二实施方式中,使用与上述的方法相同的方法,但是这次在服务器上离线或实时地计算音频和视频流。
[0226]
在离线模式下,视频和音频流可以保存在视频中。在实时模式下,动态即时地计算音频和视频流,并且通过lan(本地)或wan(例如因特网)类型的网络将音频和视频流传播(流式传输)到连接至服务器的另一电子或计算机设备。
[0227]
在本发明的该版本中,可以在服务器在本地允许连接的计算中心的基础设施一样多的处理单元(cpu和gpu)上以离线或实时形式来计算项目的最终版本(应当注意,如果服务器s上的项目p的数据在也连接有处理单元的局域网上,则对这些数据的访问是快速的)。也可以使用任何解决方案来计算3d合成图像以创建该内容的最终图像。
[0228]
在离线版本中,用户可以通过增加专用于该任务的处理单元的数目来适应性调整计算影片的最终版本的速度。
[0229]
在实时版本中,项目的用户可以远程访问比他们的本地计算机(或用于观看内容
的电子设备,例如智能电话或平板电脑)拥有的计算资源重要得多的计算资源,以获得质量比用户使用他们自己的计算机的资源所能够获得的版本更好的实时内容的最终版本。
[0230]
本发明的最后一个实施方式使得可以将计算资源(用于内容的计算的gpu和cpu)与用于观看该内容的设备物理地分开。该设备与经由因特网从服务器流式传输到例如智能电话的视频传播的情况(预先计算视频的内容的情况)不同。在本发明的情况下,这涉及在将动画项目传播(流式传输)到该智能电话的实际时刻处即时地计算动画项目的内容。
[0231]
在这种情况下需要适于实时内容的流式传输的协议,例如实时流式传输协议(rtsp)。根据需要实况动态地计算项目的内容。动态地意味着项目的内容可以在其传播的实际时刻处进行更改(视频显然不是这种情况)。当该方法的用户如在增强和虚拟现实的情况下控制摄像装置时,这是特别必要的。这涉及与上述的反馈环路相同的反馈环路,但是在本发明的这个版本中,增强或虚拟现实系统和服务器s通过lan或wan(例如因特网)进行网络连接。
[0232]
因此,由增强或虚拟现实设备创建的关于摄像装置的位置和旋转的数据经由该网络被发送至服务器s(输入);该信息随后用于直接即时地在服务器s上计算音频和视频流,音频和视频流通过网络从与摄像装置有关的信息所来自的位置被发送回(输出)到该设备。
[0233]
在动画内容被传播/流式传输的同时动态地修改动画内容的可能性还使得可以例如根据观看该内容的每个人的偏好来调整该内容。
[0234]
在本发明的主要实施方式中,为观看动画内容的版本的每个人分配一个或更多个处理单元(以下称为计算组),使得每个计算组可以根据同一项目s创建该内容的不同版本。该解决方案类似于广播或流媒体行业中的异步多播概念,不同之处在于,在此处描述的情况下,生成并传播给连接至流式传输服务器的每个客户端的每个音频和视频流是唯一的。
[0235]
此外,可以在观看文件时动态地选择场景的对象,以与对象交互。
[0236]
当预先计算3d动画影片时,与场景的组成有关的信息会丢失,因为上面已经指出的像素不具有像素表示的3d模型的任何概念。
[0237]
该信息可以以元数据的形式保存在像素处,从而将信息转换为“智能像素”。
[0238]
当即时计算动画项目的内容,然后以紧密的流将其进行传播时,关于项目的内容的所有信息是已知的,因为这些信息存在于服务器s上。因此,例如,该方法的用户简单地借助于鼠标或触摸屏来指示他们想要选择的对象;关于屏幕上的光标的位置的信息随后被发送至服务器,服务器通过一套简单的计算根据信息推导出用户已经选择的3d模型。
[0239]
然后,可以向用户发送回关于该模型的补充信息,或者向用户提供与该对象相关联的相同的服务集合(例如,以3d打印对象、通过因特网控制对象等)。也可以知道该模型的整个制造历史(谁创建了模型、谁修改了模型等)。
[0240]
因此,根据本发明的方法响应于与以下相关的技术问题:非实时制作流水线的零碎特征、缺乏协作解决方案、以及用于传播3d动画内容的过程的制作过程的连接断开(无论过程是否是实时的)。
[0241]
根据本发明的方法以全局方法解决了所有这些技术问题,并且更具体地专用于为传统媒体(电视和电影)和新媒体(增强和虚拟现实)创建实时3d线性动画内容。
[0242]
根据本发明的本方法被具体设计用于创建线性动画内容或更一般地3d叙事内容,这些内容可以包含交互元素但在任何情况下与视频游戏明显区分。在该方法中,一个或更
多个用户可以在统一过程中通过使用各种电子和/或计算机设备(例如智能电话、平板电脑、膝上型计算机或台式计算机、耳机)或者任何其他增强或虚拟现实系统,以同时协作的方式并且远程地实时且同时地处理3d动画内容的任何方面(和/或混合各种声音和视觉源,例如视频、数字图像、预记录或程序上地生成的音频源等),并且凭借以下各种方法传播这些内容:例如在视频分发平台上发布内容的视频、或者将动态实况视频流(即,即时生成或根据需要动态创建的)从服务器流式传输到任何交互式或非显示设备(虚拟现实耳机、智能电话或平板电脑屏幕、计算机屏幕等)。
[0243]
根据参照图7至图16描述的本发明的一个详细实施方式,根据本发明的方法(换句话说,协作统一流水线(cup))可以在诸如以下描述的计算机上实现。
[0244]
1.启动客户端应用:用户u1在配备有cpu和gpu的台式计算机上启动客户端应用。该计算机(也称为终端)通过wan型远程网络连接至位于计算中心或云平台中的服务器,如图16所示。
[0245]
为了在服务器s(服务器应用位于其上)上识别用户自身,u1必须提供由服务器应用验证的用户名称和密码(图7)。
[0246]
2.创建/打开项目:一旦连接,就将另一屏幕(图8)提供给u1,这使得用户可以创建新的内容项目或打开现有项目。用户u1通过将存储在计算机的本地硬盘驱动器上的图像拖放到项目的图标上,可以定制项目p的图标。
[0247]
在现有项目的情况下,用户u1可以在项目p的图标上点击一次,以便预览呈例如最大三十秒、预先计算或即时计算的小视频或片头24的形式的项目的内容。在p的图标上的双击使项目打开。
[0248]
3.创建/打开3d虚拟场景或声音和动画序列:项目的打开使得来自服务器的终端的本地驱动器上的数据同步。当项目的本地版本为最新(在每一点上都与服务器上保存的版本相同)时,将显示另一屏幕,以下称为项目编辑器(图11)。该另一屏幕被垂直地分成两个大的空间:左边是虚拟3d场景51的列表,并且右边是构成影片52的序列的列表。
[0249]
每个空间包括使得可以创建新的场景54或新的序列57的图标。
[0250]
场景和序列被显示为一系列卡片55,包括由用户u1或随机(快照)选择的场景或序列的图像以及可以编辑场景或序列的名称。场景可以被复制和删除。双击场景的卡片,打开编辑中的场景。
[0251]
4.编辑动画场景:当用户u1打开场景时,向用户u1呈现新的屏幕(图12)。该屏幕(以下称为场景编辑器)提出工作空间,用户可以从该工作空间编辑3d虚拟场景的所有方面,例如当场导入3d模型或对3d模型建模;导入或创建动画;导入摄像装置或创建(通过在3d场景中放置虚拟摄像装置)可以拍摄场景的新角度镜头;导入或创建光源、视频、数字图像、声音等。
[0252]
场景编辑器呈现使得该方法的用户可以在时间上移动场景的时间线。凭借在3d场景上实时即时计算的一种打开窗口(被称为视口71),能够看到场景的内容。
[0253]
当用户点击工具栏中的摄像装置的图标时,在屏幕上显示包括已经在场景82中创建的所有摄像装置的列表的窗口,该列表以卡片的形式呈现。
[0254]
每个卡片包括摄像装置的名称以及表示从该摄像装置拍摄的场景的图像的小图像。双击这些卡片之一使得可以在视口中看到从所选择的摄像装置拍摄的3d场景。
[0255]
摄像装置可以是动画的。为了创建新的摄像装置,必须在3d场景中自由移动,然后当视点合适时,单击摄像装置的窗口82的“新建”按钮,其效果是1)将卡片添加到摄像装置的列表中;2)创建被定位在场景的3d空间中的期望位置处的新摄像装置。
[0256]
5.编辑视觉和声音序列:一旦用户创建了一个或更多个场景,用户可以回到项目编辑器(图11)。
[0257]
通过双击表示序列58的卡片,用户打开新的屏幕,该新的屏幕在以下被称为序列编辑器(图13)。该屏幕使得用户可以编辑序列的内容。该屏幕被分成三个大的部分:
[0258]-3d窗口或视口,其是本领域技术人员常用的术语,其使得用户可以看到用户的编辑结果91,
[0259]-可以在序列92的编辑中使用的所有3d场景的列表,以及
[0260]-时间线,其是本领域技术人员的常用术语,也就是说用户将通过端到端放置绘图93来创建其编辑的空间。通过在时间线上从列出项目的所有3d场景的部分拖放表示3d场景(以下称为scn)的卡片的操作来执行在时间线上创建绘图。
[0261]
默认地,在时间线上如此创建的绘图具有与scn场景的持续时间相同的持续时间。然而,可以如在任何编辑工具中一样调整该持续时间。
[0262]
最后,一旦创建了绘图,就必须指定必须从其拍摄3d场景scn的角度镜头以及对应该绘图所期望的动画版本。通过点击该绘图(例如附图标记101),在屏幕97上显示窗口。
[0263]
该窗口包括3d场景scn的动画和摄像装置的列表。然后,用户通过点击摄像装置的图标和表示用户的选择的动画的图标,简单地选择摄像装置和用户想要用于该绘图的动画的版本。
[0264]
也可以将其他元素(例如音频源)添加到该时间线,以将声音添加到图像。视口包括某些控件99,这些控件使用户可以播放序列以检查用户的编辑的结果。
[0265]
6.在虚拟现实中观看序列:通过致动序列编辑器中的虚拟现实功能100,不仅可以在计算机的屏幕上观看序列,还可以在连接至用户的计算机的虚拟现实耳机上观看序列。
[0266]
7.播放整个影片:通过从项目编辑器53致动用于观看影片的功能(图14),用户可以播放整个影片,即首尾相连地放置的序列。以与在项目编辑器52中布置的顺序相同的顺序播放这些序列。
[0267]
8.在增强现实中创建虚拟摄像装置:参照图19,用户在配备有增强现实功能或任何其他合适的设备的智能电话上启动卫星应用。
[0268]
该应用连接至服务器s以从服务器中读取项目p的数据(1207、1208)。然后,场景列表以与用于项目编辑器的卡片相同的卡片1205的形式出现在智能电话的屏幕上。
[0269]
经由智能电话的触摸屏,用户选择场景scn,然后用户可以将内容存放在真实世界的表面上以便将内容固定在其中。然后,通过电话拍摄虚拟场景3d,就好像虚拟场景3d形成真实世界的一部分一样。
[0270]
通过致动记录功能1201,然后可以在智能电话在虚拟场景中四处移动的同时记录智能电话在3d真实空间中的移动。
[0271]
一旦记录完成,智能电话通过添加利用项目的场景scn进行动画处理的新摄像装置来保存刚刚在服务器s上创建的摄像装置移动的信息。
[0272]
然后,在客户端应用中的项目p中,可以从场景编辑器或序列编辑器获得该摄像装
置移动。
[0273]
9.协作工作:该方法的另一用户(以下称为用户u2)通过在用户自己的计算机上启动客户端应用c2来连接至服务器s。
[0274]
参照图9,通过致动项目共享功能,用户u1可以向第二用户u2赋予对项目p的访问。
[0275]
从这个时刻起,用户u2可以访问该项目的所有数据,并且可以根据他们的意愿修改项目的内容。无论何时用户u1或用户u2编辑该项目的内容,在其他用户的屏幕上将立即反映或能够看到修改。
[0276]
例如,用户u1从项目编辑器创建新场景。即使是用户u1修改了该项目,该场景也以新卡片的形式出现在两个用户的界面中。因此现在也可以访问该新场景的第二用户u2决定打开该场景以在其中导入3d模型。然后,不仅在刚导入3d模型的第二用户u2的项目中能够看到并获得该模型,而且还在没有执行任何操作的第一用户u1的项目中能够看到并获得该模型。
[0277]
第一用户u1决定更改该对象的颜色。这种颜色变化也被应用于第二用户u2的项目的模型。不管连接至服务器s的用户的数目如何,该原则适用于项目的所有方面。
[0278]
10.参照图15,凭借历史来管理项目的各种版本:用户u1和用户u2可以探索同一项目p的不同版本。
[0279]
通过从客户端应用110访问以下被称为历史编辑器的屏幕,第二用户u2可以创建以下被称为分支111的项目的第二版本p’。在第二用户将处理项目p’时,第二用户u2将不再看到由第一用户u1对项目p所做的所有修改。
[0280]
相反,u1将不能看到由第二用户u2对p’所做的修改。通过查看历史编辑器,可以看到用户u1和用户u2在两个不同的分支上工作,这些分支以明确的方式在视觉上示出,如图15所示。
[0281]
因此,用户u1和用户u2工作一段时间,但是随后认识到不再需要对项目的两个版本进行工作。然而,用户u1和用户u2想要将对项目p’的第二版本所做的修改集成到项目p中。这个操作可以通过选择项目p和项目p’的两个分支,然后通过执行所谓的合并操作来执行,合并操作是本领域技术人员的专用术语,合并操作包括取得对第二项目p’所做的修改以及将修改集成到项目p的主版本中;自创建分支p’以来,已合并这两个项目,并且对这两个项目所做的修改已统一为一个同一版本,即主版本p。
[0282]
在历史编辑器115中也以明确的方式示出了该合并操作。
[0283]
11.在增强现实中播放影片:人在配备有增强现实功能的智能电话上启动卫星应用。这个人不想编辑项目的内容,而是作为观众观看该内容。该应用连接至服务器s,并且向该观众提供所有可用项目的列表。凭借智能电话的触摸屏,观众选择项目,然后凭借由增强现实应用提供的图形界面来选择真实世界的表面,在该表面(例如桌子的表面)上将播放作为合成图像的影片。
[0284]
12.参照图18,利用内容的动态创建在服务器上远程计算影片:用户u1想要在平板电脑上显示他们的工作结果,而该平板电脑不具有实时进行即时计算所需的处理能力。因特网浏览器的web网页使得用户可以看到可用项目的列表。借助于鼠标、触摸屏或任何其他适合的设备来选择项目之一会触发两件事:
[0285]
12.1.一方面,在平板电脑上启动基于rtsp型实时分发协议用于接收实时视频流
并且用于显示实时视频流的应用或服务。也可以涉及用户从其访问项目列表的web页面,因为所谓的html5视频标签使得可以在web页面中接收和显示实时视频流。
[0286]
12.2.另一方面,在服务器s上启动流式传输服务器。这涉及将在与用户所期望的处理单元(gpu和cpu)一样多的处理单元上计算项目的最终版本的应用(例如服务的参数),然后以紧密的流将该计算的结果传播/流式传输到用户的平板电脑。然后,该输入流的内容将凭借在前一步骤(a)中启动的过程而显示在平板电脑的屏幕上。
[0287]
用户可以与所观看的影片的内容交互。例如,可以借助于鼠标或触摸屏来选择屏幕上的对象。该对象被表示为屏幕上的像素集合,但是流式传输应用可以知道由这些像素表示的一个或多个3d模型。因此,所选择的3d模型可以出现在由轮廓围绕的屏幕上(以指示选择了该轮廓),然后可以向用户呈现与该对象相关联的整个服务集合。
[0288]
特别地,作为示例:
[0289]
1.可以定制3d模型。向可能选择他们喜欢的模型的用户建议所选择的模型的替选版本。不间断地观看影片,但是利用由用户选择的模型;
[0290]
2.关于模型表示的内容的信息可以显示在屏幕上;
[0291]
3.用户可以命令所选择的模型的3d打印输出。
[0292]
播送设备,即负责将内容传播到服务的一个或更多个用户的平板电脑、智能电话等的服务,也可以在计算和传播项目的内容的同时修改项目的内容。作为示例,在重新传输现场体育赛事的情况下,可以根据该赛事的时间性来调整动画的内容。在这种情况下,不是由服务的用户而是由服务(播送设备)的运营商来执行修改。可以创建与连接至服务的用户一样多的定制版本。
[0293]
为了管理共享服务器应用的同一部分(换句话说共享由计算机实现的方法的同一步骤集合)的多个用户u1、u2等的协作工作,该方法还包括管理访问权限的步骤。为此,服务器包括用户认证步骤。当从终端实现客户端应用时,该应用首先连接至在认证之前实现该步骤的服务器。
[0294]
然后,该认证步骤分配数字认证令牌,该数字认证令牌包括根据本领域技术人员已知的任何合适的技术进行哈希处理、加密或编码的认证数据,以及先前在服务器的数据库中将已经定义的访问权限数据。
[0295]
这样,可以确保用户可以仅对授权给他的制作步骤集合的方法起作用。传统上,可以提供管理员类型的授权(赋予实现制作步骤和管理步骤的权利)、制片人类型的授权(赋予例如对于制作步骤集合的权利)、以及目标授权,例如使得仅可以在对所制作的内容进行动画处理的步骤处在修改和创建中进行访问的动画制作人授权。
[0296]
所制作的动画内容的数据都存储在中央服务器上。
[0297]
以二进制大对象的形式存储诸如先前定义的资产类型的动画内容的数据,二进制大对象一般缩写为blob。
[0298]
以数据组的形式组织这些存储的数据,数据组在技术领域中被称为数据池。
[0299]
然而,数据存储模式不限于该存储和引用模式。服务器上的任何其他技术存储解决方案能够适用于本发明。
[0300]
每个数据与服务器上的状态r
n
相关联。该状态与修改相关联,使得在先前状态中,相同的数据处于状态r
n-1
,在进行了所谓的c
n
记录的修改之后,该数据使得对象进入状态r
n

[0301]
根据本发明的方法实现了管理编辑和创建冲突的步骤。
[0302]
该管理步骤被细分为两个子步骤:检测冲突的步骤和解决冲突的步骤。
[0303]
检测冲突的步骤与历史步骤相关,因为历史步骤会检测历史的哪些伴随动作对存储在中央服务器中的相似数据起作用。
[0304]
当由历史步骤将由制作步骤执行的两个或更多个的编辑、修改或创建动作记录在服务器上并且引用相同或相关的数据时,则实现解决冲突的步骤。
[0305]
这个解决冲突的步骤旨在赋予最新的修改、创建或删除优先级。
[0306]
因此,作为示例,当对象在服务器上处于状态r
n
时,可以以服务器的扩展状态r
n
来提及所讨论的对象。
[0307]
第一终端上的第一用户u1经由动作f执行导致状态变化的修改,该动作f导致服务器变为状态r
p
(其被写为r
p
=r
n->p),事件记录在历史中。
[0308]
同时在同一项目上和同一对象或相关对象上工作的第二用户命令服务器将状态更改为r
f
=r
n->f,也记录在历史中。
[0309]
在这种情况下,用于检测冲突的方法检测到两个伴随状态是彼此排斥的。
[0310]
为此,该方法然后实现解决冲突的步骤以确定服务器必须采取哪个状态r
p
、r
f
或不同的状态。
[0311]
如所指示的,历史创建了事件之间的时间顺序关系。在这种情况下,事件p被记录为早于事件f。
[0312]
事件p或f表示实现如前所述的制作步骤的结果。
[0313]
为了解决这个冲突,该方法实现确定事件p的排除的步骤。
[0314]
此外,如果事件p满足以下标准之一,则排除事件p:
[0315]-事件p删除被事件f删除、修改、添加或引用的对象;
[0316]-事件p添加被事件f删除、添加或修改的对象;
[0317]-事件p修改被事件f删除的对象的属性;
[0318]-事件p修改也被事件f修改的对象的单个属性;
[0319]-事件p添加对被事件f删除的对象的引用;
[0320]-事件p添加对被事件f添加、删除或更改的可以具有多个值的对象的属性的值或对象的引用;
[0321]-事件p删除对被事件f添加、删除或更改的可以接收同一属性的多个值的对象的引用或对象的值;
[0322]-事件p移动对被事件f在同一属性中添加、删除或移动的可以接收多个值的属性的值或对象的引用。
[0323]
如果事件p进入这些情况之一,则将其忽略,并且根据最后事件f更新项目。否则,事件p与事件f一起被保留。
[0324]
然后,终端从服务器接收对更新项目的指示,根据冲突的解决方案将终端上的本地数据与服务器的状态同步。
[0325]
因此,可以简单且有效地实时解决对制作内容的方法产生影响的版本冲突,同时确保在所有制作步骤中直接更新这些修改,并且在所有用户终端上实时传输这些修改。
[0326]
本发明还涉及如图16所示的计算机系统,其包括服务器1105以及一个或更多个终
端1100。
[0327]
终端1100包括计算机设备,该计算机设备包括显示系统、cpu和gpu或其他类型的处理单元、以及用于在本地保存项目p 1102的版本的存储容量。
[0328]
在该设备上执行根据本发明的客户端应用1101,其使得可以编辑该项目的内容。
[0329]
终端通过lan或wan类型的本地或远程网络1106连接至服务器s1105。在wan型远程连接的情况下,服务器被称为在云中。服务器s本身包括用于在服务器上保存项目p的版本的(cpu和gpu类型的)处理单元和存储容量1103。在该服务器1104上执行在本创新中描述的服务器应用。多个终端经由用户1、用户2、

、用户n网络连接至服务器。
[0330]
图17示意性地示出了不同内容的多个项目与多个不同终端同步的方式。
[0331]
在第一步骤中,用户在终端ta上对项目p所做的修改首先在被本地保存1’,然后被传播到服务器1。在第二步骤中,服务器将该修改记录在项目2的其自己的版本中。
[0332]
在第三和最后的步骤中,服务器将修改传播到除了修改所源于的终端之外的所有终端3,又应用修改并且在本地记录修改3’。
[0333]
在该步骤结束时,存在于所有终端和服务器上的项目的所有版本是相同的,换句话说项目是同步的。
[0334]
图18是模块的表示,由此可以即时计算项目的内容并且以紧密的流将内容传播到与所需数目的显示设备一样多的显示(交互)设备。
[0335]
在该图中,示出了三种类型的交互式显示设备:虚拟现实耳机1110和与其相关联的控制器、配备有增强现实功能和触摸屏的平板电脑或智能电话1111、以及设置有键盘和鼠标的计算机1112。
[0336]
由这些各种设备生成的信息1113(例如虚拟现实耳机或智能电话在真实世界的3d空间中的位置)被发送至这些设备连接至的服务器。
[0337]
这些服务器与项目服务器s不同:这些服务器是所谓的流式传输服务器1115。
[0338]
流式传输服务器1115经由局域网(lan)连接至服务器s,这使得流式传输服务器1115可以快速地访问项目的数据。对于每个显示器或观看设备存在一个流式传输服务器。这使得每个配备有其自己的cpu和gpu处理单元的流式传输服务器可以计算响应于观看系统的输入的单个音频和视频流1114。因此,每个流潜在地是唯一的。
[0339]
图19示出了模块的一部分,该模块使得配备有增强现实功能的系统(例如智能电话或平板电脑)可以凭借在该系统上执行的软件解决方案连接至服务器s,以访问项目的数据,例如在这种情况下的项目p的3d场景。
[0340]
在图19所示的示例中,在步骤1中,3d场景以卡片1205的形式显示在智能电话的屏幕上。
[0341]
在步骤2中,应用然后使得可以在增强现实中播放和拍摄这些3d场景。
[0342]
在步骤3中,一旦场景被拍摄,则由增强现实系统捕获的所有数据例如视频或摄像装置的移动,随后被保存在服务器s 1105上。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1