Auf dieser Seite

SceneEnvironment QML Type

Hier können Sie festlegen, wie eine Szene gerendert wird. Mehr...

Import Statement: import QtQuick3D
Inherits:

Object3D

Inherited By:

ExtendedSceneEnvironment

Eigenschaften

Ausführliche Beschreibung

SceneEnvironment definiert eine Reihe globaler Eigenschaften, die festlegen, wie eine Szene gerendert werden soll.

Hinweis: Das Modul „ QtQuick3D.Helpers“ bietet den Typ „ ExtendedSceneEnvironment “ an, der von „SceneEnvironment“ erbt und zusätzlich eine Reihe integrierter Effekte bereitstellt.

Um „SceneEnvironment“ oder „ ExtendedSceneEnvironment “ zu verwenden, verknüpfen Sie das „ environment property “ eines „ View3D “ mit einer Instanz dieser Typen. Das Objekt kann inline deklariert werden, zum Beispiel wie folgt:

View3D {
    environment: SceneEnvironment {
        antialiasingMode: SceneEnvironment.MSAA
        tonemapMode: SceneEnvironment.TonemapModeFilmic
        backgroundMode: SceneEnvironment.SkyBox
        lightProbe: Texture {
            source: "panoramic_hdri_background.hdr"
        }
    }
}

Alternativ kann das Umgebungsobjekt separat definiert werden. Es kann dann von einem oder mehreren „ View3D “-Objekten referenziert werden. Ein Beispiel-Codeausschnitt, diesmal unter Verwendung von „ ExtendedSceneEnvironment “:

ExtendedSceneEnvironment {
    id: myEnv
    vignetteEnabled: true
}

View3D {
    width: parent.width / 2
    environment: myEnv
}

View3D {
    width: parent.width / 2
    x: parent.width / 2
    environment: myEnv
}

Funktionsübersicht

  • Anti-Aliasing-Einstellungen. Eine Übersicht zu diesem Thema finden Sie unter „Anti-Aliasing Best Practices “. Die relevanten Eigenschaften sind „ antialiasingMode “, „ antialiasingQuality “, „ specularAAEnabled “, „ temporalAAEnabled “ und „ temporalAAStrength “. Wenn zudem „ ExtendedSceneEnvironment “ verwendet wird, steht über „ fxaaEnabled “ eine weitere Methode zur Verfügung.
  • Ambient Occlusion im Bildschirmraum. Die relevanten Eigenschaften sind aoEnabled, aoStrength, aoBias, aoDistance, aoDither, aoSampleRate, aoSoftness. Beachten Sie, dass SSGI ebenfalls Ambient Occlusion bereitstellt und oft qualitativ bessere Ergebnisse liefert, wenn auch möglicherweise auf Kosten der Leistung. Vermeiden Sie es, die Ambient Occlusion von `SceneEnvironment` und die SSGI von ` ExtendedSceneEnvironment` gleichzeitig zu aktivieren.
  • Clear Color, Skybox, bildbasierte Beleuchtung. Weitere Informationen zu IBL finden Sie unter „Using Image-Based Lighting“. Die relevanten Eigenschaften sind: backgroundMode, clearColor, lightProbe, probeExposure, probeHorizon, probeOrientation, skyboxBlurAmount, skyBoxCubeMap.
  • Tonemapping. Mit „ tonemapMode “ wird die Tonemapping-Methode konfiguriert, die verwendet wird, um die Farbwerte mit hohem Dynamikbereich am Ende der Grafikpipeline in den Bereich von 0 bis 1 umzuwandeln. „ ExtendedSceneEnvironment “ bietet einige zusätzliche Eigenschaften wie „ whitePoint “ und „ sharpnessAmount “, mit denen die Tonemapping-Berechnungen feinabgestimmt werden können.
  • Einstellungen für den Tiefenpuffer. Die relevanten Eigenschaften sind „ depthPrePassEnabled “ und „ depthTestEnabled “.
  • Nachbearbeitungseffekte. Zusätzlich zu den integrierten Nachbearbeitungseffekten, die von „ ExtendedSceneEnvironment “ bereitgestellt werden, können Anwendungen über den Typ „ Effect “ eigene benutzerdefinierte Effekte bereitstellen. Die Eigenschaft „ effects “ ist eine Liste von „ Effect “-Instanzen.
  • Einstellungen zur Debug-Visualisierung, wie beispielsweise der Drahtgittermodus oder das Rendern nur bestimmter Farbanteile für die Materialien. Dies wird über das „ DebugSettings “-Objekt gesteuert, auf das die Eigenschaft „ debugSettings “ verweist. Die meisten dieser Einstellungen lassen sich auch interaktiv steuern, wenn ein „ DebugView “-Element zur Szene hinzugefügt wird.
  • Nebel-Einstellungen. Um Nebel zu aktivieren, legen Sie ein entsprechend konfiguriertes „ Fog “-Objekt in der Eigenschaft „ fog “ fest.
  • Einstellungen für das Baking von Lightmaps. Wenn für einige Modelle in der Szene vorab gebackene Lightmaps verwendet werden, definiert das in der Eigenschaft „ lightmapper “ festgelegte „ Lightmapper “-Objekt die Einstellungen, die während des Baking-Vorgangs verwendet werden.
  • Scheren-Einstellungen. Um eine andere Schere als die des Ansichtsfensters anzuwenden, legen Sie die Eigenschaft „ scissorRect “ fest.

Siehe auch „ ExtendedSceneEnvironment “.

Eigenschaftsdokumentation

antialiasingMode : enumeration

Diese Eigenschaft steuert den Anti-Aliasing-Modus, der beim Rendern der Szene angewendet wird.

Mögliche Werte sind:

KonstantBeschreibung
SceneEnvironment.NoAAEs wird kein Antialiasing angewendet.
SceneEnvironment.SSAAEs wird Supersample-Antialiasing angewendet.
SceneEnvironment.MSAAEs wird Multisample-Antialiasing angewendet.
SceneEnvironment.ProgressiveAAEs wird progressives Antialiasing angewendet.

Der Standardwert ist „ SceneEnvironment.NoAA “.

