Sur cette page

SceneEnvironment QML Type

Permet de configurer le rendu d'une scène. Plus d'informations...

Import Statement: import QtQuick3D
Inherits:

Object3D

Inherited By:

ExtendedSceneEnvironment

Propriétés

Description détaillée

SceneEnvironment définit un ensemble de propriétés globales pour le rendu d'une scène.

Remarque : le module QtQuick3D.Helpers propose un type ExtendedSceneEnvironment qui hérite de SceneEnvironment et ajoute un certain nombre d'effets intégrés.

Pour utiliser SceneEnvironment ou ExtendedSceneEnvironment, associez le environment property d'un View3D à une instance de ces types. L'objet peut être déclaré en ligne, par exemple comme ceci :

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

L'objet environnement peut également être défini séparément. Il peut ensuite être référencé par un ou plusieurs objets View3D. Un exemple d'extrait de code, utilisant cette fois ExtendedSceneEnvironment:

ExtendedSceneEnvironment {
    id: myEnv
    vignetteEnabled: true
}

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

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

Aperçu des fonctionnalités

Voir également ExtendedSceneEnvironment.

Documentation sur les propriétés

antialiasingMode : enumeration

Cette propriété contrôle le mode d'anticrénelage appliqué lors du rendu de la scène.

Les valeurs possibles sont les suivantes

ConstantDescription
SceneEnvironment.NoAAAucun anticrénelage n'est appliqué.
SceneEnvironment.SSAAUn anticrénelage par suréchantillonnage est appliqué.
SceneEnvironment.MSAAUn anticrénelage multi-échantillon est appliqué.
SceneEnvironment.ProgressiveAAUn anticrénelage progressif est appliqué.

La valeur par défaut est SceneEnvironment.NoAA.

Suréchantillonnage

La scène est rendue dans une résolution plus élevée, puis réduite à la résolution réelle.

Avantages: Haute qualité. Anticipe tout le contenu de la scène et pas seulement les silhouettes géométriques.

Inconvénients: généralement plus coûteux que le MSAA. Augmente l'utilisation de la mémoire vidéo. Pris en charge avec les éléments View3D avec tous les modes de rendu sauf Inline, mais comme la technique implique d'effectuer d'abord le rendu vers une texture, l'activation de SSAA avec un mode de rendu Underlay ou Overlay entraînera l'utilisation d'une texture intermédiaire et d'une passe de rendu qui ne serait normalement pas nécessaire, ce qui signifie que les coûts en termes de performances peuvent être plus perceptibles. Il est recommandé d'utiliser SSAA uniquement lorsque le mode de rendu est Offscreen par défaut.

Multi-échantillonnage

Les bords de la géométrie sont super-échantillonnés, ce qui permet d'obtenir des silhouettes plus lisses. Cette technique n'a cependant aucun effet sur les matériaux à l'intérieur de la géométrie.

Avantages: Fonctionne avec n'importe quel élément View3D, quel que soit le mode de rendu. Bons résultats sur les silhouettes géométriques, où l'aliasing est souvent le plus visible ; fonctionne sans problème avec les animations rapides. Les performances dépendent uniquement des capacités du système (GPU).

Inconvénients: n'aide pas à résoudre les problèmes de texture ou de réflexion. Augmente l'utilisation de la mémoire vidéo. Peut être coûteux à utiliser sur du matériel graphique moins puissant. Peut être contrôlé par fenêtre ou pour des éléments individuels sur View3D en fonction du renderMode. Lors de l'utilisation de l'option Underlay/Overlay avec un effet appliqué ou Offscreen, le MSAA peut être contrôlé pour chaque élément de View3D. En revanche, si l'on utilise le mode de rendu Underlay/Overlay sans effet ou Inline, le MSAA sera contrôlé par fenêtre.

Remarque : pour les éléments View3D ayant un renderMode autre que Sous-couche/Surimpression avec effets ou Hors écran, le multi-échantillonnage ne peut être activé que via le QSurfaceFormat du QQuickWindow ou QQuickView. Cela affectera alors tout le contenu, tant 2D que 3D, dans cette fenêtre.

Anti-crénelage progressif

Cette propriété permet d'activer et de définir le niveau d'anticrénelage progressif appliqué à la scène.

