WIP: Luke's Custom Build 4.1 #119952

Draft
Lukas Sneyd wants to merge 4 commits from lcas/blender:410 into blender-v4.1-release

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
First-time contributor

A compilation of many features, main focus is selection. No default settings were harmed in the creation of this build.

Box Lasso and Circle Select
These are found in the keymap by default, but can also be changed from the viewport header. X-Ray related changes are in a new popover for the X-Ray header button. The rest are in a new popover for the Vert / Edge / Face select buttons in Edit mode, and a new Object Select button w/popover in Object mode.

The Object mode button and is disabled unless the user chooses to use header control instead of the keymap. The button itself will cycle through the different object selection modes. The user can remove any of the selection modes from the cycle from inside the popover. The button is not hidable, because there's nothing to attach the popover to.

Edit mode is more of the same. Buttons for Face and Edge selection mode cycling, with ability to remove unwanted modes from the cycle. Difference is the buttons are hidable since the popover has the Vert / Edge / Face select buttons to attach itself to. Backface select also has an optional button, all it does it toggle the feature on and off.

Mesh Object selection with Box, Lasso, and Circle (selection of non-mesh objects is unchanged)
Touch - Mesh object is touched by the selection area (Default for Box)
Enclose - Mesh object is completely inside the selection area
Origin - Mesh object origin is touched by the selection area (Default for Circle & Lasso)

Face selection with Box, Lasso, and Circle
Default - Face is touched in near select, Face Center is touched in select through / xray
Touch - Face is touched
Enclose - Face is fully inside
Center - Face center is touched

Edge selection with Box and Lasso
Default - If any edge is fully inside, only select fully inside edges, otherwise select any edges that are touched
Touch - Edge is touched
Enclose - Edge is fully inside

Edge selection with Circle
Touch - Edge is touched
Enclose - Edge is fully inside

Wireless Touch Object
Toolsetting for box, lasso and circle. If doing touch select mesh object in wireframe + xray, you can't select until the selection area touches a wire / origin. This removes that requirement.

Square Select
Toolsetting for circle select, turns it into a square. Made for Object mode because box does touch select without any additional calculations that circle and lasso require. Also works in Edit, Particle, Curve, Paint, Grease Pencil, and Node.

Adjustable Click Select
Userpref->Editing->Miscellaneous
Click select has an adjustable radius for selecting verts, edges, and faces in edit mode. Can also disable the unselected bias.

Select Through
Control select through in object and edit mode for box, lasso, and circle. Fully modular, can be as simple or complex as needed. Optional header button for easy / contextual toggle and visual feedback.

Automatic X-Ray
Toggle X-ray during box, lasso and/or circle select in object and edit mode. Fully modular, can be as simple or complex as needed. Optional header button for easy / contextual toggle and visual feedback.

