/** * @import { Light } from '../light.js' * @import { LightList } from '../lighting/light-list.js' */ export class LitMaterialOptionsBuilder { static update(litOptions: any, material: any, scene: any, renderParams: any, objDefs: any, pass: any, lightList: any): void; static updateSharedOptions(litOptions: any, material: any, scene: any, objDefs: any, pass: any, renderParams: any): void; static updateMaterialOptions(litOptions: any, material: any): void; static updateEnvOptions(litOptions: any, material: any, scene: any, renderParams: any): void; static updateLightingOptions(litOptions: any, material: any, scene: any, objDefs: any, lightList: any): void; /** * Returns the lights a mask selects, each at its light slot. A slot is the light's index in * {@link LightList#slots}, the same for every mesh instance in the pass, so the slots this * mask does not select are left as holes and the shader compiles them out. The renderer * dispatches the lights from the same list, so the two cannot disagree. * * @param {LightList|undefined} lightList - The lights of the pass. * @param {number} mask - The light mask of the mesh instance being drawn. * @returns {Light[]} The selected lights, indexed by light slot. */ static selectLights(lightList: LightList | undefined, mask: number): Light[]; } import type { LightList } from '../lighting/light-list.js'; import type { Light } from '../light.js';