Lorsque tout le contenu de la scène a cessé de bouger, la caméra est légèrement secouée entre les images et le résultat de chaque nouvelle image est fusionné avec les images précédentes. Plus vous accumulez d'images, plus le résultat est beau.

Avantages: Donne d'excellents résultats lorsque tous les éléments de la scène sont immobiles.

Inconvénients: ne prend pas effet en cas de changement visuel. Coûteux en raison de la nécessité d'accumuler et de mélanger les images. Augmente l'utilisation de la mémoire vidéo.

Remarque : l'anticrénelage progressif n'est actuellement pas pris en charge par le rendu multivues et ne doit pas être utilisé dans les applications VR/AR.

Voir les meilleures pratiques en matière d' anticrénelage pour plus de détails sur les méthodes d'anticrénelage.

antialiasingQuality : enumeration

Cette propriété définit le niveau d'anticrénelage appliqué à la scène. Le comportement dépend de l'utilisation de antialiasingMode. Si la propriété antialiasingMode est définie sur NoAA, cette propriété n'a pas d'effet.

Les valeurs possibles sont les suivantes

ConstantDescription de la propriété
SceneEnvironment.MediumSSAA : L'anticrénelage utilise une résolution de suréchantillonnage de 1,2 fois.
MSAA : L'anticrénelage utilise 2 échantillons par pixel.
ProgressiveAA : L'anticrénelage utilise 2 images pour l'image finale.
SceneEnvironment.HighSSAA : L'anticrénelage utilise une résolution de suréchantillonnage de 1,5 fois.
MSAA : L'anticrénelage utilise 4 échantillons par pixel.
ProgressiveAA : L'anticrénelage utilise 4 images pour l'image finale.
SceneEnvironment.VeryHighSSAA : L'anticrénelage utilise une résolution de suréchantillonnage de 2,0x.
MSAA : L'anticrénelage utilise 8 échantillons par pixel.
ProgressiveAA : L'anticrénelage utilise 8 images pour l'image finale.

La valeur par défaut est SceneEnvironment.High

aoBias : real

Cette propriété définit une distance limite empêchant les objets de présenter une occlusion ambiante à des distances proches. Des valeurs plus élevées augmentent la distance requise entre les objets avant que l'occlusion ambiante ne soit observée.

Remarque : si vous voyez des ombres d'occlusion ambiante sur des objets qui ne devraient pas en avoir, augmentez légèrement la valeur afin d'éliminer les résultats proches.

La valeur par défaut est 0,0.

aoDistance : real

Cette propriété définit approximativement la distance à laquelle les ombres de l'occlusion ambiante s'éloignent des objets. Plus la distance est grande, plus l'impact sur les performances est important.

La valeur par défaut est 5.0.

Illustration ici avec la valeur par défaut aoSoftness et la valeur maximale aoStrength:

aoDistance de 5aoDistance de 1

Scène avec une distance d'occlusion ambiante de 5

Scène avec une distance d'occlusion ambiante de 1

Remarque : l'obtention d'une occlusion ambiante de l'espace écran visuellement satisfaisante dépend du réglage minutieux d'un certain nombre de paramètres connexes, tels que aoStrength, aoSoftness, aoDistance, aoDither, aoBias, et aoSampleRate.

Voir également aoStrength et aoSoftness.

aoDither : bool

Lorsque cette propriété est activée, elle disperse les bords des bandes d'ombre de l'occlusion ambiante afin d'améliorer la fluidité (au risque de produire parfois des artefacts de motifs évidents).

Remarque : de très grandes distances entre les plans d'écrêtage de votre caméra peuvent entraîner des problèmes d'occlusion ambiante. Si vous observez des bandes bizarres dans votre occlusion ambiante, essayez d'ajuster la propriété clipFar de votre caméra pour qu'elle soit plus proche de votre contenu.

La valeur par défaut est false.

Voir également PerspectiveCamera.clipFar et OrthographicCamera.clipFar.

aoEnabled : bool [since 6.5]

Active ou désactive l'occlusion ambiante.

La valeur par défaut est false, ce qui signifie que l'occlusion ambiante est désactivée.

Remarque : si aoStrength ou aoDistance est égal à 0, le fait de définir cette propriété sur true permettra également de définir ces valeurs de manière appropriée pour que l'occlusion ambiante soit efficace.

