A method for reducing depth conflicts in three-dimensional environments
The computer system addresses inefficiencies in augmented and mixed reality interactions by adjusting virtual object visibility and salience, improving user interaction efficiency and conserving power.
Patent Information
- Application Number
- JP2025517487
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-06-03
- Filing Date
- 2023-09-22
- Publication Date
- 2025-10-15
AI Technical Summary
Existing methods for interacting with augmented and mixed reality environments are cumbersome, inefficient, and complex, leading to a significant cognitive burden on users and excessive energy consumption, particularly in battery-operated devices.
A computer system with improved interfaces that reduce the number and type of user inputs by adjusting the visibility and salience of virtual objects in three-dimensional environments, using techniques such as reducing visual salience and applying visual effects based on user engagement and depth conflicts.
Enhances user interaction efficiency, reduces errors, conserves power, and improves device usability by providing intuitive and efficient human-machine interfaces, thereby extending battery life and enhancing the user experience.
Smart Images

Figure 2025534273000001_ABST
Abstract
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Patent Application No. 63 / 376,870, filed September 23, 2022, and U.S. Provisional Patent Application No. 63 / 506,070, filed June 3, 2023, the contents of which are incorporated by reference herein in their entirety for all purposes. [Technical Field]
[0002] The present invention relates generally to computer systems that provide computer-generated experiences, including but not limited to electronic devices that provide virtual reality and mixed reality experiences via display generation components. [Background technology]
[0003] The development of computer systems for augmented reality has progressed significantly in recent years. Exemplary augmented reality environments include at least some virtual elements that replace or augment the physical world. Input devices such as cameras, controllers, joysticks, touch-sensitive surfaces, and touchscreen displays for computer systems and other electronic computing devices are used to interact with the virtual / augmented reality environment. Exemplary virtual elements include virtual objects such as digital images, video, text, icons, and control elements such as buttons and other graphics. Summary of the Invention
[0004] 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 a desired result in an augmented reality environment, and systems in which manipulating virtual objects is complex and error-prone create a significant cognitive burden for users and detract from the experience of the virtual / augmented reality environment. In addition, these methods are unnecessarily time-consuming, thereby wasting computer system energy. This latter consideration is particularly important in battery-operated devices.
[0005] Therefore, there is a need for a computer system having improved methods and interfaces for providing users with computer-generated experiences that make interaction with the computer system more efficient and intuitive for the user. Such methods and interfaces can optionally complement or replace conventional methods of providing users with extended reality experiences. Such methods and interfaces reduce the number, extent, and / or type of inputs from the user by helping the user understand the connection between the input provided and the device response to that input, thereby creating a more efficient human-machine interface.
[0006] The above-mentioned drawbacks and other problems associated with user interfaces of computer systems 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 wristwatch or a head-mounted device). In some embodiments, the computer system has a touchpad. In some embodiments, the computer system has one or more cameras. In some embodiments, the computer system has a touch-sensitive display (also known as a "touch screen" or "touchscreen 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, the computer system has one or more output devices in addition to the display generating components, the output devices including 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, memory, and one or more modules, programs, or instruction sets stored in the memory for performing a plurality of functions. In some embodiments, a user interacts with the GUI through stylus and / or finger contacts and gestures on a touch-sensitive surface, the 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 cameras and other movement sensors, and / or voice input as captured by one or more audio input devices.In some embodiments, the functions performed through the interactions optionally include image editing, drawing, presenting, word processing, creating spreadsheets, playing games, making phone calls, video conferencing, emailing, instant messaging, training support, digital photography, digital videography, web browsing, playing digital music, note taking, and / or playing digital videos, and executable instructions to perform those functions are optionally contained in a transient and / or non-transitory computer-readable storage medium or other computer program product configured to be executed by one or more processors.
[0007] There is a need for electronic devices with improved methods and interfaces for interacting with content within a three-dimensional environment. Such methods and interfaces can complement or replace conventional methods for interacting with content within a three-dimensional environment. Such methods and interfaces reduce the number, extent, and / or type of input from a user, creating a more efficient human-machine interface. For battery-operated computing devices, such methods and interfaces conserve power and increase the time between battery charges.
[0008] In some embodiments, the computer system facilitates depth conflict mitigation for a virtual object in contact with one or more physical objects in the three-dimensional environment by reducing the visual salience of one or more portions of the virtual object. In some embodiments, the computer system adjusts the visibility of one or more virtual objects in the three-dimensional environment by applying a visual effect to the one or more virtual objects in response to detecting one or more portions of a user. In some embodiments, the computer system modifies the visual salience according to an engagement level with the virtual object.
[0009] It should be noted that the various embodiments described above can be combined with any other embodiment described herein. The features and advantages described herein are not exhaustive, and many additional features and advantages will become apparent to those skilled in the art, particularly in light of the drawings, specification, and claims. Furthermore, it should be noted that the language used in this specification has been selected solely for the purposes of readability and explanation, and not to define or limit the subject matter of the present invention. [Brief explanation of the drawings]
[0010] For a better understanding of the various described embodiments, reference should be made to the following Detailed Description of the Invention in conjunction with the following drawings, in which like reference numerals refer to corresponding parts throughout:
[0011] [Figure 1A] FIG. 1 is a block diagram illustrating an operating environment for a computer system for providing an XR experience, according to some embodiments.
[0012] [Figure 1B] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1C] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1D] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1E] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1F] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1G] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1H] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1I] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1J] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1K] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1L] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1M] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1N] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1O] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1P] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A.
[0013] [Figure 2] FIG. 1 is a block diagram illustrating a controller of a computer system configured to manage and coordinate an XR experience for a user, according to some embodiments.
[0014] [Figure 3] FIG. 1 is a block diagram illustrating display generation components of a computer system configured to provide a user with visual components of an XR experience, according to some embodiments.
[0015] [Figure 4] FIG. 1 is a block diagram illustrating a hand tracking unit of a computer system configured to capture a user's gesture input, according to some embodiments.
[0016] [Figure 5] FIG. 1 is a block diagram illustrating an eye-tracking unit of a computer system configured to capture a user's gaze input, according to some embodiments.
[0017] [Figure 6A] 1 is a flowchart illustrating a glint-assisted gaze tracking pipeline, according to some embodiments.
[0018] [Figure 6B] 1 illustrates an exemplary environment for an electronic device for providing a CGR experience, according to some embodiments.
[0019] [Figure 7A] 1 illustrates an example computer system that facilitates depth conflict mitigation for one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 7B] 1 illustrates an example computer system that facilitates depth conflict mitigation for one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 7C] 1 illustrates an example computer system that facilitates depth conflict mitigation for one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 7C-1] 1 illustrates an example computer system that facilitates depth conflict mitigation for one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 7D] 1 illustrates an example computer system that facilitates depth conflict mitigation for one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 7E] 1 illustrates an example computer system that facilitates depth conflict mitigation for one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 7F] 1 illustrates an example computer system that facilitates depth conflict mitigation for one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 7G]1 illustrates an example computer system that facilitates depth conflict mitigation for one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 7H] 1 illustrates an example computer system that facilitates depth conflict mitigation for one or more virtual objects in a three-dimensional environment, according to some embodiments.
[0020] [Figure 8A] 1 is a flowchart illustrating an example method that facilitates depth conflict mitigation for a virtual object in a three-dimensional environment by reducing the visual salience of one or more portions of the virtual object, according to some embodiments. [Figure 8B] 1 is a flowchart illustrating an example method that facilitates depth conflict mitigation for a virtual object in a three-dimensional environment by reducing the visual salience of one or more portions of the virtual object, according to some embodiments. [Figure 8C] 1 is a flowchart illustrating an example method that facilitates depth conflict mitigation for a virtual object in a three-dimensional environment by reducing the visual salience of one or more portions of the virtual object, according to some embodiments. [Figure 8D] 1 is a flowchart illustrating an example method that facilitates depth conflict mitigation for a virtual object in a three-dimensional environment by reducing the visual salience of one or more portions of the virtual object, according to some embodiments. [Figure 8E] 1 is a flowchart illustrating an example method that facilitates depth conflict mitigation for a virtual object in a three-dimensional environment by reducing the visual salience of one or more portions of the virtual object, according to some embodiments. [Figure 8F] 1 is a flowchart illustrating an example method that facilitates depth conflict mitigation for a virtual object in a three-dimensional environment by reducing the visual salience of one or more portions of the virtual object, according to some embodiments. [Figure 8G]1 is a flowchart illustrating an example method that facilitates depth conflict mitigation for a virtual object in a three-dimensional environment by reducing the visual salience of one or more portions of the virtual object, according to some embodiments. [Figure 8H] 1 is a flowchart illustrating an example method that facilitates depth conflict mitigation for a virtual object in a three-dimensional environment by reducing the visual salience of one or more portions of the virtual object, according to some embodiments. [Figure 8I] 1 is a flowchart illustrating an example method that facilitates depth conflict mitigation for a virtual object in a three-dimensional environment by reducing the visual salience of one or more portions of the virtual object, according to some embodiments. [Figure 8J] 1 is a flowchart illustrating an example method that facilitates depth conflict mitigation for a virtual object in a three-dimensional environment by reducing the visual salience of one or more portions of the virtual object, according to some embodiments. [Figure 8K] 1 is a flowchart illustrating an example method that facilitates depth conflict mitigation for a virtual object in a three-dimensional environment by reducing the visual salience of one or more portions of the virtual object, according to some embodiments. [Figure 8L] 1 is a flowchart illustrating an example method that facilitates depth conflict mitigation for a virtual object in a three-dimensional environment by reducing the visual salience of one or more portions of the virtual object, according to some embodiments. [Figure 8M] 1 is a flowchart illustrating an example method that facilitates depth conflict mitigation for a virtual object in a three-dimensional environment by reducing the visual salience of one or more portions of the virtual object, according to some embodiments. [Figure 8N] 1 is a flowchart illustrating an example method that facilitates depth conflict mitigation for a virtual object in a three-dimensional environment by reducing the visual salience of one or more portions of the virtual object, according to some embodiments.
[0021] [Figure 9A] 1 illustrates an example computer system that adjusts visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments. [Figure 9B] 1 illustrates an example computer system that adjusts visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments. [Figure 9C] 1 illustrates an example computer system that adjusts visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments. [Figure 9D] 1 illustrates an example computer system that adjusts visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments. [Figure 9E] 1 illustrates an example computer system that adjusts visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments. [Figure 9F] 1 illustrates an example computer system that adjusts visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments. [Figure 9G] 1 illustrates an example computer system that adjusts visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments. [Figure 9H]1 illustrates an example computer system that adjusts visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments. [Figure 9H-1] 1 illustrates an example computer system that adjusts visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments.
[0022] [Figure 10A] 10 is a flowchart illustrating an example method for adjusting visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments. [Figure 10B] 10 is a flowchart illustrating an example method for adjusting visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments. [Figure 10C] 10 is a flowchart illustrating an example method for adjusting visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments. [Figure 10D] 10 is a flowchart illustrating an example method for adjusting visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments. [Figure 10E] 10 is a flowchart illustrating an example method for adjusting visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments. [Figure 10F] 10 is a flowchart illustrating an example method for adjusting visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments. [Figure 10G] 10 is a flowchart illustrating an example method for adjusting visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments. [Figure 10H] 10 is a flowchart illustrating an example method for adjusting visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments. [Figure 10I] 10 is a flowchart illustrating an example method for adjusting visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments. [Figure 10J] 10 is a flowchart illustrating an example method for adjusting visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments. [Figure 10K] 10 is a flowchart illustrating an example method for adjusting visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments. [Figure 10L] 10 is a flowchart illustrating an example method for adjusting visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments. [Figure 10M] 10 is a flowchart illustrating an example method for adjusting visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments.
[0023] [Figure 11A] 1 illustrates an example computer system that facilitates depth conflict mitigation for one or more virtual objects according to user engagement within a three-dimensional environment, according to some embodiments. [Figure 11B] 1 illustrates an example computer system that facilitates depth conflict mitigation for one or more virtual objects according to user engagement within a three-dimensional environment, according to some embodiments. [Figure 11B-1] 1 illustrates an example computer system that facilitates depth conflict mitigation for one or more virtual objects according to user engagement within a three-dimensional environment, according to some embodiments. [Figure 11C] 1 illustrates an example computer system that facilitates depth conflict mitigation for one or more virtual objects according to user engagement within a three-dimensional environment, according to some embodiments. [Figure 11D] 1 illustrates an example computer system that facilitates depth conflict mitigation for one or more virtual objects according to user engagement within a three-dimensional environment, according to some embodiments. [Figure 11E] 1 illustrates an example computer system that facilitates depth conflict mitigation for one or more virtual objects according to user engagement within a three-dimensional environment, according to some embodiments. [Figure 11F] 1 illustrates an example computer system that facilitates depth conflict mitigation for one or more virtual objects according to user engagement within a three-dimensional environment, according to some embodiments. [Figure 11G]1 illustrates an example computer system that facilitates depth conflict mitigation for one or more virtual objects according to user engagement within a three-dimensional environment, according to some embodiments.
[0024] [Figure 12A] 1 is a flowchart illustrating an exemplary method of an example computer system that facilitates depth conflict mitigation for one or more virtual objects according to user engagement within a three-dimensional environment, according to some embodiments. [Figure 12B] 1 is a flowchart illustrating an exemplary method of an example computer system that facilitates depth conflict mitigation for one or more virtual objects according to user engagement within a three-dimensional environment, according to some embodiments. [Figure 12C] 1 is a flowchart illustrating an exemplary method of an example computer system that facilitates depth conflict mitigation for one or more virtual objects according to user engagement within a three-dimensional environment, according to some embodiments. [Figure 12D] 1 is a flowchart illustrating an exemplary method of an example computer system that facilitates depth conflict mitigation for one or more virtual objects according to user engagement within a three-dimensional environment, according to some embodiments. [Figure 12E] 1 is a flowchart illustrating an exemplary method of an example computer system that facilitates depth conflict mitigation for one or more virtual objects according to user engagement within a three-dimensional environment, according to some embodiments. [Figure 12F] 1 is a flowchart illustrating an exemplary method of an example computer system that facilitates depth conflict mitigation for one or more virtual objects according to user engagement within a three-dimensional environment, according to some embodiments. [Figure 12G] 1 is a flowchart illustrating an exemplary method of an example computer system that facilitates depth conflict mitigation for one or more virtual objects according to user engagement within a three-dimensional environment, according to some embodiments. DETAILED DESCRIPTION OF THE INVENTION
[0025] The present disclosure relates to a user interface that provides a computer-generated (CGR) experience to a user, according to some embodiments.
[0026] The systems, methods, and GUIs described herein facilitate electronic device interaction with objects in a three-dimensional environment and provide improved ways to manipulate the objects.
[0027] In some embodiments, a computer system displays a three-dimensional environment including one or more virtual objects. In some embodiments, the computer system detects movement of a first portion of a user of the computer system relative to a first virtual object within the three-dimensional environment. In some embodiments, if the computer system determines that at least a portion of the first virtual object encounters a depth conflict with the first portion of the user after the movement of the first portion of the user, the computer system reduces visual salience of a portion of the first virtual object that has a depth conflict with the first portion of the user within the three-dimensional environment. In some embodiments, reducing the visual salience of the portion of the first virtual object allows the first portion of the user with which the first virtual object has a depth conflict to be visible to the user's viewpoint, thus mitigating the depth conflict between the first virtual object and the first portion of the user within the three-dimensional environment.
[0028] In some embodiments, a computer system displays a three-dimensional environment including one or more virtual objects. In some embodiments, the computer system detects movement of a first portion of a user of the computer system relative to a first virtual object in the three-dimensional environment. In some embodiments, if the computer system determines that after the movement of the first portion of the user, the first portion of the first virtual object encounters a depth conflict with the first portion of the user, the computer system applies a visual effect to the first portion of the first virtual object that has a depth conflict with the first portion of the user in the three-dimensional environment. In some embodiments, applying the visual effect to the first portion of the first virtual object that has a depth conflict with the first portion of the user in the three-dimensional environment gives the first portion of the user an appearance that is at least partially transparent relative to the first portion of the virtual object.
[0029] In some embodiments, a computer system displays a three-dimensional environment including one or more virtual objects. In some embodiments, the computer system detects an engagement level with a first virtual object associated with a distinct portion of the user's body that has a depth conflict with the first virtual object. In some embodiments, the computer system modifies a visual effect applied to at least a portion of the first virtual object relative to the distinct portion of the user's body. In some embodiments, the modification of the visual effect is a reduction in visual salience of at least a portion of the first virtual object. In some embodiments, if the engagement level with the first virtual object is increased, a corresponding degree of the visual effect is increased. In some embodiments, if the engagement level with the first virtual object is decreased, a corresponding degree of the visual effect is decreased.
[0030] FIGS. 1A-6B provide an illustration of an exemplary computer system for providing an XR experience to a user (as described below with respect to methods 800, 1000, and / or 1200). FIGS. 7A-7H illustrate an exemplary technique for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment, according to some embodiments. FIGS. 8A-8N are a flow diagram of a method for facilitating depth conflict mitigation for a virtual object in a three-dimensional environment by reducing the visual salience of one or more portions of the virtual object, according to some embodiments. The user interfaces of FIGS. 7A-7H are used to illustrate the process of FIGS. 8A-8N. FIGS. 9A-9H illustrate an exemplary technique for adjusting the visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments. FIGS. 10A-10M are a flow diagram of a method for adjusting the visibility of one or more virtual objects in a three-dimensional environment by applying visual effects to the one or more virtual objects in response to detecting one or more portions of a user, according to some embodiments. The user interfaces of Figures 9A-9H are used to illustrate the process of Figures 10A-10M. Figures 11A-11G illustrate an example technique for facilitating depth conflict mitigation for one or more virtual objects according to user engagement within a three-dimensional environment, according to some embodiments. Figures 12A-12G are a flow diagram of an example method for facilitating depth conflict mitigation for one or more virtual objects according to user engagement within a three-dimensional environment, according to some embodiments. The user interfaces of Figures 11A-11G are used to illustrate the process of Figures 12A-12G.
[0031] The processes described below enhance device usability and make user-device interfaces more efficient (e.g., by helping users provide appropriate inputs and reducing user errors when operating / interacting with the device) through various techniques, including providing improved visual feedback to the user, reducing the number of inputs required to perform an action, providing additional control options without cluttering the user interface with additional controls, performing an action without requiring further user input when a set of conditions is met, improving privacy and / or security, providing a more diverse, detailed, and / or realistic user experience while saving storage space, and / or additional techniques. These techniques also reduce power usage and improve device battery life by allowing users to use the device more quickly and efficiently. Saving battery power, and therefore weight, improves device ergonomics. These techniques also enable real-time communication and the use of fewer and / or less accurate sensors, resulting in more compact, lighter, and less expensive devices, and allowing devices to be used in a variety of lighting conditions. These techniques reduce energy use and thereby reduce the heat given off by the device, which is particularly important for wearable devices where a device that is well within the operating parameters for the device components may become uncomfortable for the user to wear if it is generating too much heat.
[0032] Furthermore, for methods described herein in which one or more steps are conditioned on one or more conditions being satisfied, it should be understood that the described method can be repeated in multiple iterations, such that over the course of the iterations, all of the conditions on which the method steps are conditioned are satisfied in different iterations of the method. For example, if a method requires performing a first step if a condition is satisfied and a second step if the condition is not satisfied, one skilled in the art will understand that the steps recited in the claim are repeated in a particular order until the conditions are satisfied and then no longer satisfied. Thus, a method described with one or more steps that depend on one or more conditions being satisfied can be rewritten as a method that is repeated until each condition recited in the method is satisfied. However, this is not required for system or computer-readable medium claims in which the system or computer-readable medium includes instructions for performing a conditional action based on the satisfaction of the corresponding one or more conditions, and thus can determine whether a contingency is met without explicitly repeating the method steps until all conditions on which the method steps are conditioned are satisfied. Those skilled in the art will also understand that, as with methods having conditional steps, the system or computer-readable storage medium may repeat the steps of the method as many times as necessary to ensure that all of the conditional steps have been performed.
[0033] 1A , an XR experience is provided to a user via an operating environment 100 that includes 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 touchscreen, 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 location sensor, a motion sensor, a speed sensor, etc.), and optionally one or more peripheral devices 195 (e.g., a consumer electronics device, a wearable device, etc.). In some embodiments, one or more of input device 125, output device 155, sensor 190, and peripheral device 195 are integrated with display generation component 120 (e.g., within a head-mounted or handheld device).
[0034] When describing an XR experience, various terms are used to individually refer to several related, but distinct, environments that a user can sense and / or interact with (e.g., using inputs detected by the computer system 101 generating the XR experience that cause the computer system generating the XR experience to generate audio, visual, and / or haptic feedback corresponding to various inputs provided to the computer system 101). The following is a subset of these terms:
[0035] 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 through their senses, such as sight, touch, hearing, taste, and smell.
[0036] Extended reality: In contrast, an extended reality (XR) environment refers to a wholly or partially simulated environment that people sense and / or interact with through electronic systems. In XR, a subset of a person's physical movements or representations thereof are tracked, and one or more properties of one or more virtual objects simulated within the XR environment are adjusted accordingly to behave with at least one law of physics. For example, an XR system may detect the rotation of a person's head and adjust the graphical content and sound field presented to the person accordingly, in a manner similar to how such views and sounds change in a physical environment. In some situations (e.g., for accessibility reasons), adjustments to the characteristic(s) of a virtual object(s) in an XR environment may be made in response to the representation of a physical movement (e.g., a voice command). A person may sense and / or interact with an XR object using any one of their senses, including sight, sound, touch, taste, and smell. For example, a person may sense and / or interact with audio objects that create a 3D or spatial audio environment that provides the perception of a point audio source in 3D space. In another example, audio objects may enable audio transparency that selectively incorporates ambient sounds from the physical environment, with or without computer-generated audio. In some XR environments, a person may sense and / or interact with only audio objects.
[0037] Examples of XR include virtual reality and mixed reality.
[0038] Virtual Reality: A virtual reality (VR) environment refers to a simulated environment designed to be based entirely on computer-generated sensory input for one or more senses. A VR environment includes multiple virtual objects that a person can sense and / or interact with. For example, computer-generated images of trees, buildings, and avatars representing people are examples of virtual objects. A person can sense and / or interact with virtual objects in a VR environment through a simulation of the person's presence in the computer-generated environment and / or through a simulation of a subset of the person's physical movement within the computer-generated environment.
[0039] Mixed reality: A mixed reality (MR) environment refers to a simulated environment designed to incorporate sensory input from or representations of a physical environment in addition to including computer-generated sensory input (e.g., virtual objects), as opposed to a VR environment designed to be based entirely on computer-generated sensory input. On a virtual continuum, a mixed reality environment is anywhere between, but not including, a complete physical environment at one end and a virtual reality environment at the other. In some MR environments, computer-generated sensory input may respond to changes in sensory input from the physical environment. Some electronic systems for presenting MR environments may also track location and / or orientation relative to the physical environment to allow virtual objects to interact with real objects (i.e., physical items from the physical environment or representations thereof). For example, the system may take into account movement so that a virtual tree appears stationary relative to the physical ground.
[0040] Examples of mixed reality include extended reality and augmented virtuality.
[0041] Extended 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 thereof. 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 may be configured to present virtual objects on the transparent or translucent display, whereby a person using the system perceives 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 that are representations of the physical environment. The system composites the images or videos with the virtual objects and presents the composite on the opaque display. The person uses the system to indirectly view the physical environment through the images or videos of the physical environment and perceive the virtual objects superimposed on the physical environment. As used herein, video of a physical environment shown on an opaque display is referred to as "pass-through video," meaning that the system captures images of the physical environment using one or more image sensors and uses those images in presenting the AR environment on the opaque display. Alternatively, the system may include a projection system that projects virtual objects, e.g., as holograms, into the physical environment or onto a physical surface, such that a person using the system perceives the virtual objects superimposed on the physical environment. An extended reality environment also refers to a simulated environment in which a representation of the physical environment is transformed by computer-generated sensory information. For example, in providing pass-through video, the system may distort one or more sensor images to impose a selected perspective (e.g., viewpoint) other than the perspective captured by the imaging sensor. As another example, the representation of the physical environment may be distorted by graphically modifying (e.g., enlarging) a portion thereof, such that the modified portion becomes a non-photorealistic, altered version that represents the originally captured image.As a further example, the representation of the physical environment may be altered by graphically removing or obscuring portions of it.
[0042] Augmented Virtuality: An augmented virtuality (AV) environment refers to a simulated environment in which a virtual or computer-generated environment incorporates one or more sensory inputs from a physical environment. The sensory inputs may be representations of one or more characteristics of the physical environment. For example, an AV park may have virtual trees and virtual buildings, while people with faces are realistically recreated from images taken of physical people. As another example, virtual objects may adopt the shape or color of physical items imaged by one or more imaging sensors. As a further example, virtual objects may adopt shadows that match the position of the sun in the physical environment.
[0043] In an augmented reality, mixed reality, or virtual reality environment, a view of a three-dimensional environment is visible to a user. The view of the three-dimensional environment is typically visible to a user via one or more display generating components (e.g., a display or pair of display modules providing stereoscopic content to different eyes of the same user) through a virtual viewport having a viewport boundary that defines the extent of the three-dimensional environment visible to the user via the one or more display generating components. In some embodiments, the area defined by the viewport boundary is smaller in one or more dimensions than the user's field of view (e.g., based on the user's field of view, the size, optical properties, or other physical characteristics of the one or more display generating components, and / or the location and / or orientation of the one or more display generating components relative to the user's eyes). In some embodiments, the area defined by the viewport boundary is larger in one or more dimensions than the user's field of view (e.g., based on the user's field of view, the size, optical properties, or other physical characteristics of the one or more display generating components, and / or the location and / or orientation of the one or more display generating components relative to the user's eyes). The viewport and viewport boundaries typically move as one or more display-generating components move (e.g., with the user's head in the case of a head-mounted device, or with the user's hands in the case of a handheld device such as a tablet or smartphone). The user's viewpoint determines what content is visible within the viewport; the viewpoint generally specifies a location and orientation relative to the three-dimensional environment; as the viewpoint shifts, the view of the three-dimensional environment also shifts within the viewport. In the case of a head-mounted device, the viewpoint is typically based on the location and orientation of the user's head, face, and / or eyes to provide a view of the three-dimensional environment that is perceptually accurate and provides an immersive experience when the user is using the head-mounted device.In the case of a handheld or stationary device, the viewpoint shifts as the handheld or stationary device is moved and / or as the user's position relative to the handheld or stationary device changes (e.g., as the user moves toward, away from, above, below, to the right of, and / or to the left of the device). In a device that includes a display generation component with a virtual pass-through, the portion of the physical environment that is visible (e.g., displayed and / or projected) through one or more display generation components communicates with the display generation component, typically moving with the display generation component (e.g., moving with the user's head in a head-mounted device, or moving with the user's hand in a handheld device such as a tablet or smartphone), as the user's viewpoint moves as the field of view of one or more cameras moves (and the appearance of one or more virtual objects displayed through the one or more display generation components is updated based on the user's viewpoint (e.g., the displayed position and pose of the virtual objects are updated based on the movement of the user's viewpoint). Based on the field of view of one or more cameras. In the case of display generating components that have an optical pass-through, the portion of the physical environment that is visible through the one or more display generating components (e.g., optically visible through one or more partially or fully transparent portions of the display generating components) is based on the user's field of view through the partially or fully transparent portions of the display generating components (e.g., moves with the user's head in the case of a head-mounted device, or moves with the user's hand in the case of a handheld device such as a tablet or smartphone), such that the user's viewpoint moves (and the appearance of the one or more virtual objects is updated based on the user's viewpoint) as the user's field of view through the partially or fully transparent portion(s) of the display generating components moves.
[0044] In some embodiments, a representation of the physical environment (e.g., displayed via a virtual pass-through or optical pass-through) can be partially or completely obscured by the virtual environment. In some embodiments, the amount of the virtual environment that is displayed (e.g., the amount of the physical environment that is not displayed) is based on the immersion level of the virtual environment (e.g., relative to the representation of the physical environment). For example, increasing the immersion level optionally causes more of the virtual environment to be displayed, replacing and / or obscuring more of the physical environment, and decreasing the immersion level optionally causes less of the virtual environment to be displayed, revealing portions of the physical environment that were not previously displayed and / or obscured. In some embodiments, at a particular immersion level, one or more first background objects (e.g., in the representation of the physical environment) are visually less highlighted (e.g., dimmed, blurred, and / or displayed with increased transparency) than one or more second background objects, and one or more third background objects are discontinued. In some embodiments, the immersion level includes the relative extent to which the virtual content (e.g., the virtual environment and / or virtual content) displayed by the computer system obscures background content (e.g., content other than the virtual environment and / or virtual content) around / behind the virtual content, and optionally includes the number of items of background content displayed and / or the visual characteristics (e.g., color, contrast, and / or opacity) with which the background content is displayed, the angular range of the virtual content displayed via the display generating components (e.g., 60-degree content displayed at low immersion, 120-degree content displayed at medium immersion, or 180-degree content displayed at high immersion), and / or the percentage of the field of view displayed via the display generating components that is consumed by the virtual content (e.g., 33% of the field of view consumed by the virtual content at low immersion, 66% of the field of view consumed by the virtual content at medium immersion, or 100% of the field of view consumed by the virtual content at high immersion). In some embodiments, the background content is included in the background against which the virtual content is displayed (e.g., background content within a representation of the physical environment).In some embodiments, background content includes user interfaces (e.g., user interfaces generated by a computer system corresponding to an application), virtual objects (e.g., files or representations of other users generated by a computer system) that are not associated with or included in the virtual environment and / or virtual content, and / or real objects (e.g., pass-through objects that represent real objects in the physical environment around the user that are visible as displayed through the display generating components and / or that are visible through transparent or translucent components of the display generating components because the computer system does not obscure / prevent their visibility through the display generating components). In some embodiments, at a low immersion level (e.g., a first immersion level), background, virtual, and / or real objects are displayed in an unobscured manner. For example, a virtual environment at a low immersion level is optionally displayed simultaneously with background content, and the background content is optionally displayed at full brightness, color, and / or translucency. In some embodiments, at a higher immersion level (e.g., a second immersion level higher than the first immersion level), background, virtual, and / or real objects are displayed in an obscured manner (e.g., dimmed, blurred, or removed from the display). For example, a separate virtual environment having a high immersion level is displayed without simultaneously displaying background content (e.g., in full screen or fully immersive mode). As another example, a virtual environment displayed at an intermediate immersion level is simultaneously displayed with dimmed, blurred, or otherwise de-highlighted background content. In some embodiments, the visual characteristics of the background objects differ among the background objects. For example, at a particular immersion level, one or more first background objects are visually less highlighted (e.g., dimmed, blurred, and / or displayed with increased transparency) than one or more second background objects, and one or more third background objects are discontinued.In some embodiments, a null or zero level of immersion corresponds to ceasing to display the virtual environment, and instead displaying a representation of the physical environment (optionally along with one or more virtual objects, such as applications, windows, or virtual three-dimensional objects), without the representation of the physical environment being obscured by the virtual environment. Adjusting the immersion level using physical input elements provides a fast and efficient way to adjust immersion, improving usability of computer systems and making user-device interfaces more efficient.
[0045] Perspective-Locked Virtual Object: A virtual object is perspective-locked when the computer system displays the virtual object in the same location and / or position within the user's perspective, even as the user's perspective shifts (e.g., changes). In embodiments in which the computer system is a head-mounted device, the user's perspective is locked to the forward-facing orientation of the user's head (e.g., the user's perspective is at least a portion of the user's field of view when the user is looking straight ahead). Thus, the user's perspective remains fixed even as the user's line of sight moves without moving the user's head. In embodiments in which the computer system has a display generating component (e.g., a display screen) that can be repositioned relative to the user's head, the user's perspective is the augmented reality view being presented to the user on the display generating component of the computer system. For example, a perspective-locked virtual object that is displayed in the upper left corner of the user's perspective when the user's perspective 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 perspective when the user's perspective changes to a second orientation (e.g., the user's head is facing west). In other words, the location and / or position at which a viewpoint-locked virtual object is displayed in a user's viewpoint is independent of the user's position and / or orientation in the physical environment. In embodiments in which 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."
[0046] Environment-Locked Virtual Object: A virtual object is environment-locked (or "world-locked") when a computer system displays the virtual object at a location and / or position within a user's viewpoint that is based on (e.g., selected with reference to and / or anchored to) locations and / or objects within a three-dimensional environment (e.g., a physical environment or a virtual environment). As the user's viewpoint shifts, the locations and / or objects within the environment relative to the user's viewpoint change, resulting in the environment-locked virtual object appearing at a different location and / or position within the user's viewpoint. For example, an environment-locked virtual object locked to a tree directly in front of the user will appear centered within the user's viewpoint. If the user's viewpoint shifts to the right (e.g., the user's head is turned to the right) and the tree becomes more left-leaning within the user's viewpoint (e.g., the position of the tree within the user's viewpoint shifts), the environment-locked virtual object locked to the tree will appear more left-leaning within the user's viewpoint. In other words, the location and / or position at which the environment-locked virtual object appears within the user's viewpoint depends on the position and / or orientation of the location and / or 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 fixed to a fixed location and / or object in the physical environment) to determine a position at which to display an environment-locked virtual object in the user's viewpoint. The 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 moving portion of the environment (e.g., a vehicle, an animal, a person, or a representation of a part of the user's body that moves independent of the user's viewpoint, such as the user's hand, wrist, arm, or leg), so that the virtual object moves as the viewpoint or part of the environment moves in order to maintain a fixed relationship between the virtual object and the part of the environment.
[0047] In some embodiments, an environment-locked or viewpoint-locked virtual object exhibits delayed-following behavior, which 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 is following. In some embodiments, when exhibiting delayed-following behavior, the computer system intentionally delays the movement of the virtual object when it detects movement of the reference point that the virtual object is following (e.g., a part of the environment, the viewpoint, or a point fixed relative to the viewpoint, such as a point between 5 and 300 cm from the viewpoint). For example, when the reference point (e.g., a part of the environment or the 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 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 delayed-following behavior, the device ignores small amounts of movement of the reference point (e.g., ignores movement of the reference point that is less than a threshold amount of movement, such as movement between 0 and 5 degrees or movement between 0 and 50 cm). For example, when the reference point (e.g., a portion of the environment or a viewpoint to which the virtual object is locked) moves by a first amount, the distance between the reference point and the virtual object increases (e.g., because the virtual object is displayed 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., a portion of the environment or a viewpoint to which the virtual object is locked) moves by a second amount greater than the first amount, the distance between the reference point and the virtual object initially increases (e.g., because the virtual object is displayed 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 as the amount of movement of the reference point increases beyond a threshold (e.g., a “delayed following” threshold) as 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, a virtual object maintaining a substantially fixed position relative to a reference point includes the virtual object being displayed within a threshold distance (e.g., 1, 2, 3, 5, 15, 20, 50 cm) of the reference point in one or more dimensions (e.g., above / below, left / right, and / or forward / backward relative to the position of the reference point).
[0048] Hardware: There are many different types of electronic systems that allow a person to sense and / or interact with various XR environments. Examples include head-mounted systems, projection-based systems, head-up displays (HUDs), vehicle windshields with integrated display capabilities, windows with integrated display capabilities, displays formed as lenses designed to be placed over a person's eyes (e.g., contact lenses), headphones / earphones, speaker arrays, input systems (e.g., wearable or handheld controllers with or without haptic feedback), smartphones, tablets, and desktop / laptop computers. A head-mounted system may have one or more speaker(s) 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 rather than an opaque display. A transparent or translucent display may have a medium through which light representing an image is directed toward a person's eyes. The display may utilize digital light projection, OLED, LED, uLED, liquid crystal on silicon, laser-scanned light source, or any combination of these technologies. The medium may be a light guide, 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 be selectively opaque. A projection-based system may employ retinal projection technology that projects graphical images onto a person's retina. The projection system may also be configured to project virtual objects into the physical environment, for example, as holograms or onto physical surfaces. In some embodiments, the controller 110 is configured to manage and coordinate the XR experience for the user.In some embodiments, controller 110 includes a suitable combination of software, firmware, and / or hardware. Controller 110 is described in more detail below with reference to FIG. 2. In some embodiments, controller 110 is a computing device that is local or remote to scene 105 (e.g., the physical environment). For example, controller 110 is a local server located within scene 105. In another example, controller 110 is a remote server (e.g., a cloud server, a central server, etc.) located outside scene 105. In some embodiments, controller 110 is communicatively coupled to display generation component 120 (e.g., an HMD, a display, a projector, a touchscreen, 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 contained within the housing (e.g., physical housing) of one or more of the display generating component 120 (e.g., an HMD or a portable electronic device including a display and one or more processors), one or more of the input devices 125, one or more of the output devices 155, one or more of the sensors 190, and / or one or more of the peripheral devices 195, or shares the same physical housing or support structure as one or more of the foregoing.
[0049] In some embodiments, display generation component 120 is configured to provide an XR experience (e.g., at least a visual component of the XR experience) to a user. In some embodiments, display generation component 120 includes a suitable combination of software, firmware, and / or hardware. Display generation component 120 is described in more detail below with reference to FIG. 3. In some embodiments, the functionality of controller 110 is provided by and / or combined with display generation component 120.
[0050] According to some embodiments, the display generation component 120 provides an XR experience to the user while the user is virtually and / or physically present in the scene 105.
[0051] In some embodiments, the display generating component is worn on a part of the user's body (e.g., on their head, their hand, etc.). Thus, display generating component 120 includes one or more XR displays provided for displaying XR content. For example, in various embodiments, display generating component 120 surrounds the user's field of view. In some embodiments, display generating component 120 is a handheld device (e.g., a smartphone or tablet) configured to present XR content, where the user holds the device with a display pointed toward the user's field of view and a camera pointed toward scene 105. In some embodiments, the handheld device is optionally located within a housing worn on the user's head. In some embodiments, the handheld device is optionally located on a support (e.g., a tripod) in front of the user. In some embodiments, display generating component 120 is an XR chamber, housing, or room configured to present XR content without the user wearing or holding display generating 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) may 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 illustrating interactions with XR content that are triggered based on interactions occurring in the space in front of a handheld or tripod-mounted device may be implemented similarly to an HMD in which the interactions occur in the space in front of the HMD and the XR content responses are displayed via the HMD. Similarly, a user interface illustrating interactions with XR content that are triggered based on movement of a handheld or tripod-mounted device relative to the physical environment (e.g., scene 105 or a part of the user's body (e.g., the user's eye(s), head, or hands)) may be implemented similarly to an HMD in which the movement is caused by movement of the HMD relative to the physical environment (e.g., scene 105 or a part of the user's body (e.g., the user's eye(s), head, or hands)).
[0052] While relevant features of operating environment 100 are shown in FIG. 1A , those skilled in the art will understand from this disclosure that various other features are not shown for the sake of brevity so as not to obscure more pertinent aspects of the exemplary embodiments disclosed herein.
[0053] 1A-1P illustrate various examples of computer systems that can be used to perform the methods and provide audio, visual, and / or haptic feedback as part of the user interfaces described herein. In some embodiments, the computer system optionally includes one or more display generation components (e.g., first and second display assemblies 1-120a, 1-120b and / or first and second optical modules 11.1.1-104a and 11.1.1-104b) for displaying representations of virtual elements and / or the physical environment to a user of the computer system, the representations being generated based on detected events and / or user input detected by the computer system. The user interface generated by the computer system is optionally corrected by one or more corrective lenses 11.3.2-216, optionally removably attached to one or more of the optical modules, to enable users who otherwise correct their vision using glasses or contact lenses to more easily view the user interface. While many user interfaces shown herein show a single view of the user interface, the user interface in the HMD is optionally displayed using two optical modules (e.g., first and second display assemblies 1-120a, 1-120b and / or first and second optical modules 11.1.1-104a and 11.1.1-104b), one for the user's right eye and a different one for the user's left eye, with slightly different images presented to the two different eyes to create the illusion of stereoscopic depth, and the single view of the user interface is typically either a right-eye or left-eye view, and the depth effect is explained in text or using other schematic diagrams or views.In some embodiments, the computer system includes one or more external displays (e.g., display assembly 1-108) for displaying status information of the computer system to a user of the computer system (when the computer system is not attached) and / or other people near the computer system, optionally generated based on detected events and / or user input detected by the computer system. In some embodiments, the computer system includes one or more audio output components (e.g., electronic components 1-112) for generating audio feedback, optionally generated based on detected events and / or user input detected by the computer system. In some embodiments, the computer system includes one or more input devices for detecting inputs, such as one or more sensors (e.g., sensor assembly 1-356 and / or one or more sensors in FIG. 1I) for detecting information about the physical environment of a device that can be used (optionally in conjunction with one or more illuminators, such as the illuminators described in FIG. 1I) to generate a digital pass-through image, capture visual media (e.g., photographs and / or videos) corresponding to the physical environment, or determine the pose (e.g., position and / or orientation) of physical objects and / or surfaces within the physical environment, so that virtual objects can be positioned based on the detected pose of the physical objects and / or surfaces. In some embodiments, the computer system includes one or more input devices for detecting input, such as one or more sensors for detecting hand position and / or movement (e.g., sensor assembly 1-356 and / or one or more sensors in FIG. 1I), which can be used (optionally in conjunction with one or more illuminators, such as illuminator 6-124 shown in FIG. 1I) to determine when one or more air gestures are performed.In some embodiments, the computer system includes one or more input devices for detecting input, such as one or more sensors for detecting eye movement (e.g., the eye tracking and gaze tracking sensors of FIG. 1I ), which may be used (optionally in conjunction with one or more lights, such as light 11.3.2-110 of FIG. 1O ) to determine attention or gaze position and / or gaze movement, which may optionally be used to detect gaze-only input based on gaze movement and / or dwell. A combination of the various sensors described above may be used to determine a user's facial expressions and / or hand movements for use in generating an avatar or representation of the user, such as an anthropomorphic avatar or representation for use in a real-time communication session, the avatar having facial expressions, hand movements, and / or body movements based on or similar to the detected facial expressions, hand movements, and / or body movements of the user of the device. Gaze and / or attention information is optionally combined with hand tracking information to determine interactions between the user and one or more user interfaces based on direct and / or indirect inputs, such as air gestures or inputs using one or more hardware input devices, such as one or more buttons (e.g., first button 1-128, button 11.1.1-114, second button 1-132, and / or dial or button 1-328), knobs (e.g., first button 1-128, button 11.1.1-114, and / or dial or button 1-328), digital crowns (e.g., pressable and twistable or rotatable first button 1-128, button 11.1.1-114, and / or dial or button 1-328), trackpads, touchscreens, keyboards, mice, and / or other input devices.One or more buttons (e.g., first button 1-128, button 11.1.1-114, second button 1-132, and / or dial or button 1-328) are optionally used to perform system operations such as re-centering content within the three-dimensional environment visible to the device user, displaying a home user interface for launching an application, initiating a real-time communication session, or initiating the display of a virtual three-dimensional background. The knob or digital crown (e.g., a first button 1-128, button 11.1.1-114, and / or a dial or button 1-328 that is depressible and twistable or rotatable) is optionally rotatable to adjust parameters of the visual content, such as the immersion level of the virtual three-dimensional environment (e.g., the degree to which the virtual content occupies the user's viewport into the three-dimensional environment), or other parameters associated with the three-dimensional environment and the virtual content displayed via the optical modules (e.g., first and second display assemblies 1-120a, 1-120b and / or first and second optical modules 11.1.1-104a and 11.1.1-104b).
[0054] 1B illustrates a front, top, and perspective view of an example head-mountable display (HMD) device 1-100 configured to be worn by a user and provide virtual and altered / mixed reality (VR / AR) experiences. The HMD 1-100 can include a display unit 1-102 or assembly, an electronic strap assembly 1-104 connected to and extending from the display unit 1-102, and a band assembly 1-106 secured at either end to the electronic strap assembly 1-104. The electronic strap assembly 1-104 and band 1-106 can be part of a retention assembly configured to wrap around a user's head to hold the display unit 1-102 against the user's face.
[0055] In at least one example, the band assembly 1-106 can include a first band 1-116 configured to wrap around the back of the user's head and a second band 1-117 configured to extend over the top of the user's head. The second strap can extend between the first electronic strap 1-105a and the second electronic strap 1-105b of the electronic strap assembly 1-104, as shown. The strap assembly 1-104 and the band assembly 1-106 can be part of a fastening mechanism that extends rearward from the display unit 1-102 and is configured to hold the display unit 1-102 against the user's face.
[0056] In at least one example, the anchoring mechanism includes a first electronics strap 1-105a including a first proximal end 1-134 coupled to the display unit 1-102, e.g., a housing 1-150 of the display unit 1-102, and a first distal end 1-136 opposite the first proximal end 1-134. The anchoring mechanism can also include a second electronics strap 1-105b including a second proximal end 1-138 coupled to the housing 1-150 of the display unit 1-102, and a second distal end 1-140 opposite the second proximal end 1-138. The anchoring mechanism can also include a first band 1-116 including a first end 1-142 coupled to the first distal end 1-136 and a second end 1-144 coupled to the second distal end 1-140, and a second band 1-117 extending between the first electronic strap 1-105a and the second electronic strap 1-105b. The straps 1-105a-b and the band 1-116 can be coupled via a connection mechanism or assembly 1-114. In at least one example, the second band 1-117 includes a first end 1-146 coupled to the first electronic strap 1-105a between a first proximal end 1-134 and a first distal end 1-136, and a second end 1-148 coupled to the second electronic strap 1-105b between a second proximal end 1-138 and a second distal end 1-140.
[0057] In at least one example, the first and second electronic straps 1-105a-b include plastic, metal, or other structural material that forms the shape of the substantially rigid straps 1-105a-b. In at least one example, the first and second bands 1-116, 1-117 are formed from a resilient, flexible material including woven fabric, rubber, etc. The first and second bands 1-116, 1-117 can be flexible to conform to the shape of a user's head when wearing the HMD 1-100.
[0058] In at least one example, one or more of the first and second electronic straps 1-105a-b can define an internal strap volume and can include one or more electronic components disposed within the internal strap volume. In one example, as shown in FIG. 1B, the first electronic strap 1-105a can include an electronic component 1-112. In one example, the electronic component 1-112 can include a speaker. In one example, the electronic component 1-112 can include a computing component such as a processor.
[0059] In at least one example, the housing 1-150 defines a first, front-facing opening 1-152. The display assembly 1-108 is disposed to block the first opening 1-152 from view when the HMD 1-100 is assembled, and therefore the front-facing opening is labeled 1-152 with a dotted line in FIG. 1B . The housing 1-150 may also define a rear-facing second opening 1-154. The housing 1-150 also defines an interior volume between the first opening 1-152 and the second opening 1-154. In at least one example, the HMD 1-100 includes a display assembly 1-108, which may include a front cover and a display screen (shown in other figures) disposed within or across the front opening 1-152 to block the front opening 1-152. In at least one example, the display screen of the display assembly 1-108, as well as the entire display assembly 1-108, has a curvature configured to follow the curvature of the user's face. The display screen of the display assembly 1-108 can curve to complement the user's facial features and the overall curvature from one side of the face to the other, e.g., from left to right and / or top to bottom when the display unit 1-102 is pressed, as shown.
[0060] In at least one example, the housing 1-150 can define a first aperture 1-126 between the first opening 1-152 and the second opening 1-154, and a second aperture 1-130 between the first opening 1-152 and the second opening 1-154. The HMD 1-100 can also include a first button 1-128 disposed in the first aperture 1-126 and a second button 1-132 disposed in the second aperture 1-130. The first and second buttons 1-128, 1-132 can be depressible through the respective apertures 1-126, 1-130. In at least one example, the first button 1-126 and / or the second button 1-132 can be a twistable dial and a depressible button. In at least one example, the first button 1-128 is a depressible and twistable dial button, and the second button 1-132 is a depressible button.
[0061] FIG. 1C shows a rear perspective view of the HMD 1-100. The HMD 1-100 can include a light seal 1-110 extending rearward from a housing 1-150 of the display assembly 1-108 around the periphery of the housing 1-150, as shown. The light seal 1-110 can be configured to extend from the housing 1-150 to the user's face around the user's eyes to block external light from being seen. In one example, the HMD 1-100 can include first and second display assemblies 1-120a, 1-120b disposed at or within a rearward-facing second opening 1-154 defined by the housing 1-150 and / or disposed within an interior volume of the housing 1-150 and configured to project light through the second opening 1-154. In at least one example, each display assembly 1-120a-b can include a respective display screen 1-122a, 1-122b configured to project light in a rearward direction through the second opening 1-154 toward the user's eyes.
[0062] In at least one example, with reference to both FIG. 1B and FIG. 1C , the display assembly 1-108 can be a front-facing display assembly including a display screen configured to project light in a first, forward direction, and the rear-facing display screens 1-122a-b can be configured to project light in a second, rearward direction opposite the first direction. As described above, the light seal 1-110 can be configured to block light external to the HMD 1-100, including light projected by the front-facing display screen of the display assembly 1-108 shown in the front perspective view of FIG. 1B, from reaching the user's eyes. In at least one example, the HMD 1-100 can also include a curtain 1-124 blocking a second opening 1-154 between the housing 1-150 and the rear-facing display assemblies 1-120a-b. In at least one example, the curtain 1-124 can be elastic or at least partially elastic.
[0063] Any of the features, components, and / or parts shown in Figures 1B and 1C, including their arrangements and configurations, alone or in any combination, may be included in any of the other example devices, features, components, and parts shown in Figures 1D-1F and described herein. Similarly, any of the features, components, and / or parts shown and described with reference to Figures 1D-1F, including their arrangements and configurations, alone or in any combination, may be included in the example devices, features, components, and parts shown in Figures 1B and 1C.
[0064] 1D shows an exploded view of an example of an HMD 1-200 including various portions or components separated according to modularity and selective coupling of those components. For example, the HMD 1-200 can include a band 1-216 that can be selectively coupled to first and second electronic straps 1-205a, 1-205b. The first anchoring strap 1-205a can include a first electronic component 1-212a, and the second anchoring strap 1-205b can include a second electronic component 1-212b. In at least one example, the first and second straps 1-205a-b can be removably coupled to the display unit 1-202.
[0065] Additionally, the HMD 1-200 may include a light seal 1-210 configured to be removably coupled to the display unit 1-202. The HMD 1-200 may also include lenses 1-218 that may be removably coupled to the display unit 1-202, for example, on first and second display assemblies including a display screen. The lenses 1-218 may include customized prescription lenses configured for vision correction. As noted, each component shown in the exploded view of FIG. 1D and described above may be removably coupled, attached, reattached, or interchangeable to update or replace components for different users. For example, bands such as band 1-216, light seals such as light seal 1-210, lenses such as lens 1-218, and electronic straps such as straps 1-205a-b may be interchangeable depending on the user, such that these components are customized to fit and accommodate individual users of the HMD 1-200.
[0066] Any of the features, components, and / or parts shown in Figure 1D, including their arrangements and configurations, alone or in any combination, may be included in any of the other example devices, features, components, and parts shown in Figures 1B, 1C, and 1E-1F and described herein. Similarly, any of the features, components, and / or parts shown and described with reference to Figures 1B, 1C, and 1E-1F, including their arrangements and configurations, alone or in any combination, may be included in the example devices, features, components, and parts shown in Figure 1D.
[0067] 1E shows an exploded view of an example display unit 1-306 of an HMD. The display unit 1-306 may include a front display assembly 1-308, a frame / housing assembly 1-350, and a curtain assembly 1-324. The display unit 1-306 may also include a sensor assembly 1-356, a logic board assembly 1-358, and a cooling assembly 1-360 disposed between the frame assembly 1-350 and the front display assembly 1-308. In at least one example, the display unit 1-306 may also include a rear-facing display assembly 1-320 including first and second rear-facing display screens 1-322a, 1-322b disposed between the frame 1-350 and the curtain assembly 1-324.
[0068] In at least one example, the display unit 1-306 can also include a motor assembly 1-362 configured as an adjustment mechanism for adjusting the position of the display screens 1-322a-b of the display assembly 1-320 relative to the frame 1-350. In at least one example, the display assembly 1-320 is mechanically coupled to the motor assemblies 1-362 with at least one motor for each display screen 1-322a-b such that the motors can translate the display screens 1-322a-b to match the interpupillary distance of a user's eyes.
[0069] In at least one example, the display unit 1-306 can include a dial or button 1-328 that is depressible relative to the frame 1-350 and accessible to a user outside of the frame 1-350. The button 1-328 can be electronically connected to the motor assembly 1-362 via a controller such that a user can operate the button 1-328 to cause motors in the motor assembly 1-362 to adjust the position of the display screen 1-322a-b.
[0070] Any of the features, components, and / or parts shown in Figure 1E, including their arrangements and configurations, alone or in any combination, may be included in any of the other example devices, features, components, and parts shown in Figures 1B, 1D, and 1F and described herein. Similarly, any of the features, components, and / or parts shown and described with reference to Figures 1B-1D and 1F, including their arrangements and configurations, alone or in any combination, may be included in the example devices, features, components, and parts shown in Figure 1E.
[0071] 1F shows an exploded view of another example display unit 1-406 of an HMD device similar to other HMD devices described herein. The display unit 1-406 can include a forward display assembly 1-402, a sensor assembly 1-456, a logic board assembly 1-458, a cooling assembly 1-460, a frame assembly 1-450, a rear-facing display assembly 1-421, and a curtain assembly 1-424. The display unit 1-406 can also include a motor assembly 1-462 for adjusting the position of first and second display subassemblies 1-420a, 1-420b of the rear-facing display assembly 1-421, including respective first and second display screens for interpupillary adjustment, as described above.
[0072] The various components, systems, and assemblies shown in the exploded view of Figure 1F are described in more detail herein with reference to Figures 1B-1E and subsequent figures referenced in this disclosure. The display unit 1-406 shown in Figure 1F can be assembled and integrated with the fastening mechanisms shown in Figures 1B-1E, including electronic straps, bands, and other components including light seals, connection assemblies, etc.
[0073] Any of the features, components, and / or parts shown in Figure 1F, including their arrangements and configurations, alone or in any combination, may be included in any of the other example devices, features, components, and parts shown in Figures 1B-1E and described herein. Similarly, any of the features, components, and / or parts shown and described with reference to Figures 1B-1E, including their arrangements and configurations, alone or in any combination, may be included in the example devices, features, components, and parts shown in Figure 1F.
[0074] FIG. 1G shows a perspective exploded view of a front cover assembly 3-100 of an HMD device described herein, such as the front cover assembly 3-1 of the HMD 3-100 shown in FIG. 1G, or any other HMD device shown and described herein. The front cover assembly 3-100 shown in FIG. 1G can include a transparent or translucent cover 3-102, a shroud 3-104 (or "canopy"), an adhesive layer 3-106, a display assembly 3-108 including a lenticular lens panel or array 3-110, and structural trim 3-112. The adhesive layer 3-106 can bond the shroud 3-104 and / or the transparent cover 3-102 to the display assembly 3-108 and / or the trim 3-112. The trim 3-112 can bond various components of the front cover assembly 3-100 to the frame or chassis of the HMD device.
[0075] In at least one example, as shown in FIG. 1G, a display assembly 3-108 including a transparent cover 3-102, a shroud 3-104, and a lenticular lens array 3-110 can be curved to accommodate the curvature of a user's face. The transparent cover 3-102 and the shroud 3-104 can be curved in two or three dimensions, for example, vertically in the Z direction in or out of the ZX plane and horizontally in the X direction in or out of the ZX plane. In at least one example, the display assembly 3-108 can include a display panel having pixels configured to project light through the lenticular lens array 3-110 and the shroud 3-104 and the transparent cover 3-102. The display assembly 3-108 can be curved in at least one direction, for example, horizontally, to accommodate the curvature of a user's face from one side (e.g., left side) to the other side (e.g., right side) of the face. In at least one example, shown and described in more detail in subsequent figures, each layer or component of the display assembly 3-108, which may include the lenticular lens array 3-110 and the display layer, can be curved horizontally in a similar or concentric manner to accommodate the curvature of the user's face.
[0076] In at least one example, the shroud 3-104 can include a transparent or translucent material through which the display assembly 3-108 projects light. In one example, the shroud 3-104 can include one or more opaque portions, such as opaque ink prints or other opaque film portions, on a rear surface of the shroud 3-104. The rear surface can be the surface of the shroud 3-104 that faces the user's eyes when the HMD device is worn. In at least one example, the opaque portion can be on a front surface of the shroud 3-104 opposite the rear surface. In at least one example, the one or more opaque portions of the shroud 3-104 can include a peripheral portion that visually obscures any components around the perimeter of the display screen of the display assembly 3-108. In this manner, the opaque portions of the shroud hide any other components, including electronic components, structural components, etc., of the HMD device that would otherwise be visible through the transparent or translucent cover 3-102 and / or shroud 3-104.
[0077] In at least one example, the shroud 3-104 can define one or more aperture transparent portions 3-120 through which sensors can transmit and receive signals. In one example, the portions 3-120 are apertures through which sensors can extend or transmit and receive signals. In one example, the portions 3-120 are transparent portions, or portions that are more transparent than the surrounding translucent or opaque portions of the shroud, through which sensors can transmit and receive signals through the shroud and through the transparent cover 3-102. In one example, the sensors can include a camera, an IR sensor, a LUX sensor, or any other visual or non-visual environmental sensor of the HMD device.
[0078] Any of the features, components, and / or parts shown in Figure 1G, including their arrangement and configuration, alone or in any combination, may be included in any of the other example devices, features, components, and parts described herein. Similarly, any of the features, components, and / or parts shown and described herein, including their arrangement and configuration, alone or in any combination, may be included in the example devices, features, components, and parts shown in Figure 1G.
[0079] 1H shows an exploded view of an example of an HMD device 6-100. The HMD device 6-100 can include a sensor array or system 6-102 including one or more sensors, cameras, projectors, etc. attached to one or more components of the HMD 6-100. In at least one example, the sensor system 6-102 can include a bracket 1-338 to which one or more sensors of the sensor system 6-102 can be secured / fixed.
[0080] FIG. 1I illustrates a portion of an HMD device 6-100, including a front transparent cover 6-104 and a sensor system 6-102. The sensor system 6-102 can include multiple different sensors, emitters, and receivers, including cameras, IR sensors, projectors, and the like. The transparent cover 6-104 is shown in front of the sensor system 6-102 to illustrate the relative positions of the various sensors and emitters and the orientation of each sensor / emitter in the system 6-102. As referenced herein, terms such as "sideways," "sideways," "horizontal," and similar terms refer to orientations or directions as indicated by the X-axis shown in FIG. 1J. Terms such as "vertical," "upper," "lower," and similar terms refer to orientations or directions as indicated by the Z-axis shown in FIG. 1J. Terms such as "forward," "rearward," "forward," and "rearward," and similar terms refer to orientations or directions as indicated by the Y-axis shown in FIG. 1J.
[0081] In at least one example, a transparent cover 6-104 can define the front exterior surface of the HMD device 6-100, and a sensor system 6-102 including various sensors and their components can be disposed behind the cover 6-104 in the Y axis / direction. The cover 6-104 can be transparent or translucent to allow light, both detected by and emitted by the sensor system 6-102, to pass through the cover 6-104.
[0082] As discussed elsewhere herein, the HMD device 6-100 may include one or more controllers including a processor for electrically coupling the various sensors and emitters of the sensor system 6-102 with other electronic devices, such as one or more motherboards, processing units, and display screens. Additionally, as described in more detail below with reference to other figures, the various sensors, emitters, and other components of the sensor system 6-102 may be coupled to various structural frame members, brackets, etc. of the HMD device 6-100 that are not shown in FIG. 1I. For clarity of illustration, FIG. 1I shows the components of the sensor system 6-102 unattached from and electrically uncoupled from other components.
[0083] In at least one example, the device can include one or more controllers having a processor configured to execute instructions stored on a memory component electrically coupled to the processor, the instructions including, or capable of being executed by, one or more algorithms for self-correcting the various camera angles and positions described herein over time with use as the initial position, angle, or orientation of the camera is bumped or distorted due to an unintentional drop event or other event.
[0084] In at least one example, the sensor system 6-102 can include one or more scene cameras 6-106. The system 6-102 can include two scene cameras 6-106 disposed on either side of the bridge or arch of the nose of the HMD device 6-100, such that each of the two cameras 6-102 approximately corresponds to the position of the user's left and right eyes behind the cover 6-103. In at least one example, the scene cameras 6-106 are oriented generally forward in the Y direction to capture images in front of the user while the HMD 6-100 is in use. In at least one example, the scene cameras are color cameras and provide images and content for MR video pass-through to a display screen facing the user's eyes when using the HMD device 6-100. The scene cameras 6-106 can also be used for environment and object reconstruction.
[0085] In at least one example, the sensor system 6-102 may include a first depth sensor 6-108 oriented generally forward in the Y direction. In at least one example, the first depth sensor 6-108 may be used for environment and object reconstruction and hand and body tracking of the user. In at least one example, the sensor system 6-102 may include a second depth sensor 6-110 centrally disposed along the width of the HMD device 6-100 (e.g., along the X axis). For example, the second depth sensor 6-110 may be positioned in alignment with the center bridge or feature above the user's nose when wearing the HMD 6-100. In at least one example, the second depth sensor 6-110 may be used for environment and object reconstruction and hand and body tracking. In at least one example, the second depth sensor may include a LIDAR sensor.
[0086] In at least one example, the sensor system 6-102 can include a generally forward-facing depth projector 6-112 for projecting electromagnetic waves, e.g., in the form of a predetermined pattern of light dots, into and within a field of view of, or including and beyond, the user and / or scene camera 6-106. In at least one example, the depth projector can project electromagnetic waves of light in the form of a dot light pattern that reflects off objects and returns to the depth sensors described above, including the depth sensors 6-108, 6-110. In at least one example, the depth projector 6-112 can be used for environment and object reconstruction and hand and body tracking.
[0087] In at least one example, the sensor system 6-102 may include downward-facing cameras 6-114 having fields of view directed generally downward relative to the HMD device 6-100 in the Z-axis. In at least one example, the downward-facing cameras 6-114 may be disposed on the left and right sides of the HMD device 6-100 as shown and may be used for hand and body tracking, headset tracking, and facial avatar detection and creation to display a user avatar on the forward-facing display screen of the HMD device 6-100 as described elsewhere herein. The downward-facing cameras 6-114 may be used to capture facial expressions and movements of the user below the HMD device 6-100, including, for example, the cheeks, mouth, and chin.
[0088] In at least one example, the sensor system 6-102 may include chin cameras 6-116. In at least one example, the chin cameras 6-116 are disposed on the left and right sides of the HMD device 6-100 as shown and may be used for hand and body tracking, headset tracking, and facial avatar detection and creation to display a user avatar on the forward-facing display screen of the HMD device 6-100 as described elsewhere herein. The chin cameras 6-116 may be used to capture the expressions and movements of the user's face below the HMD device 6-100, including, for example, the user's chin, cheeks, mouth, and jaw. For hand and body tracking, headset tracking, and facial avatar,
[0089] In at least one example, the sensor system 6-102 can include a side camera 6-118. The side camera 6-118 can be oriented to capture left and right side views in the X-axis or direction relative to the HMD device 6-100. In at least one example, the side camera 6-118 can be used for hand and body tracking, headset tracking, and facial avatar detection and reconstruction.
[0090] In at least one example, the sensor system 6-102 can include multiple eye tracking and gaze tracking sensors for determining the identity, status, and gaze direction of a user's eyes during and / or before use. In at least one example, the eye / gaze tracking sensors can include nose-eye cameras 6-120 disposed on either side of and adjacent to the user's nose when the HMD device 6-100 is worn. The eye / gaze sensors can also include under-eye cameras 6-122 disposed below each user's eye for capturing eye images for facial avatar detection and creation, gaze tracking, and iris identification functions.
[0091] In at least one example, the sensor system 6-102 includes an infrared illuminator 6-124 directed outward from the HMD device 6-100 to illuminate the external environment and any objects therein with IR light for IR detection by one or more IR sensors of the sensor system 6-102. In at least one example, the sensor system 6-102 can include a flicker sensor 6-126 and an ambient light sensor 6-128. In at least one example, the flicker sensor 6-126 can detect the overhead light refresh rate to avoid display flicker. In one example, the infrared illuminator 6-124 can include a light-emitting diode and can be used, among other things, in low-light environments to illuminate a user's hands and other objects in low light for detection by the infrared sensors of the sensor system 6-102.
[0092] In at least one example, multiple sensors including a scene camera 6-106, a downward-facing camera 6-114, a chin camera 6-116, a side camera 6-118, a depth projector 6-112, and depth sensors 6-108, 6-110 can be used in combination with an electrically coupled controller to combine depth data with camera data for hand tracking and sizing for better hand tracking and object recognition and tracking capabilities of the HMD device 6-100. In at least one example, the downward-facing camera 6-114, chin camera 6-116, and side camera 6-118 described above and shown in FIG. 1I can be wide-angle cameras capable of operating in the visible and infrared spectrum. In at least one example, these cameras 6-114, 6-116, 6-118 can operate with only black and white light detection to simplify image processing and increase sensitivity.
[0093] Any of the features, components, and / or parts shown in Figure 1I, including their arrangements and configurations, alone or in any combination, may be included in any of the other example devices, features, components, and parts shown in Figures 1J-1L and described herein. Similarly, any of the features, components, and / or parts shown and described with reference to Figures 1J-1L, including their arrangements and configurations, alone or in any combination, may be included in the example devices, features, components, and parts shown in Figure 1I.
[0094] 1J shows a bottom perspective view of an example of an HMD 6-200 including a cover or shroud 6-204 secured to a frame 6-230. In at least one example, the sensors 6-203 of the sensor system 6-202 can be disposed around the periphery of the HDM 6-200 such that the sensors 6-203 are disposed outwardly around the periphery of the display region or area 6-232 so as not to obstruct the view of the displayed light. In at least one example, the sensors can be disposed behind the shroud 6-204 and aligned with a transparent portion of the shroud to allow the sensors and projector to pass light back and forth through the shroud 6-204. In at least one example, an opaque ink or other opaque material or film / layer can be disposed on the shroud 6-204 around the display area 6-232 to obscure components of the HMD 6-200 outside of the display area 6-232 other than the transparent portion defined by the opaque portion, through which the sensors and projector transmit and receive light and electromagnetic signals during operation. In at least one example, the shroud 6-204 allows light to pass through it from the display (e.g., within the display area 6-232), but not radially outward from the display area around the outer periphery of the shroud 6-204.
[0095] In some examples, the shroud 6-204 includes a transparent portion 6-205 and an opaque portion 6-207, as described above and elsewhere herein. In at least one example, the opaque portion 6-207 of the shroud 6-204 can define one or more transparent areas 6-209 through which the sensors 6-203 of the sensor system 6-202 can send and receive signals. In the illustrated example, the sensors 6-203 of the sensor system 6-202, which transmit and receive signals through the shroud 6-204, or more specifically through the transparent region 6-209 of (or defined by) the opaque portion 6-207 of the shroud 6-204, may include sensors the same as or similar to those shown in the example of FIG. 1I, such as depth sensors 6-108 and 6-110, a depth projector 6-112, first and second scene cameras 6-106, first and second downward-facing cameras 6-114, first and second side cameras 6-118, and first and second infrared illuminators 6-124. These sensors are also shown in the examples of FIGS. 1K and 1L. Other sensors, sensor types, numbers of sensors, and their relative positions may be included in one or more other examples of the HMD.
[0096] Any of the features, components, and / or parts shown in Figure 1J, including their arrangement and configuration, alone or in any combination, may be included in any of the other example devices, features, components, and parts shown in Figure 1I and Figures 1K-1L and described herein. Similarly, any of the features, components, and / or parts shown and described with reference to Figure 1I and Figures 1K-1L, including their arrangement and configuration, alone or in any combination, may be included in the example devices, features, components, and parts shown in Figure 1J.
[0097] FIG. 1K shows a front view of a portion of an example HMD device 6-300, including a display 6-334, brackets 6-336, 6-338, and a frame or housing 6-330. The example shown in FIG. 1K does not include a front cover or shroud, so as to show the brackets 6-336, 6-338. For example, the shroud 6-204 shown in FIG. 1J includes an opaque portion 6-207 that visually covers / blocks the view of anything outside (e.g., radially / circumferentially outward) of the display / viewing area 6-334, including the sensor 6-303 and bracket 6-338.
[0098] In at least one example, the various sensors of the sensor system 6-302 are coupled to brackets 6-336, 6-338. In at least one example, the scene cameras 6-306 include tight tolerances on their angles relative to one another. For example, the tolerance on the mounting angle between the two scene cameras 6-306 can be 0.5 degrees or less, e.g., 0.3 degrees or less. To achieve and maintain such tight tolerances, in one example, the scene camera 6-306 can be mounted to the bracket 6-338 rather than the shroud. The bracket can include a cantilever arm to which the scene camera 6-306 and other sensors of the sensor system 6-302 can be mounted such that their position and orientation remain undeformed in the event of a drop event by the user that results in any deformation of the other brackets 6-226, the housing 6-330, and / or the shroud.
[0099] Any of the features, components, and / or parts shown in Figure 1K, including their arrangements and configurations, alone or in any combination, may be included in any of the other example devices, features, components, and parts shown in Figures 1I-1J and 1L and described herein. Similarly, any of the features, components, and / or parts shown and described with reference to Figures 1I-1J and 1L, including their arrangements and configurations, alone or in any combination, may be included in the example devices, features, components, and parts shown in Figure 1K.
[0100] FIG. 1L shows a bottom view of an example HMD 6-400 including a front display / cover assembly 6-404 and a sensor system 6-402. The sensor system 6-402 can be similar to other sensor systems described above and elsewhere herein, including with reference to FIGS. 1I-1K. In at least one example, the chin camera 6-416 can face downward to capture images of the user's lower facial features. In one example, the chin camera 6-416 can be directly coupled to a frame or housing 6-430 or to one or more internal brackets directly coupled to the illustrated frame or housing 6-430. The frame or housing 6-430 can include one or more apertures / openings 6-415 through which the chin camera 6-416 can send and receive signals.
[0101] Any of the features, components, and / or parts shown in Figure 1L, including their arrangements and configurations, alone or in any combination, may be included in any of the other example devices, features, components, and parts shown in Figures 1I-1K and described herein. Similarly, any of the features, components, and / or parts shown and described with reference to Figures 1I-1K, including their arrangements and configurations, alone or in any combination, may be included in the example devices, features, components, and parts shown in Figure 1L.
[0102] 1M shows a rear perspective view of an interpupillary distance (IPD) adjustment system 11.1.1-102 including first and second optical modules 11.1.1-104a-b slidably engaged / coupled to respective guide rods 11.1.1-108a-b and motors 11.1.1-110a-b of left and right adjustment subsystems 11.1.1-106a-b. The IPD adjustment system 11.1.1-102 can include a button 11.1.1-114 coupled to a bracket 11.1.1-112 and in electrical communication with the motors 11.1.1-110a-b. In at least one example, the button 11.1.1-114 is in electrical communication with the first and second motors 11.1.1-110a-b via a processor or other circuit components to activate the first and second motors 11.1.1-110a-b and cause the first and second optical modules 11.1.1-104a-b, respectively, to change position relative to each other.
[0103] In at least one example, the first and second optical modules 11.1.1-104a-b can include respective display screens configured to project light toward the user's eyes when wearing the HMD 11.1.1-100. In at least one example, the user can manipulate (e.g., press and / or rotate) the button 11.1.1-114 to actuate position adjustments of the optical modules 11.1.1-104a-b to match the interpupillary distance of the user's eyes. The optical modules 11.1.1-104a-b can also include one or more cameras or other sensors / sensor systems for imaging and measuring the user's IPD so that the optical modules 11.1.1-104a-b can be adjusted to match the IPD.
[0104] In one example, a user can actuate the button 11.1.1-114 to trigger an automatic position adjustment of the first and second optical modules 11.1.1-104a-b. In one example, a user can actuate the button 11.1.1-114 to trigger a manual adjustment, such as moving the optical modules 11.1.1-104a-b farther or closer together when the user rotates the button 11.1.1-114 in one direction or the other, until the user visually aligns their IPD. In one example, the manual adjustment is communicated electronically via one or more circuits, and power for movement of the optical modules 11.1.1-104a-b via the motors 11.1.1-110a-b is provided by a power source. In one example, the adjustment and movement of the optical modules 11.1.1-104a-b via actuation of the button 11.1.1-114 is mechanically actuated via movement of the button 11.1.1-114.
[0105] Any of the features, components, and / or parts shown in Figure 1M, including their arrangement and configuration, alone or in any combination, may be included in any of the other example devices, features, components, and parts shown in any other figure shown and described herein, as well as any of the features, components, and / or parts, alone or in any combination, shown and described with reference to any other figure shown and described herein.
[0106] FIG. 1N shows a front perspective view of a portion of an HMD 11.1.2-100, including an outer structural frame 11.1.2-102 and an inner or intermediate structural frame 11.1.2-104, which define first and second apertures 11.1.2-106a, 11.1.2-106b. The apertures 11.1.2-106a-b are shown with dashed lines in FIG. 1N because the view of the apertures 11.1.2-106a-b may be obstructed by one or more other components of the HMD 11.1.2-100 coupled to the inner frame 11.1.2-104 and / or the outer frame 11.1.2-102, as shown. In at least one example, the HMD 11.1.2-100 can include a first mounting bracket 11.1.2-108 coupled to the inner frame 11.1.2-104. In at least one example, a mounting bracket 11.1.2-108 is coupled to the inner frame 11.1.2-104 between the first and second apertures 11.1.2-106a-b.
[0107] The mounting bracket 11.1.2-108 may include an intermediate or central portion 11.1.2-109 coupled to the inner frame 11.1.2-104. In some examples, the intermediate or central portion 11.1.2-109 may not be the geometric middle or center of the bracket 11.1.2-108. Rather, the intermediate / central portion 11.1.2-109 may be disposed between first and second cantilevered extension arms extending away from the intermediate portion 11.1.2-109. In at least one example, the mounting bracket 108 includes first and second cantilevered arms 11.1.2-112 and 11.1.2-114 extending away from the intermediate portion 11.1.2-109 of the mounting bracket 11.1.2-108 coupled to the inner frame 11.1.2-104.
[0108] As shown in FIG. 1N, the outer frame 11.1.2-102 can define a curved shape on its underside to accommodate a user's nose when the user is wearing the HMD 11.1.2-100. The curved shape can be referred to as a nose bridge 11.1.2-111 and can be centrally located on the underside of the HMD 11.1.2-100 as shown. In at least one example, the mounting bracket 11.1.2-108 can be connected to the inner frame 11.1.2-102 between the apertures 11.1.2-106a-b such that the cantilevered arms 11.1.2-112, 11.1.2-114 extend downward and laterally outward away from the intermediate portion 11.1.2-109 to complement the shape of the nose bridge 11.1.2-111 of the outer frame 11.1.2-104. In this manner, the mounting bracket 11.1.2-108 is configured to accommodate the user's nose as described above. The shape of the nose bridge 11.1.2-111 accommodates the nose in that the nose bridge 11.1.2-111 provides a curvature that curves with, over, on and around the user's nose for comfort and fit.
[0109] The first cantilevered arm 11.1.2-112 can extend in a first direction away from the intermediate portion 11.1.2-109 of the mounting bracket 11.1.2-108, and the second cantilevered arm 11.1.2-114 can extend in a second direction opposite the first direction away from the intermediate portion 11.1.2-109 of the mounting bracket 11.1.2-10. The first and second cantilevered arms 11.1.2-112, 11.1.2-114 are referred to as "cantilevered" or "cantilever" arms because each arm 11.1.2-112, 11.1.2-114 includes a distal free end 11.1.2-116, 11.1.2-118, respectively, that is not secured to the inner and outer frames 11.1.2-102, 11.1.2-104. In this way, the arms 11.1.2-112, 11.1.2-114 are cantilevered from intermediate portions 11.1.2-109 which may be connected to the inner frame 11.1.2-104 with the distal ends 11.1.2-102, 11.1.2-104 unattached.
[0110] In at least one example, the HMD 11.1.2-100 can include one or more components coupled to the mounting bracket 11.1.2-108. In one example, the components include a plurality of sensors 11.1.2-110a-f. Each sensor of the plurality of sensors 11.1.2-110a-f can include various types of sensors, including cameras, IR sensors, etc. In some examples, one or more of the sensors 11.1.2-110a-f can be used for object recognition in three-dimensional space, such that maintaining accurate relative positions of two or more of the plurality of sensors 11.1.2-110a-f is important. The cantilevered nature of the mounting bracket 11.1.2-108 can protect the sensors 11.1.2-110a-f from damage and repositioning in the event of an accidental drop by the user. Because the sensors 11.1.2-110a-f are cantilevered onto the arms 11.1.2-112, 11.1.2-114 of the mounting bracket 11.1.2-108, stresses and deformations of the inner and / or outer frames 11.1.2-104, 11.1.2-102 are not transferred to the cantilevered arms 11.1.2-112, 11.1.2-114 and therefore do not affect the relative positioning of the sensors 11.1.2-110a-f coupled / attached to the mounting bracket 11.1.2-108.
[0111] Any of the features, components, and / or parts shown in Figure 1N, including their arrangement and configuration, alone or in any combination, may be included in any of the other example devices, features, and parts described herein. Similarly, any of the features, components, and / or parts shown and described herein, including their arrangement and configuration, alone or in any combination, may be included in the example devices, features, components, and parts shown in Figure 1N.
[0112] FIG. 10 illustrates an example of an optical module 11.3.2-100 for use in an electronic device, such as an HMD, including the HDM device described herein. As shown in one or more other examples described herein, optical module 11.3.2-100 may be one of two optical modules in an HMD, each aligned to project light toward a user's eye. In this manner, a first optical module can project light toward a first eye of a user through a display screen, and a second optical module of the same device can project light toward a second eye of the user through another display screen.
[0113] In at least one example, the optical module 11.3.2-100 can include an optical frame or housing 11.3.2-102, which can also be referred to as a barrel or optical module barrel. The optical module 11.3.2-100 can also include a display 11.3.2-104, including a display screen or multiple display screens, coupled to the housing 11.3.2-102. The display 11.3.2-104 can be coupled to the housing 11.3.2-102 such that the display 11.3.2-104 is configured to project light toward a user's eyes when the HMD of which the display module 11.3.2-100 is a part is worn during use. In at least one example, the housing 11.3.2-102 can surround the display 11.3.2-104 and provide a connection mechanism for coupling other components of the optical module described herein.
[0114] In one example, the optical module 11.3.2-100 may include one or more cameras 11.3.2-106 coupled to the housing 11.3.2-102. The cameras 11.3.2-106 may be positioned relative to the display 11.3.2-104 and the housing 11.3.2-102 such that the cameras 11.3.2-106 are configured to capture one or more images of a user's eyes during use. In at least one example, the optical module 11.3.2-100 may also include a light strip 11.3.2-108 surrounding the display 11.3.2-104. In one example, the light strip 11.3.2-108 is disposed between the display 11.3.2-104 and the camera 11.3.2-106. The light strip 11.3.2-108 may include a plurality of lights 11.3.2-110. The plurality of lights may include one or more light-emitting diodes (LEDs) or other lights configured to project light toward the user's eyes when the HMD is worn. The individual lights 11.3.2-110 of the light strip 11.3.2-108 may be spaced around the strip 11.3.2-108 and thus may be evenly or unevenly spaced around the display 11.3.2-104 at various locations on the strip 11.3.2-108 and around the display 11.3.2-104.
[0115] In at least one example, the housing 11.3.2-102 defines a viewing opening 11.3.2-101 through which a user can view the display 11.3.2-104 when the HMD device is worn. In at least one example, the LEDs are configured and arranged to emit light onto the user's eyes through the viewing opening 11.3.2-101. In one example, the camera 11.3.2-106 is configured to capture one or more images of the user's eyes through the viewing opening 11.3.2-101.
[0116] As mentioned above, each of the components and features of optical module 11.3.2-100 shown in FIG. 1O may be replicated in another (e.g., a second) optical module disposed with the HMD to interact with the user's other eye (e.g., project light and capture images).
[0117] Any of the features, components, and / or parts shown in Figure 1O, including their arrangement and configuration, alone or in any combination, may be included in any of the other example devices, features, components, and parts shown in Figure 1P or otherwise described herein. Similarly, any of the features, components, and / or parts shown and described with reference to Figure 1P or otherwise described herein, including their arrangement and configuration, alone or in any combination, may be included in the example devices, features, components, and parts shown in Figure 1O.
[0118] 1P illustrates a cross-sectional view of an example optical module 11.3.2-200 including a housing 11.3.2-202, a display assembly 11.3.2-204 coupled to the housing 11.3.2-202, and a lens 11.3.2-216 coupled to the housing 11.3.2-202. In at least one example, the housing 11.3.2-202 defines a first aperture or channel 11.3.2-212 and a second aperture or channel 11.3.2-214. The channels 11.3.2-212, 11.3.2-214 may be configured to slidably engage respective rails or guide rods of an HMD device to enable the optical module 11.3.2-200 to be positioned relative to a user's eyes to match the user's inter-papillary distance (IPD). The housing 11.3.2-202 can slidably engage guide rods to secure the optical module 11.3.2-200 in place within the HMD.
[0119] In at least one example, the optical module 11.3.2-200 may also include a lens 11.3.2-216 coupled to the housing 11.3.2-202 and disposed between the display assembly 11.3.2-204 and the user's eyes when the HMD is worn. The lens 11.3.2-216 may be configured to direct light from the display assembly 11.3.2-204 toward the user's eyes. In at least one example, the lens 11.3.2-216 may be part of a lens assembly that includes a corrective lens removably attached to the optical module 11.3.2-200. In at least one example, the lens 11.3.2-216 is disposed over the light strip 11.3.2-208 and one or more eye tracking cameras 11.3.2-206, such that the camera 11.3.2-206 is configured to capture images of the user's eyes through the lens 11.3.2-216, and the light strip 11.3.2-208 includes lights configured to project light into the user's eyes through the lens 11.3.2-216 during use.
[0120] Any of the features, components, and / or parts shown in Figure 1P, including their arrangement and configuration, alone or in any combination, may be included in any of the other example devices, features, components, and parts described herein. Similarly, any of the features, components, and / or parts shown and described herein, including their arrangement and configuration, alone or in any combination, may be included in the example devices, features, components, and parts shown in Figure 1P.
[0121] 2 is a block diagram of an example controller 110, according to some embodiments. While certain features are shown, those skilled in the art will understand from this disclosure that various other features are not shown for the sake of brevity so as not to obscure more pertinent aspects of the embodiments disclosed herein. Thus, by way of 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., 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, or similar types of interfaces), one or more programming (e.g., I / O) interfaces 210, memory 220, and one or more communication buses 204 for interconnecting these and various other components.
[0122] In some embodiments, one or more communication buses 204 include circuitry that interconnects and controls communications between system components. In some embodiments, 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, etc.
[0123] 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 (DDRRAM), or other random-access solid-state memory devices. In some embodiments, memory 220 includes non-volatile memory, such as one or more magnetic storage devices, optical storage devices, flash memory devices, or other non-volatile solid-state storage devices. Memory 220 optionally includes one or more storage devices located remotely from the one or more processing units 202. Memory 220 includes a non-transitory computer-readable storage medium. In some embodiments, memory 220, or its non-transitory computer-readable storage medium, stores the following programs, modules, and data structures, or a subset thereof, including an optional operating system 230 and an XR experience module 240:
[0124] Operating system 230 includes instructions for handling various basic system services and performing hardware-dependent tasks. In some embodiments, XR experience module 240 is configured to manage and coordinate one or more XR experiences for one or more users (e.g., a single XR experience for one or more users, or multiple XR experiences for respective groups of one or more users). To that end, in various embodiments, XR experience module 240 includes a data acquisition unit 241, a tracking unit 242, an adjustment unit 246, and a data transmission unit 248.
[0125] 1A , and optionally one or more of input device 125, output device 155, sensor 190, and / or peripheral device 195. To that end, in various embodiments, data acquisition unit 241 includes instructions and / or logic therefor, as well as heuristics and metadata therefor.
[0126] In some embodiments, tracking unit 242 is configured to map scene 105 and track the position / location of at least display generating component 120 relative to scene 105 of FIG. 1A , and optionally relative to one or more of input device 125, output device 155, sensor 190, and / or peripheral device 195. To that end, in various embodiments, tracking unit 242 includes instructions and / or logic therefor, as well as heuristics and metadata therefor. In some embodiments, tracking unit 242 includes hand tracking unit 244 and / or eye tracking unit 243. In some embodiments, hand tracking unit 244 is configured to track the position / location of one or more parts of a user's hand and / or the movement of one or more parts of a user's hand relative to scene 105 of FIG. 1A , relative to display generating component 120, and / or relative to a coordinate system defined relative to the user's hand. Hand tracking unit 244 is described in more detail below with respect to FIG. 4. In some embodiments, eye tracking unit 243 is configured to track the position and movement of the user's gaze (or, more broadly, the user's eyes, face, or head) relative to scene 105 (e.g., relative to the physical environment and / or the user (e.g., the user's hands)), or relative to XR content displayed via display generation component 120. Eye tracking unit 243 is described in more detail below with respect to FIG. 5.
[0127] In some embodiments, coordination unit 246 is configured to manage and coordinate the XR experience presented to the user by display generation component 120 and, optionally, by one or more of output devices 155 and / or peripheral devices 195. To that end, in various embodiments, coordination unit 246 includes instructions and / or logic therefor, as well as heuristics and metadata therefor.
[0128] In some embodiments, data transmission unit 248 is configured to transmit data (e.g., presentation data, location data, etc.) to at least display generation component 120, and optionally to one or more of input device 125, output device 155, sensor 190, and / or peripheral device 195. To that end, in various embodiments, data transmission unit 248 includes instructions and / or logic therefor, as well as heuristics and metadata therefor.
[0129] 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 adjustment unit 246, and the data transmission unit 248 are shown as being present 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 adjustment unit 246, and the data transmission unit 248 can be located within separate computing devices.
[0130] Furthermore, Figure 2 is intended more to illustrate the functionality of various features that may be present in particular embodiments, as opposed to a structural overview of the embodiments described herein. As will be recognized by those skilled in the art, items shown separately can be combined and some items can be separated. For example, some functional modules shown separately in Figure 2 can be implemented in a single module, and various functions of a single functional block can be implemented by one or more functional blocks in various embodiments. The actual number of modules, as well as the division of specific functions and how functions are allocated among them, will vary depending on implementation and, in some embodiments, will depend in part on the particular combination of hardware, software, and / or firmware selected for a particular implementation.
[0131] 3 is a block diagram of an example of a display generation component 120, according to some embodiments. While certain features are shown, those skilled in the art will understand from this disclosure that, for the sake of brevity, various other features are not shown so as to not obscure more pertinent aspects of the embodiments disclosed herein. To that end, by way of non-limiting example, in some embodiments, the display generation component 120 (e.g., an HMD) includes one or more processing units 302 (e.g., microprocessors, ASICs, FPGAs, GPUs, CPUs, processing cores, 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, IEEE 802.11x, IEEE 802.16x, GSM, CDMA, TDMA, GPS, infrared, 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 inward-facing and / or outward-facing image sensors 314, memory 320, and one or more communication buses 304 for interconnecting these and various other components.
[0132] In some embodiments, the one or more communication buses 304 include circuitry that interconnects and controls communications between system components. In some embodiments, the one or more I / O devices and sensors 306 include at least one of 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, one or more depth sensors (e.g., structured light, time of flight, etc.), etc.
[0133] In some embodiments, the one or more XR displays 312 are configured to provide an XR experience to a user. In some embodiments, the 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-emissive element display (SED), field-emission display (FED), quantum dot light-emitting diode (QD-LED), MEMS, and / or similar display types. In some embodiments, the one or more XR displays 312 correspond to a waveguide display, such as a diffractive, reflective, polarized, holographic, etc. For example, the display generation component 120 (e.g., an 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, the one or more XR displays 312 are capable of presenting mixed reality (MR) or virtual reality (VR) content. In some embodiments, the one or more XR displays 312 are capable of presenting mixed reality (MR) or virtual reality (VR) content.
[0134] 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 eye-tracking cameras). 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 hand(s) and optionally the user's arm(s) (and may be referred to as hand-tracking cameras). In some embodiments, the one or more image sensors 314 are configured to face forward to acquire image data corresponding to a scene as the user would view it if the display generating component 120 (e.g., an HMD) were not present (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., with a complementary metal-oxide semiconductor (CMOS) image sensor or a charge-coupled device (CCD) image sensor), one or more infrared (IR) cameras, one or more event-based cameras, and / or the like.
[0135] 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 remotely from the one or more processing units 302. Memory 320 includes a non-transitory computer-readable storage medium. In some embodiments, memory 320, or its non-transitory computer-readable storage medium, stores the following programs, modules, and data structures, or a subset thereof, including an optional operating system 330 and an XR presentation module 340:
[0136] The operating system 330 includes instructions for handling various basic system services and for performing hardware-dependent tasks. In some embodiments, the XR presentation module 340 is configured to present XR content to a user via one or more XR displays 312. To that end, in various embodiments, the XR presentation module 340 includes a data acquisition unit 342, an XR presentation unit 344, an XR map generation unit 346, and a data transmission unit 348.
[0137] In some embodiments, the data acquisition unit 342 is configured to acquire data (e.g., presentation data, interaction data, sensor data, location data, etc.) from at least the controller 110 of Figure 1A. To that end, in various embodiments, the data acquisition unit 342 includes instructions and / or logic therefor, as well as heuristics and metadata therefor.
[0138] In some embodiments, the XR presentation unit 344 is configured to present XR content via one or more XR displays 312. To that end, in various embodiments, the XR presentation unit 344 includes instructions and / or logic therefor, as well as heuristics and metadata therefor.
[0139] 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. To that end, in various embodiments, the XR map generation unit 346 includes instructions and / or logic therefor, as well as heuristics and metadata therefor.
[0140] In some embodiments, data transmission unit 348 is configured to transmit data (e.g., presentation data, location data, etc.) to at least controller 110, and optionally to one or more of input device 125, output device 155, sensor 190, and / or peripheral device 195. To that end, in various embodiments, data transmission unit 348 includes instructions and / or logic therefor, as well as heuristics and metadata therefor.
[0141] Although the data acquisition unit 342, the XR presentation unit 344, the XR map generation unit 346, and the data transmission unit 348 are shown as residing on a single device (e.g., the display generation component 120 of FIG. 1A), it should be understood that in other embodiments, any combination of the data acquisition unit 342, the XR presentation unit 344, the XR map generation unit 346, and the data transmission unit 348 may be located within separate computing devices.
[0142] Furthermore, Figure 3 is intended more to illustrate the functionality of various features that may be present in particular implementations, as opposed to a structural overview of the embodiments described herein. As will be recognized by those skilled in the art, items shown separately can be combined and some items can be separated. For example, some functional modules shown separately in Figure 3 can be implemented within a single module, and various functions of a single functional block can be performed by one or more functional blocks in various embodiments. The actual number of modules, as well as the division of specific functions and how functions are allocated among them, will vary from implementation to implementation and, in some embodiments, will depend in part on the particular combination of hardware, software, and / or firmware selected for a particular implementation.
[0143] 4 is a schematic diagram of an example embodiment of hand tracking device 140. In some embodiments, hand tracking device 140 (FIG. 1A) is controlled by hand tracking unit 244 (FIG. 2) to track the position / location of one or more parts of a user's hand and / or the movement of one or more parts of a user's hand relative to scene 105 of FIG. 1A (e.g., relative to a portion of the physical environment surrounding the user, relative to display generating component 120, or relative to a portion of the user (e.g., the user's face, eyes, or head), and / or relative to the user's hand). In some embodiments, hand tracking device 140 is part of display generating component 120 (e.g., embedded in or attached to a head-mounted device). In some embodiments, hand tracking device 140 is separate from display generating component 120 (e.g., located in a separate housing or attached to a separate physical support structure).
[0144] 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) that captures three-dimensional scene information including at least the hand 406 of a human user. The image sensor 404 captures hand images with sufficient resolution to allow for differentiation of the fingers and their respective positions. The image sensor 404 typically captures images of other parts of the user's body, or all of the body, and can have either zoom capabilities or a dedicated sensor with high magnification to capture hand images 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 or functions as an image sensor that captures the physical environment of the scene 105. In some embodiments, the image sensor 404 is positioned relative to the user or the user's environment such that the field of view of the image sensor, or a portion thereof, is used to define an interaction space in which hand movements captured by the image sensor are processed as inputs to the controller 110.
[0145] In some embodiments, image sensor 404 outputs a sequence of frames containing 3D map data (and possibly color image data) to controller 110, which extracts high-level information from the map data. This high-level information is typically provided via an application program interface (API) to an application running on the controller, which drives display generation component 120 accordingly. For example, a user can interact with software running on controller 110 by moving their hand 406 and changing the posture of their hand.
[0146] In some embodiments, the image sensor 404 projects a spot pattern onto a scene including 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 shift of the spots of the pattern. This approach is advantageous in that it does not require the user to hold or wear any type of beacon, sensor, or other marker. This provides depth coordinates of points in the scene relative to a predetermined reference plane at a specific distance from the image sensor 404. In this disclosure, the image sensor 404 is assumed to define an orthogonal set of x, y, and z axes such that the depth coordinate of a point in the scene corresponds to the z component measured by the image sensor. Alternatively, the image sensor 404 (e.g., a hand tracking device) can use other 3D mapping methods, such as stereoscopic imaging or time-of-flight measurements, based on single or multiple cameras or other types of sensors.
[0147] In some embodiments, the hand tracking device 140 captures and processes a time sequence of depth maps containing the user's hand while the user moves the hand (e.g., the entire hand or one or more fingers). Software running on the image sensor 404 and / or a processor in the controller 110 processes the 3D map data to extract patch descriptors of the hand in these depth maps. The software matches these descriptors with patch descriptors stored in the database 408, based on a previous training process, to estimate the pose of the hand in each frame. The pose typically includes the 3D locations of the user's wrist joints and fingertips.
[0148] The software can also analyze hand and / or finger trajectories across multiple frames in a sequence to identify gestures. The pose estimation functionality described herein may be interleaved with motion tracking functionality, whereby patch-based pose estimation is performed only once every two (or more) frames, while tracking is used to discover pose changes that occur across the remaining frames. Pose, motion, and gesture information is provided to an application program running on controller 110 via the API described above. This program can, for example, move and modify an image presented on display generation component 120 or perform other functions in response to the pose and / or gesture information.
[0149] In some embodiments, the gesture includes an air gesture, which is detected without (or independent of) 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) and is based on detected movement of a part of the user's body in the air (e.g., head, one or more arms, one or more hands, one or more fingers, and / or one or more legs), 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 of the user's body 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 another of the user's hands, and / or movement of a user's finger relative to another finger or part of the user's hand), and / or absolute movement of the user's body part (e.g., a tap gesture involving movement of the hand in a predetermined pose by a predetermined amount and / or speed, or a shake gesture involving a predetermined speed or amount of rotation of the user's body part).
[0150] In some embodiments, input gestures used in various examples and embodiments described herein include air gestures performed by movement of a user's finger(s) relative to other finger(s) or part(s) of the user's hand to interact with an XR environment (e.g., a virtual or mixed reality environment), according to some embodiments. In some embodiments, an air gesture is a gesture that is 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 is based on detected movement of a part of the user's body in 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 of the user's body 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 the user's other hand relative to one of the user's hands, and / or movement of the user's fingers 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 that includes movement of the hand in a predetermined pose by a predetermined amount and / or speed, or a shake gesture that includes rotation of the part of the user's body a predetermined speed or amount).
[0151] In some embodiments where the input gesture is an air gesture (e.g., in the absence of physical contact with an input device that provides a computer system with information about which user interface element is the target of the user input, such as contact with a user interface element displayed on a touchscreen 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., in the case of direct input, as described below). Thus, in implementations that include air gestures, the input gesture is detected attention (e.g., gaze) to a user interface element in combination with (e.g., simultaneous with) movement of the user's finger(s) and / or hand to perform pinch and / or tap input, as described in more detail below.
[0152] In some embodiments, an input gesture directed at a user interface object is performed directly or indirectly with reference to the user interface object. For example, user input is performed directly at a user interface object in response to performing an input gesture with the user's hand at a position corresponding to the user interface object's position in the three-dimensional environment (e.g., as determined based on the user's current viewpoint). In some embodiments, an input gesture is performed indirectly at a user interface object in response to detecting the user's attention (e.g., gaze) to the user interface object while performing the input gesture while the user's hand position is not at a position corresponding to the user interface object's position in the three-dimensional environment. For example, for a direct input gesture, a user can direct the user's input at a user interface object by initiating the gesture at or near a position corresponding to the user interface object's displayed position (e.g., within a distance of 0.5 cm, 1 cm, 5 cm, or 0-5 cm, measured from an outer edge of the option or a central portion of the option). For indirect input gestures, a user can direct their input to a user interface object by paying attention to the user interface object (e.g., by gazing at the user interface object), and while paying attention to the option, the user initiates an input gesture (e.g., at any position detectable by the computer system) (e.g., at a position that does not correspond to the displayed position of the user interface object).
[0153] In some embodiments, input gestures (e.g., air gestures) used in various examples and embodiments described herein include pinch inputs and tap inputs for interacting with a virtual or mixed reality environment, according to some embodiments. For example, pinch inputs and tap inputs, as described below, are performed as air gestures.
[0154] In some embodiments, the pinch input is part of an air gesture, including 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 that is an air gesture includes the movement of two or more fingers of a hand to contact each other, i.e., optionally, a short break (e.g., within 0-1 second) after contact with each other. A long pinch gesture that is an air gesture includes the movement of two or more fingers of a hand to contact each other for at least a threshold amount of time (e.g., at least 1 second) before detecting a break in contact with each other. For example, a long pinch gesture includes a user holding a pinch gesture (e.g., when 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 that is an air gesture includes two (e.g., or more) pinch inputs (e.g., performed by the same hand) that are detected immediately in succession (e.g., within a predetermined period of time) after each other. For example, a user performs a first pinch input (e.g., a pinch input or a long pinch input), releases the first pinch input (e.g., breaking contact between two or more fingers), and performs a second pinch input within a predetermined period of time (e.g., within 1 second or 2 seconds) after releasing the first pinch input.
[0155] In some embodiments, a pinch-and-drag gesture that is an air gesture includes a pinch gesture (e.g., a pinch gesture or a long pinch gesture) performed in conjunction with (e.g., followed by) a drag input that changes the position of a user's hand from a first position (e.g., a start position of the drag) to a second position (e.g., an end position of the drag). In some embodiments, a user maintains the pinch gesture while performing the drag input and releases the pinch gesture (e.g., spreading two or more fingers apart) 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., a user pinches two or more fingers together and moves the same hand to a second position in the air with a drag gesture). In some embodiments, the pinch input is performed by a user's first hand and the drag input is performed by the user's second hand (e.g., the user's second hand moves from a first position to a second position in the air while the user continues the pinch input with the user's first hand). In some embodiments, an input gesture that is an air gesture includes an input (e.g., a pinch input and / or a tap input) performed using both of a user's hands. For example, the input gesture includes two (e.g., or more) pinch inputs performed in conjunction with each other (e.g., simultaneously or within a predetermined period of time). For example, a first pinch gesture (e.g., a pinch input, a long pinch input, or a pinch and drag input) performed using a first hand of the user and a second pinch input performed using the other hand (e.g., a second hand of the user's both hands) in conjunction with performing the pinch input using the first hand.
[0156] In some embodiments, a tap input (e.g., directed toward a user interface element) performed as an air gesture includes movement(s) of a user's finger(s) toward the user interface element, movement of a user's hand toward a user interface element, optionally with the user's finger(s) extended toward the user interface element, a downward movement of a user's finger (e.g., mimicking a mouse click action or a tap on a touchscreen), 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, moving the finger or hand away from the user's viewpoint and / or toward the object that is the target of the tap input followed by an end of the movement. In some embodiments, an 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 the 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 direction of acceleration of the movement of the finger or hand).
[0157] In some embodiments, the user's attention is determined to be directed to a portion of the three-dimensional environment based on detecting a gaze directed to the portion of the three-dimensional environment (optionally, without requiring other conditions). In some embodiments, the device determines that the user's attention is directed to the portion of the three-dimensional environment based on detecting a gaze directed to the portion of the three-dimensional environment with one or more additional conditions, such as requiring the gaze to be directed to the portion of the three-dimensional environment for at least a threshold duration (e.g., dwell time) while the user's viewpoint is within a distance threshold from the portion of the three-dimensional environment, and / or requiring the gaze to be directed to the portion of the three-dimensional environment, and if one of the additional conditions is not met, the device determines that the user's attention is not directed to the portion of the three-dimensional environment to which the gaze is directed (e.g., until one or more additional conditions are met).
[0158] In some embodiments, detection of a ready configuration of a user or a portion of a user is detected by a computer system, and detection of a ready configuration of the hands is used by the computer system as an indication that the user is likely preparing to interact with the computer system using one or more air gesture inputs performed with the hands (e.g., pinch, tap, pinch and drag, double pinch, 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 geometry (e.g., a pre-pinch geometry with the thumb and one or more fingers extended and spaced apart, ready to perform a pinch or grab gesture, or a pre-tap geometry with one or more fingers extended and the palm facing away from the user), whether the hand is in a predetermined position relative to the user's viewpoint (e.g., below the user's head, above the user's waist, extended at least 15 cm, 20 cm, 25 cm, 30 cm, or 50 cm from the body), and / or whether the hand has moved in a particular manner (e.g., above the user's waist, moved toward an area in front of the user 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 is responsive to attentional (e.g., gaze) input.
[0159] In scenarios where input is described with reference to air gestures, it should be understood that similar gestures can also be detected using a hardware input device attached to or held by one or more of the user's hands, where the position of the hardware input device in space can be tracked using optical tracking, one or more accelerometers, one or more gyroscopes, one or more magnetometers, and / or one or more inertial measurement units, and where the position and / or movement of the hardware input device is substituted for the position and / or movement of the one or more hands in the corresponding air gesture(s). It should be understood that in scenarios where input is described with reference to air gestures, similar gestures can also be detected using a hardware input device attached to or held by one or more of the user's hands. User input can be detected using controls included in a hardware input device, such as one or more touch-sensitive input elements, one or more pressure-sensitive input elements, one or more buttons, one or more knobs, one or more dials, one or more joysticks, one or more hand or finger covers capable of detecting the position or change in position of parts of the hands and / or fingers relative to each other, relative to the user's body, and / or relative to the user's physical environment, and / or other hardware input device controls, where user input using controls included in a hardware input device is used in place of a hand and / or finger gesture, such as an air tap or air pinch, in a corresponding air gesture(s). For example, a selection input described as being made with an air tap or air pinch input can alternatively be detected with a button press, a tap on a touch-sensitive surface, a press on a pressure-sensitive surface, or other hardware input.As another example, movement input described as being made with an air pinch and drag may alternatively be detected based on interaction with a hardware input control, such as a button press and hold, a touch on a touch-sensitive surface, a press on a pressure-sensitive surface, or based on hardware input followed by the movement of another hardware input device in space (e.g., accompanying the hand with which the hardware input device is associated). Similarly, two-handed input, including the movement of both hands relative to each other, may be made using one air gesture and one hardware input device held in the hand not making the air gesture, two hardware input devices held in separate hands, or two air gestures made with separate hands, using various combinations of air gestures and / or input detected by one or more of the hardware input devices described above.
[0160] In some embodiments, the software may be downloaded to the controller 110 in electronic form, for example, over a network, or alternatively may be provided on a tangible, non-transitory medium, such as an optical, magnetic, or electronic memory medium. In some embodiments, the database 408 is similarly stored in memory associated with the controller 110. Alternatively, or additionally, some or all of the described functionality 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). While the controller 110 is shown in FIG. 4 as, by way of example, a separate unit from the image sensor 404, some or all of the processing functionality of the controller may be implemented 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 otherwise 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 set, handheld device, or head-mounted device) or using any other suitable computerized device, such as a game console or media player. The sensing function of the image sensor 404 may likewise be integrated into a computer or other computerized device that is controlled by the sensor output.
[0161] FIG. 4 also includes a schematic diagram of a depth map 410 captured by the image sensor 404, according to some embodiments. The depth map includes a matrix of pixels having respective depth values, as described above. A pixel 412 corresponding to the hand 406 is segmented from the background and wrist in this map. The intensity of each pixel in the depth map 410 is inversely proportional to the depth value, i.e., the measured z-distance from the image sensor 404, with increasing intensity as the depth increases. The controller 110 processes these depth values to identify and segment components of the image (i.e., groups of adjacent pixels) that have characteristics of a human hand. These characteristics can include, for example, the overall size, shape, and frame-to-frame motion of the depth map sequence.
[0162] 4 also schematically illustrates a hand skeleton 414 that the controller 110 ultimately extracts from the depth map 410 of the hand 406, according to some embodiments. In FIG. 4, the hand skeleton 414 is overlaid on a hand background 416 that was segmented from the original depth map. In some embodiments, key feature points on the hand (e.g., knuckles, fingertips, center of the palm, end of the hand where it connects to the wrist, etc.), and optionally the wrist or arm connected to the hand, are identified and positioned on the hand skeleton 414. In some embodiments, the location and movement of these key feature points over multiple image frames are used by the controller 110 to determine hand gestures performed by the hand or the current state of the hand, according to some embodiments.
[0163] FIG. 5 shows an exemplary embodiment of eye tracking device 130 ( FIG. 1A ). In some embodiments, eye tracking device 130 is controlled by eye tracking unit 243 ( FIG. 2 ) to track the position and movement of a user's gaze relative to scene 105 or relative to XR content displayed via display generation component 120. In some embodiments, eye tracking device 130 is integrated with display generation component 120. For example, in some embodiments, if display generation component 120 is a head-mounted device such as a headset, helmet, goggles, or glasses, or a handheld device disposed in a wearable frame, the head-mounted device includes both components for generating XR content for viewing by the user and components for tracking the user's gaze relative to the XR content. In some embodiments, eye tracking device 130 is separate from display generation component 120. For example, if the display generation component is a handheld device or an XR chamber, eye tracking device 130 is optionally a device separate from the handheld device or the XR chamber. In some embodiments, eye tracking device 130 is a head-mounted device or part of a head-mounted device. In some embodiments, head-mounted eye tracking device 130 is optionally used in conjunction with head-mounted or non-head-mounted display generating components. In some embodiments, eye tracking device 130 is not a head-mounted device, and is optionally used in combination with head-mounted display generating components. In some embodiments, eye tracking device 130 is not a head-mounted device, and is optionally part of non-head-mounted display generating components.
[0164] In some embodiments, the display generation component 120 uses a display mechanism (e.g., left and right near-eye display panels) that displays frames including left and right images in front of the user's eyes to provide the user with a 3D virtual view. For example, the head-mounted display generation component may include left and right optical lenses (referred to herein as eyepieces) positioned 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 video 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 that allows the user to view the physical environment directly and display virtual objects on the transparent or translucent display. In some embodiments, the display generation component projects virtual objects into the physical environment. The virtual objects are projected, for example, onto a physical surface or as a hologram, allowing an individual using the system to observe the virtual objects superimposed on the physical environment. In such cases, separate display panels and image frames for the left and right eyes may not be required.
[0165] As shown in FIG. 5 , in some embodiments, eye tracking device 130 (e.g., gaze tracking device) includes at least one eye tracking camera (e.g., an infrared (IR) camera or near-IR (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 may be aimed at the user's eyes to receive reflected IR or NIR light from the light source directly from the eyes, or alternatively, may be aimed at a “hot” mirror positioned between the user's eyes and a display panel that reflects the IR or NIR light from the eyes to the eye tracking camera while allowing visible light to pass through. 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 the images to generate eye tracking information, and communicates the eye tracking information to controller 110. In some embodiments, the user's eyes are tracked separately by their respective eye tracking cameras and illumination sources. In some embodiments, only one eye of the user is tracked by a separate eye-tracking camera and lighting source.
[0166] In some embodiments, the eye tracking device 130 is calibrated using a device-specific calibration process to determine the eye tracking device's parameters for the particular operating environment 100, such as the 3D geometric relationships and parameters of the LEDs, camera, hot mirror (if present), eyepiece, and display screen. The device-specific calibration process may be performed at a factory or another facility before delivery of the AR / VR equipment to the end user. The device-specific calibration process may be an automatic or manual calibration process. The user-specific calibration process may include estimation of a particular user's eye parameters, such as pupil location, central visual location, optical axis, visual axis, eye spacing, etc. According to some embodiments, once the device-specific and user-specific parameters for the eye tracking device 130 have been determined, images captured by the eye tracking camera can be processed using a glint-assisted method to determine the user's current visual axis and point of gaze relative to the display.
[0167] As shown in FIG. 5, eye tracking device 130 (e.g., 130A or 130B) includes an eyepiece(s) 520 and a gaze tracking system including at least one eye tracking camera 540 (e.g., an infrared (IR) or near-IR (NIR) camera) positioned on the side of the user's face where eye tracking occurs 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(s) 592. The eye tracking camera 540 may be positioned between the user's eye(s) 592 and the display 510 (e.g., the left or right display panel of a head-mounted display, or the display of a handheld device, a projector, etc.) and may be directed at a mirror 550 that reflects IR or NIR light from the eye(s) 592 while transmitting visible light (e.g., as shown at the top of FIG. 5), or may be directed at the user's eye(s) 592 to receive reflected IR or NIR light from the eye(s) 592 (e.g., as shown at the bottom of FIG. 5).
[0168] In some embodiments, controller 110 renders AR or VR frames 562 (e.g., left and right frames for left and right display panels) and provides frames 562 to display 510. Controller 110 uses gaze tracking input 542 from eye tracking camera 540 for various purposes, such as in processing frames 562 for display. Controller 110 optionally estimates the user's viewpoint on display 510 based on gaze tracking input 542 obtained from eye tracking camera 540, using a glint-assisted method or other suitable method. The viewpoint estimated from gaze tracking input 542 is optionally used to determine the direction the user is currently looking.
[0169] Some possible use cases of the user's current gaze direction are described below, but are not intended to be limiting. As an exemplary use case, the controller 110 can render virtual content differently based on the determined user's gaze direction. For example, the controller 110 may generate virtual content with higher resolution in a central visual area determined from the user's current gaze direction than in a peripheral area. As another example, the controller may position or move virtual content within a view based at least in part on the user's current gaze direction. As another example, the controller may display particular virtual content within a view based at least in part on the user's current gaze direction. As another exemplary use case in an AR application, the controller 110 can orient an external camera to capture the physical environment of the XR experience and focus in the determined direction. The external camera's autofocus mechanism can then focus on an object or surface within the environment the user is currently viewing on the display 510. As another exemplary use case, eyepiece 520 may be a focusable lens, and eye-tracking information is used by the controller to adjust the focus of eyepiece 520 so that the virtual object the user is currently looking at has the proper binocular coordination to match the convergence of the user's eyes 592. Controller 110 can utilize the eye-tracking information to orient and focus eyepiece 520 so that close objects the user is looking at appear at the correct distance.
[0170] In some embodiments, the eye tracking device is part of a head-mounted device that includes a display (e.g., display 510), two eyepieces (e.g., eyepiece 520), an eye tracking camera (e.g., eye tracking camera(s) 540), and a light source (e.g., illumination source 530 (e.g., IR or NIR LED)) mounted within a wearable housing. The light source emits light (e.g., IR light or NIR light) toward the user's eye(s) 592. In some embodiments, the light sources may be arranged in a ring or circle around each lens, as shown in FIG. 5. In some embodiments, as an example, eight illumination sources 530 (e.g., LEDs) are arranged around each lens 520. However, more or fewer illumination sources 530 may be used, and other arrangements and locations of the illumination sources 530 may be used.
[0171] In some embodiments, the display 510 emits light in the visible light range and not in the IR or NIR range, and therefore does not introduce noise into the gaze tracking system. Note that the location and angle of the eye tracking camera(s) 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.
[0172] Embodiments of an eye tracking system such as that shown in FIG. 5 may be used, for example, in computer-generated reality, virtual reality, and / or mixed reality applications to provide a user with a computer-generated reality, virtual reality, augmented reality, and / or augmented virtual experience.
[0173] FIG. 6A illustrates a glint-assisted gaze tracking pipeline according to some embodiments. In some embodiments, the gaze tracking pipeline is implemented by a glint-assisted gaze tracking system (e.g., eye tracking device 130 as shown in FIGS. 1 and 5). The glint-assisted gaze tracking system can maintain a tracking state. Initially, the tracking state is off or "no." When in the tracking state, the glint-assisted gaze tracking system tracks the pupil contour and glint in the current frame using prior information from the previous frame when analyzing the current frame. When not in the tracking state, the glint-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 with the next frame in the tracking state.
[0174] As shown in FIG. 6A, an eye-tracking camera can capture left and right images of a user's left and right eyes. The captured images are then input into an eye-tracking pipeline for processing beginning at 610. As indicated by the arrow returning to element 600, the eye-tracking system can continue to capture images of the user's eyes at a rate of, for example, 60-120 frames per second. In some embodiments, each set of captured images may be input into the pipeline for processing. However, in some embodiments, or under some conditions, not all captured frames are processed by the pipeline.
[0175] At 610, if the tracking status is yes for the currently captured image, the method proceeds to element 640. If the tracking status is no at 610, the image is analyzed to detect the user's pupil and glint in the image, as shown at 620. If the pupil and glint are successfully detected at 630, the method proceeds to element 640. If not, the method returns to element 610 to process the next image of the user's eyes.
[0176] At 640, proceeding from element 610, the current frame is analyzed to track pupils and glints based in part on previous information from the previous frame. At 640, proceeding from element 630, a tracking state is initialized based on the detected pupils and glints in the current frame. The results of the processing at element 640 are checked to ensure that the tracking or detection results are reliable. For example, the results can be checked to determine whether a sufficient number of glints are successfully tracked or detected in the current frame to perform pupil and gaze estimation. At 650, if the results are not reliable, the tracking state is set to no at element 660 and the method returns to element 610 to process the next image of the user's eyes. At 650, if the results are reliable, 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.
[0177] 6A is intended to serve as an example of eye-tracking technology that may be used in particular implementations. As will be recognized by those skilled in the art, other eye-tracking technologies, now existing or developed in the future, may be used in place of or in combination with the glint-assisted eye-tracking technology described herein in computer system 101 to provide a user with an XR experience according to various embodiments.
[0178] 6B shows an exemplary environment for the electronic device 101 for providing an XR experience, according to some embodiments. In FIG. 6B , a real-world environment 602 includes the electronic device 101, a user 608, and a real-world object (e.g., a table 604). As shown in FIG. 6B , the electronic device 101 is optionally tripod-mounted or otherwise secured to the real-world environment 602 so that one or more hands of the user 608 are free (e.g., the user 608 is optionally not holding the device 101 with one or more hands). As described above, the device 101 optionally has one or more groups of sensors located on different sides of the device 101. For example, the device 101 optionally includes a sensor group 612-1 and a sensor group 612-2 located on the “rear” and “front” sides of the device 101, respectively (e.g., capable of capturing information from each side of the device 101). As used herein, the front side of the device 101 is the side that faces the user 608 and the back side of the device 101 is the side that faces away from the user 608 .
[0179] In some embodiments, sensor group 612-2 includes an eye tracking unit (e.g., eye tracking unit 245 described above with reference to FIG. 2) that includes one or more sensors for tracking the eyes and / or gaze of a user, and the eye tracking unit can "watch" user 608 and track the eye(s) of user 608 in the manner described above. In some embodiments, the eye tracking unit of device 101 can capture the movement, orientation, and / or gaze of the eyes of user 608 and process the movement, orientation, and / or gaze as input.
[0180] In some embodiments, sensor group 612-1 includes a hand tracking unit (e.g., hand tracking unit 243 described above with reference to FIG. 2) that can track one or more hands of user 608 held on the “back” side of device 101, as shown in FIG. 6B. In some embodiments, a hand tracking unit is optionally included in sensor group 612-2 so that user 608 can additionally or alternatively hold one or more hands on the “front” side of device 101 while device 101 tracks the position of the one or more hands. As described above, the hand tracking unit of device 101 can capture the movements, positions, and / or gestures of one or more hands of user 608 and process the movements, positions, and / or gestures as input.
[0181] In some embodiments, sensor group 612-1 optionally includes one or more sensors (e.g., image sensor 404 described above with reference to FIG. 4 ) configured to capture images of real-world environment 602, including table 604. As described above, device 101 can capture images of portions (e.g., part or all) of real-world environment 602 and present the captured portions of real-world environment 602 to the user via one or more display generation components of device 101 (e.g., a display of device 101 optionally located on a side of device 101 facing the user, opposite the side of device 101 facing the captured portions of real-world environment 602).
[0182] In some embodiments, the captured portion of the real-world environment 602 is used to provide the user with an XR experience, e.g., a mixed reality environment in which one or more virtual objects are overlaid on a representation of the real-world environment 602.
[0183] Accordingly, the description herein describes several embodiments of three-dimensional environments (e.g., XR environments) that include representations of real-world objects and representations of virtual objects. For example, the three-dimensional environment optionally includes a representation of a table present in a physical environment that is captured and displayed within the three-dimensional environment (e.g., actively via a camera and display of the computer system, or passively via a transparent or translucent display of the computer system). As described above, the three-dimensional environment is optionally a mixed reality system based on a physical environment, where the three-dimensional environment is captured by one or more sensors of the computer system and displayed via a display generation component. As a mixed reality system, the computer system can optionally selectively display portions and / or objects of the physical environment such that each portion and / or object of the physical environment appears to exist within the three-dimensional environment displayed by the computer system. Similarly, the computer system can optionally display virtual objects in the three-dimensional environment such that each portion and / or object of the physical environment appears to exist within the real world (e.g., the physical environment) by placing the virtual objects at respective locations within the three-dimensional environment that have corresponding locations in the real world. For example, the computer system optionally displays the vase so that it appears as if the real vase were placed on a table in the physical environment, hi some embodiments, distinct locations in the three-dimensional environment have corresponding locations in the physical environment.Thus, when a computer system is described as displaying a virtual object at a location distinct from a physical object (e.g., at or near the location of a user's hand, or on or near a physical table, etc.), the computer system displays the virtual object at a particular location in the three-dimensional environment so that the virtual object appears to be at or near the physical object in the physical world (e.g., the virtual object is displayed at a location in the three-dimensional environment that corresponds to the location in the physical environment where the virtual object would be displayed if the virtual object were a real object at that particular location).
[0184] In some embodiments, real-world objects present in the physical environment (e.g., and / or visible via display generation components) that are displayed in the three-dimensional environment can interact with virtual objects that exist only in the three-dimensional environment. For example, the three-dimensional environment can include a table and a vase placed on the table, where the table is a view (or representation) of the physical table in the physical environment and the vase is a virtual object.
[0185] In a three-dimensional environment (e.g., a real environment, a virtual environment, or an environment containing a mixture of real and virtual objects), objects may be referred to as having depth or simulated depth, or objects may be referred to as being visible, displayed, or located at different depths. In this context, depth refers to a dimension other than height or width. In some embodiments, depth is defined relative to a fixed set of coordinates (e.g., a room or object has a height, depth, and width defined relative to a fixed set of coordinates). In some embodiments, depth is defined relative to a user's location or viewpoint, where the depth dimension varies based on the user's location and / or the location and angle of the user's viewpoint. In some embodiments where depth is defined relative to the location of the user positioned relative to a surface of the environment (e.g., the floor or ground surface of the environment), objects that are farther away from the user along a line extending parallel to the surface are considered to have a greater depth within the environment, and / or the depth of an object is measured along an axis that extends outward from the user's location and is parallel to the surface of the environment (e.g., depth is defined in a cylindrical or substantially cylindrical coordinate system with the user's position at the center of the cylinder extending from the user's head toward the user's feet). Depth is defined relative to the user's viewpoint (e.g., a direction relative to a point in space that determines which parts of the environment are visible through a head-mounted device or other display). In some embodiments, objects that are further away from the user's viewpoint along a line that extends parallel to the direction of the user's viewpoint are considered to have greater depth in the environment, and / or the depth of an object is measured along an axis that extends from the user's viewpoint and extends outward from a line that is parallel to the direction of the user's viewpoint (e.g., depth is defined in a spherical or substantially spherical coordinate system with the origin of the viewpoint at the center of a sphere extending outward from the user's head).In some embodiments, depth is defined relative to a user interface container (e.g., a window or application in which application and / or system content is displayed), where the user interface container has a height and / or width, and depth is a dimension orthogonal to the height and / or width of the user interface container. In some embodiments, in situations where depth is defined relative to a user interface container, the height and / or width of the container are typically orthogonal or substantially orthogonal to a line extending from a user-based location (e.g., a user's viewpoint or location) to the user interface container (e.g., a center of the user interface container or another feature of the user interface container) when the container is placed or initially displayed in a three-dimensional environment (e.g., such that the depth dimension of the container extends outward, away from the user or the user's viewpoint). In some embodiments, in situations where depth is defined relative to a user interface container, the depth of an object relative to the user interface container refers to the object's position along the depth dimension of the user interface container. In some embodiments, different containers can have different depth dimensions (e.g., different depth dimensions extending in different directions and / or away from different starting points from a user or a user's viewpoint). In some embodiments, when depth is defined for a user interface container, the direction of the depth dimension remains constant for the user interface container when the location of the user interface container, the user, and / or the user's viewpoint changes (e.g., or when multiple different viewers are viewing the same container in a three-dimensional environment, such as during a face-to-face collaboration session, and / or when multiple participants are in a real-time communication session with shared virtual content that includes the container). In some embodiments, in the case of curved containers (e.g., including containers with curved surfaces or curved content regions), the depth dimension optionally extends into the surface of the curved container.In some situations, z separation (e.g., the separation of two objects in the depth dimension), z height (e.g., the distance of one object from another object in the depth dimension), z position (e.g., the position of one object in the depth dimension), z depth (e.g., the position of one object in the depth dimension), or simulated z dimension (e.g., depth used as an object's dimension, an environment's dimension, a direction in space, and / or a direction in a simulated space) are used to refer to the concept of depth as described above.
[0186] In some embodiments, a user can optionally use one or more hands to interact with virtual objects in the three-dimensional environment as if the virtual objects were actual objects in the physical environment. For example, as described above, one or more sensors of the computer system optionally capture one or more of the user's hands and display a representation of the user's hands in the three-dimensional environment (e.g., in a manner similar to displaying real-world objects in the three-dimensional environment described above), or in some embodiments, due to the transparency / translucency of the user interface, or the projection of the user interface onto a transparent / translucent surface, or the portion of the display generating components displaying the projection of the user interface to the user's eyes or the field of view of the user's eyes, the user's hands are visible through the display generating components by the ability to see the physical environment through the user interface. Thus, in some embodiments, the user's hands are displayed at discrete locations in the three-dimensional environment and are treated as if they were objects in the three-dimensional environment that can interact with virtual objects in the three-dimensional environment as if they were actual physical objects in the physical environment. In some embodiments, the computer system can update the display of the representation of the user's hands in the three-dimensional environment in conjunction with the movement of the user's hands in the physical environment.
[0187] In some of the embodiments described below, for example, for purposes of determining whether a physical object is directly interacting with a virtual object (e.g., whether a hand is touching, grabbing, holding, etc., a virtual object, or whether it is within a threshold distance from the virtual object), the computer system can optionally determine an “effective” distance between the physical object in the physical world and the virtual object in the three-dimensional environment. For example, a hand directly interacting with a virtual object optionally includes one or more of the fingers of a hand pressing a virtual button, a user's hand grasping a virtual vase, two fingers of a user's hand pinching / holding an application's user interface together, and any other types of interactions described herein. For example, when determining whether and / or how a user is interacting with a virtual object, the computer system optionally determines the distance between the user's hand and the virtual object. In some embodiments, the computer system determines the distance between the user's hand and the virtual object by determining the distance between the location of the hand in the three-dimensional environment and the location of the target virtual object in the three-dimensional environment. For example, one or more hands of a user are positioned at particular positions in the physical world, which the computer system optionally captures and displays at particular corresponding positions in the three-dimensional environment (e.g., positions in the three-dimensional environment at which the hands are displayed, if the hands are virtual rather than physical hands). The positions of the hands in the three-dimensional environment are optionally compared to positions of target virtual objects in the three-dimensional environment to determine a distance between the user's one or more hands and the virtual objects. In some embodiments, the computer system optionally determines the distance between a physical object and a virtual object by comparing positions in the physical world (e.g., as opposed to comparing positions in the three-dimensional environment).For example, when determining the distance between one or more of a user's hands and a virtual object, the computer system optionally determines the corresponding location in the physical world of the virtual object (e.g., the position where the virtual object would be located in the physical world if the virtual object were a physical object rather than a virtual object), and then determines the distance between the corresponding physical position and the user's one or more hands. In some embodiments, the same technique is optionally used to determine the distance between any physical object and any virtual object. Thus, as described herein, when determining whether a physical object is in contact with a virtual object or whether a physical object is within a threshold distance of a virtual object, the computer system optionally performs any of the above-mentioned techniques to map the location of the physical object to the three-dimensional environment and / or to map the location of the virtual object to the physical environment.
[0188] In some embodiments, the same or similar techniques are used to determine where and what a user's gaze is directed at and / or where and what a physical stylus held by the user is directed at. For example, if a user's gaze is directed at a particular position in the physical environment, the computer system optionally determines a corresponding position in the three-dimensional environment (e.g., a virtual position of the gaze), and if a virtual object is located at that corresponding virtual position, the computer system optionally determines that the user's gaze is directed at that virtual object. Similarly, the computer system can optionally determine where the physical stylus is pointing in the physical environment based on the orientation of the physical stylus. In some embodiments, based on this determination, the computer system determines a corresponding virtual position in the three-dimensional environment that corresponds to the location in the physical environment where the stylus is pointing, and optionally determines that the stylus is pointing to the corresponding virtual position in the three-dimensional environment.
[0189] Similarly, embodiments described herein may refer to the location of a user (e.g., a user of a computer system) and / or the location of the computer system within a three-dimensional environment. In some embodiments, a user of a computer system is holding, wearing, or otherwise located at or near the computer system. Thus, in some embodiments, the location of the computer system is used as a proxy for the location of the user. In some embodiments, the location of the computer system and / or the user within the physical environment corresponds to a distinct location within the three-dimensional environment. For example, if a user stands at a location facing a distinct portion of the physical environment that is visible through the display generating components, the location of the computer system is the location within the physical environment (and its corresponding location within the three-dimensional environment) at which the user would see objects within the physical environment in the same position, orientation, and / or size (e.g., absolutely and / or relative to each other) as the objects are visible through the display generating components of the computer system within the three-dimensional environment. Similarly, if the virtual objects displayed in the three-dimensional environment were physical objects in the physical environment (e.g., the physical objects were located in the same physical environment location and had the same physical environment size and orientation as in the three-dimensional environment), the location of the computer system and / or user is the position at which the user would see the virtual objects in the physical environment in the same position, orientation, and / or size (e.g., absolutely and / or relative to each other and to real-world objects) as they were displayed by the display generation components of the computer system in the three-dimensional environment.
[0190] In this disclosure, various input methods are described with respect to interaction with a computer system. Where one example is provided using one input device or input method and another example is provided using a different input device or input method, it should be understood that each example may be compatible with, and optionally utilize, 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. Where one example is provided using one output device or output method and another example is provided using a different output device or output method, it should be understood that each example may be compatible with, and optionally utilize, 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 via a computer system. Where one 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 may be compatible with, and optionally utilize, the method described with respect to the other example. Thus, this disclosure discloses embodiments that are combinations of features of multiple examples, without exhaustively listing all features of the embodiments in the description of each exemplary embodiment. User Interface and Related Processing
[0191] Attention is now directed to embodiments of a user interface ("UI") and associated processing that may be performed in a computer system, such as a portable multifunction device or a head-mounted device, equipped with a display generating component, one or more input devices, and (optionally) one or more cameras.
[0192] 7A-7H illustrate example computer systems that facilitate depth conflict mitigation for one or more virtual objects in a three-dimensional environment, according to some embodiments.
[0193] 7A illustrates computer system 101 (e.g., an electronic device mounted on a tripod, as also shown in FIG. 6B ) displaying a three-dimensional environment 702 from the perspective of a user of computer system 101 (e.g., facing the back wall of the physical environment in which computer system 101 is located) via a display generating component (e.g., display generating component 120 of FIG. 1 ). In some embodiments, computer system 101 includes a display generating component (e.g., a touchscreen) and multiple image sensors (e.g., image sensor 314 of FIG. 3 ). The image sensors optionally include one or more of a visible light camera, an infrared camera, a depth sensor, or any other sensor that computer system 101 could use to capture one or more images of a user or a part of a user (e.g., one or more of the user's hands) while the user interacts with computer system 101. In some embodiments, the user interfaces shown and described below may also be realized on a head-mounted display that includes display generating components that display the user interface or three-dimensional environment to the user, and sensors (e.g., external sensors facing outward from the user) for detecting movements of the physical environment and / or the user's hands, such as movements that are interpreted by the computer system as gestures, such as air gestures, and / or the user's attention (e.g., gaze) (e.g., internal sensors facing inward toward the user's face).
[0194] 7A , computer system 101 captures one or more images of the physical environment surrounding computer system 101 (e.g., operating environment 100), including one or more objects within the physical environment surrounding computer system 101. In some embodiments, computer system 101 displays a representation of the physical environment within three-dimensional environment 702, or the physical environment is viewable via display generation component 120. For example, three-dimensional environment 702 includes coffee table representation 722a, which is optionally a representation of a physical coffee table within the physical environment, and three-dimensional environment 702 includes sofa representation 724a, which is optionally a representation of a physical sofa within the physical environment.
[0195] 7A , three-dimensional environment 702 also includes virtual objects 707 (“Window 1”) and 727 (“Window 2”). Virtual objects 707 and 727 are optionally at different distances from a user's viewpoint within three-dimensional environment 702. For example, in FIG. 7A , virtual object 727 is located at a first location that is closer to the user's viewpoint than a second location at which virtual object 707 is located within three-dimensional environment 702, as reflected in side view legend 709. In some embodiments, virtual objects 707 and 727 are optionally one or more of a user interface of an application containing content, a three-dimensional object (e.g., a virtual clock, a virtual ball, a virtual car, etc.), or any other element displayed by computer system 101 that is not included in the physical environment of display generation component 120. For example, as shown in FIG. 7A , virtual object 707 is optionally a user interface of a media browsing application. In some embodiments, as shown in FIG. 7A , virtual object 707 includes multiple selectable options corresponding to multiple content items (e.g., movies, episodes, podcasts, and / or music). As an example, as shown in FIG. 7A , virtual object 707 includes a first selectable option 706-1 selectable to cause computer system 101 to start playing a first content item (“Content A”), a second selectable option 706-2 selectable to cause computer system 101 to start playing a second content item (“Content B”), and / or a third selectable option 706-3 selectable to cause computer system 101 to start playing a third content item (“Content C”). Additionally, in FIG. 7A , virtual object 727 is, optionally, a user interface for a web browsing application. For example, as shown in FIG. 7A , virtual object 727 displays content 728 (e.g., text, images, video, and / or audio) associated with a respective website (“www.URL3.com”).
[0196] In some embodiments, the virtual objects are displayed in three-dimensional environment 702 at respective orientations relative to a user's viewpoint (e.g., before receiving input in three-dimensional environment 702 to interact with the virtual objects, as described below). As shown in FIG. 7A , virtual object 707 and virtual object 727 have a first orientation within three-dimensional environment 702. For example, the forward-facing surfaces / portions of virtual object 707 and virtual object 727 are oriented toward the user's viewpoint within three-dimensional environment 702. It should be understood that the orientations of virtual objects 707 and 727 in FIG. 7A are merely exemplary, and other orientations are possible. For example, the virtual objects are optionally displayed in different orientations within three-dimensional environment 702.
[0197] In some embodiments, computer system 101 mitigates a depth conflict between a virtual object in three-dimensional environment 702 and a portion of a user of computer system 101. For example, as discussed in more detail below, in response to determining that movement of a user's hand (e.g., hand 703a or hand 705a) in three-dimensional environment 702 causes a virtual object to contact and / or intersect with the user's hand in three-dimensional environment 702, computer system 101 changes the appearance of the virtual object to resolve or reduce a depth conflict between the virtual object and the user's hand. Additional details above and below regarding resolving depth conflicts are provided with reference to methods 800, 1000, and / or 1200.
[0198] 7A , computer system 101 detects movement (e.g., in a particular direction and / or a particular magnitude (e.g., of speed and / or distance)) of hand 703 a (“Hand 1”) within three-dimensional environment 702. For example, as shown in FIG. 7A , computer system 101 detects that hand 703 a moves forward (e.g., away from the user) within three-dimensional environment 702 and toward the location of virtual object 707 within three-dimensional environment 702 relative to virtual object 707. In some embodiments, computer system 101 detects movement of hand 703 a without detecting input from hand 703 a. For example, computer system 101 detects that hand 703 a moves within three-dimensional environment 702 without detecting movement (e.g., air gesture, touch gesture, or hand input) of hand 705 a. In some embodiments, computer system 101 detects movements of hand 703a (e.g., air gestures, touch gestures, or hand inputs) regardless of the attention (e.g., based on gaze) of a user of computer system 101. While multiple hands and corresponding inputs are shown in Figures 7A-7H, it should be understood that such hands and inputs need not be detected simultaneously by computer system 101. Rather, in some embodiments, computer system 101 responds independently to the hands and / or inputs shown and described in response to independently detecting such hands and / or inputs.
[0199] In some embodiments, as described above, virtual object 709 a may encounter a depth conflict in three-dimensional environment 702. For example, as described herein, movement of hand 703 a within three-dimensional environment 702 (e.g., air gestures, touch gestures, or manual input) may cause the simulated location of virtual object 707 to contact and / or intersect with hand 703 a within three-dimensional environment 702 relative to the user's viewpoint. In some embodiments, virtual object 709 a encounters a depth conflict with a portion of three-dimensional environment 702 when virtual object 709 a is initially displayed within three-dimensional environment 702. When a virtual object is described as intersecting and / or contacting a portion of a user (e.g., the user's hand), it should be understood that the intersection is a virtual intersection that describes an apparent spatial or depth conflict that would occur if the virtual object were displayed at a distinct location relative to the user's portion.
[0200] In some embodiments, movement of the user's hand 703 a within the three-dimensional environment relative to the virtual object 707 (e.g., air gesture, touch gesture, or hand input) causes the virtual object 707 to move within the three-dimensional environment 702 based on the movement of the hand 703 a (e.g., air gesture, touch gesture, or hand input). For example, as described above, when the computer system 101 detects that the hand 703 a moves forward through the location of the virtual object 707 relative to the user's viewpoint, the computer system 101 determines that the movement causes the hand 703 a to encounter (e.g., at least partially contact) a depth conflict with the virtual object 707 within the three-dimensional environment 702, as shown in FIG. 7B . In some embodiments, when the hand 703 a contacts the virtual object 707 within the three-dimensional environment 702, the computer system 101 detects that the hand 703 a continues to move backward (e.g., away from the user's viewpoint) within the three-dimensional environment 702. In some embodiments, movement of hand 703a (e.g., air gesture, touch gesture, or manual input) while hand 703a is in contact with virtual object 707 in three-dimensional environment 702 causes computer system 101 to move virtual object 707 based on the movement of hand 703a (e.g., air gesture, touch gesture, or manual input). For example, as shown in legend 709 of FIG. 7B , computer system 101 moves virtual object 707 backward (e.g., away from the user's viewpoint) within three-dimensional environment 702 in accordance with the movement of hand 703a (e.g., air gesture, touch gesture, or manual input).
[0201] In some embodiments, the computer system 101 moves the virtual object 707 within the three-dimensional environment 702 based on the movement of the hand 703a (e.g., an air gesture, a touch gesture, or a manual input) until the movement of the hand 703a (e.g., an air gesture, a touch gesture, or a manual input) exceeds a movement threshold into the virtual object 707 (e.g., based on the degree of depth conflict between the virtual object 707 and the hand 703a). For example, as shown in FIG. 7B , the depth conflict between the virtual object 707 and the hand 703a caused by the movement of the hand 703a (e.g., an air gesture, a touch gesture, or a manual input) relative to the virtual object 707 within the three-dimensional environment 702 falls below a depth conflict threshold (e.g., an amount of depth conflict, such as 5, 10, 12, 15, 20, 25, 30, 40, or 50%), as represented by threshold 712 in the tracker 711. In some embodiments, if a movement of the hand 703 a (e.g., an air gesture, a touch gesture, or a hand input) relative to a virtual object 707 in the three-dimensional environment 702 exceeds a depth conflict threshold 712, the computer system 101 changes the visual appearance of a portion of the virtual object 707 to resolve or reduce the depth conflict within the three-dimensional environment 702, as described in more detail below.
[0202] 7B , computer system 101 detects that user's hand 703 b continues to move through the location of virtual object 707 within three-dimensional environment 702 relative to the user's viewpoint. For example, as shown in FIG. 7B , while user's hand 703 b has a depth conflict with virtual object 707, computer system 101 detects that hand 703 b moves relative to virtual object 707 such that the degree of depth conflict between hand 703 b and virtual object 707 changes (e.g., increases) in three-dimensional environment 702. In some embodiments, as shown in FIG. 7C , movement of hand 703 b (e.g., air gesture, touch gesture, or hand input) relative to virtual object 707 within three-dimensional environment 702 causes the depth conflict between virtual object 707 and hand 703 b to exceed the aforementioned depth conflict threshold 712, as indicated by tracker 711. For example, as shown in FIG. 7C, movement of the user's hand 703b (e.g., air gesture, touch gesture, or manual input) causes more than a threshold amount of virtual object 707 to have depth contention within the three-dimensional environment 702 with respect to the user's viewpoint.
[0203] In some embodiments, when the computer system 101 determines that the depth conflict between the virtual object 707 and the hand 703b exceeds the depth conflict threshold discussed above, the computer system 101 changes the visual appearance of a portion of the virtual object 707, as shown in FIG. 7C . For example, the computer system 101 changes the visual appearance of a first portion 708 of the virtual object 707 that has a depth conflict with the hand 703b in the three-dimensional environment 702. In some embodiments, changing the visual appearance of the first portion 708 of the virtual object 707 includes changing visual properties of the first portion 708 of the virtual object 707, such as opacity, brightness, coloration, and / or saturation, of the first portion 708 of the virtual object 707 that is touching / intersecting the hand 703b in the three-dimensional environment 702. In some embodiments, changing the visual appearance of the first portion 708 of the virtual object 707 includes ceasing to display the first portion 708 of the virtual object 707 in the three-dimensional environment 702. 7C , the portion of selectable option 706-2 included in first portion 708 of virtual object 707 is no longer displayed in three-dimensional environment 702. Additionally, portions of three-dimensional environment 702 (e.g., including the physical environment surrounding display generating component 120) optionally become visible through first portion 708 of virtual object 707 when first portion 708 is no longer displayed. In some embodiments, changing the visual appearance of first portion 708 reduces the visual salience of first portion 708 of virtual object 707 relative to second portion 710 of virtual object 707, which has no depth conflict within three-dimensional environment 702. For example, as shown in FIG. 7C , second portion 710 of virtual object 707 has no depth conflict in three-dimensional environment 702 (e.g., because second portion 710 of virtual object 707 is not at least partially in contact with hand 703b (or any other part of the user)).Thus, the computer system 101 optionally maintains the display of the second portion 710 of the virtual object 707 (e.g., does not change the visual appearance of the second portion 710) when changing the visual appearance of the first portion 708 of the virtual object 707 in the three-dimensional environment 702.
[0204] In some embodiments, changing the visual appearance of the virtual object 707 includes displaying a visual boundary (e.g., a feathered visual boundary) 734 between a first portion 708 and a second portion 710 of the virtual object 707 in the three-dimensional environment 702. For example, as shown in FIG. 7C , the visual boundary 734 visually separates the first portion 708, which has a depth conflict, from the second portion 710 of the virtual object 707, which does not have a depth conflict in the three-dimensional environment 702. In some embodiments, the computer system 101 gradually (e.g., over a period of 0.5, 1, 2, 3, 4, 5, 8, or 10 seconds) changes the visual appearance of the first portion 708 of the virtual object 707 along the visual boundary 734 in the three-dimensional environment 702. For example, the change in visual appearance gradually increases in magnitude (e.g., size) on the virtual object 707 from the point of contact between the virtual object 707 and the hand 703 b to the visual boundary 734 between the first portion 708 and the second portion 710. In some embodiments, as shown in Figure 7C, changing the visual appearance of first portion 708 of virtual object 707 mitigates (e.g., resolves or reduces) a depth conflict between virtual object 707 and hand 703b. For example, as shown in Figure 7C, changing the visual properties of first portion 708 of virtual object 707 in three-dimensional environment 702 and / or ceasing to display first portion 708 allows a portion of hand 703b (e.g., one or more fingers of hand 703b) that is touching virtual object 707 to be visible through virtual object 707 despite the presence of a depth conflict in three-dimensional environment 702. Additional details regarding changing the visual appearance of virtual object 707 to reduce or resolve a depth conflict in three-dimensional environment 702 are provided below in methods 800, 1000, and / or 1200.
[0205] As described above, in some embodiments, virtual object 707 is or includes content, such as one or more user interfaces. Thus, in FIG. 7C , when computer system 101 optionally maintains display of second portion 710 of virtual object 707, computer system 101 maintains display of content contained within second portion 710 of virtual object 707 in three-dimensional environment 702, such as a selectable option associated with content A (e.g., 706-1 in FIG. 7A ). Additionally, when computer system 101 changes the visual appearance of first portion 708 of virtual object 707 to resolve or reduce a depth conflict with hand 703 b, at least some of the content contained within first portion 708 of virtual object 707 changes visual appearance. For example, when computer system 101 changes the amount of opacity, brightness, coloration, and / or saturation of first portion 708 of virtual object 707 and / or ceases displaying first portion 708 of virtual object 707, the portion of the content included in first portion 708, such as the portion of selectable option 706-2, is no longer visible within three-dimensional environment 702 relative to the user's viewpoint, as shown in FIG. 7C . In some embodiments, the change in visual appearance of first portion 708 of virtual object 707 is applied to the content within first portion 708 of virtual object 707, but not to the content within second portion 710.
[0206] It should be understood that the change in appearance of the first portion 708 of the virtual object 707 shown in Figure 7C is exemplary, and that in some embodiments, a greater or lesser amount of the first portion 708 of the virtual object 707 is displayed with an altered appearance than that shown in Figure 7C. For example, the amount of the first portion 708 of the virtual object 707 that is displayed with an altered appearance may be greater or less (e.g., by 5, 10, 15, 20, 25, 30, 40, 50, or 60%) than the amount of the first portion 708 of the virtual object 707 that has a depth conflict in the three-dimensional environment 702.
[0207] In some embodiments, the amount of the virtual object 707 that is displayed with the altered visual appearance is based on the amount of the user's hand 703b that has a depth conflict with the virtual object 707 in the three-dimensional environment 702. For example, in FIG. 7C , the amount of the first portion 708 of the virtual object 707 that is displayed with the altered visual appearance is based on the amount of the hand 703b that is touching the virtual object 707, regardless of the amount of the hand 703b that is not touching the virtual object 707 in the three-dimensional environment 702. In FIG. 7C , the amount of the first portion 708 of the virtual object 707 that is displayed with the altered visual appearance and / or that is no longer displayed corresponds to (e.g., equal to or proportional to) the size of the first finger of the hand 703b that is touching / crossing the first portion of the virtual object 707 in the three-dimensional environment 702 (e.g., corresponding to the size of the index finger of the hand 703b). In some embodiments, the amount of virtual object 707 displayed with an altered visual appearance is based on the size of hand 703b that has a depth conflict with virtual object 707 in three-dimensional environment 702, as described in more detail below.
[0208] 7C , the computer system 101 detects a movement of the hand 703c (e.g., an air gesture, a touch gesture, or a hand input) while the hand 703c has a depth conflict with a virtual object 707 in the three-dimensional environment. For example, as shown in FIG. 7C , the computer system 101 detects that the hand 703c moves to the right relative to the user's viewpoint while the hand 703c touches / intersects a first portion 708 of a virtual object 707 in the three-dimensional environment 702 (e.g., while the first portion 708 is displayed with an altered visual appearance). In some embodiments, the computer system 101 detects a movement of the hand 703c (e.g., an air gesture, a touch gesture, or a hand input) without detecting a change in the degree of depth conflict between the hand 703c and the first portion 708 of the virtual object 707. Additionally, in FIG. 7C , the computer system 101 detects a movement of the hand 705a ("Hand 2") relative to the virtual object 727 in the three-dimensional environment 702. 7C, computer system 101 detects that hand 705a moves relative to the user's viewpoint in three-dimensional environment 702 away from the user and toward virtual object 727. As described above, computer system 101 optionally detects the movement of hands 703c and 705a regardless of the user's attention.
[0209] FIG. 7C-1 illustrates concepts similar and / or identical to those illustrated in FIG. 7C (having many of the same reference numbers). Unless otherwise indicated below, elements illustrated in FIG. 7C-1 that have the same reference numbers as elements illustrated in FIGS. 7A-7H are understood to have one or more or all of the same characteristics. FIG. 7C-1 illustrates a computer system 101 that includes (or is the same as) a display generation component 120. In some embodiments, the computer system 101 and the display generation component 120 have one or more of the characteristics of the computer system 101 illustrated in FIGS. 7C and 7A-7H and the display generation component 120 illustrated in FIGS. 1 and 3, respectively, and in some embodiments, the computer system 101 and the display generation component 120 illustrated in FIGS. 7A-7H have one or more of the characteristics of the computer system 101 and the display generation component 120 illustrated in FIG. 7C-1.
[0210] In FIG. 7C-1 , display generating component 120 includes one or more internal image sensors 314 a (e.g., eye-tracking cameras 540 described with reference to FIG. 5 ) oriented toward the user's face. In some embodiments, internal image sensor 314 a is used for eye tracking (e.g., detecting the user's gaze). Internal image sensor 314 a is optionally positioned on left and right portions of display generating component 120 to enable eye tracking of the user's left and right eyes. Display generating component 120 also includes external image sensors 314 b and 314 c facing outward from the user to detect and / or capture the physical environment and / or the user's hand movements. In some embodiments, image sensors 314 a, 314 b, and 314 c have one or more of the characteristics of image sensor 314 described with reference to FIGS. 7A-7H .
[0211] In Figure 7C-1, display generation component 120 is shown as displaying content that optionally corresponds to the content described as being displayed and / or visible via display generation component 120 with reference to Figures 7A-7H. In some embodiments, the content is displayed by a single display (e.g., display 510 of Figure 5) included in display generation component 120. In some embodiments, display generation component 120 includes two or more displays (e.g., left and right display panels for the user's left and right eyes, respectively, as described with reference to Figure 5) having displayed outputs that are merged (e.g., by the user's brain) to create the view of the content shown in Figure 7C-1.
[0212] 7C-1 (e.g., the field of view shown by dashed lines in the overhead view, as captured by external image sensors 314b and 314c and / or visible to the user via display generating component 120). Because display generating component 120 is optionally a head-mounted device, the field of view of display generating component 120 is optionally the same as or similar to the field of view of the user.
[0213] In Figure 7C-1, a user is depicted as performing an air pinch gesture (e.g., with Hand 1 703C or Hand 2 705A) to provide input to computer system 101 and to provide user input directed to content displayed by computer system 101. Such depictions are intended to be illustrative and not limiting. As described with reference to Figures 7A-7H, a user optionally provides user input using different air gestures and / or using other forms of input.
[0214] In some embodiments, computer system 101 responds to user input as described with reference to Figures 7A-7H.
[0215] In the example of FIG. 7C-1 , the user's hand is visible in the three-dimensional environment because it is within the field of view of display generation component 120. That is, the user can optionally see, in the three-dimensional environment, any part of their body that is within the field of view of display generation component 120. Furthermore, as described herein, the size and / or shape of portion 708 a of object 707 (e.g., corresponding to portion 708 in FIGS. 7A-7H ), whose visual appearance is modified due to a conflict with hand 703 c, is based on the size and / or shape of the portion of hand 703 c that has a conflict with object 707. For example, in FIG. 7C-1 , portion 708 a is elongated and oriented corresponding to the size, shape, and / or orientation of the fingers of hand 703 c that have a conflict with object 707. It will be understood that one or more or all aspects of the present disclosure shown in or described with reference to Figures 7A-7H and / or described with reference to the corresponding method(s) are optionally implemented on computer system 101 and display generation unit 120 in a manner similar or analogous to that shown in Figure 7C-1.
[0216] 7D , in response to detecting movement (e.g., air gesture, touch gesture, or hand input) of hand 703c relative to virtual object 707, computer system 101 changes the visual appearance of third portion 714 of virtual object 707 within three-dimensional environment 702. For example, as shown in FIG. 7D , computer system 101 changes visual properties (e.g., brightness, translucency, saturation, and / or coloration) of third portion 714 of virtual object 707 and / or ceases displaying it in accordance with determining that hand 703c is touching / intersecting third portion 714 of virtual object 707 following movement (e.g., air gesture, touch gesture, or hand input) of hand 703c relative to virtual object 707 within three-dimensional environment 702. In some embodiments, similar to the above, when computer system 101 changes the visual appearance of third portion 714 of virtual object 707, a portion of the three-dimensional environment (including the physical environment surrounding the display generating components) behind virtual object 707 becomes visible through third portion 714 of virtual object 707. Similarly as described above, in some embodiments, computer system 101 changes the visual appearance of third portion 714 of virtual object 707 to resolve or reduce a depth conflict between third portion 714 of virtual object 707 and hand 703c in three-dimensional environment 702. Additionally, as shown in FIG. 7D , computer system 101 maintains the display of fourth portion 716 of virtual object 707 following a movement of hand 703c (e.g., an air gesture, a touch gesture, or a manual input) in accordance with a determination that fourth portion 716 does not have a depth conflict in three-dimensional environment 702. For example, the computer system 101 refrains from changing the visual appearance of the fourth portion 716 of the virtual object 707, as shown in FIG. 7D.
[0217] In some embodiments, as shown in FIG. 7D , the computer system 101 adjusts a change in the visual appearance of at least a portion of the first portion of the virtual object 707 (e.g., 708 in FIG. 7C ) in response to detecting movement of the hand 703 c (e.g., an air gesture, a touch gesture, or a manual input). For example, as shown in FIG. 7C , the movement of the hand 703 c (e.g., an air gesture, a touch gesture, or a manual input) causes at least a portion of the first portion of the virtual object 707 to no longer have a depth conflict within the three-dimensional environment 702 (e.g., no longer touching / intersecting a portion of the user's hand 703 c). In some embodiments, adjusting the change in the visual appearance of at least a portion of the first portion of the virtual object 707 includes redisplaying at least a portion of the first portion of the virtual object 707. For example, as shown in FIG. 7D , the computer system 101 redisplays a portion of the selectable option 706-2 included in the first portion of the virtual object 707 within the three-dimensional environment 702. Further, in some embodiments, when computer system 101 adjusts the change in the visual appearance of at least a portion of first portion of virtual object 707, for example, a portion of three-dimensional environment (including the physical environment surrounding display generating component 120) 702 behind virtual object 707 that was visible through first portion of virtual object 707 (e.g., as described with reference to FIG. 7C ) is no longer visible through first portion of virtual object 707, as shown in FIG. 7C .
[0218] Additionally, in some embodiments, in response to detecting movement (e.g., air gesture, touch gesture, or hand input) of the hand 705a relative to the virtual object 727 in the three dimensional environment 702, the computer system determines that a first portion 730 of the virtual object 727 encounters a depth conflict with the hand 705a in the three dimensional environment 702, as shown in Figure 7D. For example, as shown in legend 709, the computer system 101 determines that the movement (e.g., air gesture, touch gesture, or hand input) of the hand 705a toward the virtual object 727 in the three dimensional environment 702 causes the first portion 730 of the virtual object 727 to at least partially contact / intersect with the hand 705a after the movement (e.g., air gesture, touch gesture, or hand input) of the hand 705a. In some embodiments, similar to above, if computer system 101 determines that hand 705a has a depth conflict with first portion 730 of virtual object 727, computer system 101 alters the visual appearance of first portion 730 of virtual object 727 within three-dimensional environment 702 to resolve or reduce the depth conflict between virtual object 727 and hand 705a. For example, computer system 101 alters the visual properties (e.g., brightness, opacity, saturation, and / or coloring) of and / or ceases displaying first portion 730 of virtual object 727 (e.g., a portion of website content included in first portion 730 of virtual object 727), which allows hand 705a to remain visible through first portion 730 of virtual object 727. Furthermore, in some embodiments, when computer system 101 changes the visual appearance of first portion 730 of virtual object 727 within three-dimensional environment 702, the portion of three-dimensional environment 702 behind virtual object 727 relative to the user's viewpoint (including the physical environment surrounding display generating component 120) becomes visible through first portion 730 of virtual object 727, as shown in FIG. 7D .Additionally, in some embodiments, following a determination that the movement of hand 705a (e.g., air gesture, touch gesture, or hand input) relative to virtual object 727 does not cause fourth portion 732 of virtual object 727 to encounter a depth conflict within three dimensional environment 702, computer system 101 maintains the display of fourth portion 732 of virtual object 727 within three dimensional environment 702. For example, similar to above, computer system 101 does not change the visual appearance of fourth portion 732 of virtual object 727 within three dimensional environment 702.
[0219] In some embodiments, similar to above, the amount of the third portion 714 of the virtual object 707 that is displayed with an altered visual appearance in the three-dimensional environment 702 is based on the amount of the hand 703c that has a depth conflict with the virtual object 707 in the three-dimensional environment 702. Alternatively, as described above, in some embodiments, the amount of the portion of the virtual object that is displayed with an altered visual appearance in the three-dimensional environment 702 is based on the size of the user's hand that has a depth conflict with the virtual object in the three-dimensional environment 702. For example, as described above, the first portion 730 of the virtual object 727 has a depth conflict with the user's hand 705a in the three-dimensional environment 702. In some embodiments, the amount of the first portion 730 of the virtual object 727 that is displayed with an altered visual appearance in the three-dimensional environment 702 is based on the size of the hand 705a, rather than strictly based on the portion of the hand 705a that is touching / intersecting the virtual object 727 in the three-dimensional environment 702. 7D , even though a first portion of hand 705a (e.g., one or more fingers) is touching virtual object 727 in three-dimensional environment 702, an amount of first portion 730 of virtual object 727 corresponds to (e.g., equal to or proportional to) the first portion of hand 705a and a second portion of hand 705a (e.g., one or more fingers and / or other portions of the palm) that are not touching / intersecting virtual object 727 in three-dimensional environment 702. Thus, in some embodiments, the amount of first portion 730 of virtual object 727 displayed with an altered visual appearance, as shown in FIG. 7D , is greater than the amount of hand 705a that is actually touching / intersecting virtual object 727 in three-dimensional environment 702.
[0220] Similar to the above, in some embodiments, the degree of depth conflict within the three-dimensional environment 702 is based on the size (e.g., amount) of a portion (e.g., a hand) of a user touching / intersecting a virtual object within the three-dimensional environment 702. For example, as shown in FIG. 7D , after a movement (e.g., an air gesture, a touch gesture, or a hand input) of the hand 703c relative to the virtual object 707, when a third portion 714 of the virtual object 707 encounters a depth conflict with the hand 703c, the hand 703c touches / intersects the third portion 714 of the virtual object 707 by a first size (e.g., a first amount), as indicated by the circle 715a in the legend 713. As an example, in the legend 713, the circle 715a represents the first size as a first surface area of the virtual object 707 that the hand 703c touches / intersects in the three-dimensional environment 702. In some embodiments, as described below, computer system 101 increases the portion of virtual object 707 that is displayed with a changed appearance in three-dimensional environment 702 in response to detecting a change in size of the portion of hand 703c that has a depth conflict with virtual object 707 in three-dimensional environment 702.
[0221] 7D , the computer system 101 detects a movement (e.g., an air gesture, a touch gesture, or a hand input) of the hand 703 d further into / through the virtual object 707 relative to the user's viewpoint. For example, as shown in FIG. 7D , while the hand 703 d is contacting / crossing the third portion 714 of the virtual object 707, the computer system 101 detects that the hand 703 d moves away from the user and behind the virtual object 707 in the three-dimensional environment 702 relative to the user's viewpoint. Additionally, in FIG. 7D , the computer system 101 detects a movement (e.g., an air gesture, a touch gesture, or a hand input) of the hand 705 a relative to the virtual object 727 in the three-dimensional environment 702, away from the virtual object 727. 7D , while hand 705a touches / intersects first portion 730 of virtual object 727, computer system 101 detects that hand 705a moves toward the user and in front of virtual object 727 in three-dimensional environment 702 relative to the user's viewpoint. In some embodiments, computer system 101 detects the movement of hands 703d and 705a (e.g., air gestures, touch gestures, or hand inputs) regardless of the user's attention.
[0222] In some embodiments, in response to detecting movement (e.g., an air gesture, a touch gesture, or a hand input) of hand 703d away from the user's viewpoint and into virtual object 707 within three-dimensional environment 702, computer system 101 determines that a size (e.g., an amount) of portion 703d of hand touching / intersecting virtual object 707 changes within three-dimensional environment 702. For example, as shown in legend 709 of FIG. 7E , computer system 101 detects movement (e.g., an air gesture, a touch gesture, or a hand input) of hand 703d through virtual object 707 and behind virtual object 707 relative to the user's viewpoint. In some embodiments, as shown in FIG. 7E , computer system 101 determines that the size of portion 703d of hand 703d touching / intersecting virtual object 707 increases to a second size, as indicated by circle 715b within legend 713. For example, as hand 703d moves further into and behind virtual object 707, as indicated by circle 715b in legend 713 in FIG. 7E, hand 703d contacts / intersects a larger surface area of virtual object 707 in three-dimensional environment 702 (e.g., larger than the surface area indicated by circle 715a in FIG. 7D).
[0223] In some embodiments, in accordance with determining that movement of hand 703d (e.g., air gesture, touch gesture, or hand input) increases the size of portion 703d of hand that is touching / intersecting virtual object 707 in three-dimensional environment 702, computer system 101 determines that the degree of depth conflict between hand 703d and virtual object 707 increases in three-dimensional environment 702. For example, as shown in FIG. 7E , movement of hand 703d (e.g., air gesture, touch gesture, or hand input) behind virtual object 707 relative to the user's viewpoint causes hand 703e to encounter a depth conflict with fifth portion 718 of virtual object 707 in three-dimensional environment 702. 7E , when hand 703e is behind virtual object 707 relative to the user's viewpoint, it should be understood that, although hand 703e does not necessarily touch / intersect fifth portion 718 of virtual object 707, the position of hand 703e behind virtual object 707 optionally causes at least a portion of hand 703e to be visually occluded by (e.g., invisible through) fifth portion 718 of virtual object 707, thereby creating a depth conflict within three dimensional environment 702. In some embodiments, similar to above, computer system 101 changes the visual appearance of fifth portion 718 of virtual object 707 within three dimensional environment 702 in accordance with a determination that fifth portion 718 of virtual object 707 has a depth conflict with hand 703e after a movement of the hand (e.g., an air gesture, a touch gesture, or a hand input) within three dimensional environment 702. For example, the computer system may change the visual properties (e.g., brightness, opacity, saturation, and / or coloring) of the fifth portion 718 of the virtual object 707 and / or cease displaying it to resolve or reduce the depth conflict (e.g., allowing the hand 703e behind the virtual object 707 to be visible through the fifth portion 718 of the virtual object 707 to the user's viewpoint).Additionally, similar to that described above, in some embodiments, following a determination that sixth portion 720 of virtual object 707 encounters a depth conflict in response to a movement of hand 703d (e.g., an air gesture, a touch gesture, or a manual input), the computer system maintains the display of sixth portion 720 of virtual object 707 within three-dimensional environment 702. For example, computer system 101 ceases changing the visual appearance of sixth portion 720 of virtual object 707 within three-dimensional environment 702.
[0224] Additionally, in some embodiments, in response to detecting movement of hand 705a (e.g., air gesture, touch gesture, or hand input) relative to virtual object 727 in three dimensional environment 702 and away from virtual object 727, computer system 101 determines that virtual object 727 no longer has a depth conflict with hand 705a, as shown in legend 709 of FIG. 7E. For example, as shown in FIG. 7E, movement of hand 705a (e.g., air gesture, touch gesture, or hand input) away from virtual object 727 no longer causes hand 705a to touch / intersect with a portion of virtual object 727 in three dimensional environment 702. In some embodiments, in accordance with determining that virtual object 727 no longer has a depth conflict in three dimensional environment 702, computer system 101 adjusts a change in the visual appearance of a first portion (e.g., 730 in FIG. 7D ) of virtual object 727 in three dimensional environment 702. For example, as shown in FIG. 7E, the computer system 101 re-displays and / or makes fully visible, to the user's viewpoint, website content 728 included in a first portion of the virtual object 727 within the three-dimensional environment 702 (e.g., a previously undisplayed portion of the website content as shown in FIG. 7D).
[0225] 7E, computer system 101 detects a movement of the user's viewpoint while virtual object 707 has a depth conflict with hand 703e within three-dimensional environment 702. For example, as shown in FIG. 7E, computer system 101 detects that hand 705b is grasping computer system 101 and moving leftward (e.g., counterclockwise around the user's body). In some embodiments, as described below, the movement of the user's viewpoint changes the portion of three-dimensional environment 702 within the user's field of view, including the physical environment surrounding display generation component 120, in accordance with the movement of the viewpoint. In some embodiments, the input for changing the user's viewpoint corresponds to movement of the user's head within the physical environment (e.g., movement of a head-mounted display worn by the user within the physical environment).
[0226] 7E , computer system 101 updates the display of three-dimensional environment 702 according to the movement and with respect to the user's new viewpoint. For example, in FIG. 7F , computer system 101 is moved / angled counterclockwise around the user's body, resulting in computer system 101 facing the forward-facing surfaces / portions of virtual objects 707 and 727 at an angle in three-dimensional environment 702. Accordingly, as shown in FIG. 7F , computer system 101 optionally updates the display of the orientation of virtual objects 707 and 727 such that the forward-facing surface / portion of virtual object 709b is angled to the right with respect to the user's new viewpoint. Additionally, as shown in FIG. 7F, as the user's viewpoint moves, the portion of the physical environment that is visible via the display generating component 120 changes in accordance with the viewpoint movement (e.g., to the user's new viewpoint, a smaller portion of the sofa representation 724a is visible in the three-dimensional environment 702 via the display generating component 120).
[0227] In some embodiments, the movement of the user's viewpoint changes the degree of depth conflict encountered by virtual object 707 within three-dimensional environment 702. For example, as described above, the movement of the user's viewpoint causes the orientation of virtual objects 707 and 727 to change / shift in accordance with the movement of the viewpoint. Additional details regarding shifting the orientation of virtual objects 707 and 727 due to the movement of the user's viewpoint are provided below with reference to method 800. In some embodiments, the shift in orientation of virtual object 707 increases or decreases the degree of depth conflict between fifth portion 718 of virtual object 707 and hand 703 e within three-dimensional environment 702. In some embodiments, when the movement of the user's viewpoint changes the degree of depth conflict encountered by virtual object 707 and / or causes virtual object 707 to encounter a depth conflict within three-dimensional environment 702, computer system 101 changes the visual appearance of the portion of virtual object 707 that has a depth conflict, as similarly described above. For example, as shown in Figure 7F, the computer system 101 adjusts the change in visual appearance of the fifth portion 718 of the virtual object 707 that has a depth conflict with the hand 703e without changing the visual appearance of the sixth portion 720 of the virtual object 707 that has no depth conflict in the three-dimensional environment 702. In some embodiments, as shown in Figure 7F, the amount of the fifth portion 718 of the virtual object 707 that has an altered visual appearance decreases in the three-dimensional environment 702 because the depth conflict between the fifth portion 718 of the virtual object 707 and the hand 703e appears to decrease from the user's new perspective.
[0228] Additionally, in some embodiments, as shown in Figure 7F, the movement of the user's viewpoint does not cause virtual object 727 to encounter a depth conflict within three-dimensional environment 702 relative to the user's new viewpoint. For example, as shown in Figure 7D, the movement of the user's viewpoint does not cause virtual object 727 to at least partially touch / intersect with the user's hand (or another object) relative to the user's new viewpoint. Thus, as shown in Figure 7F, computer system 101 optionally maintains the display of virtual object 727, and optionally does not change the visual appearance of any portion of virtual object 727 within three-dimensional environment 702.
[0229] In some embodiments, as described above with reference to FIG. 7A , virtual object 707 includes content such as a user interface of a media browsing application. For example, as shown in FIG. 7A , virtual object 707 includes multiple selectable options 706-1 through 706-3 that can be selected to cause computer system 101 to display content corresponding to the selectable options. As shown in FIG. 7F , virtual object 707 optionally includes selectable option 706-1. In some embodiments, as shown in FIG. 7F and similar to above, a user's hand 703 f has a depth conflict with a fifth portion 718 of virtual object 707 that includes a portion of selectable option 706-1, such that the portion of selectable option 706-1 has an altered visual appearance within three-dimensional environment 702 (e.g., is not displayed or is not visible within three-dimensional environment 702). As described below, input directed at selectable option 706-1 optionally does not cause computer system 101 to perform an action associated with selectable option 706-1.
[0230] 7F , computer system 101 detects a selection input directed at selectable option 706-1 within virtual object 707. For example, as shown in FIG. 7F , computer system 101 detects an air gesture (e.g., an air pinch gesture in which the index finger and thumb of hand 703f contact together), a tap gesture, or a button press provided by hand 703f while the user's attention (e.g., based on gaze 721) is directed at selectable option 706-1 within three-dimensional environment 702. In some embodiments, as shown in FIG. 7F , computer system 101 detects that hand 703f performs an air gesture while hand 703f has a depth conflict with virtual object 707 within three-dimensional environment 702 (e.g., is located behind fifth portion 718 of virtual object 707 with respect to the user's viewpoint). Additionally or alternatively, in FIG. 7F, the computer system 101 detects an air gesture (e.g., an air pinch gesture), a tap gesture, or a button press provided by the hand 705c while the user's attention (e.g., based on gaze 721) is directed to the selectable option 706-1 within the three-dimensional environment 702.
[0231] In some embodiments, as shown in FIG. 7G , in response to detecting a selection input provided by hand 703 f and / or hand 705 c, computer system 101 ceases activating (e.g., selecting) selectable option 706-1 within virtual object 707. For example, as shown in FIG. 7G , computer system 101 ceases displaying content (Content A) associated with selectable option 706-1 within virtual object 707 within three-dimensional environment 702. As described above and as shown in FIG. 7G , a portion of selectable option 706-1 is included in fifth portion 718 of virtual object 707, which is displayed with an altered appearance in three-dimensional environment 702 (e.g., as a result of a depth conflict between hand 703 f and virtual object 707). Thus, in some embodiments, because a portion of selectable option 706-1 is included in fifth portion 718 of virtual object 707 that has a depth conflict with hand 703f, computer system 101 refrains from activating selectable option 706-1 within virtual object 707 (e.g., even though other portions of selectable option 706-1 are still displayed and / or visible within virtual object 707). As shown in FIG. 7G , computer system 101 optionally does not perform an action within three-dimensional environment 702 in response to detecting the above-described selection input. It should be understood that computer system 101 refrains from performing another action in response to detecting another input directed toward at least a portion of fifth portion 718 of virtual object 707. For example, if computer system 101 instead detects an input corresponding to a request to scroll content included in fifth portion 718 of virtual object 707, computer system 101 refrains from scrolling the content of virtual object 707 within three-dimensional environment 702.
[0232] 7G , the computer system 101 detects a movement (e.g., an air gesture, a touch gesture, or a hand input) of the hand 705d relative to the virtual object 707 in the three-dimensional environment 702. For example, as shown in FIG. 7G , the computer system 101 detects that the hand 705d moves away from the user (e.g., forward and left relative to the user's viewpoint) and toward the virtual object 707 in the three-dimensional environment 702. In some embodiments, the computer system 101 detects a movement (e.g., an air gesture, a touch gesture, or a hand input) of the hand 705d while the hand 703f has a depth conflict with the fifth portion 718 of the virtual object 707 in the three-dimensional environment 702 (e.g., while the hand 703f is located behind the virtual object 707 relative to the user's viewpoint), as shown in FIG. Additionally, similar to that described above with reference to FIG. 7E, hand 703f optionally has a depth conflict of a second magnitude 715b with virtual object 707, as shown in legend 713, when movement of hand 705a (e.g., an air gesture, a touch gesture, or a hand input) is detected by computer system 101.
[0233] In some embodiments, in response to detecting movement of the user's hand 705d toward the virtual object 707 (e.g., an air gesture, a touch gesture, or a manual input) relative to the virtual object 707, the computer system 101 determines that a seventh portion 722 of the virtual object 707 encounters a depth conflict with the hand 705d, as shown in FIG. 7H . For example, similar to above, the computer system 101 determines that after movement of the hand 705d in the three-dimensional environment 702 (e.g., an air gesture, a touch gesture, or a manual input), the hand 705d at least partially contacts / intersects the seventh portion 722 of the virtual object 707. As shown in FIG. 7H , in accordance with determining that after movement of the hand 705d (e.g., an air gesture, a touch gesture, or a manual input), the seventh portion 722 of the virtual object 707 encounters a depth conflict with the hand 705d, the computer system 101 changes the visual appearance of the seventh portion 722 of the virtual object 707, as described above. 7H , computer system 101 alters the visual properties (e.g., brightness, opacity, saturation, and / or coloring) of and / or ceases displaying seventh portion 722 of virtual object 707 to resolve or reduce the depth conflict between hand 705d and seventh portion 722 of virtual object 707. Additionally, in accordance with a determination that the movement of hand 705d (e.g., air gesture, touch gesture, or manual input) does not cause eighth portion 726 of virtual object 707 to encounter a depth conflict with hand 705d after the movement of hand 705d (e.g., air gesture, touch gesture, or manual input), computer system 101 maintains display of eighth portion 726 of virtual object 707 within three-dimensional environment 702. For example, similar to above, computer system 101 ceases changing the visual appearance of eighth portion 726 of virtual object 707 within three-dimensional environment 702.
[0234] In some embodiments, as shown in legend 709 of FIG. 7H , the computer system 101 detects that, in the three-dimensional environment 702, hand 705 d has a depth conflict with the seventh portion 722 of the virtual object 707, while hand 703 f simultaneously has a depth conflict with the fifth portion 718 of the virtual object 707. For example, as shown in FIG. 7H , the computer system 101 detects that hand 705 d at least partially contacts / intersects with the seventh portion 722 of the virtual object 707, while hand 703 f is simultaneously located behind the fifth portion 718 of the virtual object 707 relative to the user's viewpoint. Thus, as shown in FIG. 7H , the computer system 101 simultaneously displays the fifth portion 718 of the virtual object 707 with an altered appearance and the seventh portion 722 of the virtual object 707 with an altered appearance to resolve or reduce the depth conflicts from the hands 703 f and 705 d, respectively, in the three-dimensional environment 702. In some embodiments, the change in visual appearance of the fifth portion 718 of the virtual object 707 is different from the change in visual appearance of the seventh portion 722 of the virtual object 707 in the three-dimensional environment 702. For example, as shown in FIG. 7H , the amount of the fifth portion 718 of the virtual object displayed with reduced visual salience is different from (e.g., greater than) the amount of the seventh portion 722 of the virtual object 707 displayed with reduced visual salience. Furthermore, the change in visual properties (e.g., brightness, opacity, saturation, and / or coloration) of the fifth portion 718 of the virtual object 707 is, optionally, different from the change in visual properties of the seventh portion 722 of the virtual object 707 (e.g., based on the content included in portions 718 and 722 and / or the degree of depth conflict).
[0235] Additionally, in some embodiments, the magnitudes (e.g., amounts) of the portions of hand 703f and hand 705d that have a depth conflict with virtual object 707 are different. For example, as described above, hand 703f has a second magnitude 715b of depth conflict with virtual object 707, as shown in legend 713. In some embodiments, hand 705d has a third magnitude 717a of depth conflict with virtual object 707 that is smaller than second magnitude 715b, as shown in legend 713. For example, similar to above, hand portion 705d touches / intersects a smaller surface area of virtual object 707 than hand portion 703f, which is behind virtual object 707 (e.g., relative to the user's viewpoint). Thus, as described above and as shown in FIG. 7H , in some embodiments, computer system 101 individually resolves or reduces depth conflicts with hands 703f and 705d based on the magnitude (e.g., amount) of each hand that is in conflict with virtual object 707 in three-dimensional environment 702.
[0236] It should be appreciated that in some embodiments, computer system 101 utilizes the above-described mitigation techniques (e.g., modifying visual properties of the virtual object and / or ceasing to display portions of the virtual object within the three-dimensional environment) to mitigate depth conflicts with other physical objects other than the hand(s) of a user of the computer system. For example, in response to detecting that a first virtual object has encountered a depth conflict in the three-dimensional environment with a physical object other than the user's hand (e.g., a hardware input device such as a controller, keyboard, trackpad, pointer, and / or mouse, or another part of the user other than a hand, such as an arm, leg, knee, and / or elbow), the computer system utilizes the above-described techniques to reduce or resolve the depth conflict between the first virtual object and the physical object within the three-dimensional environment.
[0237] 8A-8N are flowcharts illustrating an example method 800 for facilitating depth conflict mitigation for a virtual object in a three-dimensional environment by reducing the visual salience of one or more portions of the virtual object, according to some embodiments. In some embodiments, method 800 is performed on a computer system (e.g., computer system 101 of FIG. 1 , such as a tablet, smartphone, wearable computer, or head-mounted device) that includes display generating components (e.g., display generating components 120 of FIGS. 1, 3, and 4 ) (e.g., a head-up display, a display, a touchscreen, and / or a projector) and one or more cameras (e.g., a camera pointing down a user's hand (e.g., a color sensor, an infrared sensor, and other depth-sensing camera) or a camera pointing forward from a user's head). In some embodiments, method 800 is governed by instructions stored on a non-transitory computer-readable storage medium and executed by one or more processors of the computer system, such as one or more processors 202 of computer system 101 (e.g., control unit 110 of FIG. 1A ). Some operations of method 800 are optionally combined and / or the order of some operations is optionally changed.
[0238] In some embodiments, method 800 is performed in a computer system (e.g., 101) in communication with a display generation component (e.g., 120) and one or more input devices (e.g., 314). For example, the computer system is or includes a mobile device (e.g., a tablet, smartphone, media player, or wearable device) or a computer. In some embodiments, the display generation component is an external display such as a display (optionally a touchscreen display) integral with the electronic device, a monitor, projector, television, or hardware component (optionally integrated or external) for projecting a user interface or making the user interface visible to one or more users. In some embodiments, the one or more input devices include electronic devices or components capable of receiving user input (e.g., capturing user input or detecting user input) and transmitting information associated with the user input to the electronic device. Examples of input devices include a touchscreen, a mouse (e.g., external), a trackpad (optionally integrated or external), a touchpad (optionally integrated or external), a remote control device (e.g., external), another mobile device (e.g., separate from the electronic device), a handheld device (e.g., external), a controller (e.g., external), a camera, a depth sensor, an eye tracking device, and / or a motion sensor (e.g., a hand tracking device or hand motion sensor). In some embodiments, the computer system communicates with a hand tracking device (e.g., one or more cameras, depth sensors, proximity sensors, touch sensors (touchscreen, trackpad)). In some embodiments, the hand tracking device is a wearable device such as a smart glove. In some embodiments, the hand tracking device is a handheld input device such as a remote control or a stylus.
[0239] In some embodiments, a computer system displays (802a) a virtual object in a three-dimensional environment, such as virtual object 707 or virtual object 727 in three-dimensional environment 702 as shown in FIG. 7A, via a display generating component. For example, the three-dimensional environment is generated, displayed, or otherwise made visible by the computer system (e.g., an extended reality (XR) environment, such as a virtual reality (VR) environment, a mixed reality (MR) environment, or an augmented reality (AR) environment). In some embodiments, the physical environment surrounding the display generating component is visible through a transparent portion of the display generating component (e.g., a true or actual pass-through). For example, a representation of the physical environment is displayed in the three-dimensional environment via the display generating component (e.g., a virtual or video pass-through), such as displaying a captured portion of the physical environment surrounding display generating component 120 of FIG. 7A. In some embodiments, the virtual object is generated by a computer system and / or is or includes content such as a window of a web browsing application displaying content (e.g., text, images, or video), as similarly shown in virtual object 727 of FIG. 7A ; a window displaying a photo or video clip; a media player window for controlling playback of a content item on a computer system, as similarly shown in virtual object 707 of FIG. 7A ; a contact card in a contacts application displaying contact information (e.g., phone number, email address, and / or birthday); and / or a virtual board game of a gaming application. In some embodiments, the virtual object is displayed at a discrete location within the three-dimensional environment that is within the field of view of a user of the computer system from the user's current viewpoint of the three-dimensional environment. In some embodiments, the virtual object includes multiple parts, including a first part and a second part that are different (e.g., non-overlapping) parts of the multiple parts.For example, the first portion of the virtual object may be or include an upper portion (e.g., upper half) of the virtual object relative to the user's viewpoint, and the second portion of the virtual object may be or include a lower portion (e.g., lower half) of the virtual object relative to the user's viewpoint. As another example, the first portion of the virtual object may be or include an outer edge of a first side of the virtual object relative to the user's viewpoint, and the second portion of the virtual object may be or include an outer edge of a second side, different from the first side, of the virtual object relative to the user's viewpoint. In some embodiments, the first and second portions of the virtual object have first visual properties (e.g., appearance) determined by content included in the virtual object (e.g., pixel representation of the content). In some embodiments, the first visual properties are determined by lighting, darkening, transparency, blurring, brightening, and / or saturation effects, each of which has a default value based on the content of the virtual object. For example, while a computer system displays a first portion and a second portion of a virtual object having a first visual property, the first visual property is automatically (e.g., by default) determined based on and / or defined by the content of the virtual object, such as the media browsing content of virtual object 707 or the web browsing content of virtual object 727, as shown in Figure 7A. In some embodiments, the characteristics of the first visual property do not include and / or are distinct from the size of the virtual object, the lighting of the virtual object, the shadows associated with the virtual object (e.g., cast on the virtual object by other objects), or other visual characteristics that change automatically and / or otherwise based on changes in the placement of the virtual object within the three-dimensional environment relative to the user's viewpoint.
[0240] In some embodiments, while displaying a virtual object within the three-dimensional environment, the computer system detects (802b) via one or more input devices a first input including movement of a first portion (e.g., a first hand) of a user of the computer system relative to the virtual object within the three-dimensional environment, such as movement of hand 703a relative to virtual object 707 as shown in FIG. 7A. For example, the computer system detects movement of a first hand (e.g., a left hand or a right hand) of the user of the computer system, detected by one or more input devices (e.g., hand tracking devices) in communication with the computer system. In some embodiments, the movement of the user's first hand is detected without detecting an air pinch gesture performed by two or more fingers of the user's first hand. For example, the computer system detects movement of the user's first hand in space without detecting the index finger and thumb of the first hand coming together and touching at their tips. In some embodiments, the computer system detects the first input via a hardware input device in communication with the computer system (e.g., a controller operable with six degrees of freedom of movement, or a touchpad or mouse). For example, the computer system detects movement of a controller in space, movement of a mouse across a surface (e.g., a tabletop), and / or movement of the fingers of a user's hand across a touchpad. In some embodiments, the user's hand movement (e.g., air gesture, touch gesture, or hand input) is in a discrete direction in space (e.g., vertical, horizontal, or diagonal) relative to a virtual object in the three-dimensional environment. For example, the computer system detects movement of a first hand of the user away from the user's body toward a portion of the three-dimensional environment that is visible through the display generating component (e.g., a portion of the three-dimensional environment that includes a virtual object), such as movement (e.g., air gesture, touch gesture, or hand input) of hand 703a toward a portion of three-dimensional environment 702 that is visible through display generating component 120, as shown in FIG. 7A .In some embodiments, the first input includes attention-only and / or gaze-only input (eg, does not include input from one or more parts of the user other than the part providing the attention input).
[0241] In some embodiments, in response to detecting the first input (802c), the first input is detected, such as contact between hand 703c and first portion 708 of virtual object 707, as shown in FIGS. 7C and 7C-1, where at least a portion of the first portion of the user has a depth conflict with the first portion of the virtual object in the three-dimensional environment relative to the user's viewpoint (e.g., after movement of the user's first hand in space, the first hand at least partially contacts or intersects with the first portion of the virtual object in the three-dimensional environment, or is within a threshold distance (e.g., 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90 , 3, 5, 10, 15, 20, 25, 30, or 50 cm) and, following movement of the first portion of the user, in accordance with a determination that at least a portion of the first portion of the user does not have a depth conflict with a second portion of the virtual object in the three-dimensional environment relative to the user's viewpoint (802d), the computer system reduces the visual prominence of the first portion of the virtual object in the three-dimensional environment relative to the second portion of the virtual object (802e), such as by changing the visual appearance of the first portion 708 of the virtual object 707 in the three-dimensional environment 702, as shown in FIGS. 7C and 7C-1. In some embodiments, when the first portion of the user at least partially contacts or intersects with the first portion of the virtual object, the first portion of the user creates a depth conflict with the first portion of the virtual object in the three-dimensional environment relative to the user's viewpoint. In some embodiments, the first portion of the virtual object has a depth conflict with the first portion of the user, but the second portion of the virtual object does not have a depth conflict with the first portion of the user in the three-dimensional environment. For example, the user's first hand does not at least partially contact or intersect with the second portion of the virtual object in the three-dimensional environment after movement of the user's first hand in space, such as hand 703c not contacting second portion 710 of virtual object 707, as shown in Figures 7C and 7C-1. In some embodiments, in accordance with a determination that the user's first hand at least partially contacts or intersects with the first portion of the virtual object in the three-dimensional environment, the computer system automatically updates the display of the first portion of the virtual object to resolve or reduce depth conflicts in the three-dimensional environment.In some embodiments, reducing the visual prominence of the first portion of the virtual object relative to the second portion of the virtual object includes ceasing to display the first portion of the virtual object in the three-dimensional environment. For example, the computer system no longer displays the first portion of the virtual object with which the user's first hand has a depth conflict in the three-dimensional environment to resolve the depth conflict in the three-dimensional environment (e.g., so that the display of the virtual object no longer appears to be obstructed by the user's first hand in the three-dimensional environment relative to the user's viewpoint). In some embodiments, reducing the visual prominence of the first portion of the virtual object relative to the second portion of the virtual object includes ceasing to display a third portion of the virtual object with which the user's first hand includes the first portion of the virtual object with which the user's first hand has a depth conflict in the three-dimensional environment. For example, the computer system no longer displays a portion of the virtual object that is larger (e.g., by amount) than the first portion of the virtual object with which the user's first hand has a depth conflict in the three-dimensional environment. In some embodiments, as discussed in more detail below, the first portion of the virtual object corresponds to the size of the user's first hand, not just the portion of the user's first hand that touches the virtual object in the three-dimensional environment. For example, when the computer system detects that one or more fingers of a user's first hand are touching a virtual object in the three-dimensional environment, the size of the first portion of the virtual object that is no longer displayed in the three-dimensional environment corresponds to (e.g., is equal to or proportional to) the size of the user's first hand (e.g., includes all fingers and the palm of the user's first hand). In some embodiments, when the computer system reduces the visual prominence of the first portion of the virtual object relative to the second portion of the virtual object, the first portion of the user is visible through the virtual object in the three-dimensional environment relative to the user's viewpoint. For example, when the computer system no longer displays the first portion of the virtual object in the three-dimensional environment, the portion of the user's first hand that caused a depth conflict with the virtual object in the three-dimensional environment no longer intersects or touches the first portion of the virtual object relative to the user's viewpoint.In some embodiments, as discussed below, when the computer system reduces the visual salience of a first portion of the virtual object relative to a second portion of the virtual object, the second portion of the virtual object remains displayed in the three-dimensional environment. For example, the user's first hand and the second portion of the virtual object are visible and unobstructed from the user's perspective when the computer system ceases displaying the first portion of the virtual object. In some embodiments, in response to the first input, the computer system displays the first portion of the virtual object with an animation effect that causes the first portion of the virtual object to no longer be displayed in the three-dimensional environment when the user's first portion contacts or intersects with the first portion of the virtual object. For example, as described in more detail below, the animation effect includes a feathering effect that shows the user's first hand when the user's first hand is in contact with the first portion of the virtual object (e.g., the portion of the virtual object surrounding the user's first hand is feathered relative to the user's perspective when the first portion of the virtual object is no longer displayed). In some embodiments, decreasing the visual salience of the first portion of the virtual object relative to the second portion of the virtual object includes increasing the transparency of the first portion relative to the second portion of the virtual object in the three-dimensional environment, decreasing the brightness and / or saturation of the first portion relative to the second portion, and / or increasing the blur of the first portion relative to the second portion. In some embodiments, as discussed in more detail below, the computer system ceases responding to inputs directed at the first portion of the virtual object while the salience of the first portion of the virtual object is reduced relative to the second portion of the virtual object. For example, if the computer system detects a selection input directed at the first portion of the virtual object, the computer system does not perform a selection operation on the first portion of the virtual object in response to detecting the input.In some embodiments, the computer system reduces the visual prominence of a first portion of the virtual object relative to a second portion of the virtual object for a duration that the first portion of the user remains in contact with the first portion of the virtual object. For example, if the computer system detects a movement of the user's first hand away from the virtual object in the three-dimensional environment that causes the first portion of the virtual object to no longer have a depth conflict in the three-dimensional environment, the computer system redisplays the first portion of the virtual object with the first visual properties (e.g., redisplays the first portion of the virtual object in the three-dimensional environment). In some embodiments, when the computer system reduces the visual prominence of the first portion of the virtual object relative to the second portion of the virtual object in response to detecting a depth conflict between the first portion of the user and the first portion of the virtual object, the computer system does not reduce the visual prominence of other portions of the three-dimensional environment (e.g., objects or portions of the physical environment surrounding the virtual object) relative to the second portion of the virtual object and / or does not modify the visual properties of the other portions of the three-dimensional environment.
[0242] In some embodiments, the computer system maintains (802f) a display of the second portion of the virtual object in the three-dimensional environment, such as maintaining a display of the second portion 710 of the virtual object 707 that does not have a depth conflict with the hand 703c, as shown in Figures 7C and 7C-1. For example, in accordance with a determination that the user's first hand does not at least partially contact or intersect with the second portion of the virtual object in the three-dimensional environment, the computer system maintains a display of the second portion of the virtual object having the visual appearance it had before the first input. In some embodiments, the computer system simultaneously displays the first portion of the virtual object with reduced visual salience relative to the second portion of the virtual object and the second portion of the virtual object with the first visual property, as similarly shown for the virtual object 707 in Figures 7C and 7C-1.
[0243] In some embodiments, in accordance with a determination that at least a portion of the user's first portion does not have a depth conflict with a virtual object in the three-dimensional environment relative to the user's viewpoint after the user's first portion moves, such as when hand 703c does not touch virtual object 727 (e.g., the virtual object does not encounter a depth conflict with any portion of the user's first hand, such as when the virtual object does not have a depth conflict with any finger of the user's hand after the first hand moves), as shown in Figures 7C and 7C-1, the computer system maintains the display of the first and second portions of the virtual object without reducing the visual salience of the first portion of the virtual object in the three-dimensional environment relative to the visual salience of the second portion of the virtual object (802g), such as by maintaining the display of virtual object 727, as shown in Figures 7C and 7C-1. For example, in accordance with a determination that the first and second portions of the virtual object do not at least partially contact or intersect with the user's first hand after the user's first hand moves in space relative to the user's viewpoint, the computer system maintains the display of the first and second portions of the virtual object having the first visual property described above. Modifying the visual properties of an object in the three-dimensional environment when the object encounters a depth conflict with a part of the user based on movement of the part of the user relative to the three-dimensional environment provides feedback that the display of the object is in conflict with a part of the user, which facilitates user input to resolve or reduce the depth conflict and / or allows the user to continue interacting with the computer system while there is a depth conflict, thereby improving user-device interaction and / or reducing the salience of the depth conflict in the three-dimensional environment, which reduces eye strain for the user and thereby avoids potential physical discomfort to the user caused by the depth conflict.
[0244] In some embodiments, in response to detecting a first input according to a determination that at least a portion of a first portion of a user has a depth conflict with a first portion of a virtual object in the three-dimensional environment relative to the user's viewpoint and that at least a portion of the first portion of the user does not have a depth conflict with a second portion of the virtual object in the three-dimensional environment relative to the user's viewpoint after movement of the first portion of the user, the computer system detects (804a) via one or more input devices a change in the position of the virtual object in the three-dimensional environment, similar to a difference in position between virtual object 707 and virtual object 727 as shown in legend 709 of FIG. 7A , while the visual prominence of the first portion of the virtual object is reduced in the three-dimensional environment. For example, the computer system detects a change in the position of the virtual object in the three-dimensional environment while the hand of a user of the computer system has a depth conflict with the first portion of the virtual object in the three-dimensional environment. In some embodiments, the virtual object is located at a first location in the three-dimensional environment when the first input is detected and while the visual prominence of the first portion of the virtual object is reduced. In some embodiments, the computer system detects that the virtual object moves from a first location to a second location within the three-dimensional environment while the user's hand has a depth conflict with a first portion of the virtual object. In some embodiments, the virtual object moves in response to user input. For example, the virtual object moves in response to input provided by the user's second hand that moves the virtual object to the second location within the three-dimensional environment (e.g., an air pinch gesture provided by the user's second hand directed at the virtual object (e.g., the index finger and thumb of the user's second hand coming together to touch), followed by movement of the user's second hand in a respective direction and magnitude in space). In some embodiments, the virtual object moves in response to detecting a movement of the user's viewpoint. For example, the virtual object is viewpoint-locked within the three-dimensional environment, and movement of the user's viewpoint moves the virtual object to the second location in accordance with the movement of the viewpoint.
[0245] In some embodiments, in response to detecting a change in the position of the virtual object within the three dimensional environment (804b), the change in the position of the virtual object within the three dimensional environment causes at least a portion of the first portion of the user to have a depth conflict with a third portion of the virtual object that is different from the first portion of the virtual object within the three dimensional environment relative to the user's viewpoint that contacts or intersects with a third portion of the virtual object (e.g., similar to what is described above with reference to steps 802a-802g), after the virtual object changes position within the three dimensional environment, the user's first hand at least partially contacts or intersects with the third portion of the virtual object within the three dimensional environment or is within a threshold distance (e.g., 0, 1, 2, 3, 5, 10, 15, 20, 25, 30, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145, 150, 160, 165, 170, 175, 180, 185, 190, 200, 210, 210, 220, 230, 240, 250, 260, 270, 280, 290, 300, 310, 320, 330, 340, 350, 360, 370, 380, 390, 400, 410, 420, 430, 440, 450, 460, 470, 4 7D ), while at least a portion of the first portion of the user does not have a depth conflict with a fourth portion different from the third portion of the virtual object in the three-dimensional environment (804c), such as hand 705a having a depth conflict with first portion 730 of virtual object 727 that is at a location in three-dimensional environment 702 different from virtual object 707 that has a depth conflict with hand 703d in FIG. 7D , the computer system reduces the visual prominence of the third portion of the virtual object in the three-dimensional environment relative to the fourth portion of the virtual object in the three-dimensional environment (804d), such as by changing the visual appearance of first portion 730 of virtual object 727, as shown in FIG. 7D . In some embodiments, the first portion of the user no longer has a depth conflict with the first portion of the virtual object in the three-dimensional environment when the first portion of the user has a depth conflict with the third portion of the virtual object. In some embodiments, the third portion of the virtual object has a depth conflict with the first portion of the user, but the fourth portion of the virtual object does not have a depth conflict with the first portion of the user in the three-dimensional environment, e.g., the first hand of the user does not at least partially contact or intersect with the fourth portion of the virtual object in the three-dimensional environment after the change in position of the virtual object in the three-dimensional environment.In some embodiments, in accordance with a determination that the user's first hand at least partially contacts or intersects with the third portion of the virtual object in the three-dimensional environment, similar to that described above with reference to steps 802a-802g, the computer system automatically updates the display of the third portion of the virtual object to resolve or reduce the depth conflict in the three-dimensional environment. In some embodiments, similar to that described above with reference to steps 802a-802g, reducing the visual prominence of the third portion of the virtual object relative to the fourth portion of the virtual object includes ceasing to display the third portion of the virtual object in the three-dimensional environment. For example, to resolve the depth conflict in the three-dimensional environment, the computer system no longer displays the third portion of the virtual object with which the user's first hand has a depth conflict in the three-dimensional environment. In some embodiments, reducing the visual prominence of the third portion of the virtual object relative to the fourth portion of the virtual object includes increasing the transparency of the third portion relative to the fourth portion of the virtual object in the three-dimensional environment, decreasing the brightness and / or saturation of the third portion relative to the fourth portion, and / or increasing the blur of the third portion relative to the fourth portion, as also described above with reference to steps 802a-802g. In some embodiments, once the computer system reduces the visual prominence of the third portion of the virtual object in the three-dimensional environment, the computer system no longer reduces the visual prominence of the first portion of the virtual object (e.g., this was done in response to a first input, as described above). For example, the computer system re-displays the first portion of the virtual object in the three-dimensional environment and / or re-displays the first portion of the virtual object with the first visual property as described above with reference to steps 802a-802g.
[0246] In some embodiments, the computer system maintains (804e) the display of a fourth portion of the virtual object in the three-dimensional environment, such as maintaining the display of second portion 732 of virtual object 727 that does not have a depth conflict, as shown in FIG. 7D . For example, similar to what is described above with reference to steps 802a-802g, in accordance with a determination that the user's first hand does not at least partially contact or intersect with the fourth portion of the virtual object in the three-dimensional environment as the virtual object changes position in the three-dimensional environment, the computer system maintains the display of the fourth portion of the virtual object with the visual appearance it had before the change in position of the virtual object. In some embodiments, in accordance with a determination that, after the change in position of the virtual object in the three-dimensional environment, at least a portion of the user's first hand does not have a depth conflict with the virtual object in the three-dimensional environment relative to the user's viewpoint, the computer system maintains the display of the third and fourth portions of the virtual object without reducing the visual salience of the third portion of the virtual object in the three-dimensional environment relative to the visual salience of the fourth portion of the virtual object in the three-dimensional environment. Modifying the visual properties of an object in the three-dimensional environment based on the object's movement within the three-dimensional environment when the object encounters a depth conflict with a portion of the user provides feedback that the display of the object is in conflict with a portion of the user, which facilitates user input to resolve or reduce the depth conflict and / or allows the user to continue interacting with the computer system while there is a depth conflict, thereby improving user-device interaction and / or reducing the salience of the depth conflict within the three-dimensional environment, which reduces the user's eye strain and thereby avoids potential physical discomfort to the user caused by the depth conflict.
[0247] In some embodiments, in response to detecting a first input in accordance with a determination that at least a portion of a first portion of a user has a depth conflict with a first portion of a virtual object in the three-dimensional environment for the user's viewpoint and that, after movement of the first portion of the user, at least a portion of the first portion of the user does not have a depth conflict with a second portion of the virtual object in the three-dimensional environment for the user's viewpoint, the computer system detects (806a), via one or more input devices, movement of a first portion of a user relative to a virtual object in the three-dimensional environment, such as movement of hand 703c (e.g., an air gesture, a touch gesture, or a hand input) relative to virtual object 707 while hand 703c has a depth conflict with first portion 708 of virtual object 707, as shown in FIGS. 7C and 7C-1 . For example, the computer system detects movement of the user's hand (e.g., an air gesture, a touch gesture, or a hand input) relative to the virtual object while the hand of the user of the computer system has a depth conflict with the first portion of the virtual object in the three-dimensional environment. In some embodiments, the computer system detects that the user's hand moves in space in a distinct direction and with a distinct magnitude (e.g., speed and / or distance). For example, while the user's hand has a depth conflict with a first portion of a virtual object, the computer system detects that the hand moves upward or downward relative to the virtual object in the three-dimensional environment, or laterally relative to the virtual object (e.g., leftward or rightward), such as a leftward movement of hand 703c (e.g., an air gesture, a touch gesture, or a hand input) as shown in FIGS. 7C and 7C-1. In some embodiments, the computer system detects that the user's hand moves regardless of the location of the user's attention in the three-dimensional environment.
[0248] In some embodiments, in response to detecting a movement of the first portion of the user (806b), the movement of the first portion of the user causes at least a portion of the first portion of the user to have a depth conflict with a third portion 714 of the virtual object 707 relative to the user's viewpoint, the third portion being different from the first portion (e.g., as similarly described above with reference to steps 802a-802g), after the user's first hand moves relative to the virtual object in the three-dimensional environment, the user's first hand at least partially contacts or is in contact with the third portion of the virtual object in the three-dimensional environment, such as when hand 703d encounters a depth conflict with third portion 714 of virtual object 707, as shown in FIG. 7D . In accordance with a determination 806c that at least a portion of the first portion of the user intersects or comes within a threshold distance (e.g., 0, 1, 2, 3, 5, 10, 15, 20, 25, 30, or 50 cm) of contacting or intersecting the third portion of the virtual object, while at least a portion of the first portion of the user does not have a depth conflict with a fourth portion of the virtual object in the three-dimensional environment relative to the user's viewpoint, different from the third portion, the computer system reduces 806d the visual prominence of the third portion of the virtual object in the three-dimensional environment relative to the fourth portion of the virtual object in the three-dimensional environment, such as by changing the visual appearance of third portion 714 of virtual object 707, as shown in FIG. 7D . In some embodiments, when the first portion of the user has a depth conflict with the third portion of the virtual object, such as when hand 703d no longer has a depth conflict with first portion 708 of virtual object 707, as shown in FIG. In some embodiments, the third portion of the virtual object has a depth conflict with the first portion of the user, but the fourth portion of the virtual object does not have a depth conflict with the first portion of the user in the three-dimensional environment. For example, the first hand of the user does not at least partially contact or intersect with the fourth portion of the virtual object in the three-dimensional environment after a hand movement (e.g., an air gesture, a touch gesture, or a hand input) relative to the virtual object in the three-dimensional environment, such as hand 703d not contacting fourth portion 716 of virtual object 707, as shown in FIG.In some embodiments, in accordance with a determination that the user's first hand at least partially contacts or intersects with the third portion of the virtual object in the three-dimensional environment, similar to that described above with reference to steps 802a-802g, the computer system automatically updates the display of the third portion of the virtual object to resolve or reduce the depth conflict in the three-dimensional environment. In some embodiments, similar to that described above with reference to steps 802a-802g, reducing the visual prominence of the third portion of the virtual object relative to the fourth portion of the virtual object includes ceasing to display the third portion of the virtual object in the three-dimensional environment. For example, to resolve the depth conflict in the three-dimensional environment, the computer system no longer displays the third portion of the virtual object with which the user's first hand has a depth conflict in the three-dimensional environment. In some embodiments, reducing the visual prominence of the third portion of the virtual object relative to the fourth portion of the virtual object includes increasing the transparency of the third portion relative to the fourth portion of the virtual object in the three-dimensional environment, decreasing the brightness and / or saturation of the third portion relative to the fourth portion, and / or increasing the blur of the third portion relative to the fourth portion, as similarly described above with reference to steps 802a-802g. In some embodiments, once the computer system reduces the visual prominence of the third portion of the virtual object in the three-dimensional environment, the computer system no longer reduces the visual prominence of the first portion of the virtual object (e.g., did so in response to the first input, as described above), such as no longer changing the appearance of first portion 708 of virtual object 707, as shown in FIG. 7D . For example, the computer system re-displays the first portion of the virtual object in the three-dimensional environment and / or re-displays the first portion of the virtual object with the first visual property described above with reference to steps 802a-802g.
[0249] In some embodiments, the computer system maintains (806e) the display of the fourth portion of the virtual object in the three-dimensional environment, such as maintaining the display of fourth portion 716 of virtual object 707 that does not have a depth conflict, as shown in FIG. 7D . For example, similar to what is described above with reference to steps 802a-802g, in accordance with a determination that the user's first hand does not at least partially contact or intersect with the fourth portion of the virtual object in the three-dimensional environment as the user's hand moves relative to the virtual object in the three-dimensional environment, the computer system maintains the display of the fourth portion of the virtual object with the visual appearance it had before the user's hand movement (e.g., air gesture, touch gesture, or hand input). In some embodiments, in accordance with a determination that at least a portion of the user's first portion does not have a depth conflict with the virtual object in the three-dimensional environment relative to the user's viewpoint after the user's first portion moves relative to the virtual object in the three-dimensional environment, the computer system maintains the display of the third and fourth portions of the virtual object without reducing the visual salience of the third portion of the virtual object in the three-dimensional environment relative to the visual salience of the fourth portion of the virtual object in the three-dimensional environment. Modifying the visual properties of an object in the three-dimensional environment when the object encounters a depth conflict with a part of the user based on movement of a part of the user relative to the object in the three-dimensional environment provides feedback that the display of the object is in conflict with a part of the user, which facilitates user input to resolve or reduce the depth conflict and / or allows the user to continue interacting with the computer system while there is a depth conflict, thereby improving user-device interaction and / or reducing the salience of the depth conflict in the three-dimensional environment, which reduces eye strain for the user and thereby avoids potential physical discomfort for the user caused by the depth conflict.
[0250] In some embodiments, in response to detecting a first input in accordance with a determination that at least a portion of a first portion of a user has a depth conflict with a first portion of a virtual object in the three-dimensional environment for the user's viewpoint and that at least a portion of the first portion of the user does not have a depth conflict with a second portion of the virtual object in the three-dimensional environment for the user's viewpoint after movement of the first portion of the user, the computer system detects (808a) via one or more input devices a movement of the user's viewpoint relative to the virtual object in the three-dimensional environment, such as a movement of hand 705b (e.g., an air gesture, a touch gesture, or a hand input) corresponding to movement of display generating component 120, as shown in FIG. 7D , while the visual salience of the first portion of the virtual object is reduced in the three-dimensional environment. For example, the computer system detects a movement of the user's viewpoint relative to the virtual object while the hand of the user of the computer system has a depth conflict with the first portion of the virtual object in the three-dimensional environment. In some embodiments, the computer system detects a movement of the display generating component whereby a three-dimensional environment including the virtual object is displayed to the user. For example, the computer system detects that the display generating component moves in space in a discrete direction, such as to the left in space, and with a discrete magnitude (e.g., velocity and / or distance), as shown in FIG. 7E. In some embodiments, the computer system includes a head-mounted display configurable to be worn on the user's head. In some embodiments, detecting the movement of the user's viewpoint includes detecting the movement of the user's head in space (e.g., the user's head rotating clockwise or counterclockwise, causing the user's viewpoint to move clockwise or counterclockwise accordingly). In some embodiments, the computer system detects the movement of the user's viewpoint regardless of the location of the user's attention within the three-dimensional environment.
[0251] In some embodiments, in response to detecting a movement of the user's viewpoint (808b), the step of detecting a movement of the user's viewpoint causes at least a portion of the user's first hand to have a depth conflict with a third portion of the virtual object in the three-dimensional environment that is different from the first portion relative to the user's viewpoint (e.g., as similarly described above with reference to steps 802a-802g), the step of detecting a movement of the user's viewpoint relative to the virtual object in the three-dimensional environment causes the user's first hand to at least partially contact or intersect with the third portion of the virtual object in the three-dimensional environment, or to be within a threshold distance (e.g., 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, , 5, 10, 15, 20, 25, 30, or 50 cm), while pursuant to a determination that at least a portion of the first portion of the user does not have a depth conflict with a fourth portion of the virtual object in the three-dimensional environment that is different from the third portion relative to the user's viewpoint (808c), such as a depth conflict between hand 703f and portion 718 of virtual object 707 as shown in FIG. 7F, the computer system reduces the visual prominence of the third portion of the virtual object in the three-dimensional environment relative to the fourth portion of the virtual object in the three-dimensional environment (808d), such as by changing the visual appearance of portion 718 of virtual object 707, as shown in FIG. 7F. In some embodiments, in response to detecting a movement of the user's viewpoint, the computer system updates the display of the three-dimensional environment to display the virtual object from the user's new (e.g., updated) viewpoint. For example, a movement of the user's viewpoint causes the virtual object to visually appear to shift and / or rotate relative to the user's new viewpoint (e.g., based on a counterclockwise or clockwise movement of the user's viewpoint), such as the rotation of virtual object 707 relative to the user's viewpoint in FIG. 7F. In some embodiments, when the virtual object shifts and / or rotates relative to the user's new viewpoint, the third portion of the virtual object at least partially contacts and / or intersects with the first portion of the user within the three-dimensional environment. In some embodiments, the first portion of the user no longer has a depth conflict with the first portion of the virtual object within the three-dimensional environment when the first portion of the user has a depth conflict with the third portion of the virtual object.In some embodiments, the third portion of the virtual object has a depth conflict with the first portion of the user, but the fourth portion of the virtual object does not have a depth conflict with the first portion of the user in the three-dimensional environment. For example, after a movement of the user's viewpoint relative to the virtual object in the three-dimensional environment, the user's first hand does not at least partially contact or intersect with the fourth portion of the virtual object in the three-dimensional environment, such as when hand 703f does not touch portion 720 of virtual object 707, as shown in FIG. 7F. In some embodiments, in accordance with a determination that the user's first hand at least partially contacts or intersects with the third portion of the virtual object in the three-dimensional environment, similar to what has been described above with reference to steps 802a-802g, the computer system automatically updates the display of the third portion of the virtual object to resolve or reduce the depth conflict in the three-dimensional environment. In some embodiments, similar to what has been described above with reference to ste...
Claims
1. A computer system in communication with a display generation component and one or more input devices, comprising: displaying a virtual object within a three-dimensional environment via the display generation component; detecting, while displaying the virtual object within the three-dimensional environment, a first input via the one or more input devices, the first input comprising a movement of a first portion of a user of the computer system relative to the virtual object within the three-dimensional environment; In response to detecting the first input, in accordance with a determination that at least a portion of the first portion of the user has a depth conflict with a first portion of the virtual object in the three-dimensional environment for a viewpoint of the user, and that at least a portion of the first portion of the user does not have a depth conflict with a second portion of the virtual object in the three-dimensional environment for the viewpoint of the user after the movement of the first portion of the user; reducing the visual salience of the first portion of the virtual object in the three-dimensional environment relative to the second portion of the virtual object; maintaining a display of the second portion of the virtual object within the three-dimensional environment; maintaining display of the first and second portions of the virtual object without reducing the visual salience of the first portion of the virtual object in the three-dimensional environment relative to the visual salience of the second portion of the virtual object in accordance with a determination that at least a portion of the first portion of the user does not have a depth conflict with the virtual object in the three-dimensional environment relative to the viewpoint of the user after the movement of the first portion of the user.
2. in response to detecting the first input according to the determination that the at least the portion of the first portion of the user has the depth conflict with the first portion of the virtual object in the three-dimensional environment relative to the user's viewpoint and that the at least the portion of the first portion of the user does not have a depth conflict with the second portion of the virtual object in the three-dimensional environment relative to the user's viewpoint after the movement of the first portion of the user, detecting a change in position of the virtual object in the three-dimensional environment via the one or more input devices while the visual salience of the first portion of the virtual object is reduced in the three-dimensional environment; in response to detecting the change in the position of the virtual object within the three-dimensional environment; in accordance with a determination that the change in the position of the virtual object within the three-dimensional environment causes at least a portion of the first portion of the user to have a depth conflict with a third portion of the virtual object in the three-dimensional environment relative to the user's viewpoint, the third portion being different from the first portion, while at least a portion of the first portion of the user does not have a depth conflict with a fourth portion of the virtual object in the three-dimensional environment relative to the user's viewpoint, the fourth portion being different from the third portion; reducing the visual salience of the third portion of the virtual object in the three-dimensional environment relative to the fourth portion of the virtual object in the three-dimensional environment; and maintaining a display of the fourth portion of the virtual object within the three-dimensional environment.
3. in response to detecting the first input in accordance with the determination that the at least the portion of the first portion of the user has the depth conflict with the first portion of the virtual object in the three-dimensional environment relative to the user's viewpoint and that the at least the portion of the first portion of the user does not have a depth conflict with the second portion of the virtual object in the three-dimensional environment relative to the user's viewpoint after the movement of the first portion of the user, detecting movement of the first portion of the user relative to the virtual object in the three-dimensional environment via the one or more input devices while the visual salience of the first portion of the virtual object is reduced in the three-dimensional environment; In response to detecting the movement of the first portion of the user, in accordance with a determination that the movement of the first portion of the user causes at least a portion of the first portion of the user to have a depth conflict with a third portion of the virtual object in the three-dimensional environment relative to the user's viewpoint, the third portion being different from the first portion, while at least a portion of the first portion of the user does not have a depth conflict with a fourth portion of the virtual object in the three-dimensional environment relative to the user's viewpoint, the fourth portion being different from the third portion; reducing the visual salience of the third portion of the virtual object in the three-dimensional environment relative to the fourth portion of the virtual object in the three-dimensional environment; The method of claim 1 or 2, further comprising: maintaining a display of the fourth portion of the virtual object within the three-dimensional environment.
4. in response to detecting the first input in accordance with the determination that the at least the portion of the first portion of the user has the depth conflict with the first portion of the virtual object in the three-dimensional environment for the user's viewpoint and that the at least the portion of the first portion of the user does not have a depth conflict with the second portion of the virtual object in the three-dimensional environment for the user's viewpoint after the movement of the first portion of the user, detecting a movement of the user's viewpoint relative to the virtual object in the three-dimensional environment via the one or more input devices while the visual salience of the first portion of the virtual object is reduced in the three-dimensional environment; In response to detecting the movement of the viewpoint of the user, in accordance with a determination that the movement of the user's viewpoint causes at least a portion of the first portion of the user to have a depth conflict with a third portion of the virtual object in the three-dimensional environment relative to the user's viewpoint, the third portion being different from the first portion, while at least a portion of the first portion of the user does not have a depth conflict with a fourth portion of the virtual object in the three-dimensional environment relative to the user's viewpoint, the fourth portion being different from the third portion; reducing the visual salience of the third portion of the virtual object in the three-dimensional environment relative to the fourth portion of the virtual object in the three-dimensional environment; The method of claim 1 , further comprising: maintaining a display of the fourth portion of the virtual object within the three-dimensional environment.
5. Reducing the visual salience of the first portion of the virtual object in the three-dimensional environment relative to the second portion of the virtual object comprises: reducing a first amount of visual conspicuity of the first portion of the virtual object in the three-dimensional environment in accordance with a determination that the amount of depth conflict between the first portion of the user and the first portion of the virtual object is a first amount; and reducing visual salience of a second amount of the first portion of the virtual object in the three-dimensional environment in accordance with a determination that the amount of depth contention between the first portion of the user and the first portion of the virtual object is a second amount greater than the first amount, wherein the second amount of the first portion of the virtual object is greater than the first amount of the first portion of the virtual object.
6. a position of the first portion of the user relative to the virtual object in the three-dimensional environment is a first position, and the method further comprises: in response to detecting the first input in accordance with the determination that the at least the portion of the first portion of the user has the depth conflict with the first portion of the virtual object in the three-dimensional environment for the user's viewpoint and that the at least the portion of the first portion of the user does not have a depth conflict with the second portion of the virtual object in the three-dimensional environment for the user's viewpoint after the movement of the first portion of the user, detecting a second input via the one or more input devices including movement of the first portion of the user to a second position relative to the virtual object in the three-dimensional environment while the visual conspicuousness of the first amount of the virtual object is reduced in the three-dimensional environment; In response to detecting the second input, 6. The method of claim 5, further comprising: reducing the visual conspicuity of the first portion of the virtual object in the three-dimensional environment by the second amount, the second amount being greater than the first amount, in accordance with a determination that the movement of the first portion of the user to the second position increases a degree of depth conflict between the first portion of the user and the first portion of the virtual object in the three-dimensional environment.
7. a position of the first portion of the user relative to the virtual object in the three-dimensional environment is a first position, and the method further comprises: in response to detecting the first input according to the determination that at least a portion of the first portion of the user has the depth conflict with the first portion of the virtual object in the three-dimensional environment relative to the user's viewpoint and that at least a portion of the first portion of the user does not have a depth conflict with the second portion of the virtual object in the three-dimensional environment relative to the user's viewpoint after the movement of the first portion of the user, detecting a second input via the one or more input devices including movement of the first portion of the user to a second position relative to the virtual object in the three-dimensional environment while the visual conspicuousness of the first amount of the virtual object is reduced in the three-dimensional environment; In response to detecting the second input, 7. The method of claim 5 or 6, further comprising: reducing the visual conspicuousness of the first portion of the virtual object in the three-dimensional environment by the second amount less than the first amount in accordance with a determination that the movement of the first portion of the user to the second position reduces the degree of depth conflict between the first portion of the user and the first portion of the virtual object in the three-dimensional environment.
8. 8. The method of claim 1, wherein the determination that at least a portion of the first portion of the user has the depth conflict with the first portion of the virtual object in the three-dimensional environment for the user's viewpoint follows a determination that a second portion of the user does not have a depth conflict with a distinct virtual object in the three-dimensional environment for the user's viewpoint.
9. in response to detecting the first input according to the determination that the at least the portion of the first portion of the user has the depth conflict with the first portion of the virtual object in the three-dimensional environment relative to the user's viewpoint and that the at least the portion of the first portion of the user does not have a depth conflict with the second portion of the virtual object in the three-dimensional environment relative to the user's viewpoint after the movement of the first portion of the user, detecting a second input including movement of the second portion of the user relative to the respective virtual object in the three-dimensional environment via the one or more input devices while the visual salience of the first portion of the virtual object is reduced relative to the second portion of the virtual object; In response to detecting the second input, in accordance with a determination that at least a portion of the second portion of the user has a depth conflict with a third portion of the individual virtual object in the three dimensional environment for the user's viewpoint, and that at least a portion of the second portion of the user does not have a depth conflict with a fourth portion of the individual virtual object in the three dimensional environment for the user's viewpoint after the movement of the second portion of the user; 10. The method of claim 8, further comprising: reducing the visual salience of the third portion of the individual virtual object relative to the fourth portion of the individual virtual object within the three-dimensional environment while the visual salience of the first portion of the virtual object is reduced relative to the second portion of the virtual object.
10. reducing the visual salience of the first portion of the virtual object relative to the second portion of the virtual object in the three-dimensional environment includes reducing the visual salience of the first portion of the virtual object by a first magnitude; 10. The method of claim 9, wherein reducing the visual salience of the third portion of the individual virtual object relative to the fourth portion of the individual virtual object in the three-dimensional environment comprises reducing the visual salience of the third portion of the individual virtual object by a second magnitude different from the first magnitude.
11. in response to detecting the first input according to the determination that the at least the portion of the first portion of the user has the depth conflict with the first portion of the virtual object in the three-dimensional environment relative to the user's viewpoint and that the at least the portion of the first portion of the user does not have the depth conflict with the second portion of the virtual object in the three-dimensional environment relative to the user's viewpoint after the movement of the first portion of the user, detecting a second input via the one or more input devices comprising movement of the first portion of the user in a lateral direction relative to the virtual object in the three-dimensional environment while the visual salience of the first portion of the virtual object is reduced relative to the second portion of the virtual object; In response to detecting the second input, in accordance with a determination that, after the movement of the first portion of the user in the second input, the movement of the first portion of the user laterally relative to the virtual object causes at least a portion of the first portion of the user to have a depth conflict with a third portion of the virtual object that is different from the first portion of the virtual object relative to the viewpoint of the user within the three-dimensional environment, while at least a portion of the first portion of the user does not have a depth conflict with a fourth portion of the virtual object; 11. The method of claim 1, further comprising: reducing visual salience of the third portion of the virtual object relative to the fourth portion of the virtual object in the three-dimensional environment.
12. Reducing the visual salience of the first portion of the virtual object relative to the second portion of the virtual object includes ceasing to display the first portion of the virtual object within the three-dimensional environment, the method comprising: in response to detecting the second input and in accordance with the determination that the movement of the first portion of the user laterally relative to the virtual object causes at least a portion of the first portion of the user to have the depth conflict with the third portion of the virtual object relative to the viewpoint of the user within the three-dimensional environment, while after the movement of the first portion of the user, at least a portion of the first portion of the user does not have a depth conflict with the fourth portion of the virtual object; The method of claim 11 , further comprising: re-displaying the first portion of the virtual object within the three-dimensional environment.
13. detecting a second input directed at the first portion of the virtual object via the one or more input devices; In response to detecting the second input, In response to detecting the first input, in accordance with a determination that the at least the portion of the first portion of the user has the depth conflict with the first portion of the virtual object in the three-dimensional environment for the user's viewpoint, and that the at least the portion of the first portion of the user does not have a depth conflict with the second portion of the virtual object in the three-dimensional environment for the user's viewpoint after the movement of the first portion of the user, in accordance with a determination that the visual salience of the first portion of the virtual object is reduced relative to the second portion of the virtual object. ceasing to perform a discrete action associated with the first portion of the virtual object within the three-dimensional environment; and in response to detecting the first input in accordance with the determination that the at least the portion of the first portion of the user does not have a depth conflict with the virtual object in the three-dimensional environment relative to the viewpoint of the user after the movement of the first portion of the user, in accordance with a determination that the visual salience of the first portion of the virtual object is not reduced relative to the second portion of the virtual object; 13. The method of claim 1, further comprising: performing the individual action associated with the first portion of the virtual object in the three-dimensional environment.
14. 14. The method of claim 1, wherein an amount of the first portion of the virtual object that has its visual salience reduced relative to the second portion of the virtual object is based on an amount of the first portion of the user that has the depth conflict with the first portion of the virtual object in the three-dimensional environment and is independent of an amount of the first portion of the user that does not have the depth conflict with the first portion of the virtual object in the three-dimensional environment.
15. 14. The method of claim 1, wherein an amount of the first portion of the virtual object that has its visual prominence reduced relative to the second portion of the virtual object is based on an amount of the first portion of the user that has the depth conflict with the first portion of the virtual object in the three-dimensional environment and an amount of the first portion of the user that does not have the depth conflict with the first portion of the virtual object in the three-dimensional environment.
16. 16. The method of claim 1, wherein reducing the visual salience of the first portion of the virtual object relative to the second portion of the virtual object comprises displaying a visual boundary between the first portion of the virtual object and the second portion of the virtual object, within the visual boundary, the change in the visual salience of the virtual object is gradual.
17. while detecting the first input and prior to reducing the visual salience of the first portion of the virtual object relative to the second portion of the virtual object in accordance with the determination that at least a portion of the first portion of the user has the depth conflict with the first portion of the virtual object within the three-dimensional environment relative to the viewpoint of the user; moving the virtual object within the three-dimensional environment based on a first portion of the movement of the first portion of the user toward the virtual object to avoid the depth conflict between the first portion of the user and the virtual object until the movement of the first portion of the user toward the virtual object exceeds a threshold movement; in response to the movement of the first portion of the user towards the virtual object exceeding the threshold movement; 17. The method of claim 1, further comprising: ceasing to move the virtual object within the three-dimensional environment; and reducing the visual salience of the first portion of the virtual object relative to the second portion of the virtual object in accordance with the determination that at least a part of the first portion of the user has the depth conflict with the first portion of the virtual object within the three-dimensional environment relative to the viewpoint of the user.
18. 1. A computer system in communication with a display generation component and one or more input devices, the computer system comprising: one or more processors; Memory and one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions, the instructions displaying a virtual object within a three-dimensional environment via said display generation component; detecting, while displaying the virtual object within the three-dimensional environment, a first input via the one or more input devices, the first input comprising a movement of a first portion of a user of the computer system relative to the virtual object within the three-dimensional environment; In response to detecting the first input, in accordance with a determination that at least a portion of the first portion of the user has a depth conflict with a first portion of the virtual object in the three-dimensional environment for a viewpoint of the user, and that at least a portion of the first portion of the user does not have a depth conflict with a second portion of the virtual object in the three-dimensional environment for the viewpoint of the user after the movement of the first portion of the user; reducing the visual salience of the first portion of the virtual object in the three-dimensional environment relative to the second portion of the virtual object; maintaining a display of the second portion of the virtual object within the three-dimensional environment; 11. The computer system of claim 10, further comprising: instructions for maintaining display of the first and second portions of the virtual object without reducing the visual salience of the first portion of the virtual object in the three-dimensional environment relative to the visual salience of the second portion of the virtual object, in accordance with a determination that at least a portion of the first portion of the user does not have a depth conflict with the virtual object in the three-dimensional environment relative to the viewpoint of the user after the movement of the first portion of the user.
19. 1. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of a computer system in communication with a display generating component and one or more input devices, cause the computer system to: displaying a virtual object within a three-dimensional environment via the display generation component; detecting, while displaying the virtual object within the three-dimensional environment, a first input via the one or more input devices, the first input comprising a movement of a first portion of a user of the computer system relative to the virtual object within the three-dimensional environment; In response to detecting the first input, in accordance with a determination that at least a portion of the first portion of the user has a depth conflict with a first portion of the virtual object in the three-dimensional environment for a viewpoint of the user, and that at least a portion of the first portion of the user does not have a depth conflict with a second portion of the virtual object in the three-dimensional environment for the viewpoint of the user after the movement of the first portion of the user; reducing the visual salience of the first portion of the virtual object in the three-dimensional environment relative to the second portion of the virtual object; maintaining a display of the second portion of the virtual object within the three-dimensional environment; and maintaining display of the first and second portions of the virtual object without reducing the visual salience of the first portion of the virtual object in the three-dimensional environment relative to the visual salience of the second portion of the virtual object in accordance with a determination that at least a portion of the first portion of the user does not have a depth conflict with the virtual object in the three-dimensional environment relative to the viewpoint of the user after the movement of the first portion of the user.
20. 1. A computer system in communication with a display generation component and one or more input devices, the computer system comprising: one or more processors; Memory and means for displaying a virtual object within a three-dimensional environment via said display generation component; means for detecting, while displaying the virtual object within the three-dimensional environment, a first input comprising a movement of a first portion of a user of the computer system relative to the virtual object within the three-dimensional environment via the one or more input devices; In response to detecting the first input, in accordance with a determination that at least a portion of the first portion of the user has a depth conflict with a first portion of the virtual object in the three-dimensional environment for a viewpoint of the user, and that at least a portion of the first portion of the user does not have a depth conflict with a second portion of the virtual object in the three-dimensional environment for the viewpoint of the user after the movement of the first portion of the user; reducing the visual salience of the first portion of the virtual object in the three-dimensional environment relative to the second portion of the virtual object; maintaining a display of the second portion of the virtual object within the three-dimensional environment; means for maintaining the display of the first and second portions of the virtual object without reducing the visual salience of the first portion of the virtual object in the three-dimensional environment relative to the visual salience of the second portion of the virtual object according to a determination that at least a portion of the first portion of the user does not have a depth conflict with the virtual object in the three-dimensional environment relative to the user's viewpoint after the movement of the first portion of the user.
21. 1. A computer system in communication with a display generation component and one or more input devices, the computer system comprising: one or more processors; Memory and and one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 1 to 17.
22. 18. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs comprising instructions that, when executed by one or more processors of a computer system in communication with a display generating component and one or more input devices, cause the computer system to perform the method of any one of claims 1 to 17.
23. 1. A computer system in communication with a display generation component and one or more input devices, the computer system comprising: one or more processors; Memory and and means for executing the method according to any one of claims 1 to 17.
24. A computer system in communication with a display generation component and one or more input devices, comprising: displaying a first virtual object within a three-dimensional environment via the display generation component; detecting a first portion of a user of the computer system at a discrete location via the one or more input devices while displaying the first virtual object within the three-dimensional environment; while detecting the first portion of the user at the individual location; and displaying, via the display generation component, the first portion of the first virtual object with a first visual effect having a first magnitude applied to the first portion of the first virtual object corresponding to the individual location where the first portion of the user was detected in accordance with a determination that the first portion of the user has a depth conflict with a first portion of the first virtual object relative to the user's viewpoint, wherein applying the first visual effect having the first magnitude to the first portion of the first virtual object gives the first portion of the user an appearance that is at least partially transparent with respect to the first portion of the virtual object; and wherein, in accordance with a determination that the first portion of the user does not have a depth conflict with any virtual object relative to the viewpoint of the user, the first portion of the first virtual object is visible within the three-dimensional environment without the first portion of the user appearing to be at least partially transparent to the virtual object.
25. Detecting the first portion of the user at the individual location includes: via the display generation component, in accordance with a determination that the first portion of the user has the depth conflict with a second portion of the first virtual object relative to the viewpoint of the user; 25. The method of claim 24, comprising displaying the second portion of the first virtual object with the first visual effect having a second magnitude applied to the second portion of the first virtual object corresponding to the discrete location where the first portion of the user was detected, wherein applying the first visual effect having the second magnitude to the second portion of the first virtual object gives the first portion of the user an appearance that is at least partially transparent to the second portion of the first virtual object.
26. 26. The method of claim 24 or 25, wherein displaying the first portion of the first virtual object with the first visual effect having the first magnitude comprises reducing a degree of opacity of the first portion of the first virtual object at the respective locations where the first portion of the user is detected.
27. 27. The method of claim 26, wherein displaying the first portion of the first virtual object with the first visual effect having the first magnitude includes not reducing a degree of opacity of one or more portions of the first virtual object other than the first portion of the first virtual object that does not have a depth conflict with the first portion of the user.
28. 28. The method of claim 24, wherein the first portion of the first virtual object includes foreground virtual content and background virtual content, the foreground virtual content being closer to the user's viewpoint than the background virtual content, and wherein displaying the first portion of the first virtual object with the first visual effect having the first magnitude includes reducing an opacity of the foreground content by a first degree and reducing an opacity of the background content by a second degree.
29. 30. The method of claim 28, wherein the first degree of opacity is greater than the second degree of opacity.
30. reducing the opacity of the foreground content by the first degree includes maintaining a display of the foreground content; 30. The method of claim 29, wherein reducing the opacity of the background content by the second degree comprises ceasing to display the background content.
31. 31. The method of claim 24, wherein a first portion of the first virtual object having the first visual effect having the first magnitude applied to the first portion of the first virtual object is separated from a second portion of the first virtual object that does not have the first visual effect having the first magnitude applied to the second portion, and wherein a transition of the first visual effect having the first magnitude from the first portion to the second portion of the first virtual object is gradual based on a distance of the user from an edge of the first portion.
32. detecting a second portion of the user of the computer system at a second discrete location via the one or more input devices while displaying the first virtual object within the three-dimensional environment and while the first portion of the user is at the discrete location; while detecting the second portion of the user at the second discrete location; displaying, via the display generation component, the first visual effect having the first magnitude applied to the individual portion of the individual virtual object corresponding to the second individual location where the second portion of the user was detected in accordance with determining that the second portion of the user has a depth conflict with the individual portion of the individual virtual object relative to the user's viewpoint, wherein applying the first visual effect having the first magnitude to the individual portion of the individual virtual object gives the second portion of the user an appearance that is at least partially transparent to the individual portion of the first virtual object; 32. The method of claim 24, further comprising: in accordance with a determination that the second portion of the user does not have a depth conflict with any virtual object relative to the viewpoint of the user, ceasing to apply the first visual effect to the individual portion of the individual virtual object such that the individual portion of the individual virtual object is visible in the three-dimensional environment without the individual portion of the user appearing to be at least partially transparent to the individual virtual object.
33. the first portion of the users is a first type portion of the users, and the method further comprises: detecting, via the one or more input devices, a second portion of the user of the computer system at a second discrete location while displaying the first virtual object within the three-dimensional environment, the second portion being of a second type different from the first type of portion of the user; while detecting the second portion of the user at the second discrete location; 33. The method of claim 24, further comprising: in accordance with a determination that the second portion of the user has a depth conflict with the first portion of the first virtual object relative to the viewpoint of the user, withdrawing from applying the first visual effect to the first portion of the first virtual object such that the first portion of the first virtual object is visible in the three-dimensional environment without the second portion of the user appearing to be at least partially transparent to the first portion of the first virtual object.
34. detecting, via the one or more input devices, a second portion of a second user at a second discrete location while displaying the first virtual object within the three-dimensional environment; while detecting the second portion of the second user at the second distinct location; 34. The method of any one of claims 24 to 33, wherein, in accordance with a determination that the second portion of the second user has a depth conflict with the first portion of the first virtual object relative to the viewpoint of the user, the first portion of the first virtual object is visible within the three-dimensional environment without the second portion of the second user appearing to be at least partially transparent to the first portion of the first virtual object.
35. detecting a second portion of the user of the computer system at a second discrete location via the one or more input devices while displaying, via the display generation component, the first portion of the first virtual object with the first visual effect having the first magnitude applied to the first portion of the first virtual object corresponding to the discrete location where the first portion of the user was detected; while detecting the second portion of the user at the second discrete location; via the display generation component in accordance with a determination that the second portion of the user has a depth conflict with a respective portion of a respective virtual object relative to the viewpoint of the user; 35. The method of claim 24, further comprising: displaying the individual portion of the individual virtual object with the first visual effect having a second magnitude applied to the individual portion of the individual virtual object corresponding to the second individual location where the second portion of the user is detected, the second magnitude being different from the first magnitude applied to the first portion of the first virtual object; and wherein applying the first visual effect having the second magnitude to the individual portion of the individual virtual object gives the second portion of the user an appearance that is at least partially transparent to the individual portion of the individual virtual object.
36. Displaying the first portion of the first virtual object with the first visual effect having the first size includes: displaying the first portion of the first virtual object with the first visual effect having the first magnitude in accordance with a determination that the first portion of the first body of the user has a first degree of depth conflict with the first portion of the first virtual object; 36. The method of claim 35, comprising displaying the first portion of the first virtual object with the first visual effect having a third magnitude different from the first magnitude in accordance with a determination that the first portion of the first body of the user has a second degree of depth conflict with the first portion of the first virtual object that is different from the first degree of depth conflict.
37. Displaying the first portion of the first virtual object with the first visual effect having the first size includes: displaying the first portion of the first virtual object with the first visual effect having a third magnitude different from the first magnitude in accordance with a determination that the user's attention is directed to the first portion of the first body of the user having a first degree of depth conflict with the first portion of the first virtual object; and displaying the first portion of the first virtual object with the first visual effect having the first magnitude in accordance with a determination that the user's attention is directed away from the first portion of the first body of the user having the first degree of depth with the first portion of the first virtual object.
38. detecting the first portion of the user of the computer system moving via the one or more input devices from the individual location to a second individual location while displaying the first portion of the first virtual object with the first visual effect having the first magnitude applied to the first portion of the first virtual object corresponding to the individual location where the first portion of the user was detected, wherein a depth of the first portion of the user relative to the first portion of the first virtual object at the individual location is different from a depth of the first portion of the user relative to the first portion of the first virtual object at the second location; In response to detecting the first portion of the user at the second discrete location, 38. The method of claim 24, further comprising: updating the first portion of the first virtual object such that the first portion of the user is displayed with the first visual effect having a second magnitude applied to the first portion of the first virtual object corresponding to the detected second discrete location in accordance with a determination that the first portion of the user has the depth conflict with the first portion of the first virtual object relative to the user's viewpoint, wherein the second magnitude is different from the first magnitude.
39. detecting a degree of engagement of the first portion of the users changing from the first degree of engagement to a second degree of engagement while the first portion of the users is displaying the first portion of the first virtual object with the first visual effect having the first magnitude applied to the first portion of the first virtual object corresponding to the detected individual location, where the degree of engagement of the first portion of the users is a first degree of engagement; 39. The method of claim 24, further comprising: in response to detecting that the degree of engagement of the first portion of the user has changed from the first degree of engagement to the second degree of engagement, displaying the first portion of the first virtual object corresponding to the individual location where the first portion of the user was detected with the first visual effect having a second magnitude different from the first magnitude applied to the first portion of the first virtual object corresponding to the individual location where the first portion of the user was detected.
40. detecting, while displaying the first portion of the first virtual object, a first input directed from the first portion of the user toward the first portion of the first virtual object via the one or more input devices; 40. The method of claim 24, further comprising: in response to detecting the first input directed toward the first portion of the first virtual object, performing an action associated with the first portion of the first virtual object in accordance with a determination that the first input directed toward the first portion of the first virtual object satisfies one or more criteria.
41. detecting, via the one or more input devices, a second amount of light in the physical environment of the user while the user is displaying a first portion of the first virtual object with the first visual effect having the first magnitude applied to the first portion of the first virtual object corresponding to the detected discrete location, where the amount of light in the physical environment of the user is a first amount of light; in response to detecting the second amount of light in the physical environment; 41. The method of claim 24, further comprising: discontinuing applying the first visual effect having the first magnitude to the first portion of the first virtual object corresponding to the discrete location where the first portion of the user is detected in accordance with a determination that the second amount of light in the physical environment satisfies one or more low light criteria.
42. Prior to detecting the first portion of the user at the individual location and prior to applying the first visual effect having the first magnitude to the first portion of the first virtual object, the first portion of the first virtual object is displayed with a first alpha value, and applying the first visual effect having the first magnitude to the first portion of the first virtual object includes:
42. The method of any one of claims 24 to 41, comprising displaying the first portion of the first virtual object using a second alpha value different from the first alpha value that corresponds to the degree to which the first visual effect having the first magnitude is applied to the first portion of the first virtual object, the first portion of the first virtual object corresponding to an area of the first virtual object occupied by the first portion of the user at the individual location.
43. detecting, via the one or more input devices, that the first portion of the user of the computer system moves from the discrete location to a second discrete location corresponding to lateral movement away from the first portion of the first virtual object while displaying the first portion of the first virtual object with the first visual effect having the first magnitude applied to the first portion of the first virtual object corresponding to the detected discrete location of the first portion of the user; In response to detecting the first portion of the user at the second discrete location, 43. The method of claim 24, further comprising: updating the first portion of the first virtual object to no longer have the first visual effect having the first magnitude applied to the first portion of the first virtual object in accordance with a determination that the first portion of the user no longer has the depth conflict with the first portion of the first virtual object relative to the viewpoint of the user.
44. detecting, while displaying the first portion of the first virtual object, a first input directed from a discrete portion of the user toward the first portion of the first virtual object via the one or more input devices; in response to detecting the first input directed at the first portion of the first virtual object; discontinue performing an action associated with the first portion of the first virtual object in accordance with a determination that the first portion of the first virtual object is displayed with the first visual effect indicating that the first portion of the first virtual object has a depth conflict with the respective portion of the user; 44. The method of claim 24, further comprising: performing an action associated with the first portion of the first virtual object in accordance with a determination that the first portion of the first virtual object is not displayed with the first visual effect indicating that the first portion of the first virtual object has a depth conflict with the respective portion of the user.
45. while detecting movement of the first portion of the user to the distinct location and before applying the first visual effect having the first magnitude to the first portion of the first virtual object in accordance with the determination that the first portion of the user has the depth conflict with the first portion of the first virtual object relative to the viewpoint of the user; moving the first virtual object within the three-dimensional environment based on a first portion of the movement of the first portion of the user at the discrete location to avoid the depth conflict between the first portion of the first virtual object and the first portion of the user until the movement of the first portion of the user towards the first portion of the first virtual object exceeds a threshold movement; in response to the movement of the first portion of the user toward the first portion of the first virtual object exceeding the threshold movement; ceasing to move the virtual object within the three-dimensional environment; and 45. The method of claim 24, further comprising: applying the first visual effect having the first magnitude to the first portion of the first virtual object in accordance with the determination that the first portion of the user has the depth conflict with the first portion of the first virtual object relative to the viewpoint of the user.
46. 1. A computer system in communication with a display generation component and one or more input devices, the computer system comprising: one or more processors; Memory and one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions, the instructions displaying a first virtual object within the three-dimensional environment via the display generation component; detecting a first portion of a user of the computer system at a discrete location via the one or more input devices while displaying the first virtual object within the three-dimensional environment; while detecting the first portion of the user at the individual location; and, in accordance with a determination that the first portion of the user has a depth conflict with a first portion of the first virtual object relative to the user's viewpoint, display, via the display generation component, the first portion of the first virtual object with a first visual effect having a first magnitude applied to the first portion of the first virtual object corresponding to the individual location where the first portion of the user was detected, wherein applying the first visual effect having the first magnitude to the first portion of the first virtual object gives the first portion of the user an appearance that is at least partially transparent with respect to the first portion of the virtual object. In accordance with a determination that the first portion of the user does not have a depth conflict with any virtual object relative to the viewpoint of the user, the first portion of the first virtual object is visible within the three-dimensional environment without the first portion of the user appearing to be at least partially transparent to the virtual object.
47. 1. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of a computer system in communication with a display generating component and one or more input devices, cause the computer system to: displaying a first virtual object within the three-dimensional environment via the display generation component; detecting a first portion of a user of the computer system at a discrete location via the one or more input devices while displaying the first virtual object within the three-dimensional environment; while detecting the first portion of the user at the individual location; and displaying, via the display generation component, the first portion of the first virtual object with a first visual effect having a first magnitude applied to the first portion of the first virtual object corresponding to the individual location where the first portion of the user was detected in accordance with a determination that the first portion of the user has a depth conflict with a first portion of the first virtual object relative to the user's viewpoint, wherein applying the first visual effect having the first magnitude to the first portion of the first virtual object gives the first portion of the user an appearance that is at least partially transparent with respect to the first portion of the virtual object; a non-transitory computer-readable storage medium, wherein, in accordance with a determination that the first portion of the user does not have a depth conflict with any virtual object relative to the viewpoint of the user, the first portion of the first virtual object is visible within the three-dimensional environment without the first portion of the user appearing to be at least partially transparent to the virtual object.
48. 1. A computer system in communication with a display generation component and one or more input devices, the computer system comprising: one or more processors; Memory and means for displaying a first virtual object within a three-dimensional environment via the display generation component; means for detecting a first portion of a user of the computer system at a discrete location via the one or more input devices while displaying the first virtual object within the three-dimensional environment; while detecting the first portion of the user at the individual location; and means for displaying, via the display generation component, the first portion of the first virtual object with a first visual effect having a first magnitude applied to the first portion of the first virtual object corresponding to the individual location where the first portion of the user was detected in accordance with a determination that the first portion of the user has a depth conflict with the first portion of the first virtual object relative to the user's viewpoint, wherein applying the first visual effect having the first magnitude to the first portion of the first virtual object gives the first portion of the user an appearance that is at least partially transparent to the first portion of the virtual object; In accordance with a determination that the first portion of the user does not have a depth conflict with any virtual object relative to the viewpoint of the user, the first portion of the first virtual object is visible within the three-dimensional environment without the first portion of the user appearing to be at least partially transparent to the virtual object.
49. 1. A computer system in communication with a display generation component and one or more input devices, the computer system comprising: one or more processors; Memory and and one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 24 to 45.
50. 46. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs comprising instructions that, when executed by one or more processors of a computer system in communication with a display generating component and one or more input devices, cause the computer system to perform the method of any one of claims 24 to 45.
51. 1. A computer system in communication with a display generation component and one or more input devices, the computer system comprising: one or more processors; Memory and and means for executing the method of any one of claims 24 to 45.
52. 1. A computer system in communication with one or more input devices and display generating components, comprising: displaying a first virtual object within a three-dimensional environment via the display generation component; while displaying, via the display generation component, the first virtual object within the three-dimensional environment, wherein a first portion of a user of the computer system is visible within the three-dimensional environment; displaying, via the display generation component, a visual effect applied to the first virtual object at a location corresponding to the first portion of the user in accordance with determining that the user's engagement level with the first virtual object corresponds to a first engagement level, the visual effect being displayed at a first magnitude; and displaying, via the display generation component, the visual effect applied to the first virtual object at a location corresponding to the first portion of the user in accordance with a determination that the level of engagement of the user with the first virtual object corresponds to a second engagement level different from the first engagement level, wherein the visual effect is displayed at a second magnitude different from the first magnitude.
53. detecting, via the one or more input devices, that the engagement level of the user with the first virtual object increases to the first engagement level while displaying, via the display generation component, the visual effect applied to the first virtual object at the location corresponding to the first portion of the user at a discrete size smaller than the first size; 53. The method of claim 52, further comprising: in response to detecting that the engagement level of the user with the first virtual object has increased to the first engagement level, displaying, via the display generation component, the visual effect at a first magnitude.
54. detecting, via the one or more input devices, that the engagement level of the user with the first virtual object has decreased to the second engagement level while displaying, via the display generation component, the first magnitude of the visual effect applied to the first virtual object at the location corresponding to the first portion of the user; 54. The method of claim 52 or 53, further comprising: in response to detecting that the engagement level of the user with the first virtual object has decreased to the second engagement level, displaying, via the display generation component, the visual effect at a second magnitude.
55. in accordance with determining that the user's attention is directed to a first location within the three-dimensional environment, the engagement level of the user with the first virtual object is a first individual engagement level; 55. The method of any one of claims 52 to 54, wherein, in accordance with a determination that the attention of the user is directed to a second location within the three-dimensional environment that is different from the first location, the engagement level of the user with the first virtual object is a second individual engagement level that is different from the first individual engagement level.
56. in accordance with determining that the first portion of the user has a first pose, the engagement level of the user with the first virtual object is a first individual engagement level; 56. The method of any one of claims 52 to 55, wherein, in accordance with a determination that the first portion of the user has a second pose that is different from the first pose, the engagement level of the user with the first virtual object is a second individual engagement level that is different from the first individual engagement level.
57. in response to determining that the user's current viewpoint is a first viewpoint relative to the three-dimensional environment, the engagement level of the user with the first virtual object is a first individual engagement level; 57. The method of any one of claims 52 to 56, wherein, in accordance with a determination that the user's current viewpoint is a second viewpoint relative to the three-dimensional environment that is different from the first viewpoint, the user's engagement level with the first virtual object is a second individual engagement level that is different from the first individual engagement level.
58. detecting, while displaying the first virtual object via the display generation component and while the first portion of the user is visible within the three-dimensional environment and the engagement level with the first virtual object is the first individual engagement level, movement of the first portion of the user from the first position to a second position different from the first position relative to the current viewpoint of the user; 58. The method of claim 57, further comprising: in response to detecting the movement of the first portion of the user from the first position to the second position relative to the current viewpoint of the user, modifying the engagement level with the first virtual object from the first individual engagement level to the second individual engagement level in accordance with a determination that the first portion of the user satisfies one or more criteria, including criteria that are satisfied based on the movement of the first portion of the user.
59. detecting a change in the current viewpoint of the user while displaying the first virtual object via the display generation component and while the first portion of the user is visible within the three-dimensional environment and the engagement level with the first virtual object is the first individual engagement level; 59. The method of claim 57 or 58, further comprising: in response to detecting the change in the current viewpoint of the user, modifying the engagement level with the first virtual object from the first individual engagement level to the second individual engagement level in accordance with a determination that the first portion of the user satisfies one or more criteria, including criteria that are satisfied based on the change in the current viewpoint of the user.
60. pursuant to the determination that the current viewpoint of the user is the first viewpoint relative to the three-dimensional environment, the engagement level of the user with the first virtual object is the first individual engagement level, independent of an individual location of the attention of the user of the computer system within the three-dimensional environment; 60. The method of any one of claims 57 to 59, wherein, in accordance with a determination that the current viewpoint of the user is a second viewpoint relative to the three-dimensional environment that is different from the first viewpoint, the engagement level of the user with the first virtual object is a second individual engagement level that is different from the first individual engagement level, independent of the individual location of the attention of the user of the computer system within the three-dimensional environment.
61. 61. The method of any one of claims 52 to 60, wherein in accordance with a determination that the first portion of the user is at a first location within the three-dimensional environment relative to the first virtual object, the engagement level of the user with the first virtual object is a first individual engagement level, and in accordance with a determination that the first portion of the user is at a second location within the three-dimensional environment relative to the first virtual object in the three-dimensional environment, the engagement level of the user with the first virtual object is a second individual engagement level different from the first individual engagement level.
62. while displaying, via the display generation component, the first virtual object within the three-dimensional environment, wherein the first portion of the user of the computer system is visible within the three-dimensional environment and a second portion of the user different from the first portion of the user is visible within the three-dimensional environment; assigning a first individual engagement level to the first portion of users and the second portion of users based on one or more first characteristics associated with the first portion of users in accordance with a determination that one or more first criteria are met; 62. The method of any one of claims 52 to 61, further comprising: in accordance with the determination that one or more second criteria different from the one or more first criteria are satisfied, assigning a second individual engagement level to the first portion of users and the second portion of users based on one or more second characteristics associated with the second portion of users.
63. 63. The method of claim 62, wherein the one or more first criteria include a criterion that is met when the first individual engagement level associated with the first portion of the users is greater than the second individual engagement level associated with the second portion of the users.
64. 64. The method of claim 62 or 63, wherein the one or more first criteria and the one or more second criteria comprise criteria that are met based on attention of the user of the computer system.
65. 63. The method of claim 62, wherein the one or more first criteria and the one or more second criteria comprise criteria that are met based on a respective pose of the first portion of the user or the second portion of the user.
66. 66. The method of any one of claims 62 to 65, wherein the one or more first criteria and the one or more second criteria comprise criteria that are met based on individual movement of the first part of the user or the second part of the user relative to the three-dimensional environment.
67. 67. The method of any one of claims 52 to 66, wherein the first portion of the users is associated with a first individual engagement level and a second portion of the users different from the first portion of the users is associated with a second individual engagement level different from the first individual engagement level.
68. 68. The method of any one of claims 52 to 67, wherein the visual effect comprises modifying translucency of the first virtual object at the location corresponding to the first portion of the user.
69. 69. The method of any one of claims 52 to 68, wherein the visual effect comprises ceasing to display the first virtual object at the location corresponding to the first portion of the user relative to the three-dimensional environment.
70. 1. A computer system in communication with a display generation component and one or more input devices, the computer system comprising: one or more processors; Memory and one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions, the instructions displaying a first virtual object within the three-dimensional environment via the display generation component; while displaying, via the display generation component, the first virtual object within the three-dimensional environment, wherein a first portion of a user of the computer system is visible within the three-dimensional environment; displaying, via the display generation component, a visual effect applied to the first virtual object at a location corresponding to the first portion of the user according to a determination that the user's engagement level with the first virtual object corresponds to a first engagement level, the visual effect being displayed at a first magnitude; 11. A computer system comprising: instructions for displaying, via the display generation component, the visual effect applied to the first virtual object at a location corresponding to the first portion of the user in accordance with a determination that the level of engagement of the user with the first virtual object corresponds to a second engagement level different from the first engagement level, wherein the visual effect is displayed at a second magnitude different from the first magnitude.
71. 1. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of a computer system in communication with a display generating component and one or more input devices, cause the computer system to: displaying a first virtual object within the three-dimensional environment via the display generation component; while displaying, via the display generation component, the first virtual object within the three-dimensional environment, wherein a first portion of a user of the computer system is visible within the three-dimensional environment; displaying, via the display generation component, a visual effect applied to the first virtual object at a location corresponding to the first portion of the user according to a determination that the user's engagement level with the first virtual object corresponds to a first engagement level, the visual effect being displayed at a first magnitude; and displaying, via the display generation component, the visual effect applied to the first virtual object at a location corresponding to the first portion of the user in accordance with a determination that the level of engagement of the user with the first virtual object corresponds to a second engagement level different from the first engagement level, wherein the visual effect is displayed at a second magnitude different from the first magnitude.
72. 1. A computer system in communication with a display generation component and one or more input devices, the computer system comprising: one or more processors; Memory and means for displaying a first virtual object within a three-dimensional environment via the display generation component; means for displaying, via the display generation component, the first virtual object within the three-dimensional environment, wherein a first portion of a user of the computer system is visible within the three-dimensional environment; means for displaying, via the display generation component, a visual effect applied to the first virtual object at a location corresponding to the first portion of the user in accordance with a determination that the user's engagement level with the first virtual object corresponds to a first engagement level, the visual effect being displayed at a first magnitude; and means for displaying, via the display generation component, the visual effect applied to the first virtual object at a location corresponding to the first portion of the user in accordance with a determination that the level of engagement of the user with the first virtual object corresponds to a second engagement level different from the first engagement level, wherein the visual effect is displayed at a second magnitude different from the first magnitude.
73. 1. A computer system in communication with a display generation component and one or more input devices, the computer system comprising: one or more processors; Memory and and one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 52 to 69.
74. 70. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs comprising instructions that, when executed by one or more processors of a computer system in communication with a display generating component and one or more input devices, cause the computer system to perform the method of any one of claims 52 to 69.
75. 1. A computer system in communication with a display generation component and one or more input devices, the computer system comprising: one or more processors; Memory and and means for executing the method of any one of claims 52 to 69.
Citation Information
Patent Citations
Information processing apparatus and information processing method, and computer program
JP2016194744A
Virtual and mixed reality head-mounted displays with inside-out position, user body, and environment tracking
JP2019516261A
Information processing device, control method for information processing device, and program
WO2018198910A1
Information processing device, information processing method, and program
WO2019031015A1