Remove reference to "Anonymous Attribute" in socket inspection #91851

Closed
opened 2021-09-30 18:01:40 +02:00 by Dalai Felinto · 16 comments

We should not expose the users to the name "Anonymous Attribute".

{F10693974, size=full}

Instead we can change the text to follow a simpler set of rules that will help users to know where the attributes (and non-attributes) came from:


Sorting criteria:

  • Geometry
  • Nodes
  • Attributes inside node
  • Then per group we sort by length (smaller to larger)
    Example:

Float field based on:

  • "Group" attribute from geometry
  • "position" attribute from geometry
  • Index node
  • Material Selection node
  • "top faces" from Cube node
  • "attribute" from Attribute Capture node
  • "normal" from Distribute Points on Faces node
We should not expose the users to the name "Anonymous Attribute". {[F10693974](https://archive.blender.org/developer/F10693974/attr.png), size=full} Instead we can change the text to follow a simpler set of rules that will help users to know where the attributes (and non-attributes) came from: --- Sorting criteria: * Geometry * Nodes * Attributes inside node * Then per group we sort by length (smaller to larger) Example: --- Float field based on: * "Group" attribute from geometry * "position" attribute from geometry * Index node * Material Selection node * "top faces" from Cube node * "attribute" from Attribute Capture node * "normal" from Distribute Points on Faces node
Author
Owner

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

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

Added subscriber: @dfelinto

Added subscriber: @dfelinto
Author
Owner

Added subscriber: @pablovazquez

Added subscriber: @pablovazquez
Member

Added subscriber: @HooglyBoogly

Added subscriber: @HooglyBoogly
Member

I like using the node name instead of "Anonymous", but I think it's important to keep "Attribute" here, since fields can depend on things besides attributes, like the index.

I like using the node name instead of "Anonymous", but I think it's important to keep "Attribute" here, since fields can depend on things besides attributes, like the index.
Author
Owner

In this case:

Float Field based on:
* Distribute Points on Faces → normal
* Attribute Capture → Attribute
* Attribute: Group
* Attribute: position

+1 for Attributes then. I wonder why "normal" is lowercase in this example by the way.
On a related note Pablo suggested we do drop uppercase for Field, which I incorporated here as well.

Not sure whether mixing and : works. @pablovazquez what do you think?

In this case: ``` Float Field based on: * Distribute Points on Faces → normal * Attribute Capture → Attribute * Attribute: Group * Attribute: position ``` +1 for Attributes then. I wonder why "normal" is lowercase in this example by the way. On a related note Pablo suggested we do drop uppercase for Field, which I incorporated here as well. Not sure whether mixing `→` and `:` works. @pablovazquez what do you think?
Member

In #91851#1229003, @HooglyBoogly wrote:
I like using the node name instead of "Anonymous", but I think it's important to keep "Attribute" here, since fields can depend on things besides attributes, like the index.

Even though index may not be technically an attribute, the user can use it as such so there is no difference in using the word attribute at the beginning of the tooltip.

In #91851#1229009, @dfelinto wrote:
Not sure whether mixing and : works. @pablovazquez what do you think?

Attributes and node names are not that long that we need to use shortcuts. I think we can verbose to explain a bit more where it all comes from.

Since it's now possible to use italics in Blender (although I don't think it's used anywhere yet), this could be a good opportunity to use them. To tell the attributes apart from the rest of the sentence and node names.

How about the following:


Float field based on attributes:

  • normal from node Distribute Points on Faces
  • Attribute from node Attribute Capture
  • Group from geometry
  • position from geometry

> In #91851#1229003, @HooglyBoogly wrote: > I like using the node name instead of "Anonymous", but I think it's important to keep "Attribute" here, since fields can depend on things besides attributes, like the index. Even though index may not be technically an attribute, the user can use it as such so there is no difference in using the word *attribute* at the beginning of the tooltip. > In #91851#1229009, @dfelinto wrote: > Not sure whether mixing `→` and `:` works. @pablovazquez what do you think? Attributes and node names are not that long that we need to use shortcuts. I think we can verbose to explain a bit more where it all comes from. Since it's now possible to use italics in Blender (although I don't think it's used anywhere yet), this could be a good opportunity to use them. To tell the attributes apart from the rest of the sentence and node names. How about the following: --- Float field based on attributes: * *normal* from node Distribute Points on Faces * *Attribute* from node Attribute Capture * *Group* from geometry * *position* from geometry ----
Author
Owner

Added subscriber: @JacquesLucke

Added subscriber: @JacquesLucke
Author
Owner

I was with Pablo when he posted, so +1 for me. But what @JacquesLucke and @HooglyBoogly think?

I was with Pablo when he posted, so +1 for me. But what @JacquesLucke and @HooglyBoogly think?
Member

I'm generally fine with this. Don't have a strong opinion about the exact details of the wording in the tooltip. If that helps people the most, great. Some notes:

  • No idea how difficult it will be to use italics here, especially when you say that we don't use them anywhere yet. Maybe it's easy, but more often than not, these small changes are rather complex in the ui code.
  • It assumes that every input to a field is an attribute. That can be true if we redefine an attribute to be everything that can be an input to a field, but usually the definition of an attribute for me is "Data that is stored per element of a domain on a geometry". For now it may be fine to call all of the field inputs attributes, but I'm not sure if that will work in the future. Maybe this particular issue could be solved by removing "attributes" from the first line.
  • What would the field input coming out of the Material Selection node be called?
I'm generally fine with this. Don't have a strong opinion about the exact details of the wording in the tooltip. If that helps people the most, great. Some notes: * No idea how difficult it will be to use italics here, especially when you say that we don't use them anywhere yet. Maybe it's easy, but more often than not, these small changes are rather complex in the ui code. * It assumes that every input to a field is an attribute. That can be true if we redefine an attribute to be everything that can be an input to a field, but usually the definition of an attribute for me is "Data that is stored per element of a domain on a geometry". For now it may be fine to call all of the field inputs attributes, but I'm not sure if that will work in the future. Maybe this particular issue could be solved by removing "attributes" from the first line. * What would the field input coming out of the Material Selection node be called?
Author
Owner

A proposal based on Jacques' remarks:


Float field based on:

  • normal from Distribute Points on Faces node
  • Attribute Capture node
  • Material Selection node
  • Group from geometry
  • position from geometry

  1. If the node has more than output (e.g., Distribute Points on Faces) we refer to the attribute name.
  2. Material Selection at the moment is hardcoded to always say "Material Selection", regardless of the node name/label.
A proposal based on Jacques' remarks: --- Float field based on: * *normal* from Distribute Points on Faces node * Attribute Capture node * Material Selection node * *Group* from geometry * *position* from geometry --- 1. If the node has more than output (e.g., Distribute Points on Faces) we refer to the attribute name. 2. Material Selection at the moment is hardcoded to always say "Material Selection", regardless of the node name/label.
Author
Owner

Final proposal:

  • Sorting criteria:
    • Geometry
    • Nodes
    • Attributes inside node
  • Then per group we sort by length (smaller to larger)

Example:

Float field based on:
* "Group" attribute from geometry
* "position" attribute from geometry
* Index node
* Material Selection node
* "top faces" from Cube node
* "attribute" from Attribute Capture node
* "normal" from Distribute Points on Faces node
Final proposal: * Sorting criteria: * Geometry * Nodes * Attributes inside node * Then per group we sort by length (smaller to larger) Example: ``` Float field based on: * "Group" attribute from geometry * "position" attribute from geometry * Index node * Material Selection node * "top faces" from Cube node * "attribute" from Attribute Capture node * "normal" from Distribute Points on Faces node ```
Member

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'
Jacques Lucke self-assigned this 2021-10-15 15:14:22 +02:00
Author
Owner

@JacquesLucke when was this addressed? What we have in master now seems still different than #91881. I will check this again next week

@JacquesLucke when was this addressed? What we have in master now seems still different than #91881. I will check this again next week
Member

This is just a design task, #91881 (Remove reference to "Anonymous Attribute" in socket inspection) is the to do task.

This is just a design task, #91881 (Remove reference to "Anonymous Attribute" in socket inspection) is the to do task.
Author
Owner

This comment was removed by @dfelinto

*This comment was removed by @dfelinto*
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
4 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#91851
No description provided.