用于使用虚拟深度来生成交互式3D环境的系统和方法与流程

文档序号:17932311发布日期:2019-06-15 01:00阅读:178来源:国知局
用于使用虚拟深度来生成交互式3D环境的系统和方法与流程

三维(“3d”)计算机图形是用来创建为了执行计算和渲染2d图像的目的而存储在计算机中的几何数据的3d表示的图形。因此,可以存储这类图像以供以后查看或实时显示。3d计算机图形依赖于许多与在线框模型中的2d计算机矢量图形和在最终渲染显示中的2d计算机光栅图形相同的算法。在计算机图形软件中,2d和3d之间的区别可能很小,因为2d应用可以使用3d技术达到诸如灯光等效果且3d可以使用2d渲染技术。

3d计算机图形通常可以被称为3d模型。除了渲染图形外,在图形数据文件中还可以包含3d模型。然而,2d渲染图像和3d计算机图形之间的一个区别是,3d模型是任何三维对象的数学表示。换句话说,模型在技术上不是图形,直到该模型被显示。可以通过称为3d渲染的或在非图形化计算机仿真和计算中使用的过程将模型在视觉上显示为二维图像。

渲染是通过计算机程序从2d或3d模型或者可统称为场景文件或帧文件的模型生成图像的过程。此外,这类模型的结果可以称为渲染。因此,场景文件可以包含采用严格定义的语言或数据结构的对象,同时包含几何、视点、纹理、灯光和阴影信息作为虚拟场景的描述。然后将场景文件中包含的数据传递到待处理的渲染程序,并将该数据输出到数字图像或光栅图形图像文件。

将视频与实时渲染的3d对象混合的当前使用情况主要依赖于在3d环境中使用原始视频作为平面纹理。这主要是由于预渲染的视频在光栅化过程中丢失了所有的几何、深度和照相机信息。光栅化是捕获以矢量图形格式(例如形状)所描述的图像并将其转化成光栅图像(例如像素或点)以供在视频显示器或打印机上输出或以供以文件格式(诸如例如位图)存储的任务。



技术实现要素:

本文中描述了用于使用虚拟深度来生成交互式3d环境的装置、系统和方法。该方法可以包括:接收预渲染的包括多个帧的媒体文件;接收与所述媒体文件相关的深度数据,其中,所述深度数据对应于所述多个帧中的每一帧;基于相应的所述深度数据,创建所述媒体文件的第一帧的不可见的三维(“3d”)框架;以及实时渲染新的第一帧以包括预渲染的第一帧、一个或多个虚拟可见的3d对象和所述不可见的3d框架。

本文中还描述了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质上存储有可执行的程序,其中,所述程序指示处理器执行用于使用虚拟深度来生成交互式3d环境的动作。所述动作可以包括:接收预渲染的包括多个帧的媒体文件;接收与所述媒体文件相关的深度数据,其中,所述深度数据对应于所述多个帧中的每一帧;基于相应的所述深度数据,创建所述媒体文件的第一帧的不可见的三维(“3d”)框架;以及实时渲染新的第一帧以包括预渲染的第一帧、一个或多个虚拟可见的3d对象和所述不可见的3d框架。

本文中还描述了一种用于使用虚拟深度来生成交互式3d环境的系统。该系统可以包括:存储器,所述存储器存储多个规则;和处理器,所述处理器联接到所述存储器且配置成执行包括如下项的动作:接收预渲染的包括多个帧的媒体文件;接收与所述媒体文件相关的深度数据,其中,所述深度数据对应于所述多个帧中的每一帧;基于相应的所述深度数据,创建所述媒体文件的第一帧的不可见的三维(“3d”)框架;以及实时渲染新的第一帧以包括预渲染的第一帧、一个或多个虚拟可见的3d对象和所述不可见的3d框架。

附图说明

图1示出根据本文中所描述的示例性实施方式的用于使用虚拟深度来生成交互式3d环境的系统。

图2示出根据本文中所描述的示例性实施方式的用于使用虚拟深度来生成交互式3d环境的方法。

图3示出根据本文中所描述的示例性实施方式的运行用于使用虚拟深度来生成交互式3d环境的软件应用的图形用户界面(graphicaluserinterface,gui)的多个屏幕截图。

具体实施方式

可以参考以下描述和附图进一步理解示例性实施方式,其中,用相同的附图标记指代类似的组件。示例性实施方式示出用于使用虚拟深度来生成交互式3d环境的系统和方法。例如,这些系统和方法可以创建交互式3d环境,其中,在动画类的预先渲染的(或“预渲染的”)视频中的虚拟3d对象可以与实时渲染的3d对象无缝结合和交互。

