polygonjs-engine
Version:
node-based webgl 3D engine https://polygonjs.com
68 lines (67 loc) • 3.63 kB
TypeScript
/**
* Allows to create a shader with GLSL nodes to create the texture values.
*
*
*/
import { Constructor, valueof } from '../../../types/GlobalTypes';
import { WebGLRenderTarget } from 'three/src/renderers/WebGLRenderTarget';
import { ShaderMaterial } from 'three/src/materials/ShaderMaterial';
import { TypedCopNode } from './_Base';
import { GlNodeChildrenMap } from '../../poly/registers/nodes/Gl';
import { BaseGlNodeType } from '../gl/_Base';
import { NodeContext } from '../../poly/NodeContext';
import { IUniform } from 'three/src/renderers/shaders/UniformsLib';
export interface IUniforms {
[uniform: string]: IUniform;
}
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { AssemblerName } from '../../poly/registers/assemblers/_BaseRegister';
import { TexturePersistedConfig } from '../gl/code/assemblers/textures/PersistedConfig';
import { IUniformsWithTime } from '../../scene/utils/UniformsController';
import { ParamsInitData } from '../utils/io/IOController';
declare class BuilderCopParamsConfig extends NodeParamsConfig {
/** @param texture resolution */
resolution: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.VECTOR2>;
/** @param defines if the shader is rendered via the same camera used to render the scene */
useCameraRenderer: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>;
}
export declare class BuilderCopNode extends TypedCopNode<BuilderCopParamsConfig> {
params_config: BuilderCopParamsConfig;
static type(): string;
readonly persisted_config: TexturePersistedConfig;
protected _assembler_controller: import("../gl/code/Controller").GlAssemblerController<import("../gl/code/assemblers/textures/Texture").ShaderAssemblerTexture> | undefined;
usedAssembler(): Readonly<AssemblerName.GL_TEXTURE>;
protected _create_assembler_controller(): import("../gl/code/Controller").GlAssemblerController<import("../gl/code/assemblers/textures/Texture").ShaderAssemblerTexture> | undefined;
get assemblerController(): import("../gl/code/Controller").GlAssemblerController<import("../gl/code/assemblers/textures/Texture").ShaderAssemblerTexture> | undefined;
private _texture_mesh;
private _fragment_shader;
private _uniforms;
readonly texture_material: ShaderMaterial;
private _texture_scene;
private _texture_camera;
private _render_target;
private _data_texture_controller;
private _renderer_controller;
protected _children_controller_context: NodeContext;
initializeNode(): void;
createNode<S extends keyof GlNodeChildrenMap>(node_class: S, params_init_value_overrides?: ParamsInitData): GlNodeChildrenMap[S];
createNode<K extends valueof<GlNodeChildrenMap>>(node_class: Constructor<K>, params_init_value_overrides?: ParamsInitData): K;
children(): BaseGlNodeType[];
nodesByType<K extends keyof GlNodeChildrenMap>(type: K): GlNodeChildrenMap[K][];
childrenAllowed(): boolean;
private _cook_main_without_inputs_when_dirty_bound;
private _cook_main_without_inputs_when_dirty;
cook(): Promise<void>;
shaders_by_name(): {
fragment: string | undefined;
};
compile_if_required(): void;
private compile;
static handle_dependencies(node: BuilderCopNode, time_dependent: boolean, uniforms?: IUniformsWithTime): void;
render_on_target(): Promise<void>;
render_target(): WebGLRenderTarget;
private create_render_target_if_required;
private _render_target_resolution_valid;
private _create_render_target;
}
export {};