import { Texture, Vector3 } from "three"; import { MeshPhysicalNodeMaterial } from "three/webgpu"; import { BlendModeConfig } from "./../blending/BlendModeConfig"; import { TriplanarConfig } from "../features/triplanar/TriplanarConfig"; import { BombingConfig } from "../features/bombing/BombingConfig"; import { ParallaxConfig } from "../features/parallax/ParallaxConfig"; import { EdgeWearConfig } from "../features/edge-wear/EdgeWearConfig"; import { MaskConfig } from "./../core/MaskConfig"; export type MaskChannel = 'r' | 'g' | 'b' | 'a' | 'x' | 'y' | 'z' | 'w'; export type NodeMaterialInput = MeshPhysicalNodeMaterial; export interface MaterialTransformConfig { extractTextures?: boolean; overrideScale?: boolean; respectMaterialSettings?: boolean; } export interface LayerTextureMap { color?: Texture | Vector3; normal?: Texture; roughness?: Texture; metalness?: Texture; ao?: Texture; height?: Texture; arm?: Texture; } export interface HeightBlendConfig { enable?: boolean; strength?: number; sharpness?: number; } export interface ScreenSpaceDisplacementConfig { enabled?: boolean; strength?: number; maxPixels?: number; quality?: 'low' | 'medium' | 'high'; } export interface LayerConfig { name?: string; materialInput?: NodeMaterialInput; map?: LayerTextureMap; color?: Vector3; scale?: number; roughness?: number; metalness?: number; /** * Color tint applied as a multiplier to the layer's color * Values 0-1 for each channel, 1 = no change */ colorTint?: { r: number; g: number; b: number; }; materialTransform?: MaterialTransformConfig; triplanar?: TriplanarConfig; textureBombing?: BombingConfig; parallax?: ParallaxConfig; screenSpaceDisplacement?: ScreenSpaceDisplacementConfig; edgeWear?: EdgeWearConfig; mask?: MaskConfig; heightBlend?: HeightBlendConfig; blendMode?: BlendModeConfig; } //# sourceMappingURL=LayerConfig.d.ts.map