Qt 5.7 | Qt 3D

Qt 5.7.1 Reference Documentation

# Qt 3D

Qt 3D provides functionality for near-realtime simulation systems with support for 2D and 3D rendering in both Qt C++ and Qt Quick applications.

The functionality in Qt 3D is divided into the following C++ modules:

Qt3DCore | Qt 3D module contains functionality to support near-realtime simulation systems
Qt3DExtras | Qt 3D Extras modules provides a set of prebuilt elements to help you get started with Qt 3D
Qt3DInput | Qt 3D Input module provides classes for handling user input in applications using Qt3D
Qt3DLogic | Qt 3D Logic module enables synchronizing frames with the Qt 3D backend
Qt3DRender | Qt 3D Render module contains functionality to support 2D and 3D rendering using Qt 3D

For Qt Quick applications, Qt 3D provides the following QML modules:

Qt3D.Core | Provides core Qt 3D QML types
Qt3D.Extras | Provides Qt 3D QML types for the extras module
Qt3D.Input | Provides QML types for Qt 3D user input
Qt3D.Logic | Provides QML types to synchronize frames with the 3D backend
Qt3D.Render | Provides Qt 3D QML types for rendering

## Getting Started

For a C++ application that performs 2D or 3D rendering, collision detection, and also handle user input, add the following line to its qmake `.pro` file:

      QT += 3dcore 3drender 3dinput 3dlogic 3dextras

To include the definitions of the modules' classes, use the following directives:

      #include <Qt3DCore>
      #include <Qt3DRender>
      #include <Qt3DInput>
      #include <Qt3DLogic>
      #include <Qt3DExtras>

A Qt Quick application requires also additional dependencies:

      QT += 3dcore 3drenderer 3dinput qml quick 3dquick

## Overview

The high level design and motivation for Qt 3D is described in the Qt 3D Overview. The Qt 3D Render aspect offers support for data-driven configuration as described in Qt 3D Render Framegraph.

## Reference

- Qt 3D Overview
- Qt 3D C++ Classes
- Qt 3D QML Types
- Qt 3D Examples

## Qt 3D Platform Support

Qt 3D has the following support for platforms:

- Microsoft Windows (win32) - Supported
- Linux X11 - Supported
- macOS - Supported although there may be some retina scaling issues
- Android - Supported
- Embedded Linux - Supported
- iOS - Supported since (Qt 5.7)
- WinRT - Not supported yet