模拟景深的制作方法

文档序号:17944036发布日期:2019-06-18 23:23阅读:393来源:国知局
模拟景深的制作方法

三维(3d)扫描技术允许将现实世界对象和环境转化成相对应的3d虚拟对象。3d虚拟对象具有许多可能的用途,例如用于3d打印、增强现实(ar)和虚拟现实(vr)体验、快速原型制作等。通常,可以通过用一个或多个扫描设备扫描环境来生成3d虚拟对象,所述扫描设备包括能够检测现实世界的物理特征的任何数量的环境传感器。这些物理特征被转换为3d虚拟对象的相应特征。

在一些3d扫描方法中,用户能够物理地操纵扫描设备,例如移动电话,以便控制设备姿势,以及设备与作为扫描的主体的一个或多个现实世界对象和/或空间的距离。扫描设备可以包括收集扫描数据的相机,该扫描数据包括关于其视野内的表面的距离信息,以及表面纹理和颜色信息。为了接收高质量的扫描数据,相机应定位在距扫描的主体的最佳距离处,该最佳距离可能会随着扫描不同区域而改变。该距离可以基于相机的焦距。有些相机具有可调焦距,例如带有变焦镜头的相机。然而,调整焦距可能并不总是可行的,例如相机具有固定焦距的情况。在这些情况下,用户可能无法判断扫描的最佳距离,这会降低扫描质量。



技术实现要素:

在一些方面,本公开提供了使用来自现实世界对象或空间的3d捕获数据来可视化和生成3d扫描对象的系统和方法。为了帮助用户保持与被扫描主体的最佳距离,本公开的各方面基于用户从焦点的摄影标准学习的行为而构建。特别地,在3d扫描期间,确定相机和/或扫描设备的最佳扫描距离。在各种实现方式中,模糊用于在视觉上向用户指示相机与扫描距离的接近度。当相机远离扫描距离时,模糊会增加。此外,当相机朝向扫描距离移动时,模糊减少。在扫描距离处或附近,可以不向用户呈现模糊。

在一些实现方式中,将模糊应用于正被扫描的对象的3d表示。例如,可以使用纹理来应用模糊,其被uv映射到映射到3d表示。该3d表示可以对应于例如网格或点云。在一些情况下,纹理被应用于对应于点云的粒子,使得粒子的模糊水平改变以指示与扫描距离的接近度。在一些实现方式中,可以使用包括3d表示的整个显示器上的后处理来应用模糊。然而,使用应用于3d表示的纹理来应用模糊可以是更低功率且更不计算密集的,这尤其适合于电池操作的扫描设备。

附图说明

以下参照附图详细描述本发明,其中:

图1是示出根据本公开的实施例的操作环境的示例的框图。

图2示出了根据本公开的实施例的焦距指示器系统的框图;

图3a,3b,3c,3d和3e示出了根据本公开的实施例的当用户朝向焦平面移动时的3d表示;

图4示出了根据本公开的实施例的焦平面图的示例;

图5示出了根据本公开的实施例的纹理的示例;

图6是示出根据本公开的实施例的方法的流程图;

图7是示出根据本公开的实施例的方法的流程图;

图8是示出根据本公开的实施例的方法的流程图;

图9是示出根据本公开的实施例的方法的流程图;

图10是示出根据本公开的实施例的方法的流程图;

图11是示出根据本公开的实施例的方法的流程图;以及

图12是适用于实现本公开的实施例的示例性计算环境的框图。

具体实施方式

本文中具体描述了本发明的主题以满足法定要求。然而,描述本身并不旨在限制本公开的范围。相反,发明人已经预期主题还可以以其他方式体现,结合其他现有或未来技术,包括不同步骤或与本文档中描述的步骤类似的步骤组合。此外,尽管这里可以使用术语“步骤”和/或“块”来表示所采用的方法的不同元素,但是这些术语不应被解释为暗示本文公开的各个步骤之中或之间的任何特定顺序,除非且除了当明确描述了各个步骤的顺序时。

为了帮助用户在扫描时保持与主体的对象的最佳距离,本公开的各方面基于用户从焦点的摄影标准学习的行为而构建。在各种实现方式中,渲染景深效果以鼓励用户向前或向后移动以使其对象保持对焦。这也有助于用户与对象保持一致的距离,这有助于跟踪和姿势生成,从而实现更好的重建。