Supersampling

Die Szene wird in einer höheren Auflösung gerendert und anschließend auf die tatsächliche Auflösung herunterskaliert.

Vorteile: Hohe Qualität. Alle Szenenelemente werden geglättet, nicht nur die Geometriesilhouetten.

Nachteile: In der Regel rechenintensiver als MSAA. Erhöht den Videospeicherbedarf. Wird bei „ View3D “-Elementen mit allen „renderMode“-Einstellungen außer „Inline“ unterstützt; da die Technik jedoch das vorherige Rendern in eine Textur erfordert, führt die Aktivierung von SSAA bei einem „renderMode“ von „Underlay“ oder „Overlay“ zur Verwendung einer Zwischentextur und eines zusätzlichen Render-Durchgangs, die normalerweise nicht erforderlich wären, was bedeutet, dass die Leistungseinbußen möglicherweise stärker spürbar sind. Es wird empfohlen, SSAA nur zu verwenden, wenn der „renderMode“ auf den Standardwert „Offscreen“ gesetzt ist.

Multisampling

Die Kanten der Geometrie werden überabgetastet, was zu glatteren Silhouetten führt. Diese Technik hat jedoch keine Auswirkungen auf die Materialien innerhalb der Geometrie.

Vorteile: Funktioniert mit jedem „ View3D “-Element, unabhängig vom „renderMode“. Gute Ergebnisse bei Geometriesilhouetten, wo Aliasing oft am deutlichsten sichtbar ist; funktioniert problemlos mit schnellen Animationen. Die Leistung hängt ausschließlich von den Fähigkeiten des Systems (GPU) ab.

Nachteile: Hilft nicht bei Textur- oder Reflexionsproblemen. Erhöht den Videospeicherverbrauch. Kann auf weniger leistungsfähiger Grafikhardware rechenintensiv sein. Kann je nach „renderMode“ fensterweise oder für einzelne „ View3D “-Elemente gesteuert werden. Bei Verwendung von „Underlay/Overlay“ mit einem angewendeten Effekt oder im Modus „Offscreen“ kann MSAA für jedes „ View3D “-Element gesteuert werden. Wird hingegen „Underlay/Overlay“ ohne Effekte oder „Inline“ verwendet, erfolgt die MSAA-Steuerung auf Fensterbasis.

Hinweis: Bei „ View3D “-Elementen mit einem anderen „ renderMode “ als „Underlay/Overlay“ mit Effekten oder „Offscreen“ kann Multisampling nur über den „ QSurfaceFormat “ des „ QQuickWindow “ oder „ QQuickView “ aktiviert werden. Dies wirkt sich dann auf alle Inhalte in diesem Fenster aus, sowohl auf 2D- als auch auf 3D-Inhalte.

Progressives Antialiasing

Diese Eigenschaft aktiviert das progressive Antialiasing und legt dessen Stärke für die Szene fest.

Wenn sich alle Inhalte der Szene nicht mehr bewegen, wird die Kamera zwischen den Einzelbildern ganz leicht hin- und herbewegt, und das Ergebnis jedes neuen Einzelbilds wird mit den vorherigen Einzelbildern überblendet. Je mehr Einzelbilder Sie ansammeln, desto besser sieht das Ergebnis aus.

Vorteile: Liefert hervorragende Ergebnisse, wenn alle Inhalte in der Szene stillstehen.

Nachteile: Wirkt nicht, wenn visuelle Veränderungen auftreten. Rechenintensiv, da die Bilder gesammelt und überblendet werden müssen. Erhöht den Videospeicherverbrauch.

Hinweis: Progressives Anti-Aliasing wird derzeit beim Multiview-Rendering nicht unterstützt und sollte in VR-/AR-Anwendungen nicht verwendet werden.

Weitere Informationen zu Anti-Aliasing -Methoden finden Sie unter „Best Practices für Anti-Aliasing “.

antialiasingQuality : enumeration

Diese Eigenschaft legt den Grad des auf die Szene angewendeten Antialiasings fest. Das Verhalten hängt von der verwendeten „ antialiasingMode “ ab. Wenn die Eigenschaft „ antialiasingMode “ auf „ NoAA “ gesetzt ist, hat diese Eigenschaft keine Auswirkung.

Mögliche Werte sind:

KonstantBeschreibung
SceneEnvironment.MediumSSAA: Das Antialiasing verwendet eine 1,2-fache Supersampling-Auflösung. „
“ MSAA: Das Antialiasing verwendet 2 Samples pro Pixel. „
“ ProgressiveAA: Das Antialiasing verwendet 2 Frames für das endgültige Bild.
SceneEnvironment.HighSSAA: Das Antialiasing verwendet eine 1,5-fache Supersampling-Auflösung.
MSAA: Das Antialiasing verwendet 4 Samples pro Pixel.
ProgressiveAA: Das Antialiasing verwendet 4 Frames für das endgültige Bild.
SceneEnvironment.VeryHighSSAA: Das Antialiasing verwendet eine 2,0-fache Supersampling-Auflösung.
MSAA: Das Antialiasing verwendet 8 Samples pro Pixel.
ProgressiveAA: Das Antialiasing verwendet 8 Frames für das Endbild.

Der Standardwert ist SceneEnvironment.High

aoBias : real

Diese Eigenschaft legt eine Mindestentfernung fest, ab der Objekte im Nahbereich keine Ambient-Occlusion mehr aufweisen. Höhere Werte erhöhen den erforderlichen Abstand zwischen Objekten, bevor Ambient-Occlusion sichtbar wird.

Hinweis: Wenn Sie Schatten durch Umgebungsokklusion auf Objekten sehen, bei denen keine Schatten auftreten sollten, erhöhen Sie den Wert leicht, um Ergebnisse aus dem Nahbereich zu unterdrücken.

Der Standardwert ist 0,0.

aoDistance : real

Diese Eigenschaft legt grob fest, wie weit sich die Schatten der Ambient Occlusion von den Objekten ausbreiten. Größere Entfernungen führen zu einer zunehmenden Beeinträchtigung der Leistung.

Der Standardwert beträgt 5,0.

