Loading indicator in augmented reality

By dynamically adjusting the size and position of the load indicator in an augmented reality environment, the problem of the lack of effective load indicators when users wait for AR objects to be loaded is solved, and effective progress and waiting time prompts are achieved, improving user experience.

CN111971714BActive Publication Date: 2025-02-11GOOGLE LLC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN201980024110.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-09-12
Filing Date
2019-08-20
Publication Date
2025-02-11
Estimated Expiration
2040-01-01

AI Technical Summary

Technical Problem

In augmented reality environment, users lack effective load indicators when waiting for AR objects to load, making it difficult for users to understand the loading progress and waiting time.

Method used

By presenting a view of the augmented reality environment on the device, data download of AR objects is initiated, and the size and position of the load indicator is dynamically adjusted based on the size and download progress of the AR object, providing progress indicators and waiting time prompts.

Benefits of technology

Effectively convey the progress and expected waiting time of AR object loading to users, reduce uncertainty during user waiting periods, and improve user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN111971714B_ABST
    Figure CN111971714B_ABST
Patent Text Reader

Abstract

A method includes: presenting a view of at least a portion of an augmented reality (AR) environment on a device, the AR environment including a first AR location corresponding to a first physical location in the physical environment; initiating downloading of first data representing a first AR object associated with the first AR location to the device; assigning a size parameter to a first loading indicator of the first AR object based on a size of the first AR object; determining a spatial relationship between the view and the first physical location; and presenting a first loading indicator in the view, the first loading indicator having a size based on the assigned size parameter and being presented at a second AR location based on the determined spatial relationship.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application is a continuation of and claims priority to U.S. non-provisional patent application No. 16 / 129,090, filed on September 12, 2018, entitled “LOADING INDICATOR IN AUGMENTED REALITY ENVIRONMENT,” the disclosure of which is incorporated herein by reference in its entirety. Technical Field

[0003] This article generally relates to loading indicators in augmented reality environments. Background Art

[0004] Participants may be provided with immersive experiences related to the consumption of computer-based media and other content. Some such experiences are provided using devices such as smartphones or tablets that present virtual reality (VR) and / or augmented reality (AR) environments. For an immersive experience with an AR environment, a person may view a screen that presents at least aspects of the physical environment (e.g., a video or image of the physical space) and VR aspects (e.g., virtual objects superimposed on the video or image). Summary of the invention

[0005] In a first aspect, a method includes: presenting a view of at least a portion of an augmented reality (AR) environment on a device, the AR environment including a first AR location corresponding to a first physical location in the physical environment; initiating downloading of first data representing a first AR object associated with the first AR location to the device; assigning a size parameter to a first loading indicator of the first AR object based on a size of the first AR object; determining a spatial relationship between the view and the first physical location; and presenting a first loading indicator in the view, the first loading indicator having a size based on the assigned size parameter and presented at a second AR location based on the determined spatial relationship.

[0006] Implementations may include any or all of the following features. The spatial relationship indicates that the first physical location is within the view, and the method further includes: selecting a second AR location to present the first loading indicator to be consistent with the first AR location in the view. The spatial relationship indicates that the first physical location is not within the view, and the method further includes: selecting the second AR location to present the first loading indicator on the side of the view closest to the first AR location. The first loading indicator is smaller than a second loading indicator configured to be used when the spatial relationship indicates that the first physical location is within the view. The first loading indicator has a two-dimensional appearance, and the second loading indicator has a three-dimensional appearance, and the second loading indicator is configured to be used when the spatial relationship indicates that the first physical location is within the view. The first loading indicator includes an arrow, and the first loading indicator is positioned so that the arrow points to the first AR location. During the download of the second data representing the second AR object, the size information of the second AR object is not available to the device, and the method further includes: based on the unavailability of the size information, presenting a second loading indicator of the second AR object, the second loading indicator is different from the first loading indicator. During the download, a remaining duration of the download of the first data is not available to the device, and the method further includes: based on the remaining duration being unavailable, activating an indeterminate duration mode of the first loading indicator. The method further includes: subsequently determining a remaining duration of the download of the first data, and based on the determining the remaining duration, activating a determined duration mode of the first loading indicator. The method further includes: determining whether a plane associated with the first AR position in the AR environment is known, and if known, selecting a second AR position to present the first loading indicator on the plane. If the determination reflects that the plane associated with the first AR position in the AR environment is not known, the method further includes: selecting the second AR position based on an AR marker in the AR environment to present the first loading indicator. The first data includes a grid and a texture configured to be applied to the grid, and the method further includes: determining a size of the first AR object using the grid. The method further includes: determining a footprint of the first AR object using the grid, and based on the determined footprint, transforming the first loading indicator into a footprint representation of the first AR object. The download of the first data is triggered by a user selection in a presentation list of AR objects. The download of the first data is triggered by a location of the device in the physical environment. The download of the first data is triggered by accessing a uniform resource locator using the device. The downloading of the first data includes peer-to-peer transmission. The first data is stored on the device after downloading, and the first loading indicator indicates the progress of preparing to present the first AR object using the stored first data.

[0007] In a second aspect, a non-transitory storage medium has instructions stored thereon that, when executed, are configured to cause a processor to perform operations including: presenting a view of at least a portion of an augmented reality (AR) environment on a device, the AR environment including a first AR location corresponding to a first physical location in the physical environment; initiating downloading of first data representing a first AR object associated with the first AR location to the device; assigning a size parameter to a first loading indicator of the first AR object based on a size of the first AR object; determining a spatial relationship between the view and the first physical location; and presenting a first loading indicator in the view, the first loading indicator having a size based on the assigned size parameter and presented at a second AR location based on the determined spatial relationship.

[0008] Implementations may include any or all of the following features. The first loading indicator includes a peripheral element having a progress indicator, the peripheral element surrounding a transparent center of the first loading indicator. The operations further include: determining a status of a download link for downloading the first data, and assigning a color to the first loading indicator based on the determined status.

[0009] In a third aspect, a non-transitory storage medium has instructions stored thereon that, when executed, are configured to cause a processor to generate a graphical user interface, the graphical user interface comprising: a view including at least a portion of an augmented reality (AR) environment, the AR environment including a first AR location corresponding to a physical location in a physical environment, wherein an AR object is associated with the first AR location; and a loading indicator for the AR object, the loading indicator having a size based on a size of the AR object and a second AR location presented in the view based on a spatial relationship between the view and the physical location.

[0010] Implementations may include any or all of the following features: The spatial relationship indicates that the physical location is within the view, and the second AR location is selected to present the loading indicator to coincide with the first AR location in the view. The spatial relationship indicates that the physical location is not within the view, and wherein the second AR location is selected to present the loading indicator on a side of the view closest to the first AR location. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] Figure 1 An example of a system that may present a view of an augmented reality (AR) environment is shown.

[0012] FIG. 2A to FIG. 2B An example of presenting a loading indicator in a view before presenting an AR object is shown.

[0013] FIG. 3A to FIG. 3B An example of a loading indicator presenting an AR object loading to a location outside of the current view is shown.

[0014] FIG. 4A to FIG. 4B An example of assigning a size parameter to a loading indicator based on the size of an AR object is shown.

[0015] FIG. 5A to FIG. 5B Examples of a loading indicator having a three-dimensional appearance and a loading indicator having a two-dimensional appearance are shown.

