import { vec3, vec4 } from 'gl-matrix'; import { Context } from '../context'; import { Material } from '../scene'; import { Texture2D } from '../texture2d'; export declare enum GLTFShaderFlags { HAS_NORMALS = 1, HAS_TANGENTS = 2, HAS_UV = 4, HAS_COLORS = 8, USE_IBL = 16, HAS_BASECOLORMAP = 32, HAS_NORMALMAP = 64, HAS_EMISSIVEMAP = 128, HAS_METALROUGHNESSMAP = 256, HAS_OCCLUSIONMAP = 512, USE_TEX_LOD = 1024 } export declare enum GLTFAlphaMode { OPAQUE = 0, MASK = 1, BLEND = 2 } export declare class GLTFPbrMaterial extends Material { protected _baseColorTexture: Texture2D | undefined; protected _metallicRoughnessTexture: Texture2D | undefined; protected _normalTexture: Texture2D | undefined; protected _occlusionTexture: Texture2D | undefined; protected _emissiveTexture: Texture2D | undefined; protected _baseColorFactor: vec4; protected _metallicFactor: number; protected _emissiveFactor: vec3; protected _roughnessFactor: number; protected _isDoubleSided: boolean; protected _normalScale: number; protected _alphaMode: GLTFAlphaMode; protected _alphaCutoff: number; baseColorTexCoord: number; metallicRoughnessTexCoord: number; normalTexCoord: number; occlusionTexCoord: number; emissiveTexCoord: number; constructor(context: Context, name: string); set baseColorTexture(texture: Texture2D | undefined); get baseColorTexture(): Texture2D | undefined; set metallicRoughnessTexture(texture: Texture2D | undefined); get metallicRoughnessTexture(): Texture2D | undefined; set normalTexture(texture: Texture2D | undefined); get normalTexture(): Texture2D | undefined; set occlusionTexture(texture: Texture2D | undefined); get occlusionTexture(): Texture2D | undefined; set emissiveTexture(texture: Texture2D | undefined); get emissiveTexture(): Texture2D | undefined; set emissiveFactor(factor: vec3); get emissiveFactor(): vec3; set baseColorFactor(factor: vec4); get baseColorFactor(): vec4; set metallicFactor(factor: number); get metallicFactor(): number; set roughnessFactor(factor: number); get roughnessFactor(): number; get normalScale(): number; set normalScale(normalScale: number); set isDoubleSided(val: boolean); get isDoubleSided(): boolean; set alphaMode(alphaMode: GLTFAlphaMode); get alphaMode(): GLTFAlphaMode; set alphaCutoff(val: number); get alphaCutoff(): number; get flags(): number; }