Qt 3D Render C++ Classes

Das Modul Qt 3D Render enthält Funktionen zur Unterstützung von 2D- und 3D-Rendering mit Qt 3D. Mehr...

Dieses Modul ist seit 6.8 veraltet. Wir raten dringend davon ab, es in neuem Code zu verwenden.

Namespaces

Qt3DRender

Enthält Klassen, die 2D- und 3D-Rendering ermöglichen

Qt3DRender::Render

Namespace für den Zugriff auf die Klassen Renderer und QRenderPlugin

Klassen

Qt3DRender::QAbstractLight

Kapselt ein QAbstractLight-Objekt in einer Qt 3D -Szene

Qt3DRender::QAbstractRayCaster

Eine abstrakte Basisklasse für Ray Casting in 3D-Szenen

Qt3DRender::QAbstractTexture

Eine Basisklasse, die zur Bereitstellung von Texturen verwendet wird

Qt3DRender::QAbstractTextureImage

Kapselt die notwendigen Informationen zur Erstellung eines OpenGL-Texturbildes

Qt3DRender::QAlphaCoverage

Aktivieren des Alpha-to-Coverage-Multisampling-Modus

Qt3DRender::QAlphaTest

Alpha-Referenztest angeben

Qt3DRender::QBlendEquation

Legt die Gleichung fest, die sowohl für die RGB-Überblendungsgleichung als auch für die Alpha-Überblendungsgleichung verwendet wird

Qt3DRender::QBlendEquationArguments

Verkapselt Überblendungsinformationen: gibt an, wie die eingehenden Werte (was gezeichnet werden soll) die vorhandenen Werte (was bereits gezeichnet ist) beeinflussen werden

Qt3DRender::QBlitFramebuffer

FrameGraph-Knoten zur Übertragung eines Rechtecks von Pixelwerten von einem Bereich eines Rendering-Ziels zu einem anderen

Qt3DRender::QBufferCapture

Tauscht Pufferdaten zwischen GPU und CPU aus

Qt3DRender::QCamera

Definiert einen Blickpunkt, durch den die Szene gerendert wird

Qt3DRender::QCameraLens

Qt3DRender::QCameraLens spezifiziert die Projektionsmatrix, die verwendet wird, um eine Kamera für eine 3D-Szene zu definieren

Qt3DRender::QCameraSelector

Klasse, die die Auswahl der zu verwendenden Kamera ermöglicht

Qt3DRender::QClearBuffers

Klasse zum Löschen von Puffern

Qt3DRender::QClipPlane

Ermöglicht eine zusätzliche OpenGL Clipping-Ebene, die in Shadern mit gl_ClipDistance verwendet werden kann

Qt3DRender::QColorMask

Ermöglicht die Angabe, welche Farbkomponenten in den aktuell gebundenen Framebuffer geschrieben werden sollen

Qt3DRender::QComputeCommand

QComponent zur Ausgabe von Arbeit für den Compute Shader auf der GPU

Qt3DRender::QCullFace

Gibt an, ob Front- oder Backface Culling aktiviert ist

Qt3DRender::QDebugOverlay

Aktiviert ein visuelles Overlay mit Szenendetails

Qt3DRender::QDepthRange

Ermöglicht die Neuzuordnung von Tiefenwerten, die in den Tiefenpuffer geschrieben werden

Qt3DRender::QDepthTest

Überprüft den Tiefenwert des Fragment-Shaders anhand der Tiefe eines Musters, in das geschrieben wird

Qt3DRender::QDirectionalLight

Verkapselung eines Directional Light-Objekts in einer Qt 3D -Szene

Qt3DRender::QDispatchCompute

FrameGraph-Knoten zur Ausgabe von Arbeit für den Compute-Shader auf der GPU

Qt3DRender::QDithering

Aktivieren von Dithering

Qt3DRender::QEffect

Basisklasse für Effekte in einer Qt 3D Szene

Qt3DRender::QEnvironmentLight

Kapselung eines Umgebungslichtobjekts in einer Qt 3D -Szene

Qt3DRender::QFilterKey

Speicher für Filterschlüssel und deren Werte

Qt3DRender::QFrameGraphNode

Basisklasse für alle FrameGraph-Konfigurationsknoten

Qt3DRender::QFrontFace

Definiert nach vorne und hinten gerichtete Polygone

Qt3DRender::QFrustumCulling

Aktiviert das Frustum Culling für den FrameGraph

Qt3DRender::QGeometryRenderer