Remarque : l'obtention d'une occlusion ambiante de l'espace écran visuellement satisfaisante dépend de l'ajustement minutieux d'un certain nombre de paramètres connexes, tels que aoStrength, aoSoftness, aoDistance, aoDither, aoBias, et aoSampleRate.

Cette propriété a été introduite dans Qt 6.5.

Voir également aoStrength et aoDistance.

aoSampleRate : int

Cette propriété définit la qualité de l'occlusion ambiante (plus de nuances de gris) au détriment des performances.

La valeur doit être 2, 3 ou 4. La valeur par défaut est 2.

aoSoftness : real

Cette propriété définit à quel point les bords de l'ombrage de l'occlusion ambiante sont lisses.

La valeur doit être comprise entre 0,0 et 50,0. La valeur par défaut est 50.0.

Illustré ici avec la valeur par défaut aoDistance et la valeur maximale aoStrength:

aoSoftness de 50aoSoftness de 25

Scène avec occlusion ambiante d'une douceur de 50

Scène avec occlusion ambiante d'une douceur de 25

Remarque : l'obtention d'une occlusion ambiante de l'espace écran visuellement satisfaisante dépend du réglage minutieux d'un certain nombre de paramètres connexes, tels que aoStrength, aoSoftness, aoDistance, aoDither, aoBias, et aoSampleRate.

Voir également aoStrength et aoDistance.

aoStrength : real

Cette propriété définit la quantité d'occultation ambiante appliquée. L'occultation ambiante est une forme d'éclairage global approximatif qui provoque des ombres non directionnelles lorsque les objets sont proches les uns des autres. Une valeur de 100 entraîne une obscurité totale des ombres ; des valeurs inférieures font apparaître les ombres plus claires. Une valeur de 0 désactive entièrement l'occlusion ambiante, ce qui améliore les performances au détriment du réalisme visuel des objets 3D rendus dans la scène.

Toutes les valeurs autres que 0 ont le même impact sur les performances.

La valeur par défaut est 0,0. La valeur maximale est de 100,0.

Une valeur de 0 équivaut à définir aoEnabled sur false.

La photo montre les valeurs par défaut aoSoftness et aoDistance:

aoStrength de 0 (AO désactivé)aoStrength de 100aoStrength de 50

Scène avec une force d'occlusion ambiante de 0

Scène avec une force d'occlusion ambiante de 100

Scène avec une force d'occlusion ambiante de 50

Remarque : l'obtention d'une occlusion ambiante de l'espace écran visuellement satisfaisante dépend du réglage minutieux d'un certain nombre de paramètres connexes, tels que aoStrength, aoSoftness, aoDistance, aoDither, aoBias, et aoSampleRate.

Voir également aoEnabled, aoDistance, et aoSoftness.

backgroundMode : enumeration

Cette propriété détermine si et comment l'arrière-plan de la scène doit être effacé.

Remarque : l'effacement du tampon de couleurs qui soutient la vue 3D n'a pas toujours lieu : en fonction de la propriété renderMode, il se peut que View3D n'effectue aucun effacement de son propre chef, auquel cas SceneEnvironment.Transparent et SceneEnvironment.Color n'ont pas d'effet. Seul le mode par défaut Offscreen render mode (rendu dans une texture) prend en charge tous les modes d'effacement. Avec le mode Underlay, utilisez QQuickWindow::setColor() ou Window.color pour contrôler la couleur d'éclaircissement de la scène Qt Quick. SkyBox est traité différemment, car il implique le dessin d'une géométrie réelle, et fonctionne donc de manière identique dans tous les modes de rendu.

ConstanteDescription
SceneEnvironment.TransparentLa scène est rendue transparente. Ceci est utile pour rendre un contenu 3D au-dessus d'un autre élément. Ce mode n'a aucun effet lorsque View3D utilise un renderMode de Underlay ou Overlay sans aucun post-traitement activé.
SceneEnvironment.ColorLa scène est nettoyée avec la couleur spécifiée par la propriété clearColor. Ce mode n'a aucun effet lorsque View3D utilise un renderMode de Underlay ou Overlay sans qu'aucun post-traitement ne soit activé.
SceneEnvironment.SkyBoxLa scène ne sera pas effacée, mais une SkyBox ou un Skydome sera rendu. Le SkyBox est défini à l'aide de la carte HDRI définie dans la propriété lightProbe.
SceneEnvironment.SkyBoxCubeMapLa scène ne sera pas effacée, mais un SkyBox ou un Skydome sera rendu. La SkyBox est définie à l'aide de la cubemap définie dans la propriété skyBoxCubeMap.

