3D user interface depth forgiveness
A head-worn device system includes one or more cameras, one or more display devices and one or more processors. The system also includes a memory storing instructions that, when executed by the one or more processors, configure the system to generate a virtual object, generate a virtual object collider for the virtual object, determine a conic collider for the virtual object, provide the virtual object to a user, detect a landmark on the user's hand in the real-world, generate a landmark collider for the landmark, and determine a selection of the first virtual object by the user based on detecting a collision between the landmark collider with the conic collider and with the virtual object collider.
1 . A machine-implemented method comprising:
generating, by one or more processors, a virtual object in a 3D user interface;
generating, by the one or more processors, a first virtual object collider for the virtual object;
generating, by the one or more processors, a second virtual object collider for the virtual object wherein a radius of the second virtual object collider is greater than a radius of the first virtual object collider;
providing, by the one or more processors, the virtual object to a user in a display;
detecting, by the one or more processors, a landmark on a hand of the user;
generating, by the one or more processors, a landmark collider for the landmark;
generating, by the one or more processors, a ray originating at an eye position of the user and passing through the landmark; and
determining, by the one or more processors, a user interaction with the virtual object based on detecting an intersection between the landmark collider with the second virtual object collider and a collision of the ray with the first virtual object collider.
2 . The machine-implemented method of claim 1 wherein an axis of the first virtual object collider runs through a centroid of the virtual object.
3 . The machine-implemented method of claim 1 wherein an axis of the second virtual object collider runs through a centroid of the virtual object.
4 . The machine-implemented method of claim 1 wherein a radius of the first virtual object collider is equal to a radius of a sphere circumscribing the virtual object.
5 . The machine-implemented method of claim 1 wherein a radius of the second virtual object collider is greater than a radius of a sphere circumscribing the virtual object.
6 . The machine-implemented method of claim 1 , wherein the first virtual object collider is a sphere circumscribing the virtual object and the second virtual object collider is an expanded sphere having a radius larger than the first virtual object collider.
7 . The machine-implemented method of claim 1 wherein the virtual object is generated based on real-world video frame data.
8 . A machine comprising:
at least one processor; and
at least one memory storing instructions that, when executed by the at least one processor, cause the machine to perform operations comprising:
generate, by one or more processors, a virtual object in a 3D user interface;
generate, by the one or more processors, a first virtual object collider for the virtual object;
generate, by the one or more processors, a second virtual object collider for the virtual object wherein a radius of the second virtual object collider is greater than a radius of the first virtual object collider;
provide, by the one or more processors, the virtual object to a user in a display;
detect, by the one or more processors, a landmark on a hand of the user;
generate, by the one or more processors, a landmark collider for the landmark;
generate, by the one or more processors, a ray originating at an eye position of the user and passing through the landmark; and
determine, by the one or more processors, a user interaction with the virtual object based on detecting an intersection between the landmark collider with the second virtual object collider and a collision of the ray with the first virtual object collider.
9 . The computing apparatus of claim 8 wherein an axis of the first virtual object collider runs through a centroid of the virtual object.
10 . The computing apparatus of claim 8 wherein an axis of the second virtual object collider runs through a centroid of the virtual object.
11 . The computing apparatus of claim 8 wherein a radius of the first virtual object collider is equal to a radius of a sphere circumscribing the virtual object.
12 . The computing apparatus of claim 8 wherein a radius of the second virtual object collider is greater than a radius of a sphere circumscribing the virtual object.
13 . The computing apparatus of claim 8 , wherein the first virtual object collider is a sphere circumscribing the virtual object and the second virtual object collider is an expanded sphere having a radius larger than the first virtual object collider.
14 . The computing apparatus of claim 8 wherein the virtual object is generated based on real-world video frame data.
15 . A machine-storage medium storing instructions that, when executed by a machine, cause the machine to perform operations comprising:
generate, by one or more processors, a virtual object in a 3D user interface;
generate, by the one or more processors, a first virtual object collider for the virtual object;
generate, by the one or more processors, a second virtual object collider for the virtual object wherein a radius of the second virtual object collider is greater than a radius of the first virtual object collider;
provide, by the one or more processors, the virtual object to a user in a display;
detect, by the one or more processors, a landmark on a hand of the user;
generate, by the one or more processors, a landmark collider for the landmark;
generate, by the one or more processors, a ray originating at an eye position of the user and passing through the landmark; and
determine, by the one or more processors, a user interaction with the virtual object based on detecting an intersection between the landmark collider with the second virtual object collider and a collision of the ray with the first virtual object collider.
16 . The machine-storage medium of claim 15 wherein an axis of the first virtual object collider runs through a centroid of the virtual object.
17 . The machine-storage medium of claim 15 wherein an axis of the second virtual object collider runs through a centroid of the virtual object.
18 . The machine-storage medium of claim 15 wherein a radius of the first virtual object collider is equal to a radius of a sphere circumscribing the virtual object.
19 . The machine-storage medium of claim 15 wherein a radius of the second virtual object collider is greater than a radius of a sphere circumscribing the virtual object.
20 . The machine-storage medium of claim 15 , wherein the first virtual object collider is a sphere circumscribing the virtual object and the second virtual object collider is an expanded sphere having a radius larger than the first virtual object collider.