Methods and apparatus to transition between 2D and 3D renderings of augmented reality content

Methods and apparatus to transition between 2D and 3D renderings of augmented reality content are disclosed. An example apparatus includes a user input analyzer to determine an intended movement of an AR object relative to a first zone of a real world environment and a second zone of the real world environment. The apparatus also includes an AR content generator, in response to user input, to: render an appearance of movement of the AR object in the first zone based upon a first set of rules; and render the AR object in the second zone, movement of the AR object in the second zone based on a second set of rules different than the first set of rules.

FIELD OF THE DISCLOSURE

This disclosure relates generally to augmented reality, and, more particularly, to methods and apparatus to transition between 2D and 3D renderings of augmented reality content.

BACKGROUND

Augmented reality (AR) is a developing technological field that has many different applications from military training to consumer entertainment. AR involves providing a user with an enhanced sensory experience by combining computer generated AR content with the user's perception of the real world. Often, the AR content is rendered to overlay and/or interact with the user and/or other objects in the real world from the perspective of the user.

DETAILED DESCRIPTION

Augmented reality (AR) content may be rendered for display to a user in a number of different ways. In some situations, AR content is rendered on the display of a portable device (e.g., a smartphone) to overlay a rendering of the real world as captured by a camera of the portable device. In other situations, AR content may be rendered on AR glasses worn by a user so that the content is overlaid on the user's own view of the real world. In other situations, AR content may be projected directly onto surfaces in the real world to be perceived by a user. AR content is different than regular forms of visual media (e.g., television, movies, video games, etc.) either rendered on a screen or projected onto a real world surface in that AR content is typically rendered in a manner to appear to interact with and/or be perceived as an immersive aspect of the real world.

Examples disclosed herein involve AR systems that control the rendering of an AR object to move within the real world (as perceived by a user) based on user-controlled inputs. In some examples, a user may control the AR object to transition between a two-dimensional (2D) mode (also referred to as a planar mode) or a three-dimensional (3D) mode (also known as a depth mode). In some examples, the 2D and 3D modes are defined based on particular zones or regions within the real world. Thus, in some examples, a user controls whether the AR object is rendered in the 2D planar mode or the 3D depth mode based on which zone in the real world the AR object is located as perceived by the user. For example, a first wall may be designated as a 2D zone in which the AR object is rendered in a 2D mode, while a second wall is designated as a 3D zone in which the AR object is rendered in a 3D mode.

As used herein, a 2D mode is for rendering an AR object that is perceived as being limited to move within the plane of a real world surface associated with the corresponding 2D zone. That is, the AR object is constrained to move only in the direction of translation within the real world surface (i.e., not into or out of the surface relative to a user viewing the surface). For example, if a particular wall is defined as a 2D zone for an AR object, the object is constrained to move along the surface of the wall. In some examples, a curved wall and/or two or more non-parallel walls may be defined as a 2D zone. In such examples, the 2D zone is not a 2D surface. However, the AR object may still be rendered in a 2D mode, as defined herein, by constraining the AR object to appear to move (e.g., translate) along the surface of the walls (e.g., up, down, left, or right) with a fixed size ratio relative to the real world (e.g., does not get smaller or bigger, thereby giving the impression of movement away from or towards the user). In some examples, the movement of an AR object rendered in a 2D mode is further constrained by real world objects attached to and/or in front of a surface in the real world corresponding to the 2D zone. For example, window and/or door frames in a wall, pictures and/or other decorations on the wall, and/or tables and/or other furniture in front of the wall may all serve as obstacles to the movement of an AR object rendered in 2D mode on the wall. Accordingly, if a user wants to move an AR object along a wall corresponding to a 2D zone that includes a picture, the user would need to move the AR object around (i.e., over or under) the picture to get the AR object from one side of the picture to the other.

By contrast, as used herein, a 3D mode is for rendering an AR object that is perceived as being free to move within a 3D virtual space. In some examples, the 3D virtual space corresponds to rendered AR content and, therefore, is distinct from the real world 3D environment. For example, a 3D virtual space may correspond to a forest containing multiple trees that is rendered as AR content that appears on a wall corresponding to a 3D zone. In some examples, some of the trees are rendered to appear farther away (e.g., smaller and behind closer looking trees) to give the impression of depth. Further, in some examples, a user may control movement of the AR object within any direction within the 3D virtual space (e.g., the forest). That is, unlike in a 2D zone where the AR object is limited to moving in the plane of a corresponding real world surface (e.g., a wall), the AR object in a 3D zone may be controlled by a user to appear to move away from the user (and into the 3D virtual space) or toward the user (and out of the 3D virtual space). In some examples, the appearance of movement in the depth direction is achieved by increasing or decreasing the size of the AR object relative to the real world environment. In other examples, the AR object may remain the same size but the 3D virtual space surrounding the AR object changes to give the effect of movement (e.g., trees in the distance appear to become bigger and then move out of view as the AR object is made to appear to pass the trees moving in a direction away from the user).

In some examples, the 3D virtual space is at least partially based on the real world 3D environment. For example, a wall may be designated as a 2D zone and a window to the outside world is designated as a 3D zone. In such examples, a user may control an AR object constrained to the surface of the wall while in the 2D zone to move to the window and then appear to fly out the window upon the object transitioning to the 3D zone associated with the window. In this example, there is no need to render a 3D virtual space using additional AR content because the outside world serves as a 3D space in which an AR object may be rendered to appear to move in a depth direction.

In some examples, the way in which the AR object interacts with the real world when rendered in a 3D mode is different than when the object is rendered in a 2D mode. For example, as mentioned above, real world objects associated with the surface of a 2D zone along which an AR object is moving are treated as being within the plane of movement of the AR object. Therefore, the AR object may interact with the real world objects by bumping into them, resting upon them, hanging from below them, climbing their sides, etc. However, in some implementations of the 2D mode, the AR object is prevented from moving along a path that passes across a real world object. By contrast, in some examples, an AR object rendered in 3D mode may be controlled to follow a path that crosses a real world object because the AR object is rendered as going behind the real world object due to the perception of depth and the object being rendered to appear farther away from the user than the real world object.

