Compress Mesh Segments

Requirements

Input Streams: Mesh Stream (Stabilized)

Output Streams: Mesh Stream with stabilized segment compression

Overview

Important

As of HoloEdit 2023.1, this stage name has been changed from SSDR to Compress Mesh Segments.

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.

Note

Compress Mesh Segments is driven by rigging data called Bones, just like the Skeletonization Stage. Settings are provided to drive the target bone count of a Compress Mesh Segments Stage, and the amount of iterations used to produce a good compression result.

Parameters

  • Target Bone Count: The maximum number of bones to use for this Track. 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

  • Refinement 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

Working with Compression Mesh Segments

Compress Mesh Segments is HoloEdit’s mesh-based compression stage. For each segment, Compress Mesh Segments expresses the set of frames as a single keyframe and numerous in-between frames. Instead of each in-between frame being a separate set of points, the in-between frame’s points are encoded as linearly blended offsets from the keyframe, and stored as a skeletal animation that can be efficiently decoded on the GPU during playback.

Note

Mesh Streams with Compress Mesh Segments 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 Compress Mesh Segments has a slightly higher worst case per-frame IO cost, and uses a more expensive vertex shader (which is typically not a bottleneck).