User interface improvements for attribute search #85881

Closed
opened 2021-02-22 14:14:17 +01:00 by Dalai Felinto · 16 comments

Design task: #85280

This depends on #85658.


{F9750374, size=full}


The idea is to go beyond the basic search list and indeed show:

  • Data Type
  • Category
  • Attribute
  • Domain.
Design task: #85280 This depends on #85658. --- {[F9750374](https://archive.blender.org/developer/F9750374/image.png), size=full} --- The idea is to go beyond the basic search list and indeed show: * Data Type * Category * Attribute * Domain.
Author
Owner

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

Changed status from 'Needs Triage' to: 'Confirmed'
Author
Owner

Added subscriber: @dfelinto

Added subscriber: @dfelinto

#85280 was marked as duplicate of this issue

#85280 was marked as duplicate of this issue

Added subscriber: @user1

Added subscriber: @user1

Could a dropdown inside of the new string node be a good place to store existing attributes in a list?

Could a dropdown inside of the new string node be a good place to store existing attributes in a list?
Member

Added subscriber: @HooglyBoogly

Added subscriber: @HooglyBoogly
Member

@user1 That's exactly what this design is for.

@user1 That's exactly what this design is for.
Member

Note that in D10623 I strayed from the design above in a few ways:

  1. The data types are indicated on the right side instead of the left with socket type icons.
  • Techincally, there are issues drawing the socket type icons here
  • We may not have socket types for all attribute types
  • Indicating data types with just a color is not always accessible
  1. The domain is on the left (grayed out with arrows).
  • I like the way this establishes hierarchy. e.g. "The attribute exists in the edge domain"
  • Without a cohesive set of icons for the domains, icons look weird.
  1. It does not display the "Category".
  • I think we settled on "Original Data", "Nodes", and "Built-in" as the categories, but I'm not sure because that's not in the design.
  • Personally I think some of the more specific categories (if you want to call them that) like vertex groups don't make sense to distinguish in the context of generalized attributes

One thing to keep in mind is that we can also use custom tooltips and even a right click menu for the search if it's helpful.