[0016] FIG. 6A to FIG. 6B An example of a loading indicator is shown.

[0017] FIG. 7A to FIG. 7B An example of selecting a location for a loading indicator is shown.

[0018] Figure 8 An example illustrating a system for downloading data representing an AR object to a device is shown.

[0019] 9A to 9C An example of a loading indicator that transforms into a footprint representation of an AR object is shown.

[0020] Figure 10 to Fig. 10C An example of triggering downloading of data representing an AR object to a device is shown.

[0021] Fig.11 An example of a system that can present an AR environment is shown.

[0022] Fig.12 An example of a process related to a loading indicator is shown.

[0023] Fig.13 Examples of computer devices and mobile computer devices consistent with the disclosed embodiments are shown.

[0024] Like reference numbers in the various drawings indicate like elements. DETAILED DESCRIPTION

[0025] This document describes examples of presenting a loading indicator in a view of an augmented reality (AR) environment provided on a device. A loading indicator may be presented in the view to indicate to a user that an AR object is being downloaded to the device and / or being rendered on the device. The loading indicator may indicate that the AR object is being downloaded; that the AR object is in a local environment (e.g., on the device) and is currently loading for rendering; and / or that the device (e.g., a smartphone) is waiting because one or more other receiver devices are attempting to obtain the AR object, to name a few examples. The loading indicator may have one or more characteristics that represent some aspect of the AR object and / or its processing.

[0026] Objects of various types can be presented in an AR environment on a device. Some of these objects may have relatively large sizes presented in an AR environment. The size referred to here is the size of the object when it appears in the AR environment, not the size of the file or other data structure containing the data of the object. For this and / or other reasons, the implementation can be configured to host these objects on the device and download the objects to the device as needed. The downloading and / or rendering of the downloaded object may take some time that may be obvious to the user. For example, the process may take the order of magnitude of about a few seconds. When the user waits for the object to appear, some implementations can visually convey relevant information to the user. For example, the communication can indicate the fact that the object is loading, indicate where the object will be, and / or indicate how long the user needs to wait. This may be conducive to conveying such information within the AR environment where the object is scheduled to appear, so that, for example, the user can consider the imminent appearance of the object when they set out to complete the task, and the user will not leave or divert his eyes from the location where the object appears at the expected time. A loading indicator including but not limited to any loading indicator shown in the examples herein can be presented to convey this or other information to the user. For example, the loading indicator can indicate how large the object to be loaded is, so that the user can correctly position himself or herself in the AR environment.

[0027] The presentation of a loading indicator may provide any of a number of advantages. A loading indicator may be presented at or near the future location of an object in an AR environment to help direct the user's gaze toward that location, which may reduce the likelihood that the user will miss or ignore the object. If the user is not currently looking toward the future location of the object in the AR environment (e.g., as reflected by the user's selection of a particular view of the AR environment presented on the device), an alternative form of a loading indicator may be presented that may indicate in which direction the user should turn their gaze (e.g., by changing the view of the AR environment) to observe the object. The loading indicator may, for example, indicate to the user the size of the object that will appear in the AR environment by modifying the size of the loading indicator corresponding to the size of the object. In this way, information represented by or associated with the AR object may be effectively directed to the user, thereby improving the efficiency and effectiveness of information transmission in the AR environment provided by the device. In some embodiments, for example, in the case of providing an AR environment to help a user perform a technical task such as manufacturing or assembly, the loading indicator may improve the human-computer interaction process by ensuring that AR objects, such as instructions or warnings, are effectively directed to the user. In some embodiments, the shape and / or size of the loading indicator may be adjusted based on aspects of the AR object (e.g., its footprint). For example, when the size of the object being loaded is not available to the device, a loading indicator of a default shape (e.g., a circle) may be presented. Conversely, when the size of the object being loaded is available or becomes available, a loading indicator having another shape (e.g., a square or rectangle) may be presented. In some embodiments, the loading indicator may indicate the waiting time to the user. For example, when the waiting time of the object being loaded is not available to the device, an uncertain loading indicator (e.g., an uncertain animation loop) may be presented. Conversely, when the waiting time of the loaded object is available or becomes available, a determined loading indicator (e.g., a communication loading percentage) may be presented. This functionality may be implemented by creating corresponding uncertain duration modes and determined duration modes for the loading indicator. The indication of the waiting time may help the user foresee the appearance of the AR object and consider the imminent appearance of the AR object when the user performs the technical task process. The loading indicator may be anchored in the AR environment in any of a variety of ways. In some embodiments, in the case of using plane detection to place an object, the loading indicator may be made to appear on a plane in the AR environment where the object is to appear. In some embodiments, one or more types of markers may be used, for example, so that the loading indicator appears on a marker surface in the AR environment. This approach can reduce or eliminate the effort required to find a flat surface for anchoring.

[0028] The AR environment can be presented to the user in any of a number of use case scenarios. In some embodiments, the AR system is designed to assist one or more individuals in performing technical tasks. For example, the AR system can provide a continuous and / or guided human-computer interaction process to assist the user in a technical task such as, for example, a manufacturing or assembly task. One or more AR objects can be presented to the user to provide instructions, suggestions, warnings, and / or any other information to assist in completing the task. In some embodiments, the AR system is designed to facilitate education by one or more individuals (sometimes referred to as "teachers") for the benefit of one or more participants (sometimes referred to as "students"). In some embodiments, the teacher can organize an AR tour held between tables in a classroom. Many AR entities related to tables or other structures can be presented (e.g., in corresponding groups organized by corresponding physical markers). Students can then move between tables to examine new AR objects or AR environments. The teacher may have stored information defining the tour on a device (e.g., a smartphone, tablet computer, or other mobile device) and data corresponding to the AR objects that should be presented on the students' respective devices. To start the tour, the student device can be coupled to the teacher's device (e.g., via near field communication or another type of wireless signaling). The teacher's device can send the first AR object to the student's device. The transfer can be done sequentially or in a loop, to name just two examples. As the tour progresses, subsequent AR objects can then be sent to the student's device.

[0029] In some embodiments, AR objects can be downloaded to a user device and stored on the user device in preparation for a later viewing / interaction session. For example, a user can download an AR tour including its AR object to a device and then activate the tour at will. In some embodiments, the object can remain stored on the device for a predetermined time and then automatically deleted.

[0030] The examples described herein involve AR objects and AR environments. It is expected that a mix of AR and virtual reality (VR) experiences can be provided to users. The embodiments described herein can be used within an immersive VR experience (e.g., a VR experience using a head-mounted display). A user can use any of a variety of types of devices or other apparatuses to experience the presentations described herein. In some embodiments, a user observes an AR environment using a mobile device (e.g., a smartphone or tablet computer). In some embodiments, a user observes an AR environment using a head-mounted display (e.g., a pair of AR glasses). Fig.13 Describe an example of a system architecture.

[0031] Figure 1An example of a system 100 is shown that can present a view 102 of an AR environment 104. The system 100 or its components can be used with one or more examples described herein. The system 100 includes a device 106 having a display 108. For example, the device 106 can include a mobile device (e.g., a smartphone or tablet computer) or a head-mounted display.