Some examples disclosed herein include at least one 2D zone, at least one 3D zone, and an AR object that may transition between the 2D and 3D zones. Teachings disclosed herein may be implemented with any number of 2D zones and/or 3D zones. In some examples, the 2D zone and the 3D zone are spatially adjacent within the real world. For example, the 2D zone may correspond to a first wall of a room and the 3D zone may correspond to a second wall in the room with the first and second walls meeting at a corner of the room. In other examples, the 2D zone is temporally adjacent the 3D zone. For example, a wall may function as a 2D zone when the AR object is rendered in the 2D mode at a first point in time. At a later, second point in time, the same wall may be switched to a 3D zone so that the AR object may be rendered in a 3D mode. In some examples, the different zones may correspond to surfaces other than walls such as, for example, a ceiling, a floor, a surface of furniture (a table top, a counter top, a desk surface, etc.), and/or any other suitable surface that may be used to render the AR content. Examples disclosed herein enable the control of an AR object when being moved within the 2D mode, the 3D mode, and/or both the 2D and 3D modes. Further, examples disclosed here enable transitions in control between the 2D and 3D modes as a user controls an AR object to transition from one mode to the other.

FIG. 1illustrates an example environment100in which an example AR system102constructed in accordance with teachings disclosed herein may be implemented. In this example, the environment100is a room that includes a first wall104and a second wall106that meet at a common edge108in a corner of the room. In the illustrated example, the first wall104, includes a door110with an associated doorframe112. A first picture114is hung on the first wall104and a second picture116is hung on the second wall106. Further, as shown inFIG. 1, a table118is positioned against the first wall104underneath the first picture114.

In the illustrated example ofFIG. 1, the AR system102includes a first projector120to project AR content on the first wall104and a second projector122to project AR content on the second wall106. In the illustrated example, the AR content projected on the first wall104includes an AR object124(corresponding to a bird in this example) that is moved along a user guided path128(represented by the dotted lines). The AR content projected on the second wall106includes the AR object124continuing along the path128as well as additional AR scenery130indicative of a 3D virtual space. In this example, the AR scenery130of the 3D virtual space includes a first tree132in the foreground with a second tree134rendered to appear at a distance on a hill in the background.

The separate instances of the AR object124along the path128are representative of the location and appearance of the AR object124at different points in time as it moves along the path128. That is, the multiple instances of the AR object124shown inFIG. 1are for purposes of explanation. In some examples, the AR object124is rendered in only one location on either the first or second walls104,106at any given time. As represented by the user guided path128of the illustrated example, the AR object124begins at a first position136on the first wall104perched atop the doorframe112. The AR object124is then guided to bump against an edge of the first picture114(as represented by the arcuate dotted line to the right of the picture inFIG. 1) before going underneath the first picture114and appearing to land on the table118at a second position138. At a third position140, the AR object124appears to be flying towards the edge108of the first wall104towards the second wall106. At a fourth position142, the AR object124is moving along the second wall106towards the second picture116. At a fifth position144, the AR object124appears on the opposite side of the second picture116. At a sixth position146, the AR object124is rendered as passing the first tree132. At a seventh position148, the AR object124is shown approaching the second tree134.

In some examples, movement of the AR object124along the path128outlined above is based on input from a user150using a user controller152. The user controller152is in communication with an AR display controller126to enable the AR display controller126to update the AR content projected by the first and second projectors120,122based on the user input received via the user controller152.

In the illustrated example ofFIG. 1, the first projector120, the second projector122, the AR display controller126, and the user controller152are separate components. In some examples, these separate components may be in communication with one another via a wired connection. In other examples, these separate components may be in communication with one another via a wireless connection. In some examples, one or more of these components may be integrated into a single device. For instances, in some examples, the AR display controller126may be implemented within one of the projectors120,122. In other examples, the AR display controller126may be implemented within the user controller152.

In some examples, only a single projector is used. In some such examples, the single projector is able to rotate or otherwise move (e.g., via a gimble system) to face the appropriate direction to render the AR content. Additionally or alternatively, in some examples, the single projector is a wide angle projector that is able to render content on both the first and second walls104,106simultaneously. In other examples, the AR content may be rendered without any projectors using different AR techniques. For instances, in some examples, the AR content may be rendered via display screens mounted on the respective first and second walls104,106. In some examples, rather than rendering the AR content on the walls104,106(with projectors and/or display screens), the AR content is rendered via AR glasses worn by the user150so that the AR content appears, from the user's perspective, to be on the walls104,106as shown inFIG. 1. In other examples, the AR content may be overlaid on an image of the environment100captured by camera of a mobile device carried by the user150(e.g., associated with the controller152). In such examples, the AR content would appear on the respective first and second walls104,106when viewed within the display of the mobile device.

In some examples, the way in which the AR object124interacts with objects in the real world (e.g., the door110, the pictures114,116, and the table118) and/or the way in which the AR object124moves based on user-input from the user controller152depends on whether the AR object124is rendered in a 2D mode or a 3D mode. In the illustrated example ofFIG. 1, the first wall104is designated as a 2D zone in which the AR object124is rendered in a 2D mode. The second wall104is designated as a 3D zone in which the AR object124is rendered in a 3D mode. When the AR object124is rendered in a 2D mode (e.g., in the 2D zone associated with the first wall104), the AR display controller126constrains the AR object124to move associated with translation within the plane of the first wall104. As a result, the AR object124maintains a consistent size regardless of where it moves within the 2D zone.

Further, in some examples, movement of the AR object124is constrained by real world objects on or adjacent to the first wall104defining the 2D zone. For example, the AR object124at the first position136is rendered as if it is resting on or perched atop the doorframe112of the door110. Further, as represented by the user guided path128between the first and second positions136,138, the AR object124was flown into the side of the first picture114. However, the path128of the AR object bounced off the side of the first picture114because the picture114, being on the first wall104, is treated as an obstacle that the AR object must go over or under to get to the other side. In some examples, in addition to the AR display controller126causing the AR object124to bounce off the side of the first picture114rather than crossing over it, the AR display controller126may transmit a signal back to the user controller152to provide an output to the user150indicative of the AR object124hitting an obstacle (e.g., a haptic vibration, an audible buzz, a blinking light, etc.). In the illustrated example, the AR object124is guided under the first picture114to land on and walk across the table118at the second position before flying towards the edge108of the wall104at the third position.