可以从包括一帧(例如单个图像文件)或多帧(例如视频文件)的媒体文件生成交互式3d环境。还可以借助计算设备上的处理器操作软件生成该媒体文件以供显示。本领域技术人员将理解,该计算设备可以为任何类型的计算设备,诸如但不限于平板电脑、台式电脑、笔记本电脑、手机、个人数字助理等。此外,本文中所描述的示例性实施方式可涉及计算设备上用于生成3d交互环境的应用。然而,本领域技术人员也将理解,本文中所描述的系统和方法可以由在计算设备上执行的独立软件包或集成软件组件来执行。

如上所述,将源视频与实时渲染的3d对象混合的当前实现依赖于将源视频分析为平面2维(“2d”)纹理。对此的原因之一是由于源视频在光栅化过程中丢失了其所有的几何数据、深度数据和照相机数据。换言之,一旦对源视频光栅化和渲染,则与视频内的帧的3d方面相关的任何信息都不被利用或保留以供额外应用使用。

如下文将更详细地描述,示例性系统和方法允许应用接收和理解用于媒体文件中的每个视频帧的几何、深度和照相机信息。此外,应用可以使用该信息创建虚拟深度场景,其中,其它新渲染(例如实时渲染)的3d对象可以在其中进行交互。新3d对象与源视频之间的交互可以包括但不限于:照相机视角和运动、灯光、光源、视觉效果、表面特性、碰撞检测、物体遮挡、刚体动力学、软体动力学、流体动力学等。

图1示出用于使用虚拟深度来生成交互式3d环境的示例性系统100。示例性系统100可以包括配备有显示器120、处理器130和存储器140(诸如非易失性计算机可读存储介质)的个人媒体设备110(例如智能手机、平板电脑等)。媒体设备110可以为计算设备,诸如例如平板电脑、智能手机、笔记本电脑、台式电脑、便携式电脑、家庭娱乐控制台、智能电视、数字媒体播放器等。

示例性处理器130可以从显示器120和/或通过设备110的其它组件(例如,键盘、鼠标等)接收用户输入。示例性存储器140可以存储可被处理器130执行的指令,该指令包括与上述软件应用(例如,媒体播放器应用)相关的指令。因此,设备110的用户可以与存储在设备110的存储器140中的软件应用进行交互。处理器130可以处理这些用户交互并调整内容(例如,源媒体文件)。此外,存储器140还可以接收且存储与源媒体文件(例如,图像、视频等)相关的信息,诸如但不限于在渲染和/或光栅化过程中的几何数据、深度数据和照相机数据。

图2示出根据本文中所描述的示例性实施方式的用于使用虚拟深度来生成交互式3d环境的示例性方法200。由方法200执行的步骤将参考如上文参照图1所描述的示例性系统100及其各种组件来描述。例如,可以作为由计算设备110的处理器130可执行的一组指令的应用而包括方法200。

在步骤210中,方法200可以从渲染模块接收源媒体文件,诸如视频文件、图像文件等。例如,媒体播放器应用可以从外部渲染模块导出预渲染的包括多个帧的视频文件。注意,尽管示例性方法200与外部渲染模块进行交互,但本领域技术人员将理解,渲染模块也可以为本文中所描述的系统、方法和应用中的集成组件。换言之,渲染模块可以是在计算设备110上执行的独立软件应用或软件组件。

在步骤220中,方法200可以接收与从渲染模块接收的媒体文件相关的深度数据。该深度数据可以对应于媒体文件中的多个帧的每一帧。例如,可以借助流式文件(诸如虚拟深度流文件)从渲染模块接收该信息。更具体地,处理器130可以在创建和渲染媒体文件期间从渲染模块接收信息。该信息可以包括但不限于:对于每帧的3d相关数据(诸如照相机位置和运动信息)、场景几何结构的描述、灯光和视觉效果、动画信息、场景参数等。根据一个示例,在步骤210中,当接收源媒体文件(例如视频、图像等)时,可以接收虚拟深度流信息。例如,当接收关于视频中的每帧的数据时,方法200可以逐帧接收相应的虚拟深度数据,该数据针对每帧提供关于几何数据和照相机信息的细节。

根据本文中所描述的系统和方法的示例性实施方式,可以从原始或源3d媒体文件(诸如视频中的场景)提取包括在虚拟深度流内的数据,该数据用于渲染该媒体文件。例如,外部渲染器可以赋予关于场景几何结构(例如,网格数据、顶点、三角形、对象层次等)、照相机信息、对象动画等的详细信息的特征。因此,方法200可以通过运行设计成用于收集这类数据的计算机程序或脚本来提取相应的场景数据。

在提取虚拟深度流的过程中,方法200可以可选地简化网格数据以使其更适合于实时使用。例如,源渲染器(例如,3d建模软件)可以提供针对特定3d网格降低细节级别的选项。相应地,由于可以将虚拟深度数据用于渲染不可见的3d框架(例如,对于观看用户不可见的元素),因此不需要以高细节级别提取虚拟深度数据。换言之,方法200可以不需要来自渲染器的源媒体文件中包括的所有细节。因此,可以利用更小数量的多边形来提取3d网格数据。

