CN109803734A - 虚拟对象移动 - Google Patents

虚拟对象移动 Download PDF

Info

Publication number
CN109803734A
CN109803734A CN201780062997.5A CN201780062997A CN109803734A CN 109803734 A CN109803734 A CN 109803734A CN 201780062997 A CN201780062997 A CN 201780062997A CN 109803734 A CN109803734 A CN 109803734A
Authority
CN
China
Prior art keywords
indicator
input
user
virtual objects
collision
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.)
Granted
Application number
CN201780062997.5A
Other languages
English (en)
Other versions
CN109803734B (zh
Inventor
S·埃纳金
S·保兰托尼奥
D·埃文斯
E·S·雷默耶尔
R·T·海尔德
M·欧尔勒特
A·加弗里尤克
R·吉拉尔迪
A·F·穆尔豪森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Priority to CN202210624152.3A priority Critical patent/CN115006839A/zh
Publication of CN109803734A publication Critical patent/CN109803734A/zh
Application granted granted Critical
Publication of CN109803734B publication Critical patent/CN109803734B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/428Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/20Linear translation of whole images or parts thereof, e.g. panning
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction 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/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction 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/04815Interaction 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2004Aligning objects, relative positioning of parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2016Rotation, translation, scaling

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)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Architecture (AREA)
  • Optics & Photonics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

一种用于移动虚拟对象的方法包括显示虚拟对象并基于用户输入来移动虚拟对象。基于试图违反障碍物来移动虚拟对象的用户输入,显示碰撞指示符和输入指示符。基于用户输入和障碍物施加的移动约束来移动碰撞指示符。基于用户输入来移动输入指示符,而没有障碍物施加的移动约束。

Description