在3d扫描期间,确定相机和/或扫描设备的最佳扫描距离。在各种实现方式中,模糊用于在视觉上向用户指示相机与扫描距离的接近度。当相机远离扫描距离时,模糊会增加。此外,当相机朝向扫描距离移动时,模糊减少。在扫描距离处或附近,可以不向用户呈现模糊。

在一些实施方案中,将模糊应用于正被扫描的对象的3d表示。例如,可以使用纹理来应用模糊,其被uv映射到3d表示。该3d表示可以对应于例如网格或点云。在一些情况下,纹理被应用于对应于点云的粒子,使得粒子的模糊水平改变以指示与扫描距离的接近度。

在一些实施方案中,模糊可作为后效应应用于显示器。这可以包括多次完全渲染场景以将焦点对齐的传递和失焦的传递混合在一起。然而,将模糊应用于应用到3d表示的纹理可以是更低功率且更不计算密集的,这尤其适合于电池操作的扫描设备。例如,扫描设备可以执行场景跟踪,生成深度图,以及在显示器上渲染对象的3d表示,这导致显着的热增益,并且消耗功率和计算资源。另外,渲染景深效果因此引入超过性能范围的风险,例如在性能范围可能有限的移动设备上。

如上所述,在各种实现方式中,3d表示可以包括渲染到它们在深度图上的位置的粒子。当相机的姿势相对于环境改变时,可以更新渲染的粒子。渲染的粒子可以对应于例如使用任何合适的3d扫描方法产生的点云或网格。

在各种实现方式中,使用每个粒子的纹理来模拟景深效果。可以应用景深效果,使得除了透明度之外不需要场景的额外渲染,其可以在没有景深效果的情况下使用,使得设备性能对效果的影响最小。

在一些实现方式中,提供多个纹理,其中纹理中的不同纹理表示对3d扫描的主体的不同的模糊水平或聚焦于。纹理中的至少一个可以对应于对象的最大焦点,这可能不会导致任何模糊被应用于对象的3d表示。多个纹理可以例如提供在共同的纹理片上,例如纹理子画面片,其中每个纹理对应于相应的子画面。

对于3d表示的每个粒子(在整个说明书中可以互换地使用更广泛的术语视觉元素或区域),系统可以计算从深度图中的粒子到焦距的距离(也称为上文的扫描距离)。该焦距可表示粒子的最佳扫描距离。焦距与相应粒子之间的计算差可以对应于该粒子的模糊或焦点水平。

在一些实现方式中,系统基于所确定的粒子的模糊水平(例如,对应于所述模糊水平的纹理),从表示不同水平的模糊或焦点的纹理中选择至少一个纹理。可以将该纹理应用于粒子,使得渲染粒子以指示模糊水平。例如,系统可以为粒子着色器分配一个值,该值确定渲染哪个子画面或子画面混合。基于粒子与完全焦点的距离,每个粒子可以与其邻居线性插值。

因此,可以渲染每个粒子以在视觉上指示其对应的模糊水平,从而导致景深的错觉。系统可以不时地(例如,以规则间隔周期性地和/或间歇地)重新评估每个粒子的上述模糊水平,例如基于检测到相机与对象的变化距离。此外,可以更新所显示的粒子以产生任何更新的模糊水平。因此,当用户在空间中操纵相机时,可以更新景深效果以反映相机相对于对象的定位的变化(例如,实时地)。

在一些情况下,每个粒子的焦距对应于由被扫描物体限定的焦平面。与焦平面共面的任何粒子可以被认为相对于物体处于完全聚焦。此外,每个粒子的焦距可以对应于焦平面,并且可以对每个粒子使用相同的焦距。

现在转向图1,提供了示出其中可以采用本公开的一些实现方式的操作环境的示例的框图。应该理解的是,这里描述的这个布置和其他布置仅作为示例阐述。除了所示的那些之外或代替所示的那些,还可以使用其他布置和元件(例如,机器、接口、功能、顺序和功能分组等),并且为了清楚起见,可以完全省略一些元件。此外,本文描述的许多元件是功能实体,其可以实现为离散或分布式组件或者与其他组件一起实现,并且可以以任何合适的组合和位置实现。这里描述的由一个或多个实体执行的各种功能可以由硬件、固件和/或软件执行。例如,一些功能可以由执行存储在存储器中的指令的处理器执行。

在未示出的其他组件中,操作环境100包括多个用户设备,诸如用户设备102a和102b到102n,网络104和服务器108。