Hier abgebildet mit dem Standardwert „ aoSoftness “ und dem Maximalwert „ aoStrength “:

aoDistance von 5„aoDistance“ von 1

Szene mit einer Ambient-Occlusion-Entfernung von 5

Szene mit einer Ambient-Occlusion-Entfernung von 1

Hinweis: Um eine optisch ansprechende Screen-Space-Ambient-Occlusionzu erzielen , müssen eine Reihe verwandter Parameter sorgfältig abgestimmt werden, darunter „ aoStrength “, „ aoSoftness “, „aoDistance“, „ aoDither “, „ aoBias “ und „ aoSampleRate “.

Siehe auch aoStrength und aoSoftness.

aoDither : bool

Wenn diese Eigenschaft aktiviert ist, werden die Ränder der Schattenbänder der Umgebungsokklusion gestreut, um die Glätte zu verbessern (wobei jedoch das Risiko besteht, dass gelegentlich deutliche musterartige Artefakte entstehen).

Hinweis: Sehr große Abstände zwischen den Clipping-Ebenen Ihrer Kamera können zu Problemen bei der Umgebungsokklusion führen. Wenn Sie seltsame Streifenbildung in Ihrer Umgebungsokklusion feststellen, versuchen Sie, die Eigenschaft „ clipFar “ Ihrer Kamera so anzupassen, dass sie näher an Ihrem Inhalt liegt.

Der Standardwert ist „ false “.

Siehe auch „ PerspectiveCamera.clipFar “ und „ OrthographicCamera.clipFar “.

aoEnabled : bool [since 6.5]

Ambient Occlusion aktivieren oder deaktivieren.

Der Standardwert ist „ false “, was bedeutet, dass die Umgebungsokklusion deaktiviert ist.

Hinweis: Wenn „ aoStrength “ oder „ aoDistance “ den Wert 0 hat, werden durch das Setzen dieser Eigenschaft auf „ true “ auch diese Werte entsprechend angepasst, damit die Umgebungsabschattung wirksam wird.

Hinweis: Um eine optisch ansprechende Screen-Space-Ambient-Occlusionzu erzielen , müssen eine Reihe von zugehörigen Parametern sorgfältig abgestimmt werden, darunter „ aoStrength “, „ aoSoftness “, „ aoDistance “, „ aoDither “, „ aoBias “ und „ aoSampleRate “.

Diese Eigenschaft wurde in Qt 6.5 eingeführt.

Siehe auch aoStrength und aoDistance.

aoSampleRate : int

Diese Eigenschaft legt die Qualität der Ambient Occlusion fest (mehr Graustufen) – allerdings auf Kosten der Leistung.

Der Wert muss 2, 3 oder 4 betragen. Der Standardwert ist 2.

aoSoftness : real

Diese Eigenschaft legt fest, wie glatt die Kanten der Ambient-Occlusion-Schattierung sind.

Der Wert muss zwischen 0,0 und 50,0 liegen. Der Standardwert ist 50,0.

Hier abgebildet mit dem Standardwert „ aoDistance “ und dem Maximalwert „ aoStrength “:

„aoSoftness“ von 50„aoSoftness“ von 25

Szene mit einer Ambient-Occlusion-Weichheit von 50

Szene mit einer Ambient-Occlusion-Weichheit von 25

Hinweis: Um eine optisch ansprechende Screen-Space-Ambient-Occlusionzu erzielen , müssen eine Reihe miteinander zusammenhängender Parameter sorgfältig abgestimmt werden, darunter „ aoStrength “, „aoSoftness“, „ aoDistance “, „ aoDither “, „ aoBias “ und „ aoSampleRate “.

Siehe auch aoStrength und aoDistance.

aoStrength : real

Diese Eigenschaft legt den Grad der angewendeten Ambient Occlusion fest. Ambient Occlusion ist eine Form der approximierten globalen Beleuchtung, die bei eng beieinander liegenden Objekten eine nicht-direktionale Selbstbeschattung erzeugt. Ein Wert von 100 erzeugt vollständig dunkle Schatten; niedrigere Werte lassen die Schatten heller erscheinen. Ein Wert von 0 deaktiviert die Umgebungsokklusion vollständig, was die Leistung verbessert, jedoch auf Kosten des visuellen Realismus der in der Szene gerenderten 3D-Objekte geht.

Alle Werte außer 0 haben die gleichen Auswirkungen auf die Leistung.

Der Standardwert ist 0,0. Der Maximalwert ist 100,0.

Ein Wert von 0 entspricht der Einstellung „ aoEnabled “ auf „false“.

Hier abgebildet mit den Standardwerten für „ aoSoftness “ und „ aoDistance “:

„aoStrength“ von 0 (AO deaktiviert)„aoStrength“ von 100„aoStrength“ von 50

Szene mit einer Ambient-Occlusion-Stärke von 0

Szene mit einer Ambient-Occlusion-Stärke von 100

Szene mit einer Ambient-Occlusion-Stärke von 50

Hinweis: Um eine optisch ansprechende Screen-Space-Ambient-Occlusionzu erzielen , müssen eine Reihe von zugehörigen Parametern sorgfältig abgestimmt werden, darunter „aoStrength“, „ aoSoftness “, „ aoDistance “, „ aoDither “, „ aoBias “ und „ aoSampleRate “.

Siehe auch aoEnabled, aoDistance und aoSoftness.

backgroundMode : enumeration

Diese Eigenschaft legt fest, ob und wie der Hintergrund der Szene gelöscht werden soll.

Hinweis: Das Löschen des Farbpuffers, der die 3D-Ansicht (View 3D) unterlegt, findet nicht immer statt: Abhängig von der Eigenschaft „ renderMode “ führt der 3D-Renderer ( View3D ) möglicherweise von sich aus kein Löschen durch; in diesem Fall haben „ SceneEnvironment.Transparent “ und „ SceneEnvironment.Color “ keine Wirkung. Nur der Standard-Renderer „ Offscreen “ ( render mode ) (Rendering in eine Textur) unterstützt alle Löschmodi. Verwenden Sie im Modus „ Underlay “ die Funktionen „ QQuickWindow::setColor()“ oder „ Window.color “, um die Löschfarbe für die Szene des 3D-Renderers ( Qt Quick ) zu steuern. SkyBox wird anders behandelt, da hier tatsächliche Geometrie gezeichnet wird; daher funktioniert dies in allen Rendermodi identisch.

