Documentation

​
​

Development

User Acquisition

Monetization

Industry

Asset Transformer SDK

2025.7

Supported
​

User Manual

Python API

C# API

Changelog

Discussions

Asset Transformer SDK

2025.7

Supported
​

​
​
Get started
  • System requirements
  • Licensing
  • Setup
  • Migrate from Scenario Processor
Framework
  • Framework
  • Preferences
Input/output files
  • Supported formats
  • Import files
  • Export files
  • Export textures
  • CAD vs Mesh
Scene
  • Product structure
  • Occurrence
  • Component
  • Material
Algorithms
  • CAD
  • Healing
  • Optimization
  • Combine and bake
  • Reconstruction
  • UVs
    • Project on AABB
    • Normalize
    • SegmentMesh
    • Check UV for overlaps
    • Check for normalized UV channels
    • Check for existence of UV channels
    • Repack UV islands
    • Merge UV islands (affine)
    • Merge UV islands (relaxed)
    • Unwrap UV
Viewer
  • Viewer
Pixyz UI
  • Setup
  • Overview
  • Create a custom UI
Guidelines
  • Data preparation
  • Process point clouds
Debug and diagnose
  • Log files
  • Debug best practices
Other
  • Samples
  • Glossary
  1. Asset Transformer SDK (ex Pixyz)

Merge UV islands (affine)

Use this feature to merge UV islands on a 3D model using affine transformations, enabling precise adjustments like scaling, rotation, and translation to optimize the UV layout for texturing.
Read time 3 minutes
Last updated 9 months ago

API function: algo.mergeUVIslandsAffine
This function reduce the number of UV islands by merging UVs of neighbor patches when it is possible. Unlike algo.mergeUVIslandsRelaxed, this method will only apply affine transformation to the UV island, so its main target is model with hard surfaces. In doing so, it needs to find the possible ways of linking patches together. The weights can be used to control this order.
This example shows a model before (top) and after (bottom) processing. Notice the UV modifications on the arms of the model:
Merge UV Islands
Tip
This function is particularly suited to CAD models. For more organic shapes (like photogrammetry assets), prefer algo.mergeUVIslandsRelaxed.

Parameters

Occurrences

Select occurrences on which to merge the UV islands.

Channel

UV channel on which to merge the UV islands.

Scale weights

This parameter allows to give some more or less importance to the variations of the scale needed to perform the transform. It means that increasing the value will make patches with the same scale merge together first.

Max scale variation factor

This parameter fixes a maximum scale variation for the UV of each patch. It will forbid mergings that will change the scale above this value.

Curvature weights

This parameter will do the same than scale weights but based on the curvature of the line (set of edges) along the patches to merge. Using this with a higher value will increase the probability of merging along flat sides.

Use polygons weights and use vertices weights

These parameters are intended to take into accounts some weights precomputed on polygons or vertices. These can for instance be obtained from the visibility using algo.createVisibilityInformation followed by algo.transferVisibilityToPolygonalWeight. With this, the goal is in general to have the UV seams in less visible parts of the model. Another possibility for these weights is to paint in another software to better guide the algorithm later on.
For instance, when using polygon weights based on the visibility, we obtain seams in places that are less visible, like here, where seams are located on the inside of the arms (compared to the outside on the first image):
Merge UV Islands With Visibility

Allowed transformations

Here, you have to choose the most complex type of transformation you want the algorithm to be able to use, between TRSOnly and TRSAndSkew (using the enum algo.TransformationType).
TRSOnly: Only applies Translation, Rotation and Scale to the UVs
TRSAndSkew: Also allow to apply a skew transform (see image below)
Skew Transform

Allow UV inversion

Having this parameter checked means that UVs can be inverted, meaning that the applied textures can be mirrored if it allows for some more mergings.
Tip
The alignement of the UVs with respect to the geometry is not guaranted. The algorithm arbitrarily starts at a first patch and proceeds step by step by merging adjacent patches whenever possible with the constrained (guided by the parameters).

Rotation step

This parameter allows UV to rotate by multiples of this angle in degrees. -1 is used when no restriction is in place, and 0 or a value superior or equal to 360 for no rotation.
Rotation Step
Tip
Combining this parameter with a transformation different than TRS does not make a lot of sense as rotation is only tested for TRS transformations, so another transformation happening afterwards might break this rotation limitation.

Copyright © 2026 Unity Technologies
LegalPrivacy PolicyCookiesDocumentation Terms of UseDo Not Sell or Share My Personal InformationYour Privacy Choices (Cookie Settings)

"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S and elsewhere (more info here). Other names or brands are trademarks of their respective owners.

Some pages are machine-translated for convenience, and may contain inaccuracies. In the event of conflicting information, the English version is authoritative.

  • On this page
    • Parameters

      • Occurrences

      • Channel

      • Scale weights

      • Max scale variation factor

      • Curvature weights

      • Use polygons weights and use vertices weights

      • Allowed transformations

      • Allow UV inversion

      • Rotation step


Report a problem with this page