应该理解,图1中所示的操作环境100是一个合适的操作环境的示例。图1中所示的每个组件可以通过任何类型的计算设备来实现,例如结合例如图12描述的计算设备1200中的一个或多个。这些组件可以经由网络104彼此通信,网络104可以是有线的,无线的或两者。网络104可以包括多个网络或网络的网络,但是以简单的形式示出,以免模糊本公开的各方面。举例来说,网络104可以包括一个或多个广域网(wan)、一个或多个局域网(lan)、一个或多个公共网络(例如因特网)和/或一个或多个专用网络。在网络104包括无线电信网络的情况下,诸如基站、通信塔或甚至接入点(以及其他组件)的组件可以提供无线连接。网络环境在办公室、企业范围的计算机网络、内联网和因特网中很常见。因此,没有详细描述网络104。

应当理解,在本公开的范围内,可以在操作环境100内采用任何数量的用户设备、服务器和其他公开的组件。每个可以包括在分布式环境中协作的单个设备或多个设备。

用户设备102a到102n包括能够由用户操作的任何类型的计算设备。例如,在一些实现方式中,用户设备102a到102n可以是关于本文的图12描述的计算设备的类型。作为示例而非限制,用户设备可以体现为个人计算机(pc)、膝上型计算机、移动设备、智能电话、平板计算机、智能手表、可穿戴计算机、个人数字助理(pda)、mp3播放器、全球定位系统(gps)或设备、视频播放器、手持通信设备、游戏设备或系统、娱乐系统、车辆计算机系统、嵌入式系统控制器、遥控器、电器、消费电子设备、工作站、3d扫描设备,这些描绘设备的任何组合,或任何其他合适的设备。

用户设备可以包括一个或多个处理器,以及一个或多个计算机可读介质。计算机可读介质可包括可由一个或多个处理器执行的计算机可读指令。指令可以由一个或多个应用程序实现,例如图1中所示的应用程序110。为简单起见,应用程序110被称为单个应用程序,但在实践中其功能可以通过一个或多个应用程序来体现。如上所述,其他用户设备可以包括与应用程序110类似的一个或多个应用程序。

应用程序通常可以是能够在执行3d扫描时促进用户设备与服务器108之间的信息交换的任何应用程序。在一些实现方式中,应用程序包括web应用程序,其可以在web浏览器中运行,并且可以至少部分地在环境100的服务器端上托管。此外,或者替代地,应用程序可以包括专用应用程序,例如具有图像处理功能的应用程序。在一些情况下,应用程序被集成到操作系统中(例如,作为一个或多个服务)。因此,本文预期“应用程序”被广义地解释。

服务器108还包括一个或多个处理器,以及一个或多个计算机可读介质。计算机可读介质包括可由一个或多个处理器执行的计算机可读指令。

可以利用服务器(108)和/或用户设备102a到102n的指令的任何组合来实现图2的系统206的一个或多个组件,其在下面进一步详细描述。

参见图2,示出了根据本公开的实施例的焦距指示器系统的框图。焦距指示器系统206(也简称为系统206)包括环境扫描器212、扫描转换器214、焦点水平确定器216、扫描界面渲染器218、焦点效果施加器220和存储设备230。如上所述,系统206的前述组件可以在图1的操作环境100中实现。具体地,这些组件可以集成到用户设备102a和102b到102n以及服务器108的任何合适组合中。对于基于云的实现方式,服务器108上的指令可以实现系统206的一个或多个组件或其部分,用户可以使用应用程序110来与服务器108上实现的功能接合。在一些情况下,可以不需要服务器108。例如,系统206的组件可以完全在用户设备上实现,例如用户设备102a。在这些情况下,系统206可以至少部分地由对应于应用程序110的指令实现。

因此,应当意识到,系统206可以经由布置在分布式环境中的多个设备来提供,这些设备共同提供本文描述的功能。另外,未示出的其他组件可以包括在分布式环境中。另外或替代地,系统206可以至少部分地集成到用户设备中,例如用户设备102a。此外,系统206可以至少部分地体现为云计算服务。

存储设备230可以包括计算机可读介质,并且被配置为存储在此描述的实施例中使用的计算机指令(例如,软件程序指令、例程或服务)、数据和/或模型。在一些实现方式中,存储设备230存储经由系统206的各种组件接收的信息或数据,并根据需要向各种组件提供对该信息或数据的访问。在实现方式中,存储设备230包括数据存储库(或计算机数据存储器)。尽管被描绘为单个组件,但是存储设备230可以体现为一个或多个数据存储库,并且可以至少部分地在云中。此外,存储器230中的信息可以以任何合适的方式分布在一个或多个数据存储库上以便存储(可以在外部托管)。

