@needle-tools/materialx
Version:
Web runtime support to load and display MaterialX materials in Needle Engine and three.js via the MaterialX WebAssembly library. glTF files containing the `NEEDLE_materials_mtlx` extension can be loaded with this package. There is also experimental suppor
38 lines (28 loc) • 1.41 kB
TypeScript
import { BufferGeometry, Camera, Group, IUniform, MaterialParameters, Object3D, Scene, ShaderMaterial, Texture, WebGLRenderer } from "three";
import { MaterialXContext, MaterialXEnvironment } from "./materialx.js";
import { Callbacks } from "./materialx.helper.js";
declare type MaterialXMaterialInitParameters = {
name: string;
shaderName?: string | null;
shader: any;
loaders: Callbacks;
context: MaterialXContext;
parameters?: MaterialParameters;
debug?: boolean;
}
type Uniforms = Record<string, IUniform & { needsUpdate?: boolean }>;
type Precision = "highp" | "mediump" | "lowp";
export declare class MaterialXMaterial extends ShaderMaterial {
readonly shaderName: string | null;
copy(source: MaterialXMaterial): this;
private _context: MaterialXContext | null;
private _shader: any;
private _needsTangents: boolean;
constructor(init?: MaterialXMaterialInitParameters);
private _missingTangentsWarned: boolean;
onBeforeRender(renderer: WebGLRenderer, _scene: Scene, camera: Camera, geometry: BufferGeometry, object: Object3D, _group: Group): void;
envMapIntensity: number;
envMap: Texture | null;
updateUniforms(environment: MaterialXEnvironment, _renderer: WebGLRenderer, object: Object3D, camera: Camera, time?: number, frame?: number): void;
private updateEnvironmentUniforms(environment: MaterialXEnvironment): void;
}