著录项信息
专利名称 | 使用3D深度相机和3D投影仪来提供交互式体验 |
申请号 | CN201210037666.5 | 申请日期 | 2012-02-17 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2012-09-26 | 公开/公告号 | CN102693005A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F3/01 | IPC分类号 | G;0;6;F;3;/;0;1;;;G;0;3;B;3;5;/;0;0查看分类表>
|
申请人 | 微软公司 | 申请人地址 | 美国华盛顿州
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 微软技术许可有限责任公司 | 当前权利人 | 微软技术许可有限责任公司 |
发明人 | H·本克;R·J·J·科斯塔;A·D·威尔逊 |
代理机构 | 上海专利商标事务所有限公司 | 代理人 | 蔡悦 |
摘要
描述了使用深度相机来捕捉放置在交互式表面上或附近的物理对象的深度图像的交互系统。交互系统还使用视频相机来捕捉物理对象的视频图像。交互系统随后可基于深度图像和视频图像来生成3D虚拟对象。交互系统随后使用3D投影仪来将3D虚拟对象以例如与物理对象呈镜像的关系投射回在交互式表面上。用户可随后以任何方式捕捉并操纵3D虚拟对象。此外,用户可基于较小的组件3D虚拟对象来构造复合模型。交互系统使用投影纹理技术来将看上去真实的3D虚拟对象呈现在具有任何几何结构的表面上。
1.一种用于使用交互系统(100)向用户提供交互式体验的方法(1600),包括:
使用深度相机捕捉(1602)放置在表面(102)上或附近的物理对象的深度图像,所述深度图像包括关于所述物理对象的不同部分离所述深度相机的距离的信息;
使用视频相机捕捉(1604)所述物理对象的视频图像,所述深度相机不是所述视频相机,并且其中所述视频图像与所述深度图像同时被捕捉;
基于所述深度图像和所述视频图像生成(1612)作为所述物理对象的对应物的3D虚拟对象;以及
使用3D投影仪将所述3D虚拟对象投影(618)在所述表面(102)上或附近。
2.如权利要求1所述的方法,其特征在于,还包括,在生成所述3D虚拟对象之前:
将所述深度图像划分成头部区域和对象区域;以及
基于所述头部区域估计所述用户的注意方向。
3.如权利要求1所述的方法,其特征在于,所述3D虚拟对象的生成涉及:
基于与所述深度图像相关联的点来标识几何形状;以及
将从视频图像中获取的纹理应用于几何形状以将外观添加到所述几何形状。
4.如权利要求1所述的方法,其特征在于,所述3D虚拟对象的生成涉及:
从用户的视角创建纹理图像;以及
从所述3D投影仪的视角重新渲染所述纹理图像以提供视角经调整的图像形式的3D虚拟对象的表示,
所述创建和重新渲染至少考虑了如所述深度图像中所表示的、所述3D虚拟对象将要投影于其上的场景的几何结构。
5.如权利要求1所述的方法,其特征在于,所述3D虚拟对象的生成涉及使用投影纹理技术来基于对用户的注意方向以及3D投影仪的位置的考虑生成视角经调整的的图像。
6.如权利要求5所述的方法,其特征在于,所述投影纹理技术还考虑如所述深度图像中所表示的、所述3D虚拟对象将要投影于其上的场景的几何结构。
7.如权利要求6所述的方法,其特征在于,所述几何结构是非规则的。
8.一种交互系统(100),包括:
用于将光照投影在表面(102)上的照明源(104);
用于接收由所述照明源(104)发射的光照的深度相机(106)以捕捉深度图像,所述照明源照射所述表面(102)上或附近的至少一个物理对象;
用于捕捉所述至少一个物理对象的视频图像的视频相机(108);
用于基于所述深度图像和所述视频图像生成至少一个3D虚拟对象的虚拟场景生成模块(120);以及
用于将所述至少一个3D虚拟对象投影在所述表面(102)上或附近的立体投影仪(112)。
9.如权利要求8所述的交互系统,其特征在于,还包括用于操纵已被投影在所述表面上或附近的所述至少一个3D虚拟对象的控制设备。
10.一种用于生成虚拟场景的方法,所述方法包括:
接收放置在表面(102)上或附近的物理对象的深度图像;
接收所述物理对象的视频图像;以及
将从所述视频图像中获取的纹理应用于所述深度图像中标识的几何形状以提供视角经调整的图像形式的3D虚拟对象,
其中3D投影仪(112)将所述视角经调整的图像投影到表面(102)上或附近的一位置上。
使用3D深度相机和3D投影仪来提供交互式体验\n技术领域\n[0001] 本发明涉及3D投影技术。\n背景技术\n[0002] 研究界已探寻了各种各样的用于创建并与诸如交互式桌面显示器和墙式显示器之类的对象进行交互的替代技术。然而,已知的技术无法在期望的程度上提供富有表现力、真实的以及身临其境感而同时又易于学习和使用的接口。\n发明内容\n[0003] 在此描述了一种允许用户创建并与3D虚拟对象交互的交互系统。在一个实施方式中,交互系统通过捕捉被置于表面上或靠近表面的物理对象的深度图像来操作。例如,物理对象可包括无生命对象、身体部分、或其组合。交互系统同时捕捉物理对象的视频图像。交互系统随后基于深度图像和视频图像来生成3D虚拟对象。3D虚拟对象是物理对象的虚拟对应物。交互系统随后使用3D投影仪(诸如用于生成立体图像的投影仪)来将3D虚拟对象投影在表面上或靠近表面。\n[0004] 根据另一说明性特征,交互系统可提供包括例如3D虚拟对象的虚拟场景的实时且动态的呈现。在任何时刻,用户可指示交互系统来捕捉物理对象的实例,包括例如无生命对象、身体部分、或其组合。这提供了捕捉的3D虚拟对象。根据另一说明性特征,用户可随后指示交互系统来以任何方式操纵虚拟场景的任何部分,例如通过在任意方向上偏移所捕捉的\n3D虚拟对象、对其进行缩放、和/或对其进行旋转等来操纵所捕捉的3D虚拟对象。\n[0005] 根据另一说明性特征,交互系统可通过基于与深度图像相关联的点来标识几何形状来生成3D虚拟对象。交互系统随后将从视频图像中获取的纹理应用到该几何形状。这为该几何形状添加了外观。\n[0006] 根据另一说明性特征,交互系统可使用投影纹理技术来应用纹理。这一方法可至少考虑以下内容:用户注意的方向;3D投影仪的位置;以及3D虚拟对象将要投影在其上的(如深度图像上所表示的)场景的几何结构。凭借这一技术,交互系统可提供(从用户的视角)看上去自然的3D虚拟对象,即使是在诸如用户杯状的手之类的不规则的实际表面上。\n[0007] 根据另一说明性特征,交互系统可以与3D虚拟对象的对应的物理对象的镜像关系在表面上或靠近表面呈现3D虚拟对象。这允许用户获取物理对象及其虚拟对应物之间的相关性的理解,而不会干扰物理对象。\n[0008] 根据另一说明性特征,用户可应用交互系统来基于3D虚拟对象构建块持续地构造复合模型,而3D虚拟对象构建块最终从一个或多个物理对象导出。\n[0009] 根据另一说明性特征,本地和远程用户可使用各自的交互系统来生成并共享3D虚拟对象。在一个实施方式中,在本地位置呈现的物理对象表现为远程位置处的虚拟对象,反之亦然。\n[0010] 根据另一说明性特征,交互系统可包含物理模拟器。当触发事件发生时,物理模拟器生成模拟效果并将该模拟效果应用于3D虚拟对象。触发事件对应于用户对3D虚拟对象执行的指示性动作(telltale action)。模拟效果定义了3D虚拟对象响应于触发动作的行为。\n[0011] 上面的方法可以显现在各种类型的系统、组件,方法、计算机可读介质、数据结构、产品等等中。\n[0012] 提供本发明内容是为了以简化的形式介绍一些概念,这些概念将在以下具体实施方式中进一步描述。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。\n附图说明\n[0013] 图1显示了说明性交互系统的图示,说明性交互系统响应于放置在交互式表面上的对应物理对象,在交互式表面上呈现3D虚拟对象。\n[0014] 图2是图1的交互系统的一个实施方式的图示。\n[0015] 图3示出了一种使用图1的交互系统的方式。\n[0016] 图4-7显示了使用图1的交互系统以各种方式已经创建的3D虚拟对象(其中使用实线来图示物理对象,而采用虚线来图示3D虚拟对象)。\n[0017] 图8和9演示了图1的交互系统可被用于将3D虚拟对象投影到诸如用户杯状的手之类的不规则的实际表面上的方式。\n[0018] 图10是可被投影到交互式表面上以实现图9的3D虚拟对象的视角经调整的图像的图示(图9中是从用户的立场所观看的)。\n[0019] 图11显示了包含两个交互系统的说明性环境,第一个交互系统由本地用户使用,而第二个交互系统由远程用户使用。\n[0020] 图12和13示出了图11中所示的环境的操作的两个说明性模式。\n[0021] 图14显示了用于从用户的角度使用图1的交互系统的说明性过程。\n[0022] 图15示出用于设置图1的交互系统的说明性过程。\n[0023] 图16示出了用于使用图1的交互系统生成3D虚拟对象的说明性过程。\n[0024] 图17示出了正与交互式表面交互的用户的图示。该图是用来说明交互系统可确定用户的注意方向的方式的载体。\n[0025] 图18显示了用于响应于用户的指令来捕捉并操纵所捕捉的3D虚拟对象的说明性过程。\n[0026] 图19示出了用于应用投影纹理技术的说明性过程。\n[0027] 图20示出了用于生成3D虚拟对象并在本地用户与远程用户之间共享3D虚拟对象的说明性过程。\n[0028] 图21示出了用于响应于用户对3D虚拟对象所执行的触发事件来生成模拟效果的说明性过程。\n[0029] 图22是模拟的变形效果的演示。\n[0030] 图23示出了可以用来实现前面的附图中所示出的特征的任何方面的说明性处理功能。\n[0031] 贯穿本公开和附图使用相同的附图标记来引用相同的组件和特征。100系列标号指的是最初在图1中找到的特征,200系列标号指的是最初在图2中找到的特征,300系列标号指的是最初在图3中找到的特征,以此类推。\n具体实施方式\n[0032] 本发明是按如下方式来组织的。章节A描述了用于允许用户生成3D虚拟对象并与之交互的说明性交互系统。章节B描述了解释章节A的交互系统的操作的说明性方法。章节C描述了可以被用来实现章节A和B中所描述的特征的任何方面的说明性处理功能。\n[0033] 作为正文前的图文,一些附图是在一个或多个结构组件(不同地称为功能、模块、特征、元件等等)的上下文中来描述概念的。附图所示出的各种组件可以通过任何物理的并且有形的机制以任何方式来实现(例如,通过软件、硬件、固件等等,和/或其任何组合)。在一种情况下,附图中所示出的将各种组件分离为不同的单元可以反映在实际实现中使用对应的不同的物理和有形的组件。可另选地,或者另外,附图中所示出的任何单个组件都可以通过多个实际物理组件来实现。另选地或另外地,附图中的任何两个或更多分开组件的描绘可以反映单个实际物理组件所执行的不同功能。进而要讨论的图23提供了关于附图中示出的功能的一个说明性物理实现的附加细节。\n[0034] 其他附图以流程图形式描述了概念。以此形式,某些操作被描述为构成以某一顺序执行的不同的框。这样的实现是说明性的而非限制性的。此处描述的某些框可被分组在一起并在单个操作中执行,某些框可被分成多个组成框,并且某些框可以按与此处所示出的不同的次序来执行(包括以并行方式执行这些框)。流程图所示出的框可以通过任何物理和有形的机制以任何方式来实现(例如,通过软件、硬件、固件等等,和/或其任何组合)。\n[0035] 至于术语,短语“被配置成”包含任何类型的物理和有形的功能可以被构建来执行已标识的操作的任何方式。功能可以被配置成使用,例如,软件、硬件、固件、等等和/或其任何组合来执行操作。\n[0036] 术语“逻辑”包含用于执行任务的任何物理和有形的功能。例如,流程图中示出的每一个操作都对应于用于执行该操作的逻辑组件。操作可以使用,例如,软件、硬件、固件、等等和/或其任何组合来执行。在由计算系统实现时,逻辑组件表示作为计算系统的物理部分的、无论如何实现的电子组件。\n[0037] 下列的说明可以将一个或多个特征标识为“可选”。这种陈述不应该被解释为可以被视为可选的特征的穷尽的说明;也就是说,其他特征也可以被视为可选,虽然在文本中没有显式地标识。类似地,说明可以指出一个或多个特征可以以复数实现(即,通过提供一个以上的特征)。这种陈述不应该被解释为可以重复的特征的详尽的说明。最后,术语“示例性”或“说明性”指的是可能多个实现中的一个实现。\n[0038] A.说明性交换系统\n[0039] 图1显示了用于将3D虚拟对象投影到交互式表面102上的说明性交互系统100。交互系统100基于一个或多个物理对象生成3D虚拟对象,物理对象还被放置在交互式表面102上,物理对象包括任何无生命对象和/或任何身体部分。本章节呈现可实现上述操作的说明性组件的解释。\n[0040] 在一个示例中,交互式表面102包括任何尺寸和形状的桌面。在其它示例中,交互式表面102包括地板表面、墙表面等。在一个示例中,交互式表面102具有平整表面。而在其它示例中,交互式表面102可具有诸如球面之类的非平坦表面。另外,如在以下将详细阐明的,交互系统100可将3D对象投影在被呈现在任何表面之上的不规则形状的对象上。\n[0041] 用户可将物理对象放置在交互式表面102上。此外,交互系统100可将3D虚拟对象投影在交互式表面102上。术语“在……上”在本说明书中可以自由地理解为包括用户仅将物理对象放置在靠近交互式表面102的情况,以及交互系统100将3D虚拟对象放置在靠近交互式表面102的情况。\n[0042] 更一般来说,交互式表面102(或简称“表面”)指的是用户可在其上(或其周围)放置物理对象和/或执行其它工作的任何表面。交互式表面102还指交互系统100在其上(或其周围)投影3D虚拟对象和/或其它信息的任何表面。交互式表面102可包括多个组件表面,多个组件表面可随环境而改变;而且不同的用户场景和应用可致使交互系统100在不同组件表面上显示内容。为了举出一个示例(在下文中将更详细地描述),交互系统100可将3D虚拟对象投影在用户的手上。虽然用户可感知3D虚拟对象就像停留在他或她手中的单个实体一样,然而为了创造这一幻想,交互系统100可实际上将各图像部分投影在用户的手上、手下的桌面上、以及甚至是房间的其它部分上,诸如地板或墙上。-{}-在这一场合,所有这些表面组件包括交互式表面102的一部分。然而,为了便于引用,以下的描述将最常假设交互式表面102包括从表面延伸的经定义的工作空间。\n[0043] 交互系统100包括与交互式表面102交互的设备的集合。例如,交互系统100包括照明源104,该照明源104将任何波长的辐射(诸如红外辐射或近红外辐射)投影到交互式表面\n102的表面。例如,照明源104可将规则或随机的点阵列或其它图案投影到交互式表面102上。虽然图1中只示出了一个照明源104,但是交互系统100可包括两个或更多这样的源。\n[0044] 深度相机106接收(由照明源104发射的)从交互式表面102反射的或以其它方式照亮交互式表面102的辐射。深度相机106处理所接收到的辐射来提供深度图像。深度图像反映了交互式表面102的不同部分(以及交互式表面102上放置的对象)离深度相机106的距离。这些距离进而可随后被用于推断放置在交互式表面102上的物理对象的形状。深度相机\n106可使用任何技术来生成深度图像,诸如众所周知的飞行时间技术、结构化光技术(structured light technique)等。在结构化光技术中,照明源104将点阵列或其它形状投影到表面上;这些形状撞击表面的方式揭示了有关该表面(及其上放置的对象)的深度信息。虽然图1中只示出了一个深度相机106,但是交互系统100可包括两个或更多这样的相机。使用额外的深度相机允许交互系统100生成放置在交互式表面102上的物理对象的几何结构更完整的表示。使用单个照明源104和相关联的单个深度相机106,交互系统100可形成仅对物理对象中面向单个深度相机106的部分的表示。\n[0045] 视频相机108捕捉交互式表面102(及其上放置的对象)的视频图像。例如,视频相机108可形成放置在交互式表面102上的对象的红-绿-蓝(RGB)表示。虽然图1中只示出了一个视频相机108,但是交互系统100可包括两个或更多这样的相机。\n[0046] 在一个示例中,交互系统100可提供不同的且分开的组件来实现照明源104、深度相机106、以及视频相机108。在另一示例中,可采用整合成像单元110来提供全部的这三个组件。在一个示例中,交互系统100可使用KinectTM控制器来实现整合成像单元110。\nTM\nKinect 控制器是由华盛顿州雷蒙德市的微软公司所制造的。\n[0047] 3D投影仪(以下仅称为“投影仪”)112将3D虚拟对象投影在交互式表面102上。投影仪112可使用任何合适的技术来实现,诸如但不限于得克萨斯州圆石市的戴尔公司制造的戴尔1610HD投影仪。在一个实施方式中,投影仪112被配置成投影3D虚拟对象的立体表示。\n这涉及生成和投影用于左眼的左图像和用于右眼的右图像,例如,以由帧率限定的快速交替模式。左图像被相对于右图像轻微地偏移。虽然图1中只示出了一个投影仪112,但是交互系统100可包括两个或更多这样的投影仪。在另一示例中,3D投影仪112可包括将3D虚拟对象的全息表示投影到例如全息屏幕上的投影仪。但是为了方便说明,在剩余的说明书中,将假设3D投影仪112提供3D虚拟对象的立体表示。\n[0048] 如以下将更详细阐述的,投影仪112可以与3D虚拟对象的对应的物理对象的镜像关系来将3D虚拟对象呈现在交互式表面102上,而物理对象仍可留在交互式表面102上。出于以下将阐述的理由,3D虚拟对象的这一放置是有益的。\n[0049] 3D查看设备114允许用户查看由投影仪112投影在交互式表面102上的立体图像。\n例如,在一个实施方式中,3D查看设备114可被实现为立体快门眼镜、偏振眼镜、立体(例如,红-蓝)眼镜等等。在某些示例中,3D查看设备114可与投影仪112的帧率同步(如图1中连接\n3D查看设备114和投影仪112的虚线所指示的),例如使用数字光处理(DLP)链接技术等。\n[0050] 控制输入设备116允许用户指示交互系统100对3D虚拟对象执行各种动作。例如,假设交互式表面102显示单个物理对象和对应的3D虚拟对象。在动态操作模式中,交互系统\n100在交互式表面102上提供实时且动态的3D虚拟对象表示。这意味着,当用户移动物理对象,其镜像的3D虚拟对象将以对应的方式改变。假设现在用户想要形成物理对象在特定时间点的静态快照,这产生捕捉的3D虚拟对象。为此,用户可使用控制输入设备116来启动捕捉命令。顺着静态的捕捉的3D虚拟对象,交互系统100可继续投影3D虚拟对象的实时且动态的表示。控制输入设备116还可包括“撤销”命令,这允许用户有效地移除(例如,删除)在紧靠的前一捕捉操作中所捕捉的任何3D虚拟对象。\n[0051] 在一个示例中,当用户启动捕捉命令时,交互系统100可指示投影仪112瞬间停止投影图像。这使得交互系统100能够在不受投影仪112所投影的图像干扰的情况下捕捉物理对象的快照。\n[0052] 控制输入设备116还允许用户输入各种命令来移除任何所捕捉的3D虚拟对象。例如,用户可与控制输入设备116交互以在X、Y和Z轴中的任意一个上平移3D虚拟对象,和/或绕着任何指定的轴旋转3D虚拟对象。另外,用户可与控制输入设备116交互来改变3D虚拟对象的尺寸(比例)或3D虚拟对象的任何其它属性(诸如,其颜色、透明程度等)。\n[0053] 以上标识的命令是代表性的,而不是穷尽性的。控制输入设备116可提供用于以任何其它方式操纵3D虚拟对象的指令。例如,用户可使用控制输入设备116来指示交互系统\n100裁剪所捕捉的3D场景以分离出3D场景中的组件对象、复制所捕捉的3D虚拟对象等。用户还可将任何3D虚拟对象(包括复合3D虚拟对象)存储在长期档案库中。这允许用户在以后的交互式会话中检索这些对象供投影。\n[0054] 在一个示例中,控制输入设备116可被实施为键输入设备。在这一示例中,控制输入设备116可将不同命令映射到不同的各个键。可选地,或另外地,控制输入设备116可被实施为任何图形用户界面呈现。例如,图形用户界面呈现可呈现3D虚拟对象的骨架图示。用户可使用鼠标设备来拖曳3D虚拟对象的骨架图示,例如通过平移以及旋转它,以导致投影在交互式表面102上的3D虚拟对象的相应移动。可选地,或另外地,控制输入设备116可用感测交互式表面102上或附近的触摸接触或姿势的功能来实现。例如,该功能可检测用一根或多根手指在交互式表面102上做出的接触、用手做出的可表达手势等。功能可将这些感测到的接触和姿势映射到控制3D虚拟对象和/或交互式系统100的其它部分(诸如交互系统100所使用的相机中的任何一个)的各种命令。\n[0055] 处理模块118与以上提到的所有外围设备交互并执行各种类型的处理。处理模块\n118可由在单个位置提供或分布在多个位置的、一个或多个计算机设备以及相关联的数据存储来实现。\n[0056] 处理模块118的主处理引擎是场景生成模块120(为了便于引用,以下简称为“生成模块”)。在每个示例中,生成模块120接收来自深度相机106的深度图像和来自视频相机108的视频图像。基于这一信息,生成模块120生成3D虚拟对象。章节B提供了关于生成模块120执行这一功能的方式的额外信息。生成模块120随后指示投影仪112投影3D虚拟对象。生成模块120还接收并响应于来自控制输入设备116的指令,例如通过捕捉3D虚拟对象、释放之前捕捉的3D虚拟对象、移动3D虚拟对象等等。\n[0057] 校准模块122执行各种用来配置交互系统100的设置任务。例如,用户可与校准模块122交互来将深度相机106和视频相机108校准到一个公共的参考帧。参考帧可对应于与交互式表面102相关联的真实世界坐标系统。相应地,例如,一旦校准后,深度图像所传递的距离对应于真实世界的实际距离。校准模块122可随后将投影仪112校准到相同的公共参考帧。章节B提供关于校准模块122的操作的额外信息。\n[0058] 最后,交互系统100可包括可选的物理模拟器124。物理模拟器124存储描述用户可对3D虚拟对象执行的各种指示性动作(即姿势)的特征的模式(诸如撕扯动作、击打动作、挤压动作、抓取和移动动作等等)。物理模拟器124还将这些动作映射到各个模拟效果。在运作中,物理模拟器124可分析用户在任何给定时间正对3D虚拟对象执行的移动。如果确定用户正执行指示性动作中的一个,则物理模拟器可与生成模块120交互以将对应的模拟效果应用于3D虚拟对象。模拟效果定义了3D虚拟对象响应于用户的触发动作的行为。用户随后观察被投影在交互式表面102上的所得到的经修改的3D虚拟对象中的模拟效果。\n[0059] 在一些示例中,物理模拟器124可应用根据物理定律来建模的模拟效果。这些效果使得3D虚拟对象以与物理对象相同的方式来表现。另外地,或另选地,物理模拟器124可应用采用非现实动力学的模拟效果,以提供例如可能对于游戏环境而言合适的夸张或幻想的效果。\n[0060] 物理模拟器124可至少部分依赖于已知的模拟算法来以现实或非现实的方式操纵\n3D虚拟对象,已知的模拟算法包括考虑刚体动力学、柔体动力学等的模型。关于物理模拟的背景技术信息可在例如以下内容中找到:PALMER Grant所著的《游戏程序员的物理学》(Physics for Game Programmers),第一版,Apress出版社,2005年;EBERLY David H.所著的《游戏物理学》(Game Physics),Morgan Kaufmann出版社,2010年;VAN DEN BERGEN Gino所著的《游戏物理宝典》(Game Physics Pearls),A.K.Peters公司出版,2010年;ERICSON Christer所著的《实时碰撞检测》(Real-Time Collision Detection),Morgan Kaufmann出版社,2005年;WILSON等所著的《将物理学带到表面》(Bringing Physics to the Surface),刊载在《关于用户界面软件和技术的第21届年度ACM研讨会论文集》(Proceedings of the 21st Annual ACM Symposium on User Interface Software and Technology),2008年,第67-76页;WILSON Andrew A所著的《在成像交互式表面上模拟抓取行为》(Simulating Grasping Behavior on an Imaging Interactive Surface),刊载在《关于交互式桌面和表面的ACM国际会议论文集》(Proceedings of the ACM International Conference on Interactive Tabletops and Surfaces),2009年,第125-\n132页;HILLIGES等所著的《无线交互:向交互式桌面添加进一步的深度》(Interactions in the Air:Adding Further Depth to Interactive Tabletops),刊载在《关于用户界面软件和技术的第22届年度ACM研讨会论文集》(Proceedings of the 22nd Annual ACM Symposium on User interface Software and Technology),2009年,第139-148页,等等。\n已知的物理模拟器包括加利福尼亚州的圣克拉拉市的Nvidia公司提供的PhysX;爱尔兰都柏林的Havok提供的Havok物理学;Julio Jerez和Alain Suero制作的牛顿游戏动力学(Newton Game Dynamics),等等。\n[0061] 例如,物理模拟器124可确定用户已用他或她的手指以一定的所感知的力戳向3D虚拟对象(例如,基于用户将他或她的手指施加于3D虚拟对象的速度)。基于牛顿力学原理,物理模拟器124可将与这一力成比例的移动应用到3D虚拟对象。如果用户将该力施加到3D虚拟对象的角落,则物理模拟器124可将旋转运动施加到3D虚拟对象。经建模的摩擦力的量将最终使3D虚拟对象静止。如果3D虚拟对象是柔体而不是硬体,物理模拟器124可将形变施加到3D虚拟对象,该形变与施加于其上的力的量成比例。如果用户用拇指和手指向3D虚拟对象施加捏合手势,物理模拟器124将假设用户想要抓取该3D虚拟对象,等等。章节B提供关于物理模拟器124的操作的额外信息。\n[0062] 虽然没有示出,但除了使用投影仪112或取而代之地,交互系统100可将3D虚拟对象以图形形式呈现在诸如计算机监视器之类的显示设备上。显示设备可位于交互式表面\n102之上或靠近交互式表面102以模拟3D虚拟对象在交互式表面102自身上投影的效果。用户可使用3D查看设备114来查看显示设备上的立体内容,例如使用快门式眼镜或诸如此类。\n或者,显示设备可包括全息屏幕或诸如此类。\n[0063] 前进到图2,该图显示了图1的交互系统的一个特定实现。在一个示例中,交互式表面102具有包括桌面式表面。此处所示出的表面是平整的,然而如上所述,平面可以具有任何轮廓。图2还示出了交互式表面102上方通常延伸出一定距离的工作空间202。工作空间\n202定义了一个区域,在该区域中,用户可将物理对象放置在交互式表面102上或在其附近,并且投影仪112可在该区域上呈现对应的3D虚拟对象。然而,如上所述,对于一些应用和场合,工作空间202可被延伸以包括房间或其它环境内的其它表面部分。\n[0064] 更具体地,在图2的示例中,分界线204划分出交互式表面102的第一部分和第二部分。第一部分是一般专用于接收由用户放置在其中的物理对象的区域,诸如说明性的物理立方体206。第二部分是一般致力于接收由投影仪112投影在其中的3D虚拟对象(诸如说明性的3D虚拟对象208)的区域。说明性的3D虚拟对象208是物理立方体206的虚拟对应物。注意3D虚拟对象208具有两个分量图像(210、212),分别对应于用于左眼和右眼的左图像和右图像。\n[0065] 在一个实现中,交互系统100投影出3D虚拟对象使得它们与它们对应的物理对象的放置成镜像。例如,3D虚拟对象208被放置在交互式表面102上邻近物理立方体206,其中分界线204在两者之间。这一放置方法是有利的,因为这防止了3D虚拟对象干扰用户与物理对象的交互。此外,这一方法容易地将物理对象和它们的虚拟对应物之间的关系传达出来。\n[0066] 然而,交互系统100可适应其它放置策略。在另一种方法中,交互系统100可允许用户将物理对象放置在分界线204上方的区域中,在该区域中,交互系统100也放置3D虚拟对象。另外地,或另选地,交互系统100可将3D虚拟对象呈现在分界线204的下方的区域中,用户通常在该区域中执行他或她的工作。\n[0067] 在图2的实现中,交互系统100将投影仪112直接放在交互式表面102上方。此外,交互系统100将整合成像单元110放置成与交互式表面102成约45度角。如上所述的,整合成像单元110可通过KinectTM控制器来实现,并且包括照明源104、深度相机106和视频相机108。\n如果交互系统100合并两个或更多整合成像单元(未示出),处理模块118可执行适当的处理来合成这些单元所产生的图像以产生整合的图像。这些整合的图像能够可能地捕捉放置在交互式表面102上的物理对象的全部可见侧面。\n[0068] 用户坐在交互式表面102的一侧,从一个角度向下看着交互式表面102。用户佩戴着3D查看设备114,诸如快门式眼镜,以查看由投影仪112投影在交互式表面102上的立体内容。\n[0069] 图3显示了图2中所示的交互系统100的使用方式的又一种更现实的图示。如所提到的,用户坐在交互式表面102的一侧,佩戴着3D查看设备114。用户正在使用他的左手302将物理立方体206放置在分界线204以下的想要的位置和定向的过程中。交互系统100以与物理立方体206呈镜像关系在分界线204的相对侧显示3D虚拟对象208。在这一示例中,3D虚拟对象208的一部分对应于用户的左手302,因为用户还没有放开物理立方体206。在此时,交互系统100可呈现对应于用户的右手306的另一3D虚拟对象304。\n[0070] 图3从与用户自身的视角不同的有利位置图示了3D虚拟对象(208、304)。从这一非用户视角,可能难以明了的搞清楚3D虚拟对象(208、304)。与之相反,从用户自身角度,3D虚拟对象看上去是放置在交互式表面102上的物理对象的可靠副本。\n[0071] 虽然没有示出,交互系统100还可将其它类型的虚拟对象投影在交互式表面102上,诸如任何类型的计算机生成的模型。也就是说,这些虚拟对象可能不是起源自由用户放置在交互式表面102上的物理对象,至少在当前的交互式会话中不是这样。\n[0072] 在某一时刻,用户可决定从物理立方体205放开他的右手302,并且将全部的身体部分(以及其它的无关对象)从相机(106,108)的捕捉视野中移开。随后用户可激活控制输入设备116上的捕捉命令。这导致交互系统100捕捉物理立方体206的对应3D虚拟对象,而不存在用户的右手302和其它不想要的对象。更具体地,图4从用户的视角显示了物理立方体\n206及其对应的3D虚拟对象402的图示。\n[0073] 在捕捉之后,用户可与控制输入设备116交互以便以任何方式操纵3D虚拟对象\n402。假设用户输入命令来将3D虚拟对象402旋转90度。这产生了图5中所示的3D虚拟对像\n402’。用户可实现相同效果的另一种方法是通过将物理立方体206旋转90度,随后再一次启动捕捉命令。这再一次产生了图6中所示的3D虚拟对象402’。\n[0074] 用户还可使用控制输入设备116来构成聚合各组件3D虚拟对象的复合模型,本质上将各组件3D虚拟对象当成构建块。例如,假设用户想要将图5或图6中创建的水平的3D虚拟对象402’放置在图4中创建的垂直的3D虚拟对象402之上。为了这么做,用户可使用控制输入设备116来将水平的3D虚拟对象402’提起并将其放在虚拟3D对象402之上。这一效果在图7中示出。这一类型的连续捕捉和操纵可被用于创建任何复杂度的复合模型。以上所描述的交互式体验在对用户来说容易理解和使用的范围内是用户友好的。这是因为交互式系统\n100为用户提供了一种将新的“构建块”引入虚拟领域的便捷的手段。此外,一经被创建,交互系统100提供易于理解且直接的用于操纵这些构建块图元来构造任何复杂度的复合模型的技术。\n[0075] 在以上的示例中,用户应用控制输入设备116来操纵3D虚拟对象。另外地,或另选地,用户可使用他或她的手(和/或任何类型的工具)来直接操纵3D虚拟对象,就像它们是真实的物理对象一样。例如,用户可物理地“抓取”一个3D虚拟对象并将其放在另一3D虚拟对象上。在章节B中给出更多关于这一操作模式的信息。\n[0076] 在以上的全部示例中,交互系统100已将3D虚拟对象显示在平整的交互式表面\n102、或其它3D虚拟对象之上(如图7所示)。另外,交互系统100可在非规则表面上显示3D虚拟对象。例如,考虑图8和9中显示的情景。在此,用户指示交互系统100在他或她的杯状的手\n802中显示3D虚拟对象902。交互系统100通过如章节B中给出的投影纹理技术来实现这一效果。作为这一技术的结果,用户将感知到3D虚拟对象902,就像它实际位于他或她张开的手中一样。但为了产生这一光学幻像,交互系统100可实际产生并投影图像,该图像与物理对象几乎不具有可辨别的相似性(当从用户视角以外的任何视角来考虑时)。例如,图像可能具有不接合的部分。例如,如图10中所示,交互系统100可在用户的手上显示3D虚拟对象902的底部1002,而在任何其它表面上显示3D虚拟对象902的顶部1004。\n[0077] 前进至图11,此图显示了环境1100,其中本地用户(用户X)运行本地交互系统\n1102,而远程用户(用户Y)运行远程交互系统1104。每个交互系统(1102,1104)可包括图1中所示的整套功能。例如,本地交互系统1102包括本地处理模块1106,而远程交互系统1104包括远程处理模块1108。通信管道1110连接本地交互系统1102和远程交互系统1104。通信管道1110可包括任何用于在两个交互系统(1102,1104)之间交换信息的机制,诸如局域网、广域网(例如因特网)、点对点连接等等,并通过任何协议或协议的组合来监管。尽管未示出,环境1100可容纳与更多交互系统交互的更多用户。此外,图11的环境1100可包括标准视频会议技术,诸如允许用户彼此交互的视听设备。\n[0078] 图11中所示的环境1100可允许本地用户和远程用户出于任何目的生成并共享3D虚拟对象,诸如以协作的方式执行共享任务。环境1100可以不同模式来操作。图12显示了第一操作模式。在该模式中,用户X放置在他的交互式表面1202上的任何物理对象看上去像是用户Y的交互式表面1204上的3D虚拟对象,而用户Y放置在他的交互式表面1204上的任何物理对象看上去像是用户X的交互式表面1202上的3D虚拟对象。例如,用户X已将物理对象\n1206和1208放置在交互式表面1202上;这些对象看上去像是用户Y的交互式表面1204上的\n3D虚拟对象1206’和1208’。用户Y已将物理对象1210和1212放置在交互式表面1204上;这些对象看上去像是用户Y的交互式表面1202上的3D虚拟对象1210’和1212’。\n[0079] 图13显示了第二操作模式。在这一模式中,已经由任何用户创建的所有3D虚拟对象向所有用户表现。例如,用户X已将单个物理对象1302放置在他的交互式表面1304上,而用户Y已将单个物理对象1306放置在他的交互式表面1308上。对应的虚拟对象1302’和\n1306’在两个交互式表面(1304,1308)上都出现。\n[0080] 图12和13中所描述的方法提供了一种方便的机制,通过这一机制,本地用户可将物理对象的形状传送给相距一定距离的远程用户,反之亦然。另外,任何用户可以任何方式操纵3D虚拟对象(例如,通过旋转它),从而产生可被其它用户所观察到的适当的移动。在另一种操作方式中,任何用户可生成身体部分(诸如手或脸)的3D虚拟表示,并且随后将该虚拟表示传送给其它用户。例如,用户可生成对应于指向物理对象的手的3D虚拟对象,并随后将该对象传送给其它用户。这具有虚拟的“伸出”以及向其它用户作出可表达姿势的效果。\n确实,在一个实现中,每个交互系统(1102、1104)处的深度相机可形成每个用户的表示,诸如每个用户的上部躯干。环境1100可随后将每个表示传输给其它用户,例如,使得用户X看到用户Y的栩栩如生的表示,反之亦然。\n[0081] 以上所描述的各实现和各应用是代表性的,而不是穷尽性的。交互系统100可以其它方式来实现和使用。\n[0082] B.说明性过程\n[0083] 图14-22示出了进一步解释图1的交互系统100的一种操作方式的过程及相应示例。由于在章节A已经描述了构成交互系统100的一些部分的操作的基础的原理,在此章节以概述的方式说明某些操作。\n[0084] 从图14开始,该图是从用户的视角表示图1的交互系统100的一种操作方式的概述的过程1400。在框1402,用户将物理对象放置在交互式表面102上,诸如无生命对象、身体部分、或其组合。这使得交互系统100生成并投影对应的3D虚拟对象的实时呈现。在框1404,假定用户在某一时刻指示交互系统100捕捉物理对象。这使得交互系统100产生捕捉的3D虚拟对象,该虚拟对象与进行中的动态呈现一起出现在交互式表面102上。在框1406,假设用户接下来决定操纵被呈现在交互式表面上的任何经捕捉的3D虚拟对象,包括刚刚被捕捉的3D虚拟对象。交互系统100通过以想要的方式操纵3D虚拟对象来作出响应。图14中的循环指示用户可重复框1402-1406中的操作任意次数,以从各个3D虚拟对象构建块中构造复合模型。\n[0085] 图15显示用于设置交互式系统100的一种可能的过程1500。为了开始,在框1504和\n1506中,用户使用任何校准技术来校准图1的深度相机106、视频相机108、以及投影仪112,诸如发明人在不同上下文中描述的技术,即Andrew Wilson等所著的“组合多个深度相机和投影仪用于表面上、上方以及之间的交互”(Combining Multiple Depth Cameras and Projectors for Interactions On,Above and Between Surfaces),刊载在《关于用户界面软件和技术的第22届年度ACM研讨会论文集》(Proceedings of the 23nd Annual ACM Symposium on User interface Software and Technology),第273-282页。\n[0086] 即,在框1502,用户首先与校准模块122交互以校准深度相机106(或多个深度相机,如果采用了)。在一种方法中,用户可通过将具有已知的真实世界位置的反射性参考点放置在交互式表面102上的各种位置来执行这一任务。用户可随后使用交互系统100来创建交互式表面102的深度图像。深度图像将包括参考点的表示。随后校准模块122可确定深度相机106和每个参考点之间的距离。进而,校准可使用这一距离信息来导出深度相机106的位置和定向。这进而允许交互系统100随后将深度图像中的位置信息转换成交互式表面102的真实世界参考帧。可以类似于交互式表面102的相同的真实世界坐标系的方式来校准视频相机108。\n[0087] 在框1504,用户与校准模块122交互来校准投影仪112。在一个方法中,用户可通过在位于深度相机106和视频相机108的视野内、并且在投影仪112的投影视野内的对应的非共面校准位置处添加反射性参考点来执行这一任务。校准模块122可使用对这一场景所拍摄的图像(包含参考点)以及所得到的该场景在交互式表面102上的投影来确定投影仪112的位置和定向。框1502和1504中所执行的校准的最终结果是深度相机106、视频相机108以及投影仪112将被校准到同一真实世界参考帧。\n[0088] 在框1506,交互系统100捕捉交互式表面102的背景深度图像,在交互式表面102上或附近没有放置任何对象(或用户身体部分),使得这类对象不会出现在相机(106,108)的捕捉视野内。交互系统100稍后使用背景图像来减去交互式表面102的静态背景部分,剩下用户已放置在交互式表面102上的物理对象的表示。\n[0089] 图16显示(图1)的生成模块120根据深度图像和视频图像生成3D虚拟对象的过程\n1600。为了便于解释,将假设用户已将单个物理对象放置在交互式表面102上,这将提示生成模块120生成单个3D虚拟对象。在框1602中,生成模块120捕捉物理对象的深度图像,并任选地(基于图15中所执行的校准)将包含在其中的位置信息转换成交互式表面102的真实世界坐标系。在框1604中,生成模块120捕捉物理对象的视频图像,并任选地将包含在其中的位置信息转换成交互式表面102的真实世界坐标系。尽管图16显示框1602和1604是按顺序执行的,但这些操作可同时执行。\n[0090] 在框1606-1610中,生成模块120开始对深度图进行操作。作为开始,在框1606,生成模块120从深度图像中减去(图15的框1506中生成的)背景图像。这具有从深度图像中去除无关背景内容的效果,由此在交互式表面102上强调物理对象。生成模块120还可去除图2中所示的位于工作空间202以外的任何内容,因为这一内容是无意义的。\n[0091] 在框1608,生成模块120将去除了背景的深度图像划分成头部区域和对象区域。这一操作的最终目的是标识(头部区域中)深度图像的可能对应于用户的头部的部分。例如,图17显示了一个示例,其中头部区域对应于区域1702,而对象区域对应于区域1704。头部区域包括用户的手。对象区域包含交互式表面102和放置在交互式表面102上的对象(1706,\n1708,1710)。\n[0092] 在框1610,生成模块120根据头部区域中的深度信息来评估用户的注意方向。可采用不同技术来实现这一目的。在一个例示中,生成模块120可对头部区域的不同快照求平均,以导出出现在头部区域的质心的大致估计,该质心被假定为对应于用户的头部的中心。\n在另一例示中,生成模块120可执行模式识别以在深度图像和/或视频图像中检测用户的头部。在另一例示中,生成模块120可基于深度图像和/或视频图像来执行模式识别以确定各个单独的眼睛所注视的方向。用户注意的方向将在投影纹理技术的应用中发挥作用,如以下将描述的。\n[0093] 操作1612基于深度图像的对象区域中所标识的对象(诸如图17中示出的物理对象\n1708)来构造至少一个3D虚拟对象。一般来说,这一操作需要估计3D虚拟对象的结构。例如,在一个实现中,在框1614中,生成模块120对深度图像中与物理对象相关联的点应用一个网格。从高级别的视角来看,这具有连接深度图像中的点以创建多个三角形的效果。这产生一个网格化的对象。在框1616,生成模块120将从视频图像中获取的纹理应用到所述网格化的对象。这可大致被认为是将视频图像“粘贴”到网格化对象的表面上。图18将提供与可执行这一操作的方式有关的更多细节。但总的来说,这一操作涉及将(与视频纹理相关联的)纹理坐标分配给网格化对象的顶点。\n[0094] 可以其它方式形成3D虚拟对象。例如,在另一技术中,生成模块120可在深度图像中标识几何形状(例如几何结构),而无需首先形成网格化的对象。例如,几何形状可被表示为深度图像中的点的云。生成模块120可随后将纹理应用到该几何形状。\n[0095] 在另一技术中,生成模块120(或某个其它模块)可基于从深度图像和/或视频图像中获取的信息来识别物理对象。例如,用户可能正使用一组已知的可能的物理对象来构建复合模型。在此,生成模块120可被配置成通过将对象的形状与可能的一组物理对象的形状轮廓作比较来识别用户已放置在交互式表面102上的特定物理对象。在另一例示中,用户可将具有规范形状(诸如立方体、角锥体、球体等)的物理对象放置在交互式表面102上。在此,生成模块120可通过其检测到的规范形状来识别物理对象的性质。另一些其它的技术可被用来检测放置在交互式表面102上的物理对象的性质。在这些例示中的任何一个中,生成模块120可构建物理对象的模型(或检索之前构建的模型),而不依赖于深度图像中的潜在的噪声深度数据。或者,可与深度数据相结合地使用模型信息。然而,为了继续上述的具体示例,本说明书的余下部分将假设生成模块120形成网格化的对象。\n[0096] 最后,在框1618,交互系统100将在之前的框中产生的3D虚拟对象投影在交互式表面102上的与对应的物理对象相对的镜像位置。在一个实现中,为了执行这一操作,生成模块120可为每个投影例示生成两个图像,第一个图像对应于左眼,而第二个图像对应于右眼。在实际中,图像的两个版本是相同的,但是被偏移分开了一个细小的量。\n[0097] 在一个示例中,生成模块120基于放置在交互式表面102上的所有物理对象来形成\n3D虚拟对象。如所描述的,物理对象可对应于无生命对象(例如,立方体)、用户的身体部分(例如手)、或它们的组合。在一个实现中,这意味着生成模块120将为放置在交互式表面102上的身体部分生成网格化的对象。在一些情形中,交互系统100投影所有已被生成的3D虚拟对象供用户查看,包括对应于身体部分的3D虚拟对象。但在其它任选的情形中,生成模块\n120可移除虚拟场景中对应于身体部分的任何3D虚拟对象(和/或已被评估为无关的任何其它3D虚拟对象)。生成模块120可执行这一操作,例如通过识别虚拟场景中手状的3D虚拟对象的指示性形状并移除该3D虚拟对象。\n[0098] 在另一例示中,生成模块120例如基于上述类型的形状识别来分析原始深度图像以检测可能对应于身体部分的部分。生成模块120可随后放弃对身体部分的3D虚拟对象的创建。换言之,生成模块120可放弃对身体部分的网格化对象的创建。\n[0099] 图18是示出描述生成模块120对经由控制输入设备116所提供的命令作出反应的一种方式的过程1800。在框1802中,生成模块120接收捕捉物理对象的快照的命令。在框\n1804,生成模块120通过产生所捕捉的3D虚拟对象来响应于该指令。在框1806中,生成模块\n120接收操纵所捕捉的3D虚拟对象的命令。在框1804,生成模块120通过以所指示的方式(例如,通过对其偏移、旋转等)修改所捕捉的3D虚拟对象来响应于该指令。\n[0100] 图19示出了用于使用投影纹理技术来将视频纹理施加到场景的过程。如施加到常规的图像应用(诸如计算机游戏)一样,关于投影纹理的背景信息在若干个源中可用。例如,该技术被描述在由Mark Segal等所著的《使用纹理映射的快速阴影和光照效果》(Fast Shadows and Lighting Effects Using Texture Mapping),刊载在《计算机图像和交互技术的第19届年会论文集》(Proceedings of the 19th Annual Conference on Computer Graphics and Interactive Techniques),1992年,第249-252页.还注意到在Frank Luna所著的《用Direct X 9.0c的3D游戏编程介绍:一种着色器方法》(Introduction to 3D Game Programming with Direct X 9.0c:A Shader Approach),Jones和Bartlett出版社,马塞诸塞州萨德伯里市,2006年,第562-564页,以及Marcus A.Magnor所著的《基于视频的渲染》(Video-based Rendering),A.K.Peters有限公司,马塞诸塞州韦尔斯利市,2005年,第56-57页。\n[0101] 框1902指示生成模块120获取它用来执行投影纹理技术(例如,按照图16中提出的处理)的信息。这一信息包括从深度图像中获取的、3D虚拟对象将要投影在其上的真实场景的几何结构。在一些示例中,这一场景是平整表面。在其它示例中,这一场景具有不规则几何结构,诸如图8中示出的用户的杯状的手802。另一项信息是将要被投影到该场景上的3D虚拟对象的几何结构,诸如将要呈现在图9中的用户的杯状的手802中的3D虚拟对象902。另一项信息对应于用户注意的方向。这一注意信息以图16和17的上下文中描述的方式已从深度图像的头部区域中提取出。另一项信息对应于投影仪112的位置和定向。\n[0102] 在框1904中,生成模块120从用户的视角创建纹理图像。这一纹理图像包含从用户的视角看到的对象,例如部分基于用户的头部位置。在框1906,生成模块从投影仪112的视角重新渲染(框1904中所提供的)纹理图像,例如,通过将在框1904中获取的用户视角的纹理图像看作投影仪112在真实场景中将要投影的图像。这产生视角经调整的图像形式的3D虚拟对象的表示。图10示出了呈现在用户的手上(对于一些部分)以及交互式表面102上(对于其它部分)的这一视角经调整的图像。从用户之外的任何人的视角,该视角经调整的图像可能不是有意义的。但从用户的视角,该视角经调整的图像创建了图9中所示的3D虚拟对象\n902的外观。以上述方法,生成模块120以一种新颖的方式将投影纹理技术应用于混合环境,其中至少一些3D虚拟对象是从物理对象导出的,并且其中3D虚拟对象被投影到物理环境中。\n[0103] 图19中示出的过程在动态的基础上进行重复。这使得生成模块120能够动态地响应于用户头部位置的改变、用于接收3D虚拟对象的场景的改变、物理对象的改变、和/或其它改变。从用户的视角,3D虚拟对象在所有这些改变中保持其视觉完整性。\n[0104] 图20示出两个或更多参与者(本地用户和远程用户)可使用图1的技术来在协作式环境中在一定距离上共享3D虚拟对象的过程2000。在框2002,本地交互系统(系统X)基于呈现在本地位置处的至少一个物理对象(任选地包括身体部分)来生成至少一个虚拟对象。在框2004,远程交互系统(系统Y)基于呈现在远程位置处的至少一个物理对象(任选地包括身体部分)来生成至少一个虚拟对象。\n[0105] 在框2006,环境可将对应的3D虚拟对象呈现给本地用户和远程用户。对于不同操作模式,这一功能可以不同方式来实现。在第一模式,表现给本地用户的3D虚拟对象对应于呈现在远程位置处的物理对象,反之亦然。在第二模式中,表现给每个用户的虚拟对象对应于同时呈现在本地和远程位置处的物理对象。\n[0106] 图21示出描述将模拟效果应用于3D虚拟对象的一种方式的过程2100。在框2102,生成模块120可以上述方式(例如,参考图16)生成虚拟场景。该虚拟场景可包括引起一个或多个其它对象(“目标对象”)中的改变的一个或多个对象(“操纵对象”)。在下文中,假设只有一个操纵对象对单个目标对象起作用。例如,操纵对象可对应于用户的手(或其它身体部分)和/或由用户操纵的工具等等。操纵对象可被表示为3D虚拟对象、原始深度信息、或其它信息。目标对象可对应于3D虚拟对象。目标对象可源于之前捕捉的物理对象。另外地,或另选地,目标对象可不具有物理对应物;例如,生成模块120可基于所存储的模块来生成目标对象。\n[0107] 在框2104中,物理模拟器124检查操纵对象(如用户所控制的)与目标对象交互的方式。基于这一分析,物理模拟器124确定用户是否执行了(或正执行)对应于指示性诱导效果动作。即,这一动作是将调用对应的模拟效果的生成和应用的动作。在一个示例中,物理模拟器124可通过将关于用户动作的信息与描述数据存储2106中所提供的指示性动作的模式库进行比较来执行这一操作。代表性的指示性动作可包括抓取和移动动作、击打或戳的动作、扭转动作、弯曲动作、挤压动作、剪切动作、投掷动作、轻拂动作、撕扯动作等等。另外,或另选地,用户还可明确告知物理模拟器他或她将要执行什么类型的动作。\n[0108] 在框2108,如果检测到了这一指示性动作,物理模拟器124生成合适的模拟效果,并将该效果应用于目标对象。再者,模拟效果可取决于已被执行的相应动作而变化。对于击打动作,物理模拟器124使目标对象发生形变(例如,为了模拟在对应的物理对象中的凹陷)。对于剪切动作,物理模拟器124可将目标对象分割成两部分。对于抓取和移动动作,物理模拟器124以合适的方式移动目标对象。如章节A中所述,在框2108中,物理模拟器124可依靠任何模拟算法来执行操作。当效果被应用后,生成模块120指示投影仪112将所得到的经修改的目标对象投影在交互式表面102上,其中使效果对用户可见。\n[0109] 图22显示交互系统100可应用的模拟效果的一个示例。在这一示例中,用户通过挤压虚拟变形的瓶子来执行指示性姿势。在此,对应于用户的手的3D虚拟对象构成了操纵对象;对应于瓶子的3D虚拟对象代表了目标对象。响应于检测这一指示性动作,物理模拟器\n124可以图22所指示的方式使虚拟瓶子的侧面发生形变。这是与用户可预期的当挤压真实的可变形的瓶子时将实现的物理反应成镜像的物理效果。但物理模拟器124还可应用非真实的、幻想的效果。\n[0110] C.代表性处理功能\n[0111] 图23阐明可被用于实现上述功能的任何方面的说明性电子数据处理功能2300(在此也称为计算功能)。例如,处理功能2300可被用于实现图1的交互系统100的任何方面,诸如处理模块118。在一种情况下,处理功能2300可对应于包括一个或多个处理设备的任何类型的计算设备。在任何情况下,电子数据处理功能2300都表示一个或多个物理和有形的处理机制。\n[0112] 处理功能2300可包括诸如RAM 2302和ROM 2304之类的易失性和非易失性存储器,以及一个或多个处理设备2306(例如,一个或多个CPU,和/或一个或多个GPU等等)。处理功能2300还可任选地包括各种媒体设备2308,诸如硬盘模块、光盘模块等。处理功能2300可在处理设备2306执行由存储器(例如RAM 2302、ROM 2304或其它)维护的指令时执行以上所标识的各种操作。\n[0113] 更一般地,指令和其它信息可以存储在任何计算机可读介质2310上,计算机可读介质包括但不限于静态存储器存储设备、磁存储设备、光存储设备等。术语计算机可读介质还涵盖多个存储设备。在任何情况下,计算机可读介质2310都表示某种形式的物理和有形的实体。\n[0114] 处理功能2300还包括用于接收各种输入(通过输入模块2314),以及用于提供各种输出(通过输出模块)的输入/输出模块2312。一个特定输出机制可包括呈现模块2316及相关联的图形用户界面(GUI)2318。处理功能2300还可包括用于经由一个或多个通信管道\n2322与其它设备交换数据的一个或多个网络接口2320。一条或多条通信总线2324将上述组件通信地耦合在一起。\n[0115] 通信管道2322可以以任何方式来实现,例如,通过局域网、广域网(例如,因特网)等等,或其任何组合。通信管道2322可包括可由任何协议或协议的组合管理的硬连线的链路、无线链路、路由器、网关功能、名称服务器等等的任何组合。\n[0116] 尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。
法律信息
- 2017-03-01
- 2015-08-19
专利申请权的转移
登记生效日: 2015.07.27
申请人由微软公司变更为微软技术许可有限责任公司
地址由美国华盛顿州变更为美国华盛顿州
- 2014-03-19
实质审查的生效
IPC(主分类): G06F 3/01
专利申请号: 201210037666.5
申请日: 2012.02.17
- 2012-09-26
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2008-06-11
|
2006-01-09
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |