IFClite TypeScript API
    Preparing search index...

    Interface ContributionCullOptions

    Contribution culling: skip draws whose world AABB projects below a pixel threshold on screen. Sub-pixel geometry costs a full draw call + vertex work but contributes at most a flicker of a pixel, so dropping it is visually near-lossless while cutting draw calls and vertex load on large models (issue #1682). The threshold is intentionally raised while the camera is moving: quality matters least mid-gesture, and the cheaper frames keep interaction smooth exactly when the renderer is under the most pressure (same policy as contribution culling in Cesium/xeokit-class viewers).

    The math is a bounding-sphere estimate (half the AABB diagonal projected at the sphere centre's VIEW DEPTH, not its Euclidean distance — depth is what perspective projection divides by, so off-axis geometry is not under-sized). It is exact for a sphere on the view axis and over-estimates boxes elsewhere, except for one residual: the radial stretch of far-corner perspective projection can exceed the estimate by at most 1/cos(theta) of the diagonal half-FOV (~1.7x at fov 60). With the sub-pixel default thresholds that residual stays visually lossless; treat the threshold as a perceptual heuristic, not a hard guarantee.

    interface ContributionCullOptions {
        interactingPixelRadius?: number;
        pixelRadius: number;
    }
    Index
    interactingPixelRadius?: number

    Threshold while the camera is interacting/animating. Defaults to pixelRadius (no motion boost). Values below pixelRadius are clamped up to it — motion must never cull LESS than rest.

    pixelRadius: number

    Projected AABB radius in device pixels below which a draw is skipped while the camera is at rest. <= 0 disables contribution culling.