在所示的实现方式中,存储设备230至少包括模糊纹理232、焦点水平234和扫描的环境特征236,其在下面进一步详细描述。

作为概述,扫描界面218向环境扫描器212提供用户界面,环境扫描器212可操作以经由一个或多个设备(例如图1的一个或多个用户设备102a至102n中的一个或多个)从一个或多个传感器(例如,至少一个rgb深度相机)收集传感器数据。扫描转换器214分析传感器数据并将传感器数据转换成扫描的环境特征236。扫描的环境特征236至少包括3d对象的扫描的几何特征和可选扫描的属性特征(例如,纹理、颜色、声音、运动、动画等)。扫描的几何特征可以对应于对象的3d表示,其中3d表示包括视觉元素,例如粒子。焦点水平确定器216确定视觉元素的焦点水平234,例如基于确定焦距与视觉元素之间的差异。焦点效果施加器220被配置为基于所确定的焦点水平234来渲染焦点效果,例如通过将焦点效果应用于对象的3d表示。

如上所述,扫描界面218向环境扫描器212提供用户界面。扫描界面218可以例如对应于图1的应用程序110,并且包括图形用户界面(gui)或其他合适的界面,以帮助用户经由环境扫描器212捕获物理环境特征。扫描界面218可以例如允许用户通过环境扫描器212选择性地激活或停用环境扫描。

在一些情况下,扫描界面218的gui显示物理环境,例如经由来自一个或多个相机的实况馈送或实时馈送。另外或替代地,可以在gui中显示由环境扫描器212生成并由扫描转换器214转换成扫描的环境特征236的扫描数据。这可以包括显示一个或多个虚拟对象的3d几何形状,其可以使用线框、网格、多边形、体素、粒子和/或扫描几何数据的其他视觉表示在gui中描绘。这还可以可选地包括显示或呈现一个或多个虚拟对象的扫描环境属性,例如纹理、颜色、声音、动画、运动等。在一些情况下,扫描界面218在物理环境的显示上覆盖或呈现这些扫描的环境特征中的一个或多个,例如来自相机的对物理环境的实况馈送。在其他情况下,物理环境可以不必在gui中显示或与这些特征并发地显示。

图3a,3b,3c,3d和3e示出了扫描界面中的扫描的环境特征的示例显示。特别地,这些图每个都描绘了在不同时间点对应于一个或多个现实世界对象(例如,在本示例中包括苹果)的3d表示300。这些图按时间顺序列出,并且可以表示在3d扫描期间可以由扫描界面218显示的内容的快照,其中3d表示300被包括在扫描的环境特征236中。如每幅图所示,3d表示300包括许多粒子,其中特别标记了粒子304a,304b和304c。3d图示300的其他粒子被描绘为类似于图中的粒子304a,304b和304c。

如前所述,与粒子不同,可以采用其他视觉元素,尽管粒子是轻量级表示,这在担忧计算资源的情况下尤其适合。例如,粒子可以对应于扫描转换器214从来自环境扫描器212的扫描数据生成的点云和深度图。在一些实现方式中,点云用在用户设备102a上,并且至少一些扫描数据被流式传输到服务器108,服务器108根据扫描数据生成网格。此外,服务器108可以将网格提供给用户设备102a,例如通过扫描渲染的界面218来显示。应当意识到,许多其他变体是可能的。

可以使用任何合适的方法来扫描物理环境,以便为3d表示生成扫描的环境特征。在一些方法中,用户操纵或物理地定位一个或多个用户设备,例如用户设备102a,以便允许环境扫描器212捕获环境的不同视角。例如,用户可以相对于整个环境和/或相对于用户希望扫描的区域或对应的现实世界对象或主体来调整用户设备(和/或相机传感器)的距离角度、旋转或取向。在某些情况下,在这些各个设备位置处拍摄一个或多个环境快照。例如,用户可以经由扫描界面218选择性地捕获每个环境快照。作为另一个例子,可以经由环境扫描器212捕获环境数据流。

该环境数据由集成到一个或多个用户设备中或在一个或多个用户设备外部的一个或多个传感器提供,所述用户设备可包括相机。用于捕获环境数据的合适传感器的示例包括深度传感器、相机、压力传感器、rgb相机、深度感测相机、压力传感器、ir传感器等的任何组合。如上所述,环境扫描器212管理这些传感器以便于捕获环境数据。

