Repository navigation
Conversation
Add a "Bounding Box" method to Pack Charts that packs the UV islands of a tile by their bounding boxes using MaxRects (Best Short Side Fit). * auv_pack_maxrects: packs movable charts around fixed ones. Charts that do not fit stay in place and are reported as unpacked, selecting the ones that still overlap another chart. * auv_pack_utils: option validation, rotation candidates, convex hull and minimum-area oriented bounding box, chart bounds and transforms, shared with other packers. * Options dialog: profile (Fast, Balanced, Quality, Max), gap and margin as percent of the tile side, rotation step, and normalize orientation (rotates each chart to its minimum-area oriented bounding box before packing), plus "Scale to fit" when every chart is movable. * Works on the charts of the current tile; with an empty selection all of them are packed, otherwise unselected charts are obstacles. Expose the internal Wings3D packing (rows/columns) as the "Legacy" method of Pack Charts, next to the new packing methods. * Menu: "Legacy (Rows/Columns)" with an options dialog. * Options dialog: gap and margin as percent of the tile side, saved in the preferences like the other methods. * pack_legacy/2 arranges all charts of the current tile inside the tile's unit square (uniform rescale) using auv_placement:place_areas/3. The selection is ignored. * Adding option to Bounding Box method.
Collaborator
Author
Micheus
force-pushed
the
mv/uv-packing
branch
from
October 26, 2026 19:03
9637ef8 to
de3fac1
Compare
Add a "Polygon" method to Pack Charts that packs UV islands by their outlines, so small islands can fill the holes of larger ones. * auv_pack_poly: bottom-left fill on a conservative occupancy grid, verified with an exact polygon test, followed by a short exact compaction. Profiles control grid size, rotation candidates and compaction rounds. Islands that do not fit stay in place. * auv_poly: polygon geometry (collision with gap, containment). * auv_pack_utils: code shared by both packers (options, rotation candidates, OBB, chart transforms, outline extraction, scale search). * auv_pack_maxrects: renamed from auv_packing; uses auv_pack_utils. * New options: Max profile, polygon order, "Scale to fit" for both methods (uniform scale, only when every chart is movable). * Added option to legacy mode handle selected islands without scale them.
Micheus
force-pushed
the
mv/uv-packing
branch
from
October 28, 2026 01:42
de3fac1 to
89191a1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




A new Pack option was added to AutoUV window giving access to three packing
methods: "Legacy (Rows/Columns)", "Bounding Box" and "Polygon".
The Legacy (Rows/Columns) option is the native Wings3D's packing method that
was exposed with the addition of options to define Gap and Margin;
Two new methods was added:
islands of a tile by their bounding boxes using MaxRects (Best Short Side Fit).
small islands can fill the holes of larger ones.
NOTE:
Added three packing methods to AutoUV: Legacy (Rows/Columns), Bounding Box
and Polygon.