As shown in the illustrated example, the first and second walls104,106share a common edge108. In this example, the edge108serves as a boundary between the 2D zone (associated with the first wall104) and the 3D zone (associated with the second wall106). Accordingly, once the user150controls the AR object124on the first wall104up to the edge108, the AR display control126initiates a transition to render the AR object124in a 3D mode on the second wall106. In some examples, the appearance of movement of the AR object124from the first wall104to the second wall106is relatively smooth and continuous. For example, as a portion of the AR object124moves beyond the edge108of the first wall104, a corresponding portion of the AR object124is rendered at the corresponding location at the edge108on the second wall106. In other examples, once the AR object124reaches the edge108on the first wall104, the AR object124on the first wall104disappears (is no longer rendered) and reappears at a corresponding location on the second wall104. In some examples, the AR object124is rendered on the second wall106before the AR object124is removed from rendering on the first wall104to provide an intuitive continuity during the transition from the first wall104to the second wall106.

Once the user150has moved the AR object124to the 3D zone, the dynamics and/or control of the AR object may include movements in a depth direction extending perpendicular to the surface of the second wall106. Accordingly, in some examples, as the user150controls the AR object124to move into an associated 3D virtual space (e.g., the AR scenery130), the AR object124may decrease in size as shown at the fourth position142relative to the first three positions136,138,140in the 2D zone. By contrast, if the user150controls the AR object124to move toward the user, the AR object124may become bigger. In some examples, the interactions between real world objects and the AR object124when rendered in a 3D mode is different than when the AR object124is rendered in a 2D mode. In particular, as shown inFIG. 1, while the AR object124was prevented from crossing the first picture114in the 2D zone of the first wall104, the AR object124in the 3D zone of the second wall106is rendered to appear as if it moves behind the second picture116. In some examples, the AR object124may momentarily disappear (stop being rendered) as the user152causes the AR object124to traverse the second picture116. Thus, as shown in the illustrated example, only the front portion of the AR object is shown at the fifth position144as the AR object124is rendered to appear to come out from behind the second picture116. In other examples, the AR object124may be rendered continuously as it traverses across the second picture116. In the illustrated example, as the user150controls the AR object124towards the sixth position146, the AR object124continues to become smaller to give the effect of moving farther into the 3D virtual space. In some examples, this effect is enhanced by rending the AR object124as passing behind other AR content such as, for example, the first tree132as shown inFIG. 1. In other circumstances, the user150may control the AR object124to appear to come close to the user150to pass in front of the first tree132. As shown inFIG. 1, the AR object124is rendered very small at the seventh position148to give the impression that the AR object124is far off in the distance.

In some examples, the appearance of movement in a depth direction (e.g., farther into the AR scenery130) is accomplished by updated the AR scenery130so that the rendered view follows the AR object124. For example, rather than the AR object124getting smaller as it passes the first tree132and approaches the second tree134, in some examples, the AR object124may stay substantially the same size while the trees132,134are rendered to appear to get larger as they get closer and then pass from view as the AR object124passes the position of the trees within the 3D virtual space. In some such examples, the AR object124may not only maintain a consistent size but be placed in a consistent position within the 3D zone (e.g., at the center of the wall106) with the scenery changing as the user150controls the AR object124to move around. In some such examples, to facilitate an intuitive transition from the AR object124at the edge108of the first wall104to the center of the second wall106, the AR object124may be displayed automatically (e.g., without user input) traversing the second wall106from a location adjacent the point of transition where the AR object124reached the edge108on the first wall104to the center position of the second wall106.

In some examples, the boundaries for 2D and 3D zones correspond to edges of different walls (e.g., where the wall meets the floor, the ceiling, and/or another wall). However, the boundaries for the 2D and 3D zones may be defined in any suitable manner. In some examples, the same area may be configured as either a 2D zone or a 3D zone based on user input. For example, the first wall104may be designated as a 2D zone at a first point in time and then the user may toggle to a 3D zone at a second point in time.