扫描转换器214被配置为将环境数据转换为扫描的环境特征,例如扫描的环境特征236。扫描的环境特征是指真实环境特征的数字表示。这可以包括对应于现实世界几何形状的几何特征,以及对应于环境的真实属性的属性特征。扫描转换器可以分析环境数据并根据捕获环境物理几何形状的传感器数据确定几何特征或几何形状。扫描转换器214还可以确定属性特征,其中每个属性特征可以与一个或多个几何特征相关联(例如,纹理可以被映射到几何形状)。在一些情况下,扫描转换器214在扫描期间或之后在收到更多环境数据时更新一个或多个扫描的环境特征236。这可以包括对环境的3d表示的更新。

已知许多合适的方法用于捕获和数字表示物理环境特征,其中任何一个可适用于本公开的实现方式。可选地,扫描转换器214可以创建3d虚拟对象与扫描的环境特征之间的关联。例如,扫描的环境特征的不同子集可以与不同的虚拟对象相关联。然而,扫描转换器214不需要具体地识别和指定虚拟对象。

在一些实现方式中,扫描转换器214还将环境数据转换为一个或多个扫描描述符,例如扫描描述符238。扫描描述符238对应于扫描的环境特征236,并且总体上描述对应于扫描的环境特征236的环境数据被捕获的条件。例如,扫描描述符可以根据传感器数据来确定,以表示用于捕获环境数据的用户设备或传感器相对于整个环境和/或相对于区域或相应的现实世界对象的一个或多个距离、角度、旋转或取向。作为示例,一组一个或多个扫描描述符可以对应于环境数据的特定快照,和/或环境数据流的一部分。

使用扫描描述符,扫描转换器214可以跟踪用于捕获环境数据的相机和/或用户设备以用于关于环境的扫描。这可以包括使用扫描描述符238来确定物理环境的哪些区域被捕获在扫描的环境特征236中,以及物理环境的哪些区域未被捕获在扫描的环境特征236中,或者哪些区域以其他方式对应于不充分的数据,甚至在哪些区域存在数据(例如,深度信息不足的区域)也是如此。扫描转换器214可以采用的一种合适的方法是实时跟踪。基于光学的跟踪和/或基于惯性测量单元(imu)的设备跟踪可以与图像处理一起被采用以跟踪扫描设备和/或相机的位置。

在一些实现方式中,跟踪可以包括例如六自由度(6dof)设备跟踪。例如,这可以使用同时的定位和映射(slam)来实现。slam通常包括构建和/或更新未知环境的地图,同时跟踪环境内的代理(例如,捕获设备)的位置。一种合适的方法利用捕获设备的单目,立体和/或rgb-d相机来使用orb-slam。应当意识到,可以采用任何合适的设备和/或相机跟踪。

在一些实现方式中,焦点水平确定器216利用扫描描述236中的设备和/或相机跟踪信息来确定由扫描界面渲染器218呈现的3d表示的视觉元素的焦距。如上所述,这可以包括确定焦平面,其中焦距对应于焦平面。可以使用任何合适的方法确定或识别焦距,并且焦距可以表示执行扫描的一个或多个传感器(例如相机)的最佳扫描距离。在一些情况下,基于用于扫描的扫描模式确定焦距。作为一个示例,扫描模式可以是与用户周围的空间(例如房间)的扫描相对应的内向外模式。扫描模式的另一个示例是外向内模式,对应于用户周围空间内的对象的扫描。在一些实施例中,焦距指示器系统206识别和/或确定扫描模式(例如,根据扫描数据)并使得焦距基于扫描模式。应当理解,焦距可以随时间更新,或者可以在整个扫描期间保持固定。在各种实现方式中,焦距对应于被扫描的现实对象。

焦点水平确定器216还基于焦距来确定3d表示的视觉元素的焦点水平。对于每个视觉元素,可以将3d表示中的视觉元素的位置(例如,来自深度图)与焦距进行比较,以确定视觉元素的焦点水平。应当意识到,在一些实现方式中,可以将视觉元素分组在一起并且可以针对该分组确定焦点水平。

参考对象标识符216被配置为基于扫描转换器214(例如,在扫描期间实时地)生成的扫描环境特征来标识一个或多个参考对象。可以从参考对象232中选择或标识参考对象。在一些情况下,参考对象232包括3d虚拟对象的集合、目录或库。这些3d虚拟对象中的一个或多个可以对应于现实世界对象和/或环境的至少一些部分。例如,可以使用3d扫描器生成参考对象,例如通过系统206或另一3d扫描系统。在一些情况下,参考对象是合成的并且可以由用户经由3d建模或绘图程序或其他方式创建。在一些情况下,参考对象232包括一组基元参考对象或形状。基元对象可以指系统可以处理(例如,绘制,存储)的最简单(即“原子”或不可缩减的)几何对象。基元的示例是球形、圆锥形、圆柱形、楔形、圆环形、立方体、盒子、管和角锥体。其他示例包括库存对象,诸如桌子、椅子、面部等。