[0032] The AR system 110 may be installed on the device 106, or installed in a separate system (e.g., in the cloud), from which it may provide services to the device 106. In some embodiments, the AR system 110 may include software, hardware, or a combination thereof to facilitate presenting the view 102 to the user using the device 106 and allowing the user to interact with the AR environment 104. In facilitating these operations, the AR system 110 may be organized in the form of one or more modules corresponding to (multiple) corresponding functions. In some embodiments, the AR system 110 includes an asset loading component 112 and / or a loading indication component 114. For example, the asset loading component 112 may be responsible for downloading data representing one or more AR objects 116 or 118 to the device 106. For example, the loading indication component 114 may be responsible for indicating to the user that the AR object 116 or 118 is displayed during the loading process. Here, a loading indicator 120 corresponding to some object other than the AR objects 116 and 118 is currently being presented at a position 122 within the view 102. The loading indicator 120 and the loading indicators in some other examples described herein are illustrated with a dashed outline. For example, the dashed outline may represent any of a variety of physical appearances that the loading indicator may have. The loading indicator 120 may indicate to the user that a download of data representing other AR objects to the device 106 has been initiated. The loading indicator 120 may be assigned a size parameter based on the size of the AR object corresponding to the loading indicator 120. In some embodiments, the size of the loading indicator 120 may be proportional to the size of the AR object. The size of the loading indicator referred to here is the size of the loading indicator when it appears in the AR environment, not the size of the file or other data structure containing the data of the loading indicator. For example, the size of the loading indicator 120 may be proportional to the size of the AR object within a range between a maximum size and a minimum size.

[0033] In this example, in the AR environment 104, the AR object 116 is being presented at a position 124, and the AR object 118 is being presented at a position 128. The positions 124 and 128 in the AR environment 104 may correspond to corresponding positions in the physical environment, for example, as will be described below. Here, the position 124 is within the current range of the view 102 (i.e., the AR object 116 is currently visible to the user), while the position 128 is outside the view 102 (i.e., the AR object 118 is currently not visible to the user). Based on whether the position of the object to which the loading indicator 120 corresponds is within or outside the view 102, the position 122 at which the loading indicator 120 is presented may be selected. For purposes of clarity, the positions 122, 124, and 128 are schematically illustrated here as circles with dashed outlines; however, they themselves need not be visible in actual implementations.

[0034] The user can observe and interact with the AR environment 104 by selecting a view 102 of the AR environment 104 that corresponds to the content of interest to the user while exploring. In some embodiments, the user can aim a sensor (e.g., a camera) of the device 106 at the physical environment 130 to at least partially affect the content that the AR system 110 should present in the view 102. The physical environment 130 can be within any environment in which the device 106 is located or that the device 106 can perceive. The field of view 132 of the device 106 is schematically indicated here with respect to the physical environment 130. For example, the user can aim the field of view in any of various directions at the physical environment 130 to control which aspect of the AR environment 104 should currently be covered by the view 102. The physical environment can include any number of physical objects or other structures. Here, physical objects 134 and 136 are shown. Locations within the physical environment 130 can correspond to locations within the AR environment 104 (e.g., locations 124 or 128).

[0035] System 100 illustrates an example of a method that includes presenting a view (e.g., view 102) of at least a portion of an AR environment (e.g., AR environment 104) on a device (e.g., device 106). The AR environment includes a first AR location (e.g., location 122) corresponding to a first physical location in a physical environment (e.g., physical environment 130). The method includes initiating downloading data representing an AR object associated with the first AR location to the device. The method includes assigning a size parameter to a loading indicator (e.g., loading indicator 120) of the AR object based on a size of the AR object. The method includes determining a spatial relationship between the view and the physical location (e.g., whether the first AR location corresponding to the physical location in the AR environment 104 is within the view 102). The method includes presenting a loading indicator in the view, the loading indicator having a size based on the assigned size parameter and presenting it at a second AR location based on the determined spatial relationship. The second AR location can be the same as or different from the first AR location. For example, the second AR location can be selected to coincide with the first AR location in the view.

[0036] FIG. 2A to FIG. 2B An example of presenting a loading indicator 200 in the view 102 before presenting the AR object 202 is shown. The loading indicator 200 can be used with any or all of the examples described herein. A location 204 is also indicated in the view 102. The loading indicator 200 is placed at the location 204. In some embodiments, when the system (e.g., generating the view 102) Figure 1 When the AR system 110 in the AR object 202 initiates the download of the AR object 202, the system may present the loading indicator 200 to the user as a placeholder before the AR object 202 becomes visible. The loading indicator 200 may be assigned a size parameter based on the size of the AR object 202. The size parameter may control, but is not limited to controlling, the size, width, length, and / or depth of the loading indicator 200. For example, the larger the AR object 202, the larger the loading indicator 200 may give the user a realistic expectation. Figure 2B It is shown that the AR object 202 will be placed at a location 204, which can correspond to a specific physical location in the physical environment where the user is located. Figure 2A It is shown that during the download, the location 204 is within the view 102. Based on this spatial relationship, the appearance of the loading indicator 200 can be selected. For example, the loading indicator 200 can be placed at the location 204 where the AR object 202 will be presented. In some embodiments, the spatial relationship includes a binary indicator corresponding to whether the location 204 is within the view 102. In some embodiments, the spatial relationship can reflect the coordinates (e.g., x, y, z) within the view corresponding to the location 204.

[0037] In the above example, the loading indicator 200 appears during the download of the data of the AR object 202. In some embodiments, the data of the AR object 202 may already be stored on the device generating the view 102, but the AR object 202 may not yet be rendered in the view 102. For example, before the AR object 202 is rendered in the view 102, the loading indicator 200 may then be presented during the time it takes to process the data. Such loading and / or unloading of AR objects may occur in a variety of situations. For example, a user may have access to multiple AR objects stored locally on the device, and the device may switch between two or more such AR objects (e.g., by input from the user or by another signal) to alternate between (multiple or one) of the AR objects presented by the device at any given time. Thus, the loading indicator 200 may then be used to let the user know the future location and approximate size of the next AR object(s), and in doing so, indicate to the user the progress of preparing to present the next AR object(s).

[0038] FIG. 3A to FIG. 3B An example of a loading indicator 300 is shown presenting an AR object 202 loaded to a location 302 outside of a current view. The loading indicator 300 may be used with any or all of the examples described herein. Figure 3A The current view is shown as view 102. However, in Figure 3B , where AR object 202 would appear at location 302, the current view is an alternative view 102′ that is at least partially different from view 102. That is, in view 102, location 302 is not visible because location 302 is not within view 102. Therefore, loading indicator 300 is placed at location 304 within view 102. Location 304 can be any predefined location within view 102. In some embodiments, location 304 is selected to be at or near a side 306 (e.g., the right side) of view 102, which is closer to location 302 than other sides (e.g., the left side, top side, and bottom side of view 102). For example, when view 102 is visible on the device, the user can pan the device to the right to instead view view 102′. That is, when view 102 is visible, side 306 is closest to location 302 within view 102′. Thus, the loading indicator 300 may be used to indicate to the user that an AR object 202 is currently loading for presentation; not within the currently visible view 102 , but in the view 102 ′.