La valeur par défaut est SceneEnvironment.Transparent

Prenons l'exemple suivant. Le modèle Suzanne est censé être prétraité avec l'outil balsam et provient du dépôt glTF Sample Models.

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
        }
    }
}

L'utilisation d'un éclairage basé sur l'image en plus de l'outil DirectionalLight et l'utilisation de la texture de la sonde lumineuse comme boîte à ciel donnent les résultats suivants :

Objet 3D sur fond d'environnement

Que se passe-t-il s'il n'y a pas de sonde lumineuse ?

backgroundMode: SceneEnvironment.Transparent

Ici, l'arrière-plan n'est pas fourni par le site View3D mais par le site QQuickWindow ou QQuickView qui héberge la scène 2D et 3D. L'éclairage est basé sur le site DirectionalLight uniquement.

Objet 3D sur fond transparent

Utilisation d'une couleur claire fixe :

backgroundMode: SceneEnvironment.Color
clearColor: "green"

Objet 3D sur fond vert

Voir également lightProbe, QQuickWindow::setColor(), Window::color, et View3D.

clearColor : color

Cette propriété définit la couleur qui sera utilisée pour effacer la fenêtre d'affichage lors de l'utilisation de SceneEnvironment.Color pour la propriété backgroundMode.

La valeur par défaut est Qt::black

Voir aussi backgroundMode.

debugSettings : QtQuick3D::DebugSettings [since 6.5]

Cette propriété spécifie un objet DebugSettings utilisé pour configurer les outils de débogage du moteur de rendu. Lors de la construction, SceneEnvironment crée automatiquement un objet DebugSettings qui lui est associé, et il n'est donc généralement pas nécessaire de définir un objet DebugSettings personnalisé.

Exemple de rendu de la scène avec le mode fil de fer activé :

Scène de Sponza en mode filaire

Visualisation des vecteurs normaux des mailles :

Scène de Sponza montrant les normales de surface

Visualisation de la contribution de l'éclairage spéculaire :

Scène de Sponza montrant des reflets spéculaires

Cette propriété a été introduite dans Qt 6.5.

Voir aussi DebugSettings.

depthPrePassEnabled : bool

Lorsque cette option est activée, le moteur de rendu effectue un Z-prepass pour les objets opaques, ce qui signifie qu'il effectue le rendu avec un shader simple et l'écriture des couleurs désactivée afin de pré-remplir le tampon de profondeur avant d'émettre des appels de dessin pour les passes de rendu principales.

Cela peut améliorer les performances en fonction du contenu de la scène. Ce sont typiquement les scènes avec beaucoup d'objets qui se chevauchent et un ombrage de fragments coûteux qui en bénéficient. Dans le même temps, il convient de noter que le moteur de rendu effectue un tri avant-arrière pour les objets opaques, ce qui permet de réduire l'ombrage des fragments inutiles.

Sur les GPU qui utilisent une architecture de rendu en mosaïque, ce qui est courant dans les systèmes mobiles et embarqués, il est recommandé de régler ce paramètre sur false.

La valeur par défaut est false.

Remarque : cette propriété n'a aucun effet lorsque le test de profondeur est désactivé.

depthTestEnabled : bool

La valeur par défaut est true. Par défaut, le moteur de rendu classe les objets de la scène soit comme opaque soit comme semi-transparent. Les objets (sous-mailles avec le matériau associé) de la liste opaque sont rendus en premier, avec le test de profondeur et l'écriture de profondeur activés, ce qui permet un Z-culling optimal pour les objets 3D typiques qui n'ont pas de régions semi-transparentes. Les objets de la liste semi-transparent sont rendus avec l'écriture de profondeur désactivée, bien que le test de profondeur soit toujours activé (pour tester les objets opaques), dans l'ordre inverse (triés en fonction de la distance de leur point central par rapport à la caméra). Cela permet un mélange correct ("voir à travers") pour les objets 3D qui comportent des régions semi-transparentes sur leur surface, soit en raison de node opacity, soit en raison d'une carte de couleur ou de texture dans le matériau.

