Moo-Ack-Productions / MCprep

Blender python addon to increase workflow for creating minecraft renders and animations
https://theduckcow.com/MCprep
GNU General Public License v3.0
285 stars 24 forks source link

New operator: Scale individual UV faces #29

Closed TheDuckCow closed 5 years ago

TheDuckCow commented 7 years ago

The "why didn't I create this 4 years ago" operator we've all been waiting for. The functionality would be similar to having a modal setting of "individual origins" in the 3D view, but for individual faces in the UV editor view. This helps combat non-perfect pixel lineups or materials whose settings make UV edges bleed between pixels of a texture.

This should be implemented as a modal operator, potentially with its own shortcut key (some modification of s).

TheDuckCow commented 7 years ago

Has now been largely implemented, simpluneed to wrap into s mofs operator and determine the best UI location and/or hotkey to trigger scaling.

Demo here: https://twitter.com/theduckcow/status/899513916149157888

Note to implement the modal,will have to rethink how the caching or undoing will work while minimizing overhead or raw duplication of all UV data initial state, though it might be the only way.

TheDuckCow commented 7 years ago

Note to self: realizing it's a significant effort to implement as a natural modal operator. On top of having the basic function working, it also needs to implement (to make consistent with blender):

Goals:

While workarounds exist to implement scaling using built in method and capabilities (e.g. via splitting vertices, scaling in UV editor, and then removing duplicates), that introduces changes of original geometry and is overall a destructive workflow. This method will be direct data manipulations of the UV maps only.

TheDuckCow commented 5 years ago

Reverted on the plans and ambitions above in favor of an "MVP". Using the redo last slider, may revisit making this a modal operator sometime in the future for personal educational purposes. Basic version without modal is currently in dev and will release in 3.1.1.