JSAPI Three API Reference
    正在准备搜索索引...

    类 ParticleSystem

    一套粒子系统。

    层级

    • Object3D
      • ParticleSystem
    索引

    构造函数

    • 参数

      • 可选options: {
            maxParticles?: {};
            onNeedsRender?: Function;
            preset?: any;
            renderMode?: string | {};
            renderOrder?: number;
        } = {}

        配置

        • 可选maxParticles?: {}

          按层 id 覆盖粒子池上限, 如 {smoke: 20000}

        • 可选onNeedsRender?: Function

          需要补一帧时的回调,按需渲染下必须传, 一般是 () => engine.requestRender()

        • 可选preset?: any

          预设名,或自定义预设对象

        • 可选renderMode?: string | {}

          覆盖层的渲染模式, 'instanced' 统一覆盖所有层,或 {flame: 'instanced'} 按层 id 覆盖。 只在建层时生效(SPE 的 Group 构造后改不了渲染模式)

        • 可选renderOrder?: number

          各层 renderOrder 的基准值

      返回 ParticleSystem

    方法

    • 移除所有实例,但保留已创建的层(贴图不会重新下载)。

      返回 void

    • 新建一个特效实例。

      传的是已解析好的层配置,不是业务参数 —— 一般写成 system.createEmitter({position, layerOptions: system.resolveLayerOptions(params)})。

      参数

      • 可选options: any

        见 ParticleEmitter 的构造参数

      返回 ParticleEmitter

      实例句柄

    • 释放全部资源:实例、层、贴图。

      返回 void

    • 移除一个特效实例。

      参数

      • emitter: ParticleEmitter

        createEmitter 返回的句柄

      返回 void

    • 请求补一帧。按需渲染下不调它,粒子会静止不动。

      返回 void

    • 把业务参数交给预设,解析成每层的 Emitter 配置。

      参数的名字和含义完全由预设定义(火灾预设认 severity / color / scale / wind / metersToUnits),本方法只是转发,不解释任何一个字段。

      参数

      • 可选params: any

        预设定义的业务参数

      返回 {}

      层 id → Emitter 配置

      预设没有提供 resolve 时抛错

    • 每帧推进。

      参数

      • deltaTime: number

        帧间隔,秒。应该用引擎的 renderState.deltaTime, 而不是自己 new 一个 THREE.Clock —— 否则按需渲染下时间轴会和引擎打架。

      • renderer: WebGLRenderer

        渲染器

      • camera: Camera

        当前相机

      返回 void

    访问器

    • get emitterCount(): number

      已创建的特效实例个数。

      返回 number

      实例数

    • get presetName(): string

      当前预设名。

      返回 string

      预设名