UNPKG

playcanvas

Version:

PlayCanvas WebGL game engine

145 lines (144 loc) 3.96 kB
/** * Parameters for GSplat unified system. * * @category Graphics */ export class GSplatParams { /** * Enables debug rendering of AABBs for GSplat objects. Defaults to false. * * @type {boolean} */ debugAabbs: boolean; /** * Enables radial sorting based on distance from camera (for cubemap rendering). When false, * uses directional sorting along camera forward vector. Defaults to false. * * Note: Radial sorting helps reduce sorting artifacts when the camera rotates (looks around), * while linear sorting is better at minimizing artifacts when the camera translates (moves). * * @type {boolean} */ radialSorting: boolean; /** * Enables debug rendering of AABBs for GSplat octree nodes. Defaults to false. * * @type {boolean} */ debugNodeAabbs: boolean; /** * Internal dirty flag to trigger update of gsplat managers when some params change. * * @ignore * @type {boolean} */ dirty: boolean; /** * @type {boolean} * @private */ private _colorizeLod; /** * Enables colorization by selected LOD level when rendering GSplat objects. Defaults to false. * Marks params dirty on change. * * @type {boolean} */ set colorizeLod(value: boolean); /** * Gets colorize-by-LOD flag. * * @returns {boolean} Current enabled state. */ get colorizeLod(): boolean; /** * Distance threshold in world units to trigger LOD updates for camera and gsplat instances. * Defaults to 1. * * @type {number} */ lodUpdateDistance: number; /** * Angle threshold in degrees to trigger LOD updates based on camera rotation. Set to 0 to * disable rotation-based updates. Defaults to 0. * * @type {number} */ lodUpdateAngle: number; /** * @type {number} * @private */ private _lodBehindPenalty; /** * Multiplier applied to effective distance for nodes behind the camera when determining LOD. * Value 1 means no penalty; higher values drop LOD faster for nodes behind the camera. * * Note: when using a penalty > 1, it often makes sense to set a positive * {@link GSplatParams#lodUpdateAngle} so LOD is re-evaluated on camera rotation, * not just translation. * * @type {number} */ set lodBehindPenalty(value: number); /** * Gets behind-camera LOD penalty multiplier. * * @type {number} */ get lodBehindPenalty(): number; /** * @type {number} * @private */ private _lodRangeMin; /** * Minimum allowed LOD index (inclusive). Defaults to 0. * * @type {number} */ set lodRangeMin(value: number); /** * Gets minimum allowed LOD index (inclusive). * * @type {number} */ get lodRangeMin(): number; /** * @type {number} * @private */ private _lodRangeMax; /** * Maximum allowed LOD index (inclusive). Defaults to 10. * * @type {number} */ set lodRangeMax(value: number); /** * Gets maximum allowed LOD index (inclusive). * * @type {number} */ get lodRangeMax(): number; /** * @type {number} * @private */ private _lodUnderfillLimit; /** * Maximum number of LOD levels allowed below the optimal level when the optimal data is not * resident in memory. The system may temporarily use a coarser LOD within this limit until the * optimal LOD is available. Defaults to 0, which disables fallback (always load optimal). * Higher values allow faster loading by using lower-quality data. * * @type {number} */ set lodUnderfillLimit(value: number); /** * Gets the maximum allowed underfill LOD range. * * @type {number} */ get lodUnderfillLimit(): number; }