Lorsque cette propriété vaut false, le tampon Z n'est pas écrit et testé, le test de profondeur est ignoré et tous les objets, y compris ceux qui sont totalement opaques, sont rendus en une seule fois, triés de l'arrière vers l'avant.

La définition de cette propriété à false devrait être rarement nécessaire. Elle peut être utile dans les scènes où l'on sait que l'approche à deux tours présente peu d'avantages, soit parce qu'il y a très peu d'objets opaques, soit parce qu'ils sont transformés d'une manière telle qu'une seule passe triée de l'arrière vers l'avant donne de meilleurs résultats.

Remarque : la définition de cette propriété à false peut entraîner des erreurs de rendu dans certaines scènes. En outre, certaines fonctionnalités, telles que les ombres, l'occlusion ambiante, SCREEN_TEXTURE et DEPTH_TEXTURE dans les matériaux et effets personnalisés, ne se comporteront pas correctement si l'utilisation du tampon de profondeur n'est pas activée.

Remarque : cet indicateur n'a aucun contrôle sur la présence d'un tampon de profondeur ou d'un tampon de profondeur-stencil. De tels tampons peuvent toujours être alloués même si cet indicateur est réglé sur false.

effects : List<QtQuick3D::Effect>

Cette propriété contient une liste d'effets de post-traitement qui seront appliqués à l'ensemble de la fenêtre. Le résultat de chaque effet est transmis au suivant, de sorte que l'ordre est important.

Remarque : pour des raisons techniques, il n'est pas possible d'ajouter plusieurs fois le même nœud Effect à la liste, ce qui donnerait des résultats inattendus.

fog : QtQuick3D::Fog [since 6.5]

Lorsque cette propriété est définie sur un objet Fog valide, elle est utilisée pour configurer la prise en charge du brouillard intégré au moteur de rendu.

La valeur par défaut est null, ce qui signifie qu'il n'y a pas de brouillard. Cela équivaut à définir un objet Fog avec enabled à false.

Scène avec effet de brouillard

Cette propriété a été introduite dans Qt 6.5.

Voir aussi Fog.

lightProbe : QtQuick3D::Texture

Cette propriété définit une image utilisée pour éclairer la scène, soit à la place, soit en plus des lumières standard.

L'image est de préférence une image à gamme dynamique élevée ou une cubemap pré-générée. La pré-génération permet d'améliorer considérablement les performances au moment de l'exécution, car aucun temps n'est consacré au filtrage et à la génération de mipmaps. Si la source est une image .hdr ou autre, le prétraitement basé sur le GPU s'effectue au moment de l'exécution après le chargement du fichier image, ce qui peut prendre beaucoup de temps, en particulier sur le matériel embarqué et mobile. Il est donc fortement recommandé aux applications de prétraiter les images .hdr au plus tard au moment de la compilation, comme décrit ici.

Remarque : l'utilisation d'une texture à l'adresse sourceItem n'est pas possible en combinaison avec cette propriété. Le pré-filtrage de tous les niveaux de mip pour le contenu dynamique de Qt Quick n'est généralement pas raisonnable dans la pratique en raison des implications en termes de performances.

Pour plus d'informations sur l'éclairage basé sur l'image, voir Utilisation de l'éclairage basé sur l'image.

Remarque : la texture de la sonde lumineuse, lorsque la propriété est définie sur une texture valide, est utilisée pour l'éclairage indépendamment de backgroundMode. Toutefois, lorsque backgroundMode est défini sur SceneEnvironment.SkyBox, la texture est également utilisée pour rendre l'arrière-plan de la scène sous la forme d'une boîte à ciel.

Les exemples ci-dessous ont été générés en faisant varier backgroundMode dans l'environnement de la scène suivante. La scène n'a pas de DirectionLight, PointLight ou SpotLight. Tout l'éclairage est basé sur l'image HDRI panoramique.

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
        }
    }
}

Résultats avec l'environnement ci-dessus :

Scène avec sonde lumineuse

Scène avec sonde lumineuse sous différentes perspectives

En remplaçant backgroundMode par SceneEnvironment.Transparent, on obtient :

Scène dont le mode d'arrière-plan est transparent

Scène dont le mode d'arrière-plan est transparent, vue d'un autre point de vue

