任意视图生成的制作方法

文档序号:16366532发布日期:2018-12-22 08:28阅读:181来源:国知局
任意视图生成的制作方法

现有渲染技术面临着质量和速度的竞争性目的之间的折衷。高质量渲染要求显著的处理资源和时间。然而,慢渲染技术在许多应用(诸如,交互式实时应用)中不可接受。较低质量但较快的渲染技术典型地对于这种应用而言是有利的。例如,栅格化普遍由用于相对快的渲染的实时图形应用来采用,但以质量为代价采用。因此,需要不显著损害质量或速度的改进技术。

附图说明

在以下详细描述和附图中公开了本发明的各种实施例。

图1是图示了用于生成场景的任意视图的系统的实施例的高级框图。

图2图示了数据库资产的示例。

图3是图示了用于生成任意视角的过程的实施例的流程图。

具体实施方式

本发明可以以许多方式实现,包括被实现为:过程;装置;系统;物质组成;体现在计算机可读储存介质上的计算机程序产品;和/或处理器,诸如,被配置成执行存储在存储器上和/或由存储器提供的指令的处理器,该存储器耦合到该处理器。在本说明书中,这些实现方式或本发明可采取的任何其他形式可以被称作技术。一般地,可以在本发明的范围内更改所公开的过程的步骤的次序。除非以其他方式声明,诸如被描述为被配置成执行任务的处理器或存储器之类的部件可以被实现为:一般部件,其暂时被配置成在给定时间处执行该任务;或者具体部件,其被制造成执行该任务。如本文所使用,术语“处理器”指代被配置成处理数据(诸如,计算机程序指令)的一个或多个设备、电路和/或处理核。

下面连同图示本发明原理的附图一起提供本发明的一个或多个实施例的详细描述。结合这种实施例描述本发明,但本发明不限于任何实施例。本发明的范围仅由权利要求限制,并且本发明涵盖许多可替换方案、修改和等同方案。在以下描述中阐述许多具体细节,以便提供本发明的透彻理解。这些细节是出于示例的目的而提供的,并且本发明可以在没有这些具体细节中的一些或全部的情况下根据权利要求而实践。出于清楚的目的,未详细描述在本发明相关技术领域中已知的技术材料,使得本发明不被不必要地模糊。

公开了用于生成场景的任意视图的技术。本文描述的范式使非常低的处理或计算开销成为必需,同时仍提供高清晰度输出,从而有效地消除渲染速度和质量之间的有挑战性的折衷。所公开的技术对于关于交互式实时图形应用非常快速地生成高质量输出而言尤其有用。这种应用依赖于下述操作:响应于且根据所呈现的交互式视图或场景的用户操控,基本上立即呈现优选地高质量的输出。

图1是图示了用于生成场景的任意视图的系统100的实施例的高级框图。如所描绘的那样,任意视图生成器102接收针对任意视图的请求作为输入104,基于现有数据库资产106来生成所请求的视图,并响应于输入请求而提供所生成的视图作为输出108。在各种实施例中,任意视图生成器102可以包括诸如中央处理单元(cpu)或图形处理单元(gpu)之类的处理器。图1中的系统100的所描绘的配置是出于解释的目的而提供的。一般地,系统100可以包括提供所描述的功能的任何其他适当数目和/或配置的互连部件。例如,在其他实施例中,任意视图生成器102可以包括不同配置的内部部件110-116,任意视图生成器102可以包括多个并行物理和/或虚拟处理器,数据库106可以包括多个联网数据库或资产云等。

任意视图请求104包括针对场景的任意视角的请求。在一些实施例中,场景的所请求的视角不是已经存在于包括场景的其他视角或视点的资产数据库106中。在各种实施例中,可以从过程或用户接收任意视图请求104。例如,可以响应于所呈现的场景或其部分的用户操控(诸如,所呈现的场景的相机视点的用户操控)而从用户界面接收输入104。作为另一示例,可以响应于虚拟环境(诸如,场景的虚拟漫游(fly-through))内的移动或行进路径的规范而接收任意视图请求104。在一些实施例中,可请求的场景的可能任意视图至少部分受约束。例如,用户可能不能够将所呈现的交互式场景的相机视点操控到任何随机定位,而是被约束到场景的某些定位或视角。