虚拟对象移动
背景技术
头戴式显示设备(HMD)可用于通过向用户呈现虚拟图像来提供增强现实(AR)体验和/或虚拟现实(VR)体验。虚拟图像可以由用户操纵和/或基于用户输入以其他方式交互。
发明内容
提供本发明内容是为了以简化的形式介绍概念的选择,这些概念将在下面的具体实施方式中进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任何部分中提到的任何或所有缺点的实现。
一种用于移动虚拟对象的方法包括:显示虚拟对象并且基于用户输入来移动虚拟对象。基于试图违反障碍物移动虚拟对象的用户输入,显示碰撞指示符和输入指示符。基于用户输入和障碍物施加的移动约束来移动碰撞指示符。输入指示符基于用户输入而被移动,而没有障碍物施加的移动约束。
附图说明
图1A和1B示意性地示出了用户通过环境移动由虚拟现实计算设备显示的虚拟对象。
图2示出了用于移动虚拟对象的示例方法。
图3A和3B示意性地示出了用碰撞指示符和输入指示符替换虚拟对象。
图4和5示意性地示出了碰撞和输入指示符的移动。
图6A和6B示出了用虚拟对象替换碰撞指示符和输入指示符。
图7A和7B示意性地示出了对虚拟现实计算设备的用户的虚拟图像的呈现。
图8示意性地示出了示例虚拟现实计算设备。
图9示意性地示出了示例计算系统。
具体实施方式
虚拟或增强现实计算设备可以向用户呈现虚拟对象,并允许用户通过三维空间自由地移动虚拟对象。然而,这种移动可以使虚拟对象朝向虚拟或现实世界障碍物(例如物理环境中的真实世界对象,诸如真实墙壁或真实桌子、或另一虚拟对象)。在一些场景中,在到达障碍物之后,用户可能期望他或她正在移动的虚拟对象表现为来自现实世界的有形对象并且与障碍物碰撞。然而,在其他场景中,用户可能打算使虚拟对象穿过障碍物,就像障碍物不存在一样。鉴于这种模糊性,可能难以提供允许用户以可预测和令人满意的方式自由移动虚拟对象的用户体验。
因此,本公开涉及一种用于在虚拟对象的移动与障碍物的移动约束冲突时移动虚拟对象的方法。具体地,当违反障碍物的移动约束时(例如用户试图移动虚拟对象通过另一对象),显示无约束地跟踪输入的输入指示符以及遵守移动约束的碰撞指示符。这种方案允许用户仔细且直观地将虚拟对象移动到期望的位置,而不管用户是否打算使对象遵守由障碍物施加的约束。
图1A示意性地示出了穿戴虚拟现实计算设备102并查看周围环境104的用户100。虚拟现实计算设备102包括被配置为向用户的眼睛呈现虚拟图像的一个或多个近眼显示器106,如将在下面描述。图1A还示出了用户的视场(FOV)108,其指示了从所示出的有利位置对用户100可见的环境104的区域。
尽管本文通常使用术语“虚拟现实计算设备”来描述包括一个或多个近眼显示器的头戴式显示设备(HMD),但是具有其他形状因子的设备可以替代地用于查看和操纵虚拟图像。例如虚拟图像可以经由促进增强现实体验的智能电话或平板计算机来呈现和操纵,和/或可以代之以使用其他合适的计算设备。
虚拟现实计算设备102可以是增强现实计算设备,其允许用户100通过部分透明的近眼显示器来直接查看现实世界环境,或者虚拟现实计算设备102可以是完全不透明的,或者呈现由前置摄像头捕获的现实世界环境的图像,或呈现完全虚拟的周围环境。为了避免重复,由两种实现提供的体验被称为“虚拟现实”,并且用于提供增强或纯虚拟化体验的计算设备被称为虚拟现实计算设备。此外,应当理解,无论是否实现虚拟或增强现实体验,图1A和1B示出了仅对虚拟现实计算设备的用户可见的至少一些虚拟图像。
图1A中还示出了虚拟对象110。如上所述,虚拟现实计算设备的用户可以通过三维空间移动虚拟对象。这在图1A中示出,其中虚拟对象110已经以箭头112的方向移动离开用户100。虚拟对象110响应于用户提供的用户输入而移动。在附图中,诸如箭头112的箭头用于指示用户输入。可以通过虚拟现实计算设备支持的各种不同输入方法以各种方式执行这种用户输入。例如用户可以提供由一个或多个相机和/或运动传感器捕获的手势输入,和/或由麦克风捕获的语音命令。附加地或替代地,用户可以使用一个或多个输入接口,诸如计算机鼠标、触控板、操纵杆、视频游戏控制器、触摸屏接口等、以及适合于操纵虚拟对象的任何其他输入接口。这样的输入接口可以是虚拟现实计算设备102的一部分,或者输入接口可以是外部设备(例如智能电话或专用输入设备)的一部分。
图1B示出了虚拟对象110的移动的替代视图。如图所示,虚拟对象110已经沿箭头112的方向移动通过周围环境104远离用户100。虚拟对象的虚线轮廓指示在移动其间由虚拟对象占据的先前位置。虽然虚拟对象110仅被示为在单个方向上移动-远离用户-但是虚拟现实计算设备可以被配置为响应于用户输入在全部三维空间中自由地移动虚拟对象。换句话说,虚拟对象的移动可以具有至少三个自由度(3DOF)。此外,虚拟现实计算设备可以被配置为基于用户输入来改变虚拟对象的俯仰、滚动和/或偏航中的一个或多个,针对总共六个自由度(6DOF)。
如本文所述的虚拟对象的移动通常被称为由用户输入引起或由虚拟现实计算设备基于接收用户输入来执行。然而,虚拟现实计算设备可以出于各种原因移动虚拟对象,这些原因不涉及用户提供的显式用户输入。例如可以根据预定模式来移动虚拟对象,根据软件指令(例如人工智能)等来动态地移动虚拟对象。应当理解,本公开应用于虚拟对象的移动是由显式用户输入引起的或不是由显示用户输入引起的场景。
如图所示,箭头112指示的用户输入试图违反障碍物114移动虚拟对象110,障碍物114可以采用现实世界对象(例如墙壁、屏幕、一件家具)的形式,或者由虚拟现实计算设备绘制的虚拟对象。虚拟对象110的移动可能受到障碍物的移动约束的限制。换句话说,用户100可能无法将虚拟对象110移动到障碍物114之外。在一些情况下,用户100可能期望虚拟对象表现为有形的现实世界对象,并且这种移动限制可能是期望的。然而,在其他情况下,用户可能期望虚拟对象穿过障碍物,或者虚拟对象的移动相对不受障碍物的存在的影响。因此,基于试图违反障碍物移动虚拟对象的用户输入,虚拟现实计算设备可以用碰撞指示符和输入指示符替换虚拟对象,如下所述。
图2示出了用于移动诸如虚拟对象110的虚拟对象的示例方法200。在202处,方法200包括显示虚拟对象。虚拟对象实际上可以具有任何大小、形状或外观,并且可以经由诸如设备虚拟现实计算102的虚拟现实计算设备的显示器来显示。
在204处,方法200包括基于用户输入移动虚拟对象。这可以如上面参考图1A和1B所述进行。虚拟现实计算设备可以被配置为解释采用各种形式的用户输入。此外,可以以任何合适的方式移动、旋转、平移或以其他方式操纵虚拟对象。
在206处,方法200包括基于试图违反障碍物移动虚拟对象的用户输入,用碰撞指示符和输入指示符替换虚拟对象。这在图3A和3B中示出。图3A示意性地示出了用户300使用虚拟现实计算设备302来查看虚拟对象304。箭头306指示由用户300执行的用户输入,并且用户输入试图违反障碍物308移动虚拟对象。因此,虚拟现实计算设备可以用冲突指示符310和输入指示符312替换虚拟对象304,如图3B所示。如下所述,碰撞指示符的移动可能受到障碍物施加的移动约束的限制。然而,输入指示符的移动可能不受障碍物的约束,而是可以基于用户输入来继续不受约束地移动。这样,输入指示符向用户提供关于用户输入的视觉反馈,而碰撞指示符保持其中遵守碰撞的真实感。如本文所使用的,用碰撞指示符和输入指示符替换虚拟对象可以包括添加碰撞指示符并将虚拟对象视为输入指示符;添加输入指示符并将虚拟对象视为碰撞指示符;并移除虚拟对象并添加输入指示符和碰撞指示符。
在图3B中,碰撞指示符310和输入指示符312被示出为具有与虚拟对象304类似但不同的外观。然而,在一些实现中,碰撞指示符的外观可以模仿虚拟对象的外观。换句话说,碰撞指示符和虚拟对象可以基本相同,使得用户不会察觉到两者之间的差异。在其他实现中,碰撞指示符的外观可以以一种或多种方式(例如不同颜色、不同透明度、不同尺寸、不同形状)与虚拟对象的外观不同。
输入指示符的外观可以与虚拟对象的外观匹配。在一些实现中,输入指示符的外观可以具有与虚拟对象的外观不同但是从虚拟对象的外观得出的外观。例如输入指示符的外观可以根据颜色、大小和透明度以及其他视觉属性中的一个或多个而与虚拟对象的外观不同。在其他实现中,输入指示符的外观不是从虚拟对象的外观得出的。作为示例,输入指示符可以是通用指针。
在一些实现中,碰撞指示符可以具有与虚拟对象的外观匹配的外观,而输入指示符具有不同的颜色、大小、透明度等。此外,碰撞指示符和输入指示符之间的外观中的差异可以基于碰撞指示符和输入指示符之间的距离而改变。例如当用户移动输入指示符进一步远离碰撞指示符时,输入指示符的外观可以改变为与碰撞指示符不太相似。通常,如本文所述的碰撞和输入指示符实际上可具有任何尺寸、形状、颜色和整体外观。
返回图2,在208处,方法200包括基于用户输入和由障碍物施加的移动约束来移动碰撞指示符。在210处,方法200包括基于用户输入来移动输入指示符而没有由障碍物施加的移动约束。这在图4中示意性地示出。在时间T1,图4示出了在虚拟对象已被碰撞指示符404和输入指示符406替换之后用户400经由虚拟现实计算设备402查看环境。碰撞指示符404邻近障碍物408,而输入指示符406大部分穿过障碍物。基于用户试图推动虚拟对象通过障碍物,虚拟对象被碰撞和输入指示符替换。如图所示,输入指示符406继续在箭头410所示的用户输入的方向上移动,而碰撞指示符404的移动受到障碍物408的约束。如上所述,用户可以选择移动虚拟对象,因此尽管碰撞指示符的移动可能受到障碍物的移动约束的限制,但是碰撞和输入指示符可以以各种合适的方式。例如输入指示符的旋转可导致输入指示符的允许碰撞的旋转。
在图4的时间T2和T3处示出了输入指示符和碰撞指示符的进一步移动。具体地,在T2处,输入指示符406已经在通过箭头410所示的用户输入的方向上移动远离碰撞指示符404和障碍物408,而不考虑障碍物408的移动约束。碰撞指示符404不能在垂直于障碍物408的方向上移动,因为它受到障碍物408的移动约束的限制。然而,根据与障碍物408平行的并且不违反障碍物408的移动约束的用户输入的方向分量,碰撞指示符404已经朝着平行于障碍物408的方向移动。输入和碰撞指示符的连续移动在图4的T3处示出,其中输入指示符已经移动进一步远离障碍物408,不考虑移动约束,而碰撞指示符404的移动仍然受到障碍物的限制。
如上所述,输入指示符和碰撞指示符之间的外观差异可选地可取决于两个指示器之间的距离。这在图4中示出,其中输入指示符406随着其从碰撞指示符进一步移动而尺寸减小。
障碍物可以以多种方式约束碰撞指示符的移动。在一些实现中,由障碍物施加的移动约束可以防止碰撞指示符穿过障碍物,或者与障碍物共享三维空间。替代地,移动约束可以防止对象占据障碍物的阈值距离内的空间。类似地,移动约束可允许碰撞指示符移动经过障碍物到较小程度,但不完全绕过障碍物。本文讨论的特定约束不是限制性的,并且方法200实际上与任何类型的移动约束兼容。
在一些实现中,在某些情况下可以放松对碰撞指示符施加的移动约束。例如当碰撞指示符和输入指示符之间的距离增加时,可以放松这种约束。这在图5中示意性地示出。在时间T1处,图5示出了在用户输入尝试推动虚拟对象通过障碍物508之后用户500经由虚拟现实计算设备502查看环境。因此,虚拟对象已被碰撞指示符和输入指示符506替换。如图所示,由障碍物508施加的移动约束正在影响碰撞指示符在输入箭头510的方向上移动的能力。同时,输入指示符506正在箭头510的方向移动,而不考虑障碍物508的移动约束。
在图5的时间T2和T3处示出了输入指示符和碰撞指示符的进一步移动。在T2处,输入指示符506继续在用户输入的方向上移动,而不考虑障碍物508。同时,尽管由障碍物施加的移动约束仍然阻止碰撞指示符通过障碍物以及连接输入指示符,但是随着碰撞指示符和输入指示符之间的距离增加,这些约束已经部分地放松。因此,碰撞指示符504的一部分绕过障碍物。这可以向用户指示输入指示符的进一步移动将完全克服移动约束。输入指示符和碰撞指示符的连续移动在图5的T3处被示出,其中输入指示符和碰撞指示符之间的距离增加。因此,障碍物508的移动约束已经被进一步放松,允许碰撞指示符504的更大部分绕过障碍物。
此外,在一些实现中,由障碍物施加的移动约束可能受到除了碰撞指示符和输入指示符之间的距离之外的因素的影响。例如当碰撞指示符接触障碍物时,移动约束可以逐渐放松,移动约束可以应用于表示某些类型的虚拟对象的碰撞指示符,该碰撞指示符与表示其他类型的虚拟对象等的碰撞指示符不同。
碰撞指示符的移动可选地可以至少部分地基于将碰撞指示符拉向输入指示符的模拟吸引力。这在图5中由虚线512指示,虚线512表示将碰撞指示符504拉向输入指示符506的力。这可以使碰撞指示符以受输入指示符的移动影响的方式移动。换句话说,当输入指示符移动时,碰撞指示符可以移动以便保持尽可能地接近输入指示符,同时仍然遵守由障碍物施加的任何完全或放松的移动约束。替代地,碰撞指示符可以不与输入指示符一起移动,而是可以代之以在输入指示符移动时占据相对于障碍物的固定位置。
返回到图2,在212处,方法200可选地包括基于碰撞指示符和输入指示符之间的分离条件,在输入指示符的位置处利用虚拟对象替换碰撞指示符和输入指示符。这在图6A中被示意性地示出,图6A示出了用户600使用虚拟现实计算设备602来查看碰撞指示符604以及输入指示符606,其被显示在障碍物608的相对侧上。如图所示,用户600正在提供用户输入以沿箭头610的方向移动碰撞指示符和输入指示符,导致输入指示符的移动远离碰撞指示符到图6A中所示的位置。然而,由障碍物608对碰撞指示符604施加的移动约束阻止碰撞指示符通过障碍物并在用户输入的方向上移动。
基于碰撞指示符和输入指示符之间的分离条件,这些指示符可以由输入指示符的位置处的虚拟对象替换。在一些实现中,分离条件可以是碰撞指示符和输入指示符之间的距离,并且这些指示符可以基于距离超过阈值由虚拟对象替换。这在图6B中示出,其中虚拟对象612已经在输入指示符606的先前位置处替换了碰撞指示符604和输入指示符606。应当理解,可以使用任何合适的距离阈值来触发指示符何时被虚拟对象替换,并且该阈值可以取决于虚拟对象的类型、障碍物的类型、自虚拟对象由输入指示符和碰撞指示符替换以来经过的时间等。这样的阈值可以设置为几乎任何大小,具有使得它更容易克服移动约束的较短的阈值距离,和使得更容易更准确地将虚拟对象放置在针对障碍物的特定位置的更长的阈值距离。此外,如上所述,随着碰撞指示符和输入指示符之间的距离增加,可以放松障碍物的移动约束。这可以允许碰撞指示符开始逐渐穿过障碍物,用作用户的视觉指示符,输入指示符的进一步移动将推动虚拟对象穿过障碍物。如本文所使用的,用虚拟对象替换碰撞和输入指示符可以指移除输入指示符并将碰撞指示符视为虚拟对象;移除碰撞指示符并将输入指示符视为虚拟对象;并且移除碰撞指示符和输入指示符两者,并在碰撞指示符或输入指示符的位置处添加虚拟对象。
在一些实现中,虚拟现实计算设备可以基于虚拟对象碰撞和/或状态改变来向用户提供听觉和/或触觉反馈。例如当虚拟对象与障碍物接触时,虚拟现实计算设备可以生成可听见的“撞击”声音。当虚拟对象被碰撞指示符和输入指示符替换时,当用户继续提供违反障碍物的用户输入时,当障碍物的移动约束被放松时,当输入指示符和碰撞指示符被虚拟对象替换时等,可能会生成类似的声音效果。类似地,在用户利用一个或多个物理输入设备控制虚拟对象移动的场景中,除了如上所述的声音效果之外或代替声音效果,这样的输入设备可以提供振动或其他触觉反馈。
在虚拟对象替换输入指示符的位置处的碰撞指示符和输入指示符时,障碍物的移动约束可以不再限制虚拟对象的移动。换句话说,虚拟现实计算设备可以被配置为基于用户输入来移动虚拟对象,而不考虑由对象施加的移动约束。因此,如果用户朝向障碍物移动虚拟对象,并且用户想要虚拟对象穿过障碍物,则如果用户继续提供违反障碍物的移动约束的用户输入,则这可以被实现。这样的用户输入可以使得输入指示符继续移动远离碰撞指示符,直到碰撞指示符和输入指示符基于分离条件被虚拟对象替换时为止,允许用户自由地移动虚拟对象,而不管障碍物的存在。
在虚拟对象被碰撞指示符和输入指示符替换之后用户停止提供用户输入的事件中,虚拟现实计算设备可以被配置为利用虚拟对象替换输入指示符和碰撞指示符。在一些实现中,输入指示符可在用户未在不同方向上提供用户输入的任何时间在碰撞指示符的方向上移动。因此,在用户中断用户输入时,输入指示符可以移回到冲突指示符并且与冲突指示符重新连接,使得两个指示符被虚拟对象替换。然后,虚拟对象可以基于用户输入和由障碍物施加的移动约束来移动。在这种场景下,分离条件可以是碰撞指示符和输入指示符之间的距离,并且这些指示符可以基于距离降低到阈值以下由虚拟对象替换。因此,如果用户移动虚拟对象使得其接触障碍物并且被碰撞指示符和输入指示符替换,尽管用户不希望虚拟对象绕过障碍物,则用户可以中断试图违反障碍物的以移动限制的用户输入。值得注意的是,输入指示符还可以基于移动输入指示符远离障碍物移动的用户输入朝向碰撞指示符移动,并且这可以附加地导致输入和碰撞指示符被虚拟对象替换。
在一些实现中,虚拟对象可以基于上面未描述的分离条件来替换输入指示符和碰撞指示符。例如决定何时替换碰撞指示符和输入指示符的特定分离条件可以基于虚拟对象的类型以及障碍物的类型而变化。分离条件可以是虚拟对象被指示符替换后的时间长度,并且在时间长度超过阈值之后,指示符可以被虚拟对象替换。类似地,在两个指示符到达障碍物的不同侧时,输入指示符和碰撞指示符可以由虚拟对象自动替换。应当理解,输入指示符和碰撞指示符可以基于本文未明确描述的其他分离条件由虚拟对象替换。
在虚拟对象被推过障碍物之后,虚拟对象可被障碍物部分或完全遮挡。这在图6B中示意性地示出,其中虚拟对象612已经在输入指示符的位置处替换了碰撞指示符604和输入指示符606。假定用户和虚拟对象在障碍物的不同侧上,在障碍物608不透明的情况下,则用户可能难以或不可能看到虚拟对象。因此,虚拟现实计算设备可以被配置为基于输入指示符或虚拟对象被障碍物遮挡,显示虚拟窗口以维持输入指示符或虚拟对象的可见性。这在图6B中示出,其中虚拟窗口614允许用户600通过障碍物608看到虚拟对象612。在输入指示符被障碍物部分或完全遮挡的情况下,可以生成类似的虚拟窗口。
如本文所述的虚拟窗口可采用各种形式。例如在障碍物是虚拟对象的情况下,虚拟现实计算设备可以简单地改变虚拟对象的外观以便于增加其透明度。替代地,在障碍物是真实世界对象的情况下,虚拟现实计算设备可呈现输入指示符的透明或“重影”图像,其具有使其看起来好像通过障碍物是可见的尺寸和形状。类似地,虚拟窗口可以具有各种合适的尺寸和形状,以便于确保输入指示符或虚拟对象对用户保持可见。
可以以各种合适的方式生成和显示诸如上述虚拟对象的虚拟图像。在一些实现中,与虚拟现实计算设备相关联的近眼显示器可以包括两个或更多个微投影仪,每个微投影仪被配置为在近眼显示器上或内部投射光以为了向用户显示虚拟图像。图7A示出了示例性近眼显示器700的一部分。近眼显示器700包括位于用户左眼704L前方的左微投影仪702L。应当理解,近眼显示器700还包括位于用户右眼704R前方的右微投影仪702R,在图7A中不可见。
近眼显示器包括光源706和硅基液晶(LCOS)阵列708。光源可以包括发光二极管(LED)的集合-例如白色LED或者红色、绿色和蓝色LED的分布。光源可以被定位以将其发射引导到LCOS阵列上,LCOS阵列被配置为基于从与虚拟现实计算设备相关联的逻辑机器接收的控制信号来形成显示图像。LCOS阵列可包括被布置在矩形网格或其他几何形状上的多个可单独寻址的像素。在一些实施例中,反射红光的像素可以在阵列中被并置到反射绿光和蓝光的像素,使得LCOS阵列形成彩色图像。在其他实施例中,可以使用数字微镜阵列代替LCOS阵列,或者可以代之以使用有源矩阵LED阵列。在其他实施例中,可以使用透射、背光LCD或扫描光束技术来形成显示图像。
在一些实施例中,来自LCOS阵列708的显示图像可能不适合于由近眼显示器700的用户直接查看。具体地,显示图像可能偏离用户的眼睛,可能具有不期望的聚散和/或非常小的出瞳(即,显示灯的释放区域,不要与用户的解剖学瞳孔混淆)。鉴于这些问题,来自LCOS阵列的显示图像可以在途中进一步调节到用户的眼睛。例如来自LCOS阵列的光可以穿过一个或多个透镜,诸如透镜710,或近眼显示器700的其他光学组件,以便减少任何偏移、调整聚散度、扩展出射光瞳等。
由每个微投影仪702投射的光可以采取对用户可见的虚拟图像的形式,并占据相对于近眼显示器的特定屏幕空间位置。如图所示,来自LCOS阵列708的光在屏幕空间位置714处形成虚拟图像712。具体地,虚拟图像712是采用香蕉形式的虚拟对象,但是代替虚拟香蕉和/或除了虚拟香蕉之外,可以显示任何其他虚拟图像。类似的图像可以由微投影仪702R形成,并且占据相对于用户的右眼的类似的屏幕空间位置。在一些实现中,这两个图像可以以这样的方式彼此偏移:它们被用户的视觉皮质解释为单个三维图像。因此,用户可以将由微型投影仪投射的图像感知为单个虚拟对象,占据三维世界空间位置,该三维世界空间位置在由近眼显示器呈现虚拟图像的屏幕空间位置之后。
这在图7B中示出,图7B示出了穿戴近眼显示器700的用户的俯视图。如图所示,左微投影仪702L位于用户的左眼704L的前方,右微投影仪702R位于用户的右眼704R的前方。虚拟图像712对于用户是可见的,作为存在于三维世界空间位置716处的虚拟对象。用户可以提供用户输入以移动虚拟对象。这样的用户输入可以使得呈现虚拟图像的屏幕空间位置改变,从而给出虚拟对象正在通过三维空间移动的错觉。与上面示出的其他图一样,图7B包括仅对虚拟现实计算设备的用户可见的虚拟图像。
图8示出了包括近眼显示器802的示例虚拟现实计算系统800的各方面,眼显示器802可以经由一个或多个微投影仪呈现虚拟图像,如上面参考图7A和7B所述。虚拟现实计算系统800是图1A和1B中所示的虚拟现实计算系统102、图3A、3B、4、4、6A、6B中所示的虚拟现实计算设备、集成有图7的近眼显示器700的虚拟现实设备、和/或图9所示的计算系统900的非限制性示例。
虚拟现实计算系统800可以被配置为呈现任何合适类型的虚拟现实体验。在一些实现中,虚拟现实体验包括完全虚拟体验,其中近眼显示器802是不透明的,使得穿戴者完全被吸引在经由近眼显示器802提供的虚拟现实图像中。
在一些实现中,虚拟现实体验包括增强现实体验,其中近眼显示器802从穿戴者的角度全部或部分透明,以给穿戴者周围的物理空间的清楚视图。在这样的配置中,近眼显示器802被配置为将显示光引导到用户的眼睛,使得用户将看到实际上不存在于物理空间中的增强现实对象。换句话说,近眼显示器802可以将显示光引导到用户的眼睛,同时来自物理空间的光通过近眼显示器802到达用户的眼睛。这样,用户的眼睛同时接收来自物理环境的光和显示光。
在这样的增强现实实现中,虚拟现实计算系统800可以被配置为在视觉上呈现看起来身体锁定和/或世界锁定的增强现实对象。身体锁定的增强现实对象可以看起来当虚拟现实计算系统800的姿势(例如六个自由度(DOF):x、y、z、偏航、俯仰、滚动)改变时与用户的视角一起移动。这样,即使在用户在物理空间中移动时,身体锁定增强现实对象也可能看起来占据近眼显示器802的相同部分并且看起来与用户处于相同的距离。替代地,即使在虚拟现实计算系统800的姿势改变时,世界锁定的增强现实对象也可能看起来保持在物理空间中的固定位置。当虚拟现实计算系统800可视地呈现世界锁定的增强现实对象时,这种虚拟现实体验可被称为混合现实体验。
在一些实现中,近眼显示器802的不透明度可经由调光滤波器动态控制。因此,基本上透视的显示器可以切换到完全不透明度以用于完全沉浸式的虚拟现实体验。
虚拟现实计算系统800可以采用任何其他合适的形式,其中透明、半透明和/或不透明的显示器在查看者的眼睛前面被支撑。此外,本文描述的实现可以与任何其他合适的计算设备一起被使用,包括但不限于可穿戴计算设备、移动计算设备、膝上型计算机、台式计算机、智能电话、平板计算机等。
可以使用任何合适的机制来经由近眼显示器802显示图像。例如近眼显示器802可以包括位于透镜806内的图像产生元件。作为另一示例,近眼显示器802可以包括显示设备,诸如位于框架808内的硅基液晶(LCOS)设备或OLED微显示器。在该示例中,透镜806可以用作或者以其他形式包括用于从显示设备向穿戴者的眼睛传递光的光导。附加地或替代地,近眼显示器802可以经由相应的左眼和右眼显示器来呈现左眼和右眼虚拟现实图像。
虚拟现实计算系统800包括机载计算机804,其被配置为执行与接收用户输入有关的各种操作(例如手势识别、眼睛注视检测)、近眼显示器802上的虚拟现实图像的视觉呈现和本文描述的其他操作。在一些实现中,可以在板外执行上述所有计算功能中的一些到全部。
虚拟现实计算系统800可以包括各种传感器和有关系统,以向机载计算机804提供信息。这种传感器可以包括但不限于一个或多个面向内的图像传感器810A和810B、一个或多个面向外的图像传感器812A和812B、惯性测量单元(IMU)814、以及一个或多个麦克风816。一个或多个面向内的图像传感器810A、810B可以被配置为从穿戴者的眼睛获取注视跟踪信息(例如传感器810A可以获取穿戴者眼睛中的一个的图像数据,并且传感器810B可以获取穿戴者眼睛中的另一个的图像数据)。
机载计算机804可以被配置为基于从图像传感器810A、810B接收的信息以任何合适的方式确定穿戴者的眼睛中的每只眼睛的注视方向。一个或多个面向内的图像传感器810A、810B和机载计算机804可以共同表示注视检测机器,其被配置为在近眼显示器802上确定穿戴者的注视目标。在其他实现中,不同类型的注视检测器/传感器可以被采用来测量用户眼睛的一个或多个注视参数。由机载计算机804使用的用于确定眼睛注视样本的一个或多个注视传感器测量的注视参数的示例可包括眼睛注视方向、头部方向、眼睛注视速度、眼睛注视加速度、眼睛注视方向的角度变化和/或任何其他合适的跟踪信息。在一些实现中,可以针对双眼独立地记录眼睛注视跟踪。
一个或多个面向外的图像传感器812A、812B可以被配置为测量物理空间的物理环境属性。在一个示例中,图像传感器812A可以包括可见光相机,其被配置为收集物理空间的可见光图像。此外,图像传感器812B可以包括深度相机,其被配置为收集物理空间的深度图像。更具体地,在一个示例中,深度相机是红外飞行时间深度相机。在另一示例中,深度相机是红外结构光深度相机。
来自面向外的图像传感器812A、812B的数据可以由机载计算机804使用以检测移动,诸如基于手势的输入或由穿戴者或物理空间中的人或物理对象执行的其他移动。在一个示例中,来自面向外的图像传感器812A、812B的数据可以用于检测由虚拟现实计算系统800的穿戴者执行的用户输入,诸如手势。来自面向外的图像传感器812A、812B的数据可以由机载计算机804使用以(例如从成像环境特征)确定方向/位置和方向数据,方向/位置和方向数据能够实现在现实世界的环境中的虚拟现实计算系统800的位置/运动跟踪。在一些实现中,来自面向外的图像传感器812A、812B的数据可以由机载计算机804使用,以从虚拟现实计算系统800的角度构建周围环境的静止图像和/或视频图像。
IMU 814可以被配置为向机载计算机804提供虚拟现实计算系统800的位置和/或取向数据。在一个实现中,IMU 814可以被配置为三轴或三个自由度(3DOF)位置传感器系统。该示例性位置传感器系统可以例如包括三个陀螺仪,以指示或测量虚拟现实计算系统800在3D空间内关于三个正交轴(例如滚动、俯仰和偏航)的取向变化。
在另一个示例中,IMU 814可以被配置为六轴或六自由度(6DOF)位置传感器系统。这样的配置可以包括三个加速度计和三个陀螺仪,以指示或测量虚拟现实计算系统800沿三个正交空间轴(例如x、y和z)的位置中的变化以及关于三个正交旋转轴(例如偏航、俯仰和滚动)的设备取向中的变化。在一些实现中,来自面向外的图像传感器812A、812B和IMU814的位置和取向数据可以结合使用以确定虚拟现实计算系统800的位置和取向(或6DOF姿势)。
虚拟现实计算系统800还可以支持其他合适的定位技术,诸如GPS或其他全球导航系统。此外,虽然已经描述了位置传感器系统的具体示例,但是应当理解,可以使用任何其他合适的传感器系统。例如头部姿势和/或移动数据可以基于来自安装在穿戴者上和/或穿戴者外部的传感器的任何组合的传感器信息来确定,包括但不限于任何数量的陀螺仪、加速度计、惯性测量单元、GPS设备、气压计、磁力计、摄像机(例如可见光相机、红外线相机、飞行时间深度相机、结构光深度相机等)、通信设备(例如WIFI天线/接口)等。
一个或多个麦克风816可以被配置为测量物理空间中的声音。来自一个或多个麦克风816的数据可以由机载计算机804使用以识别由穿戴者提供的语音命令以控制虚拟现实计算系统800。
机载计算机804可以包括与近眼显示器802和虚拟现实计算系统800的各种传感器通信的逻辑机器和存储机器,下面参考图9更详细地讨论。
在一些实施例中,本文描述的方法和过程可以绑定到一个或多个计算设备的计算系统。特别地,这些方法和处理可以实现为计算机应用程序或服务、应用程序编程接口(API)、库、和/或其他计算机程序产品。
图9示意性地示出了计算系统900的非限制性实施例,该计算系统900可以实施上述方法和过程中的一个或多个。计算系统900以简化形式示出。计算系统900可以采用一个或多个个人计算机、服务器计算机、平板计算机、家庭娱乐计算机、网络计算设备、游戏设备、移动计算设备、移动通信设备(例如智能电话)、虚拟现实计算设备和/或其他计算设备的形式。
计算系统900包括逻辑机器902和存储机器904。计算系统900可以可选地包括显示子系统906、输入子系统908、通信子系统910和/或图9中未示出的其他组件。
逻辑机器902包括被配置为执行指令的一个或多个物理设备。例如逻辑机器可以被配置为执行作为一个或多个应用、服务、程序、例程、库、对象、组件、数据结构或其他逻辑构造的一部分的指令。可以实现这样的指令以执行任务、实现数据类型、转换一个或多个组件的状态、实现技术效果、或以其他方式达到期望的结果。
逻辑机器可以包括被配置为执行软件指令的一个或多个处理器。附加地或替代地,逻辑机器可以包括被配置为执行硬件或固件指令的一个或多个硬件或固件逻辑机器。逻辑机器的处理器可以是单核或多核,并且在其上执行的指令可以被配置用于顺序、并行和/或分布式处理。逻辑机器的各个组件可选地可以分布在两个或更多个单独的设备中,这些设备可以被远程定位和/或配置用于协同处理。逻辑机器的各方面可以由在云计算配置中配置的远程可访问的联网计算设备虚拟化和执行。
存储机器904包括一个或多个物理设备,其被配置为保存可由逻辑机器执行以实现本文描述的方法和过程的指令。当实现这样的方法和过程时,可以变换存储机器904的状态-例如以保持不同的数据。
存储机器904可以包括可移动和/或内置设备。存储机器904可以包括光学存储器(例如CD、DVD、HD-DVD、蓝光盘等)、半导体存储器(例如RAM、EPROM、EEPROM等)和/或磁存储器(例如硬盘驱动器、软盘驱动器、磁带驱动器、MRAM等)等等。存储机器904可以包括易失性、非易失性、动态、静态、读/写、只读、随机访问、顺序访问、位置可寻址、文件可寻址和/或内容可寻址设备。
应当理解,存储机器904包括一个或多个物理设备。然而,本文描述的指令的各方面可替代地可以由通信介质(例如电磁信号、光信号等)传播,该通信介质在不被物理设备保持有限的持续时间。
逻辑机器902和存储机器904的各方面可以一起集成到一个或多个硬件逻辑组件中。这种硬件逻辑组件可以包括例如,现场可编程门阵列(FPGA)、程序和专用集成电路(PASIC/ASIC)、程序和应用专用标准产品(PSSP/ASSP)、片上系统(SOC)和复杂可编程逻辑器件(CPLD)。
术语“模块”、“程序”和“引擎”可用于描述被实现为执行特定功能的计算系统900的方面。在一些情况下,可以经由执行由存储机器904保持的指令的逻辑机器902来实例化模块、程序或引擎。应当理解,可以从相同应用程序、服务、代码块、对象、库、例程、API、函数等来实例化不同的模块、程序和/或引擎。同样,相同的模块、程序和/或引擎可以由不同的应用、服务、代码块、对象、例程、API、函数等实例化。术语“模块”、“程序”和“引擎”可以涵盖单个或一组可执行文件、数据文件、库、驱动程序、脚本、数据库记录等。
应当理解,本文使用的“服务”是跨多个用户会话可执行的应用程序。服务可以用于一个或多个系统组件、程序和/或其他服务。在一些实现中,服务可以在一个或多个服务器计算设备上运行。
当包括时,显示子系统906可用于呈现由存储机器904保持的数据的视觉表示。该视觉表示可采取图形用户界面(GUI)的形式。由于本文描述的方法和过程改变了存储机器所保持的数据,并因此改变了存储机器的状态,所以显示子系统906的状态同样可以被转换以在视觉上表示底层数据中的变化。显示子系统906可以包括利用几乎任何类型的技术的一个或多个显示设备。这样的显示设备可以与逻辑机器902和/或存储机器904一起被组合在共享封装中,或者这种显示设备可以是外围显示设备。
当包括时,输入子系统908可以包括一个或多个用户输入设备或与一个或多个用户输入设备对接,诸如键盘、鼠标、触摸屏或游戏控制器。在一些实施例中,输入子系统可以包括选定的自然用户输入(NUI)组件或与选定的自然用户输入(NUI)组件对接。这种组件可以是集成的或外围的,并且输入动作的转换和/或处理可以在板上或板外处理。示例NUI组件可以包括用于语音和/或语音识别的麦克风;用于机器视觉和/或手势识别的红外、彩色、立体和/或深度相机;用于运动检测和/或意图识别的头部跟踪器、眼睛跟踪器、加速度计和/或陀螺仪;以及用于评估大脑活动的电场感应组件。
当被包括时,通信子系统910可以被配置为将计算系统900与一个或多个其他计算设备通信地耦合。通信子系统910可以包括与一个或多个不同通信协议兼容的有线和/或无线通信设备。作为非限制性示例,通信子系统可以被配置为经由无线电话网络或有线或无线局域网或广域网络进行通信。在一些实施例中,通信子系统可以允许计算系统900经由诸如因特网的网络向其他设备发送消息和/或从其他设备接收消息。
在一个示例中,一种用于移动虚拟对象的方法包括:显示虚拟对象;基于用户输入移动虚拟对象;基于试图违反障碍物移动虚拟对象的用户输入,显示碰撞指示符和输入指示符;基于用户输入和由障碍物施加的移动约束来移动碰撞指示符;并且基于用户输入来移动输入指示符,而没有障碍物施加的移动约束。在该示例或任何其他示例中,障碍物是现实世界对象。在该示例或任何其他示例中,障碍物是虚拟对象。在该示例或任何其他示例中,碰撞指示符的外观模仿虚拟对象的外观。在该示例或任何其他示例中,输入指示符的外观不同于虚拟对象的外观,但是从虚拟对象的外观得出。在该示例或任何其他示例中,碰撞指示符和输入指示符根据颜色、大小和透明度中的一个或多个而在外观上不同。在该示例或任何其他示例中,碰撞指示符和输入指示符之间的外观中的差异基于碰撞指示符和输入指示符之间的距离而改变。在该示例或任何其他示例中,输入指示符的旋转导致碰撞指示符的允许碰撞的旋转。在该示例或任何其他示例中,碰撞指示符的移动还基于将碰撞指示符拉向输入指示符的模拟吸引力。在该示例或任何其他示例中,当碰撞指示符和输入指示符之间的距离增加时,由障碍物施加的移动约束被放松。在该示例或任何其他示例中,碰撞指示符和输入指示符替换虚拟对象。在该示例或任何其他示例中,该方法还包括基于碰撞指示符和输入指示符之间的分离条件,在输入指示符的位置处利用虚拟对象替换碰撞指示符和输入指示符。在该示例或任何其他示例中,分离条件是碰撞指示符和输入指示符之间的距离,并且基于距离超出阈值,碰撞指示符和输入指示符来在输入指示符的位置处利用虚拟对象被替换。在该示例或任何其他示例中,在用虚拟对象替换碰撞指示符和输入指示符时,该方法还包括基于用户输入移动虚拟对象而没有由障碍物施加的移动约束。在该示例或任何其他示例中,该方法还包括显示虚拟窗口以维持输入指示符或虚拟对象的可见性。
在一个示例中,一种计算设备包括:逻辑机器;存储机器,保持指令,所述指令由逻辑机器可执行以:显示虚拟对象;基于用户输入来移动虚拟对象;并且基于试图违反障碍物移动虚拟对象的用户输入,利用碰撞指示符和输入指示符替换虚拟对象;基于用户输入和障碍物施加的移动约束来移动碰撞指示符;并且基于用户输入来移动输入指示符而没有障碍物施加的移动约束。在该示例或任何其他示例中,碰撞指示符和输入指示符根据颜色、尺寸和透明度中的一个或多个在外观上不同,并且碰撞指示符和输入指示符之间的外观中的差异基于碰撞指示符和输入指示符之间的距离而改变。在该示例或任何其他示例中,指令还可执行以基于碰撞指示符和输入指示符之间的距离超过阈值,在输入指示符的位置处利用虚拟对象替换碰撞指示符和输入指示符,以及基于用户输入来移动虚拟对象而没有由障碍物施加的移动约束。在该示例或任何其他示例中,碰撞指示符的移动还基于将碰撞指示符拉向输入指示符的模拟吸引力。
在一个示例中,一种用于移动虚拟对象的方法包括:显示虚拟对象;基于用户输入来移动虚拟对象;并且基于试图违反障碍物移动虚拟对象的用户输入,利用碰撞指示符和输入指示符来替换虚拟对象;基于用户输入、由障碍物施加的移动约束、以及将碰撞指示符拉向输入指示符的模拟吸引力来移动碰撞指示符;基于用户输入来移动输入指示符而没有由障碍物施加的移动约束;基于碰撞指示符和输入指示符之间的距离超过阈值,将碰撞指示符和输入指示符替换为输入指示符位置处的虚拟对象;并且基于用户输入从该位置移动虚拟对象而没有障碍物施加的移动约束。
应当理解,本文描述的配置和/或方案本质上是示例性的,并且这些具体实施例或示例不应被视为具有限制意义,因为许多变型是可能的。本文描述的特定例程或方法可以表示任何数量的处理策略中的一个或多个。这样,示出和/或描述的各种动作可以以所示和/或描述的顺序、以其他顺序、并行或省略来执行。同样,可以改变上述过程的顺序。
本公开的主题包括各种处理、系统和配置的所有新颖和非显而易见的组合和子组合、以及本文公开的其他特征、功能、动作和/或性质、以及其任何和所有等同物。

