UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

44 lines (43 loc) 2.06 kB
import { DataTexture, ShaderMaterial } from 'three'; import { GPUComputationConfigRef, GPUComputationRenderer, GPUComputationRendererVariable } from './gpuCompute/GPUComputationRenderer'; import { ShaderName } from '../../engine/nodes/utils/shaders/ShaderName'; import { TextureAllocationsController } from '../../engine/nodes/gl/code/utils/TextureAllocationsController'; import type { CoreParticlesController } from './CoreParticlesController'; export declare enum ParticlesDataType { AUTO = "Auto", FLOAT = "Float", HALF_FLOAT = "HalfFloat" } export declare const PARTICLE_DATA_TYPES: ParticlesDataType[]; export declare class CoreParticlesGpuComputeController { private mainController; protected _gpuCompute: GPUComputationRenderer | undefined; private _variablesByName; private _allVariables; private _createdTexturesByName; protected _lastSimulatedFrame: number | undefined; private _texturesSize; private _persistedTextureAllocationsController; constructor(mainController: CoreParticlesController); dispose(): void; setPersistedTextureAllocationController(controller: TextureAllocationsController): void; allVariables(): GPUComputationRendererVariable[]; init(): GPUComputationConfigRef | undefined; private _initPoints; private _initParticlesUVs; createGPUCompute(): GPUComputationConfigRef | undefined; computeSimulation(delta: number, configRef: GPUComputationConfigRef): void; getCurrentRenderTarget(shader_name: ShaderName): import("three").WebGLRenderTarget<import("three").Texture> | undefined; private _textureNameForShaderName; materials(): ShaderMaterial[]; private _createSimulationMaterialUniforms; private _assignReadonlyTextures; private _updateSimulationMaterialUniforms; createdTexturesByName(): Readonly<Map<ShaderName, DataTexture>>; private _fillTextures; reset(): void; private resetGpuCompute; private _createTextureRenderTargets; private _textureAllocationsController; private _readonlyAllocations; }