参考对象标识符216还可以基于扫描转换器214生成的扫描环境特征来确定或标识对象属性234中的一个或多个。对象属性234可以包括纹理、颜色、声音、运动、动画、贴花、3d装配(动画装配)等的库、集合或目录。在一些情况下,系统206从一个或多个参考对象232或其他3d虚拟对象中提取一个或多个对象属性234,并将它们合并到集合中。另外或替代地,对象属性可以与对应的参考对象232相关联地存储和/或映射到对应的参考对象232。例如,对象属性234的不同纹理或其他属性可以被映射到参考对象232中的3d虚拟对象的不同部分。

参照图4描述焦点水平确定器216确定一个或多个视觉元素的焦点水平的示例。图4示出了根据本公开的一些实施方式的焦平面图400。焦平面图400示出了相机402,其可以对应于用于扫描环境的相机,例如集成到用户设备102a中的相机。还示出了由焦点水平确定器216确定或识别的焦距408,如上所述。还示出了焦点对象406(例如,现实世界对象或虚拟对象),并且焦点水平确定器216可以基于焦点对象406来确定焦平面410。图4对应于环境的俯视图,并且焦平面410可以与焦点对象406相交,如图4所示。在一些实现方式中,406是虚拟对象(其可以对应于真实对象),可以附接到相机,并且可以从虚拟对象计算距离。

图4还指示粒子404相对于焦平面410的相对位置,其可以对应于一个或多个粒子304a,304b和304c。焦点水平确定器216可以确定粒子404与距焦平面410相聚的距离414。此外,焦点水平确定器216可以通过将距离414与焦距408进行比较来确定粒子404的焦点水平。这可以包括例如从焦距408减去距离414以确定焦点水平。在一些情况下,通过标准化比较结果来确定焦点水平。例如,结果可以映射到0到1之间的浮点焦点水平值或另一个合适的值范围。范围的一端(例如,0)可以对应于焦平面410处的粒子,其中粒子被认为是完全聚焦的,并且范围的另一端(例如,1)可以对应于聚焦极限,其中粒子被认为完全不聚焦。如图所示,焦点限制可以对应于图4中的聚焦极限420。应注意,在本实现方式中,采用粒子距焦平面的距离的绝对值,使得焦平面410的相对侧上具有等于距离414的距离的粒子可具有与粒子404类似的焦平水平。粒子的焦点水平可以随着距焦平面的距离而线性地缩放,或者根据可以是或可以不是连续函数的任何其他合适的函数来缩放。

因此,焦点水平确定器216可以确定扫描的环境的3d表示的至少一些视觉元素的焦点水平。这些焦点水平可以对应于焦点水平234。焦点效果施加器220可以利用这些焦点水平以便在扫描界面渲染器218中渲染3d表示的景深效果。如上所述,在一些情况下,这可以执行作为基于一个或多个焦点水平的后效。在其他情况下,这可以使用纹理来执行,纹理可以被uv映射到3d表示的视觉元素。

图5示出了根据本公开的实施方式的纹理片的示例,其可以用于在环境的3d表示上渲染景深效果。特别地,图5示出了纹理片500,其可以是焦点效果施加器220所采用的纹理的源,并且可以对应于图2中的模糊纹理232。纹理片500包括纹理510a、纹理510b、纹理510c和纹理510d,它们每个是子画面。每个纹理对应于相应的模糊或焦点水平。配置纹理使得当应用于视觉元素时,相应量的模糊将被引入3d表示中。该模糊量对应于焦点水平。以这种方式,随着焦点水平增加,应用于视觉元素的模糊量也将增加(例如,直到焦点极限)。在本示例中,模糊效果的大小也随着焦点水平而增加。纹理可以被递增地模糊和半透明,从而以适当的坡度而增加粒子的尺寸和透明度。

