Qt 3D Render C++ Classes
The Qt 3D Render module contains functionality to support 2D and 3D rendering using Qt 3D. More...
Namespaces
Contains classes that enable 2D and 3D rendering | |
Namespace used for accessing the classes Renderer and QRenderPlugin |
Classes
Encapsulate a QAbstractLight object in a Qt 3D scene | |
An abstract base class for ray casting in 3d scenes | |
A base class to be used to provide textures | |
Encapsulates the necessary information to create an OpenGL texture image | |
Enable alpha-to-coverage multisampling mode | |
Specify alpha reference test | |
Specifies the equation used for both the RGB blend equation and the Alpha blend equation | |
Encapsulates blending information: specifies how the incoming values (what's going to be drawn) are going to affect the existing values (what is already drawn) | |
FrameGraph node to transfer a rectangle of pixel values from one region of a render target to another | |
Exchanges buffer data between GPU and CPU | |
Defines a view point through which the scene will be rendered | |
Qt3DRender::QCameraLens specifies the projection matrix that will be used to define a Camera for a 3D scene | |
Class to allow for selection of camera to be used | |
Class to clear buffers | |
Enables an additional OpenGL clipping plane that can be in shaders using gl_ClipDistance | |
Allows specifying which color components should be written to the currently bound frame buffer | |
QComponent to issue work for the compute shader on GPU | |
Specifies whether front or back face culling is enabled | |
Enables a visual overlay with scene details | |
Enables remapping depth values written into the depth buffer | |
Tests the fragment shader's depth value against the depth of a sample being written to | |
Encapsulate a Directional Light object in a Qt 3D scene | |
FrameGraph node to issue work for the compute shader on GPU | |
Enable dithering | |
Base class for effects in a Qt 3D scene | |
Encapsulate an environment light object in a Qt 3D scene | |
Storage for filter keys and their values | |
Base class of all FrameGraph configuration nodes | |
Defines front and back facing polygons | |
Enable frustum culling for the FrameGraph | |
Encapsulates geometry rendering | |
Identifies the API required for the attached QTechnique | |
Way of filtering which entities will be rendered | |
Controls layers drawn in a frame graph branch | |
Way of controlling the complexity of rendered entities based on their size on the screen | |
Simple spherical volume, defined by its center and radius | |
Provides a way of enabling child entities based on distance or screen size | |
Specifies the width of rasterized lines | |
Provides an abstract class that should be the base of all material component classes in a scene | |
Class to emplace a memory barrier | |
A custom mesh loader | |
Enable multisample antialiasing | |
Disable depth write | |
When a Qt3DRender::QNoDraw node is present in a FrameGraph branch, this prevents the renderer from rendering any primitive | |
When a Qt3DRender::QNoPicking node is present in a FrameGraph branch, this prevents the render aspect from performing picking selection for the given branch | |
Instantiates a component that can be used to interact with a QEntity by a process known as picking | |
A QAbstractTextureImage that can be written through a QPainter | |
Provides storage for a name and value pair. This maps to a shader uniform | |
Holds information when an object is picked | |
Holds information when a segment of a line is picked | |
Holds information when a segment of a point cloud is picked | |
Holds information when a triangle is picked | |
Can be used to provide an alternate QGeometryView used only for picking | |
Specifies how entity picking is handled | |
Encapsulate a Point Light object in a Qt 3D scene | |
Specifies the size of rasterized points. May either be set statically or by shader programs | |
Sets the scale and steps to calculate depth values for polygon offsets | |
Select entities which are within a distance threshold of a target entity | |
Render state allows to control the type of rasterization to be performed | |
Qt3DRender::QRayCaster is used to perform ray casting tests in 3d world coordinates | |
Details of a hit when casting a ray through a model | |
Class | |
Holds settings related to available rendering engines | |
Frame graph node for render capture | |
Receives the result of render capture request | |
Encapsulates a Render Pass | |
Provides storage for vectors of Filter Keys and Parameters | |
Holds settings related to rendering process and host the active FrameGraph | |
An abstract base class for all render states | |
FrameGraph node offers a way of specifying a set of QRenderState objects to be applied during the execution of a framegraph branch | |
Provides a way of specifying the render surface | |
Encapsulates a target (usually a frame buffer object) which the renderer can render into | |
Allows the specification of an attachment of a render target (whether it is a color texture, a depth texture, etc... ) | |
Provides a way of specifying a render target | |
Provides the facility to load an existing Scene | |
Discards fragments that fall outside of a certain rectangular portion of the screen | |
Performe ray casting test based on screen coordinates | |
Enables seamless cubemap texture filtering | |
FrameGraphNode used to insert a fence in the graphics command stream | |
Provides a way of specifying values of a Uniform Block or a shader structure | |
Provides Image access to shader programs | |
Encapsulates a Shader Program | |
Generates a Shader Program content from loaded graphs | |
Allows to use a textureId from a separate OpenGL context in a Qt 3D scene | |
Provides storage for the sort types to be used | |
Encapsulate a Spot Light object in a Qt 3D scene | |
Controls the front and back writing of individual bits in the stencil planes | |
Specifies stencil operation | |
Sets the actions to be taken when stencil and depth tests fail | |
Specifies arguments for the stecil test | |
Specifies arguments for stencil test | |
Enables or disables entire subtrees of framegraph nodes | |
Encapsulates a Technique | |
A QFrameGraphNode used to select QTechniques to use | |
A QAbstractTexture with a Target1D target format | |
A QAbstractTexture with a Target1DArray target format | |
A QAbstractTexture with a Target2D target format | |
A QAbstractTexture with a Target2DArray target format | |
A QAbstractTexture with a Target2DMultisample target format | |
A QAbstractTexture with a Target2DMultisampleArray target format | |
A QAbstractTexture with a Target3D target format | |
A QAbstractTexture with a TargetBuffer target format | |
A QAbstractTexture with a TargetCubeMap target format | |
A QAbstractTexture with a TargetCubeMapArray target format | |
Stores texture information such as the target, height, width, depth, layers, wrap, and if mipmaps are enabled | |
Holds content and information required to perform partial updates of a texture content | |
Provides the image data for a texture | |
Encapsulates the necessary information to create an OpenGL texture image from an image source | |
Stores data representing a texture | |
Provides texture image data for QAbstractTextureImage | |
Handles the texture loading and setting the texture's properties | |
A QAbstractTexture with a TargetRectangle target format | |
Defines the wrap mode a Qt3DRender::QAbstractTexture should apply to a texture | |
A viewport on the Qt3D Scene | |
FrameGraphNode used to wait for a fence in the graphics command stream to become signaled |
Detailed Description
The Qt 3D Render module provides an aspect, components, and other supporting types necessary to implement 2D and 3D rendering as part of the Qt 3D framework.
To use classes from this module, add this directive into the C++ files:
#include <Qt3DRender>
To link against the corresponding C++ library, add the following to your qmake project file:
QT += 3drender
Classes, types, and functions are declared under the Qt3DRender namespace.
Overview
The Qt 3D Render aspect offers support for data-driven configuration as described in Qt 3D Render Framegraph.
Selecting a Rendering Backend
The Render aspect comes with two rendering backends.
- OpenGL backend (ES 2, ES 3.2, GL 2, GL 3, GL 3.2, GL 4.3)
- RHI backend (ES 2, GL, DirectX, Vulkan, Metal)
If you are targeting OpenGL exclusively and are using specific OpenGL features, you might be better off using the OpenGL backend. This is the OpenGL backend that Qt 3D exclusively used in the Qt 5 series.
For cases where you are not using specific OpenGL features and want to target different platforms that might have deprecated OpenGL, using the RHI backend is a better alternative.
To select your rendering backend, the environment variable QT3D_RENDERER is to be set to either "opengl" or "rhi". Defaults to the OpenGL backend.
When using the RHI backend, you can further force the internal RHI backend by setting the QSG_RHI_BACKEND to one of the following values:
- opengl -> RHI OpenGL backend
- gl -> RHI OpenGL backend
- gles2 -> RHI OpenGL backend
- metal -> RHI Metal backend
- vulkan -> RHI Vulkan backend
- d3d11 -> RHI DirectX 11 backend
If not specified, RHI will default to what it deduces to be the best backend for the platform.