GSoC 2023: Add a shader preview node - Feedback

Seeing the complains about the node preview being too big on some nodes, I decided to make a small and very simple proposal.

Notes:

  • Maybe have a maximum default size, that new nodes will never go over but can be scaled to up if desired. I think the size of the Mix node could work for that.
  • Minimum size is the same as the absolute minimum width of any node.

Would also be nice to be able to see previews of collapsed nodes :slight_smile:

1 Like

Is it me or do you all want to make the overlay more than just a quick inspection?

  • Node uptime measurements make sense, but if you want something more, you need to do it in python.
  • The plane preview image makes sense, but if you want to zoom in or change shape, just make a model with this material.
  • Named of attributes can be displayed above node, but if you want them all, look in the spreadsheet.

No need to inflate overlay functionality that is not originally intended to be so widely used.

13 Likes

Agreed; I’m starting to get confused on the feedback as to what sort of expansion of the idea is being suggested…

It needs to be like a 256 pixel square on top of the node (I’m sort of guessing at the size, but you get the idea), and that’s about it.

Not an additional preview node, not something in the N panel, not some background feature like the compositor uses. It needs to be kept in mind that if users need some full-blown result preview, it’s right there in the 3D view… We already have that feature.

8 Likes

Not to mention, the direction being taken has already been decided- weeks ago. This discussion is all entirely hypothetical and entirely pointless at this point

4 Likes

Yeah node computation timings shouldn’t be part of this, though I definitely see their use for optimising shaders.

Some feedback after seeing the video! Loved the update from here: GSoC 2023: Shader editor node preview - Weekly Reports - #10 by Kdaf

  1. So nice! Glad it can be toggled per node on demand, and the overlays toggle also is handy.
  2. I hope some of the render previews can be rendered flat XY instead of on sphere, as sometimes you would need to see tiling or coordinates and patterns this way.
  3. To get flat 2D previews, would also be handy to be a toggle on the specific node.
2 Likes

Agreed, great vid preview!

Also hoping for 2D flat previews, yes. Spheres are great for some things, not great for other things.

1 Like

Looks really great! I haven’t found this in the details about the task, but: will it be possible to toggle many node previews at the same time? Something like selecting several nodes and Alt+LMB on one toggle to open/close all of the selected nodes’ previews.

1 Like

Looks really cool ! not too sure that the previews should scale when the node is widened, however. It looks logical and consistent from a visual standpoint, but node width is something you change because you need to make the contents fit (parameters, values…), whereas scaling up the preview is something you’d want for it to appear more prominently, perhaps because that’s a particularly important step in the nodetree. Those are two completely different operations and I don’t think one should be a side-effect of the other.

4 Likes

Thank you so much for those comments, I really appreciate it.

First of all, choosing between 2d and 3d is not in the todolist, but it is already possible to use the same preview as the material previews. I just forget to change this preview in the panel, but it is possible. I dont think I’ll add a new button for now, I’ll first have the patch merged, and then add this small addition.

Secondly, I agree that the UX is not optimal yet, but as I already said, I’ll mainly try to have something merged at first, and I’ll see those aspects later, as they will probably require more advanced thinkings with the UI team.

There is already a command in the (F3) search bar where you can enable/disable node preview for all selected nodes.

5 Likes

Ah, that’s good to know! Thank you!

One UI feedback I’ll leave is that if previews are disabled from overlays, those circle buttons that enable previews on nodes can be hidden too. Would make things cleaner (like it is now) if you don’t want previews

1 Like

Hiding a preview is a different matter than hiding interface elements; the “move” tool doesn’t disappear from the toolbar in blender, if the user hides all objects in the scene and therefore cannot move them. The animation workspace tab doesn’t disappear if the user has no animation at present.

A show/hide function should apply to all the previews, fine… but also remove the node interface button that shows/hides a preview? No. I might want to “hide all”, then click a single node to activate it’s preview.

1 Like

I think you misunderstand what overlays are in this case. Overlays aren’t hide all. They’re just turning off the feature from drawing all together. It doesn’t mean node previews that were shown before get hidden, no, once you turn on the overlay all the nodes that had previews enabled will have them, and those who didn’t wouldn’t. It’s just turning off temporarily.

Hide All/Show All is entirely different function that has nothing to do with overlays. And Gizmos especially are just entirely different things that have nothing to do with overlays. Hide All/Show All are operations that should have their shortcuts. Like Shift-Click on node preview button to solo it, Alt-Click to hide all/show all.

Hiding the button when overlays are turned off communicates with user that they’re turned off. If they’re shown user will be able to click on them and nothing will happen, which is not desirable. If clicking on buttons where able to turn on/off overlays that would defeat the whole point of previews being overlays, on which Colin worked so hard.

Why would we need a feature that disables everything entirely?

Perhaps I’m misunderstanding due to the nomenclature (what do you mean by “Overlays”? I see no overlays in the preview video). The user can show the node preview, or hide it. They can show all previews, or hide them. It sounds like the suggestion is another button or checkbox, that turns everything off completely… Effectively just disabling the feature?

If the user doesn’t want to see previews, just don’t click the show preview button on nodes…?

Well this is turning into discussion what Overlays are, but very well. Essentially Overlays in Blender are things in the interface that are drawn on top of objects(or nodes, image, keyframes, based on editor). For example annotations are overlays, as are timings on top of geometry nodes, they’re drawn on top of the editor. From overlays tab you can turn off visibility of those things, or just visibility of every type of overlay (Shift+Alt+Z).

Colin converted node previews to overlays, meaning user now has choice to decide whether they’re drawn or not. You can click Shift+Alt+Z and disable them all, again and they’ll come back. Point of overlays is that it just quickly disables something, instead of hiding.

So turning off overlays doesn’t turn off node previews on any node, it just doesn’t show to you. Blender remembers which nodes have previews on and which ones have off, they’re just not shown to you temporarily. That is very useful when you want to inspect something and overlays are getting in your way.

1 Like

Yes, ok. I understood that annotations or other types of things (safe area markings, etc) are overlays, but wasn’t getting that preview squares were also considered an overlay. (Which confuses discussion, but it’s been cleared up now.)

1 Like

Just to make sure we are all ok, there is a button to hide all overlays.

7 Likes

The tooltip should probably include the word “material previews” or something of that nature, to be sure the user doesn’t think to themselves “Well, this square is not a colored or dashed wire.” Or perhaps remove the mention of colored wires, and use a more generic description (ie, editor extras, etc).

1 Like

wow, just found this CSoC, this is so amazing!

1 Like