Adjusting Mesh Segmentation

To unfold a 3D mesh into a 2D parameterization, Beast needs to split the mesh into multiple pieces—this is mesh segmentation, or chartification. Beast has several options for use in mesh segmentation. Set on a per target basis, these options support the use of different options per target in jobs with multiple targets. The first option, ILBSetUVUnwrapSegmentationThreshold() controls the number of charts created during mesh segmentation; the remaining three options—ILBSetUVUnwrapFlatness(), ILBSetUVUnwrapStraightness(), and ILBSetUVUnwrapCompactness()—affect optimization after segmentation is complete. These are based on weighted importance, where the higher the threshold, the more important the setting will be; while a setting of 0.0 will turn off the effect.

In most cases, adjustments to ILBSetUVUnwrapFlatness(), ILBSetUVUnwrapStraightness(), and ILBSetUVUnwrapCompactness() are not necessary. If you do not make a call to these functions, they will use their default values.

The ILBSetUVUnwrapSegmentationThreshold() is useful in baking light maps, which have better results if the normal deviation within a chart is relatively small.

ILBSetUVUnwrapSegmentationThreshold()

ILBSetUVUnwrapSegmentationThreshold() controls the number of charts created during mesh segmentation by setting the angular threshold (allowed normal deviation) for triangles in a chart. The valid range is 0.0 to 1.0: a higher threshold results in larger normal deviations and creates larger, but more curved charts; a lower threshold creates smaller, flat charts. The default setting is 0.3.

ILBSetUVUnwrapFlatness()

ILBSetUVUnwrapFlatness() sets the importance of having flat charts. Adjusting this does not affect the number of charts created (only ILBSetUVUnwrapSegmentationThreshold() affects the number of charts created); it affects the importance of flatness relative to straightness and compactness. The valid range is 0.0 to 1.0, with a default of 1.0.

ILBSetUVUnwrapStraightness()

ILBSetUVUnwrapStraightness() sets the importance of having straight chart boundaries. The valid range is 0.0 to 1.0, with a default of 0.5.

ILBSetUVUnwrapCompactness()

ILBSetUVUnwrapCompactness() sets the importance of having compact (round) charts. This is particularly useful for organic objects (such as plants, animals, and humans), for which compact charts may be preferred. For buildings, compactness should be 0.0. Compactness is typically "expensive" to compute, and should only be enabled when required. The valid range is 0.0 to 1.0, with a default of 0.0.