polygonjs-engine
Version:
node-based webgl 3D engine https://polygonjs.com
76 lines (75 loc) • 4.46 kB
TypeScript
/**
* Creates a Mesh Subsurface Scattering Material
*
* @remarks
* This material needs lights to be visible.
*
*/
import { ShaderMaterial } from 'three/src/materials/ShaderMaterial';
import { TypedMatNode } from './_Base';
import { TextureMapController } from './utils/TextureMapController';
import { TextureAlphaMapController } from './utils/TextureAlphaMapController';
import { BaseParamType } from '../../params/_Base';
import { IUniformN, IUniformTexture, IUniformColor } from '../utils/code/gl/Uniforms';
import { IUniform } from 'three/src/renderers/shaders/UniformsLib';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { OperatorPathParam } from '../../params/OperatorPath';
declare const MeshSubsurfaceScatteringMatParamsConfig_base: {
new (...args: any[]): {
useMap: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>;
map: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.OPERATOR_PATH>;
};
} & {
new (...args: any[]): {
useAlphaMap: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>;
alphaMap: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.OPERATOR_PATH>;
};
} & {
new (...args: any[]): {
skinning: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>;
};
} & {
new (...args: any[]): {
doubleSided: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>;
front: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>;
};
} & typeof NodeParamsConfig;
declare class MeshSubsurfaceScatteringMatParamsConfig extends MeshSubsurfaceScatteringMatParamsConfig_base {
diffuse: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.COLOR>;
shininess: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FLOAT>;
thicknessMap: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.OPERATOR_PATH>;
thicknessColor: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.COLOR>;
thicknessDistortion: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FLOAT>;
thicknessAmbient: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FLOAT>;
thicknessAttenuation: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FLOAT>;
thicknessPower: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FLOAT>;
thicknessScale: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FLOAT>;
}
interface ShaderMaterialWithUniforms extends ShaderMaterial {
uniforms: {
diffuse: IUniformColor;
shininess: IUniformN;
thicknessMap: IUniformTexture;
thicknessColor: IUniformColor;
thicknessDistortion: IUniformN;
thicknessAmbient: IUniformN;
thicknessAttenuation: IUniformN;
thicknessPower: IUniformN;
thicknessScale: IUniformN;
[uniform: string]: IUniform;
};
}
export declare class MeshSubsurfaceScatteringMatNode extends TypedMatNode<ShaderMaterialWithUniforms, MeshSubsurfaceScatteringMatParamsConfig> {
params_config: MeshSubsurfaceScatteringMatParamsConfig;
static type(): string;
create_material(): ShaderMaterialWithUniforms;
readonly texture_map_controller: TextureMapController;
readonly texture_alpha_map_controller: TextureAlphaMapController;
initializeNode(): void;
cook(): Promise<void>;
static PARAM_CALLBACK_update_uniformN(node: MeshSubsurfaceScatteringMatNode, param: BaseParamType, uniform_name: string): void;
static PARAM_CALLBACK_update_uniformColor(node: MeshSubsurfaceScatteringMatNode, param: BaseParamType, uniform_name: string): void;
static PARAM_CALLBACK_update_uniformTexture(node: MeshSubsurfaceScatteringMatNode, param: BaseParamType, uniform_name: string): void;
update_map(param: OperatorPathParam, uniform_name: string): Promise<void>;
}
export {};