Compress Mesh Segments

Requirements

Input Streams: Mesh Stream (Stabilized)

Output Streams: Mesh Stream with stabilized segment compression

Overview

The Compress Mesh Segments Stage is a compression step that can be added to any Track with a stabilized mesh stream.

Compress Mesh Segments compression can produce significant file size reduction, with only slight loss of precision in vertex position.

Compression Encodings

There are two types of encodings avaliable for compressing stabilized clips.

  • SSDR: SSDR stands for Smooth Skinning Decomposition with Rigid Bones. This is a type of compression encoding that uses a set of abstract bones (not aligned with the human skeleton) and skin weights to store the deformations required to match the keyframe of a segment to the rest of the frames in the segment. It’s highly compressed but can have visible errors for frames that are very divergent from the keyframe. Mesh Streams SSDR are ideal for OMS Playback. They are not only smaller, but are also more performant in terms of amortized disk access, decoding and rendering. However, playback with SSDR has a slightly higher worst case per-frame IO cost, and uses a more expensive vertex shader (which is typically not a bottleneck).

  • Delta Encoding (AVV): Delta encodings compress the stabilized frames by storing the difference for each vertices between the keyframe and the rest of the frames in the segment. It offers much less compression compared to SSDR but its deformations are exact, and are not prone to error. Because of their reduced compression, delta encodings are only used as a fall back for when SSDR is unable to compress a segment without generating errors. Delta encodings are only compatible with AVV exports.

Parameters

  • Target Bone Count: The maximum number of bones to use for this Track. Compress Mesh Segments is driven by rigging data called Bones, just like the Skeletonization Stage. Reducing the maximum bone count will speed up the compression algorithm at the risk of higher error. For most cases, the default value of 32 is adequate, and higher values should only be used if your clip contains very long, very complex Segments. Note that currently, 128 is the maximum supported value. Default: 32

Important

During playback, there is a limit of 128 bones per OMS Player, so when composing a Multi-Track OMS, all Tracks combined cannot exceed this limit.

  • Initialization iterations: The number of iterations the compression algorithm uses to set initial bone positions. Higher values may produce better results, but will increase processing time significantly. Default: 50

  • Max Iterations: The maximum number of iterations the compression algorithm uses to refine bone placement and skin weighting. A very low setting might improve processing time but significantly worsen the result. Default: 50

  • Delta Fallback (AVV) This enables the use of delta fallback encodings for compression. This allows the more performant SSDR encodings to compress the easily deformed segments while more error prone segments are compressed with delta encodings.

    • Distance Limit When the distance between a frames source mesh and its deformed mesh is greater then the distance limit, that stabilized segment will switch over to using delta encodings.