@realsee/five
Version:
Realsee Renderer SDK
96 lines (95 loc) • 3.07 kB
TypeScript
import * as THREE from 'three';
import { TweenKeyframe } from './utils';
type ParticleType = 'CUBE' | 'SPHERE';
/**
* GPU粒子系统初始化参数
*/
interface ParticleArgs {
/** 粒子的初始位置坐标 */
positionBase: THREE.Vector3;
/** 粒子坐标的抖动计算形式 */
positionStyle: ParticleType;
/** 粒子坐标的抖动`CUBE`计算形式下的扩散值 */
positionCubeSpread: THREE.Vector3;
/** 粒子坐标的抖动`SPHERE`计算形式下的扩散值 */
positionSphereSpread: number;
/** 粒子速度的抖动计算形式 */
velocityStyle: ParticleType;
/** 粒子速度的`CUBE`计算形式下的速度值 */
velocityCubeBase: THREE.Vector3;
/** 粒子速度的`CUBE`计算形式下的扩散值 */
velocityCubeSpread: THREE.Vector3;
/** 粒子速度的`SPHERE`计算形式下的速度值 */
velocitySphereBase: number;
/** 粒子速度的`SPHERE`计算形式下的扩散值 */
velocitySphereSpread: number;
/** 粒子加速度 */
accelerationBase: THREE.Vector3;
/** 粒子加速度扩散值 */
accelerationSpread: THREE.Vector3;
/** 旋转角度初始值 */
angleBase: number;
/** 旋转角度初始值的扩散值 */
angleSpread: number;
/** 旋转角度速度值 */
angleVelocityBase: number;
/** 旋转角度速度值的扩散值 */
angleVelocitySpread: number;
/** 粒子大小 */
sizeBase: number;
/** 粒子大小的扩散值 */
sizeSpread: number;
/** 粒子大小增长率 */
sizeGrowth: number;
/** 颜色(hsl) */
colorBase: THREE.Vector3;
/** 颜色(hsl)的扩散值 */
colorSpread: THREE.Vector3;
/** 透明度 */
opacityBase: number;
/** 透明度的扩散值 */
opacitySpread: number;
/** 贴图素材 */
texture: THREE.Texture;
/** 材质混合方式 */
blending: THREE.Blending;
/** 一秒产生多少粒子 */
particlesPerSecond: number;
/** 粒子存活时长 */
particleDeathAge: number;
/** 重力 */
gravity: THREE.Vector3;
/** 噪声强度 */
noiseStrength: number;
/** 阻尼系数 */
damping: number;
}
declare class Particle extends THREE.Points<THREE.BufferGeometry, THREE.ShaderMaterial> {
needsRender: boolean;
paused: boolean;
private disposed;
private startTime;
private particleCount;
particlesPerSecond: number;
particleDeathAge: number;
constructor(args: Partial<ParticleArgs>);
/** 贴图素材 */
get texture(): THREE.Texture | null;
set texture(value: THREE.Texture | null);
/** 材质混合方式 */
get blending(): THREE.Blending;
set blending(value: THREE.Blending);
/** 暂停 */
pause(): void;
/** 开始 */
play(): void;
/**
* 通过 Five 默认调用的 setTime 方法
* @param time - 毫秒
*/
setTime(time: number): void;
/** 析构 */
dispose(): void;
}
export { Particle };
export type { ParticleArgs, ParticleType, TweenKeyframe as ParticleTweenKeyframe };