In some examples, a single wall may be divided into separate portions with one portion being a 2D zone and a second portion being a 3D zone. In some examples, the division of a single wall into separate zone may be arbitrarily defined (e.g., done a midpoint of the wall). In other examples, the division of a single wall may be based on particular objects associated with the wall. As a specific example,FIG. 2illustrates another example environment200in which the example AR system102ofFIG. 1may be implemented to render AR content. In the illustrated example ofFIG. 2, only a single wall202is shown. The wall202includes a window204with a cabinet206positioned underneath. Additionally, the wall202ofFIG. 2includes a door208. In this example, the window204is designated as a 3D zone with the rest of the wall202being designated as a 2D zone. Accordingly, as shown in the illustrated example, the AR object124is the same size regardless of its location on the wall202(e.g., whether standing on the cabinet206, perched on the frame of the door208, or moving therebetween. By contrast, as the AR object124is controlled by a user to transition into the 3D zone associated with the window204, the AR object124may decrease in size to give the impression that the object is moving away into world out the window204. In some examples, where the AR object124is rendered by a projector, the window204may be treated to have a semi-transparent surface that enables projected images to be visible to a user.

As shown in the illustrated example, the AR object124is very small (representative of being far in the distance) just before it reaches the edge of the 3D zone (e.g., the window frame) to transition back to the 2D zone with the full size AR object124rendered for the 2D mode. In some examples, this sudden transition from a small and seemingly distant AR object124in the 3D zone to a large and close AR object124on the other side of the boundary line is visually disruptive to users. Accordingly, in some examples, the AR display controller126may prevent a user from controlling the AR object124to transition from a 3D zone to a 2D zone unless the perceived depth of the AR object124within the 3D zone is comparable to the fixed depth of the AR object124when rendered in an adjacent 2D zone. Thus, in some such examples, if a user controls the AR object124to appear to move far into the distance in a 3D zone, the user would need to bring the AR object124back up close before transitioning to the 2D zone. In other examples, the position of depth of AR object124within a 3D virtual space is ignored and transitions between boundaries are allowed at any time.

In other examples, the depth to which an AR object124may be appeared to move within a 3D zone increases towards the center of the 3D zone but is limited closer to boundaries with an adjacent 2D zone. That is, in some examples, as a user controls an AR object124from the center of 3D zone (e.g., the center of the second wall106ofFIG. 1) towards an edge of a 3D zone (e.g., the edge108of the second wall106adjacent the first wall104ofFIG. 1), the AR display controller126automatically causes the AR object124to appear to move towards the user so that by the time the AR object124reaches the boundary of the 3D zone, the AR object124may be located at a depth comparable to the fixed depth of a 2D zone. In some examples, this is accomplished by defining a shape for the 3D virtual space constraining the perceived movement of the AR object124therein. As an example,FIG. 3illustrates an example a 3D virtual space300associated with the 3D zone of the second wall106of the example environment100ofFIG. 1. In this example, the 3D virtual space300has shape generally corresponding to a parabolic cylinder with the farthest depth into the 3D virtual space300corresponding to the center of the second wall106. As the AR object124is controlled to either the left or the right, the movement of the AR object is constrained by the outer wall of the 3D virtual space300. As a result, the AR object124will curve back towards the plane of the second wall106as the AR object approaches the edges of the wall as represented inFIG. 3. This enables the AR object to be brought into continuity of depth with the 2D zone associated with the first wall104without needing the user to manually control the AR object back when transitioning from the 3D zone to the 2D zone. While an example parabolic cylinder is shown in the illustrated example, the shape of the 3D virtual environment may be any suitable shape (e.g., conical, spherical, etc.) and may depend on the shape of the surface(s) in the real world corresponding to the 3D zone and/or where 2D zones are located relative to the 3D zone.

FIG. 4is a block diagram illustrating an example implementation of the AR display controller126ofFIG. 1. The example AR display controller126includes one or more example sensor(s)402, an example 3D model generator404, an example pose determiner406, an example display interface408, an example user controller interface410, an example user input analyzer412, an example AR content generator414, and an example database416.

The one or more sensor(s)402may be implemented to detect the physical contours of objects in the real world in which the AR display controller126is to operate. For example, the sensor(s)402may include cameras, a 3D laser scanning system (e.g., RPLIDAR technology), and/or other sensors to detect the first and second walls104,106ofFIG. 1(as well as the floor and ceiling defining the contours of the walls104,106). Further, in some examples, the sensor402are capable of detecting the door110, the first and second pictures114,116, the table118, and/or any other objects within the room. In some examples, where the AR display controller126is implemented in a portable device (e.g., in connection with the user controller152ofFIG. 1), the sensor(s)402may also include an accelerometer, a gyroscope, a magnetometer, an infrared proximity and/or depth sensor, and the like, to gather the movement, position, and/or orientation information associated with the AR display controller126. Additionally or alternatively, in some examples, the sensors402may include a microphone to receive voice commands from the user150, and/or other sensors to receive feedback from the user150and/or otherwise determine the behavior and/or activity of the user (e.g., to enable gesture based control of the AR content). In some examples, one or more of the sensors402described above may be omitted from the AR display controller126. In some such examples, the sensors402may be implemented in a separate device and the output provided to the AR display controller126via a communications interface.

In the illustrated example ofFIG. 4, the 3D model generator404generates a 3D spatial model of the environment100in which the AR system102is to be implemented. In some examples, where, for example, the AR content is rendered from one or more fixed projectors120,122, the 3D model generation may occur and/or be hardcoded into the AR display controller at the time of installation. In some such examples, the 3D model generator404may be omitted from the AR display controller126and implemented in a separate device with the output provided to the AR display controller126. In other situations, where, for example, the AR system102is incorporated into a portable device (e.g., a smartphone or a head-mounted display) such that the AR system102may be implemented in multiple different locations, the 3D model generator404may analyze sensor data to generate a 3D spatial model of an environment associated with the AR system102at any given point in time.

The example pose determiner406of the illustrated example analyzes outputs from the one or more sensor(s)402to determine a position and an orientation of the AR display controller126within an associated environment in which the AR system102is being implemented. In examples where the AR content is generated based on fixed position projectors, the pose determiner406may be omitted.

InFIG. 4, the example display interface408of the AR display controller126communicates and/or interacts with the projectors120,122to provide the AR content to be rendered on the respective first and second walls104,106. In other examples, where the AR display controller126is incorporated into a portable device, the display interface408communicates with an associated display of the portable device.

In the illustrated example, the user controller interface410communicates with the user controller152. In some examples, the user controller interface410receives user input obtained by the controller152. In some examples, the user controller interface410transmits information to the controller152to enable the controller152to provide suitable information to the user. For example, the controller152may be equipped with a haptic generator to produce vibrations that may be sensed by the user associated with the user's control of an AR object124. In some examples, the controller152may produce other types of signals (e.g., audible and/or visual) based on information communicated via the user controller interface410that may be perceived by the user150to enhance the immersive experience of the user.

The example user input analyzer412of the illustrated example analyzes user inputs received via the user controller interface410to determine how AR content rendered for the user150is to be changed. In some examples, user inputs may define when the AR object124is to be rendered in a 2D mode or a 3D mode (e.g., toggle a particular surface in the real world between a 2D zone and a 3D zone). In some examples, the user inputs define the direction in which the user150desires an AR object (e.g., the AR object124ofFIGS. 1-3) to move within a 3D virtual space and/or with respect to objects in the real world. In some examples, the same user inputs may be interpreted differently depending on whether the AR object124is currently rendered in a 2D mode or a 3D mode. For instance, in some examples, a user input indicating a movement of the AR object124to the left or right may cause the AR object124to move directly to the left or right in a 2D mode unless the AR object124is obstructed by an object in the real world associated with the corresponding 2D zone. By contrast, the same user input (movement to the left or right) for an AR object in a 3D mode may cause the object to move left or right, but also curve towards an adjacent 2D zone based on a defined shape of the 3D virtual space in which the AR object124is being moved.

In the illustrated example ofFIG. 4, the AR content generator414determines the AR content to be displayed (e.g., by the projectors120,122) based on the user input analyzed by the user input analyzer412. For example, the AR content generator414generates the AR object124to be rendered and defines the location within the environment100where the AR object124is to be rendered. Further, in some examples, the AR content generator414determines the content to be rendered based on the current position of the AR object124and the current user control inputs relative to objects in the real world as defined by a model of the real world generated by the 3D model generator404. In some such examples, the rules by which the AR content generator414controls the rendering of the AR object124relative to the real world depends on whether the AR object124is currently being rendered in a 2D zone or a 3D zone.

The example database416of the illustrated example stores relevant information to enable the implementation of the other blocks ofFIG. 4described above. For example, the database416may store the 3D spatial model generated by the 3D model generator404. Further, in some examples, the database416stores visual elements corresponding to the AR object124as well as other AR content such as the AR scenery130shown inFIG. 1. Further, the database416may store the rules governing how movement of the AR object124is to occur based on user-input depending on whether the AR object is currently rendered in a 2D mode or a 3D mode.

While an example manner of implementing the example AR display controller126ofFIG. 1is illustrated inFIG. 4, one or more of the elements, processes and/or devices illustrated inFIG. 4may be combined, divided, re-arranged, omitted, eliminated and/or implemented in any other way. Further, the one or more example sensor(s)402, the example 3D model generator404, the example pose determiner406, the example display interface408, the example user controller interface410, the example user input analyzer412, the example AR content generator414, the example database416and/or, more generally, the example AR display controller126ofFIG. 1may be implemented by hardware, software, firmware and/or any combination of hardware, software and/or firmware. Thus, for example, any of the one or more example sensor(s)402, the example 3D model generator404, the example pose determiner406, the example display interface408, the example user controller interface410, the example user input analyzer412, the example AR content generator414, the example database416and/or, more generally, the example AR display controller126could be implemented by one or more analog or digital circuit(s), logic circuits, programmable processor(s), programmable controller(s), graphics processing unit(s) (GPU(s)), digital signal processor(s) (DSP(s)), application specific integrated circuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)) and/or field programmable logic device(s) (FPLD(s)). When reading any of the apparatus or system claims of this patent to cover a purely software and/or firmware implementation, at least one of the one or more example sensor(s)402, the example 3D model generator404, the example pose determiner406, the example display interface408, the example user controller interface410, the example user input analyzer412, the example AR content generator414, and/or the example database416is/are hereby expressly defined to include a non-transitory computer readable storage device or storage disk such as a memory, a digital versatile disk (DVD), a compact disk (CD), a Blu-ray disk, etc. including the software and/or firmware. Further still, the example AR display controller126ofFIG. 1may include one or more elements, processes and/or devices in addition to, or instead of, those illustrated inFIG. 4, and/or may include more than one of any or all of the illustrated elements, processes and devices. As used herein, the phrase “in communication,” including variations thereof, encompasses direct communication and/or indirect communication through one or more intermediary components, and does not require direct physical (e.g., wired) communication and/or constant communication, but rather additionally includes selective communication at periodic intervals, scheduled intervals, aperiodic intervals, and/or one-time events.

