Page MenuHome

Better state indication for muted nodes
ClosedPublic

Authored by Robert Guetzkow (rjg) on Mar 26 2019, 9:54 PM.

Details

Summary

This patch implements the UI improvements for T62967. Muted nodes are now semi-transparent in color and checkbox in the right corner indicates the state as well. Clicking on the icon allows to toggle between muted and unmuted.

Diff Detail

Repository
rB Blender

Event Timeline

Currently the checkbox icon is displayed at all time, which may be distracting. Should it only be displayed when the node gets selected?

I don't think we should have the checkbox at all, it's too much clutter and distracting from the contents of the nodes.

All the buttons should be greyed out as well (layout.active = False or equivalent for individual buttons).

Agreed re. greying out the controls inside the nodes when muted.

Also, I noticed that the checkmark appears on the Material Output node, which doesn't support muting, and indeed nothing happens when you click it.

As for having the checkmark or not, I think it's not such a bad idea to have it always be visible:

  • It makes muting more discoverable
  • It makes the current state even clearer
  • Other node-based apps seem to have an equivalent to this

Deactivating buttons makes sense. I'll have to check how to identify nodes that don't allow muting. I have an exam next Tuesday, so the update may have to wait for a bit. Perhaps we have a consensus on how the improvement should look like till then.

  • It makes muting more discoverable

I don't think it needs to be.

  • It makes the current state even clearer

Greying out is clear enough in my opinion, it means the same thing throughout the UI.

  • Other node-based apps seem to have an equivalent to this

Most that I'm familiar with do not show anything like this when the node is enabled. Maya, houdini, nuke, unreal, unity, ...

Ok, I'm fine too with not adding the mute checkbox, if we do the other things.

Although, especially for modifier nodes, I feel like this would be very useful, just like we have toggles in our current modifiers to enable/disable.

But we can also revisit the topic of node toggles when the modifier nodes are more fleshed out.

For now I think it's fine to just make the node state clearer by properly and fully greying out muted nodes.

  • Removed checkbox
  • Set layout->active = false; for buttons and settings related to input sockets

This seems to work well overall.

However, I did notice something funny happening when nodes are closed.

Normal:

Muted:

As you can see, it doesn't really look greyed out, but just looks.. muddy :) It seems as if the greying out logic doesn't seem to apply correctly to closed nodes?

Perhaps we should make the node header text be greyed out in this case also, to make it clear enough?

Tbh this is also where the checkmark would have helped, but with the above fixes it is probably going to be clear enough also.

Robert Guetzkow (rjg) updated this revision to Diff 14453.EditedMar 28 2019, 12:10 PM

You're right, I missed that one. That's the old color that was assigned when the node was muted. I think it's obvious enough with the correct color even without the greyed out font.

  • Fixed color for when the node is closed

Ok, that's an improvement.

Normal:

Muted:

However, I still feel like it's not obvious enough that the node is muted when closed. The effect is too subtle I think.

One solution could be to grey out the header text:

Or, the opacity could simply be set to a lower level to make the effect obvious:

I'm unsure how to implement the greyed out text. If I'm not mistaken node_draw_frame_label in drawnode.c sets the color for labels drawn inside a node. However I cannot set these color properties from outside, because they only depend on the theme colors and the node type. The solution to this is probably obvious but I'm not familiar enough with the codebase yet to see what I'm missing.

@Robert Guetzkow (rjg) the easier option is probably just to decrease the opacity when muted, I think that would also be enough.

  • Lower opacity for distinguishable state
This revision is now accepted and ready to land.Mar 28 2019, 5:16 PM

I'll commit this with some further tweaks to grey out the sockets and title.

@Brecht Van Lommel (brecht) @William Reynish (billreynish) Thanks! I'll take a look at your additional tweaks to see what I was missing. Didn't mean to cause more work.

This revision was automatically updated to reflect the committed changes.
This comment was removed by Robert Guetzkow (rjg).