# Visibility

Visibility encompasses a set of features that enable visibility-aware reduction, texcoord generation and triangle culling, and is usable by setting the relevant VisibilitySettings on the ReductionProcessor, RemeshingLegacyProcessor, or AggregationProcessor.

A scene can be optimized to look particularily good from a selected set of cameras. For instance setting the camera in the driving seat of a car to remove all the excess details not visibile to the driver or surrounding the outside of a building to remove the interior details.

Visibility

# Reduction weighting

The triangle reduction below has been influenced by the visibility. From the front the model looks like the original but from the side and from the back - the details have been removed.

Visibility

# Texcoord weighting

The UVs below (made visible by the checkered pattern) have been generated with the help of the visibility. The weighted influence by the visibility has been tuned very aggressively in this example.

Visibility

# Triangle culling

All triangles that are not at all visible from the camera can be completely removed without running a normal reduction process. This generally causes holes on the geometry.

Visibility

# Camera types

The visibility can be computed using different types of cameras:

  • Perspective camera
    A regular camera with a camera/target position and field of view. The resolution of the camera can be tuned using the "pixel field of view" property.

    Camera types

  • Orthographic camera
    Views the scene without a perspective projection. Given a view direction it will automatically scale the camera dimensions to encapsulate the scene. The pixel size can be set small enough (in world coordinates) to make sure the camera doesn't miss small details.

    Camera types

  • Omnidirectional camera
    Only specified by a point from the where the camera will view the scene in all directions. The resolution of the camera can be increased using the pixel field of view property.

    Camera types

    Alternatively users can setup visibility cameras based on arbitrary geometries. The vertices of the geometries are used as omni-directional cameras.

# Usage

Different sets of visibility functionality is availible through the following entrypoints: