A method for reducing depth conflicts in three-dimensional environments
The computer system addresses inefficiencies in augmented and virtual reality interactions by using advanced interfaces and depth conflict mitigation techniques, enhancing usability and power conservation in battery-operated devices.
Patent Information
- Application Number
- JP2025515648
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-05-30
- Filing Date
- 2023-09-14
- Publication Date
- 2025-10-15
AI Technical Summary
Existing methods for interacting with augmented and virtual reality environments are cumbersome, inefficient, and complex, leading to a significant cognitive burden on users and unnecessary energy consumption, particularly in battery-operated devices.
A computer system with improved interfaces that facilitate efficient interaction by reducing the number and type of user inputs, using touch-sensitive displays, eye-tracking, hand-tracking, and tactile output generators to enhance user understanding of device responses, and mitigate depth conflicts in three-dimensional environments through visual property variations or virtual environment adjustments.
Enhances device usability by reducing errors, conserving power, and increasing efficiency, allowing for more intuitive user interactions and improved battery life in portable devices.
Smart Images

Figure 2025534239000001_ABST
Abstract
Description
[Technical Field]
[0001] (CROSS-REFERENCE TO RELATED APPLICATIONS) This application claims the benefit of U.S. Provisional Patent Application No. 63 / 375,614, filed September 14, 2022, and U.S. Provisional Patent Application No. 63 / 505,030, filed May 30, 2023, the contents of which are incorporated by reference herein in their entirety for all purposes.
[0002] (Technical field) 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, a computer system facilitates depth conflict mitigation for a virtual object in contact with one or more physical objects in the three dimensional environment by varying visual properties of one or more portions of the virtual object. In some embodiments, a computer system facilitates depth conflict mitigation for a virtual object in contact with one or more physical objects in the three dimensional environment by displaying the virtual object in a virtual environment in the three dimensional environment. In some embodiments, a computer system facilitates depth conflict mitigation for a virtual object in contact with one or more physical objects in the three dimensional environment by variably varying visual properties of one or more portions of the virtual object and / or variably displaying the virtual object in the virtual environment based on one or more characteristics of the depth conflict.
[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 6] 1 is a flowchart illustrating a glint-assisted gaze tracking pipeline, according to some embodiments.
[0018] [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 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 7F1] 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. [Figure 7I] 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 7J] 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 7K] 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 7L] 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 7M] 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 7N] 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 7O]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 7P] 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.
[0019] [Figure 8A] 1 is a flowchart illustrating an example method for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by modifying visual properties of the one or more virtual objects, according to some embodiments. [Figure 8B] 1 is a flowchart illustrating an example method for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by modifying visual properties of the one or more virtual objects, according to some embodiments. [Figure 8C] 1 is a flowchart illustrating an example method for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by modifying visual properties of the one or more virtual objects, according to some embodiments. [Figure 8D] 1 is a flowchart illustrating an example method for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by modifying visual properties of the one or more virtual objects, according to some embodiments. [Figure 8E] 1 is a flowchart illustrating an example method for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by modifying visual properties of the one or more virtual objects, according to some embodiments. [Figure 8F] 1 is a flowchart illustrating an example method for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by modifying visual properties of the one or more virtual objects, according to some embodiments. [Figure 8G]1 is a flowchart illustrating an example method for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by modifying visual properties of the one or more virtual objects, according to some embodiments. [Figure 8H] 1 is a flowchart illustrating an example method for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by modifying visual properties of the one or more virtual objects, according to some embodiments. [Figure 8I] 1 is a flowchart illustrating an example method for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by modifying visual properties of the one or more virtual objects, according to some embodiments. [Figure 8J] 1 is a flowchart illustrating an example method for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by modifying visual properties of the one or more virtual objects, according to some embodiments.
[0020] [Figure 9A] 1 is a flowchart illustrating an example method for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by displaying the virtual environment, according to some embodiments. [Figure 9B] 1 is a flowchart illustrating an example method for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by displaying the virtual environment, according to some embodiments. [Figure 9C] 1 is a flowchart illustrating an example method for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by displaying the virtual environment, according to some embodiments. [Figure 9D] 1 is a flowchart illustrating an example method for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by displaying the virtual environment, according to some embodiments. [Figure 9E]1 is a flowchart illustrating an example method for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by displaying the virtual environment, according to some embodiments. [Figure 9F] 1 is a flowchart illustrating an example method for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by displaying the virtual environment, according to some embodiments. [Figure 9G] 1 is a flowchart illustrating an example method for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by displaying the virtual environment, according to some embodiments. [Figure 9H] 1 is a flowchart illustrating an example method for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by displaying the virtual environment, according to some embodiments. [Figure 9I] 1 is a flowchart illustrating an example method for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by displaying the virtual environment, according to some embodiments. [Figure 9J] 1 is a flowchart illustrating an example method for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by displaying the virtual environment, according to some embodiments. [Figure 9K] 1 is a flowchart illustrating an example method for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by displaying the virtual environment, according to some embodiments.
[0021] [Figure 10A] 1 is a flowchart illustrating an example method that facilitates variable depth conflict mitigation for one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 10B] 1 is a flowchart illustrating an example method that facilitates variable depth conflict mitigation for one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 10C]1 is a flowchart illustrating an example method that facilitates variable depth conflict mitigation for one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 10D] 1 is a flowchart illustrating an example method that facilitates variable depth conflict mitigation for one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 10E] 1 is a flowchart illustrating an example method that facilitates variable depth conflict mitigation for one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 10F] 1 is a flowchart illustrating an example method that facilitates variable depth conflict mitigation for one or more virtual objects in a three-dimensional environment, according to some embodiments. DETAILED DESCRIPTION OF THE INVENTION
[0022] The present disclosure relates to a user interface that provides a computer-generated (CGR) experience to a user, according to some embodiments.
[0023] 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.
[0024] In some embodiments, the computer system displays a three-dimensional environment including a virtual object and one or more physical objects. In some embodiments, the computer system moves the virtual object within the three-dimensional environment in response to detecting user input directed at the virtual object. In some embodiments, if the computer system determines that at least a portion of the virtual object encounters a depth conflict with one or more physical objects, the computer system alters visual properties of a portion of the virtual object that has a depth conflict with the physical object in the three-dimensional environment. In some embodiments, altering the visual properties of the portion of the virtual object causes the virtual object to occlude the portion of the physical object that has a depth conflict, thus mitigating the depth conflict between the virtual object and the physical object in the three-dimensional environment.
[0025] In some embodiments, the computer system displays a three-dimensional environment including a virtual object and one or more physical objects. In some embodiments, the computer system moves the virtual object within the three-dimensional environment in response to detecting user input directed at the virtual object. In some embodiments, if the computer system determines that at least a portion of the virtual object encounters a depth conflict with a physical object of the one or more physical objects, the computer system displays a virtual environment within the three-dimensional environment. In some embodiments, the computer system displays at least a portion of the virtual object within the virtual environment such that the virtual object occludes the portion of the physical object with which it has a depth conflict, thus mitigating the depth conflict between the virtual object and the physical object in the three-dimensional environment.
[0026] In some embodiments, a computer system displays a three-dimensional environment including a virtual object and one or more physical objects. In some embodiments, the computer system moves the virtual object within the three-dimensional environment in response to detecting user input directed at the virtual object. In some embodiments, if the computer system determines that at least a portion of the virtual object encounters a depth conflict with a physical object of the one or more physical objects, the computer system selectively mitigates the depth conflict within the three-dimensional environment. In some embodiments, if a degree of depth conflict between the virtual object and the physical object is a first degree of depth conflict, the computer system alters visual properties of a portion of the virtual object having a depth conflict with the physical object to mitigate the depth conflict within the three-dimensional environment. In some embodiments, if a degree of depth conflict between the virtual object and the physical object is a second degree of depth conflict, the computer system displays a virtual environment within the three-dimensional environment to mitigate the depth conflict within the three-dimensional environment.
[0027] FIGS. 1A-6 provide an illustration of an exemplary computer system for providing an XR experience to a user (as described below with respect to methods 800, 900, and / or 1000). FIGS. 7A-7P 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-8J are a flow diagram of a method for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by varying visual properties of the one or more virtual objects, according to some embodiments. The user interfaces of FIGS. 7A-7P are used to illustrate the process of FIGS. 8A-8J. FIGS. 9A-9K are a flow diagram of a method for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by displaying a virtual environment, according to some embodiments. The user interfaces of FIGS. 7A-7P are used to illustrate the process of FIGS. 9A-9K. FIGS. 10A-10F are a flow diagram of a method for facilitating variable depth conflict mitigation for one or more virtual objects in a three-dimensional environment, according to some embodiments. The user interfaces of Figures 7A-7P are used to illustrate the processes of Figures 10A-10F.
[0028] 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.
[0029] 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.
[0030] 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).
[0031] 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:
[0032] 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.
[0033] 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 simulated virtual objects within the XR environment are adjusted accordingly to behave according to 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) within the 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.
[0034] Examples of XR include virtual reality and mixed reality.
[0035] 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.
[0036] 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.
[0037] Examples of mixed reality include extended reality and augmented virtuality.
[0038] 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.
[0039] 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.
[0040] 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 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 typically moves with the display generation components (e.g., moves with the user's head in a head-mounted device, or moves 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). In the case of display generating components that have an optical pass-through, the portion of the physical environment that is visible through 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 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 viewpoint moves through the partially or fully transparent portion(s) of the display generating components.
[0041] 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 immersion level 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.
[0042] 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."
[0043] 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.
[0044] 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).
[0045] 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.
[0046] 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.
[0047] 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.
[0048] 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)).
[0049] 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 and so as not to obscure more relevant aspects of the exemplary embodiments disclosed herein.
[0050] 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 being worn) 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).
[0051] 1B shows 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.
[0052] 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.
[0053] 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.
[0054] 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.
[0055] 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.
[0056] 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.
[0057] 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 twistable dials and pressable buttons. 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.
[0058] 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.
[0059] 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.
[0060] 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.
[0061] 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.
[0062] 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.
[0063] 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.
[0064] 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.
[0065] 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.
[0066] 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.
[0067] 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.
[0068] 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.
[0069] 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.
[0070] 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.
[0071] 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.
[0072] 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.
[0073] 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.
[0074] 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.
[0075] 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.
[0076] 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.
[0077] 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.
[0078] 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.
[0079] 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 discussed 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.
[0080] 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 camera position, angle, or orientation is bumped or distorted due to an unintentional drop event or other event.
[0081] 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.
[0082] 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.
[0083] 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.
[0084] 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.
[0085] 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,
[0086] 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.
[0087] 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.
[0088] 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.
[0089] 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.
[0090] 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.
[0091] 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.
[0092] 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.
[0093] Any of the features, components, and / or parts shown in Figure 1J, including their arrangement and configuration, either 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, either alone or in any combination, may be included in the example devices, features, components, and parts shown in Figure 1J.
[0094] FIG. 1K shows a front view of a portion of an example of an 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.
[0095] 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.
[0096] Any of the features, components, and / or parts shown in Figure 1K, including their arrangements and configurations, either 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, either alone or in any combination, may be included in the example devices, features, components, and parts shown in Figure 1K.
[0097] 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.
[0098] 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.
[0099] 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.
[0100] 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.
[0101] 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.
[0102] 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, including their arrangement and configuration, either alone or in any combination, shown and described with reference to any other figure shown and described herein.
[0103] 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 blocked 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.
[0104] 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.
[0105] 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.
[0106] 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.
[0107] 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.
[0108] 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.
[0109] 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.
[0110] 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.
[0111] 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.
[0112] 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.
[0113] 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).
[0114] 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.
[0115] 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.
[0116] 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.
[0117] 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.
[0118] 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.
[0119] In some embodiments, one or more communication buses 204 include circuitry that interconnects and controls communication 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.
[0120] 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:
[0121] 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.
[0122] 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.
[0123] 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.
[0124] 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.
[0125] 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.
[0126] 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.
[0127] 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.
[0128] 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.
[0129] 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.
[0130] 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 (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 waveguide displays, such as 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.
[0131] 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.
[0132] 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:
[0133] 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.
[0134] 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.
[0135] 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.
[0136] 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.
[0137] 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.
[0138] 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.
[0139] 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.
[0140] 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 parts of the physical environment surrounding the user, relative to display generating component 120, or relative to parts of the user (e.g., the user's face, eyes, or head), and / or relative to a coordinate system defined relative to the user's 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).
[0141] 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.
[0142] 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.
[0143] 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.
[0144] 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 to 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.
[0145] 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. The 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.
[0146] 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 a hand in a predetermined posture by a predetermined amount and / or velocity, or a shake gesture involving a predetermined velocity or amount of rotation of the user's body part).
[0147] 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 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 rotation of the user's body part at a predetermined speed or amount).
[0148] 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.
[0149] 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).
[0150] 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.
[0151] 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 moving two or more fingers of a hand to contact each other, i.e., optionally with a short break (e.g., within 0-1 second) after contact with each other. A long pinch gesture that is an air gesture includes moving 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.
[0152] 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.
[0153] 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).
[0154] 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).
[0155] 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.
[0156] 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 by an air pinch and drag may alternatively be detected based on interaction with a hardware input control, such as a press and hold of a button, 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 one another, 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 by separate hands, using various combinations of air gestures and / or input detected by one or more of the hardware input devices described above.
[0157] 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.
[0158] 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 depth resulting in darker shades. 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.
[0159] 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.
[0160] 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.
[0161] 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.
[0162] 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.
[0163] 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.
[0164] 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).
[0165] 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.
[0166] 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.
[0167] 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 the 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.
[0168] 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.
[0169] 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.
[0170] FIG. 6 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. 1A 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 in the tracking state to the next frame.
[0171] As shown in FIG. 6, 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.
[0172] 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.
[0173] 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.
[0174] 6 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.
[0175] 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.
[0176] 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).
[0177] 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.
[0178] 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 further 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.
[0179] 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 / semi-transparency of the user interface, or the projection of the user interface onto a transparent / semi-transparent 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.
[0180] 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.
[0181] 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.
[0182] 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.
[0183] 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
[0184] We now turn our attention to embodiments of user interfaces ("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 display generating components, one or more input devices, and (optionally) one or more cameras.
[0185] 7A-7P illustrate example computer systems that facilitate depth conflict mitigation for one or more virtual objects in a three-dimensional environment, according to some embodiments.
[0186] 7A illustrates a computer system (e.g., electronic device) 101 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 for detecting the physical environment and / or movement of the user's hands (e.g., external sensors facing outward from the user), and / or the user's attention (e.g., based on gaze) (e.g., internal sensors facing inward toward the user's face).
[0187] 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. 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.
[0188] 7A , the three-dimensional environment 702 also includes a user interface object 706a ("Application A," which corresponds to object 706b in the overhead view). In some embodiments, the user interface object 706a includes a first selectable option 704-1 and a second selectable option 704-2, as shown in FIG. 7A . In some embodiments, the first selectable option 704-1 is selectable to cause the computer system 101 to display a virtual object corresponding to the user interface object (e.g., an application window corresponding to "Application A") in the three-dimensional environment 702, as described in more detail below. For example, the user interface object 706a corresponds to an application icon selectable to display a user interface for Application A and / or a representation of an image (e.g., a photograph) selectable to display the image in the three-dimensional environment 702. Thus, the user interface object 706a, optionally, does not include the first selectable option 704-1. In some embodiments, the second selectable option 704-2 is selectable to cause the computer system 101 to perform an alternative action, such as ceasing to display the user interface object 706a within the three-dimensional environment 702.
[0189] 7A , computer system 101 detects a selection input provided by hand 703a. In some embodiments, computer system 101 detects hand 703a moving away from the body of user 726 and provides a pinch directed toward first selectable option 704-1 (and / or user interface object 706a) within three-dimensional environment 702. For example, as shown in FIG. 7A , computer system 101 detects the selection input while the user's attention (e.g., based on gaze 721) is directed toward first selectable option 704-1 within three-dimensional environment 702. In some embodiments, the input from hand 703a is an air gesture input. As described above, in some embodiments, first selectable option 704-1 is selectable to cause computer system 101 to display a virtual object (e.g., corresponding to “Application A”) within three-dimensional environment 702. 7A , the virtual object is optionally displayed at a location labeled “Placement Location” within the three-dimensional environment 702 in response to detecting selection of the first selectable option 704-1. In some embodiments, the placement location of the virtual object is automatically selected by the computer system 101. For example, the placement location of the virtual object is a pre-defined location (e.g., a location behind, adjacent to, or in front of the user interface object 706a) and / or corresponds to the current location of the user interface object 706a within the three-dimensional environment 702. It should be understood that in some embodiments, an indication of the “Placement Location” is not visually displayed within the three-dimensional environment 702.
[0190] In some embodiments, computer system 101 mitigates depth conflicts between virtual objects and portions of three-dimensional environment 702. For example, as discussed in more detail below, in response to determining that movement of a virtual object within three-dimensional environment 702 causes the virtual object to contact and / or intersect with a portion of three-dimensional environment 702 (e.g., a physical object in the physical environment surrounding display generation component 120), computer system 101 alters the appearance of the virtual object to resolve or reduce a depth conflict between the virtual object and the portion of three-dimensional environment 702. In some embodiments, as discussed in more detail below, in response to determining that movement of a virtual object within three-dimensional environment 702 causes the virtual object to contact and / or intersect with a portion of three-dimensional environment 702, computer system 101 displays a virtual object within three-dimensional environment 702 that resolves or reduces a depth conflict between the virtual object and the portion of three-dimensional environment 702. In some embodiments, as described below, computer system 101 selectively alters the appearance of virtual objects or displays the virtual environment within three-dimensional environment 702 to resolve or reduce depth conflicts based on the degree of depth conflict between the virtual objects and portions of three-dimensional environment 702. Additional details above and below regarding resolving depth conflicts are provided with reference to methods 800, 900, and / or 1000.
[0191] In some embodiments, in response to detecting selection of first selectable option 704-1 in FIG. 7A , computer system 101 displays virtual object 709a ("Window A," which corresponds to object 709b in the overhead view) within three-dimensional environment 702, as shown in FIG. 7B . For example, as shown in the overhead view of FIG. 7B , computer system 101 displays virtual object 709a at an indicated "placement location" within three-dimensional environment 702. In some embodiments, virtual object 709a is or includes one or more of a user interface of an application (e.g., "Application A" in FIG. 7A ), including content (e.g., a quick look window displaying a photo), three-dimensional objects (e.g., a virtual clock, a virtual ball, and / or a virtual car), or any other element displayed by computer system 101 that is not included in the physical environment of display generation component 120. In some embodiments, virtual object 709a is world-locked within three-dimensional environment 702.
[0192] In some embodiments, virtual objects are displayed in the three-dimensional environment 702 at respective orientations relative to the viewpoint of the user 726 (e.g., before receiving input in the three-dimensional environment 702 to interact with the virtual objects, as described below). As shown in FIG. 7B , virtual object 709a has a first orientation within the three-dimensional environment 702. For example, a forward-facing surface / portion of virtual object 709a is oriented toward the viewpoint of the user 726, as indicated by 709b in the overhead view of FIG. 7B . It should be understood that the orientation of virtual object 709a in FIG. 7B is merely exemplary, and other orientations are possible. For example, the virtual object is optionally displayed in different orientations within the three-dimensional environment 702.
[0193] 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 virtual object 709 a within three-dimensional environment 702 may cause virtual object 709 a to be displayed in a simulated location where it contacts and / or intersects with a physical object of the physical environment surrounding display generation component 120 (e.g., a representation of the physical object within three-dimensional environment 702) or a second virtual object (e.g., similar to virtual object 709 a) within three-dimensional environment 702. When a virtual object is described as intersecting and / or contacting a physical object, 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 physical object. 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. For example, if the indicated "placement location" in the overhead view of FIG. 7A were located at a location where virtual object 709a at least partially overlaps with a representation of a physical object in three-dimensional environment 702 (e.g., a representation of table 722a and / or a representation of sofa 724a), displaying virtual object 709a at the indicated "placement location" (e.g., as similarly shown in FIG. 7B) optionally causes virtual object 709a to encounter a depth conflict with the representation of the physical object in three-dimensional environment 702.
[0194] In some embodiments, as described above, computer system 101 displays the virtual environment when virtual object 709a encounters a depth conflict in the three-dimensional environment. Thus, when computer system 101 displays virtual object 709a at a placement location where a depth conflict would occur, computer system 101 optionally also displays the virtual environment within three-dimensional environment 702 to resolve or reduce the depth conflict with the representation of the physical object. For example, computer system 101 displays virtual object 709a within the virtual environment, as similarly shown in FIG. 7J. In some embodiments, as described in more detail below, the display of the virtual environment within three-dimensional environment 702 reduces the depth conflict between virtual object 709a and the representation of the physical object in three-dimensional environment 702 by occluding the representation of the physical object, as similarly shown in FIG. 7J and described in more detail with reference to methods 800, 900, and / or 1000. In some embodiments, as shown in FIG. 7B , the computer system 101 displays the virtual object 709a in the three-dimensional environment 702 without displaying the virtual environment in the three-dimensional environment 702 because the placement location of the virtual object 709a in the three-dimensional environment 702 is not a location where a depth conflict occurs.
[0195] 7B , the computer system 101 detects that the hand 703b of the user 726 provides a movement input directed toward the virtual object 709a. For example, as shown in FIG. 7B , the computer system detects that the hand 703b provides an air pinch gesture while the user's 726 attention (e.g., based on the gaze 721) is directed toward the virtual object 709a in the three-dimensional environment 702, and subsequently, the hand 703b moves to the right with a discrete magnitude (e.g., distance and / or velocity) while the hand remains in the pinch hand shape. In some embodiments, as shown in FIG. 7B , the computer system 101 changes the opacity of the virtual object 709a in the three-dimensional environment 702 in response to detecting the movement input provided by the hand 703b. 7B , computer system 101 displays one or more portions (or all) of virtual object 709a that do not have a depth conflict in three-dimensional environment 702 with an increased amount of translucency (e.g., compared to the amount of translucency of virtual object 709a shown in FIG. 7L ) during movement of virtual object 709a within three-dimensional environment 702. In FIG. 7B , because virtual object 709a does not have a depth conflict with any portion of three-dimensional environment 702, computer system 101 optionally displays all portions of virtual object 709a with an increased amount of translucency during movement of virtual object 709a within three-dimensional environment 702.
[0196] In some embodiments, movement of virtual object 709a within three-dimensional environment 702 causes virtual object 709a to encounter a depth conflict with a portion of three-dimensional environment 702. For example, as shown in Figure 7C, computer system 101 moves virtual object 709a to the right (e.g., relative to the viewpoint of user 726) within three-dimensional environment 702 in accordance with movement of hand 703b, which causes virtual object 709a to contact / intersect with a representation of table 722a within three-dimensional environment 702 (e.g., as shown by the intersection of objects 709b and 722b in the overhead view of Figure 7C). In some embodiments, as described above and in more detail with reference to methods 800, 900, and / or 1000, when computer system 101 determines that virtual object 709a encounters a depth conflict with a representation of table 722a in three-dimensional environment 702 (e.g., a table in the physical environment surrounding display generation component 120), computer system 101 alters visual properties (e.g., visual appearance) of a portion of virtual object 709a that has a depth conflict with the representation of table 722a in three-dimensional environment 702, as shown in FIG. 7C . For example, as shown in FIG. 7C , computer system 101 alters visual properties (e.g., opacity, brightness, coloration, and / or saturation) of first portion 711 of virtual object 709a that touches / intersects the representation of table 722a in three-dimensional environment 702. In some embodiments, altering the visual properties of first portion 711 of virtual object 709a, as shown in FIG. 7C , alleviates the depth conflict between virtual object 709a and the representation of table 722a. For example, as shown in FIG. 7C , changing the amount of opacity, brightness, coloration, and / or saturation of a first portion 711 of virtual object 709a occludes a distinct portion of the representation of table 722a where virtual object 709a has a depth conflict within three-dimensional environment 702.
[0197] In some embodiments, as shown in Figure 7C, when computer system 101 changes the appearance of first portion 711 of virtual object 709a, computer system 101 maintains the appearance of second portion 713 of virtual object 709a, which does not have a depth conflict in three dimensional environment 702. For example, as shown in Figure 7B (and / or Figure 7L), computer system 101 displays virtual object 709a having a first visual property (e.g., a first visual appearance) in three dimensional environment 702 before first portion 711 of virtual object 709a encounters a depth conflict with a representation of table 722a in the three dimensional environment. 7C , and as described above, after computer system 101 moves virtual object 709a in accordance with the movement of hand 703b in FIG. 7B , if virtual object 709a encounters a depth conflict with the representation of table 722a in three-dimensional environment 702, computer system 101 displays first portion 711 of virtual object 709a with second visual properties (e.g., second visual appearance) different from the first visual properties that resolve or reduce the depth conflict in three-dimensional environment 702. Additionally, as shown in FIG. 7C , computer system 101 optionally maintains the display of second portion 713 of virtual object 709a with the first visual appearance in three-dimensional environment 702, because second portion 713 of virtual object 709a does not have a depth conflict with any portion of three-dimensional environment 702.
[0198] In some embodiments, altering the appearance of the first portion 711 of the virtual object 709a includes displaying a boundary between the first portion 711 of the virtual object 709a and the second portion 713 of the virtual object 709a with a visual transition. For example, as shown in FIG. 7C , the computer system 101 displays a boundary between the first portion 711 that has a depth conflict in the three-dimensional environment 702 and the second portion 713 that does not have a depth conflict in the three-dimensional environment 702. In some embodiments, displaying the boundary with a visual transition includes displaying an animation effect (e.g., a gradient of a visual property of the first portion 711 of the virtual object 709a) that causes the first portion 711 of the virtual object 709a to no longer be occluded by the representation of the table 722a in the three-dimensional environment 702 with respect to the viewpoint of the user 726. For example, the animation effect may include a feathering effect that extends from the second portion 713 of the virtual object 709a (e.g., at the boundary between the first portion 711 and the second portion 713) and gradually changes the visual characteristics of the first portion 711 to occlude the representation of the table 722a.
[0199] As mentioned above, in some embodiments, virtual object 709a is or includes content, such as one or more user interfaces. Thus, in Figure 7C, when computer system 101 optionally maintains a display of second portion 713 of virtual object 709a having a first visual appearance, computer system 101 maintains a display of content contained within second portion 713 of virtual object 709a in three-dimensional environment 702. Additionally, when computer system 101 displays first portion 711 of virtual object 709a having a second visual appearance to resolve or reduce depth conflicts with the representation of table 722a, at least a portion of the content contained within first portion 711 of virtual object 709a is displayed. For example, when computer system 101 changes the amount of opacity, brightness, tinting, and / or saturation of first portion 711 of virtual object 709a so that virtual object 709a occludes a representation of table 722a with a depth conflict, the portion of the content included in first portion 711 remains visible to the viewpoint of user 726. In some embodiments, the change in the visual properties of first portion 711 of virtual object 709a is applied to the content within first portion 711 of virtual object 709a, but not to the content within second portion 713.
[0200] It should be understood that the change in appearance of the first portion 711 of the virtual object 709a shown in Figure 7C is exemplary, and that in some embodiments, a greater or lesser amount of the first portion 711 of the virtual object 709a is displayed in the second visual appearance than that shown in Figure 7C. For example, the amount of the first portion 711 of the virtual object 709a displayed in the second visual 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 711 of the virtual object 709a that has a depth conflict in the three-dimensional environment 702.
[0201] In some embodiments, the computer system 101 mitigates a depth conflict between the virtual object 709a and the representation of the table 722a within the three dimensional environment 702 by altering the appearance of a first portion 711 of the virtual object 709a that has a depth conflict because a first set of criteria is met. For example, as shown in the overhead view of FIG. 7C , the first set of criteria is met because the virtual object 809b has a first degree of depth conflict within the three dimensional environment 702 (e.g., less than a threshold amount (e.g., less than 60, 65, 70, 75, 80, 90, or 95%) of the virtual object 709b has a depth conflict with the representation of the table 722b). In some embodiments, similar to above, if a first set of criteria is met when virtual object 709a encounters a depth conflict, computer system 101 changes the visual properties (e.g., appearance) of the portions of virtual object 709a that have a depth conflict within three-dimensional environment 702 without changing the visual appearance (e.g., appearance) of the portions of virtual object 709a that do not have a depth conflict within three-dimensional environment 702. For example, as described above, if the first set of criteria is met, computer system 101 displays the portions of virtual object 709a that have a depth conflict within three-dimensional environment 702 with second visual properties while maintaining the display of the portions of virtual object 709a that do not have a depth conflict with the first visual properties. In some embodiments, the first set of criteria includes criteria that are met when the object with which virtual object 709a has a depth conflict is a first type of object. In some embodiments, the first type of object includes a movable object and / or an object located within the space of the physical environment surrounding display generation component 120. For example, in Figure 7C, the object with which virtual object 709a has a depth conflict is a table (e.g., a representation of table 722a), which is a piece of furniture that is movable and located in space in the physical environment. Thus, in Figure 7C, the first set of criteria is optionally met because virtual object 709a has a depth conflict with the representation of table 722a, which is a first type of object.In some embodiments, as described in more detail below, if the first set of criteria is not met (e.g., the second set of criteria is met) when virtual object 709a encounters a depth conflict within three-dimensional environment 702, computer system 101 displays a virtual environment within three-dimensional environment 702 to mitigate the depth conflict instead of changing the appearance of the portion of virtual object 709a that has a depth conflict within three-dimensional environment 702.
[0202] In some embodiments, the determination of whether virtual object 709a satisfies the first set of criteria is based on a type of object with which virtual object 709a has a depth conflict within three dimensional environment 702. For example, as described above, in FIG. 7C , virtual object 709a encounters a depth conflict with a representation of table 722a within three dimensional environment 702. In some embodiments, the determination of whether virtual object 709a has the first degree of depth conflict described above within three dimensional environment 702 is based on a table (e.g., a representation of table 722a) with which virtual object 709a has a depth conflict. For example, the threshold amount shown in the overhead view of FIG. 7C is determined based on a table (e.g., a representation of table 722b) that is a first type of object, as described above. In some examples, if virtual object 709b encounters a depth conflict with an object of a different type (e.g., an object of a second type, as discussed in more detail below), the threshold amount of virtual object 709b shown in the overhead view (e.g., indicating whether virtual object 709b has a first degree of depth conflict) changes. For example, the threshold amount (and thus the assessment of the degree of depth conflict) shown in the overhead view of FIG. 7C is different (e.g., smaller) for objects such as the floor of the physical environment surrounding display generation component 120.
[0203] In some embodiments, the first set of criteria includes a criterion that is met when an object with which virtual object 709a encounters a depth conflict is located less than a threshold distance (e.g., 0.1, 0.25, 0.5, 1, 2, 3, 5, 10, 15, 20, or 30 meters) from the viewpoint of user 726. For example, in FIG. 7C , the representation of table 722a is located less than the threshold distance from the viewpoint of user 726. Thus, when virtual object 709a encounters a depth conflict with a representation of table 722a that is located less than the threshold distance from the viewpoint of the user, the first set of criteria is met, which causes computer system 101 to modify the appearance of first portion 711 of virtual object 709a to alleviate the depth conflict within three-dimensional environment 702, as shown in FIG. 7C .
[0204] 7C , computer system 101 detects an end of movement input directed toward virtual object 709a in three-dimensional environment 702. For example, computer system 101 detects that hand 703c of user 726 releases an air pinch gesture directed toward virtual object 709a in three-dimensional environment 702 (e.g., such that the index finger and thumb of hand 703c are no longer touching). In some embodiments, computer system 101 coordinates at least a portion of the change in appearance of first portion 711 of virtual object 709a after detecting an end of movement input directed toward virtual object 709a, as described in more detail below. In some embodiments, the computer system 101 adjusts at least a portion of the change in appearance of the first portion 711 of the virtual object 709a after a threshold amount of time (e.g., 0.1, 0.5, 1, 2, 3, 4, 5, or 10 seconds) has elapsed since detecting the end of the movement input provided by the hand of the user 726, as represented by the threshold time 714a in the timeline 707 of FIG. 7C .
[0205] 7D , when computer system 101 determines that the above-mentioned threshold amount of time has elapsed since detecting the release of the movement input provided by hand 703c, as shown in timeline 707, computer system 101 adjusts the change in appearance of at least a portion of first portion 711 of virtual object 709a. For example, as shown in FIG. 7D , computer system 101 adjusts the change in appearance of first portion 711 from the above-mentioned first appearance to a second appearance. As shown in FIG. 7D , computer system 101 optionally increases the opacity of first portion 711 of virtual object 709a (e.g., to an opacity value that is equal to or less than the opacity value of the first appearance) and / or decreases the brightness of first portion 711 of virtual object 709a (e.g., to a brightness value that is equal to or less than the brightness value of the first appearance). In some embodiments, by adjusting the change in appearance of the first portion 711 of the virtual object 709a in the three-dimensional environment 702, at least a portion of the representation of the table 722a becomes visible (or more visible) through the first portion 711 of the virtual object 709a from the perspective of the user 726.
[0206] 7D , the computer system 101 detects a movement of the user's 726 viewpoint while the virtual object 709a has a depth conflict with a representation of the table 722a in the three-dimensional environment 702. For example, as shown in FIG. 7D , the computer system 101 detects that the hand 705a holding the computer system 101 moves to the left (e.g., counterclockwise around the body of the user 726). In some embodiments, as described below, the movement of the user's 726 viewpoint causes the portion of the three-dimensional environment 702, including the physical environment surrounding the display generating component 120, within the user's 726 field of view to change in accordance with the movement of the viewpoint. In some embodiments, the input for changing the user's 726 viewpoint corresponds to a movement of the user's 726's head within the physical environment (e.g., a movement of a head-mounted display worn by the user 726 within the physical environment).
[0207] 7D , computer system 101 updates the display of the orientation of virtual object 709a based on the movement of hand 705a in the three-dimensional environment 702 relative to the new viewpoint of user 726. For example, as shown in the overhead view of FIG. 7E , computer system 101 is moved / angled counterclockwise around the body of user 726 so that computer system 101 faces the forward-facing surface / portion of virtual object 709b in the three-dimensional environment 702. Accordingly, as shown in FIG. 7E , computer system 101 optionally updates the display of the orientation of virtual object 709a so that the forward-facing surface / portion of virtual object 709b is parallel to the new viewpoint of user 726. In some embodiments, computer system 101 updates the display of the orientation of virtual object 709a based on the movement of the viewpoint of user 726 without moving (e.g., translating) virtual object 709a. For example, as described above, because virtual object 709a is world-locked within three-dimensional environment 702, virtual object 709a remains displayed in the same location within three-dimensional environment 702 (e.g., touching the representation of table 722a) when the viewpoint of user 726 changes. Additionally, as shown in Figure 7E, when the viewpoint of user 726 moves, the portion of the physical environment that is visible via display generation component 120 changes in accordance with the viewpoint shift (e.g., a smaller portion of the representation of sofa 724a is visible within three-dimensional environment 702 for user 726's new viewpoint).
[0208] In some embodiments, movement of the user's 726 viewpoint changes the degree of depth conflict encountered by the virtual object 709a within the three-dimensional environment 702. For example, as described above, movement of the user's 726 viewpoint causes the orientation of the virtual object 709a to change / shift in accordance with the viewpoint movement. Details regarding shifting the orientation of the virtual object 709a due to movement of the user's viewpoint are provided below with reference to method 800. In some embodiments, the shift in orientation of the virtual object 709a increases or decreases the degree of depth conflict between the first portion 711 of the virtual object 709a and the representation of the table 722a within the three-dimensional environment 702. In some embodiments, when movement of the user's viewpoint changes the degree of depth conflict encountered by the virtual object 709a and / or causes the virtual object 709a to encounter a depth conflict within the three-dimensional environment 702, the computer system 101 changes the appearance of the portion of the virtual object 709a that has a depth conflict, similar to that described above. 7E, computer system 101 changes the appearance of first portion 711 of virtual object 709a that has a depth conflict with the representation of table 722a without changing the appearance of second portion 713 of virtual object 709a that does not have a depth conflict in three-dimensional environment 702. In some embodiments, computer system 101 changes the appearance of first portion 711 of virtual object 709a that has a depth conflict in the three-dimensional environment because a first set of criteria is met (e.g., because less than a threshold amount of virtual object 709b is in contact with the representation of table 722b in the overhead view of FIG. 7E), as described above.
[0209] In some embodiments, the appearance change applied to virtual object 709a when virtual object 709a encounters a depth conflict in three-dimensional environment 702 in response to movement of virtual object 709a within three-dimensional environment 702 is different from the appearance change applied to virtual object 709a when virtual object 709a encounters a depth conflict in response to movement of the viewpoint of user 726. For example, in Figure 7E, computer system 101 displays first portion 711 of virtual object 709a with third visual properties (e.g., a third visual appearance) that are different from the second visual properties described above (e.g., the appearance of first portion 711 in Figure 7C). In some embodiments, the opacity and / or luminance of the first portion 711 of the virtual object 709a when a depth conflict is encountered due to direct movement of the virtual object 709a (e.g., in response to movement input directed at the virtual object 709a, such as movement of the hand 703b in FIG. 7B ) is different from the opacity and / or luminance of the first portion 711 of the virtual object 709a when a depth conflict is encountered due to movement of the viewpoint of the user 726. For example, the opacity and / or luminance value of the first portion 711 of the virtual object 709a when a depth conflict is encountered due to direct movement of the virtual object 709a is greater than the opacity and / or luminance value of the first portion 711 of the virtual object 709a when a depth conflict is encountered due to movement of the viewpoint.
[0210] As described above, in some embodiments, modifying the appearance of the first portion 711 of the virtual object 709a includes displaying a visual transition of the boundary between the first portion 711 of the virtual object 709a and the second portion 713 of the virtual object 709a. For example, as shown in FIG. 7E , the computer system 101 displays a boundary between the first portion 711, which has a depth conflict in the three-dimensional environment 702, and the second portion 713, which does not have a depth conflict in the three-dimensional environment 702. In some embodiments, the visual transition of the boundary between the first portion 711 and the second portion 713 applied to the virtual object 709a when the virtual object 709a encounters a depth conflict in the three-dimensional environment 702 in response to movement of the virtual object 709a within the three-dimensional environment 702 is different from the visual transition of the boundary between the first portion 711 and the second portion 713 applied to the virtual object 709a when the virtual object 709a encounters a depth conflict in the three-dimensional environment 702 in response to movement of the viewpoint of the user 726. As described above, in some embodiments, displaying a boundary with a visual transition includes displaying a visual effect, such as a feathering effect, that extends from the second portion 713 of the virtual object 709a (e.g., to the boundary between the first portion 711 and the second portion 713) and gradually changes the visual characteristics of the first portion 711 to occlude the representation of the table 722a. In some embodiments, the feathering effect for occluding the representation of the table 722a when the depth conflict is caused by movement of the virtual object 709a within the three-dimensional environment 702 is displayed with a greater amount of precision (e.g., the transition region between the first portion 711 and the second portion 713 is displayed with a greater length / width) than the feathering effect when the depth conflict is caused by movement of the user's 726 viewpoint. For example, as shown in FIG. 7E , a greater amount of first portion 711 of virtual object 709a has a change in appearance due to the feathering effect when the depth conflict is caused by a movement of the viewpoint than a greater amount of first portion 711 of virtual object 709a when the depth conflict is caused by a movement of virtual object 709a within three-dimensional environment 702.
[0211] 7E, the computer system 101 detects a movement input directed toward a virtual object 709a within the three-dimensional environment 702. For example, as shown in FIG. 7E, the computer system 101 detects that the hand 703e of the user 726 provides an air pinch gesture while attention is directed toward the virtual object 709a (e.g., based on the gaze 721), and subsequently, the hand 703e moves in a rightward direction while maintaining the pinch hand shape. In some embodiments, as shown in FIG. 7F, in response to detecting the movement input, the computer system 101 moves the virtual object 709a within the three-dimensional environment 702 according to the movement of the hand of the user 726. For example, as shown in FIG. 7F, the computer system 101 moves the virtual object 709a in a rightward direction within the three-dimensional environment 702 based on the movement of the hand 703e.
[0212] 7F , virtual object 709a encounters a depth conflict in three-dimensional environment 702 as a result of moving virtual object 709a. For example, as shown in the overhead view of FIG. 7F , as virtual object 709b is moved within three-dimensional environment 702, virtual object 709b contacts / intersects with a representation of table 722b and a representation of sofa 724b. In some embodiments, similar to the above, computer system 101 changes the appearance of portions of virtual object 709a that encounter a depth conflict in three-dimensional environment 702. For example, as shown in FIG. 7F , computer system 101 changes the appearance of a first portion 715 of virtual object 709a that has a depth conflict with the representation of sofa 724a and changes the appearance of a second portion 717 of virtual object 709a that has a depth conflict with the representation of table 722a in three-dimensional environment 702. In some embodiments, the computer system 101 simultaneously modifies the appearance of the first portion 715 and the second portion 717 of the virtual object 709a to resolve or reduce a depth conflict with the representations of the sofa 724a and the table 722a, respectively. For example, the computer system 101 modifies the opacity, brightness, tint, and / or saturation values of the first portion 715 and the second portion 717 of the virtual object 709a to occlude the portions of the representation of the sofa 724a and the representation of the table 722a that spatially conflict with the virtual object 709a in the three-dimensional environment. Additionally, similar to the above, in some embodiments, the computer system 101 refrains from modifying the appearance of the third portion 719 of the virtual object 709a, which does not have a depth conflict in the three-dimensional environment 702. For example, the computer system 101 maintains the display of the third portion 719 of the virtual object 709a with the same appearance as before the virtual object 709a was moved within the three-dimensional environment 702 (e.g., the appearance of the portion of the virtual object 709a that does not have a depth conflict in FIG. 7E).
[0213] 7F, the computer system 101 detects a movement input directed toward the virtual object 709a within the three-dimensional environment 702. For example, as shown in FIG. 7F, the computer system 101 detects that the hand 703f of the user 726 provides an air pinch gesture while attention is directed toward the virtual object 709a (e.g., based on the gaze 721), and subsequently, the hand 703f moves leftward while maintaining the pinch hand shape. In some embodiments, as shown in FIG. 7G, in response to detecting the movement input, the computer system 101 moves the virtual object 709a within the three-dimensional environment 702 according to the movement of the hand of the user 726. For example, as shown in FIG. 7G, the computer system 101 moves the virtual object 709a leftward within the three-dimensional environment 702 based on the movement of the hand 703f. In some embodiments, the computer system 101 detects that the hand of the user 726 remains in the pinch hand shape after the computer system 101 moves the virtual object 709a within the three-dimensional environment 702.
[0214] In Figure 7F, virtual object 709a encounters a depth conflict in three-dimensional environment 702 as a result of movement of virtual object 709a. For example, as shown in the overhead view of Figure 7G, virtual object 709b contacts / intersects with the left side wall of the physical environment surrounding display generation component 120. In some embodiments, when virtual object 709a encounters a depth conflict with the left side wall of the physical environment in response to movement of virtual object 709a within three-dimensional environment 702, computer system 101 displays a visual indication (e.g., hint) 725 of the virtual environment within three-dimensional environment 702, as shown in Figure 7G. For example, as shown in the overhead view of Figure 7G, computer system 101 displays virtual object 709b within visual indication 725 of the virtual environment such that visual indication 725 occludes the portion of the left side wall where virtual object 709a has a depth conflict in three-dimensional environment 702. In some embodiments, the visual indication 725 of the virtual environment includes a preview (e.g., one or more portions) of the virtual environment that is displayed within the three-dimensional environment 702 in response to further input, as described below. In some embodiments, the visual indication 725 of the virtual environment occupies a portion of the three-dimensional environment 720 that surrounds the virtual object 709a, as shown in FIG. 7G. For example, as shown in FIG. 7G, the portion of the virtual environment included in the visual indication 725 extends outward from the edge of the virtual object 709a (e.g., the virtual object 709a is located at the center of the visual indication 725).
[0215] FIG. 7F1 illustrates concepts similar and / or identical to those illustrated in FIG. 7F (having many of the same reference numbers). Unless otherwise indicated below, elements illustrated in FIG. 7F1 that have the same reference numbers as elements illustrated in FIGS. 7A-7P are understood to have one or more or all of the same characteristics. FIG. 7F1 includes 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. 7A-7P 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-7P have one or more of the characteristics of the computer system 101 and the display generation component 120 illustrated in FIG. 7F1.
[0216] In FIG. 7F1, display generating component 120 includes one or more internal image sensors 314a (e.g., eye-tracking cameras 540 described with reference to FIG. 5) oriented toward the user's face. In some embodiments, internal image sensor 314a is used for eye tracking (e.g., detecting the user's gaze). Internal image sensor 314a 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 314b and 314c 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 314a, 314b, and 314c have one or more of the characteristics of image sensor 314 described with reference to FIGS. 7A-7P.
[0217] In Figure 7F1, 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-7P. 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 7F1.
[0218] Display generating component 120 has a field of view that corresponds to the content shown in Figure 7F1 (e.g., a field of view that is captured by external image sensors 314b and 314c and / or that is 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 user's field of view.
[0219] In Figure 7F1, a user is shown performing an air pinch gesture (e.g., with hand 703F) 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. The user optionally provides user input using different air gestures and / or using other forms of input, as described with reference to Figures 7A-7P.
[0220] In some embodiments, computer system 101 responds to user input as described with reference to Figures 7A-7P.
[0221] In the example of Figure 7F1, the user's hands are visible in the three-dimensional environment because they are 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. It will be understood that one or more or all aspects of the present disclosure shown in or described with reference to Figures 7A-7P 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 the same or similar to that shown in Figure 7F1.
[0222] In some embodiments, displaying the visual indication 725 of the virtual environment includes modifying lighting effects in the three-dimensional environment 702 surrounding the virtual object 709a. For example, as shown in FIG. 7G , the computer system 101 reduces lighting in the three-dimensional environment 702 surrounding the virtual object 709a when the visual indication 725 is displayed (e.g., such that the pass-through of the physical environment visible via the display generation component 120 is dimmed / darkened relative to the virtual object 709a). In some embodiments, the portion of the virtual environment included in the visual indication 725 is displayed within the three-dimensional environment 702 with a first amount of opacity. For example, as shown in FIG. 7G , portions of the physical environment behind the virtual object 709a and / or the visual indication 725 are partially visible through the visual indication 725 from the perspective of the user 726.
[0223] 7G, the computer system 101 detects a movement input directed toward the virtual object 709a while the visual indication 725 is displayed within the three-dimensional environment 702. For example, as shown in FIG. 7G, the computer system 101 detects that the hand 703g of the user 726 provides an air pinch gesture while attention is directed toward the virtual object 709a (e.g., based on the gaze 721), and subsequently, the hand 703g moves leftward while maintaining the pinch hand shape. In some embodiments, as shown in FIG. 7H, in response to detecting the movement input, the computer system 101 moves the virtual object 709a within the three-dimensional environment 702 according to the movement of the hand of the user 726. For example, as shown in FIG. 7H, the computer system 101 moves the virtual object 709a leftward within the three-dimensional environment 702 based on the movement of the hand 703g. In some embodiments, the computer system 101 detects that the hands of the user 726 remain in the pinch hand shape after the computer system 101 moves the virtual object 709a within the three-dimensional environment 702.
[0224] 7H , the degree of depth conflict between virtual object 709a and the left wall of the physical environment increases as a result of movement of virtual object 709a within three-dimensional environment 702. For example, as shown in the overhead view of FIG. 7H , after virtual object 709b is moved within three-dimensional environment 702, a larger portion of virtual object 709b contacts / intersects with the left wall. In some embodiments, computer system 101 increases the size of visual indication 725 in the virtual environment in response to an increase in the degree of depth conflict between virtual object 709a and the left wall of the physical environment. For example, as shown in FIG. 7H , when the portion of virtual object 709a contacting / intersecting with the left wall increases as a result of movement of virtual object 709a within three-dimensional environment 702, computer system 101 increases the portion of three-dimensional environment 702 surrounding virtual object 709a that is occupied by visual indication 725. In some embodiments, as shown in the overhead view of Figure 7H, as the size of visual indication 725 increases, additional portions of the virtual environment are displayed within three dimensional environment 702. For example, as shown in Figure 7H, the additional portions of the virtual environment included in visual indication 725 are displayed around the edges of virtual object 709a within three dimensional environment 702. Thus, computer system 101 gradually increases the size of visual indication 725 within three dimensional environment 702 (e.g., thus gradually displaying additional portions of the virtual environment) as the degree of depth conflict for virtual object 709a increases (e.g., in response to movement of virtual object 709a within the three dimensional environment).
[0225] In some embodiments, computer system 101 limits movement of virtual object 709a beyond a threshold distance (e.g., 0.1, 0.2, 0.5, 1, 2, 3, or 5 m) beyond the detected surface for a particular object within the physical environment surrounding display generation component 120. For example, in FIG. 7H , if computer system 101 detects a movement input (e.g., a movement input such as that described above) directed toward virtual object 709a that includes movement toward the left wall of the physical environment, increasing depth conflict between virtual object 709a and the left wall, computer system 101 limits movement of virtual object 709a beyond the threshold distance beyond the surface of the left wall. In some embodiments, limiting movement of virtual object 709a includes ceasing movement of virtual object 709a within three-dimensional environment 702 when the threshold distance is reached (e.g., regardless of further input directed toward virtual object 709a corresponding to movement of virtual object 709a beyond the threshold distance beyond the detected surface).
[0226] In some embodiments, if computer system 101 detects a movement input (e.g., a movement input such as the one described above) directed at virtual object 709a that includes movement away from the left wall of the physical environment, computer system 101 ceases displaying visual indication 725 of the virtual environment within the three-dimensional environment. For example, if virtual object 709a is moved away from the left wall in response to the movement input such that virtual object 709a no longer has a depth conflict with the left wall, computer system 101 ceases displaying visual indication 725 in three-dimensional environment 702. In some embodiments, computer system 101 displays visual indication 725 of the virtual environment within three-dimensional environment 702 while the user's hand maintains an air pinch gesture. For example, while virtual object 709a has a depth conflict in three-dimensional environment 702, computer system 101 displays visual indication 725 if the index finger and thumb of the hand of user 726 that provided the movement input described above remain in contact. Additionally, in some embodiments, while the user's hands maintain the air pinch gesture, the computer system 101 maintains the display of the portion of the three-dimensional environment 702 surrounding the visual indication 725 with the dimmed / darkened lighting effects described above for the visual indication 725. In some embodiments, as described below, if the computer system 101 determines that the user's hands are no longer maintaining the air pinch gesture while the visual indication 725 is displayed, the computer system 101 ceases displaying the visual indication 725 in the three-dimensional environment 702. Additionally, in some embodiments, if the computer system 101 determines that the user's hands are no longer maintaining the air pinch gesture while the visual indication 725 is displayed, the computer system 101 no longer changes the lighting effects of the portion of the three-dimensional environment 702 surrounding the visual indication 725 (e.g., no longer dimmed / darkened the portion of the three-dimensional environment 702 relative to the visual indication 725).
[0227] In FIG. 7H, computer system 101 detects that hand 703h releases the air pinch gesture while visual indication 725 of the virtual environment is displayed within three-dimensional environment 702. For example, computer system 101 detects that the index finger and thumb of hand 703h have separated (e.g., are no longer touching). In some embodiments, in response to detecting the release of the air pinch gesture by hand 703h, computer system 101 displays virtual environment 728 within three-dimensional environment 702, as shown in FIG. 7I. For example, computer system 101 replaces the display of visual indication 725 of the virtual environment with virtual environment 728. In some embodiments, as shown in FIG. 7I, virtual environment 728 is the virtual environment previewed via visual indication 725 of FIGS. 7G-7H. For example, as shown in FIG. 7I, virtual environment 728 includes the portion of the virtual environment displayed in visual indication 725 of FIG. 7H and additional portions of the virtual environment that were not displayed in visual indication 725. In some embodiments, displaying the virtual environment 728 includes expanding (e.g., increasing its size) the visual indication 725 within the three-dimensional environment (optionally displaying an animation thereof) such that the portion of the virtual environment 728 included in the visual indication 725 of FIG. 7H expands to occupy a larger portion of the three-dimensional environment 702 from the perspective of the user 726. For example, the immersive level of the virtual environment 728, discussed in more detail below, is increased such that the virtual environment 728 occupies a larger portion of the three-dimensional environment 702 from the perspective of the user 726. In some embodiments, as shown in FIG. 71, the virtual environment 728 occupies a portion of the three-dimensional environment 702 (including the physical environment surrounding the display generation component 120) that surrounds the virtual object 709a from the perspective of the user 726. For example, as shown in the overhead view of FIG. 7I, virtual environment 728 occupies a representation of table 722b, a representation of sofa 724b, and the left and back walls of the physical environment in which display generating component 120 is located.
[0228] In some embodiments, as described above, the display of virtual environment 728 within three-dimensional environment 702 reduces a depth conflict between virtual object 709a and the left wall of the physical environment. For example, as shown in the overhead view of FIG. 7I , virtual object 709b is displayed within virtual environment 728 within three-dimensional environment 702, such that portions of virtual environment 728 surround and extend behind virtual object 709b. Thus, virtual environment 728 optionally occludes the physical environment visible via display generation component 120, including the left wall with which virtual object 709a has a depth conflict. In some embodiments, computer system 101 displays virtual environment 728 with an amount of opacity relative to three-dimensional environment 702 that makes portions of three-dimensional environment 702 surrounding virtual object 709b in the user's field of view (e.g., including the left wall) no longer visible to the user's 726's viewpoint. For example, as shown in Figure 7I, virtual environment 728 is displayed with a higher opacity than the portions of the virtual environment included in visual indication 725 of Figures 7G-7H described above. Thus, in some embodiments, the display of virtual environment 728 within three-dimensional environment 702 resolves or reduces depth conflicts for virtual object 709a within three-dimensional environment 702.
[0229] In some embodiments, virtual environment 728 is a system environment selected for display by user 726. For example, as shown in FIG. 7I, virtual environment 728 corresponds to a beach environment during sunset. In some embodiments, the beach environment shown in FIG. 7I is selected for display by user 726 prior to the display of virtual environment 728 (e.g., FIG. 7B). For example, the beach environment is selected from a library of virtual environments prior to detecting an input to display and / or move virtual object 709a within three-dimensional environment 702 (and / or prior to detecting an input to display visual indication 725 of FIG. 7G). Thus, in FIG. 7I, virtual environment 728 is displayed within three-dimensional environment 702 without detecting an input that selects virtual environment 728 for display. It should be understood that virtual environment 728 shown in FIG. 7I is exemplary, and that in some embodiments, alternative virtual environments are displayed within three-dimensional environment 702 in the manner described above.
[0230] In some embodiments, computer system 101 displays virtual environment 728 within three-dimensional environment 702 to mitigate a depth conflict within three-dimensional environment 702 in accordance with a determination that the second set of criteria is satisfied. For example, the second set of criteria is different from the first set of criteria described above. In some embodiments, the second set of criteria includes criteria that are satisfied when the object with which virtual object 709a has a depth conflict is a second type of object that is different from the first type of object described above with reference to the first set of criteria. In some embodiments, the second type of object includes stationary, non-movable objects and / or objects that define a space in the physical environment surrounding display generating component 120 (e.g., walls, windows, cabinets, and / or floors, etc.). For example, as described above, virtual object 709a has a depth conflict with the left wall of the physical environment surrounding display generating component 120. Thus, in FIG. 7I , the second set of criteria is optionally satisfied because virtual object 709a has a depth conflict with the left wall, which is an object of the second type. In some embodiments, if the second set of criteria is not met, the computer system 101 ceases displaying the virtual environment 728 within the three-dimensional environment 702 to resolve or reduce the depth conflict within the three-dimensional environment 702 (e.g., instead, changes the appearance of the portion of the virtual object 709a that has the depth conflict, as described above with reference to FIG. 7C ).
[0231] 7I, the computer system 101 detects a movement of the user's 726 viewpoint while the virtual environment 728 is displayed within the three-dimensional environment 702. For example, as shown in FIG. 7I, the computer system 101 detects that the hand 705b holding the computer system 101 moves to the right (e.g., clockwise around the body of the user 726). In some embodiments, as described below, the movement of the user's 726 viewpoint causes the portion of the three-dimensional environment 702 that is displayed within the user's 726 field of view to change accordingly. In some embodiments, the input for changing the user's 726 viewpoint corresponds to a movement of the user's 726's head within the physical environment (e.g., a movement of a head-mounted display worn by the user 726 within the physical environment).
[0232] 7I, computer system 101 updates the display of virtual environment 728 in three-dimensional environment 702 to the new viewpoint of user 726 according to the movement. For example, as shown in FIG. 7J, the movement of user 726's viewpoint causes virtual object 709a to be viewable from a different angle according to the movement of viewpoint (e.g., such that a forward-facing surface / portion of virtual object 709a is angled to the right relative to user 726's new viewpoint). Additionally, in some embodiments, computer system 101 updates the display of virtual environment 728 in three-dimensional environment 702. For example, as shown in FIG. 7J, computer system 101 optionally displays an additional portion of virtual environment 728 to the new viewpoint of user 726 in the overhead view (e.g., a portion of virtual environment 728 to the right of what was displayed before user 726's viewpoint moved in FIG. 7I).
[0233] 7J , computer system 101 maintains the display of virtual environment 728 within three-dimensional environment 702 as user 726's viewpoint changes, similar to the above. For example, as described above, virtual environment 728 is displayed within three-dimensional environment 702 to mitigate a depth conflict between virtual object 709 a and the left wall of the physical environment surrounding display generation component 120. In FIG. 7H , computer system 101 detects a movement of user 726's viewpoint while virtual object 709 a is still in contact with the left wall. Thus, as user 726's viewpoint is moved, virtual object 709 a optionally still has a depth conflict with the left wall, causing computer system 101 to maintain the display of virtual environment 728 within three-dimensional environment 702.
[0234] 7E , in some embodiments, while virtual object 709a has a depth conflict with the representation of table 722a, a movement of the viewpoint of user 726 causes computer system 101 to change the manner in which the depth conflict is resolved within three-dimensional environment 702. For example, as described above with reference to FIG. 7E , computer system 101 changes (e.g., increases) the opacity and / or brightness values of first portion 711 of virtual object 709a to mitigate the increased depth conflict between virtual object 709a and the representation of table 722a from the new viewpoint of user 726. However, in FIG. 7J , computer system 101 does not change the manner in which the depth conflict is resolved within three-dimensional environment 702. For example, similar to above, if a movement of user 726's viewpoint causes the degree of depth conflict between virtual object 709a and the left wall to increase relative to user 726's new viewpoint, computer system 101 maintains the display of virtual environment 728 within three-dimensional environment 702 and ceases to change the appearance of the portion of virtual object 709a that has a depth conflict with the left wall. Thus, as outlined above, if computer system 101 detects a movement of user 726's viewpoint while displaying the portion of virtual object 709a that has a changed appearance while virtual object 709a has a depth conflict within three-dimensional environment 702, computer system 101 optionally further changes the appearance of the portion of virtual object 709a within three-dimensional environment 702, and if computer system detects a movement of user 726's viewpoint while displaying the virtual environment within three-dimensional environment 702, computer system 101 optionally maintains the display of the virtual environment (e.g., without changing the appearance of virtual object 709a).
[0235] 7J , computer system 101 detects an input corresponding to a request to change the immersion level of virtual environment 728 within three-dimensional environment 702. For example, as shown in FIG. 7J , computer system 101 detects a selection of physical button 741 on computer system 101 provided by hand 703j. In some embodiments, the selection of physical button 741 includes one or more presses of physical button 741. In some embodiments, the selection of physical button 741 includes a press and hold of physical button 741. In some embodiments, the selection of physical button 741 includes a scroll / swipe of physical button 741. For example, computer system 101 detects a rotation (e.g., in a discrete direction and with a discrete magnitude) of physical button 741, which is optionally a rotatable input mechanism. In some embodiments, when the rotation of the physical button 741 is in a first direction (e.g., clockwise), the computer system 101 increases the immersion level of the virtual environment 728, and when the rotation of the physical button 741 is in a second direction opposite the first direction (e.g., counterclockwise), the computer system decreases the immersion level of the virtual environment 728. In some embodiments, as described below, the immersion level of the virtual environment 728 controls the amount (e.g., percentage) of the three-dimensional environment 702 in the field of view of the user 726 that is occluded by the virtual environment 728 relative to the viewpoint of the user 726.
[0236] In some embodiments, in response to detecting a selection of physical button 741 provided by hand 703j, computer system 101 alters the immersion level of virtual environment 728 within three-dimensional environment 702, as shown in FIG. 7K. For example, as shown in FIG. 7K, computer system 101 decreases the immersion level of virtual environment 728 according to the input (e.g., based on the number of presses of physical button 741 or the duration of the presses and / or scrolling). As shown in FIG. 7K, decreasing the immersion level of virtual environment 728 optionally includes decreasing the amount of three-dimensional environment 702 in the field of view of user 726 that is occluded by virtual environment 728 relative to the viewpoint of user 726. For example, as shown in the overhead view of FIG. 7K, virtual environment 728 occludes a smaller portion of three-dimensional environment 702 relative to the viewpoint of user 726, such that the portion of three-dimensional environment 702 corresponding to the physical environment is again visible via display generation component 120. 7K, portions of the physical environment surrounding display generating component 120 are optionally visible through display generating component 120 (e.g., portions of the representation of sofa 724a are re-displayed within three-dimensional environment 702). Additional details regarding the immersive level of virtual environment 728 are provided below with reference to method 900.
[0237] In some embodiments, decreasing the immersion level of virtual environment 728 within three dimensional environment 702 causes at least a portion of virtual object 709a to disappear from virtual environment 728. For example, as shown in FIG. 7K, computer system 101 does not move virtual object 709a within three dimensional environment 702 when the immersion level of virtual environment 728 is decreased. Thus, as shown in the overhead view of FIG. 7K, when the immersion level of virtual environment 728 is decreased, a portion of virtual object 709b disappears from virtual environment 728 within three dimensional environment 702. In some embodiments, when the immersion level of virtual environment 728 is decreased, virtual object 709a encounters a depth conflict in three dimensional environment 702 (and / or makes a depth conflict visible to the viewpoint of user 726). For example, as shown in the overhead view of FIG. 7K, when the immersion level of virtual environment 728 decreases (e.g., because virtual environment 728 no longer blocks the left wall behind portions of virtual object 709b), the portions of virtual object 709b that are no longer displayed in virtual environment 728 contact / intersect with the left wall in the physical environment (e.g., contact between portions of virtual object 709b and the left wall becomes visible to the user's viewpoint).
[0238] In some embodiments, the computer system 101 modifies the appearance of a portion of the virtual object 709a that has a depth conflict with the left wall of the physical environment to mitigate a depth conflict within the three-dimensional environment 702. For example, as shown in FIG. 7K , when a first portion 727 of the virtual object 709a encounters a depth conflict with the left wall due to a decrease in the immersion level of the virtual environment 728, the computer system 101 changes the appearance of the first portion 727 of the virtual object 709a. As described above with reference to FIG. 7C , the computer system 101 optionally modifies the opacity, brightness, tinting, and / or saturation values of the first portion 727 of the virtual object 709a in the three-dimensional environment 702 so that the virtual object 709a occludes the portion of the left wall with which it has a depth conflict. Additionally, as described above, in some embodiments, the computer system 101 refrains from modifying the appearance of a second portion 729 of the virtual object 709a that does not have a depth conflict within the three-dimensional environment 702. For example, as shown in FIG. 7K, computer system 101 does not change the appearance of second portion 729 of virtual object 709a, which is still displayed within virtual environment 728 (and therefore does not have a depth conflict with the left wall in the three-dimensional environment) when the immersion level of virtual environment 728 is reduced.
[0239] In FIG. 7K, the computer system 101 detects a movement input directed toward the virtual object 709a in the three-dimensional environment 702 while the virtual object 709a has a depth conflict with the left wall of the physical environment. For example, as shown in FIG. 7K, the computer system 101 detects that the hand 703k of the user 726 provides an air pinch gesture while the user's attention (e.g., based on the gaze 721) is directed toward the virtual object 709a, and subsequently, the hand 703k moves toward the right while maintaining the pinch hand shape. In some embodiments, as shown in FIG. 7L, in response to detecting the movement input, the computer system 101 moves the virtual object 709a in the three-dimensional environment 702 according to the movement of the user's 726's hand. For example, as shown in FIG. 7L, the computer system 101 moves the virtual object 709a in the three-dimensional environment 702 toward the right based on the movement of the hand 703k.
[0240] In some embodiments, as shown in FIG. 7L , if computer system 101 determines that moving virtual object 709 a within three-dimensional environment 702 resolves or reduces a depth conflict within three-dimensional environment 702, computer system 101 no longer mitigates the depth conflict in the manner(s) described above. For example, as shown in FIG. 7L , moving virtual object 709 a within three-dimensional environment 702 causes virtual object 709 a to no longer have a depth conflict with the left wall of the physical environment surrounding display generation component 120. Additionally, as shown in the overhead view of FIG. 7L , virtual object 709 b is displayed at a location within three-dimensional environment 702 that does not at least partially contact or intersect with any object within three-dimensional environment 702. Thus, in some embodiments, computer system 101 adjusts (e.g., reverses) the change in appearance of portions of virtual object 709 a that had a depth conflict in three-dimensional environment 702 prior to the movement of virtual object 709 a. For example, as shown in FIG. 7L, computer system 101 redisplays the first portion of virtual object 709a (e.g., 727 in FIG. 7K) with the original values of opacity, brightness, coloration, and / or saturation because the first portion of virtual object 709a no longer has a depth conflict with the left wall of the physical environment.
[0241] Additionally, in some embodiments, computer system 101 ceases displaying virtual environment 728 within three-dimensional environment 702, as shown in Figure 7L. For example, as shown in Figure 7L, because virtual object 709a no longer has a depth conflict with any part of three-dimensional environment 702 (e.g., the left wall of the physical environment) after moving virtual object 709a, computer system 101 ceases displaying virtual environment 728 such that virtual object 709a is no longer displayed within virtual environment 728.
[0242] 7L, the computer system 101 detects a movement input directed toward a virtual object 709a within the three-dimensional environment 702. For example, as shown in FIG. 7L, the computer system 101 detects that the hand 703l of the user 726 provides an air pinch gesture while the user's attention (e.g., based on the gaze 721) is directed toward the virtual object 709a, and subsequently, the hand 703l moves toward the right while maintaining the pinch hand shape. In some embodiments, as shown in FIG. 7M, in response to detecting the movement input, the computer system 101 moves the virtual object 709a within the three-dimensional environment 702 according to the movement of the user's 726's hand. For example, as shown in FIG. 7M, the computer system 101 moves the virtual object 709a toward the right within the three-dimensional environment 702 based on the movement of the hand 703l.
[0243] 7M , virtual object 709a encounters a depth conflict in three-dimensional environment 702 as a result of movement of virtual object 709a. For example, as shown in the overhead view of FIG. 7M , as virtual object 709b is moved within three-dimensional environment 702, virtual object 709b contacts / intersects with a representation of table 722b. In some embodiments, similar to the above, computer system 101 changes the appearance of a portion of virtual object 709a that encounters a depth conflict in three-dimensional environment 702. For example, as shown in FIG. 7M , computer system 101 changes the appearance of a first portion 735 of virtual object 709a that has a depth conflict with the representation of table 722a in three-dimensional environment 702. For example, computer system 101 changes the opacity, brightness, tinting, and / or saturation values of first portion 735 of virtual object 709a to occlude the portion of the representation of table 722a that spatially conflicts with virtual object 709a in three-dimensional environment 702. Additionally, similar to the above, in some embodiments, computer system 101 refrains from changing the appearance of second portion 733 of virtual object 709a that does not have a depth conflict within three-dimensional environment 702. For example, computer system 101 maintains the display of second portion 733 of virtual object 709a with the same appearance (e.g., the appearance of virtual object 709a in FIG. 7L ) as it had before virtual object 709a was moved within three-dimensional environment 702. Additionally, in FIG. 7M , second portion 733 of virtual object 709a that has a depth conflict with the representation in table 722a is, optionally, different from the portion of virtual object 709a that had a depth conflict before virtual object 709a was moved (e.g., portion 727 in FIG. 7K and / or portion 711 in FIG. 7C ).
[0244] In some embodiments, activation of focus mode in computer system 101 mitigates depth conflict between representations of virtual object 709a and table 722a in three-dimensional environment 702. In some embodiments, as described in more detail below, activation of focus mode in computer system 101 causes virtual object 709a to be displayed with visual salience relative to portions of three-dimensional environment 702 surrounding virtual object 709a relative to a viewpoint of user 726. Additional details regarding focus mode are provided below with reference to method 800. In FIG. 7M, computer system 101 detects input corresponding to a request to activate focus mode in computer system 101. For example, in FIG. 7M, computer system 101 detects attention (e.g., based on gaze 721) directed toward virtual object 709a in three-dimensional environment 702. In some embodiments, computer system 101 activates focus mode when the user's attention is directed to virtual object 709a for a threshold amount of time (e.g., 0.5, 1, 1.5, 2, 3, 5, 10, or 12 seconds), as indicated by time marker 714b in timeline 707 of FIG. 7M. Alternatively, as shown in FIG. 7M, computer system 101 detects a selection input (e.g., an air pinch gesture, an air tap gesture, a button press, or other selection input) provided by hand 705a directed at selectable option 732 within user interface object 730a (e.g., while the user's second gaze 731 is directed at selectable option 732). In some embodiments, selectable option 732 is selectable to cause computer system 101 to activate focus mode. While multiple gaze points are shown in FIG. 7M, it should be understood that such gaze points need not be detected simultaneously by computer system 101. Rather, in some embodiments, the computer system 101 responds independently to the gaze points shown and described in response to independently detecting such gaze points.
[0245] Additionally or alternatively, in FIG. 7M , computer system 101 detects movement input directed toward virtual object 709a in three-dimensional environment 702 while the virtual object has a depth conflict with a representation of table 722a. For example, as shown in FIG. 7M , computer system 101 detects that hand 703m of user 726 provides an air pinch gesture while the user's attention (e.g., based on gaze 721) is directed toward virtual object 709a, followed by hand 703m moving in a rightward direction while maintaining the pinch hand shape. As shown in the overhead view of FIG. 7M , computer system 101 detects movement input provided by hand 703m while less than a threshold amount (e.g., as described above) of virtual object 709b has a depth conflict with a representation of table 722b in three-dimensional environment 702. While multiple hands and corresponding inputs are shown in FIG. 7M , 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.
[0246] In some embodiments, in response to detecting an input at computer system 101 corresponding to a request to activate a focus mode, computer system 101 activates a focus mode for virtual object 709a, as shown in FIG. 7N. For example, as shown in FIG. 7N, in response to detecting a user's attention directed toward virtual object 709a for a threshold amount of time, as indicated by timeline 707, and / or detecting a selection of selectable option 732 in FIG. 7M, computer system 101 displays virtual object 709a to have visual salience relative to three-dimensional environment 702. In some embodiments, as shown in FIG. 7N, computer system 101 dims / darkens portions of three-dimensional environment 702 surrounding virtual object 709a relative to the viewpoint of user 726 when focus mode is activated. In some embodiments, the darkening / dimming of portions of three-dimensional environment 702 surrounding virtual object 709a mitigates depth conflict between virtual object 709a and a representation of table 722a in three-dimensional environment 702. For example, as shown in FIG. 7N, darkening / dimming portions of the three-dimensional environment 702 surrounding the virtual object 709a causes the representation of the table 722a to visually less stand out relative to the virtual object 709a, such that the representation of the table 722a no longer appears to contact / intersect with the virtual object 709a in the three-dimensional environment relative to the viewpoint of the user 726.
[0247] In some embodiments, when focus mode is activated in computer system 101, computer system 101 adjusts (e.g., reverses) the change in appearance of the portion of virtual object 709a having a depth conflict in three-dimensional environment 702, as shown in Figure 7N. For example, as shown in Figure 7N, because activation of focus mode causes the representation of table 722a to appear to no longer visually contact / intersect with virtual object 709a and / or reduces the visual salience of the contact / intersection between the representation of table 722a in three-dimensional environment 702 and virtual object 709a, computer system 101 redisplays a first portion of virtual object 709a (e.g., 735 in Figure 7M) with the opacity, brightness, coloration, and / or saturation values that virtual object 709a had before the movement of virtual object 709a (e.g., the appearance of virtual object 709a in Figure 7L).
[0248] In some embodiments, the computer system 101 deactivates the focus mode in response to detecting that the user's 726 attention is no longer directed at the virtual object 709a in the three-dimensional environment 702. For example, if the computer system 101 detects that the user's 726 attention (e.g., based on the gaze 721) of FIG. 7N moves away from the virtual object 709a (e.g., to a location in the three-dimensional environment 702 outside the virtual object 709a), the computer system 101 deactivates the focus mode. In some embodiments, when the focus mode is deactivated, the computer system 101 reverses the darkening / dimming effect applied to the portion of the three-dimensional environment 702 surrounding the virtual object 709a relative to the user's 726 viewpoint. For example, the computer system 101 redisplays the portion of the three-dimensional environment 702 surrounding the virtual object 709a using the lighting shown in FIG. 7M. Additionally, in some embodiments, if deactivation of focus mode causes virtual object 709a to encounter a depth conflict with a portion of three-dimensional environment 702 (e.g., a representation of table 722a), computer system 101 changes the appearance of the portion of virtual object 709a that has a depth conflict, as previously shown in FIG. 7M , to mitigate the depth conflict, as described above.
[0249] In some embodiments, in response to detecting movement input provided by hand 703m in Figure 7M, computer system 101 moves virtual object 709a within three-dimensional environment 702 in accordance with the movement of the hand, as shown in Figure 7O. As described above with reference to Figure 7M, computer system 101 optionally detects movement input directed toward virtual object 709a while virtual object 709a has a depth conflict with a representation of table 722a in three-dimensional environment 702. Additionally, as described above, when movement input directed toward virtual object 709a is detected (e.g., as shown in the overhead view of Figure 7M), less than a threshold amount (e.g., less than 60, 65, 70, 75, 80, 90, or 95%) of virtual object 709a has a depth conflict with the representation of table 722a. As shown in the overhead view of Figure 7O, movement of virtual object 709b within three dimensional environment 702 to the right causes more than a threshold amount of virtual object 709b to encounter a depth conflict within three dimensional environment 702. For example, as shown in the overhead view of Figure 7O, after virtual object 709b is moved within three dimensional environment 702, more than the threshold amount of virtual object 709b contacts / intersects with the representation of table 722b within three dimensional environment 702.
[0250] 7I, computer system 101 displays virtual environment 728 within three-dimensional environment 702 if virtual object 709a has a depth conflict within three-dimensional environment 702 according to a determination that the second set of criteria is met. In some embodiments, the second set of criteria includes criteria that are met when more than a threshold amount of virtual object 709a encounters a depth conflict within three-dimensional environment 702. As described above, in FIG. 7O, movement of virtual object 709a within three-dimensional environment 702 optionally causes more than a threshold amount (e.g., more than 60, 65, 70, 75, 80, 90, or 95%) of virtual object 709a to contact / intersect with a representation of the table (e.g., 722b in the overhead view) within three-dimensional environment 702. Therefore, because more than a threshold amount of virtual object 709a encounters a depth conflict within three-dimensional environment 702, the second set of criteria is met, causing computer system 101 to display virtual environment 728 within three-dimensional environment 702, as shown in FIG. 7O.
[0251] In some embodiments, the second set of criteria includes a criterion that is met when an object with which virtual object 709a encounters a depth conflict is located more than a threshold distance (e.g., 1, 2, 3, 5, 10, 15, 20, or 30 m) from the viewpoint of user 726. For example, in FIG. 7M , the second set of criteria is met when computer system 101 detects that hand 703m provides a movement input that causes virtual object 709a to move backward (e.g., away from the viewpoint of user 726) within three-dimensional environment 702, encountering a depth conflict with the back wall of the physical environment that is more than a threshold distance from the viewpoint of user 726. Accordingly, computer system 101, optionally, displays virtual environment 728 within three-dimensional environment 702, as shown in FIG. 7O.
[0252] As also described above with reference to FIG. 7I, in some embodiments, the display of virtual environment 728 within three-dimensional environment 702 mitigates a depth conflict between virtual object 709a and a representation of a table (e.g., 722b in the overhead view of FIG. 7O). For example, when computer system 101 displays virtual environment 728 within three-dimensional environment 702, as shown in the overhead view of FIG. 7O, virtual object 709b is displayed within virtual environment 728. Thus, virtual environment 728 occupies the portion of three-dimensional environment 702 surrounding virtual object 709a in the field of view of user 726, and thus, similarly to above, virtual object 709a occludes the representation of the table with which it has a depth conflict. In some embodiments, as shown in FIG. 7O, virtual environment 728 includes a second virtual object 738a (e.g., a beach umbrella corresponding to object 738b in the overhead view).
[0253] 7O, the computer system 101 detects a movement input directed toward a virtual object 709a in the three-dimensional environment 702 while the virtual environment 728 is displayed within the three-dimensional environment 702. For example, as shown in FIG. 7O, the computer system 101 detects that the hand 703o of the user 726 provides an air pinch gesture while the user's attention (e.g., based on the gaze 721) is directed toward the virtual object 709a, followed by the hand 703o moving to the right toward the body of the user 726 while maintaining the pinch hand shape. In some embodiments, in response to detecting the movement input directed toward the virtual object 709a, the computer system 101 moves the virtual object 709a in accordance with the movement of the hand 703o, as shown in FIG. 7P. For example, as shown in FIG. 7P, the computer system 101 moves the virtual object 709a forward and to the right within the three-dimensional environment 702 relative to the user's 726's viewpoint (e.g., toward the user's 726's viewpoint).
[0254] In some embodiments, computer system 101 maintains the display of virtual environment 728 within three-dimensional environment 702 as virtual object 709a is moved within three-dimensional environment 702. For example, as shown in the overhead view of FIG. 7P, as virtual object 709b is moved within three-dimensional environment 702, virtual object 709b remains displayed within virtual environment 728. In some embodiments, as shown in the overhead view of FIG. 7P, computer system 101 maintains the display of virtual environment 728 within three-dimensional environment 702 as virtual object 709b is moved within three-dimensional environment 702 because virtual object 709b still has a depth conflict with the representation in table 722b by more than a threshold amount.
[0255] In some embodiments, movement of virtual object 709a within three-dimensional environment 702 while virtual environment 728 is displayed causes virtual object 709a to encounter a depth conflict with portions of virtual environment 728. For example, as described above, virtual environment 728 includes second virtual object 738a, as shown in Figure 7P. As shown in the overhead view of Figure 7P, when virtual object 709b is moved within three-dimensional environment 702, virtual object 709b contacts / intersects with second virtual object 738b of virtual environment 728 from the perspective of user 726.
[0256] In some embodiments, when the virtual object 709a encounters a depth conflict with a second virtual object 738a in the virtual environment 728, the computer system 101 alters the appearance of the portion of the virtual object 709a that has the depth conflict in the three-dimensional environment 702. For example, as shown in FIG. 7P , the computer system 101 changes the appearance of a first portion 737 of the virtual object 709a that has a depth conflict with the second virtual object 738a in the three-dimensional environment 702. As described herein above, the computer system 101 optionally alters the opacity, brightness, tinting, and / or saturation values of the first portion 737 of the virtual object 709a to occlude the portion of the second virtual object 738a with which the virtual object 709a has the depth conflict, thereby mitigating the depth conflict in the three-dimensional environment 702, and in particular the virtual environment 728. Additionally, in some embodiments, computer system 101 refrains from altering the appearance of second portion 739 of virtual object 709a that does not have a depth conflict with any portion of virtual environment 728. For example, similar to above, computer system 101 maintains the opacity, brightness, tint, and / or saturation values of second portion 739 of virtual object 709a that does not have a depth conflict with any portion of virtual environment 728.
[0257] It should be appreciated that in some embodiments, the computer system 101 utilizes the above-described mitigation techniques (e.g., modifying visual properties of virtual objects and / or displaying a virtual environment within the three-dimensional environment) to mitigate depth conflicts with virtual objects that exist outside / away from the virtual environment. For example, in response to detecting that a first virtual object has encountered a depth conflict with a second virtual object within the three-dimensional environment, independent of the virtual environment being displayed within the three-dimensional environment, the computer system utilizes the above-described techniques to reduce or resolve the depth conflict between the first virtual object and the second virtual object within the three-dimensional environment.
[0258] 8A-8J are flowcharts illustrating an example method 800 for facilitating depth conflict mitigation for one or more virtual objects in a three-dimensional environment by modifying visual properties of the one or more virtual objects, 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 generation components (e.g., display generation 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 downward in a user's hand (e.g., color sensors, infrared sensors, and other depth-sensing cameras) or a camera pointing forward from the 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.
[0259] In some embodiments, method 800 is performed on 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 and / 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 and / or a 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.
[0260] In some embodiments, the computer system, via a display generation component, displays (802a) a first virtual object (e.g., virtual object 709a in FIG. 7B ) at a first location within a three-dimensional environment (e.g., three-dimensional environment 702), wherein a first portion and a second portion of the first virtual object have a first visual property (e.g., a first visual appearance). 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 first virtual object is generated by the computer system and / or is or includes content, such as a window of a web browsing application that displays content (e.g., text, images, or video), a window that displays a photo or video clip, a media player window for controlling playback of a content item on the computer system, a contact card in a contacts application that displays 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 first virtual object is displayed at a first location within the three-dimensional environment within a 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 first virtual object includes multiple portions, including a first portion and a second portion that are different (e.g., non-overlapping) portions of the multiple portions. For example, the first portion of the first virtual object is or includes an upper portion (e.g., upper half) of the first virtual object relative to the user's viewpoint, and the second portion of the first virtual object is or includes a lower portion (e.g., lower half) of the first virtual object relative to the user's viewpoint. As another example, the first portion of the first virtual object is or includes an outer edge of a first side of the first virtual object relative to the user's viewpoint, and the second portion of the first virtual object is or includes an outer edge of a second side, different from the first side, of the first virtual object relative to the user's viewpoint.In some embodiments, the first and second portions of the first virtual object have first visual properties (e.g., appearances) that are determined by content (e.g., pixel representations of the content) included in the first virtual object. In some embodiments, the first visual properties are determined by lighting effects, darkening effects, transparency effects, blurring effects, brightening effects, and / or saturation effects, each of which has a default value based on the content of the first virtual object. For example, while a computer system displays the first and second portions of the first virtual object with the first visual properties, the first visual properties are determined automatically (e.g., by default) based on and / or defined by the content of the first virtual object. In some embodiments, the characteristics of the first visual properties do not include and / or are distinct from the size of the first virtual object, the lighting of the first virtual object, shadows associated with the first virtual object (e.g., cast on the first virtual object by other objects), or other visual properties that change automatically and / or otherwise based on changes in the relative placement of the first virtual object in the three-dimensional environment with respect to the user's viewpoint.
[0261] In some embodiments, while displaying a first virtual object within the three-dimensional environment, the computer system detects (802b) via one or more input devices a first input corresponding to movement of the first virtual object from a first location to a second location different from the first location within the three-dimensional environment, such as a movement input directed toward virtual object 709a provided by hand 703b as shown in Figure 7B. For example, the computer system detects an air pinch gesture performed by the hand of a user of the computer system, such as the thumb and index finger of the user's hand starting more than a threshold distance (e.g., 0.1, 0.2, 0.5, 1, 2, or 5 cm) apart, coming together, and touching at the tips, as detected by one or more input devices (e.g., hand tracking devices) in communication with the computer system while the user's attention (e.g., based on gaze) is directed toward the first virtual object, such as gaze 721 in Figure 7B. In some embodiments, the computer system detects an air pinch gesture directed at a selection element (e.g., a grabber or handle element) associated with a selectable first virtual object to initiate movement of the first virtual object within the three-dimensional environment. In some embodiments, after detecting the air pinch gesture, the computer system detects a movement of a predetermined portion of the user. For example, the computer system detects a movement of the user's hand in space, such as a movement while the hand is holding a pinch hand shape (e.g., the tips of the thumb and index finger remain touching), such as an air drag gesture, such as movement of hand 703b as shown in FIG. 7B. In some embodiments, the movement of the user's hand is in a discrete direction in space (e.g., vertically, horizontally, or diagonally) toward a second location within the three-dimensional environment. In some embodiments, the computer system detects a movement of the user's head, which moves the user's viewpoint within the three-dimensional environment. In some embodiments, the computer system detects a first input via a hardware input device (e.g., a controller operable with six degrees of freedom of movement, or a touchpad or mouse) in communication with the computer system.For example, the computer system detects a selection input (e.g., a tap, touch, or click) via the input device provided by one or more fingers of the user's hand. In some embodiments, after detecting the selection input, the computer system detects movement via the hardware input device, such as movement of a controller in space, movement of a mouse across a surface (e.g., a tabletop), or movement of the fingers of the user's hand across a touchpad.
[0262] In some embodiments, in response to detecting the first input, the computer system moves (802c) the first virtual object within the three-dimensional environment from a first location to a second location in accordance with the first input, such as moving virtual object 709a by moving hand 703b, as shown in Figure 7C. For example, the computer system moves the first virtual object within the three-dimensional environment from the first location to the second location in accordance with the movement of the user's hand and / or hardware input device.
[0263] In some embodiments, following a determination 802d that a first portion of a first virtual object (e.g., first portion 711 of virtual object 709a in FIG. 7C ) occupies the same portion of the three-dimensional environment as a first portion of a second object (e.g., table 722a in FIG. 7C ) in the three-dimensional environment (e.g., the first portion of the first virtual object at least partially contacts or intersects with the first portion of the second object at the second location and / or prior to displaying the first virtual object at the second location), and the second portion of the first virtual object (e.g., second portion 713 of virtual object 709a in FIG. 7C ) does not occupy the same portion of the three-dimensional environment as a distinct object in the three-dimensional environment, the computer system displays 802e the first portion of the first virtual object having second visual properties (e.g., a second visual appearance) that are different from the first visual properties, such as displaying first portion 711 of virtual object 709a with second visual properties as shown in FIG. 7C . For example, the second object is a real-world object such as a table, chair, desk, lamp, sofa, bookshelf, or shelf in the physical environment surrounding the display generating components and / or computer system. In some embodiments, the physical environment is visible through a transparent portion of the display generating components (e.g., a true or actual pass-through). In some embodiments, a representation of the physical environment including a representation of the second object is displayed in the three-dimensional environment via the display generating components (e.g., a virtual or video pass-through). In some embodiments, the second object is located at a distinct location in the physical environment that at least partially corresponds to the second location in the three-dimensional environment. In some embodiments, when a first portion of the first virtual object at least partially contacts or intersects with the first portion of the second object, the first portion of the first virtual object creates a depth conflict with the first portion of the second object.7C , a first portion of a first virtual object occupies the same portion of the three-dimensional environment as a first portion of a second object, but a second portion of the first virtual object (e.g., second portion 713 of virtual object 709a) does not occupy the same portion of the three-dimensional environment as another object in the three-dimensional environment. For example, the second portion of the first virtual object does not at least partially contact or intersect with a portion of another virtual object (e.g., generated and / or displayed by a computer system) or another physical object (e.g., located in the physical environment of a display generation component in communication with the computer system) at a second location in the three-dimensional environment.
[0264] In some embodiments, in accordance with a determination that the first portion of the first virtual object at least partially contacts or intersects with the first portion of the second object at a second location in the three-dimensional environment, the computer system updates the display of the first portion of the first virtual object to have second visual properties that differ from the first visual properties. In some embodiments, as described below, the computer system changes the values of one or more of a lighting effect, a darkening effect, a transparency effect, a blur effect, a brightening effect, and / or a saturation effect of the first portion of the first virtual object. For example, the computer system changes the appearance of the first portion of the first virtual object so that the first portion of the first virtual object is visible to the user's viewpoint (e.g., not occluded by the first portion of the second object), as similarly shown in FIG. 7C . In some embodiments, the computer system visually de-highlights the first portion of the first virtual object relative to the second portion of the first virtual object (e.g., a non-conflicting portion) and / or relative to other portions of the three-dimensional environment surrounding the first virtual object. In some embodiments, the computer system, in response to the first input, displays the first portion of the first virtual object with an animation effect that makes the first portion of the first virtual object visible to the user's viewpoint when the first portion of the virtual object contacts or intersects with the first portion of the second object. For example, as described below, the animation effect includes a feathering effect that obscures (e.g., occludes or partially occludes) the first portion of the second object by a discrete amount (e.g., with a discrete velocity or immediacy of occlusion and / or a discrete extension away from the first portion of the first virtual object with a depth conflict) when the first portion of the first virtual object contacts or intersects with the first portion of the second object.In some embodiments, the characteristics of the second visual properties do not include and / or are distinct from the size of the first virtual object, the lighting of the first virtual object, a shadow associated with the first virtual object (e.g., cast on the first virtual object by another object), or other visual properties that change automatically and / or otherwise based on changes in the relative placement of the first virtual object in the three-dimensional environment with respect to the user's viewpoint. In some embodiments, the computer system displays the first portion of the first virtual object with the second visual properties while the first portion of the first virtual object remains in contact with the first portion of the second object. For example, if the computer system detects movement of the first virtual object to a third location in the three-dimensional environment that causes the first portion of the first virtual object to no longer occupy the same portion of the three-dimensional environment as the first portion of the second object or a portion of the other object, the computer system re-displays the first portion of the first virtual object with the first visual properties. In some embodiments, when the computer system displays the first portion of the first virtual object with the second visual properties in response to detecting a depth conflict between the first portion of the first virtual object and the first portion of the second object, the computer system does not display other portions of the three-dimensional environment (e.g., objects or portions of the physical environment surrounding the first virtual object) with the second visual properties and / or does not modify the visual properties of other portions of the three-dimensional environment, as also shown in FIG. 7C .
[0265] In some embodiments, the computer system displays (802f) the second portion of the first virtual object with the first visual properties, such as displaying the second portion 713 of the virtual object 709a with the first visual properties as shown in Figure 7C. For example, following a determination that the second portion of the first virtual object does not at least partially contact or intersect with a portion of another object at a second location within the three-dimensional environment, the computer system maintains the display of the second portion of the first virtual object with the first visual appearance, such as maintaining the display of the second portion 713 of the virtual object 709a with the first visual appearance because the second portion 713 does not have a depth conflict with the representation in table 722a, as shown in Figure 7C. In some embodiments, the computer system simultaneously displays the first portion of the first virtual object with the second visual properties and the second portion of the first virtual object with the first visual properties, as also shown in Figure 7C. Altering the appearance of an object in the three-dimensional environment when the object encounters a depth conflict based on the object's movement within the three-dimensional environment provides feedback that the object's display is in conflict with a portion of the three-dimensional environment, which facilitates user input to resolve the depth conflict, thereby improving user-device interaction and / or reducing the salience of the depth conflict within 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.
[0266] In some embodiments, the second object is a physical object (e.g., physical table 722a in FIG. 7A ) in the physical environment of the display generation component (e.g., similar to what is described above with reference to step 802) (804). In some embodiments, when the first virtual object encounters a depth conflict with a physical object in the physical environment of the display generation component, the computer system displays a first portion of the first virtual object that has a depth conflict with the physical object with second visual properties, as described above with reference to step 802. In some embodiments, the amount of the first portion of the first virtual object displayed with the second visual properties is based on the amount of the first portion of the first virtual object that contacts and / or intersects with the physical object in the physical environment. For example, the portion of the first portion of the first virtual object displayed with the second visual properties is larger (e.g., 5, 10, 15, 20, 25, 30, 40, 50, or 60% larger) than the portion of the first portion of the first virtual object that contacts / intersects with the physical object in the physical environment. In some embodiments, the portion of the first portion of the first virtual object displayed with the second visual properties is equal to the portion of the first portion of the first virtual object that is in contact / intersecting with the physical object in the physical environment, as also shown in FIG. 7C . In some embodiments, the portion of the first portion of the first virtual object displayed with the second visual properties is smaller (e.g., 5, 10, 15, 20, 25, 30, 40, 50, or 60% smaller) than the portion of the first portion of the first virtual object that is in contact / intersecting with the physical object in the physical environment. Varying the appearance of an object in the three-dimensional environment when the object encounters a depth conflict with a physical object based on the object's movement within the three-dimensional environment provides feedback that the object's display is in conflict with the physical object, which facilitates user input to resolve the depth conflict, thereby improving user-device interaction and / or reducing the salience of the depth conflict in the three-dimensional environment, which reduces the user's eye strain and thereby avoids potential physical discomfort for the user.
[0267] In some embodiments, after moving the first virtual object from a first location to a second location within the three dimensional environment in accordance with the first input, while the first virtual object is at the second location within the three dimensional environment (806a), in accordance with a determination that a first portion of the first virtual object does not occupy the same portion of the three dimensional environment as a separate object within the three dimensional environment and a second portion of the first virtual object does not occupy the same portion of the three dimensional environment as a separate object within the three dimens...
Claims
1. A computer system in communication with a display generation component and one or more input devices, comprising: displaying, via the display generation component, a first virtual object at a first location within the three-dimensional environment, wherein a first portion and a second portion of the first virtual object have first visual properties; While displaying the first virtual object within the three-dimensional environment, detecting, via the one or more input devices, a first input corresponding to movement of the first virtual object from the first location within the three-dimensional environment to a second location different from the first location; In response to detecting the first input, moving the first virtual object within the three-dimensional environment from the first location to the second location in accordance with the first input; in accordance with a determination that the first portion of the first virtual object occupies a same portion of the three-dimensional environment as a first portion of a second object in the three-dimensional environment and that the second portion of the first virtual object does not occupy a same portion of the three-dimensional environment as a separate object in the three-dimensional environment; displaying the first portion of the first virtual object with second visual properties different from the first visual properties; and displaying the second portion of the first virtual object with the first visual properties.
2. The method of claim 1 , wherein the second object is a physical object in a physical environment of the display generating component.
3. after moving the first virtual object from the first location to the second location within the three-dimensional environment in accordance with the first input, while the first virtual object is at the second location within the three-dimensional environment; in response to a determination that the first portion of the first virtual object does not occupy the same portion of the three-dimensional environment as a distinct object within the three-dimensional environment and that the second portion of the first virtual object does not occupy the same portion of the three-dimensional environment as a distinct object within the three-dimensional environment; The method of claim 1 or 2, further comprising displaying the first portion and the second portion of the first virtual object with the first visual property.
4. The method of claim 1 , wherein the first input comprises an input provided by a predetermined portion of a user of the computer system directed at the first virtual object.
5. The method of claim 1 , wherein the first input comprises a movement of a viewpoint of a user of the computer system.
6. The method of claim 1 , wherein the first virtual object is world-locked within the three-dimensional environment.
7. changing the first portion of the first virtual object from having the first visual property to the second visual property includes changing a visual parameter of the first virtual object in a first direction; The method comprises: detecting an end of the first input via the one or more input devices while displaying the first portion of the first virtual object with the second visual properties such that the first portion of the first virtual object occupies the same portion of the three-dimensional environment as the first portion of the second object in the three-dimensional environment; and in response to detecting the end of the first input, 7. The method of claim 1, further comprising: displaying at least a portion of the first portion of the first virtual object with a third visual property in accordance with a determination that one or more criteria are satisfied; and wherein changing the first portion of the first virtual object from having the second visual property to the third visual property comprises changing the visual parameters of the first virtual object in a second direction opposite to the first direction.
8. The method of claim 7 , wherein the one or more criteria include a criterion that is satisfied when a first threshold amount of time has elapsed since detecting the end of the first input.
9. Displaying the first portion of the first virtual object with the first visual property includes displaying the first portion of the first virtual object with a first amount of opacity; 9. The method of claim 1, wherein displaying the first portion of the first virtual object with the second visual properties comprises displaying the first portion of the first virtual object with a second opacity amount that is different from the first opacity amount.
10. Displaying the first portion of the first virtual object with the first visual properties includes displaying the first portion of the first virtual object with a first amount of luminance; 10. The method of claim 1, wherein displaying the first portion of the first virtual object with the second visual properties comprises displaying the first portion of the first virtual object with a second amount of luminance that is different from the first amount of luminance.
11. Displaying the second portion of the first virtual object with the first visual property includes displaying the second portion of the first virtual object with a first amount of opacity, and the method further comprises: detecting, while displaying the first virtual object at the second location within the three-dimensional environment, a second input via the one or more input devices corresponding to a movement of the first virtual object relative to a viewpoint of a user of the computer system; 11. The method of claim 1, further comprising: reducing an opacity of the second portion of the first virtual object relative to an opacity of the first portion of the first virtual object while detecting the second input and while moving the first virtual object relative to the viewpoint of the user in accordance with the second input.
12. detecting, via the one or more input devices, a second input corresponding to a movement of the first virtual object relative to a viewpoint of a user of the computer system while displaying the first virtual object at the second location within the three-dimensional environment and while the first portion of the first virtual object occupies a same portion of the three-dimensional environment as the first portion of the second object within the three-dimensional environment; While detecting the second input and while moving the first virtual object relative to the viewpoint of the user in accordance with the second input, in response to determining that the movement of the first virtual object relative to the viewpoint of the user corresponds to movement of the first virtual object from the second location to a third location within the three-dimensional environment; displaying the third portion of the first virtual object with a third visual property different from the first visual property; in response to a determination that the movement of the first virtual object relative to the viewpoint of the user corresponds to a movement of the viewpoint of the user of the computer system; 12. The method of claim 1, further comprising: displaying the third portion of the first virtual object with a fourth visual property that is different from the first visual property and the third visual property.
13. Displaying the third portion of the first virtual object with the third visual property includes displaying a boundary between the third portion of the first virtual object and a fourth portion of the first virtual object with a first visual transition, wherein the fourth portion of the first virtual object does not occupy a same portion of the three-dimensional environment as a separate object within the three-dimensional environment; 13. The method of claim 12, wherein displaying the third portion of the first virtual object with the fourth visual property comprises displaying the boundary between the third portion of the first virtual object and the fourth portion of the first virtual object "with a second visual transition different from the first visual transition."
14. Displaying the third portion of the first virtual object with the third visual properties includes displaying the third portion of the first virtual object with a first amount of visual effect; 14. The method of claim 12 or 13, wherein displaying the third portion of the first virtual object with the fourth visual property comprises displaying the third portion of the first virtual object with a second amount of the visual effect that is different from the first amount.
15. the three-dimensional environment includes a third object, and the method further comprises: in accordance with a determination that the first portion of the first virtual object occupies a same portion of the three-dimensional environment as the first portion of the second object in the three-dimensional environment and that a third portion of the first virtual object occupies a same portion of the three-dimensional environment as the third object in the three-dimensional environment; 15. The method of claim 1, further comprising displaying the third portion of the first virtual object in the three-dimensional environment with a third visual property that is different from the first visual property.
16. detecting, via the one or more input devices, a second input corresponding to a movement of the first virtual object from the second location in the three-dimensional environment to a third location different from the second location, while displaying the first portion of the first virtual object with the second visual properties such that the first portion of the first virtual object occupies the same portion of the three-dimensional environment as the first portion of the second object and displaying the third portion of the first virtual object with the third visual properties such that the third portion of the first virtual object occupies the same portion of the three-dimensional environment as the third object; In response to detecting the second input, moving the first virtual object from the second location to the third location within the three-dimensional environment in accordance with the second input; updating the display of the visual properties of the first portion of the first virtual object in the three-dimensional environment according to a determination that the movement of the first virtual object to the third location in the three-dimensional environment changes the co-occupancy between the first virtual object and the second object; 16. The method of claim 15, further comprising: updating the display of the visual properties of the third portion of the first virtual object in the three-dimensional environment according to a determination that the movement of the first virtual object to the third location in the three-dimensional environment changes the co-occupancy between the first virtual object and the third object.
17. detecting a second input, via the one or more input devices, corresponding to a request to display a virtual object within the three-dimensional environment while displaying the first portion of the first virtual object with the second visual properties such that the first portion of the first virtual object occupies the same portion of the three-dimensional environment as the first portion of the second object within the three-dimensional environment; In response to detecting the second input, and displaying the virtual environment within the three-dimensional environment via the display generation component, wherein the displaying comprises: in response to determining that the second location of the first virtual object within the three-dimensional environment is within the virtual environment; displaying the first virtual object in the virtual environment; and displaying the first portion of the first virtual object with the first visual property.
18. While displaying the first virtual object at the second location within the three-dimensional environment, the three-dimensional environment is displayed with a first visual emphasis on the first virtual object, and the method further comprises: detecting, while displaying the first portion of the first virtual object with the second visual properties such that the first portion of the first virtual object occupies the same portion of the three-dimensional environment as the first portion of the second object in the three-dimensional environment, a discrete event corresponding to a request, via the one or more input devices, for the first virtual object to display the three-dimensional environment with a second visual emphasis different from the first visual emphasis; In response to detecting the individual event, displaying the three-dimensional environment with the second visual emphasis on the first virtual object via the display generation component; The method of claim 1 , further comprising: displaying the first portion of the first virtual object with the first visual property.
19. The method of claim 18 , wherein the discrete event comprises an input to select a discrete option.
20. 20. The method of claim 18 or 19, wherein the discrete event does not include an input to select a discrete option.
21. detecting, while displaying the three-dimensional environment with the second visual emphasis for the first virtual object after detecting the discrete event, a second discrete event via the one or more input devices that does not include an input selecting a discrete option; and in response to detecting the second discrete event, displaying the three-dimensional environment with the first visual emphasis on the first virtual object; 21. The method of claim 18, further comprising: displaying the first portion of the first virtual object with the second visual property.
22. 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, via the display generation component, a first virtual object at a first location within the three-dimensional environment, wherein a first portion and a second portion of the first virtual object have first visual properties; While displaying the first virtual object within the three-dimensional environment, detecting a first input via the one or more input devices corresponding to movement of the first virtual object from the first location within the three-dimensional environment to a second location different from the first location; In response to detecting the first input, moving the first virtual object within the three-dimensional environment from the first location to the second location in accordance with the first input; in accordance with a determination that the first portion of the first virtual object occupies a same portion of the three-dimensional environment as a first portion of a second object in the three-dimensional environment and that the second portion of the first virtual object does not occupy a same portion of the three-dimensional environment as a separate object in the three-dimensional environment; displaying the first portion of the first virtual object with second visual properties different from the first visual properties; displaying the second portion of the first virtual object with the first visual properties.
23. 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, via the display generation component, a first virtual object at a first location within the three-dimensional environment, wherein a first portion and a second portion of the first virtual object have first visual properties; While displaying the first virtual object within the three-dimensional environment, detecting, via the one or more input devices, a first input corresponding to movement of the first virtual object from the first location within the three-dimensional environment to a second location different from the first location; In response to detecting the first input, moving the first virtual object within the three-dimensional environment from the first location to the second location in accordance with the first input; in accordance with a determination that the first portion of the first virtual object occupies a same portion of the three-dimensional environment as a first portion of a second object in the three-dimensional environment and that the second portion of the first virtual object does not occupy a same portion of the three-dimensional environment as a separate object in the three-dimensional environment; displaying the first portion of the first virtual object with second visual properties different from the first visual properties; and displaying the second portion of the first virtual object with the first visual property.
24. 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, via the display generation component, a first virtual object at a first location within the three-dimensional environment, wherein a first portion and a second portion of the first virtual object have first visual properties; means for detecting, while displaying the first virtual object within the three-dimensional environment, a first input via the one or more input devices corresponding to movement of the first virtual object from the first location within the three-dimensional environment to a second location different from the first location; means for, in response to detecting the first input, moving the first virtual object within the three-dimensional environment from the first location to the second location in accordance with the first input; in accordance with a determination that the first portion of the first virtual object occupies a same portion of the three-dimensional environment as a first portion of a second object in the three-dimensional environment and that the second portion of the first virtual object does not occupy a same portion of the three-dimensional environment as a separate object in the three-dimensional environment; displaying the first portion of the first virtual object with second visual properties different from the first visual properties; means for displaying the second portion of the first virtual object with the first visual properties.
25. 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 21.
26. 22. 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 21.
27. 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 21.
28. A computer system in communication with a display generation component and one or more input devices, comprising: displaying, via the display generating component, a first virtual object at a first location within the three dimensional environment, the three dimensional environment including at least a portion of a physical environment of the display generating component, the first location being a location within the three dimensional environment corresponding to the at least the portion of the physical environment; While displaying the first virtual object at the first location within the three-dimensional environment, detecting a first input via the one or more input devices corresponding to movement of the first virtual object away from the first location within the three-dimensional environment; In response to detecting the first input, and moving the first virtual object from the first location to a second location different from the first location within the three-dimensional environment in accordance with the first input, wherein displaying the first virtual object at the second location within the three-dimensional environment includes: in response to a determination that the first virtual object has a degree of depth conflict that is greater than a respective degree of depth conflict with a respective portion of the physical environment; via the display generation component, within the three-dimensional environment, a virtual environment, the virtual environment obscures at least a portion of the distinct portion of the physical environment with which the first virtual object has a depth conflict; displaying a virtual environment, wherein the second location is at least partially within the virtual environment; in response to a determination that the first virtual object has a degree of depth conflict with the physical environment that is less than the individual degree of depth conflict with the physical environment; and ceasing to display the virtual environment within the three-dimensional environment via the display generation component in response to detecting the first input.
29. 30. The method of claim 28, wherein the distinct portion of the physical environment includes a second object and the virtual environment does not include the second object.
30. while detecting the first input and before displaying the virtual environment within the three-dimensional environment; 30. The method of claim 28 or 29, further comprising displaying, via the display generation component, a visual indication of the virtual environment within the three-dimensional environment in accordance with a determination that one or more first criteria are met, the criteria being met when the first virtual object has at least a second respective degree of depth conflict with the respective portion of the physical environment that is less than the respective degree of depth conflict with the respective portion of the physical environment.
31. 31. The method of claim 30, wherein the first input comprises a first selection input directed toward the first virtual object, and the one or more first criteria comprise criteria that are satisfied while the selection input is maintained.
32. before displaying the virtual environment within the three-dimensional environment and while moving the first virtual object within the three-dimensional environment from the first location to the second location in accordance with the first input; in accordance with the determination that the one or more first criteria are satisfied, including a criterion that is satisfied when the movement of the first virtual object increases a degree of depth conflict with the respective portion of the physical environment; 32. The method of claim 30 or 31, further comprising maintaining, via the display generation component, a display of the visual indication of the virtual environment within the three-dimensional environment.
33. Displaying the visual indication of the virtual environment includes: displaying the visual indication of the virtual environment at a first magnitude in accordance with a determination that the degree of depth conflict is a first degree of depth conflict; and displaying the visual indication of the virtual environment at a second magnitude greater than the first magnitude in accordance with a determination that the degree of depth conflict is a second magnitude of depth conflict greater than the first magnitude.
34. prior to detecting the first input, the three-dimensional environment is displayed with a first lighting effect having a first value; 34. The method of any one of claims 30 to 33, wherein displaying the visual indication of the virtual environment comprises displaying the three-dimensional environment with the first lighting effect having a second value different from the first value.
35. 35. The method of any one of claims 30 to 34, wherein displaying the visual indication of the virtual environment comprises displaying a preview corresponding to the virtual environment within the three-dimensional environment.
36. displaying the virtual environment in accordance with the determination that the first virtual object has a degree of depth conflict that is greater than the respective degree of depth conflict with the respective portion of the physical environment includes displaying the virtual environment with a first opacity characteristic having a first value; 36. The method of claim 35, wherein displaying the visual indication of the virtual environment includes displaying the preview corresponding to the virtual environment with the first opacity characteristic having a second value less than the first value.
37. displaying the virtual environment in accordance with the determination that the first virtual object has a degree of depth conflict that is greater than the respective degree of depth conflict with the respective portion of the physical environment includes displaying the virtual environment as replacing the first portion of the three-dimensional environment; 37. The method of claim 35 or 36, wherein displaying the preview corresponding to the virtual environment comprises displaying a portion of the virtual environment as replacing a second portion of the three-dimensional environment that is smaller than the first portion.
38. the first input includes a first selection input directed toward the first virtual object during the movement of the first virtual object, and the method further comprises: detecting termination of the first selection input via the one or more input devices while displaying the visual indication of the virtual environment after moving the first virtual object from the first location to the second location and before displaying the virtual environment within the three-dimensional environment; In response to detecting the end of the first selection input, 38. The method of any one of claims 30 to 37, further comprising: displaying the virtual environment within the three-dimensional environment.
39. The virtual environment is a system environment of the computer system, and displaying the virtual environment includes: displaying a first system environment within the three-dimensional environment in accordance with a determination that the first system environment was previously selected for display within the three-dimensional environment by a user of the computer system; and displaying a second system environment within the three-dimensional environment in accordance with a determination that a second system environment different from the first system environment has been previously selected for display within the three-dimensional environment by the user of the computer system.
40. detecting, while displaying the virtual environment within the three-dimensional environment, via the one or more input devices, a second input corresponding to movement of the first virtual object away from the second location within the three-dimensional environment because the first virtual object has a degree of depth conflict that is greater than the respective degree of depth conflict with the respective portion of the physical environment; In response to detecting the second input, moving the first virtual object within the three-dimensional environment from the second location to a third location different from the second location in accordance with the second input; 40. The method of claim 28, further comprising: ceasing display of the virtual environment within the three-dimensional environment in accordance with a determination that the first virtual object at the third location has a degree of depth conflict with the respective portion of the physical environment that is less than a second respective degree of depth conflict with the respective portion of the physical environment.
41. In response to detecting the second input, 41. The method of claim 40, further comprising: maintaining a representation of the virtual environment within the three-dimensional environment in accordance with a determination that the first virtual object has a degree of depth conflict that is greater than the second respective degree of depth conflict with the respective portion of the physical environment, and wherein the third location is at least partially within the virtual environment.
42. The virtual environment is displayed at a first immersion level in response to detecting the first input, and the method further comprises: detecting, while displaying the virtual environment at the first immersion level within the three-dimensional environment because the first virtual object has a degree of depth conflict that is greater than the respective degree of depth conflict with the respective portion of the physical environment, a second input via the one or more input devices corresponding to a request to change the immersion level of the virtual environment; In response to detecting the second input, 42. The method of any one of claims 28 to 41, further comprising: displaying, via the display generation component, the virtual environment within the three-dimensional environment in accordance with the second input at a second immersion level different from the first immersion level.
43. 43. The method of claim 42, wherein the second input comprises manipulation of one or more system controls of the computer system.
44. Prior to detecting the first input, a first portion and a second portion of the first virtual object are displayed in the three-dimensional environment with first visual properties, and the method further comprises: while displaying the virtual environment within the three-dimensional environment; in accordance with a determination that the first portion of the first virtual object has a degree of depth conflict that is greater than a second individual degree of depth conflict with a separate portion of the virtual environment and that the second portion of the first virtual object does not have a degree of depth conflict that is greater than the second individual degree of depth conflict with a separate portion of the virtual environment; displaying the first portion of the first virtual object with second visual properties different from the first visual properties; 44. The method of any one of claims 28 to 43, further comprising: displaying the second portion of the first virtual object with the first visual properties.
45. Prior to detecting the first input, a first portion and a second portion of the first virtual object are displayed in the three-dimensional environment with first visual properties, and the virtual environment is displayed in the three-dimensional environment at a first immersion level, and the method further comprises: detecting, while displaying the virtual environment within the three-dimensional environment, a second input via the one or more input devices corresponding to a request to change an immersion level of the virtual environment; In response to detecting the second input, displaying the virtual environment at a second immersion level within the three-dimensional environment via the display generation component, the second immersion level being different from the first immersion level; in accordance with a determination that the first portion of the first virtual object has a degree of depth conflict that is greater than a second individual degree of depth conflict with a second individual portion of the physical environment and that the second portion of the first virtual object does not have a degree of depth conflict that is greater than the second individual degree of depth conflict with a portion of the physical environment; displaying the first portion of the first virtual object with second visual properties different from the first visual properties; 45. The method of any one of claims 28 to 44, further comprising: displaying the second portion of the first virtual object with the first visual properties.
46. receiving, via the one or more input devices, a discrete input corresponding to a request to display a second virtual object at a discrete location within the three-dimensional environment while the virtual object is not displayed within the three-dimensional environment; In response to receiving the individual input, in accordance with a determination that displaying the second virtual object at the discrete location causes the second virtual object to have a degree of depth conflict that is greater than a second discrete degree of depth conflict with a second discrete portion of the physical environment; displaying the virtual environment within the three-dimensional environment, the distinct location at least partially within the virtual environment; 46. The method of any one of claims 28 to 45, further comprising: displaying the second virtual object at the respective location within the three-dimensional environment.
47. In response to receiving the individual input, in accordance with a determination that displaying the second virtual object at the discrete location does not cause the second virtual object to have a degree of depth conflict that is greater than the second discrete degree of depth conflict with the second discrete portion of the physical environment; displaying the second virtual object at the second distinct location within the three-dimensional environment; and 47. The method of claim 46, further comprising ceasing to display the virtual environment within the three-dimensional environment.
48. While displaying the first virtual object at the second location within the three-dimensional environment, detecting a second input via the one or more input devices corresponding to movement of the first virtual object away from the second location within the three-dimensional environment; 48. The method of claim 28, further comprising: moving the first virtual object away from the second location in the three-dimensional environment in response to detecting the second input, the second input defining movement of the first virtual object beyond a threshold distance beyond a location at which a depth conflict between the first virtual object and a separate object begins.
49. The moving in accordance with determining that the individual object is of a first type, displaying, via the display generation component, the first virtual object at a third location within the three-dimensional environment in accordance with the second input, the third location being different from the second location, the third location corresponding to the movement of the first virtual object beyond the threshold distance beyond the location at which the depth conflict between the first virtual object and the individual object begins; pursuant to a determination that the individual object is of a second type different from the first type and the second input includes a movement of a first magnitude, displaying the first virtual object at a fourth location different from the third location within the three-dimensional environment based on the movement, the fourth location being within the threshold distance beyond the location where the depth conflict between the first virtual object and the individual object of the second type begins; pursuant to a determination that the distinct object is of the second type and the second input includes a movement of a second magnitude greater than the first magnitude, displaying the first virtual object at the fourth location within the three-dimensional environment based on the movement.
50. 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, via the display generating component, a first virtual object at a first location within the three-dimensional environment, the three-dimensional environment including at least a portion of a physical environment of the display generating component, the first location being a location within the three-dimensional environment that corresponds to the at least the portion of the physical environment; While displaying the first virtual object at the first location within the three-dimensional environment, detecting a first input via the one or more input devices corresponding to movement of the first virtual object away from the first location within the three-dimensional environment; In response to detecting the first input, and instructions for moving the first virtual object from the first location to a second location different from the first location within the three-dimensional environment in accordance with the first input, wherein displaying the first virtual object at the second location within the three-dimensional environment includes: in response to a determination that the first virtual object has a degree of depth conflict that is greater than a respective degree of depth conflict with a respective portion of the physical environment; via the display generation component, within the three-dimensional environment, a virtual environment, the virtual environment obscures at least a portion of the distinct portion of the physical environment with which the first virtual object has a depth conflict; displaying a virtual environment, wherein the second location is at least partially within the virtual environment; in response to a determination that the first virtual object has a degree of depth conflict with the physical environment that is less than the individual degree of depth conflict with the physical environment; and ceasing to display the virtual environment within the three-dimensional environment via the display generation component in response to detecting the first input.
51. 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, via the display generating component, a first virtual object at a first location within the three dimensional environment, the three dimensional environment including at least a portion of a physical environment of the display generating component, the first location being a location within the three dimensional environment corresponding to the at least the portion of the physical environment; While displaying the first virtual object at the first location within the three-dimensional environment, detecting a first input via the one or more input devices corresponding to movement of the first virtual object away from the first location within the three-dimensional environment; In response to detecting the first input, and moving the first virtual object from the first location to a second location different from the first location within the three-dimensional environment in accordance with the first input, wherein displaying the first virtual object at the second location within the three-dimensional environment comprises: in response to a determination that the first virtual object has a degree of depth conflict that is greater than a respective degree of depth conflict with a respective portion of the physical environment; via the display generation component, within the three-dimensional environment, a virtual environment, the virtual environment obscures at least a portion of the distinct portion of the physical environment with which the first virtual object has a depth conflict; displaying a virtual environment, wherein the second location is at least partially within the virtual environment; in response to a determination that the first virtual object has a degree of depth conflict with the physical environment that is less than the individual degree of depth conflict with the physical environment; and ceasing to display the virtual environment within the three-dimensional environment via the display generation component in response to detecting the first input.
52. 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, via the display generating component, a first virtual object at a first location within the three dimensional environment, the three dimensional environment including at least a portion of a physical environment of the display generating component, the first location being a location within the three dimensional environment corresponding to the at least the portion of the physical environment; means for detecting, while displaying the first virtual object at the first location within the three-dimensional environment, a first input via the one or more input devices corresponding to movement of the first virtual object away from the first location within the three-dimensional environment; In response to detecting the first input, and means for moving the first virtual object from the first location to a second location different from the first location within the three-dimensional environment in accordance with the first input, wherein displaying the first virtual object at the second location within the three-dimensional environment includes: in response to a determination that the first virtual object has a degree of depth conflict that is greater than a respective degree of depth conflict with a respective portion of the physical environment; via the display generation component, within the three-dimensional environment, a virtual environment, the virtual environment obscures at least a portion of the distinct portion of the physical environment with which the first virtual object has a depth conflict; displaying a virtual environment, wherein the second location is at least partially within the virtual environment; in response to a determination that the first virtual object has a degree of depth conflict with the physical environment that is less than the individual degree of depth conflict with the physical environment; and ceasing to display the virtual environment within the three-dimensional environment via the display generation component in response to detecting the first input.
53. 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 28 to 49.
54. 50. 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 28 to 49.
55. 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 28 to 49.
56. A computer system in communication with a display generation component and one or more input devices, comprising: displaying, via the display generation component, a first virtual object at a first location within the three-dimensional environment; While displaying the first virtual object at the first location within the three-dimensional environment, detecting a first input via the one or more input devices corresponding to movement of the first virtual object away from the first location within the three-dimensional environment; In response to detecting the first input, moving the first virtual object within the three-dimensional environment from the first location to a second location different from the first location in accordance with the first input; according to a determination that the first virtual object has a first degree of depth conflict with a distinct portion of the three-dimensional environment, displaying the first virtual object with a first visual effect that mitigates the depth conflict between the first virtual object and the distinct portion of the three-dimensional environment; and displaying the first virtual object with a second visual effect that mitigates the depth conflict between the first virtual object and the respective portion of the three-dimensional environment in accordance with a determination that the first virtual object has a second degree of depth conflict with the respective portion of the three-dimensional environment; the second degree of depth conflict is different from the first degree of depth conflict; The method, wherein the second visual effect is a different type of visual effect than the first visual effect.
57. the first visual effect that mitigates the depth conflict between the first virtual object and the respective portion of the three-dimensional environment is applied more strongly to a first portion of the first virtual object that has the depth conflict with the respective portion of the three-dimensional environment than to a second portion of the first virtual object that does not have the depth conflict with the respective portion of the three-dimensional environment; 57. The method of claim 56, wherein the second visual effect that mitigates the depth conflict between the first virtual object and the distinct portion of the three-dimensional environment is applied equally to the first portion of the first virtual object that has the depth conflict with the distinct portion of the three-dimensional environment and the second portion of the first virtual object that does not have the depth conflict with the distinct portion of the three-dimensional environment.
58. displaying the first virtual object with the second visual effect that mitigates the depth conflict between the first virtual object and the respective portion of the three-dimensional environment includes simultaneously displaying, via the display generation component, one or more virtual elements with the first virtual object in the three-dimensional environment, the one or more virtual elements not being displayed prior to displaying the first virtual object with the second visual effect; 58. The method of claim 56 or 57, wherein displaying the first virtual object with the first visual effect that mitigates the depth conflict between the first virtual environment and the respective portion of the three-dimensional environment does not include simultaneously displaying the one or more virtual elements with the first virtual object in the three-dimensional environment.
59. 59. The method of claim 58, wherein the three-dimensional environment is visible from a first perspective of a user of the computer system, and wherein the first virtual object at least partially overlays the one or more virtual elements in the three-dimensional environment from the first perspective of the user when the one or more virtual elements are displayed simultaneously with the first virtual object.
60. after moving the first virtual object from the first location to the second location within the three-dimensional environment in accordance with the first input, detecting, via the one or more input devices, a second input corresponding to movement of the first virtual object away from the second location within the three-dimensional environment; While detecting the second input, moving the first virtual object in the three-dimensional environment from the second location to a third location different from the third location in accordance with the second input; adjusting the first visual effect in a first manner in accordance with the movement of the first virtual object away from the second location within the three-dimensional environment in accordance with a determination that the first virtual object is displayed with the first visual effect when the second input is detected; 60. The method of any one of claims 56 to 59, further comprising: in accordance with a determination that the first virtual object is displayed with the second visual effect when the second input is detected, adjusting the second visual effect in a second manner different from the first manner in accordance with the movement of the first virtual object away from the second location in the three-dimensional environment.
61. after moving the first virtual object from the first location to the second location within the three-dimensional environment in accordance with the first input, detecting a second input via the one or more input devices, the second input comprising a movement of a viewpoint of a user of the computer system relative to the three-dimensional environment; While detecting the second input, adjusting the first visual effect in a first manner according to the movement of the viewpoint of the user relative to the three-dimensional environment in accordance with a determination that the first virtual object has at least the first degree of depth-conflict with the respective portion of the three-dimensional environment; 61. The method of any one of claims 56 to 60, further comprising: adjusting the second visual effect in a second manner different from the first manner in accordance with the movement of the viewpoint of the user relative to the three-dimensional environment in accordance with a determination that the first virtual object is displayed with the second visual effect when the second input is detected.
62. 62. The method of any one of claims 56 to 61, wherein the first virtual object is a virtual window.
63. the determining that the first virtual object has the first degree of depth conflict with the respective portion of the three-dimensional environment is in accordance with a determining that less than a threshold amount of the first virtual object has the depth conflict with the respective portion of the three-dimensional environment; 63. The method of any one of claims 56 to 62, wherein the determination that the first virtual object has the second degree of depth conflict follows a determination that at least the threshold amount of the first virtual object has the depth conflict with the respective portion of the three-dimensional environment.
64. the determination that the first virtual object has the first degree of depth conflict with the respective portion of the three-dimensional environment is in accordance with a determination that the first virtual object has moved less than a threshold distance beyond a location where the depth conflict between the first virtual object and the respective portion of the three-dimensional environment began; 64. The method of any one of claims 56 to 63, wherein the determination that the first virtual object has the second degree of depth conflict with the respective portion of the three-dimensional environment follows a determination that the first virtual object has moved beyond the threshold distance beyond the location where the depth conflict between the first virtual object and the respective portion of the three-dimensional environment began.
65. displaying the first virtual object with the first visual effect that mitigates the depth conflict between the first virtual object and the respective portion of the three-dimensional environment further follows from determining that the second location of the first virtual object is at a first distance from a viewpoint of a user of the computer system; 65. The method of any one of claims 56 to 64, wherein displaying the first virtual object with the second visual effect that mitigates the depth conflict between the first virtual object and the respective portion of the three-dimensional environment is further subject to determining that the second location of the first virtual object is at a second distance from the viewpoint of the user that is different from the first distance.
66. displaying the first virtual object with the first visual effect that mitigates the depth conflict between the first virtual object and the respective portion of the three-dimensional environment is pursuant to a determination that the respective portion of the three-dimensional environment includes a first type of physical object; 66. The method of any one of claims 56 to 65, wherein displaying the first virtual object with the second visual effect that mitigates the depth conflict between the first virtual object and the respective portion of the three-dimensional environment follows a determination that the respective portion of the three-dimensional environment includes a physical object of a second type that is different from the first type.
67. 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, via the display generation component, a first virtual object at a first location within the three-dimensional environment; While displaying the first virtual object at the first location within the three-dimensional environment, detecting a first input via the one or more input devices corresponding to movement of the first virtual object away from the first location within the three-dimensional environment; in response to detecting the first input, moving the first virtual object within the three-dimensional environment from the first location to a second location different from the first location in accordance with the first input; displaying the first virtual object with a first visual effect that mitigates the depth conflict between the first virtual object and the respective portion of the three-dimensional environment according to a determination that the first virtual object has a first degree of depth conflict with the respective portion of the three-dimensional environment; according to a determination that the first virtual object has a second degree of depth conflict with the respective portion of the three-dimensional environment, displaying the first virtual object with a second visual effect that mitigates the depth conflict between the first virtual object and the respective portion of the three-dimensional environment; the second degree of depth conflict is different from the first degree of depth conflict; The computer system, wherein the second visual effect is a different type of visual effect than the first visual effect.
68. 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, via the display generation component, a first virtual object at a first location within the three-dimensional environment; While displaying the first virtual object at the first location within the three-dimensional environment, detecting a first input via the one or more input devices corresponding to movement of the first virtual object away from the first location within the three-dimensional environment; In response to detecting the first input, moving the first virtual object within the three-dimensional environment from the first location to a second location different from the first location in accordance with the first input; according to a determination that the first virtual object has a first degree of depth conflict with a distinct portion of the three-dimensional environment, displaying the first virtual object with a first visual effect that mitigates the depth conflict between the first virtual object and the distinct portion of the three-dimensional environment; and displaying the first virtual object with a second visual effect that mitigates the depth conflict between the first virtual object and the respective portion of the three-dimensional environment in accordance with a determination that the first virtual object has a second degree of depth conflict with the respective portion of the three-dimensional environment; the second degree of depth conflict is different from the first degree of depth conflict; The second visual effect is a different type of visual effect than the first visual effect.
69. 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, via the display generation component, a first virtual object at a first location within the three-dimensional environment; means for detecting, while displaying the first virtual object at the first location within the three-dimensional environment, a first input via the one or more input devices corresponding to movement of the first virtual object away from the first location within the three-dimensional environment; means for, in response to detecting the first input, moving the first virtual object within the three-dimensional environment from the first location to a second location different from the first location in accordance with the first input; means for displaying the first virtual object with a first visual effect that mitigates the depth conflict between the first virtual object and the respective portion of the three-dimensional environment according to a determination that the first virtual object has a first degree of depth conflict with the respective portion of the three-dimensional environment; means for displaying the first virtual object with a second visual effect that mitigates the depth conflict between the first virtual object and the respective portion of the three-dimensional environment in accordance with a determination that the first virtual object has a second degree of depth conflict with the respective portion of the three-dimensional environment; the second degree of depth conflict is different from the first degree of depth conflict; The computer system, wherein the second visual effect is a different type of visual effect than the first visual effect.
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 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 56 to 66.
71. 67. 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 56 to 66.
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 and means for executing the method of any one of claims 56 to 66.
Citation Information
Patent Citations
Image processing method and image processing device
JP2005293142A
Image processing method, image processor
JP2006215750A
Information processing method and information processor
JP2006318094A
Image processing device, image processing method and program
JP2018063567A
Direct Light Compensation Techniques for Augmented Reality Systems
JP2019517012A