本页内容

ParticleEmitter3D QML Type

逻辑粒子的发射器。更多...

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

Node

Inherited By:

TrailEmitter3D

属性

方法

  • vector3d burst(int count)
  • vector3d burst(int count, int duration)
  • vector3d burst(int count, int duration, vector3d position)

详细描述

该元素会向ParticleSystem3D 中发射具有指定初始属性的逻辑粒子。

ParticleSystem3D 中至少需要有一个发射器才能产生粒子。控制粒子发射量有以下几种方法:

  • 设置emitRate 属性,该属性控制每秒持续发射的粒子数量。
  • 将EmitBurst3D 元素添加到emitBursts 属性中,以声明式方式发射突发粒子流。
  • 调用任何burst()方法,可立即发出突发粒子流。

属性文档

EmitMode : enumeration [since 6.10]

定义具有形状的发射器的发射模式。

常量描述
ParticleEmitter3D.Default默认发射行为。
ParticleEmitter3D.SurfaceNormal粒子沿表面法线方向发射。需要指定粒子形状。如果发射器是轨迹发射器,则表面法线将从被跟随的粒子继承而来。
ParticleEmitter3D.SurfaceReflected粒子沿速度向量与表面法线的反射方向发射。如果发射器是轨迹发射器,则表面法线和速度将从被跟随的粒子继承而来。需要粒子形状。

此属性在 Qt 6.10 中引入。

depthBias : real

保存发射器的深度偏移量。在对对象进行排序时,会将深度偏移量加到对象到摄像机的距离上。这可用于强制控制彼此靠近的对象之间的渲染顺序,否则这些对象在不同帧中可能会以不同的顺序被渲染。负值会使排序值更靠近摄像机,而正值则会使其离摄像机更远。

emitBursts : List<EmitBurst3D>

该属性接受一个由EmitBurst3D 元素组成的列表,用于声明式地定义突发事件。如果突发事件的开始时间、数量和持续时间事先已知,那么使用该属性会比例如调用burst()并传入Timer 更合适。

例如,要在开始时发射 100 个粒子,并在 2 秒时发射 50 个粒子:

ParticleEmitter3D {
    emitBursts: [
        EmitBurst3D {
            time: 0
            amount: 100
        },
        EmitBurst3D {
            time: 2000
            amount: 50
        }
    ]
}

另请参阅 burst()。

emitMode : EmitMode [default: ParticleEmitter3D.Default, since 6.10]

该属性定义了具有形状的发射器的发射模式。

该属性自 Qt 6.10 起引入。

emitRate : real

此属性定义了恒定的粒子发射速率(单位为每秒粒子数)。例如,如果 emitRate 为 120,且系统以每秒 60 帧的速度进行动画渲染,则每帧会发射 2 个新粒子。

默认值为0 。

enabled : bool

如果“enabled”设置为false ,该发射器将不会发射任何粒子。通常,这用于有条件地开启或关闭发射器。如果要继续发射“burst”,请将emitRate 保持为0,而不是将其切换为false 。

默认值为true 。

lifeSpan : int

该属性定义了单个粒子的存活时间(单位为毫秒)。

默认值为1000 。

另请参阅 lifeSpanVariation 。

lifeSpanVariation : int

该属性定义了单个粒子的寿命变化,单位为毫秒。

例如,要生成存在时间为 3 到 4 秒之间的粒子:

ParticleEmitter3D {
    ...
    lifeSpan: 3500
    lifeSpanVariation: 500
}

默认值为0 。

另请参阅 lifeSpan 。

particle : Particle3D

此属性定义了该发射器所发射的逻辑粒子。发射器必须定义一个粒子,否则不会发射任何内容。粒子可以是SpriteParticle3D 或ModelParticle3D 。

particleEndScale : real

