@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
42 lines (41 loc) • 1.71 kB
TypeScript
import { PolyScene } from '../PolyScene';
import { Vector2 } from 'three';
import { IUniformN, IUniformTexture, IUniformV2 } from '../../nodes/utils/code/gl/Uniforms';
import { GlParamConfig } from '../../nodes/gl/code/utils/GLParamConfig';
import { ParamType } from '../../poly/ParamType';
import { PolyDictionary } from '../../../types/GlobalTypes';
import { IUniforms } from '../../../core/geometry/Material';
export declare enum UniformName {
TIME = "time",
RESOLUTION = "resolution",
SPOTLIGHTS_RAYMARCHING = "spotLightsRayMarching",
DIRECTIONALLIGHTS_RAYMARCHING = "directionalLightsRayMarching",
POINTLIGHTS_RAYMARCHING = "pointLightsRayMarching"
}
export interface IUniformsWithTime extends IUniforms {
time: IUniformN;
}
export interface IUniformsWithResolution extends IUniforms {
resolution: IUniformV2;
}
interface AddUniformOptions {
paramConfigs: readonly GlParamConfig<ParamType>[];
additionalTextureUniforms: PolyDictionary<IUniformTexture>;
timeDependent: boolean;
resolutionDependent: boolean;
raymarchingLightsWorldCoordsDependent: boolean;
}
export declare class UniformsController {
private scene;
constructor(scene: PolyScene);
addUniforms(uniforms: IUniforms, options: AddUniformOptions): void;
addTimeUniform(uniforms: IUniforms): void;
removeTimeUniform(uniforms: IUniforms): void;
timeUniformValue(): number;
addResolutionUniforms(uniforms: IUniforms): void;
removeResolutionUniform(uniforms: IUniforms): void;
updateResolution(resolution: Vector2, pixelRatio: number): void;
addRaymarchingUniforms(uniforms: IUniforms): void;
removeRaymarchingUniform(uniforms: IUniforms): void;
}
export {};