Kapselt das Rendering der Geometrie

Qt3DRender::QGraphicsApiFilter

Identifiziert die API, die für die angehängte QTechnique benötigt wird

Qt3DRender::QLayer

Filterung, welche Objekte gerendert werden sollen

Qt3DRender::QLayerFilter

Steuert die in einem FrameGraph-Zweig gezeichneten Ebenen

Qt3DRender::QLevelOfDetail

Möglichkeit zur Steuerung der Komplexität der gerenderten Objekte auf der Grundlage ihrer Größe auf dem Bildschirm

Qt3DRender::QLevelOfDetailBoundingSphere

Einfaches kugelförmiges Volumen, definiert durch seinen Mittelpunkt und Radius

Qt3DRender::QLevelOfDetailSwitch

Ermöglicht die Aktivierung untergeordneter Objekte auf der Grundlage von Entfernung oder Bildschirmgröße

Qt3DRender::QLineWidth

Spezifiziert die Breite von gerasterten Linien

Qt3DRender::QMaterial

Stellt eine abstrakte Klasse zur Verfügung, die die Basis aller Materialkomponenten-Klassen in einer Szene sein sollte

Qt3DRender::QMemoryBarrier

Klasse zum Einfügen einer Speicherbarriere

Qt3DRender::QMesh

Ein benutzerdefinierter Mesh-Loader

Qt3DRender::QMultiSampleAntiAliasing

Aktivieren von Multisample-Antialiasing

Qt3DRender::QNoDepthMask

Deaktivieren der Tiefenschreibefunktion

Qt3DRender::QNoDraw

Wenn ein Qt3DRender::QNoDraw-Knoten in einem FrameGraph-Zweig vorhanden ist, verhindert dies, dass der Renderer ein Primitiv rendert

Qt3DRender::QNoPicking

Wenn ein Qt3DRender::QNoPicking-Knoten in einem FrameGraph-Zweig vorhanden ist, verhindert dies, dass der Renderaspekt eine Picking-Auswahl für den gegebenen Zweig durchführt

Qt3DRender::QObjectPicker

Instanziiert eine Komponente, die zur Interaktion mit einem QEntity durch einen als Picking bezeichneten Prozess verwendet werden kann

Qt3DRender::QPaintedTextureImage

Ein QAbstractTextureImage, das durch einen QPainter geschrieben werden kann

Qt3DRender::QParameter

Bietet Speicher für ein Paar aus Name und Wert. Dies bildet eine Shader-Uniform ab

Qt3DRender::QPickEvent

Enthält Informationen, wenn ein Objekt gepickt wird

Qt3DRender::QPickLineEvent

Enthält Informationen, wenn ein Segment einer Linie gepickt wird

Qt3DRender::QPickPointEvent

Enthält Informationen, wenn ein Segment einer Punktwolke gepickt wird

Qt3DRender::QPickTriangleEvent

Enthält Informationen, wenn ein Dreieck gepickt wird

Qt3DRender::QPickingProxy

Kann verwendet werden, um eine alternative QGeometryView bereitzustellen, die nur für das Picking verwendet wird

Qt3DRender::QPickingSettings

Legt fest, wie das Entity Picking gehandhabt wird

Qt3DRender::QPointLight

Verkapselt ein Point Light Objekt in einer Qt 3D Szene

Qt3DRender::QPointSize

Legt die Größe der gerasterten Punkte fest. Kann entweder statisch oder durch Shader-Programme gesetzt werden

Qt3DRender::QPolygonOffset

Legt den Maßstab und die Schritte zur Berechnung der Tiefenwerte für Polygonversätze fest

Qt3DRender::QProximityFilter

Auswahl von Objekten, die sich innerhalb einer Abstandsschwelle zu einem Zielobjekt befinden

Qt3DRender::QRasterMode

Der Render-Status erlaubt es, die Art der Rasterung zu steuern, die durchgeführt werden soll

Qt3DRender::QRayCaster

Qt3DRender::QRayCaster wird verwendet, um Tests für Strahlenwurf in 3D-Weltkoordinaten durchzuführen

Qt3DRender::QRayCasterHit

Details eines Treffers beim Werfen eines Strahls durch ein Modell

Qt3DRender::QRenderAspect

Klasse

Qt3DRender::QRenderCapabilities

Enthält Einstellungen für die verfügbaren Rendering-Engines

Qt3DRender::QRenderCapture

Frame-Graph-Knoten für Render-Capture