该属性定义了粒子在粒子lifeSpan 结束时的缩放倍数。若要使粒子结束时的尺寸存在变化,请使用particleEndScaleVariation 。当该值为负数时,结束缩放比例与particleScale 相同,因此粒子在lifeSpan 期间缩放比例不会发生变化。

默认值为-1.0 。

另请参阅 particleScale 和particleScaleVariation 。

particleEndScaleVariation : real

此属性定义了粒子在结束时的缩放变化范围。当该值为负数时,particleScaleVariation 也会应用于结束时的缩放范围。例如,若要发射起始缩放范围为 0.5 - 1.5、结束缩放范围为 1.0 - 5.0 的粒子:

ParticleEmitter3D {
    ...
    particleScale: 1.0
    particleScaleVariation: 0.5
    particleEndScale: 3.0
    particleEndScaleVariation: 2.0
}

默认值为-1.0 。

另请参阅 particleEndScale 。

particleRotation : vector3d

该属性定义了粒子初始时的旋转。旋转以欧拉角的度数为单位进行定义。

另请参阅 particleRotationVariation 。

particleRotationVariation : vector3d

该属性定义了粒子初始时的旋转变化。旋转变化以欧拉角的度数表示。

例如,要以完全随机的旋转角度发射粒子:

ParticleEmitter3D {
    ...
    particleRotationVariation: Qt.vector3d(180, 180, 180)
}

另请参阅 particleRotation 。

particleRotationVelocity : vector3d

该属性定义了粒子在起始时的旋转速度。旋转速度以欧拉角为单位,单位为度/秒。

另请参阅 particleRotationVelocityVariation 。

particleRotationVelocityVariation : vector3d

此属性定义了粒子的旋转速度变化。旋转速度变化以欧拉角为单位,单位为度/秒。

例如,若要发射旋转方向随机、旋转速度在-100至100度/秒之间且可朝任意方向旋转的粒子:

ParticleEmitter3D {
    ...
    particleRotationVariation: Qt.vector3d(180, 180, 180)
    particleRotationVelocityVariation: Qt.vector3d(100, 100, 100)
}

另请参阅 particleRotationVelocity 。

particleScale : real

此属性定义了粒子在初始时的缩放倍数。若要使粒子大小具有变化,请使用particleScaleVariation 。

默认值为1.0 。

另请参阅 particleEndScale 和particleScaleVariation 。

particleScaleVariation : real

此属性定义了粒子的缩放范围。例如,若要以 0.5 至 1.5 的缩放比例发射粒子:

ParticleEmitter3D {
    ...
    particleScale: 1.0
    particleScaleVariation: 0.5
}

默认值为0.0 。

另请参阅 particleScale 和particleEndScaleVariation 。

reversed : bool [default: false, since 6.10]

此属性会反转粒子时间,即已发射的粒子将从结束时间倒推至开始时间。

该属性于 Qt 6.10 版本中引入。

shape : ParticleAbstractShape3D

该属性用于定义发光区域的可选形状。形状可以是ParticleShape3D 或ParticleModelShape3D 。形状的缩放、定位和旋转均基于发射器节点的属性进行调整。当“形状fill ”属性设置为false时,发光仅从形状的表面发生。

如果未定义形状,则从发射器节点的中心点进行发射。

system : ParticleSystem3D

该属性定义了发射器的ParticleSystem3D 。如果 system 是发射器的直接父对象,则无需定义此属性。

velocity : Direction3D

此属性可用于为发射的粒子设置初始速度。如果未设置速度,粒子将静止开始运动;若使用了affectors ,则速度将由其提供。

方法文档

vector3d burst(int count)

该方法会立即从该发射器中释放count 个粒子。

vector3d burst(int count, int duration)

该方法将在接下来的duration 毫秒内,从该发射器中释放count 个粒子。

vector3d burst(int count, int duration, vector3d position)

该方法将在接下来的duration 毫秒内,从该发射器发出count 个粒子。这些粒子的发射效果与发射器位于position 时相同,但其他所有属性均保持不变。

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