The program ofFIG. 5begins at block502where the example AR content generator414controls rendering of an AR object (e.g., the AR object124ofFIGS. 1-3) based on 2D zone control rules. Further detail regarding the implementation of block502is provided below in connection withFIG. 6. At block504, the example user input analyzer412determines whether user input is directing the AR object124to transition across a boundary (e.g., the edge108inFIG. 1) from a 2D zone (e.g., associated with the first wall104inFIG. 1) to a 3D zone (e.g., associated with the second wall106inFIG. 1). If not, control returns to block502. If so, control advances to block506where the example AR content generator414renders the AR object124in the 3D zone at the location of the transition. At block508, the AR content generator414stops rendering the AR object124in the 2D zone. In some examples, blocks506and508are implemented substantially simultaneously. In some examples, the implementation of block506and508are synchronized so that as an increasing portion of the AR object124is rendered in the 3D zone at the boundary line, a corresponding portion of the AR object124in the 2D zone is no longer rendered as the AR object124is made to appear to move to the 3D zone. In some examples, there may be a delay between block506and block508so that the AR object124appears momentarily in both the 2D zone and the 3D zone. In some examples, the delay may be a fixed threshold period of time. In some examples, the period of time of the delay may be based on user input. For instance, in some examples, the AR object124may be rendered in both the 2D zone and the 3D zone and remain in that state until the user either confirms or denies the intent to transition to the other zone.

Thereafter, at block510, the example AR content generator414controls rendering of the AR object124based on 3D zone control rules. Further detail regarding the implementation of block510is provided below in connection withFIG. 7. At block512, the example user input analyzer412determines whether user input is directing the AR object124to transition across the boundary from the 3D zone to the 2D zone. If not, control returns to block510. If so, control advances to block514where the example AR content generator414renders the AR object124in the 2D zone at the location of the transition. At block516, the AR content generator414stops rendering the AR object124in the 3D zone. Thereafter, control returns to block502to continue through the example process ofFIG. 5.

As mentioned above,FIG. 6provides an example implementation of block502ofFIG. 5. The example process ofFIG. 6begins at block602where the example user input analyzer412determines movement of the AR object124intended by user input. At block604, the example AR content generator414updates the rendered position of the AR object along the surface of the 2D zone based on the intended movement. At block606, the example AR content generator414determines whether the AR object is being moved adjacent a real world object. If so, control advances to block608where the example AR content generator414renders an interaction effect between the AR object and the real world object. In some examples, the nature of interaction between the AR object124and the real world object depends upon what the AR object is and the characteristics defining how the AR object is to behave when interacting with real world objects. For instance, in the illustrated examples ofFIGS. 1-3, the AR object124is a bird that can fly around and, thus, either bumps into real world objects while flying or lands upon the real world objects. As another example, the AR object124could be a lizard that is made to appear to leap from one object to another and able to climb the sides of the real world objects and/or dangle from the bottom of such objects. Thereafter, control advances to block610.