Ici, l'éclairage de la scène 3D est le même que précédemment, ce qui signifie que les matériaux utilisent la sonde de lumière dans les calculs d'éclairage de la même manière que précédemment, mais il n'y a pas de boîte à ciel rendue. Le fond est blanc puisque c'est la couleur claire par défaut du site QQuickWindow qui héberge les scènes 2D et 3D.

Il est possible de remettre la valeur de la propriété lightProbe à la valeur par défaut null. Cela permet de désassigner la texture précédemment associée. Par exemple, utilisons la touche Suppr pour basculer dynamiquement entre un éclairage basé sur l'image avec une boîte à ciel et un éclairage non basé sur l'image avec une couleur claire fixe pour l'arrière-plan :

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;
    }
}

L'appui sur la touche Suppr donne le résultat suivant. Rappelez-vous que la scène utilisée ici n'a pas d'éclairage, de sorte que tous les modèles 3D apparaissent complètement noirs.

Objets 3D sans sonde lumineuse sur fond vert

Plan de masse sans sonde lumineuse sur fond vert

Bien que lightProbe soit généralement utilisé en combinaison avec des instances de textures dont les données proviennent d'un fichier image (typiquement .hdr ou .ktx), il peut également être judicieux de l'associer à une texture qui utilise des données en mémoire ( procedurally generated image data). Un exemple parfait est celui d'une texture dont les données d'image sont générées par ProceduralSkyTextureData à partir du module QtQuick3D.Helpers :

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

Cela nous donne une texture de boîte à ciel HDR générée de manière procédurale qui est maintenant utilisée à la fois comme boîte à ciel et pour l'éclairage basé sur l'image :

Scène architecturale éclairée par un ciel procédural visible en arrière-plan

Voir également backgroundMode, Using Image-Based Lighting, Pre-generating IBL cubemap, probeExposure, probeHorizon, probeOrientation, et ProceduralSkyTextureData.

lightmapper : Lightmapper

Lorsque cette propriété est associée à un objet Lightmapper valide, les paramètres spécifiés par l'objet sont pris en compte lors de la création de lightmaps.

La valeur par défaut est null, ce qui signifie que les valeurs par défaut sont utilisées pour tous les paramètres liés à la cuisson.

Pour plus d'informations sur la cuisson des lightmaps, voir la documentation Lightmapper.

Lorsque les lightmaps ne sont pas pertinentes pour une application et que l'éclairage cuit n'est jamais généré, la propriété et l'objet associé ne servent à rien dans la pratique.

Voir également Model::usedInBakedLighting, Model::bakedLightmap, Light::bakeMode, et Lightmapper.

oitMethod : enumeration [since 6.11]

Cette propriété contient la méthode de transparence indépendante de l'ordre. En définissant cette propriété sur une méthode OIT valide, le moteur de rendu rend les pixels transparents dans l'ordre de profondeur correct.

Les valeurs possibles sont les suivantes

ConstanteDescription
SceneEnvironment.OITNoneLa méthode OIT est désactivée.
SceneEnvironment.OITWeightedBlendedApproche de la transparence indépendante de l'ordre.
SceneEnvironment.OITLinkedListTransparence précise indépendante de l'ordre.

La valeur par défaut est None et la transparence indépendante de l'ordre est désactivée.

Pondéré Mélangé

Il s'agit d'une approximation de la transparence indépendante de l'ordre. Les fragments transparents sont rendus dans un tampon hors écran tandis qu'une pondération est appliquée à chaque fragment en fonction de sa distance par rapport à la caméra. Cette mémoire tampon est ensuite mélangée au tampon arrière après dépondération de chaque pixel. Cette méthode ne suit pas la règle de composition source-sur pour tous les fragments et le résultat est différent du résultat correct. Cependant, cette méthode fonctionne également sur du matériel plus ancien et est plus rapide que les autres méthodes plus rigoureuses.

Listechaînée

Il s'agit d'une transparence indépendante de l'ordre exact. Les fragments transparents sont rendus dans une liste chaînée lors de la passe de rendu, puis triés en fonction de leur profondeur et mélangés lors de la passe de composition.

Remarque : OIT peut ne pas fonctionner avec MSAA sur les appareils équipés de GLES 3.1 ou inférieurs. Il est recommandé de ne pas utiliser MSAA si l'on souhaite utiliser OIT sur ces appareils.

