Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qt3dxr-locomotion.qdoc
Go to the documentation of this file.
1// Copyright (C) 2024 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
3
4/*!
5 \page qtxr-locomotion.html
6 \title Locomotion in \qxr
7
8 \brief This page describes locomotion and gives examples of moving actors in \qxr.
9
10 In fully immersive VR, the user can move around in the virtual world by walking or even
11 running with enough space, but in most cases, the user is limited to a small area and needs to
12 move around in the virtual world using some form of locomotion that allows for movement over
13 greater distances, or even terrains that aren't possible to replicate in a realistic way in the
14 real world. In VR, locomotion is the act of moving from one place to another, either by having a
15 appropriately sized area (Room Scale) or using some form of input and/or gesture other than
16 physically moving.
17
18 In VR, locomotion is achieved using different techniques. Other than room scale, the most
19 common techniques are teleportation or continuous movement. Teleportation is instantly moving
20 the user from one place to another. Continuous movement is moving the user continuously from
21 one place to another, usually using a controller or a keyboard. In both cases, it is essential
22 to design the movement to minimize motion sickness and user disorientation. Getting this right can
23 be a challenge and requires careful design and testing.
24
25 \section1 Room scale
26
27 The best way to experience VR is to have a room-scale setup where the user can walk around in
28 a large enough space. In this setup, the user can move around in the virtual world as they
29 would in the real world, but usually within a predefined space with a sufficient margin to avoid
30 walking into walls or other physical obstacles.
31 This is the most immersive way to experience VR if the user's physical environment allows it.
32
33 \section1 Teleportation
34
35 Teleportation can be done in different ways but is usually done by pointing at a location and then
36 teleporting the user to that location. To avoid causing motion sickness, some form of effect
37 is usually added to indicate that the player was indeed moved without disconnecting the
38 user's view from the real-world head motion inputs from the HMD. This can be done by fading
39 The screen turns black and then fades back to the VR view once the teleportation is done.
40 Teleportation is a good way to move around in larger virtual spaces. In \qxr, you can find a
41 reference implementation for doing freeform teleportation, see the
42 \l {Qt Quick 3D - XR Freeform Teleportation Example}{Freeform teleportation example} for more
43 information.
44
45 \section1 Continuous movement
46
47 Continuous movement is usually better suited for when the explorable area is small or when the
48 user needs more fine-grained control over the movement using a controller or a keyboard. See
49 the \l XrController documentation for more information on how to get the data from the
50 controller. As with teleportation, it is important to minimize motion sickness and
51 disorientation when using continuous movement. This can be done by, for example, adding a
52 tunneling effect or other effects that soften the movement to avoid motion sickness. This is
53 especially important when starting and stopping movement.
54
55*/