Note that in [D10623](https://archive.blender.org/developer/D10623) I strayed from the design above in a few ways: 1. The data types are indicated on the right side instead of the left with socket type icons. - Techincally, there are issues drawing the socket type icons here - We may not have socket types for all attribute types - Indicating data types with just a color is not always accessible 2. The domain is on the left (grayed out with arrows). - I like the way this establishes hierarchy. e.g. "The attribute exists in the edge domain" - Without a cohesive set of icons for the domains, icons look weird. 3. It does not display the "Category". - I think we settled on "Original Data", "Nodes", and "Built-in" as the categories, but I'm not sure because that's not in the design. - Personally I think some of the more specific categories (if you want to call them that) like vertex groups don't make sense to distinguish in the context of generalized attributes One thing to keep in mind is that we can also use custom tooltips and even a right click menu for the search if it's helpful.
Author
Owner

We may not have socket types for all attribute types

Can you give some examples?

Indicating data types with just a color is not always accessible

This is a separate issue. We can add pattern/hashes/... for the sockets as a whole to make them more accessible.

I like the way this establishes hierarchy. e.g. "The attribute exists in the edge domain"

It does indeed. However this is the same for categories. The question may then be, are users thinking in terms of (let me find the attribute X that is in the points; or let me find the attribute Y that I created as a node/builtin/...)

Personally I think some of the more specific categories (if you want to call them that) like vertex groups don't make sense to distinguish in the context of generalized attributes

We can have a generic "User/Original Data/..." however we want to call them in the spreadsheet in those cases. Though I can't see why Vertex Group wouldn't be a good category.

I think we settled on "Original Data", "Nodes", and "Built-in" as the categories, but I'm not sure because that's not in the design.

In the design we have "Nodes", "Built-in", and the Custom, the work "Custom" is never exposed to the user though, and it is actually UV Map, Vertex Group. In the documentation we can use what we plan to use for spreadsheet (User/Original Data)?

> We may not have socket types for all attribute types Can you give some examples? > Indicating data types with just a color is not always accessible This is a separate issue. We can add pattern/hashes/... for the sockets as a whole to make them more accessible. > I like the way this establishes hierarchy. e.g. "The attribute exists in the edge domain" It does indeed. However this is the same for categories. The question may then be, are users thinking in terms of (let me find the attribute X that is in the points; or let me find the attribute Y that I created as a node/builtin/...) > Personally I think some of the more specific categories (if you want to call them that) like vertex groups don't make sense to distinguish in the context of generalized attributes We can have a generic "User/Original Data/..." however we want to call them in the spreadsheet in those cases. Though I can't see why Vertex Group wouldn't be a good category. > I think we settled on "Original Data", "Nodes", and "Built-in" as the categories, but I'm not sure because that's not in the design. In the design we have "Nodes", "Built-in", and the *Custom*, the work "Custom" is never exposed to the user though, and it is actually UV Map, Vertex Group. In the documentation we can use what we plan to use for spreadsheet (User/Original Data)?
Author
Owner

Added subscribers: @Sparazza, @MiroHorvath, @OscarBaechler

Added subscribers: @Sparazza, @MiroHorvath, @OscarBaechler
Hans Goudey changed title from Final user interface improvements for attribute search to User interface improvements for attribute search 2021-03-22 02:54:19 +01:00
Hans Goudey self-assigned this 2021-03-22 02:54:52 +01:00

This issue was referenced by 71eaf872c2

This issue was referenced by 71eaf872c2db37fcc00f269bcb7e8949b2711942
Author
Owner

@HooglyBoogly remember in the future to add an image here of the final result.

I was testing it and have two remarks:

Test file: attribute-order.blend

{F9934333, size=full}

  1. Data type fields gets unreadable once highlighted (gray with blue background).
  2. How are we sorting the attributes? Right now is not alphabetical, not per domain, not per data-type.

Note if we want to move this task to done I would then ask for us to have new tasks for the issues above. Also, although polishing usually can be left for the community remember that we decided on prioritize this to have this one part of the pipeline super polished. So I think it is worth to address those remaining issues.

@HooglyBoogly remember in the future to add an image here of the final result. I was testing it and have two remarks: Test file: [attribute-order.blend](https://archive.blender.org/developer/F9934336/attribute-order.blend) {[F9934333](https://archive.blender.org/developer/F9934333/image.png), size=full} 1. Data type fields gets unreadable once highlighted (gray with blue background). 2. How are we sorting the attributes? Right now is not alphabetical, not per domain, not per data-type. Note if we want to move this task to done I would then ask for us to have new tasks for the issues above. Also, although polishing usually can be left for the community remember that we decided on prioritize this to have this one part of the pipeline super polished. So I think it is worth to address those remaining issues.
Member

Looks like I had an unfinished comment from a while ago here:

In #85881#1124524, @dfelinto wrote:

We may not have socket types for all attribute types

Can you give some examples?

Right now there is 2D vectors for example, I don't doubt there may be more in the future though.

Indicating data types with just a color is not always accessible

This is a separate issue. We can add pattern/hashes/... for the sockets as a whole to make them more accessible.

Anyway, I see node sockets themselves as different from attribute data types themselves anyway. After all we access attributes by name, not by plugging in sockets.

Looks like I had an unfinished comment from a while ago here: > In #85881#1124524, @dfelinto wrote: >> We may not have socket types for all attribute types > > Can you give some examples? Right now there is 2D vectors for example, I don't doubt there may be more in the future though. >> Indicating data types with just a color is not always accessible > > This is a separate issue. We can add pattern/hashes/... for the sockets as a whole to make them more accessible. Anyway, I see node sockets themselves as different from attribute data types themselves anyway. After all we access attributes by name, not by plugging in sockets.
Member

In #85881#1146711, @dfelinto wrote:

Thanks for the screenshot

  1. Data type fields gets unreadable once highlighted (gray with blue background).

I'll approach this as a bug fix, since it's the same in other menus. I agree it should change. I made a task: #87526

  1. How are we sorting the attributes? Right now is not alphabetical, not per domain, not per data-type.

This is just whatever way the search orders them, we don't really have the flexibility to change the order manually at the moment. Though this could be improved I suppose, I'm not sure exactly how at the moment.

> In #85881#1146711, @dfelinto wrote: Thanks for the screenshot > 1. Data type fields gets unreadable once highlighted (gray with blue background). I'll approach this as a bug fix, since it's the same in other menus. I agree it should change. I made a task: #87526 > 2. How are we sorting the attributes? Right now is not alphabetical, not per domain, not per data-type. This is just whatever way the search orders them, we don't really have the flexibility to change the order manually at the moment. Though this could be improved I suppose, I'm not sure exactly how at the moment.

Removed subscriber: @Sparazza

Removed subscriber: @Sparazza
Author
Owner

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'
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
5 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#85881
No description provided.