Project Title
UV editor improvements
Name
Alan Babu
Contact
Blender chat nickname: alan_void
Twitter: @alan_voidanhltr
Synopsis
Blender’s UV editor can be improved to make workflows faster and give more fine-grained control. I’d like to work on some of these improvements which are highly requested by users.
Benefits
The changes I have picked are ones that are already planned by the developers or are popular requests in the blender community. I believe these changes will speed up and improve UV editing workflow.
The overlay options proposed below could be useful while debugging and visualizing UVs in future development.
Deliverables
UV editing
-
UV move up/down/left/right using arrow keys
Move selected UVs using the arrow keys and shift/ctrl modifiers.
-
Arrow keys : move by one dynamic grid unit
-
Shift + Arrow Keys : move by one pixel unit and snap UV to pixel corner
-
Ctrl + Arrow Keys : move to neighboring UDIM tile(1 normalized unit)
Detailed Specifications:- #78405 - UV move up/down/left/right - blender - Blender Projects
-
-
More UV snapping options
Additional snap options
-
Edge
-
Edge center
-
Edge perpendicular
-
???Face center???(face snapping doesn’t make sense in 2d, does it?)
???There is no concept of active element in UV editor. It is quite useful in the 3d editor. Should I try to add that.
-
-
Straighten edges
An operator(???Or additional options to the current align operator) that would align a selected edge loop in the U or V axis.
For simplicity, initial implementation will only support single edge loop or multiple disconnected edge loops.(Will throw error/warning otherwise)
The length of the each edge would be proportional to
(i) its corresponding length in 3D or (ii) its previous UV length.
Total length of edge loop can be (i) previous length in UV or (ii) One normalized UV unit
Link to Issue:- straighten edges and unfold uv island.This specification unwraps the rest of the island after the edges are straightned. My proposal does not follow this. I assume user can pin the straightened vertices and do the unwrapping explicitly.
-
Gridify faces
An operator that would align a selected UV having grid topology(all quads) in the U and V axis.
For simplicity, initial implementation will only support strict grid topology. (Will throw error/warning otherwise)
The length of the each edge would be proportional to the average of the source edge lengths its row/column. Source edge length can be
(i) its corresponding length in 3D or (ii) its previous UV length.
Total length of grid in X and Y can be sourced from (i) previous length in UV or (ii) One normalized UV unit
Link to Issue:- Grid unwrap uv. This specification tackles a more general case. I will try to to generalize my implementation as time permits.
UV visualizations/overlays
-
UV island outline
Render the outline of islands in thicker/different color line.
The overlay menu will have a setting to control the opacity of this render style.
-
Render faces different color based on face winding
Render faces in blue or red depending on vertex corner winding of faces. Similar to Face orientation overlay in 3d viewport.
Overlay menu will have a tickbox to toggle this.
-
Show faded UV Map in different modes
When using the UV editor in no-sync mode currently only the mesh selected in 3d view is shown in the UV editor. This overlay will render a greyed out and uninteractable version of the unselected mesh in the editor. Similar to the one showed when texture painting.
Overlay menu will have a opacity setting for this render.
This may be extended to show the UV map in object mode or other modes.
-
Some other overlays additions
-
Seams : render edges which are seams in the 3d mesh in a different color.
-
Face center : The 3d viewport currently has an option to toggle the dot the represent face centers in face select mode. Add a similar setting to UV editor
-
Documentaion
- User manual
Project Details
I think I’ve added most of the details and UI/UX mockups in the deliverables itself. Since I’m not working on an entirely new system I’ll leave this empty.
Project Schedule
I would start in the second week of May. I’d like to go with the 16 week timeline.
Timeline
-
UV editing :- 6 weeks total
- UV move up/down/left/right using arrow keys :- 1 week
- More UV snapping options :- 2 weeks
- Straighten edges :- 1 week
- Gridify faces :- 2 weeks
-
UV visualizations/overlays :- 6 weeks total
- UV island outline :- 2 weeks
- Render faces different color based on face winding :- 1 week
- Show faded UV Map in different modes :- 2 weeks
- Some other overlays additions :- 1 weeks
-
Documentation :- 2 weeks
-
Delays :- 2 weeks
Should be available from 2nd week of May for whole duration.
Bio
My name is Alan Babu. I am a fourth year undergrad pursuing a Computer Science and Engineering Degree at Indian Institute of Technology Bombay.
I enjoy doing creative stuff like drawing, 3D modelling and some usual stuff like gaming, movies, music. I also do some game development on the side.
I started using Blender in 2017 and I still do for various projects. I am familiar with modelling, texturing, rigging, geometry nodes and procedural shaders. I also have experience using popular game engines like unreal, unity and godot.
I have worked on:-
- basic c++ game engine
- renderer of a game engine
- basic C compiler
- Ray traced renderer
- few web and mobile applications
- many other smaller projects
I would say I am quite proficient with c++ and python and know my way around the documentation if I need to understand concepts.
I have submitted a patch for the flip faces node in the geometry nodes module. Since I have experience using Blender and the coding knowledge required, I think I would be a good fit for this project.