Microsoft Patent | Augmented reality and physical games
Patent: Augmented reality and physical games
Drawings: Click to check drawins
Publication Number: 20130267309
Publication Date: 20131010
Assignee: Microsoft Corporation
Abstract
Augmented reality and physical game techniques are described. In one or more implementations, an indication is received by a computing device of a location of a physical gaming piece of a game. An augmentation is computed based on the indication by the computing device to be displayed as part of the game. The augmentation is displayed by the computing device on a display device that is at least partially transparent such that a physical portion of the game is viewable through the display device concurrently with the augmentation.
Claims
1. A method comprising: receiving an indication by a computing device of a location of a physical gaming piece of a game; computing an augmentation based on the indication by the computing device to be displayed as part of the game; and displaying the augmentation by the computing device on a display device that is at least partially transparent such that a physical portion of the game is viewable through the display device concurrently with the augmentation.
2. A method as described in claim 1, wherein the indication is received from a camera that is communicatively coupled to the computing device.
3. A method as described in claim 1, wherein the indication is received from one or more sensors disposed within a board surface of the game that is communicatively coupled to the computing device.
4. A method as described in claim 1, wherein the indication is received from input device with which a user manually interacts to input the location.
5. A method as described in claim 1, wherein the augmentation is computed to be displayed such that at least a portion of the physical gaming piece is not viewable through the display device.
6. A method as described in claim 1, wherein the augmentation is animated.
7. A method as described in claim 1, wherein the augmentation describes a status of the game.
8. A method as described in claim 1, further comprising recognizing a gesture made by a user and where the computing of the augmentation is based at least in part on the recognized gesture.
9. A method as described in claim 1, wherein the computing includes use of a known size of the physical gaming piece.
10. A method as described in claim 1, wherein the display device includes a light guide.
11. A method as described in claim 1, wherein the computing device is configured as a tablet, mobile phone, or wearable device.
12. A method comprising: recognizing a gesture, by a computing device, that was made by a user to interact with a physical game; and computing an augmentation by the computing device based on the gesture; and displaying the augmentation by the computing device on a display device that is at least partially transparent such that a physical portion of the game is viewable through the display device concurrently with the augmentation.
13. A method as described in claim 12, wherein the gesture is detected using a camera or touchscreen functionality of the display device.
14. A method as described in claim 12, wherein the gesture involves a game piece of the physical game.
15. An apparatus comprising: a housing configured in a hand-held form factor; a light guide, supported by the housing, that is at least partially transparent such that at least a portion of a physical surroundings of the apparatus are viewable through the light guide; a light engine disposed within the housing and optically coupled to the light guide; and one or more modules disposed within the housing and implemented at least partially in hardware, the one or more modules configured to detect a presence of a physical game in the physical surroundings, compute an augmentation based on a current state of play of the physical game, and cause the light engine to output the augmentation for display by the light guide to be viewable concurrently with at least a portion of the physical game in the physical surroundings through the light guide.
16. An apparatus as described in claim 15, wherein the one or more modules are configured to recognize one or more gestures from the one or more inputs detected from the one or more touch sensors.
17. An apparatus as described in claim 15, wherein the one or more modules are configured to received data communicated from another apparatus that is involved with the physical game regarding the current state of the game being played, the data usable to compute the augmentation.
18. An apparatus as described in claim 15, wherein the light guide is configured to output the augmentation to be viewable in three dimensions using auto-stereoscopic techniques.
19. An apparatus as described in claim 18, wherein the housing is configured as a tablet or mobile phone.
20. An apparatus as described in claim 15, wherein the one or more modules are configured to recognize a gesture made by a user and wherein the computing of the augmentation is based at least in part on the recognized gesture.
Description
BACKGROUND
[0001] Conventional games were limited to physical objects that were moved by the players of the game. For example, users could deal playing cards, move chess pieces, roll dice, and so on. With the advent of the computing device, video games were developed in which a user interacted with an input device such as a game controller, keyboard, cursor control device (e.g., mouse), and so forth.
[0002] Although graphics involved in these games continue to improve, the user is typically divorced from the physical experience involved with conventional games. This may be at least partially responsible for the continued success of conventional games. Consequently, a divide still exists between the conventional games and video games.
SUMMARY
[0003] Augmented reality and physical game techniques are described. In one or more implementations, an indication is received by a computing device of a location of a physical gaming piece of a game. An augmentation is computed based on the indication by the computing device to be displayed as part of the game. The augmentation is displayed by the computing device on a display device that is at least partially transparent such that a physical portion of the game is viewable through the display device concurrently with the augmentation.
[0004] In one or more implementations, a gesture that was made by a user to interact with a physical game is recognized by a computing device. An augmentation is computed by the computing device based on the gesture. The augmentation is displayed by the computing device on a display device that is at least partially transparent such that a physical portion of the physical game is viewable through the display device concurrently with the augmentation.
[0005] In one or more implementations, an apparatus includes a housing configured in a hand-held form factor, a light guide, a light engine disposed within the housing and optically coupled to the light guide, and one or more modules disposed within the housing and implemented at least partially in hardware. The light guide is supported by the housing and is at least partially transparent such that at least a portion of a physical surroundings of the apparatus are viewable through the light guide. The one or more modules are configured to detect a presence of a physical game in the physical surroundings, compute an augmentation based on a current state of play of the physical game, and cause the light engine to output the augmentation for display by the light guide to be viewable concurrently with at least a portion of the physical game in the physical surroundings through the light guide.
[0006] 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.
BRIEF DESCRIPTION OF THE DRAWINGS
[0007] The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different instances in the description and the figures may indicate similar or identical items.
[0008] FIG. 1 is an illustration of an environment in an example implementation that is operable to employ augmented reality and physical game techniques as described herein.
[0009] FIG. 2 depicts an example of a display device of FIG. 1 as including a light guide illustrated in a front view.
[0010] FIG. 3 depicts an example of the light guide of FIG. 2 which is shown in greater detail using a side view.
[0011] FIG. 4 depicts an example implementation of the light guide and light engine of the display device of FIG. 3 in which layers of the light guide are shown.
[0012] FIG. 5 depicts an example implementation of a physical game being playing in conjunction with a plurality of computing devices.
[0013] FIG. 6 depicts an example implementation showing use of a computing device by the first user of FIG. 5 as part of playing a board game.
[0014] FIG. 7 is a flow diagram depicting a procedure in an example implementation in which an augmentation is computed based on an indication of a location of a physical gaming piece of a game.
[0015] FIG. 8 is a flow diagram depicting a procedure in an example implementation in which an augmentation is computed based on a gesture input as part of a game.
[0016] FIG. 9 illustrates an example system including various components of an example device that can be implemented as any type of computing device as described with reference to FIGS. 1-8 to implement embodiments of the techniques described herein.
DETAILED DESCRIPTION
[0017] Overview
[0018] Conventional physical games continue to be popular for a variety of reasons. These reasons may include an ability of users to interact with physical game pieces of the board game, such as checkers, chess pieces, player representations, and so on. However, conventional physical games were often limited in the technology that was incorporated as part of the game due to cost, complexity, and other considerations.
[0019] Augmented reality game techniques are described. In one or more implementations, a computing device (e.g., a mobile phone, tablet computer, and so forth) is used to augment a physical game, such as a board game, card game, and so on. In this way, the physical game may be augmented using devices that may be readily available to a user, such as the user's mobile phone, tablet computer, and so forth, thereby reducing cost and complexity in the provision of the functionality to users. The augmentations may be provided in a variety of ways.
[0020] A user, for instance, may leverage a computing device having a mobile form factor (e.g., mobile phone, tablet, wearable computing device, and so forth) to compute and output an augmentation for display. In one example, the computing device may include a display device that is at least partially transparent such that the physical surroundings of the computing device are viewable through the display device, such as a portion of the physical game. The augmentation may also be displayed by the display device to be viewable concurrently with the portion of the physical game, such as to use auto-stereoscopic techniques to support viewing in three dimensions. Thus, the augmentation may expand a user's experience with the physical game. A variety of other examples are also contemplated as further described in the following sections.
[0021] In the following discussion, an example environment is first described that may employ the techniques described herein. Example procedures are then described which may be performed in the example environment as well as other environments. Consequently, performance of the example procedures is not limited to the example environment and the example environment is not limited to performance of the example procedures.
[0022] Example Environment
[0023] FIG. 1 is an illustration of an environment 100 in an example implementation that is operable to employ the techniques described herein. The illustrated environment 100 includes a computing device 102, which may be configured in a variety of ways. For example, the computing device 102 is illustrated as employing a housing 104 that is configured in a mobile form factor. The mobile form factor, for instance, may include a tablet computer, a mobile phone, portable game device, wearable device (e.g., glasses as a display device that are wearable by a user), and so forth. However, a wide variety of other form factors are also contemplated, such as computer and television form factors as described in relation to FIG. 9.
[0024] Accordingly, the computing device 102 may range from full resource devices with substantial memory and processor resources (e.g., personal computers, game consoles) to low-resource devices with limited memory and/or processing resources (e.g., traditional televisions, net books). Additionally, although a single computing device 102 is shown, the computing device 102 may be representative of a plurality of different devices, such as a user-wearable helmet or glasses and game console, a remote control having a display and set-top box combination, and so on.
[0025] The computing device 102 is further illustrated as including a display device 106 that is at least partially transparent in this example. The transparency of the display device 106 is illustrated as allowing at least a portion of the physical surroundings 108 of the computing device 102 to be viewed through the device. In the illustrated example, the physical surroundings 108 that are viewable through the display device 106 include a part of a physical game 110 (e.g., a backgammon board) and part of a finger of the user's hand 112.
[0026] The display device 106 may also be configured to output a user interface (e.g., an augmentation 114 showing the score "Ellie: 3 Liam:4" in the illustration) that is viewable concurrently with the portion of the physical surroundings 108. This may be used to support a variety of different functionality, such as augmented reality as further described below.
[0027] The computing device 102 also includes an input/output module 116 in this example. The input/output module 116 is representative of functionality relating to detection and processing of inputs and outputs of the computing device 102. For example, the input/output module 116 may be configured to receive inputs from a keyboard, mouse, to recognize gestures and cause operations to be performed that correspond to the gestures, and so on. The inputs may be identified by the input/output module 116 in a variety of different ways.
[0028] For example, the input/output module 116 may be configured to recognize an input received via touchscreen functionality of a display device 106, such as a finger of a user's hand as proximal to the display device 106 of the computing device 102, from a stylus, and so on. The input may take a variety of different forms, such as to recognize movement of the finger of the user's hand 108 across the display device 106, drawing of a line, and so on. Other examples include detection of a user's hand and/or finger as either touching the device or hovering above the device, which may be recognizable as separate gestures. Other examples of input would be tracking pupils and blinks of the user's eyes, movement of the computing device 102 (e.g., tilting and/or shaking), and so forth.
[0029] In implementations, these inputs may be recognized as gestures that are configured to initiate one or more operations of the computing device 102 or other device, such as to navigate through a user interface, select and/or move objects displayed in the user interface, and so on. A variety of other examples are also contemplated, such as to recognize a gesture from one or more images captured by a camera of the computing device 102 as further described below.
[0030] The input/output module 116 is also illustrated as including an augmented reality module 118. The augmented reality module 118 is representative of functionality of the computing device 102 to augment a view of the physical surroundings 108 (e.g., the "real world") of the computing device 102 using the display device 106. In the illustrated example, for instance, the computing device 102 is illustrated as being physically positioned in surroundings that include a board game (e.g., backgammon) and fingers of the user's hand 112. Thus, the augmented reality module 118 is configured to output an augmentation 114 (e.g., the score 114 of the game) to be viewed in conjunction with the physical surroundings 108.
[0031] To generate this view and know "where" to place to augmentation, the augmented reality module 118 may leverage a variety of techniques to determine an orientation and/or position of the computing device 102 in relation to the physical surroundings 108 of the device. For example, the augmented reality module 118 may leverage a camera 120 to capture images of the physical surroundings 108. The augmented reality module 118 may then process the images to locate one or more markers to determine how the computing device 102 is positioned, oriented, moved, and so on.
[0032] These markers may take a variety of forms. For instance, the augmented reality module 118 may set one or more view points in the physical surroundings 108 as markers and thus serve as a basis to determine orientation and/or positioning, such as physical game pieces of the physical game. In another instance, the augmented reality module 118 may leverage a view of one or more augmented reality (AR) tags that are physically positioned within the surrounding environment of the computing device 102. Thus, the items in the physical surroundings 108 may act as a basis to determine where the computing device 102 is located as well as how the computing device 102 is oriented.
[0033] In another example, the camera 120 may be configured to capture one or more images of a user of the computing device 102. For example, a lens of the camera 120 is illustrated in FIG. 1 as a circle disposed to the right of the display device 106 in the housing 104 as pointed toward a face of a user of the computing device 102. Images captured by the camera 120 may then be used to determine a three dimensional location of pupils of the user. In one or more implementations, the location of the pupils is calculated without calculating a vector that describes "where the eye is pointing," thereby conserving resources of the computing device 102. Other examples are also contemplated in which such a vector is calculated. In this way, the augmented reality module 118 may determine how to output the augmentation 114 for display by the display device 106.
[0034] The augmented reality module 118 may also leverage other sensors 122 to determine a position and/or orientation of the computing device 102, and more particularly a position and/or orientation of the display device 106. For example, the sensors 122 may be configured as an inertial measurement unit (IMU), which may include a gyroscope, one or more accelerometers, a magnetometer, and so on including any combination thereof. These units may be used to generate a basis with which to determine an orientation and position of the computing device 102 in relation to its physical surroundings 108.
[0035] Through one or more of these examples, the augmented reality module 118 may capture a view of the "reality" that is to be augmented, which in this instance involves a physical game that may be played by one or more users. The augmentation 114 may then be computed to be displayed at a size, orientation, and location using the display device 106.
[0036] The augmentation 114 may be configured in a variety of ways, such as for two-dimensional output, three dimensional output, and so on. For instance, the augmented reality module 118 and the display device 106 may leverage stereoscopic techniques to give a perception of depth to the augmentation, such as through auto-stereoscopy in which optics are used by the display device 106 to split an image directionally to the user's eyes. A variety of other techniques are also contemplated without departing from the spirit and scope thereof.
[0037] Further, it should be readily apparent that augmentations generated by the augmented reality module 118 may assume a variety of other forms. These forms include objects as part of a game and other changes to a view of the physical surroundings 108 of a computing device 102 through display as part of a user interface that is viewable through the display device 106. Further discussion of augmentations may be found in relation to FIG. 5.
[0038] The display device 106 may be configured in a variety of ways to support the techniques described herein, such as through configuration as a light guide that provides an output having a focal plane focused at infinity. An example of such a light guide is described beginning in relation to the following figure.
[0039] FIG. 2 depicts an example 200 of the display device 106 of FIG. 1 configured as including a light guide illustrated in a front view. The example 200 includes a light guide 202 and a light engine 204 that form the display device 106. The light guide 202 may be configured in a variety of ways, such as a piece of glass, plastic, or other optically transmittable material that serves to display an output of the light engine 204.
[0040] The light engine 204 may be configured in a variety of ways, such as a pico projector or other image output device. Examples of a light engine 204 include laser driven LCOS or LED driven scanning, an LCOS display, e.g., including RGB LEDs or lasers, and so on. The light engine 204 is optically coupled to the light guide 202 such that an output of the light engine 204 is displayed by the light guide 202 for viewing by one or more users. The light engine 204 may be optically coupled to the light guide 202 in a variety of ways, an example of which may be found in relation to the following figure.
[0041] FIG. 3 depicts an example 300 of the light guide 202 of FIG. 2 which is shown in greater detail using a side view. The light guide 202 in this example is illustrated as including in-coupling optics 302 and out-coupling optics 304. The in-coupling optics 302 are configured to optically couple the light engine 204 to the light guide 202. The in-coupling optics 302 may be configured in a variety of ways, such as surface relief gratings, switchable Bragg gratings, volume holograph gratings, reflective and partially reflective surfaces, free form optical elements, wedge optics, and so forth.
[0042] In the illustrated example, the in-coupling optics 302 are configured to bend light output by the light engine 204 approximately ninety degrees for transmission to the out-coupling optics 304. Thus, the in-coupling optics 302 in this example may utilize one or more techniques to "turn light" for transmission to the out-coupling optics as described above.
[0043] Further, the in-coupling and out-coupling optics 302, 304 may be utilized as pupil expanders to expand an output from the light engine 204. The in-coupling optics 302, for instance, may be configured to expand an output of the light engine 204 horizontally. The out-coupling optics 304 may then receive this horizontally expanded output and further expand it in a vertical direction for output to the eye 306, e.g., an eye of the user of the computing device 102, such as by again utilizing one or more techniques to "turn light".
[0044] Therefore, the light engine 204 may be configured as a laser driven LCOS or LED driven scanning or LCOS display, may include RGB LEDs having a bandwidth in the range of five to ten nanometers to allow for efficient diffraction, and so forth. The light engine 204 is optically coupled to the in-coupling optics 302 of the light guide 202 utilizing one or more techniques to "turn light" as previously described. Light is then transmitted along the light guide 202 through the in-coupling optics 302 using total internal reflection (TIR) to a horizontal expansion grating. This grating serves to expand the "exit pupil" horizontally and in addition turns the light ninety degrees so it is propagating upwards in the example 300 as shown by the arrows. The light then encounters the out-coupling optics 304 which expands the "exit pupil" vertically and again turns the light as shown by the arrows so it is coupled out of the light guide 202 and towards an eye 306 of the user to view an image, e.g., a part of a user interface.
[0045] FIG. 4 depicts an example implementation of the light guide 202 and light engine 204 of the display device 106 in which layers of the light guide 202 are shown. The light guide 202 includes an optically transparent material 402 and diffraction grading matrix 404 that are usable to implement out-coupling optics 304 as described above in relation to FIG. 3.
[0046] The light guide 202 also includes a layer 406 to implement touch sensors across a front surface of the display device 106. The layer 406, for instance, may be configured as a grid formed using indium tin oxide (ITO) to detect X, Y coordinates of a contact, such as one or more fingers of the user's hand 108 as shown in relation to FIG. 1. Thus, this layer 406 may be used to provide inputs to the input-output module 116 which may be used to recognize one or more gestures to initiate one or more operations of the computing device 102, e.g., navigate through a user interface, launch an application, interact with a display object, and so forth.
[0047] The light guide 202 is also illustrated as including an electro-chromic layer 408 that is separated from the diffraction grading matrix 404 by an air gap 410 or lower optical index material. The electro-chromic layer 408 is operable to alternate between transparent and non-transparent states. This may be used for a variety of purposes, such as to control which part of a physical surroundings 108 of the computing device 102 are viewable through the display device 106, improve contrast for portions of a user interface displayed by the display device 106, and so on.
[0048] Thus, a display device 106 that incorporates a light guide 202 may be used to support a variety of functionality. For example, the display device 106 may support control to display an augmentation auto-stereoscopically, e.g., a different display to each eye without using dedicated eyewear. In this case, the display device 106 may provide a true overlay of objects that may be referenced for each eye. This may also be used to objects that are positioned close to the display device 106 that was not otherwise possible using conventional display devices, e.g., due to parallax for near objects whereby the angle to each eye to the object is different. Further, in the case of a display device 106 that is at least partially transparent, the portion of the physical surroundings may be viewed without redisplaying the portion, thereby conserving resources of the computing device 102.
[0049] Further, display devices 106 that incorporate a light guide 202 may offer a greater field of view than conventional display devices. For example, a field of view for a mobile device is dictated by the display size and the viewing distance. At a reasonable viewing distance of 0.5 m, the field of view of a mobile device is typically 12 degrees whereas the field of view of a light guide may be sixty degrees or greater. Thus, use of a light guide 202 by the display device 106 for gaming may be leveraged such that a typical board game of 0.5 m in size may be captured by the light guide 202 at approximately 290 millimeters away from the display device 106. Naturally, this is but one example and a variety of other examples are also contemplated.
[0050] FIG. 5 depicts an example implementation 500 showing an example implementation in which a top view of a physical game is illustrated. The physical game in this instance is configured as a board game 502 that is played by first and second users 504, 506. The board game 502 is placed on a surface 508 along with computing devices 510, 512 that are viewable by the first and second user's 504, 506, respectively. The computing devices 510, 512 may be configured as previously described for computing device 102 or otherwise.
[0051] As previously described, even with the availability of video games physical games such as board games continue to be popular for a variety of reasons. These reasons include that tactile nature and support of social interaction for groups of friends and family. However, conventional physical games seldom leverage advances in technology, such as due to added cost to the game, complexity, and so forth.
[0052] However, by leveraging computing devices that may be used for other purposes, the user experience with the physical game may be expanded with minimal additional cost. Thus, the combination of a computing device that interacts with the physical game may be used to support a variety of different opportunities for enhancing the gaming experience. Furthermore with the increase in ownership of computing devices per individual such a mobile device, the potential for combining these mobile devices with physical games offers even more gaming experience opportunities. Although mobile configurations of computing devices are described, these interactions are also applicable to other display formats such as monitors and large area screens as further described in relation to FIG. 9.
[0053] The computing device 510, 512 may be leveraged to support direct and indirect interaction on the part of the respective first and second users 504, 506. For example, indirect interaction may be used in which the computing devices 510, 512 are made aware of the physical game pieces and board by inputs provided by one of the first and second users 504, 506. The computing device 102, for instance, may output instructions via a user interface that notifies the first or second user 405, 406 to perform an action. In another instance, the first and second users 504, 506 may provide inputs that describe actions made by the users, e.g., a roll of a die, movement of a player representation, and so on.
[0054] Direct interaction, on the other hand, may be used by the computing device 102 to automatically detect one or more actions without receiving manual inputs from a user. The computing device 102, for instance, may utilize the camera 120 or other sensors (e.g., sensors on the board of the board game 502) to detect actions and respond accordingly.
[0055] Regardless of whether indirect or direct interaction is supported, as previously described the availability of computing devices (e.g., mobile devices such as mobile phones and tablets) to users may be leverage to expand a user's experience with the physical game, such as the board game 502. This may include leveraging processing and display functionality that is local to the computing devices 510, 512 as well as network connections, such as to access functionality available from a web platform.
[0056] The computing devices 510, 512, for instance, may include forward looking cameras that are positioned to capture images of the physical game pieces of the game, such as a board, pieces moved across the board, and so on. These images may be used by the computing device to display a variety of different augmentations. These may include augmentations that describe a current state of a game (e.g., score, process, and so on), augmentations to be displayed as part of game play (e.g., animations), displayed to replace a view of one or more of the game pieces, and so on. An example of an augmentation is described in relation to the following figure.
[0057] FIG. 6 depicts an example implementation 600 showing use of the computing device 510 by the first user 504 as part of playing the board game 502. In this example, the board game 502 is configured as a chess game having physical game pieces that include a board 602 and a knight 604. The computing device 102 this instance may compute an augmentation 606 to replace an actual view of the knight 604 with a richer version that is viewable by the first user 504.
[0058] Thus, in this example the actual physical game piece (e.g., the knight 604) is not viewable by the user directly. Rather, the augmentation 606 is viewed by the first user 504, instead. A variety of augmentations are contemplated, such as animations, augmentations of the board (e.g., enumeration of different zones), descriptions of a current state of play of a game, instructions to be performed by a user (e.g., to move a physical game piece), and so forth.
[0059] Further, the augmentations may be computed in a variety of ways to support a variety of different interaction. Returning again to FIG. 5, the computing device 510, 512 may be used to display different augmentations to the respective first and second users 504, 506. This may include augmentations describing actions that are available to the players, game of skill that are performed through interaction with the computing devices 510, 512 (e.g., gestures detected by the devices), and so forth.
[0060] Further, the computing device 504 may support communication with another computing device to implement the game. This may include communicating with the other computing device 512 that is used by another player, one or more servers of a server farm that implements functionality of the game (e.g., compute augmentations and other aspects by a web service), and so on.
[0061] As previously described in relation to FIG. 1, the computing device may determine "where" and "how" to display the augmentation in a variety of ways. In one such example, feature-based tracking may be used such as "Simultaneous, Localization and Mapping` (SLaM) algorithms that locate scene features such as edges of buildings and corners of rooms and so on from images captured by the camera 120. These images may then be correlated from frame to frame to establish the 3-D geometry of the physical surroundings by movements of the camera 120 relative to the surroundings. In another example, this may be performed using a depth-sensing cameras, e.g., two cameras of known displacement employing parallax similar to human vision.
[0062] Further, if the size of the object (e.g., the knight 604) that it is being located is known by the augmented reality module 118, then the location and orientation of those objects may be established by a single camera without relative movement. For instance, this technique may be leveraged in the case of the board game in which the sizes of the board and other game pieces are known. Furthermore, features on the board and pieces may be established as tags, thereby making it easier for the recognition algorithms to work. These features may take a variety of forms, such as simple to complex geometric shapes.
[0063] If more than one computing device is used to play the game, such as computing devices 510, 512 in the example of FIG. 5, images captured by the different cameras can be leveraged, such as to overcome obscuration of one piece over another. In another example, transparent game pieces may be leveraged to mitigate obscuration of one physical game piece by another.
[0064] A user may interact with the computing devices 510, 512 in a variety of ways. This may include physical interaction with the computing devices 510, 512, such as to interact with an input device, recognition of one or more gestures using touchscreen functionality, and so on. In another example, the computing devices 510, 512 may leverage cameras to detect gestures. The computing devices 510, 512, for instance, may include cameras that are configured to capture images of physical game pieces.
[0065] Therefore, a user's interaction with a game piece may be recognized as a gesture and initiate a corresponding operation of the computing device 510, 512. In another instance, a rearward facing camera (e.g., a camera that is positioned on a same side as an intended viewing direction of the display device 106) may be used to capture gestures made by a user. Thus, gestures may be carried out in front of the display or behind the display to interact with the game. Gestures may be used to initiate a variety of different operations, such as to select game pieces, provide instructions, and so forth, further discussion of which may be found in relation to FIG. 8.
[0066] Example Procedures
[0067] The following discussion describes techniques that may be implemented utilizing the previously described systems and devices. Aspects of each of the procedures may be implemented in hardware, firmware, or software, or a combination thereof. The procedures are shown as a set of blocks that specify operations performed by one or more devices and are not necessarily limited to the orders shown for performing the operations by the respective blocks. In portions of the following discussion, reference will be made to the environment and examples of FIGS. 1-6.
[0068] FIG. 7 depicts a procedure 700 in an example implementation in which an augmentation is computed based on an indication of a location of a physical gaming piece of a game. An indication is received by a computing device of a location of a physical gaming piece of a game (block 702). The indication, for instance, may originate from one or more sensors of the physical game itself, such as a game board, a game piece representing an item (e.g., a user, checker, chess piece), and so on. In another instance, the indication may originate from one or more sensors of the computing device 102 itself, such as images captured using a camera. In a further instance, indirect interaction techniques may be supported, such as an input provided by a user through interaction with an input device such as a keyboard, cursor control device, gesture or so on that describes the location of the game piece, e.g., a coordinate on a game board.
[0069] An augmentation is computed, based on the indication by the computing device, to be displayed as part of the game (block 704). The augmentation, for instance, may be configured to replace at least a portion of a user's view of a game piece, such as to replace a portion of a game board, a game piece that is configured to be moved during game play (e.g., a check, chess piece), and so forth. In another example, the augmentation may be computed to describe a current state of gameplay. For instance, the augmentation may be configured to output a score, list available moves, instructions on how to play, instructions to be performed by a user, and so forth.
[0070] The augmentation is displayed by the computing device on a display device that is at least partially transparent such that a physical portion of the game is viewable through the display device concurrently with the augmentation (block 706). The display device 106, for instance, may be configured to include a light guide 202.
[0071] The light guide 202 as shown in FIG. 1 may be configured to allow a portion of the physical surroundings 108 of the computing device 102 to be viewed through the display device 106 along with an augmentation 114. Thus, the light guide 202 may be used to improve efficiency in processing by the computing device by avoiding rendering of the physical surroundings by the display device 106. A variety of other functionality is also made available through use of the light guide 202, such as to reduce eyestrain, improve field of view, support auto-stereoscopic techniques to provide three dimensional viewing, and so forth.
[0072] FIG. 8 depicts a procedure 800 in an example implementation in which an augmentation is computed based on a gesture input as part of a game. A gesture that was made by a user to interact with a physical game is recognized by a computing device (block 802). The gesture, for instance, may be detected in a variety of ways. In one instance, the gesture is detected using touchscreen functionality of the display device 106. In another instance, one or more cameras may be utilized to capture images which are usable to recognize the gesture, such as one or more depth sensing cameras.
[0073] The gesture may also be recognized by the computing device 102 as involving one or more of the physical game pieces of the physical game. This may include a particular movement of a gaming piece to indicate an action, roll of dice, movement of a stylus, and so on. Thus, through use of the physical game pieces the number of richness of the gestures supported by the computing device 102 may be increased, such as to recognize different gestures from similar movements but involving different game pieces.
[0074] An augmentation is computed by the computing device based on the gesture (block 804). The augmentation, for instance, may be computed based on an operation to be performed that was indicated by the gesture. As previously described, the augmentation may also be configured in a variety of ways, such as to replace part of a view of the physical surroundings, indicate a current state of game play, involve an animation, and so forth. Thus, the gesture may cause the computing device to generate a variety of different augmentations.
[0075] The augmentation is displayed by the computing device on a display device that is at least partially transparent such that a physical portion of the physical game is viewable through the display device concurrently with the augmentation (block 806). For instance, the computing device 102 may be configured to employ a light guide 202 to support transparent viewing of the physical surroundings 108 sa previously described. Although use of a mobile form factor was described, a variety of other form factors may leverage the techniques described herein without departing from the spirit and scope thereof.
[0076] Example System and Device
[0077] FIG. 9 illustrates an example system generally at 900 that includes an example computing device 902 that is representative of one or more computing systems and/or devices that may implement the various techniques described herein. The computing device 902 may be, for example, a server of a service provider, a device associated with a client (e.g., a client device), an on-chip system, and/or any other suitable computing device or computing system. Further, the computing device 902 includes a display device 106 as previously described, which may incorporate a light guide 202 and light engine 204 as further detailed in relation to FIG. 2.
[0078] The example computing device 902 as illustrated includes a processing system 904, one or more computer-readable media 906, and one or more I/O interface 908 that are communicatively coupled, one to another. Although not shown, the computing device 902 may further include a system bus or other data and command transfer system that couples the various components, one to another. A system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures. A variety of other examples are also contemplated, such as control and data lines.
[0079] The processing system 904 is representative of functionality to perform one or more operations using hardware. Accordingly, the processing system 904 is illustrated as including hardware element 910 that may be configured as processors, functional blocks, and so forth. This may include implementation in hardware as an application specific integrated circuit or other logic device formed using one or more semiconductors. The hardware elements 910 are not limited by the materials from which they are formed or the processing mechanisms employed therein. For example, processors may be comprised of semiconductor(s) and/or transistors (e.g., electronic integrated circuits (ICs)). In such a context, processor-executable instructions may be electronically-executable instructions.
[0080] The computer-readable storage media 906 is illustrated as including memory/storage 912. The memory/storage 912 represents memory/storage capacity associated with one or more computer-readable media. The memory/storage component 912 may include volatile media (such as random access memory (RAM)) and/or nonvolatile media (such as read only memory (ROM), Flash memory, optical disks, magnetic disks, and so forth). The memory/storage component 912 may include fixed media (e.g., RAM, ROM, a fixed hard drive, and so on) as well as removable media (e.g., Flash memory, a removable hard drive, an optical disc, and so forth). The computer-readable media 906 may be configured in a variety of other ways as further described below.
[0081] Input/output interface(s) 908 are representative of functionality to allow a user to enter commands and information to computing device 902, and also allow information to be presented to the user and/or other components or devices using various input/output devices. Examples of input devices include a keyboard, a cursor control device (e.g., a mouse), a microphone, a scanner, touch functionality (e.g., capacitive or other sensors that are configured to detect physical touch), a camera (e.g., which may employ visible or non-visible wavelengths such as infrared frequencies to recognize movement as gestures that do not involve touch), and so forth. Examples of output devices include a display device (e.g., a monitor or projector), speakers, a printer, a network card, tactile-response device, and so forth. Thus, the computing device 902 may be configured in a variety of ways as further described below to support user interaction.
[0082] Various techniques may be described herein in the general context of software, hardware elements, or program modules. Generally, such modules include routines, programs, objects, elements, components, data structures, and so forth that perform particular tasks or implement particular abstract data types. The terms "module," "functionality," and "component" as used herein generally represent software, firmware, hardware, or a combination thereof. The features of the techniques described herein are platform-independent, meaning that the techniques may be implemented on a variety of commercial computing platforms having a variety of processors.
[0083] An implementation of the described modules and techniques may be stored on or transmitted across some form of computer-readable media. The computer-readable media may include a variety of media that may be accessed by the computing device 902. By way of example, and not limitation, computer-readable media may include "computer-readable storage media" and "computer-readable signal media."
[0084] "Computer-readable storage media" may refer to media and/or devices that enable persistent and/or non-transitory storage of information in contrast to mere signal transmission, carrier waves, or signals per se. Thus, computer-readable storage media refers to non-signal bearing media. The computer-readable storage media includes hardware such as volatile and non-volatile, removable and non-removable media and/or storage devices implemented in a method or technology suitable for storage of information such as computer readable instructions, data structures, program modules, logic elements/circuits, or other data. Examples of computer-readable storage media may include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, hard disks, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or other storage device, tangible media, or article of manufacture suitable to store the desired information and which may be accessed by a computer.
[0085] "Computer-readable signal media" may refer to a signal-bearing medium that is configured to transmit instructions to the hardware of the computing device 902, such as via a network. Signal media typically may embody computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as carrier waves, data signals, or other transport mechanism. Signal media also include any information delivery media. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media.
[0086] As previously described, hardware elements 910 and computer-readable media 906 are representative of modules, programmable device logic and/or fixed device logic implemented in a hardware form that may be employed in some embodiments to implement at least some aspects of the techniques described herein, such as to perform one or more instructions. Hardware may include components of an integrated circuit or on-chip system, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a complex programmable logic device (CPLD), and other implementations in silicon or other hardware. In this context, hardware may operate as a processing device that performs program tasks defined by instructions and/or logic embodied by the hardware as well as a hardware utilized to store instructions for execution, e.g., the computer-readable storage media described previously.
[0087] Combinations of the foregoing may also be employed to implement various techniques described herein. Accordingly, software, hardware, or executable modules may be implemented as one or more instructions and/or logic embodied on some form of computer-readable storage media and/or by one or more hardware elements 910. The computing device 902 may be configured to implement particular instructions and/or functions corresponding to the software and/or hardware modules. Accordingly, implementation of a module that is executable by the computing device 902 as software may be achieved at least partially in hardware, e.g., through use of computer-readable storage media and/or hardware elements 910 of the processing system 904. The instructions and/or functions may be executable/operable by one or more articles of manufacture (for example, one or more computing devices 902 and/or processing systems 904) to implement techniques, modules, and examples described herein.
[0088] As further illustrated in FIG. 9, the example system 900 enables ubiquitous environments for a seamless user experience when running applications on a personal computer (PC), a television device, and/or a mobile device. Services and applications run substantially similar in all three environments for a common user experience when transitioning from one device to the next while utilizing an application, playing a video game, watching a video, and so on.
[0089] In the example system 900, multiple devices are interconnected through a central computing device. The central computing device may be local to the multiple devices or may be located remotely from the multiple devices. Thus, the augmented reality module 118 of FIG. 1 may be implemented on a single computing device 102 as shown in FIG. 1, multiple computing devices 510, 512 as shown in FIG. 5, and may also leverage functionality of a platform 922 as further described below. In one embodiment, the central computing device may be a cloud of one or more server computers that are connected to the multiple devices through a network, the Internet, or other data communication link.
[0090] In one embodiment, this interconnection architecture enables functionality to be delivered across multiple devices to provide a common and seamless experience to a user of the multiple devices. Each of the multiple devices may have different physical requirements and capabilities, and the central computing device uses a platform to enable the delivery of an experience to the device that is both tailored to the device and yet common to all devices. In one embodiment, a class of target devices is created and experiences are tailored to the generic class of devices. A class of devices may be defined by physical features, types of usage, or other common characteristics of the devices.
[0091] In various implementations, the computing device 902 may assume a variety of different configurations, such as for computer 914, mobile 916, and television 918 uses. Each of these configurations includes devices that may have generally different constructs and capabilities, and thus the computing device 902 may be configured according to one or more of the different device classes and accordingly the display device 106 may also be configured to accommodate these different configurations. For instance, the computing device 902 may be implemented as the computer 914 class of a device that includes a personal computer, desktop computer, a multi-screen computer, laptop computer, netbook, and so on.
[0092] The computing device 902 may also be implemented as the mobile 916 class of device that includes mobile devices, such as a mobile phone, portable music player, portable gaming device, a tablet computer, a multi-screen computer, and so on. The computing device 902 may also be implemented as the television 918 class of device that includes devices having or connected to generally larger screens in casual viewing environments. These devices include televisions, set-top boxes, gaming consoles, and so on.
[0093] The techniques described herein may be supported by these various configurations of the computing device 902 and are not limited to the specific examples of the techniques described herein. This functionality may also be implemented all or in part through use of a distributed system, such as over a "cloud" 920 via a platform 922 as described below.
[0094] The cloud 920 includes and/or is representative of a platform 922 for resources 924. The platform 922 abstracts underlying functionality of hardware (e.g., servers) and software resources of the cloud 920. The resources 924 may include applications and/or data that can be utilized while computer processing is executed on servers that are remote from the computing device 902. Resources 924 can also include services provided over the Internet and/or through a subscriber network, such as a cellular or Wi-Fi network.
[0095] The platform 922 may abstract resources and functions to connect the computing device 902 with other computing devices. The platform 922 may also serve to abstract scaling of resources to provide a corresponding level of scale to encountered demand for the resources 924 that are implemented via the platform 922. Accordingly, in an interconnected device embodiment, implementation of functionality described herein may be distributed throughout the system 900. For example, the functionality may be implemented in part on the computing device 902 as well as via the platform 922 that abstracts the functionality of the cloud 920.
CONCLUSION
[0096] Although the invention has been described in language specific to structural features and/or methodological acts, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claimed invention.