Returning to block606, if the example AR content generator414determines that the AR object124is not being moved adjacent a real world object, control advances directly to block610. At block610, the example AR content generator414determines if the AR object124is being moved adjacent a zone boundary. If so, the example process ofFIG. 6ends and returns to the process ofFIG. 4to determine whether to transition to a 3D zone (block504ofFIG. 5). If, however, the example AR content generator414determines that the AR object124is not being moved adjacent a zone boundary, control returns to block602to continue controlling the rendering of the AR object124based on the 2D zone control rules.

As mentioned above,FIG. 7provides an example implementation of block512ofFIG. 5. The example process ofFIG. 7begins at block702where the example user input analyzer412determines movement of the AR object124intended by user input. At block704, the example AR content generator414determines whether the intended movement includes translation along a surface of the 3D zone (e.g., the surface of the second wall106ofFIG. 1). If so, control advances to block706, where the example AR content generator414determines whether the intended movement is constrained by the shape of a 3D virtual space associated with the 3D zone. If so, control advances to block708where the example AR content generator414updates the rendered position of the AR object124on the surface of the 3D zone based on the intended movement and the shape of the 3D virtual space. Thereafter, control advances to block712. If the example AR content generator414determines that the intended movement is not constrained by the shape of a 3D virtual space associated with the 3D zone (block706), control advances to block710. At block710, the example AR content generator414updates the rendered position of the AR object124on the surface of the 3D zone based on the intended movement. Thereafter, control advances to block712. Returning to block704, if the example AR content generator414determines that the intended movement does not include translation along a surface of the 3D zone, control advances directly to block712.

At block712, the example AR content generator414determines whether the intended movement extends in a depth direction of the 3D virtual space associated with the 3D zone. In some examples, this depth direction may arise do to the constraints imposed by the shape of the 3D virtual space at block708. If the intended movement does extend in the depth direction, control advances to block714where the example AR content generator414renders a depth motion effect. In some examples, the depth motion effect includes increasing or decreasing the size of the AR object124depending on whether the movement is to appear out of or farther into the 3D virtual space. In other examples, the depth motion effect includes change the surrounding AR scenery (e.g., the AR scenery130ofFIG. 1) so as to represent the changing view when moving along with the AR object124. After rendering the depth motion effect, control advances to block716. If the example AR content generator414determines that the intended movement does not extend in the depth direction (block712), control advances directly to block716.

At block716, the example AR content generator414determines whether the position of the AR object124overlaps with a real world object. If so, control advances to block718where the example AR content generator414stops rendering the AR object but continues to update the position of the AR object based on the intended movement of the user input. Thereafter, control advances to block720. If the example AR content generator414determines that the position of the AR object124does not overlap with a real world object (block716), control advances directly to block720. At block720, the example AR content generator414determines if the AR object124is being moved adjacent a zone boundary. If so, control advances to block722. Otherwise, control returns to block702to continue controlling the rendering of the AR object124based on the 3D zone control rules.

At block722, the example AR content generator414determines whether consistency of depth between the 2D and 3D zones is a constraint. If so, control advances to block724where the example AR content generator414determines whether the depth of the AR object in the 3D zone is consistent with the fixed depth of the 2D zone. In some examples, the depths are considered consistent within a particular threshold of difference. If the depth of the AR object124in the 3D zone is not consistent with the 2D zone, control advances to block726, where the example AR content generator414prevents the AR object from transitioning to the 2D zone. Thereafter, control returns to block702. If the example AR content generator414determines that the depth of the AR object in the 3D zone is consistent with the 2D zone (block724), the example process ofFIG. 7ends and control returns to continue the process ofFIG. 5. Returning to block722, if the example AR content generator414determines that consistency of depth between the 2D and 3D zones is not a constraint, the example process ofFIG. 7ends and control returns to continue the process ofFIG. 5.

FIG. 8is a block diagram of an example processor platform800structured to execute the instructions ofFIGS. 5-7to implement the example AR display controller126ofFIGS. 1 and/or 4. The processor platform800can be, for example, a server, a personal computer, a workstation, a self-learning machine (e.g., a neural network), a mobile device (e.g., a cell phone, a smart phone, a tablet such as an iPad), a personal digital assistant (PDA), an Internet appliance, a DVD player, a CD player, a digital video recorder, a Blu-ray player, a gaming console, a personal video recorder, a set top box, a headset or other wearable device, or any other type of computing device.

The processor platform800of the illustrated example includes a processor812. The processor812of the illustrated example is hardware. For example, the processor812can be implemented by one or more integrated circuits, logic circuits, microprocessors, GPUs, DSPs, or controllers from any desired family or manufacturer. The hardware processor may be a semiconductor based (e.g., silicon based) device. In this example, the processor implements the example 3D model generator404, the example pose determiner406, the example display interface408, the example user controller interface410, the example user input analyzer412, and the example AR content generator414.

The processor platform800of the illustrated example also includes an interface circuit820. The interface circuit820may be implemented by any type of interface standard, such as an Ethernet interface, a universal serial bus (USB), a Bluetooth® interface, a near field communication (NFC) interface, and/or a PCI express interface.

In the illustrated example, one or more input devices822are connected to the interface circuit820. The input device(s)822permit(s) a user to enter data and/or commands into the processor812. The input device(s) can be implemented by, for example, an audio sensor, a microphone, a camera (still or video), a keyboard, a button, a mouse, a touchscreen, a track-pad, a trackball, isopoint and/or a voice recognition system. In this example, the input device(s)822include the one or more sensors402.

