Sur cette page

ModelParticle3D QML Type

Particule utilisant un modèle 3D « Qt Quick ». En savoir plus...

Import Statement: import QtQuick3D.Particles3D
Since: Qt 6.2
Inherits:

Particle3D

Propriétés

Description détaillée

ModelParticle3D est un élément de particule logique qui crée des particules à partir d'un composant Model 3D d'Qt Quick.

Documentation des propriétés

delegate : Component

Le délégué fournit un modèle définissant chaque objet instancié par la particule.

Par exemple, pour allouer 200 particules de cubes rouges :

Component {
    id: particleComponent
    Model {
        source: "#Cube"
        scale: Qt.vector3d(0.2, 0.2, 0.2)
        materials: DefaultMaterial { }
    }
}

ModelParticle3D {
    id: particleRed
    delegate: particleComponent
    maxAmount: 200
    color: "#ff0000"
}

Remarque : le contenu instancié à partir du délégué conserve sa propre affectation d'layers; la valeur « layers » de l'ParticleSystem3D ne lui est pas appliquée. Pour afficher les particules sur un calque de contenu spécifique, définissez la propriété « layers » sur les nœuds du délégué.

instanceTable : Instancing

La propriété `instanceTable` permet d'accéder à la table d'instances ( Instancing ) de la particule du modèle. ` ModelParticle3D ` utilise une table d'instances interne pour assurer un rendu efficace. Cette table peut être appliquée à la propriété ` instancing ` des modèles qui ne font pas partie du système de particules.

Il est également possible d’utiliser cette fonctionnalité pour fournir une table d’instanciation sans afficher aucune particule. Pour ce faire, il suffit d’omettre la propriété ` delegate `. Par exemple :

ParticleSystem3D {
    id: psystem
    ModelParticle3D {
        id: particleRed
        maxAmount: 200
        color: "#ff0000"
        colorVariation: Qt.vector4d(0.5,0.5,0.5,0.5)
    }

    ParticleEmitter3D {
        particle: particleRed
        velocity: VectorDirection3D {
            direction: Qt.vector3d(-20, 200, 0)
            directionVariation: Qt.vector3d(20, 20, 20)
        }
        particleScale: 0.2
        emitRate: 20
        lifeSpan: 2000
    }
}

Model {
    source: "#Sphere"
    instancing: particleRed.instanceTable
    materials: PrincipledMaterial {
        baseColor: "yellow"
    }
}

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