数据库106存储每一个所存储的资产的多个视图。在给定的情境中,资产将其规范存储在数据库106中的具体场景称作多个视图。在各种实施例中,场景可以包括单个对象、多个对象或丰富虚拟环境。具体地,数据库106存储与每一个资产的不同视角或视点相对应的多个图像。存储在数据库106中的图像包括高质量照片或照片般逼真的渲染。可以在离线过程期间捕获或渲染对数据库106进行填充的这种高清晰度高分辨率图像,或者从外部源获得对数据库106进行填充的这种高清晰度高分辨率图像。在一些实施例中,随存储在数据库106中的每一个图像存储对应的相机特性。也就是说,随每一个图像存储诸如相对位置或定位、取向、旋转、深度信息、焦距、孔径、变焦水平等之类的相机属性。此外,还可以随存储在数据库106中的每一个图像存储诸如快门速度和曝光之类的相机照明信息。

在各种实施例中,可以将资产的任何数目的不同视角存储在数据库106中,图2图示了数据库资产的示例。在给定的示例中,与围绕椅子对象的不同角度相对应的七十三个视图被捕获或渲染,且被存储在数据库106中。可以例如通过围绕椅子旋转相机或在相机前面旋转椅子来捕获视图。随每一个所生成的图像存储相对对象和相机位置和取向信息。图2具体图示了包括单个对象的场景的视图。数据库106还可以存储包括多个对象或丰富虚拟环境的场景的规范。在这种情况下,与场景或三维空间中的不同位置或定位相对应的多个视图被捕获或渲染,且连同对应的相机信息一起被存储在数据库106中。一般地,存储在数据库106中的图像可以包括两个或三个维度,且可以包括动画或视频序列的定格画面(still)或帧。

响应于针对不是已经存在于数据库106中的场景104的任意视图的请求,任意视图生成器102根据存储在数据库106中的场景的多个其他现有视图生成所请求的任意视图。在图1的示例配置中,任意视图生成器102的资产管理引擎110管理数据库106。例如,资产管理引擎110可以便于存储和检索数据库106中的数据。响应于针对场景104的任意视图的请求,资产管理引擎110从数据库106识别和获得场景的多个其他现有视图。在一些实施例中,资产管理引擎110从数据库106检索场景的所有现有视图。可替换地,资产管理引擎110可以选择和检索例如与所请求的任意视图最接近的现有视图的子集。在这种情况下,资产管理引擎110被配置成智能地选择可从其收获像素的现有视图的子集,以生成所请求的任意视图。在各种实施例中,多个现有视图可以由资产管理引擎110一起检索,或者随着它们被任意视图生成器102的其他部件需要以及当它们被任意视图生成器102的其他部件需要时检索。

由资产管理引擎110检索的每一个现有视图的视角被任意视图生成器102的视角变换引擎112变换成所请求的任意视图的视角。如前所描述,精确相机信息是已知的且随存储在数据库106中的每一个图像而被存储。因此,从现有视图到所请求的任意视图的视角改变包括简单几何映射或变换。在各种实施例中,视角变换引擎112可以采用任何一种或多种适当数学技术以将现有视图的视角变换成任意视图的视角。在其中所请求的视图包括与任何现有视图不相同的任意视图的情况下,现有视图到任意视图的视角的变换将包括至少一些未映射或丢失的像素,即,在不存在于现有视图中的在任意视图中引入的角度或定位处。

来自单个经视角变换的现有视图的像素信息将不能够填充不同的视图的所有像素。然而,在许多情况下,可以从多个经视角变换的现有视图收获组成所请求的任意视图的大多数像素(如果不是所有像素的话)。任意视图生成器102的合并引擎114将来自多个经视角变换的现有视图的像素进行组合,以生成所请求的任意视图。理想地,从现有视图收获组成任意视图的所有像素。这可以是可能的,例如如果考虑中的资产的现有视图或视角的充分多样的集合是可得的和/或如果所请求的视角与现有视角不是太不相似。

可以采用任何适当技术以将来自多个经视角变换的现有视图的像素进行组合或合并,以便生成所请求的任意视图。在一个实施例中,从数据库106选择和检索与所请求的任意视图最接近的第一现有视图,并将该第一现有视图变换成所请求的任意视图的视角。然后从该经视角变换的第一现有视图收获像素,并使用该像素以填充所请求的任意视图中的对应像素。为了填充所请求的任意视图的未从第一现有视图可得的像素,从数据库106选择和检索包括这些剩余像素中的至少一些的第二现有视图并将该第二现有视图变换成所请求的任意视图的视角。然后从该经视角变换的第二现有视图收获未从第一现有视图可得的像素,并使用该像素以填充所请求的任意视图中的对应像素。可以针对任何数目的附加现有视图重复该过程,直到所请求的任意视图的所有像素已经被填充和/或直到所有现有视图已经被耗尽或所指定的阈值数目的现有视图已经被使用。