The processor platform800of the illustrated example also includes one or more mass storage devices828for storing software and/or data. Examples of such mass storage devices828include floppy disk drives, hard drive disks, compact disk drives, Blu-ray disk drives, redundant array of independent disks (RAID) systems, and digital versatile disk (DVD) drives. In this example, the mass storage device implements the example database416.

The machine executable instructions832ofFIGS. 5-7may be stored in the mass storage device828, in the volatile memory814, in the non-volatile memory816, and/or on a removable non-transitory computer readable storage medium such as a CD or DVD.

From the foregoing, it will be appreciated that example methods, apparatus and articles of manufacture have been disclosed that enable the user-controlled transition of a rendered AR object between 2D and 3D zones of a real world environment. Examples disclosed herein provide for intuitive transitions that preserve continuity of the AR object as it transitions from one zone to another to enhance a user experience for a user moving the AR object in the respective zones. AR content (including the AR object) may be rendered using any suitable AR technology such as, for example, one or more projectors on a surface of the real world environment in which the AR content is to interact, via display screen of a portable device, or via AR glasses worn by the user.

Example 1 includes an apparatus comprising a user input analyzer to determine an intended movement of an AR object relative to a first zone of a real world environment and a second zone of the real world environment, and an AR content generator, in response to user input, to render an appearance of movement of the AR object in the first zone based upon a first set of rules, and render the AR object in the second zone, movement of the AR object in the second zone based on a second set of rules different than the first set of rules.

Example 2 includes the apparatus of example 1, wherein the first set of rules is to constrain the appearance of movement of the AR object in the first zone to translation within a surface associated with the first zone, the second set of rules to enable the appearance of movement of the AR object in a depth direction extending perpendicular to a surface associated with the second zone.

Example 3 includes the apparatus of example 2, wherein, in response to the user input to move the AR object beyond a boundary of the first zone, the AR content generator is to render the AR object in the second zone at a point of transition corresponding to a location of the AR object rendered in the first zone, and remove the rendering of the AR object in the first zone, the boundary dividing the first zone from the second zone.

Example 4 includes the apparatus of example 3, wherein the AR content generator is to delay the removal of the rendering of the AR object in the first zone for a period of time after the rendering of the AR object in the second zone.

Example 5 includes the apparatus of any one of examples 2-4, wherein the AR content generator is to generate the appearance of movement of the AR object in the first zone by maintaining the AR object at a consistent size as the AR object moves.

Example 6 includes the apparatus of any one of examples 2-5, wherein the AR content generator is to generate the appearance of movement of the AR object in the depth direction in the second zone by altering a size of the AR object as the AR object moves.

Example 7 includes the apparatus of any one of examples 2-6, wherein the AR content generator is to render an AR scene in the second zone, and generate the appearance of movement of the AR object in the depth direction by altering the AR scene.

Example 8 includes the apparatus of any one of examples 2-7, wherein, in response to the user input to move the AR object to an area corresponding to a real world object associated with the first zone, the AR content generator is to render an interaction effect between the AR object and the real world object based on the first set of rules.

Example 9 includes the apparatus of example 8, wherein the AR content generator is to prevent the AR object from moving into the area corresponding to the real world object.

Example 10 includes the apparatus of any one of examples 2-9, wherein, in response to the user input to move the AR object to an area corresponding to a real world object associated with the second zone, the AR content generator is to track a user-intended position of the AR object in the area corresponding to the real world object, and remove a rendering of the AR object while the user-intended position overlaps the area corresponding to the real world object.

Example 11 includes the apparatus of any one of examples 2-10, wherein the second set of rules constrain an appearance of movement of the AR object in the second zone to remain within boundaries of a 3D virtual space.

Example 12 includes the apparatus of example 11, wherein, in response to the user input to move the AR object to a virtual position beyond the boundaries of the 3D virtual space, the AR content generator is to automatically generate the appearance of movement of the AR object in the depth direction along a boundary of the 3D virtual space.

Example 13 includes the apparatus of any one of examples 1-12, wherein the first zone and the second zone correspond to a common surface in the real world environment.

Example 14 includes the apparatus of any one of examples 1-13, wherein the first zone is adjacent the second zone with a boundary therebetween.

Example 15 includes the apparatus of example 14, wherein the first zone corresponds to a first wall and the second zone corresponds to a second wall, the boundary corresponding to a corner where the first and second walls meet.

Example 16 includes the apparatus of example 14, wherein the first zone corresponds to a wall and the second zone corresponds to a window in the wall, the boundary corresponding to a perimeter of the window.

Example 17 includes the apparatus of example 14, wherein the first zone corresponds to a wall and the second zone corresponds to at least one of a floor or a ceiling, the boundary corresponding to a corner where the wall and the at least one of the floor or the ceiling meet.

Example 18 includes the apparatus of any one of examples 1-17, further including a first projector, the AR content generator to render the AR object in the first zone via the first projector, and a second projector, the AR content generator to render the AR object in the second zone via the second projector.

Example 19 includes the apparatus of example 18, further including a user controller to receive the user input from a user.

Example 20 includes a non-transitory computer readable medium comprising instructions that, when executed, cause one or more machines to at least render an AR object to appear in a first zone of a real world environment, in response to user input move the rendering of the AR object relative to the real world environment based upon a first set of rules, and render the AR object in a second zone of the real world environment, movement of the AR object in the second zone based on a second set of rules different than the first set of rules.

Example 21 includes the non-transitory computer readable medium of example 20, wherein the first set of rules is to constrain an appearance of movement of the AR object in the first zone to translation within a surface associated with the first zone, the second set of rules to enable the appearance of movement of the AR object in a depth direction extending perpendicular to a surface associated with the second zone.

Example 22 includes the non-transitory computer readable medium of example 21, wherein, in response to the user input to move the AR object beyond a boundary of the first zone, the instructions, in response to the AR object moving to the boundary in the first zone, further causing the one or more machines to render the AR object in the second zone at a point of transition corresponding to a location of the AR object rendered in the first zone, and remove the rendering of the AR object in the first zone, the boundary dividing the first zone from the second zone.

