UNPKG

playcanvas

Version:

Open-source WebGL/WebGPU 3D engine for the web

69 lines (68 loc) 2.19 kB
/** * @import { StorageBuffer } from '../../platform/graphics/storage-buffer.js' * @import { GraphNode } from '../graph-node.js' * @import { GraphicsDevice } from '../../platform/graphics/graphics-device.js' * @import { Layer } from '../layer.js' * @import { GSplatWorkBuffer } from './gsplat-work-buffer.js' */ /** * Renders splats from the work buffer using instanced quad rendering. * * @ignore */ export class GSplatQuadRenderer extends GSplatRenderer { /** @type {ShaderMaterial} */ _material: ShaderMaterial; /** @type {MeshInstance} */ meshInstance: MeshInstance; /** @type {number} */ originalBlendType: number; /** @type {Set<string>} */ _internalDefines: Set<string>; /** @type {boolean} */ forceCopyMaterial: boolean; /** @private */ private _lastFisheyeEnabled; configureMaterial(): void; /** * Binds work buffer textures to the material. * * @private */ private _bindWorkBufferTextures; /** * Injects format shader chunks into the material. * Called during initialization and after copying settings from user material. * * @private */ private _injectFormatChunks; update(count: any, textureSize: any): void; frameUpdate(params: any): void; _lastNoFog: any; /** * Updates the ID-related defines based on whether pcId stream exists. * * @private */ private _updateIdDefines; /** * Syncs with work buffer format when extra streams are added. * * @private */ private _syncWithWorkBufferFormat; /** * Copies material settings from a source material to the internal material. * Preserves internal defines while copying user defines, parameters, and shader chunks. * * @param {ShaderMaterial} sourceMaterial - The source material to copy settings from. * @private */ private copyMaterialSettings; updateOverdrawMode(params: any): void; createMeshInstance(): MeshInstance; } import { GSplatRenderer } from './gsplat-renderer.js'; import { ShaderMaterial } from '../materials/shader-material.js'; import { MeshInstance } from '../mesh-instance.js';