Claims (15)

1.一种用于移动虚拟对象的方法,包括:
显示虚拟对象;
基于用户输入来移动所述虚拟对象;
基于试图违反障碍物来移动所述虚拟对象的所述用户输入,显示碰撞指示符和输入指示符;
基于用户输入和由所述障碍物施加的移动约束,移动所述碰撞指示符;以及
基于用户输入来移动所述输入指示符,而没有由所述障碍物施加的移动约束。
2.根据权利要求1所述的方法,其中所述障碍物是真实世界对象。
3.根据权利要求1所述的方法,其中所述障碍物是虚拟对象。
4.根据权利要求1所述的方法,其中所述碰撞指示符的外观模仿所述虚拟对象的外观。
5.根据权利要求1所述的方法,其中所述输入指示符的外观不同于所述虚拟对象的外观,但是从所述虚拟对象的外观得出。
6.根据权利要求1所述的方法,其中所述碰撞指示符和输入指示符根据颜色、尺寸和透明度中的一个或多个而在外观上不同。
7.根据权利要求6所述的方法,其中所述碰撞指示符和输入指示符之间的外观中的差异基于所述碰撞指示符和所述输入指示符之间的距离而改变。
8.根据权利要求1所述的方法,其中所述输入指示符的旋转导致所述碰撞指示符的允许碰撞的旋转。
9.根据权利要求1所述的方法,其中所述碰撞指示符的移动还基于将所述碰撞指示符拉向所述输入指示符的模拟吸引力。
10.根据权利要求1所述的方法,其中当所述碰撞指示符和所述输入指示符之间的距离增加时,由所述障碍物施加的移动约束被放松。
11.根据权利要求1所述的方法,其中所述碰撞指示符和输入指示符替换所述虚拟对象。
12.根据权利要求11所述的方法,还包括:基于所述碰撞指示符和所述输入指示符之间的分离条件,在所述输入指示符的位置处利用所述虚拟对象替换所述碰撞指示符和所述输入指示符。
13.根据权利要求12所述的方法,其中所述分离条件是所述碰撞指示符与所述输入指示符之间的距离,并且基于所述距离超过阈值,所述碰撞指示符和所述输入指示符在所述输入指示符的所述位置处利用所述虚拟对象被替换。
14.根据权利要求12所述的方法,其中在利用所述虚拟对象替换所述碰撞指示符和所述输入指示符时,所述方法还包括:基于用户输入来移动所述虚拟对象,而没有由所述障碍物施加的移动约束。
15.根据权利要求1所述的方法,还包括:显示虚拟窗口以维持所述输入指示符或所述虚拟对象的可见性。
CN201780062997.5A 2016-10-27 2017-10-18 虚拟对象移动 Active CN109803734B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210624152.3A CN115006839A (zh) 2016-10-27 2017-10-18 虚拟对象移动

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/336,461 2016-10-27
US15/336,461 US10311543B2 (en) 2016-10-27 2016-10-27 Virtual object movement
PCT/US2017/057070 WO2018080853A1 (en) 2016-10-27 2017-10-18 Virtual object movement

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210624152.3A Division CN115006839A (zh) 2016-10-27 2017-10-18 虚拟对象移动