在一些实施例中,所请求的任意视图可以包括未从任何现有视图可得的一些像素。在这种情况下,内插引擎116被配置成填充所请求的任意视图的任何剩余像素。在各种实施例中,任何一种或多种适当内插技术可以被内插引擎116采用以在所请求的任意视图中生成这些未填充的像素。可采用的内插技术的示例包括例如线性内插、最近邻内插等。像素的内插引入了求平均或平滑化。总体图像质量可能不显著地受某种内插影响,但过度的内插可能引入不可接受的模糊。因此,可以期望有节制地使用内插。如前所描述,如果可以从现有视图获得所请求的任意视图的所有像素,则内插被完全避免。然而,如果所请求的任意视图包括未从任何现有视图可得的一些像素,则内插被引入。一般地,所需的内插的量取决于可得的现有视图的数目、现有视图的视角的多样性、和/或任意视图的视角相对于现有视图的视角有多不同。

关于图2中所描绘的示例,围绕椅子对象的七十三个视图被存储为椅子的现有视图。可以使用具有优选地最小(如果有的话)内插的多个这些现有视图来生成相比于所存储的视图中的任一个不同或独特的围绕椅子对象的任意视图。然而,生成和存储现有视图的这种穷尽集合可能不是高效的或期望的。在一些情况下,可以取而代之生成和存储覆盖视角的充分多样的集合的显著更少数目的现有视图。例如,可以将椅子对象的七十三个视图削弱成围绕椅子对象的少数视图的小集合。

如前所提及,在一些实施例中,可请求的可能任意视图可以至少部分受约束。例如,可以限制用户以免将与交互式场景相关联的虚拟相机移动到某些定位。关于图2的给定示例,可请求的可能任意视图可以被限于围绕椅子对象的任意位置,但可以不包括例如椅子对象下方的任意位置,这是由于对于椅子对象的底部而言存在不充分的像素数据。对所允许的任意视图的这种约束确保了所请求的任意视图可以由任意视图生成器102根据现有数据生成。

任意视图生成器102响应于输入的任意视图请求104而生成和输出所请求的任意视图108。所生成的任意视图108的分辨率或质量与用于生成它的现有视图的质量相同或类似,这是由于来自那些视图的像素被用于生成任意视图。因此,使用高清晰度现有视图在大多数情况下导致高清晰度输出。在一些实施例中,随关联场景的其他现有视图将所生成的任意视图108存储在数据库106中,并且随后可以采用所生成的任意视图108以响应于针对任意视图的进一步请求而生成场景的其他任意视图。在其中输入104包括针对数据库106中的现有视图的请求的情况下,不需要如所描述的那样根据其他视图生成所请求的视图;取而代之,经由简单数据库查找来检索所请求的视图并将所请求的视图直接呈现为输出108。

此外,任意视图生成器102可以被配置成使用所描述的技术来生成任意整体视图。也就是说,输入104可以包括将多个对象组合成单个定制视图的请求。在这种情况下,针对该多个对象中的每一个执行上面提及的技术,并将上面提及的技术进行组合以生成包括该多个对象的单个整合或整体视图。具体地,该多个对象中的每一个的现有视图由资产管理引擎110从数据库106选择和检索,现有视图由视角变换引擎112变换成所请求的视图的视角,来自经视角变换的现有视图的像素由合并引擎114使用以填充所请求的整体视图的对应像素,并且整体视图中的任何剩余未填充像素由内插引擎116内插。在一些实施例中,所请求的整体视图可以包括对于组成整体的一个或多个对象而言已经存在的视角。在这种情况下,采用与所请求的视角相对应的对象资产的现有视图,以直接填充与整体视图中的对象相对应的像素,而不是首先根据对象的其他现有视图生成所请求的视角。

作为包括多个对象的任意整体视图的示例,考虑图2的椅子对象和独立拍摄或渲染的桌子对象。可以使用所公开的技术来组合椅子对象和桌子对象,以生成全部两个对象的单个整体视图。因此,使用所公开的技术,可以一致地组合多个对象中的每一个的独立捕获或渲染的图像或视图,以生成包括该多个对象且具有期望视角的场景。如前所描述,每一个现有视图的深度信息是已知的。每一个现有视图的视角变换包括深度变换,从而允许该多个对象相对于彼此适当定位在整体视图中。

