CN108064364A - 用于实现多用户虚拟环境的方法和系统 - Google Patents
用于实现多用户虚拟环境的方法和系统 Download PDFInfo
- Publication number
- CN108064364A CN108064364A CN201680019507.9A CN201680019507A CN108064364A CN 108064364 A CN108064364 A CN 108064364A CN 201680019507 A CN201680019507 A CN 201680019507A CN 108064364 A CN108064364 A CN 108064364A
- Authority
- CN
- China
- Prior art keywords
- data
- sensor
- virtual environment
- group
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 96
- 230000005540 biological transmission Effects 0.000 claims abstract description 53
- 238000003860 storage Methods 0.000 claims description 29
- 238000012805 post-processing Methods 0.000 claims description 26
- 238000001914 filtration Methods 0.000 claims description 14
- 239000011800 void material Substances 0.000 claims description 12
- 230000007613 environmental effect Effects 0.000 claims description 11
- 238000009966 trimming Methods 0.000 claims description 11
- 241000208340 Araliaceae Species 0.000 claims description 3
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims description 3
- 235000003140 Panax quinquefolius Nutrition 0.000 claims description 3
- 235000008434 ginseng Nutrition 0.000 claims description 3
- 238000000151 deposition Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 32
- 238000010586 diagram Methods 0.000 description 31
- 230000009471 action Effects 0.000 description 29
- 230000008569 process Effects 0.000 description 28
- 238000007726 management method Methods 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 18
- 238000012545 processing Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 13
- 230000003993 interaction Effects 0.000 description 12
- 230000008901 benefit Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 9
- 238000001514 detection method Methods 0.000 description 9
- 230000003068 static effect Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 230000033001 locomotion Effects 0.000 description 7
- 238000004088 simulation Methods 0.000 description 5
- 230000005611 electricity Effects 0.000 description 4
- 230000002708 enhancing effect Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 241000196324 Embryophyta Species 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000035807 sensation Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 1
- 241000406668 Loxodonta cyclotis Species 0.000 description 1
- 210000003484 anatomy Anatomy 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 235000021167 banquet Nutrition 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002224 dissection Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000008713 feedback mechanism Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000004091 panning Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/012—Head tracking input arrangements
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
- G02B27/0172—Head mounted characterised by optical features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/0304—Detection arrangements using opto-electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/003—Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
- G02B2027/0178—Eyeglass type
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/02—Networking aspects
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Optics & Photonics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本公开提供了用于实现多用户虚拟现实环境的计算机系统、设备、计算机可执行方法以及一个或多个非临时性计算机可读介质。用于实现多用户虚拟现实环境的计算机实现的方法的示例包括:从本地装置处的传感器接收传感器数据;将传感器数据提供给网络接口用于向远程装置进行电子传送;将传感器数据提供给在本地装置的处理器上执行的虚拟环境引擎;通过虚拟环境引擎并至少部分地基于传感器数据,确定与虚拟现实环境相关的虚拟环境数据;将虚拟环境数据提供给网络接口用于向远程装置进行电子传送;以及使用网络接口把传感器数据和虚拟环境数据进行电子传送到远程装置,以用于生成多用户虚拟环境。
Description
技术领域
本发明示例实施例一般地涉及虚拟现实接口并且,更具体来说,涉及用于跨多个装置实现共享虚拟现实环境的方法、系统、设备,和计算机可读介质。
背景技术
技术进步已导致消费电子装置变得越来越强大。具体来说,显示、图形、处理器、网络和传感器技术的进步已经提供了技术突破,这些技术突破使得大量生产和销售能够为消费者提供虚拟现实(VR)体验的装置变得可行。在这方面,VR接口的当前实现方式中的问题和挑战已经由发明人识别,并且这些问题和挑战的解决方案在示例性实施例中被实现。
发明内容
本发明的各种实施例涉及用于提供虚拟现实接口的改进的设备、方法和计算机可读介质。根据一个示例性实施例,提供了用于实现多用户虚拟现实环境的计算机可执行方法。该方法包括:从本地装置处的传感器接收传感器数据;将传感器数据提供给网络接口用于向远程装置进行电子传送;将传感器数据提供给在本地装置的处理器上执行的虚拟环境引擎;通过虚拟环境引擎并至少部分地基于传感器数据,确定与虚拟现实环境相关的虚拟环境数据;将虚拟环境数据提供给网络接口用于向远程装置进行电子传送;以及使用网络接口把传感器数据和虚拟环境数据进行电子传送到远程装置,以用于生成多用户虚拟环境。
网络接口可以包括到远程装置的至少两个单独的网络连接,并且传感器数据和虚拟环境数据中的每一个可以经由至少两个单独的网络连接中的不同连接被传送。该方法可以包括在传送到远程装置之前对传感器数据进行后处理。后处理可以包括如下操作中的至少一个:对传感器数据滤波、平滑传感器数据、修剪传感器数据或识别传感器数据内至少一个对象的存在。传感器数据可以包括从传感器接收的至少一帧数据。传感器数据可以包括一组掩模数据,该组掩模数据识别至少一帧数据内与至少一个对象相关联的一个或多个像素。传感器数据可以包括缓存的背景数据,该缓存的背景数据识别在所述至少一帧数据内不可见的至少一个对象的存在。传感器数据可以包括指示传感器的至少一个配置参数的传感器配置数据。
根据另一示例性实施例,提供了用于实现多用户虚拟现实环境的另一计算机实现的方法。该方法包括:在本地传感器接口处接收来自网络接口的第一组传感器数据;由本地传感器接口从本地传感器接收第二组传感器数据;由本地传感器接口把第一组传感器数据和第二组传感器数据提供给在处理器上执行的本地虚拟环境引擎;至少部分地基于第一组传感器数据和第二组传感器数据生成多用户虚拟环境;以及向显示装置提供指令以显示所述多用户虚拟环境的至少一部分。该方法还可以包括:经由网络接口从远程装置接收一组虚拟环境数据;以及至少部分地基于使用第一组传感器数据来验证所述一组虚拟环境数据。该方法可以包括:使用第一组传感器数据来生成远程装置的用户的虚拟表示,以及在多用户虚拟环境内呈现远程装置的用户的虚拟表示。第一组传感器数据还可以包括对象掩模数据,并且该方法还可以包括:至少部分地基于对象掩模数据来确定第一组传感器数据内的远程装置的使用的存在。该方法还可以包括将至少一个后处理操作应用于第二组传感器数据,而不是第一组传感器数据。第一组传感器数据可以包括至少一个参数,所述至少一个参数指示在传送到本地装置之前对第一组传感器数据进行后处理。所述至少一个后处理操作可以包括平滑操作、滤波操作、或压缩操作。显示装置可以是头戴式显示器。
另外的实施例提供了一种非临时性计算机可读存储介质,包括用于实现多用户虚拟现实环境的指令。当处理器执行所述指令时,处理器被配置为:从本地装置处的传感器接收传感器数据;将传感器数据提供给用于向远程装置进行电子传送的网络接口;将传感器数据提供给在本地装置的处理器上执行的虚拟环境引擎;由所述虚拟环境引擎并且至少部分地基于所述传感器数据确定与虚拟现实环境相关的虚拟环境数据;将所述虚拟环境数据提供给所述网络接口进行电子传送到远程装置;以及将传感器数据和虚拟环境数据进行电子传送到远程装置,以用于生成多用户虚拟环境。
网络接口可以包括到远程装置的至少两个单独的网络连接,并且传感器数据和虚拟环境数据中的每一个可以经由至少两个单独的网络连接中的不同连接传送。所述指令可以把处理器配置为:在向远程装置传送之前对传感器数据进行后处理。后处理可以包括以下操作中的至少一个:对传感器数据滤波,平滑传感器数据,修剪传感器数据或识别传感器数据内至少一个对象的存在。传感器数据可以包括从传感器接收的至少一帧数据。传感器数据可以包括一组掩模数据,所述一组掩膜数据识别与至少一个对象相关联的至少一帧数据内的一个或多个像素。传感器数据可以包括缓存的背景数据,缓存的背景数据识别在所述至少一帧数据内不可见的至少一个对象的存在。传感器数据可以包括指示传感器的至少一个配置参数的传感器配置数据。
根据另一示例性实施例,提供了包括用于实现多用户虚拟现实环境的指令的非临时性计算机可读存储介质。所述指令在由处理器执行时把所述处理器配置为:在本地传感器接口处接收来自网络接口的第一组传感器数据;由所述本地传感器接口从本地传感器接收第二组传感器数据;由本地传感器接口将第一组传感器数据和第二组传感器数据提供给在处理器上执行的本地虚拟环境引擎;至少部分地基于第一组传感器数据和第二组传感器数据生成多用户虚拟环境;以及向显示装置提供显示多用户虚拟环境的至少一部分的指令。
所述指令可以包括经由所述网络接口从所述远程装置接收一组虚拟环境数据,以及至少部分地基于使用所述第一组传感器数据来验证所述一组虚拟环境数据。所述指令可以包括使用第一组传感器数据来生成远程装置的用户的虚拟表示,以及在多用户虚拟环境内呈现远程装置的用户的虚拟表示。第一组传感器数据可以包括对象掩模数据,并且所述指令可以包括至少部分地基于对象掩模数据来确定第一组传感器数据内的远程装置的使用的存在。所述指令可以包括将至少一个后处理操作应用于第二组传感器数据,而不是第一组传感器数据。第一组传感器数据可以包括至少一个参数,所述至少一个参数指示在传送到本地装置之前对第一组传感器数据进行后处理。所述至少一个后处理操作可以包括平滑操作、滤波操作、或压缩操作。显示装置可以是头戴式显示器。
根据另一实施例,提供了一种用于实现多用户虚拟现实环境的设备。该设备包括:用于从本地装置处的传感器接收传感器数据的构件;用于将传感器数据提供给网络接口用于向远程装置进行电子传送的构件;用于将传感器数据提供给在本地装置的处理器上执行的虚拟环境引擎的构件;用于通过虚拟环境引擎并至少部分地基于传感器数据确定与虚拟现实环境相关的虚拟环境数据的构件;用于将虚拟环境数据提供给网络接口用于向远程装置进行电子传送的构件;以及用于使用网络接口把传感器数据和虚拟环境数据进行电子传送到远程装置以用于生成多用户虚拟环境的构件。
根据又一个实施例,提供了用于实现多用户虚拟现实环境的另一设备。该设备包括:用于从网络接口接收第一组传感器数据的构件;用于从本地传感器接收第二组传感器数据的构件;用于把第一组传感器数据和第二组传感器数据提供给本地虚拟环境引擎的构件;用于至少部分地基于第一组传感器数据和第二组传感器数据生成多用户虚拟环境的构件;以及用于向显示装置提供指令以显示所述多用户虚拟环境的至少一部分的构件。
根据进一步实施例,提供了一种用于实现多用户虚拟现实环境的系统。所述系统包括:传感器接口电路,被配置为从本地装置处的传感器接收传感器数据,提供传感器数据给网络接口以用于进行电子传送到远程装置,以及把传感器数据提供给在本地装置的处理器上执行的虚拟环境引擎。该系统还包括虚拟环境状态管理电路,虚拟环境状态管理电路被配置为:至少部分地基于所述传感器数据,确定与虚拟现实环境相关联的虚拟环境数据,以及将虚拟环境数据提供给网络接口用于进行电子传送到远程装置。所述系统还包括网络接口,被配置为以电子方式将传感器数据和虚拟环境数据传送到所述远程装置,用于生成多用户虚拟环境。
网络接口可以包括到远程装置的至少两个单独的网络连接,并且传感器数据和虚拟环境数据中的每一个可以经由至少两个单独的网络连接中的不同连接被传送。传感器接口电路可以进一步配置为在传送到远程装置之前对传感器数据进行后处理。后处理可以包括如下操作中的至少一个:对传感器数据滤波、平滑传感器数据、修剪传感器数据或识别传感器数据内至少一个对象的存在。传感器数据可以包括从传感器接收的至少一帧数据。传感器数据可以包括一组掩模数据,该组掩模数据识别至少一帧数据内与至少一个对象相关联的一个或多个像素。传感器数据可以包括缓存的背景数据,该缓存的背景数据识别在所述至少一帧数据内不可见的至少一个对象的存在。传感器数据可以包括指示传感器的至少一个配置参数的传感器配置数据。
另一个示例性实施例提供了用于实现多用户虚拟现实环境的另一种系统。该系统包括传感器接口电路,被配置为从网络接口接收第一组传感器数据,从本地传感器接收第二组传感器数据,以及将第一组传感器数据和第二组传感器数据提供给在处理器上执行的本地虚拟环境引擎。所述系统还包括虚拟环境状态管理电路,虚拟环境状态管理电路被配置为至少部分地基于第一组传感器数据和第二组传感器数据生成多用户虚拟环境,以及向显示装置提供显示多用户虚拟环境的至少一部分的指令。虚拟环境状态管理电路还可以被配置为经由所述网络接口从所述远程装置接收一组虚拟环境数据,以及至少部分地基于使用所述第一组传感器数据来验证所述一组虚拟环境数据。虚拟环境状态管理电路还可以被配置为使用第一组传感器数据来生成远程装置的用户的虚拟表示,以及在多用户虚拟环境内呈现远程装置的用户的虚拟表示。第一组传感器数据可以包括对象掩模数据,并且传感器接口电路可以被配置为至少部分地基于对象掩模数据来确定第一组传感器数据内的远程装置的使用的存在。传感器接口电路可以被配置为将至少一个后处理操作应用于第二组传感器数据,而不是第一组传感器数据。第一组传感器数据可以包括至少一个参数,所述至少一个参数指示在传送到本地装置之前对第一组传感器数据进行后处理。所述至少一个后处理操作可以包括平滑操作、滤波操作、或压缩操作。显示装置可以是头戴式显示器。
附图说明
通过参考结合附图进行的以下描述,示例性实施例的前述和其他目的、方面、特征和优点将变得更加显而易见并且可以被更好地理解。
图1是图示示例性实施例可以在其内操作的系统的框图。
图2是图示根据某些示例性实施例的计算设备的示例性部件的框图。
图3是图示根据一些示例性实施例的虚拟现实系统中使用的头戴式显示器的示例性部件的框图。
图4是数据流程图,图示根据一些示例性实施例的虚拟现实系统的不同部件之间的电子数据的流程。
图5-6是根据本发明的示例性实施例的示例性传感器数据帧的图示。
图7-8是根据本发明的示例性实施例的用于使用捕获的传感器数据维持静态背景数据的示例性过程的图示。
图9是图示根据本发明的示例性实施例的合并本地用户和从接收的传感器数据重构的用户二者的示例性虚拟环境的框图。
图10是图示根据本发明的示例性实施例的用于存储传感器数据的示例性数据结构的框图。
图11是图示根据本发明的示例性实施例的用于传送数据以实现多玩家虚拟现实环境的示例性计算机可执行方法的流程图。
图12是图示根据本发明的示例性实施例的用于接收数据以实现多玩家虚拟现实环境的示例性计算机可执行方法的流程图。
图13是图示根据本发明的示例性实施例的用于减小传送的传感器数据帧的大小的示例性计算机可执行方法的流程图。
图14是图示根据本发明的示例性实施例的用于创建虚拟现实环境信息的传送的数据结构的示例性计算机可执行方法的流程图。
图15是图示根据本发明的示例性实施例的用于生成多用户虚拟环境的示例性计算机可执行方法的流程图。
附图不意图按比例绘制。
具体实施方式
示例实施例提供用于提供多玩家虚拟现实(VR)环境的计算机系统、计算机可执行方法和一个或多个非临时性计算机可读介质。具体来说,实施例提供了用于捕获、处理、压缩和传送传感器数据和虚拟环境数据的改进技术。
术语表
现在将参照附图更全面地在下文描述本发明的一些实施例,附图中示出了本发明的一些但不是全部的实施例。实际上,本发明可以按照许多不同的形式体现,并且不应被解释为限于本文所阐述的实施例;相反,提供这些实施例使得本公开将满足适用的法律要求。相似的数字始终指代相似的元件。
如本文所使用的,术语“数据”、“内容”、“信息”以及类似术语根据本发明的实施例可以互换使用,用于指代能够被传送、接收和/或存储的电子数据。因此,任何这种术语的使用不应当被理解为限制本发明的实施例的精神和范围。此外,在本文中计算设备被描述为从另一计算设备接收数据的情况下,应当理解,可以直接从另一计算设备接收数据,或者可以经由一个或多个中间计算设备间接地接收数据,中间计算设备诸如例如是一个或多个服务器、中继器、路由器、网络接入点、基站、主机和/或类似物,它们有时在本文中被称为“网络”。类似地,在本文中计算设备被描述为将数据发送到另一计算设备的情况下,应当理解,数据可以直接发送到另一计算设备,或者可以经由一个或多个中间计算设备间接发送到另一计算设备,中间计算设备诸如例如是一个或多个服务器、中继器、路由器、网络接入点、基站、主机和/或类似物。
如本文中所使用的,术语“头戴式显示器”和“HMD”意图指代附接、安装、投影到相对于用户的观看角度或视线保持在固定位置处的表面或以其他方式在该表面上提供图像的任何显示装置。术语“头戴式显示器”意图还包括可以与这种装置一起提供的任何其他外围电子装置和功能。例如,头戴式显示器可以包括扬声器、耳机或用于音频输出的其他电子硬件、多个显示装置(例如,使用两个显示装置,每个显示装置与用户的一个眼睛相关联,以使能立体视觉、三维观察环境)、一个或多个位置传感器(例如陀螺仪、全球定位系统接收器和/或加速度计)、用于外部传感器的信标(例如,红外灯)等。示例头戴式显示器包括由Oculus VR制造的Oculus RiftTM、由索尼公司制造的HMZ-T3W和类似物。
如本文所使用的,术语“虚拟环境”意图指代具有一个或多个对象的模拟环境,所述一个或多个对象使用HMD被投影给或以其他方式显示给用户,使得HMD为用户提供存在于或沉浸于虚拟环境中的、仿佛虚拟环境物理地围绕用户存在的感觉。提供与术语“物理环境”相对的术语“虚拟环境”,“物理环境”与实际物理空间有关。
术语“虚拟环境状态”意图指代描述虚拟环境的电子数据。虚拟环境状态包括足以限定与该虚拟环境相关联的一个或多个对象的一组位置或方位的数据。应当理解,虚拟环境状态可以按照各种数据结构和/或格式存储。在一些实施例中,虚拟环境状态可以由跟踪虚拟环境状态内的对象的方位、状态和其他属性的“虚拟环境引擎”来维护。虚拟环境引擎也可以管理管理虚拟环境内的对象之间的交互(诸如通过控制触发条件、用户输入和导致虚拟环境或其中的对象发生变化的其他事件)。在一些实施例中,虚拟环境引擎可以与图形装置、渲染器或用于生成虚拟环境的视觉显示的其他硬件和软件结合起作用。
虽然虚拟环境状态通常可以包括n维坐标集(通常三个维度),该n维坐标集至少部分地对应于给定的物理环境,应当理解的是,给定的虚拟环境可以不直接对应于物理环境。例如,给定的虚拟环境可以允许用户或其他对象在虚拟环境中改变位置、改变大小、改变形状等,而在物理环境中没有对应的改变或交互。给定的虚拟环境还可以映射到给定物理环境的一部分(例如,限于物理环境的一个或多个传感器可见的区域),并且反之亦然(例如,虚拟环境的受限部分映射到物理环境,用户在物理环境中的移动被约束为实现虚拟环境的受限部分中的改变)。
存在于物理世界中的对象可以被包括在虚拟环境中作为物理对象的虚拟表示,并且术语“虚拟环境”应被理解为不排除这样的虚拟表示。例如,传感器可以在用户周围的物理环境中检测物理对象的存在,并且在虚拟环境内创建对应于检测到的物理对象的虚拟对象。然后,用户可能能够通过在虚拟环境中的与物理环境中的物理对象的位置相对应的位置处查看虚拟对象来感知物理对象的存在。
术语“物理环境状态”应当理解为指代指示物理对象的已知或可信方位的电子数据。物理环境状态至少部分地基于从一个或多个传感器接收的数据。在一些实施例中,物理环境状态还基于其他数据,诸如从物理环境状态的先前快照得出的数据、来自除传感器之外的接口设备(例如,计算机键盘或鼠标)的数据等。
术语“增强环境”应被理解为指代包括物理环境和虚拟环境的元素的组合环境。应当注意,包括物理环境的元素的增强环境(例如,叠加有虚拟元素的物理环境的视频或照片图像)被理解为与包括对应于物理对象的虚拟元素的虚拟环境分离和不同。例如,叠加有标记或标签的数字照片将是增强的环境,而检测用户存在,用虚拟三维模型替换用户以及然后将所述三维模型插入到虚拟环境中的系统不会是增强的环境,因为后者示例使用完全虚拟的构造。
术语“传感器数据”应被理解为指代从监视物理环境的一个或多个传感器接收的数据。传感器数据可包括;未处理的数据,诸如直接从传感器、传感器设备驱动器,或类似物接收的原始数据;以及经处理的数据,诸如被平滑或滤波的原始数据,或从多组原始传感器数据得出的对象数据(例如,从多个帧的捕获到的数据得出的数据)。
术语“虚拟环境数据”应被理解为指代与虚拟环境状态有关的数据。术语“虚拟环境数据”的使用应被理解为与术语“传感器数据”分开且不同,使得具备传感器数据资格的数据必然不是虚拟环境数据,并且反之亦然。通常,虚拟环境数据由虚拟环境引擎提供,而传感器数据由传感器接口提供,但是应当理解,在一些实施例中,传感器数据可以由虚拟环境引擎提供,诸如在虚拟环境引擎提供传感器数据作为从传感器接口的通道情况下。可以区分传感器数据和虚拟环境数据,因为传感器数据不需要访问虚拟环境状态,而虚拟环境数据必然需要访问虚拟环境状态。
概览
当前公开的发明的实施例一般地描述了用于实现多玩家虚拟环境的新颖的系统、方法和装置。电子装置小型化方面的进步、显示成本降低以及图形处理能力的增加已使得消费者获得能够提供虚拟现实体验的装置成为现实。具体来说,消费者现在有能力获得提供立体三维视觉体验的价格合理的头戴式装置(HMD)。许多这样的装置还包括内部加速度计和用于确定用户的方位和观看角度的位置检测模块、用于提供声音的音频系统和类似物。这些装置的主要预期用途之一是使用户能够感知他们存在于虚拟环境中。类似地,传感器技术的发展已经提供了对能够检测物理环境内用户的尺寸、方位和位置的传感器的增加的访问。
由于访问虚拟现实装备的普遍存在而成为可能的一个特定使用情况是提供多用户虚拟环境的能力。通过利用跨多个单独的计算节点或装置对传感器和显示装备的访问,本发明人已经认识到,可以提供为用户提供如下感觉的虚拟环境:与其他用户处在单个本地物理环境中,即使这些其他用户位于远程方位。然而,发明人还确认了这些多用户虚拟环境的实现中的许多挑战。传统的非VR多用户环境(诸如多玩家视频游戏和协作文档编辑应用)通过检测使用诸如键盘或鼠标(例如,击键、鼠标光标移动、鼠标点击,等等)之类的输入装置实施的特定动作来进行操作。这些多用户环境未意识到用户的特定物理形状、位置和方位,因为传统的非VR显示装置的限制无法提供沉浸体验,沉浸体验将从关于其他用户的实际信息的内含物中获益。通过应用努力和创造力,发明人已经确认了与提供多用户虚拟环境相关的这些问题和其他问题的解决方案。
本发明人已确认的是,使用实际用户的物理方位、位置和尺寸数据可以在虚拟环境的背景下提供独特的益处。具体来说,由于虚拟环境企图使用户沉浸在模拟实际物理环境的体验中,包括表示虚拟环境中的其他用户的数据可以增强用户与虚拟环境和以及彼此交互的能力。为此,发明人已经开发了用于改进多用户VR体验的改进的各种方法、技术和过程。
如上所述,现有技术的多用户环境依靠客户端应用来提供与管理多用户环境相关的数据。对应用做出的用户输入将被转换为与环境相关的事件。例如,鼠标点击或击键可被解释为在游戏环境中使武器开火的指示,或者击键可被解释为消息将被发送给另一用户。代替传送原始鼠标点击或击键数据,这样的环境将产生的变化传送给环境(例如传送“使武器开火”事件而不是“鼠标左击”事件)。这样的输入技术对不企图创建完全沉浸模拟的非虚拟环境是足够的。然而,发明人已经认识到,在虚拟环境的情况下,合乎期望的是,除了与虚拟环境有关的信息之外,还传送从耦合到本地装置的一个或多个传感器接收的传感器数据。使用这样的数据允许接收设备重新创建远程用户的位置、方位、尺寸等。
发明人已经认识到使用至少部分地从远程传感器获得的传感器数据在本地装置上重新创建远程用户为实现虚拟环境提供了许多益处。例如,接收远程计算机的传感器输出允许本地计算机提供远程用户的精确复制,该远程用户的精确复制可被用于在由本地用户体验的虚拟环境中显示远程用户。类似地,传感器数据可以被用作对从远程用户接收的虚拟环境数据的检查或验证,以确保远程用户尚未篡改或以其他方式改变虚拟环境数据或用于生成该虚拟环境数据的虚拟环境引擎。
本发明人还认识到,按照与虚拟环境数据不同频率或以其他方式不同相地发送传感器数据存在优点。以不同相地发送这种数据实现对远程用户的显示的更快更新,因为数据在传送之前不必需要由本地虚拟环境引擎处理。
为了实现这些益处,发明人还解决了与传送和处理在虚拟环境中使用的传感器数据有关的许多技术挑战。例如,发明人已经确定,在许多情况下,可以按照显著降低传送数据所需的网络带宽同时维持上述其他益处的方式实施传送的传感器数据的压缩。本发明人还开发了用于如下操作的技术:封装和后处理传感器数据以改进所述传感器数据到远程计算机的传送以及由远程计算机对传感器数据的处理。
发明人还开发了与使用本地传感器数据和从远程计算机接收的传感器数据二者来生成共享虚拟环境有关的技术。这些技术包括校准传感器数据以实现本地用户和远程用户二者在相同虚拟环境中的放置以及用来识别传感器数据源的技术。本发明人还开发了对用于接收传感器数据的接口的改进,该改进允许这种接口从远程源接收数据,同时处理所述远程数据,就好像它从本地传感器接收一样。
诸如本文所述的多用户虚拟现实环境可以被用于实现跨许多不同的技术学科的各种功能。可以采用这样的环境来改进家庭自动化系统(例如,与家庭温度、照明和安全系统对接),控制工厂操作(例如,控制机器人装备、安全系统、观察工人),控制移动对象(诸如无人驾驶飞机),以及与这些环境中的其他用户进行交互以共享信息、展示演示文稿等。使用虚拟环境也可以允许用户利用耦合到远程受控装置或系统的摄像机或其他传感器来向用户呈现处于受控对象的物理方位中的体验以及与其他用户分享该体验。
发明人还认识到,虚拟环境可被用于捕获和重放用户的本地环境。关于用户的物理环境的本地传感器数据的捕获可以允许用户记录关于他们的物理环境的音频、视频和其他收集的传感器信息以供以后回顾。例如,如果用户拥有装备有用于捕获物理环境的传感器的家,则用户可以实现对在特定事件(例如,孩子的生日派对)期间的传感器数据的记录,使得以后用户可以重放传感器读出内容,从而在虚拟场景中重新创建该物理环境。这样的实施例可以允许用户重温记录的事件或回顾他们未出席的事件(例如,在游戏过程中模拟在超级碗的现场,或重放婚礼宴会)。
发明人还认识到用于跟踪用户位置和校准用于位置跟踪的传感器以向虚拟环境提供输入的方法和系统的缺陷。为此,发明人开发了新颖的系统用于集成从红外传感器、加速度计、陀螺仪、磁力计等接收的数据。从这些不同的系统接收的跟踪数据可以被合并和平滑,以改进用于识别用户位置的技术。此外,本发明人具有用于调整来自不同传感器的输入的校准机制。发明人开发了以下技术:通过监视从多个传感器接收的数据来确定HMD何时被放置在用户的头部上,以及作为响应而实施各种检测和校准动作。例如,当实施例基于加速度计读数检测到HMD已被拾取并放置在用户头部上时,则用户的位置可以在三维空间中被检测并被校准到虚拟环境坐标系。
发明人还认识到,各种接口和传感器可用于与虚拟环境进行交互。如本文所述的,为了与虚拟控制对象进行交互(并且实现未被虚拟控制对象提供的其他交互),发明人已经认识到可以采用提供不同反馈机制的各种装置。例如,使用专门设计的手套或鞋子可以提供与触摸按钮、项目的感觉质感等等有关的触知和/或触觉反馈。
发明人还开发了提供用于与其他用户共享环境的新颖特征的系统。来自本地和远程装置的传感器数据可以被用于提供接近警报和关于距离的其他反馈,该距离是指用户与用户的本地物理环境中的物理对象(例如,其他用户、家具)以及虚拟环境中的虚拟对象两者(例如,从另一物理位置参与虚拟环境的另一用户的化身)之间的距离。
还应当理解的是,本文中呈现的实施例尤其涉及用于如下操作的方法、设备、系统和计算机程序产品:生成多用户虚拟环境并且与多用户虚拟环境交互以及以其他方式使所述计算机经由与虚拟环境有关的输入来实施特定功能。因此,这些实施例必然关于和涉及针对提供这种多用户虚拟环境和使所述计算机以特定改进的方式进行操作的改进,并且这些改进解决了所述多用户虚拟环境特有的技术问题。
系统架构和示例设备
现在将参照附图在下文中更全面地描述本发明的一些示例性实施例,一些但不是全部的本发明的实施例示出在附图中。实际上,这些发明可以体现为许多不同的形式并且不应当被解释为限于本文阐述的实施例;相反,提供这些实施例使得本公开将满足适用的法律要求。相似的数字始终指代相似的元件。
本发明的方法、设备和计算机程序产品可以由任何的各种装置来体现。例如,示例实施例的方法、设备和计算机程序产品可以由一个或多个联网装置(诸如与HMD和一个或多个传感器通信的服务器或个人计算机)来体现。附加或替代地,计算装置可以包括固定的或联网的计算装置,诸如个人计算机或计算机工作站。更进一步地,示例实施例可由任何的各种移动终端(诸如便携式数字助理(PDA)、移动电话、可穿戴装置、智能电话、膝上型计算机、平板计算机或上述装置的任何组合)来体现。
在这方面,图1公开了在其中可以操作本发明的实施例的示例计算系统。服务器102可以用于与一个或多个传感器104和HMD 106通信。服务器102可以包括配置为生成和管理经由HMD 106向用户显示的虚拟环境的硬件和软件。该服务器102还可以从一个或多个传感器104接收数据以识别本地物理环境中的对象。服务器102的详细示例性实施例在下面关于图2被进一步描述。
HMD 106可以从服务器102发送和接收电子数据。例如,HMD 106可以向服务器102发送指示来自包含在HMD 106中的一个或多个加速度计或其他位置传感器的读数的数据。HMD 106可以接收指示如下内容的数据:经由包括在HMD 106中的一个或多个显示器显示的视频内容以及经由包括在HMD 106中的扬声器、耳机等输出的音频内容。HMD 106的详细示例性实施例在下面关于图3被进一步描述。
传感器104可以是可操作用于接收关于用户或用户的物理环境的信息的任何传感器,用户的物理环境可由服务器102用来生成所述虚拟环境。例如,传感器可以是由微软制造的Kinect®传感器、Leap Motion公司制造的Leap Motion®控制器、数据手套、指挥棒(诸如由索尼公司制造的PS Move®)、动捕获系统、数字摄像机、电容性触摸界面或能够生成指示对象在特定方位或深度处存在的传感器数据的任何其他传感器。传感器104可以向服务器102提供原始格式的数据,原始数据可以在服务器102被转换成位置信息,该位置信息指示由所述传感器感知的物理环境中物理对象的位置。一些实施例可以包括多个传感器,并且来自传感器的数据可被处理和组合在一起,以确定物理环境内的对象的位置。
传感器104捕获传感器数据,传感器数据可以被用来确定本地物理环境的状态,诸如一个或多个用户的方位、尺寸和移动,物理对象在传感器视场内的方位、尺寸和移动等等。应当理解的是,如上所述,一个或多个传感器104可以被包括作为HMD 106的一部分或耦合到HMD 106。
传感器104可在传感器的检测区域或视场内的特定物理区域中捕获数据。在一些实施例中,传感器通过生成深度图来检测对象。深度图可以包括与传感器的检测区域中的特定物理方位相关联的像素的帧。每个像素可以与一值相关联,该值表示位于该像素处的任何对象距传感器(诸如在红外传感器发射器/接收器传感器的情况下)的关联距离或深度。
服务器102可以包括传感器接口118,传感器接口118从传感器104接收传感器数据。传感器接口118可以包括用于从传感器104接收数据的硬件和软件两者。例如,传感器接口118可以包括用于与传感器104通信的物理有线连接或无线天线。传感器接口118还可以包括用于与传感器104通信的软件应用,诸如用于解释和/或后处理传感器数据的装置驱动器和工具。例如,传感器接口118可以包括用于基于接收的传感器数据来确定对象位置的设备驱动器和工具。所述传感器接口118可与HMD接口116、虚拟环境引擎120和网络接口122进行通信以提供用于实现虚拟环境的数据。所述传感器接口118可以为HMD接口116提供传感器数据以用于在HMD 106中显示的虚拟环境中重新创建物理环境的元素。例如,传感器接口118可以绕过虚拟环境引擎120,并把传感器数据直接提供HMD接口116用于在HMD 106上显示。附加或替代地,传感器接口118可把传感器数据提供给虚拟环境引擎120以用于更新虚拟环境的状态。
所述传感器接口118可以对传感器数据实施后处理、格式化和/或封装。例如,传感器数据可以采取在一段时间内多个帧的传感器捕获的形式。这些多个帧的数据可被用作平滑和/或滤波过程的一部分,以减少或消除来自数据的噪声和伪像。在又一实施例中,传感器数据可以被分析以识别感兴趣的特定对象(例如,用户)的存在并且这个分析的结果可以代替或附加于所述原始传感器数据被提供给虚拟环境引擎。在又一实施例中,传感器接口118可以跟踪除了所述原始传感器数据的与物理环境有关的附加数据。例如,传感器接口118可以识别除了用户的背景对象(例如,家具、墙壁和在用户的物理环境中的其他对象)的存在,并且即使当处于传感器的视场之外时(例如,当用户由于在对象的前面移动而遮蔽传感器的视场时)也缓存这种对象的存在。虽然与对象的识别和缓存检测到的对象的存在有关的功能通常关于传感器接口118被描述,但还应该理解的是,这样的功能也可以由服务器102的其他元件或部件来提供。例如,在一些实施例中,在传感器接口提供传感器数据之前,对象检测可以由传感器本身实施,而在其他实施例中,对象检测、缓存和显示可以由虚拟环境引擎120实施。
虽然本文所提供的示例可以一般地涉及与每个装置交互的单个用户,但应当理解的是,由装置捕获的传感器数据可以包括多个单独的用户。例如,给定装置可以包括单个传感器,该单个传感器能够跟踪多个用户、每个跟踪单个用户的多个传感器或者它们的任意组合。还应当理解,不同的设备可以被不同地配置,并且可以仍然参与同一多用户虚拟环境。例如,第一装置可具有第一类型的传感器,并且与第一装置通信的第二设备可以具有不同类型的传感器。在这方面,传感器接口118可能能够处理来自多种类型的传感器(即使不存在于服务器102上的传感器)的数据。
所述传感器接口118可以被配置成根据各种参数控制传感器数据的捕获。这些参数可包括但不限于:传感器本身的配置设置(例如,刷新速率、分辨率、对包括在传感器中的电动机和透镜的指令)、用于传感器数据的内部或网络传送的配置设置(例如,把传感器数据帧发送到虚拟环境引擎或经由网络接口发送到远程装置所按照的频率、发送缓存的背景数据帧所按照的频率)、与传感器数据的后处理和分析有关的配置设置(例如,用于扩展检测到的用户掩模的像素半径,用于平滑操作的传感器数据帧的数目),等等。这些参数可以直接由用户或服务器102的管理员配置,由在服务器102上执行的应用以编程方式配置,或者经由从远程装置接收的网络指令配置。
HMD接口116可以包括配置成向HMD 106发送数据和从HMD 106接收数据的硬件和软件。就HMD 106包括一个或多个传感器来说,HMD接口116可提供与上面关于传感器接口118描述的那些HMD传感器相同或类似的功能。HMD接口116还可以包括:图形硬件(例如,图形处理单元),用于将显示信息输出给包括在HMD 106中的一个或多个显示器;和音频硬件,用于输出声音给包括在HMD 106中的一个或多个扬声器。HMD接口116也可以包括用于与HMD106的元件通信的其他硬件,包括但不限于用于与如下各项通信的硬件:振动元件和其他触觉反馈部件、用于由传感器104进行感知的发光二极管(LED)和其他信标,以及用于发送和接收各种形式的输入和输出以促进虚拟环境向用户呈现的HMD 106的各种其他传感器104。
所述虚拟环境引擎120可以管理由服务器102提供的虚拟环境的状态。虚拟环境引擎120可以从传感器接口接收传感器数据并且基于所述传感器数据更新和修改虚拟环境。例如,在所述传感器数据中检测到的物理对象可被映射到虚拟环境中和/或用于生成物理对象的虚拟表示。虚拟环境引擎120可以监视各种触发、交互和在虚拟环境内发生的类似操作。因此虚拟环境引擎120可以包括用于如下操作的各种线程、过程和功能:维持虚拟环境的状态,传送虚拟环境的状态给其他装置(例如,作为虚拟环境数据),提供用于显示所述虚拟环境的指令,以及以其他方式促进用户对虚拟环境的感知和与虚拟环境的交互。
网络接口122可以包括硬件,被配置为通过网络112向耦合到服务器102的其他计算节点(诸如远程装置114)发送和接收数据。网络接口122可以向参与共享虚拟环境的其他计算节点发送和从所述其他计算节点接收传感器数据和虚拟环境数据。网络接口122可以帮助把数据封装、压缩和传送成适合于通过网络传送的格式。替换地,在一些实施例中,诸如传感器接口118和虚拟环境引擎120之类的系统的其他部件可以在将数据提供给网络接口之前处理和封装用于传送的数据。
网络112可以是能够在本领域已知的计算节点之间建立电子通信的任何计算机网络。例如,网络112可以是分组交换网络,诸如互联网。应当理解的是,实施例可以经由各种有线和无线网络协议(诸如以太网、802.11系列无线协议、蓝牙,或本领域已知的任何其他网络)进行通信。
用于实现本发明的实施例的示例设备
服务器102可以由一个或多个计算系统(诸如在图2中所示的设备200)体现。如图2中所示,设备200可以包括处理器202、存储器204、输入/输出电路206、通信电路208、传感器接口电路210、虚拟环境状态管理电路212和HMD接口电路214。设备200可以配置为执行上面关于图1和下面关于图4-15描述的操作。尽管这些部件202-216关于功能限制被描述,但是应当理解的是,特定的实现方式必须包括使用特定硬件。还应当理解,这些部件202-216中的某些可以包括类似或共同的硬件。例如,两组电路都可以利用使用相同的处理器、网络接口、存储介质或类似物来实施其关联的功能,使得不需要针对每一组电路的重复硬件。因此,本文中关于设备的部件所使用的术语“电路”的使用应被理解为包括被配置为实施与本文描述的该特定电路相关联的功能的特定硬件。
在一些实施例中,术语“电路”应被广义理解为包括硬件并且也包括用于配置硬件的软件。例如,“电路”可包括处理电路、存储介质、网络接口、输入/输出装置和类似物。在一些实施例中,设备200的其他元件可提供或补充特定电路的功能。例如,处理器202可以提供处理功能,存储器204可以提供存储功能,通信电路208可以提供由设备200的其他部件使用的网络接口功能。
在一些实施例中,处理器202(和/或协处理器或帮助处理器或以其他方式与处理器相关联的任何其他处理电路)可以经由用于在设备的各部件之间传递信息的总线与存储器204进行通信。存储器204可以是非临时性的,并且可以包括例如一个或多个易失性和/或非易失性存储器。换句话说,例如,存储器可以是电子存储装置(例如,计算机可读存储介质)。存储器204可以被配置为存储信息、数据、内容、应用、指令等,以便使设备能够根据本发明的示例实施例来执行各种功能。
处理器202可按照许多不同的方式体现,并且可以例如包括被配置为独立地进行实施的一个或多个处理装置。附加或替代地,处理器可以包括经由总线串联配置以实现指令的独立执行,流水线操作和/或多线程操作的一个或多个处理器。术语“处理电路”的使用可以被理解为包括单核处理器、多核处理器、设备内部的多个处理器,和/或远程或“云”处理器。
在示例实施例中,处理器202可以被配置为执行存储在存储器204中或以其他方式可由所述处理器访问的指令。替代或附加地,该处理器可以被配置为执行硬编码功能。这样,无论是由硬件或软件方法配置,还是由硬件和软件方法的组合配置,所述处理器可以表示能够根据本发明的实施例实施操作同时被相应地配置的实体(例如,物理地体现在电路中)。替代地,作为另一示例,当处理器体现为软件指令的执行器时,指令可以在所述指令被执行时具体地把处理器配置为实施本文描述的算法和/或操作。
在一些实施例中,设备200可包括输入/输出电路206,输入/输出电路206可以继而与处理器202通信以提供输出到用户,并且在一些实施例中,接收用户输入的指示。输入/输出电路206可以包括用户接口,并且可以包括显示器,并且可以包括web(网络)用户界面、移动应用、客户端装置、自助服务终端(kiosk)或类似物。在一些实施例中,输入/输出电路206还可以包括键盘、鼠标、操纵杆、触摸屏、触摸区域、软键、麦克风、扬声器或其他输入/输出结构。处理器和/或包括所述处理器的用户接口电路可以被配置为通过存储在可由处理器访问的存储器(例如,存储器204和/或类似物)上的计算机程序指令(例如,软件和/或固件)控制一个或多个用户接口元件的一个或多个功能。
通信电路208可以是诸如体现在硬件或硬件与软件的组合中的装置或电路之类的任何装置,其被配置为从网络和/或与所述设备200通信的任何其他装置、电路或模块接收数据和/或向所述网络和/或任何其他装置、电路或模块传送数据。通信电路208可以实现网络接口122,如上面关于图1所描述的。在这方面,通信电路208可以包括例如用于实现与有线或无线通信网络通信的网络接口。例如,通信电路208可以包括一个或多个网络接口卡、天线、总线、交换机、路由器、调制解调器以及支持硬件和/或软件,或适合于经由网络实现通信的任何其他装置。附加或替代地,通信接口可以包括用于与(一个或多个)天线交互以引起经由所述(一个或多个)天线的信号传送或处置经由所述(一个或多个)天线接收的信号的接收的电路。
传感器接口电路210可包括被配置为进行如下操作的硬件:向耦合到服务器的一个或多个传感器(诸如以上关于图1所描述的传感器104)发送指令以及从耦合到服务器的一个或多个传感器接收数据。传感器接口电路210可以实现传感器接口116,如以上关于图1描述的。传感器接口电路210可包括被配置为与传感器进行有线或无线通信的电连接。传感器接口电路210也可促进捕获传感器数据和传送传感器数据到系统的其他部件,诸如把传感器数据提供到虚拟环境状态管理电路212用于更新虚拟环境,或把传感器数据提供给通信电路208用于传送。在把传感器数据提供给虚拟环境状态管理电路或通信电路之前,所述传感器接口电路210还可以提供对接收的传感器数据的后处理和分析。传感器接口电路210还可以包括处理电路(诸如处理器202),该处理电路执行一个或多个工具、驱动程序、应用编程接口(API)等以与传感器通信并且处理传感器数据。还应当理解的是,在一些实施例中,传感器接口电路210可包括单独的处理器、专门配置的现场可编程门阵列(FPGA)或专用接口电路(ASIC)以便实施本文描述的功能。因此,所述传感器接口电路210使用设备的硬件部件来实现,该硬件部件由用于实现上面列举的功能的硬件或软件来配置。
虚拟环境状态管理电路212包括配置为管理虚拟环境状态的硬件。如上所述,虚拟环境状态包括指示虚拟环境中一个或多个对象的方位和状态的电子数据。虚拟环境状态管理电路212也可以实现用于控制虚拟环境状态的模拟的其他方面。例如,虚拟环境状态管理电路212可以管理虚拟环境更新的速率、虚拟环境内对象的坐标方位的分辨率、虚拟环境中对象之间交互的模拟,等等。虚拟环境状态管理电路212可以包括用于管理虚拟环境的处理电路,诸如处理器202。还应当理解的是,在一些实施例中,虚拟环境状态管理电路212可包括单独的处理器、专门配置的现场可编程门阵列(FPGA)或专用接口电路(ASIC)以实施本文描述的功能。因此,虚拟环境状态管理电路212使用设备的硬件部件来实现,该硬件部件由用于实现上面列举的功能的硬件或软件来配置。
HMD接口电路214用于:提供电子数据去往和来自HMD,以使得HMD的用户能够经由HMD体验虚拟环境;以及从耦合到HMD的任何传感器提供传感器数据给虚拟环境状态管理电路212。例如,例如,HMD接口电路214可以提供显示输出到包括在HMD中的一个或多个显示器以向用户显示虚拟环境的一部分,并且从包括在HMD中的一个或多个加速度计接收输入以确定用户观看角度,从而帮助所述虚拟环境状态管理电路212确定要在(一个或多个)HMD显示器上显示虚拟环境的哪个特定部分。在一些实施例中,HMD接口电路214包括处理器或图形处理单元(GPU)以实现显示输出到HMD。应当理解的是,在一些实施例中,虚拟环境状态管理电路还可以共享或利用相同的处理器或GPU来管理虚拟环境状态,以帮助管理虚拟环境。在一些实施例中,经由一个或多个驱动程序或API实现与HMD的对接,该驱动程序或API发送作为唯一与HMD相关联的单个信号或其他特别限定的通信技术的数据,而在其他实施例中,HMD接口电路214与HMD的特定部件直接通信(例如去往HMD的每个显示器的单个视频输出、针对HMD的音频部件的单个视频输出、针对耦合到HMD的每个传感器的数据输入)。
HMD接口电路214可以包括用于向HMD提供数据的处理电路,诸如处理器202。还应当理解的是,在一些实施例中,HMD接口电路214可以包括一个单独的处理器、专门配置的现场可编程门阵列(FPGA)或专用接口电路(ASIC)来实施本文描述的功能。HMD接口电路214因此使用设备的硬件部件来实现,该硬件部件由用于实现上面列举的功能的硬件或软件来配置。
如将理解的,任何这种计算机程序指令和/或其他类型的代码可以被加载到计算机、处理器或其他可编程设备的电路上以产生机器,使得在该机器上执行所述代码的计算机、处理器或其他可编程电路创建用于实现各种功能(包括本文所描述的那些)的装置。
如上所述并且如基于本公开将被理解的,本发明的实施例可以被配置为方法、移动装置、后端网络装置等等。因此,各实施例可以包括各种装置,该各种装置包括完全的硬件或软件和硬件的任何组合。此外,实施例可以采取至少一个非临时性计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品具有体现在所述存储介质中的计算机可读程序指令(例如,计算机软件)。任何合适的计算机可读存储介质可以被利用,包括非临时性硬盘、CD-ROM、闪存、光存储装置或磁存储装置。
现在参考图3,图示了框图,该框图示出了示例HMD,即设备300,设备300使用户能够通过使用头戴式显示屏幕来体验沉浸在虚拟环境中的感觉。设备300可以包括以下各项或者以其他方式与以下各项通信:数据传送电路302、位置定位电路304、加速度计电路306、第一显示电路308、第二显示电路310和音频输出电路312。如上所述,在一些实施例中,每个HMD部件可以被实现为具有不与彼此通信的个体分立部件(例如,各自接收单独的输入信号的两个单独的显示器、具有分立的音频输入/输出信号的耳机和/或麦克风、与服务器设备(诸如设备200)的部件直接通信的加速度计,等等)的单个外壳,而在其他实施例中,HMD设备300可以被实现为经由特定数据传送电路302彼此通信并且与服务器设备200通信的多个部件。数据传送电路302可因此包括被如下配置的电子部件:处理来自HMD的不同部件的电子信号并且把所述分量翻译成适合于由服务器200使用(consumption)的一个信号、多个信号、一个流或多个流,并且把来自服务器一个信号、多个信号、一个流或多个流翻译成适合于由HMD的个体部件使用的信号。
HMD可以包括用于检测HMD的移动、俯仰、相对位置(bearing)、取向等的加速度计电路306。该信息可以被提供给服务器用于确定虚拟环境的哪个区域对应于HMD的取向/相对位置,使得可经由第一显示电路308和/或第二显示电路310显示虚拟环境的所述对应区域。
定位电路304可以包括用于配置与HMD相关联的方位服务模块和功能并与其进行通信的电子装置。例如,HMD设备300的实施例可以包括一个或多个红外信标,该红外信标可以响应于来自服务器的信号而被打开和关闭。这些红外信标可以启用由耦合到服务器的红外传感器进行的检测。因此,定位电路304可以用于打开和关闭所述红外信标,使红外信标按照特定速率或按照特定样式闪烁,以及以其他方式帮助进行方位检测和物理环境校准功能。在一些实施例中,HMD可以包括接收作为定位电路304的一部分的全球定位系统,并且应当容易理解的是,各种不同的测位和定位技术可以用以帮助检测HMD设备300的位置。
第一显示电路308和第二显示电路310包括用于显示从服务器接收的信号的硬件,诸如投影屏幕、液晶显示面板等。应当理解的是,第一显示电路308和第二显示电路310可以共享一些共同的硬件和/或软件元件。例如,在一些实施例中,第一显示电路308和第二显示电路310中的每一个是接收单独输入信号的完全单独的显示器。在其他实施例中,第一显示电路308和第二显示电路310可以包括由HMD的物理元件分离的单个显示面板(例如,定位在用户鼻子附近的阻挡面板)。在更进一步的实施例中,单个显示信号可以被提供给可分裂该信号以创建用于两个单独的显示面板的两个不同来源的电路。以这种方式使用两个显示器允许服务器输出可以被用来创建立体三维图像的两个单独的图像。然而,还应当认识到,在一些实施例中,HMD可以包括仅单个显示器或者甚至根本不显示立体图像,但仍然用于根据本发明的实施例向HMD的用户显示虚拟环境以及实现与所述虚拟环境的交互。
HMD设备300可以包括被配置为输出音频信号的音频输出电路312。例如,HMD设备300可以包括用于输出声音到佩戴HMD的用户的内置扬声器、耳机等。
多用户虚拟环境数据流的示例
图4描绘了示例数据流400,示例数据流400图示虚拟现实系统的不同部件之间的交互,虚拟现实系统可操作为使用户沉浸在虚拟环境中以及实现多用户虚拟环境。具体来说,数据流400图示本地装置402可以如何通过本地传感器接口408从一个或多个传感器406接收电子数据,使用本地传感器接口408处理传感器数据,以及将传感器数据提供给本地虚拟环境引擎410和远程装置404的远程传感器接口416二者以促进本地装置402和远程装置404对多用户虚拟环境的实现。
本地装置402和远程装置404可以是本领域中已知的计算装置。例如,每个装置可以被配置为或类似于上面关于图2所描述的设备200。每个装置还可以包括用于显示虚拟环境的HMD(未图示)。HMD可以如以上关于图1和图3描述的那样被配置。
在本示例性情况下,本地装置402和远程装置404通常被描述为对等节点,它们均具有关于接收和处理传感器数据和管理虚拟环境状态的类似功能。然而,应该理解的是,实施例还可以包括其中一个装置充当客户端装置并且另一装置充当服务器装置的场景,或者其中多个客户端装置与服务器装置交互的场景。例如,虽然本数据流400图示了两个装置彼此交换信息,但替代实施例可以具有与第三服务器装置进行通信的两个客户端装置,第三服务器装置不包括任何本地传感器数据,而是仅从外部装置接收传感器数据。
由本地传感器406生成的传感器数据由本地传感器接口408接收。本地传感器接口408可以是诸如上面关于相对于图1描述的传感器接口118和相对于图2描述的传感器接口电路210描述的传感器接口。本地传感器接口408可接收传感器数据并管理所述传感器数据到本地网络接口412的分发,以便传送到远程装置404和本地虚拟环境引擎410。
本地传感器接口408可以管理本地传感器数据到远程装置404上的远程传感器接口416的传送。为了实施该功能,本地传感器接口408可以利用本地网络接口412来打开本地装置402和远程装置404之间的网络连接。在一些实施例中,在本地装置402和远程装置404之间建立单个网络连接用于本地装置402和远程装置404之间的所有数据(例如,传感器数据和虚拟环境数据二者)传送。在这种情况下,传感器数据和虚拟环境数据可以在明确地针对特定类型的数据保留的分组(例如,针对传感器数据或虚拟环境数据保留的特定分组)中被发送,或在包含两种数据类型的分组(例如,单个数据分组或包括在同一结构中针对传感器数据和虚拟环境数据二者的字段的一组分组)中被传送。在其他实施例中,在本地装置402和远程装置404之间建立用于不同类型的数据的不同网络连接。例如,传感器数据可以在第一网络端口上传送,并且虚拟环境数据可以在第二网络端口上传送。本地装置402和远程装置404之间的网络连接可以根据各种网络协议(包括但不限于传输控制协议/互联网协议(TCP/IP)、用户数据报协议(UDP),或各种其他单播或多播网络协议)来建立。
本文中所描述的网络连接可以是逻辑连接(例如,通过使用多个插座、端口、IP地址等等)和/或物理连接(例如,通过使用多个网络接口卡或物理以太网连接)。本发明的实施例采用的不同网络连接可以根据彼此不同的协议来实现。例如,在一些实施例中,虚拟环境数据可以根据支持数据分组的确认的协议(例如,TCP/IP)被传送,而传感器数据可以根据不确认的协议(例如,UDP)被传送,或反之亦然。在一些实施例中。
传感器数据和虚拟环境数据的传送可以被同步或异步地实施。例如,虚拟环境数据可以按照第一间隔(例如,5ms、100ms、500ms)传送,并且传感器数据可以按照第二接口(例如,10ms、250ms、1000ms)传送。用于每个数据类型的传送频率也可以被动态地改变。例如,在一些实施例中,虚拟环境数据可以基于在虚拟环境中发生的事件(例如,当虚拟环境中的对象的状态变化时,或当检测到特定用户输入时)而被传送,而传感器数据可以按照设置频率被传送,或反之亦然。在一些实施例中,在特定时间段内在传感器数据中检测到更大的变化(例如,在对象更快速地移动的情况下)的情况下更频繁地传送传感器数据。在其他实施例中,传感器数据的传送频率可以取决于传感器可见的用户的数目(例如,更多的用户导致增加的传送频率)。
在本地传感器数据传送到远程装置404之前,本地传感器接口408还可以处理、分析、压缩和/或封装本地传感器数据。本地传感器接口408可以对本地传感器数据实施平滑、滤波或其他后处理以去除噪声,降低伪像等。本地传感器接口408还可以识别传感器数据内的感兴趣对象(例如,被怀疑是用户的对象)。例如,本地传感器接口408可以识别被怀疑与用户相关联的传感器数据帧的特定像素,以及被怀疑与背景对象相关联的其他像素。可以在与原始传感器数据一起被发送到远程装置404的图像掩模内识别被怀疑与用户相关联的像素。被怀疑与背景对象相关联的像素可以被识别并在本地被缓存。缓存的数据也可与原始传感器数据一起被发送到远程装置404,以识别在特定传感器帧中不可容易识别但被先前被识别的对象。(例如,由于用户在对象和传感器之间移动而被遮蔽的对象)。
本地传感器接口408还可以把本地传感器数据提供给本地虚拟环境引擎410。本地虚拟环境引擎410可以使用本地传感器数据来在虚拟环境内识别对象的方位,以用于基于在本地传感器数据中识别的对象的位置管理虚拟环境,更新虚拟对象在虚拟环境中的位置等等的目的。本地虚拟环境引擎410可以用于为多个用户生成和维持共享虚拟环境。虚拟环境引擎也可以基于虚拟对象之间的关系识别触发动作、功能以及其他处理事件。例如,本地虚拟环境引擎410可以是用于生成输出到一个或多个HMD的三维虚拟环境的“游戏引擎”或其他模拟。
本地虚拟环境引擎410可以把虚拟环境数据传送到在远程装置404的部件上执行或作为远程装置404的部件的远程虚拟环境引擎420,以同步本地装置402和远程装置404二者的用于用户的虚拟环境。虚拟环境数据可以包括与处于给定时间间隔(例如,其中本地虚拟环境引擎按照特定间隔发送数据)或响应于特定事件(例如,其中本地虚拟环境引擎响应于与虚拟环境相关联的特定准则、输入、动作等而发送数据)的虚拟环境的状态有关的数据。本地虚拟环境引擎410还可以管理到HMD的显示器的输出,以向用户显示虚拟环境的一部分。例如,本地虚拟环境引擎410可以向图形处理单元(GPU)提供数据以输出给HMD的一个或多个显示器。
本地虚拟环境引擎410可以使一个或多个用户能够通过使用虚拟控制对象与虚拟环境对接。检测到的与这些虚拟控制对象的交互可以作为虚拟环境数据被传送到远程装置404。这种虚拟控制对象的示例性实施例和用于实现与这种对象的交互技术的示例性系统、方法和装置在共同提交的美国专利申请__/______中被进一步描述,该专利申请于2015年1月28日提交,标题为“METHOD AND SYSTEM FOR RECEIVING GESTURE INPUT VIA VIRTUALCONTROL BOJECTS”(代理人案卷号059638/454919),该专利申请的全部内容通过引用并入本文。
本地虚拟环境引擎410和/或本地传感器接口408也可以被配置成检测传感器数据内物理对象的存在,包括位于传感器视场中的用户和任何其他物理对象的存在。检测到的物理对象可被用于生成所述对象的虚拟表示,所述对象的虚拟表示被显示在虚拟环境中。虚拟表示可以从用于检测所述对象的传感器数据生成。在一些实施例中,图形处理单元用于从传感器数据帧生成多边形。检测到的物理对象和/或它们的对应虚拟表示的存在可以在本地缓存并且存储在一组缓存的对象数据内以即使当物理对象在传感器数据内不可见时也实现那些虚拟表示的显示(诸如当物理对象被从传感器数据遮蔽时)。用于检测物理对象(包括用户和非用户对象二者)的示例性实施例和用于生成与这些物理对象对应的虚拟表示的方法在共同提交的美国专利申请__/______中被进一步描述,该美国专利申请于2015年1月28日提交,标题为“METHOD AND SYSTEM FOR PROVIDING VIRTUAL DISPLAY OF APHYSICAL ENVIRONMENT”(代理人案号059638/454921),该专利申请的全部内容通过引用并入本文。
远程装置404可以与本地装置402类似地被配置为具有与远程虚拟环境引擎420通信的对应远程传感器接口416。远程传感器接口416可以被配置为按照与本地传感器接口408从本地传感器406接收传感器数据的方式类似的方式从远程传感器418接收远程传感器数据。远程虚拟环境引擎420可以按照与本地虚拟环境引擎410管理针对本地装置的虚拟环境类似的方式管理针对远程装置404的虚拟环境。
远程装置404还可以包括远程网络接口414。远程网络接口可以被配置为从网络(诸如上面关于图1描述的网络112)接收数据。本地网络接口412和远程网络接口414中的每一个被体现为如上文关于图2描述的通信电路。
远程装置404可以经由远程网络接口414从本地装置402接收本地传感器数据和虚拟环境数据。如上所述,在一些实施例中,本地传感器数据和虚拟环境数据可以经由相同的网络连接(例如,相同的插座)接收,而在其他实施例中,本地传感器数据和虚拟环境数据可以经由不同的插座接收。在一些实施例中,与本地装置402和远程装置404相关联的相应传感器接口和虚拟环境引擎中的每一个针对它们相应的数据传送建立单独的网络连接,而在其他实施例中,不同的数据传送可以是同步的或以其他方式封装在一起。
远程网络接口414可以把接收的本地传感器数据提供给远程传感器接口416。远程传感器接口416可以接收本地传感器数据并按照从远程传感器418接收的远程传感器数据被处理相同或类似的方式处理该本地传感器数据。在一些实施例中,远程传感器接口416可能无法确定特定的一组传感器数据从针对特定装置的本地源还是远程源被接收。在其他实施例中,一组给定的传感器数据可以被标记有特定元数据以指示数据的起源。在一些实施例中,通过网络提供的传感器数据可以在传送之前被处理和分析,使得远程传感器接口416不需要再次处理和分析数据。以这种方式,实施例可以减少处理传感器数据中的处理开销,因为每组传感器数据可以在传送之前首先在其相应的本地装置上被处理,因为传感器数据在被提供给相应的虚拟环境引擎之前通常被本地处理。因此,通过网络提供给远程装置的数据可以已经被平滑、滤波、和分析,使得所述远程装置所需的处理被减少。替代地,在一些实施例中,本地传感器数据在传送到所述远程装置之前可以不被处理。例如,在一些场景中,本地装置和远程装置可能具有不同的处理能力,诸如在本地装置是移动电话并且远程装置是安装在机架上的服务器、云服务器或台式计算机的情况下。在这种情况下,传感器数据在传送到远程装置之前可以不被本地处理或分析,以期望传感器数据将由接收计算机处理和分析。
远程传感器接口416可以把远程传感器数据和本地传感器数据封装一起以提供给远程虚拟环境引擎420。在一些实施例中,远程传感器接口416可以把识别符附加到传感器数据以在将数据提供给远程虚拟环境引擎420时识别特定组传感器数据的源,以使远程虚拟环境引擎420能够识别传感器数据与哪个用户相关联。例如,远程传感器接口416可以利用如下各项标记每组传感器数据:用户编号(例如,玩家1、玩家2)、源计算机编号(例如,装置1、装置2、装置3),源地址(例如,源计算机的互联网协议地址)、传感器帧编号(例如,针对本地数据的偶数和针对远程数据的奇数)等等。替换地,在一些实施例中,识别符可以被生成传感器数据的装置附加到传感器数据。
应当理解的是,虽然本图仅图示了以单向方式被提供到远程装置的本地传感器数据,但实施例也可以以双向方式提供传感器数据,使得来自每个装置的传感器数据被提供到其他装置。来自其他装置的传感器数据可以被用于验证和/或确认从这些装置接收的虚拟环境数据。在多玩家游戏背景下,一些恶意用户可能企图修改其本地虚拟环境引擎以发送使恶意用户能够具有竞争优势的虚假数据。例如,在第一人称射击游戏中,一些用户采用“瞄准机器人”,瞄准机器人修改用户的客户端或外发的数据包以登记对其他玩家的虚假“命中”。因为,在虚拟环境的背景下,可以通过由传感器数据登记的动作实施由用户做出的输入,所以将传感器数据提供给其他装置允许检查以验证在虚拟环境数据中指示的动作是合法的。
作为另一示例,传感器数据可被用于重构来自另一装置的用户的外观。这样的数据可以是有用的。在针对显示每个用户而不是这些用户的虚拟对象表示的会议地点或游戏场建立虚拟环境的情况下,这种数据可能是有用的。传感器数据可因此被用于生成一构造,该构造显示捕获其他用户的位置、尺寸、形状等等的实际传感器数据。在虚拟会议地点的情况下,从远程装置接收传感器数据可以实现显示其他用户的实际图像,而不是显示不承载与其他用户的相似性的虚拟对象。
用于压缩传感器数据的示例性操作
图5描绘了根据本发明的实施例的传感器数据500的帧的示例。在该背景中,传感器数据500是像素数据帧。像素数据可以被呈现为宽度“x”和高度“y”的一系列像素。例如,传感器数据500可以从摄像机、红外发射器/传感器、电容式触摸板等被捕获。数据帧内像素的强度可以指示对象存在于数据的特定方位处的可能性。示例性帧500包括用户502和静止对象504。可以由各种处理部件(诸如关于图1描述的传感器接口或关于图2描述的传感器接口电路)实施传感器数据500的帧的分析。传感器数据500的帧的分析可提供可能包含用户的一系列像素的指示。这一系列像素可以由掩模506识别。掩模506可以识别最有可能包含用户的特定像素或像素范围。可以通过在多个传感器数据帧中的每个传感器数据帧中识别可能包含用户的一系列像素在一系列传感器数据帧上识别掩模506。在一些实施例中,可以由传感器本身或由针对传感器的应用或其他软件接口来识别掩模506。在一些实施例中,通过把已知或怀疑的用户区域扩展一定数目的像素来确定掩模,以确保掩模区域包围包括所述用户和稍微更大区域的帧区域。
对传感器数据帧的分析也可被用于识别具有感兴趣对象的区域和不太感兴趣不感兴趣的区域。例如,在当前帧500中,由“p”识别的像素的竖直范围并且由“q”识别的像素的水平范围不包含任何感兴趣的对象。
图6图示在用于减少传送的数据量的压缩操作之后对应于传感器数据500的帧的传感器数据600的帧。传感器数据600的帧已被修剪,以去除缺乏由传感器识别的任何对象的区域“p”和“q”。传感器数据600的帧包括用户602、掩模606和静止对象604。通过修剪所述帧以排除不包含感兴趣对象的区域,传送传感器数据帧所需要的数据量被减少。为了计及传感器数据中帧大小的可变性,在传送传感器数据时可以由伴随帧的元数据来指示帧大小。应当认识到,对传感器数据帧的修剪也可以根据用于确定是否和如何修剪所述帧的其他技术来实施。例如,如果用户被确定在几个帧上以比速度的阈值量更大的量移动,则可减少或消除沿着移动轴的修剪。如果用户静止或以较慢的速率移动,那么该帧可以被更积极地修剪,因为存在较低的可能性意外修剪掉相关帧数据。
传送缓存的传感器数据的示例性操作
图7图示了描绘静态对象704(在这种情况下为办公椅)和用户702的示例性传感器数据700的帧,用户702将静态对象704从捕获传感器数据700的帧的传感器的视野遮蔽。在这种场景中,静态对象704可能由于如下事实而不容易被传感器看到或识别:用户702已经阻止传感器清楚地看到对象。然而,如果静态对象704在先前的传感器数据中已被捕获(例如,在用户在静态对象前方移动之前),则实施例可能已捕获到对象的方位、尺寸和形状,并存储该信息作为缓存的背景数据。这样,当用户在传感器数据700的帧中遮蔽对象时,实施例可能由于缓存的数据而仍然感知对象的存在。
图8图示包括缓存的数据的示例性传感器数据800的帧,缓存的数据指示静态对象804的存在,即使静态对象804被用户802遮蔽。以这种方式,实施例仍可以感知物理环境中的对象,即使当这些对象不容易对一个或多个传感器可见时。这样的对象可以作为传感器数据的分量被存储和传送,该传感器数据的分量被传送到远程装置,如上面关于图4描述的。用于使用这种缓存的数据的示例性方法在下面关于图14被进一步描述。
多用户虚拟环境的示例性描绘
图9描绘根据本发明实施例的多用户虚拟环境900的示例性表示。多用户虚拟环境900包括本地用户902、一个或多个虚拟对象904(在这种情况下为虚拟会议桌)和远程用户906的表示。远程用户906的表示可以基于从与远程用户906关联的装置接收的传感器数据被生成。远程用户906的表示可以被定位和显示,使得看起来远程用户906位于与本地用户相同的物理环境中。类似地,在远程用户的显示器上,本地用户902可以被显示为好像本地用户处于远程用户的物理环境中。虚拟对象904也可以对两个用户都可见。用户和虚拟对象对于彼此的相对定位可以由虚拟环境引擎控制,虚拟环境引擎确定每个用户和任何显示的虚拟对象的坐标位置和取向。在一些实施例中,从远程装置接收的传感器数据可能需要被校准或偏移,以正确地定位远程用户。例如,如果远程传感器被放置在比本地传感器低的观看角度,如果数据没有被校准,则远程用户可能显现为在本地用户的物理环境的地板上方。由远程装置提供的传感器数据可以包括足以将传感器数据校准到由两个用户所体验的联合虚拟环境的数据。例如,远程传感器可以包括一个或多个加速度计或陀螺仪以指示观看角度、取向等等,并且这样的数据可以作为传送的传感器数据的一部分被传送。
传感器数据传送的示例性数据结构
图10图示了根据本发明的一些实施例的用于存储和传送传感器数据的示例性数据结构1000。该数据结构1000包括传感器帧数据1002、缓存的背景数据1004、对象掩模数据1006以及传感器配置数据1008。传感器帧数据1002可以包括从传感器接收的原始或经处理的帧数据。例如,传感器帧数据1002可以被表达为位图,其中位图的像素对应于物理环境的特定部分。与每个像素相关联的值(例如,强度值)可以指示目标在对应于该特定像素的物理方位处存在的可能性或每个物理方位处传感器和对象之间的估计距离。如上所述,传感器数据帧的大小可以是动态配置的,以减少通过网络传送的数据量。为此,传感器帧数据1002还可以包括指示如下内容的数据:传感器帧大小以及传感器帧的哪个边缘(如果有的话)被截断或修剪的指示。被指示为截断或修剪的传感器帧的各部分可被假定为与零值相关联或以其他方式不包括任何检测到的对象。
缓存的背景数据1004可以包括与先前被传感器检测到并且被缓存但当前不能被检测到(诸如由于传感器的取向(例如,传感器沿一个或多个轴摇摄)或由于被缓存对象的遮蔽)的对象有关的数据。
对象掩模数据1006可以包括指示如下内容的数据:传感器帧数据1002的哪些像素或像素范围与特定感兴趣的对象(例如,用户或输入装置)有关。
传感器配置数据1008可以包括与捕获数据的传感器的取向、捕获设置、尺寸、方位或其他参数有关的数据。例如,该传感器配置数据可包括增益设置、相对于地板的取向的度、捕获帧数据的缓冲器的分辨率或者与在其中捕获传感器数据的场景有关的任何其他参数。
该数据结构1000可以按照适合于通过网络传送的形式来生成,或者数据结构1000可以被提供给另一元件(例如,网络接口),以进行分组和传送。该数据结构1000可以包括多个缓冲器,该多个缓冲器用于存储不同类型的数据1002-1008。在一些实施例中,数据结构1000在被组装之后被压缩。该数据结构1000可以作为单个块被传送,或者它可以根据各种网络传送方法和协议被分组。
应当理解的是,关于所述数据结构1000描述的数据的类型不意图进行限制,并且所述数据结构还可以包括其他数据类型。例如,数据结构1000的一些实施例也可以包括从传感器数据的分析得出的与特定用户相关联的关节数据或者其他解剖元素。
在一些实施例中,不同类型的数据被以不同的间隔传送,使得传送的传感器数据的一些组缺乏上述类型的传感器数据中的一个或多个类型。例如,缓存的背景数据1004可以基于如下事实被以低于传感器数据帧的频率被传送:这种缓存的背景数据1004不太可能基于逐帧发生变化。
用于实现多用户虚拟现实环境的示例性计算机实现的方法
图11-15描绘了根据示例性实施例的用于实现多用户环境的示例性计算机实现的过程。这些过程可由计算装置(诸如关于图1所描绘的服务器102、关于图2所描绘的设备200以及关于图4所描绘的本地装置402和远程装置)实现。
图11是描绘用于捕获传感器数据并把所捕获的传感器数据与虚拟环境数据一起传送到远程装置的示例性计算机可执行过程1100的流程图。过程1100图示了给定装置如何能够生成传感器数据和虚拟环境数据并通过网络将所述数据传送到远程装置。
在动作1102,该过程接收上面关于图1-10描述的一组传感器数据。应当理解的是,虽然该组传感器数据一般直接从特定传感器接收,但在一些实施例中,该组传感器数据可以被从另一装置或接口(例如,在执行过程1100的装置作为另一装置的中间人或中间网络进行操作的情况下)接收。
在动作1104,实施例可以提供对传感器数据的后处理。如上所指出的,后处理可以包括各种滤波、平滑和分析技术,诸如双边滤波、高斯模糊、时间滤波等等。这种后处理技术可减少传感器数据中的噪声并改进传感器数据内对象的检测。后处理也可以包括修剪和/或压缩数据,诸如以上关于图7-8所描述的。用于提供压缩的传感器数据的示例性操作在下面关于图13进一步描述。
在动作1106,经后处理的传感器数据被提供给网络接口和虚拟环境引擎二者。在动作1108中,经后处理的传感器数据由虚拟环境引擎用于更新由所述虚拟环境引擎管理的虚拟环境以及生成描述虚拟环境的状态的虚拟环境数据。例如,传感器数据可以识别虚拟环境中的一个或多个游戏引擎事件。在动作1110,虚拟环境数据也被提供给网络接口。
在动作1112,经后处理的传感器数据和所述虚拟环境数据被传送到远程装置。如上所述,经后处理的传感器数据和所述虚拟环境数据可以被分别地或经由相同的网络连接被传送到所述远程装置。
图12描绘了用于从远程装置接收传感器数据和使用所述传感器数据连同虚拟环境数据来在本地机器上实现多用户虚拟环境的示例性计算机可执行过程1200。在动作1202,该过程从远程装置接收远程传感器数据,诸如在上面关于图11描述的过程1100的执行期间传送的传感器数据。在动作1204,过程从耦合到执行过程的装置的本地传感器接收本地传感器数据。应该容易地显而易见的是,在一些实施例中,诸如在所述过程在服务器计算机上被执行而特定用户不在服务器本地的情况下,一些实施例可以不实际接收本地数据,但是出于解释的目的,该过程将被描述为有权访问远程传感器数据和本地生成的传感器数据二者。
在动作1206,使用执行过程1200的装置的传感器接口电路处理本地传感器数据和远程传感器数据二者。在动作1208,本地传感器数据和远程传感器数据被提供给本地虚拟环境引擎。在动作1210,本地虚拟环境引擎使用本地传感器数据和远程传感器数据二者确定虚拟环境的状态。
图13描绘了根据本发明实施例的用于调整传感器数据帧的大小或修剪传感器数据帧的示例性计算机可执行过程1300。如以上关于图5-6所描述的,实施例可以通过减小给定传感器数据帧的大小来减少在传感器数据的网络数据传送中包括的数据量。过程1300描述实施这样的修剪操作的一种方式。
在动作1302,接收传感器数据帧。如以上所指示的,传感器数据帧可包括一系列像素,该系列像素指示对象存在于特定方位的可能性或对象在特定方位处的测量的深度(例如,传感器是“深度图”的情况)。
在动作1304,在传感器数据帧内识别感兴趣对象。在动作1306,确定那些感兴趣对象的边界。在动作1308,基于这些边界重新调整所述传感器数据帧的大小。例如,传感器数据帧可被修剪,使得在该数据帧的外边缘和任何识别的对象的边界之间限定的区域被从传感器数据帧去除。在动作1310,传送重新调整大小后的省略掉修剪部分的传感器数据帧,从而减少传送的数据的大小。
图14描绘了用于封装传感器数据用于传送的示例性计算机可执行过程1400。如以上关于图10提到的,用于传送传感器数据的示例性数据结构可以包括传感器帧数据、掩模数据、缓存的背景对象数据以及传感器配置数据。过程1400图示了收集这种数据并将其封装成适合于传送的格式的一种示例性方式。
在动作1402,接收传感器数据帧。在动作1404,识别玩家对象或其他感兴趣对象(例如,用户输入装置、被识别用于校准的对象或某种其他特定对象)。可以根据本领域中已知的各种技术(诸如通过使用红外信标、基于检测到移动、基于与已知解剖结构的对应等等)识别感兴趣对象。在动作1406,生成识别对象的一组掩模数据。掩模可采取对应于传感器数据的位图的形式。位图中的像素值可以对应于特定玩家或包括在传感器数据中的其他对象。例如,如果掩模采用8位位图的形式,则值0可以指示背景像素,值1-6可以指示玩家识别符(例如,玩家1-玩家6),以及值7可指示针对该像素的错误状态或另外无效状况。
在动作1408,确定缓存的背景数据。确定缓存的背景数据可以包括:识别以前存在于一个或多个先前帧中但现在被遮蔽的对象;识别除用户之外的对象;识别不移动的对象;识别特定感兴趣区域之外的对象,等等。在动作1410,传感器数据帧、传感器掩模数据以及缓存的背景对象数据被封装成用于传送到远程计算机的一组传感器数据。
图15是图示用于基于从远程计算机接收的传感器数据生成多用户虚拟环境的示例性计算机可执行过程1500的流程图。如上面关于图9提到的,生成虚拟环境可包括:基于针对每个用户的接收的传感器数据确定用户的相对定位。例如,虚拟环境中的远程用户的显示可能需要校准远程传感器数据和本地传感器数据,以确保每个用户的一致显示。过程1500图示用于校准与本地数据一起的用于显示的远程数据的一个实施例。
在动作1502,接收一组传感器数据。在动作1504,该过程确定与该组传感器数据相关联的特定用户。如上所述,给定的一组传感器数据可以包括识别与所述特定的一组传感器数据相关联的源或用户的元数据。在动作1506,确定与用户相关联的一组虚拟环境校准数据。例如,虚拟环境引擎可以识别所述虚拟环境内与特定用户或玩家相关联的特定开始方位或位置(例如,玩家1开始于第一组坐标,并且玩家2作为第二组坐标开始)。在一些实施例中,虚拟环境内的特定坐标被映射到每个用户的本地计算机上的传感器可见的物理坐标。因此,每个单独的计算机可以包括到该组虚拟坐标的映射,从而允许每个用户遍及虚拟环境移动。在一些实施例中,一些或所有虚拟环境校准数据可以从所述传感器作为传感器数据的一部分被接收。例如,校准数据可以包括传感器相对于用户的物理环境的地板的角度,该角度从传感器的内部陀螺仪得出。
在动作1508,基于传感器数据和虚拟环境校准数据确定虚拟环境内的方位。在动作1510,用户与该特定虚拟方位相关联,并被显示在该特定虚拟方位处,使得用户显现在该方位处用于每个用户与多用户虚拟环境对接。应当容易理解的是,可以针对任何数目的用户重复过程1500,其中不同的用户与虚拟环境内的不同方位相关联。还应当理解的是,在特定方位用户的显示可以包括努力模拟每个装置的用户的物理外观、形状、尺寸等的传感器数据的虚拟表示。
在描述示例性实施例时,特定术语出于清楚起见被使用。为了描述的目的,每个特定术语意图至少包括以类似方式操作以实现类似目的的所有技术和功能等同物。另外,在特定示例性实施例包括多个系统元件或方法步骤的一些情况下,那些元件或步骤可以被单个元件或步骤替换。同样地,单个元件或步骤可被用于相同目的的多个元件或步骤替换。此外,当在本文中针对示例性实施例指定各种属性的参数时,这些参数可以被向上或向下调整1/20、1/10、1/5、1/3、1/2等等,或它们的大约近似值,除非另有规定。此外,虽然示例性实施例已参照其特定的实施例被示出和描述,但本领域普通技术人员将理解,可以在不脱离本发明的范围的情况下在那里做出形式和细节方面的各种替换和变更。再者,其他方面、功能和优点也在本发明的范围之内。
示例性流程图出于说明的目的在本文中被提供并且是方法的非限制性示例。本领域的普通技术人员将认识到,示例性方法可以包括比在示例性流程图中所示的那些更多或更少的步骤,并且在示例性流程图中的步骤可以按照与所示的不同的次序来实施。
框图和流程图示的框支持用于实施指定功能的装置的组合,用于实施指定功能的步骤和用于实施指定功能的程序指令装置的组合。还将理解的是,电路图和过程流程图的一些或所有框/步骤以及电路图和过程流程图的框/步骤的组合可以由如下各项实现:实施指定功能或步骤的基于专用硬件的计算机系统,或专用硬件和计算机指令的组合。示例性系统可以比在示例性框图中所示的那些包括更多或更少的模块。
对具有在前面的描述和相关联的附图中呈现的教导的益处的本发明的实施例所属的技术领域的技术人员将会想到本文所阐述的本发明的许多修改和其他实施例。因此,要理解的是,本发明的实施例不限于所公开的具体实施例,并且修改和其他实施例意图被包括在所附权利要求的范围之内。虽然本文采用了特定的术语,但是它们仅以一般和描述性的意义被使用,而不是为了限制的目的。
Claims (50)
1.一种用于实现多用户虚拟现实环境的计算机实现的方法,所述方法包括:
从本地装置处的传感器接收传感器数据;
将传感器数据提供给网络接口用于向远程装置进行电子传送;
将传感器数据提供给在本地装置的处理器上执行的虚拟环境引擎;
通过虚拟环境引擎并至少部分地基于传感器数据,确定与虚拟现实环境相关的虚拟环境数据;
将虚拟环境数据提供给网络接口用于向远程装置进行电子传送;以及
使用网络接口把传感器数据和虚拟环境数据进行电子传送到远程装置,以用于生成多用户虚拟环境。
2.根据权利要求1的方法,其中网络接口包括到远程装置的至少两个单独的网络连接,并且其中传感器数据和虚拟环境数据中的每一个经由所述至少两个单独的网络连接中的不同连接被传送。
3.根据权利要求1-2中任一项的方法,还包括在传送到远程装置之前对传感器数据进行后处理。
4.根据权利要求3的方法,其中后处理包括如下操作中的至少一个:对传感器数据滤波、平滑传感器数据、修剪传感器数据或识别传感器数据内至少一个对象的存在。
5.根据权利要求1-4中任一项的方法,其中所述传感器数据包括从传感器接收的至少一帧数据。
6.根据权利要求5的方法,其中传感器数据还包括一组掩模数据,所述一组掩模数据识别所述至少一帧数据内与至少一个对象相关联的一个或多个像素。
7.根据权利要求5-6中任一项的方法,其中传感器数据还包括缓存的背景数据,所述缓存的背景数据识别在所述至少一帧数据内不可见的至少一个对象的存在。
8.根据权利要求5-7中任一项的方法,其中传感器数据还包括指示传感器的至少一个配置参数的传感器配置数据。
9.一种用于实现多用户虚拟现实环境的计算机实现的方法,所述方法包括:
在本地传感器接口处接收来自网络接口的第一组传感器数据;
由本地传感器接口从本地传感器接收第二组传感器数据;
由本地传感器接口把第一组传感器数据和第二组传感器数据提供给在处理器上执行的本地虚拟环境引擎;
至少部分地基于第一组传感器数据和第二组传感器数据二者生成多用户虚拟环境;以及
向显示装置提供指令以显示多用户虚拟环境的至少一部分。
10.根据权利要求9的方法,还包括:
经由网络接口从远程装置接收一组虚拟环境数据;以及
至少部分地基于使用第一组传感器数据来验证所述一组虚拟环境数据。
11.根据权利要求9-10中任一项的方法,还包括:
使用第一组传感器数据来生成远程装置的用户的虚拟表示,以及
在多用户虚拟环境内呈现远程装置的用户的虚拟表示。
12.根据权利要求9-11中任一项的方法,其中第一组传感器数据还包括对象掩模数据,并且所述方法还包括:至少部分地基于对象掩模数据来确定第一组传感器数据内的远程装置的使用的存在。
13.根据权利要求9-12中任一项的方法,还包括:将至少一个后处理操作应用于第二组传感器数据,而不是第一组传感器数据。
14.根据权利要求13的方法,其中第一组传感器数据包括至少一个参数,所述至少一个参数指示在传送到本地装置之前对第一组传感器数据进行后处理。
15.根据权利要求13-14中任一项的方法,其中所述至少一个后处理操作包括平滑操作、滤波操作或压缩操作。
16.根据权利要求9-15中任一项的方法,其中显示装置是头戴式显示器。
17.一种非临时性计算机可读存储介质,包括用于实现多用户虚拟现实环境的指令,所述指令在由处理器执行时把所述处理器配置为:
从本地装置处的传感器接收传感器数据;
将传感器数据提供给网络接口用于向远程装置进行电子传送;
将传感器数据提供给在本地装置的处理器上执行的虚拟环境引擎;
由所述虚拟环境引擎并且至少部分地基于所述传感器数据确定与虚拟现实环境相关的虚拟环境数据;
将所述虚拟环境数据提供给所述网络接口以进行电子传送到远程装置;以及
使用网络接口将传感器数据和虚拟环境数据进行电子传送到远程装置,以用于生成多用户虚拟环境。
18.根据权利要求17的计算机可读存储介质,其中网络接口包括到远程装置的至少两个单独的网络连接,并且其中传感器数据和虚拟环境数据中的每一个经由所述至少两个单独的网络连接中的不同连接传送。
19.根据权利要求17-18中任一项的计算机可读存储介质,还包括用于以下操作的指令:在向远程装置传送之前对传感器数据进行后处理。
20.根据权利要求19的计算机可读存储介质,其中后处理包括以下操作中的至少一个:对传感器数据滤波,平滑传感器数据,修剪传感器数据或识别传感器数据内至少一个对象的存在。
21.根据权利要求17-21中任一项的计算机可读存储介质,其中传感器数据包括从传感器接收的至少一帧数据。
22.根据权利要求21的计算机可读存储介质,其中传感器数据还包括一组掩模数据,所述一组掩膜数据识别与至少一个对象相关联的所述至少一帧数据内的一个或多个像素。
23.根据权利要求21-22中任一项的计算机可读存储介质,其中传感器数据还包括缓存的背景数据,所述缓存的背景数据识别在所述至少一帧数据内不可见的至少一个对象的存在。
24.根据权利要求21-23中任一项的计算机可读存储介质,其中传感器数据还包括指示传感器的至少一个配置参数的传感器配置数据。
25.一种非临时性计算机可读存储介质,包括用于实现多用户虚拟现实环境的指令,所述指令在由处理器执行时把所述处理器配置为:
在本地传感器接口处接收来自网络接口的第一组传感器数据;
由所述本地传感器接口从本地传感器接收第二组传感器数据;
由本地传感器接口将第一组传感器数据和第二组传感器数据提供给在处理器上执行的本地虚拟环境引擎;
至少部分地基于第一组传感器数据和第二组传感器数据生成多用户虚拟环境;以及
向显示装置提供显示多用户虚拟环境的至少一部分的指令。
26.根据权利要求25的计算机可读存储介质,其中所述指令还包括:
经由所述网络接口从所述远程装置接收一组虚拟环境数据,以及
至少部分地基于使用所述第一组传感器数据来验证所述一组虚拟环境数据。
27.根据权利要求25-26中任一项的计算机可读存储介质,其中所述指令还包括:
使用第一组传感器数据来生成远程装置的用户的虚拟表示;以及
在多用户虚拟环境内呈现远程装置的用户的虚拟表示。
28.根据权利要求25-27中任一项的计算机可读存储介质,其中第一组传感器数据还包括对象掩模数据,并且所述指令还包括至少部分地基于对象掩模数据来确定第一组传感器数据内的远程装置的使用的存在。
29.根据权利要求25-28中任一项的计算机可读存储介质,其中所述指令还包括将至少一个后处理操作应用于第二组传感器数据,而不是第一组传感器数据。
30.根据权利要求29的计算机可读存储介质,其中第一组传感器数据包括至少一个参数,所述至少一个参数指示在传送到本地装置之前对第一组传感器数据进行后处理。
31.根据权利要求29-30中任一项的计算机可读存储介质,其中所述至少一个后处理操作包括平滑操作、滤波操作、或压缩操作。
32.根据权利要求25-31中任一项的计算机可读存储介质,其中显示装置是头戴式显示器。
33.一种用于实现多用户虚拟现实环境的设备,包括:
用于从本地装置处的传感器接收传感器数据的构件;
用于将传感器数据提供给网络接口用于向远程装置进行电子传送的构件;
用于将传感器数据提供给在本地装置的处理器上执行的虚拟环境引擎的构件;
用于通过虚拟环境引擎并至少部分地基于传感器数据确定与虚拟现实环境相关的虚拟环境数据的构件;
用于将虚拟环境数据提供给网络接口用于向远程装置进行电子传送的构件;以及
用于使用网络接口把传感器数据和虚拟环境数据进行电子传送到远程装置以用于生成多用户虚拟环境的构件。
34.一种用于实现多用户虚拟现实环境的设备,包括:
用于从网络接口接收第一组传感器数据的构件;
用于从本地传感器接收第二组传感器数据的构件;
用于把第一组传感器数据和第二组传感器数据提供给在处理器上执行的本地虚拟环境引擎的构件;
用于至少部分地基于第一组传感器数据和第二组传感器数据二者生成多用户虚拟环境的构件;以及
用于向显示装置提供指令以显示所述多用户虚拟环境的至少一部分的构件。
35.一种用于实现多用户虚拟现实环境的系统,所述系统包括:
传感器接口电路,被配置为:
从本地装置处的传感器接收传感器数据;
提供传感器数据给网络接口以用于进行电子传送到远程装置;以及
把传感器数据提供给在本地装置的处理器上执行的虚拟环境引擎;
虚拟环境状态管理电路,被配置为:
至少部分地基于所述传感器数据,确定与虚拟现实环境相关的虚拟环境数据,以及
将虚拟环境数据提供给网络接口用于进行电子传送到远程装置;以及
网络接口,被配置为把传感器数据和虚拟环境数据进行电子传送到所述远程装置,用于生成多用户虚拟环境。
36.根据权利要求35的系统,其中网络接口包括到远程装置的至少两个单独的网络连接,并且其中传感器数据和虚拟环境数据中的每一个经由所述至少两个单独的网络连接中的不同连接被传送。
37.根据权利要求35-36中任一项的系统,其中传感器接口电路进一步配置为在传送到远程装置之前对传感器数据进行后处理。
38.根据权利要求37的系统,其中后处理包括如下操作中的至少一个:对传感器数据滤波、平滑传感器数据、修剪传感器数据或识别传感器数据内至少一个对象的存在。
39.根据权利要求35-38中任一项的系统,其中传感器数据包括从传感器接收的至少一帧数据。
40.根据权利要求39的系统,其中传感器数据还包括一组掩模数据,所述一组掩模数据识别所述至少一帧数据内与至少一个对象相关联的一个或多个像素。
41.根据权利要求39-40中任一项的系统,其中传感器数据还包括缓存的背景数据,所述缓存的背景数据识别在所述至少一帧数据内不可见的至少一个对象的存在。
42.根据权利要求39-41中任一项的系统,其中传感器数据还包括指示传感器的至少一个配置参数的传感器配置数据。
43.一种用于实现多用户虚拟现实环境的系统,所述系统包括:
传感器接口电路,被配置为:
从网络接口接收第一组传感器数据;
从本地传感器接收第二组传感器数据;以及
将第一组传感器数据和第二组传感器数据提供给在处理器上执行的本地虚拟环境引擎;以及
虚拟环境状态管理电路,被配置为:
至少部分地基于第一组传感器数据和第二组传感器数据二者生成多用户虚拟环境,以及
向显示装置提供显示多用户虚拟环境的至少一部分的指令。
44.根据权利要求43的系统,其中虚拟环境状态管理电路还被配置为:
经由所述网络接口从所述远程装置接收一组虚拟环境数据;以及
至少部分地基于使用所述第一组传感器数据来验证所述一组虚拟环境数据。
45.根据权利要求43-44中任一项的系统,其中虚拟环境状态管理电路还被配置为:
使用第一组传感器数据来生成远程装置的用户的虚拟表示;以及
在多用户虚拟环境内呈现远程装置的用户的虚拟表示。
46.根据权利要求43-45中任一项的系统,其中第一组传感器数据还包括对象掩模数据,并且传感器接口电路被进一步配置为至少部分地基于对象掩模数据来确定第一组传感器数据内的远程装置的使用的存在。
47.根据权利要求43-46中任一项的系统,其中传感器接口电路被进一步配置为将至少一个后处理操作应用于第二组传感器数据,而不是第一组传感器数据。
48.根据权利要求47的系统,其中第一组传感器数据包括至少一个参数,所述至少一个参数指示在传送到本地装置之前对第一组传感器数据进行后处理。
49.根据权利要求47-48中任一项的系统,其中所述至少一个后处理操作包括平滑操作、滤波操作、或压缩操作。
50.根据权利要求43-49中任一项的系统,其中显示装置是头戴式显示器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/608054 | 2015-01-28 | ||
US14/608,054 US10726625B2 (en) | 2015-01-28 | 2015-01-28 | Method and system for improving the transmission and processing of data regarding a multi-user virtual environment |
PCT/IB2016/050410 WO2016120805A1 (en) | 2015-01-28 | 2016-01-27 | Method and system for implementing a multi-user virtual environment |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108064364A true CN108064364A (zh) | 2018-05-22 |
Family
ID=55456844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680019507.9A Pending CN108064364A (zh) | 2015-01-28 | 2016-01-27 | 用于实现多用户虚拟环境的方法和系统 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10726625B2 (zh) |
EP (1) | EP3250986A1 (zh) |
CN (1) | CN108064364A (zh) |
AU (1) | AU2016210883A1 (zh) |
CA (1) | CA2981208A1 (zh) |
RU (1) | RU2017130355A (zh) |
WO (1) | WO2016120805A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113359973A (zh) * | 2020-03-04 | 2021-09-07 | 苹果公司 | 环境应用程序模型 |
CN114625304A (zh) * | 2016-10-25 | 2022-06-14 | 微软技术许可有限责任公司 | 虚拟现实和跨设备体验 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016153628A2 (en) * | 2015-02-25 | 2016-09-29 | Brian Mullins | Augmented reality content creation |
CN105338117B (zh) * | 2015-11-27 | 2018-05-29 | 亮风台(上海)信息科技有限公司 | 用于生成ar应用和呈现ar实例的方法、设备与系统 |
US10168768B1 (en) | 2016-03-02 | 2019-01-01 | Meta Company | Systems and methods to facilitate interactions in an interactive space |
US10380800B2 (en) * | 2016-04-18 | 2019-08-13 | Disney Enterprises, Inc. | System and method for linking and interacting between augmented reality and virtual reality environments |
US11062383B2 (en) | 2016-05-10 | 2021-07-13 | Lowe's Companies, Inc. | Systems and methods for displaying a simulated room and portions thereof |
US9990779B2 (en) * | 2016-05-13 | 2018-06-05 | Meta Company | System and method for modifying virtual objects in a virtual environment in response to user interactions |
US10186088B2 (en) | 2016-05-13 | 2019-01-22 | Meta Company | System and method for managing interactive virtual frames for virtual objects in a virtual environment |
US20180063205A1 (en) * | 2016-08-30 | 2018-03-01 | Augre Mixed Reality Technologies, Llc | Mixed reality collaboration |
CN106534125B (zh) * | 2016-11-11 | 2021-05-04 | 厦门汇鑫元软件有限公司 | 一种基于局域网实现vr多人交互系统的方法 |
US10785341B2 (en) | 2016-11-21 | 2020-09-22 | Intel Corporation | Processing and caching in an information-centric network |
US11164378B1 (en) * | 2016-12-08 | 2021-11-02 | Out of Sight Vision Systems LLC | Virtual reality detection and projection system for use with a head mounted display |
KR102679047B1 (ko) * | 2017-01-25 | 2024-07-01 | 삼성전자주식회사 | 전자 장치 및 전자 장치 제어 방법 |
GB2562488A (en) * | 2017-05-16 | 2018-11-21 | Nokia Technologies Oy | An apparatus, a method and a computer program for video coding and decoding |
WO2019024051A1 (en) | 2017-08-03 | 2019-02-07 | Intel Corporation | HAPTIC GLOVES FOR VIRTUAL REALITY SYSTEMS AND METHODS OF CONTROLLING THEM |
US10192115B1 (en) | 2017-12-13 | 2019-01-29 | Lowe's Companies, Inc. | Virtualizing objects using object models and object position data |
EP3534338B1 (en) * | 2018-03-01 | 2023-09-06 | État Français Représenté par la Direction des Services de la Navigation Aérienne | Creation of a simulation scene from a specified view point |
US11749124B2 (en) * | 2018-06-12 | 2023-09-05 | Skydio, Inc. | User interaction with an autonomous unmanned aerial vehicle |
CN110895766A (zh) * | 2018-09-13 | 2020-03-20 | 北京京东尚科信息技术有限公司 | 一种生成虚拟环境的方法和装置 |
US11475637B2 (en) * | 2019-10-21 | 2022-10-18 | Wormhole Labs, Inc. | Multi-instance multi-user augmented reality environment |
US12020382B2 (en) * | 2022-03-24 | 2024-06-25 | Kyndryl, Inc. | Physical and virtual environment synchronization |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030032484A1 (en) * | 1999-06-11 | 2003-02-13 | Toshikazu Ohshima | Game apparatus for mixed reality space, image processing method thereof, and program storage medium |
US20080201751A1 (en) * | 2006-04-18 | 2008-08-21 | Sherjil Ahmed | Wireless Media Transmission Systems and Methods |
US20090225074A1 (en) * | 2008-03-06 | 2009-09-10 | Bates Cary L | Reconstruction of Virtual Environments Using Cached Data |
CN103971401A (zh) * | 2013-02-01 | 2014-08-06 | 索尼公司 | 信息处理装置、终端装置以及信息处理方法 |
CN104238738A (zh) * | 2013-06-07 | 2014-12-24 | 索尼电脑娱乐美国公司 | 在头戴式系统内产生增强虚拟现实场景的系统和方法 |
CN105188516A (zh) * | 2013-03-11 | 2015-12-23 | 奇跃公司 | 用于增强和虚拟现实的系统与方法 |
Family Cites Families (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7301536B2 (en) * | 1993-09-10 | 2007-11-27 | Geovector Corporation | Electro-optic vision systems |
US6032193A (en) | 1997-03-20 | 2000-02-29 | Niobrara Research And Development Corporation | Computer system having virtual circuit address altered by local computer to switch to different physical data link to increase data transmission bandwidth |
US6091410A (en) | 1997-11-26 | 2000-07-18 | International Business Machines Corporation | Avatar pointing mode |
US6181343B1 (en) | 1997-12-23 | 2001-01-30 | Philips Electronics North America Corp. | System and method for permitting three-dimensional navigation through a virtual reality environment using camera-based gesture inputs |
US7724258B2 (en) | 2004-06-30 | 2010-05-25 | Purdue Research Foundation | Computer modeling and animation of natural phenomena |
US8585476B2 (en) | 2004-11-16 | 2013-11-19 | Jeffrey D Mullen | Location-based games and augmented reality systems |
US7864168B2 (en) | 2005-05-25 | 2011-01-04 | Impulse Technology Ltd. | Virtual reality movement system |
US8094928B2 (en) | 2005-11-14 | 2012-01-10 | Microsoft Corporation | Stereo video for gaming |
JP4865352B2 (ja) * | 2006-02-17 | 2012-02-01 | 三菱重工業株式会社 | プラズマ処理装置及びプラズマ処理方法 |
EP1988463B1 (en) * | 2006-02-24 | 2012-01-04 | Fujitsu Ltd. | Memory control apparatus and memory control method |
US8059894B1 (en) | 2006-12-19 | 2011-11-15 | Playvision Technologies, Inc. | System and associated methods of calibration and use for an interactive imaging environment |
KR101430439B1 (ko) * | 2007-01-10 | 2014-08-18 | 엘지전자 주식회사 | 이동 통신 시스템에서의 제어 정보 전송 방법 |
GB0703974D0 (en) * | 2007-03-01 | 2007-04-11 | Sony Comp Entertainment Europe | Entertainment device |
US7814154B1 (en) * | 2007-06-26 | 2010-10-12 | Qurio Holdings, Inc. | Message transformations in a distributed virtual world |
US9301121B2 (en) * | 2007-07-11 | 2016-03-29 | Qualcomm Incorporated | Peer to peer multiple identifiers |
US20090141023A1 (en) * | 2007-11-29 | 2009-06-04 | Brian Mark Shuster | Selective filtering of user input data in a multi-user virtual environment |
US8264505B2 (en) | 2007-12-28 | 2012-09-11 | Microsoft Corporation | Augmented reality and filtering |
US8713450B2 (en) | 2008-01-08 | 2014-04-29 | International Business Machines Corporation | Detecting patterns of abuse in a virtual environment |
US8933876B2 (en) | 2010-12-13 | 2015-01-13 | Apple Inc. | Three dimensional user interface session control |
US9196169B2 (en) | 2008-08-21 | 2015-11-24 | Lincoln Global, Inc. | Importing and analyzing external data using a virtual reality welding system |
US8788957B2 (en) | 2008-08-22 | 2014-07-22 | Microsoft Corporation | Social virtual avatar modification |
US7930455B2 (en) | 2008-12-19 | 2011-04-19 | Caterpillar Inc. | System and method for separating and communicating information-type data and signal-type data |
US20100309097A1 (en) | 2009-06-04 | 2010-12-09 | Roni Raviv | Head mounted 3d display |
RU2433487C2 (ru) | 2009-08-04 | 2011-11-10 | Леонид Михайлович Файнштейн | Способ проецирования изображения на поверхности реальных объектов |
US8620986B2 (en) * | 2010-03-24 | 2013-12-31 | Blackberry Limited | Peer-to-peer network connectivity status |
JP2012049823A (ja) * | 2010-08-26 | 2012-03-08 | Seiko Epson Corp | ガマット形状予測方法、ガマット形状予測プログラム、当該ガマット形状予測方法により予測されたガマットを用いて作成された色変換テーブルを搭載した印刷装置 |
US9122053B2 (en) | 2010-10-15 | 2015-09-01 | Microsoft Technology Licensing, Llc | Realistic occlusion for a head mounted augmented reality display |
US9348141B2 (en) | 2010-10-27 | 2016-05-24 | Microsoft Technology Licensing, Llc | Low-latency fusing of virtual and real content |
US20120122570A1 (en) | 2010-11-16 | 2012-05-17 | David Michael Baronoff | Augmented reality gaming experience |
US8576276B2 (en) | 2010-11-18 | 2013-11-05 | Microsoft Corporation | Head-mounted display device which provides surround video |
KR20160084502A (ko) | 2011-03-29 | 2016-07-13 | 퀄컴 인코포레이티드 | 로컬 멀티-사용자 협업을 위한 모듈식 모바일 접속된 피코 프로젝터들 |
US20120264510A1 (en) | 2011-04-12 | 2012-10-18 | Microsoft Corporation | Integrated virtual environment |
CN103635891B (zh) | 2011-05-06 | 2017-10-27 | 奇跃公司 | 大量同时远程数字呈现世界 |
AU2011205223C1 (en) | 2011-08-09 | 2013-03-28 | Microsoft Technology Licensing, Llc | Physical interaction with virtual objects for DRM |
US20130050069A1 (en) | 2011-08-23 | 2013-02-28 | Sony Corporation, A Japanese Corporation | Method and system for use in providing three dimensional user interface |
US20140063061A1 (en) | 2011-08-26 | 2014-03-06 | Reincloud Corporation | Determining a position of an item in a virtual augmented space |
RU2621633C2 (ru) | 2011-10-28 | 2017-06-06 | Мэджик Лип, Инк. | Система и способ для дополненной и виртуальной реальности |
CN103108197A (zh) | 2011-11-14 | 2013-05-15 | 辉达公司 | 一种用于3d视频无线显示的优先级压缩方法和系统 |
US20130141419A1 (en) | 2011-12-01 | 2013-06-06 | Brian Mount | Augmented reality with realistic occlusion |
EP2608153A1 (en) | 2011-12-21 | 2013-06-26 | Harman Becker Automotive Systems GmbH | Method and system for playing an augmented reality game in a motor vehicle |
US8963805B2 (en) | 2012-01-27 | 2015-02-24 | Microsoft Corporation | Executable virtual objects associated with real objects |
US9170648B2 (en) | 2012-04-03 | 2015-10-27 | The Boeing Company | System and method for virtual engineering |
US9671566B2 (en) | 2012-06-11 | 2017-06-06 | Magic Leap, Inc. | Planar waveguide apparatus with diffraction element(s) and system employing same |
JP5580855B2 (ja) | 2012-06-12 | 2014-08-27 | 株式会社ソニー・コンピュータエンタテインメント | 障害物回避装置および障害物回避方法 |
US9041622B2 (en) | 2012-06-12 | 2015-05-26 | Microsoft Technology Licensing, Llc | Controlling a virtual object with a real controller device |
US9378592B2 (en) | 2012-09-14 | 2016-06-28 | Lg Electronics Inc. | Apparatus and method of providing user interface on head mounted display and head mounted display thereof |
CN104685869B (zh) | 2012-09-27 | 2018-12-28 | 京瓷株式会社 | 显示装置、控制方法 |
JP2014071499A (ja) | 2012-09-27 | 2014-04-21 | Kyocera Corp | 表示装置および制御方法 |
US20140128161A1 (en) | 2012-11-06 | 2014-05-08 | Stephen Latta | Cross-platform augmented reality experience |
US20140160162A1 (en) | 2012-12-12 | 2014-06-12 | Dhanushan Balachandreswaran | Surface projection device for augmented reality |
US9202313B2 (en) | 2013-01-21 | 2015-12-01 | Microsoft Technology Licensing, Llc | Virtual interaction with image projection |
US9251590B2 (en) | 2013-01-24 | 2016-02-02 | Microsoft Technology Licensing, Llc | Camera pose estimation for 3D reconstruction |
US10268276B2 (en) | 2013-03-15 | 2019-04-23 | Eyecam, LLC | Autonomous computing and telecommunications head-up displays glasses |
US9235051B2 (en) | 2013-06-18 | 2016-01-12 | Microsoft Technology Licensing, Llc | Multi-space connected virtual data objects |
US9563331B2 (en) | 2013-06-28 | 2017-02-07 | Microsoft Technology Licensing, Llc | Web-like hierarchical menu display configuration for a near-eye display |
US10281987B1 (en) | 2013-08-09 | 2019-05-07 | Leap Motion, Inc. | Systems and methods of free-space gestural interaction |
US9753687B1 (en) | 2014-01-03 | 2017-09-05 | Sony Interactive Entertainment America Llc | Wearable computer using programmed local tag |
CN105960664A (zh) | 2014-02-07 | 2016-09-21 | 诺日士精密株式会社 | 信息处理装置、信息处理方法及程序 |
US10564714B2 (en) | 2014-05-09 | 2020-02-18 | Google Llc | Systems and methods for biomechanically-based eye signals for interacting with real and virtual objects |
JP6355978B2 (ja) | 2014-06-09 | 2018-07-11 | 株式会社バンダイナムコエンターテインメント | プログラムおよび画像生成装置 |
AU2015203771B2 (en) | 2014-07-08 | 2020-11-05 | Iomniscient Pty Ltd | A method and apparatus for surveillance |
WO2016203792A1 (ja) | 2015-06-15 | 2016-12-22 | ソニー株式会社 | 情報処理装置、情報処理方法及びプログラム |
JPWO2017038241A1 (ja) | 2015-08-28 | 2018-06-14 | 富士フイルム株式会社 | 機器操作装置、機器操作方法、及び電子機器システム |
US11010972B2 (en) | 2015-12-11 | 2021-05-18 | Google Llc | Context sensitive user interface activation in an augmented and/or virtual reality environment |
US20170235462A1 (en) | 2016-02-16 | 2017-08-17 | Le Holdings (Beijing) Co., Ltd. | Interaction control method and electronic device for virtual reality |
US20180096504A1 (en) | 2016-10-04 | 2018-04-05 | Facebook, Inc. | Controls and Interfaces for User Interactions in Virtual Spaces |
IL252056A (en) | 2017-05-01 | 2018-04-30 | Elbit Systems Ltd | Head-up display device, system and method |
-
2015
- 2015-01-28 US US14/608,054 patent/US10726625B2/en not_active Expired - Fee Related
-
2016
- 2016-01-27 CA CA2981208A patent/CA2981208A1/en not_active Abandoned
- 2016-01-27 CN CN201680019507.9A patent/CN108064364A/zh active Pending
- 2016-01-27 AU AU2016210883A patent/AU2016210883A1/en not_active Abandoned
- 2016-01-27 WO PCT/IB2016/050410 patent/WO2016120805A1/en active Application Filing
- 2016-01-27 EP EP16708207.2A patent/EP3250986A1/en not_active Withdrawn
- 2016-01-27 RU RU2017130355A patent/RU2017130355A/ru not_active Application Discontinuation
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030032484A1 (en) * | 1999-06-11 | 2003-02-13 | Toshikazu Ohshima | Game apparatus for mixed reality space, image processing method thereof, and program storage medium |
US20080201751A1 (en) * | 2006-04-18 | 2008-08-21 | Sherjil Ahmed | Wireless Media Transmission Systems and Methods |
US20090225074A1 (en) * | 2008-03-06 | 2009-09-10 | Bates Cary L | Reconstruction of Virtual Environments Using Cached Data |
CN103971401A (zh) * | 2013-02-01 | 2014-08-06 | 索尼公司 | 信息处理装置、终端装置以及信息处理方法 |
CN105188516A (zh) * | 2013-03-11 | 2015-12-23 | 奇跃公司 | 用于增强和虚拟现实的系统与方法 |
CN104238738A (zh) * | 2013-06-07 | 2014-12-24 | 索尼电脑娱乐美国公司 | 在头戴式系统内产生增强虚拟现实场景的系统和方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114625304A (zh) * | 2016-10-25 | 2022-06-14 | 微软技术许可有限责任公司 | 虚拟现实和跨设备体验 |
CN113359973A (zh) * | 2020-03-04 | 2021-09-07 | 苹果公司 | 环境应用程序模型 |
Also Published As
Publication number | Publication date |
---|---|
WO2016120805A1 (en) | 2016-08-04 |
US10726625B2 (en) | 2020-07-28 |
CA2981208A1 (en) | 2016-08-04 |
RU2017130355A3 (zh) | 2019-07-26 |
EP3250986A1 (en) | 2017-12-06 |
RU2017130355A (ru) | 2019-03-04 |
US20160217615A1 (en) | 2016-07-28 |
AU2016210883A1 (en) | 2017-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108064364A (zh) | 用于实现多用户虚拟环境的方法和系统 | |
JP7366196B2 (ja) | 広範囲同時遠隔ディジタル提示世界 | |
US11043031B2 (en) | Content display property management | |
US12106416B2 (en) | Artificial reality system architecture for concurrent application execution and collaborative 3D scene rendering | |
JP7008730B2 (ja) | 画像に挿入される画像コンテンツについての影生成 | |
US10725297B2 (en) | Method and system for implementing a virtual representation of a physical environment using a virtual reality environment | |
CN105981076B (zh) | 合成增强现实环境的构造 | |
CN107850948A (zh) | 混合现实社交 | |
KR20130028878A (ko) | 조합형 입체 카메라 및 입체 디스플레이 상호 작용 | |
CN106125903A (zh) | 多人交互系统及方法 | |
WO2020264149A1 (en) | Fast hand meshing for dynamic occlusion | |
US12033270B2 (en) | Systems and methods for generating stabilized images of a real environment in artificial reality | |
Blach | Virtual reality technology-an overview | |
EP4241444A1 (en) | 3d video conference systems and methods for displaying stereoscopic rendered image data captured from multiple perspectives | |
US20240149159A1 (en) | Capturing computer game output mid-render for 2d to 3d conversion, accessibility, and other effects | |
WO2023158741A1 (en) | Spatial anchor sharing for multiple virtual reality systems in shared real-world environments | |
CN118092647A (zh) | 一种基于动态手势识别的三维模型处理方法及装置 | |
WO2023057781A1 (en) | Generation of a virtual viewpoint image of a person from a single captured image | |
McFarlane | Mapping reality into virtual worlds | |
Umenhoffer et al. | Using the Kinect body tracking in virtual reality applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180522 |
|
WD01 | Invention patent application deemed withdrawn after publication |