KonstanteBeschreibung
SceneEnvironment.TransparentDie Szene wird auf transparent zurückgesetzt. Dies ist nützlich, um 3D-Inhalte über einem anderen Element zu rendern. Dieser Modus hat keine Wirkung, wenn der „ View3D “ den Render-Modus „Underlay“ oder „Overlay“ verwendet und keine Nachbearbeitung aktiviert ist.
SceneEnvironment.ColorDie Szene wird mit der durch die Eigenschaft „ clearColor “ festgelegten Farbe gelöscht. Dieser Modus hat keine Auswirkung, wenn der „ View3D “ den Rendermodus „Underlay“ oder „Overlay“ verwendet und keine Nachbearbeitung aktiviert ist.
SceneEnvironment.SkyBoxDie Szene wird nicht gelöscht, stattdessen wird eine SkyBox oder ein Skydome gerendert. Die SkyBox wird mithilfe der in der Eigenschaft „ lightProbe “ definierten HDRI-Map festgelegt.
SceneEnvironment.SkyBoxCubeMapDie Szene wird nicht gelöscht, sondern stattdessen wird eine SkyBox oder ein Skydome gerendert. Die SkyBox wird anhand der in der Eigenschaft „ skyBoxCubeMap “ definierten Cubemap festgelegt.
SceneEnvironment.SkyMaterialDie Szene wird nicht gelöscht, sondern stattdessen wird eine SkyBox oder ein Skydome gerendert. Die SkyBox wird aus der Cubemap abgetastet, die von der in der Eigenschaft „ skyMaterial “ definierten „ SkyMaterial “ generiert wird. (Seit Qt 6.12)

Der Standardwert lautet SceneEnvironment.Transparent

Betrachten Sie das folgende Beispiel. Es wird davon ausgegangen, dass das Suzanne-Modell mit dem „ balsam “-Tool vorverarbeitet wurde und aus dem glTF -Repository „Sample Models“ stammt.

import QtQuick
import QtQuick3D
import QtQuick3D.Helpers

Item {
    width: 1280
    height: 720

    View3D {
        id: v3d
        anchors.fill: parent

        environment: ExtendedSceneEnvironment {
            backgroundMode: SceneEnvironment.SkyBox
            lightProbe: Texture { source: "00455_OpenfootageNET_field_low.hdr" }

            glowEnabled: true
            glowStrength: 1.25
            glowBloom: 0.25
            glowBlendMode: ExtendedSceneEnvironment.GlowBlendMode.Additive
        }

        DirectionalLight {
        }

        Suzanne {
            scale: Qt.vector3d(50, 50, 50)
            z: -500
        }

        PerspectiveCamera {
            id: camera
        }

        WasdController {
            controlledObject: camera
        }
    }
}

Die Verwendung von bildbasierter Beleuchtung zusätzlich zum „ DirectionalLight “ sowie die Nutzung der Light-Probe-Textur als Skybox führt zu folgendem Ergebnis:

3D-Objekt mit Umgebungshintergrund

Was passiert, wenn keine Lichtprobe vorhanden ist?

backgroundMode: SceneEnvironment.Transparent

Hier wird der Hintergrund nicht von „ View3D “, sondern von „ QQuickWindow “ oder „ QQuickView “ bereitgestellt, die die 2D- und 3D-Szene hosten. Die Beleuchtung basiert ausschließlich auf „ DirectionalLight “.

3D-Objekt mit transparentem Hintergrund

Verwendung einer festen, transparenten Farbe:

backgroundMode: SceneEnvironment.Color
clearColor: "green"

3D-Objekt mit grünem Hintergrund

Siehe auch lightProbe, QQuickWindow::setColor(), Window::color und View3D.

clearColor : color

Diese Eigenschaft legt fest, welche Farbe zum Löschen des Ansichtsbereichs verwendet wird, wenn für die Eigenschaft „ backgroundMode “ die Option „ SceneEnvironment.Color “ verwendet wird.

Der Standardwert lautet Qt::black

Siehe auch „ backgroundMode “.

debugSettings : QtQuick3D::DebugSettings [since 6.5]

Diese Eigenschaft gibt ein ` DebugSettings `-Objekt an, das zur Konfiguration der Debugging-Tools des Renderers verwendet wird. Beim Erstellen erstellt das ` SceneEnvironment ` automatisch ein mit sich selbst verknüpftes ` DebugSettings `-Objekt, weshalb die Angabe eines benutzerdefinierten ` DebugSettings ` in der Regel nicht erforderlich ist.

Ein Beispiel für die Darstellung der Szene im Drahtgittermodus:

Sponza-Szene im Drahtgitter-Modus

Visualisierung der Normalenvektoren der Meshes:

Sponza-Szene, die Oberflächennormalen zeigt

Visualisierung des Beitrags der Spiegelbeleuchtung:

Sponza-Szene mit spiegelnden Glanzlichtern

Diese Eigenschaft wurde in Qt 6.5 eingeführt.

Siehe auch DebugSettings.

depthPrePassEnabled : bool

Wenn diese Option aktiviert ist, führt der Renderer einen Z-Prepass für undurchsichtige Objekte durch, d. h., er rendert sie mit einem einfachen Shader und deaktiviertem Farbschreiben, um den Tiefenpuffer vorab zu füllen, bevor Draw-Calls für die Haupt-Rendering-Durchgänge ausgegeben werden.

Je nach Inhalt der Szene kann dies die Leistung verbessern. In der Regel profitieren davon Szenen mit vielen sich überlappenden Objekten und rechenintensivem Fragment-Shading. Gleichzeitig ist zu beachten, dass der Renderer für opake Objekte eine Sortierung von vorne nach hinten durchführt, was an sich bereits dazu beiträgt, unnötiges Fragment-Shading zu reduzieren; daher bringt der Z-Prepass nicht immer signifikante Verbesserungen.

