/** * The WebGPU lit mesh batcher — meshes shaded by the active stage's * {@link Light3d} lights (half-Lambert diffuse from directional lights + * ambient), the port of the GL `LitMeshBatcher`: * * - adds the `aNormal` vertex attribute (48-byte layout vs 36) and the lit * shader family; meshes opt in via `mesh.lit`, so unlit meshes keep the * lean base batcher and pay nothing for lighting * - the std140 `Light3dBlock` binds at group 2 with a dynamic offset. The * GL batcher re-packs and dirty-compares per draw * (`UniformBlock.upload`); here a change lands in a FRESH arena region * (queue-write law — an in-place write would retroactively re-light * draws already recorded this frame), and an unchanged rig re-uses the * frame's existing snapshot at zero upload cost * @augments WebGPUMeshBatcher * @category Rendering */ export default class WebGPULitMeshBatcher extends WebGPUMeshBatcher { /** * @override */ override init(renderer: any, settings: any): void; lightsLayout: GPUBindGroupLayout | undefined; blockData: Float32Array | undefined; uploadedBlock: Float32Array | undefined; lightBindGroups: Map | undefined; lightBinding: { bindGroup: any; dynamicOffset: any; frameId: any; } | null | undefined; } import WebGPUMeshBatcher from "./mesh_batcher.js"; //# sourceMappingURL=lit_mesh_batcher.d.ts.map