生成任意整体视图不限于将多个单个对象组合成定制视图。而是,具有多个对象或多个丰富虚拟环境的多个场景可以被类似地组合成定制整体视图。例如,可能来自不同内容生成源且可能具有不同现有个体视角的多个分离地且独立地生成的虚拟环境可以被组合成具有期望视角的整体视图。因此,一般地,任意视图生成器102可以被配置成将包括可能不同的现有视图的多个独立资产一致地组合或调和成具有期望的可能任意的视角的整体视图。完美和谐的所得整体视图被生成,这是由于所有经组合的资产被归一化到相同视角。可以基于可得以生成整体视图的个体资产的现有视图来约束整体视图的可能任意视角。

图3是图示了用于生成任意视角的过程的实施例的流程图。过程300可以例如由图1的任意视图生成器102采用。在各种实施例中,过程300可以被采用以生成所指定的资产的任意视图或者任意整体视图。

过程300开始于步骤302处,在步骤302处,接收针对任意视角的请求。在一些实施例中,在步骤302处接收到的请求可以包括针对与所指定的场景的任何现有可得视角不同的该场景的任意视角的请求。在这种情况下,例如,任意视角请求可以是响应于该场景的所呈现的视图的视角中的所请求的改变而接收的。视角中的这种改变可以是通过改变或操控与该场景相关联的虚拟相机(诸如,通过横摇相机、改变焦距、改变变焦水平等)来促进的。可替换地,在一些实施例中,在步骤302处接收到的请求可以包括针对任意整体视图的请求。作为一个示例,这种任意整体视图请求可以是关于允许多个独立对象被选择且提供所选对象的经整合、经视角校正的整体视图的应用来接收的。

在步骤304处,从一个或多个关联资产数据库检索根据其而生成所请求的任意视角的至少部分的多个现有图像。在其中在步骤302处接收到的请求包括针对所指定的资产的任意视角的请求的情况下,该多个所检索的图像可以与所指定的资产相关联,并且在其中在步骤302处接收到的请求包括针对任意整体视图的请求的情况下,该多个所检索的图像可以与多个资产相关联。

在步骤306处,将在步骤304处检索的多个现有图像中具有不同的视角的每一个现有图像变换成在步骤302处请求的任意视角。在步骤304处检索的现有图像中的每一个包括关联的视角信息。每一个图像的视角由与生成该图像相关联的相机特性(诸如相对定位、取向、旋转、角度、深度、焦距、孔径、变焦水平、照明信息等)定义。由于完整相机信息对于每一个图像而言是已知的,因此步骤306的视角变换包括简单数学运算。在一些实施例中,步骤306还可选地包括照明变换,使得所有图像被一致地归一化到相同期望照明条件。

在步骤308处,由从经视角变换的现有图像收获的像素填充具有在步骤302处请求的任意视角的图像的至少部分。也就是说,采用来自多个经视角校正的现有图像的像素以生成具有所请求的任意视角的图像。

在步骤310处,确定具有所请求的任意视角的所生成的图像是否完整。如果在步骤310处确定具有所请求的任意视角的所生成的图像不完整,则在步骤312处确定是否可得任何更多现有图像,可以从该更多现有图像挖掘所生成的图像的任何剩余未填充像素。如果在步骤312处确定更多现有图像是可得的,则在步骤314处检索一个或多个附加现有图像,并且过程300在步骤306处继续。

如果在步骤310处确定具有所请求的任意视角的所生成的图像不完整并且如果在步骤312处确定没有更多现有图像是可得的,则在步骤316处内插所生成的图像的任何剩余未填充像素。可以在步骤316处采用任何一种或多种适当内插技术。

如果在步骤310处确定具有所请求的任意视角的所生成的图像完整或者在步骤316处内插任何剩余未填充像素之后,在步骤318处输出具有所请求的任意视角的所生成的图像。过程300随后结束。

如所描述的那样,所公开的技术可以用于基于其他现有视角来生成任意视角。将不同现有视角归一化成公共期望视角是可能的,这是由于随每一个现有视角保存了相机信息。可以根据从经视角变换的现有图像挖掘像素来构造具有期望视角的所得图像。与使用所公开的技术生成任意视角相关联的处理不仅快速且几乎瞬时,而且导致高质量输出,从而使所公开的技术对于交互式实时图形应用而言特别强大。

尽管已经出于理解清楚的目的稍为详细地描述了前述实施例,但本发明不限于所提供的细节。存在实现本发明的许多可替换方式。所公开的实施例是说明性的而非限制性的。

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