Qt3DRender::QRenderCaptureReply

Empfängt das Ergebnis einer Render-Capture-Anforderung

Qt3DRender::QRenderPass

Verkapselt einen Renderpass

Qt3DRender::QRenderPassFilter

Bietet Speicher für Vektoren von Filterschlüsseln und Parametern

Qt3DRender::QRenderSettings

Enthält Einstellungen für den Rendering-Prozess und hostet den aktiven FrameGraph

Qt3DRender::QRenderState

Eine abstrakte Basisklasse für alle Renderzustände

Qt3DRender::QRenderStateSet

Der FrameGraph-Knoten bietet eine Möglichkeit, eine Reihe von QRenderState-Objekten anzugeben, die während der Ausführung eines FrameGraph-Zweigs angewendet werden sollen

Qt3DRender::QRenderSurfaceSelector

Bietet eine Möglichkeit, die Renderoberfläche zu spezifizieren

Qt3DRender::QRenderTarget

kapselt ein Ziel (normalerweise ein Framebuffer-Objekt), in das der Renderer rendern kann

Qt3DRender::QRenderTargetOutput

Ermöglicht die Spezifikation eines Attachments eines Rendering-Ziels (sei es eine Farbtextur, eine Tiefentextur, etc...)

Qt3DRender::QRenderTargetSelector

Bietet eine Möglichkeit, ein Rendering-Ziel zu spezifizieren

Qt3DRender::QSceneLoader

Bietet die Möglichkeit, eine bestehende Szene zu laden

Qt3DRender::QScissorTest

Verwirft Fragmente, die außerhalb eines bestimmten rechteckigen Teils des Bildschirms liegen

Qt3DRender::QScreenRayCaster

Führt einen Ray-Casting-Test auf der Grundlage von Bildschirmkoordinaten durch

Qt3DRender::QSeamlessCubemap

Ermöglicht nahtlose Cubemap-Texturfilterung

Qt3DRender::QSetFence

FrameGraphNode zum Einfügen eines Zauns in den Grafikbefehlsstrom

Qt3DRender::QShaderData

Bietet die Möglichkeit, Werte eines Uniform Blocks oder einer Shader-Struktur zu spezifizieren

Qt3DRender::QShaderImage

Bietet Image-Zugriff auf Shader-Programme

Qt3DRender::QShaderProgram

kapselt ein Shader-Programm

Qt3DRender::QShaderProgramBuilder

Erzeugt den Inhalt eines Shader-Programms aus geladenen Graphen

Qt3DRender::QSharedGLTexture

Ermöglicht die Verwendung einer TextureId aus einem separaten OpenGL-Kontext in einer Qt 3D Szene

Qt3DRender::QSortPolicy

Bietet Speicher für die zu verwendenden Sortentypen

Qt3DRender::QSpotLight

Verkapselt ein Spot Light Objekt in einer Qt 3D Szene

Qt3DRender::QStencilMask

Steuert das Vor- und Zurückschreiben einzelner Bits in den Stencil-Ebenen

Qt3DRender::QStencilOperation

Legt die Stencil-Operation fest

Qt3DRender::QStencilOperationArguments

Legt die Aktionen fest, die ausgeführt werden sollen, wenn Stencil- und Tiefen-Tests fehlschlagen

Qt3DRender::QStencilTest

Legt Argumente für den Stencil-Test fest

Qt3DRender::QStencilTestArguments

Legt Argumente für den Stencil-Test fest

Qt3DRender::QSubtreeEnabler

Aktiviert oder deaktiviert ganze Teilbäume von Framegraph-Knoten

Qt3DRender::QTechnique

kapselt eine Technik

Qt3DRender::QTechniqueFilter

Ein QFrameGraphNode, der zur Auswahl der zu verwendenden QTechniques verwendet wird

Qt3DRender::QTexture1D

Eine QAbstractTexture mit einem Target1D-Zielformat

Qt3DRender::QTexture1DArray

Eine QAbstractTexture mit einem Target1DArray-Zielformat

Qt3DRender::QTexture2D

Eine QAbstractTexture mit einem Target2D-Zielformat

Qt3DRender::QTexture2DArray

Eine QAbstractTexture mit einem Target2DArray-Zielformat

Qt3DRender::QTexture2DMultisample

Eine QAbstractTexture mit einem Target2DMultisample-Zielformat

Qt3DRender::QTexture2DMultisampleArray

