Manipulating virtual objects with six degree-of-freedom controllers in an augmented and/or virtual reality environment
First Claim
1. A method, comprising:
- generating a three-dimensional (3D) virtual environment;
tracking a six-degree-of-freedom (6DOF) position and orientation of a first controller in a physical environment;
tracking a 6DOF position and orientation of a second controller in the physical environment;
detecting a selection of a virtual object displayed in the virtual environment;
detecting an input targeted for the selected virtual object, including detecting a movement of the first controller and a movement of the second controller in the physical environment at the same point in time, the detected movement of the first controller being with respect to a first coordinate system and the detected movement of the second controller being with respect to a second coordinate system;
dynamically resolving the detected movement of the first controller with respect to the first coordinate system and the detected movement of the second controller with respect to the second coordinate system to a single 6DOF command movement with respect to a common coordinate system, including;
defining a first axis of the common coordinate system, the first axis extending from a central portion of the first controller to a central portion of the second controller;
defining a second axis of the common coordinate system, the second axis of the common coordinate system being selected from one of an X axis, a Y axis, or a Z axis of one of the first coordinate system or the second coordinate system that is most orthogonal to the first axis of the common coordinate system; and
defining a third axis of the common coordinate system, the third axis of the common coordinate system being the cross product of the first axis of the common coordinate system and the second axis of the common coordinate system; and
manipulating the selected virtual object in response to the single 6DOF command movement.
2 Assignments
0 Petitions
Accused Products
Abstract
A system for combining six degree of freedom (6DOF) inputs, or positional and orientation inputs, from multiple 6DOF controllers in an augmented reality (AR) environment and/or a virtual reality (VR) environment is provided. In response to the detected movement of multiple controllers, and in particular, rotational movement of the multiple controllers providing user inputs in a virtual reality environment, the detected movements of the multiple controllers may be resolved to a single, common coordinate system to determine intended input to be applied to a selected virtual object in the virtual environment. The ability to resolve these inputs from multiple 6DOF controllers to a common coordinate system may provide a more natural user input mode, thus enhancing the user'"'"'s experience.
-
Citations
20 Claims
-
1. A method, comprising:
-
generating a three-dimensional (3D) virtual environment; tracking a six-degree-of-freedom (6DOF) position and orientation of a first controller in a physical environment; tracking a 6DOF position and orientation of a second controller in the physical environment; detecting a selection of a virtual object displayed in the virtual environment; detecting an input targeted for the selected virtual object, including detecting a movement of the first controller and a movement of the second controller in the physical environment at the same point in time, the detected movement of the first controller being with respect to a first coordinate system and the detected movement of the second controller being with respect to a second coordinate system; dynamically resolving the detected movement of the first controller with respect to the first coordinate system and the detected movement of the second controller with respect to the second coordinate system to a single 6DOF command movement with respect to a common coordinate system, including; defining a first axis of the common coordinate system, the first axis extending from a central portion of the first controller to a central portion of the second controller; defining a second axis of the common coordinate system, the second axis of the common coordinate system being selected from one of an X axis, a Y axis, or a Z axis of one of the first coordinate system or the second coordinate system that is most orthogonal to the first axis of the common coordinate system; and defining a third axis of the common coordinate system, the third axis of the common coordinate system being the cross product of the first axis of the common coordinate system and the second axis of the common coordinate system; and manipulating the selected virtual object in response to the single 6DOF command movement. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method, comprising:
-
detecting a selection of a virtual object displayed in a virtual environment; detecting an input targeted for the selected virtual object displayed in the virtual environment in response to a detected movement of a first controller and a detected movement of second controller in a physical environment at the same point in time, the detected movement of the first controller being with respect to a first coordinate system, and the detected movement of a second controller being with respect to a second coordinate system; dynamically resolving the detected movement of the first controller with respect to the first coordinate system and the detected movement of the second controller with respect to the second coordinate system to a single 6DOF command movement with respect to a common coordinate system, including; defining a first axis of the common coordinate system, the first axis of the common coordinate system extending from a central portion of the first controller to a central portion of the second controller; and dynamically defining a second axis of the common coordinate system, the second axis of the common coordinate system being selected from one of an X axis, a Y axis, or a Z axis of one of the first coordinate system or the second coordinate system that is most orthogonal to the first axis of the common coordinate system; and defining a third axis of the common coordinate system, the third axis of the common coordinate system being the cross product of the first axis of the common coordinate system and the second axis of the common coordinate system; and rotating the selected virtual object in the virtual environment in response to the single 6DOF command movement. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A computer program product embodied on a non-transitory computer readable medium, the computer readable medium having stored thereon a sequence of instructions which, when executed by a processor, causes the processor to execute a method, the method comprising:
-
generating a three-dimensional (3D) virtual environment; tracking a six-degree-of-freedom (6DOF) position and orientation of a first controller in a physical environment; tracking a 6DOF position and orientation of a second controller in the physical environment; detecting a selection of a virtual object displayed in the virtual environment; detecting an input targeted for the selected virtual object including detecting a movement of the first controller and the second controller in the physical environment at the same point in time, the detected movement of the first controller being with respect to a first coordinate system, and the detected movement of the second controller being with respect to a second coordinate system; dynamically resolving the detected movement of the first controller with respect to the first coordinate system and the detected movement of the second controller with respect to the second coordinate system to a single 6DOF command movement with respect to a common coordinate system, including; defining a first axis of the common coordinate system, the first axis of the common coordinate system extending from a central portion of the first controller to a central portion of the second controller; and defining a second axis of the common coordinate system, the second axis of the common coordinate system being selected from one of an X axis, a Y axis, or a Z axis of one of the first coordinate system or the second coordinate system that is most orthogonal to the first axis of the common coordinate system; and defining a third axis of the common coordinate system, the third axis of the common coordinate system being the cross product of the first axis and the second axis; and manipulating the selected virtual object in response to the single 6DOF command movement. - View Dependent Claims (19, 20)
-
Specification