The present invention relates generally to messaging, and in particular, to messaging within a mobile virtual and augmented reality system.
Messaging systems have been used for years to let users send messages to each other. Currently, one of the simplest ways to send a message to another individual is to send a text message to the individual's cellular phone. Recently, it has been proposed to expand the capabilities of messaging systems so that users of the network may be given the option of leaving “virtual graffiti” for users of the system. For example, the system described in application Ser. No. 11/844538, entitled M
Although the appearance of real objects captured by the camera reflects the lighting conditions of the environment (e.g., they look darker in poor lighting conditions), the virtual objects are rendered using a predetermined illumination that is not related to the real world lighting conditions. Therefore, an effective method of adapting the appearance of virtual objects to various lighting conditions of the real environment is needed for improving the viewing experience for users in a mobile augmented reality messaging system.
In order to address the above-mentioned need, a method and apparatus for messaging within a mobile virtual and augmented reality system is provided herein. During operation a user can create “virtual graffiti” that will be left for a particular device to view as part of an augmented-reality scene. The virtual graffiti will be assigned to either a particular physical location or a part of an object that can be mobile. The virtual graffiti is then uploaded to a network server, along with the location and individuals who are able to view the graffiti as part of an augmented-reality scene.
When a device that is allowed to view the graffiti is near the location, the graffiti will be downloaded to the device and displayed as part of an augmented-reality scene. To further enhance the user experience, the virtual graffiti can be dynamic, changing based on an ambient light source. For example, in an outdoor environment, the context available to the mobile device (time, location, and orientation) can be acquired in order to determine the source and intensity of natural light and apply it to appropriate surfaces of the virtual objects. As the location of a device is already available to GPS-enabled phones, and the locations of the virtual objects are also known to the system, the viewing direction of each virtual object can be calculated in the scene from the device. The direction of sun light, on the other hand, is determined by the current date and time as well as the latitude and longitude of the device. The position of the sun can be determined from solar ephemeris data and used to position a “virtual sun” (i.e., an omni-directional light source) in the virtual coordinate system used by the rendering software. The intensity of sunlight can be adjusted through known attenuation calculations that can further be modified based on current local weather conditions. Simultaneously, a light sensor could be used to determine the ambient light intensity which could also be replicated in the virtual environment to give an even more accurately illuminated scene.
In an augmented reality system, computer generated images, or “virtual images” may be embedded in or merged with the user's view of the real-world environment to enhance the user's interactions with, or perception of the environment. In the present invention, the user's augmented reality system merges any virtual graffiti messages with the user's view of the real world.
As an example, Ed could leave a message for his friends Tom and Joe on a restaurant door suggesting they try the chili. At various times of the day the intensity of the image left would be modified based on how much ambient light was falling on the restaurant door.
The present invention encompasses a method for modifying a virtual graffiti object. The method comprises the steps of obtaining sun location data, obtaining virtual graffiti, and modifying the virtual graffiti based on the sun location data.
The present invention encompasses a method for receiving and displaying virtual graffiti as part of an augmented-reality scene. The method comprises the steps of providing a location, receiving virtual graffiti in response to the step of providing the location, obtaining ambient-light information, modifying the virtual graffiti based on the ambient-light information, and displaying the modified virtual graffiti as part of an augmented-reality scene.
The present invention additionally encompasses an apparatus for receiving and displaying virtual graffiti as part of an augmented-reality scene. The apparatus comprises a transmitter providing a location, a receiver receiving virtual graffiti in response to the step of providing the location, circuitry determining ambient-light information and modifying the virtual graffiti based on the ambient-light information, and an augmented reality system displaying the modified virtual graffiti as part of an augmented-reality scene.
Turning now to the drawings, wherein like numerals designate like components,
During operation, a user (e.g., a user operating user device 105) determines that he wishes to send another user virtual graffiti as part of an augmented-reality scene. User device 105 is then utilized to create the virtual graffiti and associate the virtual graffiti with a location. The user also provides device 105 with a list of user(s) (e.g., user 107) that will be allowed to view the virtual graffiti. Device 105 then utilizes network 103 to provide this information to virtual graffiti server 101.
Server 101 periodically monitors the locations of all devices 105-109 along with their identities, and when a particular device is near a location where it is to be provided with virtual graffiti, server 101 utilizes network 103 to provide this information to the device. When a particular device is near a location where virtual graffiti is available for viewing, the device will notify the user, for example, by beeping. The user can then use the device to view the virtual graffiti as part of an augmented-reality scene. Particularly, the virtual graffiti will be embedded in or merged with the user's view of the real-world. It should be noted that in alternate embodiments, no notification is sent to the user. It would then be up to the user to find any virtual graffiti in his environment.
Although the above example was given with virtual graffiti 203 displayed on a particular object (i.e., door 201), in alternate embodiments of the present invention, virtual graffiti may be displayed unattached to any object. For example, graffiti may be displayed as floating in the air, or simply in front of a person's field of view. Additionally, although the virtual graffiti of
As discussed above, to further enhance the user experience, the virtual graffiti can be dynamic, changing based on the ambient light. For example, the shadowing of a virtual object may be allowed to change based on, for example, the position of the sun.
This is illustrated in
It should be noted that the above example was given with respect to the virtual graffiti changing its shadow in response to ambient light, however, in alternate embodiments of the present invention virtual graffiti 301 may change any combination of shadow, brightness, contrast, color, specular highlights, or texture maps in response to the ambient light. Additionally, in one embodiment of the present invention, the virtual graffiti is modified in response to ambient light by the device 105-109 viewing the virtual graffiti, however in another embodiment, the virtual graffiti is modified by server 101 prior to being transmitted to devices 105-109.
As is evident, for any particular device 105-109 to be able to display virtual graffiti attached to a particular “real” object, the device must be capable of identifying the object's location, and then displaying the graffiti at the object's location. There are several methods for accomplishing this task. In one embodiment of the present invention, this is accomplished via the technique described in US2007/0024527, M
In another embodiment of the present invention the attachment of the virtual graffiti to a physical object is accomplished by assigning the physical coordinates of the physical object (assumed to be GPS, but could be some other system) to the virtual graffiti. The physical coordinates must be converted into virtual coordinates used by the 3D rendering system that will generate the augmented-reality scene (one such 3D rendering system is the Java Mobile 3D Graphics, or M3G, API specifically designed for use on mobile devices). The most expedient way to accomplish the coordinate conversion is to set the virtual x coordinate to the longitude, the virtual y coordinate to the latitude, and the virtual z coordinate to the altitude thus duplicating the physical world in the virtual world by placing the origin of the virtual coordinate system at the center of the earth so that the point (0,0,0) would correspond the point where the equator and the prime meridian cross, projected onto the center of the earth. This would also conveniently eliminate the need to perform computationally expensive transformations from physical coordinates to virtual coordinates each time a virtual graffiti message is processed.
As previously mentioned, the physical coordinate system is assumed to be GPS, but GPS may not always be available (e.g., inside buildings). In such cases, any other suitable location system can be substituted, such as, for example, a WiFi-based indoor location system. Such a system could provide a location offset (x0,y0,z0) from a fixed reference point (xr,yr,zr) whose GPS coordinates are known. Whatever coordinate system is chosen, the resultant coordinates will always be transformable into any other coordinate system.
After obtaining the virtual coordinates of the virtual graffiti, a viewpoint must be established for the 3D rendering system to be able to render the virtual scene. The viewpoint must also be specified in virtual coordinates and is completely dependent upon the physical position and orientation (i.e., viewing direction) of the device. If the viewpoint faces the virtual graffiti, the user will see the virtual graffiti from the viewpoint's perspective. If the user moves toward the virtual graffiti, the virtual graffiti will appear to increase in size. If the user turns 180 degrees in place to face away from the virtual graffiti, the virtual graffiti will no longer be visible and will not be displayed. All of these visual changes are automatically handled by the 3D rendering system based on the viewpoint.
Given a virtual scene containing virtual graffiti (at the specified virtual coordinates) and a viewpoint, the 3D rendering system can produce a view of the virtual scene unique to the user. This virtual scene must be overlaid onto a view of the real world to produce an augmented-reality scene. One method to overlay the virtual scene onto a view of the real world from the mobile device's camera is to make use of an M3G background object which allows any image to be placed behind the virtual scene as its background. Using the M3G background, continuously updated frames from the camera can be placed behind the virtual scene, thus making the scene appear to be overlaid on the camera output.
Given the above information, a device's location is determined and sent to the server. The server determines what messages, if any, are in proximity to and available for the device. These messages are then downloaded by the device and processed. The processing involves transforming the physical locations of the virtual messages into virtual coordinates. The messages are then placed at those virtual coordinates. At the same time, the device's position and its orientation are used to define a viewpoint into the virtual world also in virtual coordinates. If the downloaded virtual message is visible from the given viewpoint, it is rendered on a mobile device's display on top of live video of the scene from the device's camera.
Thus, if the user wants to place a virtual message on the top of an object, the user must identify the location of the point on top of the object where the message will be left. In the simplest case, the user can place his device on the object and capture the location. He then sends this location with the virtual object and its associated content (e.g., a beer stein with the text message “try the porter” applied to the southward-facing side of the stein) to the server. The user further specifies that the message be available for a particular user. When the particular user arrives at the bar and is within range of the message, they will see the message from their location (and, therefore, their viewpoint). If they are looking toward the eastward-facing side of the message, they will see the stein, but will just be able to tell that there is some text message on the southern side. If a user wishes to read the text message, they will have to move their device (and thus their viewpoint) so that it is facing the southern side of the stein.
Although only one personal object manager 405 is shown in
During operation, a user of the device creates virtual graffiti via user interface 517. The virtual graffiti preferably, but not necessarily, comprises at least two parts, a virtual object and content. The virtual object is a 3D object model that can be a primitive polygon or a complex polyhedron representing an avatar, for example. The content is preferably either text, pre-stored images such as clip art, pictures, photos, audio or video clips, . . . , etc. The virtual object and its associated content comprise virtual graffiti that is stored in graffiti database 508. In one embodiment of the present invention, user interface 517 comprises an electronic tablet capable of obtaining virtual objects from graffiti database 508 and creating handwritten messages and/or pictures.
Once logic circuitry 505 receives the virtual graffiti from user interface 517 or graffiti database 508, logic circuitry 505 accesses context-aware circuitry 509 and determines a location where the graffiti was created (for stationary graffiti) or the device to which the virtual graffiti will be attached (for mobile graffiti). Logic circuitry 505 also receives a list of users with privileges to view the graffiti. This list is also provided to logic circuitry 505 through user interface 517.
In one embodiment of the present invention the virtual graffiti is associated with a physical object. When this is the case, logic circuitry 505 will also receive information required to attach the graffiti to an object. Finally, the virtual graffiti is provided to virtual graffiti server 101 by logic circuitry 505 instructing transmitter 511 to transmit the virtual graffiti, the location, the list of users able to view the graffiti, and if relevant, the information needed to attach the graffiti to an object. As discussed above, server 101 periodically monitors the locations of all devices 105-109 along with their identities, and when a particular device is near a location where it is to be provided with virtual graffiti, server 101 utilizes network 103 to provide this information to the device.
When a particular device is near a location where virtual graffiti is available for viewing, the device will notify the user, for example, by instructing user interface 517 to beep. The user can then use the device to view the virtual graffiti as part of an augmented-reality scene. Thus, when the device of
Receiver 513 will receive virtual graffiti and its location. Logic circuitry 505 will store this graffiti within graffiti database 508. Logic circuitry 505 periodically accesses context-aware circuitry 509 to get updates to its location and provides these updates to server 101. When logic circuitry 505 determines that the virtual graffiti should be displayed, it will access ambient light modification circuitry 507, causing circuitry 507 to update the virtual graffiti based on the ambient light. The user can then use augmented reality system 515 to display the updated graffiti. More particularly, imager 503 will image the current background and provide this to display 501. Display 501 will also receive the virtual graffiti from graffiti database 508 and provide an image of the current background with the graffiti appropriately displayed. Thus, the virtual graffiti will be embedded in or merged with the user's view of the real-world.
As discussed above, to further enhance the user experience, the virtual graffiti can be dynamic, changing based on the ambient light. When modification to the virtual graffiti is to take place via a user device, each user device will comprise ambient light modification circuitry 507 to perform this task. However, when modification to the virtual graffiti is to take place via server 101, server 101 will modify the graffiti via ambient light modification circuitry 411 prior to sending the virtual graffiti to the user device. Regardless of where the virtual graffiti gets modified based on the ambient light; circuitry will perform the following steps in order to make the modification.
In alternate embodiments of the present invention, further modification of the virtual graffiti may take place by modifying the virtual graffiti based on current weather conditions, and in particular, amount of cloud cover. More particularly, circuitry 507 may access context-aware circuitry 509 to determine a current weather report (e.g., % cloud cover) for the local area. The virtual graffiti may then be further modified by reducing the intensity of the virtual light sources according to attenuation factors associated with the level of cloud cover.
In yet another alternate embodiment of the present invention, further modification of the virtual graffiti may take place by modifying the virtual graffiti based on current ambient light as determined from a light sensor. More particularly, circuitry 507 may access context-aware circuitry 509 to determine an amount of ambient light. (In this particular embodiment context-aware circuitry 509 comprises a light sensor). The virtual graffiti may then be further modified by adjusting the intensity of virtual light sources to match the measured values detected by the light sensor.
Continuing with the logic flow of
This information is passed to logic circuitry 505 (step 703). At step 705, logic circuitry 505 accesses context-aware circuitry 509 and retrieves a current location for the virtual graffiti. The logic flow continues to step 707 where logic circuitry 505 instructs transmitter 511 to transmit the location, a digital representation (e.g., a .jpeg or .gif image) of the graffiti, and the list of users with privileges to view the graffiti. It should be noted that in the 3D virtual object case, the digital representation could include URLs to 3D models and content (e.g., photos, music files, etc.). Additionally, if ambient-light modification of the graffiti takes place at server 101, ambient-light information may be transmitted to server 101. For example, if context-aware circuitry comprises a light sensor, an amount of ambient light may be sent to server 101 in order to aide in modifying the virtual graffiti.
Finally, if the virtual graffiti is changing in appearance, the logic flow may continue to optional step 709 where logic circuitry 505 periodically updates the graffiti. For example, if an ambient light sensor detects a change in ambient light (e.g., sudden cloud cover, sudden sunshine, . . . , etc) this information may be transmitted to server 101 to aide in graffiti modification.
At step 805, logic circuitry 505 (acting as a profile manager) analyzes the virtual graffiti and ambient-light modification circuitry 507 to determine if the graffiti should be modified to be better viewed in the current light. This determination is made either by a user-specified condition, on a threshold, or always. If a user disables this feature, no modifications will be made. If modifications are to be based on thresholds, the virtual graffiti will be modified when the ambient light exceeds an upper threshold or falls below a lower threshold. In the former case, the virtual graffiti will need to be illuminated to match the increased ambient light; in the latter the illumination on the graffiti will need to be reduced to match the ambient light. The last alternative is to always modify the graffiti based on the current lighting conditions
Continuing, at step 807, logic circuitry 505 determines if the graffiti should be modified, and if not the logic flow continues to step 811, otherwise the logic flow continues to step 809 where ambient-light modification circuitry 507 appropriately modifies the virtual graffiti based on the ambient light. At step 811, logic circuitry 505 accesses virtual graffiti database 508 and stores the modified or unmodified virtual graffiti along with other information necessary to display the graffiti (e.g., the location of the graffiti). Finally, at step 813, display 501 (as part of augmented reality system 515) displays the modified or unmodified virtual graffiti as part of an augmented-reality scene when the user is at the appropriate location.
At steps 901-903 ambient-light information is obtained. More particularly, at step 901 a determination is made as to whether or not the device is indoors or outdoors. As discussed above, this determination can be made in several ways. In one embodiment of the present invention this determination can be made by accessing context-aware circuitry 509 and determining GPS coordinates for the device. From the GPS coordinates a point-of-interest database may be accessed to determine if the user/graffiti is indoors or outdoors. In a second embodiment, context-aware circuitry comprises a light sensor, and based on an amount of detected ambient light hitting sensor 509, circuitry 507 will make a determination if the device is indoors or not, or there is heavy cloud cover.
At step 902 context-aware circuitry 509 is accessed to determine position data for the sun. This is accomplished by determining a local time and date, and calculating the position for the sun based on the local time and date. This data preferably comprises an apparent geocentric position such as a right ascension and declination for the sun.
At step 903 local weather data (e.g., an amount of cloud cover) is obtained. This information may be obtained from context-aware circuitry 509, with context-aware circuitry 509 acting as a data path to a local-weather database. For example context-aware circuitry 509 may comprise an internet access that accesses local weather via one of many available internet weather sites.
Once ambient-light information is obtained (from steps 901-903), the logic flow continues to step 905 where the virtual graffiti is modified based on the sun position data and optionally the amount of ambient light. As discussed above, the step of modifying the virtual graffiti will comprise casting a virtual shadow for the virtual graffiti if it determined that the sun is shining, however, in alternate embodiments of the present invention the modification may comprise modifying any combination of shadow, brightness, contrast, color, specular highlights, or texture maps in response to the ambient light. Some of the possible modifications to the graffiti are:
While the invention has been particularly shown and described with reference to particular embodiments, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention. It is intended that such changes come within the scope of the following claims.
This application is related to application Ser. No. 11/844538, entitled MOBILE VIRTUAL AND AUGMENTED REALITY SYSTEM, filed Aug. 24, 2007, application Ser. No. 11/858997, entitled MOBILE VIRTUAL AND AUGMENTED REALITY SYSTEM, filed Sep. 21, 2007, to application Ser. No. 11/930974 entitled MOBILE VIRTUAL AND AUGMENTED REALITY SYSTEM, filed Oct. 31, 2007, and to application Ser. No. 11/962139 entitled MOBILE VIRTUAL AND AUGMENTED REALITY SYSTEM, filed Dec. 21, 2007.