Auf GPUs, die eine gekachelte Rendering-Architektur verwenden – was bei mobilen und eingebetteten Systemen üblich ist –, wird empfohlen, diesen Wert auf „ false “ zu setzen.

Der Standardwert ist „ false “.

Hinweis: Diese Eigenschaft hat keine Auswirkung, wenn die Tiefenprüfung deaktiviert ist.

depthTestEnabled : bool

Der Standardwert lautet „ true “. Standardmäßig klassifiziert der Renderer die Objekte in der Szene entweder als „ opaque “ oder als „ semi-transparent “. Die Objekte (Sub-Meshes mit dem zugehörigen Material) in der Liste „ opaque “ werden zuerst gerendert, wobei Tiefenprüfung und Tiefenschreiben aktiviert sind, was ein optimales Z-Culling für typische 3D-Objekte ohne halbtransparente Bereiche gewährleistet. Die Objekte in der Liste „ semi-transparent “ werden mit deaktiviertem Depth-Write gerendert, wobei der Depth-Test jedoch weiterhin aktiviert ist (um sie gegen die undurchsichtigen Objekte zu prüfen), und zwar in der Reihenfolge von hinten nach vorne (sortiert nach dem Abstand ihres Mittelpunkts zur Kamera). Dies ermöglicht eine korrekte Überblendung („Durchsicht“) bei 3D-Objekten, deren Oberfläche halbtransparente Bereiche aufweist – sei es aufgrund der „ node opacity “ oder aufgrund einer Farb- oder Texturkarte im Material.

Wenn diese Eigenschaft auf „ false “ gesetzt ist, wird der Z-Puffer weder beschrieben noch geprüft, der Tiefenabgleich wird übersprungen, und alle Objekte, einschließlich vollständig undurchsichtiger, werden in einem Durchgang gerendert, sortiert von hinten nach vorne.

Die Einstellung dieser Eigenschaft auf „ false “ sollte nur selten erforderlich sein. Sie kann in Szenen nützlich sein, in denen bekannt ist, dass der zweistufige Ansatz kaum Vorteile bietet, da entweder nur sehr wenige undurchsichtige Objekte vorhanden sind oder diese so transformiert wurden, dass ein einzelner, von hinten nach vorne sortierter Durchlauf eine bessere Leistung erbringt.

Hinweis: Die Einstellung dieser Eigenschaft auf „ false “ kann in bestimmten Szenen zu Renderfehlern führen. Darüber hinaus verhalten sich einige Funktionen, wie Schatten, Ambient Occlusion, „ SCREEN_TEXTURE “ und „ DEPTH_TEXTURE “ in benutzerdefinierten Materialien und Effekten, nicht korrekt, wenn die Verwendung des Tiefenpuffers nicht aktiviert ist.

Hinweis: Dieses Flag hat keinen Einfluss auf das Vorhandensein eines Tiefen- oder Tiefen-Stencil-Puffers. Solche Puffer können auch dann noch zugewiesen werden, wenn diese Option auf „ false “ gesetzt ist.

effects : List<QtQuick3D::Effect>

Diese Eigenschaft enthält eine Liste von Nachbearbeitungseffekten, die auf den gesamten Ansichtsbereich angewendet werden. Das Ergebnis jedes Effekts wird an den nächsten weitergeleitet, daher ist die Reihenfolge von Bedeutung.

Hinweis: Aus technischen Gründen wird das mehrmalige Hinzufügen desselben „ Effect “-Knotens zur Liste nicht unterstützt und führt zu unerwarteten Ergebnissen.

fog : QtQuick3D::Fog [since 6.5]

Wenn diese Eigenschaft auf ein gültiges „ Fog “-Objekt gesetzt wird, wird sie zur Konfiguration der integrierten Nebelunterstützung des Renderers verwendet.

Der Standardwert ist `null`, was bedeutet, dass kein Nebel angezeigt wird. Dies entspricht der Einstellung eines `Fog`-Objekts, bei dem ` enabled ` auf `false` gesetzt ist.

Szene mit Nebeleffekt

Diese Eigenschaft wurde in Qt 6.5 eingeführt.

Siehe auch ` Fog`.

lightProbe : QtQuick3D::Texture

Diese Eigenschaft definiert ein Bild, das zur Beleuchtung der Szene verwendet wird, entweder anstelle von oder zusätzlich zu Standardlichtquellen.

Das Bild sollte vorzugsweise ein High-Dynamic-Range-Bild (HDR) oder eine vorab generierte Cubemap sein. Das Pre-Baking sorgt für erhebliche Leistungssteigerungen zur Laufzeit, da keine Zeit für Filterung und die Erstellung von Mipmaps aufgewendet wird. Wenn es sich bei der Quelle um eine .hdr-Datei oder ein anderes Bild handelt, erfolgt die GPU-basierte Vorverarbeitung zur Laufzeit nach dem Laden der Bilddatei, was insbesondere auf eingebetteter und mobiler Hardware potenziell zeitaufwendig sein kann. Daher wird dringend empfohlen, .hdr-Bilder spätestens zur Erstellungszeit vorzuverarbeiten, wie hier beschrieben.

Hinweis: Die Verwendung einer Textur mit „ sourceItem “ wird in Kombination mit dieser Eigenschaft nicht unterstützt. Das Vorfiltern aller Mip-Stufen für dynamische „ Qt Quick “-Inhalte ist in der Praxis aufgrund der Auswirkungen auf die Leistung in der Regel nicht sinnvoll.

Weitere Informationen zur bildbasierten Beleuchtung finden Sie unter „Verwendung der bildbasierten Beleuchtung“.

Hinweis: Wenn die Eigenschaft auf eine gültige Textur gesetzt ist, wirddie Light-Probe-Textur unabhängig von „ backgroundMode “ für die Beleuchtung verwendet. Ist „ backgroundMode “ jedoch auf „ SceneEnvironment.SkyBox “ gesetzt, wird die Textur auch zum Rendern des Szenenhintergrunds als Skybox verwendet.