Publications (2)

Publication Number Publication Date
CN109803734A true CN109803734A (zh) 2019-05-24
CN109803734B CN109803734B (zh) 2022-06-17

Family

ID=60245205

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210624152.3A Pending CN115006839A (zh) 2016-10-27 2017-10-18 虚拟对象移动
CN201780062997.5A Active CN109803734B (zh) 2016-10-27 2017-10-18 虚拟对象移动

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202210624152.3A Pending CN115006839A (zh) 2016-10-27 2017-10-18 虚拟对象移动

Country Status (4)

Country Link
US (2) US10311543B2 (zh)
EP (1) EP3532177B1 (zh)
CN (2) CN115006839A (zh)
WO (1) WO2018080853A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021013043A1 (zh) * 2019-07-19 2021-01-28 华为技术有限公司 虚拟现实场景中的交互方法及装置
CN112807690A (zh) * 2021-01-27 2021-05-18 网易(杭州)网络有限公司 一种虚拟对象的控制方法和装置
CN112807690B (zh) * 2021-01-27 2024-06-04 网易(杭州)网络有限公司 一种虚拟对象的控制方法和装置

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10593116B2 (en) 2016-10-24 2020-03-17 Snap Inc. Augmented reality object manipulation
US10311543B2 (en) * 2016-10-27 2019-06-04 Microsoft Technology Licensing, Llc Virtual object movement
US10191566B1 (en) * 2017-07-05 2019-01-29 Sony Interactive Entertainment Inc. Interactive input controls in a simulated three-dimensional (3D) environment
US10672191B1 (en) * 2017-07-14 2020-06-02 Marxent Labs Llc Technologies for anchoring computer generated objects within augmented reality
EP3688562A1 (en) 2017-09-29 2020-08-05 Apple Inc. Physical boundary guardian
US10712899B2 (en) * 2017-10-17 2020-07-14 Microsoft Technology Licensing, Llc Human-machine interface tethered to a user position in a three-dimensional VR or AR environment
US10726626B2 (en) * 2017-11-22 2020-07-28 Google Llc Interaction between a viewer and an object in an augmented reality environment
US10902680B2 (en) * 2018-04-03 2021-01-26 Saeed Eslami Augmented reality application system and method
US10748346B2 (en) 2018-06-08 2020-08-18 Microsoft Technology Licensing, Llc Placing and solving constraints on a 3D environment
US11850514B2 (en) 2018-09-07 2023-12-26 Vulcan Inc. Physical games enhanced by augmented reality
CN109717828A (zh) * 2018-10-24 2019-05-07 中国医学科学院生物医学工程研究所 一种视野检查设备及检测方法
JP7262976B2 (ja) * 2018-11-02 2023-04-24 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US11670080B2 (en) * 2018-11-26 2023-06-06 Vulcan, Inc. Techniques for enhancing awareness of personnel
US11024074B2 (en) * 2018-12-27 2021-06-01 Facebook Technologies, Llc Virtual spaces, mixed reality spaces, and combined mixed reality spaces for improved interaction and collaboration
WO2020163530A1 (en) 2019-02-08 2020-08-13 Vulcan Inc. Devices to assist ecosystem development and preservation
US11912382B2 (en) 2019-03-22 2024-02-27 Vulcan Inc. Underwater positioning system
US11435845B2 (en) 2019-04-23 2022-09-06 Amazon Technologies, Inc. Gesture recognition based on skeletal model vectors
US10937218B2 (en) * 2019-07-01 2021-03-02 Microsoft Technology Licensing, Llc Live cube preview animation
US11842449B2 (en) * 2019-09-26 2023-12-12 Apple Inc. Presenting an environment based on user movement
US11580839B2 (en) * 2020-02-24 2023-02-14 Amirbahman Saatchi Systems, methods, and apparatuses for implementing a GPS directional swimming watch for the eyesight impaired
US11582571B2 (en) * 2021-05-24 2023-02-14 International Business Machines Corporation Sound effect simulation by creating virtual reality obstacle

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050062738A1 (en) * 1998-07-17 2005-03-24 Sensable Technologies, Inc. Systems and methods for creating virtual objects in a sketch mode in a haptic virtual reality environment
KR20100081001A (ko) * 2009-01-05 2010-07-14 삼성전자주식회사 가상 객체의 이동 제어 장치 및 방법
JP2015143976A (ja) * 2013-12-25 2015-08-06 キヤノンマーケティングジャパン株式会社 情報処理装置及びその制御方法、プログラム
CN105938629A (zh) * 2016-03-31 2016-09-14 联想(北京)有限公司 一种信息处理方法及电子设备

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005010623A2 (en) 2003-07-24 2005-02-03 Zebra Imaging, Inc. Enhanced environment visualization using holographic stereograms
EP1879671A1 (en) 2005-03-02 2008-01-23 Silvia Zambelli Mobile holographic simulator of bowling pins and virtual objects
US7782319B2 (en) 2007-03-28 2010-08-24 Autodesk, Inc. Three-dimensional orientation indicator and controller
US20100245233A1 (en) 2009-03-31 2010-09-30 Codemasters Software Company Ltd. Moving an object within a virtual environment
US9183676B2 (en) * 2012-04-27 2015-11-10 Microsoft Technology Licensing, Llc Displaying a collision between real and virtual objects
US20130326364A1 (en) 2012-05-31 2013-12-05 Stephen G. Latta Position relative hologram interactions
US20130335405A1 (en) 2012-06-18 2013-12-19 Michael J. Scavezze Virtual object generation within a virtual environment
US9274742B2 (en) 2012-10-25 2016-03-01 PixiOnCloud, Inc. Visual-symbolic control of remote devices having display-based user interfaces
US20140152558A1 (en) 2012-11-30 2014-06-05 Tom Salter Direct hologram manipulation using imu
US20140267599A1 (en) 2013-03-14 2014-09-18 360Brandvision, Inc. User interaction with a holographic poster via a secondary mobile device
US9245387B2 (en) 2013-04-12 2016-01-26 Microsoft Technology Licensing, Llc Holographic snap grid
US9230368B2 (en) 2013-05-23 2016-01-05 Microsoft Technology Licensing, Llc Hologram anchoring and dynamic positioning
US10049493B1 (en) * 2015-10-22 2018-08-14 Hoyt Architecture Lab, Inc System and methods for providing interaction with elements in a virtual architectural visualization
US10311543B2 (en) * 2016-10-27 2019-06-04 Microsoft Technology Licensing, Llc Virtual object movement

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050062738A1 (en) * 1998-07-17 2005-03-24 Sensable Technologies, Inc. Systems and methods for creating virtual objects in a sketch mode in a haptic virtual reality environment
KR20100081001A (ko) * 2009-01-05 2010-07-14 삼성전자주식회사 가상 객체의 이동 제어 장치 및 방법
JP2015143976A (ja) * 2013-12-25 2015-08-06 キヤノンマーケティングジャパン株式会社 情報処理装置及びその制御方法、プログラム
CN105938629A (zh) * 2016-03-31 2016-09-14 联想(北京)有限公司 一种信息处理方法及电子设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021013043A1 (zh) * 2019-07-19 2021-01-28 华为技术有限公司 虚拟现实场景中的交互方法及装置
US11798234B2 (en) 2019-07-19 2023-10-24 Huawei Technologies Co., Ltd. Interaction method in virtual reality scenario and apparatus
CN112807690A (zh) * 2021-01-27 2021-05-18 网易(杭州)网络有限公司 一种虚拟对象的控制方法和装置
CN112807690B (zh) * 2021-01-27 2024-06-04 网易(杭州)网络有限公司 一种虚拟对象的控制方法和装置

Also Published As

Publication number Publication date
US10672103B2 (en) 2020-06-02
US10311543B2 (en) 2019-06-04
CN115006839A (zh) 2022-09-06
EP3532177A1 (en) 2019-09-04
WO2018080853A1 (en) 2018-05-03
US20180122043A1 (en) 2018-05-03
US20190279335A1 (en) 2019-09-12
EP3532177B1 (en) 2022-07-13
CN109803734B (zh) 2022-06-17

Similar Documents

Publication Publication Date Title
CN109803734A (zh) 虚拟对象移动
JP6611733B2 (ja) 表示装置の閲覧者の注視誘引
CN106537261B (zh) 全息键盘显示
US10248199B2 (en) Gaze detection calibration
JP6730286B2 (ja) 拡張現実視野オブジェクトフォロワー
CN107003738B (zh) 注视目标应用启动器
US9977492B2 (en) Mixed reality presentation
US20140071163A1 (en) Augmented reality information detail
US20180330546A1 (en) Wind rendering for virtual reality computing device
EP2887639A1 (en) Augmented reality information detail
KR20150071613A (ko) 증강 현실 정보 상세도

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
GR01 Patent grant
GR01 Patent grant