@spatialwalk/avatarkit
Version:
SPAvatar SDK - 3D Gaussian Splatting Avatar Rendering SDK
54 lines • 1.57 kB
TypeScript
import { I3DGSRenderer } from '../renderer';
export declare class WebGPURenderer implements I3DGSRenderer {
private canvas;
private backgroundColor;
private device;
private context;
private renderPipeline;
private quadVertexBuffer;
private uniformBuffer;
private uniformBindGroup;
private sortIndexBuffer;
private splatDataBuffer;
private storageBindGroup;
private lastSortOrder;
private bindGroupNeedsUpdate;
private splatCount;
private presentationFormat;
constructor(canvas: HTMLCanvasElement, backgroundColor?: [number, number, number, number]);
/**
* 初始化 WebGPU 渲染器
*/
initialize(): Promise<void>;
/**
* 创建 Uniform Buffer
*/
private createUniformBuffer;
/**
* 创建四边形顶点缓冲区(实例化渲染用)
*/
private createQuadVertexBuffer;
/**
* 创建 Render Pipeline
*/
private createRenderPipeline;
/**
* 从已打包数据加载
* 🚀 间接索引渲染:packedData 是原始数据,sortOrder 是排序索引
* 🚀 完全消除 CPU 重排序开销
*/
loadSplatsFromPackedData(packedData: Float32Array, pointCount: number, sortOrder?: Uint32Array): void;
/**
* 渲染一帧
*/
render(viewMatrix: Float32Array, projectionMatrix: Float32Array, screenSize: [number, number]): void;
/**
* 更新 Uniform Buffer
*/
private updateUniforms;
/**
* 清理资源
*/
dispose(): void;
}
//# sourceMappingURL=webgpuRenderer.d.ts.map