Die folgenden Beispiele wurden durch Variieren der „ backgroundMode “ in der Umgebung der folgenden Szene erzeugt. Die Szene enthält kein „DirectionLight“, kein „ PointLight “ und kein „ SpotLight “. Die gesamte Beleuchtung basiert auf dem panoramischen HDRI-Bild.

import QtQuick
import QtQuick3D
import QtQuick3D.Helpers

Item {
    width: 1280
    height: 720

    View3D {
        id: v3d
        anchors.fill: parent

        environment: ExtendedSceneEnvironment {
            backgroundMode: SceneEnvironment.SkyBox
            lightProbe: Texture { source: "00455_OpenfootageNET_field_low.hdr" }

            tonemapMode: SceneEnvironment.TonemapModeFilmic
            sharpnessAmount: 0.4

            glowEnabled: true
            glowStrength: 1.25
            glowBloom: 0.25
            glowBlendMode: ExtendedSceneEnvironment.GlowBlendMode.Additive
        }

        Node {
            scale: Qt.vector3d(100, 100, 100)

            Sponza {
            }

            Suzanne {
                y: 1
                scale: Qt.vector3d(0.5, 0.5, 0.5)
                eulerRotation.y: -90
            }
        }

        PerspectiveCamera {
            id: camera
            y: 100
        }

        WasdController {
            controlledObject: camera
        }
    }
}

Ergebnisse mit der oben genannten Umgebung:

Szene mit Lichtsonde

Szene mit Lichtsonde aus einer anderen Perspektive

Wenn man die „ backgroundMode “ auf „ SceneEnvironment.Transparent “ umstellt, erhält man folgendes Ergebnis:

Szene mit der Einstellung „backgroundMode“ auf „transparent“

Szene mit auf „transparent“ gesetztem backgroundMode aus einer anderen Perspektive

Hier entspricht die Beleuchtung der 3D-Szene der vorherigen, d. h., die Materialien verwenden die Lichtprobe bei den Beleuchtungsberechnungen wie zuvor, es wird jedoch keine Skybox gerendert. Der Hintergrund ist weiß, da dies die standardmäßige „Clear“-Farbe des „ QQuickWindow “ ist, der die 2D- und 3D-Szene enthält.

Es ist zulässig, den Wert der Eigenschaft „lightProbe“ wieder auf den Standardwert „null“ zurückzusetzen. Dadurch wird die zuvor zugeordnete Textur aufgehoben. Verwenden wir beispielsweise die Löschtaste, um dynamisch zwischen bildbasierter Beleuchtung mit einer Skybox und keiner bildbasierten Beleuchtung mit einer festen Hintergrundfarbe zu wechseln:

environment: ExtendedSceneEnvironment {
    id: env

    backgroundMode: SceneEnvironment.SkyBox
    lightProbe: iblTex

    tonemapMode: SceneEnvironment.TonemapModeFilmic
    sharpnessAmount: 0.4

    glowEnabled: true
    glowStrength: 1.25
    glowBloom: 0.25
    glowBlendMode: ExtendedSceneEnvironment.GlowBlendMode.Additive
}

Texture {
    id: iblTex
    source: "00455_OpenfootageNET_field_low.hdr"
}

focus: true
Keys.onDeletePressed: {
    if (env.backgroundMode == SceneEnvironment.SkyBox) {
        env.backgroundMode = SceneEnvironment.Color;
        env.clearColor = "green";
        env.lightProbe = null;
    } else {
        env.backgroundMode = SceneEnvironment.SkyBox;
        env.lightProbe = iblTex;
    }
}

Das Drücken der Entf-Taste führt zu folgendem Ergebnis. Beachten Sie, dass die hier verwendete Szene keine Lichtquellen enthält, sodass alle 3D-Modelle vollständig schwarz erscheinen.

3D-Objekte ohne Lichtsonde auf grünem Hintergrund

Grundplatte ohne Lichtsonde auf grünem Hintergrund

Während „lightProbe“ üblicherweise in Kombination mit Textur-Instanzen verwendet wird, deren Daten aus einer Bilddatei stammen (typischerweise .hdr oder .ktx), kann es auch sinnvoll sein, sie mit einer Textur zu verknüpfen, die speicherinterne, „ procedurally generated image data “ verwendet. Ein Paradebeispiel hierfür ist eine Textur, bei der die Bilddaten von „ ProceduralSkyTextureData “ aus dem Modul „ QtQuick3D.Helpers“ generiert werden:

backgroundMode: SceneEnvironment.SkyBox
lightProbe: Texture {
    textureData: ProceduralSkyTextureData {
    }
}

Dadurch erhalten wir eine prozedural generierte HDR-Skybox-Textur, die nun sowohl als Skybox als auch für die bildbasierte Beleuchtung verwendet wird:

Im Hintergrund ist eine Architekturansicht zu sehen, die von einem prozedural generierten Himmel beleuchtet wird

Siehe auch backgroundMode, „Using Image-Based Lighting“, „Pre-generating IBL cubemap“, probeExposure, probeHorizon, probeOrientation und ProceduralSkyTextureData.

lightmapper : Lightmapper

Wenn diese Eigenschaft auf ein gültiges Lightmapper-Objekt gesetzt ist, werden die von diesem Objekt festgelegten Einstellungen beim Baken von Lightmaps berücksichtigt.

Der Standardwert ist „null“, was bedeutet, dass für alle Einstellungen im Zusammenhang mit dem Baking die Standardwerte verwendet werden.

Weitere Informationen zum Erstellen von Lightmaps finden Sie in der Dokumentation unter „ Lightmapper “.

Wenn Lightmaps für eine Anwendung nicht relevant sind und gebackene Beleuchtung nie erzeugt wird, haben die Eigenschaft und das zugehörige Objekt in der Praxis keinen Zweck.

Siehe auch Model::usedInBakedLighting, Model::bakedLightmap, Light::bakeMode und Lightmapper.

oitMethod : enumeration [since 6.11]

Diese Eigenschaft enthält die Methode „Order Independent Transparency“ (OIT). Wird diese Eigenschaft auf eine gültige OIT-Methode gesetzt, rendert der Renderer transparente Pixel in der korrekten Tiefenreihenfolge.

