User interface including environmental representation
By detecting changes in user field of view and adjusting the display mode of virtual objects, the problem of inefficient interaction in the existing technology is solved, and a more efficient and intuitive user interface is achieved, saving energy consumption and extending battery life.
Patent Information
- Application Number
- CN202510539741.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-09-06
- Filing Date
- 2023-09-20
- Publication Date
- 2025-08-08
AI Technical Summary
Existing methods and interfaces for interacting with virtual objects in extended real environments are inefficient, user input is cumbersome and error-prone, resulting in increased cognitive burden and consumes computer system energy, especially in battery-driven devices that affect battery life.
By detecting user field of view changes, adjust the display mode of virtual objects using environment locking and field of view changes, reduce user input and optimize interface interaction, including switching of environmental locking and viewpoint locking display modes.
Improves the efficiency and intuitiveness of user interaction, reduces the number and nature of inputs, saves the energy consumption of computer systems, extends battery life, and improves the ergonomics and privacy of the device.
Smart Images

Figure CN120447734A_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application with the application date of September 20, 2023, application number 202380065858.3, and invention name “User interface including environmental representation”.
[0002] CROSS-REFERENCE TO RELATED APPLICATIONS
[0003] This application claims priority to U.S. Patent Application No. 18 / 242,948, filed on September 6, 2023, entitled “USER INTERFACES THAT INCLUDEREPRESENTATIONS OF THE ENVIRONMENT,” and U.S. Provisional Patent Application No. 63 / 409,497, filed on September 23, 2022, entitled “USER INTERFACES THAT INCLUDEREPRESENTATIONS OF THE ENVIRONMENT.” The contents of each of these patent applications are incorporated herein by reference in their entirety. Technical Field
[0004] The present disclosure generally relates to computer systems that provide computer-generated experiences in communication with display generation components and, optionally, one or more cameras, including but not limited to electronic devices that provide methods and interfaces for interacting with virtual objects in an extended reality environment. Background Art
[0005] In recent years, the development of computer systems for augmented reality has increased significantly. Example augmented reality environments include at least some virtual elements that replace or enhance the physical world. Input devices for computer systems and other electronic computing devices (such as cameras, controllers, joysticks, touch-sensitive surfaces, and touchscreen displays) are used to interact with virtual / augmented reality environments. Example virtual elements include virtual objects such as digital images, videos, text, icons, and control elements (such as buttons and other graphics). Summary of the Invention
[0006] Some methods and interfaces for interacting with environments that include at least some virtual elements (e.g., applications, augmented reality environments, mixed reality environments, and virtual reality environments) are cumbersome, inefficient, and limited. For example, systems that provide insufficient feedback for performing actions associated with virtual objects, systems that require a series of inputs to achieve desired results in an augmented reality environment, and systems where virtual object manipulation is complex, cumbersome, and error-prone can place a significant cognitive burden on users and detract from the experience of the virtual / augmented reality environment. Furthermore, these methods take longer than necessary, wasting the computer system's energy. This latter consideration is particularly important in battery-powered devices.
[0007] Therefore, there is a need for computer systems with improved methods and interfaces that make interacting with virtual objects (e.g., objects that assist in navigation) in an extended reality environment more efficient and intuitive for users. Such methods and interfaces optionally supplement or replace conventional methods for interacting with virtual objects in an extended reality environment. Such methods and interfaces reduce the amount, extent, and / or nature of inputs from the user by helping the user understand the connection between the inputs provided and the device's response to those inputs, thereby forming a more effective human-computer interface.
[0008] The above-mentioned defects and other problems associated with the user interface of the computer system are reduced or eliminated by the disclosed system. In some embodiments, the computer system is a desktop computer with an associated display. In some embodiments, the computer system is a portable device (e.g., a notebook computer, a tablet computer, or a handheld device). In some embodiments, the computer system is a personal electronic device (e.g., a wearable electronic device, such as a watch or a head-mounted device). In some embodiments, the computer system has a touch pad. In some embodiments, the computer system has one or more cameras. In some embodiments, the computer system has a touch-sensitive display (also referred to as a "touch screen" or "touch screen display"). In some embodiments, the computer system has one or more eye tracking components. In some embodiments, the computer system has one or more hand tracking components. In some embodiments, in addition to displaying a generating component, the computer system also has one or more output devices, which include one or more tactile output generators and / or one or more audio output devices. In some embodiments, the computer system has a graphical user interface (GUI), one or more processors, a memory, and one or more modules, a program or instruction set stored in the memory for performing multiple functions. In some embodiments, the user interacts with the GUI through contacts and gestures of a stylus and / or fingers on a touch-sensitive surface, movement of the user's eyes and hands in space relative to the GUI (and / or computer system) or the user's body (as captured by a camera and other motion sensors), and / or voice input (as captured by one or more audio input devices). In some embodiments, the functions performed by the interaction optionally include image editing, drawing, presentations, word processing, spreadsheet creation, playing games, making and receiving calls, video conferencing, sending and receiving emails, instant messaging, fitness support, digital photography, digital video recording, web browsing, digital music playback, note-taking, and / or digital video playback. Executable instructions for performing these functions are optionally included in a transient and / or non-transient computer-readable storage medium or other computer program product configured for execution by one or more processors.
[0009] There is a need for electronic devices with improved methods and interfaces for interacting with virtual objects in an extended reality environment. Such methods and interfaces can supplement or replace conventional methods for interacting with virtual objects in an extended reality environment. Such methods and interfaces reduce the amount, extent, and / or nature of input from the user and produce a more efficient human-computer interface. For battery-powered computing devices, such methods and interfaces conserve power and increase the time between battery charges.
[0010] In some embodiments, a method performed at a computer system in communication with a display generation component is described. The method includes: displaying a first virtual object in a three-dimensional environment via the display generation component when a user's field of view is a first field of view, wherein the first virtual object is displayed in a first display mode that includes being locked to the environment; while displaying the first virtual object, detecting a change in the user's field of view from the first field of view to a second field of view; and in response to detecting the change in the user's field of view from the first field of view to the second field of view: based on determining that a first set of criteria are met, continuing to display the first virtual object in the first display mode that includes being locked to the environment, wherein the first set of criteria includes criteria that are met when the user's field of view is the second field of view and when the first virtual object remains locked to the environment; and based on determining that the first set of criteria are not met, displaying the first virtual object in a second display mode that includes shifting a display position of the first virtual object relative to the three-dimensional environment based on the change in the user's field of view.
[0011] In some embodiments, a non-transitory computer-readable storage medium is described. The non-transitory computer-readable storage medium stores one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component, the one or more programs including instructions for the following operations: when a user's field of view is a first field of view, displaying a first virtual object in a three-dimensional environment via the display generation component, wherein the first virtual object is displayed in a first display mode that includes being locked to the environment; when the first virtual object is displayed, detecting a change in the user's field of view from the first field of view to a second field of view; and in response to detecting the change in the user's field of view from the first field of view to the second field of view: based on determining that a first set of criteria are met, continuing to display the first virtual object in the first display mode that includes being locked to the environment, wherein the first set of criteria includes criteria that are met when the user's field of view is the second field of view and when the first virtual object remains locked to the environment; and based on determining that the first set of criteria are not met, displaying the first virtual object in a second display mode that includes shifting a display position of the first virtual object relative to the three-dimensional environment based on the change in the user's field of view.
[0012] In some embodiments, a transient computer-readable storage medium is described. The transient computer-readable storage medium stores one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component, the one or more programs including instructions for: displaying a first virtual object in a three-dimensional environment via the display generation component when a user's field of view is a first field of view, wherein the first virtual object is displayed in a first display mode that includes being locked to the environment; while displaying the first virtual object, detecting a change in the user's field of view from the first field of view to a second field of view; and in response to detecting the change in the user's field of view from the first field of view to the second field of view: based on determining that a first set of criteria is met, continuing to display the first virtual object in the first display mode that includes being locked to the environment, wherein the first set of criteria includes criteria that are met when the user's field of view is the second field of view and when the first virtual object remains locked to the environment; and based on determining that the first set of criteria is not met, displaying the first virtual object in a second display mode that includes shifting a display position of the first virtual object relative to the three-dimensional environment based on the change in the user's field of view.
[0013] In some embodiments, a computer system configured to communicate with a display generation component is described. The computer system includes one or more processors and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for the following operations: when a user's field of view is a first field of view, displaying a first virtual object in a three-dimensional environment via the display generation component, wherein the first virtual object is displayed in a first display mode including being locked to the environment; when displaying the first virtual object, detecting a change in the user's field of view from the first field of view to a second field of view; and in response to detecting the change in the user's field of view from the first field of view to the second field of view: based on determining that a first set of criteria are met, continuing to display the first virtual object in the first display mode including being locked to the environment, wherein the first set of criteria includes criteria that are met when the user's field of view is the second field of view and when the first virtual object remains locked to the environment; and based on determining that the first set of criteria are not met, displaying the first virtual object in a second display mode, the second display mode including shifting the display position of the first virtual object relative to the three-dimensional environment based on the change in the user's field of view.
[0014] In some embodiments, a computer system configured to communicate with a display generation component is described. The computer system includes: when a user's field of view is a first field of view, a component for displaying a first virtual object in a three-dimensional environment via the display generation component, wherein the first virtual object is displayed in a first display mode that includes being locked to the environment; when the first virtual object is displayed, a component for detecting a change in the user's field of view from the first field of view to a second field of view; and in response to detecting the change in the user's field of view from the first field of view to the second field of view, a component for performing the following operations: based on determining that a first set of criteria are met, continuing to display the first virtual object in the first display mode that includes being locked to the environment, wherein the first set of criteria includes criteria that are met when the user's field of view is the second field of view and when the first virtual object remains locked to the environment; and based on determining that the first set of criteria are not met, displaying the first virtual object in a second display mode that includes shifting the display position of the first virtual object relative to the three-dimensional environment based on the change in the user's field of view.
[0015] In some embodiments, a computer program product is described. The computer program product includes one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component, the one or more programs including instructions for: displaying a first virtual object in a three-dimensional environment via the display generation component when a user's field of view is a first field of view, wherein the first virtual object is displayed in a first display mode that includes being locked to the environment; while displaying the first virtual object, detecting a change in the user's field of view from the first field of view to a second field of view; and in response to detecting the change in the user's field of view from the first field of view to the second field of view: based on determining that a first set of criteria are met, continuing to display the first virtual object in the first display mode that includes being locked to the environment, wherein the first set of criteria includes criteria that are met when the user's field of view is the second field of view and when the first virtual object remains locked to the environment; and based on determining that the first set of criteria are not met, displaying the first virtual object in a second display mode that includes shifting a display position of the first virtual object relative to the three-dimensional environment based on the change in the user's field of view.
[0016] In some embodiments, a method performed at a computer system in communication with a display generation component is described. The method includes: displaying, via the display generation component, a first virtual object in a three-dimensional environment, wherein the first virtual object indicates a first element of a route to a destination, and wherein the first virtual object corresponds to a first location in the three-dimensional environment, wherein displaying the first virtual object includes: displaying the first virtual object as an environment-locked object based on a determination that the first location is within a user's field of view; and displaying the first virtual object as a viewpoint-locked object based on a determination that the first location is not within the user's field of view.
[0017] In some embodiments, a non-transitory computer-readable storage medium is described. The non-transitory computer-readable storage medium stores one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component, the one or more programs including instructions for: displaying, via the display generation component, a first virtual object in a three-dimensional environment, wherein the first virtual object indicates a first element of a route to a destination, and wherein the first virtual object corresponds to a first location in the three-dimensional environment, wherein displaying the first virtual object comprises: displaying the first virtual object as an environment-locked object based on a determination that the first location is within a field of view of a user; and displaying the first virtual object as a viewpoint-locked object based on a determination that the first location is not within the field of view of the user.
[0018] In some embodiments, a transient computer-readable storage medium is described. The transient computer-readable storage medium stores one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component, the one or more programs including instructions for: displaying, via the display generation component, a first virtual object in a three-dimensional environment, wherein the first virtual object indicates a first element of a route to a destination and wherein the first virtual object corresponds to a first location in the three-dimensional environment, wherein displaying the first virtual object comprises: displaying the first virtual object as an environment-locked object based on a determination that the first location is within a field of view of a user; and displaying the first virtual object as a viewpoint-locked object based on a determination that the first location is not within the field of view of the user.
[0019] In some embodiments, a computer system configured to communicate with a display generation component is described. The computer system includes one or more processors and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for: displaying a first virtual object in a three-dimensional environment via the display generation component, wherein the first virtual object indicates a first element of a route to a destination, and wherein the first virtual object corresponds to a first location in the three-dimensional environment, wherein displaying the first virtual object includes: displaying the first virtual object as an environment-locked object based on a determination that the first location is within a field of view of a user; and displaying the first virtual object as a viewpoint-locked object based on a determination that the first location is not within the field of view of the user.
[0020] In some embodiments, a computer system configured to communicate with a display generation component is described. The computer system includes: means for displaying, via the display generation component, a first virtual object in a three-dimensional environment, wherein the first virtual object indicates a first element of a route to a destination, and wherein the first virtual object corresponds to a first location in the three-dimensional environment, wherein displaying the first virtual object includes: displaying the first virtual object as an environment-locked object based on a determination that the first location is within a user's field of view; and displaying the first virtual object as a viewpoint-locked object based on a determination that the first location is not within the user's field of view.
[0021] In some embodiments, a computer program product is described. The computer program product includes one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component, the one or more programs including instructions for: displaying, via the display generation component, a first virtual object in a three-dimensional environment, wherein the first virtual object indicates a first element of a route to a destination, and wherein the first virtual object corresponds to a first location in the three-dimensional environment, wherein displaying the first virtual object includes: displaying the first virtual object as an environment-locked object based on a determination that the first location is within a field of view of a user; and displaying the first virtual object as a viewpoint-locked object based on a determination that the first location is not within the field of view of the user.
[0022] In some embodiments, a method performed at a computer system in communication with a display generation component is described. The method includes: when a field of view of a user of the computer system is a first field of view and the field of view of the user includes a representation of a physical environment having a first location within the physical environment, detecting a change in the orientation of the user's field of view from the first field of view to a second field of view different from the first field of view, the second field of view also including the first location within the physical environment; in response to detecting the change in the orientation of the user's field of view from the first field of view to the second field of view, displaying, via the display generation component, a set of one or more virtual objects at corresponding spatial orientations relative to at least a first portion of the user's body; after displaying the set of one or more virtual objects at corresponding spatial orientations relative to at least the first portion of the user's body, ceasing to display the set of one or more virtual objects; after ceasing to display the set of one or more virtual objects, detecting movement of the user in the physical environment; after detecting the movement of the user in the physical environment, detecting a change in the orientation of the user's field of view to a second orientation; and in response to detecting the change in the orientation of the user's field of view to the second orientation, displaying, via the display generation component, the set of one or more virtual objects at corresponding spatial orientations relative to at least the first portion of the user's body.
[0023] In some embodiments, a non-transitory computer-readable storage medium is described. The non-transitory computer-readable storage medium stores one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component, the one or more programs including instructions for: when a field of view of a user of the computer system is a first field of view and the field of view of the user includes a representation of a physical environment having a first location within the physical environment, detecting a change in the orientation of the field of view of the user from the first field of view to a second field of view different from the first field of view, the second field of view also including the first location within the physical environment; in response to detecting the change in the orientation of the field of view of the user from the first field of view to the second field of view, displaying, via the display generation component, a set of one or more virtual objects in corresponding spatial orientations relative to at least a first portion of the user's body; after displaying the set of one or more virtual objects in corresponding spatial orientations relative to at least the first portion of the user's body, ceasing to display the set of one or more virtual objects; after ceasing to display the set of one or more virtual objects, detecting movement of the user in the physical environment; after detecting the movement of the user in the physical environment, detecting a change in the orientation of the field of view of the user to a second orientation; and in response to detecting the change in the orientation of the field of view of the user to the second orientation, displaying, via the display generation component, the set of one or more virtual objects in corresponding spatial orientations relative to at least the first portion of the user's body.
[0024] In some embodiments, a transitory computer-readable storage medium is described. The transient computer-readable storage medium stores one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component, the one or more programs including instructions for: when a field of view of a user of the computer system is a first field of view and the field of view of the user includes a representation of a physical environment having a first location within the physical environment of a component, detecting a change in the orientation of the field of view of the user from the first field of view to a second field of view different from the first field of view, the second field of view also including the first location within the physical environment; in response to detecting the change in the orientation of the field of view of the user from the first field of view to the second field of view, displaying, via the display generation component, a set of one or more virtual objects at corresponding spatial orientations relative to at least a first portion of the user's body; after displaying the set of one or more virtual objects at corresponding spatial orientations relative to at least the first portion of the user's body, ceasing to display the set of one or more virtual objects; after ceasing to display the set of one or more virtual objects, detecting movement of the user in the physical environment; after detecting the movement of the user in the physical environment, detecting a change in the orientation of the field of view of the user to a second orientation; and in response to detecting the change in the orientation of the field of view of the user to the second orientation, displaying, via the display generation component, the set of one or more virtual objects at corresponding spatial orientations relative to at least the first portion of the user's body.
[0025] In some embodiments, a computer system configured to communicate with a display generation component is described. The computer system includes one or more processors and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for: when a field of view of a user of the computer system is a first field of view and the field of view of the user includes a representation of a physical environment having a first location within the physical environment, detecting a change in the orientation of the field of view of the user from the first field of view to a second field of view different from the first field of view, the second field of view also including the first location within the physical environment; in response to detecting the change in the orientation of the field of view of the user from the first field of view to the second field of view, displaying, via a display generation component, a set of one or more virtual objects at corresponding spatial orientations relative to at least a first portion of the user's body; after displaying the set of one or more virtual objects at corresponding spatial orientations relative to at least the first portion of the user's body, ceasing to display the set of one or more virtual objects; after ceasing to display the set of one or more virtual objects, detecting movement of the user in the physical environment; after detecting the movement of the user in the physical environment, detecting a change in the orientation of the field of view of the user to a second orientation; and in response to detecting the change in the orientation of the field of view of the user to the second orientation, displaying, via the display generation component, the set of one or more virtual objects at corresponding spatial orientations relative to at least the first portion of the user's body.
[0026] In some embodiments, a computer system configured to communicate with a display generation component is described. The computer system includes: when a field of view of a user of the computer system is a first field of view and the field of view of the user includes a representation of a physical environment having a first location within the physical environment, means for: detecting a change in the orientation of the user's field of view from the first field of view to a second field of view different from the first field of view, the second field of view also including the first location within the physical environment; in response to detecting the change in the orientation of the user's field of view from the first field of view to the second field of view, means for: displaying, via a display generation component, a set of one or more virtual objects in respective spatial orientations relative to at least a first portion of the user's body; after displaying the set of one or more virtual objects in respective spatial orientations relative to at least the first portion of the user's body, means for ceasing to display the set of one or more virtual objects; after ceasing to display the set of one or more virtual objects, means for detecting movement of the user in the physical environment; after detecting movement of the user in the physical environment, means for detecting a change in the orientation of the user's field of view to a second orientation; and in response to detecting the change in the orientation of the user's field of view to the second orientation, means for: displaying, via the display generation component, the set of one or more virtual objects in respective spatial orientations relative to at least the first portion of the user's body.
[0027] In some embodiments, a computer program product is described. The computer program product includes one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component, the one or more programs including instructions for: when a field of view of a user of the computer system is a first field of view and the field of view of the user includes a representation of a physical environment having a first location within the physical environment, detecting a change in the orientation of the field of view of the user from the first field of view to a second field of view different from the first field of view, the second field of view also including the first location within the physical environment; in response to detecting the change in the orientation of the field of view of the user from the first field of view to the second field of view, displaying, via the display generation component, a set of one or more virtual objects in respective spatial orientations relative to at least a first portion of the user's body; after displaying the set of one or more virtual objects in respective spatial orientations relative to at least the first portion of the user's body, ceasing to display the set of one or more virtual objects; after ceasing to display the set of one or more virtual objects, detecting movement of the user in the physical environment; after detecting the movement of the user in the physical environment, detecting a change in the orientation of the field of view of the user to a second orientation; and in response to detecting the change in the orientation of the field of view of the user to the second orientation, displaying, via the display generation component, the set of one or more virtual objects in respective spatial orientations relative to at least the first portion of the user's body.
[0028] In some embodiments, a method is described for execution at a wearable computer system that is in communication with a display generation component and a set of one or more cameras including a first camera. The method includes, while a user is wearing the wearable computer system and the user has a first field of view including a first representation of a physical environment at a location of the user as seen from a first perspective, displaying, via the display generation component, a first virtual object including a representation of a portion of the field of view of the first camera, wherein the representation of the portion of the field of view of the first camera includes a second representation of the physical environment at the location of the user as seen from a second perspective different from the first perspective.
[0029] In some embodiments, a non-transitory computer-readable storage medium is described. The non-transitory computer-readable storage medium stores one or more programs configured to be executed by one or more processors of a wearable computer system in communication with a display generation component and a set of one or more cameras including a first camera, the one or more programs including instructions for: when a user is wearing the wearable computer system and the user has a first field of view including a first representation of a physical environment at a location of the user as seen from a first perspective, displaying, via the display generation component, a first virtual object including a representation of a portion of the field of view of the first camera, wherein the representation of the portion of the field of view of the first camera includes a second representation of the physical environment at the location of the user as seen from a second perspective different from the first perspective.
[0030] In some embodiments, a transient computer-readable storage medium is described. The transient computer-readable storage medium stores one or more programs configured to be executed by one or more processors of a wearable computer system in communication with a display generation component and a set of one or more cameras including a first camera, the one or more programs including instructions for: when a user is wearing the wearable computer system and the user has a first field of view including a first representation of a physical environment at a location of the user as seen from a first perspective, displaying, via the display generation component, a first virtual object including a representation of a portion of the field of view of the first camera, wherein the representation of the portion of the field of view of the first camera includes a second representation of the physical environment at the location of the user as seen from a second perspective different from the first perspective.
[0031] In some embodiments, a wearable computer system is described that communicates with a display generation component and a set of one or more cameras including a first camera. The computer system includes one or more processors and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for: when a user is wearing the wearable computer system and the user has a first field of view including a first representation of a physical environment at the user's location as seen from a first perspective, displaying, via the display generation component, a first virtual object including a representation of a portion of the field of view of the first camera, wherein the representation of the portion of the field of view of the first camera includes a second representation of the physical environment at the user's location as seen from a second perspective different from the first perspective.
[0032] In some embodiments, a wearable computer system is described that communicates with a display generation component and a set of one or more cameras including a first camera. The computer system includes: when a user is wearing the wearable computer system and the user has a first field of view including a first representation of a physical environment at the user's location as seen from a first perspective, means for: displaying, via the display generation component, a first virtual object including a representation of a portion of the field of view of the first camera, wherein the representation of the portion of the field of view of the first camera includes a second representation of the physical environment at the user's location as seen from a second perspective different from the first perspective.
[0033] In some embodiments, a computer program product is described. The computer program product includes one or more programs configured to be executed by one or more processors of a wearable computer system in communication with a display generation component and a set of one or more cameras including a first camera, the one or more programs including instructions for: when a user is wearing the wearable computer system and the user has a first field of view including a first representation of a physical environment at a location of the user as seen from a first perspective, displaying, via the display generation component, a first virtual object including a representation of a portion of the field of view of the first camera, wherein the representation of the portion of the field of view of the first camera includes a second representation of the physical environment at the location of the user as seen from a second perspective different from the first perspective.
[0034] It should be noted that the various embodiments described above can be combined with any other embodiment described herein. The features and advantages described in this specification are not comprehensive. In particular, many additional features and advantages will be apparent to those skilled in the art from the drawings, the specification, and the claims. In addition, it should be noted that the language used in this specification has been selected in principle for readability and instructional purposes, and may not be selected to describe or define the subject matter of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS
[0035] For a better understanding of the various described embodiments, reference should be made to the following detailed description taken in conjunction with the following drawings, wherein like reference numerals designate corresponding parts throughout the several views.
[0036] Figure 1 is a block diagram illustrating an operating environment for a computer system for providing an XR experience according to some embodiments.
[0037] Figure 2 is a block diagram illustrating a controller of a computer system configured to manage and coordinate a user's XR experience according to some embodiments.
[0038] Figure 3 is a block diagram illustrating display generation components of a computer system configured to provide a visual component of an XR experience to a user, according to some embodiments.
[0039] Figure 4 is a block diagram illustrating a hand tracking unit of a computer system configured to capture gesture input from a user according to some embodiments.
[0040] Figure 5 is a block diagram illustrating an eye tracking unit of a computer system configured to capture gaze input from a user according to some embodiments.
[0041] Figure 6 is a flowchart illustrating a flash-assisted gaze tracking pipeline according to some embodiments.
[0042] Figures 7A to 7Y Example techniques for interacting with virtual objects in an extended reality environment are shown, according to some embodiments.
[0043] Figure 8 is a flow chart of a method of interacting with a virtual object in an extended reality environment, including repositioning the virtual object relative to the environment, according to various embodiments.
[0044] Figure 9 is a flow chart of a method of interacting with virtual objects in an extended reality environment, including virtual objects that assist a user in navigating within the environment, according to various embodiments.
[0045] Figure 10 is a flow chart of a method of interacting with a virtual object in an extended reality environment, the virtual object including an object displayed based on a change in a user's field of view, the method including repositioning the virtual object relative to the environment, according to various embodiments.
[0046] Figure 11is a flow chart of a method of interacting with a virtual object in an extended reality environment, including virtual objects that provide different perspectives on the environment, according to various embodiments. DETAILED DESCRIPTION
[0047] According to some embodiments, the present disclosure relates to a user interface for providing an extended reality (XR) experience to a user.
[0048] Figures 1 to 6 A description of an example computer system for providing an XR experience to a user is provided. Figures 7A to 7Y Example techniques for interacting with virtual objects in an extended reality environment are shown, according to some embodiments. Figure 8 is a flow chart of a method of interacting with a virtual object in an extended reality environment, including repositioning the virtual object relative to the environment, according to various embodiments. Figure 9 is a flow chart of a method of interacting with virtual objects in an extended reality environment, including virtual objects that assist a user in navigating within the environment, according to various embodiments. Figure 10 is a flow chart of a method of interacting with a virtual object in an extended reality environment, the virtual object including an object displayed based on a change in a user's field of view, the method including repositioning the virtual object relative to the environment, according to various embodiments. Figure 11 is a flow chart of a method of interacting with a virtual object in an extended reality environment, including virtual objects that provide different perspectives on the environment, according to various embodiments. Figures 7A to 7Y The user interface in Figures 8 to 11 in the process.
[0049] The processes described below enhance the operability of the device and make the user-device interface more efficient (e.g., by helping the user provide appropriate input and reducing user errors when operating / interacting with the device) through various techniques, including by providing improved visual feedback to the user, reducing the number of inputs required to perform an operation, providing additional control options without cluttering the user interface with additional display controls, performing an operation without further user input when a set of conditions have been met, improving privacy and / or security, providing a richer, more detailed, and / or more realistic user experience while saving storage space, and / or additional techniques. These techniques also reduce power usage and extend the battery life of the device by enabling the user to use the device faster and more efficiently. This saves battery power and, therefore, weight, improving the ergonomics of the device. These techniques also enable real-time communication, allow the use of fewer and / or less precise sensors, resulting in a more compact, lighter, and less expensive device, and enable the device to be used in a variety of lighting conditions. These techniques reduce energy usage and thereby reduce the heat emitted by the device, which is particularly important for wearable devices where if the device generates too much heat well within the operating parameters of the device components, it may become uncomfortable for the user to wear the device.
[0050] In addition, in the method described herein where one or more steps depend on having met one or more conditions, it should be understood that the method can be repeated in multiple repetitions so that in the process of repetition, all conditions of the steps in the method of determining the method have been met in different repetitions of the method. For example, if the method needs to perform the first step (if the condition is met), and perform the second step (if the condition is not met), then those of ordinary skill will know that the steps stated are repeated until both the condition is met and the condition is not met (in no particular order). Therefore, the method described as having one or more steps depending on having met one or more conditions can be rewritten as a method of repeating until each condition described in the method is met. However, this does not require a system or computer-readable medium to declare that the system or computer-readable medium includes instructions for performing a contingent operation based on the satisfaction of the corresponding one or more conditions, and is therefore able to determine whether a possible situation has been met without explicitly repeating the steps of the method until all conditions of the steps in the method of determining the method have been met. Those of ordinary skill in the art will also understand that, similar to the method with a contingent step, a system or computer-readable storage medium can repeat the steps of the method as needed multiple times to ensure that all contingent steps have been performed.
[0051] In some embodiments, as Figure 1As shown, an XR experience is provided to a user via an operating environment 100 including a computer system 101. The computer system 101 includes a controller 110 (e.g., a processor of a portable electronic device or a remote server), a display generation component 120 (e.g., a head-mounted device (HMD), a display, a projector, a touch screen, etc.), one or more input devices 125 (e.g., an eye tracking device 130, a hand tracking device 140, other input devices 150), one or more output devices 155 (e.g., a speaker 160, a tactile output generator 170, and other output devices 180), one or more sensors 190 (e.g., an image sensor, a light sensor, a depth sensor, a tactile sensor, an orientation sensor, a proximity sensor, a temperature sensor, a position sensor, a motion sensor, a speed sensor, etc.), and optionally one or more peripheral devices 195 (e.g., a household appliance, a wearable device, etc.). In some embodiments, one or more of the input device 125, the output device 155, the sensor 190, and the peripheral device 195 are integrated with the display generation component 120 (e.g., in a head-mounted device or a handheld device).
[0052] When describing an XR experience, various terms are used to distinctly refer to several related but distinct environments that a user can sense and / or with which the user can interact (e.g., using inputs detected by the computer system 101 generating the XR experience, which inputs cause the computer system generating the XR experience to generate audio, visual, and / or haptic feedback corresponding to the various inputs provided to the computer system 101). The following is a subset of these terms:
[0053] Physical Environment: The physical environment refers to the physical world that people can sense and / or interact with without the aid of electronic systems. A physical environment, such as a physical park, includes physical objects, such as physical trees, physical buildings, and physical people. People can directly sense and / or interact with the physical environment, such as through sight, touch, hearing, taste, and smell.
[0054] Extended Reality: In contrast, an extended reality (XR) environment refers to a fully or partially simulated environment that people sense and / or interact with via electronic systems. In XR, a subset of a person's physical movements, or representations thereof, is tracked, and in response, one or more properties of one or more virtual objects simulated in the XR environment are adjusted in a manner consistent with at least one law of physics. For example, an XR system can detect a person's head rotation and, in response, adjust the graphical content and sound field presented to the person in a manner similar to how such views and sounds change in a physical environment. In some cases (e.g., for accessibility reasons), adjustments to the properties of virtual objects in the XR environment can be made in response to representations of physical movement (e.g., voice commands). People can sense and / or interact with XR objects using any of their senses, including vision, hearing, touch, taste, and smell. For example, people can sense and / or interact with audio objects, which create a 3D or spatial audio environment that provides the perception of a point audio source in 3D space. As another example, audio objects can enable audio transparency, which selectively introduces ambient sounds from the physical environment with or without computer-generated audio. In some XR environments, people can sense and / or interact only with audio objects.
[0055] Examples of XR include virtual reality and mixed reality.
[0056] Virtual Reality: A virtual reality (VR) environment is a simulated environment designed to be based entirely on computer-generated sensory input to one or more senses. A VR environment includes multiple virtual objects that a person can sense and / or interact with. For example, trees, buildings, and computer-generated images representing human avatars are examples of virtual objects. A person can sense and / or interact with virtual objects in a VR environment through the simulation of the person's presence within the computer-generated environment and / or through the simulation of a subset of the person's physical movement within the computer-generated environment.
[0057] Mixed Reality: In contrast to VR environments, which are designed to be based entirely on computer-generated sensory input, a mixed reality (MR) environment refers to a simulated environment that is designed to include sensory input from the physical environment, or representations thereof, in addition to computer-generated sensory input (e.g., virtual objects). On the virtuality continuum, a mixed reality environment is anything between, but not including, a fully physical environment at one end and a virtual reality environment at the other. In some MR environments, computer-generated sensory input can respond to changes in sensory input from the physical environment. In addition, some electronic systems used to render MR environments can track position and / or orientation relative to the physical environment to enable virtual objects to interact with real objects (i.e., physical items from the physical environment, or representations thereof). For example, the system can cause motion so that virtual trees appear stationary relative to the physical ground.
[0058] Examples of mixed reality include augmented reality and augmented virtuality.
[0059] Augmented Reality: An augmented reality (AR) environment refers to a simulated environment in which one or more virtual objects are superimposed on a physical environment or a representation of a physical environment. For example, an electronic system for presenting an AR environment may have a transparent or translucent display through which a person can directly view the physical environment. The system can be configured to present virtual objects on a transparent or translucent display so that a person uses the system to perceive the virtual objects superimposed on the physical environment. Alternatively, the system may have an opaque display and one or more imaging sensors that capture images or videos of the physical environment, which are representations of the physical environment. The system combines the images or videos with the virtual objects and presents the combination on the opaque display. A person uses the system to indirectly view the physical environment via the images or videos of the physical environment and perceives the virtual objects superimposed on the physical environment. As used herein, a video of the physical environment displayed on an opaque display is referred to as "transparent video," meaning that the system uses one or more image sensors to capture images of the physical environment and uses those images when presenting the AR environment on the opaque display. Further alternatively, the system may have a projection system that projects virtual objects into a physical environment, such as as holograms or on a physical surface, so that a person using the system perceives virtual objects superimposed on the physical environment. An augmented reality environment also refers to a simulated environment in which a representation of a physical environment is transformed by computer-generated sensory information. For example, in providing a pass-through video, the system may transform one or more sensor images to apply a selected perspective (e.g., a viewpoint) that is different from the perspective captured by the imaging sensor. For another example, the representation of the physical environment may be transformed by graphically modifying (e.g., enlarging) a portion thereof so that the modified portion may be a representative but not real version of the original captured image. For another example, the representation of the physical environment may be transformed by graphically eliminating a portion thereof or blurring a portion thereof.
[0060] Augmented Virtual: An augmented virtual (AV) environment is a simulated environment in which a virtual or computer-generated environment incorporates one or more sensory inputs from the physical environment. The sensory input can be a representation of one or more characteristics of the physical environment. For example, an AV park can have virtual trees and virtual buildings, but people's faces are realistically reproduced from images taken of physical people. In another example, a virtual object can adopt the shape or color of a physical object imaged by one or more imaging sensors. In another example, a virtual object can adopt a shadow that conforms to the position of the sun in the physical environment.
[0061] Viewpoint-locked virtual objects: When a computer system displays a virtual object at the same position and / or location in a user's viewpoint, even if the user's viewpoint shifts (e.g., changes), the virtual object is viewpoint-locked. In embodiments where the computer system is a head-mounted device, the user's viewpoint is locked to the forward direction of the user's head (e.g., when the user is looking straight ahead, the user's viewpoint is at least a portion of the user's field of view); thus, without moving the user's head, the user's viewpoint remains fixed even when the user's gaze shifts. In embodiments where the computer system has a display generation component (e.g., a display screen) that is repositionable relative to the user's head, the user's viewpoint is the augmented reality view presented to the user on the display generation component of the computer system. For example, a viewpoint-locked virtual object that is displayed in the upper left corner of the user's viewpoint when the user's viewpoint is in a first orientation (e.g., the user's head is facing north) continues to be displayed in the upper left corner of the user's viewpoint even when the user's viewpoint changes to a second orientation (e.g., the user's head is facing west). In other words, the position and / or location of the viewpoint-locked virtual object displayed in the user's viewpoint is independent of the user's position and / or orientation in the physical environment. In embodiments where the computer system is a head-mounted device, the user's viewpoint is locked to the orientation of the user's head, such that the virtual object is also referred to as a "head-locked virtual object."
[0062] Environment-locked visual objects: A virtual object is environment-locked (alternatively, "world-locked") when a computer system displays it at a location and / or position in a user's viewpoint that is based on (e.g., selected with reference to and / or anchored to) a location and / or object in a three-dimensional environment (e.g., a physical environment or a virtual environment). As the user's viewpoint moves, the location and / or objects in the environment change relative to the user's viewpoint, which causes the environment-locked virtual object to be displayed at a different location and / or position in the user's viewpoint. For example, an environment-locked virtual object locked to a tree immediately in front of the user is displayed at the center of the user's viewpoint. When the user's viewpoint shifts to the right (e.g., the user's head turns to the right) such that the tree is now to the left of center in the user's viewpoint (e.g., the tree's position in the user's viewpoint shifts), the environment-locked virtual object locked to the tree is displayed to the left of center in the user's viewpoint. In other words, the position and / or location at which an environment-locked virtual object is displayed in the user's viewpoint depends on the position and / or orientation of the object in the environment to which the virtual object is locked. In some embodiments, the computer system uses a stationary reference frame (e.g., a coordinate system anchored to fixed locations and / or objects in the physical environment) to determine the location at which an environment-locked virtual object is displayed in the user's viewpoint. An environment-locked virtual object can be locked to a stationary portion of the environment (e.g., a floor, wall, table, or other stationary object), or can be locked to a movable portion of the environment (e.g., a vehicle, animal, person, or even a representation of a part of the user's body that moves independently of the user's viewpoint, such as a hand, wrist, arm, or foot of the user) so that the virtual object moves as the viewpoint or that portion of the environment moves to maintain a fixed relationship between the virtual object and that portion of the environment.
[0063] In some embodiments, an environment-locked or viewpoint-locked virtual object exhibits an inertial following behavior that reduces or delays the movement of the environment-locked or viewpoint-locked virtual object relative to the movement of a reference point that the virtual object follows. In some embodiments, when exhibiting inertial following behavior, the computer system intentionally delays the movement of the virtual object when movement of a reference point (e.g., a portion of the environment, a viewpoint, or a point fixed relative to the viewpoint, such as a point between 5 cm and 300 cm from the viewpoint) that the virtual object is following is detected. For example, when the reference point (e.g., a portion of the environment or a viewpoint) moves at a first speed, the virtual object is moved by the device to remain locked to the reference point, but at a second speed that is slower than the first speed (e.g., until the reference point stops moving or slows down, at which point the virtual object begins to catch up with the reference point). In some embodiments, when the virtual object exhibits inertial following behavior, the device ignores small amounts of movement of the reference point (e.g., ignoring movements of the reference point below a threshold movement amount, such as movement of 0 to 5 degrees or movement of 0 to 50 cm). For example, when a reference point (e.g., a portion or viewpoint of an environment to which a virtual object is locked) moves a first amount, the distance between the reference point and the virtual object increases (e.g., because the virtual object is being displayed so as to maintain a fixed or substantially fixed position relative to a viewpoint or portion of the environment different from the reference point to which the virtual object is locked), and when the reference point (e.g., the portion or viewpoint of the environment to which the virtual object is locked) moves a second amount greater than the first amount, the distance between the reference point and the virtual object first increases (e.g., because the virtual object is being displayed so as to maintain a fixed or substantially fixed position relative to a viewpoint or portion of the environment different from the reference point to which the virtual object is locked), and then decreases when the amount of movement of the reference point increases above a threshold (e.g., a “lazy follow” threshold) because the virtual object is moved by the computer system to maintain a fixed or substantially fixed position relative to the reference point. In some embodiments, maintaining a substantially fixed position of the virtual object relative to the reference point includes displaying the virtual object within a threshold distance (e.g., 1 cm, 2 cm, 3 cm, 5 cm, 15 cm, 20 cm, 50 cm) of the reference point in one or more dimensions (e.g., up / down, left / right, and / or forward / backward relative to the position of the reference point).
[0064] Hardware: There are many different types of electronic systems that enable people to sense and / or interact with various XR environments. Examples include head-mounted systems, projection-based systems, heads-up displays (HUDs), vehicle windshields with integrated display capabilities, windows with integrated display capabilities, displays formed as lenses designed to be placed on a person's eyes (e.g., similar to contact lenses), headphones / earpieces, speaker arrays, input systems (e.g., wearable or handheld controllers with or without haptic feedback), smartphones, tablet devices, and desktop / laptop computers. A head-mounted system may include speakers and / or other audio output devices integrated into the head-mounted system for providing audio output. A head-mounted system may have one or more speakers and an integrated opaque display. Alternatively, a head-mounted system may be configured to accept an external opaque display (e.g., a smartphone). A head-mounted system may incorporate one or more imaging sensors for capturing images or video of the physical environment and / or one or more microphones for capturing audio of the physical environment. A head-mounted system may have a transparent or translucent display instead of an opaque display. A transparent or translucent display may have a medium through which light representing an image is directed to a person's eyes. The display may utilize digital light projection, OLED, LED, uLED, liquid crystal on silicon, a laser scanning light source, or any combination of these technologies. The medium may be an optical waveguide, a holographic medium, an optical combiner, an optical reflector, or any combination thereof. In one embodiment, the transparent or translucent display may be configured to selectively become opaque. Projection-based systems may employ retinal projection technology that projects graphic images onto a person's retina. The projection system may also be configured to project virtual objects into a physical environment, such as as a hologram or on a physical surface. In some embodiments, the controller 110 is configured to manage and coordinate the user's XR experience. In some embodiments, the controller 110 includes a suitable combination of software, firmware, and / or hardware. Figure 2Controller 110 is described in more detail. In some embodiments, controller 110 is a computing device that is located locally or remotely relative to scene 105 (e.g., physical environment). For example, controller 110 is a local server located within scene 105. As another example, controller 110 is a remote server (e.g., a cloud server, a central server, etc.) located outside of scene 105. In some embodiments, controller 110 is communicatively coupled to display generation component 120 (e.g., HMD, display, projector, touch screen, etc.) via one or more wired or wireless communication channels 144 (e.g., Bluetooth, IEEE 802.11x, IEEE 802.16x, IEEE 802.3x, etc.). In another example, the controller 110 is included within a housing (e.g., a physical housing) of the display generating component 120 (e.g., an HMD or a portable electronic device including a display and one or more processors, etc.), one or more input devices of the input devices 125, one or more output devices of the output devices 155, one or more sensors of the sensors 190, and / or one or more peripheral devices 195, or shares the same physical housing or support structure with one or more of the above devices.
[0065] In some embodiments, the display generation component 120 is configured to provide an XR experience (e.g., at least the visual component of the XR experience) to the user. In some embodiments, the display generation component 120 includes a suitable combination of software, firmware, and / or hardware. Figure 3 Display generation component 120 is described in further detail. In some embodiments, the functionality of controller 110 is provided by and / or combined with display generation component 120.
[0066] According to some embodiments, display generation component 120 provides an XR experience to the user when the user is virtually and / or physically present within scene 105.
[0067] In some embodiments, the display generation component is worn on a part of the user's body (e.g., on his / her head, on his / her hand, etc.). In this way, the display generation component 120 includes one or more XR displays provided for displaying XR content. For example, in various embodiments, the display generation component 120 surrounds the user's field of view. In some embodiments, the display generation component 120 is a handheld device (such as a smart phone or tablet device) configured to present XR content, and the user holds a device with a display facing the user's field of view and a camera facing the scene 105. In some embodiments, the handheld device is optionally placed in a housing worn on the user's head. In some embodiments, the handheld device is optionally placed on a support (e.g., a tripod) in front of the user. In some embodiments, the display generation component 120 is an XR room, housing, or room configured to present XR content, wherein the user does not wear or hold the display generation component 120. Many user interfaces described with reference to one type of hardware for displaying XR content (e.g., a handheld device or a device on a tripod) can be implemented on another type of hardware for displaying XR content (e.g., an HMD or other wearable computing device). For example, a user interface showing interactions with XR content that are triggered based on interactions occurring in the space in front of a handheld device or a tripod-mounted device can similarly be implemented with an HMD, where the interactions occur in the space in front of the HMD and the responses to the XR content are displayed via the HMD. Similarly, a user interface showing interactions with XR content that are triggered based on movement of a handheld device or a tripod-mounted device relative to a physical environment (e.g., scene 105 or a part of a user's body (e.g., the user's eyes, head, or hands)) can similarly be implemented with an HMD, where the movement is caused by movement of the HMD relative to the physical environment (e.g., scene 105 or a part of a user's body (e.g., the user's eyes, head, or hands)).
[0068] Despite Figure 1 Relevant features of the operating environment 100 are shown in FIG, but those skilled in the art will recognize from this disclosure that various other features are not illustrated for the sake of brevity and so as not to obscure more relevant aspects of the example embodiments disclosed herein.
[0069] Figure 2is a block diagram of an example of a controller 110 according to some embodiments. While some specific features are shown, those skilled in the art will recognize from this disclosure that various other features are not shown for the sake of brevity and so as not to obscure more relevant aspects of the embodiments disclosed herein. To this end, as a non-limiting example, in some embodiments, the controller 110 includes one or more processing units 202 (e.g., a microprocessor, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a graphics processing unit (GPU), a central processing unit (CPU), a processing core, etc.), one or more input / output (I / O) devices 206, one or more communication interfaces 208 (e.g., a universal serial bus (USB), FIREWIRE, THUNDERBOLT, IEEE 802.3x, IEEE 802.11x, IEEE 802.16x, Global System for Mobile Communications (GSM), Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Global Positioning System (GPS), infrared (IR), Bluetooth, ZIGBEE, and / or similar types of interfaces), one or more programming (e.g., I / O) interfaces 210, a memory 220, and one or more communication buses 204 for interconnecting these and various other components.
[0070] In some embodiments, the one or more communication buses 204 include circuits that interconnect and control communications between system components. In some embodiments, the one or more I / O devices 206 include at least one of a keyboard, a mouse, a touchpad, a joystick, one or more microphones, one or more speakers, one or more image sensors, one or more displays, and the like.
[0071] Memory 220 includes high-speed random access memory, such as dynamic random access memory (DRAM), static random access memory (SRAM), double data rate random access memory (DDR RAM), or other random access solid-state memory devices. In some embodiments, memory 220 includes non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. Memory 220 optionally includes one or more storage devices located away from one or more processing units 202. Memory 220 includes non-transitory computer-readable storage media. In some embodiments, memory 220 or a non-transitory computer-readable storage medium of memory 220 stores the following programs, modules, and data structures, or a subset thereof, including an optional operating system 230 and an XR experience module 240.
[0072] The operating system 230 includes instructions for handling various basic system services and for performing hardware-related tasks. In some embodiments, the XR experience module 240 is configured to manage and coordinate single or multiple XR experiences for one or more users (e.g., a single XR experience for one or more users, or multiple XR experiences for corresponding groups of one or more users). To this end, in various embodiments, the XR experience module 240 includes a data acquisition unit 241, a tracking unit 242, a coordination unit 246, and a data transmission unit 248.
[0073] In some embodiments, the data acquisition unit 241 is configured to Figure 1 1 and / or peripherals 195. The data acquisition unit 241 may be configured to acquire data (e.g., presentation data, interaction data, sensor data, position data, etc.) from at least the display generation component 120 of the display generation component 120, and optionally from one or more of the input device 125, the output device 155, the sensor 190, and / or the peripheral device 195. To this end, in various embodiments, the data acquisition unit 241 includes instructions and / or logic for instructions, as well as heuristics and metadata for the heuristics.
[0074] In some embodiments, the tracking unit 242 is configured to map the scene 105 and track at least the display generation component 120 relative to the scene 105. Figure 1 105, and optionally relative to the position / location of one or more of the tracked input device 125, the output device 155, the sensor 190, and / or the peripheral device 195. To this end, in various embodiments, the tracking unit 242 includes instructions and / or logic for the instructions and heuristics and metadata for the heuristics. In some embodiments, the tracking unit 242 includes a hand tracking unit 244 and / or an eye tracking unit 243. In some embodiments, the hand tracking unit 244 is configured to track the position / location of one or more parts of the user's hand and / or the position / location of one or more parts of the user's hand relative to the user's Figure 1 The movement of the scene 105 relative to the display generation component 120 and / or relative to the coordinate system (the coordinate system is defined relative to the user's hand). Figure 4 The hand tracking unit 244 is described in more detail. In some embodiments, the eye tracking unit 243 is configured to track the position or movement of the user's gaze (or more broadly, the user's eyes, face, or head) relative to the scene 105 (e.g., relative to the physical environment and / or relative to the user (e.g., the user's hands)) or relative to the XR content displayed via the display generation component 120. Figure 5 The eye tracking unit 243 is described in more detail.
[0075] In some embodiments, the coordination unit 246 is configured to manage and coordinate the XR experience presented to the user by the display generation component 120, and optionally by one or more of the output device 155 and / or peripheral devices 195. To this end, in various embodiments, the coordination unit 246 includes instructions and / or logic for the instructions, as well as heuristics and metadata for the heuristics.
[0076] In some embodiments, the data sending unit 248 is configured to send data (e.g., presentation data, position data, etc.) to at least the display generation component 120, and optionally to one or more of the input device 125, the output device 155, the sensor 190, and / or the peripheral device 195. To this end, in various embodiments, the data sending unit 248 includes instructions and / or logic for the instructions, as well as heuristics and metadata for the heuristics.
[0077] Although the data acquisition unit 241, the tracking unit 242 (e.g., including the eye tracking unit 243 and the hand tracking unit 244), the coordination unit 246, and the data sending unit 248 are shown as residing on a single device (e.g., the controller 110), it should be understood that in other embodiments, any combination of the data acquisition unit 241, the tracking unit 242 (e.g., including the eye tracking unit 243 and the hand tracking unit 244), the coordination unit 246, and the data sending unit 248 may be located in separate computing devices.
[0078] also, Figure 2 It serves more as a functional description of various features that may be present in a particular implementation, rather than as a structural diagram of the embodiments described herein. As one of ordinary skill in the art will recognize, items shown separately may be combined, and some items may be separated. For example, Figure 2 Some functional modules shown separately in the figure may be implemented in a single module, and the various functions of a single functional block may be implemented by one or more functional blocks in various embodiments. The actual number of modules and the division of specific functions and how features are distributed among them will vary depending on the specific implementation and, in some embodiments, will depend in part on the specific combination of hardware, software, and / or firmware selected for a particular implementation.
[0079] Figure 3is a block diagram of an example of a display generation component 120 according to some embodiments. While some specific features are shown, those skilled in the art will recognize from this disclosure that various other features are not shown for the sake of brevity and so as not to obscure more relevant aspects of the embodiments disclosed herein. For this purpose, as a non-limiting example, in some embodiments, the display generation component 120 (e.g., an HMD) includes one or more processing units 302 (e.g., a microprocessor, an ASIC, an FPGA, a GPU, a CPU, a processing core, etc.), one or more input / output (I / O) devices and sensors 306, one or more communication interfaces 308 (e.g., USB, FIREWIRE, THUNDERBOLT, IEEE 802.3x, IEEE802.11x, IEEE 802.16x, GSM, CDMA, TDMA, GPS, IR, Bluetooth, ZIGBEE, and / or similar types of interfaces), one or more programming (e.g., I / O) interfaces 310, one or more XR displays 312, one or more optional internal-facing and / or external-facing image sensors 314, memory 320, and one or more communication buses 304 for interconnecting these and various other components.
[0080] In some embodiments, one or more communication buses 304 include circuits for interconnecting and controlling communications between various system components. In some embodiments, one or more I / O devices and sensors 306 include an inertial measurement unit (IMU), an accelerometer, a gyroscope, a thermometer, one or more physiological sensors (e.g., a blood pressure monitor, a heart rate monitor, a blood oxygen sensor, a blood glucose sensor, etc.), one or more microphones, one or more speakers, a haptic engine, and / or one or more depth sensors (e.g., structured light, time of flight, etc.), etc.
[0081] In some embodiments, one or more XR displays 312 are configured to provide an XR experience to the user. In some embodiments, one or more XR displays 312 correspond to holographic, digital light processing (DLP), liquid crystal display (LCD), liquid crystal on silicon (LCoS), organic light-emitting field effect transistor (OLET), organic light-emitting diode (OLED), surface conduction electron emission display (SED), field emission display (FED), quantum dot light-emitting diode (QD-LED), microelectromechanical system (MEMS) and / or similar display types. In some embodiments, one or more XR displays 312 correspond to diffraction, reflection, polarization, holographic and other waveguide displays. For example, the display generation component 120 (e.g., HMD) includes a single XR display. In another example, the display generation component 120 includes an XR display for each eye of the user. In some embodiments, one or more XR displays 312 are capable of presenting MR and VR content. In some embodiments, one or more XR displays 312 are capable of presenting MR or VR content.
[0082] In some embodiments, the one or more image sensors 314 are configured to acquire image data corresponding to at least a portion of the user's face, including the user's eyes (and may be referred to as an eye-tracking camera). In some embodiments, the one or more image sensors 314 are configured to acquire image data corresponding to the user's hands and, optionally, at least a portion of the user's arms (and may be referred to as a hand-tracking camera). In some embodiments, the one or more image sensors 314 are configured to face forward so as to acquire image data corresponding to the scene that the user would see in the absence of the display generation component 120 (e.g., an HMD) (and may be referred to as a scene camera). The one or more optional image sensors 314 may include one or more RGB cameras (e.g., having a complementary metal oxide semiconductor (CMOS) image sensor or a charge coupled device (CCD) image sensor), one or more infrared (IR) cameras, and / or one or more event-based cameras, among others.
[0083] Memory 320 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM, or other random access solid-state memory devices. In some embodiments, memory 320 includes non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. Memory 320 optionally includes one or more storage devices located away from one or more processing units 302. Memory 320 includes non-transitory computer-readable storage media. In some embodiments, memory 320 or a non-transitory computer-readable storage medium of memory 320 stores the following programs, modules, and data structures, or a subset thereof, including an optional operating system 330 and an XR rendering module 340.
[0084] The operating system 330 includes processes for handling various basic system services and for performing hardware-related tasks. In some embodiments, the XR rendering module 340 is configured to present XR content to the user via one or more XR displays 312. To this end, in various embodiments, the XR rendering module 340 includes a data acquisition unit 342, an XR rendering unit 344, an XR map generation unit 346, and a data transmission unit 348.
[0085] In some embodiments, the data acquisition unit 342 is configured to at least Figure 1 The controller 110 acquires data (e.g., presentation data, interaction data, sensor data, location data, etc.). For this purpose, in various embodiments, the data acquisition unit 342 includes instructions and / or logic for instructions and heuristics and metadata for the heuristics.
[0086] In some embodiments, the XR rendering unit 344 is configured to render XR content via one or more XR displays 312. For such purposes, in various embodiments, the XR rendering unit 344 includes instructions and / or logic for the instructions and heuristics and metadata for the heuristics.
[0087] In some embodiments, the XR map generation unit 346 is configured to generate an XR map (e.g., a 3D map of a mixed reality scene or a map of a physical environment in which computer-generated objects can be placed to generate an extended reality) based on the media content data. For this purpose, in various embodiments, the XR map generation unit 346 includes instructions and / or logic for the instructions and heuristics and metadata for the heuristics.
[0088] In some embodiments, the data sending unit 348 is configured to send data (e.g., presentation data, position data, etc.) to at least the controller 110, and optionally one or more of the input device 125, the output device 155, the sensor 190, and / or the peripheral device 195. For such purposes, in various embodiments, the data sending unit 348 includes instructions and / or logic for the instructions and heuristics and metadata for the heuristics.
[0089] Although the data acquisition unit 342, the XR rendering unit 344, the XR map generation unit 346, and the data transmission unit 348 are shown as residing on a single device (e.g., Figure 1 , but it should be understood that in other embodiments, any combination of the data acquisition unit 342, the XR rendering unit 344, the XR map generation unit 346, and the data sending unit 348 may be located in a separate computing device.
[0090] also, Figure 3 It serves more as a functional description of various features that may be present in a particular embodiment, rather than as a structural schematic diagram of the embodiments described herein. As one of ordinary skill in the art will recognize, items shown separately may be combined, and some items may be separated. For example, Figure 3 Some functional modules shown separately in the figure may be implemented in a single module, and the various functions of a single functional block may be implemented by one or more functional blocks in various embodiments. The actual number of modules and the division of specific functions and how features are distributed among them will vary depending on the specific implementation and, in some embodiments, will depend in part on the specific combination of hardware, software, and / or firmware selected for a particular implementation.
[0091] Figure 4 is a schematic illustration of an example embodiment of a hand tracking device 140. In some embodiments, the hand tracking device 140 ( Figure 1 ) is controlled by the hand tracking unit 244 ( Figure 2 ) to track the position / location of one or more parts of a user's hand, and / or one or more parts of a user's hand relative to Figure 1The hand tracking device 140 is configured to monitor movement of the scene 105 relative to the user's surroundings (e.g., relative to a portion of the physical environment surrounding the user, relative to the display generation component 120, or relative to a portion of the user (e.g., the user's face, eyes, or head), and / or relative to a coordinate system defined relative to the user's hands). In some embodiments, the hand tracking device 140 is part of the display generation component 120 (e.g., embedded in or attached to a head-mounted device). In some embodiments, the hand tracking device 140 is separate from the display generation component 120 (e.g., located in a separate housing or attached to a separate physical support structure).
[0092] In some embodiments, the hand tracking device 140 includes an image sensor 404 (e.g., one or more IR cameras, 3D cameras, depth cameras, and / or color cameras, etc.) that captures three-dimensional scene information, including at least a human user's hand 406. The image sensor 404 captures hand images at a sufficient resolution to enable the fingers and their respective positioning to be distinguished. The image sensor 404 typically captures images of other parts of the user's body, or may also capture images of all parts of the body, and may have zoom capabilities or specialized sensors with increased magnification to capture images of the hand at a desired resolution. In some embodiments, the image sensor 404 also captures 2D color video images of the hand 406 and other elements of the scene. In some embodiments, the image sensor 404 is used in conjunction with other image sensors to capture the physical environment of the scene 105, or serves as an image sensor for capturing the physical environment of the scene 105. In some embodiments, the image sensor is positioned relative to the user or the user's environment in such a way that the field of view of the image sensor 404, or a portion thereof, is used to define an interaction space in which hand movements captured by the image sensor are treated as input to the controller 110.
[0093] In some embodiments, the image sensor 404 outputs a sequence of frames containing 3D image data (and possibly color image data) to the controller 110, which extracts high-level information from the image data. This high-level information is typically provided via an application program interface (API) to an application running on the controller, which in turn drives the display generation component 120. For example, a user can interact with the software running on the controller 110 by moving his hand 406 and changing his hand pose.
[0094] In some embodiments, the image sensor 404 projects a speckled pattern onto a scene containing the hand 406 and captures an image of the projected pattern. In some embodiments, the controller 110 calculates the 3D coordinates of points in the scene (including points on the surface of the user's hand) by triangulation based on the lateral offsets of the spots in the pattern. This approach is advantageous because it does not require the user to hold or wear any kind of beacon, sensor, or other marker. The method gives the depth coordinates of a point in the scene relative to a predetermined reference plane at a specific distance from the image sensor 404. In the present disclosure, it is assumed that the image sensor 404 defines an orthogonal set of x-axis, y-axis, and z-axis such that the depth coordinates of a point in the scene correspond to the z component measured by the image sensor. Alternatively, the image sensor 404 (e.g., a hand tracking device) may use other 3D mapping methods based on a single or multiple cameras or other types of sensors, such as stereo imaging or time-of-flight measurement.
[0095] In some embodiments, the hand tracking device 140 captures and processes a time series of depth maps containing the user's hand as the user moves his hand (e.g., the entire hand or one or more fingers). Software running on the image sensor 404 and / or the processor in the controller 110 processes the 3D map data to extract image patch descriptors of the hand in these depth maps. The software can match these descriptors with image patch descriptors stored in the database 408 based on a previous learning process to estimate the pose of the hand in each frame. The pose typically includes the 3D positions of the user's hand joints and fingertips.
[0096] The software can also analyze the trajectory of the hand and / or finger over multiple frames in the sequence to identify gestures. The pose estimation function described herein can be alternated with the motion tracking function so that the image block-based pose estimation is performed only once every two (or more) frames, and tracking is used to find changes in pose that occur on the remaining frames. The pose, motion, and gesture information is provided to the application running on the controller 110 via the above-mentioned API. The program can, for example, move and modify the image presented on the display generation component 120 in response to the pose and / or gesture information, or perform other functions.
[0097] In some embodiments, gestures include air gestures. An air gesture is a gesture that is detected without the user touching an input element that is part of a device (e.g., computer system 101, one or more input devices 125, and / or hand tracking device 140) (or independent of an input element that is part of the device) and is based on detected movement of a part of the user's body (e.g., head, one or more arms, one or more hands, one or more fingers, and / or one or more legs) through air (including movement of the user's body relative to an absolute reference (e.g., the angle of the user's arm relative to the ground or the distance of the user's hand relative to the ground), movement relative to another part of the user's body (e.g., movement of the user's hand relative to the user's shoulder, movement of one of the user's hands relative to the user's other hand, and / or movement of a user's finger relative to another finger or part of the user's hand), and / or absolute movement of a part of the user's body (e.g., a tap gesture in which the hand moves a predetermined amount and / or speed in a predetermined posture, or a shake gesture including a predetermined speed or amount of rotation of a part of the user's body).
[0098] In some embodiments, according to some embodiments, the input gestures used in the various examples and embodiments described herein include air gestures for interacting with an XR environment (e.g., a virtual or mixed reality environment) performed by movement of a user's fingers relative to other fingers (or parts of the user's hands). In some embodiments, an air gesture is a gesture detected without the user touching an input element that is part of the device (or independent of an input element that is part of the device) and based on detected movement of a part of the user's body through the air (including movement of the user's body relative to an absolute reference (e.g., the angle of the user's arm relative to the ground or the distance of the user's hand relative to the ground), movement relative to another part of the user's body (e.g., movement of the user's hand relative to the user's shoulder, movement of one of the user's hands relative to the user's other hand, and / or movement of a user's finger relative to another finger or part of the user's hand), and / or absolute movement of a part of the user's body (e.g., a tap gesture in which the hand moves a predetermined amount and / or speed in a predetermined posture, or a shake gesture in which a part of the user's body is rotated at a predetermined speed or amount)).
[0099] In some embodiments where the input gesture is an in-air gesture (e.g., in the absence of physical contact with an input device that provides information to the computer system about which user interface element is the target of the user input, such as contact with a user interface element displayed on a touch screen, or contact with a mouse or trackpad to move a cursor to a user interface element), the gesture takes into account the user's attention (e.g., gaze) to determine the target of the user input (e.g., for direct input, as described below). Thus, in embodiments involving in-air gestures, for example, the input gesture is combined (e.g., simultaneously) with movement of the user's fingers and / or hand to detect attention (e.g., gaze) toward a user interface element to perform a pinch and / or tap input, as described below.
[0100] In some embodiments, an input gesture directed to a user interface object is performed directly or indirectly with reference to the user interface object. For example, user input is performed directly on the user interface object based on performing input with the user's hand at a location corresponding to the location of the user interface object in the three-dimensional environment (e.g., as determined based on the user's current viewpoint). In some embodiments, upon detecting user attention (e.g., gaze) to the user interface object, an input gesture is performed indirectly on the user interface object based on the user's hand being located not at the location corresponding to the location of the user interface object in the three-dimensional environment while the user performs the input gesture. For example, for a direct input gesture, the user can direct the user's input to the user interface object by initiating a gesture at or near a location corresponding to the displayed location of the user interface object (e.g., within 0.5 cm, 1 cm, 5 cm, or a distance between 0 and 5 cm measured from the outer edge of the option or the center portion of the option). For an indirect input gesture, the user can direct the user's input to the user interface object by focusing on the user interface object (e.g., by gazing at the user interface object), and while focusing on the option, the user initiates an input gesture (e.g., at any location detectable by the computer system) (e.g., at a location that does not correspond to the displayed location of the user interface object).
[0101] In some embodiments, according to some embodiments, input gestures (e.g., air gestures) used in various examples and embodiments described herein include pinch input and tap input for interacting with a virtual or mixed reality environment. For example, the pinch input and tap input described below are performed as air gestures.
[0102] In some embodiments, a pinch input is part of an air gesture that includes one or more of: a pinch gesture, a long pinch gesture, a pinch and drag gesture, or a double pinch gesture. For example, a pinch gesture as an air gesture includes movement of two or more fingers of a hand to contact each other, i.e., optionally followed by a break in contact with each other immediately (e.g., within 0 seconds to 1 second). A long pinch gesture as an air gesture includes movement of two or more fingers of a hand in contact with each other for at least a threshold amount of time (e.g., at least 1 second) before a break in contact with each other is detected. For example, a long pinch gesture includes the user maintaining a pinch gesture (e.g., in which the two or more fingers are in contact), and the long pinch gesture continues until a break in contact between the two or more fingers is detected. In some embodiments, a double pinch gesture as an air gesture includes two (e.g., more) pinch inputs (e.g., performed by the same hand) that are detected consecutively immediately (e.g., within a predefined time period) with respect to each other. For example, the user performs a first pinch input (e.g., a pinch input or a long pinch input), releases the first pinch input (e.g., interrupts contact between two or more fingers), and performs a second pinch input within a predefined time period (e.g., within 1 second or within 2 seconds) after releasing the first pinch input.
[0103] In some embodiments, a pinch and drag gesture as an air gesture includes a pinch gesture (e.g., a pinch gesture or a long pinch gesture) performed in conjunction with (e.g., following) a drag input that changes the position of the user's hand from a first position (e.g., the starting position of the drag) to a second position (e.g., the ending position of the drag). In some embodiments, the user maintains the pinch gesture while performing the drag input, and releases the pinch gesture (e.g., opens their two or more fingers) to end the drag gesture (e.g., at the second position). In some embodiments, the pinch input and the drag input are performed by the same hand (e.g., the user pinches two or more fingers to contact each other and moves the same hand to a second position in the air using a drag gesture). In some embodiments, the pinch input is performed by the user's first hand, and the drag input is performed by the user's second hand (e.g., the user's second hand moves in the air from the first position to the second position while the user continues the pinch input with the user's first hand). In some embodiments, an input gesture as an air gesture includes input performed using both hands of the user (e.g., a pinch and / or tap input). For example, the input gesture includes two (e.g., more) pinch inputs performed in conjunction with each other (e.g., concurrently or within a predefined time period). For example, a first pinch gesture (e.g., a pinch input, a long pinch input, or a pinch and drag input) is performed using a first hand of a user, and a second pinch input is performed using another hand (e.g., a second hand of the user) in conjunction with the pinch input performed using the first hand. In some embodiments, movement between the user's two hands (e.g., increasing and / or decreasing the distance or relative orientation between the user's two hands) occurs.
[0104] In some embodiments, a tap input performed as an air gesture (e.g., pointing to a user interface element) includes movement of a user's finger toward the user interface element, movement of the user's hand toward the user interface element (optionally, extension of the user's finger toward the user interface element), a downward motion of the user's finger (e.g., mimicking a mouse click motion or a tap on a touch screen), or other predefined movement of the user's hand. In some embodiments, a tap input performed as an air gesture is detected based on movement characteristics of the finger or hand performing the tap gesture movement of the finger or hand, which is a movement of the finger or hand away from the user's viewpoint and / or toward an object that is the target of the tap input, followed by an end of the movement. In some embodiments, the end of the movement is detected based on a change in movement characteristics of the finger or hand performing the tap gesture (e.g., an end of movement away from the user's viewpoint and / or toward an object that is the target of the tap input, a reversal of the direction of movement of the finger or hand, and / or a reversal of the acceleration direction of the movement of the finger or hand).
[0105] In some embodiments, the user's attention is determined to be directed toward a portion of the three-dimensional environment based on detection of a gaze directed toward the portion of the three-dimensional environment (optionally, no other conditions are required). In some embodiments, the user's attention is determined to be directed toward a portion of the three-dimensional environment based on detection of a gaze directed toward the portion of the three-dimensional environment using one or more additional conditions, such as requiring the gaze to be directed toward the portion of the three-dimensional environment for at least a threshold duration (e.g., a dwell duration) and / or requiring the gaze to be directed toward the portion of the three-dimensional environment when the user's viewpoint is within a distance threshold from the portion of the three-dimensional environment, so that the device determines that the user's attention is directed toward the portion of the three-dimensional environment, wherein if one of these additional conditions is not met, the device determines that the attention is not directed toward the portion of the three-dimensional environment to which the gaze is directed (e.g., until the one or more additional conditions are met).
[0106] In some embodiments, the detection of a ready state configuration of a user or a portion of a user is detected by a computer system. The detection of a ready state configuration of a hand is used by the computer system as an indication that the user may be preparing to interact with the computer system using one or more air gesture inputs performed by the hand (e.g., a pinch, a tap, a pinch and drag, a double pinch, a long pinch, or other air gestures described herein). For example, the ready state of a hand is determined based on whether the hand has a predetermined hand shape (e.g., a pre-pinch shape with the thumb and one or more fingers extended and spaced apart in preparation for a pinch or grab gesture, or a pre-tap with one or more fingers extended and the palm facing away from the user), based on whether the hand is in a predetermined position relative to the user's viewpoint (e.g., below the user's head and above the user's waist and extending at least 15 cm, 20 cm, 25 cm, 30 cm, or 50 cm from the body), and / or based on whether the hand has moved in a particular manner (e.g., toward an area in front of the user above the user's waist and below the user's head, or away from the user's body or legs). In some embodiments, the ready state is used to determine whether an interactive element of a user interface responds to attention (e.g., gaze) input.
[0107] In some embodiments, the software may be downloaded to the controller 110 in electronic form, for example, over a network, or may alternatively be provided on tangible, non-transitory media such as optical, magnetic, or electronic memory media. In some embodiments, the database 408 is also stored in memory associated with the controller 110. Alternatively or in addition, some or all of the described functions of the computer may be implemented in dedicated hardware, such as a custom or semi-custom integrated circuit or a programmable digital signal processor (DSP). Although in Figure 4, but some or all of the processing functions of the controller may be performed by a suitable microprocessor and software or by dedicated circuitry within the housing of the image sensor 404 (e.g., a hand tracking device) or other device associated with the image sensor 404. In some embodiments, at least some of these processing functions may be performed by a suitable processor integrated with the display generation component 120 (e.g., in a television receiver, handheld device, or head-mounted device) or integrated with any other suitable computerized device (such as a game console or media player). The sensing functions of the image sensor 404 may also be integrated into a computer or other computerized device to be controlled by the sensor output.
[0108] Figure 4 Also included is a schematic diagram of a depth map 410 captured by the image sensor 404 according to some embodiments. As described above, the depth map includes a matrix of pixels with corresponding depth values. Pixels 412 corresponding to the hand 406 have been segmented from the background and wrist in the figure. The brightness of each pixel within the depth map 410 is inversely proportional to its depth value (i.e., the measured z distance from the image sensor 404), where shades of gray become darker with increasing depth. The controller 110 processes these depth values in order to identify and segment components of the image (i.e., a group of adjacent pixels) that have characteristics of a human hand. These characteristics may include, for example, overall size, shape, and motion from frame to frame in the depth map sequence.
[0109] Figure 4 Also schematically illustrated is a hand skeleton 414 that the controller 110 ultimately extracts from the depth map 410 of the hand 406 according to some embodiments. Figure 4 , a hand skeleton 414 is superimposed on a hand background 416 that has been segmented from the original depth map. In some embodiments, key feature points of the hand and, optionally, on the wrist or arm connected to the hand (e.g., points corresponding to knuckles, finger tips, the center of the palm, the end of the hand connected to the wrist, etc.) are identified and located on the hand skeleton 414. In some embodiments, the controller 110 uses the position and movement of these key feature points over multiple image frames to determine a gesture performed by the hand or the current state of the hand according to some embodiments.
[0110] Figure 5 The eye tracking device 130 ( Figure 1 ). In some embodiments, the eye tracking device 130 is composed of an eye tracking unit 243 ( Figure 2) controls to track the position and movement of the user's gaze relative to the scene 105 or relative to the XR content displayed via the display generation component 120. In some embodiments, the eye tracking device 130 is integrated with the display generation component 120. For example, in some embodiments, when the display generation component 120 is a head-mounted device (such as a headset, helmet, goggles, or glasses) or a handheld device placed in a wearable frame, the head-mounted device includes both components for generating XR content for the user to view and components for tracking the user's gaze relative to the XR content. In some embodiments, the eye tracking device 130 is separate from the display generation component 120. For example, when the display generation component is a handheld device or an XR room, the eye tracking device 130 is optionally a device separate from the handheld device or the XR room. In some embodiments, the eye tracking device 130 is a head-mounted device or a part of the head-mounted device. In some embodiments, the head-mounted eye tracking device 130 is optionally used in conjunction with a display generation component that is also head-mounted or a display generation component that is not head-mounted. In some embodiments, the eye tracking device 130 is not a head-mounted device and is optionally used in conjunction with a head-mounted display generation component. In some embodiments, the eye tracking device 130 is not a head-mounted device and is optionally part of a non-head-mounted display generation component.
[0111] In some embodiments, the display generation component 120 uses a display mechanism (e.g., a left near-eye display panel and a right near-eye display panel) to display a frame including a left image and a right image in front of the user's eyes, thereby providing the user with a 3D virtual view. For example, the head-mounted display generation component may include a left optical lens and a right optical lens (referred to herein as eye lenses) located between the display and the user's eyes. In some embodiments, the display generation component may include or be coupled to one or more external cameras that capture video of the user's environment for display. In some embodiments, the head-mounted display generation component may have a transparent or translucent display and display virtual objects on the transparent or translucent display, through which the user can directly view the physical environment. In some embodiments, the display generation component projects the virtual objects into the physical environment. The virtual objects may, for example, be projected onto a physical surface or projected as a hologram, so that the individual using the system observes the virtual objects superimposed on the physical environment. In this case, separate display panels and image frames for the left and right eyes may not be required.
[0112] like Figure 5As shown, in some embodiments, the eye tracking device 130 (e.g., a gaze tracking device) includes at least one eye tracking camera (e.g., an infrared (IR) or near infrared (NIR) camera) and an illumination source (e.g., an IR or NIR light source, such as an array or ring of LEDs) that emits light (e.g., IR or NIR light) toward the user's eyes. The eye tracking camera can be pointed at the user's eyes to receive IR or NIR light that the light source reflects directly from the eyes, or alternatively can be pointed at "hot" mirrors located between the user's eyes and the display panel, which reflect IR or NIR light from the eyes toward the eye tracking camera while allowing visible light to pass through. The eye tracking device 130 optionally captures images of the user's eyes (e.g., as a video stream captured at 60-120 frames per second (fps)), analyzes these images to generate gaze tracking information, and transmits the gaze tracking information to the controller 110. In some embodiments, both eyes of the user are tracked separately by corresponding eye tracking cameras and illumination sources. In some embodiments, only one eye of the user is tracked by corresponding eye tracking camera and illumination source.
[0113] In some embodiments, the eye tracking device 130 is calibrated using a device-specific calibration process to determine the parameters of the eye tracking device for a specific operating environment 100, such as the 3D geometry and parameters of the LED, camera, thermal mirror (if present), eye lens, and display screen. The device-specific calibration process can be performed at a factory or another facility before the AR / VR equipment is delivered to the end user. The device-specific calibration process can be an automatic calibration process or a manual calibration process. According to some embodiments, the user-specific calibration process can include an estimation of eye parameters of a specific user, such as pupil position, fovea position, optical axis, visual axis, eye spacing, etc. According to some embodiments, once the device-specific parameters and user-specific parameters are determined for the eye tracking device 130, a flash-assisted method can be used to process the images captured by the eye tracking camera to determine the current visual axis and the user's gaze point relative to the display.
[0114] like Figure 5As shown, the eye tracking device 130 (e.g., 130A or 130B) includes an eye lens 520 and a gaze tracking system that includes at least one eye tracking camera 540 (e.g., an infrared (IR) or near infrared (NIR) camera) positioned on the side of the user's face on which eye tracking is performed, and an illumination source 530 (e.g., an IR or NIR light source, such as an array or ring of NIR light emitting diodes (LEDs)) that emits light (e.g., IR or NIR light) toward the user's eye 592. The eye tracking camera 540 can be directed toward a mirror 550 (which reflects the IR or NIR light from the eye 592 while allowing visible light to pass) located between the user's eye 592 and a display 510 (e.g., a left display panel or a right display panel of a head-mounted display, or a display of a handheld device, a projector, etc.) Figure 5 ), or alternatively may be directed toward the user's eye 592 to receive reflected IR or NIR light from the eye 592 (e.g., as shown in the top portion of Figure 5 (as shown in the bottom portion of the ).
[0115] In some embodiments, the controller 110 renders AR or VR frames 562 (e.g., left and right frames for left and right display panels) and provides the frames 562 to the display 510. The controller 110 uses the gaze tracking input 542 from the eye tracking camera 540 for various purposes, such as for processing the frames 562 for display. The controller 110 optionally estimates the user's gaze point on the display 510 based on the gaze tracking input 542 obtained from the eye tracking camera 540 using a flash-assisted method or other suitable method. The gaze point estimated based on the gaze tracking input 542 is optionally used to determine the direction the user is currently looking.
[0116] The following describes several possible use cases for the user's current gaze direction and is not intended to be limiting. As an example use case, the controller 110 may render virtual content differently based on the determined direction of the user's gaze. For example, the controller 110 may generate virtual content at a higher resolution in the foveal region determined based on the user's current gaze direction than in the peripheral region. As another example, the controller may position or move virtual content within the view based at least in part on the user's current gaze direction. As another example, the controller may display specific virtual content within the view based at least in part on the user's current gaze direction. As another example use case in an AR application, the controller 110 may direct an external camera used to capture the physical environment of an XR experience to focus in the determined direction. The external camera's autofocus mechanism may then focus on an object or surface in the environment on the display 510 that the user is currently looking at. As another example use case, the eye lens 520 may be a focusable lens, and the controller may use gaze tracking information to adjust the focus of the eye lens 520 so that the virtual object the user is currently looking at has the appropriate vergence to match the convergence of the user's eye 592. The controller 110 can use the gaze tracking information to guide the eye lens 520 to adjust the focus so that nearby objects that the user is looking at appear at the correct distance.
[0117] In some embodiments, the eye tracking device is part of a head-mounted device that includes a display (e.g., display 510), two eye lenses (e.g., eye lenses 520), an eye tracking camera (e.g., eye tracking camera 540), and a light source (e.g., light source 530 (e.g., IR or NIR LED)). The light source emits light (e.g., IR or NIR light) toward the user's eyes 592. In some embodiments, the light sources can be arranged in a ring or circle around each of the lenses, such as Figure 5 In some embodiments, for example, eight light sources 530 (e.g., LEDs) are arranged around each lens 520. However, more or fewer light sources 530 can be used, and other arrangements and positions of the light sources 530 can be used.
[0118] In some embodiments, the display 510 emits light in the visible range and does not emit light in the IR or NIR range, and therefore does not introduce noise into the gaze tracking system. It should be noted that the positions and angles of the eye tracking cameras 540 are given by way of example and are not intended to be limiting. In some embodiments, a single eye tracking camera 540 is located on each side of the user's face. In some embodiments, two or more NIR cameras 540 may be used on each side of the user's face. In some embodiments, a camera 540 with a wider field of view (FOV) and a camera 540 with a narrower FOV may be used on each side of the user's face. In some embodiments, a camera 540 operating at one wavelength (e.g., 850 nm) and a camera 540 operating at a different wavelength (e.g., 940 nm) may be used on each side of the user's face.
[0119] like Figure 5 The embodiments of the gaze tracking system illustrated in the can be used, for example, in computer-generated reality, virtual reality and / or mixed reality applications to provide a computer-generated reality, virtual reality, augmented reality and / or augmented virtual experience to a user.
[0120] Figure 6 A flash-assisted gaze tracking pipeline according to some embodiments is illustrated. In some embodiments, the gaze tracking pipeline is implemented by a flash-assisted gaze tracking system (e.g., Figure 1 and Figure 5 The flash-assisted gaze tracking system can maintain a tracking state. Initially, the tracking state is off or "no." While in the tracking state, the flash-assisted gaze tracking system uses previous information from previous frames when analyzing the current frame to track the pupil outline and glint in the current frame. When not in the tracking state, the flash-assisted gaze tracking system attempts to detect the pupil and glint in the current frame, and if successful, initializes the tracking state to "yes" and continues in the tracking state for the next frame.
[0121] like Figure 6 As shown, the gaze tracking camera can capture left and right images of the user's left and right eyes. The captured images are then input to the gaze tracking pipeline for processing starting at 610. As indicated by the arrow returning to element 600, the gaze tracking system can continue to capture images of the user's eyes at a rate of, for example, 60 to 120 frames per second. In some embodiments, each set of captured images can be input to the pipeline for processing. However, in some embodiments or under some conditions, not all captured frames are processed by the pipeline.
[0122] At 610, for the currently captured image, if the tracking status is yes, the method proceeds to element 640. At 610, if the tracking status is no, the image is analyzed to detect the user's pupil and glint in the image, as indicated at 620. At 630, if the pupil and glint are successfully detected, the method proceeds to element 640. Otherwise, the method returns to element 610 to process the next image of the user's eye.
[0123] At 640, if proceeding from element 610, the current frame is analyzed to track the pupil and glint based in part on previous information from the previous frame. At 640, if proceeding from element 630, the tracking state is initialized based on the pupil and glint detected in the current frame. The processing result at element 640 is checked to verify that the tracking or detection result can be trusted. For example, the result can be checked to determine whether the pupil and a sufficient number of glints were successfully tracked or detected in the current frame to perform gaze estimation. At 650, if the result is not likely to be trusted, at element 660, the tracking state is set to no, and the method returns to element 610 to process the next image of the user's eye. At 650, if the result is trustworthy, the method proceeds to element 670. At 670, the tracking state is set to yes (if not already yes), and the pupil and glint information is passed to element 680 to estimate the user's gaze point.
[0124] Figure 6 This is intended to be used as an example of an eye tracking technology that may be used for a particular implementation. As one of ordinary skill in the art will appreciate, according to various embodiments, other eye tracking technologies currently existing or developed in the future may be used in place of or in combination with the flash-assisted eye tracking technology described herein in the computer system 101 for providing an XR experience to a user.
[0125] In this disclosure, various input methods are described with respect to interaction with a computer system. When an example is provided using one input device or input method, and another example is provided using another input device or input method, it should be understood that each example is compatible with and optionally utilizes the input device or input method described with respect to the other example. Similarly, various output methods are described with respect to interaction with a computer system. When an example is provided using one output device or output method, and another example is provided using another output device or output method, it should be understood that each example is compatible with and optionally utilizes the output device or output method described with respect to the other example. Similarly, various methods are described with respect to interaction with a virtual environment or a mixed reality environment through a computer system. When an example is provided using interaction with a virtual environment, and another example is provided using a mixed reality environment, it should be understood that each example is compatible with and optionally utilizes the methods described with respect to the other example. Therefore, this disclosure discloses embodiments that are combinations of features from multiple examples, without necessarily listing all features of the embodiments in detail in the description of each example embodiment.
[0126] User interface and associated processes
[0127] Attention is now turned to embodiments of a user interface ("UI") and associated processes that may be implemented on a computer system (such as a portable multifunction device or a head-mounted device) in communication with display generating components and (optionally) one or more cameras.
[0128] Figures 7A to 7Y An example of interacting with virtual objects in an augmented reality environment is shown. Figure 8 is a flow chart of a method of interacting with a virtual object in an extended reality environment, including repositioning the virtual object relative to the environment, according to various embodiments. Figure 9 is a flow chart of a method of interacting with virtual objects in an extended reality environment, including virtual objects that assist a user in navigating within the environment, according to various embodiments. Figure 10 is a flow chart of a method of interacting with a virtual object in an extended reality environment, the virtual object including an object displayed based on a change in a user's field of view, the method including repositioning the virtual object relative to the environment, according to various embodiments. Figure 11 is a flow chart of a method of interacting with a virtual object in an extended reality environment, including virtual objects that provide different perspectives on the environment, according to various embodiments. Figures 7A to 7Y The user interface in is used to illustrate the processes described below, which include Figures 8 to 11 in the process.
[0129] exist Figure 7A , user 701 is holding and interacting with device 700 (smartphone) while in a physical environment 703 including trees 703a, roads 703b, and flowers 703c. Device 700 includes a display 700a that can be Figure 7B . In some embodiments, device 700 includes one or more features of computer system 101, such as an accelerometer for detecting movement of device 700 and / or eye tracking device 130. In some embodiments, device 700 is a head-mounted system or display (e.g., an HMD), and when a user operates device 700 as an HMD, device 700 detects the user's motion and / or changes in the orientation of the user's viewpoint (e.g., field of view ("FOV")) (e.g., via detecting movement of the user's head). In such embodiments, user 701 can control certain operations of device 700 via changes in the user's viewpoint (e.g., via head movement) without having to contact device 700 (e.g., provide touch input thereto). Control via changes in the orientation of the user's viewpoint can be particularly useful for HMDs because hardware elements of the HMD (e.g., buttons or touch-sensitive surfaces) may not be visible to the user while the user is wearing the HMD and / or may be difficult to operate due to the positioning and / or lack of visibility of these hardware elements.
[0130] exist Figure 7B At , the device 700 displays a user interface 702 overlaid on a see-through representation of a physical environment 703, the see-through representation including portions of a tree 703a, a road 703b, and a flower 703c based on the viewpoint of a rear camera of the device 700. In some embodiments, the representation of the physical environment 703 is an optical see-through representation visible through a transparent portion of the device 700. The user interface 702 includes virtual objects 702a and virtual objects 702b in a predefined spatial layout. In some embodiments, the virtual objects 702a and virtual objects 702b are referred to as sub-portions of the user interface and / or sub-portions of a single composite virtual object. In some embodiments, the virtual objects 702a and 702b are previews of an application user interface (e.g., a fitness application, a navigation application, and / or a camera application). In some embodiments, the virtual objects 702a and 702b are XR experiences and / or previews of XR experiences that can be provided by the device 700. In Figure 7B At , virtual objects 702a and 702b are displayed in a first mode, which includes displaying the virtual objects at a first opacity level and displaying the virtual objects as environment-locked virtual objects. Figure 7B At , while the virtual objects 702a and 702b are being displayed in the first mode, the device 700 detects that the device 700 is moving to the right, as indicated by arrows 705a1 and 705a2.
[0131] exist Figure 7C At , in response to the rightward motion indicated by arrows 705a1 and 705a2, the device 700 causes the virtual objects 702a and 702b to shift leftward on the display 700a as the representation of the physical environment 703 shifts leftward due to the rightward motion of the device. Figure 7C , virtual objects 702a and 702b remain in the first display mode, including maintaining context lock, as seen by their positioning relative to the tree 703a and the portion of the road 703b. As virtual object 702a shifts to the left on display 700a, a leftmost portion of virtual object 702a, which accounts for approximately 5% (e.g., as determined by area and / or by length) of the virtual object, is no longer displayed, while the remaining portion (e.g., 95%) of virtual object 702a continues to be displayed. Figure 7B At , while the virtual objects 702a and 702b continue to be displayed in the first mode, the device 700 detects that the device 700 moves further to the right, as indicated by arrows 705b1 and 705b2.
[0132] exist Figure 7D At , in response to the rightward movement indicated by arrows 705b1 and 705b2 and in response to determining that less than a threshold amount (e.g., less than 95%, 90%, 80%, 70%, 60%, or 50%) of virtual object 702a will remain on display 700a (and in some embodiments, will remain in the user's viewpoint (e.g., remain visible to the user)) if virtual object 702a continues to be locked to the environment in the first display mode, device 700 displays virtual objects 702a and 702b in a second mode, the second mode including transitioning virtual objects 702a and 702b to viewpoint-locked virtual objects, displaying virtual objects 702a and 702b in the center of the display 700 (in some embodiments, in the center of the user's viewpoint), and modifying the visual appearance of virtual objects 702a and 702b by making the virtual objects more opaque and displaying a projection of the virtual objects, as shown in FIG. Figure 7D . If the further movement to the left is less significant, such that greater than 90% of the virtual object 702a remains on the display 700a based on the movement, then the virtual objects 702a and 702b will continue to be displayed in the first mode. In some embodiments, the second display mode of the virtual objects 702a and 702b is referred to as a repositioning mode because the user can use this mode to reposition the virtual objects within or relative to the representation of the physical environment 703. In some embodiments, displaying the virtual objects 702a and 702b in the second mode includes providing additional information (e.g., text (e.g., "Reposition virtual object by moving the device") and / or graphical information) that informs the user that the virtual objects can be repositioned (e.g., relative to the environment) via a combination of device movement and device stability, as discussed in more detail below. Figure 7D At , while the virtual objects 702a and 702b are displayed in the second mode, the device 700 detects that the device 700 moves to the left, as indicated by arrows 705c1 and 705c2.
[0133] exist Figure 7E , in response to the leftward movement indicated by arrows 705c1 and 705c2, the device 700 continues to display the virtual objects 702a and 702b in the second mode, including displaying these objects as viewpoint-locked objects. Thus, the positioning of the virtual objects 702a and 702b relative to the physical environment has changed, as indicated by the positioning of the tree 703a, road 703b, and flower 703c relative to the virtual objects 702a and 702b. In some embodiments, when the virtual objects 702a and 702b are viewpoint-locked while in the second mode, the virtual objects exhibit an inert follow behavior (as described above) while these objects are responding to movement of the device 700 and the virtual objects are in motion. Figure 7E At , while the virtual objects 702a and 702b are still displayed in the second mode, the device 700 detects that the device 700 moves further to the left, as indicated by arrows 705d1 and 705d2.
[0134] exist Figure 7F In response to the leftward movement indicated by arrows 705d1 and 705d2, the device 700 continues to display virtual objects 702a and 702b in the second mode, including displaying these objects as viewpoint-locked objects. The leftward movement indicated by arrow 705d also causes the device 700 to display virtual objects 702a and 702b in the second mode. Figure 7B The same manner is shown, as indicated by the positioning of trees 703a, roads 703b, and flowers 703c relative to the physical environment 703. Figure 7F At , the device 700 detects that the device 700 has remained stable for at least a predetermined time period (e.g., has satisfied a set of stability criteria by remaining stable for 0.5 seconds, 1 second, 2 seconds, or 3 seconds); in some embodiments, the user's viewpoint (e.g., the user's head) has satisfied the set of stability criteria).
[0135] exist Figure 7G At , in response to detecting that the device 700 has remained stable for at least the predetermined period of time while the virtual objects 702a and 702b are displayed in the second mode, the device 700 transitions back to displaying the virtual objects 702a and 702b in the first mode, including reducing their opacity, removing their shadows, and displaying them as environment-locked virtual objects. Figures 7B to 7GIn some embodiments where the device 700 is an HMD, the user 701 is able to transition the display modes of the virtual objects 702a and 702b via a combination of movement and stability of the device 700, without having to employ any manual input devices (e.g., buttons and / or touch-sensitive surfaces). Figures 7B to 7G The discussed techniques enable a user to interact with virtual objects that remain locked to the environment while the user's field of view (e.g., as determined by the orientation of the user's head) remains within a range of orientations (e.g., an orientation that does not cause a threshold amount of the virtual object to transition outside the user's field of view (e.g., as presented to the user via the display generation components of device 700)). This can be particularly useful, for example, when a user is interacting with an XR experience and environment where it is expected that the user will primarily focus his or her attention in one general direction (e.g., at a concert, certain sporting events, or in a theater). Also, reference is made to Figures 7B to 7G The discussed techniques provide a user with a user interface for repositioning virtual objects to be associated with different parts of a physical environment via changes in the user's field of view (e.g., via movement of the user's head) without having to access manual controls.
[0136] exist Figure 7HAt , device 700 displays user interface 704, which is a walking fitness user interface. In some embodiments, user interface 704 is generated by a fitness application of device 700. In some embodiments, user interface 704 is displayed in response to selecting (e.g., via touch input, air gesture, hardware button press, gaze input, or a combination thereof) virtual object 702a. User interface 704 includes guidance 704a and dashboard virtual objects 704b-704d. Guidance 704a instructs a user (e.g., user 701) to move device 700 (e.g., to change the user's viewpoint, as provided by device 700) so as to position dashboard virtual objects 704b-704d at a desired location (e.g., within an augmented reality environment) relative to the location and / or orientation of device 700 and / or relative to the location and / or orientation of a part of the user's body (e.g., relative to the user's torso or head). Dashboard virtual object 704b indicates the current calorie count for the current walking workout, dashboard virtual object 704c indicates the current mile pace for the current walking workout, and dashboard virtual object 704d is a camera feed from a first camera in communication with device 700. In some embodiments, the first camera is a camera integrated into device 700 (e.g., a user-facing and / or front-facing camera of device 700 with a viewpoint directed toward user 701). In some embodiments, the first camera is a remote camera in wireless communication with device 700, such as a fixed camera along road 703b. In some embodiments, user interface 704 is a user interface displayed while the user is operating a vehicle (e.g., a bicycle or car), and the first camera is a camera integrated into the vehicle (e.g., a rearview camera, a side-view and / or side mirror camera). In some embodiments, the representation of physical environment 703 displayed on display 700a and the camera feed of dashboard virtual object 704d provide different perspectives of the same general location of the physical environment (e.g., the location where user 701 and / or device 700 is located). In some embodiments, the two perspectives (e.g., the perspective facing toward tree 703a and the perspective facing away from tree 703a) are in close proximity to each other, but are oriented differently (e.g., the two perspectives are within 0.1 feet, 0.2 feet, 0.5 feet, 1 foot, 2 feet, 5 feet, or 10 feet of each other). Figure 7H In , the dashboard virtual objects 704b-704d are positioned so that they appear approximately two feet in front of the user's torso at approximately sternum level. Figure 7H At , the guide 704a and dashboard virtual objects 704b-704d are displayed as viewpoint-locked objects and will continue to be displayed as viewpoint-locked objects until the device 700 detects a press of the hardware button 700b. Figure 7H At , device 700 detects that device 700 is tilted downward, as indicated by arrows 705e1 and 705e2.
[0137] exist Figure 7I In response to the downward rotation indicated by arrows 705e1 and 705e2, a different portion of the physical environment 703 is displayed on the display 700a. Because the guide 704a and the dashboard virtual objects 704b-704d are viewpoint locked, the guide 704a and the dashboard virtual objects 704b-704d continue to be displayed at the same location on the display 700a, but are now displayed at a different position relative to the representation of the physical environment 703 (e.g., different from the Figure 7H Compared to the flower 703c, which is further below the user 701's viewpoint). Figure 7I At , the device 700 maintains the display of the dashboard virtual objects 704b-704d at the same predetermined distance of two feet from the user's torso. However, due to the downward rotation indicated by arrows 705e1 and 705e2, the dashboard virtual objects 704b-704d now appear approximately two feet in front of the user's torso, but at navel level rather than sternum level. In other words, the device 700 maintains the overall distance of the dashboard virtual objects 704b-704d from the user's torso while shifting their vertical positioning further downward. Figure 7H At , the device 700 detects an actuation of the hardware button 700b (e.g., due to a finger press), as indicated by arrow 705f. In response to the actuation of the hardware button 700b, the device 700 stops displaying the guide 704a and transitions the dashboard virtual objects 704b-704d from viewpoint-locked objects to body-locked objects (in some embodiments, conditionally body-locked), as explained in more detail below. As used herein, a virtual object is body-locked when a computer system (e.g., device 700) displays the virtual object at a position and / or location in a user's viewpoint that is based on (e.g., referenced to and / or anchored to) a part of the user's body (e.g., the user's torso, the user's head, or the user's hand). The body-locked virtual object is displayed at a different position and / or location in the user's viewpoint as the user's viewpoint moves relative to the part of the user's body, or is not displayed at all if the user's viewpoint does not include a locked location (e.g., a location corresponding to 2 feet in front of the user's navel). At , the device 700 stops displaying the guide 704a and transitions the dashboard virtual objects 704b-704d from viewpoint-locked objects to body-locked objects (in some embodiments, conditionally body-locked), as explained in more detail below. As used herein, a virtual object is body-locked when a computer system (e.g., device 700) displays the virtual object at a position and / or location in the user's viewpoint that is based on (e.g., referenced to and / or anchored to) a part of the user's body (e.g., the user's torso, the user's head, or the user's hand). Figure 7IAt this point, the virtual objects 704b-704d become body-locked to the user's torso so that they will be displayed at a location within the user's viewpoint that is based on the current position and / or orientation of the user's torso (e.g., they are displayed 2 feet from the user's navel). In some embodiments, the dashboard virtual objects 704b-704d are conditionally body-locked rather than fully body-locked because the virtual objects 704b-704d are displayed based on the position and / or orientation of the user's torso when initially displayed, so that movement of the user's torso that occurs while the virtual objects 704b-704d are being displayed does not cause the virtual objects to be repositioned (e.g., the virtual objects 704b-704d are initially displayed at a location based on the position and / or orientation of the user's torso and then become world-locked to their display location until the dashboard virtual objects 704b-704d are no longer displayed (e.g., due to a change in the user's viewpoint). After no longer being displayed, the dashboard virtual objects 704b-704d are again displayed at their initial location based on the position and / or orientation of the user's torso when subsequently redisplayed. Reference below Figures 7M to 7P An example of conditional body locking is discussed in more detail. In some embodiments, each of the dashboard virtual objects 704b-704d is individually body locked to a different position relative to the user's torso. For example, dashboard virtual object 704c is displayed two feet directly in front of the user's navel, dashboard virtual object 704b is displayed 30 degrees to the left of the user's navel and 2 feet away, and dashboard virtual object 704d is displayed 30 degrees to the right of the user's navel and 2 feet away. Thus, in some embodiments, the dashboard virtual objects are displayed as an array of curved objects centered on a portion of the user's body (e.g., the user's torso and / or navel) and arranged (e.g., curved) around that portion (e.g., around the user's torso and / or navel). As Figures 7H to 7I As seen in , the user is able to customize the positioning (e.g., height) of the displayed dashboard virtual objects 704b-704d through a combination of device / viewpoint movement and use of hardware buttons. Figure 7I At , after detecting actuation of hardware button 700b, device 700 detects that device 700 is tilted upward, as indicated by arrows 705g1 and 705g2.
[0138] At FIG. 7J , in response to the upward rotation indicated by arrows 705g1 and 705g2 , the physical environment 703 is Figure 7H7J , device 700 detects that device 700 is tilted downward again, as indicated by arrows 705h1 and 705h2.
[0139] exist Figure 7K In response to the downward rotation indicated by arrows 705h1 and 705h2, the physical environment 703 is Figure 7I Because the user's viewpoint (e.g., via device 700) now includes a position 2 feet in front of the user's navel, the body-locked dashboard virtual objects 704b-704d are redisplayed. Figure 7K At , device 700 detects that device 700 is moving to the right, as indicated by arrows 705i1 and 705i2.
[0140] exist Figure 7L , in response to the rightward motion indicated by arrows 705i1 and 705i2, the representation of the physical environment 703 has shifted on the display 700a, the dashboard virtual objects 704b-704d are displayed at different locations on the display 700a because they are body locked (e.g., the rightward motion does not include torso movement of the user and / or the objects are conditionally body locked), and the previously undisplayed dashboard virtual object 704e is now displayed. Figure 7L In the example, the dashboard virtual object 704e is body-locked to the user's torso so that it appears 60 degrees to the right of the user's navel at a distance of 2 feet; since this position is not Figure 7K So the dashboard virtual object 704e is within the user's viewpoint. Figure 7K In some embodiments, multiple dashboard virtual objects (e.g., 5, 7, 8, or 11) are arranged around the user at predetermined angles relative to the user's torso, but not all dashboard virtual objects are visible from a given viewpoint. In some embodiments, this provides the user with a scalable user interface that can accommodate any number of dashboard virtual objects (e.g., with the most frequently accessed objects facing forward of the user). Figure 7L , the dashboard virtual object 704e is a feed from a second camera that provides a different perspective of the physical environment than the perspective provided by the first camera feed. For example, in some embodiments, the first camera feed is a rear-facing feed from a vehicle operated by a user, and the second camera feed is a right-facing feed (or right side view feed) from the vehicle. Additionally, in Figure 7LIn , the size of the dashboard virtual object 704b has been reduced; reducing the size of the object avoids moving part of the object off the screen while the object remains the same size. Figure 7L At , device 700 detects that device 700 is moving to the left, as indicated by arrows 705j1 and 705j2.
[0141] exist Figure 7M In response to the leftward movement indicated by arrows 705j1 and 705j2, the representation of the physical environment 703 and the dashboard virtual objects 704b-704d are again displayed, as shown in FIG. Figure 7K As seen in , including stopping displaying the dashboard virtual object 704e. Figure 7M At , device 700 detects that user 701 turns his entire body to the right, as indicated by arrow 705k, while device 700 remains in the same position relative to the user's torso (e.g., device 700 also turns to the right relative to the environment).
[0142] exist Figure 7N In response to detecting that the user 701 turns his entire body to the right, the device 700 Figure 7L The representation of the physical environment 703 and the dashboard virtual objects 704b-704e are displayed in the same manner as seen in FIG. 1 , as the dashboard virtual objects are conditionally body locked rather than fully body locked. Thus, moving the device 700 to the right ( Figures 7K to 7L ) is the same as the result of the device 700 moving to the right due to the user's torso rotating to the right, because the dashboard virtual object is already displayed when the user's torso rotates. Figure 7N At , device 700 detects that device 700 is tilted upward, as indicated by arrows 70511 and 70512.
[0143] exist Figure 7O In response to the upward rotation indicated by arrows 70511 and 70512, the device 700 stops displaying the dashboard virtual objects 704b-e because the user's viewpoint (e.g., via the device 700) no longer includes a location 2 feet in front of the user's navel, similar to that seen in FIG7J. Although in contrast to FIG7J, due to Figure 7M 7J , the user's body is rotated to the right, so more of the right side of the physical environment 703 is represented (e.g., as shown by comparing the tree 703a in FIG. 7J with the Figure 7O (as seen by comparing tree 703a in ). Figure 7O At , device 700 detects that device 700 is tilted downward, as indicated by arrows 705m1 and 705m2.
[0144] exist Figure 7PIn response to the downward rotation indicated by arrows 705m1 and 705m2, the device 700 displays as shown in FIG. Figure 7N 703c) but again displays dashboard virtual objects 704b-d as being positioned 2 feet from the user's navel, while dashboard virtual object 704e is not displayed (e.g., as can be seen by the positioning of tree 703a, road 703b, and flower 703c). Figure 7N ). Dashboard virtual object 704e is not displayed because dashboard virtual objects are conditionally body locked so that when redisplayed, their positioning is again based on the current position and / or orientation of the user's torso. Figure 7P At , when a set of activation criteria are met, the device 700 detects that the user's gaze (as indicated by the gaze indication 707a) is directed toward the dashboard virtual object 704b (e.g., the device 700 detects that the user's gaze remains on the object for a predetermined period of time, the device 700 detects that an air gesture is performed while the user's gaze is directed toward the dashboard virtual object 704b, and / or the hardware button 700b is actuated while the user's gaze is directed toward the dashboard virtual object 704b).
[0145] exist Figure 7Q At 704 b, in response to detecting that the user's gaze is directed toward dashboard virtual object 704 b when a set of activation criteria is met, device 700 displays an enlarged calorie information virtual object 706 overlaid on a representation of physical environment 703 and dashboard virtual objects 704 b-d. Enlarged calorie information virtual object 706 includes a graph of calories burned during the current walking workout. In some embodiments, one or more of dashboard virtual objects 704 c-e can be selected to activate corresponding functionality and / or display corresponding information.
[0146] In some embodiments where the device 700 is an HMD, reference Figures 7H to 7Q The discussed techniques provide a user with a set of virtual objects that are presented to the user when the user directs his or her field of view in a particular orientation. Doing so can provide the user with controls and / or information associated with the set of virtual objects that the user can easily access without having those objects constantly overlaid on the physical environment (e.g., as would be the case if the objects were viewpoint locked). Figures 7H to 7QThe HMD of the discussed technology can provide the user with the ability to position a set of virtual objects in a desired spatial orientation relative to the user's body (e.g., the user's torso), such that the user can view the set of virtual objects by shifting their field of view to bring the objects into view. In this way, the user of the HMD can access objects when needed without having to use manual controls to clear objects and recall them when needed. For example, the set of virtual objects can be a set of dashboard controls and / or information used to operate a vehicle or other machine that requires a combination of a largely unobstructed field of view and a conditional large number of controls and / or information.
[0147] In some embodiments where the device 700 is an HMD, reference Figures 7H to 7Q The discussed techniques provide a user with a representation of multiple perspectives of the user's physical environment, which can be particularly useful when operating an HMD (e.g., which may block some portions of the user's peripheral vision). These techniques can also be useful to the user of the HMD by providing the user with an enhanced awareness of the local environment in situations such as operating a vehicle (e.g., providing both front and rear views), monitoring a location (e.g., for security purposes), or observing changes within a larger environment. The user is able to observe multiple perspectives of the physical environment without having to constantly reposition the user's field of view (e.g., without having to constantly move his or her head).
[0148] exist Figure 7R At 700, device 700 displays user interface 708, which is a yoga fitness user interface. User interface 708 includes instructions 708a, which are similar to instructions 704a of user interface 704. User interface 708 also includes dashboard virtual objects 708b-d, which are customized for yoga fitness. For example, dashboard virtual object 708b indicates the current calorie count of the current yoga fitness (similar to dashboard virtual object 704a), dashboard virtual object 708c includes the remaining time in the current yoga fitness, and dashboard virtual object 708d indicates the user's current heart rate. Therefore, in some embodiments, different dashboard virtual objects can be displayed for different applications, different functions and / or different use cases (e.g., different fitness types). In some embodiments, the user can customize which dashboard virtual objects are associated with a given user interface and / or function (e.g., via a settings menu). In some embodiments, although the user can select which dashboard virtual objects to display, the user cannot customize the arrangement of the dashboard virtual objects (e.g., their spacing and / or the distance at which they are displayed from the user's torso).
[0149] exist Figure 7SAt , the device 700 again displays the user interface 704, which is a walking fitness user interface. The user interface 704 includes a small map virtual object 704f indicating the selected walking route that the user 701 has selected. The small map virtual object 704f includes a current location indicator 704f1 indicating the current location of the user 701 and the device 700 along the selected route (e.g., 2 / 3 of the way along the route), a starting location indicator 704f2 and an ending location indicator 704f3, and a bridge indicator 704f4 indicating the location of a bridge (e.g., a predetermined landmark) along the route. Figure 7S At , based on user 701 completing 2 / 3 of the route, device 700 has updated the calorie count in dashboard virtual object 704b and the mile pace in dashboard virtual object 704c. The representation of the physical environment 703 now shows a portion of the physical environment that is in front of the user at the current location along the route. Figure 7S At , the device 700 also displays navigation objects 704g and 704h overlying a representation of the physical environment 703 (and in some embodiments, located within the representation). The navigation objects 704g and 704h provide the user with indications of navigation points of interest based on the currently selected route. For example, the navigation object 704g indicates a finish line corresponding to the location marked by the finish location indicator 704f3 on the mini-map virtual object 704f; the navigation object 704h indicates an upcoming turn navigation event in an upcoming portion of the route. The device 700 displays the navigation objects 704g and 704h on the display 700a at positions based on the relative positions and / or orientations of the associated navigation points of interest relative to the position and / or orientation of the device 700. At Figure 7S At , both of the associated navigation points of interest corresponding to navigation objects 704g and 704h are not within the user's current viewpoint (e.g., as provided by device 700) and are to the right of the user's viewpoint. Therefore, device 700 displays navigation objects 704g and 704h at the right edge of display 700a to indicate that they are outside the user's viewpoint and to the right. Device 700 also displays navigation objects 704g and 704h as viewpoint-locked objects, while the navigation points of interest to which they correspond remain outside the user's viewpoint. In some embodiments, navigation objects 704g and 704h are at least partially transparent (e.g., their backgrounds are transparent to allow portions of the physical environment to be seen through these objects).
[0150] exist Figure 7T, the user 701 and device 700 have progressed further along the route, as indicated by the updated location of the current location indicator 704f1. The representation of the physical environment 703 now includes a portion of the bridge corresponding to the bridge indicator 704f4. Because the location of the turn-by-turn navigation event corresponding to the navigation object 704h is now within the user's viewpoint (e.g., within the representation of the physical environment 703), the device 700 displays the navigation object 704h as an environment-locked object on the display 700a indicating / marking the location of the turn-by-turn navigation event. Figure 7T At , the finish line continues to be outside the right side of the user's viewpoint, so the device 700 continues to display the navigation object 704g at the right edge of the display 700a and as the viewpoint-locked object. Figure 7T At , device 700 detects that device 700 moves to the left, as indicated by arrows 705n1 and 705c2.
[0151] exist Figure 7U At , in response to the leftward motion indicated by arrows 705n1 and 705n2, device 700 has shifted the representation of physical environment 703 to the right on display 700a. Figure 7T In contrast, the location of the turn-by-turn navigation event is now further to the right on display 700a (but still within the user's viewpoint), and the navigation object 700h (which is still an environment-locked object) has also shifted to the right on display 700a so that the left edge of the navigation object 700h still indicates the location of the turn-by-turn navigation event. The finish line continues to be off to the right of the user's viewpoint, so the device 700 continues to display the navigation object 704g at the right edge of the display 700a as a viewpoint-locked object. Figure 7U At , device 700 detects that device 700 moves to the right, as indicated by arrows 705o1 and 705o2.
[0152] exist Figure 7V , the user 701 and device 700 have progressed slightly further along the route, as indicated by the representation of the physical environment 703 (e.g., a larger portion of the bridge is visible). In response to the device 700 moving closer to the location of the turn navigation event, the navigation object 704h includes additional information about the turn navigation event ("10 feet ahead"). In some embodiments, navigation objects associated with points of interest within the user's viewpoint (e.g., environment-locked navigation objects) are updated as the user approaches a threshold distance from the point of interest associated with the navigation object. In some embodiments, navigation objects associated with points of interest outside the user's viewpoint are not updated with additional information as the device gets closer to the point of interest. Figure 7V, in response to the rightward movement indicated by arrows 705o1 and 705o2, the device 700 has shifted the representation of the physical environment 703 to the left to the same position on the display 700a. The navigation object 704h has now moved (e.g., slowly moved or floated) to the top edge of the display 700a and now includes a line 704h1 indicating the location of the navigation turn event, such that at least one end of the line 704h1 of the navigation object 704h remains as an environment-locked object locked to the location of the navigation turn event. The device 700 has moved the navigation object 704h upward (e.g., upward over time) to avoid obscuring a central area of the user's viewpoint for an extended period of time. In some embodiments, navigation objects corresponding to points of interest within the user's viewpoint slowly float upward over time to avoid obscuring the center of the user's viewpoint. Figure 7V At , the device 700 detects that the user's gaze (as indicated by gaze indication 707b) is directed to the dashboard virtual object 704b bridge indicator 704f4.
[0153] exist Figure 7W At , user 701 and device 700 have progressed further along the route (e.g., the user has completed the turn indicated by navigation object 704h), as indicated by the updated location of current position indicator 704f1. The representation of physical environment 703 now includes a larger portion of the bridge corresponding to bridge indicator 704f4. Navigation object 704h is no longer displayed because the turn has been completed. Figure 7W At , the device 700 displays a point of interest object 704i corresponding to the bridge and including information about the bridge point of interest. The device 700 displays the point of interest object 704i as an environment-locked object locked to the right portion of the bridge. Figure 7W At , device 700 detects that device 700 is rotating clockwise, as indicated by rotation arrows 705p1 and 705p2.
[0154] exist Figure 7X , in response to the device 700 rotating clockwise, as indicated by the rotation arrows 705p1 and 705p2, the representation of the physical environment is updated to bring the bridge more fully into view. The device 700 also shifts the positioning of the point of interest object 704i further to the left to avoid the point of interest object 704i from (partially) moving off the screen, which would occur if the object were not shifted to the left relative to the right portion of the bridge to which the point of interest object 704i was environment-locked. The point of interest object 704i now includes a connecting line 704i1, one end of which maintains the environment locked to the right portion of the bridge. Figure 7X At , device 700 detects that user 701 and device 700 remain in the same location for a period of time.
[0155] exist Figure 7YIn response to the user 701 and the device 700 remaining in the same position for a period of time, the device has moved the point of interest object 704i upward (e.g., upward over time) to avoid obstructing the central area of the user's viewpoint for an extended period of time, similar to the above reference to Figure 7V The length of the link 704i1 of the point of interest object 704i has been increased so that it remains connected to the rest of the point of interest object 704i and to the right portion of the bridge.
[0156] In some embodiments where the device 700 is an HMD, reference Figures 7R to 7Y The discussed techniques provide users with context-locked (e.g., when the location associated with the object is within the user's field of view) or viewpoint-locked (e.g., when the location associated with the object is not within the user's field of view) navigational virtual objects, depending on at least the orientation of the user's field of view. Using these techniques while operating an HMD allows the user to navigate within an XR environment (e.g., using an XR tour guide to navigate along a trail or city) without having to adjust the display of navigational objects via manual controls. This frees the user's hands to interact with other devices and / or the environment, while also avoiding accessing controls on the HMD that the user may not be able to see.
[0157] The following reference methods 800, 900, 1000 and 1100 provide information on Figures 7A to 7Y Additional description, such as relative to Figures 7A to 7Y As stated.
[0158] Figure 8 is a flow chart of an exemplary method 800 for interacting with a virtual object in an extended reality environment, including repositioning the virtual object relative to the environment, according to some embodiments. In some embodiments, the method 800 is performed on a computer system (e.g., Figure 1 101 in the computer system 102), which includes a display generating component (e.g., Figure 1 、 Figure 3 and Figure 4 In some embodiments, the method 800 is performed by a display generating component 120 in the computer system (e.g., a heads-up display, a display, a touch screen, a projector, etc.) and one or more cameras (e.g., a camera pointing downward toward the user's hand (e.g., a color sensor, an infrared sensor, and other depth sensing cameras) or a camera pointing forward from the user's head). In some embodiments, the method 800 is performed by a computer system (e.g., one or more processors 202 of the computer system 101) stored in a non-transitory (or transient) computer-readable storage medium and executed by one or more processors of the computer system (e.g., one or more processors 202 of the computer system 101) (e.g., Figure 1 Some operations in method 800 may be optionally combined, and / or the order of some operations may be optionally changed.
[0159] When a field of view of a user (e.g., a user of the computer system) (e.g., a field of view of the user of the computer system (e.g., a viewpoint) (e.g., as determined by the computer system) and / or a field of view of a first camera in communication with and / or integrated into the computer system) (in some embodiments, an area within the user's viewpoint in which the computer system may display one or more virtual objects) is a first field of view (e.g., a first orientation), the computer system (e.g., 700), via a display generation component (e.g., 700a), displays (802) a first virtual object (e.g., 702a, 702b, or a combination thereof) (e.g., a user interface element) in a three-dimensional environment (e.g., 703) (e.g., an extended reality environment, an augmented reality environment, and / or a virtual reality environment) (e.g., as part of an augmented reality user interface), wherein the first virtual object is in a first display mode (e.g., currently and / or at a first time) that is environment-locked (e.g., environment-locked to a first position of the three-dimensional environment and / or a first object (e.g., a real-world position and / or an object in the three-dimensional environment). Figure 7B In some embodiments, the first virtual object includes one or more of a selectable control, a non-selectable user interface object, and a status indicator (e.g., indicating the status of a hardware or software component of the system).
[0160] While displaying the first virtual object, the computer system detects (804) (e.g., via one or more sensors (e.g., accelerometers, optical sensors (e.g., cameras)) that the user's field of view changes from the first field of view (e.g., Figure 7B or Figure 7C field of view) to a second field of view (e.g., Figure 7C or Figure 7D In some embodiments, when the change in the user's field of view from the first field of view to the second field of view is detected, the first virtual object is displayed in the first display mode.
[0161] In response to (806) detecting a change in the user's field of view from the first field of view to the second field of view and based on determining that a first set of criteria is satisfied (e.g., as referenced Figure 7CDiscussion), the computer system continues to display (808) the first virtual object in a first display mode that includes environment locking, wherein the first set of criteria includes criteria that are met when a threshold amount of the first virtual object (e.g., a percentage of the area of the first virtual object (e.g., 75%, 80%, 85%, 90%, or 95%) and / or a distance between an edge of the first virtual object and an edge of the first field of view (e.g., a nearest edge of the first virtual object no more than a predetermined distance from an edge of the FOV (e.g., a length of the first virtual object no more than 5%, 10%, 15%, or 20% extends outside the FOV)) will remain (e.g., remain) within the user's field of view when the user's field of view is the second field of view and when the first virtual object maintains environment locking.
[0162] In response to (806) detecting a change in the user's field of view from the first field of view to the second field of view and based on determining that the first set of criteria is not met (e.g., as referenced Figure 7D Discussion), the computer system displays the image in a second display mode (e.g., Figure 7D The first virtual object is displayed (810) in a second manner (e.g., as seen in the user's field of view) that includes shifting a display position of the first virtual object relative to the three-dimensional environment (e.g., as seen in the user's field of view) based on a change in the user's field of view (e.g., a change in the user's field of view from the first field of view to the second field of view and / or a further change in the user's field of view) (e.g., ceasing to display the first virtual object as locked to the environment). Figure 7D In some embodiments, when the user's field of view is the second field of view, if more than a threshold amount of the area previously occupied by the first virtual object is outside the second field of view (e.g., if the first virtual object remains environment-locked, more than a threshold amount of the first virtual object is outside the user's field of view when in the second field of view), the first set of criteria is not met. Conditionally displaying the first virtual object in the first display mode or the second display mode based on whether the threshold amount will remain within the user's field of view automatically transitions the display mode of the first virtual object when the first set of criteria is met, and also providing feedback to the user as to whether the threshold amount of the first virtual object will fall outside the user's field of view if the first visual object continues to be displayed in the first mode, which performs the operation without further user input when a set of conditions have been met and provides improved visual feedback. Doing so also provides the user with the ability to change the display mode of the first virtual object through changes in the user's field of view, which provides additional control options without cluttering the UI with additional displayed controls.
[0163] In some embodiments, displaying the first virtual object in the second display mode includes changing the visual appearance of the first virtual object from a first visual appearance that the first virtual object displays when in the first display mode to a second visual appearance that is different from the first visual appearance (e.g., as in 702a). Figure 7BThe appearance and Figure 7D Changing the visual appearance of the first object according to the display mode provides an indication to the user as to whether the first visual object is in the first display mode or the second display mode, which provides improved visual feedback.
[0164] In some embodiments, the first virtual object has a first opacity level when displayed in the first visual appearance (e.g., Figure 7B ), and having a second opacity level different from the first opacity level when displayed in the second visual appearance (e.g., as shown in FIG. Figure 7D Changing the opacity level of the first object according to the display mode provides an indication to the user as to whether the first visual object is in the first display mode or the second display mode, and also provides the user with an enhanced ability to see the portion of the three-dimensional environment covered by the first visual object for the display mode with higher opacity, which provides improved visual feedback.
[0165] In some embodiments, the first virtual object is displayed in a first visual appearance (e.g., 702a without a projection, such as Figure 7B , as seen in FIG. 1 , and a second type of projection different from the first type of projection when displayed with a second visual appearance (e.g., projection 702a, as seen in FIG. 1 ). Figure 7D In some embodiments, the first virtual object has no projection when displayed in the first visual appearance and has a projection when displayed in the second visual appearance, or vice versa. In some embodiments, the first virtual object has a more noticeable projection when displayed in the second visual appearance than in the first visual appearance, or vice versa. Changing the projection of the first object according to the display mode provides an indication to the user as to whether the first visual object is in the first display mode or the second display mode, which provides improved visual feedback.
[0166] In some embodiments, when the first virtual object is being displayed in the second display mode, the computer system detects that the stability level of the user's field of view (e.g., the degree to which the user's field of view remains unchanged or changes minimally over a period of time) meets a set of stability criteria (e.g., as described in the reference Figure 7FDiscussion) (e.g., less than an allowed threshold amount within a predetermined time period (e.g., a net shift of less than 10%, 5%, or 2% of the FOV area within the first 2 seconds, 1 second, or 0.5 second period)) (In some embodiments, the user's field of view is determined to be stable when there is substantially no shift in the user's field of view within the predetermined time period. In response to detecting that the stability level of the user's field of view meets the set of stability criteria, the computer system displays (e.g., transitions from the second display mode to the first display mode; transitions the first virtual object to environment lock) the first virtual object (e.g., as Figure 7G Transitioning a first virtual object to a first display mode including being locked to an environment based on a detected level of user FOV stability performs the operation without further user input when a set of conditions have been met, provides improved visual feedback regarding the detected level of user FOV stability, and provides additional control options (e.g., for transitioning the first virtual object to the first display mode) without cluttering the UI with additional displayed controls.
[0167] In some embodiments, the stability level of the user's field of view is based on a determination of the head stability level of the computer system user (e.g., as referenced in FIG. Figure 7F In some embodiments, the stability level of the user's field of view is determined without reference to the user's gaze direction. Basing the determination of the stability level of the user's field of view on the stability level of the user's head provides the user with the ability to use the user's head to affect changes in the display mode of the first virtual object, which reduces the number of inputs required to perform operations and provides additional control options without cluttering the UI with additional displayed controls.
[0168] In some embodiments, when the first virtual object is being displayed in the second display mode, the computer system displays a first indication (e.g., Figure 7D ) (e.g., a projection of 702a as seen in ) (e.g., a textual and / or graphical indication) (in some embodiments, an indication that is not displayed when the first virtual object is being displayed in the first display mode) indicating that the first virtual object can be transitioned to be displayed in the first display mode that includes being locked to the environment. Displaying the first indication provides feedback to the user about the current display mode of the first virtual object and about the ability to transition the first virtual object back to the first display mode, which provides improved visual feedback.
[0169] In some embodiments, the first indication includes a second version of the first virtual object, wherein the second version of the first virtual object has a darker appearance than the first virtual object (e.g., a darkened version of the first virtual object displayed with the first virtual object). Displaying the second version of the first virtual object provides feedback about which mode the first virtual object is being displayed in, which provides improved visual feedback.
[0170] In some embodiments, the first indication includes an outline of at least a portion of the first virtual object (in some embodiments, the first virtual object is displayed in the second display mode with an outline that is not present when the first virtual object is displayed in the first display mode). Displaying the outline of at least a portion of the first virtual object provides feedback about which mode the first virtual object is being displayed in, which provides improved visual feedback.
[0171] In some embodiments, when the first virtual object is being displayed in the second display mode, the computer system (e.g., via one or more sensors (e.g., accelerometers, optical sensors (e.g., cameras)) detects that the user's field of view is moving from a third field of view (e.g., such as a third field of view) at a first speed and in a first direction. Figure 7D ) to the fourth field of view (e.g., as seen in Figure 7F and in response to detecting a change in the user's field of view from the third field of view to the fourth field of view, the computer system moves in a second direction based on the first direction (in some embodiments, opposite to the first direction) and at a second speed different from the first speed (e.g., as shown in reference Figure 7EIn some embodiments, the first virtual object is displayed at the first location in the user's field of view before a change in the field of view from the third field of view to the fourth field of view is detected, and the first virtual object is redisplayed at the first location in the user's field of view after the field of view of the user stops changing. In some embodiments, the second direction is opposite to the first direction, and the first virtual object is shifted in the first direction after shifting in the second direction, so that it appears as if the first virtual object catches up with the change in the user's field of view after a brief period of time during which the first virtual object lags behind the change in the user's field of view. In some embodiments, when the first virtual object is displayed in the second display mode, the first virtual object is said to be locked to the environment in an inert follow behavior because it is ultimately displayed at the same location in the user's field of view without a change in the user's field of view, and the location of the first virtual object in the user's field of view briefly lags behind the change in the user's field of view during the period during which the user's field of view changes. Shifting the positioning of the first virtual object in a direction based on the direction of field of view movement and at a speed different from the speed of field of view movement helps to address the discomfort caused by rapidly shifting the display positioning of the first virtual object relative to the three-dimensional environment, which provides the user with a more sustainable interaction with the computer system. Providing a more sustainable user interaction improves user-computer system interaction by enabling the user to use the device more sustainably and efficiently (e.g., reducing errors caused by discomfort) while improving the ergonomics of the device, reducing power usage, and extending the battery life of the device. Doing so also provides improved visual feedback about changes in the user's field of view.
[0172] In some embodiments, in response to detecting a change in the user's field of view from the first field of view to the second field of view, continuing to display the first virtual object in the first display mode including being locked to the environment includes: ceasing to display the first sub-portion of the first virtual object (e.g., Figure 7C In some embodiments, the change in the user's field of view causes the first subportion of the environment-locked first virtual object to no longer be displayed because the first subportion transitions to outside the displayable area of the display generation component. Ceasing to display the first subportion of the first virtual object while continuing to display the second subportion of the first virtual object provides feedback about the change in the user's field of view, which provides improved visual feedback.
[0173] In some embodiments, when the second sub-portion of the first virtual object is displayed without displaying the first sub-portion of the first virtual object (e.g., Figure 7C When the user's field of view changes from the second field of view to the fifth field of view (e.g., the left portion of 702a not shown in FIG), the computer system detects a change in the user's field of view from the second field of view to the fifth field of view (e.g., a field of view different from the second field of view). In response to detecting the change in the user's field of view from the second field of view to the fifth field of view and based on determining that the first set of criteria is not met, the computer system displays the first virtual object in the second display mode, including displaying (e.g., redisplaying) the first sub-portion of the first virtual object (e.g., Figure 7D Shown in Figure 7C ). In some embodiments, displaying the first virtual object in the second mode includes positioning the first virtual object in the user's field of view (in some embodiments, centering the first virtual object in the user's field of view) so that the entirety of the first virtual object is displayed (e.g., its entirety is visible within the user's field of view). Redisplaying the first sub-portion of the first virtual object upon transitioning to the second display mode provides feedback about the display mode, which provides improved visual feedback. Doing so also helps the user visualize how the entirety of the first virtual object appears within the user's field of view before transitioning back to the first display mode that includes the environment-locked object, which helps the user appropriately position the first virtual object for environment-locking, which enhances the operability of the system and makes the user-system interface more efficient (e.g., by helping the user provide appropriate input and reducing user errors when operating / interacting with the system), thereby reducing power usage and extending the battery life of the system by enabling the user to use the system more quickly and efficiently.
[0174] In some embodiments, the first virtual object is displayed simultaneously with a plurality of virtual objects including a second virtual object (e.g., 702b) and a third virtual object; and the first virtual object, the second virtual object, and the third virtual object have a predetermined spatial relationship relative to each other (e.g., Figures 7B to 7G In some embodiments, the first, second, and third virtual objects have a first predetermined spatial relationship before being shifted in the user's field of view, maintain the first predetermined spatial relationship while the user's field of view shifts, and have the first predetermined relationship after the displacement of the user's field of view has shifted.
[0175] In some embodiments, aspects / operations of methods 800, 900, 1000, and / or 1100 may be interchanged, replaced, and / or added between these methods. For example, the techniques discussed above with respect to the first virtual object of method 800 may be applied to modify the display mode of one or more virtual objects discussed with respect to methods 900, 1000, and / or 1100 or to reposition these virtual objects. For the sake of brevity, these details will not be repeated here.
[0176] Figure 9 is a flow chart of an exemplary method 900 for interacting with virtual objects in an extended reality environment, including virtual objects that assist a user in navigating the environment, according to some embodiments. In some embodiments, the method 900 includes a display generation component (e.g., 700a) (e.g., Figure 1 、 Figure 3 and Figure 4 A computer system (eg, 700 ) (eg, display generation component 120 in FIG. 1 ) (eg, a head-up display, a display, a touch screen, a projector, etc.) Figure 1 In some embodiments, the method 900 is performed by storing in a non-transitory (or transient) computer-readable storage medium and executed by one or more processors of a computer system (such as one or more processors 202 of the computer system 101) (e.g., Figure 1 Some operations in method 900 may be optionally combined, and / or the order of some operations may be optionally changed.
[0177] A computer system (e.g., 700) displays (902) a first virtual object (e.g., 704g or 704h) in a three-dimensional environment (e.g., 703) (e.g., an environment of an extended reality environment, an augmented reality environment, and / or a virtual reality environment) via a display generation component (e.g., 700a) (e.g., as part of an augmented reality user interface), wherein the first virtual object indicates a first element (e.g., 704f3) (e.g., a turn, a point of interest, a location marker) of a route (e.g., 704f) (e.g., a projected route, a recommended route, a route of a navigation application and / or function) to a destination (e.g., a travel destination), and wherein the first virtual object corresponds to a first location (e.g., corresponding to the location of 704f4) in the three-dimensional environment (e.g., a location where a turn is to be performed, a location of a point of interest).
[0178] The computer system displays the first virtual object including: determining that the first position is located in the user's field of view (e.g., Figure 7T704h in ), the computer system displays the first virtual object (904) as an environment-locked object (e.g., as shown in 704h in ), the computer system displays the first virtual ...704h in 704h in 704h in Figures 7T to 7V as seen in the three-dimensional environment) (e.g., locked to a first location and / or a first object in a three-dimensional environment (e.g., a real-world location and / or object in a three-dimensional environment)) (in some embodiments, at least a portion of the first virtual object (e.g., a first end of a connected portion of the first virtual object) is displayed as environment locked).
[0179] The computer system displays the first virtual object including: determining that the first position is not within the user's field of view (e.g., Figure 7S 704g and 704h in the figure) (e.g., outside the user's field of view), the computer system displays the first virtual object (906) as a viewpoint-locked object (e.g., Figure 7S In one embodiment, the first virtual object is displayed as an environment-locked object or a viewpoint-locked object based on whether the corresponding first location is within the user's field of view. The operation of changing the display state of the first virtual object is performed when the required conditions are met, and the operation is performed when a set of conditions are met without further user input. This also provides feedback on whether the first location is within the user's field of view, which provides improved visual feedback.
[0180] In some embodiments, when the first virtual object is displayed, the computer system detects (e.g., via one or more sensors (e.g., accelerometers, optical sensors (e.g., cameras)) a change in the user's field of view from a first field of view (e.g., an initial field of view) to a second field of view different from the first field of view (e.g., a change corresponding to arrow 705n1); and when the first virtual object is displayed and in response to detecting the change in the user's field of view from the first field of view to the second field of view, the computer system: determines that the first virtual object is currently an environment-locked object (e.g., as shown in FIG. 1 ); Figures 7T to 7UIn some embodiments, the first virtual object is positioned relative to the first portion of the three-dimensional environment and / or the first object in the three-dimensional environment (e.g., the first virtual object is currently locked to the first object by the environment); and in ... Figures 7T to 7U In some embodiments, the first virtual object is positioned within the user's field of view (e.g., as in the case of 704g) (e.g., and is not an environment-locked object) (and in accordance with a determination that the first position is a position that is not currently within the second field of view), maintaining the display positioning of the first virtual object within the user's field of view (e.g., even when the user's field of view changes). Maintaining the positioning of the first virtual object in the user's field of view or shifting it in response to changes in the user's field of view provides feedback regarding the current locking state of the first virtual object, which provides improved visual feedback.
[0181] In some embodiments, a computer system (in some embodiments, via one or more sensors (e.g., GPS sensor, WiFi sensor, accelerometer)) detects a first change (e.g., Figures 7S to 7T and Figures 7U to 7V In response to detecting a first change in the distance between the computer system and the first location in the three-dimensional environment: modifying (e.g., changing) the visual appearance of the first virtual object from a first visual appearance (e.g., the appearance the first virtual object had when the distance between the computer system and the first location in the three-dimensional environment is greater than a threshold distance) to a second visual appearance different from the first visual appearance (e.g., as shown). In response to detecting a first change in the distance between the computer system and the first location in the three-dimensional environment: modifying (e.g., changing) the visual appearance of the first virtual object from a first visual appearance (e.g., the appearance the first virtual object had when the distance between the computer system and the first location in the three-dimensional environment is greater than a threshold distance) to a second visual appearance different from the first visual appearance (e.g., as shown). Figure 7V ); based on determining that the first set of one or more criteria are not met, abandoning the modification of the visual appearance of the first virtual object from the first visual appearance to the second visual appearance (e.g., as shown in 704h); Figure 7V704g in (in some embodiments, maintaining the first virtual object with the first visual appearance). Modifying the visual appearance of the first virtual object when a first set of one or more criteria is met is performed without requiring input from the user, which performs an operation without further user input when a set of conditions have been met. Doing so also provides feedback about changes in the distance between the computer system and the first location, which provides improved visual feedback.
[0182] In some embodiments, modifying the visual appearance of the first virtual object from the first visual appearance to the second visual appearance includes modifying the size of the first virtual object from the first size to the second size (e.g., comparing Figure 7U and Figure 7V The method further includes providing a size in 704h (e.g., a size that is larger or smaller than the first size). Changing the size of the first virtual object when a first set of one or more criteria is met performs the change in the size of the first virtual object without requiring input from the user, which performs the operation without further user input when a set of conditions have been met. Doing so also provides feedback regarding the change in the distance between the computer system and the first location, which provides improved visual feedback.
[0183] In some embodiments, modifying the visual appearance of the first virtual object from the first visual appearance to the second visual appearance includes changing a visual characteristic of the first virtual object (e.g., appearance (e.g., color and / or opacity, shading, translucency, and / or transparency level)) from a first value to a second value (e.g., changing the color of the first virtual object from a first color to a second color). Changing the visual characteristic of the first virtual object when a first set of one or more criteria is met is performed without requiring input from a user, which performs an operation without further user input when a set of conditions have been met. Doing so also provides feedback about the change in the distance between the computer system and the first location, which provides improved visual feedback.
[0184] In some embodiments, modifying the visual appearance of the first virtual object from the first visual appearance to the second visual appearance includes modifying the text content of the first virtual object (e.g., Figure 7V704h in) (e.g., adding, removing, and / or changing text included in the first virtual object) (in some embodiments, adding additional text to the existing text of the first virtual object). Modifying the text content of the first virtual object when a first set of one or more criteria is met is performed without requiring input from the user, which performs the operation without further user input when a set of conditions have been met. Doing so also provides feedback about the change in the distance between the computer system and the first location, which provides improved visual feedback.
[0185] In some embodiments, the first change in the distance between the computer system and the first location in the three-dimensional environment decreases the distance between the computer system and the first location in the three-dimensional environment, and wherein the first virtual object has a first visual appearance when the first change in the distance between the computer system and the first location in the three-dimensional environment is detected. In response to detecting the first change in the distance between the computer system and the first location in the three-dimensional environment and based on determining that the first location is not within the user's field of view, the computer system maintains the first visual appearance of the first virtual object (e.g., Figure 7U and Figure 7V In some embodiments, when the first location is not within the user's field of view, the visual appearance of the first virtual object does not change even if the computer system moves closer to the first location. If the first location is not within the user's field of view, maintaining the first visual appearance of the first virtual object as the distance between the computer system and the first location decreases provides feedback that the first location is not in the field of view, which provides improved visual feedback.
[0186] In some embodiments, the computer displays a map virtual object (e.g., 704f) (e.g., a small map or other map representation) via a display generation component and at the same time as displaying the first virtual object, which map virtual object depicts at least a portion of the route to the destination.
[0187] In some embodiments, the map virtual object is a viewpoint-locked object (e.g., Figures 7S to 7Y Displaying map virtual objects as viewpoint-locked assists users by associating map virtual objects with fixed locations within the user's field of view, which helps users interact with the map virtual objects, enhances the operability of the system, and makes the user-system interface more efficient.
[0188] In some embodiments, the map virtual object includes a location virtual object corresponding to the first location. The computer system detects (e.g., via an input device (e.g., a touch-sensitive surface, a gaze detection sensor, a camera, a motion sensor, a hardware button)) a first input (e.g., 707b) corresponding to the location virtual object (e.g., a tap, sustained gaze, an air gesture (e.g., when the location virtual object is selected and / or focused), or a hardware button press (e.g., when the location virtual object is selected and / or focused)); and in response to detecting the first input, the computer system displays (in some embodiments, simultaneously with the first virtual object; in some embodiments, as part of the first virtual object) via a display generation component, the second virtual object (e.g., 704i), the second virtual object including information about the first location (e.g., text and / or graphical information).
[0189] In some embodiments, the first location is within the user's field of view, and the second virtual object is initially locked to the first location by the environment. When displaying the second virtual object locked to the first location by the environment, the computer system detects a change in the user's field of view from the first field of view to the second field of view (e.g., a change indicated by 705n1). In response to detecting a change in the user's field of view: based on determining that a second set of one or more criteria is satisfied, wherein the second set of one or more criteria includes a third criterion being satisfied when a threshold amount of the second virtual object (e.g., a percentage of the area of the second virtual object (e.g., 75%, 80%, 85%, 90%, 95%, or 100%) and / or a distance between an edge of the second virtual object and an edge of the user's field of view (e.g., a nearest edge of the second virtual object does not exceed a predetermined distance from an edge of the FOV (e.g., a length of the first virtual object does not extend beyond the FOV)) will remain (e.g., remain) within the user's field of view when the user's field of view is the second field of view and when the second virtual object remains environment-locked, the computer system continues to display the second virtual object as being environment-locked to the first position; and based on determining that the second set of one or more criteria is not satisfied, the computer system shifts a displayed position of the second virtual object relative to the three-dimensional environment based on the change in the user's field of view so that at least the threshold amount of the second virtual object remains within the user's field of view (e.g., as shown in FIG. 2 ). Figure 7T and 7UIn some embodiments, when the user's field of view is the second field of view, if more than a threshold amount of the area previously occupied by the second virtual object is outside the second field of view (e.g., if the second virtual object remains environment-locked to the first position, then when in the second field of view, more than a threshold amount of the second virtual object is outside the user's field of view), then the second set of one or more criteria is not met. Shifting the positioning of the second virtual object as needed to maintain at least a threshold amount of the second virtual object in the user's field of view so that the second virtual object remains within the user's field of view without user input performs an operation without further user input when a set of conditions have been met.
[0190] In some embodiments, the second virtual object is displayed simultaneously with a connecting virtual object (e.g., 704h1 or 704i1) (e.g., a connecting line, a pushpin, and / or a signpost) having a first end that is locked to a first position by the environment and a second end that is connected to the second virtual object (e.g., connected to 704h or 704i). In some embodiments, shifting the display positioning of the second virtual object relative to the three-dimensional environment based on a change in the user's field of view includes maintaining the first end of the connecting virtual object as locked to the first position by the environment (and, in some embodiments, shifting the positioning of the second end of the connecting virtual object relative to the three-dimensional environment). Maintaining the first end of the connecting virtual object as locked to the environment even when the positioning of the second virtual object shifts relative to the environment helps maintain the connection between the second virtual object and the first position without requiring user input, which performs an operation without further user input when a set of conditions have been met and provides improved visual feedback.
[0191] In some embodiments, the map virtual object has one or more visual characteristics (e.g., the level of transparency and / or translucency of a background portion of the map virtual object; the amount, color, and / or pattern) that reduce (e.g., are selected to reduce) the amount of the three-dimensional environment that is partially and / or completely obscured by the map virtual object (e.g., 704g and / or 704h can be partially transparent). In some embodiments, the map virtual object is capable of being displayed in at least two modes (a first mode and a second mode), in which the map virtual object is displayed with the first virtual object (e.g., when the computer system is actively in navigation, riding, and / or driving mode) and in which the computer system is not actively in navigation, riding, and / or driving mode. In the second mode, the map virtual object partially and / or completely obscures a greater percentage of the three-dimensional environment than in the first mode (e.g., the second mode does not have the same one or more visual characteristics as present in the first mode). Reducing the amount of the three-dimensional environment that is partially and / or completely obscured by map virtual objects provides the user with more perception of the three-dimensional environment, which can improve the user's safety when operating a computer system, enhance the operability of the system and enable the user-system interface to operate more efficiently and safely.
[0192] In some embodiments, when a first virtual object is displayed at a first display location in a user's field of view (in some embodiments, and in the absence of any change in the user's field of view) and based on determining that the first display location satisfies a set of repositioning criteria, the set of repositioning criteria including a fourth criterion that is satisfied when the first display location is not a first predetermined display location (e.g., a location in an upper area of the user's field of view and / or along an upper edge of the user's field of view (in some embodiments, an upper edge of a displayable area of a display generating component)), the computer system shifts the display location of at least a portion of the first virtual object toward the first predetermined display location (e.g., as shown in FIG. 2 ). Figure 7V704h) (in some embodiments, shifted to a first predetermined display location); and in some embodiments, the first virtual object includes a second wired virtual object, the second wired virtual object having a third end that remains environmentally locked to a position (e.g., the first position) and / or object in the three-dimensional environment even if the display location of at least a portion of the first virtual object is shifted. In some embodiments, as the display location of at least a portion of the first virtual object is shifted, the length of the second wired virtual object increases. Based on determining that the first display location does not satisfy the set of repositioning criteria (in some embodiments, the set of repositioning criteria is not satisfied when the first display location is the first predetermined display location), the display of the first virtual object at the first display location is maintained. Shifting the position of at least a portion of the first virtual object toward the first predetermined display location when the set of repositioning criteria is satisfied is performed without requiring user input, which performs the operation without further user input when a set of conditions have been met.
[0193] In some embodiments, the first element of the route is selected from a group consisting of a navigation operation (e.g., 704h) (e.g., a point at which a turn or stop is performed) and points of interest (e.g., 704g) (e.g., the starting point of the route, the end point of the route, a location of interest on or near the route) (in some embodiments, predetermined points of interest and / or points of interest that are not determined by the user (e.g., landmarks, construction sites, or accident locations)).
[0194] In some embodiments, the computer system displays a speed virtual object (e.g., 704c) via a display generation component and while displaying the first virtual object, the speed virtual object includes an indication of a movement speed (e.g., the current movement speed of the computer system and / or a user of the computer system).
[0195] In some embodiments, the speed avatar is viewpoint-locked. Displaying the speed avatar as viewpoint-locked assists the user by associating the speed avatar with a fixed location within the user's field of view, which helps the user interact with the speed avatar, enhances the operability of the system, and makes the user-system interface more efficient.
[0196] In some embodiments, aspects / operations of methods 800, 900, 1000, and / or 1100 may be interchanged, replaced, and / or added between these methods. For example, the navigation virtual object of method 900 may be displayed simultaneously with the set of one or more virtual objects of method 1000, as described below. For the sake of brevity, these details are not repeated here.
[0197] Figure 10is a flow chart of an exemplary method 1000 for interacting with a virtual object in an extended reality environment, the virtual object including an object displayed based on a change in a user's field of view, the method including repositioning the virtual object relative to the environment, according to some embodiments. In some embodiments, the method 1000 includes a display generation component (e.g., 700a) (e.g., Figure 1 、 Figure 3 and Figure 4 A computer system (eg, 700 ) (eg, display generation component 120 in FIG. 1 ) (eg, a head-up display, a display, a touch screen, a projector, etc.) Figure 1 In some embodiments, the method 900 is performed by storing in a non-transitory (or transient) computer-readable storage medium and executed by one or more processors of a computer system (such as one or more processors 202 of the computer system 101) (e.g., Figure 1 Some operations in method 1000 may be optionally combined, and / or the order of some operations may be optionally changed.
[0198] When the field of view of a computer system user (e.g., the viewpoint of the computer system user (e.g., determined by the computer system) and / or the field of view of a first camera in communication with the computer system and / or integrated into the computer system presented to the user) (in some embodiments, the area within the user's full field of view in which the computer system may display one or more virtual objects) is a first field of view (e.g., FOV in FIG. 7J ) and the user's field of view includes a representation of a physical environment (e.g., 703) (e.g., a representation and / or view of the real world and / or a three-dimensional environment (e.g., an environment of an extended reality environment, an augmented reality environment, and / or a virtual reality environment)) (in some embodiments, this representation of the physical environment is generated by the computer system (e.g., as a pass-through representation) (in some embodiments, the physical environment In some embodiments, the representation of the physical environment is a portion of the real world seen by the user through the transparent portion and / or display generating component of the computer system, the representation of the physical environment includes a first position within the physical environment, the computer system (e.g., 700) detects (1002) a change in orientation of the user's field of view from the first field of view to a second field of view different from the first field of view (e.g., a change corresponding to 705h1), the second field of view also including the first position within the physical environment (e.g., a different position in the user's field of view due to the change in orientation) (in some embodiments, the change in orientation is a tilt (e.g., relative to the original orientation and / or relative to the horizon and / or the surface of the earth) greater than 15 degrees, 30 degrees, 45 degrees, or 50 degrees) (in some embodiments, the change in orientation is in a downward or upward direction).
[0199] In response to detecting a change in orientation of the user's field of view from a first field of view to a second field of view (in some embodiments, and based on determining that the change in orientation and / or the second field of view satisfies a first set of orientation criteria (in some embodiments, including criteria that are satisfied when the change in orientation is a downward tilt greater than a predetermined amount (e.g., greater than 30 degrees, 40 degrees, or 45 degrees)), the computer system displays (1004) (e.g., initially displays) via a display generation component a set of one or more virtual objects (e.g., 704b-704d) having corresponding spatial orientations relative to at least a first portion of the user's body (e.g., the torso of user 701) (e.g., the set of one or more virtual objects are physically locked to a portion of the user's body (e.g., locked to the user's torso, hand, or shoulder) (e.g., user interface elements) (in some embodiments, one or more user-interactive virtual objects).
[0200] After displaying the set of one or more virtual objects in the respective spatial orientations relative to at least the first portion of the user's body, the computer system ceases (1006) displaying the set of one or more virtual objects (e.g., in response to a change in the orientation of the user's field of view away from the second orientation) (e.g., as Figure 7O (as seen in ).
[0201] After ceasing to display the set of one or more virtual objects, the computer system detects ( 1008 ) movement of the user in the physical environment (eg, as indicated by 705m1 ).
[0202] After detecting movement of the user in the physical environment, the computer system detects (1010) an orientation of the user's field of view to a second orientation (e.g., Figure 7P orientation) (e.g., from the first field of view or another orientation different from the second orientation) (in some embodiments, the second orientation is a downward tilt of the user's field of view).
[0203] In response to detecting a change in the orientation of the user's field of view to a second orientation, the computer system displays (1012) (e.g., redisplays) the set of one or more virtual objects (e.g., as the user's body) in a corresponding spatial orientation relative to at least the first portion of the user's body via the display generation component. Figure 7Pand displaying the set of one or more virtual objects in a manner that is consistent with the user's field of view (e.g., a user interface element) (in some embodiments, one or more user-interactive virtual objects). Displaying the set of one or more virtual objects in respective spatial orientations relative to at least a first portion of the user's body assists the user by associating the set of one or more virtual objects with respective spatial orientations, which assists the user in interacting with the set of one or more virtual objects, enhances the operability of the system, and makes the user-system interface more efficient. Displaying the set of one or more virtual objects in response to a change in the user's field of view performs a display action without requiring user input, which performs an action without requiring further user input when a set of conditions have been met.
[0204] In some embodiments, the set of one or more virtual objects includes corresponding to system controls (e.g., Figures 7P to 7Q As seen, in one embodiment, 706 is a first virtual object (in some embodiments, the first virtual object is a selectable virtual object that, when selected, causes the operating system of the computer system to perform a function) (e.g., a control associated with the system (e.g., the operating system of the computer system); not a control generated by an application (e.g., a third-party application) function).
[0205] In some embodiments, the set of one or more virtual objects is displayed at a first location in the user's field of view that corresponds to a first location within the physical environment (e.g., Figure 7K Displaying the set of one or more virtual objects at the first location corresponding to the first location within the physical environment in the user's field of view in response to the change in field of view from the first field of view to the second field of view allows the first location to be unobstructed by the set of one or more objects when the field of view is the first field of view without requiring user input to remove the first set of virtual objects, which performs the operation without requiring further user input when a set of conditions have been met.
[0206] In some embodiments, the first part of the user's body is the torso of the user of the computer system (e.g., the torso of user 701). In some embodiments, the computer system is an HMD, and the computer system (e.g., via one or more sensors) detects and / or extrapolates the position of the user's torso (e.g., relative to the position of the computer system / HMD), and displays the set of one or more virtual objects based on the position of the user's torso (e.g., relative to the computer system / HMD). Displaying the set of one or more virtual objects with corresponding spatial orientations relative to the user's torso assists the user by associating the set of one or more virtual objects with corresponding spatial orientations, which assists the user in interacting with the set of one or more virtual objects, enhances the operability of the system, and makes the user-system interface more efficient.
[0207] In some embodiments, when displayed, the first set of virtual objects are displayed at positions and / or locations in the field of view that are determined (in some embodiments, based on sensor data; in some embodiments, based on an estimate or extrapolation based on the positioning of another part of the user (e.g., the head)) to correspond to a position in the physical environment that is a first predetermined distance (e.g., 0.5 feet, 1 foot, or 2 feet) from a first part of the body of the user of the computer system. Figure 7KIn some embodiments, the first set of virtual objects is body-locked at a predetermined distance from a second part of the user. In some embodiments, when displaying the first set of virtual objects, the computer system detects a positional shift (e.g., rotation and / or displacement in space (e.g., in x, y, and / or z directions)) of a first part of the user's body (e.g., relative to a position of the computer system); in response to detecting the shift: the computer system shifts (e.g., dynamically shifts) the displayed position of the first set of virtual objects based on the detected shift in the position of the first part of the user's body. In some embodiments, when a first group of virtual objects is displayed at a first position relative to a first part of a user's body, displaying the first group of virtual objects is stopped (e.g., movement of the computer system causes the first position to fall outside the user's field of view); after displaying the first group of one or more virtual objects is stopped, a request is received to redisplay the first group of virtual objects (e.g., movement of the computer system causes the first position to fall within the user's field of view); and in response to receiving the request, the first group of virtual objects is redisplayed at the first position relative to the first part of the user's body (e.g., including when the first part of the user's body is displaced in space and the first group of virtual objects is not displayed). In some embodiments, when a first group of virtual objects is displayed at a corresponding distance from a first part of a body of a user of a computer system (e.g., a distance based on a detected and / or extrapolated position of the first part of the user's body); when the first part of the user's body is in a first position in space, detecting that the position of the first part of the user's body (e.g., relative to the position of the computer system) is shifted away from the first position in space (e.g., rotated and / or shifted in space (e.g., in the x, y and / or z directions)); in response to detecting that the position of the first part of the user's body is shifted away from the first position in space: based on determining that the first part of the user's body is in a second position in space, displaying the first group of virtual objects at a corresponding distance from the first part of the user's body; and based on determining that the first part of the user's body is in a third position in space that is different from the second position, displaying the first group of virtual objects at a corresponding distance from the first part of the user's body. Displaying the group of one or more virtual objects at a predetermined distance from a first part of the user's body assists the user by associating the group of one or more virtual objects with corresponding distances to the user's body, which assists the user in interacting with the group of one or more virtual objects, enhances the operability of the system and makes the user-system interface more efficient.
[0208] In some embodiments, when displayed in response to detecting a change in orientation of the user's field of view from the first field of view to the second field of view, the first group of one or more virtual objects are displayed at a second position in the user's field of view corresponding to a second position in the physical environment and having a corresponding spatial orientation relative to a first part of the user's body (in some embodiments, and at a second predetermined distance (e.g., 0.1, 0.25, 0.5 feet, 1 foot, or 2, 3, 5, 10 feet) from the first part of the user's body). When displayed in response to detecting movement of the user in the physical environment, the first group of one or more virtual objects are displayed at a third position in the user's field of view corresponding to a third position in the physical environment different from the second position and having a corresponding spatial orientation relative to the first part of the user's body (e.g., Figure 7K The display positioning of 704b-704d relative to the physical environment Figure 7P In some embodiments, the first set of one or more virtual objects is displayed at different locations relative to the physical environment as the user moves, but is displayed with the same corresponding orientation and / or at the same distance from the user's body. Resetting the positioning of the first set of one or more virtual objects relative to the physical environment upon redisplay while maintaining the corresponding spatial orientation relative to the first part of the user's body assists the user by associating the set of one or more virtual objects with the corresponding orientation relative to the user's body, which assists the user in interacting with the set of one or more virtual objects, enhancing the operability of the system and making the user-system interface more efficient.
[0209] In some embodiments, when the user's field of view is directed to the second field of view and when the group of one or more virtual objects is displayed, the computer system detects a change in the orientation of the user's field of view from the second field of view to the third field of view (e.g., a change indicated by 705i1) (in some embodiments, the change in orientation is a turn to the left or to the right). In response to detecting a change in the orientation of the user's field of view from the second field of view to the third field of view, the computer system displays the second group of one or more virtual objects (e.g., 704e) via the display generation component while maintaining the display of at least the second virtual object in the first group of one or more virtual objects. In some embodiments, the second group of virtual objects includes one or more of the attributes and / or characteristics discussed herein relative to the first group of one or more virtual objects. In some embodiments, the first group of one or more virtual objects and the second group of one or more virtual objects are both part of a superset of virtual objects having shared characteristics that are not all displayed together at any given time.
[0210] In some embodiments, when the first set of one or more virtual objects is displayed at a third location in the user's field of view that corresponds to a third location in the physical environment, a change in the orientation of the first part of the user's body that causes the change to the user's field of view to a fourth field of view (e.g., a change indicated by 705m1) is detected (e.g., a rotation of the user's torso). In response to detecting the change in the orientation of the first part of the user's body that causes the change to the user's field of view to the fourth field of view: the computer system displays the first set of one or more virtual objects at a fourth location in the user's field of view that is different from the third location and corresponds to the third location in the physical environment (e.g., rotating the user's torso). Figure 7K The display positioning of 704b-704d relative to the physical environment and Figure 7P In some embodiments, the first set of virtual objects is context-locked while the first set of virtual objects remains displayed. In some embodiments, when the first set of one or more virtual objects are initially displayed with respective spatial orientations relative to at least a first portion of the user's body, movement of the user's body while the first set of virtual objects remains displayed may cause the first set of one or more virtual objects to no longer have respective spatial orientations relative to at least the first portion of the user's body.
[0211] In some embodiments, when the first set of one or more virtual objects is displayed at a fourth location in the user's field of view, a first virtual object in the one or more virtual objects does not have a corresponding spatial orientation relative to at least a first portion of the user's body (e.g., Figure 7L In some embodiments, the first set of one or more virtual objects is displayed at a fourth position in the user's field of view (e.g., Figure 7K After the first set of one or more virtual objects are displayed, the computer system stops displaying the first set of one or more virtual objects. When the first set of one or more virtual objects are not displayed, the computer system detects a change in the user's field of view to a fifth field of view. In response to detecting the change in the user's field of view to the fifth field of view, the computer system displays the set of one or more virtual objects in a corresponding spatial orientation relative to at least the first portion of the user's body and at a fifth location in the user's field of view that does not correspond to the third location in the physical environment (e.g., Figure 7K The display positioning of 704b-704d relative to the physical environment Figure 7PResetting the positioning of the first set of one or more virtual objects so that they are displayed in a corresponding spatial orientation relative to at least a first portion of the user's body when redisplayed assists the user by associating the set of one or more virtual objects with a corresponding orientation relative to the user's body, which assists the user in interacting with the set of one or more virtual objects, enhances the operability of the system, and makes the user-system interface more efficient.
[0212] In some embodiments, when the first set of one or more virtual objects includes (in some embodiments, consists of) a first set of control virtual objects (e.g., virtual objects that, when selected, cause the computer system to perform one or more functions; a set of control virtual objects that does not include corresponding controls), the computer system detects (e.g., via one or more input devices) a request to customize the first set of one or more virtual objects (e.g., as described in reference to FIG. Figure 7R Discussion). In response to detecting a request to customize the first group of one or more virtual objects, the computer system customizes the first group of one or more virtual objects by updating the first group of one or more virtual objects to include a second group of control virtual objects (e.g., a second group of control virtual objects that includes corresponding controls (e.g., replacing the control virtual objects in the first group of one control virtual objects with corresponding controls)), wherein the second group of control virtual objects is different from the first group of control virtual objects (in some embodiments, the first and second groups of control virtual objects have one or more control virtual objects in common). In some embodiments, one or more of the appearance, content, and / or functionality of the first group of one or more virtual objects is user-customizable. In some embodiments, the computer system provides a process and / or user interface for customizing one or more aspects of the first group of one or more virtual objects.
[0213] In some embodiments, the composition of the first set of control virtual objects (e.g., which control virtual objects are included or excluded from the set) is user-customizable, and wherein the relative positioning of the control virtual objects in the first set of control virtual objects is not user-customizable (e.g., as described in reference to FIG. Figure 7R Discussion) (eg, the relative positioning of the virtual objects in the set of one or more virtual objects is predetermined).
[0214] In some embodiments, the first set of one or more virtual objects are oriented substantially perpendicular to the line of sight (e.g., viewing direction, viewpoint, and / or viewing angle) of a user of the computer system (e.g., as shown in FIG. Figure 7KIn some embodiments, when the first group of one or more virtual objects is positioned in a lower portion of the user's field of view and at a distance in front of the user in the physical environment, the first group of one or more virtual objects is tilted / oriented at an upward angle such that the first group of one or more virtual objects are oriented to improve viewability from the user's perspective. Orienting the first group of one or more virtual objects substantially perpendicular to the direction of sight of the user of the computer system improves visibility of the first group of one or more virtual objects, which enhances the operability of the system and makes the user-system interface more efficient (e.g., by helping the user provide correct input and reducing user errors in operating / interacting with the system), which in turn reduces power usage and extends the battery life of the system by enabling the user to use the system more quickly and efficiently.
[0215] In some embodiments, when displaying a first group of one or more virtual objects, the computer system detects a first input (e.g., 707a) corresponding to a third virtual object in the first group of one or more virtual objects (e.g., a tap on a touch-sensitive surface, sustained gaze, an air gesture (e.g., when the third virtual object is selected and / or focused), or a hardware button press (e.g., when the third virtual object is selected and / or focused)). In response to detecting the first input, the computer system performs a first operation (e.g., displaying 706) (e.g., selecting the third virtual object and / or performing a function associated with the third virtual object). In some embodiments, the method also includes: detecting a second input directed to the first group of one or more virtual objects; in response to detecting the second input: performing a second operation based on determining that the second input points to a fourth virtual object in the first group of one or more virtual objects (e.g., via the location of gaze and / or input; when the fourth virtual object is focused); and performing a third operation different from the first operation based on determining that the second input points to a fifth virtual object different from the fourth virtual object.
[0216] In some embodiments, the first set of one or more virtual objects includes a fourth virtual object (e.g., 704b). When the first set of one or more virtual objects is displayed and when the fourth virtual object is locked to the environment, the computer system detects a change in the user's field of view to a sixth field of view (e.g., as indicated by 705i1). In response to detecting the change in the user's field of view to the sixth field of view and based on determining that the first set of criteria is met, the computer system reduces the displayed size of the fourth virtual object (e.g., Figure 7L704b in (in some embodiments, while maintaining the entirety of the fourth virtual object within the user's field of view), wherein the first set of criteria includes criteria that are met when a change in the user's field of view to the sixth field of view would cause at least a threshold amount (e.g., any amount, 1%, 5%, or 10%) of the fourth virtual object to fall outside the sixth field of view (e.g., the change in the user's field of view causes the position to which the fourth virtual object is locked to the environment to move at least partially outside the sixth field of view). In some embodiments, in response to detecting a change in the user's field of view to the sixth field of view and based on a determination that the first set of criteria is not met, reducing the display size of the fourth virtual object is abandoned (in some embodiments, the display size of the fourth virtual object is reduced by an amount that is less than the amount that would have been reduced if the first set of criteria were met). Reducing the size of the fourth virtual object when the first set of criteria is met helps avoid moving the fourth virtual object (or portion thereof) outside the user's field of view without requiring user input to do so, which performs the operation without further user input when a set of conditions have been met.
[0217] In some embodiments, in response to detecting a change in the user's field of view from a first field of view to a second field of view, displaying a first set of one or more virtual objects in corresponding spatial orientations relative to at least a first portion of the user's body includes: displaying the first set of one or more virtual objects at a first height relative to the height of the user's viewpoint in the physical environment (e.g., Figure 7K In some embodiments, the computer system receives a first set of one or more inputs, including an input for setting a value for the first height (e.g., 705f) (e.g., a hardware button press when the height of the first set of one or more virtual objects is positioned at a target height) before displaying the first set of one or more virtual objects in response to detecting a change in the user's field of view from the first field of view to the second field of view. In some embodiments, the user may provide a set of inputs to set / establish the height at which the first set of one or more virtual objects will be displayed.
[0218] In some embodiments, when a first set of virtual objects is displayed at a first height relative to the height of a user's viewpoint in the physical environment and at a second height relative to the physical environment (e.g., the user's viewpoint is 6 feet above ground level, the first height is 2 feet below the user's viewpoint, and the second height is 4 feet above ground level), the computer system detects a change in the height of the user's viewpoint in the physical environment (e.g., the change indicated by 705e1) (e.g., the user's head moves up or down in the physical environment). In response to detecting the change in the height of the user's viewpoint in the physical environment, the computer system changes the height at which the first set of virtual objects is displayed in the physical environment to a third height that is different from the second height, wherein the change in the height at which the first set of virtual objects is displayed in the physical environment to the third height causes the first set of one or more virtual objects to be displayed at the first height relative to the height of the user's viewpoint in the physical environment (e.g., compared to the height at Figure 7H and Figure 7I The height at which the group of one or more virtual objects are displayed relative to the physical environment is adjusted as the height of the user's head changes relative to the height of the physical environment (e.g., if the user's head moves down one foot to be displayed at 5 feet above ground level, the first group of one or more virtual objects will also move down one foot to be displayed at 3 feet above ground level). Adjusting the height at which the group of one or more virtual objects are displayed relative to the physical environment as the height of the user's head changes relative to the height of the physical environment helps the user maintain the relative height of the first group of one or more virtual objects at the height of the user's head and associates the group of one or more virtual objects with the relative height, which helps the user interact with the group of one or more virtual objects, enhances the operability of the system, and makes the user-system interface more efficient.
[0219] In some embodiments, displaying a first set of one or more virtual objects in corresponding spatial orientations relative to at least a first portion of the user's body in response to detecting a change in the user's field of view from a first field of view to a second field of view includes: determining that a user of the computer system is performing a first type of activity (e.g., Figure 7H ) (e.g., running, walking, or cycling), the first set of one or more virtual objects includes a first set of content (e.g., Figure 7H and determining that a user of the computer system is performing a second type of activity different from the first type of activity (e.g., Figure 7R The first set of one or more virtual objects includes a second set of content (e.g., content of the first set of one or more virtual objects is selected based on the user's current activity) that is different from the first set of content (e.g., content of the first set of one or more virtual objects is selected based on the user's current activity). Figure 7RThe second activity includes content in the first set of one or more virtual objects (e.g., when the second activity is walking, the content includes steps per minute and / or mile pace; when the second activity is cycling, the content includes changes in altitude, tire pressure values, and / or degrees of ascent or descent). Differential content within the first set of one or more virtual objects is displayed based on the type of activity the user is performing. The content is customized without requiring user input, which performs an operation without further user input when a set of conditions have been met.
[0220] In some embodiments, aspects / operations of methods 800, 900, 1000, and / or 1100 may be interchanged, replaced, and / or added between these methods. For example, the set of virtual objects of method 1000 may be displayed in conjunction with the first virtual object of method 800. For the sake of brevity, these details are not repeated here.
[0221] Figure 11 is a flow chart of an exemplary method 1100 for interacting with a virtual object in an extended reality environment, including providing virtual objects with different perspectives on the environment, according to some embodiments. In some embodiments, the method 1100 is performed on a wearable computer system (e.g., computer system (e.g., 700)) (e.g., Figure 1 101 in the computer system 100), the wearable computer system includes a display generating component (eg, 700a) (eg, Figure 1 、 Figure 3 and Figure 4 In some embodiments, the method 1100 is performed by storing in a non-transitory (or transient) computer-readable storage medium and executed by one or more processors of a computer system, such as one or more processors 202 of the computer system 101 (e.g., Figure 1 Some operations in method 900 may be optionally combined, and / or the order of some operations may be optionally changed.
[0222] When the user is wearing the wearable computer system (in some embodiments, the computer system detects and / or determines that the user is wearing the computer system) and the user has a plurality of user-defined parameters including those from a first perspective (e.g., Figure 7KA first representation of a physical environment at a user's location (e.g., a representation and / or view of the real world and / or a three-dimensional environment (e.g., an extended reality environment, an augmented reality environment, and / or a virtual reality environment) in the vicinity of the user, as seen from the user's perspective) (e.g., the user's perspective shown in 703) (in some embodiments, this representation of the physical environment is generated by the computer system (e.g., as a see-through representation) (in some embodiments, this representation of the physical environment is a portion of the real world seen by the user through transparent portions and / or display generation components of the computer system)) When a second camera (determined by the computer system) and / or in communication with and / or integrated into the computer system is presented to the user (in some embodiments, an area within the user's complete viewpoint in which the computer system may display one or more virtual objects), the wearable computer system (e.g., 700) displays (1102) via the display generation component a first virtual object (e.g., 704d), the first virtual object comprising a representation of a portion (in some embodiments, the entire) of the field of view of the first camera, wherein the representation of the portion of the field of view of the first camera comprises a second representation of the physical environment at the user's location as seen from a second perspective different from the first perspective (e.g., as Figure 7K ). In some embodiments, the second perspective has an orientation (e.g., a facing direction) that is different from the orientation of the first perspective (e.g., the first perspective faces forward relative to the user and the second perspective faces backward). In some embodiments, the first and second perspectives are from viewpoints at approximately the same location (e.g., less than a certain distance from each other (e.g., the first camera is positioned within 10 feet, 5 feet, or 3 feet of the user). Displaying a representation of the physical environment at the user's location as seen from a second perspective that is different from the first perspective provides the user with more awareness of the physical environment at the user's location, which can improve safety when operating the wearable computer system, which improves the user's safety and enhances the operability of the system. Doing so also provides improved visual feedback about what is within the field of view of the first camera.
[0223] In some embodiments, the first field of view is oriented in a first direction (e.g., in front of the user 701) (e.g., forward relative to the user), and wherein the field of view of the first camera is oriented in a second direction (e.g., behind the user 701) (e.g., backward relative to the user) that is different from the first direction (e.g., a different direction in the horizontal and / or vertical plane). In some embodiments, the second direction differs from the first direction by at least 45°, 90°, 135°, 180° (e.g., the user's field of view is directed in front of the user and the field of view of the first camera is directed behind the user). Displaying a representation of the physical environment at the user's location as seen from a second perspective oriented in a direction different from the first perspective provides the user with more awareness of the physical environment at the user's location, which can improve safety when operating the wearable computer system, which improves the user's safety and enhances the operability of the system. Doing so also provides improved visual feedback about what is within the field of view of the first camera.
[0224] In some embodiments, the second perspective is from a perspective in the primary direction of motion of the first vehicle (e.g., a vehicle occupied and / or operated by a user of the computer system), and the second direction is behind the primary direction of motion of the first vehicle (e.g., as shown in FIG. Figure 7K Discussion) (e.g., the first camera provides a rear view of the first vehicle). In some embodiments, the user's field of view is oriented toward the front of the first vehicle so that the first direction and the second direction are substantially 180° apart. Displaying a representation of the physical environment at the user's location as seen from the second perspective facing rearward relative to the first vehicle provides the user with more awareness of the physical environment at the user's and vehicle's locations, which can improve safety when operating the wearable computer system and / or the first vehicle, which improves the user's safety and enhances the operability of the system. Doing so also provides improved visual feedback about what is within the field of view of the first camera.
[0225] In some embodiments, the second perspective is substantially at or near the same location in the physical environment as the first perspective (e.g., as shown in FIG. Figure 7K Discussion) (e.g., the first and second viewing angles are within 0.1, 0.2, 0.5 feet, 1 foot, 2 feet, 5 feet, or 10 feet of each other).
[0226] In some embodiments, the set of one or more cameras includes a second camera (e.g., 404). In some embodiments, when a user is wearing the wearable computer system and the user has a second field of view (e.g., the same or different field of view as the first field of view) that includes a third representation of the physical environment at the user's location as seen from a third perspective (e.g., the same or different user perspective as the first perspective), the wearable computer system displays (1104) via the display generation component a second virtual object (e.g., 704e) that includes a representation of a portion (in some embodiments, all) of the field of view of the second camera, wherein the representation of the portion of the field of view of the second camera includes a fourth representation of the physical environment at the user's location as seen from a fourth perspective that is different from the third perspective. Displaying the third representation of the physical environment at the user's location as seen from the fourth perspective that is different from the first perspective provides the user with greater awareness of the physical environment at the user's location, which can improve safety when operating the wearable computer system, thereby improving user safety and enhancing system operability. Doing so also provides improved visual feedback about what is within the field of view of the second camera.
[0227] In some embodiments, the second virtual object is associated with the first virtual object (e.g., Figure 7L 704d and 704e in the figure are displayed simultaneously. Simultaneously displaying the first virtual object and the second virtual object provides the user with multiple additional perspectives of the physical environment at the user's location, providing the user with a greater awareness of the physical environment at the user's location, which can improve safety when operating the wearable computer system, thereby improving user safety and enhancing the operability of the system. Doing so also provides improved visual feedback regarding what is within the field of view of the first and second cameras.
[0228] In some embodiments, the second virtual object is displayed after the first virtual object is stopped from being displayed. In some embodiments, the first virtual object is stopped from being displayed in response to a first change in the user's field of view, and the second virtual object is displayed in response to the first change in the user's field of view.
[0229] In some embodiments, before displaying the first virtual object and when the user has a third field of view that is different from the first field of view, the wearable computer system detects a change in the orientation of the user's field of view from the third field of view to the first field of view (e.g., corresponding to a change in 705h1) (e.g., detecting that the user has tilted the user's field of view downward to the first field of view), wherein displaying the first virtual object is responsive to detecting the change in the orientation of the user's field of view from the third field of view to the first field of view (e.g., corresponding to 705h1). Figure 7K 704d) in the.
[0230] In some embodiments, the set of one or more cameras includes a third camera (e.g., 404). While displaying the first virtual object, the wearable computer system detects (1106) a change in the orientation of the user's field of view from the first field of view to a fourth field of view that is different from the first field of view (e.g., indicated by 705i1). In response to detecting the change in the orientation of the user's field of view from the first field of view to the fourth field of view, the wearable computer system displays (1108) via the display generation component a third virtual object (e.g., 704e) that includes a representation of a portion (in some embodiments, all) of the field of view of the third camera, wherein the representation of the portion of the field of view of the third camera includes a fifth representation of the physical environment at the user's location as seen from a fifth perspective that is different from the second perspective (e.g., the perspective of the first camera) (in some embodiments, different from the perspective of the fourth field of view). In some embodiments, the first virtual object is displayed simultaneously with the third virtual object. In some embodiments, display of the first virtual object ceases in response to detecting the change in the orientation of the user's field of view from the first field of view to the fourth field of view. Displaying a fifth representation of the physical environment at the user's location, as seen from a fifth perspective different from the first perspective, provides the user with greater awareness of the physical environment at the user's location, which may improve safety when operating the wearable computer system, thereby improving user safety and enhancing the operability of the system. Doing so also provides improved visual feedback regarding what is within the field of view of the third camera.
[0231] In some embodiments, the wearable computer system displays a fourth virtual object (e.g., 704c) that includes the first content simultaneously with the first virtual object. While displaying the first and fourth virtual objects, the wearable computer system detects a change in the orientation of the user's field of view from the first field of view to a fifth field of view that is different from the first field of view (e.g., indicated by 705i1). In response to detecting the change in the orientation of the user's field of view from the first field of view to the fifth field of view: the wearable computer system displays a positional shift of the first virtual object within the user's field of view (e.g., displaying the first virtual object in a different portion of the first field of view than where the first virtual object is displayed in the fifth field of view); and the wearable computer system displays a positional shift of the fifth virtual object within the user's field of view (e.g., displaying the first virtual object in a different portion of the first field of view than where the first virtual object is displayed in the fifth field of view); Figure 7KIn some embodiments, the first virtual object and the fifth virtual object are displayed with a predetermined spatial relationship that is maintained as the first and fifth virtual objects are shifted. Displaying the fourth virtual object with a shifted position along with the shift in the positioning of the first virtual object helps the user associate the fourth and first virtual objects, even if the positioning of the two virtual objects shifts in the user's field of view based on changes in the orientation of the user's field of view, which helps the user interact with the group of one or more virtual objects, enhances the operability of the system, and makes the user-system interface more efficient.
[0232] In some embodiments, the first content includes map content (e.g., as referenced in Figure 7H Discussion) (e.g., map information about navigation routes and / or the physical environment at the user's location, such as roads, buildings, parks, traffic information, and / or other map information). Providing map content that shifts along with a representation of the physical environment at the user's location as seen from a second perspective that is different from the first perspective provides the user with additional information to guide the user through the physical environment when operating the wearable computer system, which can improve safety when operating the wearable computer system, thereby improving user safety and enhancing the operability of the system. Doing so also provides improved visual feedback about the physical environment at the user's location.
[0233] In some embodiments, the first content includes information related to traveling to a destination (e.g., as referenced in Figure 7H The invention provides content (e.g., information such as directions to a turn, distance to a turn, name of a street at a turn) corresponding to elements (e.g., turns, points of interest, or location markers) of a route (e.g., a projected route, a recommended route, a route for a navigation application and / or function) to a destination (e.g., a travel destination). Providing content corresponding to elements of the route to the destination, the content shifting along with a representation of the physical environment at the user's location as seen from a second perspective different from the first perspective, provides the user with additional information to guide the user in the physical environment when operating the wearable computer system, which can improve safety when operating the wearable computer system, thereby improving user safety and enhancing the operability of the system. This also provides improved visual feedback about the route.
[0234] In some embodiments, the first content includes an indication of movement speed (e.g., as seen in 704c) (e.g., the current movement speed of the computer system and / or the user of the computer system). Providing an indication of movement speed that shifts along with a representation of the physical environment at the user's location as seen from a second perspective different from the first perspective provides the user with additional information as the user moves through the physical environment, which can improve safety when operating the wearable computer system, thereby improving user safety and enhancing the operability of the system. Doing so also provides improved visual feedback about the user's movement.
[0235] In some embodiments, the first virtual object is displayed at a first height relative to the height of the user's viewpoint in the physical environment (e.g., Figure 7H The wearable computer system receives a set of one or more inputs corresponding to a request to configure the computer system to display (e.g., when subsequently displaying) the first virtual object at a second height relative to the height of the user's viewpoint in the physical environment that is different from the first height (e.g., corresponding to movement 705e1 and input 705f) (e.g., when displaying the first virtual object). In response to the set of one or more inputs, the wearable computer system configures the computer system to display (e.g., when subsequently displaying) the first virtual object at a second height relative to the height of the user's viewpoint in the physical environment that is different from the first height. Figure 7I After configuring the computer system to display the first virtual object at a second height relative to the height of the user's viewpoint in the physical environment, the wearable computer system displays the first virtual object at the second height relative to the height of the user's viewpoint in the physical environment (e.g., as shown in FIG. 705 ). Figure 7K After configuring the computer system to display the first virtual object at a second height relative to the height of the user's viewpoint in the physical environment, displaying the first virtual object at the second height relative to the height of the user's viewpoint in the physical environment reduces the number of inputs required to position the virtual object at a target / desired height as the height of the user's viewpoint in the physical environment changes. Doing so also automatically positions the first virtual object in an area of the user interface that is easily accessible to the user, thereby improving the user's ability to interact with the first virtual object, which enhances the operability of the device and makes the user-device interface more efficient (e.g., by helping the user provide correct input and reducing user errors when operating / interacting with the device), which in turn reduces power usage and extends the battery life of the device by enabling the user to use the device more quickly and efficiently.
[0236] In some embodiments, before displaying the first virtual object at a second height relative to the height of the user's viewpoint in the physical environment and when the user has a sixth field of view, the wearable computer system detects a change in the orientation of the user's field of view from the sixth field of view to a seventh field of view that is different from the sixth field of view (e.g., as indicated by 705h1), wherein displaying the first virtual object at the second height relative to the height of the user's viewpoint in the physical environment occurs in response to detecting the change in the orientation of the user's field of view from the sixth field of view to the seventh field of view (e.g., as indicated by 705h1). Figure 7K In some embodiments, after a user configures the computer system to display the first virtual object at a target height (e.g., at the user's waist level), the user shifts his or her field of view from looking straight ahead to looking down toward the target height (e.g., toward the user's waist level); based on the change in field of view and the user's waist level entering the user's field of view, the first virtual object is displayed at the target height (e.g., two feet away from the user and at the user's waist level) at a predetermined distance from the user.
[0237] In some embodiments, the first virtual object is the virtual object described above with respect to method 1000 and Figures 7H to 7R A virtual object in the discussed first set of one or more virtual objects and exhibiting one or more of the characteristics and / or behaviors discussed with respect to the first set of one or more virtual objects.
[0238] In some embodiments, the first virtual object of method 1100 is displayed simultaneously with a first virtual object indicating a first element of a route to a destination, as described above with respect to methods 900 and Figures 7S to 7Y Discussed.
[0239] For purposes of explanation, the foregoing description has been described with reference to specific embodiments. However, the illustrative discussion above is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Numerous modifications and variations are possible in light of the above teachings. The embodiments have been chosen and described in order to best illustrate the principles of the invention and its practical application so as to enable others skilled in the art to best utilize the invention and the various described embodiments with various modifications suitable for the particular application contemplated.
[0240] As described above, one aspect of the present technology is to collect and use data available from various sources to improve interactions with virtual objects in an extended reality environment. The present disclosure contemplates that, in some instances, these collected data may include personal information data that uniquely identifies or can be used to contact or locate a specific person. Such personal information data may include demographic data, location-based data, phone numbers, email addresses, Twitter IDs, home addresses, data or records related to the user's health or fitness level (e.g., vital sign measurements, medication information, exercise information), date of birth, or any other identification or personal information.
[0241] This disclosure recognizes that the use of such personal information data within the present technology can be used to benefit users. For example, personal information data can be used to improve interactions with virtual objects in an extended reality environment. Furthermore, this disclosure contemplates other uses of personal information data that can benefit users. For example, health and fitness data can be used to provide insights into a user's overall health or as positive feedback to individuals using technology to pursue health goals.
[0242] This disclosure anticipates that entities responsible for the collection, analysis, disclosure, transmission, storage, or other use of such personal information data will adhere to robust privacy policies and / or privacy practices. Specifically, such entities should implement and adhere to privacy policies and practices that are recognized as meeting or exceeding industry or government requirements for maintaining the privacy and security of personal information data. Such policies should be easily accessible to users and updated as changes occur in the collection and / or use of data. Personal information from users should be collected for legitimate and reasonable entity purposes and should not be shared or sold outside of those legitimate purposes. Furthermore, such collection / sharing should be conducted only after receiving the user's informed consent. Additionally, such entities should consider taking any necessary steps to protect and safeguard access to such personal information data and ensure that other entities with access to personal information data comply with the other entity's privacy policies and procedures. Furthermore, such entities may subject themselves to third-party assessments to demonstrate compliance with widely accepted privacy policies and practices. Furthermore, policies and practices should be tailored to the specific type of personal information data collected and / or accessed, and to applicable laws and standards, including considerations of the specific jurisdiction. For example, in the United States, the collection or access of certain health data may be governed by federal and / or state laws, such as the Health Insurance Portability and Accountability Act (HIPAA); whereas health data in other countries may be subject to other regulations and policies and should be handled accordingly. Therefore, different privacy measures should be advocated for different types of personal data in each country.
[0243] Notwithstanding the foregoing, the present disclosure also contemplates implementation scenarios in which users selectively block the use or access of personal information data. That is, the present disclosure contemplates providing hardware elements and / or software elements to prevent or block access to such personal information data. For example, with respect to XR experiences, the technology of the present invention may be configured to allow users to choose to "opt in" or "opt out" to participate in the collection of personal information data at any time during or after registration for a service. As another example, a user may choose not to provide data for service customization. As another example, a user may choose to limit the length of time that data is retained or to completely prohibit the development of customized services. In addition to providing "opt-in" and "opt-out" options, the present disclosure also contemplates providing notifications related to access or use of personal information. For example, a user may be notified that their personal information data will be accessed when downloading an application, and then reminded again just before the personal information data is accessed by the application.
[0244] Furthermore, it is the intention of the present disclosure that personal information data should be managed and processed in a manner that minimizes the risk of unintentional or unauthorized access or use. Once the data is no longer needed, the risk can be minimized by limiting the collection of data and deleting the data. In addition, and when applicable, including in certain health-related applications, data de-identification can be used to protect the privacy of users. De-identification can be facilitated by removing specific identifiers (e.g., date of birth, etc.), controlling the amount or specificity of stored data (e.g., collecting location data at the city level rather than at the address level), controlling how the data is stored (e.g., aggregating data across users), and / or other methods, where appropriate.
[0245] Thus, while the present disclosure broadly covers the use of personal information data to implement one or more of the various disclosed embodiments, the present disclosure also contemplates that various embodiments may be implemented without requiring access to such personal information data. That is, various embodiments of the present technology will not fail to function due to the absence of all or a portion of such personal information data. For example, an XR experience may be generated by inferring preferences based on non-personal information data or an absolute minimum amount of personal information (such as content requested by a device associated with a user, other non-personal information available to a service, or publicly available information).
Claims
1. A method comprising: At a computer system in communication with a display generating component: When the user's field of view is a first field of view, displaying a first virtual object in a three-dimensional environment via the display generation component, wherein the first virtual object is displayed in a first display mode including being locked to the environment; When displaying the first virtual object, detecting a change in the field of view of the user from the first field of view to a second field of view; as well as In response to detecting the change in the field of view of the user from the first field of view to the second field of view: continuing to display the first virtual object in the first display mode including being environment locked based on determining that a first set of criteria is satisfied, wherein the first set of criteria includes criteria that is satisfied when the field of view of the user is the second field of view and a threshold amount of the first virtual object will remain within the field of view of the user while the first virtual object remains environment locked; as well as Based on determining that the first set of criteria is not met, displaying the first virtual object in a second display mode, the second display mode including repositioning the first virtual object relative to the three-dimensional environment based on a change in the field of view of the user, the determining that the first set of criteria is not met is based on determining that when the field of view of the user is the second field of view and when the first virtual object remains environment locked, less than the threshold amount of the first virtual object will remain within the field of view of the user.
2. The method of claim 1 , wherein displaying the first virtual object in the second display mode comprises changing a visual appearance of the first virtual object from a first visual appearance displayed when the first virtual object is in the first display mode to a second visual appearance different from the first visual appearance. 3 . The method of claim 2 , wherein the first virtual object has a first opacity level when displayed in the first visual appearance and has a second opacity level different from the first opacity level when displayed in the second visual appearance.
4. The method of any one of claims 2 to 3, wherein the first virtual object has a first type of projection when displayed in the first visual appearance, and has a second type of projection different from the first type of projection when displayed in the second visual appearance.
5. The method according to any one of claims 1 to 3, further comprising: detecting, while the first virtual object is being displayed in the second display mode, that a stability level of the field of view of the user satisfies a set of stability criteria; as well as In response to detecting that the stability level of the field of view of the user satisfies the set of stability criteria, displaying the first virtual object in the first display mode.
6. The method of claim 5, wherein the stability level of the user's field of view is based on a determination of a stability level of the user's head of the computer system.
7. The method according to claim 5, further comprising: When the first virtual object is being displayed in the second display mode, a first indication is displayed, indicating that the first virtual object can be transformed into being displayed in the first display mode including being locked to the environment. 8 . The method of claim 7 , wherein the first indication comprises a second version of the first virtual object, wherein the second version of the first virtual object has a darker appearance than the first virtual object.
9. The method according to any one of claims 7 to 8, wherein the first indication comprises an outline of at least a portion of the first virtual object.
10. The method according to any one of claims 1 to 3, further comprising: When the first virtual object is being displayed in the second display mode: detecting a change in the field of view of the user from a third field of view to a fourth field of view at a first speed and in a first direction; as well as In response to detecting the change in the field of view of the user from the third field of view to the fourth field of view, the positional shift of the first virtual object displayed in the field of view of the user is shifted in a second direction based on the first direction and at a second speed different from the first speed.
11. The method according to any one of claims 1 to 3, wherein: Continuing to display the first virtual object in the first display mode including being locked to the environment in response to detecting the change in the field of view of the user from the first field of view to the second field of view includes: stopping displaying a first sub-portion of the first virtual object while continuing to display a second sub-portion of the first virtual object.
12. The method according to claim 11, further comprising: detecting a change in the field of view of the user from the second field of view to a fifth field of view when the second sub-portion of the first virtual object is displayed and the first sub-portion of the first virtual object is not displayed; as well as In response to detecting the change of the field of view of the user from the second field of view to the fifth field of view: Based on determining that the first set of criteria is not met, the first virtual object is displayed in the second display mode, including displaying the first sub-portion of the first virtual object.
13. The method according to any one of claims 1 to 3, wherein: The first virtual object is displayed simultaneously with a plurality of virtual objects including a second virtual object and a third virtual object; and The first virtual object, the second virtual object, and the third virtual object have a predetermined spatial relationship relative to each other, and the predetermined spatial relationship is maintained as the first virtual object, the second virtual object, and the third virtual object continue to be displayed within the field of view of the user.
14. A computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component, the one or more programs comprising instructions for performing the method according to any one of claims 1 to 13.
15. A computer system configured to communicate with a display generation component, the computer system comprising: one or more processors; and A memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for executing the method according to any one of claims 1 to 13.
16. A computer system configured to communicate with a display generation component, the computer system comprising: A component for carrying out the method according to any one of claims 1 to 13.
17. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system in communication with a display generating component, the one or more programs including instructions for performing the method according to any one of claims 1 to 13.