English:
[0001] The present disclosure generally relates to simulated or virtual reality environments, and more particularly to interactive input controls therein.
[0002] Advances in technology, driven, for example, by improved processing power and speed, ever more efficient software rendering techniques, consumer convenience, and the like, have supported a growing movement in developing and designing simulated or three-dimensional (3D) virtual reality (VR) environments. VR systems which support such VR environments generally include hardware such as headsets, goggles, handheld or wearable devices, and the like. Operatively, such hardware continuously tracks user movements, updates user positions, orientations, and the like, and receives interactive input from users in a VR environment.
[0003] While certain VR systems can include complex and often expensive hardware and other equipment, such as an omni-directional treadmill, for tracking and translating real-world user movement into the VR environment, an average user may not have requisite capital (or physical space) to support such complex and often expensive equipment. Accordingly, certain challenges arise when designing and creating intuitive and interactive controls for users in a VR environment. Therefore, there is a need for improved interactive processes and techniques operable by simple VR equipment.
[0004] In one exemplary embodiment, this disclosure provides an interactive control process/service. The interactive control process/service may be performed as a method of steps that include detecting movement of a controller associated with a virtual reality (VR) environment. The method further includes steps to determine an angle of rotation, a magnitude of force (e.g., acceleration), and the like, based on the movement. For example, the movement may be mapped or represented by vectors, each having a direction and a magnitude. The method further includes steps for determining a path in the VR environment that corresponds to the vectors (e.g., the angle(s) of rotation, magnitudes of force, etc.) as well as for projecting the path in the VR environment, by displaying, for example, graphical elements that represent the path in the VR environment. In some aspects the method may further include intersection or collision processes that determine when an object in the VR environment intersects (or is in close proximity to) a portion of the path. In such aspects, the method may further include steps to modify or adjust the path so as to select such object, display menu options, retrieve the object along the path, move the user toward the object along the path, and the like.
[0005] In another embodiment, a virtual reality (VR) system employs the above discussed interactive control process/service. For example, the VR system includes a network interface to communicate in a communication network, a processor coupled to the network interface and adapted to execute one or more processes, and a memory configured to store a process executable by the processor. The process, when executed by the processor, is operable to detect movement of a controller associated with a virtual reality (VR) environment and determine angles of rotation, magnitudes of force (e.g., acceleration), and the like, based on the movement. The VR system further determines a path in the VR environment that corresponds to the movement and projects the path in the VR environment (e.g., displays graphical objects/elements that represent the path, etc.).
[0006] In yet another embodiment, a tangible, non-transitory, computer-readable media includes software or instructions such as an exemplary interactive control process. The software/instructions are executed by a processor, which causes the processor to detect movement of a controller associated with a virtual reality (VR) environment and determine angles of rotation, magnitudes of force (e.g., acceleration), and the like, based on the movement. The processor also determines a path in the VR environment that corresponds to the movement and projects the path in the VR environment (e.g., displays graphical objects/elements that represent the path, etc.).
[0007] The embodiments herein may be better understood by referring to the following description in conjunction with the accompanying drawings in which like reference numerals indicate identical or functionally similar elements. Understanding that these drawings depict only exemplary embodiments of the disclosure and are not therefore to be considered to be limiting of its scope, the principles herein are described and explained with additional specificity and detail through the use of the accompanying drawings in which:
[0008] FIG. 1 illustrates a schematic diagram of an example Virtual Reality (VR) environment;
[0009] FIG. 2 illustrates a block diagram of an example VR device/node;
[0011] FIG. 4A illustrates a third person point of view of another VR environment, showing movement of a controller that supports user interaction with and within the VR environment;
[0012] FIG. 4B illustrates the third person point of view of the VR environment of FIG. 4A, as displayed to a user, showing a path resulting from the movement shown in FIG. 4A;
[0013] FIG. 5 illustrates a first person point of view by the user in the VR environment, showing the path shown in FIG. 4B;
[0014] FIG. 6 illustrates a first person point of view of the VR environment in FIG. 3, showing a path from the user to a position in the VR environment;
[0015] FIG. 7 illustrates the first person point of view of the VR environment of FIG.
[0016] FIG. 8A illustrates a third person point of view of another VR environment, showing movement of two controllers that each support user interaction with and within the VR environment;
[0017] FIG. 8B illustrates the third person point of view of the VR environment of FIG. 8A, showing a user moving each controller and a respective resultant path;
[0018] FIG. 9A illustrates the third person point of view of the VR environment of FIG. 8B, showing each path terminating in an anchor point and VR interactions with respect to each anchor point;
[0019] FIG. 9B illustrates the third person point of view of the VR environment of FIG. 8B, showing each path terminating in an anchor point positioned on a wall surface in the VR environment and optional interactions with respect to each anchor point;
[0020] FIG. 10 illustrates a third person point of view of another VR environment, showing a selection path derived from movement of two controllers;
[0021] FIGS. 11A and 11B illustrate a third person point of view of the VR environment of FIG. 10, showing an initial path resulting by movement of a first controller and an adjustment to the initial path resulting from movement of a second controller;
[0022] FIGS. 12A and 12B illustrate a first person point of view of the VR environment of FIG. 10, and correspond to the third person point of views shown in FIGS. 11A and 11B, respectively; and
[0023] FIG. 13 illustrates an example simplified procedure of an interactive control process employed by a VR system.
[0024] Various embodiments of the disclosure are discussed in detail below. While specific implementations are discussed, it should be understood that this is done for illustration purposes only. A person skilled in the relevant art will recognize that other components and configurations may be used without parting from the spirit and scope of the disclosure.
[0025] As discussed in herein, the subject disclosure relates to interactive controls particularly suitable for virtual reality (VR) environments. These interactive controls are employed by simple controllers without requiring complex and often expensive equipment. For example, the interactive controls may include an interactive control process/service that can be employed by simple controllers, head-sets, and/or VR consoles. Such interactive control process may, for example, detect movement of a controller associated with a virtual reality (VR) environment and includes steps to determine angles of rotation, magnitudes of force (e.g., acceleration), and the like, based on the movement. For example, the interactive control process may map or assign portions of the movement to vectors in a coordinate system and determine a path in the VR environment that corresponds to the vectors (e.g., based on averages, unions, differences, superposition, or other combinations of vectors/vector-elements). The path may be used as a guide to move the user in the 3D environment and/or as a selection tool to select or retrieve objects as discussed in greater detail below.
[0026] Referring now to the figures, FIG. 1 illustrates a schematic diagram of a Virtual Reality (VR) environment 100. VR environment 100 includes various devices, components, sub-components, hardware/software, interfaces, and the like, which collectively operate form a VR system that provides an immersive and interactive simulated experience to a user 105.
[0027] As shown, VR environment 100 includes equipment such as a console 110, controller(s) 120, and a headset 125. Console 110 represents centralized hardware/software that communicates with controller 120 and/or headset 125, as well as communicates with various other devices, servers, databases, and the like over a communication network 130 (e.g., the Internet), as is appreciated by those skilled in the art.
[0028] Communication network 130 represents a network of devices/nodes interconnected over network interfaces/links/segments/etc. and operable to exchange data such as a data packet 140 and transport data to/from end devices/nodes (e.g., console 110, controller 120, and/or headset 125).
[0029] Data packets 140 include network traffic/messages which are exchanged between devices over communication network 130 using predefined network communication protocols such as certain known wired protocols, wireless protocols (e.g., IEEE Std. 802.15.4, WiFi, Bluetooth®, etc.), PLC protocols, or other shared-media protocols where appropriate.
[0030] Controller 120 wirelessly communicates with console 110 over network 130, or (in some embodiments) it may be coupled to console 110 over another network (not shown). Controller 120 facilitates user interaction with and within VR environment 100 and is operable to, for example, detect, track, or otherwise monitor movement and biometric information, communicate data signals with headset 125 and console 110, and provide feedback (e.g., tactile, audible, etc.) to a user 105. In this fashion, controller 120 can comprise any number of sensors, gyros, radios, processors, touch detectors, transmitters, receivers, feedback circuitry, and the like.
[0031] Headset 125, similar to controller 120, wirelessly communicates with console 110. Headset 125 displays or projects simulated graphical elements that form simulated VR environments to user 105, tracks eye movements, and measure biometric data from user 105.
[0032] With respect to the devices discussed above, it is appreciated that certain devices may be adapted to include (or exclude) certain functionality and that the components shown are shown for purposes of discussion, not limitation. As discussed, console 110, controller 120, and headset 125 cooperate to provide an immersive and interactive VR environment to user 105.
[0033] FIG. 2 illustrates a block diagram of an example device 200 that represents one or more devices shown in FIG. 1 (e.g., console 110, controller 120, headset 125, etc.). Device 200 includes one or more network interfaces 210, an input interface 215, a processor 220, and a memory 240 interconnected by a system bus 250.
[0034] Network interface(s) 210 contain mechanical, electrical, and signaling circuitry for communicating data between devices over a network such as communication network 130. Input interface 215 includes hardware/software that receives user commands, and detects movement or gestures, and may also be configured to provide user-feedback (e.g., tactile, visual, audio, etc.). For example, input interface 215 can include switches, buttons, accelerometers, sensors, processors, radios, display elements, and the like. Memory 240 comprises a plurality of storage locations that are addressable by processor 220 for storing software programs and data structures associated with the embodiments described herein.
[0035] Processor 220 may comprise necessary elements or logic adapted to execute the software programs and manipulate data structures 245. An operating system 242, portions of which are typically resident in memory 240 and executed by processor 220, functionally organizes the device by, inter alia, invoking operations in support of software processes and/or services executing on the device. These software processes and/or services may comprise an illustrative "interactive control" process/service 244. Note that while process/service 244 is shown in centralized memory 240, it may be configured to operate in a distributed network.
[0036] It will be apparent to those skilled in the art that other processor and memory types, including various computer-readable media, may be used to store and execute program instructions pertaining to the techniques described herein. Also, while the description illustrates various processes, it is expressly contemplated that various processes may be embodied as modules configured to operate in accordance with the techniques herein (e.g., according to the functionality of a similar process). Further, while the processes have been shown separately, those skilled in the art will appreciate that processes may be routines or modules within other processes. For example, processor 220 can include one or more programmable processors, e.g., microprocessors or microcontrollers, or fixed-logic processors. In the case of a programmable processor, any associated memory, e.g., memory 240, may be any type of tangible processor readable memory, e.g., random access, read-only, etc., that is encoded with or stores instructions that can implement program modules, e.g., a module having interactive control process 244 encoded thereon. Processor 220 can also include a fixed-logic processing device, such as an application specific integrated circuit (ASIC) or a digital signal processor that is configured with firmware comprised of instructions or logic that can cause the processor to perform the functions described herein. Thus, program modules may be encoded in one or more tangible computer readable storage media for execution, such as with fixed logic or programmable logic, e.g., software/computer instructions executed by a processor, and any processor may be a programmable processor, programmable digital logic, e.g., field programmable gate array, or an ASIC that comprises fixed digital logic, or a combination thereof. In general, any process logic may be embodied in a processor or computer readable medium that is encoded with instructions for execution by the processor that, when executed by the processor, are operable to cause the processor to perform the functions described herein.
[0037] FIG. 3 illustrates a block diagram of a VR environment 300, particularly showing a simulate art gallery from the third person perspective view of user 105. As mentioned, user 105 experiences and interacts with VR environment 300 using headset 125 and controller 120. However, as discussed above, certain challenges arise when designing intuitive and interactive controls for VR environments, such as VR environment 300, especially when designing controls operable by relatively simple and inexpensive controller components - here, controller 120 and/or headset 125. Accordingly, the processes and techniques of this disclosure include improved interactive controls, particularly suitable for VR environments and for such relatively simple and inexpensive controller components.
[0038] FIGS. 4A and 4B each illustrate a third person point view of a VR environment 400, and show movement by controller 120 as well as a path resulting from the movement, respectively.
[0039] FIG. 4A particularly illustrates movement of controller 120 from a first position to a second position within a three-dimensional (3D) coordinate system. The movement of the controller, between the first position and the second position, includes a change in controller orientation or direction, indicated by an angle "a", as well as a change in acceleration, indicated by a magnitude of a corresponding vector. With respect to corresponding vectors, the first position and the second position of controller 120 are represented in vector form - i.e., vector 120' and vector 120" - which include a respective direction and magnitude, where the magnitude represents a force measured at the respective position. In this fashion, controller 120 monitors and measures changes in orientation, position, angular momentum, acceleration, and the like, and further performs or executes the interactive control processes/services (e.g., interactive control process 244), as described herein.
[0040] FIG. 4B particularly shows a path 440 that results from the movement of controller 120 from the first position to the second position. Path 440 originates at a current location of user 105, follows an arc (which is determined by a change in angle a over time), ends at a terminal location indicated by an anchor point 445 (a graphical display element ("X"))/and is projected to user 105 by headset 125. Path 440 can represent a travel path that guides movement of user 105 in the VR environment and/or it can represent a selection path that selects objects intersecting therewith.
[0041] In operation, controller 120 detects movement from the first position to the second position, determines an angle of rotation (a) based on the movement, and determines a magnitude of force (e.g., an acceleration force, etc.) associated with the movement and/or the respective positions. Controller 120 further determines a path in the VR environment - here, path 440 - that corresponds to the angle of rotation and the magnitude of force and headset 125 projects the path to user 105 in the VR environment. While the foregoing operations are described with respect to specific devices/controllers it is appreciated that any combination of devices may perform the same or substantially similar functionality.
[0042] FIG. 5 illustrates a first person point view of VR environment 400, viewed from the perspective of user 105 wearing headset 125. Here, VR environment 400 is illustrated with a grid pattern that represents a coordinate system overlaying a bounding plane or surface (e.g., a ground surface).
[0043] As discussed, the movement of controller 120 from the first position to the second position may be mapped into a 3D coordinate system where vectors represent respective direction and magnitude at each position. The 3D coordinate system may further include a real-world coordinate system and/or a VR environment coordinate system. With respect to the real-world coordinate system, additional processing may be needed to translate the movement and calculate the path resulting therefrom into the VR environment coordinate system.
[0044] As shown here, path 440 is represented by a graphical dash line that terminates in a 3D graphical "X" element, which represents anchor point 445, and controller 120 is represented by a 3D graphical controller element. Collectively, these graphical components/elements show an exemplary a first person perspective view of user 105 within VR environment 400. As mentioned, path 440 is calculated, in part, from changes in controller orientation as well as changes in force (e.g., acceleration). In one embodiment, path 440 represents a curved path or an arcing path and may be generated by a simulated casting motion similar to casting, for example, a fishing line. The distance and direction of the curved path are derived by the above mentioned changes in controller orientation/force, as is appreciated by those skilled in the art. Notably, in some embodiments, the casting motion may operate in conjunction with other input controls (e.g., button press/release/etc.) to indicate the user's intention to generate path 440 in environment 400.
[0045] FIG. 6 illustrates a first person point of view of VR environment 300, particularly from the perspective of user 105. Here, user 105 moved controller 120 from the first position to the second position (as discussed above), and controller 120 (and/or other hardware components) determined a resultant a path - i.e., path 440 - which is displayed to user 105 by headset 125. Path 440 represents a travel path in V environment 300 that guides movement of user 105 from a current position to the anchor point 445. Notably, in FIG. 6, path 440 moves user 105 closer to an interactive object 605 - i.e., a painting. As is appreciated by those skilled in the art, user 105 may provide additional input to prompt subsequent movement along path 440 in VR environment 300. Such subsequent movement along the path may be graphically projected/animated for user 105 by headset 125, as is appreciated by those skilled in the art.
[0046] FIG. 7 illustrates the first person point of view of VR environment 300 in FIG. 6, further showing path 440 intersecting interactive object 605. In addition to calculating a path based on the movement of controller 120, the interactive control process or techniques (e.g., interactive control process 244) may incorporate object intersection processes that detect an intersection (or collision) between portions of the path and objects in the VR environment. Alternatively (or in addition), the intersection may include fuzzy logic to detects proximate intersection/collision as well as actual intersection. Here, the interactive control process determines portions of path 440 intersect (or are proximate to intersection) with interactive object 605. Due to such intersection (or proximate intersection), path 440 may be modified to help user 105 select interactive object 605 and/or call up additional menu options (example options include "add", "adjust", "full screen", "zoom", "crop", and the like). In addition, VR environment 300 also provides a selection element or border 715 that indicates selection of interactive object 605.
[0047] Here, path 440 represents a selection path that selects interactive object 605. The selection path may guide movement between the user and the selected object in the VR environment and/or the selection path may retrieve the selected object to the user (e.g., move the object from its current location to a current location of the user). As is appreciated by those skilled in the art, user 105 may provide additional input to prompt subsequent movement of the user and/or the object in VR environment 300.
[0048] FIG. 8A illustrates a third person point of view of another V environment, showing movement of two controllers that each support user interaction with and within the VR environment;
[0049] FIGS. 8A and 8B each illustrate a third person point view of a VR environment 800, where FIG. 8A shows movement by two controllers— controller 120 and a controller 820 - in a three-dimensional (3D) coordinate system and FIG. 8B shows respective paths resulting from the movements. The movement of controller 120 in FIGS. 8A and 8B is the same as the movement of controller 120 shown in FIGS. 4A and 4B, discussed above. Accordingly, discussion with respect to FIGS. 8A and 8B below focuses on a second controller - controller 820 - and its movement.
[0050] FIG. 8A specifically illustrates controller 120 movement from a first position to a second position and controller 820 movement from a respective first position to a second position. The respective movements of each controller include a change in controller orientation or direction, indicated by an angle " " (for controller 120) or angle "β" (for controller 820), as well as respective changes in acceleration, indicated by corresponding vectors.
[0051] With respect to corresponding vectors, in addition to vectors 120' and 120" which correspond to controller 120, FIG. 8A also provides vectors 820' and 820", which correspond to the first position and the second position of controller 820 and show directions and magnitudes. As discussed above, the magnitude represents a force measured at a respective position.
[0052] FIG. 8B particularly shows paths resulting from the respective movements of each controller. Specifically, in addition to path 440 (corresponding to controller 120), FIG. 8B also illustrates a path 840 that originates at a current location of user 105, follows an arc (which is determined by a change in angle β over time), ends at a terminal location indicated by an anchor point 845 (a graphical display element ("X")), and is projected to user 105 by headset 125. Path 840, similar to path 440, can represent a travel path that guides movement of user 105 in the VR environment and/or it can represent a selection path that selects objects intersecting therewith.
[0054] FIGS. 9A and 9B illustrate the third person point of view of the VR environment of FIG. 8B, showing each path terminating in respective anchor points and corresponding VR interactions. In particular, FIG. 9A illustrates path 440 and path 840 as a straight line that intersects user 105 and respective anchor points 445, 845 positioned on a ground surface, while FIG. 9B illustrates path 440 and path 840 as a straight line that intersects user 105 and respective anchor points 445, 845 positioned on a wall surface in VR environment 800.
[0055] As discussed above, the paths 440, 840 may represent travel paths to guide movement of user 105 in the VR environment. While embodiments having one controller and one travel path (as well as corresponding interactive operations) are discussed above, here, a synergy exists between multiple paths - i.e., path 440 and path 840 - that supports further interactive operations. In particular, an analogy may be made to operating a kite with two strings, whereby each path represents one string (or a cable) and the kite is represented by a fixed bounding surface (a ground surface in FIG. 9A and a wall surface in FIG. 9B). In addition, an axis of rotation 940a may be defined between terminal or anchor points 445, 845. In operation, user 105 may control his movement relative to the anchor points (on the ground surface) and input corresponding tugging or pulling motions/gestures into controllers 120, 820. The tugging or pulling motions, which are detected by each controller, cooperate and can move user 105 along/between paths 440, 840. In addition, such motions (and/or other defined motions) can rotate or adjust an orientation of user about axis 940a with respect to VR environment 800.
[0056] FIG. 10 illustrates a third person point of view of another V environment, showing a selection path 1040 derived from movements by controller 120 and controller 820. Here, selection path 1040 can represent a superposition of path 440 and path 840, where portions of both paths cancel and other portions aggregate. Alternatively (or in addition), selection path 1040 may also represent an average, a difference, a union, or some other combination of paths 440 and 840, as is appreciated by those skilled in the art. Moreover, as mentioned above, the interactive control process (employed in conjunction with two controllers) may also incorporate object intersection/collision processes that detect an intersection (or a location proximate to the intersection) between an object (an interactive object 1005) and the selection path derived from movement of both controllers. In some embodiments, similar to those discussed above, the selection path 1040 may represent a travel path that terminates in an anchor point 1045 for guiding movement of user 105 in VR environment 1000.
[0057] FIGS. 11A and 11B illustrate a third person point of view of VR environment 1000, showing an initial path (path 440) resulting by movement of controller 120 (FIG. 11 A) and an adjustment to the initial path resulting from movement of controller 820 (FIG. 11B). Collectively, FIGS. 11A and 11B illustrate additional functionality of the interactive control processes where user 105 moves controller 120 to generate a path 440 (discussed in greater detail above) and moves controller 820 to adjust or fine-tune aspects of path 440 (e.g., adjust a direction, magnitude, orientation, etc.). For example, as shown, path 440 is generated in FIG. 11 A and is located at an initial distance from user 105. User 105 further moves and/or rotates controller 820 in FIG. 11B to adjust path 440 - e.g., move anchor point 445 closer to a current location of user 105.
[0058] FIGS. 12A and 12B illustrate a first person point of view of FIGS. 11A and 11B, respectively. Here, VR environment 1000 shows a library with a number of books arranged on shelves. User 105 moves controller 120 (FIG. 12 A) to generate path 440, which terminates on/near authors of books beginning with "mo...". User 105 further moves controller 820 (indicated by a side arrow) to modify, adjust, or otherwise move path 440 so it terminates on/near authors of books beginning with "ma...". In this fashion, one controller may be used to generate a travel/selection path while a second controller may be used to fine-tune or otherwise adjust the travel/selection path.
[0059] FIG. 13 illustrates an example simplified procedure 1300 of an interactive control process employed by a VR system (or components thereof). Procedure 1300 begins at step 1305 and continues to steps 1310 and 1315, where, as described in greater detail above, a VR system detects movement of a first controller (e.g., controller 120) and a second controller (e.g., controller 820). The VR system further determines, at step 1320, for each movement, respective angles of rotation, magnitudes of force applied, accelerations, and the like. Based on the foregoing determinations, the VR system maps, in step 1325, each movement to one or more vectors in a three-dimensional (3D) coordinate system.
[0060] The VR system also determines, in step 1330, a path for the VR environment that corresponds to the one or more vectors (e.g., angles of rotation, magnitudes of force, etc.). For example, the VR system can derive the path based on an average, differences, summations, or other combinations of the vectors, which correspond to respective angles of rotation, magnitudes of forces (changes of force over time), etc., as is appreciated by those skilled in the art.
[0061] Procedure 1300 continues to step 1335 where, as discussed above, the VR system detects an intersection between portions of the path and an object in the VR environment and selects the object. As mentioned, selecting the object may further cause the object to be indicated as selected (e.g., a bounding box), display menu options associated with the object, retrieving or moving the object to a current position of the user or moving the user toward the object. The VR system further projects (e.g., using headset 125) the path in the VR environment such as the figures illustrate for paths 440/830.
[0062] Procedure 1300 subsequently ends at step 1345, but may begin again at step 1310 where it detects movement of the first controller. Collectively, the steps in procedure 1300 describe interactive control processes and techniques particularly suitable for VR environments without requiring expensive and often complex equipment. It should be noted that certain steps within procedures 1300 may be optional, and further, the steps shown in FIG. 13 are merely examples for illustration. Certain other steps may be included or excluded as desired. Further, while a particular order of the steps is shown and executed from the perspective of a particular device or system, this ordering is merely illustrative, and any suitable arrangement of the steps and/or any number of systems, platforms, or devices may be utilized without departing from the scope of the embodiments herein.
[0063] The techniques described herein, therefore, provide interactive control processes that compliment immersive simulated VR environments without requiring expensive and complex equipment. These interactive controls define simple and intuitive gestures that quickly and efficiently learned by any user.
[0064] While there have been shown and described illustrative embodiments of the interactive control processes for VR environments, it is to be understood that various other adaptations and modifications may be made within the spirit and scope of the embodiments herein. For example, the embodiments and certain functionality have been shown and described herein with relation to certain systems, platforms, hardware, devices, and modules. However, the embodiments in their broader sense are not as limited, and may, in fact, be employed in non-VR environments as well as employed by any combination of the devices or components discussed herein.
[0065] The foregoing description has been directed to specific embodiments. It will be apparent, however, that other variations and modifications may be made to the described embodiments, with the attainment of some or all of their advantages. For instance, it is expressly contemplated that the components and/or elements described herein can be implemented as software being stored on a tangible (non-transitory) computer-readable medium, devices, and memories (e.g., disks/CDs/RAM/EEPROM/ etc.) having program instructions executing on a computer, hardware, firmware, or a combination thereof. Further, methods describing the various functions and techniques described herein can be implemented using computer-executable instructions that are stored or otherwise available from computer readable media. Such instructions can comprise, for example, instructions and data which cause or otherwise configure a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Portions of computer resources used can be accessible over a network. The computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, firmware, or source code. Examples of computer-readable media that may be used to store instructions, information used, and/or information created during methods according to described examples include magnetic or optical disks, flash memory, USB devices provided with non-volatile memory, networked storage devices, and so on. In addition, devices implementing methods according to these disclosures can comprise hardware, firmware and/or software, and can take any of a variety of form factors. Typical examples of such form factors include laptops, smart phones, small form factor personal computers, personal digital assistants, and so on. Functionality described herein also can be embodied in peripherals or add-in cards. Such functionality can also be implemented on a circuit board among different chips or different processes executing in a single device, by way of further example. Instructions, media for conveying such instructions, computing resources for executing them, and other structures for supporting such computing resources are means for providing the functions described in these disclosures. Accordingly this description is to be taken only by way of example and not to otherwise limit the scope of the embodiments herein. Therefore, it is the object of the appended claims to cover all such variations and modifications as come within the true spirit and scope of the embodiments herein.