Remarque : la transparence indépendante de l'ordre ne s'applique qu'au mode de fusion source-over. Si la scène contient des objets avec d'autres modes de fusion, l'OIT est désactivé.

Cette propriété a été introduite dans Qt 6.11.

probeExposure : real

Cette propriété modifie la quantité de lumière émise par la sonde lumineuse. Une partie de la cartographie des tons est la cartographie de l'exposition, et cette propriété ajuste la façon dont les valeurs de lumière dans les sondes lumineuses sont cartographiées.

Par défaut, l'exposition est fixée à 1,0.

Remarque : cette propriété n'a pas d'effet lorsque tonemapMode est défini sur SceneEnvironment.TonemapModeNone.

Voir également lightProbe, probeHorizon, et probeOrientation.

probeHorizon : real

Cette propriété, lorsqu'elle est définie avec des valeurs croissantes, ajoute de l'obscurité (noir) à la moitié inférieure de l'environnement, forçant l'éclairage à provenir principalement du haut de l'image (et supprimant les réflexions spécifiques de la moitié inférieure). Cette propriété est utile pour tenir compte d'un plan de sol qui aurait pour effet d'obscurcir la réflexion de la sonde lumineuse sur le sol. Cette propriété est nécessaire car les contributions de la sonde lumineuse proviennent directement de l'image sans tenir compte du contenu de la scène.

La plage de valeurs attendues pour la propriété probeHorizon est comprise entre 0,0 et 1,0. Toute valeur en dehors de cette plage sera limitée à la plage attendue.

Par défaut, probeHorizon est fixé à 0,0, ce qui signifie que la totalité de la sonde lumineuse est utilisée sans ajustement.

Remarque : la propriété probeHorizon n'affecte que l'éclairage des matériaux et n'a aucun effet sur le rendu de la boîte à ciel.

Voir également lightProbe, probeExposure, et probeOrientation.

probeOrientation : vector3d

Cette propriété définit l'orientation de la sonde lumineuse. L'orientation est définie en termes d'angles d'Euler en degrés sur les axes x, y et z.

Remarque : cette valeur augmente la façon dont la texture lightProbe est échantillonnée en combinaison avec les rotations et les décalages de texture définis sur la texture lightProbe.

Voir également lightProbe, probeHorizon, et probeExposure.

scissorRect : rect [since 6.5]

Cette propriété définit un rectangle de ciseaux en coordonnées de vue, avec le coin supérieur gauche à [0, 0]

Cette propriété a été introduite dans Qt 6.5.

skyBoxCubeMap : QtQuick3D::CubeMapTexture [since 6.4]

Cette propriété définit un cubemap à utiliser comme skybox lorsque le mode d'arrière-plan est SkyBoxCubeMap.

Cette propriété a été introduite dans Qt 6.4.

skyboxBlurAmount : real [since 6.4]

Cette propriété détermine le degré de flou de la boîte à ciel lors de l'utilisation de SceneEnvironment.SkyBox pour la propriété backgroundMode. La valeur par défaut est 0.0, ce qui signifie qu'il n'y a pas de flou.

Les valeurs acceptables sont comprises entre 0.0 et 1.0, toutes les autres valeurs seront limitées à cette plage.

Cette propriété a été introduite dans Qt 6.4.

specularAAEnabled : bool [since 6.4]

Lorsque cette propriété est activée, le crénelage spéculaire est atténué. Le crénelage spéculaire est souvent visible sous la forme de points brillants, éventuellement vacillants lorsque l'on déplace la caméra.

La valeur par défaut est false.

AA spéculaire désactivéSpecular AA enabled (AA spéculaire activé)

Scène architecturale montrant des reflets spéculaires sans anticrénelage

Scène architecturale montrant des reflets spéculaires lissés avec anticrénelage

Cette propriété a été introduite dans Qt 6.4.

temporalAAEnabled : bool [default: false]

Lorsque cette propriété est activée, l'anticrénelage temporel est utilisé.

La caméra est légèrement secouée entre les images et le résultat de chaque nouvelle image est fusionné avec l'image précédente.

Remarque : l'anticrénelage temporel n'a pas d'effet lorsque antialiasingMode est MSAA.