Example 23 includes the non-transitory computer readable medium of example 22, wherein the instructions further cause the one or more machines to delay the removal of the rendering of the AR object in the first zone for a period of time after the rendering of the AR object in the second zone.

Example 24 includes the non-transitory computer readable medium of any one of examples 20-23, wherein the instructions further cause the one or more machines to generate the appearance of movement of the AR object in the first zone by maintaining the AR object at a consistent size as the AR object moves.

Example 25 includes the non-transitory computer readable medium of any one of examples 20-24, wherein the instructions further cause the one or more machines to generate the appearance of movement of the AR object in the depth direction in the second zone by altering a size of the AR object as the AR object moves.

Example 26 includes the non-transitory computer readable medium of any one of examples 20-25, wherein the instructions further cause the one or more machines to render an AR scene in the second zone, and generate the appearance of movement of the AR object in the depth direction by altering the AR scene.

Example 27 includes the non-transitory computer readable medium of any one of examples 20-26, wherein the instructions, in response to the user input to move the AR object to an area corresponding to a real world object associated with the first zone, further cause the one or more machines to render an interaction effect between the AR object and the real world object based on the first set of rules.

Example 28 includes the non-transitory computer readable medium of example 27, wherein the instructions further cause the one or more machines to prevent the AR object from moving into the area corresponding to the real world object.

Example 29 includes the non-transitory computer readable medium of any one of examples 20-28, wherein the instructions, in response to the user input to move the AR object to an area corresponding to a real world object associated with the second zone, further cause the one or more machines to track a user-intended position of the AR object in the area corresponding to the real world object, and remove a rendering of the AR object while the user-intended position overlaps the area corresponding to the real world object.

Example 30 includes the non-transitory computer readable medium of any one of examples 20-29, wherein the second set of rules constrain an appearance of movement of the AR object in the second zone to remain within boundaries of a 3D virtual space.

Example 31 includes the non-transitory computer readable medium of example 30, wherein the instructions, in response to the user input to move the AR object to a virtual position beyond the boundaries of the 3D virtual space, further cause the one or more machines to automatically generate the appearance of movement of the AR object in the depth direction along a boundary of the 3D virtual space.

Example 32 includes the non-transitory computer readable medium of any one of examples 20-31, wherein the first zone and the second zone correspond to a common surface in the real world environment.

Example 33 includes the non-transitory computer readable medium of any one of examples 20-32, wherein the first zone is adjacent the second zone with a boundary therebetween.

Example 34 includes the non-transitory computer readable medium of example 33, wherein the first zone corresponds to a first wall and the second zone corresponds to a second wall, the boundary corresponding to a corner where the first and second walls meet.

Example 35 includes the non-transitory computer readable medium of example 33, wherein the first zone corresponds to a wall and the second zone corresponds to a window in the wall, the boundary corresponding to a perimeter of the window.

Example 36 includes a method comprising rendering, by executing an instruction with at least one processor, an AR object to appear in a first zone of a real world environment, in response to user input moving, by executing an instruction with the at least one processor, the rendering of the AR object relative to the real world environment based upon a first set of rules, and rendering, by executing an instruction with the at least one processor, the AR object in a second zone of the real world environment, movement of the AR object in the second zone based on a second set of rules different than the first set of rules.

Example 37 includes the method of example 36, wherein the first set of rules is to constrain an appearance of movement of the AR object in the first zone to translation within a surface associated with the first zone, the second set of rules to enable the appearance of movement of the AR object in a depth direction extending perpendicular to a surface associated with the second zone.

Example 38 includes the method of example 37, wherein, in response to the user input to move the AR object beyond a boundary of the first zone rendering the AR object in the second zone at a point of transition corresponding to a location of the AR object rendered in the first zone, and removing the rendering of the AR object in the first zone, the boundary dividing the first zone from the second zone.

Example 39 includes the method of example 38, further including delaying the removal of the rendering of the AR object in the first zone for a period of time after the rendering of the AR object in the second zone.

Example 40 includes the method of any one of examples 37-39, further including generating the appearance of movement of the AR object in the first zone by maintaining the AR object at a consistent size as the AR object moves.

Example 41 includes the method of any one of examples 37-40, further including generating the appearance of movement of the AR object in the depth direction in the second zone by altering a size of the AR object as the AR object moves.

Example 42 includes the method of any one of examples 37-41, further including rendering an AR scene in the second zone, and generating the appearance of movement of the AR object in the depth direction by altering the AR scene.

Example 43 includes the method of any one of examples 37-42, further including, in response to the user input to move the AR object to an area corresponding to a real world object associated with the first zone, rendering an interaction effect between the AR object and the real world object based on the first set of rules.

Example 44 includes the method of example 43, further including preventing the AR object from moving into the area corresponding to the real world object.

Example 45 includes the method of any one of examples 37-44, further including, in response to the user input to move the AR object to an area corresponding to a real world object associated with the second zone tracking a user-intended position of the AR object in the area corresponding to the real world object, and removing a rendering of the AR object while the user-intended position overlaps the area corresponding to the real world object.

Example 46 includes the method of any one of examples 37-45, wherein the second set of rules constrain an appearance of movement of the AR object in the second zone to remain within boundaries of a 3D virtual space.

Example 47 includes the method of example 46, further including, in response to the user input to move the AR object to a virtual position beyond the boundaries of the 3D virtual space, automatically generating the appearance of movement of the AR object in the depth direction along a boundary of the 3D virtual space.

Example 48 includes the method of any one of examples 36-47, wherein the first zone and the second zone correspond to a common surface in the real world environment.

Example 49 includes the method of any one of examples 36-48, wherein the first zone is adjacent the second zone with a boundary therebetween.

Example 50 includes the method of example 49, wherein the first zone corresponds to a first wall and the second zone corresponds to a second wall, the boundary corresponding to a corner where the first and second walls meet.

Example 51 includes the method of example 49, wherein the first zone corresponds to a wall and the second zone corresponds to a window in the wall, the boundary corresponding to a perimeter of the window.