-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[NODES] Channel Separation Options #122
Comments
It would only apply to the selected data. A blur with an Nodes by nature should be "dumb" and not interpret or shim in any operation that isn't requested. So for example, with an associated alpha image, if a node routes an A checkbox table allows for discrete application of the node, in a relatively sane manner. Only want the blur applied to blue, green, and alpha? No problem. In your example, I'd expect that if we dumped the image raw to the viewer, the result would be the totality of the buffer, Ultimately it is up to the nodes to determine what their default action is. That is, in your example, passing TL;DR Nodes should not delete tables without (perhaps?) a delete node. Otherwise it simply passes the table data along, nodes look for specific default labels, and crunch the numbers. Answer to your specific question: Depends on the node that is displaying the data. |
Sure I get that, so what happens in a scenario like this: Say we're adding two textures together and the channels are selected like this:
How are these "added" like this? Obviously we could say add the two reds, keep the green from 2, and discard green 1 and the blues, but that's not the behavior of the second blur image, not the first. |
My sensibility suggests that the values added are dictated by the check, as in the table parameter. Consider two tables:
The selection would be the union of parameters:
And the operation would consider all values of that parameter, and apply. In the case where only one buffer has a parameter, consider Blur with Thoughts? |
Thinking about it more, I think your approach is more useful, to permit channels to cross talk. |
I'm not really proposing or advocating for any approach, this is just the puzzle I ran into while trying to figure out how to actually implement this. To be honest, I like Blur Example #1 where you could simply select channels to operate on and the rest would pass through, but it becomes complicated whenever more than one input texture is involved (As in the "add" example, what does it mean for two blue channels to get passed through? How does one green channel get added to nothing and the other green channel passes through?) I feel like the dilemma is kind of like this:
Perhaps both options need to be available to the user. |
I believe what might be able to work is:
The input then is applied to output. If the goal were to add the The others pass through. I’m guessing that an Seems like a relatively powerful matrix. Nodes that do typical things, could perhaps have a set default series of enumerated matrix elements already predefined, subject to addition or removal as required. The first example with the image:
Done! This matrix approach also strikes me as powerful because it would allow a node to perform any and all of its operations to specific channels, and encode them as such. Perhaps it’s three columns. Input on left, operation next, and output table encoding on right? |
Summary
Nodes should permit selection of application.
For example, the math node should have some sort of UI selection available that permits the creator to choose which channels are applied to. Given that Olive uses a table to pass values and arrays down the chain, it is likely that this channel selection needs to be dynamic.
The text was updated successfully, but these errors were encountered: