Page MenuHome

Node Editor: Draw link lines to ouput nodes dashed
Needs ReviewPublic

Authored by Julian Eisel (Severin) on Jun 16 2015, 11:50 AM.


Group Reviewers
User Interface

Node Editor: Draw link lines to output nodes dashed

Draws bezier links to output nodes dashed to separate them from usual node connections.

Note: Changed GL_LINES to GL_LINE_STRIP here as drawing is pretty ugly otherwise, but there is this comment above:

/* XXX using GL_LINES for shaded node lines is a workaround
* for Intel hardware, this breaks with GL_LINE_STRIP and
* changing color in begin/end blocks.

Maybe there are better solutions to keep supporting the Intel cards than using GL_LINES instead of GL_LINE_STRIP? Would really prefer to keep the GL_LINE_STRIP as it has a noticeable influence on the dashed drawing (@Antony Riakiotakis (psy-fi), maybe you know a good workaround? Or maybe this has even been solved on Intel side?)

Diff Detail

Event Timeline

Julian Eisel (Severin) retitled this revision from to Node Editor: Draw link lines to ouput nodes dashed.
Julian Eisel (Severin) updated this object.
Julian Eisel (Severin) set the repository for this revision to rB Blender.

Perhaps this is overly picky, but the dashed lines seem like a pretty odd style choice for output noodles. In many cases dashed, or otherwise partial lines, tend to mean temporary, muted, etc.

The goal of differentiating the output noodles is a good one, though, in my opinion.

It's true, dashed lines often refer to muted stuff. However, in this case I find them quite fitting. Because the connections to output/viewer nodes are not really "functional" connections but rather passive ones. They are not a logical connection that "does" something, they only display something. So in a complex nodetree I rather have connections to output nodes be a bit less prominent, so that I can concentrate on the actual logic of the node connections.
The dashed line has another benefit: not only can the node editor background have different themed colors, which might make the connection hard to see, but also there is the backdrop, which might be of the same color as the noodles. For the regular noodles this is solved by drawing the outlines. A dashed line also has dark and bright parts, which ensures they remain visible on various background colors.

That's a good point @Sebastian Koenig (sebastian_k). It still seems odd to me, but I also don't spend all that much time in nodes.

Why not just decrease the alpha instead of drawing dashed?

Yep, the demo is great! The functionality is fantastic; I totally agree with it. It's just the display style that I don't agree with. I would have gone the other direction and made them more bold in order to more easily visually track it. Again, though, you and others spend far more time in nodes than I do.

I'd be curious to hear what Sean Kennedy and Kent Trammell think.

In the video demo the output nodes are purple. Would it make sense to use that color for the lines?

I agree that have a quick visual feedback of nodes connected to selected ones is useful.
If nodes have colors defined, it seems logical to reuse them for all connections, not just the output.
In demo, only selected node seems to show dashed lines. Maybe it is just the highlight.
I think that it would not be messy if colorization of connections is restricted to active node.
There should not be color conflicts. Red connections of muted nodes are short internal ones.

Anyways, I agree for a special treatment for outputs. So, for this one, dashed line for output is a good choïce.
I agree with carter2422. Current result is a little bit unpleasant.
Maybe dash could be bigger.

For the 2.5 project we discussed dashed line usage as well. (I should lookup such notes, I am sure we wrote it down).
Conclusion was to limit it to a minimum, and have it only in use (as visual language) for temporary things or for hints.

It's not uncommon, check this page:

Dashed and dotted lines are a fascinating example of an alignment between visual perception and verbal language. They are broken lines and as such, they provide a visual vocabulary to express impermanence, change and vague concepts.

So for outputs, we need a dashed line with exit arrows.

I hope that I didn't miss a commit in this area, but one of the things we needed to patch for HIVE nodes was support for PyAPI styling of node connections and sockets. There seems already limited support here, but I would hope that any changes in this area aren't just limited to the C API, but rather allow for re-use (if the application requires it) in other nodetrees.

So! How shall we proceed with this? It seems that many people here don't like the dashed lines, so we need to find and agree on a better way. Some proposals made here:

  • Colored lines (e.g. use color from output sockets)
  • Transparent colors
  • More bold lines

@Angus Hollands (agoose77), I'm not really familiar with HIVE so can't tell you much about this. Is there a patch around I could check?

(I think it's fine to misuse this a bit as a design task, the patch shouldn't need much review anyway)

I don't really get why make the link any different - it's just a standard link. It's the output nodes that are special - why not make them bright colored to make them stand out, just like in the rTheme (they are yellow there)?

I think we should just swap the styles between D2190 and this patch. However maybe change the color of the line in D2190 to a color that does not give the idea of negativity such as blue.