Sur cette page

Scene3D QML Type

Le type Scene3D est utilisé pour intégrer une scène Qt3D dans une scène QtQuick 2. Plus d'informations...

Import Statement: import QtQuick.Scene3D 2.11
Inherits:

Item

Status: Preliminary

Ce type est en cours de développement et peut être modifié.

Propriétés

Méthodes

Description détaillée

Le type Scene3D rend une scène Qt3D, fournie par Entity, dans un objet Framebuffer multi-échantillonné. Cet objet est ensuite blitté dans un objet Framebuffer non multi-échantillonné, qui est alors rendu avec un alpha prémultiplié. Si le multi-échantillonnage n'est pas nécessaire, il peut être évité en réglant la propriété multisample sur false. Dans ce cas, Scene3D effectue le rendu directement dans l'objet Framebuffer non multi-échantillonné.

Si la scène à rendre comprend des matériaux non opaques, il se peut que vous deviez modifier ces matériaux avec des arguments de fusion personnalisés pour qu'ils soient rendus correctement. Par exemple, si vous travaillez avec un PhongAlphaMaterial et une scène avec une couleur claire opaque, vous voudrez probablement ajouter :

sourceAlphaArg: BlendEquationArguments.Zero
destinationAlphaArg: BlendEquationArguments.One

à ce matériau.

Il n'est pas recommandé d'instancier plus d'une instance de Scene3D par application. En effet, une instance Scene3D instancie l'ensemble du moteur Qt 3D (par exemple, les gestionnaires de mémoire, le pool de threads, le rendu) sous la scène.

Remarque : le fait de définir la visibilité de l'élément Scene3D sur false interrompt la boucle de simulation Qt 3D. Cela signifie que le fait de lier la propriété visible à une expression qui dépend des mises à jour de propriétés effectuées par la boucle de simulation Qt 3D (FrameAction) ne sera jamais réévalué.

Documentation sur les propriétés

aspects : list<string>

La liste des aspects qui doivent être enregistrés pour la scène 3D.

Par exemple, si la scène utilise FrameAction, l'aspect "logic" doit être inclus dans la liste.

L'aspect "render" est câblé et n'a pas besoin d'être explicitement listé.

cameraAspectRatioMode : enumeration

Définit le mode de calcul du rapport hauteur/largeur d'une caméra trouvée dans la scène.

ConstanteDescription
Scene3D.AutomaticAspectRatioRapport d'aspect automatique.
Scene3D.UserAspectRatioRapport d'aspect défini par l'utilisateur.

compositingMode : enumeration

ConstantDescription
FBOLa scène est rendue dans un objet Frame Buffer, ce qui peut être coûteux sur certaines plates-formes et certains matériels, mais permet une plus grande flexibilité. Rapport d'aspect automatique. C'est le mode de composition à choisir si votre élément Scene3D ne doit pas occuper tout l'écran et si vous envisagez de le redimensionner ou de l'animer. Dans ce mode, la position de l'élément Scene3D dans le fichier QML détermine son ordre d'empilement par rapport aux autres éléments Qt Quick.
UnderlayConvient aux scènes 3D en plein écran pour lesquelles l'utilisation d'un FBO pourrait être trop gourmande en ressources. Scene3D se comporte comme une sous-couche QtQuick. Veuillez noter que dans ce mode, la taille de Scene3D et ses transformations sont ignorées et le rendu occupera tout l'écran. La position de Scene3D dans le fichier QML n'aura aucun effet non plus. Le contenu de Qt 3D sera dessiné avant tout contenu de Qt Quick. Il faut veiller à ne pas surdessiner et masquer le contenu Qt 3D en superposant le contenu Qt Quick. En outre, lorsque ce mode est utilisé, la valeur de la fenêtre clearBeforeRendering est automatiquement fixée à false.

La valeur par défaut est FBO.

entity : Entity [default]

L'entité racine de la scène 3D à afficher.

hoverEnabled : bool

true si les événements de survol sont acceptés.

multisample : bool

true si un tampon de rendu multi-échantillon est demandé.

Par défaut, le multi-échantillonnage est activé. Si l'implémentation OpenGL n'a pas de support pour les tampons de rendu multi-échantillons ou les framebuffer blits, la demande d'utilisation du multi-échantillonnage est ignorée.

Note : Evitez de changer la valeur fréquemment car cela implique une initialisation coûteuse et potentiellement lente des framebuffers et autres ressources OpenGL.

Documentation de la méthode

void setItemAreaAndDevicePixelRatio(size area, real devicePixelRatio)

Définit la zone de l'élément sur area et le rapport de pixels sur devicePixelRatio.

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