在一些实现方式中,焦点效果施加器220基于对应于视觉元素的焦点水平为视觉元素选择模糊纹理232中的一个或多个。例如,焦点效果施加器220可以将焦点值映射到基于用于应用景深效果的模糊纹理232的量的值范围中的纹理值。在本示例中,这包括四个纹理,并且范围从对应于纹理510a的第一纹理值(例如,0)到对应于纹理510d的最后纹理值(例如,3)。中间纹理值(例如,1)可以对应于纹理510b,而另一个中间纹理值(例如,2)可以对应于纹理510c。该纹理值可以是浮点值,并且焦点效果施加器220可以将渲染的粒子设置为纹理值。例如,每个粒子可能具有保存粒子值的材质,包括其纹理片和着色器,它告诉系统如何根据该材质的设置来渲染粒子。这样,可以使用相同的着色器更改多个粒子系统的材质,以获得不同的结果。着色器可以指计算指令,材料可以保存使用的变量(包括纹理作为变量)。

焦点效果施加器220可包括着色器(例如,α混合发射着色器),其基于浮点值(例如,0是子画面1,1是子画面2,2是子画面3,3是子画面4)通过子画面(例如,从纹理片中取出)进行线性插值。每个子范围都被钳制,以便它一次只混合两个子画面而不是所有四个子画面的混合。因此,可以基于其焦点水平来渲染每个粒子,从而产生景深效果,其向用户指示移动相机的位置以便实现最佳扫描距离。

在一些情况下,着色器包括用于每个视觉元素的附加子画面,其为视觉元素增加了光晕(bloom)。光晕也可以类似地基于粒子的焦点水平,并且可以包括控件以调整增加到与视觉元素本身分离的视觉元素的光晕量。因此,可能存在相同数量的模糊纹理和光晕纹理。在一些情况下,用户可以经由扫描界面渲染器218,使用gui控件元素(例如滑块或表单字段)设置3d表示的光晕强度(例如,整个粒子集)。每个模糊纹理可以位于纹理片的第一通道(例如,红色通道)中,并且每个光晕子画面可以位于纹理片的第二通道(例如,绿色通道)中。

应当意识到,本文描述的景深效果可以在扫描之外应用,并且通常可以应用于一个或多个3d模型的视觉元素。例如,代替真实相机,用户可以控制虚拟相机,并且可以使用任何合适的标准来设置焦距。此外,焦距不需要参考相机,并且可以参考视频游戏或3d场景中的角色,或3d空间中的一些其他参考位置。在一些情况下,侧卷轴可包括针对其渲染多个图像的前景元素和背景元素,并且可通过在不同模糊纹理之间混合来应用景深效果。此外,除了应用模糊之外或代替应用模糊,在一些变型中,纹理相对于一些其他标准(例如色泽、对比度、色调和/或其他视觉纹理参数)逐渐增强。

图6、7、8、9、10和11描绘了根据本公开的各方面的流程图的示例。现在参考图6,图6是示出根据所公开的实施例的用于模拟景深的方法600的流程图。方法600的每个框和本文描述的其他方法包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,各种功能可以由执行存储在存储器中的指令的处理器执行。该方法还可以体现为存储在计算机存储介质上的计算机可用指令。这些方法可以由独立应用程序、服务或托管服务(独立或与另一托管服务组合)或另一产品的插件来提供,仅举几个例子。

在框630处,方法600包括基于视觉元素距焦平面的距离来确定一个或多个3d模型的视觉元素的焦点水平。在框640处,方法600包括基于所确定的焦点水平来模糊视觉元素。在框650处,方法600包括基于确定对于焦平面的改变来更新焦点水平。在框660处,方法600包括基于更新的焦点水平将模糊更新为视觉元素。

现在参考图7,图7是示出根据所公开的实施例的用于模拟景深的方法700的流程图。在框730处,方法700包括基于扫描环境的相机的位置来确定焦距。在框740处,方法700包括基于所确定的焦距来确定从扫描产生的3d表示的视觉元素的焦点水平。在框750处,方法700包括基于所确定的焦点水平来模糊视觉元素。在块760,方法700包括在扫描期间检测相机位置的改变。如图7所示,可以基于检测到相机位置的改变来重复方法700。

现在参考图8,图8是示出根据所公开的实施例的用于模拟景深的方法800的流程图。在框830处,方法800包括确定一个或多个3d模型的视觉元素的焦点水平。在框840处,方法800包括将每个焦点水平映射到多个模糊纹理中的至少一个纹理,使得由至少一个纹理表示的模糊强度是焦点水平的函数。在框850处,方法800包括针对每个视觉元素,将对应的至少一个纹理应用于视觉元素。

现在参考图9,图9是示出根据所公开的实施例的用于模拟景深的方法900的流程图。在框930处,方法900包括确定相机扫描的最佳扫描距离。在框940处,方法900包括迭代地更新模糊水平以对应于相机与所确定的最佳扫描距离的接近度。在框950处,方法900包括针对每个模糊水平的更新,生成包括以更新的模糊水平描绘的物理环境的3d模型的图像。

