As someone who uses Blender for (GPU accelerated) node-based image manipulation (along with all the other things it brings to the table, like video editing etc.), what are the benefits of dedicated node-based image editors like this one? Serious question, not a rant. I am genuinely curious.
One datapoint: Color manipulation or color grading in film is mostly done using Blackmagic Davinci Resolve (runs under Linux, can also edit, mix sound etc, worth checking out).
Davinci is a nose based software as well (for the color part). The advantage is of course that you can easily copy graphs, parts of graphs or nodes from one picture to another. In a professional setting that means you can create one calibration node for your camera, one node to adjust differences between different pictures, one to use a certain look etc. You can combine masks from multiple nodes, do parallel color correction etc.
Unlike the effect layers, nodes can have multiple inputs. Also, in more advanced node systems, nodes can have types other than "Image", e.g. number, boolean, etc., and node inputs can accept those types.
Well one example would be a node that outputs HSV as seperate (greyscale) outputs, you could then operate parallel on all these strands and merge them together in a combine node that has 3 seperate inputs for HSV and gives you the full color again.
Practically nodes make it easier to deal with more complex operations than layers (e.g. operations wherebyou have multiple source images and/or multiple target images, like e.g. in compositing, CGI etc)
Not having to redo the entire chain of image operations from scratch if you mess up one step. The ability to reuse the chain of operations on a different image. The ability to tune / tweak the settings of each step without having to repeat the entire chain manually from the start. The ability to edit the chain of operations if you don't like the result, without having to re-execute the chain manually.
And, lastly, node-based systems can be incredibly fun, if done right.
I knew Blender had a video editor, but I didn't know that Blender had a node-based image editor. Just did a quick Google search -- are you referring to Compositor?
Blender has a "generic" node-editor in a sense that you can use it for not just image manipulation but also for things like shaders or even manipulating geometry, although (of course) each have mostly their specific set of operations (nodes).
In the media industry, 2D and 3D roles employ very different skill sets, so while Blender could evolve to offer a robust package for compositors, this likely won't be their primary focus.
I guess this tool can evolve to more specific image and photography functions, like touchup brushes to remove imperfections and image filters a la lightroom. Having a dedicated tool also means the UI can be better tuned to the photography workflow. Blender is brilliant and I love it but different tools can fill different needs, imo
It got me. I went into the /src directory so I could find out if you could actually write a reasonable image editor in javascript, and was confused to find .cpp files.
Looks very interesting. I tried the Windows build, but I can't get it to show any preview image. Tried selecting nodes and double-clicking them -- nothing. Maybe it needs to recompile the shader manually, but I haven't found any GUI command or hotkey for that. Checked the log, but it looks OK, no errors.
UPD: I managed to get it to show the preview: 1) Delete the default nodes (Read Image and Write Image). 2) Create a Checkerboard node. 3) In its Properties, set Size to anything except "As Input".
You can then plug it into filter nodes (e.g. Directional Blur), but the preview is still fickle -- at some point it just disappears and never shows up again until I reset the project.
Look at the screenshots in the repo - it refers to applying or stacking effects/edits based on a system of linked nodes, as used by color grading software such as Davinci Resolve, and also used by Blender I believe.
Which iirc, is contextually referred to as visual programming. Some notable examples I've briefly used include: PureData [0] and SunVox [1] and some dabbling in Bespoke Synth [2] and generative content of Nodes.io [3].
Somewhat. This is true for the drag-and-drop interface and representation, but nodes here are an implementation detail IMO. Nodes are a subset of visual programming, and well-suited for representing functional and data-oriented processing pipelines.
In turn, these programming paradigms are well suited to hardware acceleration and distributed/multithreaded pipelines.
The underlying edition approach is called "non-destructive editing", as you can always remove some operations to find the original again.
When it comes to visual programming, the first example that comes to my mind is labview, which I find very unwieldy to work with. As a programmer, node editors are one of the very few visual programming methods I'm comfortable using (at least as long as the graphs stay relatively small).
I always found these editors to be a bit more cumbersome than just writing things in code. I do like the visual feedback in form of previews. Perhaps the optimal workflow would be a code-based editor with easy visualization of each stage, notebook style perhaps?
It's not just Rust projects, but it is right now where a lot of the interest is. A few years ago it was a lot of "written in Go" or "written in NodeJS", as those were the "hype" things.
Also it seems very off-topic complaint (even more than it would be anyways) in the discussion of a C++ project?
Wrong capitalization.