Checker Deselect not working correctly #73836

Closed
opened 2020-02-15 13:54:28 +01:00 by Mobin · 30 comments

System Information
Operating system: Windows-10-10.0.18362-SP0 64 Bits
Graphics card: GeForce GTX 1060 6GB/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 442.19

Blender Version
Broken: version: 2.82 (sub 7), branch: master, commit date: 2020-02-12 16:20, hash: 77d23b0bd7
Worked: (optional)

Short description of error
Checker Deselect not working correctly

Exact steps for others to reproduce the error
1-make a cylinder with 42 vert
2-select cylinder face loop
3-do a checker deselect of 2 4 (2 deselect and 4 select)
4- see that it always have one 3 deselect and one 3 selects on the opposite sides. (it does not follow the 2 deselect and 4 select)

**System Information** Operating system: Windows-10-10.0.18362-SP0 64 Bits Graphics card: GeForce GTX 1060 6GB/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 442.19 **Blender Version** Broken: version: 2.82 (sub 7), branch: master, commit date: 2020-02-12 16:20, hash: `77d23b0bd7` Worked: (optional) **Short description of error** Checker Deselect not working correctly **Exact steps for others to reproduce the error** 1-make a cylinder with 42 vert 2-select cylinder face loop 3-do a checker deselect of 2 4 (2 deselect and 4 select) 4- see that it always have one 3 deselect and one 3 selects on the opposite sides. (it does not follow the 2 deselect and 4 select)
Author

Added subscriber: @Mobin-2

Added subscriber: @Mobin-2

#97357 was marked as duplicate of this issue

#97357 was marked as duplicate of this issue

#92109 was marked as duplicate of this issue

#92109 was marked as duplicate of this issue

#78464 was marked as duplicate of this issue

#78464 was marked as duplicate of this issue

#78138 was marked as duplicate of this issue

#78138 was marked as duplicate of this issue

Added subscriber: @jenkm

Added subscriber: @jenkm

It goes from the active face in both directions at the same time, so there is no bug.

7 6 5 4 3 2 1 0
              0 1 2 3 4 5 6 7
_ _ X X X X _ _ _ X X X X _ _
It goes from the *active* face in both directions at the same time, so there is no bug. ``` 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 _ _ X X X X _ _ _ X X X X _ _ ```
Author

In #73836#872274, @jenkm wrote:
It goes from the active face in both directions at the same time, so there is no bug.

7 6 5 4 3 2 1 0
              0 1 2 3 4 5 6 7
_ _ X X X X _ _ _ X X X X _ _

so it's Useless for loops and needs to be face selected perfect or cycle through offset and controlled by EYE? This is useless and an unreliable method! what if I wanted to use it for more then 50 faces? Saying there is no bug is not an answer if the tool provided is ify at best!
No wonder why so many users select and deselect each face by eye to begin with!
This tool/script needs to be reliable not frustrating.
At least add an option for us to choose if we want both ways or one way.

> In #73836#872274, @jenkm wrote: > It goes from the *active* face in both directions at the same time, so there is no bug. > > ``` > 7 6 5 4 3 2 1 0 > 0 1 2 3 4 5 6 7 > _ _ X X X X _ _ _ X X X X _ _ > ``` so it's Useless for loops and needs to be face selected perfect or cycle through offset and controlled by EYE? This is useless and an unreliable method! what if I wanted to use it for more then 50 faces? Saying there is no bug is not an answer if the tool provided is ify at best! No wonder why so many users select and deselect each face by eye to begin with! This tool/script needs to be reliable not frustrating. At least add an option for us to choose if we want both ways or one way.

@Mobin-2 select loop > deselect one face > checker deselect > re-select one face if needed.

@Mobin-2 select loop > deselect one face > checker deselect > re-select one face if needed.
Author

Thanks for the workaround.
Still think this this tool/script needs a bit of attention put to it.

Thanks for the workaround. Still think this this tool/script needs a bit of attention put to it.

Added subscriber: @iss

Added subscriber: @iss

Changed status from 'Needs Triage' to: 'Archived'

Changed status from 'Needs Triage' to: 'Archived'
Richard Antalik self-assigned this 2020-02-17 11:05:24 +01:00

Not a bug - closing.

Not a bug - closing.

Added subscriber: @Nutter