Mesh normal selection filtering (not perfect but at least you can see what hasn't been selected vs having absolutely no idea what unseen mesh is erroneously selected on the other side of your object)

Backface Filter
Near select has major problems with selecting unwanted edges and faces that are facing away from the viewport. This feature fixes that problem, while leaving verts and X-Ray / Select Through alone with the Fix Near mode. There are other use cases for this, so there are 2 other modes for this feature. Front X-Ray includes vertices into the filter and only works in X-Ray select. No Backface does both Near and X-Ray for verts, edges, and faces.

A second major problem near select has, is not selecting everything you can see when dealing with complex mesh or similar situations where the viewport cannot distinguish between all of the individual verts / edges / faces. This can be mitigated by combining Select Through and Backface Filter in Front X-Ray mode. Turning Backface Filter on would now act very similar to turning off the X-Ray button. It still selects unseen mesh that is facing the viewport though. So it isn't exactly the same.

Click-drag direction improvements
Userpref->Input->Mouse->Keymap Drag Directions
8 different drag directions don't work very good. Try to use them for just left and right, the majority use-case. Best you can do is a bloated keymap that is either favored one direction over the other, is tilted 30 degrees off center, or has a significant "dead zone" where a tweak event happens instead. I made it work right. Can pick either left/right or up/down. Keymap will have buttons to choose assign it to the Any Left, Right, Up, or Down direction depending which userpref is being used.

Hide xray facedots
X-ray and Solid shading facedots can be toggled independently. Contextual operator inside the Mesh Overlays popover

Combine the shading and xray header buttons
Inside the Shading popover is a checkbox called "Shink header" it will remove the 4 shader buttons from the 3d viewport (Wire, Solid, Mat, Render). The X-Ray button will take their place next to the shading popover, and its icons will change to reflect with shading mode is active. Best used in combination with the optional header buttons for auto xray and select through.

Custom mouse cursors
Userpref->Editing->Miscellaneous
Bunch of dropdowns for the different mouse cursors Blender uses. System, Edit, Paint, 2d, Knife, Pencil, Eraser, Eyedropper. Can change them to different cursors that are included with blender as well as a few I made myself. Windows only for the most part, though Mac and Linux can change some of them.

Active Header Brightness
Userpref->Interface->Editors->Header Highlight
Adjust/disable the brightness increase that Blender gives to the active window's header

Adjustable camera zoom
Keymap for zoom has a slider to adjust how fast it moves

Adjustable frame selected distance
Keymap for frame selected has a slider to adjust how far away it puts the camera

Invoke Last operator
New operator that works like Repeat Last without doing everything exactly the same

Python operator that cycles between only box and lasso select

More info:

https://devtalk.blender.org/t/x-ray-selection-experiments-build/24872

https://blenderartists.org/t/blender-with-better-selection-and-more/1471220

A compilation of many features, main focus is selection. No default settings were harmed in the creation of this build. **Box Lasso and Circle Select** These are found in the keymap by default, but can also be changed from the viewport header. X-Ray related changes are in a new popover for the X-Ray header button. The rest are in a new popover for the Vert / Edge / Face select buttons in Edit mode, and a new Object Select button w/popover in Object mode. The Object mode button and is disabled unless the user chooses to use header control instead of the keymap. The button itself will cycle through the different object selection modes. The user can remove any of the selection modes from the cycle from inside the popover. The button is not hidable, because there's nothing to attach the popover to. Edit mode is more of the same. Buttons for Face and Edge selection mode cycling, with ability to remove unwanted modes from the cycle. Difference is the buttons are hidable since the popover has the Vert / Edge / Face select buttons to attach itself to. Backface select also has an optional button, all it does it toggle the feature on and off. *Mesh Object selection with Box, Lasso, and Circle (selection of non-mesh objects is unchanged)* Touch - Mesh object is touched by the selection area (Default for Box) Enclose - Mesh object is completely inside the selection area Origin - Mesh object origin is touched by the selection area (Default for Circle & Lasso) *Face selection with Box, Lasso, and Circle* Default - Face is touched in near select, Face Center is touched in select through / xray Touch - Face is touched Enclose - Face is fully inside Center - Face center is touched *Edge selection with Box and Lasso* Default - If any edge is fully inside, only select fully inside edges, otherwise select any edges that are touched Touch - Edge is touched Enclose - Edge is fully inside *Edge selection with Circle* Touch - Edge is touched Enclose - Edge is fully inside **Wireless Touch Object** Toolsetting for box, lasso and circle. If doing touch select mesh object in wireframe + xray, you can't select until the selection area touches a wire / origin. This removes that requirement. **Square Select** Toolsetting for circle select, turns it into a square. Made for Object mode because box does touch select without any additional calculations that circle and lasso require. Also works in Edit, Particle, Curve, Paint, Grease Pencil, and Node. **Adjustable Click Select** *Userpref->Editing->Miscellaneous* Click select has an adjustable radius for selecting verts, edges, and faces in edit mode. Can also disable the unselected bias. **Select Through** Control select through in object and edit mode for box, lasso, and circle. Fully modular, can be as simple or complex as needed. Optional header button for easy / contextual toggle and visual feedback. **Automatic X-Ray** Toggle X-ray during box, lasso and/or circle select in object and edit mode. Fully modular, can be as simple or complex as needed. Optional header button for easy / contextual toggle and visual feedback. Mesh normal selection filtering (not perfect but at least you can see what hasn't been selected vs having absolutely no idea what unseen mesh is erroneously selected on the other side of your object) **Backface Filter** Near select has major problems with selecting unwanted edges and faces that are facing away from the viewport. This feature fixes that problem, while leaving verts and X-Ray / Select Through alone with the Fix Near mode. There are other use cases for this, so there are 2 other modes for this feature. Front X-Ray includes vertices into the filter and only works in X-Ray select. No Backface does both Near and X-Ray for verts, edges, and faces. A second major problem near select has, is not selecting everything you can see when dealing with complex mesh or similar situations where the viewport cannot distinguish between all of the individual verts / edges / faces. This can be mitigated by combining Select Through and Backface Filter in Front X-Ray mode. Turning Backface Filter on would now act very similar to turning off the X-Ray button. It still selects unseen mesh that is facing the viewport though. So it isn't exactly the same. **Click-drag direction improvements** *Userpref->Input->Mouse->Keymap Drag Directions* 8 different drag directions don't work very good. Try to use them for just left and right, the majority use-case. Best you can do is a bloated keymap that is either favored one direction over the other, is tilted 30 degrees off center, or has a significant "dead zone" where a tweak event happens instead. I made it work right. Can pick either left/right or up/down. Keymap will have buttons to choose assign it to the Any Left, Right, Up, or Down direction depending which userpref is being used. **Hide xray facedots** X-ray and Solid shading facedots can be toggled independently. Contextual operator inside the Mesh Overlays popover **Combine the shading and xray header buttons** Inside the Shading popover is a checkbox called "Shink header" it will remove the 4 shader buttons from the 3d viewport (Wire, Solid, Mat, Render). The X-Ray button will take their place next to the shading popover, and its icons will change to reflect with shading mode is active. Best used in combination with the optional header buttons for auto xray and select through. **Custom mouse cursors** *Userpref->Editing->Miscellaneous* Bunch of dropdowns for the different mouse cursors Blender uses. System, Edit, Paint, 2d, Knife, Pencil, Eraser, Eyedropper. Can change them to different cursors that are included with blender as well as a few I made myself. Windows only for the most part, though Mac and Linux can change some of them. **Active Header Brightness** *Userpref->Interface->Editors->Header Highlight* Adjust/disable the brightness increase that Blender gives to the active window's header **Adjustable camera zoom** Keymap for zoom has a slider to adjust how fast it moves **Adjustable frame selected distance** Keymap for frame selected has a slider to adjust how far away it puts the camera **Invoke Last operator** New operator that works like Repeat Last without doing everything exactly the same Python operator that cycles between only box and lasso select More info: https://devtalk.blender.org/t/x-ray-selection-experiments-build/24872 https://blenderartists.org/t/blender-with-better-selection-and-more/1471220
Lukas Sneyd added 1 commit 2024-03-27 09:09:15 +01:00
Lukas Sneyd added 1 commit 2024-04-04 04:50:48 +02:00
Lukas Sneyd added 1 commit 2024-04-04 04:53:48 +02:00
Lukas Sneyd added 1 commit 2024-04-08 06:51:44 +02:00
This pull request is marked as a work in progress.
This branch is out-of-date with the base branch

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u 410:lcas-410
git checkout lcas-410
Sign in to join this conversation.
No reviewers
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#119952
No description provided.