Distorted-view AR rendering technique (granted).
Embodiments provide for distorted views in augmented reality by mapping undistorted distances from a camera to real objects in an environment; producing a distorted video feed of the environment that shows the real objects at apparent distances to the camera; anchoring a virtual object to a position in the environment based on the undistorted distances; determining a scaling factor between the camera and the position based on the undistorted distances and the apparent distances; scaling the virtual object based on the scaling factor; overlaying the virtual object as scaled into the distorted video feed; and outputting the distorted video feed to a display device.
BACKGROUND(1) Augmented Reality (AR) may be realized by overlaying images of virtual objects onto an image of the real world environment including one or more real world objects. The images of virtual objects are positioned in a user's Field of View (FOV) to give the virtual objects an apparent location in the environment. To ensure that the images of the virtual objects are displayed in appropriate positions in the user's FOV relative to the viewed locations of the real world objects in the environment, various AR applications may anchor the virtual objects in the environment based on the location of one or more real world objects. When the user is presented with a distorted view of the environment, however, the AR application may have difficulty arranging virtual objects in accordance with the distorted view. As a result, the AR application may anchor and present virtual objects at positions inconsistent with the AR experience otherwise provided to the user, resulting in a degraded AR experience.SUMMARY(2) The present disclosure provides, in one embodiment, a method for distorting a view in augmented reality, the method, comprising: mapping undistorted distances from a camera to real objects in an environment; producing a distorted video feed of the environment that shows the real objects at apparent distances to the camera; anchoring a virtual object to a position in the environment based on the undistorted distances; determining a scaling factor between the camera and the
1. A method, comprising: mapping undistorted distances from a camera to real objects in an environment; producing a distorted video feed of the environment that shows the real objects at apparent distances to the camera; anchoring a virtual object to a position in the environment based on the undistorted distances; determining a scaling factor between the camera and the position based on the undistorted distances and the apparent distances; scaling the virtual object based on the scaling factor; overlaying the virtual object as scaled into the distorted video feed; outputting the distorted video feed to a display device; and in response to determining that a field of view of the environment for the camera has changed: mapping new undistorted distances from the camera to the real objects in the environment; producing the distorted video feed of the environment to show the real objects at new apparent distances to the camera; re-anchoring the virtual object to the position in the environment based on the new undistorted distances; determining a new scaling factor between the camera and the position based on the new undistorted distances and the new apparent distances; re-scaling the virtual object based on the new scaling factor; overlaying the virtual object as newly scaled into the distorted video feed; and outputting the distorted video feed to the display device.
7. A non-transitory computer-readable medium containing computer program code that, when executed by operation of one or more computer processors, performs an operation comprising: mapping undistorted distances from a camera to real objects in an environment; producing a distorted video feed of the environment that shows the real objects at apparent distances to the camera; anchoring a virtual object to a position in the environments based on the undistorted distances; determining a scaling factor between the camera and the position based on the undistorted distances and the apparent distances; scaling the virtual object based on the scaling factor; overlaying the virtual object as scaled into the distorted video feed; outputting the distorted video feed to a display device; and in response to determining that a field of view of the environment for the camera has changed: mapping new undistorted distances from the camera to the real objects in the environment; producing the distorted video feed of the environment to show the real objects at new apparent distances to the camera; re-anchoring the virtual object to the position in the environments based on the new undistorted distances; determining a new scaling factor between the camera and the position based on the new undistorted distances and the new apparent distances; re-scaling the virtual object based on the new scaling factor; overlaying the virtual object as newly scaled into the distorted video feed; and outputting the distorted video feed to the display device.
13. A system, comprising: a processor; a camera; a display device; and a memory storing instructions that when executed by the processor enable the system to: map undistorted distances from the camera to real objects in an environment; produce a distorted video feed of the environment that shows the real objects at apparent distances to the camera; anchor a virtual object to a position in the environments based on the undistorted distances; determine a scaling factor between the camera and the position based on the undistorted distances and the apparent distances; scale the virtual object based on the scaling factor; overlay the virtual object as scaled into the distorted video feed; output the distorted video feed to the display device; and in response to determining that a field of view of the environment for the camera has changed: map new undistorted distances from the camera to the real objects in the environment; produce the distorted video feed of the environment to show the real objects at new apparent distances to the camera; re-anchor the virtual object to the position in the environments based on the new undistorted distances; determine a new scaling factor between the camera and the position based on the new undistorted distances and the new apparent distances; re-scale the virtual object based on the new scaling factor; overlay the virtual object as newly scaled into the distorted video feed; and output the distorted video feed to the display device.