[0039] The loading indicator 300 indicating loading of the AR object 202 outside the currently visible view may be connected to the loading indicator 200 ( Figure 2A In some embodiments, the loading indicator 300 is smaller than the loading indicator 200 ( Figure 2A ). For example, a smaller size can be used to avoid blocking content in view 102 while allowing the user to recognize that loading of some content that may be of interest is occurring in view 102'. In some embodiments, loading indicator 300 is or has indicator 308. For example, indicator 308 can be an arrow pointing in the direction of location 302.

[0040] FIG. 4A to FIG. 4B Examples of assigning size parameters to loading indicators based on the size of the AR object are shown. These examples relate to loading indicators 400, 402, and 404 in view 102, which represent AR objects 406, 408, and 410, respectively. Loading indicators 400, 402, and 404 and / or AR objects 406, 408, and 410 can be used with any or all of the examples described herein.

[0041] In this example, the loading of AR objects 406, 408, and 410 may occur simultaneously or in any order. In response to the start of loading of AR object 406, the size it will have when it appears in the AR environment may be determined. Based on the determined size, a size parameter may be assigned to loading indicator 400. In this example, AR object 406 is a rectangular box of a certain size in view 102. For example, the loading indicator 400 may be assigned its size based on the size of AR object 406. In some embodiments, it is the spatial size of AR object 406 that is based on the size parameter, rather than another size-related characteristic, such as the size of a file containing data to be used to render AR object 406. The size parameter may correspond to one or more size-related characteristics including, but not limited to, height, width, depth, length, and / or circumference.

[0042] In response to the start of loading of AR object 408, its size can be determined, and based on the determined size, a size parameter can be assigned to loading indicator 402. In this example, the size of AR object 408 is larger than the size of AR object 406. The larger size can cause a larger size parameter to be assigned to loading indicator 402 compared to loading indicator 400. For example, this can cause loading indicator 402 to be larger than loading indicator 400 in view 102.

[0043] In some embodiments, size information of an AR object may not be available when it is loading. Here, for example, size information of AR object 410 is not available during the loading process. In response to the start of loading of AR object 410, based on the fact that size information is not available, a predefined shape may be assigned to loading indicator 404. In this example, a circular shape is assigned to loading indicator 404. The circular shape may distinguish loading indicator 404 as a different type than loading indicator 400 or 402. For example, loading indicator 400 or 402 may have a square or rectangular shape. Thus, loading indicator 404 may convey to the user that AR object 410 is loading, while its circular shape may indicate that the size of loading indicator 404 does not necessarily reflect the size that AR object 410 will have.

[0044] FIG. 5A to FIG. 5B Examples of a loading indicator 500 having a three-dimensional appearance and a loading indicator 502 having a two-dimensional appearance are shown. Loading indicator 500 or 502 can be used with any or all of the examples described herein. Loading indicator 500 in view 102 is illustrated here as a square or rectangular box drawn with a dashed outline. For example, the dashed outline can represent any of a variety of three-dimensional physical appearances that a loading indicator may have.

[0045] The dimensions of the loading indicator may relate to one or more characteristics. In some embodiments, the dimensions of the loading indicator may correspond to whether the loading indicator marks the location where the AR object will appear or another location. For example, the loading indicator may be located at location 204 ( Figure 2A ) uses a loading indicator 500 having a three-dimensional appearance because the location is an AR object 202 ( Figure 2B ) will appear. For example, in view 102 ( Figure 3A ) uses a loading indicator 502 having a two-dimensional appearance because the location is closer to the view 102 ′ ( ) containing the location 302 where the AR object 202 will appear. Figure 3B ) near one side 306.

[0046] The loading indicator can be transformed into any other loading indicator based on the surrounding environment. In some embodiments, the loading indicator 500 having a three-dimensional appearance can be presented when the view containing the location is visible, and can be transformed or converted into a loading indicator 502 having a two-dimensional appearance when the view changes, so that the location of the AR object is no longer visible. Similarly, the loading indicator 502 having a two-dimensional appearance can be transformed or converted into a loading indicator 500 having a three-dimensional appearance.

[0047] FIG. 6A to FIG. 6BExamples of loading indicators 600A and 600B are shown. Loading indicator 600A or 600B can be used with any or all of the examples described herein. Loading indicator 600A includes peripheral element 602A. Peripheral element 602A is a square or rectangular border. For example, peripheral element 602A can be generated by rendering a smaller frame in a larger frame. In loading indicator 600A, peripheral element 602A forms a transparent center 604A. For example, peripheral element 602A forms a periphery that defines transparent center 604A; that is, transparent center 604A is surrounded by peripheral element 602A here. Transparent center 604A allows the user to see loading indicator 600A. Loading indicator 600A has a progress indicator 606A, which indicates the remaining time before the corresponding AR object is rendered and visible to the user. Progress indicator 606A may include a shadow (represented here by cross-hatching) that gradually extends along peripheral element 602A. For example, the shadow can be performed in a clockwise manner. The peripheral elements 602A of the loading indicator 600A are illustrated here using solid lines. On the other hand, the three-dimensional element 608 is illustrated using dashed lines to indicate that it is an optional feature. That is, the loading indicator 600A can have a two-dimensional appearance or a three-dimensional appearance.

[0048] The loading indicator 600B includes a peripheral element 602B. The peripheral element 602B is a circular or elliptical border. For example, the peripheral element 602B can be generated by rendering a smaller circle / ellipse in a larger circle / ellipse. In the loading indicator 600B, the peripheral element 602B forms a transparent center 604B. For example, the peripheral element 602B forms a periphery that defines the transparent center 604B; that is, the transparent center 604B is surrounded by the peripheral element 602B here. The transparent center 604B allows the user to see the loading indicator 600B. The loading indicator 600B has a progress indicator 606B, which indicates the remaining time before the corresponding AR object is rendered and visible to the user. The progress indicator 606B may include a shadow (here represented by a cross-hatching) that gradually extends along the peripheral element 602B. For example, the shadow can be performed in a clockwise manner. The peripheral element 602B of the loading indicator 600B is illustrated here using solid lines to indicate that it has a three-dimensional appearance. In other examples, loading indicator 600B may have a two-dimensional appearance.

[0049] The loading indicator 600A and / or 600B can operate in any of a plurality of modes. In some embodiments, the loading indicator 600A and / or 600B can operate in an indefinite duration mode. For example, when the remaining duration of the download of the data of the AR object during download is not available to the device, this can be activated, and then the loading indicator 600A and / or 600B can be controlled to run for an indefinite period of time. In some embodiments, the loading indicator 600A and / or 600B can operate in a determined duration mode. For example, when the remaining duration of the download of the data of the AR object during download is available to the device, this can be activated, and then the loading indicator 600A and / or 600B can be controlled to run for the remaining time. The transition between the indefinite duration mode and the determined duration mode can be completed. For example, if the loading indicator is activated in the indefinite duration mode, and the device subsequently determines the remaining duration of the download of the data, the determined duration mode of the loading indicator can be activated.

[0050] The above examples describe the use of shadows in peripheral elements 602A or 602B in the context of indicating progress. Shadows may also or alternatively be used for one or more other purposes. In some embodiments, the health or other status of a download link used to obtain an AR object may be determined, and shadow parameters of the loading indicator may be updated to reflect the determined health / status. For example, if the download link is determined to be slower than some standard or nominal value, the shadow of the loading indicator may be updated (e.g., to red).