Added subscriber: @Nutter

I have to agree with Mobin here - just because it's working based on the current algorithm, doesn't mean it's working as designed. It's designed to deselect by a user specified pattern, and it is not doing that.

The most simple repo case for just how wrong this is:

  • Create a default cylinder (32 sides, ngon caps)
  • Select all the sides
  • Perform checker deselect with a pattern of Deselected: 2, Selected: 2.
  • It's really obvious the users expected behaviour here is not what is performed by Checker Deselect.

Please consider re-opening this, as it is indeed a valid bug.

I have to agree with Mobin here - just because it's working based on the current algorithm, doesn't mean it's working as designed. It's designed to deselect by a user specified pattern, and it is *not* doing that. The most simple repo case for just how wrong this is: - Create a default cylinder (32 sides, ngon caps) - Select all the sides - Perform checker deselect with a pattern of Deselected: 2, Selected: 2. - It's really obvious the users expected behaviour here is not what is performed by Checker Deselect. Please consider re-opening this, as it is indeed a valid bug.

Added subscriber: @Beq

Added subscriber: @Beq

+1 This should be re-opened.
The current behaviour is clearly not correct in accordance to the name of the function and the expected behaviour. It is near impossible to predict what the result will be without knowing the internals of the algorithm; "Checker deselect" by definition is intended to give alternating even distributed pattern of selected and deselected. Even the most simple use case beyond 1x1 does not fit the expected behaviour, as Richard's example above demonstrates.

+1 This should be re-opened. The current behaviour is clearly not correct in accordance to the name of the function and the expected behaviour. It is near impossible to predict what the result will be without knowing the internals of the algorithm; "Checker deselect" by definition is intended to give alternating even distributed pattern of selected and deselected. Even the most simple use case beyond 1x1 does not fit the expected behaviour, as Richard's example above demonstrates.

As this isn't getting any traction, I've created a new report here: https://developer.blender.org/T78138

As this isn't getting any traction, I've created a new report here: https://developer.blender.org/T78138

Issue here is, that this site is bug tracker, so if something is not working as it is supposed to, it is reported here. We could change or improve this behavior, but from available resources I can see that current behavior is correct. https://docs.blender.org/manual/en/latest/modeling/curves/selecting.html#checker-deselect

I personally don't know if by changing this feature, no workflow would be rendered difficult or impossible, so I can't consider if current behavior is appropriate.

Please use other channels for user feedback and feature requests: https://wiki.blender.org/wiki/Communication/Contact#User_Feedback_and_Requests

For more information on why this isn't considered a bug, visit: https://wiki.blender.org/wiki/Reference/Not_a_bug

Issue here is, that this site is bug tracker, so if something is not working as it is supposed to, it is reported here. We could change or improve this behavior, but from available resources I can see that current behavior is correct. https://docs.blender.org/manual/en/latest/modeling/curves/selecting.html#checker-deselect I personally don't know if by changing this feature, no workflow would be rendered difficult or impossible, so I can't consider if current behavior is appropriate. Please use other channels for user feedback and feature requests: https://wiki.blender.org/wiki/Communication/Contact#User_Feedback_and_Requests For more information on why this isn't considered a bug, visit: https://wiki.blender.org/wiki/Reference/Not_a_bug

@iss : Sorry to be so persistent on this, but the current behaviour is absolutely not what is described in the documentation: https://docs.blender.org/manual/en/latest/modeling/meshes/selecting.html#selection-tools

Changes the current selection so that only every Nth elements (vertices, edges or faces, depending on the active selection mode) will remain selected, starting from the active one.

From my repro steps (32 sided default cylinder).
Before:
image.png
After:
image.png

This is not the behaviour described in the documentation. It just isn't. The documentation does describe the intended behaviour (which is what we want), which is why this is a valid bug.

@iss : Sorry to be so persistent on this, but the current behaviour is absolutely not what is described in the documentation: https://docs.blender.org/manual/en/latest/modeling/meshes/selecting.html#selection-tools > Changes the current selection so that only every Nth elements (vertices, edges or faces, depending on the active selection mode) will remain selected, starting from the active one. From my repro steps (32 sided default cylinder). Before: ![image.png](https://archive.blender.org/developer/F8643960/image.png) After: ![image.png](https://archive.blender.org/developer/F8643962/image.png) This is not the behaviour described in the documentation. It just isn't. The documentation does describe the intended behaviour (which is what we want), which is why this is a valid bug.

