Very impressive article Jake! You are very talented.
nice article! i love seeing the breakdowns.
Take a look at a UV island packing add-on for Blender called “ShotPacker” by Gumroad user ambi. The developer implemented an algorithm for packing UVs quite a bit tighter than Blender does it.
Use “Install Add-on from File…” in Blender User Preferences/Add-ons and navigate to packer.zip. Then turn it on in the add-ons tab.
Features and requirements
- Includes parameters to set iteration count and island margin.
- Currently only works on meshes with no ngons or corrupted data. Doesn’t support overlapping UV.
- If the mesh has double vertices the algorithm has unexpected behavior. It’s best to remove doubles before running packing.
The add-on is located in UV/Image editor Tools tab under UV SA Packing.
- Island iterations determine how many iterations each island will take. 20 is fast. 200 can be very slow. The function is exponential. The higher the number, more precision you will have.
- Rotation is rotation step. 0 is no rotation. 90 preserves texel orientation. For example 20 rotation means the island is rotated to 360/20=18 different positions at every checkpoint. 20 rotation also increases the running time 18x.
- Flip allows or disallows mirroring the island over an axis.
- Margin determines how big the edge margin is for the island. 1.0 is the length of the entire UV area. So something like 0.005 is in the reasonable range. For example with 1024×1024 textures, 10 pixels is 10/1024=0.0098
- Start percentage determines from which scale the add-on starts initially. 1.00 is always optimal and only increases the run-time slightly.
- When you’re satisfied with parameters, just click Start pack to start the algorithm. Press escape to cancel the execution.
- You can optionally turn on Blender console (Main Menu > Window > Toggle System Console) to see what the add-on is doing in a more verbose form.
- It’s recommended to CTRL+A (average islands scale), CTRL+P (pack islands) to pre-pack the islands before running the algorithm, if you’re having problems. It ensures that the islands are sorted as Blender sees them.
You can find more details on the tool here.