UVgami

Automatic UV unwrapping for Blender

View the Project on GitHub danielboxer/UVgami

UVgami User Guide

UVgami is a Blender add-on that allows you to automatically unwrap your meshes with a single button click.

There are three supported UV unwrapping engines. More info here.

Supported Operating Systems:

Blender 2.9+

Table of Contents

Installation

Instructions

Unwrap a Mesh

Unwrap Button

Unwrap Queue

Unwrap Buttons

Unwrap Buttons

Stop

Stop Button

Keep what’s finished and stop the rest. If the mesh is made up of multiple pieces, the finished ones will be kept and the rest will be moved to a collection so you can see what wasn’t unwrapped yet.

Cancel

Cancel Button

Cancel the unwrap and discard the UV map.

Cancel All

Cancel all active unwraps at once. This button appears when there are multiple unwraps in the queue.

Batch Unwrap

Batch

Joined Objects

Separated Objects

Progress Bar

Progress Bar

Settings

Symmetry

Use symmetry when you have a symmetrical mesh. The more axes selected, the faster the unwrap will be.

Symmetry

Symmetry

Symmetry

Speed

Concurrent mode

Concurrent

Unwrap multiple meshes simultaneously, making the unwrap much faster. This also has an effect on meshes that need to be separated. The amount of meshes able to be unwrapped at the same time depends on your computer.

You can choose the amount of cores to use below. For example, with 8 cores you can unwrap 8 meshes simultaneously.

Timeout

Set a maximum time in minutes for each unwrap. If an unwrap exceeds this time, the mesh will be moved to the “UVgami Not Unwrapped” collection. Set to 0 to disable the timeout. This is useful for when unwrapping multiple things at once so if one times out the rest will still unwrap.

Cuts

(should be used with concurrent mode on)

This splits the mesh apart, unwraps the pieces separately, then joins them together when finished. Doing this will make the unwrap much faster and is very useful for high poly meshes.

Sometimes there are errors when cuts is turned on. This is because bisecting the mesh can produce invalid geometry.

Cuts

Even

Make even cuts along the XYZ axes of the mesh. The more cuts made, the faster the unwrap will be. Keep in mind there will be seams along the cuts so you wouldn’t want to do too many.

Hold shift to select or deselect multiple axes.

Seams

This is for if you want more control over where the cuts will be. You can manually mark seams and the mesh will be cut there.

Grid

Grid

Pack

Pack

Packing uses the Blender packing engine. This is just to make packing a bit easier.

Misc

Info

The info section below shows information about past unwraps. Any errors will also be shown here.

Preferences

Preferences

Save the Blender file before and after unwrapping to avoid losing work.

Show Popup

Show a popup when all meshes are finished unwrapping. This might contain other information like if any objects were invalid or if there were any errors.

Progress Bar Option

Show a progress bar in the 3D view while unwrapping.

Not Unwrapped Collection

Add meshes that failed to unwrap, were cancelled, or were stopped to a collection.

Reset Settings

Reset all UVgami properties to their default values.

Engines

Pick the engine at the top of the main panel.

Engine Hardware Install Notes
OptCuts CPU bundled Default CPU engine. Least stretching and islands, but slow
PartUV GPU (CUDA) settings, Windows and Linux only GPU engine. Much faster than OptCuts on dense meshes
xatlas CPU bundled Fast CPU engine. Sometimes better than Smart UV Project

OptCuts

Engine Path

To use a different OptCuts build instead of the bundled one, select it with the button on the right of the Engine Path field. The optcuts app inside the engine folder is what should be selected. Builds are on the OptCuts engine releases as optcuts-engine-X.X.X-operating-system.zip.

Engine Path

Quality

Quality

Increasing the unwrap quality will produce a UV map with less stretching. This also will make the unwrap take longer, so it’s recommended to keep it at medium.

Import UVs

Import Uvs

Use the existing UV map on the input mesh as the starting point.

Some use cases:

Preserve Mesh

Preserve Mesh

Preserve Mesh: Full

Preserve Mesh: Partial

Seam Restrictions

Seam Restrictions

Draw on areas of the mesh you don’t want seams added

Seam Restrictions

Attribution for 3D models:
“25 Animals Pack” (https://skfb.ly/orQpx) by MadTrollStudio is licensed under Creative Commons Attribution (http://creativecommons.org/licenses/by/4.0/)

Before seam restrictions:

Seams Before Restrictions

UVs Before Restrictions

After seam restrictions:

Seams After Restrictions

UVs After Restrictions

Weight

Use the Weight slider to control how strictly the seam restrictions are followed. A higher weight will avoid the restricted areas more, but will take longer to finish the unwrap.

Visual Mode

Visual Button

Press to enter visual mode. This will show a real time view of the unwrap as it progresses. All keyboard and mouse input will be blocked. Press ESC to exit visual mode.

Finish percentage

Finish percent

Stop the unwrap early based on the amount of stretching.

OptCuts Limitations

High Poly Meshes

Unwrapping high/medium poly meshes is very slow

Current ways to speed up the unwrap:

Non Manifold Meshes

OptCuts can’t unwrap some non manifold meshes. For example, the Suzanne monkey head is invalid because it’s non manifold. Unwrapping it will have this result, where the eyes are unwrapped succesfully, and the head was not:

Invalid Objects

In this case, the problem is this area, which when fixed, will unwrap properly:

Suzanne Suzanne

PartUV

PartUV needs CUDA and runs on Windows or Linux. Install the add-on first, then in UVgami preferences click install. See below for the two segmentation install options:

Segmentation mode

Threshold

A lower threshold produces more UV islands.

xatlas

xatlas is bundled and auto detected like OptCuts. It’s very fast but will result in more islands/seams than Optcuts and PartUV. Though it can still have better results than Blender smart UV project.

Limitations

Triangulation

Invalid Objects