中文:
[0001]本公开总体上涉及模拟或虚拟现实环境,并且更特定地涉及其中的交互式输入控制。
[0002]例如,由改进的处理能力和速度、更加有效的软件渲染技术、消费者便利性等驱动的技术进步,已经支持了开发和设计模拟或三维(3D)虚拟现实(VR)环境的蓬勃发展的运动。支持此类VR环境的VR系统通常包括诸如头戴式套件、护目镜、手持式或可穿戴装置等的硬件。在操作上,此类硬件持续地跟踪用户移动,更新用户位置、取向等,并且在VR环境中接收来自用户的交互式输入。
[0003]尽管某些VR系统可以包括复杂且通常昂贵的硬件和其他装备(诸如,全向行动平台),以用于跟踪现实世界的用户移动并将其转换到VR环境中,但是普通用户可能没有必要的资本(或物理空间)来支持此类复杂且通常昂贵的装备。因此,在VR环境中为用户设计和创建直观的交互式控制时,会出现某些挑战。因此,需要能够通过简单的VR装备操作的改进的交互式过程和技术。
[0004]在一个示例性实施方案中,本公开提供一种交互式控制过程/服务。可以作为包括检测与虚拟现实(VR)环境相关联的控制器的移动的多个步骤的方法来执行交互式控制过程/服务。所述方法还包括基于所述移动来确定旋转角度、力大小(例如,加速度)等的步骤。例如,所述移动可由矢量映射或表示,所述矢量各自具有方向和大小。所述方法还包括用于确定VR环境中对应于多个矢量(例如,一个或多个旋转角度、力大小等)的路径以及通过显示例如表示VR环境中的路径的图形元素而在VR环境中投影出所述路径的步骤。在一些方面中,所述方法还可以包括确定VR环境中的对象何时与路径的一部分相交(或非常接近)的相交或碰撞过程。在这些方面中,所述方法还可以包括修改或调整路径以便选择此类对象、显示菜单选项、沿着路径检索对象、使用户沿着路径朝向对象移动等的步骤。
[0005]在另一个实施方案中,一种虚拟现实(VR)系统采用上面讨论的交互式控制过程/服务。例如,VR系统包括:网络接口,其用于在通信网络中进行通信;处理器,其耦合到网络接口并适于执行一个或多个过程;以及存储器,其被配置为存储可由处理器执行的过程。所述过程在由处理器执行时可操作以检测与虚拟现实(VR)环境相关联的控制器的移动,并且基于所述移动来确定旋转角度、力大小(例如,加速度)等。VR系统还确定VR环境中对应于所述移动的路径,并且在VR环境中投影出所述路径(例如,显示表示所述路径的图形对象/元素等)。
[0006]在又一个实施方案中,一种有形的非暂时性计算机可读介质包括诸如示例性交互式控制过程的软件或指令。软件/指令由处理器执行,这使得处理器检测与虚拟现实(VR)环境相关联的控制器的移动,并且基于所述移动来确定旋转角度、力大小(例如,加速度)等。处理器还确定VR环境中对应于移动的路径,并且在VR环境中投影出所述路径(例如,显示表示所述路径的图形对象/元素等)。
[0007]通过结合附图参考以下描述,可以更好地理解本文中的实施方案,在附图中,相似的附图标记指示相同元件或功能上相似的元件。应理解,这些附图仅描绘了本公开的示例性实施方案,并且因此不应被认为是对其范围的限制,通过使用附图,以另外的特征性和细节来描述和解释本文的原理,在附图中:
[0008]图1示出了示例虚拟现实(VR)环境的示意图;
[0009]图2示出了示例VR装置/节点的框图;
[0011]图4A示出了另一个VR环境的第三人视点,示出了支持与VR环境的用户交互以及在VR环境内的用户交互的控制器的移动;
[0012]图4B示出了如显示给用户的图4A的VR环境的第三人视点,示出了由图4A中所示的移动产生的路径;
[0013]图5示出了用户在VR环境中的第一人视点,示出了图4B中所示的路径;
[0014]图6示出了图3中的VR环境的第一人视点,示出了从用户到VR环境中的位置的路径;
[0015]图7示出了图6的VR环境的第一人视点,示出了与对象相交的路径和对象的选择;
[0016]图8A示出了另一个VR环境的第三人视点,示出了两个控制器的移动,所述两个控制器各自支持与VR环境的用户交互以及在VR环境内的用户交互;
[0017]图8B示出了图8A的VR环境的第三人视点,示出了用户对每个控制器的移动和相应的结果路径;
[0018]图9A示出了图8B的VR环境的第三人视点,示出了在锚点处终止的每个路径以及相对于每个锚点的VR交互;
[0019]图9B示出了图8B的VR环境的第三人视点,示出了在定位在VR环境中的墙面上的锚点处终止的每个路径以及相对于每个锚点的任选交互;
[0020]图10示出了另一个VR环境的第三人视点,示出了从两个控制器的移动导出的选择路径;
[0021]图11A和图11B示出了图10的VR环境的第三人视点,示出了由第一控制器的移动产生的初始路径和由第二控制器的移动产生的对初始路径的调整;
[0022]图12A和图12B示出了图10的VR环境的第一人视点,并且相应地对应于图11A和图11B所示的第三人视点;以及
[0023]图13示出了由VR系统采用的交互式控制过程的示例简化程序。
[0024]下面详细讨论本公开的各种实施方案。尽管讨论了特定实现方式,但是应理解,这仅是为了说明的目的而进行的。相关领域的技术人员将认识到,在不脱离本公开的精神和范围的情况下,可以使用其他部件和配置。
[0025]如本文所讨论的,本主题公开涉及特别适合于虚拟现实(VR)环境的交互式控制。这些交互式控制通过简单的控制器而采取,而不需要复杂且通常昂贵的装备。例如,交互式控制可以包括可以通过简单的控制器、头戴式套件和/或VR控制台采取的交互式控制过程/服务。例如,此类交互式控制过程可以检测与虚拟现实(VR)环境相关联的控制器的移动,并且包括基于所述移动来确定旋转角度、力大小(例如,加速度)等的步骤。例如,交互式控制过程可以将移动的各部分映射到或分配给坐标系中的矢量,并且确定VR环境中对应于所述矢量的路径(例如,基于矢量/矢量元素的平均、并集、差、叠加或其他组合)。如下面更详细地讨论的,所述路径可以用作使用户在3D环境中移动的导引和/或用作选择或检索对象的选择工具。
[0026]现在参考附图,图1示出了虚拟现实(VR)环境100的示意图。VR环境100包括各种装置、部件、子部件、硬件/软件、接口等,所述各种装置、部件、子部件、硬件/软件、接口等共同操作形成VR系统,所述VR系统向用户105提供沉浸式和交互式模拟体验。
[0027]如所示,VR环境100包括诸如控制台110、一个或多个控制器120和头戴式套件125的装备。如本领域技术人员所了解的,控制台110表示集中式硬件/软件,其与控制器120和/或头戴式套件125通信,并且通过通信网络130(例如,因特网)与各种其他装置、服务器、数据库等通信。
[0028]通信网络130表示通过网络接口/链路/段/等互连并且可操作以交换数据(诸如数据包140)并向/从终端装置/节点(例如,控制台110、控制器120和/或头戴式套件125)传输数据的装置/节点的网络。
[0029]数据包140包括网络业务/消息,所述网络业务/消息在适当情况下使用诸如某些已知有线协议、无线协议(例如,IEEE Std.802.15.4、WiFi、等)、PLC协议或其他共享媒体协议等预定义网络通信协议通过通信网络130而在装置之间进行交换。
[0030]控制器120通过网络130与控制台110无线通信,或者(在一些实施方案中)控制器120可以通过另一个网络(未示出)耦合到控制台110。控制器120促进与VR环境100的用户交互以及在VR环境100内的用户交互,并且可操作以例如检测、跟踪或以其他方式监测移动和生物特征信息、与头戴式套件125和控制台110交流数据信号,以及向用户105提供反馈(例如,触觉反馈、听觉反馈等)。以此方式,控制器120可以包括任意数量的传感器、陀螺仪、无线电、处理器、触摸检测器、发射器、接收器、反馈电路等。
[0031]头戴式套件125类似于控制器120,与控制台110无线通信。头戴式套件125向用户105显示或投影形成模拟VR环境的模拟图形元素,跟踪眼球的移动,并且测量来自用户105的生物特征数据。
[0032]相对于上面讨论的装置,应明了,某些装置可以被调适为包括(或不包括)某些功能,并且所示的部件是为了讨论而非限制的目的而示出的。如所讨论的,控制台110、控制器120和头戴式套件125协作以向用户105提供沉浸式和交互式VR环境。
[0033]图2示出了表示图1中所示的一个或多个装置(例如,控制台110、控制器120、头戴式套件125等)的示例装置200的框图。装置200包括通过系统总线250互连的一个或多个网络接口210、输入接口215、处理器220和存储器240。
[0034]网络接口210包含用于通过诸如通信网络130之类的网络在装置之间传送数据的机械、电气和信令电路。输入接口215包括接收用户命令并检测移动或手势的硬件/软件,并且还可以被配置为提供用户反馈(例如,触觉反馈、视觉反馈、音频反馈等)。例如,输入接口215可以包括开关、按钮、加速度计、传感器、处理器、无线电、显示元件等。存储器240包括可由处理器220寻址的多个存储位置,以用于存储与本文描述的实施方案相关联的软件程序和数据结构。
[0035]处理器220可以包括适于执行软件程序和操纵数据结构245的必要元件或逻辑。操作系统242(其各部分通常驻存在存储器240中并由处理器220执行)尤其通过调用支持在装置上执行的软件过程和/或服务的操作而在功能上对装置进行组织。这些软件过程和/或服务可以包括说明性的“交互式控制”过程/服务244。注意,尽管过程/服务244被示出在集中式存储器240中,但是过程/服务244可以被配置为在分布式网络中操作。
[0036]对于本领域技术人员将显而易见的是,可以使用包括各种计算机可读介质的其他处理器和存储器类型来存储和执行与本文描述的技术有关的程序指令。此外,尽管所述描述示出了各种过程,但是可以明确地预期,各种过程均可以体现为被配置为根据本文的技术(例如,根据类似过程的功能)操作的模块。此外,尽管已经单独示出了所述过程,但是本领域技术人员将理解,所述过程可以是其他过程中的例程或模块。例如,处理器220可以包括一个或多个可编程处理器,例如微处理器或微控制器,或者固定逻辑处理器。在可编程处理器的情况下,任何相关联的存储器(例如,存储器240)可以是任何类型的有形处理器可读存储器(例如随机存取存储器、只读存储器等),所述有形处理器可读存储器编码有或存储有能够实现程序模块(例如上面编码有交互式控制过程244的模块)的指令。处理器220还可以包括固定逻辑处理装置(诸如专用集成电路(ASIC)或数字信号处理器),所述固定逻辑处理装置配置有固件,所述固件包括能够使处理器执行本文描述的功能的指令或逻辑。因此,程序模块可以被编码在一个或多个有形计算机可读存储介质中以供执行(诸如利用固定逻辑或可编程逻辑(例如由处理器执行的软件/计算机指令)来执行),并且任何处理器都可以是可编程处理器、可编程数字逻辑(诸如,现场可编程门阵列)或者包括固定数字逻辑的ASIC,或者它们的组合。一般而言,任何过程逻辑都可以体现在处理器或计算机可读介质中,所述处理器或计算机可读介质编码有供处理器执行的指令,所述指令当由处理器执行时可操作以致使处理器执行本文描述的功能。
[0037]图3示出了VR环境300的框图,特别是从用户105的第三人视角示出了模拟艺术画廊。如所提及的,用户105使用头戴式套件125和控制器120体验VR环境300并与之交互。然而,如上面所讨论的,当为VR环境(诸如VR环境300)设计直观的交互式控制时,尤其是当设计可由相对简单且便宜的控制器部件(这里是控制器120和/或头戴式套件125)操作的控制时,会出现某些挑战。因此,本公开的过程和技术包括改进的交互式控制,其特别适合于VR环境和此类相对简单且便宜的控制器部件。
[0038]图4A和图4B相应地示出了VR环境400的第三人视点,并且相应地示出了控制器120的移动以及由所述移动产生的路径。
[0039]图4A特别示出了控制器120在三维(3D)坐标系内从第一位置到第二位置的移动。控制器在第一位置和第二位置之间的移动包括由角度“α”指示的控制器取向或方向改变,以及由对应矢量的大小指示的加速度改变。关于对应矢量,控制器120的第一位置和第二位置是以包括相应方向和大小的矢量(即矢量120’和矢量120”)形式表示,其中大小表示在相应位置测量到的力。以此方式,控制器120监测和测量取向、位置、角动量、加速度等的改变,并且还进行或执行交互式控制过程/服务(例如,交互式控制过程244),如本文所描述的。
[0040]图4B特别示出了由控制器120从第一位置移动到第二位置而产生的路径440。路径440在用户105的当前位置处起始,遵循弧线(其由角度α随时间的改变来确定),在由锚点445(图形显示元素(“X”))指示的终端位置处结束,并且通过头戴式套件125被投影给用户105。路径440可以表示在VR环境中导引用户105的移动的行进路径,和/或路径440可以表示选择与其相交的对象的选择路径。
[0041]在操作中,控制器120检测从第一位置到第二位置的移动,基于所述移动来确定旋转角度(α),并且确定与移动和/或相应位置相关联的力大小(例如,加速力等)。控制器120还确定VR环境中对应于旋转角度和力大小的路径(这里,路径440),并且头戴式套件125将路径在VR环境中投影给用户105。尽管相对于特定装置/控制器描述了前述操作,但是应明了,装置的任何组合都可以执行相同或基本上相似的功能。
[0042]图5示出了从佩戴头戴式套件125的用户105的视角观察的VR环境400的第一人视点。这里,VR环境400用网格图案示出,所述网格图案表示覆盖边界平面或表面(例如,地面)的坐标系。
[0043]如所讨论的,控制器120从第一位置到第二位置的移动可以被映射到3D坐标系中,其中矢量表示每个位置处的相应方向和大小。3D坐标系还可以包括现实世界坐标系和/或VR环境坐标系。相对于现实世界坐标系,可能需要另外的处理来转换移动并计算由此产生的路径到VR环境坐标系中。
[0044]如这里所示,路径440由在3D图形“X”元素处终止的图形虚线表示,所述3D图形“X”元素表示锚点445,并且控制器120由3D图形控制器元素表示。总的来说,这些图形部件/元素示出了VR环境400内的用户105的示例性第一人视角。如所提及的,路径440部分地根据控制器取向的改变以及力(例如,加速度)的改变来计算。在一个实施方案中,路径440表示弯曲路径或弧线路径,并且可以通过类似于投掷(例如)鱼线的模拟投掷动作生成。如本领域技术人员所理解的,弯曲路径的距离和方向通过上述控制器取向/力的改变导出。值得注意的是,在一些实施方案中,投掷动作可以结合其他输入控制(例如,按钮按压/释放/等)来操作,以指示在环境400中生成路径440的用户意图。
[0045]图6示出了VR环境300的第一人视点,特别是从用户105的视角。这里,用户105将控制器120从第一位置移动到第二位置(如上面所讨论的),并且控制器120(和/或其他硬件部件)确定由头戴式套件125向用户105显示的结果路径(即路径440)。路径440表示VR环境300中的行进路径,所述行进路径导引用户105从当前位置到锚点445的移动。值得注意的是,在图6中,路径440使用户105移动得更靠近交互式对象605,即绘画。如本领域技术人员所理解的,用户105可以提供另外的输入以提示在VR环境300中沿着路径440的后续移动。如本领域技术人员所理解的,头戴式套件125可以为用户105将沿着路径的此类后续移动图形化地投影/制成动画。
[0046]图7示出了图6中的VR环境300的第一人视点,还示出了与交互式对象605相交的路径440。除了基于控制器120的移动来计算路径之外,交互式控制过程或技术(例如,交互式控制过程244)还可以并入有对象相交过程,所述对象相交过程检测VR环境中的路径的部分与对象之间的相交(或碰撞)。可选地(或另外地),相交可以包括模糊逻辑以检测近似相交/碰撞以及实际相交。这里,交互式控制过程确定路径440的部分与交互式对象605相交(或近似相交)。由于此类相交(或近似相交),因此路径440可以被修改以帮助用户105选择交互式对象605和/或调用另外的菜单选项(示例选项包括“添加”、“调整”、“全屏”、“缩放”、“裁剪”等)。另外,VR环境300还提供指示对交互式对象605的选择的选择元素或边界715。
[0047]这里,路径440表示选择交互式对象605的选择路径。选择路径可以在VR环境中导引用户和所选择的对象之间的移动,和/或选择路径可以将所选择的对象检索给用户(例如,将对象从其当前位置移动到用户的当前位置)。如本领域技术人员所理解的,用户105可以提供另外的输入以提示VR环境300中的用户和/或对象的后续移动。
[0048]图8A示出了另一个VR环境的第三人视点,示出了两个控制器的移动,所述两个控制器各自支持与VR环境的用户交互以及在VR环境内的用户交互;
[0049]图8A和图8B各自示出了VR环境800的第三人视点,其中图8A示出了两个控制器(控制器120和控制器820)在三维(3D)坐标系中的移动,并且图8B示出了由所述移动产生的相应路径。图8A和图8B中的控制器120的移动与上面讨论的图4A和图4B中所示的控制器120的移动相同。因此,下面关于图8A和图8B的讨论集中在第二控制器(控制器820)及其移动上。
[0050]图8A具体示出了控制器120从第一位置到第二位置的移动以及控制器820从相应的第一位置到第二位置的移动。每个控制器的相应移动包括由角度“α”(对于控制器120)或角度“β”(对于控制器820)指示的控制器取向或方向改变,以及由对应矢量指示的相应加速度改变。
[0051]关于对应矢量,除了对应于控制器120的矢量120’和120”之外,图8A还提供对应于控制器820的第一位置和第二位置并且示出方向和大小的矢量820’和820”。如上面所讨论的,大小表示在相应位置处测量到的力。
[0052]图8B特别示出了由每个控制器的相应移动产生的路径。具体而言,除了路径440(对应于控制器120)之外,图8B还示出了路径840,所述路径840在用户105的当前位置处起始,遵循弧线(其由角度β随时间的改变确定),在由锚点845(图形显示元素(“X”))指示的终端位置处结束,并且通过头戴式套件125被投影给用户105。类似于路径440,路径840可以表示在VR环境中导引用户105的移动的行进路径,和/或路径840可以表示选择与其相交的对象的选择路径。
[0054]图9A和图9B示出了图8B的VR环境的第三人视点,示出了在相应锚点处终止的每个路径以及对应的VR交互。特别地,图9A将路径440和路径840示出为与用户105和位于地面上的相应锚点445、845相交的直线,而图9B将路径440和路径840示出为与用户105和位于VR环境800中的墙面上的相应锚点445、845相交的直线。
[0055]如上面所讨论的,路径440、840可以表示在VR环境中导引用户105的移动的行进路径。尽管上面讨论了具有一个控制器和一个行进路径(以及对应的交互操作)的实施方案,但是这里,在多个路径(即路径440和路径840)之间存在支持进一步交互操作的协同作用。特别地,可以类比为用两根线来操作风筝,其中每个路径代表一根线(或一根线缆),而风筝由固定边界表面(图9A中的地面和图9B中的墙面)表示。另外,可以在终端或锚点445、845之间限定旋转轴线940a。在操作中,用户105可以控制自身相对于锚点(在地面上)的移动,并且将对应的拖拽或拉动动作/手势输入到控制器120、820中。由每个控制器检测到的拖拽或拉动动作相互协作并且可以使用户105沿着路径440、840/在路径440、840之间移动。另外,此类运动(和/或其他限定的运动)可以相对于VR环境800旋转或调整用户围绕轴线940a的取向。
[0056]图10示出了另一个VR环境的第三人视点,示出了从控制器120和控制器820的移动导出的选择路径1040。这里,选择路径1040可以表示路径440和路径840的叠加,其中两个路径的若干部分抵消,而其他部分聚合。可选地(或另外地),如本领域技术人员所理解的,选择路径1040还可以表示路径440和840的平均、差、并集或某一其他组合。此外,如上面所提及的,交互式控制过程(结合两个控制器采用)还可以并入有检测对象(交互式对象1005)与从两个控制器的移动导出的选择路径之间的相交(或近似相交的位置)的对象相交/碰撞过程。在一些实施方案中,类似于上面讨论的那些,选择路径1040可以表示在VR环境1000中终止于锚点1045处、用于导引用户105的移动的行进路径。
[0057]图11A和图11B示出了VR环境1000的第三人视点,示出了由控制器120(图11A)的移动产生的初始路径(路径440)和由控制器820(图11B)的移动产生的对初始路径的调整。总的来说,图11A和图11B示出了交互式控制过程的另外功能,其中用户105移动控制器120以生成路径440(上面更详细地讨论),并且移动控制器820以调整或微调路径440的各方面(例如,调整方向、大小、取向等)。例如,如所示,路径440在图11A中生成,并且位于距用户105初始距离处。用户105还移动和/或旋转图11B中的控制器820来调整路径440,例如,将锚点445移动得更靠近用户105的当前位置。
[0058]图12A和图12B相应地示出了图11A和图11B的第一人视点。这里,VR环境1000示出了书架上布置有许多书籍的图书馆。用户105移动控制器120(图12A)以生成路径440,所述路径在以“mo...”开头的书籍作者处/附近终止。用户105还移动控制器820(由侧箭头指示)来修改、调整或以其他方式移动路径440,使得路径440在以“ma...”开头的书籍作者处/附近终止。以此方式,一个控制器可用于生成行进/选择路径,而第二控制器可用于微调或以其他方式调整行进/选择路径。
[0059]图13示出了由VR系统(或其部件)采用的交互式控制过程的示例简化程序1300。程序1300在步骤1305处开始并且继续到步骤1310和1315,其中如上面更详细描述的,VR系统检测第一控制器(例如,控制器120)和第二控制器(例如,控制器820)的移动。在步骤1320处,VR系统还针对每个移动确定相应的旋转角度、所施加的力大小、加速度等。基于前述确定,在步骤1325中,VR系统将每个移动映射到三维(3D)坐标系中的一个或多个矢量。
[0060]在步骤1330中,VR系统还确定VR环境的对应于一个或多个矢量(例如,旋转角度、力大小等)的路径。例如,如本领域技术人员所理解的,VR系统可以基于对应于相应的旋转角度、力大小(力随时间的改变)等的矢量的平均、差、总和或其他组合来导出路径。
[0061]程序1300继续到步骤1335,如上面所讨论的,在步骤1335中,VR系统检测VR环境中的路径的部分与对象之间的相交,并且选择所述对象。如所提及的,选择对象还可以致使对象被指示为选定的(例如,边界框),显示与对象相关联的菜单选项,检索或移动对象到用户的当前位置或使用户朝向对象移动。VR系统还在VR环境中投影出(例如,使用头戴式套件125)路径,诸如示出路径440/830的附图。
[0062]程序1300随后在步骤1345处结束,但是在检测到第一控制器的移动的情况下,可以在步骤1310处再次开始。总的来说,程序1300中的步骤描述了特别适合于VR环境而不需要昂贵且通常复杂的装备的交互式控制过程和技术。应注意,程序1300内的某些步骤可以是任选的,并且此外,图13中所示的步骤仅是用于说明的示例。根据需要可以包括或不包括某些其他步骤。此外,尽管从特定装置或系统的视角示出和执行了特定顺序的步骤,但是所述顺序仅是说明性的,并且可以在不脱离本文的实施方案的范围的情况下,利用所述步骤和/或任何数量的系统、平台或装置的任何合适的布置。
[0063]因此,本文描述的技术提供在不需要昂贵且复杂的装备的情况下补充沉浸式模拟VR环境的交互式控制过程。这些交互式控制限定了任何用户都能快速且有效地掌握的简单直观的手势。
[0064]尽管已经示出和描述了用于VR环境的交互式控制过程的说明性实施方案,但是应理解,可以在本文的实施方案的精神和范围内做出各种其他调整和修改。例如,本文已经就某些系统、平台、硬件、装置和模块示出和描述了实施方案和某些功能。然而,所述实施方案在其更广泛的意义上来说不限于此,并且实际上可以用于非VR环境中以及由本文所讨论的装置或部件的任何组合采用。
[0065]前面的描述是针对特定实施方案。然而,将显而易见的是,可以对所描述的实施方案进行其他变型和修改,以实现其优点中的一些或全部。例如,可以明确地设想,本文描述的部件和/或元件可以被实现为软件,所述软件被存储在有形(非暂时性)计算机可读介质、装置和存储器(例如,磁盘/CD/RAM/EEPROM/等)上、具有在计算机、硬件、固件或其组合上执行的程序指令。此外,可以使用存储在计算机可读介质中或以其他方式从计算机可读介质中可获得的计算机可执行指令来实现描述本文所描述的各种功能和技术的方法。此类指令可以包括例如致使或以其他方式配置通用计算机、专用计算机或专用处理装置来执行特定功能或功能组的指令和数据。使用的计算机资源的部分可以通过网络存取。例如,计算机可执行指令可以是二进制代码、诸如汇编语言之类的中间格式指令、固件或源代码。可以用于存储指令、使用的信息和/或在根据所描述的示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、快闪存储器、具备非易失性存储器的USB装置、联网存储装置等。另外,实现根据这些公开的方法的装置可以包括硬件、固件和/或软件,并且可以采取各种形状因子中的任一种。此类形状因子的典型示例包括膝上型计算机、智能电话、小形状因子个人计算机、个人数字助理等。本文中所描述的功能还可以体现于外围装置或插卡中。作为其他示例,此类功能也可以在电路板上在不同芯片当中或在单个装置中执行的不同过程当中实现。指令、用于传送此类指令的介质、用于执行此类指令的计算资源以及用于支持此类计算资源的其他结构都是用于提供这些公开中描述的功能的手段。因此,所述描述仅通过示例的方式进行,而不是以其他方式限制本文中的实施方案的范围。因此,所附权利要求的目的是覆盖落入本文的实施方案的真实精神和范围内的所有此类变化和修改。