通过减少从源媒体文件提取的数据和细节的量,当处理该数据时,在客户端侧(例如,计算设备110)所需的处理可显著减少,因此可以允许方法200在低端设备(诸如手机)上操作。

关于照相机动画和对象动画,示例性源渲染器可以使用关键帧来定义动画。方法200可以使用这些关键帧来定义照相机在特定离散时间(诸如,在回放视频文件期间)的变换(例如位置、旋转等),其中,这些离散时间或媒体时间指定视频文件中的特定时间。在各个这些关键帧之间,可以通过遵循由动画师定义的曲线对变换值进行插值。因此,方法200可以提取与这些关键帧相关联的值以及曲线公式,以便在新生成的交互式3d环境中再现精确的动画且因此匹配视频中的照相机运动。类似于照相机动画,在渲染场景中的一些对象可以为动画。因此,也可以使用上文定义的相同过程提取这些对象的任何动画。

在步骤230中,方法200可以基于相应的深度数据创建媒体文件的第一帧的不可见的三维(“3d”)框架。注意,示例性不可见的3d框架可以指表示原始预渲染的媒体文件中的任意数量的对象的几何形状的隐藏框架或网格。在实时生成示例性交互式3d环境期间,可以隐藏不可见框架而不显示给观看者。因此,媒体播放器应用可以读取在步骤220中接收的信息并使用与照相机视角对齐的不可见框架来重建媒体文件的场景。该场景可以被称为虚拟深度场景。

在步骤240中,方法200可以实时渲染新的第一帧,以将预渲染的第一帧、一个或多个虚拟可见的3d对象和不可见的3d框架包括到预渲染的源媒体文件中。媒体播放器应用可以将可见的3d对象添加到虚拟深度场景,这些可见的3d对象与源媒体文件的各种元素对齐。换言之,实时渲染新的第一帧可以包括:将不可见的3d框架与在预渲染的第一帧中的任意数量的预渲染对象对齐。因此,这些虚拟3d对象也可以对媒体文件的帧内的场景几何结构是深度感知的。

例如,在源视频中,实时渲染的3d球可以通过与嵌入虚拟深度场景中的不可见的3d框架的隐藏几何结构交互而相对于桌子的表面弹跳。由于框架的隐藏几何结构与预渲染的源视频的对象(例如,沙发或桌子)对齐,因此它将提供新嵌入的3d对象与源媒体文件中的对象交互的错觉。

在渲染过程中,方法200可以将第一帧的不可见的3d框架同步到新媒体文件中。随着媒体改变(例如,播放视频文件),实时照相机、几何和深度数据可以根据虚拟深度流式文件内的信息而改变。这允许虚拟深度场景的不可见的3d框架与源媒体文件的视野保持同步。

由于源媒体文件(诸如视频文件)与虚拟深度场景以逐帧等级同步,因此媒体播放器应用能够播放包括非常高质量的预渲染场景的新媒体文件(例如,整合的视频文件),同时该应用知道照相机、几何和深度信息以及对信息的任何改变。

在步骤250中,方法200可以从渲染模块接收附加信息,该附加信息包括灯光数据、动画数据、视觉效果数据和帧参数中的至少一者。此外,方法200可以基于该附加信息调整一个或多个虚拟3d对象的显示。例如,如果上述3d球在源视频中在桌下行进,则可以将该球的颜色和/或阴影调整为暗色调,从而在球上呈现出阴影的错觉。

在步骤260中,方法200可以基于不可见的3d框架在新媒体文件中遮挡一个或多个虚拟可见的3d对象的至少一部分。换言之,媒体播放器应用可以遮挡虚拟深度场景的实时3d对象。更具体地,这可以通过使不可见的3d框架的隐藏几何结构充当透明掩模来实现。因此,尽管虚拟深度几何框架对观看者不可见,但在虚拟深度场景中落在框架后面的3d对象可以根据照相机信息(例如,照相机角度、照相机运动等)而部分地或完全地被遮挡。

在步骤270中,方法200可以确定可从由渲染模块接收的媒体文件中获得另一帧并重复步骤210至步骤260。因此,如果存在可从源媒体文件中获得的附加帧,则方法200可以从渲染模块接收用于这些帧的另一深度数据,并在附加虚拟深度场景中创建另一不可见的3d框架。可替选地,如果没有其它帧,则方法200可结束。