现在参考图10,图10是示出根据所公开的实施例的用于模拟景深的方法1000的流程图。在框1030,方法1000包括基于相机与到距主体的最佳扫描距离的第一接近度来确定第一模糊水平。在框1040处,方法1000包括发送包括以第一模糊水平描绘的物理环境的3d模型的第一图像。在框1050,方法1000包括基于相机与最佳扫描距离的第二接近度来确定第二模糊水平。在框1060处,方法1000包括发送包括以第二模糊水平描绘的物理环境的3d模型的第二图像。

现在参考图11,图11是示出根据所公开的实施例的用于模拟景深的方法1100的流程图。在框1130处,方法1100包括确定相机的焦距。在框1140处,方法1100包括基于焦距确定3d模型的视觉元素的模糊水平。在框1150处,方法1000包括在图像中渲染3d模型,其中视觉元素以模糊水平渲染。在框1160处,方法1100包括将渲染的图像发送到显示设备。

参考图12,计算设备1200包括直接或间接耦合以下设备的总线1210:存储器1212,一个或多个处理器1214,一个或多个呈现组件1216,输入/输出(i/o)端口1218,输入/输出组件1220,以及说明性电源1222。总线1210表示可以是一个或多个总线(例如地址总线、数据总线或其组合)。尽管为了清楚起见图12的各个框用线条示出,实际上,描绘各种部件并不是那么清楚,并且比喻地,线条将更准确地是灰色和模糊的。例如,可以将诸如显示设备的呈现组件视为i/o组件。此外,处理器有内存。发明人认识到这是本领域的本质,并重申图12的图表仅说明可结合本发明的一个或多个实施例使用的示例性的计算设备。在诸如“工作站”、“服务器”、“膝上型计算机”、“手持设备”等类别之间没有区别,因为所有这些都在图12的范围内并且是指“计算设备”。

计算设备1200通常包括各种计算机可读介质。计算机可读介质可以是可由计算设备1200访问的任何可用介质,并且包括易失性和非易失性介质,可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性,可移动和不可移动介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储技术、cd-rom、数字通用盘(dvd)或其他光盘存储器、磁带盒、磁带、磁盘存储或其他磁存储设备,或可用于存储所需信息并且可由计算设备1200访问的任何其他介质。计算机存储介质不包括信号本身。通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息传递介质。术语“已调制数据信号”表示以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、rf、红外和其他无线介质的无线介质。上述任何组合也应包括在计算机可读介质的范围内。

存储器1212包括易失性和/或非易失性存储器形式的计算机存储介质。存储器可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备1200包括从诸如存储器1212或i/o组件1220的各种实体读取数据的一个或多个处理器。呈现组件1216向用户或其他设备呈现数据指示。示例性的呈现组件包括显示设备、扬声器、打印组件、振动组件等。

i/o端口1218允许计算设备1200在逻辑上耦合到包括i/o组件1220的其他设备,其中一些可以内置。示例性组件包括麦克风、操纵杆、游戏手柄、卫星天线、扫描器、打印机、无线设备等。i/o组件1220可以提供处理由用户生成的空中手势、语音或其他生理输入的自然用户界面(nui)。在某些情况下,可以将输入发送到适当的网络元件以进行进一步处理。nui可以实现语音识别、触摸和手写笔识别、面部识别、生物识别、屏幕上和屏幕附近的手势识别、空中手势、头部和眼睛跟踪以及与计算设备1200上的显示相关联的触摸识别的任何组合。计算设备1200可以配备有深度相机,例如立体相机系统、红外相机系统、rgb相机系统以及它们的组合,用于手势检测和识别。另外,计算设备1200可以配备有能够检测运动的加速计或陀螺仪。可以将加速计或陀螺仪的输出提供给计算设备1200的显示器以渲染沉浸式增强现实或虚拟现实。

在不脱离以下权利要求的范围的情况下,所描绘的各种组件的许多不同布置以及未示出的组件都是可能的。已经描述了本发明的实施例,其意图是说明性的而不是限制性的。在阅读之后并且因为阅读,替代实施例对于本公开的读者将变得显而易见。在不脱离以下权利要求的范围的情况下,可以完成实现上述内容的替代手段。某些特征和子组合是有用的,并且可以在不参考其他特征和子组合的情况下使用,并且预期在权利要求的范围内。

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