@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
44 lines (43 loc) • 2.06 kB
TypeScript
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;
}