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-supported-platforms.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 qt3dxr-supported-platforms.html
6 \title Supported Headsets
7 \target Supported Platforms
8
9 This page outlines the supported platforms and devices for which QtQuick3D.Xr is
10 tested and supported.
11
12 \note QtQuick3D.Xr is still under development, and all features might not be available on all
13 platforms.
14
15 \section1 Basic XR Platform Concepts
16
17 QtQuick3D.Xr supports two main platforms: devices that use OpenXR as the API for
18 developing applications and devices that use Apple's visionOS.
19
20 \section2 OpenXR
21
22 \l{https://www.khronos.org/openxr/}{OpenXR} is an open standard providing a common set
23 of APIs for developing XR applications. Implementations of OpenXR are available for
24 various platforms, such as Android or Windows.
25
26 Some VR/AR devices are a complete application deployment and runtime platform on their
27 own. For example, the \l{https://www.meta.com/no/en/quest/quest-3/}{Meta Quest 3} is a
28 complete, independent Android-based device. From the application developer's point of
29 view, the workflow is very similar to developing for Android mobile phones and
30 tablets. Such devices and their software platform are sometimes referred to as
31 \c{Standalone VR}.
32
33 Other headsets may not provide a full application deployment and runtime platform but
34 rather are used in combination with a computer, typically running Windows or Linux,
35 from where the application-rendered content is streamed to the headset, either via a
36 wired or wireless connection. This setup is sometimes referred to as \c{PCVR}. The
37 applications, in this case, are developed and deployed as regular desktop Windows or
38 Linux applications. However, instead of opening on-screen windows and showing content
39 there, as typical desktop applications would do, they render into offscreen buffers
40 via OpenXR and a 3D API such as Direct 3D or Vulkan. The resulting content is streamed
41 to the headset for displaying; the actual streaming and the related processing are
42 managed by the underlying software stack, transparently to Qt and the application. An
43 example of such headsets are some devices from Varjo, or the non-standalone devices in
44 the HTC Vive range.
45
46 Some devices fall into both categories. Most notably, the Meta Quest 3 supports both
47 modes of operation.
48
49 With standalone devices, all rendering and processing happens on the headset itself.
50 There is a single implementation of OpenXR and the underlying runtime environment,
51 which applications then use when launched on the device.
52
53 With non-standalone devices, all rendering and most of the related processing happens
54 on the host PC. The quality and performance depend heavily on the host PC's
55 capabilities, but the streaming technology and associated factors, such as the
56 wireless network bandwidth, can affect the results as well. In the PCVR world, there
57 are multiple solutions that provide an OpenXR implementation and wired or wireless
58 streaming.
59
60 \note Due to OpenXR being an open standard, devices that are compatible with it may
61 work, even if the devices were not tested and verified by Qt. This means that full
62 functionality and compatibility cannot be guaranteed out of the box.
63
64 \section2 Devices and platforms not based on OpenXR
65
66 \qxr currently supports one non-OpenXR platform: Apple's visionOS. Devices such as the
67 \l{https://www.apple.com/apple-vision-pro/}{Apple Vision Pro} fall into the
68 \c{Standalone VR} category.
69
70 \section1 Tested and Verified Headsets, Tier One
71
72 This is the list of devices that are regularly tested and verified by Qt and are
73 actively used during the development of \qxr.
74 \target visionOS_supported_versions
75 \list
76 \li Meta Quest 3, standalone (Android)
77 \li Meta Quest 3, PCVR mode (Windows)
78 \li Apple Vision Pro, standalone (visionOS)
79 \endlist
80
81 \section1 Tested and Verified Headsets, Tier Two
82
83 This is a list of additional devices that are tested occasionally during \qxr
84 development, and can be expected to work, but full functionality cannot be guaranteed.
85
86 \list
87 \li Meta Quest 2, standalone (Android)
88 \li HTC Vive in PCVR mode (Linux)
89 \endlist
90
91 \section1 Special Developer Environments
92
93 This is a list of VR simulator solutions that are used during \qxr
94 development and can be useful for application developers as well. Full
95 functionality is not guaranteed with these solutions, especially when it
96 comes to AR features.
97
98 \list
99 \li \l{https://developer.oculus.com/documentation/native/xrsim-intro/}{Meta XR
100 Simulator} (Windows). This is an OpenXR implementation for Windows that shows the
101 rendered content separately for the left and eye right in a desktop window while
102 offering input controller simulation and many other developer-oriented features.
103 From the applications' perspective, using the simulator is no different from PCVR on
104 Windows.
105 \endlist
106
107 \section1 Additional Notes
108
109 As mentioned above, other devices using OpenXR, for example, the Pico 4, may be
110 functional too, but this is not verified by Qt. The list of tested devices can be
111 expected to change and increase in future Qt releases.
112
113 When it comes to PCVR, there are further software stack details and complications that
114 may need to be considered. See the dedicated \l PCVR page for details.
115
116 \qxr prints warnings on the debug output by default. Diagnostic messages are not
117 printed out of the box. To enable those, enable the \c{qt.quick3d.xr} logging
118 category. For example, by setting the environment variable
119 \c{QT_LOGGING_RULES=qt.quick3d.xr=true}. See \l QLoggingCategory for more information.
120 It is strongly recommended that the additional debug prints are enabled, whenever
121 problems arise, or if the application does not start as expected. When reporting
122 problems, always include the full log in the error report. Due to the vast variety of
123 ways to run an XR application, especially when OpenXR is involved, these logs are
124 essential in order to better understand what is happening.
125
126 \sa {Getting Started With Meta Quest 3}
127 \sa {Getting Started With Apple Vision Pro}
128 \sa {PCVR}
129*/