根据本文中所描述的系统和方法的示例性实施方式,在执行虚拟深度场景渲染之后,单独地渲染且组合新创建的媒体文件。因此,元素可以通过媒体播放器应用、通过虚拟深度掩模而保持可见。最终结果向观察者提供在来自源视频帧的元素之后方渲染实时3d对象的错觉。可以将示例性实时3d球扔在只存在于源视频中的沙发后面。然后观看者可看到该球被沙发遮挡,从而提供可信的深度错觉。

图3示出根据本文中所描述的示例性实施方式的运行用于使用虚拟深度来生成交互式3d环境的软件应用的图形用户界面(“gui”)的多个屏幕截图310至340。如上所述,设备110上的媒体播放器应用可以借助显示器120向用户呈现交互式3d环境,其中,实时渲染的3d对象与预渲染的视频(诸如来自外部源的视频)中的对象进行交互。因此,各个示例性场景截图310至340可以呈现场景组成的不同阶段。

屏幕截图310呈现原始的源媒体文件。该原始的源媒体文件可以为布景片段(诸如带家具的生活场所)的视频。媒体文件以及该布景片段的各个对象可以包括可观察的3d元素。例如,媒体文件包括照相机位置和运动信息、灯光信息等。附加地,对象包括几何信息、深度信息等。如上所述,可以在创建呈现该布景片段内的对象的3d不可见框架期间由媒体播放器应用接收关于该场景的所有信息。

屏幕截图320呈现从原始的源媒体文件生成的虚拟深度流。更具体地,该虚拟深度流描绘了该布景片段中的各个对象的实时3d方面,同时解释了照相机视角在回放原始媒体文件期间的变化。如在屏幕截图320中所示,基于对象(例如沙发、桌子等)的物理特性生成了对象的线框表示。尽管该框架保持与照相机运动和定位对齐,但该框架在回放期间对于观看者不可见。换言之,当播放视频时,对照相机信息和对象几何/深度信息的实时改变与原始媒体文件的视图保持同步。

屏幕截图330呈现3d交互对象的实时流。更具体地,屏幕截图330描绘了将实时渲染的3d对象嵌入原始媒体文件中。如上所述,这些对象可感知到对原始对象的几何结构和深度的改变以及对照相机视角的改变。基于在屏幕截图320中生成的对象的线框表示而感知这类变化和特征。

屏幕截图340呈现原始的源媒体文件的最终构成,其包括整合的3d交互对象。因此,实时3d对象(例如球)可显现为与这些原始对象(例如沙发)交互,诸如通过使该对象以现实角度反弹、使该对象在现实端点处滚动等。事实上,实时3d对象与在屏幕截图320中生成的对象的不可见框架交互。

可利用预渲染的视频实现的视觉质量通常高于使用实时渲染实现的视频质量。对于处理能力有限的设备(诸如移动设备)来说尤其如此。因此,通过使用本文中所描述的示例性系统和方法,可以在并入与源视频交互的实时3d对象的同时为观看者创建以优越视觉质量为特征的视觉体验。

根据本文中所描述的示例性系统和方法,媒体播放器应用可以用作用于将品牌内容传送到用户的创造性沙箱。媒体播放器应用可以允许以有趣且交互的方式向用户基础介绍新材料。例如,该内容可以包括从现有节目衍生的内容,诸如用于非交互式媒体内容(例如,电视节目、流式视频文件等)的视频游戏应用。通过将预渲染的视频与实时元素混合,使为观看者/用户创造高参与度的且视觉上引人注目的交互式多媒体体验成为可能。

新生成的媒体内容也可用作对通过不同媒介传送的附加内容的伴随组成部分,诸如允许用户在观看媒体文件(例如,电视节目)时实时地装饰布景和/或人物角色。因此,来自媒体播放器应用的内容可以为用户提供更深入的、更具参与性的、更具交互性的且更个性化的观看体验。

此外,本文中所描述的示例性系统和方法也可以应用于虚拟现实(“virtualreality,vr”)应用。例如,很多vr体验可被设计成具有预定照相机视角和照相机运动的“轨上”体验(例如,当观看者从一个场景或布景片段变换到下一个场景或布景片段时)。因此,使用本文中所描述的虚拟深度场景的不同实时3d交互对象的添加可以创建适合于vr的高质量轨上体验。

本领域技术人员将理解,上文所述的示例性实施方式可以在任意数量的主题中实现,包括作为媒体播放器应用、作为软件程序等。例如,示例性方法200可以被体现在存储于非易失性存储介质且包含多行代码的程序中,所述多行代码在编译时可以由处理器(例如,计算设备110的处理器130)执行。此外,本领域技术人员将理解,示例性软件应用可以用任何计算机可读语言(诸如例如,标记语言(例如html5等))来编写。

对本领域技术人员来说将显而易见的是,可以在本发明中进行各种修改而不脱离本发明的精神或范围。因此,意图是本发明覆盖本发明的修改和变型,只要这些修改和变型落在所附权利要求书及其等效物的范围内。

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