Mögliche Werte sind:

KonstanteBeschreibung
SceneEnvironment.OITNoneOIT ist deaktiviert.
SceneEnvironment.OITWeightedBlendedAnnäherung an die reihenfolgeunabhängige Transparenz.
SceneEnvironment.OITLinkedListGenaue reihenunabhängige Transparenz.

Die Standardeinstellung ist „ None “ und die reihenunabhängige Transparenz ist deaktiviert.

Gewichtete Überblendung

Dies ist eine Annäherung an die reihenunabhängige Transparenz. Die transparenten Fragmente werden in einen Offscreen-Puffer gerendert, während jedes Fragment entsprechend seiner Entfernung zur Kamera gewichtet wird. Dieser Puffer wird dann nach dem Aufheben der Gewichtung jedes Pixels mit dem Backbuffer gemischt. Diese Methode befolgt nicht bei allen Fragmenten die Kompositionsregel „Source-over“, und das Ergebnis weicht vom korrekten Ergebnis ab; allerdings funktioniert diese Methode auch auf älterer Hardware und ist schneller als die anderen, strengeren Methoden.

Verknüpfte Liste

Dies ist eine exakte, reihenfolgeunabhängige Transparenz. Die transparenten Fragmente werden im Render-Durchgang in eine verkettete Liste gerendert, nach ihrer Tiefe sortiert und im Kompositionsdurchgang überblendet.

Hinweis: OIT funktioniert möglicherweise nicht mit MSAA auf Geräten mit GLES 3.1 oder niedriger. Es wird empfohlen, MSAA nicht zu verwenden, wenn OIT auf solchen Geräten gewünscht ist.

Hinweis: Diereihenfolgeunabhängige Transparenz gilt nur für den Blend-Modus „Source-Over“. Wenn die Szene Objekte mit anderen Blend-Modi enthält, ist OIT deaktiviert.

Diese Eigenschaft wurde in Qt 6.11 eingeführt.

probeExposure : real

Diese Eigenschaft beeinflusst die Lichtmenge, die von der Lichtsonde ausgestrahlt wird. Ein Teil des Tonemappings ist das Belichtungsmapping, und diese Eigenschaft legt fest, wie die Lichtwerte in den Lichtsonden beim Tonemapping behandelt werden.

Standardmäßig ist die Belichtung auf 1,0 eingestellt.

Hinweis: Diese Eigenschaft hat keine Auswirkung, wenn „ tonemapMode “ auf „ SceneEnvironment.TonemapModeNone “ gesetzt ist.

Siehe auch „ lightProbe “, „ probeHorizon “ und „ probeOrientation “.

probeHorizon : real

Wird diese Eigenschaft mit steigenden Werten definiert, wird die untere Hälfte der Umgebung dunkler (schwarz), wodurch die Beleuchtung überwiegend aus dem oberen Bildbereich kommt (und bestimmte Reflexionen aus der unteren Hälfte entfernt werden). Diese Eigenschaft ist nützlich, um eine Bodenebene zu berücksichtigen, die die Reflexion der Lichtsonde vom Boden verdecken würde. Dies ist notwendig, da die Beiträge der Lichtsonden direkt aus dem Bild stammen, ohne den Inhalt der Szene zu berücksichtigen.

Der erwartete Wertebereich für die Eigenschaft „probeHorizon“ liegt zwischen 0,0 und 1,0. Jeder Wert außerhalb dieses Bereichs wird auf den erwarteten Bereich begrenzt.

Standardmäßig ist `probeHorizon` auf 0,0 gesetzt, was bedeutet, dass die gesamte Lichtprobe ohne Anpassung verwendet wird.

Hinweis: Die Eigenschaft „probeHorizon“ wirkt sich nur auf die Materialbeleuchtung aus und hat keinen Einfluss auf die Darstellung der Skybox.

Siehe auch lightProbe, probeExposure und probeOrientation.

probeOrientation : vector3d

Diese Eigenschaft legt die Ausrichtung der Lichtsonde fest. Die Ausrichtung wird anhand der Eulerwinkel in Grad um die x-, y- und z-Achse definiert.

Hinweis: Dieser Wert beeinflusst zusätzlich die Art und Weise, wie die Textur „ lightProbe “ in Kombination mit etwaigen Texturdrehungen und -versätzen, die für die Textur „ lightProbe “ festgelegt wurden, abgetastet wird.

Siehe auch „ lightProbe “, „ probeHorizon “ und „ probeExposure “.

scissorRect : rect [since 6.5]

Diese Eigenschaft definiert ein Scher-Rechteck in Ansichtskoordinaten, dessen linke obere Ecke bei [0, 0] liegt

Diese Eigenschaft wurde in Qt 6.5 eingeführt.

skyBoxCubeMap : QtQuick3D::CubeMapTexture [since 6.4]

Diese Eigenschaft definiert eine Cubemap, die als Skybox verwendet wird, wenn der Hintergrundmodus auf „ SkyBoxCubeMap “ gesetzt ist.

Diese Eigenschaft wurde in Qt 6.4 eingeführt.

skyMaterial : QtQuick3D::SkyMaterial [since 6.12]

Diese Eigenschaft definiert ein prozedurales, GPU-gesteuertes Himmelsmodell, das für IBL und als Hintergrund der Szene verwendet wird.

Diese Eigenschaft wurde in Qt 6.12 eingeführt.

Siehe auch backgroundMode und lightProbe.

skyboxBlurAmount : real [since 6.4]

Diese Eigenschaft legt fest, wie stark die Skybox unscharf dargestellt werden soll, wenn für die Eigenschaft „ backgroundMode “ die Option „ SceneEnvironment.SkyBox “ verwendet wird. Der Standardwert ist „ 0.0 “, was bedeutet, dass keine Unschärfe angewendet wird.

Zulässige Werte liegen zwischen 0,0 und 1,0; alle anderen Werte werden auf diesen Bereich begrenzt.

Diese Eigenschaft wurde in Qt 6.4 eingeführt.

