GPUParticleSystem.d.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import {
  2. BufferGeometry,
  3. Object3D,
  4. ShaderMaterial,
  5. Texture,
  6. } from '../../../src/Three';
  7. export interface GPUParticleSystemOptions {
  8. maxParticles?: number;
  9. containerCount?: number;
  10. particleNoiseTex?: Texture;
  11. particleSpriteTex?: Texture;
  12. }
  13. export class GPUParticleSystem extends Object3D {
  14. constructor( options: GPUParticleSystemOptions );
  15. PARTICLE_COUNT: number;
  16. PARTICLE_CONTAINERS: number;
  17. PARTICLE_NOISE_TEXTURE: Texture;
  18. PARTICLE_SPRITE_TEXTURE: Texture;
  19. PARTICLES_PER_CONTAINER: number;
  20. PARTICLE_CURSOR: number;
  21. time: number;
  22. particleContainers: number[];
  23. rand: number[];
  24. particleNoiseTex: Texture;
  25. particleSpriteTex: Texture;
  26. particleShaderMat: ShaderMaterial;
  27. random(): number;
  28. init(): void;
  29. spawnParticle( option: object ): void;
  30. update( time: number ): void;
  31. dispose(): void;
  32. }
  33. export class GPUParticleContainer extends Object3D {
  34. constructor( maxParticles: number, particleSystem: GPUParticleSystem );
  35. PARTICLE_COUNT: number;
  36. PARTICLE_CURSOR: number;
  37. time: number;
  38. offset: number;
  39. count: number;
  40. DPR: number;
  41. GPUParticleSystem: GPUParticleSystem;
  42. particleUpdate: number;
  43. particleShaderGeo: BufferGeometry;
  44. particleShaderMat: ShaderMaterial;
  45. init(): void;
  46. spawnParticle( option: object ): void;
  47. update( time: number ): void;
  48. dispose(): void;
  49. }