本页内容

ModelBlendParticle3D QML Type

将粒子效果与3D模型融合。更多...

Import Statement: import QtQuick3D.Particles3D
Inherits:

Particle3D

属性

详细说明

该类型提供了一种将粒子效果与3D模型混合的方法。所提供的模型必须基于三角形。模型中的每个三角形都会被转换为一个粒子,这些粒子随后会被发射器使用。与使用粒子着色器不同,该模型的着色是通过模型中指定的material 实现的。效果的混合方式由modelBlendMode 决定。

可选模式包括:

  • “构建”(Construct):模型由粒子构建而成。
  • “爆炸”(Explode):模型被转换为粒子。
  • “转移”(Transfer):将“构建”和“爆炸”模式结合,生成模型从一处转移到另一处的效果。

默认情况下,粒子将按其在模型中指定的顺序发射,除非将emitMode 设置为Random ,或者将emitMode 设置为Activation 且activationNode 已启用。

基类和发射器中定义的某些功能在此类型下无法正常工作:

注意:默认的 fadeInEffect 和fadeOutEffect 为Particle3D.FadeNone 。

属性文档

ModelBlendEmitMode : enumeration

定义粒子的发射模式

常量说明
ModelBlendParticle3D.Sequential粒子按照其在模型中定义的顺序发射。
ModelBlendParticle3D.Random粒子按随机顺序发射。
ModelBlendParticle3D.Activation粒子在被activationNode 激活时被发射。

ModelBlendMode : enumeration

定义粒子特效的混合模式。

常量描述
ModelBlendParticle3D.Explode模型被分解,即粒子从模型的位置发射出来。
ModelBlendParticle3D.Construct模型被构建,即粒子从发射器飞出,并在终点构建出模型。
ModelBlendParticle3D.Transfer将“爆炸”和“传输”模式结合应用于同一模型。

activationNode : Node

该属性包含一个用于激活粒子并覆盖常规发射例程的节点。当模型从粒子中爆炸/构建时,激活节点可用于控制粒子在空间中的发射方式。如果粒子的中心位于激活节点z轴的正半轴上,则激活节点会发射该粒子。 若对激活节点进行动画处理使其穿过模型,粒子将沿激活节点移动的路径依次发射。

delegate : Component

该委托提供了一个模板,用于定义ModelBlendParticle3D 的模型。

例如,使用默认的球体模型和默认材质

Component {
    id: modelComponent
    Model {
        source: "#Sphere"
        scale: Qt.vector3d(0.5, 0.5, 0.5)
        materials: DefaultMaterial { diffuseColor: "red" }
    }
}

ModelBlendParticle3D {
    id: particleRedSphere
    delegate: modelComponent
}

注意: 从委托类实例化的模型会 保留其自身的layers 赋值;ParticleSystem3D 的layers值不会应用于该模型。若要在特定的内容层上渲染粒子,请在委托类中设置layers属性。

emitMode : bool

该属性用于指定粒子的发射模式。

endNode : Node

该属性保存了一个节点,用于指定粒子特效结束时模型的变换。它定义了在使用“ModelBlendParticle3D.Construct ”和“ModelBlendParticle3D.Transfer ”混合模式时,模型构建时的大小、位置和旋转。

endTime : int

该属性存储粒子的结束时间(单位为毫秒)。结束时间在构建过程中使用,用于定义粒子生命周期结束时的持续时间,此时特效将与模型位置进行混合。在结束时间之前,粒子的位置仅由粒子特效决定;但在结束时间期间,粒子的位置将与模型的结束位置进行线性混合。

modelBlendMode : ModelBlendMode

该属性用于设置粒子效果的混合模式。

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