This disclosure relates to different approaches for enabling display of virtual information during mixed reality experiences (e.g., virtual reality (VR), augmented reality (AR), and hybrid reality experiences).
AR is a field of computer applications that enables the combination of real world images and computer generated data or VR simulations. Many AR applications are concerned with the use of live video imagery that is digitally processed and augmented by the addition of computer generated or VR graphics. For instance, an AR user may wear goggles or other a head mounted display through which the user may see the real, physical world as well as computer-generated or VR images projected on top of physical world.
An aspect of the disclosure provides a method for determining avatar eye contact in a virtual reality environment. The method can include determining, by at least one processor, a first pose of a first avatar for a first user in a virtual environment. The method can include determining a first viewing area of the first user in the virtual environment based on the first pose. The method can include determining a first viewing region within the first viewing area. The method can include determining a second pose of a second avatar for a second user in the virtual environment. The method can include determining a second viewing area of the second user in the virtual environment based on the second pose. The method can include determining a second viewing region within the second viewing area. The method can include displaying the second avatar on a first device of the first user and displaying the first avatar on a second device of the second user based on the first viewing region and the second viewing region.
Another aspect of the disclosure provides a non-transitory computer-readable medium comprising instructions for displaying an augmented reality environment. The non-transitory computer-readable medium can cause the one or more processors to determine a first pose of a first avatar for a first user in a virtual environment. The non-transitory computer-readable medium can cause the one or more processors to determine a first viewing area of the first user in the virtual environment based on the first pose. The non-transitory computer-readable medium can cause the one or more processors to determine a first viewing region within the first viewing area. The non-transitory computer-readable medium can cause the one or more processors to determining a second pose of a second avatar for a second user in the virtual environment. The non-transitory computer-readable medium can cause the one or more processors to determine a second viewing area of the second user in the virtual environment based on the second pose. The non-transitory computer-readable medium can cause the one or more processors to determine a second viewing region within the second viewing area. The non-transitory computer-readable medium can cause the one or more processors to display the second avatar on a first device of the first user and displaying the first avatar on a second device of the second user based on the first viewing region and the second viewing region.
Other features and benefits will be apparent to one of ordinary skill with a review of the following description.
The details of embodiments of the present disclosure, both as to their structure and operation, can be gleaned in part by study of the accompanying drawings, in which like reference numerals refer to like parts, and in which:
This disclosure relates to different approaches for determining when to provide eye contact from an avatar to a user viewing a virtual environment.
As shown in
Each of the user devices 120 include different architectural features, and may include the features shown in
Some of the sensors 124 (e.g., inertial, optical, and location sensors) are used to track the pose (e.g., position and orientation) of a user or avatar of the user in virtual environments and physical environments. Tracking of user/avatar position and orientation (e.g., of a user head or eyes) is commonly used to determine view areas, and the view area is used to determine what virtual objects to render using the processor 126 for presentation to the user on a display of a user device. Tracking the positions and orientations of the user or any user input device (e.g., a handheld device) may also be used to determine interactions with virtual objects. In some embodiments, an interaction with a virtual object includes a modification (e.g., change color or other) to the virtual object that is permitted after a tracked position of the user or user input device intersects with a point of the virtual object in a geospatial map of a virtual environment, and after a user-initiated command is provided to make the desired modification.
Some of the sensors 124 (e.g., cameras and other optical sensors of AR devices) may also be used to capture information about a physical environment, which is used to generate virtual representations of that information, or to generate geospatial maps of the physical environment that can be used to determine where and how to present virtual objects among physical objects of the physical environment. Such virtual representations and geospatial maps may be created using any known approach. In one approach, many two-dimensional images are captured by a camera of an AR device, those two-dimensional images are used to identify three-dimensional points in the physical environment, and the three-dimensional points are used to determine relative positions, relative spacing and structural characteristics (e.g., surfaces and depths) of physical objects in the physical environment. Other optical sensors may be used in addition to a camera (e.g., a depth sensor). Textures, colors and other features of physical objects or physical environments can be determined by analysis of individual images.
Examples of the user devices 120 include VR, AR, and general computing devices with displays, including head-mounted displays, sensor-packed wearable devices with a display (e.g., glasses), mobile phones, tablets, desktop computers, laptop computers, or other computing devices that are suitable for carrying out the functionality described in this disclosure.
The virtual environment can have multiple exemplary objects and users at positions and with different orientations. As shown, a pose of a first user (e.g., a position 220a of the first user, and an orientation 221a of the first user), a pose of a second user (e.g., a position 220b of the second user, and an orientation 221b of the second user), and a pose (e.g., a position and an orientation) of a virtual object 230 are tracked in the virtual environment. A viewing area of each user is shown. The viewing area of each user defines parts of the virtual environment that are displayed to that user using a user device operated by that user. Example user devices include any of the mixed reality user devices 120. Other parts of the virtual environment that are not in the viewing area of a user are not displayed to the user until the user's pose changes to create a new viewing area that includes the other parts. A viewing area can be determined using different techniques or methods known in the art. One technique involves: (i) determining the position and the orientation of a user in a virtual environment (e.g., the orientation of the user's head or eyes); (ii) determining outer limits of peripheral vision for the user (e.g., d degrees of vision in different directions from a vector extending outward along the user's orientation, where d is a number like 45 or another number depending on the display of the user device or other reason); and (iii) defining the volume enclosed by the peripheral vision as the viewing area.
After a viewing area is defined, a viewing region for a user can be defined. The viewing area is show in dotted lines for both the first position 220a and the second position 220b. As described herein, a viewing region of a user can be used to determine where to direct eyes of an avatar representing that user when that avatar is in the viewing area of another user. A viewing region of the user is smaller than the viewing area of the user as shown and described in connection with the following figures. Different shapes and sizes of viewing regions are possible. A possible shape is a volume or a vector. An example of a volumetric viewing region is discussed later with reference to
A viewing region can be determined using different techniques known in the art. One technique involves: (i) determining the position and the current orientation of a user in a virtual environment (e.g., the orientation of the user's head or eyes); (ii) determining outer limits of the viewing region (e.g., a vector, a width and height, or d degrees of vision in different directions from a vector extending outward along the user's current orientation); and (iii) defining the volume enclosed by the outer limits as the viewing region. The value of d can vary. For example, since users may prefer to reorient their head from the current orientation to see an object that is located more than 10 to 15 degrees from the current orientation, the value of d may be set to 10 to 15 degrees.
By way of example, the eyes of a first avatar representing a first user may be directed towards the eyes of a second user when the viewing region of the first user intersects or includes a position of the second user, a volume around that position, a volume around a position of a second avatar representing the second user, or a volume around a head or eyes of the second avatar. The same rationale applies for directing the eyes of the first avatar toward virtual objects instead of the second user.
Viewing regions (e.g., the viewing regions 322a, 322b) can also be used to determine when to direct eyes or other feature of a non-user virtual object towards a position of a user. Other features may include any part of the virtual object (e.g., a virtual display screen or other). As with users, a position and an orientation of the virtual object can be used to determine a viewing region for the virtual object, and eye(s) or other feature of the virtual object would be directed towards a user's position when that user's position is in the viewing region of the virtual object.
In some cases, the viewing region includes or intersects with two or more virtual things (e.g., avatars, virtual objects). This scenario can be problematic since an avatar that represents a user can make eye contact with only one thing at a time. Thus, different types of viewing regions and analysis about viewing regions are contemplated.
An alternative to the viewing region for determining where to direct eye contact of an avatar of the first user includes directing the eyes of the avatar towards a position of another user that the first user identified by selection, spoken name, or other content association with that other user.
Determining when to Provide Eye Contact from an Avatar to a User Viewing a Virtual Environment
As shown, a first pose (e.g., first position, first orientation) of a first user in a virtual environment is determined (705a), and a second pose (e.g., second position, second orientation) of a second user in the virtual environment is determined (705b). A first viewing area of the first user in the virtual environment is determined (710a), and a second viewing area of the second user in the virtual environment is determined (710b). A first viewing region in the first viewing area is determined (715a), and a second viewing region in the second viewing area is determined (715b).
A determination is made as to whether the second position is inside the first viewing area, and whether the first position (or volume around the first position) is inside or intersected by the second viewing region (720a). If not, the process ends. If the second position is inside the first viewing area, and the first position (or volume around the first position) is inside or intersected by the second viewing region, a first set of instructions to cause a first user device of the first user to display one or more eyes of an avatar that represents the second user so the one or more eyes of the avatar that represents the second user appear to project outward from a screen or display of the first user device towards one or more eyes of the first user are generated (725a), and the one or more eyes of the avatar that represents the second user are rendered and displayed to project outward from the screen of the first user device towards one or more eyes of the first user (730a).
A determination is made as to whether the first position is inside the second viewing area, and whether the second position is inside or intersected by the first viewing region (720b). If not, the process ends. If the first position is inside the second viewing area, and the second position is inside or intersected by the first viewing region, a second set of instructions to cause a second user device of the second user to display one or more eyes of an avatar that represents the first user so the one or more eyes of the avatar that represents the first user appear to project outward from a screen or display of the second user device towards one or more eyes of the second user are generated (725b), and the one or more eyes of the avatar that represents the first user are rendered and displayed to project outward from a screen of the second user device towards one or more eyes of the second user (730b).
Intersection can be determined using different approaches. One approach for determining that two things intersect uses a geo-spatial understanding of the volume spaces in the virtual environment that are occupied by different things (e.g., users, virtual objects, and the viewing region). If any part of the volume space of a first thing (e.g., the viewing region) occupies the same space in the virtual environment as any part of the volume space of a second thing (e.g., a user position), then that second thing is intersected by the first thing (e.g., the user position is intersected by the viewing region). Similarly, if any part of the volume space of the viewing region occupies the same space in the virtual environment the entire volume space of a user position, then the user position is “inside” the viewing region. Other approaches for determining that two things intersect can be used, including trigonometric calculations extending a viewing region from a first position occupied by a first user to a second position that is occupied by a second user.
Methods of this disclosure may be implemented by hardware, firmware or software (e.g., by the platform 110 and/or the processors 126). One or more non-transitory machine-readable media embodying program instructions that, when executed by one or more computers or machines, cause the one or more computers or machines to perform or implement operations comprising the steps of any of the methods or operations described herein are contemplated. As used herein, machine-readable media includes all forms of machine-readable media (e.g. non-volatile or volatile storage media, removable or non-removable media, integrated circuit media, magnetic storage media, optical storage media, or any other storage media) that may be patented under the laws of the jurisdiction in which this application is filed, but does not include machine-readable media that cannot be patented under the laws of the jurisdiction in which this application is filed.
By way of example, machines may include one or more computing device(s), processor(s), controller(s), integrated circuit(s), chip(s), system(s) on a chip, server(s), programmable logic device(s), other circuitry, and/or other suitable means described herein (e.g., the platform 110, the user device 120) or otherwise known in the art. Systems that include one or more machines or the one or more non-transitory machine-readable media embodying program instructions that, when executed by the one or more machines, cause the one or more machines to perform or implement operations comprising the steps of any methods described herein are also contemplated.
Method steps described herein may be order independent, and can therefore be performed in an order different from that described. It is also noted that different method steps described herein can be combined to form any number of methods, as would be understood by one of skill in the art. It is further noted that any two or more steps described herein may be performed at the same time. Any method step or feature disclosed herein may be expressly restricted from a claim for various reasons like achieving reduced manufacturing costs, lower power consumption, and increased processing efficiency. Method steps can be performed at any of the system components shown in the figures.
Systems comprising one or more modules that perform, are operable to perform, or adapted to perform different method steps/stages disclosed herein are also contemplated, where the modules are implemented using one or more machines listed herein or other suitable hardware. When two things (e.g., modules or other features) are “coupled to” each other, those two things may be directly connected together, or separated by one or more intervening things. Where no lines and intervening things connect two particular things, coupling of those things is contemplated in at least one embodiment unless otherwise stated. Where an output of one thing and an input of another thing are coupled to each other, information sent from the output is received by the input even if the data passes through one or more intermediate things. Different communication pathways and protocols may be used to transmit information disclosed herein. Information like data, instructions, commands, signals, bits, symbols, and chips and the like may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, or optical fields or particles.
The words comprise, comprising, include, including and the like are to be construed in an inclusive sense (i.e., not limited to) as opposed to an exclusive sense (i.e., consisting only of). Words using the singular or plural number also include the plural or singular number, respectively. The word or and the word and, as used in the Detailed Description, cover any of the items and all of the items in a list. The words some, any and at least one refer to one or more. The term may is used herein to indicate an example, not a requirement—e.g., a thing that may perform an operation or may have a characteristic need not perform that operation or have that characteristic in each embodiment, but that thing performs that operation or has that characteristic in at least one embodiment.
This application claims priority to U.S. Provisional Patent Application Ser. No. 62/580,101, filed Nov. 1, 2017, entitled “SYSTEMS AND METHODS FOR DETERMINING WHEN TO PROVIDE EYE CONTACT FROM AN AVATAR TO A USER VIEWING A VIRTUAL ENVIRONMENT,” the contents of which are hereby incorporated by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
62580101 | Nov 2017 | US |