[0051] The loading indicators in the described examples are visual elements that convey one or more messages to the user symbolically (e.g., through their shape and / or size) or spatially (e.g., through their position). The messages may also or alternatively be conveyed in another manner. In some embodiments, a loading indicator (e.g., Fig. 6A The loading indicator 600A in FIG. 600A may also be provided with text content. For example, the text content may convey that the AR object is being loaded and / or when the AR object will be ready to render.

[0052] FIG. 7A to FIG. 7BAn example of selecting a location for a loading indicator 700 is shown. The loading indicator 700 can be used with any or all of the examples described herein. The view 102 in this example includes a plane 702 and a marker 704. The plane 702 can be a VR feature that has been defined in the AR system that generates the view 102, that is, not a feature in the corresponding physical environment. The marker 704 can be a physical object (e.g., a panel with a QR code) that has been placed at a location 706 in the physical environment, serving as a location definition for the AR object. As another example, the marker 704 can be a pattern that already exists on some structure or other surface in the physical environment and has been defined (e.g., by capturing an image of the pattern in the AR system) to constitute a marker that can be recognized by one or more AR-enabled devices. The marker 704 and the loading indicator 700 can be visible in the view 102 at the same time.

[0053] In order to place the loading indicator 700 in the view 102, an anchor point should be defined or identified. In some embodiments, the AR system can analyze the view 102 to identify the plane 702. That is, the determination can reveal that the plane 702 exists within the view 102 that is currently active for the AR environment and will be used as an anchor point. For example, the plane 702 may exist, at least in part, to serve as a place where AR objects in the view 102 are to be placed when they are loaded for presentation. Depending on the scope of the view 102 and the overall size and complexity of the AR environment, such a determination may require significant processing. If the determination is performed and indicates that the plane 702 is known, the plane 702 can be used as an anchor point. Figure 7B The anchor point of the loading indicator 700 shown. For example, the position 706 can then be selected as at least one point included in the plane 702. In this case, the mark 704 ( Fig. 7A ) need not exist or be identified.

[0054] On the other hand, if the determination is not made, or if the determination indicates that a plane does not exist within view 102, another method may be used to anchor loading indicator 700. In some implementations, marker 704 may be used as Fig. 7A For example, based on the presence of marker 704 in view 102, location 706 can be selected to present loading indicator 700. This approach can reduce the effort and time required by the system to find a plane for anchoring.

[0055] Figure 8 An example of a system 800 illustrating downloading data 802 representing an AR object to a device 804 is shown. The system 800 and the functionality described with reference thereto can be used with any or all of the examples described herein. The data 802 may include one or more components that together define an AR object to be presented on the device 804 (e.g., Figure 1 116 or 118 in the AR object). In some embodiments, data 802 includes a mesh 805 and a texture 806. The mesh 805 can define the original structure of the AR object, which includes, among other features, the footprint of the AR object. For example, the mesh can include the polygonal geometry of the AR object. The texture 806 can represent the surface appearance of the AR object and can define shading parameters, such as surface details, color, and / or brightness of the appearance of the AR object. The texture 806 can be mapped to the mesh 805 to facilitate presentation (e.g., rendering) of the AR object. Each of the mesh 805 and the texture 806 is a collection of data in some suitable form. Here, the mesh 805 and the texture 806 are illustrated as data containers (e.g., files).

[0056] The mesh 805 and texture 806 can be provided to the device 804 from one or more locations. In some implementations, the mesh 805 and texture 806 are provided from a cloud 808. In some implementations, the mesh 805 and texture 806 are provided from a device 810. For example, a peer-to-peer transmission 812 of the mesh 805 and texture 806 can be performed from the device 810 to the device 804 (or vice versa).

[0057] The mesh 805 and the texture 806 may have significantly different sizes. For example, the mesh 805 may be a relatively small file (e.g., on the order of kilobytes), while the texture 806 may be a relatively large file (e.g., one or more orders of magnitude larger than the mesh 805). For this or other reasons, the mesh 805 and the texture 806 may not arrive at the device 804 at the same time. This may occur regardless of whether the system pushes the data 802 to the device 804 or whether the device 804 extracts the data from the system. For example, the mesh 805 may arrive earlier than the texture 806 (e.g., one or more seconds). The AR system can use the mesh 805 to determine the size of the AR object without having to access the texture 806. The AR system can determine one or more size-related characteristics about the AR object from the mesh 805. For example, the AR system can determine the height, width, depth, length, and / or circumference related to the AR object based on the geometry included in the mesh 805. Based on the determination, the AR system can assign a size parameter to the loading indicator, for example, as described in other examples herein.

[0058] 9A to 9C An example of a loading indicator is shown that transitions into a footprint representation of an AR object 900. The loading indicator may be used with any or all of the examples described herein. Fig.9A 900 is shown as it will appear when the loading is complete and the device renders the image. The AR object 900 can have any shape, and in this example, is shaped like a triangular pyramid or a tetrahedron, such as Fig.9A As shown above, the AR system can determine Fig. 9B 902 of the AR object 900 is shown. The footprint 902 is illustrated using a dashed outline to indicate that the footprint 902 is not necessarily a shape or structure that will be visible in the view of the AR environment; rather, the footprint 902 can be defined as a plane 904 (e.g., Fig. 7A The AR system can use a grid (e.g. Figure 8 The AR system may determine the footprint 902 using the mesh 805 in the image. For example, the AR system may use the polygonal geometry of the mesh to determine the peripheral projection onto the plane 904. As another example, the mesh may contain specific geometric segments defined as the footprint 902, and the AR system may read this information from the mesh. Figure 1 The loading indicator 120 in FIG. 1 may be transformed into a Fig. 9C Footprint representation 906 is shown. Footprint representation 906 has the shape of footprint 902 and can indicate to the user that AR object 900 is being loaded and also indicates its general appearance by being transformed. Footprint representation 906 can indicate the progress of loading. For example, footprint representation 906 can include peripheral elements 908, progress indicator 910 and / or transparent center 912.

[0059] FIG. 10A to FIG. 10C An example of triggering the download of data representing an AR object to a device is shown.The described techniques may be used with any or all of the examples described herein. Fig. 10A It is shown that the device may, for example, present a menu 1000 within the view 102 that makes one or more assets 1002 in a presentation list available to the user and selectable by the user. For example, each asset 1002 in the list may correspond to a respective AR object that the user may wish to download to the device for presentation in the view 102. In response to a user selection of any asset 1002 schematically illustrated by an arrow controlled by an input device, the AR system may be triggered to begin downloading data corresponding to the respective AR object. A loading indicator 120 may be presented at a position 122 in the view 102, for example, as described in other examples described herein.

[0060] Fig. 10BDevice 106 is shown located within physical environment 130. Location 122 can be defined as a specific location in physical environment 130 (e.g., using latitude and longitude or any other geospatial coordinates). For example, a global positioning system (GPS) receiver or another form of wireless location detection can be used to determine that the device is currently at location 122. The AR system can trigger one or more operations based on the determined location. For example, downloading of data for rendering an AR object can be triggered by determining that device 106 is at location 122.

[0061] Fig. 10C It is shown that the device can present a browser 1004 configured to make content 1006 (e.g., a page) available to the user, such as within view 102. For example, a corresponding AR object can be associated with a specific uniform resource locator (URL) that may be entered into the browser 1004. In response to the specific URL being accessed, the AR system can be triggered to begin downloading data corresponding to the corresponding AR object to the device. In accordance with this loading of data, a loading indicator 120 can be presented at position 122.

[0062] Fig.11 An example of a system 1100 that can present an AR environment is shown. The system 1100 can be used with any or all of the examples described herein. In some embodiments, the system 110 can be implemented in the form of a device including, but not limited to, a smart phone, a tablet computer, and / or a head-mounted display. The system 1100 can have at least one display 1102 on which a view 1104 of an AR environment can be presented. An AR system 1106 can be installed in or provide services for the system 1100, and storage 1108 can be used. The AR system 1106 may include at least one sensor 1110. For example, the sensor 1110 may include a camera or other image sensor that captures images of the physical environment, and the AR system 1106 may use these images to generate a view 1104 of the AR environment.

[0063] The AR system 1106 may include a relative description file (RDF) 1112. The RDF 1112 may define a set of specific physical markers (e.g., Fig. 7A Such RDF can be shared with multiple devices to facilitate predefined AR presentations to users of the devices. A device with RDF 1112 can locate its own position by identifying one of the physical markers (e.g., using sensor 1110) to infer device position and orientation, and can also use RDF 1112 to learn the positions and identities of other physical markers and act based on the positions and identities of other physical markers when these markers are not currently visible or directly detectable by the device.

[0064] The AR system 1106 may include an image analyzer 1114 that can analyze images captured by the sensor 1110. In some implementations, the image analyzer 1114 can be used to generate a view of the AR environment. For example, the image analyzer 1114 can seek to detect objects or other structures in the physical environment, which can serve as a basis for configuring the AR environment.

[0065] The AR system 1106 may include a location determiner 1116. In some implementations, the location determiner 1116 may be operable to determine the location of the system 1100 in the physical environment, including but not limited to by using a GPS receiver or another form of wireless signaling. For example, the location determination may be the basis for triggering the download of specific data to the system 1100.

[0066] The AR system 1106 can download data 1118 to the system 1100 of the AR environment. For example, the data 1118 can correspond to an AR object and can include a mesh and a texture.

[0067] Fig.12 An example of a process 1200 related to a loading indicator is shown. The process 1200 may be performed by executing instructions stored in a non-transitory computer-readable storage medium, including but not limited to performing the process according to the instructions. Fig.13 One or more examples described herein. Two or more operations in process 1200 may be performed in a different order. More or fewer operations than those shown here may be performed. Two or more operations in process 1200 may be performed simultaneously with each other. The operations of process 1200 may be used with any or all of the examples described herein.

[0068] At 1210, a triggering event may be detected. For example, a trigger may be triggered from cloud 808 ( Figure 8 ) download. For example, point-to-point transmission 812 ( Figure 8 For example, point-to-point transmission 812 may be triggered ( Figure 8 ). For example, you can execute asset 1002 ( Fig. 10A ). For example, a user selection of device 106 ( Fig. 10B )'s location determination. For example, a browser 1004 ( Fig. 10C ) in the URL.

[0069] In 1220, downloading of data to the device may be initiated based on the triggering event in 1210. For example, cloud 808 ( Figure 8 ) or device 810 can initiate the download of data 802.

[0070] At 1230, downloading can begin. For example, from cloud 808 and / or device 810 to device 804 ( Figure 8 ) can start downloading.

[0071] At 1240, data representing the AR object may be stored on the device. For example, the AR system 1106 ( Fig.11 ) can store data 1118 in storage 1108.

[0072] At 1250, rendering of an AR object may be triggered. For example, the AR object 116 or 118 ( Figure 1 ) for rendering.

[0073] At 1260, it may be determined whether the location where the AR object appears is within the currently active view of the AR environment. For example, the AR system 110 ( Figure 1 ) can determine that position 122 is within view 102.

[0074] At 1270, a loading indicator may be presented in the view. For example, when position 204 is within view 102, loading indicator 200 ( Figure 2A ). For example, when position 302 ( Figure 3B ) is not within the view 102, a loading indicator 300 may be presented ( Figure 3B ). A loading indicator may be presented (in 1270) while the data is being downloaded (in 1230) and / or after rendering has been triggered (in 1250), such as when data has been downloaded to the device at an earlier time.

[0075] At 1280 , it may be determined that rendering of the AR object has completed.

[0076] At 1290, based on rendering having been stopped (at 1280), presentation of the loading indicator may be stopped.

[0077] Fig.13 Examples of computer devices and mobile computer devices that may be used with the techniques described herein are shown. Fig.13 Examples of a general purpose computing device 1300 and a general purpose mobile computing device 1350 for use with the techniques described herein are shown. Computing device 1300 is intended to represent various forms of digital computers and devices, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. Computing device 1350 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular phones, smart phones, and other similar computing devices. The components shown here, their connections and relationships, and their functions are exemplary only and are not meant to limit the implementation of the inventions described and / or claimed in this document.

[0078] The computing device 1300 includes a processor 1302, a memory 1304, a storage device 1306, a high-speed interface 1308 connected to the memory 1304 and a high-speed expansion port 1310, and a low-speed interface 1312 connected to a low-speed bus 1314 and the storage device 1306. The processor 1302 can be a semiconductor-based processor. The memory 1304 can be a semiconductor-based memory. Each of the components 1302, 1304, 1306, 1308, 1310, and 1312 is interconnected using various buses and can be installed on a general motherboard or installed in other ways as appropriate. The processor 1302 can process instructions for execution within the computing device 1300, including instructions stored in the memory 1304 or the storage device 1306, to display graphical information of a GUI on an external input / output device such as a display 1316 coupled to the high-speed interface 1308. In other embodiments, multiple processors and / or multiple buses, as well as multiple memories and memory types, can be used as appropriate. Furthermore, multiple computing devices 1300 may be connected, with each device providing portions of the necessary operations (eg, as a server bank, a blade server bank, or a multi-processor system).

[0079] The memory 1304 stores information within the computing device 1300. In one implementation, the memory 1304 is one or more volatile memory units. In another implementation, the memory 1304 is one or more non-volatile memory units. The memory 1304 may also be another form of computer-readable medium, such as a magnetic disk or optical disk.

[0080] Storage device 1306 can provide mass storage for computing device 1300. In one embodiment, storage device 1306 can be or include a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid-state memory device or device array, including a device in a storage area network or other configuration. A computer program product can be tangibly embodied in an information carrier. The computer program product can also include instructions for performing one or more methods such as those described above when executed. The information carrier is a computer-readable medium or a machine-readable medium, such as memory 1304, storage device 1306, or a memory on processor 1302.

[0081] The high-speed controller 1308 manages bandwidth-intensive operations of the computing device 1300, while the low-speed controller 1312 manages less bandwidth-intensive operations. This allocation of functions is exemplary only. In one embodiment, the high-speed controller 1308 is coupled to the memory 1304, the display 1316 (e.g., through a graphics processor or accelerator), and to the high-speed expansion port 1310, which can accept various expansion cards (not shown). In this embodiment, the low-speed controller 1312 is coupled to the storage device 1306 and the low-speed expansion port 1314. The low-speed expansion port, which includes various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet), can be coupled to one or more input / output devices such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or a router through a network adapter.

[0082] The computing device 1300 can be implemented in a variety of different forms, as shown. For example, it can be implemented as a standard server 1320, or multiple times in such a server group. It can also be implemented as part of a rack server system 1324. In addition, it can also be implemented in a personal computer such as a laptop computer 1322. Alternatively, components from the computing device 1300 can be combined with other components (not shown) in a mobile device such as device 1350. Each of these devices can contain one or more of the computing devices 1300, 1350, and the entire system can be composed of multiple computing devices 1300, 1350 that communicate with each other.

[0083] Computing device 1350 includes processor 1352, memory 1364, input / output devices such as display 1354, communication interface 1366 and transceiver 1368, among other components. Device 1350 may also be provided with a storage device, such as a microdrive or other device, to provide additional storage. Each of components 1350, 1352, 1364, 1354, 1366, and 1368 are interconnected using various buses, and some components may be mounted on a common motherboard, or otherwise as appropriate.

[0084] Processor 1352 can execute instructions within computing device 1350, including instructions stored in memory 1364. The processor can be implemented as a chipset including separate and multiple analog and digital processor chips. The processor can provide, for example, coordination of other components of device 1350, such as control of a user interface, applications running on device 1350, and wireless communications through device 1350.

[0085] The processor 1352 can communicate with the user through the control interface 1358 and the display interface 1356 coupled to the display 1354. The display 1354 can be, for example, a TFT LCD (thin film transistor liquid crystal display) or an OLED (organic light emitting diode) display or other suitable display technology. The display interface 1356 may include appropriate circuits for driving the display 1354 to present graphics and other information to the user. The control interface 1359 can receive commands from the user and convert them for submission to the processor 1352. In addition, an external interface 1362 in communication with the processor 1352 can be provided to enable close range communication of the device 1350 with other devices. The external interface 1362 can be provided for wired communication, for example, in some embodiments, or for wireless communication in other embodiments, and multiple interfaces can also be used.

[0086] Memory 1364 stores information within computing device 1350. Memory 1364 may be implemented as one or more of one or more computer-readable media, one or more volatile memory units, or one or more non-volatile memory units. An expansion memory 1374 may also be provided and connected to device 1350 via an expansion interface 1372, which may include, for example, a SIMM (single in-line memory module) card interface. Such an expansion memory 1374 may provide additional storage space for device 1350, or may also store applications or other information for device 1350. Specifically, expansion memory 1374 may include instructions for executing or supplementing the above-mentioned processes, and may also include security information. Thus, for example, expansion memory 1374 may be provided as a security module for device 1350, and may be programmed with instructions that allow secure use of device 1350. In addition, secure applications may be provided via a SIMM card and additional information, such as placing identification information on a SIMM card in an inviolable manner.

[0087] As described below, the memory may include, for example, flash memory and / or NVRAM memory. In one embodiment, a computer program product is tangibly embodied in an information carrier. The computer program product includes instructions that, when executed, perform one or more methods such as those described above. The information carrier is a computer-readable medium or a machine-readable medium, such as memory 1364, expansion memory 1374, or memory on processor 1352, which may be received, for example, via transceiver 1369 or external interface 1362.

[0088] Device 1350 can communicate wirelessly via communication interface 1366, which may include digital signal processing circuitry when necessary. Communication interface 1366 can provide communications under various modes or protocols, such as GSM voice calls, SMS, EMS or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000 or GPRS, etc. Such communications can occur, for example, via radio frequency transceiver 1368. In addition, short-range communications can be performed, such as using Bluetooth, Wi-Fi or other such transceivers (not shown). In addition, GPS (global positioning system) receiver module 1370 can provide other wireless data related to navigation and location to device 1350, and applications running on device 1350 can use these data as appropriate.

[0089] Device 1350 may also communicate audibly using audio codec 1360, which may receive voice information from a user and convert it into usable digital information. Audio codec 1360 may also generate audible sounds for the user, such as through a speaker, such as in a handset of device 1350. Such sounds may include sounds from voice phone calls, may include recorded sounds (e.g., voice messages, music files, etc.), and may also include sounds generated by applications running on device 1350.

[0090] As shown, the computing device 1350 can be implemented in many different forms. For example, it can be implemented as a cellular phone 1382. It can also be implemented as part of a smart phone 1380, a personal digital assistant, or other similar mobile device.

[0091] The user can interact with the computing device using a tracked controller 1384. In some embodiments, the controller 1384 can track the movement of the user's body, such as the movement of the hands, feet, head, and / or torso, and generate input corresponding to the tracked movement. The input can correspond to the movement in one or more dimensions, such as in three dimensions. For example, the tracked controller can be a physical controller for a VR application that is associated with one or more virtual controllers in the VR application. As another example, the controller 1384 can include a data glove.

[0092] Various implementations of the systems and techniques described herein can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include implementation in one or more computer programs that can be executed and / or interpreted on a programmable system that includes at least one programmable processor, which can be special purpose or general purpose, coupled to receive data and instructions therefrom, and to transmit data and instructions to a storage system, at least one input device, and at least one output device.

[0093] These computer programs (also referred to as programs, software, software applications or code) include machine instructions for a programmable processor and may be implemented in high-level procedural and / or object-oriented programming languages ​​and / or in assembly / machine language. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, apparatus and / or device (e.g., disk, optical disk, memory, programmable logic device (PLD)) for providing machine instructions and / or data to a programmable processor including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal for providing machine instructions and / or data to a programmable processor.

[0094] To provide interaction with a user, the systems and techniques described herein may be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user, as well as a keyboard and a pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other kinds of devices may also be used to provide interaction with a user; for example, the feedback provided to the user may be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user may be received in any form, including sound, voice, or tactile input.

[0095] The systems and techniques described herein can be implemented in a computing system that includes back-end components (e.g., as a data server), or includes middleware components (e.g., an application server), or includes front-end components (e.g., a client computer with a graphical user interface or a web browser through which a user can interact with an implementation of the systems and techniques described herein), or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), and the Internet.

[0096] A computing system may include clients and servers. Clients and servers are generally remote from each other and typically interact through a communication network. The relationship between client and server is created by computer programs running on the respective computers and having a client-server relationship to each other.

[0097] In some embodiments, Fig.13 The computing device depicted in may include sensors that interface with a virtual reality (VR headset 1385). For example, Fig.13 One or more sensors on the computing device 1350 or other computing device depicted in the VR headset 1385 can provide input to the VR headset 1385, or generally, can provide input to the VR space. Sensors can include, but are not limited to, touch screens, accelerometers, gyroscopes, pressure sensors, biometric sensors, temperature sensors, humidity sensors, and ambient light sensors. The computing device 1350 can use sensors to determine the absolute position and / or detected rotation of the computing device in the VR space, which can then be used as input to the VR space. For example, the computing device 1350 can be incorporated into the VR space as a virtual object such as a controller, laser pointer, keyboard, weapon, etc. When incorporated into the VR space, the user's positioning of the computing device / virtual object can allow the user to position the computing device so as to view the virtual object in the VR space in a certain manner. For example, if the virtual object represents a laser pointer, the user can manipulate the computing device as if it were an actual laser pointer. The user can move the computing device left and right, up and down, or in a circle, etc., and use the device in a similar manner to using a laser pointer.

[0098] In some implementations, one or more input devices included on or connected to computing device 1350 may be used as input to the VR space. Input devices may include, but are not limited to, a touch screen, a keyboard, one or more buttons, a trackpad, a touchpad, a pointing device, a mouse, a trackball, a joystick, a camera, a microphone, a headset or buds with input capabilities, a game controller, or other connectable input device. When the computing device is incorporated into the VR space, a user interacting with the input devices included on computing device 1350 causes specific actions to occur in the VR space.

[0099] In some implementations, the touch screen of computing device 1350 may be rendered as a touch pad in VR space. A user may interact with the touch screen of computing device 1350. For example, in VR headset 1385, the interaction is rendered as movement on a touch pad rendered in VR space. The rendered actions may control objects in VR space.

[0100] In some embodiments, one or more output devices included on the computing device 1350 can provide output and / or feedback to a user of the VR headset 1385 in the VR space. The output and feedback can be visual, tactile, or audio. The output and / or feedback can include, but are not limited to, vibration, turning on, off, or flashing and / or flashing one or more lights or strobe lights, sounding an alarm, playing a ringtone, playing a song, and playing an audio file. The output device can include, but is not limited to, a vibration motor, a vibration coil, a piezoelectric device, an electrostatic device, a light emitting diode (LED), a flashlight, and a speaker.

[0101] In some embodiments, computing device 1350 can appear as another object in a computer-generated 3D environment. User interactions with computing device 1350 (e.g., rotating, shaking, touching a touch screen, sliding a finger on a touch screen) can be interpreted as interactions with objects in VR space. In the example of a laser pointer in VR space, computing device 1350 appears as a virtual laser pointer in a computer-generated 3D environment. When the user manipulates computing device 1350, the user in VR space sees the movement of the laser pointer. The user receives feedback from the interaction with computing device 1350 in the VR environment on computing device 1350 or VR headset 1385.

[0102] A number of embodiments have been described, however, it will be appreciated that various modifications may be made without departing from the spirit and scope of the specification.

[0103] Furthermore, the logic flows depicted in the accompanying drawings do not require the particular order shown or sequential order to achieve the desired results. In addition, other steps can be provided from the described flows, or steps can be removed from the described flows, and other components can be added to or removed from the described systems. Therefore, other embodiments are within the scope of the appended claims.

Claims

1. A method for presenting a loading indicator, comprising: presenting, on the device, a view of at least a portion of an augmented reality (AR) environment, the AR environment including a first AR location corresponding to a first physical location in the physical environment; initiating downloading of first data representing a first AR object associated with the first AR location to the device; determining a spatial relationship between the view and the first physical location, the spatial relationship indicating whether the first physical location is within the view; as well as A first loading indicator is presented in the view, the first loading indicator having a size based on a size of the first AR object and presented at a second AR location based on the spatial relationship.

2. The method according to claim 1, wherein: The spatial relationship indicates that the first physical location is within the view, the method further comprising selecting the second AR location to present the first loading indicator to coincide with the first AR location in the view.

3. The method according to claim 1, wherein: The spatial relationship indicates that the first physical location is not within the view, the method further comprising selecting the second AR location to present the first loading indicator on a side of the view that is closest to the first AR location.

4. The method according to claim 3, wherein: The first loading indicator is smaller than a second loading indicator configured for use when the spatial relationship indicates that the first physical location is within the view.

5. The method according to claim 3, wherein: The first loading indicator has a two-dimensional appearance, and wherein the second loading indicator has a three-dimensional appearance, the second loading indicator being configured for use when the spatial relationship indicates that the first physical location is within the view.

6. The method according to claim 3, wherein: The first loading indicator comprises an arrow, and wherein the first loading indicator is positioned such that the arrow is pointed to the first AR position.

7. The method according to claim 1, wherein: During downloading of second data representing a second AR object, size information of the second AR object is not available to the device, the method further comprising: based on the unavailability of the size information, presenting a second loading indicator of the second AR object, the second loading indicator being different from the first loading indicator.

8. The method according to claim 1, wherein: During the downloading, a remaining duration of the downloading of the first data is not available to the device, the method further comprising activating an indefinite duration mode of the first loading indicator based on the remaining duration being not available.

9. The method according to claim 8, further comprising: The remaining duration of the downloading of the first data is then determined, and based on determining the remaining duration, a determined duration mode of the first loading indicator is activated.

10. The method according to claim 1, further comprising: A determination is made as to whether a plane in the AR environment associated with the first AR location is known, and if so, the second AR location is selected to present the first loading indicator on the plane.

11. The method according to claim 10, wherein: If the determination reflects that the plane associated with the first AR location in the AR environment is not known, the method further includes selecting the second AR location to present the first loading indicator based on an AR marker in the AR environment.

12. The method according to claim 1, wherein: The first data includes a mesh and a texture configured to be applied to the mesh, and the method further includes determining the size of the first AR object using the mesh.

13. The method according to claim 12, further comprising: A footprint of the first AR object is determined using the grid, and based on the determined footprint, the first loading indicator is transformed into a representation of the footprint of the first AR object.

14. The method according to claim 1, wherein: The downloading of the first data is triggered by a user selection in a presentation list of AR objects.

15. The method according to claim 1, wherein: The downloading of the first data is triggered by a location of the device in the physical environment.

16. The method according to claim 1, wherein: The downloading of the first data is triggered by accessing a uniform resource locator using the device.

17. The method according to claim 1, wherein: The downloading of the first data includes point-to-point transmission.

18. The method according to claim 1, wherein: The first data is stored on the device after being downloaded, and wherein the first loading indicator indicates a progress of preparing to render the first AR object using the first data.

19. A non-transitory storage medium having instructions stored thereon, the instructions being configured to cause a processor to perform operations when executed, the operations comprising: presenting, on the device, a view of at least a portion of an augmented reality (AR) environment, the AR environment including a first AR location corresponding to a first physical location in the physical environment; initiating downloading of first data representing a first AR object associated with the first AR location to the device; determining a spatial relationship between the view and the first physical location, the spatial relationship indicating whether the first physical location is within the view; as well as A first loading indicator is presented in the view, the first loading indicator having a size based on a size of the first AR object and presented at a second AR location based on the spatial relationship.

20. The non-transitory storage medium of claim 19, wherein: The first loading indicator includes a peripheral element having a progress indicator, the peripheral element surrounding a transparent center of the first loading indicator.

21. The non-transitory storage medium of claim 19, the operations further comprising: A status of a download link for downloading the first data is determined, and a color is assigned to the first loading indicator based on the status.

22. A non-transitory storage medium having instructions stored thereon, the instructions being configured to cause a processor to generate a graphical user interface when executed, the graphical user interface comprising: a view comprising at least a portion of an augmented reality (AR) environment, the AR environment comprising a first AR location corresponding to a physical location in a physical environment, wherein an AR object is associated with the first AR location; and A loading indicator for the AR object, the loading indicator having a size based on a size of the AR object and presented at a second AR position in the view based on a spatial relationship between the view and the physical location, the spatial relationship indicating whether the physical location is within the view.

23. The non-transitory storage medium of claim 22, wherein: The spatial relationship indicates that the physical location is within the view, and wherein the second AR location is selected to render the loading indicator to coincide with the first AR location in the view.

24. The non-transitory storage medium of claim 22, wherein: The spatial relationship indicates that the physical location is not within the view, and wherein the second AR location is selected to present the loading indicator on a side of the view that is closest to the first AR location.

Citation Information

Patent Citations

  • Method and apparatus for rendering a location-based user interface

    CN103003847A

  • Apparatuses, methods and systems for tethering 3-d virtual elements to digital content

    US20170236320A1

  • Methods and systems for providing a preloader animation for image viewers

    US9519999B1