This tool walks on topology in all directions and deselects every Nth element starting from the active one (just like the tooltip says).
It was originally called "Select Nth". Just the term "checker" gives a better description of the result.
Actually not every Nth, but Nth with Skip. But this "Nth" and "Skip" logic is not intuitive, so it was changed in the UI to the number of "Selected" and "Deselected" elements.

So it works as designed.

This tool walks on topology in all directions and **deselects every Nth element starting from the active one** (just like the tooltip says). It was originally called "Select Nth". Just the term "checker" gives a better description of the result. Actually not every `Nth`, but `Nth` with `Skip`. But this "Nth" and "Skip" logic is not intuitive, so it was changed in the UI to the number of "Selected" and "Deselected" elements. So it works as designed.

Again, what you're describing is the internal details of the algorithm - just because it's doing what the algorithm is expected to, doesn't mean it matches either the documentation nor what users expect. Users don't (and shouldn't have to) know the implementation details.

If you look at the second screenshot, there are 3 deselected faces adjacent at the start (and thus a single deselected face on the far side). Yes the algorithm is walking both directions and deselecting 2 faces including the active face. That is indeed what the algorithm is meant to be doing. But that's not at all what a user wants when they've selected "Deselected: 2, Selected: 2". There are no settings this works for as expected other than "Deselected: 1".

A simple fix would be the pattern starts with deselect in one direction, and when walking the other direction it starts with selecting instead.

Again, what you're describing is the internal details of the algorithm - just because it's doing what the algorithm is expected to, doesn't mean it matches either the documentation nor what users expect. Users don't (and shouldn't have to) know the implementation details. If you look at the second screenshot, there are *3* deselected faces adjacent at the start (and thus a single deselected face on the far side). Yes the algorithm is walking both directions and deselecting 2 faces including the active face. That is indeed what the algorithm is meant to be doing. But that's not at all what a user wants when they've selected "Deselected: 2, Selected: 2". There are no settings this works for as expected other than "Deselected: 1". A simple fix would be the pattern starts with deselect in one direction, and when walking the other direction it starts with selecting instead.

What I'm trying to say is that there's no bug in the tool. It's just such a weird tool.
If you think that the documentation or tooltips do not describe it well, then suggest improvements to the documentation, it is easy to fix.

The documentation does not say that the result will be "2 selected, 2 deselected",
it says that the tool will "deselect 2, select 2" starting from the active.

I understand that you might want to see that result:

checker-select-2.png

but this tool is designed to do that:

checker-select-1.png

Moreover, in your simple case with one loop, there's no difficulty to deselect one element (to unclose the loop), and get an even pattern as you want.

What I'm trying to say is that there's no **bug** in the tool. It's just such a weird tool. If you think that the documentation or tooltips do not describe it well, then suggest improvements to the documentation, it is easy to fix. The documentation does not say that **the result will be** "2 selected, 2 deselected", it says that the tool will "deselect 2, select 2" starting from the active. I understand that you might want to see that result: ![checker-select-2.png](https://archive.blender.org/developer/F8645051/checker-select-2.png) but this tool is designed to do that: ![checker-select-1.png](https://archive.blender.org/developer/F8645050/checker-select-1.png) Moreover, in your simple case with one loop, there's no difficulty to deselect one element (to unclose the loop), and get an even pattern as you want.

Added subscriber: @Tina_Christine

Added subscriber: @Tina_Christine

Added subscriber: @jachymmichal

Added subscriber: @jachymmichal

@jenkm On behalf of all confused users: Thank you for explaining how to use this tool :).

select loop > deselect one face > checker deselect > re-select one face if needed.

@jenkm On behalf of all confused users: Thank you for explaining how to use this tool :). > select loop > deselect one face > checker deselect > re-select one face if needed.

Added subscriber: @Wovchick

Added subscriber: @Wovchick

Removed subscriber: @Wovchick

Removed subscriber: @Wovchick

Added subscriber: @LuckyChris

Added subscriber: @LuckyChris
Member

Added subscribers: @Hrofti, @EAW

Added subscribers: @Hrofti, @EAW
Sign in to join this conversation.
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
11 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#73836
No description provided.