specularAAEnabled : bool [since 6.4]

Wenn diese Option aktiviert ist, wird das „Specular Aliasing“ gemildert. „Specular Aliasing“ zeigt sich häufig in Form von hellen Punkten, die möglicherweise flackern, wenn die Kamera bewegt wird.

Der Standardwert ist „false“.

Spiegelungs-AA deaktiviertSpiegelungs-AA aktiviert

Architekturaufnahme mit spiegelnden Glanzlichtern ohne Kantenglättung

Architekturaufnahme mit geglätteten Spiegelungen und Anti-Aliasing

Diese Eigenschaft wurde in Qt 6.4 eingeführt.

temporalAAEnabled : bool [default: false]

Wenn diese Eigenschaft aktiviert ist, wird zeitliches Antialiasing verwendet.

Die Kamera wird zwischen den Einzelbildern ganz leicht verschoben, und das Ergebnis jedes neuen Einzelbilds wird mit dem vorherigen Einzelbild überblendet.

Hinweis: Temporales Antialiasing hat keine Auswirkung, wenn „ antialiasingMode “ auf MSAA eingestellt ist.

Hinweis: Bei Verwendung von „ProgressiveAA“ wird zeitliches AA während der Szenenanimation angewendet. Sobald die Szene statisch wird, übernimmt „ProgressiveAA“ – jedoch nur, wenn „ temporalAAMode “ auf „ SceneEnvironment.TAADefault“ gesetzt ist. Mit anderen Worten: „ProgressiveAA“ hat keine Auswirkung, wenn „ temporalAAMode “ auf „ SceneEnvironment.TAAMotionVector“ gesetzt ist.

Vorteile: Durch die wackelnde Kamera werden echte Details erkannt, die sonst verloren gegangen wären; geringe Auswirkungen auf die Leistung.

Nachteile: Schnell bewegte Objekte verursachen Geisterbilder in einem Einzelbild.

Hinweis: Temporales Antialiasing wird derzeit beim Multiview-Rendering nicht unterstützt und sollte in VR-/AR-Anwendungen nicht verwendet werden.

temporalAAMode : enumeration [since 6.11]

Steuert den Modus für zeitliches Anti-Aliasing. Zeitliches Anti-Aliasing reduziert Flimmern und Aliasing, indem Informationen über mehrere Bilder hinweg gemischt werden.

KonstantBeschreibung
SceneEnvironment.TAADefaultKombiniert aktuelle und vorherige Bilder für eine grundlegende zeitliche Filterung.
SceneEnvironment.TAAMotionVectorVerwendet Bewegungsvektoren, um Pixelbewegungen zwischen den Einzelbildern zu verfolgen, und bietet so eine hervorragende Qualität für animierte Szenen.

Die Standardeinstellung ist „ SceneEnvironment.TAADefault “.

Hinweis: Zeitliche Anti-Aliasing-Verarbeitung kann bei sich schnell bewegenden Objekten oder raschen Kamerabewegungen Geisterbilder verursachen.

Hinweis: Funktioniert am besten bei konstanter Bildrate. Schwankungen der Bildrate verringern die Wirksamkeit.

Diese Eigenschaft wurde in Qt 6.11 eingeführt.

temporalAAStrength : real [default: 0.3]

Diese Eigenschaft beeinflusst den Grad der zeitlichen Bewegung (Antialiasing). Dies wirkt sich nur aus, wenn die Eigenschaft „ temporalAAEnabled “ auf „true“ gesetzt ist.

Siehe auch „ temporalAAEnabled “.

tonemapMode : enumeration [since 6.0]

Diese Eigenschaft legt fest, wie Farben vor dem Rendern tonemapped werden. Das gesamte Rendering in „ Qt Quick 3D “ erfolgt im linearen Farbraum, was in vielen Fällen dazu führen kann, dass Farbwerte erzeugt werden, die nicht darstellbar sind. Der „tonemapMode“ bestimmt die Technik, mit der Farben in einen darstellbaren Bereich umgewandelt werden.

Der Standardwert ist SceneEnvironment.TonemapModeLinear

„Constant“Beschreibung
SceneEnvironment.TonemapModeNone„All“ Das Tonemapping wird umgangen. Dieser Modus ist nützlich, wenn Nachbearbeitungseffekte angewendet werden.
SceneEnvironment.TonemapModeLinearEs wird lineares Tonemapping angewendet. Farben werden gammakorrigiert und im sRGB-Farbraum zurückgegeben.
SceneEnvironment.TonemapModeAcesEs wird Tonemapping nach dem „Academy Color Encoding System“ angewendet.
SceneEnvironment.TonemapModeHejlDawsonEs wird Hejl-Dawson-Tonemapping angewendet.
SceneEnvironment.TonemapModeFilmicEs wird „Filmic“-Tonemapping angewendet.

Ein Beispiel für diese verschiedenen Modi finden Sie unter ExtendedSceneEnvironment.

Hinweis: Bei der Verwendung von Nachbearbeitungseffekten erwarten die meisten Effekte lineare Farbdaten ohne Tonemapping. Bei anwendungsspezifischen, benutzerdefinierten Effekten, die über den Typ „ Effect “ implementiert sind, ist es wichtig zu wissen, dass Effekte ab Qt 6.5 davon ausgehen können, dass sie mit linearen Farbdaten arbeiten, und dass das Tonemapping automatisch auf die Ausgabe des letzten Effekts in der Kette angewendet wird. Wenn eine vollständige Anpassung des Tonemappings erforderlich ist, sollten Sie in Erwägung ziehen, den Wert „ SceneEnvironment.TonemapModeNone “ zu setzen, um den integrierten Tonemapper zu deaktivieren, und stattdessen die entsprechenden Anpassungen am Farbwert im letzten Effekt der Kette vorzunehmen. Dies gilt nicht für die integrierten Effekte von „ ExtendedSceneEnvironment “, da diese automatisch für ein korrektes Tonemapping sorgen, unabhängig davon, welche Kombination integrierter Effekte in der Umgebung aktiviert ist.

Diese Eigenschaft wurde in Qt 6.0 eingeführt.

© 2026 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.