UNPKG

@spatialwalk/avatarkit

Version:

SPAvatar SDK - 3D Gaussian Splatting Avatar Rendering SDK

66 lines 1.96 kB
import { I3DGSRenderer } from '../renderer'; export declare class WebGLRenderer implements I3DGSRenderer { private canvas; private backgroundColor; private gl; private shaderProgram; private uniformLocations; private attributeLocations; private splatBuffer; private quadVertexBuffer; private vertexArray; private splatCount; private isInitialized; private splatBufferSize; constructor(canvas: HTMLCanvasElement, backgroundColor?: [number, number, number, number]); /** * 初始化 WebGL 渲染器 */ initialize(): Promise<void>; /** * 设置着色器位置 */ private setupShaderLocations; /** * 设置 WebGL 渲染状态 */ private setupWebGLState; /** * 创建渲染缓冲区 */ private createBuffers; /** * 创建四边形顶点缓冲区(实例化渲染用) */ private createQuadVertexBuffer; /** * 从已打包数据加载(零拷贝,GPU 优化路径) * 🚀 性能优化版本:直接使用 WASM 输出的 packed 数据 * 🚀 Buffer 复用:避免每帧重新分配,使用 bufferSubData 更新 * @param packedData Float32Array [pos3, color4, cov6] x N 个点 * @param pointCount 点数 * @param _sortOrder WebGL 忽略此参数(已在 RenderSystem 中重排序) */ loadSplatsFromPackedData(packedData: Float32Array, pointCount: number, _sortOrder?: Uint32Array): void; /** * 上传数据到 GPU */ private uploadToGPU; /** * 设置实例化渲染顶点属性 */ private setupVertexAttributes; /** * 渲染一帧 */ render(viewMatrix: Float32Array, projectionMatrix: Float32Array, screenSize: [number, number]): void; /** * 创建着色器程序 */ private createShaderProgram; /** * 清理资源 */ dispose(): void; } //# sourceMappingURL=webglRenderer.d.ts.map