playcanvas
Version:
PlayCanvas WebGL game engine
145 lines (144 loc) • 3.96 kB
TypeScript
/**
* 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;
}