/** * TerrainMeshRenderer: MeshRenderer variant for terrain splat-map rendering. * * Uses the terrain pipeline (40B vertex stride) and binds 3 splat textures * instead of the standard PBR albedo/normal/MR textures. */ import { Component } from '@certe/atmos-core'; import type { Mat4Type } from '@certe/atmos-math'; import type { Mesh } from './mesh.js'; import type { TerrainPipelineResources } from './terrain-pipeline.js'; import type { Material } from './material.js'; import type { GPUTextureHandle } from './texture.js'; import type { BoundingSphere } from './bounds.js'; export declare class TerrainMeshRenderer extends Component { mesh: Mesh | null; material: Material | null; castShadow: boolean; receiveSSAO: boolean; splatTextures: [GPUTextureHandle, GPUTextureHandle, GPUTextureHandle] | null; uniformBuffer: GPUBuffer | null; bindGroup: GPUBindGroup | null; materialBindGroup: GPUBindGroup | null; private _device; private _terrainPipeline; private readonly _mvp; private readonly _invModel; private readonly _normalMat; private readonly _matData; private readonly _worldBoundsCenter; private readonly _worldBounds; init(device: GPUDevice, terrainPipeline: TerrainPipelineResources, mesh: Mesh, material?: Material, splatTextures?: [GPUTextureHandle, GPUTextureHandle, GPUTextureHandle]): void; initMaterialBindGroup(sceneBuffer: GPUBuffer): void; writeUniforms(viewProjection: Mat4Type): void; draw(pass: GPURenderPassEncoder): void; get worldBoundingSphere(): BoundingSphere | null; onDestroy(): void; destroyMesh(): void; } //# sourceMappingURL=terrain-mesh-renderer.d.ts.map