Remarque : lors de l'utilisation de ProgressiveAA, l'anticrénelage temporel est appliqué pendant l'animation de la scène. Une fois que la scène devient statique, ProgressiveAA prend le relais - mais uniquement lorsque temporalAAMode est SceneEnvironment.TAADefault. En d'autres termes : ProgressiveAA n'a aucun effet lorsque temporalAAMode est réglé sur SceneEnvironment.TAAMotionVector.

Avantages: En raison du mouvement de la caméra, il est possible de trouver des détails réels qui auraient été perdus autrement ; l'impact sur les performances est faible.

Inconvénients: les objets se déplaçant rapidement provoquent des images fantômes.

Remarque : l'anticrénelage temporel n'est actuellement pas pris en charge avec le rendu multivues et ne doit pas être utilisé dans les applications VR/AR.

temporalAAMode : enumeration [since 6.11]

Contrôle le mode d'anticrénelage temporel. L'anticrénelage temporel réduit le scintillement et le crénelage en mélangeant les informations sur plusieurs images.

ConstanteDescription
SceneEnvironment.TAADefaultMélange les images actuelles et précédentes pour un filtrage temporel de base.
SceneEnvironment.TAAMotionVectorUtilise les vecteurs de mouvement pour suivre le mouvement des pixels entre les images, offrant ainsi une qualité supérieure pour les scènes animées.

La valeur par défaut est SceneEnvironment.TAADefault.

Remarque : le filtrage temporel peut provoquer des artefacts fantômes avec des objets se déplaçant rapidement ou des mouvements rapides de la caméra.

Remarque : cetteoption fonctionne mieux avec des fréquences d'images constantes. Les variations de la fréquence d'images réduisent l'efficacité.

Cette propriété a été introduite dans Qt 6.11.

temporalAAStrength : real [default: 0.3]

Cette propriété modifie l'importance du mouvement temporel (anticrénelage). Elle n'a d'effet que lorsque la propriété temporalAAEnabled est vraie et que la propriété temporalAAMode est SceneEnvironment.TAADefault.

Voir aussi temporalAAEnabled.

tonemapMode : enumeration [since 6.0]

Cette propriété définit la manière dont les couleurs sont mises en correspondance avant le rendu. Tous les rendus dans Qt Quick 3D sont effectués dans un espace colorimétrique linéaire et peuvent, dans de nombreux cas, générer des valeurs de couleur qui ne sont pas affichables. La propriété tonemapMode détermine la technique utilisée pour remapper les couleurs dans une plage affichable.

La valeur par défaut est SceneEnvironment.TonemapModeLinear

ConstanteDescription
SceneEnvironment.TonemapModeNoneToute la cartographie tonale est ignorée. Ce mode est utile lors de l'exécution d'effets de post-traitement.
SceneEnvironment.TonemapModeLinearLa cartographie tonale linéaire est appliquée. Les couleurs sont corrigées en fonction du gamma et renvoyées dans l'espace colorimétrique sRGB.
SceneEnvironment.TonemapModeAcesLa cartographie tonale de l'Academy Color Encoding System est appliquée.
SceneEnvironment.TonemapModeHejlDawsonLa cartographie tonale Hejl-Dawson est appliquée.
SceneEnvironment.TonemapModeFilmicLa cartographie tonale filmique est appliquée.

Voir ExtendedSceneEnvironment pour un exemple de ces différents modes.

Remarque : lors de l'utilisation d'effets de post-traitement, la plupart des effets s'attendent à des données de couleurs linéaires non cartographiées. Avec les effets personnalisés fournis par l'application et mis en œuvre via le type Effect, il est important de savoir qu'à partir de Qt 6.5, les effets peuvent supposer en toute sécurité qu'ils fonctionnent avec des données de couleur linéaires, et que la cartographie tonale est effectuée automatiquement sur la sortie du dernier effet de la chaîne. S'il est nécessaire de personnaliser complètement la cartographie des tons, envisagez de définir la valeur SceneEnvironment.TonemapModeNone pour désactiver la cartographie des tons intégrée et effectuer les ajustements appropriés sur la valeur de couleur dans le dernier effet de la chaîne à la place. Ceci ne s'applique pas aux effets intégrés de ExtendedSceneEnvironment, car ceux-ci prennent automatiquement en charge la cartographie des tons, quelle que soit la combinaison d'effets intégrés activée dans l'environnement.

Cette propriété a été introduite dans Qt 6.0.

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