用于增强现实的系统和方法
1.相关申请的交叉引用
2.本技术要求于2019年7月26日提交的美国临时专利申请号62/879,408、2019年7月31日提交的美国临时专利申请号62/881,355和2019年9月12日提交的美国临时专利申请号62/899,678的优先权,其全部内容通过引用并入在此。
技术领域
3.本发明涉及增强现实观看器和增强现实可视化方法。
背景技术:4.现代计算技术已经发展到紧凑且持续连接的可穿戴计算系统和组件的水平,其可用于向用户提供丰富的增强现实体验的感知。
5.增强现实观看器通常具有多个传感器,包括被定位以感测真实世界对象位置的相机。存储设备保存包括虚拟对象的数据集。存储设备上的显示模块可由处理器执行以确定相对于真实世界对象的位置的虚拟对象的期望显示。存储设备上的数据流生成器可由处理器执行以基于数据和期望显示生成数据流。光生成器(诸如激光生成器)被连接到处理器以接收数据流并基于数据流生成光。显示设备被定位以接收所生成的光并向用户显示该光。光创建虚拟对象的渲染,该渲染对于用户可见并根据期望显示被渲染。
技术实现要素:6.本发明提供了一种增强现实观看器,其包括:至少一个传感器,其被定位以感测多个真实世界对象中的至少一个真实世界对象的位置;存储设备;存储设备上的数据集,数据集包括虚拟对象;被连接到存储设备的处理器;显示模块,其位于存储设备上并且可由处理器执行以确定相对于真实世界对象中的至少一个真实世界对象的位置的虚拟对象的期望显示;数据流生成器,其位于存储设备上并且可由处理器执行以基于数据和期望显示生成数据流;光生成器,其被连接到处理器以接收数据流并基于数据流生成光;以及显示设备,其被定位以接收所生成的光并向用户显示光,其中,该光创建虚拟对象的渲染,该渲染对于用户可见并且根据期望显示被渲染。
7.增强现实观看器还可以包括:虚拟对象是游动生命对象,还包括游动子例程,其位于存储设备上并且可由处理器执行以相对于真实世界对象移动游动生命对象。
8.增强现实观看器还可以包括数据,该数据包括多个游动生命对象,其中,游动子例程可由处理器执行以将多个游动生命对象相对于真实世界对象并且相对于彼此移动。
9.增强现实观看器还可以包括至少一个传感器,传感器感测由用户发起的波浪运动,增强现实观看器还包括波浪运动例程,其位于存储设备上并且由处理器执行以响应于由至少一个传感器感测的波浪运动移动游动生命对象。
10.增强现实观看器还可以包括在目标区中发起波浪运动,并且游动对象被移出目标区。
11.增强现实观看器还可以包括感测波浪运动的至少一个传感器,传感器是检测用户的手部的图像的相机。
12.增强现实观看器可以还包括手持控制器,其中,传感器被安装到用户的手部持有的手持控制器。
13.增强现实观看器可以还包括检索代理,其位于存储设备上并且能够用处理器执行以从资源检索传入信息,将传入信息与游动生命对象相对于真实世界对象的位置相关联,并将传入信息从游动生命对象的位置传送到用户。
14.增强现实观看器可以还包括检索代理,检索代理激活光源以通过显示器显示传入信息。
15.增强现实观看器可以还包括扬声器,其中,检索代理激活扬声器以使得用户听到传入信息。
16.增强现实观看器可以还包括传输代理,其位于存储设备上并且能够用处理器执行以用至少一个传感器感测用户的指令,用至少一个传感器感测在游动生命对象相对于真实世界对象的位置处由用户指向游动生命对象的指令,基于指令确定传出通信和资源,以及将传出通信传送到资源。
17.增强现实观看器可以还包括感测通信的至少一个传感器,传感器是适合于从用户接收语音指令的麦克风。
18.增强现实观看器可以还包括传输代理,其位于存储设备上并且能够用处理器执行以用至少一个传感器感测用户的指令,用至少一个传感器感测在游动生命对象相对于真实世界对象的位置处由用户指向游动生命对象的指令,基于指令确定传出通信和iot设备,并将传出通信传送到iot设备以操作iot设备。
19.增强现实观看器可以还包括感测通信的至少一个传感器,传感器是适合于从用户接收语音指令的麦克风。
20.增强现实观看器可以还包括人工智能系统,其位于存储设备上并且能够用处理器执行以使用至少一个传感器感测用户的动作,执行涉及响应于用户的动作的虚拟对象的例程,将例程与动作关联为人工智能集群,确定在感测到动作的第一时间存在的参数,将在第一时间存在的参数与人工智能集群相关联,在第二时间感测参数,确定在第二时间的参数是否与在第一时间的参数相同,以及如果确定在第二时间的参数与在第一时间的参数相同,则执行例程。
21.增强现实观看器可以还包括:至少一个传感器,其包括眼睛跟踪相机,其中,动作是由用户发起的波浪运动,并且参数是使用眼睛跟踪相机对用户进行眼睛跟踪而确定的注视方向。
22.增强现实观看器可以还包括动作,该动作是在目标区中发起的波浪运动,并且游动对象被移出目标区。
23.增强现实观看器可以还包括:至少一个传感器,其包括眼睛跟踪相机,该眼睛跟踪相机被定位以感测用户的注视方向,还包括注视方向运动例程,其位于存储设备上并且可由处理器执行以响应于由眼睛跟踪相机感测的注视方向移动游动生命对象。
24.增强现实观看器可以还包括存在多个游动生命对象并且游动子例程可由处理器执行以相对于真实世界对象移动多个游动生命对象,还包括个人助理模块,其位于存储设
备上并且能够用处理器执行以从多个游动生命对象之中选择个人助理游动生命对象,并将游动生命对象中的除个人助理游动生命对象之外的至少一个游动生命对象与个人助理游动生命对象一起移动。
25.增强现实观看器可以还包括:游动生命对象是第一类型的鱼,还包括运动模块,其位于存储设备上并且能够用处理器执行以采用第一来回方式连接(articulate)鱼的身体。
26.增强现实观看器可以还包括:运动模块,其能够用处理器执行以采用与第一来回方式不同的第二来回方式连接第二类型的鱼的身体。
27.增强现实观看器可以还包括:运动模块,其能够用处理器执行以用至少一个传感器感测用户的手部的缓慢手部运动,响应于手部运动的缓慢速度,以低速采用第一来回方式连接鱼的身体,用至少一个传感器感测用户的手部的快速手部运动,以及响应于手部运动的快速速度,以高速采用第一来回方式连接鱼的身体。
28.增强现实观看器还可以包括:运动模块,其能够用处理器执行以当手部以缓慢速度移动时移动第一条鱼以靠近手部,并且当手部以快速速度移动时移动第一条鱼以逃离手部。
29.增强现实观看器可以还包括表面提取例程,其位于存储设备上并且能够用处理器执行以识别真实世界对象中的表面。
30.增强现实观看器可以还包括该表面是墙壁或天花板的二维表面。
31.增强现实观看器可以还包括深度创建模块,其位于存储设备上并且能够用处理器执行,以根据期望显示,在三维空间中在表面的与用户相对的一侧向用户显示虚拟对象,并且表面在用户与虚拟对象之间。
32.增强现实观看器可以还包括:深度创建模块,其能够用处理器执行以向用户显示表面中的舷窗,通过该舷窗,虚拟对象对于用户可见。
33.增强现实观看器可以还包括虚拟对象是三维虚拟对象。
34.增强现实观看器可以还包括远景放置例程,其位于存储设备上并且能够用处理器执行以捕获包括真实世界对象的空间,将空间表示为真实世界网格,从真实世界网格中收集竖直平面和水平平面,通过相对于真实世界网格的位置、定向、尺寸和距地板的高度,过滤平面,生成蓝图,该蓝图包括在选择位置处的远景中的所有内容和门户框架,以及在真实世界网格材料的遮挡材料中切出洞,以便用户可以通过门户看到远景。
35.增强现实观看器可以还包括顶点动画例程,其位于存储设备上并且能够用处理器执行以存储表示虚拟对象的虚拟对象网格,将纹理与虚拟对象网格相关联,以及操纵虚拟对象网格以引起纹理和虚拟对象在用户视图中的运动。
36.增强现实观看器可以还包括操纵虚拟对象网格以连接虚拟对象。
37.增强现实观看器可以还包括相同的虚拟对象网格被多次使用以引起纹理和虚拟对象的运动。
38.增强现实观看器可以还包括虚拟对象是珊瑚集群。
39.增强现实观看器可以还包括珊瑚集群产生器,其位于存储设备上并且能够用处理器执行以确定体积,在体积内从体积的最大高度到体积的地板的随机点处执行线追踪,确定有效位置是否由线追踪识别,如果有效位置被识别,则响应于识别,执行箱追踪以测试在尝试不同尺度和旋转并针对每个放置生成分数时随机集群是否适合而不与世界网格重叠,
确定具有分数中的最高分数的选择放置,以及将珊瑚集群生成到具有最高分数的放置。
40.增强现实观看器可以还包括远景放置例程,其位于存储设备上并且能够用处理器执行以放置远景,其中,体积由远景约束。
41.增强现实观看器可以还包括珊瑚产生器系统,其位于存储设备上并且能够用处理器执行以在存储设备上存储至少第一类型的第一珊瑚元素,以及跟军包括第一珊瑚元素的多个珊瑚元素构建珊瑚集群。
42.增强现实观看器可以还包括:珊瑚产生器系统,其可由处理器执行以从多个第一珊瑚元素构建珊瑚集群。
43.增强现实观看器可以还包括:珊瑚产生器系统能够用处理器执行以在存储设备上存储至少第二类型的第二珊瑚元素,其中,多个珊瑚元素包括第二珊瑚元素。
44.增强现实观看器还可以包括:珊瑚产生器系统,其能够用处理器执行以确定珊瑚集群设置,其中,处理器根据设置构建珊瑚集群。
45.增强现实观看器可以还包括:设置是检测到的可用空间,并且基于可用空间来选择多个珊瑚元素。
46.增强现实观看器可以还包括:珊瑚产生器系统,其能够用处理器执行以模拟环境光,其中,设置是环境光,其中,基于环境光选择多个珊瑚元素,以及其中,基于环境光选择珊瑚元素的定向。
47.增强现实观看器可以还包括:珊瑚产生器系统,其包括存储设备上具有多个珊瑚集群设置的数据表,其中,珊瑚产生器系统根据多个珊瑚集群设置来构建珊瑚集群。
48.增强现实观看器可以还包括:珊瑚集群设置,其包括以下中的至少一个:种群;物种最大计数;产生类型;以及基于高度的百分比。
49.增强现实观看器可以还包括:珊瑚产生器系统,其包括顶点爬行和光线投射算法,其用于检查放置可行性、生长和将有效点缓存到文件。
50.增强现实观看器可以还包括:珊瑚产生器系统,其包括运行时珊瑚静态网格循环,该运行时珊瑚静态网格循环首先计算阴影通道,然后创建所有珊瑚集群的实例化静态网格。
51.增强现实观看器可以还包括:珊瑚产生器系统,其包括基于碰撞的排除配置,其将箱碰撞器放置在某些物种不应生长的地方。
52.增强现实观看器可以还包括:当用户观看真实世界对象中的至少一个真实世界对象时,显示设备向用户显示所生成的光。
53.增强现实观看器可以还包括:显示设备是透视显示设备,该透视显示设备允许来自至少一个真实世界对象的光到达用户的眼睛。
54.增强现实观看器可以还包括:头戴式结构,其适合于被佩戴在用户的头部上,其中,显示设备被安装到头戴式结构,并且至少一个传感器是适合于感测由于用户的头部的运动而引起的显示设备的运动的一种传感器;以及定位调整模块,其可由处理器执行,以调整虚拟对象的位置,使得在用户的视野内,虚拟对象相对于至少一个真实世界对象保持静止。
55.本发明还提供了一种增强现实可视化方法,包括:用至少一个传感器感测多个真实世界对象中的至少一个真实世界对象的位置,在存储设备上存储包括虚拟对象的数据,
用处理器确定相对于真实世界对象中的至少一个真实世界对象的位置的虚拟对象的期望显示,由处理器基于数据和期望显示生成数据流,用光生成器基于数据流生成光,并且用显示设备向用户显示所生成的光,其中光创建虚拟对象的渲染,该渲染对于用户可见并且根据期望显示被渲染。
56.该方法可以还包括:虚拟对象是游动生命对象,还包括用处理器相对于真实世界对象移动游动生命对象。
57.该方法可以还包括:数据包括多个游动生命对象,还包括用处理器将多个游动生命对象相对于真实世界对象并且相对于彼此移动。
58.该方法可以还包括由至少一个传感器感测由用户发起的波浪运动,并且由处理器响应于由至少一个传感器感测的波浪运动移动游动生命对象。
59.该方法可以还包括在目标区中发起波浪运动,并且游动对象被移出目标区。
60.该方法可以还包括:感测波浪运动的至少一个传感器是检测用户的手部的图像的相机。
61.该方法可以还包括:将传感器安装到用户的手部持有的手持控制器。
62.该方法可以还包括:用处理器从资源中检索传入信息,用处理器将传入信息与游动生命对象相对于真实世界对象的位置相关联,以及用处理器将传入信息从游动生命对象的位置传送到用户。
63.该方法可以还包括向用户显示传入信息。
64.该方法可以还包括用户听到传入信息。
65.该方法可以还包括:用至少一个传感器感测用户的指令,用至少一个传感器感测在游动生命对象相对于真实世界对象的位置处由用户指向游动生命对象的指令,用处理器基于指令确定传出通信和资源,以及用处理器将传出通信传送到资源。
66.该方法可以还包括用户说出指令。
67.该方法可以还包括:用至少一个传感器感测用户的指令,用至少一个传感器感测在游动生命对象相对于真实世界对象的位置处由用户指向游动生命对象的指令,用处理器基于指令确定传出通信和iot设备,以及用处理器将传出通信传送到iot设备以操作iot设备。
68.该方法可以还包括用户说出指令。
69.该方法可以还包括:用至少一个传感器感测用户的动作,用处理器执行涉及虚拟对象的例程,该例程响应于用户的动作,用处理器将例程与动作关联为人工智能集群,用至少一个处理器确定在感测到动作的第一时间存在的参数,用处理器将在第一时间存在的参数与人工智能集群相关联,用至少一个传感器在第二时间感测参数,用处理器确定在第二时间的参数是否与在第一时间的参数相同,以及如果确定在第二时间的参数与在第一时间的参数相同,则执行例程。
70.该方法可以还包括:动作是用户发起的波浪运动,并且参数是用户的注视方向。
71.该方法可以还包括:该动作是在目标区中发起的波浪运动,并且游动对象被移出目标区。
72.该方法可以还包括:由至少一个传感器感测用户的注视方向,并且由处理器响应于注视方向移动游动生命对象。
73.该方法可以还包括:用处理器相对于真实世界对象移动多个游动生命对象,用处理器从多个游动生命对象之中选择个人助理游动生命对象,以及用处理器将游动生命对象中的除了个人助理游动生命对象之外的至少一个游动生命对象与个人助理游动生命对象一起移动。
74.该方法可以还包括:游动生命对象是第一类型的鱼,还包括用处理器采用第一来回方式连接鱼的身体。
75.该方法可以还包括:用处理器采用与第一来回方式不同的第二来回方式连接第二类型的鱼的身体。
76.该方法可以还包括:用至少一个传感器感测用户的手部的缓慢手部运动,用处理器响应于手部运动的缓慢速度,以低速采用第一来回方式连接鱼的身体,用至少一个传感器感测用户的手部的快速手部运动,以及用处理器响应于手部运动的快速速度,以高速采用第一来回方式连接鱼的身体。
77.该方法可以还包括:当手部以缓慢速度移动时,用处理器移动第一条鱼以靠近手部;以及当手部以快速速度移动时,用处理器移动第一条鱼以逃离手部。
78.该方法可以还包括:用处理器识别真实世界对象中的表面。
79.该方法可以还包括:该表面是墙壁或天花板的二维表面。
80.该方法可以还包括:处理器根据期望显示,在三维空间中在表面的与用户相对的一侧向用户显示虚拟对象,并且表面在用户与虚拟对象之间。
81.该方法可以还包括:处理器向用户显示表面中的舷窗,通过该舷窗,虚拟对象对于用户可见。
82.该方法可以还包括:虚拟对象是三维虚拟对象。
83.该方法可以还包括:用处理器捕获包括真实世界对象的空间,用处理器将空间表示为真实世界网格,用处理器从真实世界网格中收集竖直平面和水平平面,用处理器通过相对于真实世界网格的位置、定向、尺寸和距地板的高度,过滤平面,用处理器生成蓝图,该蓝图包括在选择位置处的远景中的所有内容和门户框架,以及用处理器在真实世界网格材料的遮挡材料中切出洞,以便用户可以通过门户看到远景。
84.该方法可以还包括:用处理器存储表示虚拟对象的虚拟对象网格,用处理器将纹理与虚拟对象网格相关联,以及用处理器操纵虚拟对象网格以引起纹理和虚拟对象在用户的视野中的运动。
85.该方法可以还包括操纵虚拟对象网格以连接虚拟对象。
86.该方法可以还包括相同的虚拟对象网格被多次使用以引起纹理和虚拟对象的运动。
87.该方法可以还包括:虚拟对象是珊瑚集群。
88.该方法可以还包括:用处理器放置珊瑚集群,包括:确定体积,在体积内从体积的最大高度到体积的地板的随机点处执行线追踪,确定有效位置是否由线追踪识别,如果有效位置被识别,则响应于识别,执行箱追踪以测试在尝试不同尺度和旋转并针对每个放置生成分数时随机集群是否适合而不与世界网格重叠,确定具有分数中的最高分数的选择放置,以及将珊瑚集群生成到具有最高分数的放置。
89.该方法可以还包括放置远景,其中,体积由远景约束。
90.该方法可以还包括:在存储设备上存储至少第一类型的第一珊瑚元素;以及用处理器从包括第一珊瑚元素的多个珊瑚元素构建珊瑚集群。
91.该方法可以还包括:处理器从多个第一珊瑚元素构建珊瑚集群。
92.该方法可以还包括:在存储设备上存储至少第二类型的第二珊瑚元素,其中,多个珊瑚元素包括第二珊瑚元素。
93.该方法可以还包括用处理器确定珊瑚集群设置,其中,处理器根据该设置构建珊瑚集群。
94.该方法可以还包括:设置为检测到的可用空间,并且基于可用空间选择多个珊瑚元素。
95.该方法可以还包括用处理器模拟环境光,其中,设置是环境光,其中,基于环境光选择多个珊瑚元素,并且其中,基于环境光选择珊瑚元素的定向。
96.该方法可以还包括在存储设备上存储具有多个珊瑚集群设置的数据表,其中,处理器根据多个珊瑚集群设置来构建珊瑚集群。
97.该方法可以还包括:珊瑚集群设置包括以下中的至少一个:种群;物种最大计数;产生类型;以及基于高度的百分比。
98.该方法可以还包括:用处理器执行顶点爬行和光线投射算法,其用于检查放置可行性、生长和将有效点缓存到文件。
99.该方法可以还包括:用处理器执行运行时珊瑚静态网格循环,该循环首先计算阴影通道,然后创建所有珊瑚集群的实例化静态网格。
100.该方法可以还包括:用处理器执行基于碰撞的排除配置,以将箱碰撞器放置在某些物种不应生长的地方。
101.该方法:当用户观看真实世界对象中的至少一个真实世界对象时,显示设备向用户显示所生成的光。
102.该方法:显示设备是透视显示设备,该透视显示设备允许来自至少一个真实世界对象的光到达用户的眼睛。
103.该方法可以还包括:用至少一个传感器感测由于用户的头部的运动而引起的显示设备的运动;以及调整虚拟对象的位置,使得在用户的视野内,虚拟对象相对于至少一个真实世界对象保持静止。
附图说明
104.本发明通过以下附图中的示例进一步描述,在附图中:
105.图1是根据本发明的实施例的增强现实系统的透视图;
106.图2是示出增强现实系统的基本操作的流程图;
107.图3是示出此类网格的创建的深度图;
108.图4是示出“远景”体积的映射的深度图;
109.图5a至5e是示出客厅场景的深度图,其中,用户可以体验动态虚拟水生环境;
110.图6是被配置为帮助用户选择用于框架(framing)/门户(portal)观看进入“远景(vista)”的大小和位置的视图;
111.图7是示出可以选择“远景”的各个方面的视图;
112.图8a至8c是具有创建的虚拟框架或门户的深度图,使得他可以虚拟地“看到”外面进入海洋“远景”体积中;
113.图9a至图9d是示出用户与各种游动对象之间的交互的深度图;
114.图10a和10b是各种虚拟角色的循环行为的数学模型的视图;
115.图11a是可用于相对于用户移动鱼的配置的屏幕截图;
116.图11b是帮助在小丑鱼中将动画骨架(skeletal)资产(asset)转换为动画顶点网格的顶点动画的流程图;
117.图12a至12d是用于帮助在其它虚拟对象中将动画骨架资产转换为动画顶点网格的顶点动画的深度图;
118.图13是示出未知环境中的不可预测性的幻灯片;
119.图14是“代码蓝图”的屏幕截图;
120.图15是示出用于布置和纹理化各种元素的界面的各方面的屏幕截图;
121.图16是包括较小珊瑚元素的组件的珊瑚集群的深度图;
122.图17a是潜水员头盔的高保真模型的深度图;
123.图17b和17c是示出潜水员头盔的更有效的可再现输出的深度图;
124.图18是核心(core)未点亮(unlit)着色器网络配置的屏幕截图;
125.图19和20是示出系统可以被配置为利用房间或环境的几何形状的深度图;
126.图21是示出在房间的网格内的定位的位置的深度图,该位置可以是用于诸如珊瑚集群的元素的合适的锚(anchor);
127.图22a至-24是示出在用户与增强现实元素之间有趣的、可信的交互的创建的屏幕截图;
128.图25是用于可视化各种计算线程的利用率与时间的关系的工具的屏幕截图;
129.图26是学习的各个方面的幻灯片;
130.图27是动画管线的顺序图;
131.图28是人工智能(“ai”)寻路解决方案的屏幕截图;
132.图29是示出将动画数据烘焙(bake)成纹理的深度图;
133.图30a至30h是各种珊瑚集群配置的深度图;
134.图31a和31b是珊瑚产生器对象系统的深度图;以及
135.图32是各种指令例程和模块的框图。
具体实施方式
136.图1示出增强现实系统,其包括增强现实观看器2、手持控制器4和互连的辅助计算或控制器组件6,该互连的辅助计算或控制器组件6可以被配置为作为腰包等佩戴在用户上。这些组件中的每一个组件可以经由有线或无线通信配置彼此可操作地耦合10、12、14、16、17、18并耦合到其它被连接的资源8(诸如云计算或云存储资源)。被连接的资源8可以是由ieee 802.11、蓝牙rtm和其它连接标准和配置指定的那些。例如,如在美国专利申请序列号14/555,585、14/690,401、14/331,218、15/481,255、62/627,155、62/518,539、16/229,532、16/155,564、15/413,284、16/020,541、62,702,322、62/206,765、15,597,694、16/221,065、15/968,673和62/682,788中所述,其中的每一个都通过引用并入在此,描述了此类组
件的各个方面,诸如两个描绘的光学元件20的各种实施例,用户可以通过该光学元件20连同可以由相关联的系统组件产生的视觉组件一起看到它们周围的世界,以获得增强的现实体验。该系统还可以包括被配置为提供与用户周围环境有关的信息的各种传感器,包括相机类型传感器,诸如单色、彩色/rgb、和/或热成像组件22、24、26、深度相机传感器28、和声音传感器30(诸如麦克风)。
137.增强现实观看器2包括可以佩戴在用户的头部上的头戴式结构25。增强现实观看器2和控制器组件6各自具有处理器和连接到处理器的存储设备。数据和可执行代码被存储在存储设备上并且可由处理器执行。增强现实观看器2包括用作光生成器的投影仪。增强现实观看器2的处理器向投影仪发送指令并且投影仪生成光,通常是激光,该光通过显示器传输到用户的眼睛。
138.图1因此描述了增强现实观看器,该增强现实观看器包括:至少一个传感器,其被定位以感测多个真实世界对象中的至少一个真实世界对象的位置;存储设备;存储设备上的数据集,数据集包括虚拟对象;被连接到存储设备的处理器;显示模块,其位于存储设备上并且可由处理器执行以确定相对于真实世界对象中的至少一个真实世界对象的位置的虚拟对象的期望显示;数据流生成器,其位于存储设备上并且可由处理器执行以基于数据和期望显示生成数据流;光生成器,其被连接到处理器以接收数据流并基于数据流生成光;以及显示设备,其被定位以接收所生成的光并向用户显示该光,其中,该光创建虚拟对象的渲染,该渲染对于用户可见并根据期望显示被渲染。
139.当用户观看真实世界对象中的至少一个真实世界对象时,显示设备可以向用户显示所生成的光。显示设备可以是,该透视显示设备允许来自至少一个真实世界对象的光到达用户的眼睛。
140.增强现实观看器可以包括:头戴式结构,其适合于被佩戴在用户的头部上,其中,显示设备被安装到头戴式结构并且至少一个传感器是适合于感测由于用户的头部的运动而引起的显示设备的运动的一种传感器;以及定位调整模块,其可由处理器执行,以调整虚拟对象的位置,使得在用户的视野内,虚拟对象相对于至少一个真实世界对象保持静止。
141.以下定义将有助于理解在此使用的各种术语:
142.1.虚拟对象
143.1.1.栩栩如生的对象(游动迁移的对象,显示连接的特征,或具有移动的表面纹理的对象)
144.1.1.1.游动分类(从一个位置移动到另一个位置的对象)
145.1.1.1.1.游动生命
146.1.1.1.1.1.海獭
147.1.1.1.1.2.鱼
148.1.1.1.1.3.海龟
149.1.1.1.2.非游动生命
150.1.1.1.2.1.海葵
151.1.1.1.2.2.珊瑚
152.1.1.2.连接分类
153.1.1.2.1.连接生命(具有弯曲身体的对象)
154.1.1.2.1.1.海獭
155.1.1.2.1.2.鱼
156.1.1.2.1.3.海龟
157.1.1.2.1.4.海葵
158.1.1.2.2.非连接生命(具有不弯曲身体的对象)
159.1.1.2.2.1.珊瑚
160.1.1.3.纹理分类(表面特征)
161.1.1.3.1.流体纹理生命(具有移动表面的对象)
162.1.1.3.1.1.鱼
163.1.1.3.1.2.海獭
164.1.1.3.1.3.海葵
165.1.1.3.2.固定纹理生命(具有静态表面的对象)
166.1.1.3.2.1.海龟
167.1.1.3.2.2.珊瑚
168.1.2.无生命对象(不会游动地迁移,不显示连接的特征,并且没有移动的表面纹理的对象)
169.1.2.1.岩石
170.1.2.2.沙子
171.2.现实生活对象
172.2.1.墙壁
173.2.2.天花板
174.2.3.家具
175.参考图2,在各种实施例中,用户可以佩戴诸如图1中描绘的增强现实系统,关于此类系统在32处操作时与用户周围的三维世界的交互,该增强现实系统也可以被称为“空间计算”系统。此类系统可以包括例如头戴式显示器组件2,并且可以以如上所述以及在前述通过参考资料并入的环境感测能力为特征,诸如各种类型的相机,其可以被配置为映射用户周围的环境,或创建此类环境的“网格”56。图3示出此类网格的创建。描绘了形成给定房间的网格的点云,其中示出墙壁或周边42、52以及椅子46、48、50、54和位于中央的办公桌44。如图2中进一步所示,在34处,空间计算系统可以被配置为映射或网格化用户周围的环境,如上面参考图3所述。
176.在36处,空间计算系统可以被配置为运行或操作软件,诸如可从佛罗里达州plantation的magic leap,inc.以商品名undersea(tm)获得的软件。软件可以被配置为利用房间的映射或网格来帮助用户选择(诸如采用图1的手持控制器4,或经由手势或系统和软件可用的其它可用控制选项)虚拟图像元素的位置,诸如水生珊瑚生长、水生场景特征(即诸如沉船残骸的组件)以及到一个或多个虚拟“远景”元素的虚拟连接框架(framing)或门户(porting),其中呈现虚拟水生环境的虚拟扩展被感知为延伸超出房间的实际几何形状(即,所呈现的水生环境的相对大的、基本上球形的扩展体积延伸超出用户占据的大致矩形棱柱的实际房间)。在各种实施例中,该系统可以被配置为自动定位可能的位置,诸如用户实际房间内的竖直或水平平面位置,用于珊瑚、海藻森林等的可能放置,由用户选择或放
置确认。在各种实施例中,系统可被配置为创建(或“产生”)组、或群(school)或鱼,其可被配置为在虚拟水生环境中游来游去。在各种实施例中,此类鱼可以被配置为被用户的某些手势或输入所吸引,而在其它实施例中,它们可以被配置为逃避用户的运动,就好像它们害怕用户的运动一样。鱼可以被配置为随时间推移生长和/或繁殖,并且可以被配置为自发地或以给定的时间间隔改变为不同的物种,使得水生环境对于用户来说保持及时变化。
177.在38处,系统可以被配置为操作软件以向用户呈现水生环境。水生环境优选以全彩色和三维呈现给用户,使得用户将用户周围的环境感知为水生环境,诸如鱼缸,在“远景”的情况下,其不仅围绕用户的直接环境/房间延伸,而且还通过虚拟连接成框架或门户并延伸进入用户的直接环境/房间之外的扩展的远景呈现。时域特征(即随着时间改变位置和/或几何形状的特征)可以被配置为使得元素模拟自然运动(即,诸如虚拟呈现的水生植物的缓慢水生运动、虚拟呈现的水生珊瑚元素的缓慢生长,和/或虚拟呈现的鱼或鱼群或群体的创建、运动或生长)。该系统可以被配置为为“远景”的可能的门户或框架位置建议合适的位置和大小,诸如用户占用的实际房间内的竖直墙中心的位置和大小,这会给用户对虚拟水生环境的虚拟“远景”扩展的广阔视野。在图4中,用户房间的网格56以某种球形“远景”体积58的映射示出,该体积58可操作地且虚拟地流体耦合到呈现给用户的实际房间。还示出了用于将在“远景”呈现中呈现给用户的各种鱼的预定路径60。
178.在图2中,在40处,空间计算系统可以被配置为使得用户可以与某些呈现的特征交互。例如,当用户尝试观看实际桌面上的实际真实世界计算机监控器时,用户可以使用用户手势或手持控制器4挥动所呈现的鱼群让开,推开可能会影响计算机监控器或其它实际元素(诸如实际桌面)的清晰视图的虚拟植物和/或珊瑚生长。该系统可以配置有人工智能能力,该能力被配置为例如通过使用此类手势或控制器指令学习到,用户通常不喜欢影响他对此类元素(即,诸如计算机监控器或实际桌面)的清晰视图的虚拟元素,或者例如房间实际门口附近的虚拟鱼群等,并且通常“学习”根据特定用户的此类特定需求对虚拟元素进行建模。换句话说,系统可以被配置为将鱼、植物、珊瑚和其它呈现的虚拟特征保持在用户似乎不想要它们的地方之外。此外,通过考虑网格56的几何形状,系统优选地被配置为不使虚拟元素与房间的实际元素发生碰撞。
179.图2因此描述了虚拟对象可以是游动生命对象,并且增强现实观看器可以还包括游动子例程,其位于存储设备上并且可由处理器执行以相对于真实世界对象移动游动生命对象。数据可以包括多个游动生命对象,其中,游动子例程可由处理器执行以将多个游动生命对象相对于真实世界对象并且相对于彼此移动。
180.该至少一个传感器可以感测由用户发起的波浪运动,并且增强现实观看器可以还包括波浪运动例程,其位于存储设备上并且由处理器执行以响应于由至少一个传感器感测的波浪运动移动游动生命对象。可以在目标区中发起波浪运动,并且游动对象可以被移出目标区。感测波浪运动的至少一个传感器可以是检测用户的手部的图像的相机。
181.增强现实观看器可以还包括手持控制器,其中,传感器被安装到用户手部持有的手持控制器。
182.参考图5a-5e,示出了用户可视场景的各种实施例,其特征在于实际房间元素62以及各种虚拟元素,诸如珊瑚群组或集群64、68、74、78、82、83、海藻植物或森林72、鱼或其它动物或鱼群或它们的群体66、70、76、77、80等。参考图5a,示出了客厅场景,其中佩戴空间计
算系统2的用户1能够体验以位于中心的虚拟珊瑚集群64以及相对大且动态的虚拟鱼66为特征的动态虚拟水生环境。参考图5b,示出了客厅场景,其中佩戴空间计算系统2的另一用户1能够体验以不同的位于中心的虚拟珊瑚集群64以及相对较大且动态的虚拟鱼66为特征的动态虚拟水生环境。参考图5c,用户可以能够观看具有虚拟水生元素(诸如动态海龟70和动态海藻森林72)的客厅场景。参考图5d,用户可以能够观看具有虚拟水生元素(诸如动态鱼群76、珊瑚集群74和包括下沉式潜水员头盔、珊瑚集群和动态水生植物的中心特征78)的客厅场景。参考图5e,用户可以能够观看具有虚拟水生元素(诸如动态水母80和包括珊瑚集群和动态水生植物的中心特征82)的客厅场景。对于可视配置中的每一个可视配置,系统可以被配置为允许用户不仅调整着色主题、照明和阴影,而且还调整照明放置。
183.参考图6,如以上参考图2所指出的,系统可以被配置为帮助用户选择用于成框架/门户观看进入“远景”的大小和位置。向用户呈现示例成框架/门户配置84、86、88、90、92、94,其取决于框架或门户被虚拟“耦合”的实际环境特征的大小和几何形状来由用户进行选择。例如,如果用户实际办公室中竖直墙壁的空白空间可用但相对较小,则系统可被配置为建议放置相对较小且几何上相对有效的框架或门户。
184.参考图7,在选择框架或门户配置的情况下,如参考图6所述,可以选择“远景”的各个方面,诸如着色、照明、体积、虚拟特征(诸如岩石和鱼)等,从而产生许多可定制的选择,诸如七个样本96、98、100、102、104、106、108。
185.参考图8a-8c,示出了“远景”房间扩展配置的各种视图。参考图8a,佩戴诸如图1中所示的空间计算系统的头戴式组件2的用户1被示出在他的客厅62中,其中创建了虚拟框架或门户110,使得他可以虚拟地“看到”外面进入海洋“远景”体积112,在所描绘的说明性示例中,该海洋“远景”体积112以虚拟动态鲨鱼114为特征。参考图8b,佩戴诸如图1中所示的空间计算系统的头戴式组件2的用户1被示出在她的客厅62中,其中创建了虚拟框架或门户88,使得他可以虚拟地“看到”外面进入海洋“远景”体积112,在所描绘的说明性示例中,该海洋“远景”体积112以多种虚拟元素(诸如岩石、鱼、植物和珊瑚)为特征。参考图8c,以动态虚拟元素(诸如海獭116、鱼群118、和海藻森林120)为特征的客厅62场景的说明性示例与“远景”一起显示,在该情况下,“远景”通过实际房间的天花板向上延伸,为用户提供他的客厅在虚拟水生环境中相对较深的感觉。
186.增强现实观看器可以包括深度创建模块,其位于存储设备上并且能够用处理器执行以根据期望显示在三维空间中在表面的与用户相对的一侧向用户显示虚拟对象,并且表面在用户与虚拟对象之间。深度创建模块可由处理器执行以向用户显示表面中的舷窗(porthole),通过该舷窗,虚拟对象对于用户可见。虚拟对象可以是三维虚拟对象。
187.参考图9a-9c,如参考图2所指出的,系统可以被配置为使得用户可以与各种虚拟特征交互,并且使得系统可以“学习”根据用户的需要来配置虚拟呈现。例如,在各种实施例中,如果用户坐在相对空的房间中,房间有一扇门和一张中央放置的办公桌,办公桌上面存在计算机监控器,用户的空间计算系统可以帮助用户定位珊瑚、水生植物和房间内的其它特征,并且系统可以配置为“产生”或生成鱼以在房间内动态来回游动。当用户坐在他或她的办公桌前并尝试使用位于用户头部前面几英尺处的计算机监控器时,如果有太多的鱼开始在用户的头部与用户的计算机显示器之间游动,用户可以用手放弃它们(或使用另一系统可识别的手势),或使用其它控件(诸如手持控制器4)向系统指示用户不希望鱼正好在他
的头部与监控器之间。在各种实施例中,系统可以被配置为使用人工智能或学习特征来学习到用户似乎不希望有太多鱼在用户的头部与计算机监控器之间的那个体积内游动,并且系统可以被配置为通常保持虚拟对象(诸如鱼、植物或珊瑚)在该体积外。类似地,系统可能学习到用户通常不喜欢在他最喜欢的窗户或门上生长的太多虚拟植物或珊瑚,并且可能会相应地响应学习到不把它们虚拟地放在那里。
188.返回参考图1,该系统可以通过云或其它连接配置可操作地耦合到附加资源,诸如其它计算系统。例如,空间计算系统可以与具有访问用户日历、短信或物联网(“iot”)连接资源(诸如网络摄像头、门锁、灯或车库门)的移动电话或膝上型计算机可操作地且安全地耦合。现在再次参考图9a-9d,可以在各种实施例中利用此类资源连接性,使得可以利用虚拟呈现的多个虚拟特征之一来帮助用户;换句话说,在所示的配置中,虚拟海獭116可以被配置为通常像野生海獭一样动态地游动,直到用户需要或期望一些交互,在这种情况下,海獭可以类似于连接到相关资源的个人助手运作。例如,在图9a的实施例中,海獭116用显示的气泡消息122告诉用户用户的午餐会议在12分钟后。该系统可以被配置成使得用户可以利用简单的手势,诸如用食指轻弹,来清除消息并使水獭116返回到自然动态。参考图9b,系统可以被配置为使得水獭角色116提供消息气泡通知124,即连接的日历资源指示用户被双重预订;如果用户愿意,水獭可以利用连接的资源自动发送消息以请求重新安排约会之一。
189.因此,增强现实观看器可以包括传输代理,其位于存储设备上并且能够用处理器执行以用至少一个传感器感测用户的指令,用至少一个传感器感测在游动生命对象相对于真实世界对象的位置处由用户指向游动生命对象的指令,基于指令确定传出通信和资源,以及将传出通信传送到资源。
190.感测通信的至少一个传感器可以是适合于从用户接收语音指令的麦克风。
191.参考图9c,系统可以被配置为使得水獭角色116提供消息气泡通知126,即连接的网络摄像头和消息传递(和或亚马逊网络/web)资源正在指示用户已经收到包裹;此类系统可以被进一步配置为允许用户打开iot车库门或其它启用iot的接入点,以通过请求水獭角色116的这一点来促进交付,诸如通过空间计算系统的语音识别工具,其利用相互耦合的麦克风传感器30。
192.因此,增强现实观看器可以包括传输代理,其位于存储设备上并且能够用处理器执行以用至少一个传感器感测用户的指令,用至少一个传感器感测在游动生命对象相对于真实世界对象的位置处由用户指向游动生命对象的指令,基于指令确定传出通信和iot设备,以及将传出通信传送到iot设备以操作iot设备。
193.感测通信的至少一个传感器可以是适合于从用户接收语音指令的麦克风。
194.参考图9d,该系统可以被配置为使用人工智能和/或学习类型的工具来分析与用户相关的眼睛注视信息,该信息可以由耦合到用户空间计算系统的头戴式组件2的面向内相机捕获。此类分析可能产生基于系统的临时结论,例如,用户可能正尝试注视墙壁上的某些东西,诸如张贴的实际艺术品,其目前实际上被海藻森林或其它虚拟特征挡住,并且对于具有个人助理功能的水獭角色116来说,询问用户他是否希望海藻森林的右侧部分移动一点以允许更好地观看实际墙壁可能是有益的,如图9d中所示的消息气泡128中所建议的。
195.增强现实观看器可以包括人工智能系统,其位于存储设备上并且能够用处理器执行以使用至少一个传感器感测用户的动作,执行涉及虚拟对象的例程,该例程响应于用户
的动作,将例程与动作关联为人工智能集群,确定在感测到动作的第一时间存在的参数,将在第一时间存在的参数与人工智能集群相关联,在第二时间感测参数,确定在第二时间的参数是否与在第一时间的参数相同,以及如果确定在第二时间的参数与在第一时间的参数相同,则执行例程。
196.该至少一个传感器可以包括眼睛跟踪相机,其中,动作是由用户发起的波浪运动,并且参数是如通过使用眼睛跟踪相机对用户进行眼睛跟踪而确定的注视方向。该动作可以是在目标区中发起的波浪运动,并且游动对象被移出目标区。
197.该至少一个传感器可以包括被定位以感测用户的注视方向的眼睛跟踪相机,并且增强现实观看器可以还包括注视方向运动例程,其位于存储设备上并且可由处理器执行以响应于由眼睛跟踪相机感测的注视方向移动游动生命对象。
198.可能存在多个游动生命对象并且游动子例程可以由处理器执行以相对于真实世界对象移动多个游动生命对象,并且增强现实观看器还可以包括个人助理模块,其位于存储设备上并且能够用处理器执行以在多个游动生命对象之中选择个人助理游动生命对象,以及将游动生命对象中的除个人助理游动生命对象之外的至少一个游动生命对象与个人助理游动生命对象一起移动。
199.参考图10a和10b,在各种实施例中,数学模型可以为各种虚拟角色(诸如各种类型的鱼)的某些循环行为提供基础,并且各种类型的鱼可以具有各种类型的一般运动模式,该运动模式可以用来产生对用户来说看起来很自然的运动。如上所述,在各种实施例中,鱼可以具有它们可以被配置为返回的几种状态,例如好像它们害怕一样逃跑,好像它们感兴趣、饥饿或好奇一样跟随,并且这些行为可能与诸如用户手部运动的速度的因素相关联。例如,某些手势或缓慢的手部运动可能与喂食或友好/安全相关联,使得一条或多条鱼可能被配置为跟随或靠近用户的手部,而快速运动或某些手势可能与潜在危险或恐惧相关联,在这种情况下,一条或多条鱼可能会被配置为逃离附近区域。
200.游动生命对象可以是第一类型的鱼,并且增强现实观看器还可以包括运动模块,其位于存储设备上并且能够用处理器执行以采用第一来回方式连接(articulate)鱼的身体。运动模块能够用处理器执行以采用与第一来回方式不同的第二来回方式连接第二类型的鱼的身体。运动模块能够用处理器执行以用至少一个传感器感测用户的手部的缓慢手部运动,以及响应于手部运动的缓慢速度,以低速采用第一来回方式连接鱼的身体,用至少一个传感器感测用户的手部的快速手部运动,以及响应于手部运动的快速速度,以高速采用第一来回方式连接鱼的身体。运动模块能够用处理器执行以当手部以缓慢速度移动时移动第一条鱼以靠近手部,以及当手部以快速速度移动时移动第一条鱼以逃离手部。
201.参考图11a,从空间计算资源的角度来看,各种配置可用于相对于用户可信且有效地移动鱼。例如,可以利用正弦波输出来调制鱼的尾部和身体相对于彼此的位置。不是为每个身体部分设定关键帧(keyframing)数据,该系统可以被配置为一般改变角色的速度,而无需精确数学计算其每个组件的速度(velocity),并且在各种实施例中可以为其它组件添加辅助(secondary)运动。因此,该系统可以被配置成使得可以产生分组或整体(bulk)运动而不必手动为每个部分设置动画。图11a示出一系列动画的流程图,诸如“急左转”,然后“急右转”,该动画可以被馈入基本运动引擎。转换代码可以帮助状态之间(诸如在正常的直线平静游泳运动与逃跑状态之间)的转换。插值或动画混合和类型转换可用于平滑转换。
202.参考图11b,可以利用顶点动画来帮助使用纹理图将动画骨架(skeletal)资产(asset)转换为动画顶点网格,该纹理图诸如来自以商品名houdini(rtm)获得的商标/创作工具的那些,其可以被利用处理可能被带入交互式开发环境(诸如虚幻引擎(rtm))的数据,以整合到要呈现给用户的体验中。此类技术可用于帮助使诸如鱼的资产显着更有效地向用户显示,并且从计算资源的角度来看也更有效。换句话说,基本的三维模型可能与“绑定(rig)”相关联;然后系统可以被配置成使得在运行时不需要使用绑定,因为可以直接对3维模型/网格的相关顶点进行动画处理。例如,代替操纵鱼模型下面的骨架类型框架,可以移动鱼本身或其网格(即,操纵网格与绑定)。此类效率允许减少计算开销,并且可能有助于例如同时渲染更多鱼。
203.参考图12a-12d,类似的方法可用于不仅有效地使诸如示为130的小丑鱼资产的鱼动画化,而且使诸如海葵132的特征动画化。图12a-12d示出小丑鱼130和海葵132以自然复制的各种级别从网格元素(如图12a中所示)到全彩色动画元素(如图12d中所示)的视图。如果每个海葵触手都必须单独动画化而不是如上所述,则所需的计算资源将显著增加。
204.增强现实观看器可以包括顶点动画例程,其位于存储设备上并且能够用处理器执行以存储表示虚拟对象的虚拟对象网格,将纹理与虚拟对象网格相关联,以及操纵虚拟对象网格以引起纹理和虚拟对象在用户的视野中的运动。可以操纵虚拟对象网格以连接虚拟对象。相同的虚拟对象网格可被多次使用以引起纹理和虚拟对象的运动。
205.参考图13,在混合现实或空间计算环境中,存在很多不可预测性,因为系统被配置为相对于用户周围的环境动态地反应。在系统扫描房间之前,无法提前明确用户周围的房间在几何上会是什么样子。在为各种特征设置动画方面存在一些独特的挑战,主要是因为通常优选范围非常广泛的可信行为。例如,在完全虚拟的现实系统中,每块岩石、每条鱼和每一个珊瑚都可以被仔细地放置在三个维度中,以很好地协同工作。对于用户可以在增强现实中看到和体验周围的未知房间,情况并非如此。此外,如上所述,系统优选地被配置为使得诸如鱼的各种元素可以诸如经由用户的手部或眼睛运动与用户交互,并且这些也可能是相对不可预测的。如果当用户的相对高速的手部靠近时,每条鱼都向左做相同的旋转并以相同的向量(vector)游走,则场景将显得不自然。因此,该系统优选地被配置为对于各种状态(诸如进食或逃跑)具有许多变化的动态行为。
206.参考图14,示出了“代码蓝图”134,诸如可以使用诸如以商品名虚幻引擎(rtm)下可用的环境来创建的那些。此类代码蓝图表示各种元素的相对高级功能编程,并且可以用于例如控制系统如何在各种远景框架/门户配置之间切换,如上面参考图4、6、7和8a-8c所述。例如,系统可以被配置为不仅为可能的远景和与其相关联的框架/门户定位可能的大体平面位置,而且最大化此类远景和框架/门户的大小,和/或将它们相对于平面水平和/或竖直居中等。图15示出用于布置和纹理化各种元素(诸如珊瑚)以呈现给用户的界面的各个方面。在各种实施例中,可以直接在对象的网格的顶点上进行着色或绘画,并且可以利用高度图控件来为对象提供纹理和拓扑,使得不需要用多边形来进行此类配置。
207.参考图16,示出类似于上述那些64、68、74、78、82的珊瑚集群65,并且珊瑚集群65可以包括较小珊瑚元素的组件,其可以类似于积木一起使用,具有可配置的规则帮助使此类组装变得自然(例如,在各种配置中,表驱动的设置可用于控制变量,诸如可能从给定基岩元素延伸的多个珊瑚元素、植物相对于光源的可接受矢量化等)。因此,系统呈现可以使
用各种控制面板进行迭代,而无需为每次调整更改修改代码。
208.参考图17a-17c,关于光照和阴影,在各种实施例中,可以在给定场景中伪造光照(即,不模拟物理)以绕过传统开发环境的阴影(shading)和阴影化,例如通过无光照阴影路径完成阴影(即,虚幻(rtm)术语中的“自发光通道”,或unity(rtm)中的“无光照通道”;在这两种情况下,通常意味着在不计算任何光照的情况下处理纹理)。可以绕过图形管线的传统开销,以在紧张的性能预算内实现更高的视觉质量,从而产生重要的整体计算需求效率。该系统被配置为利用无光照阴影路径技术,绕过传统的照明引擎,并且可以添加其它效果,诸如雾、光学和/或水效果,以帮助使给用户的感知的感觉更自然。可以“实例化”各种元素,以允许对整体呈现进行微调,而不必为每个单独的元素提供计算资源。图17a示出潜水员头盔136的高保真模型;图17b和17c示出潜水头盔136的更有效的可再现输出,仍然具有相对高的保真度。参考图18,以用于诸如虚幻引擎(rtm)的环境的功能“代码蓝图”形式示出了核心无光照着色器网络配置138的一个实施例。
209.参考图19和20,如上所述,诸如参考图2、3和4,系统可以被配置为利用围绕用户的房间或环境的几何形状。内容(诸如远景或珊瑚)可以使用随机程序配置来放置,和/或提供自然适合房间的内容组合,对用户来说在美学上令人愉悦,并且每次将该系统用于此类应用时至少有些不同。如上所述,系统可以被配置为例如识别平面表面、空表面和空体积,这可以适合于在用户的帮助下或自动地(诸如根据可由用户选择的预定的一般主题)放置各种元素。
210.增强现实观看器可以包括表面提取例程,其位于存储设备上并且能够用处理器执行以识别真实世界对象中的表面。该表面可以是墙壁或天花板的二维表面。
211.增强现实观看器可以包括远景放置例程,其位于存储设备上并且能够用处理器执行以捕获包括真实世界对象的空间,将空间表示为真实世界网格,从真实世界网格中收集竖直平面和水平平面,通过相对于真实世界网格的位置、定向、尺寸和距地板的高度过滤平面,生成蓝图,该蓝图包括在选择位置处的远景中的所有内容和门户框架,以及在真实世界网格材料的遮挡材料中切出洞,以便用户可以通过门户看到远景。
212.参考图21,该系统还可以被配置为在房间的网格内定位位置,该位置可以是用于诸如珊瑚集群的元素的合适锚(anchor);例如,可以对合适的锚进行评分,并且可以为用户推荐或自动选择最高评分;在评分和选择之后,可以生长或“产生”诸如珊瑚或珊瑚集群的元素供用户观察。例如,分数可能不仅受几何形状影响,而且还受相对于用户的定位和定向影响(例如,如果可以将珊瑚以相对垂直于用户周围房间的地板的定向放置在潜在锚点上,而不是例如以从用户周围房间的地板45度角放置在潜在锚点上,则系统可以配置为对潜在锚点评分更高)。
213.虚拟对象因此可以是珊瑚集群。增强现实观看器可以包括珊瑚集群产生器,其位于存储设备上并且能够用处理器执行以确定体积,在体积内从体积的最大高度到体积的地板的随机点处执行线追踪,确定有效位置是否由线追踪识别,如果有效位置被识别,则响应于识别,执行箱(box)追踪以测试在尝试不同尺度和旋转并为每个放置生成分数时随机集群是否适合而不与世界网格重叠,确定具有分数中的最高分数的选择放置,以及将珊瑚集群生成到具有最高分数的放置。增强现实观看器因此可以包括远景放置例程,其位于存储设备上并且能够用处理器执行以放置远景,其中,体积由远景约束。
214.参考图22a-24,在此描述的各种系统配置的挑战之一是在用户与增强现实元素之间创建有趣、可信的交互,该增强现实元素可以覆盖在用户所定位的实际世界上或之内。优选地,诸如鱼的被动画化并被配置为与用户交互的各种元素可以被配置为具有相对于时域对用户有意义的自然的、非重复的行为(即,他们游泳不太快,他们不会太快或太频繁地从“逃离”状态切换到“发现/好奇”状态等);此外,如图1中所示的系统通常具有有限的计算资源。参考图23a-23b,在各种实施例中,用于获得计算效率的一种技术是以c++而不是功能代码蓝图来编写某些代码元素。参考图24,可以与诸如虚幻引擎(rtm)的环境一起利用的三维导航和寻路插件产品可用于帮助导航和开发各种元素(诸如鱼)的运动路径;此类插件允许开发团队更多地关注高阶动画问题,诸如喂鱼行为、探索行为以及与用户(诸如与用户的手部运动)的交互。
215.参考图25,可以利用标准工具来可视化140各种计算线程的利用率与时间的关系,使得开发团队可以进一步优化系统。图26示出可能适用于某些开发过程和团队的学习的各个方面。
216.一个或多个用户可以能够与一个或多个其他用户共享他们的虚拟环境,使得多个用户借助于多位置“可通行世界”类型的配置从他们自己的观看角度体验相同的虚拟环境特征,如上述并入的申请中所述。例如,如果位于纽约办公室的用户在他的办公室在他周围显示虚拟水族馆特征,并且如果来自旧金山的另一个用户虚拟地带入该纽约办公室和虚拟世界,则来自旧金山的用户优选地能够从该旧金山用户在纽约房间内的虚拟位置/定向看到虚拟水族馆特征。
217.参考图27,并且还参考图11b,在各种实施例中,对于增强现实水族馆体验,创意团队可以重新思考动画、技术和绑定以与ai寻路一起工作,这可以改变状态并导航可能被一个或多个用户占用的网格空间。例如,动画和/或绑定团队可以为标准鱼130投入时间来开发标准鱼绑定140和动画管线142,具有标准化动画和用户界面(“ui”)控制、自动游泳功能、自动细节层次(“lod”)功能、鱼眼“观察”工具、可定制触手和鳍绑定、触发各种行为的混合空间、和/或顶点动画纹理烘焙(baking)工具(即,有效地将细节从一个模型转移到另一个模型)。此类特征可为设计师提供极大的灵活性,以及重新使用动画并将其调整为生物所需行为的能力。在某些配置中,我们发现使用诸如来自虚幻引擎4(rtm)的“自动lod”的工具有助于在修改性能预算时动态减少骨骼和多边形数量。
218.参考图28,并返回参考图11a,开发者面临的一项挑战涉及构建和测试动画集以与人工智能(“ai”)寻路解决方案一起工作。例如,鱼元素可具有一组“混合空间”,该“混合空间”具有一组特定的动画,该动画可以由ai系统基于各种逻辑触发器和特定状态(诸如游泳速度、徘徊、寻找、逃跑、喂食等)触发。混合空间功能可以配置为让开发者指定输入、动画以及如何使用输入在动画之间进行混合。如图28中的开发者面板144表示所示,左侧示出各种运动状态,而中间显示具有“音频动画通知”和“整体动画通知”触发器,用于诸如喂食、转动等行为。
219.参考图29,我们依赖于绑定和手动键控动画,但我们也发现了一些有价值的解决方案,用于某些基于环境的生物配置,该解决方案有助于使用利用上述houdini(rtm)游戏工具、maya(rtm)和unreal engine4(rtm)的管线将动画数据烘焙到纹理中。使用此类工具,我们可以开发出提供所需性能余地(leeway)的最终结果,特别是在需要平衡中央处理单元
(cpu)和图形处理单元(gpu)(包括纹理流)负载的场景中,诸如当使用vulkan 3.1(rtm)移动时。图29示出所显示的沉船场景146,其中使用上述烘焙技术显示中景和背景中的鱼群元素76、77。由于开发者可能希望在给定体验中创作大量内容,因此具有诸如鸟群实时聚集的场景可能不切实际。例如,对于大量虚拟鱼,我们已经找到了一种减少烘焙纹理大小的解决方案。对于一大群鱼中的每个成员鱼,可以将它们的游泳周期从maya(rtm)导出到fbx文件;然后可以将这些缓存中的每一个缓存都带入houdini(rtm),其中可以创建单独的顶点动画纹理(或“vat”),然后将其插入到houdini软体框架混合顶点着色器工具中以进行变形。fx美术师可以在houdini中生成模拟并将每个单独的粒子附加到一个关节(joint),该关节可用于驱动每个顶点动画鱼穿过虚拟水。为了开发鱼和生物的游泳内容,可以跨一组或所有鱼标准化绑定和动画控制。可以开发自动游泳功能(诸如程序上的正弦游泳功能)。可以使用传统的lod绑定系统或自动lod功能。可以开发鱼眼观察工具来帮助驱动鱼的注视。可以开发其它专门的环境生物(诸如鳗鱼、螃蟹、章鱼、海马、海龟、鳐鱼、鲨鱼)。混合空间和原位旋转偏移可与ai结合使用以触发诸如速度或各种状态的行为。例如,可以在maya中示出示例动画绑定,其中有人在maya中控制它,和/或可以为技术团队设置所需的动画和混合空间,以与ai寻路集成。可以开发顶点动画鱼管线功能以帮助提供给定特定图形和计算预算场景(诸如与移动平台相关联的场景)的灵活性和功能。
220.参考图30a-30h,并且还返回参考图5a、5b、5d、5e和16,示出了各种珊瑚集群配置83、152、154、156、158及其组件148、150。在各种实施例中,优先考虑给予用户体验动态放置和程序驱动的海底礁体验的机会。因此,我们的挑战是使用与真实世界相结合的蓝图来构建变量驱动的珊瑚/岩石产生和放置系统。在一个实施例中,我们选择了一种计算性能友好的“混合(hybric)”方法,其中我们加载和放置预建的岩层和沙基,然后使用我们的珊瑚产生和放置系统配置在其上“生成”珊瑚和海藻。在一个实施例中,在这样做之前,美术团队建立了一组有凝聚力的珊瑚岩层,诸如图30c和30d 148、150中所示的那些,它们将作为“打击套件(kit bashing)”不同布局的基础。
221.使用蓝图开发了用于动态产生和放置珊瑚的系统。尽管蓝图最初被更多地考虑用于早期原型设计和制作概念的游戏性证明,但我们的技术美术团队从中获得了重要的功能。参考图30h,示出了各种顶点160,因为它们被验证用于模拟潜在的珊瑚生长。在各种实施例中,例如,可能希望在用户每次返回体验时具有随机行为的珊瑚集群。
222.参考图31a和31b,示出了珊瑚产生器对象系统162和珊瑚生长控制表164的实施例的图像。系统实施例能够采用一些显著特征,诸如:数据表方法,来设置个体种群和物种最大计数、产生类型、基于高度的百分比和其它分类变量;顶点爬行和光线投射算法,用于检查放置可行性、生长和将有效点缓存到文件;运行时珊瑚静态网格循环,其首先计算阴影通道,并且然后创建所有珊瑚的实例化静态网格;以及基于碰撞的排除配置,允许开发者简单地将箱碰撞器放置在他们不希望某些物种生长的地方。为了帮助用户空间中的珊瑚集群整合和接地(ground),该系统可能包括一组较小的“支撑”岩石和沙子元素,上面有动态移动的海藻。然后可以将产生器管理器(在c++核心游戏端)配置为基于系统检测到的可用地板平面和每个用户房间的空间限制,将这些支持元素放置在主要珊瑚集群周围。这也有助于确保每个游戏空间都有独特的布局。在各种实施例中,虽然可以预先构建多个核心远景环境中的每一个,但是可以利用可交换框架和动态ai和fx驱动的生物来使这些预先构建的远
景感觉完全独特。每个布局可以是动态的,并且取决于网格房间的大小;例如,图30f示出由较小的岩石块和海藻元素围绕的程序性生成的珊瑚集群154。本系统可以配置为使用运行时珊瑚静态网格循环,该运行时珊瑚静态网格循环首先使用角色(actor)标签计算阴影传递,然后立即创建所有珊瑚的实例化静态网格以减少绘制调用和开销;生长可以是数据表驱动的,并且可以包括基于顶点的生长、光线投射搜索和有效点的缓存,以及基于高度和基于碰撞的物种包含/排除。在各种实施例中,我们已经构建并采用了可重复使用和程序上可生成的岩石和珊瑚礁元素,它们可以以随机配置来旋转和快动(snap);我们通过在沙子上使用细微的下降并在集群周围添加随机放置的带有海藻的支撑岩石来接地和整合内容;并且我们使用maya(rtm)、zbrush(rtm)、substance designer(rtm)和painter(rtm)工具来创建独特且可平铺的程序和手工制作的资产。
223.增强现实观看器可以包括珊瑚产生器系统,其位于存储设备上并且能够用处理器执行以在存储设备上存储至少第一类型的第一珊瑚元素,并且从包括第一珊瑚元素的多个珊瑚元素构建珊瑚集群。
224.珊瑚产生器系统能够用处理器执行以从多个第一珊瑚元素构建珊瑚集群。
225.珊瑚产生器系统能够用处理器执行以在存储设备上存储至少第二类型的第二珊瑚元素,其中,多个珊瑚元素包括第二珊瑚元素。
226.珊瑚产生器系统可以用处理器执行以确定珊瑚集群设置,其中,处理器根据该设置构建珊瑚集群。该设置可以是检测到的可用空间,并且基于可用空间选择多个珊瑚元素。珊瑚产生器系统能够用处理器执行以模拟环境光,其中,设置是环境光。可以基于环境光选择多个珊瑚元素。可以基于环境光来选择珊瑚元素的定向。珊瑚产生器系统可以在存储设备上包括具有多个珊瑚集群设置的数据表,其中,珊瑚产生器系统根据多个珊瑚集群设置来构建珊瑚集群。珊瑚集群设置可以包括以下中的至少一个:种群;物种最大计数;产生类型;以及基于高度的百分比。珊瑚产生器系统可能包括顶点爬行和光线投射算法,以检查放置可行性、生长、以及将有效点缓存到文件。珊瑚产生器系统可包括运行时珊瑚静态网格循环,其首先计算阴影通道,然后创建所有珊瑚集群的实例化静态网格。珊瑚产生器系统可包括基于碰撞的排除配置,其将箱碰撞器放置在某些物种不应生长的地方。
227.图32示出了驻留在如上所述的存储设备上的指令,包括虚拟对象的数据集200、显示模块202、数据流生成器204、光生成器206、定位调整模块208、游动子例程210、波浪运动例程212、检索代理214、传输代理216、人工智能系统218、注视方向运动例程220、个人助理模块222、移动模块224、表面提取例程226、深度创建模块228、远景放置例程230、顶点动画例程232、以及珊瑚集群产生器234。
228.在此描述了本发明的各种示例实施例。以非限制性的方式参考这些示例。提供它们是为了说明本发明更广泛适用的方面。在不脱离本发明的真实精神和范围的情况下,可以对所描述的发明进行各种改变并且可以替换等同物。此外,可以进行许多修改以使特定情况、材料、物质组成、过程、过程行为或步骤适应本发明的目的、精神或范围。此外,如本领域技术人员将理解的,在此描述和图示的各个变体中的每一个变体都具有分立的组件和特征,其可以容易地与其它几个实施例中的任一个实施例的特征分离或组合而不脱离本发明本发明的范围或精神。所有这些修改都旨在落入与本公开相关的权利要求的范围内。
229.本发明包括可以使用本设备执行的方法。该方法可以包括提供这种合适的设备的
动作。此类提供可以由最终用户执行。换句话说,“提供”动作仅需要最终用户获得、访问、接近、定位、设置、激活、通电或以其它方式动作以提供本方法中的必要设备。可以以逻辑上可能的所列举事件的任何顺序以及以所列举的事件顺序来执行在此所述的方法。
230.本发明的示例方面以及关于材料选择和制造的细节已经在上文中阐述。至于本发明的其它细节,这些可以结合上面引用的专利和出版物以及本领域技术人员公知或理解的来理解。关于本发明的基于方法的方面,就通常或逻辑上采用的附加动作而言,这同样适用。
231.此外,虽然本发明已经参考可选地结合各种特征的几个示例进行了描述,但是本发明不限于关于本发明的每个变体所预期的描述或指示的内容。在不脱离本发明的真正精神和范围的情况下,可以对所描述的发明进行各种改变并且可以替换等效物(无论是在此引用还是为了一些简洁而未包括在内)。此外,在提供值范围的情况下,应当理解,在该范围的上限和下限与该范围内的任何其它规定或中间值之间的每个中间值都包含在本发明内。
232.此外,预期所描述的发明变体的任何可选特征可以独立地提出和要求保护,或者与在此描述的任何一个或多个特征组合。对单数项的引用包括存在多个相同项的可能性。更具体地,如在此和与其相关的权利要求中所使用的,单数形式“一”、“一个”、“所述”和“该”包括复数所指对象,除非另有具体说明。换句话说,物品的使用允许“至少一个”以上描述中的主题项目以及与本公开相关联的权利要求。进一步应注意,可以起草此类权利要求以排除任何可选元素。因此,该陈述旨在作为与权利要求要素的叙述相关联的诸如“仅”、“只”等专有术语的使用或“否定”限制的使用的先行基础。
233.在不使用此类专有术语的情况下,与本公开相关的权利要求中的术语“包括”应允许包含任何附加元素,无论此类权利要求中是否列举了给定数量的元素,或者添加一个特征的改变可以被视为改变了这些权利要求中提出的元素的性质。除了在此特别定义外,在保持权利要求有效性的同时,在此使用的所有技术和科学术语都将被赋予尽可能广泛的普遍理解的含义。
234.本发明的范围不限于所提供的示例和/或主题说明书,而是仅受与本公开相关的权利要求语言的范围。
235.虽然在附图中已经描述和示出了某些示例性实施例,但是应当理解,这些实施例仅是说明性的而不是对本发明的限制,并且本发明不限于所示和描述的特定结构和布置,因为本领域普通技术人员可以进行修改。