Virtual reality computing devices, such as head mounted display (HMD) systems and handheld mobile devices (e.g. smart phones, tablet computers, etc.), may be configured to display virtual and/or mixed reality environments to a user in the field of view of the user and/or a field of view of a camera of the device. Similarly, a mobile device may display such information using a camera viewfinder window.
This Background is provided to introduce a brief context for the Summary and Detailed Description that follow. This Background is not intended to be used as an aid in determining the scope of the claimed subject matter nor be viewed as limiting the claimed subject matter to implementations that solve any or all of the disadvantages or problems presented above.
An HMD device operating in a real world physical environment is configured with a sensor package that enables determination of an intersection of a projection of the device user's gaze with a location in a mixed or virtual reality environment. When a projected gaze ray is visibly rendered on other HMD devices (where all the devices are operatively coupled), users of those devices can see what the user is looking at in the environment. In multi-user settings, each HMD device user can see each other's projected gaze rays which can facilitate collaboration in a commonly-shared and experienced mixed or virtual reality environment. The gaze projection can be used much like a finger to point at an object, or to indicate a location on a surface with precision and accuracy.
In an illustrative example, each HMD device supports an application that is configured to render avatars that represent the position and orientation of other users of the commonly shared mixed or virtual reality environment. A gaze ray originates at the center of the avatar's face and projects into the environment and terminates when it hits a real or virtual surface. Marker and effects such as lighting and animation may be utilized to highlight the point of intersection between the projected gaze ray and the environment. The appearance of the gaze rays may also be controlled, for example, to enable them to be uniquely associated with users by color, shape, animation, or by other characteristics. User controls can also be supported so that, for example, a user can switch the gaze ray visibility on and off and/or control other aspects of gaze ray generation and/or rendering.
HMD device state and other information may be shared among HMD devices which can be physically remote from each other. For example, gaze ray origin and intercept coordinates can be transmitted from a ray-originating HMD device to another (non-originating) HMD device. The non-originating HMD device can place an avatar at the origin to represent the originating user and visibly render the gaze ray between the origin and intercept to enable the non-originating user to see where the originating user is looking.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this disclosure. It may be appreciated that the above-described subject matter may be implemented as a computer-controlled apparatus, a computer process, a computing system, or as an article of manufacture such as one or more computer-readable storage media. These and various other features may be apparent from a reading of the following Detailed Description and a review of the associated drawings.
Like reference numerals indicate like elements in the drawings. Elements are not drawn to scale unless otherwise indicated.
Users can typically explore, navigate, and move within a virtual reality environment rendered by an HMD device by moving (e.g., through some form of locomotion) within a corresponding real world physical environment. In an illustrative example, as shown in
As the user changes the position or orientation of his head and/or moves within the physical real world environment 200 shown in
As shown in
State parameters may be passed from one HMD device and be used by other HMD devices to enable avatars to be dynamically rendered in some implementations within the virtual reality environment in a manner that enables the users to interact with each other in the virtual world using sight and sound in real time. For example, a virtual reality application running (in whole or part) on the HMD devices can support the commonly shared and experienced virtual world to the users to provide any of a variety of group user experiences.
Communications 225 including voice, messaging, data, and other formats/types, for example, may also be supported among the devices. It is emphasized that the HMD device users do not necessarily need to be located in the same physical environment. As depicted in
In a given virtual reality application, it is common to represent real world users with avatars in the virtual reality environment that is rendered on the display of each of the HMD devices. In this particular example, an avatar is rendered for each user 102, 205, and 210 in the virtual reality environment that is commonly accessed and shared by the users. Rendering of the avatar is typically performed in view of the user's corresponding position and movements in the physical environment which are tracked by their respective HMD devices, as described in more detail below. A given user can thereby typically control his own avatar in the virtual reality environment through body location and movement and/or other user inputs while simultaneously seeing the dynamically rendered avatars and projected gaze rays of other users of the shared environment on his HMD device.
A gaze ray 425 is projected from a view position of avatar 410 (representing user 205 in
In this example, the gaze ray 425 intersects with an object 430 (e.g., a particular rock in the rock-strewn field). The particular rendering form of the gaze ray and/or cursor may utilize different colors, shapes, patterns, animations, special effects, and the like according to the needs of a given implementation and may vary from what is shown and described here. The originating user may be given options to control the appearance or behaviors of the gaze ray and/or cursor through user input such as turning its visibility to other users on and off, changing its color or animation, and the like. The user input can vary by implementation and may include, for example, a sensed gesture, a voice command or language input, a manipulation of a physical or virtual control that is supported by the HMD device, or the like. In some implementations, the HMD device and/or the virtual reality application may employ different colors, shapes, patterns, or other devices and/or indicators for the visibly-rendered projected gaze ray, for example, to make the rendered appearance of the gaze ray unique for a particular user. A blue colored gaze ray could thus be associated with one user while a red one is utilized for another user.
The rendered gaze ray 425 thus indicates to the users 102 and 205 (
The termination of the gaze ray 425 at the point of intersection with the gazed-upon object 430 may be sufficient by itself in some cases to show that the avatar 410 (and user 210) is looking at the object 430. In other cases, the object 430 can be highlighted or otherwise explicitly indicated within the virtual reality environment. For example, the object can be rendered using colors, contrasting light compared with the surroundings, or the like. Thus, a gazed-upon object 530 may be darkened in a light-infused scene, as shown in
In some implementations, the gaze ray may be projected from a user's view position which is typically determined by tracking the position and orientation of the user's head (as described in more detail below). In alternative implementations, the HMD device may also be configured to project the gaze ray according to the position of the user's eyes along the direction of the user's gaze. Eye position may be detected, for example, using inward facing sensors that may be incorporated into the HMD device 104. Such eye position detection is referred to as gaze tracking and is described in more detail below. Thus, the user may employ combinations of head and eye movement to alter the trajectory of a gaze ray to control the point of intersection between the projected gaze ray and the virtual reality environment. The HMD device 104 may be configured to enable the user to selectively engage and disengage gaze tracking according to user input. For example, there may be scenarios in which gaze ray projection according to head pose provides a more optimized user experience compared with projection that relies on gaze tracking and vice versa.
The HMD device 104 is configured to obtain depth data 800, as shown in
As shown in
Method 1100 in
In step 1115, data is received from a remote HMD device. For example, the remote HMD device can be employed by a remote user who is participating with the local user in a commonly-shared virtual reality environment (e.g., environment 100 shown in
In step 1135, an avatar representing the remote user can be rendered on the local HMD device where a portion of the avatar, such as the face, will be positioned at the origin coordinate. In step 1140, control signals or user input can be received that can be utilized to control the appearance or various characteristics of the visibly rendered gaze ray on the local HMD device.
Method 1200 shown in
In step 1210, the head tracking is used to dynamically track an origin at the user's view position of the virtual reality environment. The sensor package may also be used to dynamically track the user's gaze direction, for example using inward facing sensors. In step 1215, an intercept of the projected gaze ray at a point of intersection with the mixed reality or virtual reality environment is located within the current field of view. In step 1220, coordinates for the origin and intercept are shared with a remote HMD device over a network or other communications link. The remote HMD device is configured to visibly render a gaze ray to the remote user using the shared coordinates. The gaze ray indicates to the remote user where the local user is looking in a commonly-shared environment.
In step 1225, the local HMD device may be operated responsively to user input to enable or disable the coordinate sharing. In step 1230, new coordinates for the origin and intercept may be shared as the view position of gaze direction of the local user changes.
Method 1300 shown in
In step 1315, a gaze ray is projected outward from an origin at the view position. In some implementations, gaze detection may also be utilized so that the gaze ray is projected along a direction of the user's gaze. Gaze detection may also be implemented, for example, using inward facings sensors that are incorporated into the sensor package 805 (
In step 1320, an intersection is identified between the projected gaze ray and the mixed reality or virtual reality environment. In step 1325, the origin of the projected ray and the identified intersection are transmitted to remote service or remote device so that the data may be used by other HMD device to visibly render a gaze ray to indicate where the user is looking. In step 1330, the HMD device exposes a user interface and user input is received. The user interface can be configured according to the needs of a given implementation, and may include physical or virtual controls that may be manipulated by the user and may support voice and/or gestures in some cases.
Turning now to various illustrative implementation details, a virtual reality or mixed reality display device according to the present arrangement may take any suitable form, including but not limited to near-eye devices such as the HMD device 104 and/or other portable/mobile devices.
Display system 1400 comprises one or more lenses 1402 that form a part of a see-through display subsystem 1404, such that images may be displayed using lenses 1402 (e.g. using projection onto lenses 1402, one or more waveguide systems incorporated into the lenses 1402, and/or in any other suitable manner). Display system 1400 further comprises one or more outward-facing image sensors 1406 configured to acquire images of a background scene and/or physical environment being viewed by a user, and may include one or more microphones 1408 configured to detect sounds, such as voice commands from a user. Outward-facing image sensors 1406 may include one or more depth sensors and/or one or more two-dimensional image sensors. In alternative arrangements, as noted above, a virtual reality or mixed reality display system, instead of incorporating a see-through display subsystem, may display mixed reality images through a viewfinder mode for an outward-facing image sensor.
The display system 1400 may further include a gaze detection subsystem 1410 configured for detecting a direction of gaze of each eye of a user or a direction or location of focus, as described above. Gaze detection subsystem 1410 may be configured to determine gaze directions of each of a user's eyes in any suitable manner. For example, in the illustrative example shown, a gaze detection subsystem 1410 includes one or more glint sources 1412, such as infrared light sources, that are configured to cause a glint of light to reflect from each eyeball of a user, and one or more image sensors 1414, such as inward-facing sensors, that are configured to capture an image of each eyeball of the user. Changes in the glints from the user's eyeballs and/or a location of a user's pupil, as determined from image data gathered using the image sensor(s) 1414, may be used to determine a direction of gaze.
In addition, a location at which gaze lines projected from the user's eyes intersect the external display may be used to determine an object at which the user is gazing (e.g. a displayed virtual object and/or real background object). Gaze detection subsystem 1410 may have any suitable number and arrangement of light sources and image sensors. In some implementations, the gaze detection subsystem 1410 may be omitted.
The display system 1400 may also include additional sensors. For example, display system 1400 may comprise a global positioning system (GPS) subsystem 1416 to allow a location of the display system 1400 to be determined This may help to identify real world objects, such as buildings, etc. that may be located in the user's adjoining physical environment.
The display system 1400 may further include one or more motion sensors 1418 (e.g., inertial, multi-axis gyroscopic or acceleration sensors) to detect movement and position/orientation/pose of a user's head when the user is wearing the system as part of an augmented reality HMD device. Motion data may be used, potentially along with eye-tracking glint data and outward-facing image data, for gaze detection, as well as for image stabilization to help correct for blur in images from the outward-facing image sensor(s) 1406. The use of motion data may allow changes in gaze location to be tracked even if image data from outward-facing image sensor(s) 1406 cannot be resolved.
In addition, motion sensors 1418, as well as microphone(s) 1408 and gaze detection subsystem 1410, also may be employed as user input devices, such that a user may interact with the display system 1400 via gestures of the eye, neck and/or head, as well as via verbal commands in some cases. It may be understood that sensors illustrated in
The display system 1400 can further include a controller 1420 having a logic subsystem 1422 and a data storage subsystem 1424 in communication with the sensors, gaze detection subsystem 1410, display subsystem 1404, and/or other components through a communications subsystem 1426. The communications subsystem 1426 can also facilitate the display system being operated in conjunction with remotely located resources, such as processing, storage, power, data, and services. That is, in some implementations, an HMD device can be operated as part of a system that can distribute resources and capabilities among different components and subsystems.
The storage subsystem 1424 may include instructions stored thereon that are executable by logic subsystem 1422, for example, to receive and interpret inputs from the sensors, to identify location and movements of a user, to identify real objects using surface reconstruction and other techniques, and dim/fade the display based on distance to objects so as to enable the objects to be seen by the user, among other tasks.
The display system 1400 is configured with one or more audio transducers 1428 (e.g., speakers, earphones, etc.) so that audio can be utilized as part of an augmented reality experience. A power management subsystem 1430 may include one or more batteries 1432 and/or protection circuit modules (PCMs) and an associated charger interface 1434 and/or remote power interface for supplying power to components in the display system 1400.
It may be appreciated that the depicted display devices 104 and 1400 are described for the purpose of example, and thus are not meant to be limiting. It is to be further understood that the display device may include additional and/or alternative sensors, cameras, microphones, input devices, output devices, etc. than those shown without departing from the scope of the present arrangement. Additionally, the physical configuration of a display device and its various sensors and subcomponents may take a variety of different forms without departing from the scope of the present arrangement.
The visor includes see-through front and rear shields 1604 and 1606 respectively that can be molded using transparent materials to facilitate unobstructed vision to the optical displays and the surrounding real world environment. Treatments may be applied to the front and rear shields such as tinting, mirroring, anti-reflective, anti-fog, and other coatings, and various colors and finishes may also be utilized. The front and rear shields are affixed to a chassis 1705 as depicted in the partially exploded view in
The sealed visor 1602 can physically protect sensitive internal components, including an optics display subassembly 1802 (shown in the disassembled view in
As shown in
The computing system 2100 includes a logic subsystem 2102 and a storage subsystem 2104. The computing system 2100 may optionally include a display subsystem 2106, an input subsystem 2108, a communication subsystem 2110, and/or other components not shown in
The logic subsystem 2102 includes one or more physical devices configured to execute instructions. For example, the logic subsystem 2102 may be configured to execute instructions that are part of one or more applications, services, programs, routines, libraries, objects, components, data structures, or other logical constructs. Such instructions may be implemented to perform a task, implement a data type, transform the state of one or more components, or otherwise arrive at a desired result.
The logic subsystem 2102 may include one or more processors configured to execute software instructions. Additionally or alternatively, the logic subsystem 2102 may include one or more hardware or firmware logic machines configured to execute hardware or firmware instructions. The processors of the logic subsystem 2102 may be single-core or multi-core, and the programs executed thereon may be configured for sequential, parallel, or distributed processing. The logic subsystem 2102 may optionally include individual components that are distributed among two or more devices, which can be remotely located and/or configured for coordinated processing. Aspects of the logic subsystem 2102 may be virtualized and executed by remotely accessible, networked computing devices configured in a cloud-computing configuration.
The storage subsystem 2104 includes one or more physical devices configured to hold data and/or instructions executable by the logic subsystem 2102 to implement the methods and processes described herein. When such methods and processes are implemented, the state of the storage subsystem 2104 may be transformed—for example, to hold different data.
The storage subsystem 2104 may include removable media and/or built-in devices. The storage subsystem 2104 may include optical memory devices (e.g., CD (compact disc), DVD (digital versatile disc), HD-DVD (high definition DVD), Blu-ray disc, etc.), semiconductor memory devices (e.g., RAM (random access memory), ROM (read only memory), EPROM (erasable programmable ROM) , EEPROM (electrically erasable ROM), etc.) and/or magnetic memory devices (e.g., hard-disk drive, floppy-disk drive, tape drive, MRAM (magneto-resistive RAM), etc.), among others. The storage subsystem 2104 may include volatile, nonvolatile, dynamic, static, read/write, read-only, random-access, sequential-access, location-addressable, file-addressable, and/or content-addressable devices.
It may be appreciated that the storage subsystem 2104 includes one or more physical devices, and excludes propagating signals per se. However, in some implementations, aspects of the instructions described herein may be propagated by a pure signal (e.g., an electromagnetic signal, an optical signal, etc.) using a communications medium, as opposed to being stored on a storage device. Furthermore, data and/or other forms of information pertaining to the present arrangement may be propagated by a pure signal.
In some embodiments, aspects of the logic subsystem 2102 and of the storage subsystem 2104 may be integrated together into one or more hardware-logic components through which the functionality described herein may be enacted. Such hardware-logic components may include field-programmable gate arrays (FPGAs), program- and application-specific integrated circuits (PASIC/ASICs), program- and application-specific standard products (PSSP/ASSPs), system-on-a-chip (SOC) systems, and complex programmable logic devices (CPLDs), for example.
When included, the display subsystem 2106 may be used to present a visual representation of data held by storage subsystem 2104. This visual representation may take the form of a graphical user interface (GUI). As the present described methods and processes change the data held by the storage subsystem, and thus transform the state of the storage subsystem, the state of the display subsystem 2106 may likewise be transformed to visually represent changes in the underlying data. The display subsystem 2106 may include one or more display devices utilizing virtually any type of technology. Such display devices may be combined with logic subsystem 2102 and/or storage subsystem 2104 in a shared enclosure in some cases, or such display devices may be peripheral display devices in others.
When included, the input subsystem 2108 may include or interface with one or more user-input devices such as a keyboard, mouse, touch screen, or game controller. In some embodiments, the input subsystem may include or interface with selected natural user input (NUI) components. Such components may be integrated or peripheral, and the transduction and/or processing of input actions may be handled on- or off-board. Exemplary NUI components may include a microphone for speech and/or voice recognition; an infrared, color, stereoscopic, and/or depth camera for machine vision and/or gesture recognition; a head tracker, eye tracker, accelerometer, and/or gyroscope for motion detection and/or intent recognition; as well as electric-field sensing components for assessing brain activity.
When included, the communication subsystem 2110 may be configured to communicatively couple the computing system 2100 with one or more other computing devices. The communication subsystem 2110 may include wired and/or wireless communication devices compatible with one or more different communication protocols. As non-limiting examples, the communication subsystem may be configured for communication via a wireless telephone network, or a wired or wireless local- or wide-area network. In some embodiments, the communication subsystem may allow computing system 2100 to send and/or receive messages to and/or from other devices using a network such as the Internet.
Various exemplary embodiments of the present multi-user gaze projection are now presented by way of illustration and not as an exhaustive list of all embodiments. An example includes one or more computer readable memories storing computer-executable instructions which, when executed by one or more processors in a local head mounted display (HMD) device located in a physical environment, perform: using data from a sensor package incorporated into the HMD device to dynamically perform head tracking of the user within the physical environment; responsively to the head tracking, determining a field of view of a mixed reality or virtual reality environment that is renderable by the local HMD device, the field of view being variable depending at least in part on a pose of the user's head in the physical environment; receiving data from a remote HMD device including origin and intercept coordinates of a gaze ray that is projected from an origin at a view position of the remote HMD device and terminates at an intercept at a point of intersection between the projected ray and the mixed reality or virtual reality environment; and visibly rendering a gaze ray on the local HMD device using the received data within the field of view.
In another example, the one or more computer readable memories further include rendering a cursor within the field of view at the intercept coordinate. In another example, the one or more computer readable memories further include highlighting an object or an adjoining area that is coincident with the intercept coordinate, the highlighting including one of lighting effect, animation, or marker. In another example, the object is one of real object or virtual object. In another example, the one or more computer-readable memories further include rendering an avatar to represent a user of the remote HMD device, at least a portion of the avatar being coincident with the origin coordinate. In another example, the intercept coordinate is at an intersection between the projected gaze ray and a surface in the mixed reality or virtual reality environment that is closest to the local HMD device. In another example, the one or more computer-readable memories further include operatively coupling the local HMD device and the remote HMD device over a network. In another example, the one or more computer-readable memories further include receiving state data from the remote HMD device, the state data describing operations of the remote HMD device. In another example, the one or more computer-readable memories further include controlling an appearance of the visibly rendered gaze ray on the local HMD device based on user input. In another example, the one or more computer-readable memories further include visibly rendering multiple gaze rays in which each gaze ray is associated with an avatar of a different user of a respective one of a plurality of remote HMD devices. In another example, the one or more computer-readable memories further include visibly rendering the multiple gaze rays in which each ray is rendered in a manner to uniquely identify its associated user.
A further example includes a local head mounted display (HMD) device operable by a local user in a physical environment, comprising: one or more processors; a display for rendering a mixed reality or virtual reality environment to the user, a field of view of the mixed reality or virtual reality environment being variable depending at least in part on a pose of the user's head in the physical environment; a sensor package; and one or more memory devices storing computer-readable instructions which, when executed by the one or more processors, perform a method comprising the steps of: performing head tracking of the user within the physical environment using the sensor package, dynamically tracking an origin at the local user's view position of the mixed reality or virtual reality environment responsively to the head tracking, locating an intercept at an intersection between a ray projected from an origin at the view position and a point in the mixed reality or virtual reality environment within a current field of view, and sharing coordinates for the origin and intercept with a remote HMD device over a network, the remote HMD device being configured to visibly render a gaze ray using the coordinates to indicate to a remote user where the local user is looking in the mixed reality or virtual reality environment.
In another example, the HMD device further includes a user interface and operating the HMD device to enable or disable the sharing responsively to a user input to the UI. In another example, the HMD device further includes sharing new coordinates for the origin and intercept as the view position changes. In another example, the HMD device further includes tracking the local user's gaze direction and sharing new coordinates for the origin and intercept as the gaze direction changes.
Another example includes a method performed by a head mounted display (HMD) device that supports rendering of a mixed reality or virtual reality environment, comprising: obtaining sensor data describing a real world physical environment adjoining a user of the HMD device; tracking the user's head in the physical environment using the sensor data to determine a view position of the mixed reality or virtual reality environment; projecting a gaze ray outward at an origin at the view position; identifying an intersection between the projected gaze ray and the mixed reality or virtual reality environment; and transmitting the origin of the projected gaze ray and the identified intersection to a remote service or remote device.
In another example, the sensor data includes depth data and further including generating the sensor data using a depth sensor and applying surface reconstruction techniques to reconstruct the physical environment geometry. In another example, the method further includes generating depth data using depth-from-stereo imaging analyses. In another example, the method further includes exposing a user interface (UI) for receiving user input, the UI providing user controls or supporting gesture recognition or voice recognition. In another example, the method further includes projecting the gaze ray along a gaze direction of the user and using one or more inward facing sensors located in the HMD device to determine the gaze direction.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
This application claims benefit and priority to U.S. Provisional Application Ser. No. 62/029,351 filed Jul. 25, 2014, entitled “Head Mounted Display Experiences” which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62029351 | Jul 2014 | US |