Eine QAbstractTexture mit einem Target2DMultisampleArray-Zielformat

Qt3DRender::QTexture3D

Eine QAbstractTexture mit einem Target3D-Zielformat

Qt3DRender::QTextureBuffer

Eine QAbstractTexture mit einem TargetBuffer-Zielformat

Qt3DRender::QTextureCubeMap

Eine QAbstractTexture mit einem TargetCubeMap-Zielformat

Qt3DRender::QTextureCubeMapArray

Eine QAbstractTexture mit einem TargetCubeMapArray-Zielformat

Qt3DRender::QTextureData

Speichert Texturinformationen wie das Ziel, Höhe, Breite, Tiefe, Ebenen, Umbruch und ob Mipmaps aktiviert sind

Qt3DRender::QTextureDataUpdate

Enthält Inhalte und Informationen, die für die Durchführung von Teilaktualisierungen eines Texturinhalts erforderlich sind

Qt3DRender::QTextureGenerator

Liefert die Bilddaten für eine Textur

Qt3DRender::QTextureImage

Verkapselt die notwendigen Informationen, um ein OpenGL-Texturbild aus einer Bildquelle zu erstellen

Qt3DRender::QTextureImageData

Speichert Daten, die eine Textur darstellen

Qt3DRender::QTextureImageDataGenerator

Stellt Texturbilddaten für QAbstractTextureImage zur Verfügung

Qt3DRender::QTextureLoader

Handhabt das Laden der Textur und das Setzen der Eigenschaften der Textur

Qt3DRender::QTextureRectangle

Eine QAbstractTexture mit einem TargetRectangle-Zielformat

Qt3DRender::QTextureWrapMode

Definiert den Wrap-Modus, den ein Qt3DRender::QAbstractTexture auf eine Textur anwenden soll

Qt3DRender::QViewport

Ein Ansichtsfenster in der Qt3D-Szene

Qt3DRender::QWaitFence

FrameGraphNode, der verwendet wird, um darauf zu warten, dass ein Zaun im Grafikbefehlsstrom signalisiert wird

Detaillierte Beschreibung

Das Qt 3D Render-Modul bietet einen Aspekt, Komponenten und andere unterstützende Typen, die für die Implementierung von 2D- und 3D-Rendering als Teil des Qt 3D Frameworks erforderlich sind.

Um Klassen aus diesem Modul zu verwenden, fügen Sie diese Direktive in die C++-Dateien ein:

#include <Qt3DRender>

Um gegen die entsprechende C++-Bibliothek zu linken, fügen Sie die folgende Anweisung in Ihre qmake-Projektdatei ein:

QT += 3drender

Klassen, Typen und Funktionen werden im Namespace Qt3DRender deklariert.

Überblick

Der Aspekt Qt 3D Rendering bietet Unterstützung für die datengesteuerte Konfiguration, wie in Qt 3D Render Framegraph beschrieben.

Auswahl eines Rendering Backends

Der Render-Aspekt wird mit zwei Rendering-Backends geliefert.

  • 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)

Wenn Sie ausschließlich auf OpenGL abzielen und bestimmte OpenGL-Funktionen verwenden, ist es möglicherweise besser, das OpenGL-Backend zu verwenden. Dies ist das OpenGL-Backend, das Qt 3D ausschließlich in der Qt 5-Serie verwendet.

Für Fälle, in denen Sie keine spezifischen OpenGL-Funktionen verwenden und verschiedene Plattformen anvisieren möchten, die möglicherweise veraltetes OpenGL haben, ist die Verwendung des RHI-Backends eine bessere Alternative.

Um Ihr Rendering-Backend auszuwählen, muss die Umgebungsvariable QT3D_RENDERER entweder auf "opengl" oder "rhi" gesetzt werden. Standardmäßig wird das OpenGL-Backend verwendet.

Wenn Sie das RHI-Backend verwenden, können Sie zusätzlich das interne RHI-Backend erzwingen, indem Sie QSG_RHI_BACKEND auf einen der folgenden Werte setzen:

  • opengl -> RHI OpenGL-Backend
  • gl -> RHI OpenGL-Backend
  • gles2 -> RHI OpenGL-Backend
  • metal -> RHI Metall-Backend
  • vulkan -> RHI Vulkan-Backend
  • d3d11 -> RHI DirectX 11 Hintergrundprogramm

Wenn nichts angegeben wird, wählt RHI standardmäßig das für die jeweilige Plattform am besten geeignete Backend.

Referenz

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.