class AwarenessUtils (Niantic.ARDK.AR.Awareness.AwarenessUtils)

Overview

A collection of utility methods for working with contextual awareness buffers. More...

class AwarenessUtils {
public:
    // methods

    static Vector4 CalculateZBufferParams(float near, float far);

    static bool CopySemanticConfidencesARGB32(
        this IARFrame frame,
        string channelName,
        int viewportWidth,
        int viewportHeight,
        ref Texture2D texture,
        out Matrix4x4 samplerTransform
    );

    static bool CopySemanticConfidencesRFloat(
        this IARFrame frame,
        string channelName,
        int viewportWidth,
        int viewportHeight,
        ref Texture2D texture,
        out Matrix4x4 samplerTransform
    );

    static Vector2Int FromBufferToScreenPosition< TBuffer >(
        AwarenessBufferProcessor<TBuffer> processor,
        int x,
        int y
    );
};

Detailed Documentation

A collection of utility methods for working with contextual awareness buffers.

Methods

static Vector4 CalculateZBufferParams(float near, float far)

Calculates a ZBufferParams container, similar to the built-in _ZBufferParams used in shaders, but instead of using the clipping plane distances of the camera, it will consider the specified near and far values.

static bool CopySemanticConfidencesARGB32(
    this IARFrame frame,
    string channelName,
    int viewportWidth,
    int viewportHeight,
    ref Texture2D texture,
    out Matrix4x4 samplerTransform
)

Extracts raw semantic confidences from the frame and uploads it to GPU memory in the form of a texture. If the frame does not hold semantics data, this API does nothing.

Parameters:

frame

The AR frame to get semantics data from.

channelName

The name of the semantic class to create a texture of.

viewportWidth

The width of the viewport the texture needs to be mapped to.

viewportHeight

The height of the viewport the texture needs to be mapped to.

texture

The texture to copy the data to. If this reference is null, the texture will be allocated. Deallocating the texture is the responsibility of the caller.

samplerTransform

The transformation matrix to be used to sample the texture.

Returns:

Whether the texture has been successfully created/updated.

static bool CopySemanticConfidencesRFloat(
    this IARFrame frame,
    string channelName,
    int viewportWidth,
    int viewportHeight,
    ref Texture2D texture,
    out Matrix4x4 samplerTransform
)

Extracts raw semantic confidences from the frame and uploads it to GPU memory in the form of a texture. If the frame does not hold semantics data, this API does nothing.

Parameters:

frame

The AR frame to get semantics data from.

channelName

The name of the semantic class to create a texture of.

viewportWidth

The width of the viewport the texture needs to be mapped to.

viewportHeight

The height of the viewport the texture needs to be mapped to.

texture

The texture to copy the data to. If this reference is null, the texture will be allocated. Deallocating the texture is the responsibility of the caller.

samplerTransform

The transformation matrix to be used to sample the texture.

Returns:

Whether the texture has been successfully created/updated.

static Vector2Int FromBufferToScreenPosition< TBuffer >(
    AwarenessBufferProcessor<TBuffer> processor,
    int x,
    int y
)

Converts pixel coordinates from the raw awareness buffer's coordinate frame to viewport pixel coordinates.

Parameters:

processor

Reference to the context awareness processor.

x

Awareness buffer pixel position on the x axis.

y

Awareness buffer pixel position on the y axis.

Returns:

Pixel coordinates on the viewport.