playcanvas-opti-pixel - v1.2.0
    Preparing search index...

    Interface IGPUIndirectDrawOcclusionCullingTester

    Interface for working with an occlusion culling testing system. Allows registering BoundingBox objects, enqueueing them for testing, and checking if the object is occluded by other scene geometry.

    interface IGPUIndirectDrawOcclusionCullingTester {
        _ocTesterType: "gpu_indirect_draw_oct";
        enqueue(
            id: number,
            slot: number,
            primitive: IPrimitive,
            instanceCount: number,
            firstInstance: number,
            extra?: number | number[],
        ): number;
        execute(camera: Camera, updateParams?: boolean): void;
        lock(
            boundingBox: BoundingBox,
            matrix?: Mat4,
            extra1?: number,
            extra2?: number,
        ): number;
        lockMinMaxScalars(
            data: ArrayLike<number>,
            offset: number,
            matrix?: Mat4,
            extra1?: number,
            extra2?: number,
        ): number;
        unlock(id: number): void;
    }

    Hierarchy (View Summary)

    Implemented by

    Index
    _ocTesterType: "gpu_indirect_draw_oct"
    • Adds the object to the queue for occlusion testing.

      Parameters

      • id: number

        The unique identifier returned earlier by the lock() method.

      • slot: number

        The slot value obtained from device.getIndirectDrawSlot or your internal index.

      • primitive: IPrimitive

        The mesh primitive for draw.

      • instanceCount: number

        The number of instances to draw.

      • firstInstance: number

        The first instance to draw.

      • Optionalextra: number | number[]

        The extra data.

      Returns number

      A queue index, or -1 if internal verification inconsistencies occur (e.g., the tester is unavailable or waiting for synchronization).

    • Runs an occlusion check for the specified camera.

      Parameters

      • camera: Camera

        The camera

      • OptionalupdateParams: boolean

        When true, refresh view-projection (and related) uniforms from the camera.

      Returns void

    • Registers a BoundingBox for subsequent occlusion testing.

      Parameters

      • boundingBox: BoundingBox

        The bounds of the object in local or world coordinates.

      • Optionalmatrix: Mat4

        Optional transformation matrix (if a local BoundingBox is used).

      • Optionalextra1: number

        Optional extra data 1.

      • Optionalextra2: number

        Optional extra data 2.

      Returns number

      A unique identifier for the registered object.

    • Registers a BoundingBox for subsequent occlusion testing.

      Parameters

      • data: ArrayLike<number>

        The array containing the bounding box data (min and max points) in local or world coordinates [minX, maxX, minY, maxY, minZ, maxZ].

      • offset: number

        The offset in the array where the bounding box data starts.

      • Optionalmatrix: Mat4

        Optional transformation matrix (if a local BoundingBox is used).

      • Optionalextra1: number

        Optional extra data 1.

      • Optionalextra2: number

        Optional extra data 2.

      Returns number

      A unique identifier for the registered object.